From 55379c90df0d55731654657137e086ab76ded198 Mon Sep 17 00:00:00 2001 From: joyqi Date: Wed, 17 Jul 2013 13:13:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改了上一个版本的一些错误,第一次提交 --- .gitignore | 25 + admin/common-js.php | 111 + admin/common.php | 57 + admin/copyright.php | 13 + admin/css/grid.source.css | 262 + admin/css/reset.source.css | 79 + admin/css/typecho.source.css | 2425 ++++++++ admin/editor-js.php | 20 + admin/extending.php | 11 + admin/file-upload-js.php | 200 + admin/file-upload.php | 97 + admin/footer.php | 6 + admin/header.php | 22 + admin/images/ajax-loader.gif | Bin 0 -> 673 bytes admin/images/arrow.gif | Bin 0 -> 180 bytes admin/images/attach.gif | Bin 0 -> 307 bytes admin/images/comment.gif | Bin 0 -> 1250 bytes admin/images/link.png | Bin 0 -> 343 bytes admin/images/mime.gif | Bin 0 -> 2302 bytes admin/images/noscreen.gif | Bin 0 -> 511 bytes admin/images/notice.gif | Bin 0 -> 580 bytes admin/images/progress.gif | Bin 0 -> 72 bytes admin/images/size-btn.gif | Bin 0 -> 55 bytes admin/images/sprite.png | Bin 0 -> 2349 bytes admin/index.php | 166 + admin/javascript/mootools.js | 5023 +++++++++++++++++ .../javascript/swfupload/swfupload.cookies.js | 53 + admin/javascript/swfupload/swfupload.js | 980 ++++ admin/javascript/swfupload/swfupload.queue.js | 98 + admin/javascript/swfupload/swfupload.swf | Bin 0 -> 12787 bytes admin/javascript/typecho.js | 1246 ++++ admin/login.php | 60 + admin/manage-comments.php | 414 ++ admin/manage-medias.php | 110 + admin/manage-metas.php | 189 + admin/manage-pages.php | 122 + admin/manage-posts.php | 135 + admin/manage-users.php | 109 + admin/media.php | 186 + admin/menu.php | 8 + admin/options-discussion.php | 22 + admin/options-general.php | 22 + admin/options-permalink.php | 39 + admin/options-plugin.php | 22 + admin/options-reading.php | 22 + admin/options-theme.php | 27 + admin/page-title.php | 18 + admin/plugins.php | 144 + admin/profile.php | 46 + admin/register.php | 75 + admin/theme-editor.php | 62 + admin/themes.php | 131 + admin/upgrade.php | 36 + admin/user.php | 23 + admin/welcome.php | 40 + admin/write-js.php | 89 + admin/write-page.php | 141 + admin/write-post.php | 177 + changelog.txt | 52 + index.php | 26 + install.php | 529 ++ install/Mysql.php | 58 + install/Mysql.sql | 133 + install/Pgsql.php | 26 + install/Pgsql.sql | 114 + install/SQLite.php | 7 + install/SQLite.sql | 74 + license.txt | 282 + mockup/001.php | 3 + mockup/002.php | 3 + mockup/003.php | 7 + mockup/004.php | 11 + mockup/005.php | 7 + mockup/006.php | 15 + mockup/007.php | 12 + mockup/008.php | 10 + mockup/010.php | 32 + mockup/011.php | 12 + mockup/012.php | 14 + mockup/013.php | 19 + mockup/014.php | 15 + mockup/015.php | 14 + mockup/016.php | 60 + mockup/css/grid.source.css | 261 + mockup/css/reset.source.css | 77 + mockup/css/typecho.source.css | 1477 +++++ mockup/images/grid.png | Bin 0 -> 128 bytes mockup/images/psd&png/sprite.png | Bin 0 -> 62276 bytes mockup/images/psd&png/sprite.psd | Bin 0 -> 82642 bytes .../psd&png/typecho-head-guid-shadow.png | Bin 0 -> 47831 bytes mockup/images/sprite.png | Bin 0 -> 2689 bytes mockup/index.html | 40 + mockup/javascript/mootools-1.2.1-core-yc.js | 349 ++ mockup/javascript/mootools-1.2.1-more.js | 10 + mockup/mockup/001.png | Bin 0 -> 88866 bytes mockup/mockup/002.png | Bin 0 -> 91217 bytes mockup/mockup/003.png | Bin 0 -> 104579 bytes mockup/mockup/004.png | Bin 0 -> 109129 bytes mockup/mockup/005.png | Bin 0 -> 114553 bytes mockup/mockup/006.png | Bin 0 -> 128588 bytes mockup/mockup/007.png | Bin 0 -> 139923 bytes mockup/mockup/008.png | Bin 0 -> 159600 bytes mockup/mockup/009.png | Bin 0 -> 166413 bytes mockup/mockup/010.png | Bin 0 -> 202242 bytes mockup/mockup/011.png | Bin 0 -> 180956 bytes mockup/mockup/012.png | Bin 0 -> 187188 bytes mockup/mockup/013.png | Bin 0 -> 192734 bytes mockup/mockup/014.png | Bin 0 -> 206166 bytes mockup/mockup/015.png | Bin 0 -> 233407 bytes mockup/mockup/attachment.png | Bin 0 -> 164192 bytes mockup/mockup/cat and tag.png | Bin 0 -> 123208 bytes mockup/mockup/error.png | Bin 0 -> 86643 bytes mockup/mockup/manage comments.png | Bin 0 -> 242704 bytes mockup/mockup/navigation.png | Bin 0 -> 144811 bytes mockup/mockup/profile.png | Bin 0 -> 152828 bytes mockup/mockup/table-list.png | Bin 0 -> 220590 bytes mockup/mockup/themes.png | Bin 0 -> 168723 bytes mockup/mockup/write-post.png | Bin 0 -> 177044 bytes mockup/slice/footer.inc.html | 112 + mockup/slice/header.inc.html | 18 + mockup/slice/typecho-dashboard-left.inc.html | 23 + mockup/slice/typecho-dashboard-main.inc.html | 22 + mockup/slice/typecho-dashboard-right.inc.html | 17 + mockup/slice/typecho-edit-theme.inc.html | 28 + mockup/slice/typecho-foot.inc.html | 13 + mockup/slice/typecho-head-guid.inc.html | 64 + mockup/slice/typecho-install-body.inc.html | 40 + mockup/slice/typecho-install-option.inc.html | 47 + mockup/slice/typecho-install-path.inc.html | 7 + mockup/slice/typecho-install-success.inc.html | 16 + mockup/slice/typecho-list-table.inc.html | 68 + mockup/slice/typecho-login-v2.inc.html | 22 + mockup/slice/typecho-login.inc.html | 22 + mockup/slice/typecho-option-tabs.inc.html | 8 + mockup/slice/typecho-page-option.inc.html | 49 + mockup/slice/typecho-page-title.inc.html | 6 + mockup/slice/typecho-pager.inc.html | 11 + mockup/slice/typecho-post-area.inc.html | 13 + .../typecho-post-option-content.inc.html | 43 + mockup/slice/typecho-thumb-list.inc.html | 14 + todo.txt | 70 + tools/Makefile | 140 + tools/finder.exe | Bin 0 -> 605192 bytes tools/list.php | 73 + tools/mcecp.php | 38 + tools/replace.php | 105 + tools/tabsize.php | 106 + tools/tc.php | 28 + tools/yuicompressor-2.4.2.jar | Bin 0 -> 851219 bytes usr/plugins/Akismet/Plugin.php | 213 + usr/plugins/BlockComment/Plugin.php | 124 + usr/plugins/ConnectToTwitter/OAuth.php | 768 +++ usr/plugins/ConnectToTwitter/Plugin.php | 144 + usr/plugins/ConnectToTwitter/twitterOAuth.php | 146 + usr/plugins/Creole/Creole_Wiki.php | 1599 ++++++ usr/plugins/Creole/Parse.inc.php | 262 + usr/plugins/Creole/Parse/Address.php | 67 + usr/plugins/Creole/Parse/Blockquote.php | 176 + usr/plugins/Creole/Parse/Box.php | 81 + usr/plugins/Creole/Parse/Break.php | 73 + usr/plugins/Creole/Parse/Center.php | 78 + usr/plugins/Creole/Parse/Delete.php | 78 + usr/plugins/Creole/Parse/Delimiter.php | 68 + usr/plugins/Creole/Parse/Emphasis.php | 78 + usr/plugins/Creole/Parse/Footnote.php | 83 + usr/plugins/Creole/Parse/Heading.php | 97 + usr/plugins/Creole/Parse/Horiz.php | 58 + usr/plugins/Creole/Parse/Image.php | 66 + usr/plugins/Creole/Parse/List.php | 244 + usr/plugins/Creole/Parse/Newline.php | 60 + usr/plugins/Creole/Parse/Paragraph.php | 139 + usr/plugins/Creole/Parse/Prefilter.php | 54 + usr/plugins/Creole/Parse/Preformatted.php | 68 + usr/plugins/Creole/Parse/Raw.php | 61 + usr/plugins/Creole/Parse/Strong.php | 83 + usr/plugins/Creole/Parse/Subscript.php | 75 + usr/plugins/Creole/Parse/Superscript.php | 75 + usr/plugins/Creole/Parse/Table.php | 207 + usr/plugins/Creole/Parse/Tighten.php | 37 + usr/plugins/Creole/Parse/Trim.php | 69 + usr/plugins/Creole/Parse/Tt.php | 78 + usr/plugins/Creole/Parse/Underline.php | 78 + usr/plugins/Creole/Parse/Url.php | 109 + usr/plugins/Creole/Plugin.php | 72 + usr/plugins/Creole/Render.inc.php | 218 + usr/plugins/Creole/Render/Plain.php | 16 + usr/plugins/Creole/Render/Plain/Anchor.php | 23 + .../Creole/Render/Plain/Blockquote.php | 39 + usr/plugins/Creole/Render/Plain/Bold.php | 23 + usr/plugins/Creole/Render/Plain/Box.php | 48 + usr/plugins/Creole/Render/Plain/Break.php | 24 + usr/plugins/Creole/Render/Plain/Center.php | 23 + usr/plugins/Creole/Render/Plain/Code.php | 24 + usr/plugins/Creole/Render/Plain/Colortext.php | 23 + usr/plugins/Creole/Render/Plain/Deflist.php | 59 + usr/plugins/Creole/Render/Plain/Delete.php | 23 + usr/plugins/Creole/Render/Plain/Delimiter.php | 23 + usr/plugins/Creole/Render/Plain/Embed.php | 23 + usr/plugins/Creole/Render/Plain/Emphasis.php | 23 + usr/plugins/Creole/Render/Plain/Font.php | 44 + usr/plugins/Creole/Render/Plain/Freelink.php | 23 + usr/plugins/Creole/Render/Plain/Function.php | 39 + usr/plugins/Creole/Render/Plain/Heading.php | 14 + usr/plugins/Creole/Render/Plain/Horiz.php | 23 + usr/plugins/Creole/Render/Plain/Html.php | 24 + usr/plugins/Creole/Render/Plain/Image.php | 22 + usr/plugins/Creole/Render/Plain/Include.php | 8 + usr/plugins/Creole/Render/Plain/Interwiki.php | 29 + usr/plugins/Creole/Render/Plain/Italic.php | 23 + usr/plugins/Creole/Render/Plain/List.php | 68 + usr/plugins/Creole/Render/Plain/Newline.php | 12 + usr/plugins/Creole/Render/Plain/Page.php | 48 + usr/plugins/Creole/Render/Plain/Paragraph.php | 31 + usr/plugins/Creole/Render/Plain/Phplookup.php | 25 + usr/plugins/Creole/Render/Plain/Plugin.php | 49 + usr/plugins/Creole/Render/Plain/Prefilter.php | 40 + .../Creole/Render/Plain/Preformatted.php | 48 + usr/plugins/Creole/Render/Plain/Raw.php | 23 + usr/plugins/Creole/Render/Plain/Revise.php | 24 + usr/plugins/Creole/Render/Plain/Smiley.php | 44 + .../Creole/Render/Plain/Specialchar.php | 54 + usr/plugins/Creole/Render/Plain/Strong.php | 24 + usr/plugins/Creole/Render/Plain/Subscript.php | 48 + .../Creole/Render/Plain/Superscript.php | 23 + usr/plugins/Creole/Render/Plain/Table.php | 65 + usr/plugins/Creole/Render/Plain/Tighten.php | 10 + usr/plugins/Creole/Render/Plain/Titlebar.php | 54 + usr/plugins/Creole/Render/Plain/Toc.php | 39 + usr/plugins/Creole/Render/Plain/Tt.php | 24 + usr/plugins/Creole/Render/Plain/Underline.php | 23 + usr/plugins/Creole/Render/Plain/Url.php | 29 + usr/plugins/Creole/Render/Plain/Wikilink.php | 24 + usr/plugins/Creole/Render/Xhtml.php | 109 + usr/plugins/Creole/Render/Xhtml/Address.php | 54 + usr/plugins/Creole/Render/Xhtml/Anchor.php | 48 + .../Creole/Render/Xhtml/Blockquote.php | 72 + usr/plugins/Creole/Render/Xhtml/Bold.php | 57 + usr/plugins/Creole/Render/Xhtml/Box.php | 62 + usr/plugins/Creole/Render/Xhtml/Break.php | 52 + usr/plugins/Creole/Render/Xhtml/Center.php | 62 + usr/plugins/Creole/Render/Xhtml/Code.php | 133 + usr/plugins/Creole/Render/Xhtml/Colortext.php | 79 + usr/plugins/Creole/Render/Xhtml/Deflist.php | 87 + usr/plugins/Creole/Render/Xhtml/Delete.php | 58 + usr/plugins/Creole/Render/Xhtml/Delimiter.php | 46 + usr/plugins/Creole/Render/Xhtml/Embed.php | 46 + usr/plugins/Creole/Render/Xhtml/Emphasis.php | 58 + usr/plugins/Creole/Render/Xhtml/Font.php | 83 + usr/plugins/Creole/Render/Xhtml/Freelink.php | 35 + usr/plugins/Creole/Render/Xhtml/Function.php | 108 + usr/plugins/Creole/Render/Xhtml/Heading.php | 54 + usr/plugins/Creole/Render/Xhtml/Horiz.php | 51 + usr/plugins/Creole/Render/Xhtml/Html.php | 47 + usr/plugins/Creole/Render/Xhtml/Image.php | 183 + usr/plugins/Creole/Render/Xhtml/Include.php | 32 + usr/plugins/Creole/Render/Xhtml/Interwiki.php | 103 + usr/plugins/Creole/Render/Xhtml/Italic.php | 57 + usr/plugins/Creole/Render/Xhtml/List.php | 172 + usr/plugins/Creole/Render/Xhtml/Newline.php | 35 + usr/plugins/Creole/Render/Xhtml/Page.php | 46 + usr/plugins/Creole/Render/Xhtml/Paragraph.php | 59 + usr/plugins/Creole/Render/Xhtml/Phplookup.php | 81 + usr/plugins/Creole/Render/Xhtml/Plugin.php | 47 + usr/plugins/Creole/Render/Xhtml/Prefilter.php | 34 + .../Creole/Render/Xhtml/Preformatted.php | 47 + usr/plugins/Creole/Render/Xhtml/Raw.php | 46 + usr/plugins/Creole/Render/Xhtml/Revise.php | 68 + usr/plugins/Creole/Render/Xhtml/Smiley.php | 74 + .../Creole/Render/Xhtml/Specialchar.php | 52 + usr/plugins/Creole/Render/Xhtml/Strong.php | 58 + usr/plugins/Creole/Render/Xhtml/Subscript.php | 57 + .../Creole/Render/Xhtml/Superscript.php | 57 + usr/plugins/Creole/Render/Xhtml/Table.php | 140 + usr/plugins/Creole/Render/Xhtml/Tighten.php | 34 + usr/plugins/Creole/Render/Xhtml/Titlebar.php | 57 + usr/plugins/Creole/Render/Xhtml/Toc.php | 115 + usr/plugins/Creole/Render/Xhtml/Tt.php | 58 + usr/plugins/Creole/Render/Xhtml/Underline.php | 58 + usr/plugins/Creole/Render/Xhtml/Url.php | 138 + usr/plugins/Creole/Render/Xhtml/Wikilink.php | 177 + usr/plugins/FlashMp3Player/Plugin.php | 109 + usr/plugins/FlashMp3Player/swf/dewplayer.swf | Bin 0 -> 5102 bytes usr/plugins/GoogleCodePrettify/Plugin.php | 137 + .../GoogleCodePrettify/src/lang-apollo.js | 51 + .../GoogleCodePrettify/src/lang-css.js | 78 + usr/plugins/GoogleCodePrettify/src/lang-hs.js | 101 + .../GoogleCodePrettify/src/lang-lisp.js | 93 + .../GoogleCodePrettify/src/lang-lua.js | 59 + usr/plugins/GoogleCodePrettify/src/lang-ml.js | 56 + .../GoogleCodePrettify/src/lang-proto.js | 35 + .../GoogleCodePrettify/src/lang-sql.js | 57 + usr/plugins/GoogleCodePrettify/src/lang-vb.js | 61 + .../GoogleCodePrettify/src/lang-wiki.js | 53 + .../GoogleCodePrettify/src/prettify.css | 32 + .../GoogleCodePrettify/src/prettify.js | 1478 +++++ usr/plugins/GoogleCodeSVN/Action.php | 157 + usr/plugins/GoogleCodeSVN/Plugin.php | 69 + usr/plugins/HelloWorld/Plugin.php | 67 + usr/plugins/MagikeToTypecho/Action.php | 214 + usr/plugins/MagikeToTypecho/Plugin.php | 94 + usr/plugins/MagikeToTypecho/panel.php | 73 + usr/plugins/PageToLinks.php | 87 + usr/plugins/PostToQzone/Plugin.php | 185 + usr/plugins/PostToQzone/phpmailer.php | 1896 +++++++ usr/plugins/PostToQzone/smtp.php | 1062 ++++ usr/plugins/SaeUpload/Plugin.php | 270 + usr/plugins/ShareCode/Plugin.php | 78 + usr/plugins/SimpleCode.php | 83 + usr/plugins/Textile2/Plugin.php | 121 + usr/plugins/Textile2/Textile.php | 4080 +++++++++++++ usr/plugins/TinyMCE/Plugin.php | 154 + usr/plugins/TinyMCE/tiny_mce/langs.php | 391 ++ usr/plugins/TinyMCE/tiny_mce/langs/typecho.js | 1 + .../tiny_mce/plugins/coder/editor_plugin.js | 79 + .../plugins/inlinepopups/editor_plugin.js | 1 + .../skins/clearlooks2/img/alert.gif | Bin 0 -> 818 bytes .../skins/clearlooks2/img/button.gif | Bin 0 -> 280 bytes .../skins/clearlooks2/img/buttons.gif | Bin 0 -> 1195 bytes .../skins/clearlooks2/img/confirm.gif | Bin 0 -> 915 bytes .../skins/clearlooks2/img/corners.gif | Bin 0 -> 911 bytes .../skins/clearlooks2/img/horizontal.gif | Bin 0 -> 769 bytes .../skins/clearlooks2/img/vertical.gif | Bin 0 -> 92 bytes .../inlinepopups/skins/clearlooks2/window.css | 90 + .../plugins/inlinepopups/template.htm | 387 ++ .../tiny_mce/plugins/media/css/content.css | 6 + .../tiny_mce/plugins/media/css/media.css | 16 + .../tiny_mce/plugins/media/editor_plugin.js | 1 + .../tiny_mce/plugins/media/img/flash.gif | Bin 0 -> 241 bytes .../tiny_mce/plugins/media/img/flv_player.swf | Bin 0 -> 11668 bytes .../tiny_mce/plugins/media/img/quicktime.gif | Bin 0 -> 303 bytes .../tiny_mce/plugins/media/img/realmedia.gif | Bin 0 -> 439 bytes .../tiny_mce/plugins/media/img/shockwave.gif | Bin 0 -> 387 bytes .../tiny_mce/plugins/media/img/trans.gif | Bin 0 -> 43 bytes .../plugins/media/img/windowsmedia.gif | Bin 0 -> 415 bytes .../tiny_mce/plugins/media/js/embed.js | 73 + .../tiny_mce/plugins/media/js/media.js | 630 +++ .../plugins/media/langs/typecho_dlg.js | 1 + .../TinyMCE/tiny_mce/plugins/media/media.htm | 822 +++ .../plugins/morebreak/css/content.css | 1 + .../plugins/morebreak/editor_plugin.js | 74 + .../plugins/morebreak/img/morebreak.gif | Bin 0 -> 325 bytes .../tiny_mce/plugins/morebreak/img/trans.gif | Bin 0 -> 43 bytes .../TinyMCE/tiny_mce/plugins/safari/blank.htm | 1 + .../tiny_mce/plugins/safari/editor_plugin.js | 1 + .../tiny_mce/themes/advanced/about.htm | 56 + .../tiny_mce/themes/advanced/anchor.htm | 31 + .../tiny_mce/themes/advanced/charmap.htm | 53 + .../tiny_mce/themes/advanced/color_picker.htm | 75 + .../themes/advanced/editor_template.js | 1 + .../tiny_mce/themes/advanced/image.htm | 85 + .../themes/advanced/img/colorpicker.jpg | Bin 0 -> 3189 bytes .../tiny_mce/themes/advanced/img/icons.gif | Bin 0 -> 11505 bytes .../tiny_mce/themes/advanced/js/about.js | 72 + .../tiny_mce/themes/advanced/js/anchor.js | 37 + .../tiny_mce/themes/advanced/js/charmap.js | 325 ++ .../themes/advanced/js/color_picker.js | 253 + .../tiny_mce/themes/advanced/js/image.js | 245 + .../tiny_mce/themes/advanced/js/link.js | 156 + .../themes/advanced/js/source_editor.js | 62 + .../tiny_mce/themes/advanced/langs/typecho.js | 2 + .../themes/advanced/langs/typecho_dlg.js | 1 + .../TinyMCE/tiny_mce/themes/advanced/link.htm | 63 + .../themes/advanced/skins/typecho/content.css | 36 + .../themes/advanced/skins/typecho/dialog.css | 130 + .../advanced/skins/typecho/img/items.gif | Bin 0 -> 70 bytes .../advanced/skins/typecho/img/menu_arrow.gif | Bin 0 -> 68 bytes .../advanced/skins/typecho/img/menu_check.gif | Bin 0 -> 70 bytes .../advanced/skins/typecho/img/progress.gif | Bin 0 -> 1787 bytes .../advanced/skins/typecho/img/sprite.gif | Bin 0 -> 604 bytes .../advanced/skins/typecho/img/tabs.gif | Bin 0 -> 1326 bytes .../themes/advanced/skins/typecho/ui.css | 228 + .../themes/advanced/source_editor.htm | 31 + usr/plugins/TinyMCE/tiny_mce/tiny_mce.js | 1 + .../TinyMCE/tiny_mce/tiny_mce_popup.js | 5 + .../tiny_mce/utils/editable_selects.js | 69 + .../TinyMCE/tiny_mce/utils/form_utils.js | 199 + usr/plugins/TinyMCE/tiny_mce/utils/mctabs.js | 76 + .../TinyMCE/tiny_mce/utils/validate.js | 219 + usr/plugins/WordpressToTypecho/Action.php | 215 + usr/plugins/WordpressToTypecho/Plugin.php | 95 + usr/plugins/WordpressToTypecho/panel.php | 73 + usr/plugins/ZenCoding/Plugin.php | 88 + usr/plugins/ZenCoding/zen_textarea.js | 3113 ++++++++++ usr/themes/default/404.php | 15 + usr/themes/default/archive.php | 27 + usr/themes/default/comments.php | 44 + usr/themes/default/css/960.gs.css | 6 + usr/themes/default/css/uncompressed/960.css | 606 ++ usr/themes/default/css/uncompressed/reset.css | 53 + usr/themes/default/css/uncompressed/text.css | 84 + usr/themes/default/footer.php | 9 + usr/themes/default/functions.php | 16 + usr/themes/default/header.php | 40 + usr/themes/default/index.php | 31 + usr/themes/default/page.php | 16 + usr/themes/default/post.php | 18 + usr/themes/default/screenshot.png | Bin 0 -> 9265 bytes usr/themes/default/sidebar.php | 62 + usr/themes/default/style.css | 453 ++ var/Helper.php | 418 ++ var/IXR/Base64.php | 43 + var/IXR/Client.php | 300 + var/IXR/ClientMulticall.php | 37 + var/IXR/Date.php | 55 + var/IXR/Error.php | 76 + var/IXR/Exception.php | 16 + var/IXR/IntrospectionServer.php | 160 + var/IXR/Message.php | 167 + var/IXR/Request.php | 43 + var/IXR/Server.php | 346 ++ var/IXR/Value.php | 119 + var/Typecho/Common.php | 1427 +++++ var/Typecho/Common/Paragraph.php | 218 + var/Typecho/Config.php | 199 + var/Typecho/Cookie.php | 132 + var/Typecho/Date.php | 126 + var/Typecho/Db.php | 407 ++ var/Typecho/Db/Adapter.php | 104 + var/Typecho/Db/Adapter/Exception.php | 19 + var/Typecho/Db/Adapter/Mysql.php | 175 + var/Typecho/Db/Adapter/Pdo.php | 177 + var/Typecho/Db/Adapter/Pdo/Mysql.php | 91 + var/Typecho/Db/Adapter/Pdo/Pgsql.php | 96 + var/Typecho/Db/Adapter/Pdo/SQLite.php | 78 + var/Typecho/Db/Adapter/Pgsql.php | 188 + var/Typecho/Db/Adapter/SQLite.php | 203 + var/Typecho/Db/Exception.php | 19 + var/Typecho/Db/Query.php | 446 ++ var/Typecho/Db/Query/Exception.php | 19 + var/Typecho/Exception.php | 24 + var/Typecho/Feed.php | 411 ++ var/Typecho/Http/Client.php | 62 + var/Typecho/Http/Client/Adapter.php | 425 ++ var/Typecho/Http/Client/Adapter/Curl.php | 122 + var/Typecho/Http/Client/Adapter/Socket.php | 156 + var/Typecho/Http/Client/Exception.php | 19 + var/Typecho/I18n.php | 203 + var/Typecho/I18n/GetText.php | 378 ++ var/Typecho/I18n/GetTextMulti.php | 108 + var/Typecho/Json.php | 551 ++ var/Typecho/Plugin.php | 466 ++ var/Typecho/Plugin/Exception.php | 19 + var/Typecho/Plugin/Interface.php | 58 + var/Typecho/Request.php | 704 +++ var/Typecho/Response.php | 306 + var/Typecho/Router.php | 222 + var/Typecho/Router/Exception.php | 19 + var/Typecho/Router/Parser.php | 117 + var/Typecho/Validate.php | 321 ++ var/Typecho/Widget.php | 417 ++ var/Typecho/Widget/Exception.php | 19 + var/Typecho/Widget/Helper/Empty.php | 57 + var/Typecho/Widget/Helper/Form.php | 280 + var/Typecho/Widget/Helper/Form/Element.php | 300 + .../Widget/Helper/Form/Element/Checkbox.php | 81 + .../Widget/Helper/Form/Element/Hidden.php | 63 + .../Widget/Helper/Form/Element/Password.php | 53 + .../Widget/Helper/Form/Element/Radio.php | 79 + .../Widget/Helper/Form/Element/Select.php | 73 + .../Widget/Helper/Form/Element/Submit.php | 52 + .../Widget/Helper/Form/Element/Text.php | 54 + .../Widget/Helper/Form/Element/Textarea.php | 52 + var/Typecho/Widget/Helper/Layout.php | 331 ++ var/Typecho/Widget/Helper/PageNavigator.php | 133 + .../Widget/Helper/PageNavigator/Box.php | 82 + .../Widget/Helper/PageNavigator/Classic.php | 69 + var/Upgrade.php | 958 ++++ var/Widget/Abstract.php | 111 + var/Widget/Abstract/Comments.php | 437 ++ var/Widget/Abstract/Contents.php | 706 +++ var/Widget/Abstract/Metas.php | 258 + var/Widget/Abstract/Options.php | 94 + var/Widget/Abstract/Users.php | 227 + var/Widget/Ajax.php | 163 + var/Widget/Archive.php | 1864 ++++++ var/Widget/Comments/Admin.php | 143 + var/Widget/Comments/Archive.php | 489 ++ var/Widget/Comments/Edit.php | 378 ++ var/Widget/Comments/Ping.php | 161 + var/Widget/Comments/Recent.php | 62 + var/Widget/Contents/Attachment/Admin.php | 124 + var/Widget/Contents/Attachment/Edit.php | 272 + var/Widget/Contents/Attachment/Related.php | 52 + var/Widget/Contents/Attachment/Unattached.php | 42 + var/Widget/Contents/Page/Admin.php | 55 + var/Widget/Contents/Page/Edit.php | 238 + var/Widget/Contents/Page/List.php | 44 + var/Widget/Contents/Post/Admin.php | 157 + var/Widget/Contents/Post/Date.php | 101 + var/Widget/Contents/Post/Edit.php | 719 +++ var/Widget/Contents/Post/Recent.php | 39 + var/Widget/Contents/Related.php | 61 + var/Widget/Contents/Related/Author.php | 45 + var/Widget/Do.php | 87 + var/Widget/ExceptionHandle.php | 33 + var/Widget/Feedback.php | 333 ++ var/Widget/Init.php | 70 + var/Widget/Interface/Do.php | 20 + var/Widget/Login.php | 80 + var/Widget/Logout.php | 34 + var/Widget/Menu.php | 298 + var/Widget/Metas/Category/Edit.php | 425 ++ var/Widget/Metas/Category/List.php | 33 + var/Widget/Metas/Tag/Cloud.php | 60 + var/Widget/Metas/Tag/Edit.php | 358 ++ var/Widget/Notice.php | 153 + var/Widget/Options.php | 500 ++ var/Widget/Options/Discussion.php | 229 + var/Widget/Options/General.php | 180 + var/Widget/Options/Permalink.php | 321 ++ var/Widget/Options/Reading.php | 178 + var/Widget/Plugins/Config.php | 112 + var/Widget/Plugins/Edit.php | 295 + var/Widget/Plugins/List.php | 90 + var/Widget/Plugins/List/Activated.php | 32 + var/Widget/Plugins/List/Deactivated.php | 32 + var/Widget/Register.php | 84 + var/Widget/Service.php | 161 + var/Widget/Stat.php | 366 ++ var/Widget/Themes/Config.php | 90 + var/Widget/Themes/Edit.php | 174 + var/Widget/Themes/Files.php | 132 + var/Widget/Themes/List.php | 68 + var/Widget/Upgrade.php | 126 + var/Widget/Upload.php | 401 ++ var/Widget/User.php | 268 + var/Widget/Users/Admin.php | 122 + var/Widget/Users/Author.php | 36 + var/Widget/Users/Edit.php | 303 + var/Widget/Users/Profile.php | 419 ++ var/Widget/XmlRpc.php | 2093 +++++++ 531 files changed, 80105 insertions(+) create mode 100644 .gitignore create mode 100644 admin/common-js.php create mode 100644 admin/common.php create mode 100644 admin/copyright.php create mode 100644 admin/css/grid.source.css create mode 100644 admin/css/reset.source.css create mode 100644 admin/css/typecho.source.css create mode 100644 admin/editor-js.php create mode 100644 admin/extending.php create mode 100644 admin/file-upload-js.php create mode 100644 admin/file-upload.php create mode 100644 admin/footer.php create mode 100644 admin/header.php create mode 100644 admin/images/ajax-loader.gif create mode 100644 admin/images/arrow.gif create mode 100644 admin/images/attach.gif create mode 100644 admin/images/comment.gif create mode 100644 admin/images/link.png create mode 100644 admin/images/mime.gif create mode 100644 admin/images/noscreen.gif create mode 100644 admin/images/notice.gif create mode 100644 admin/images/progress.gif create mode 100644 admin/images/size-btn.gif create mode 100644 admin/images/sprite.png create mode 100644 admin/index.php create mode 100644 admin/javascript/mootools.js create mode 100755 admin/javascript/swfupload/swfupload.cookies.js create mode 100644 admin/javascript/swfupload/swfupload.js create mode 100644 admin/javascript/swfupload/swfupload.queue.js create mode 100644 admin/javascript/swfupload/swfupload.swf create mode 100644 admin/javascript/typecho.js create mode 100644 admin/login.php create mode 100644 admin/manage-comments.php create mode 100644 admin/manage-medias.php create mode 100644 admin/manage-metas.php create mode 100644 admin/manage-pages.php create mode 100644 admin/manage-posts.php create mode 100644 admin/manage-users.php create mode 100644 admin/media.php create mode 100644 admin/menu.php create mode 100644 admin/options-discussion.php create mode 100644 admin/options-general.php create mode 100644 admin/options-permalink.php create mode 100644 admin/options-plugin.php create mode 100644 admin/options-reading.php create mode 100644 admin/options-theme.php create mode 100644 admin/page-title.php create mode 100644 admin/plugins.php create mode 100644 admin/profile.php create mode 100644 admin/register.php create mode 100644 admin/theme-editor.php create mode 100644 admin/themes.php create mode 100644 admin/upgrade.php create mode 100644 admin/user.php create mode 100644 admin/welcome.php create mode 100644 admin/write-js.php create mode 100644 admin/write-page.php create mode 100644 admin/write-post.php create mode 100644 changelog.txt create mode 100644 index.php create mode 100644 install.php create mode 100644 install/Mysql.php create mode 100644 install/Mysql.sql create mode 100644 install/Pgsql.php create mode 100644 install/Pgsql.sql create mode 100644 install/SQLite.php create mode 100644 install/SQLite.sql create mode 100644 license.txt create mode 100644 mockup/001.php create mode 100644 mockup/002.php create mode 100644 mockup/003.php create mode 100644 mockup/004.php create mode 100644 mockup/005.php create mode 100644 mockup/006.php create mode 100644 mockup/007.php create mode 100644 mockup/008.php create mode 100644 mockup/010.php create mode 100644 mockup/011.php create mode 100644 mockup/012.php create mode 100644 mockup/013.php create mode 100644 mockup/014.php create mode 100644 mockup/015.php create mode 100644 mockup/016.php create mode 100644 mockup/css/grid.source.css create mode 100644 mockup/css/reset.source.css create mode 100644 mockup/css/typecho.source.css create mode 100644 mockup/images/grid.png create mode 100644 mockup/images/psd&png/sprite.png create mode 100644 mockup/images/psd&png/sprite.psd create mode 100644 mockup/images/psd&png/typecho-head-guid-shadow.png create mode 100644 mockup/images/sprite.png create mode 100644 mockup/index.html create mode 100644 mockup/javascript/mootools-1.2.1-core-yc.js create mode 100644 mockup/javascript/mootools-1.2.1-more.js create mode 100644 mockup/mockup/001.png create mode 100644 mockup/mockup/002.png create mode 100644 mockup/mockup/003.png create mode 100644 mockup/mockup/004.png create mode 100644 mockup/mockup/005.png create mode 100644 mockup/mockup/006.png create mode 100644 mockup/mockup/007.png create mode 100644 mockup/mockup/008.png create mode 100644 mockup/mockup/009.png create mode 100644 mockup/mockup/010.png create mode 100644 mockup/mockup/011.png create mode 100644 mockup/mockup/012.png create mode 100644 mockup/mockup/013.png create mode 100644 mockup/mockup/014.png create mode 100644 mockup/mockup/015.png create mode 100644 mockup/mockup/attachment.png create mode 100644 mockup/mockup/cat and tag.png create mode 100644 mockup/mockup/error.png create mode 100644 mockup/mockup/manage comments.png create mode 100644 mockup/mockup/navigation.png create mode 100644 mockup/mockup/profile.png create mode 100644 mockup/mockup/table-list.png create mode 100644 mockup/mockup/themes.png create mode 100644 mockup/mockup/write-post.png create mode 100644 mockup/slice/footer.inc.html create mode 100644 mockup/slice/header.inc.html create mode 100644 mockup/slice/typecho-dashboard-left.inc.html create mode 100644 mockup/slice/typecho-dashboard-main.inc.html create mode 100644 mockup/slice/typecho-dashboard-right.inc.html create mode 100644 mockup/slice/typecho-edit-theme.inc.html create mode 100644 mockup/slice/typecho-foot.inc.html create mode 100644 mockup/slice/typecho-head-guid.inc.html create mode 100644 mockup/slice/typecho-install-body.inc.html create mode 100644 mockup/slice/typecho-install-option.inc.html create mode 100644 mockup/slice/typecho-install-path.inc.html create mode 100644 mockup/slice/typecho-install-success.inc.html create mode 100644 mockup/slice/typecho-list-table.inc.html create mode 100644 mockup/slice/typecho-login-v2.inc.html create mode 100644 mockup/slice/typecho-login.inc.html create mode 100644 mockup/slice/typecho-option-tabs.inc.html create mode 100644 mockup/slice/typecho-page-option.inc.html create mode 100644 mockup/slice/typecho-page-title.inc.html create mode 100644 mockup/slice/typecho-pager.inc.html create mode 100644 mockup/slice/typecho-post-area.inc.html create mode 100644 mockup/slice/typecho-post-option-content.inc.html create mode 100644 mockup/slice/typecho-thumb-list.inc.html create mode 100644 todo.txt create mode 100644 tools/Makefile create mode 100644 tools/finder.exe create mode 100644 tools/list.php create mode 100644 tools/mcecp.php create mode 100644 tools/replace.php create mode 100644 tools/tabsize.php create mode 100644 tools/tc.php create mode 100644 tools/yuicompressor-2.4.2.jar create mode 100644 usr/plugins/Akismet/Plugin.php create mode 100644 usr/plugins/BlockComment/Plugin.php create mode 100644 usr/plugins/ConnectToTwitter/OAuth.php create mode 100644 usr/plugins/ConnectToTwitter/Plugin.php create mode 100644 usr/plugins/ConnectToTwitter/twitterOAuth.php create mode 100644 usr/plugins/Creole/Creole_Wiki.php create mode 100644 usr/plugins/Creole/Parse.inc.php create mode 100644 usr/plugins/Creole/Parse/Address.php create mode 100644 usr/plugins/Creole/Parse/Blockquote.php create mode 100644 usr/plugins/Creole/Parse/Box.php create mode 100644 usr/plugins/Creole/Parse/Break.php create mode 100644 usr/plugins/Creole/Parse/Center.php create mode 100644 usr/plugins/Creole/Parse/Delete.php create mode 100644 usr/plugins/Creole/Parse/Delimiter.php create mode 100644 usr/plugins/Creole/Parse/Emphasis.php create mode 100644 usr/plugins/Creole/Parse/Footnote.php create mode 100644 usr/plugins/Creole/Parse/Heading.php create mode 100644 usr/plugins/Creole/Parse/Horiz.php create mode 100644 usr/plugins/Creole/Parse/Image.php create mode 100644 usr/plugins/Creole/Parse/List.php create mode 100644 usr/plugins/Creole/Parse/Newline.php create mode 100644 usr/plugins/Creole/Parse/Paragraph.php create mode 100644 usr/plugins/Creole/Parse/Prefilter.php create mode 100644 usr/plugins/Creole/Parse/Preformatted.php create mode 100644 usr/plugins/Creole/Parse/Raw.php create mode 100644 usr/plugins/Creole/Parse/Strong.php create mode 100644 usr/plugins/Creole/Parse/Subscript.php create mode 100644 usr/plugins/Creole/Parse/Superscript.php create mode 100644 usr/plugins/Creole/Parse/Table.php create mode 100644 usr/plugins/Creole/Parse/Tighten.php create mode 100644 usr/plugins/Creole/Parse/Trim.php create mode 100644 usr/plugins/Creole/Parse/Tt.php create mode 100644 usr/plugins/Creole/Parse/Underline.php create mode 100644 usr/plugins/Creole/Parse/Url.php create mode 100644 usr/plugins/Creole/Plugin.php create mode 100644 usr/plugins/Creole/Render.inc.php create mode 100644 usr/plugins/Creole/Render/Plain.php create mode 100644 usr/plugins/Creole/Render/Plain/Anchor.php create mode 100644 usr/plugins/Creole/Render/Plain/Blockquote.php create mode 100644 usr/plugins/Creole/Render/Plain/Bold.php create mode 100644 usr/plugins/Creole/Render/Plain/Box.php create mode 100644 usr/plugins/Creole/Render/Plain/Break.php create mode 100644 usr/plugins/Creole/Render/Plain/Center.php create mode 100644 usr/plugins/Creole/Render/Plain/Code.php create mode 100644 usr/plugins/Creole/Render/Plain/Colortext.php create mode 100644 usr/plugins/Creole/Render/Plain/Deflist.php create mode 100644 usr/plugins/Creole/Render/Plain/Delete.php create mode 100644 usr/plugins/Creole/Render/Plain/Delimiter.php create mode 100644 usr/plugins/Creole/Render/Plain/Embed.php create mode 100644 usr/plugins/Creole/Render/Plain/Emphasis.php create mode 100644 usr/plugins/Creole/Render/Plain/Font.php create mode 100644 usr/plugins/Creole/Render/Plain/Freelink.php create mode 100644 usr/plugins/Creole/Render/Plain/Function.php create mode 100644 usr/plugins/Creole/Render/Plain/Heading.php create mode 100644 usr/plugins/Creole/Render/Plain/Horiz.php create mode 100644 usr/plugins/Creole/Render/Plain/Html.php create mode 100644 usr/plugins/Creole/Render/Plain/Image.php create mode 100644 usr/plugins/Creole/Render/Plain/Include.php create mode 100644 usr/plugins/Creole/Render/Plain/Interwiki.php create mode 100644 usr/plugins/Creole/Render/Plain/Italic.php create mode 100644 usr/plugins/Creole/Render/Plain/List.php create mode 100644 usr/plugins/Creole/Render/Plain/Newline.php create mode 100644 usr/plugins/Creole/Render/Plain/Page.php create mode 100644 usr/plugins/Creole/Render/Plain/Paragraph.php create mode 100644 usr/plugins/Creole/Render/Plain/Phplookup.php create mode 100644 usr/plugins/Creole/Render/Plain/Plugin.php create mode 100644 usr/plugins/Creole/Render/Plain/Prefilter.php create mode 100644 usr/plugins/Creole/Render/Plain/Preformatted.php create mode 100644 usr/plugins/Creole/Render/Plain/Raw.php create mode 100644 usr/plugins/Creole/Render/Plain/Revise.php create mode 100644 usr/plugins/Creole/Render/Plain/Smiley.php create mode 100644 usr/plugins/Creole/Render/Plain/Specialchar.php create mode 100644 usr/plugins/Creole/Render/Plain/Strong.php create mode 100644 usr/plugins/Creole/Render/Plain/Subscript.php create mode 100644 usr/plugins/Creole/Render/Plain/Superscript.php create mode 100644 usr/plugins/Creole/Render/Plain/Table.php create mode 100644 usr/plugins/Creole/Render/Plain/Tighten.php create mode 100644 usr/plugins/Creole/Render/Plain/Titlebar.php create mode 100644 usr/plugins/Creole/Render/Plain/Toc.php create mode 100644 usr/plugins/Creole/Render/Plain/Tt.php create mode 100644 usr/plugins/Creole/Render/Plain/Underline.php create mode 100644 usr/plugins/Creole/Render/Plain/Url.php create mode 100644 usr/plugins/Creole/Render/Plain/Wikilink.php create mode 100644 usr/plugins/Creole/Render/Xhtml.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Address.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Anchor.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Blockquote.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Bold.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Box.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Break.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Center.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Code.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Colortext.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Deflist.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Delete.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Delimiter.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Embed.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Emphasis.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Font.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Freelink.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Function.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Heading.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Horiz.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Html.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Image.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Include.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Interwiki.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Italic.php create mode 100644 usr/plugins/Creole/Render/Xhtml/List.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Newline.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Page.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Paragraph.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Phplookup.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Plugin.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Prefilter.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Preformatted.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Raw.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Revise.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Smiley.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Specialchar.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Strong.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Subscript.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Superscript.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Table.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Tighten.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Titlebar.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Toc.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Tt.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Underline.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Url.php create mode 100644 usr/plugins/Creole/Render/Xhtml/Wikilink.php create mode 100644 usr/plugins/FlashMp3Player/Plugin.php create mode 100644 usr/plugins/FlashMp3Player/swf/dewplayer.swf create mode 100644 usr/plugins/GoogleCodePrettify/Plugin.php create mode 100644 usr/plugins/GoogleCodePrettify/src/lang-apollo.js create mode 100644 usr/plugins/GoogleCodePrettify/src/lang-css.js create mode 100644 usr/plugins/GoogleCodePrettify/src/lang-hs.js create mode 100644 usr/plugins/GoogleCodePrettify/src/lang-lisp.js create mode 100644 usr/plugins/GoogleCodePrettify/src/lang-lua.js create mode 100644 usr/plugins/GoogleCodePrettify/src/lang-ml.js create mode 100644 usr/plugins/GoogleCodePrettify/src/lang-proto.js create mode 100644 usr/plugins/GoogleCodePrettify/src/lang-sql.js create mode 100644 usr/plugins/GoogleCodePrettify/src/lang-vb.js create mode 100644 usr/plugins/GoogleCodePrettify/src/lang-wiki.js create mode 100644 usr/plugins/GoogleCodePrettify/src/prettify.css create mode 100644 usr/plugins/GoogleCodePrettify/src/prettify.js create mode 100644 usr/plugins/GoogleCodeSVN/Action.php create mode 100644 usr/plugins/GoogleCodeSVN/Plugin.php create mode 100644 usr/plugins/HelloWorld/Plugin.php create mode 100644 usr/plugins/MagikeToTypecho/Action.php create mode 100644 usr/plugins/MagikeToTypecho/Plugin.php create mode 100644 usr/plugins/MagikeToTypecho/panel.php create mode 100644 usr/plugins/PageToLinks.php create mode 100644 usr/plugins/PostToQzone/Plugin.php create mode 100644 usr/plugins/PostToQzone/phpmailer.php create mode 100644 usr/plugins/PostToQzone/smtp.php create mode 100644 usr/plugins/SaeUpload/Plugin.php create mode 100644 usr/plugins/ShareCode/Plugin.php create mode 100644 usr/plugins/SimpleCode.php create mode 100644 usr/plugins/Textile2/Plugin.php create mode 100644 usr/plugins/Textile2/Textile.php create mode 100644 usr/plugins/TinyMCE/Plugin.php create mode 100644 usr/plugins/TinyMCE/tiny_mce/langs.php create mode 100644 usr/plugins/TinyMCE/tiny_mce/langs/typecho.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/coder/editor_plugin.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/editor_plugin.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/template.htm create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/media/css/content.css create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/media/css/media.css create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/media/editor_plugin.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/media/img/flash.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/media/img/flv_player.swf create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/media/img/quicktime.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/media/img/realmedia.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/media/img/shockwave.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/media/img/trans.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/media/img/windowsmedia.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/media/js/embed.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/media/js/media.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/media/langs/typecho_dlg.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/media/media.htm create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/morebreak/css/content.css create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/morebreak/editor_plugin.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/morebreak/img/morebreak.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/morebreak/img/trans.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/safari/blank.htm create mode 100644 usr/plugins/TinyMCE/tiny_mce/plugins/safari/editor_plugin.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/about.htm create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/anchor.htm create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/charmap.htm create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/color_picker.htm create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/editor_template.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/image.htm create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/img/colorpicker.jpg create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/img/icons.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/about.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/anchor.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/charmap.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/color_picker.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/image.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/link.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/source_editor.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/langs/typecho.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/langs/typecho_dlg.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/link.htm create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/content.css create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/dialog.css create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/img/items.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/img/menu_arrow.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/img/menu_check.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/img/progress.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/img/sprite.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/img/tabs.gif create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/ui.css create mode 100644 usr/plugins/TinyMCE/tiny_mce/themes/advanced/source_editor.htm create mode 100644 usr/plugins/TinyMCE/tiny_mce/tiny_mce.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/tiny_mce_popup.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/utils/editable_selects.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/utils/form_utils.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/utils/mctabs.js create mode 100644 usr/plugins/TinyMCE/tiny_mce/utils/validate.js create mode 100644 usr/plugins/WordpressToTypecho/Action.php create mode 100644 usr/plugins/WordpressToTypecho/Plugin.php create mode 100644 usr/plugins/WordpressToTypecho/panel.php create mode 100644 usr/plugins/ZenCoding/Plugin.php create mode 100644 usr/plugins/ZenCoding/zen_textarea.js create mode 100644 usr/themes/default/404.php create mode 100644 usr/themes/default/archive.php create mode 100644 usr/themes/default/comments.php create mode 100644 usr/themes/default/css/960.gs.css create mode 100644 usr/themes/default/css/uncompressed/960.css create mode 100644 usr/themes/default/css/uncompressed/reset.css create mode 100644 usr/themes/default/css/uncompressed/text.css create mode 100644 usr/themes/default/footer.php create mode 100644 usr/themes/default/functions.php create mode 100644 usr/themes/default/header.php create mode 100644 usr/themes/default/index.php create mode 100644 usr/themes/default/page.php create mode 100644 usr/themes/default/post.php create mode 100644 usr/themes/default/screenshot.png create mode 100644 usr/themes/default/sidebar.php create mode 100644 usr/themes/default/style.css create mode 100644 var/Helper.php create mode 100644 var/IXR/Base64.php create mode 100644 var/IXR/Client.php create mode 100644 var/IXR/ClientMulticall.php create mode 100644 var/IXR/Date.php create mode 100644 var/IXR/Error.php create mode 100644 var/IXR/Exception.php create mode 100644 var/IXR/IntrospectionServer.php create mode 100644 var/IXR/Message.php create mode 100644 var/IXR/Request.php create mode 100644 var/IXR/Server.php create mode 100644 var/IXR/Value.php create mode 100644 var/Typecho/Common.php create mode 100644 var/Typecho/Common/Paragraph.php create mode 100644 var/Typecho/Config.php create mode 100644 var/Typecho/Cookie.php create mode 100644 var/Typecho/Date.php create mode 100644 var/Typecho/Db.php create mode 100644 var/Typecho/Db/Adapter.php create mode 100644 var/Typecho/Db/Adapter/Exception.php create mode 100644 var/Typecho/Db/Adapter/Mysql.php create mode 100644 var/Typecho/Db/Adapter/Pdo.php create mode 100644 var/Typecho/Db/Adapter/Pdo/Mysql.php create mode 100644 var/Typecho/Db/Adapter/Pdo/Pgsql.php create mode 100644 var/Typecho/Db/Adapter/Pdo/SQLite.php create mode 100644 var/Typecho/Db/Adapter/Pgsql.php create mode 100644 var/Typecho/Db/Adapter/SQLite.php create mode 100644 var/Typecho/Db/Exception.php create mode 100644 var/Typecho/Db/Query.php create mode 100644 var/Typecho/Db/Query/Exception.php create mode 100644 var/Typecho/Exception.php create mode 100644 var/Typecho/Feed.php create mode 100644 var/Typecho/Http/Client.php create mode 100644 var/Typecho/Http/Client/Adapter.php create mode 100644 var/Typecho/Http/Client/Adapter/Curl.php create mode 100644 var/Typecho/Http/Client/Adapter/Socket.php create mode 100644 var/Typecho/Http/Client/Exception.php create mode 100644 var/Typecho/I18n.php create mode 100644 var/Typecho/I18n/GetText.php create mode 100644 var/Typecho/I18n/GetTextMulti.php create mode 100644 var/Typecho/Json.php create mode 100644 var/Typecho/Plugin.php create mode 100644 var/Typecho/Plugin/Exception.php create mode 100644 var/Typecho/Plugin/Interface.php create mode 100644 var/Typecho/Request.php create mode 100644 var/Typecho/Response.php create mode 100644 var/Typecho/Router.php create mode 100644 var/Typecho/Router/Exception.php create mode 100644 var/Typecho/Router/Parser.php create mode 100644 var/Typecho/Validate.php create mode 100644 var/Typecho/Widget.php create mode 100644 var/Typecho/Widget/Exception.php create mode 100644 var/Typecho/Widget/Helper/Empty.php create mode 100644 var/Typecho/Widget/Helper/Form.php create mode 100644 var/Typecho/Widget/Helper/Form/Element.php create mode 100644 var/Typecho/Widget/Helper/Form/Element/Checkbox.php create mode 100644 var/Typecho/Widget/Helper/Form/Element/Hidden.php create mode 100644 var/Typecho/Widget/Helper/Form/Element/Password.php create mode 100644 var/Typecho/Widget/Helper/Form/Element/Radio.php create mode 100644 var/Typecho/Widget/Helper/Form/Element/Select.php create mode 100644 var/Typecho/Widget/Helper/Form/Element/Submit.php create mode 100644 var/Typecho/Widget/Helper/Form/Element/Text.php create mode 100644 var/Typecho/Widget/Helper/Form/Element/Textarea.php create mode 100644 var/Typecho/Widget/Helper/Layout.php create mode 100644 var/Typecho/Widget/Helper/PageNavigator.php create mode 100644 var/Typecho/Widget/Helper/PageNavigator/Box.php create mode 100644 var/Typecho/Widget/Helper/PageNavigator/Classic.php create mode 100644 var/Upgrade.php create mode 100644 var/Widget/Abstract.php create mode 100644 var/Widget/Abstract/Comments.php create mode 100644 var/Widget/Abstract/Contents.php create mode 100644 var/Widget/Abstract/Metas.php create mode 100644 var/Widget/Abstract/Options.php create mode 100644 var/Widget/Abstract/Users.php create mode 100644 var/Widget/Ajax.php create mode 100644 var/Widget/Archive.php create mode 100644 var/Widget/Comments/Admin.php create mode 100644 var/Widget/Comments/Archive.php create mode 100644 var/Widget/Comments/Edit.php create mode 100644 var/Widget/Comments/Ping.php create mode 100644 var/Widget/Comments/Recent.php create mode 100644 var/Widget/Contents/Attachment/Admin.php create mode 100644 var/Widget/Contents/Attachment/Edit.php create mode 100644 var/Widget/Contents/Attachment/Related.php create mode 100644 var/Widget/Contents/Attachment/Unattached.php create mode 100644 var/Widget/Contents/Page/Admin.php create mode 100644 var/Widget/Contents/Page/Edit.php create mode 100644 var/Widget/Contents/Page/List.php create mode 100644 var/Widget/Contents/Post/Admin.php create mode 100644 var/Widget/Contents/Post/Date.php create mode 100644 var/Widget/Contents/Post/Edit.php create mode 100644 var/Widget/Contents/Post/Recent.php create mode 100644 var/Widget/Contents/Related.php create mode 100644 var/Widget/Contents/Related/Author.php create mode 100644 var/Widget/Do.php create mode 100644 var/Widget/ExceptionHandle.php create mode 100644 var/Widget/Feedback.php create mode 100644 var/Widget/Init.php create mode 100644 var/Widget/Interface/Do.php create mode 100644 var/Widget/Login.php create mode 100644 var/Widget/Logout.php create mode 100644 var/Widget/Menu.php create mode 100644 var/Widget/Metas/Category/Edit.php create mode 100644 var/Widget/Metas/Category/List.php create mode 100644 var/Widget/Metas/Tag/Cloud.php create mode 100644 var/Widget/Metas/Tag/Edit.php create mode 100644 var/Widget/Notice.php create mode 100644 var/Widget/Options.php create mode 100644 var/Widget/Options/Discussion.php create mode 100644 var/Widget/Options/General.php create mode 100644 var/Widget/Options/Permalink.php create mode 100644 var/Widget/Options/Reading.php create mode 100644 var/Widget/Plugins/Config.php create mode 100644 var/Widget/Plugins/Edit.php create mode 100644 var/Widget/Plugins/List.php create mode 100644 var/Widget/Plugins/List/Activated.php create mode 100644 var/Widget/Plugins/List/Deactivated.php create mode 100644 var/Widget/Register.php create mode 100644 var/Widget/Service.php create mode 100644 var/Widget/Stat.php create mode 100644 var/Widget/Themes/Config.php create mode 100644 var/Widget/Themes/Edit.php create mode 100644 var/Widget/Themes/Files.php create mode 100644 var/Widget/Themes/List.php create mode 100644 var/Widget/Upgrade.php create mode 100644 var/Widget/Upload.php create mode 100644 var/Widget/User.php create mode 100644 var/Widget/Users/Admin.php create mode 100644 var/Widget/Users/Author.php create mode 100644 var/Widget/Users/Edit.php create mode 100644 var/Widget/Users/Profile.php create mode 100644 var/Widget/XmlRpc.php diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..0e00d107 --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +.*.swp +.*.swo +._* +.DS_Store +/Debug/ +/ImgCache/ +/Backup_rar/ +/Debug/ +/debug/ +/upload/ +/avatar/ +/.idea/ +.svn/ +*.orig +*.aps +*.APS +*.chm +*.exp +*.pdb +*.rar +.smbdelete* +*.sublime* +.sass-cache +config.rb +/config.inc.php \ No newline at end of file diff --git a/admin/common-js.php b/admin/common-js.php new file mode 100644 index 00000000..90a92faa --- /dev/null +++ b/admin/common-js.php @@ -0,0 +1,111 @@ + + + + diff --git a/admin/common.php b/admin/common.php new file mode 100644 index 00000000..5565870f --- /dev/null +++ b/admin/common.php @@ -0,0 +1,57 @@ +begin(); + +Typecho_Widget::widget('Widget_Options')->to($options); +Typecho_Widget::widget('Widget_User')->to($user); +Typecho_Widget::widget('Widget_Notice')->to($notice); +Typecho_Widget::widget('Widget_Menu')->to($menu); + +/** 初始化上下文 */ +$request = $options->request; +$response = $options->response; + +/** 检测是否是第一次登录 */ +$currentMenu = $menu->getCurrentMenu(); +list($prefixVersion, $suffixVersion) = explode('/', $options->version); +$params = parse_url($currentMenu[2]); +$adminFile = basename($params['path']); + +if (!$user->logged && !Typecho_Cookie::get('__typecho_first_run') && !empty($currentMenu)) { + + if ('welcome.php' != $adminFile) { + $response->redirect(Typecho_Common::url('welcome.php', $options->adminUrl)); + } else { + Typecho_Cookie::set('__typecho_first_run', 1); + } + +} else { + + /** 检测版本是否升级 */ + if ($user->pass('administrator', true) && !empty($currentMenu)) { + $mustUpgrade = (!defined('Typecho_Common::VERSION') || version_compare(str_replace('/', '.', Typecho_Common::VERSION), + str_replace('/', '.', $options->version), '>')); + + if ($mustUpgrade && 'upgrade.php' != $currentMenu[2]) { + $response->redirect(Typecho_Common::url('upgrade.php', $options->adminUrl)); + } else if (!$mustUpgrade && 'upgrade.php' == $currentMenu[2]) { + $response->redirect(Typecho_Common::url('index.php', $options->adminUrl)); + } else if (!$mustUpgrade && 'welcome.php' == $currentMenu[2] && $user->logged) { + $response->redirect(Typecho_Common::url('index.php', $options->adminUrl)); + } + } + +} diff --git a/admin/copyright.php b/admin/copyright.php new file mode 100644 index 00000000..1e3601c7 --- /dev/null +++ b/admin/copyright.php @@ -0,0 +1,13 @@ + +
+

typecho

+ +
+
    +
  • +
  • +
  • +
  • +
+
+
diff --git a/admin/css/grid.source.css b/admin/css/grid.source.css new file mode 100644 index 00000000..29f6d1a5 --- /dev/null +++ b/admin/css/grid.source.css @@ -0,0 +1,262 @@ +/* vim: set et sw=4 ts=4 sts=4 fdm=marker ff=unix fenc=utf8 */ +/** + * 格栅系统 + * + * 根据 Taobao 栅格系统规范制定 + * + * @change + * 2008-09-19 + * 初始化版本,使用“浮动定位布局” + * + * @author i.feelinglucky@gmail.com + * @since 2008-09-19 + * @link http://www.gracecode.com/ + * @version $Id: grid.source.css 470 2008-09-26 15:23:38Z i.feelinglucky $ + */ + +.body { + clear:both; + width:100%; +} + +.container { + float:left; + width:100%; +} + +.container:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +/** + * 目前制定的是 950px 宽度 + */ +.body-950 { + width: 950px; + margin: 0px auto; +} + +.prefix { + padding-left: 10px; +} + +.suffix { + padding-right: 10px; +} + +/** + * 将页面分成了 24 份,同时指定每个栅格的基本样式 + */ +.column-01, .column-02, .column-03, .column-04, .column-05, +.column-06, .column-07, .column-08, .column-09, .column-10, +.column-11, .column-12, .column-13, .column-14, .column-15, +.column-16, .column-17, .column-18, .column-19, .column-20, +.column-21, .column-22, .column-23, .column-24 { + float: left; + width: 100%; + display: inline; + position: relative; + overflow: hidden; +} + +/** + * 950 宽度的格栅 + * + * 公式:(40 x N) - 10 = 950 + */ +.body-950 .column-01 { + width: 30px; +} + +.body-950 .column-02 { + width: 70px; +} + +.body-950 .column-03 { + width: 110px; +} + +.body-950 .column-04 { + width: 150px; +} + +.body-950 .column-05 { + width: 190px; +} + +.body-950 .column-06 { + width: 230px; +} + +.body-950 .column-07 { + width: 270px; +} + +.body-950 .column-08 { + width: 310px; +} + +.body-950 .column-09 { + width: 350px; +} + +.body-950 .column-10 { + width: 390px; +} + +.body-950 .column-11 { + width: 430px; +} + +.body-950 .column-12 { + width: 470px; +} + +.body-950 .column-13 { + width: 510px; +} + +.body-950 .column-14 { + width: 550px; +} + +.body-950 .column-15 { + width: 590px; +} + +.body-950 .column-16 { + width: 630px; +} + +.body-950 .column-17 { + width: 670px; +} + +.body-950 .column-18 { + width: 710px; +} + +.body-950 .column-19 { + width: 750px; +} + +.body-950 .column-20 { + width: 790px; +} + +.body-950 .column-21 { + width: 830px; +} + +.body-950 .column-22 { + width: 870px; +} + +.body-950 .column-23 { + width: 910px; +} + +.body-950 .column-24 { + width: 950px; +} + +/** + * 对比栅格,设置偏移位置 + */ +.body-950 .column, .body-950 .start-01 { + padding-left: 0; +} + +.body-950 .start-02 { + padding-left: 40px; +} + +.body-950 .start-03 { + padding-left: 80px; +} + +.body-950 .start-04 { + padding-left: 120px; +} + +.body-950 .start-05 { + padding-left: 160px; +} + +.body-950 .start-06 { + padding-left: 200px; +} + +.body-950 .start-07 { + padding-left: 240px; +} + +.body-950 .start-08 { + padding-left: 280px; +} + +.body-950 .start-09 { + padding-left: 320px; +} + +.body-950 .start-10 { + padding-left: 360px; +} + +.body-950 .start-11 { + padding-left: 400px; +} + +.body-950 .start-12 { + padding-left: 440px; +} + +.body-950 .start-13 { + padding-left: 480px; +} + +.body-950 .start-14 { + padding-left: 520px; +} + +.body-950 .start-15 { + padding-left: 560px; +} + +.body-950 .start-16 { + padding-left: 600px; +} + +.body-950 .start-17 { + padding-left: 640px; +} +.body-950 .start-18 { + padding-left: 680px; +} +.body-950 .start-19 { + padding-left: 720px; +} + +.body-950 .start-20 { + padding-left: 760px; +} + +.body-950 .start-21 { + padding-left: 800px; +} + +.body-950 .start-22 { + padding-left: 840px; +} + +.body-950 .start-23 { + padding-left: 880px; +} + +.body-950 .start-24 { + padding-left: 920px; +} diff --git a/admin/css/reset.source.css b/admin/css/reset.source.css new file mode 100644 index 00000000..7ba309ac --- /dev/null +++ b/admin/css/reset.source.css @@ -0,0 +1,79 @@ +/* vim: set et sw=4 ts=4 sts=4 fdm=marker ff=unix fenc=utf8 */ +/** + * CSS 重置样式 + * + * 重置主流浏览器默认样式,参考 YUI 以及 Blueprint + * + * @author i.feelinglucky@gmail.com + * @link http://www.gracecode.com/ + * @version $Id: reset.source.css 470 2008-09-26 15:23:38Z i.feelinglucky $ + */ +html, body, div, span, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, code, +del, dfn, em, img, q, dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + margin: 0em; padding: 0em; border: 0em; + font-weight: inherit; + font-style: inherit; + font-family: inherit; + vertical-align: baseline; + outline-style: none; + outline-width: none; +} + +h1 { + font-size: 200%; +} + +h2 { + font-size: 180%; +} + +h3 { + font-size: 160%; +} + +h4 { + font-size: 140%; +} + +h5 { + font-size: 120%; +} + +h6, p { + font-size: 100%; +} + +body { + line-height: 1.5; +} + +table { + border-collapse: separate; + border-spacing: 0; +} + +caption, th, td { + text-align: left; + font-weight: normal; +} + +table, td, th { + vertical-align: middle; +} + +blockquote:before, blockquote:after, q:before, q:after { + content: ""; +} + +blockquote, q { + quotes: "" ""; +} + +a img { + border: none; + outline: none; +} diff --git a/admin/css/typecho.source.css b/admin/css/typecho.source.css new file mode 100644 index 00000000..e18514ea --- /dev/null +++ b/admin/css/typecho.source.css @@ -0,0 +1,2425 @@ +/* vim: set et sw=4 ts=4 sts=4 fdm=marker ff=unix fenc=utf8 */ +/** + * Typecho 后台样式 + * + * @author i.feelinglucky@gmail.com + * @since 2008-09-26 + * @link http://www.typecho.net/ + * @version $Id: grid.source.css 470 2008-09-26 15:23:38Z i.feelinglucky $ + */ + +/** + * Typecho 全局样式 + */ + +html { + height: 100%; +} + +body { + /* + background: #f7fbe9; + color: #333; + */ + font-family: "Lucida Grande","Lucida Sans Unicode",Tahoma,Verdana; + background: #333; + color: #f7fbe9; + /* + overflow-x: hidden; + */ +} + +/* +body > div { + background: #f7fbe9; + color: #333; +} +*/ + +body.bright, .main { + background: #f7fbe9; + color: #333; +} + +.main:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +body.no-overflow { + overflow: hidden; +} + +body.dark { + background: #333; +} + +h1, h2, h3, h4, h5, h6, p { + color: #333; +} + +h1, h2, h3, h4, h5, h6 { + font-weight: 600; + /*font-family: Georgia, serif;*/ +} + +h1 { + font-size: 18px; +} + +h2 { + font-size: 16px; +} + +ul, ol { + list-style: none; +} + +p { + font-size: 12px; +} + +a { + color: #BD6800; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +a.button, /*span.balloon,*/ a.balloon-button, .typecho-pager a { + background: #BD6800; + color: #FFF; + padding: 2px 4px; + text-decoration: none; + font-weight: bold; + + /** 修正ie中文不对齐 */ + zoom:1; + + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + -khtml-border-radius: 2px; + + /* hope IE support border radius, God save me! */ + border-radius: 2px; +} +span.balloon { + font-size: 12px; + font-weight: normal; + color: #666; +} + +a.size-1 { + background: #C4CD9C; +} + +a.size-10 { + background: #AFBA7C; +} + +a.size-20 { + background: #9AA859; +} + +a.size-50 { + background: #717B40; +} + +a.size-100 { + background: #545C30; +} + +a.size-0 { + background: #373D1F; +} + +span.balloon, a.balloon-button { + /*padding: 0 4px;*/ +} + +a.button:hover, a.balloon-button:hover { + background: #D29B51; + text-decoration: none; +} + +a.size-1:hover { + background: #AFBA7C; +} + +a.size-10:hover { + background: #9AA859; +} + +a.size-20:hover { + background: #717B40; +} + +a.size-50:hover { + background: #545C30; +} + +a.size-100:hover { + background: #373D1F; +} + +a.size-0:hover { + background: #2C3018; +} + +a.important { + color: #fff; +} + +em { + color: #e47e00; + font-weight: normal; +} + +form { + padding: 0; + margin: 0; +} + +input, textarea { + font-size: 13px; + padding: 2px; +} + +@media screen and (-webkit-min-device-pixel-ratio:0) { + input, textarea { padding: 1px; } +} + +textarea { + overflow: auto; + line-height: 150%; + resize: none; +} + +em { + font-style: normal; +} + +input:hover { + /* + cursor: pointer; + */ +} + +input, select, textarea { + font-family: "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; + vertical-align: middle; +} + +input[type=text], input[type=password], +input.text, input.title, +textarea { + background: #fff; + padding: 3px; + border: 1px solid #a0a0a0; + border-bottom-color: #c4c4c4; + border-right-color: #c4c4c4; + box-shadow: inset 1px 1px #dedede, inset 2px 2px #f4f4f4; + -o-box-shadow: inset 1px 1px #dedede, inset 2px 2px #f4f4f4; + -moz-box-shadow: inset 1px 1px #dedede, inset 2px 2px #f4f4f4; + -webkit-box-shadow: inset 1px 1px #dedede, inset 2px 2px #f4f4f4; +} + +/** hack webkit border by 70 */ +input:focus, textarea:focus, select:focus { + outline: 0 !important; +} + +select { + font-size: 13px; + padding: 1px; +} + + +@media screen and (-webkit-min-device-pixel-ratio:0) { + select { padding: 0; } +} + +button { + line-height: 22px; height: 26px; vertical-align: middle; + background-color: #f4f4f4; + font-size: 13px; + padding: 0 10px; + *padding: 0 5px; + -moz-border-radius: 13px; + -webkit-border-radius: 13px; + -khtml-border-radius: 13px; + border-radius: 13px; + cursor: pointer; + margin: 0; + border: 1px solid #AAA; + color: #333; + text-shadow: 0 1px #fff; + background: -webkit-gradient(linear, 0 0, 0 100%, from(#FFFFFF), to(#DDDDDD)); + background: -moz-linear-gradient(top, #FFFFFF, #DDDDDD); + background: -o-linear-gradient(top, #FFFFFF, #DDDDDD); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#dddddd'); /* IE6,IE7 */ + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#dddddd')"; +} + +button:hover { border-color: #666 } + +img.avatar { + padding: 2px; + background: #FFF; + float: right; + + border-bottom: 1px solid #DEE4C5; + border-right: 1px solid #DEE4C5; +} + +/** + * clearfix + */ +.clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +* html>body .clearfix { display: inline-block; width: 100%; } +* html .clearfix { height: 1%; /* End hide from IE-mac */ } +/* ie7 hack*/ +*+html .clearfix { min-height: 1%; } +/*]]>*/ + +/** + * 圆角 + */ +.typecho-radius-topleft { + -moz-border-radius-topleft: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; +} + +.typecho-radius-topright { + -moz-border-radius-topright: 4px; + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; +} + +.typecho-radius-bottomleft { + -moz-border-radius-bottomleft: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; +} + +.typecho-radius-bottomright { + -moz-border-radius-bottomright: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +/** + * logo 的样式 + */ +.logo { + display: block; + height: 20px; + width: 92px; + overflow: hidden; + text-indent: -9999px; + background: url(../images/sprite.png) no-repeat scroll 0px -78px; +} + +.logo-dark { + display: block; + height: 21px; + width: 92px; + overflow: hidden; + text-indent: -9999px; + background: url(../images/sprite.png) no-repeat scroll 0px -150px; +} + +.loading { + background-image: url(../images/ajax-loader.gif); + background-position: left center; + background-repeat: no-repeat; +} + + +/** + * 典型配置选项 + */ +/* +.typecho-option { + +} + */ + +.typecho-option li { + padding-left: 110px; +} + +.typecho-option label.typecho-label { + float: left; + width: 110px; + text-align: right; + margin: 1px 5px 0 -120px; + font-size: 13px; +} + +.typecho-option .description { + color: #555; +} + +/** 增加配置面板内部的错误样式 by 70 */ +.typecho-option .message { + padding: 2px 4px; + font-size: 12px; + width: 325px; + margin-top: 5px; + + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + -khtml-border-radius: 4px; + + /* hope IE support border radius, God save me! */ + border-radius: 4px; +} + +.typecho-mini-panel .typecho-option .message { + width: 250px; +} + + +/** + * 提示信息框 + */ +.message { + padding: 5px 10px; + font-size: 14px; + color: #333; + margin-bottom: 10px; + overflow: hidden; +} + +.message a { + color: #333; + border-bottom: 1px dashed #aaa; + line-height: 20px; +} + +.message a:hover { + text-decoration: none; + border-style: solid; +} + +.message blockquote { + margin: 5px 10px; + padding: 0 5px; + font-size: 13px; +} + +.error { + border: 1px solid #fbc2c4; + background: #fbe3e4; + color: #8A1F11; +} + +.error a { + color: #8A1F11; + border-color:#8A1F11; +} + +.notice { + background: #fff6bf; + border: 1px solid #ffd324; + color: #514721; +} + +.notice a { + color: #514721; + border-color:#514721; +} + +.success { + background: #e6efc2; + border: 1px solid #c6d880; + color: #264409; +} + +.success a { + color: #264409; + border-color:#264409; +} + +/** 增加顶部消息样式 by 70 */ +.popup { + margin-top: 30px; + margin-bottom: -10px; + width: 928px; +} + +/** + * 安装样式 + * + * @author mingcheng + * @date 2008-09-06 + */ +/** + * 安装向导 + */ +.typecho-install-patch { + height: 30px; + line-height: 30px; + background: #333; +} + +.typecho-install-patch ol { + position: relative; + overflow: hidden; + margin-left: 20px; /* 给第一个位置流出 20px */ + zoom: 1; +} + +.typecho-install-patch li { + font-weight: 600; + float: left; + color: #999; + font-size: 12px; + height: 30px; + line-height: 30px; + padding-left: 20px; + left: -20px; + position: relative; + margin-right: 15px; + background: #333 url(../images/sprite.png) no-repeat scroll 0px 0px; +} + +.typecho-install-patch li.current { + color: #fff; +} + + +/** + * 安装主体内容 + */ +.typecho-install { + margin: 30px auto; + *padding-bottom: 30px; +} + +.typecho-install .typecho-install-title, .typecho-install .typecho-install-body { + padding: 0px 0px 10px 0px;; + margin: 0px 0px 10px 0px; + border-bottom: 1px solid #dee4c5; +} + +.typecho-install .typecho-install-title { + line-height: 25px; + height: 25px; + padding-left: 100px; + background: url(../images/sprite.png) no-repeat scroll 0px -75px; +} + +/* +.typecho-install .typecho-install-body { + +} + */ + +.typecho-install .typecho-install-body h2 { + margin-top: 10px; + color: #e47e00; +} + +.typecho-install .typecho-install-body p { + line-height: 18px; + margin-top: 5px; + text-align: justify; +} + +.typecho-install .session { + margin-bottom: 20px; +} + +.typecho-install .session ul { + font-size: 13px; + margin: 15px 0px 0px 20px; +} + +.typecho-install .session a:link, .typecho-install .session a:hover { +} + +.typecho-install .typecho-option { + margin: 10px 0px; +} + +.typecho-install .typecho-option li { + margin-bottom: 5px; +} + +.typecho-install .typecho-option .message { + margin: 2px 0px; + overflow: hidden; +} + +.typecho-install .typecho-option .message, +.typecho-install .typecho-option input { + width: 325px; +} + +.typecho-install .typecho-option input.mini { + width: 125px; +} + +/* +.typecho-install .submit { +margin-top: 25px; +} + */ + +/** + * @安装样式结束 + */ + +/** + * 后台分页 + */ +.typecho-pager { + text-align: center; + height: 20px; +} + +.typecho-pager .typecho-pager-content { + display: inline-block; + *display: inline; + *zoom: 1; +} + +.typecho-pager h5 { + font-size: 12px; + line-height: 15px; + font-weight: normal; + float: left; +} + +.typecho-pager ul { + line-height: 20px; + height: 20px; + overflow: hidden; + float: left; + zoom: 1; +} + +.typecho-pager li { + font-family: arial,sans-serif; + margin-right: 3px; + font-size: 13px; + float: left; + height: 20px; + line-height: 20px; +} + +.typecho-pager a { + color: #333; + display: block; + height: 20px; + outline: none; + padding: 0 8px; + float: left; + background: #dee4c5; +} + +.typecho-pager a:hover { + color: #333; + text-decoration: none; + background: #C4CD9C; +} + +.typecho-pager li.current a { + background: #e47e00; +} + +.typecho-pager li.current a { + color: #fff; +} + + +/** + * 登录框 + */ +.typecho-login { + position: relative; + margin: 15% auto; +} + +.typecho-login .logo, .typecho-login .logo-dark { + margin: 0px auto 15px; +} + +.typecho-login form { + background: #e5ead1; + margin: 0 10px; + padding: 25px 20px; + font-size: 12px; +} + +.typecho-login legend { + display: none; +} + +.typecho-login label { + display: block; + font-weight: bold; +} + +.typecho-login input.text { + width: 205px; + font-size: 18px; +} + +.typecho-login form p { + margin-bottom:15px; +} + +.typecho-login form p.submit { + margin: 5px 0px 0px 0px; + position: relative; +} + +.typecho-login form p.submit button { + position: absolute; + right: 0px; + top: 0px; +} + +.typecho-login .more-link { + font-size: 12px; + margin: 10px auto; + padding: 0 10px; + clear: both; + overflow: hidden; +} + +.typecho-login .more-link .back-to-site { + float: left; + width: 120px; + text-align: left; +} + +.typecho-login .more-link .forgot-password { + float: right; + width: 120px; + text-align: right; +} + + +/** + * 后台头部导航 + */ +.typecho-head-guid { + height: 30px; + background: #333; + color: #fff; + position: relative; + z-index: 250; /* IE 是个 250 */ + /*border-bottom: 1px solid #DCE2C0;*/ +} + +.typecho-head-guid dl { + overflow: hidden; + /*margin-left:10px;*/ + zoom: 1; +} + +.typecho-head-guid dt { + float: left; + margin: 0; + font-size: 13px; + overflow: hidden; +} + +.typecho-head-guid dt a:link, .typecho-head-guid dt a:visited { + float: left; + color: #fff; + height: 30px; + line-height: 30px; + padding: 0 30px; + background: #333; + display: block; + outline: none; +} + +/** 增加focus类用来标示当前的菜单项 by 70 */ +.typecho-head-guid dt.focus a:link, .typecho-head-guid dt.focus a:visited, +.typecho-head-guid dt.current a:link, .typecho-head-guid dt.current a:visited, +.typecho-head-guid dt a:hover { + background: #444 /*url(../images/sprite.png) 0 -360px repeat-x*/; + /*text-decoration: underline;*/ +} + +.typecho-head-guid dd { + display:none; + position:absolute; + /* 替换下拉菜单背景 by fen (2008-11-12) */ + /* background: url(../images/typecho-head-guid-shadow.png) bottom no-repeat; + border: 1px solid #E5EAD1; + border-top: none;*/ + border: 1px solid #CED7A8; + border-top: none; + background: #DCE2C0; + font-size: 13px; + overflow: hidden; + z-index:100; + padding: 10px; + z-index: 250; + top: 30px; + min-width: 140px; + _width: 140px; /* IE6需要这个宽度 */ + -moz-border-radius-bottomleft: 3px; + -moz-border-radius-bottomright: 3px; + -webkit-border-bottom-left-radius: 3px; + -webkit-border-bottom-right-radius: 3px; + + /* hope IE support border radius, God save me! */ + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} + +.typecho-head-guid ul { + position: relative; + top: 0; + padding: 0; + overflow: hidden; + min-width: 140px; +} + +.typecho-head-guid li { + /*margin-bottom: 1px;*/ + border-top: 1px solid #EFEFDE; + border-bottom: 1px solid #CED6A5; +} + +.typecho-head-guid dd li.first { + background: none; + padding-top: 0; +} + +.typecho-head-guid dd li.focus a, .typecho-head-guid dd li.focus a:hover { + /*background: #E68A17; + color: #fff;*/ + background: #EDF0DF url(../images/sprite.png) right -412px no-repeat; +} + +.typecho-head-guid dd a:link, .typecho-head-guid dd a:visited { + text-decoration: none; + color: #333; + display: block; + padding: 5px 37px 5px 7px; + zoom: 1; +} + +.typecho-head-guid dd a:hover { + background: #EDF0DF; +} + +.typecho-head-guid .operate { + color: #ccc; + position:absolute; + font-size: 12px; + top: 0px; + right: -5px; + /* review IE */ + *right: 25px; + height: 30px; + line-height: 30px; +} + +.typecho-head-guid .operate a.exit { + display: inline-block; + background: url(../images/sprite.png) no-repeat scroll 0px -223px; + width: 20px; + height: 20px; + text-indent: -999px; + outline: none; + overflow: hidden; + position:relative; + *position:absolute; + top: 5px; +} + +.typecho-head-guid .operate .author { + margin-right: 8px; + text-decoration: underline; +} + + +/** + * 注脚 + */ +.typecho-foot { + background: #333333; + padding: 15px 25px 80px 25px; + font-size: 12px; + text-align: center; + color: #999; + /* + position: absolute; + height: 100%; + width: 100%; + */ +} + +.typecho-foot h4 { + margin: 5px auto; +} + +.typecho-foot h4 a { + margin: 0px auto; +} + +.typecho-foot em { + color: #fff; +} + +/* +.typecho-foot .copyright { + +} + + .typecho-foot .resource { + +} + */ + +.typecho-foot .resource ul { + margin: 5px auto; + text-align: center; + position: relative; + overflow: hidden; + display: inline-block; + *display: inline; + *zoom: 1; +} + +.typecho-foot .resource li { + font-size: 12px; + left: -6px; + position: relative; + float: left; + padding: 0px 5px; + line-height: 16px; + border-left: 1px solid #505050; +} + +.typecho-foot .resource li a:link, .typecho-foot .resource li a:visited { + color: #999; +} + +.typecho-foot .resource li a:hover, .typecho-foot .resource li a:active { + color: #fff; +} + +.typecho-foot-v2 { + text-align: left; +} + +.typecho-foot-v2 h4 { + float: left; + margin-right: 10px; +} + +.typecho-foot-v2 h4 a { + margin: 0px; +} + +.typecho-foot-v2 .resource ul { + text-align: left; +} + +/** + * 标题 + */ +.typecho-page-title { + margin-top: 30px; +} + +.typecho-page-title div { + height: 30px; + background: url(../images/sprite.png) repeat-x scroll 0px -1483px; +} + +.typecho-page-title div a { + color: #E47E00; +} + +.typecho-page-title h2 { + background: #f7fbe9; + padding-right: 10px; + font-size: 16px; + line-height: 30px; + height: 30px; + float: left; +} + +.typecho-page-title p { + height: 30px; + float: right; + background: #f7fbe9; + padding-left: 10px; +} + +.typecho-page-title a { + font-size: 13px; + line-height: 30px; + font-weight: bold; +} + +.typecho-page-title a:hover { + text-decoration: underline; +} + +.typecho-page-title h2 a { + font-size: 14px; + margin-left: 12px; +} + + +/** + * 后台页面主体 + */ +.typecho-page-main { + margin: 10px auto; + padding-bottom: 10px; +} + +.typecho-page-main .typecho-option-tabs { + font-size: 13px; + font-weight: bold; + margin-bottom: 15px; +} + +/** + * 后台主页左侧导航列表 + */ +.typecho-dashboard-nav h3 { + font-size: 14px; + font-weight: bold; + margin-bottom: 10px; +} + +.typecho-dashboard-nav h3.intro { + font-size: 13px; + font-weight: normal; +} + +.typecho-dashboard-nav .intro-link { + background: none; + padding: 0px; + font-size: 13px; + margin-bottom: 20px; +} + +.typecho-dashboard-nav .intro-link ul { +} + +.typecho-dashboard-nav .intro-link li { + border: none; + margin: 2px 0px; +} + +.typecho-dashboard-nav .balloon, +.typecho-option-tabs .balloon { + margin-left: 5px; + padding: 1px 5px; + background: #BD6800; + color: #FFF; + font-size: 12px; + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; +} + +.typecho-dashboard-nav .dashboard-status { + font-size: 12px; +} + +.typecho-dashboard-nav .status p { + margin-bottom: 5px; +} + +.typecho-dashboard-nav .update-check { + background: #dee4c5; + color:#e47e00; + margin-bottom: 25px; + padding: 10px; + font-size: 12px; + text-align: center; +} + +.typecho-dashboard-nav .update-check p { + +} + +.typecho-dashboard-nav .update-check .current { + font-size: 13px; + font-weight: bold; +} + +.typecho-dashboard-nav .update-check .current em { + font-weight: bold; +} + +.typecho-dashboard-nav .update-check .latest { + font-size: 12px; +} + +.typecho-dashboard-nav .update-check .latest a, +.typecho-dashboard-nav .update-check .latest em { + color: #666; +} + +/** + * 主页主体 + */ +.typecho-dashboard-main { + +} + +.typecho-dashboard-main .section { + font-size: 13px; + margin-bottom: 20px; +} + +.typecho-dashboard-main .section h4 { + font-size: 14px; + margin-bottom: 10px; +} + +.typecho-dashboard-main .section ul { +} + +.typecho-dashboard-main .section li { + text-align: justify; + line-height: 22px; +} + +.typecho-dashboard-main .section .tags { + margin: 0px 5px; +} + +.typecho-dashboard-main .section .title { + +} + +.typecho-dashboard-main .section .date { + +} + +.typecho-dashboard-main .section .category { + +} + + +/** + * 标签页 + */ +.typecho-option-tabs, .typecho-editor-tab { + background: #dee4c5; + height: 30px; + overflow: hidden; + zoom: 1; +} + +.typecho-editor-tab { + background: none; +} + +.typecho-option-tabs li, .typecho-editor-tab li { + float: left; + margin: 4px 0px 0px 5px; + height: 26px; + + -moz-border-radius-topleft: 3px; + -moz-border-radius-topright: 3px; + -webkit-border-top-left-radius: 3px; + -webkit-border-top-right-radius: 3px; + + /* hope IE support border radius, God save me! */ + border-bottom-top-radius: 3px; + border-bottom-top-radius: 3px; +} + +.typecho-option-tabs li.right { + float: right; + margin: 4px 5px 0px 0; +} + +.typecho-editor-tab li { + float: right; + font-size: 12px; + font-weight: bold; + margin: 4px 0 0px 2px; + cursor: pointer; + padding: 0 15px; + border: 1px solid #F7FBE9; + border-bottom: none; + line-height: 24px; + color: #333; +} + +.typecho-editor-tab li.current { + border: 1px solid #C1CD94; + border-bottom: none; + background: #D3DBB3; +} + +.typecho-editor-tab li.loading { + padding-left: 32px; + background-image: url(../images/ajax-loader.gif); + background-position: 8px 4px; + background-repeat: no-repeat; +} + +.typecho-option-tabs li:hover, .typecho-option-tabs li.current { + background: #f7fbe9; +} + +.typecho-option-tabs li a:link, .typecho-option-tabs li a:visited { + display: block; + outline: none; + color: #333; + text-decoration: none; + padding: 3px 15px; +} + +/** + * 表格列表页 + */ +.typecho-article-list { + margin-top: 25px; +} + +/** + * 列表页选项 + */ +.typecho-list .typecho-pager { + margin: 10px 0px; +} + +.typecho-list-operate { + height: 30px; + overflow: hidden; + font-size: 12px; + zoom: 1; +} + +.typecho-list-operate input { + font-size: 13px; +} + +.typecho-list-operate button { + height: 24px; + line-height: 24px; +} + +.typecho-list-operate p.operate { + float: left; + line-height:24px; + height: 24px; +} + +.typecho-list-operate p.search { + float: right; + line-height:24px; + height: 24px; +} + +.typecho-list-operate p.search a.button { + float: right; + font-size: 13px; + padding: 2px 6px; + line-height: 20px; +} + +.typecho-list-operate p.operate a.button { + float: left; + padding: 2px 6px; + font-size: 13px; + line-height: 20px; + margin-right: 10px; +} + +.typecho-list-operate span.operate-button { + cursor: pointer; + color: #BD6800; +} + +.typecho-list-operate span.operate-delete, a.operate-delete { + color: #CC0000; + font-weight: bold; +} + +a.operate-edit { + color: #007700; +} + +a.operate-reply { + color: #545c30; +} + +.typecho-list-operate span.operate-button-delete, a.operate-button-delete { + background: #CC0000; +} + +.typecho-list-operate a:hover { + text-decoration: none; +} + +/** + * 列表表格 + */ +/** 增加表格标题 by 70 */ +.typecho-list-table-title { + font-size:14px; + font-weight: normal; + color: #777; + text-align: center; +} + +.typecho-list-table { + width: 100%; + margin: 10px 0 20px 0; + font-size: 13px; + border-collapse: collapse; + table-layout: fixed; +} + +.typecho-list-table-border { + border-collapse: separate; + border: 1px solid #DCE2C0; + border-bottom: none; +} + +.typecho-list-table-border td { + border-bottom: 1px solid #DCE2C0; +} + +.typecho-list-table input { + border: none; /* 重置 input */ +} + +.typecho-list-table thead { +} + +.typecho-list-table th { + text-align: left; + padding: 0 5px; + height: 32px; + line-height: 20px; + font-weight: bold; + border-bottom: 1px solid #F7FBE9; + background: #D3DBB3; +} + +.typecho-list-table td { + height: 32px; + line-height: 20px; + padding: 0 5px; + overflow: hidden; +} + +.typecho-list-table td .thumb-box { + background: #FFF; + margin: 5px; + height: 32px; + width: 32px; + display: block; + overflow: hidden; + border: 1px solid #C1CD94; + text-align: center; +} + +.typecho-list-table td img.tiny { + width: 16px; + height: 16px; + margin-bottom: -2px; +} + +.typecho-list-table td .thumb-box img { + max-height: 32px; + max-width: 32px; + _height: 32px; +} + +.typecho-list-table tbody tr.even, ul.typecho-list-notable li.even { + background: #eff5d9; +} + +.typecho-list-table tbody tr.hover, .typecho-list-table tbody tr:hover { + +} + +.typecho-list-table tbody tr.hover td, .typecho-list-table tbody tr:hover td, ul.typecho-list-notable li:hover, ul.typecho-list-notable li.hover { + background: #E3EEBD; +} + +.typecho-list-table tbody tr.checked td, ul.typecho-list-notable li.checked { + background: #DBE9AB; +} + +.typecho-list-table tbody tr.checked-even td, ul.typecho-list-notable li.checked-even { + background: #CCE087; +} + +.typecho-list-table h4 { + font-weight: normal; +} + +.typecho-list-table .important { + color: #e47e00; +} + +.typecho-list-table .description, ul.typecho-list-notable .description { + color: #aaa; +} + +.typecho-list-table .warning, ul.typecho-list-notable .warning { + color: #ff0000; + font-weight: bold; +} + +.typecho-list-table img.inline { + margin-bottom: -3px; +} + +.typecho-list-table tr td .hidden-by-mouse, ul.typecho-list-notable li .hidden-by-mouse { + display: none; +} + +.typecho-list-table tr:hover td .hidden-by-mouse, ul.typecho-list-notable li:hover .hidden-by-mouse, +.typecho-list-table tr.hover td .hidden-by-mouse, ul.typecho-list-notable li.hover .hidden-by-mouse { + display: inline; +} + +.deactivate tbody, tr.deactivate td { + color: #999; +} + +.deactivate tbody tr:hover, .deactivate tbody tr.hover { + color: #333; +} + +.deactivate tbody a { + color: #FFC177; +} + +.deactivate tbody tr:hover a, .deactivate tbody tr.hover a { + color: #BD6800; +} + +/** + * 不使用表格的列表 + */ +ul.typecho-list-notable { + margin: 0; + padding: 0; + line-height: 20px; + font-size: 12px; +} + +ul.typecho-list-notable .big { + font-size: 13px; +} + +ul.typecho-list-notable .avatar img { + background: #FFF; + padding: 2px; +} + +ul.typecho-list-notable img.inline { + margin-bottom: -5px; +} + +ul.typecho-list-notable p { + padding: 5px 0; + font-size: 13px; +} + +ul.typecho-list-notable .line { + height: 20px; + line-height: 20px; + padding-left: 5px; +} + +ul.typecho-list-notable .content { + padding-left: 5px; +} + +ul.typecho-list-notable .big-line { + height: 32px; + line-height: 32px; +} + +ul.typecho-list-notable .weak { + color: #777; +} + +ul.typecho-list-notable .left, .typecho-list-table .left { + float: left; +} + +ul.typecho-list-notable .right, .typecho-list-table .right { + float: right; +} + +ul.typecho-list-notable .center, .typecho-list-table .center { + text-align: center; +} + +ul.typecho-list-notable .center { + text-align: center; +} + +ul.typecho-list-notable li { + margin: 0 0 5px 0; + list-style: none; + padding: 5px 0; +} + +ul.typecho-list-notable li span.comment, +ul.typecho-list-notable li span.pingback, +ul.typecho-list-notable li span.trackback { + background: url(../images/comment.gif) top no-repeat; + width: 16px; + height: 16px; + display: block; + float: left; + margin: 4px 3px -4px 0; + _margin-right: 0; +} + +ul.typecho-list-notable li span.pingback { + background-position: center; +} + +ul.typecho-list-notable li span.trackback { + background-position: bottom; +} + +ul.typecho-list-notable li .comment-body { + overflow: visible; +} + +ul.typecho-list-notable li .comment-avatar img { + margin-top: 5px; +} + +ul.typecho-list-notable li code, ul.typecho-list-notable li pre { + display: block; + background: #fff; + margin: 10px; + padding: 10px; + font-family: 'andale mono','lucida console',monospace; + overflow: auto; + border: 1px solid #E8EDD6; +} + +ul.typecho-list-notable li .comment-form, ul.typecho-list-notable li .reply-form { + padding: 5px 0 10px 0; +} + +ul.typecho-list-notable li .comment-form label, ul.typecho-list-notable li .reply-form label { + padding: 0 10px 0 0; + line-height: 20px; +} + +ul.typecho-list-notable li .comment-form input, ul.typecho-list-notable li .reply-form input { + margin: 0 10px 0 0; + width: 155px; +} + +ul.typecho-list-notable li .comment-form textarea, ul.typecho-list-notable li .reply-form textarea { + margin: 10px 0; + width: 800px; + height: 150px; +} + +ul.typecho-list-notable li .comment-form p, ul.typecho-list-notable li .reply-form p { + margin: 0; + padding: 0; +} + +ul.typecho-list-notable li .reply-message { + margin: 10px; + background: #FBFDF2; + padding: 0 10px; + + border: 1px solid #DEE4C5; + + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + -khtml-border-radius: 4px; + + /* hope IE support border radius, God save me! */ + border-radius: 4px; +} + +ul.typecho-list-notable li .loading { + background-position: center top; +} + +/** + * 评论回复 + */ +#typecho-respond { + padding: 10px; + display: none; +} + +ul.typecho-list-notable li #typecho-respond { + display: inline; +} + +#typecho-respond textarea { + width: 450px; + height: 150px; +} + +/** + * 模板列表 + */ +.typecho-theme-list { + border-collapse: separate; + border-spacing: 0; + border-top: 1px solid #CAD7A2; + border-bottom: 1px solid #CAD7A2; +} + +.typecho-theme-list td { + line-height: 20px; + vertical-align: top; + padding: 10px 5px; +} + +.typecho-theme-list td.border-right { + border-right: 1px solid #CAD7A2; +} + +.typecho-theme-list td.border-bottom { + border-bottom: 1px solid #CAD7A2; +} + +.typecho-theme-list img { + background: #FFF; + padding: 2px; + margin: 0 15px 0 5px; + float: left; +} + +.typecho-theme-list p { + padding: 5px 0; + font-size: 12px; +} + +.typecho-theme-list .activate, .typecho-theme-list .edit { + display: none; +} + +.typecho-theme-list h4 { + font-size: 13px; + font-weight: bold; +} + +.typecho-theme-list tbody tr.hover td, .typecho-theme-list tbody tr:hover td { + background: none; +} + +.typecho-theme-list tbody tr td.current, .typecho-theme-list tbody tr td.hover { + background: #e3eebd; +} + +.typecho-theme-list tbody tr td.hover .activate, .typecho-theme-list tbody tr td.hover .edit { + display: block; + position: absolute; + background: #BD6800; + color: #fff; + height: 24px; + line-height: 24px; + padding: 0 5px; + font-weight: bold; + white-space: nowrap; + opacity:0.8; + -ms-filter:'alpha(opacity=80)'; + filter:alpha(opacity=80); +} + +.typecho-theme-list tbody tr td.hover a.activate:hover, .typecho-theme-list tbody tr td.hover a.edit:hover { + background: #D29B51; + text-decoration: none; +} + +/** + * 后台配置项 + */ +.typecho-page-main .typecho-option { + position: relative; + top: -1px; + font-size: 13px; + border-bottom: 1px solid #EBEFDA; + border-top: 1px solid #fff; +} + +.typecho-page-main .typecho-option-clear { + border-bottom: 1px solid #F7FBE9; + border-top: 1px solid #F7FBE9; + margin: -1px 0; + top: -1px; + bottom: -1px; + z-index: 100; +} + +.typecho-page-main .typecho-mini-panel { + background: #DEE4C5; +} + +.typecho-page-main .typecho-option label.typecho-label { + width: 190px; + margin-left: -200px; + font-weight: bold; +} + +.typecho-page-main .typecho-mini-panel .typecho-option label.typecho-label { + float: none; + margin: 0; + width: auto; + display: block; + text-align:left; +} + +.typecho-page-main .typecho-option li { + margin: 15px 0px; + _padding-bottom: 5px; + display: block; + padding-left: 200px; +} + +.typecho-page-main .typecho-mini-panel .typecho-option { + border: none; + padding: 0 10px; +} + +.typecho-page-main .typecho-mini-panel .typecho-option li { + padding-left: 0; +} + +.typecho-page-main .typecho-option input.text { + width: 475px; +} + +.typecho-page-main .typecho-option input.password { + width: 300px; +} + +.typecho-page-main .typecho-mini-panel .typecho-option input.text { + width: 280px; +} + +.typecho-page-main .typecho-mini-panel .typecho-option input.password { + width: 200px; +} + +.typecho-page-main .typecho-option input.mini { + width: 115px; +} + +.typecho-page-main .typecho-option input.num { + width: 30px; +} + +.typecho-page-main .typecho-option textarea { + width: 475px; + height: 150px; +} + +.typecho-page-main .typecho-option span.multiline { + *float: left; + display: block; + line-height: 26px; + *width: 100%; +} + +.typecho-page-main .typecho-mini-panel .typecho-option textarea { + width: 280px; + height: 70px; +} + +.typecho-page-main .typecho-option .description { + line-height:18px; + margin-top:5px; + text-align:justify; +} + +.typecho-page-main .typecho-option-submit { + border-bottom: none; +} + + +.typecho-page-main .typecho-option li.typecho-option-title { + padding: 10px; + background: #DEE4C5; + + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + -khtml-border-radius: 4px; + + /* hope IE support border radius, God save me! */ + border-radius: 4px; +} + +.typecho-page-main .typecho-option li.typecho-option-title h3 { + font-size: 18px; + color: #e47e00; +} + +.typecho-page-main .typecho-option li.typecho-option-title p { + font-size: 12px; + color: #555555; + padding: 0; + margin: 5px 0 0 0; + padding-left: 2px; +} + +.typecho-page-main .typecho-content-panel .typecho-option label.typecho-label { + width: 100px; + margin-left: -110px; + position: absolute; +} + +.typecho-page-main .typecho-content-panel ul.typecho-option { + border: none; +} + +.typecho-page-main .typecho-content-panel ul.typecho-option-focus li { + margin: 10px 0 0 0; +} + +.typecho-page-main .typecho-content-panel .typecho-option li { + padding-left: 110px; +} + +.typecho-page-main .typecho-content-panel .typecho-option-submit li { + padding-top: 15px; +} + +.typecho-page-main .typecho-content-panel h3 { + font-size: 18px; + padding: 10px 0; + margin: 20px 0; + color: #e47e00; + border-bottom: 1px solid #E8EDD6; +} + +.typecho-page-main .typecho-content-panel h4 cite { + color: #777; + font-style: normal; + font-size: 13px; + font-weight: normal; + margin-left: 5px; +} + +.typecho-page-main .typecho-content-panel h4 img { + margin-right: 10px; + margin-top: 10px; +} + +/** + * 编辑模板 + */ +.typecho-select-theme { + height: 25px; + line-height: 25px; + margin: 15px 0px; +} + +.typecho-select-theme h5 { + color: #E47E00; + font-weight: bold; + float: left; + font-size: 14px; + width: 120px; + margin-right: 10px; +} + +.typecho-select-theme select { + width: 150px; +} + +/** + * 编辑模板(编辑详情) + */ +.typecho-edit-theme { + overflow: hidden; +} + +.typecho-edit-theme ul { + width: 150px; + float: left; + overflow: hidden; + padding: 10px 0px 10px 10px; +} + +.typecho-edit-theme li { + line-height: 25px; + height: 25px; + margin-bottom: 5px; + font-size: 11px; + text-align: right; + padding: 0px 10px 0px 0px; +} + +.typecho-edit-theme li a:link, .typecho-edit-theme li a:visited { + color: #333; + display: block; +} + +.typecho-edit-theme li a:hover { + text-decoration: none; +} + +.typecho-edit-theme .current { + background: #DEE4C5; + -moz-border-radius-topleft: 3px; + -moz-border-radius-bottomleft: 3px; + -webkit-border-top-left-radius: 3px; + -webkit-border-bottom-left-radius: 3px; + + /* hope IE support border radius, God save me! */ + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} + +.typecho-edit-theme .content { + width: 780px; + float: left; + overflow: hidden; + padding: 10px 10px 10px 0px; +} + +.typecho-edit-theme .submit { + margin: 20px 0 20px 0; + text-align: center; +} + +.typecho-edit-theme textarea { + width: 770px; + height: 500px; + font-family: "Courier New",Courier,monospace; +} + +/** + * 编写页面 + */ + +.typecho-post-area { + margin-bottom: 15px; +} + +.typecho-post-area label.typecho-label { + font-size: 13px; + font-weight: bold; + margin: 5px 0px; + display: block; +} + +/*.typecho-post-area .typecho-preview-label { + position: relative; + display: none; +} + +.typecho-post-area .typecho-preview-label span { + position: absolute; + right: 0; + top: -25px; + font-weight: bold; + font-size: 13px; +}*/ + +.typecho-post-area .typecho-preview-label { + margin-right: 10px; + font-weight: bold; + text-decoration: underline; +} + +#typecho-preview-box { + padding: 10px; + border: 2px dashed #DEE4C5; + background: #FFF; + display: none; + float: left; + width: 686px; + margin-top: 10px; +} + +#typecho-preview-box h1 { font-size: 23px; } +#typecho-preview-box h2 { font-size: 21px; } +#typecho-preview-box h3 { font-size: 19px; } +#typecho-preview-box h4 { font-size: 17px; } +#typecho-preview-box h5 { font-size: 15px; } +#typecho-preview-box h6, +#typecho-preview-box p, +#typecho-preview-box ol, +#typecho-preview-box ul, +#typecho-preview-box dl, +#typecho-preview-box pre, +#typecho-preview-box blockquote { + font-size: 13px; +} + +#typecho-preview-box p, +#typecho-preview-box ol, +#typecho-preview-box ul, +#typecho-preview-box dl, +#typecho-preview-box pre, +#typecho-preview-box blockquote { + margin-bottom: 20px; +} + +#typecho-preview-box ul, +#typecho-preview-box ol { + list-style-type: disc; + margin-left: 30px; +} +#typecho-preview-box ol { + list-style-type: decimal; +} + +#typecho-preview-box pre, +#typecho-preview-box blockquote { + padding: 20px; + background: #eee; +} + +.typecho-post-area label.typecho-label cite { + font-weight: normal; + color: #777; + margin-left: 10px; + background: #ffffdd; +} + +.typecho-post-area .submit { + height: 24px; + line-height: 24px; + margin: 15px 0px 20px; +} + +.typecho-post-area .right { + float: right; + padding-left: 24px; +} + +.typecho-post-area .left { + float: left; +} + +.typecho-post-area input.text { + font-size: 13px; + width: 700px; +} + +.typecho-post-area .out-date { + border: 1px solid #D3DBB3; + padding: 3px; + background: #fff; +} + +.typecho-post-area p.title { + margin-bottom: 10px; +} + +.typecho-post-area input#year, +.typecho-post-area select#month, +.typecho-post-area input#day, +.typecho-post-area input#hour, +.typecho-post-area input#min { + width: 30px; + font-size: 8pt; + font-family: "Lucida Grande","Lucida Sans Unicode",Tahoma,Verdana; + padding: 1px; +} + +.typecho-post-area input#day, +.typecho-post-area input#hour, +.typecho-post-area input#min { + width: 16px; +} + +.typecho-post-area select#month { + width: 64px; +} + +.typecho-post-area input.time { + width: 20px; +} + +.typecho-post-area input.mini { + width: 200px; +} + +.typecho-post-area input.title { + font-size: 20px; /* 撰写页面标题input */ +} + +.typecho-post-area textarea#text { + font-size: 13px; + line-height: 18px; + width: 700px; + margin: 0; + *margin: -1px 0 -1px 0; + display: block; +} + +.typecho-post-area button#btn-submit { + font-weight: bold; +} + +.typecho-post-area button#btn-save { + font-style: italic; +} + +.typecho-post-area span.size-btn { + height: 20px; + width: 708px; + line-height: 20px; + background: url(../images/size-btn.gif) top no-repeat; + position: relative; + display: block; + cursor: row-resize; +} + +.typecho-post-area textarea#trackback { + font-size: 13px; + width: 430px; + height: 70px; +} + +.typecho-post-area br { + height: 10px; + line-height: 10px; +} + +.typecho-post-area #advance-panel, .typecho-post-area #upload-panel { + margin: 0; + display: none; +} + +.typecho-post-area .is-draft { + background: #FFF1A8; +} + +ul.typecho-post-option { + border: 0px; + margin: -1px 0px -1px 10px; +} + +ul.typecho-post-option li { + list-style: none; + border-bottom: 1px solid #EBEFDA; + border-top: 1px solid #fff; + padding: 5px 0 10px 0; +} + +#advance-panel li, #upload-panel li { + border: none; +} + +ul.typecho-post-option li ul { + border: none; + margin: 0; + overflow: auto; +} + +ul.typecho-post-option li ul.related { + margin: 10px 0 0 0; +} + +ul.typecho-post-option li ul li { + /*height: 20px; + line-height: 20px;*/ + border: none; + font-size: 12px; + padding: 4px; + margin-bottom: 5px; + background: #EFF5D9; +} + +ul.typecho-post-option li ul.related li { + background: none; + list-style-type: square; + padding: 0; + margin: 0 0 0 20px; + height: auto; +} + +ul.typecho-post-option li ul li:hover { + background: #E3EEBD +} + +ul.typecho-post-option li ul.related li:hover { + background: none; +} + +ul.typecho-post-option .description { + color: #999; + margin-top: 5px; +} + +ul.autocompleter-choices { + position: absolute; + margin: 0; + padding: 0; + list-style: none; + background-color: #fff; + text-align: left; + font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; + z-index: 50; + border: 1px solid #CED7A8; + border-top: none; + background: #DCE2C0; + color: #000; + font-size: 13px; + + -moz-border-radius-bottomleft: 3px; + -moz-border-radius-bottomright: 3px; + -webkit-border-bottom-left-radius: 3px; + -webkit-border-bottom-right-radius: 3px; + + /* hope IE support border radius, God save me! */ + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} + +ul.autocompleter-choices li { + position: relative; + margin: 0; + padding: 0.3em 1.5em 0.3em 1em; + display: block; + float: none !important; + cursor: pointer; + font-weight: normal; + white-space: nowrap; + font-size: 1em; + line-height: 1.5em; +} + +ul.autocompleter-choices li.autocompleter-selected, ul.autocompleter-choices li.autocompleter-hover { + background-color: #EDF0DF; + color: #000; +} + +ul.autocompleter-choices span.autocompleter-queried { + display: inline; + float: none; + font-weight: bold; + margin: 0; + padding: 0; + color: #E47E00; +} + +.typecho-post-area .advance, .typecho-post-area .attach, .typecho-post-area .media { + font-weight: bold; + color: #333; + cursor: pointer; + padding: 0 0 0 16px; + height: 16px; + line-height: 16px; + text-decoration: underline; + background-image: url(../images/arrow.gif); + background-repeat: no-repeat; + *background-position: 0 -2px; +} + +.typecho-post-area .attach { + background-image: url(../images/attach.gif); + margin-left: 10px; + padding-left: 20px; +} + +.typecho-list-operate #swfu { + position: absolute; + left: 0; +} + +.typecho-post-area .close { + background-position: 0 -16px; + *background-position: 0 -18px; +} + +/** + * 标签列表 + */ +.typecho-page-main ul.tag-list { + padding: 5px 10px; + background: #EFF5D9; +} + +.typecho-page-main ul.tag-list li { + padding: 2px 4px; + list-style: none; + margin: 0; + line-height: 28px; + white-space:nowrap; + float: left; + display: block; + cursor: pointer; +} + +.typecho-page-main ul.tag-list li input { + display: none; +} + +.typecho-page-main ul.tag-list li:hover, .typecho-page-main ul.tag-list li.hover { + background: none; +} + +.typecho-page-main ul.tag-list li.checked, .typecho-page-main ul.tag-list li.checked-even { + background: none; + font-weight: bold; + text-decoration: underline; +} + +.typecho-page-main ul.tag-list li.size-5 { + font-size: 12px; + color: #777; +} + +.typecho-page-main ul.tag-list li.size-10 { + font-size: 16px; + color: #666; +} + +.typecho-page-main ul.tag-list li.size-20 { + font-size: 18px; + color: #555; +} + +.typecho-page-main ul.tag-list li.size-30 { + font-size: 22px; + color: #444; +} + +.typecho-page-main ul.tag-list li.size-0 { + font-size: 28px; + color: #333; +} + +.typecho-page-main .typecho-mini-panel .tag-selection { + margin: 10px; + font-size: 13px; +} + +.typecho-page-main .typecho-mini-panel .tag-selection a { + margin: 0 5px 5px 0; + display: block; + float: left; + white-space:nowrap; +} + +.typecho-attachment-photo-box .description { + color: #999; + margin: 10px 0; + font-size: 14px; +} + +.typecho-attachment-photo-box .description ul li { + border-bottom: 1px dashed #E8EDD6; + line-height: 28px; + height: 28px; +} + +.typecho-attachment-photo-box .description strong { + color: #444; + font-weight: normal; +} + +.typecho-attachment-photo-box .description input { + width: 500px; + border: 1px solid #aaa; + background-color: #eee; + background-image: url(../images/progress.gif); + background-repeat: repeat-y; + background-position: -1000px 0; +} + +.typecho-attachment-photo-box .description button { + font-weight: bold; + margin-left: 5px; +} + +.typecho-attachment-photo-box .description ul li #swfu { + display: block; + _display: inline; + position: relative; +} + +.typecho-attachment-photo-box img { + border: 1px solid #E8EDD6; + background: #fff; + padding: 3px; + max-width: 610px; +} + +.typecho-mime { + background-image: url(../images/mime.gif); + width: 16px; + height: 16px; + line-height: 16px; + font-size: 12px; + display: block; + float: right; + position: relative; + padding: 0; + margin-right: -3px; +} + +.typecho-mime-office { + background-position: 0 -160px; +} + +.typecho-mime-text { + background-position: 0 -176px; +} + +.typecho-mime-image { + background-position: 0 -192px; +} + +.typecho-mime-html { + background-position: 0 -208px; +} + +.typecho-mime-archive { + background-position: 0 -224px; +} + +.typecho-mime-application { + background-position: 0 -240px; +} + +.typecho-mime-audio { + background-position: 0 -256px; +} + +.typecho-mime-script { + background-position: 0 -272px; +} + +.typecho-mime-video { + background-position: 0 -288px; +} + +.typecho-mime-unknow { + background-position: 0 -304px; +} + +.typecho-attachment-photo-box .typecho-mime { + bottom: -6px; + margin-right: 3px; + float: left; +} diff --git a/admin/editor-js.php b/admin/editor-js.php new file mode 100644 index 00000000..4183231c --- /dev/null +++ b/admin/editor-js.php @@ -0,0 +1,20 @@ + + diff --git a/admin/extending.php b/admin/extending.php new file mode 100644 index 00000000..9504da97 --- /dev/null +++ b/admin/extending.php @@ -0,0 +1,11 @@ +get('panel'); +$panelTable = unserialize($options->panelTable); + +if (!isset($panelTable['file']) || !in_array(urlencode($panel), $panelTable['file'])) { + throw new Typecho_Plugin_Exception(_t('页面不存在'), 404); +} + +require_once $panel; diff --git a/admin/file-upload-js.php b/admin/file-upload-js.php new file mode 100644 index 00000000..c583cb13 --- /dev/null +++ b/admin/file-upload-js.php @@ -0,0 +1,200 @@ + +have()) { + $fileParentContent = $post; +} else if (isset($page) && $page instanceof Typecho_Widget && $page->have()) { + $fileParentContent = $page; +} +?> + + + + diff --git a/admin/file-upload.php b/admin/file-upload.php new file mode 100644 index 00000000..d1191235 --- /dev/null +++ b/admin/file-upload.php @@ -0,0 +1,97 @@ + + +cid : $page->cid; + + if ($cid) { + Typecho_Widget::widget('Widget_Contents_Attachment_Related', 'parentId=' . $cid)->to($attachment); + } else { + Typecho_Widget::widget('Widget_Contents_Attachment_Unattached')->to($attachment); + } +} +?> + + + +
+

+ + +

+
+ + diff --git a/admin/footer.php b/admin/footer.php new file mode 100644 index 00000000..eccc3888 --- /dev/null +++ b/admin/footer.php @@ -0,0 +1,6 @@ + + + +end(); diff --git a/admin/header.php b/admin/header.php new file mode 100644 index 00000000..a6932bdc --- /dev/null +++ b/admin/header.php @@ -0,0 +1,22 @@ +adminUrl) . '" /> + +'; + +/** 注册一个初始化插件 */ +$header = Typecho_Plugin::factory('admin/header.php')->header($header); + +?> + + + + <?php _e('%s - %s - Powered by Typecho', $menu->title, $options->title); ?> + + + + > diff --git a/admin/images/ajax-loader.gif b/admin/images/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..d0bce1542342e912da81a2c260562df172f30d73 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nnmm28Kh24mmkF0U1e2Nli^nlO|14{Lk&@8WQa67~pE8 zXTZz|lvDgC+Z`3#dv5h=E26FfcG1 zbL_hF&)}42ws10s6^G;;cE1^EoUR)U5A70}d2pLv!jVIT7j&Z~EblI3x0K*v_sV|m z0kj3v921Z^em#l`(k(o@H$3ZdDRc@9NidXDNbqrumReCGv$gd8+e8WW28HVqkJ_9i zH>s*<31KtHjANIPvi2#*6BEu%3Dak5O_t&NBI)H?V$TxT}#l{vOTn5naXTfF^&~Hhq+NX@#Ccc>y7T?;vjI&jdhsDsPJyAw*m0Qz>i}K7# zL9w50Ng{fT}A5JUe8lRK1h7_Y2;BWJDd=c6f&i?Wv5(5q?6|P zQw{>maxZP<537OA37Uk}7@%_$4o$EWe_Zl>&#id|lE-BpDC#+Fn|msJ%_2h{Hg1vP z#N8WAzfWasG}yq|xqE)DrWaOofX=z|?*pgc%{ig5vl!pqDlC|q&~Z0$&Rvsft&VO- z4MZj+%-+Vx%W}v;V76hyp=;+R;x+~t^Q%*xuFTQAF2})fSfTHDAs>sO!OBw`)&)o$ c0!CNZt))x~rAZP^^P&YOFfdqy5)K#u0POD40{{R3 literal 0 HcmV?d00001 diff --git a/admin/images/arrow.gif b/admin/images/arrow.gif new file mode 100644 index 0000000000000000000000000000000000000000..391cba04dad07b114fafdbef52413c613d0bb095 GIT binary patch literal 180 zcmZ?wbhEHb6kt$b*v!E2|Ns9#?;rene*XLQ4PVbMcsa@@scSnffjBP)4bM3t(RKi<&`Kk_rwzSX@6MTA165-S8lUqKH#vDVP`^K Tr-kjuRR@Hk)M6r91sSXX4**4A literal 0 HcmV?d00001 diff --git a/admin/images/attach.gif b/admin/images/attach.gif new file mode 100644 index 0000000000000000000000000000000000000000..b48d9925271ea3abe6609349259ed86f9ff373e8 GIT binary patch literal 307 zcmZ?wbhEHb6kt$bIKsg2{rmU#@83Ur_Uzuhd)KaAJ9qBf!Gj04Zr!?e?b@YFm(G|m zW6G2%Jv}`wEiKj6)%p4P>FMcFQBh%GVgLXCXCMM7{$ycfXAox40jUMq$-uhdfl6OW z=DZ9}l}?2v!3VTBix<3JC~%o!t~N`Px!|7=t|N`d9ZZy#I(!OXFc9MMXi%{YQ13gU zv`MyfdIF2{CnJ4<$u5r@BRqVXT`dzMGJKhMQ<-?`)w#HtSOf%fHCXutIZ_R#PMbbM zSzEVH-6+D;+=0`|#%{5bi<=rlu#aCrOmJv;VGFvk(8?y?gik-PZ?i|2=vA z<<5tj4`2Vh^Xl*O=g)6H|9Y;0&j$b>r_sYk;7aniCwd%~7Gh5GnSaV~^`ZMpAU7fe}+{&-Btfa zAFFy3=W2V?N&}-39o;+)tt?fwR3%_6FpPqM2m!^PER5_7O$<69%Rza9f#W{|E2oUd zh6M+k*;qLy8ZTdX*wR}-z{QBU;b^y5;1op*_67!K1zwem3k(OQax!sGVH7Yrc!EuU zLE++rB2|y+DvC$uSZ-K+VxpC91Vg~mLk?XM!Vv}x4$6+Le8mwe6CQWFw4@3=nQ)nD z;Q=X|2Ma!E2{_IaNV&W!_H>y8n~-73k`D$C7O;q`dA#ryZ02ZhQV2S5cjIApK_#<} zI}$S#UAd%rIP4}kJ?Z3jWKNlJBT&4BS6anja^R*mMt1QD>_0v%T+;cPQT#;3MnPp( zK}WrsBNZPK+C}7>Uf3u;R&Et?3|wSm!61EB+Oc%X6~#wRT?+bfB6|)9GWyCoR?hO- zul~q&0*j-pSx$iBi^c`!CD$507#J}0DR@p2IK!|gp$`dXYaZs9=SbAto%g@>T~?_bH&lTUn@`uo|1bXE{eSR(AO)ESb=V4`uk}mK|39Px&03WLbv~pzk+s7D@lK^ zn+aB+sp)&Y_x-B3>;6ywU--WQNUr<8>TU0P-|L#1U&;A)67w(+> pDf@fM7q9#F25QXo3rUI;002ro52U44e~JJA002ovPDHLkV1l;_q@Mr) literal 0 HcmV?d00001 diff --git a/admin/images/mime.gif b/admin/images/mime.gif new file mode 100644 index 0000000000000000000000000000000000000000..a73f46d3afa3df84139c827122d9b741459dc1db GIT binary patch literal 2302 zcmV#C}NMw-E*4|fFSJIkBsCzSdhM3>GgRHR3I6+amy|&NO%a@;NmZ`{jd3kewH>|Cz zV}Y&j@9*!^r;Lt^WpW|Su6(Gkg22?o|Ns9sNO-iuTZoE<=H}*>V-jL{nW?x+!^hgi z%B`uarn;D6wZ+)r;?vyZ?QwlG$BZ+?qiuty&X$&zeTlK8wLFxXzT(WOY;0_rtjevk zi)VF@-QC^M+_B8e%=h>Auf11oiL=`3`iYpW=eBCl*q?fbud~eP+Ww zgN{u%M`BcUq}`}kevK!rghRK*XuZdP=hL!*fq|O1*wxk5r?gts<@TScyYBPLUu+z@ zzr>(w6z#-?_xj(Mt0+-XQFVl@gPXhJzoWRU~f8^VSlUJ;kNVh^NpUmT6(0jywS<4d*tfH@#WKgfP0dZ zk5OutJx^`a-RVhLb83XCYRaaA@z1neeZ-$p6 zp0O+H;LnSv$8n9Pikh#PnVE-?Q@qI3$>I5vrY5YsOVzG)m7>4W+nl7e$%%}H{{Hzr zP;ut#@U^wIrM1vpX&JTA?wy~*fr^@SfjOnMLh#X|@bll` z8RF}{w~|$qUI*6Pu926#!_IuOxs)_WYU93#YkM)9tHWS^rlqyk#HMrZ$BM7N)Tn(o znxbyy%b(`!^ytTugOs%V{qA#=we9iNMO1F^^!V1^*3Qw>U~L}b@&8tDnX9$Ue3iC* zjIgD(O8@`=A^8LW2LS&7EC2ui01yD6000R804rn}NU-3*E&u*yA;GYrLxx!rF6^+T zV#N*^JCKN|ki?n=AVY%G$Z?^?j3_rs^e9p!$(0u~uF0sf;~D}ubK-p2u>%1{^G0YH zN`U7?0!NZQdNiqM&7+Z`Mj9}{X-N`3b>{T+6f4TFT_1|&xXhs0EEN)}UCVZ@z_SGr zb`<;YDn*MkXayel|xO1p#$cXh0HWrx0%dr}rm*CAQB z1=F@2z4q0K)2LIYHr-k5X%Z2l$ev9*!jRX=IB{CFOE)Mfz@ywgL4w{UUTnTlDpG`l zbK$S)p}B?(*){|GHfe`WT$L_sWa0(?`GlrC8tx=i_2>cT8l4^(pkYvhUKO+Z_?elR z#0)(>F8~JUg&Af*gI*M^n^L;$iPP!cp&gg9?VRH(JtyVa!)>(bn(kCKqxcO0-qRAPc;qXlaCRH z*y9N@V)6q+HK|}CC??*j-O{SdRy8E5nV@sHSm1P+KXpX?LL8Hk_#4Q*B2r>#an#{9JC(f^h4-r;?14}XB2e3%?YT>g2DVB2{rS6`~a|JKN#^hqdyV+)1EZ^x0YrQ!hfxR0tnmyf*c?)5WvHSFq+W< z5V%4RurPrG!!ZLzbRr2>m_;*uaf?|HVivf-MKeHP2osoK7CFcP0DQoTVBn$*0=NYL zG*Chq3V;g!6M-B5nt_jKT%ZLp2m}%F0R7Af&+s|1d=dfO(8k_yG}qD8(^;*#T4h;~3+dr99_}hz=Yh zoa3}WInSBf&UMz)oztx5HM64INcAOXi1rdnKC zOL^Av1VY$kLP~kcRGy%Zy%1?JJqb!tCIko>*ud>J@PU79!9}SN7IAEJ0$dVD2tXCW zGBDzaA*cui3Hd2dWkG@pbfBn5O)3e3iUO>V0IDZI>OYh!1QehEBPq(NRPWKrHN2t& zuL!GFi9=S6tih^A73)?>&{mYFb*wJH$SXYIiL^#_u3OLuMo3_yzY-^~899+*Nsw2) YcA!MBSS(MqdQ+U9Ca}5tM?e4oJJAkz;Q#;t literal 0 HcmV?d00001 diff --git a/admin/images/noscreen.gif b/admin/images/noscreen.gif new file mode 100644 index 0000000000000000000000000000000000000000..2ff8a29e459ee6fd1ff78ccfe71267d4032b5654 GIT binary patch literal 511 zcmZ?wbhEHbtYC;@IKsg2|NsBLfB*je{rl(7pFe*5`1bAFmoHyFefsp_!-se8-o1JA z=GCiLFJHcV{`~pVr%xY0e*Ey^Lk3cS;!hR^c8329Iv`CTI~iF2E2#9PWX{W2wJzuN zz5<=|CAs%2*1fNJ|Np>(0uLRj{u4`zPUcw6zp$djYi-o}8*9o=zpdK;U_*tE-t6;6 zZc2d)JMMD0GV_+Gur=(d+i!m6r6mtbO-m~SOMQbeUvpbu4M&$TPyf`~NrqFV&1RpW zKWp|ho_V?p7WT6&(OI^Uilf-&q|NiJX*)O{EcN4f#qsmX$~E`=g?MFTdw(v|Yz*{X>^0ZR)RQTO z)y6AVVIn`{EK_Ngf+-&~{B51xqlA`kmR>kNZ|`53?pGSe-J|N`R9rr;@Ufk{%*r8P d!H34lp~Bj6XLf9Se0+kk_dK7SMbiWrtO2tT;XMEV literal 0 HcmV?d00001 diff --git a/admin/images/notice.gif b/admin/images/notice.gif new file mode 100644 index 0000000000000000000000000000000000000000..878d3b1133949cf42839905464a88894e1f262db GIT binary patch literal 580 zcmV-K0=xZ3Nk%w1VGsZi0OkMy|NZ&@{`vm=^#1(w{`~U({O|tz^Zxtq{`>C!`|bYw z?Ed@e{`&F$`t1Gs@%{Sd{rU0!`se-m?fv=Z{rKMe_SpRO)cf?}`}E`c^4k3K$NTca z`tQ~F?cVwB*ZS|Y_v*;{>z()K!};lx_vN_tQJ=Q}WhV^wv-C(ShsEs_)K) z?#y`a&2#O@dhf|-?Z|NJ%U15jTjvyLguwc<*_#1utwpjFyN*v-J?3+qbk{;Ro0?C)uBDrpgi56DAt@^+?^)cnk3nm zBGQsW){-C7iyG018_$Fl%6=-$eG$oa4aIN?!fOV=X9NHL{{R30A^8LW2LOHmEC2ui z01yBW000M}fPR95goTEJR#S(DGCw~mi-Qba4jf_-k$zDx0}(<`kr`nCBOwiD9*bBj z5^HM~FkgoxQ~@)aYL>eb(g-}NeC^=cak S)VY&K&mKN~-efWq2mm{L=2nUT literal 0 HcmV?d00001 diff --git a/admin/images/progress.gif b/admin/images/progress.gif new file mode 100644 index 0000000000000000000000000000000000000000..bda2b5a942f42029e9e960e072aefdcc520f5f3f GIT binary patch literal 72 zcmZ?wbhEHbJjTSxFp+`b^6kz4!GM8*LGdRGBRc~VgAS0*0Fq~5l5FW;dHOB?;yGJx Xb#K16=Qn@bBadm%I+uAfGFSru*QFe) literal 0 HcmV?d00001 diff --git a/admin/images/size-btn.gif b/admin/images/size-btn.gif new file mode 100644 index 0000000000000000000000000000000000000000..911ee9f9781f8d95753110cef53d7899f751f4ee GIT binary patch literal 55 zcmZ?wbhEHb8R5MZ;p{c2(C8i;+gFBXHfTpAti&|Ko8Bs?EjTEX1wH118`>hdfvG6v29|=U5t$2RDz8la3GWZ@=iKK$&$;J0=YG%kJol!0x?j-V zVXy-L0BAcS&ZD+6768zg0IF|Q(?#Q>TS=V=clHJXf#a_|rT_r7ZJw^)j>>;gD5VM& zB89wPE*B}J9H~?)l5*uDmPjO&3z>3Zp-=_4f2;0i@OV5qm#XC8xhgnv4pG^F=5RRj z1`LP8QnHY87P_IKLCJ(GnJ_66$zm~;gp}gW@cvAFqrPKKJu11 zz9f{p7vQTM|Kt5Waolw42CeIe03raeQ%4nQLz8#bw+@X+j{YRC=ulE@2muFh3&9Yg zBXQX9kV8)41YB%10Z%-1rs3*P8~~tc?tI?fJFZYRPVsw#FzC9GYRq|CU%7m`wDJ9X z#!%gqMp-v7a_l>9**%v$?+zu~)Wb)EX7j^AXo!a*{_HHUR%gkjxMkfQYyaZOHZTnIfTVl8PR2=6~ zAJmc%OYT|H0qf~`XhA9{v9rVdMfAQtz1=+$3GRXk)8J7M|CT6o>=qVrvZNqtc4_p? zk=e!xHJ7aIpRHg}%E&nVnc($@Wlw{byJhw%_+mCk#(Gy$T#!Ec zM?UrGNfp;}CdiBjzJa)`GJ=3U5MO41oGx$Fobw_^cZ}UdpB>L5lP`AHqsXanyWi!9QTvmke+9G>E!QGts{Lb%IOa$AIxYlzbytkN*(q=iIzr5oGE8Htv>s#=a2 zWc)Z=y^`RNc0MXtT{&8Hu|O;67y5<{heB}sg278F}yZc1qW`tgB6mIM5cXyZmp6{~wS5NJ4rN3>2)rv_z&)VwO$LR~b zQK4*t3Crm0{HK+cvS;FBjf4Bmvr+AwkN-p(UfF(FD|~I}m1TNjayU(Xg5FeF=Im7( zjxfOtKOkcqx@xjrBM0lFUZv1)kG$Qz7CAyA4SUO;O!em8Km2Rr9WQO(=$j1-?0^O5 zkk>G$S%TCu%{2K*x4p&xutYg~`$XxYDg54Cf$_A@dgvYW}y7H1zZ|3pL# z&;nbcqQgG;IlSpGJ78}%Z%o!573J&dxIQ1jIKUOLnmPn#yl!3^?RjbE41#fd^ZnKF zNY}oRYqlU%oyqG;H?zukO48vu`eXLNnlGvJdlBJm@$C-c*kVN%u(^NzC#dvM4IgTO z9h^ySwP>&Wy*;BPbRr|ZLoc18t-n(MnuLAnI@l2sjkTs~R+L;!3Wge9LtJ{wV34X3$TjA4Y}3cwo#Al;k9|E&lGk0G;LHz2zrchuF2Gbe6IRUqo`2Rf|^Su-a$R9 z*yhx=qM%>gSN;*y3MR~(BuD1SEv3$ig}8vl#F;Vj%c8-R(=orjD;HJK@0(=IEvSa7 zeQ=--9+5xkxwbZ4=Rm8T=;je*e>o14`gc;#KRU;IpS6I*T@~YB?5^GSb)o=Mt+3BC zbpq!_vw@!S+h=9;1FQw|7yly-^k1i1L1Mdh#8E6MYTLw%&u5tQ|3n$K3@-$)@B=v6 z?g%k^kDuEgo2VLvmzGtHW^lvt+)abwL~nS!(#ZopI_5WJElTTOC>b(%DhRv>{sj?c+BhF(xf=90wA{_fHU}qJ?~9wrR!k}C z_jNBmY?)@G0uMPV1pyqJ;W^E}l z#k2ZCk}7!jFA@WizP%v;An5to*~=j}cW;W5zJ1{BY8RHe^BlSd3zi)+MC;3fd!Hn; zr_Ds%JI=7_;P1 +
+
+ +
+
+

+ + + +

+
+

%s 篇 Blog,并有 %s 条关于你的评论在已设定的 %s 个分类中.', + $stat->myPublishedPostsNum, $stat->myPublishedCommentsNum, $stat->categoriesNum); ?>

+ +

logged > 0) { + _e('最后登录: %s', Typecho_I18n::dateWord($user->logged + $options->timezone, $options->gmtTime + $options->timezone)); + } + ?>

+
+
+ +
+
+

+ to($posts); ?> +
    + have()): ?> + next()): ?> +
  • title(); ?> + category(', '); ?> - dateWord(); ?>
  • + + +
  • + +
+
+
+

+
    + to($comments); ?> + have()): ?> + next()): ?> +
  • author(true); ?> title(); ?> - dateWord(); ?>
  • + + +
  • + +
+
+
+ +
+ + +
+

+

+ +

+
+ +

+ + +
+ +
+
+
+ + + + + diff --git a/admin/javascript/mootools.js b/admin/javascript/mootools.js new file mode 100644 index 00000000..d894dce2 --- /dev/null +++ b/admin/javascript/mootools.js @@ -0,0 +1,5023 @@ +/* +--- + +script: Core.js + +description: The core of MooTools, contains all the base functions and the Native and Hash implementations. Required by all the other scripts. + +license: MIT-style license. + +copyright: Copyright (c) 2006-2008 [Valerio Proietti](http://mad4milk.net/). + +authors: The MooTools production team (http://mootools.net/developers/) + +inspiration: +- Class implementation inspired by [Base.js](http://dean.edwards.name/weblog/2006/03/base/) Copyright (c) 2006 Dean Edwards, [GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php) +- Some functionality inspired by [Prototype.js](http://prototypejs.org) Copyright (c) 2005-2007 Sam Stephenson, [MIT License](http://opensource.org/licenses/mit-license.php) + +provides: [Mootools, Native, Hash.base, Array.each, $util] + +... +*/ + +var MooTools = { + 'version': '1.2.4', + 'build': '0d9113241a90b9cd5643b926795852a2026710d4' +}; + +var Native = function(options){ + options = options || {}; + var name = options.name; + var legacy = options.legacy; + var protect = options.protect; + var methods = options.implement; + var generics = options.generics; + var initialize = options.initialize; + var afterImplement = options.afterImplement || function(){}; + var object = initialize || legacy; + generics = generics !== false; + + object.constructor = Native; + object.$family = {name: 'native'}; + if (legacy && initialize) object.prototype = legacy.prototype; + object.prototype.constructor = object; + + if (name){ + var family = name.toLowerCase(); + object.prototype.$family = {name: family}; + Native.typize(object, family); + } + + var add = function(obj, name, method, force){ + if (!protect || force || !obj.prototype[name]) obj.prototype[name] = method; + if (generics) Native.genericize(obj, name, protect); + afterImplement.call(obj, name, method); + return obj; + }; + + object.alias = function(a1, a2, a3){ + if (typeof a1 == 'string'){ + var pa1 = this.prototype[a1]; + if ((a1 = pa1)) return add(this, a2, a1, a3); + } + for (var a in a1) this.alias(a, a1[a], a2); + return this; + }; + + object.implement = function(a1, a2, a3){ + if (typeof a1 == 'string') return add(this, a1, a2, a3); + for (var p in a1) add(this, p, a1[p], a2); + return this; + }; + + if (methods) object.implement(methods); + + return object; +}; + +Native.genericize = function(object, property, check){ + if ((!check || !object[property]) && typeof object.prototype[property] == 'function') object[property] = function(){ + var args = Array.prototype.slice.call(arguments); + return object.prototype[property].apply(args.shift(), args); + }; +}; + +Native.implement = function(objects, properties){ + for (var i = 0, l = objects.length; i < l; i++) objects[i].implement(properties); +}; + +Native.typize = function(object, family){ + if (!object.type) object.type = function(item){ + return ($type(item) === family); + }; +}; + +(function(){ + var natives = {'Array': Array, 'Date': Date, 'Function': Function, 'Number': Number, 'RegExp': RegExp, 'String': String}; + for (var n in natives) new Native({name: n, initialize: natives[n], protect: true}); + + var types = {'boolean': Boolean, 'native': Native, 'object': Object}; + for (var t in types) Native.typize(types[t], t); + + var generics = { + 'Array': ["concat", "indexOf", "join", "lastIndexOf", "pop", "push", "reverse", "shift", "slice", "sort", "splice", "toString", "unshift", "valueOf"], + 'String': ["charAt", "charCodeAt", "concat", "indexOf", "lastIndexOf", "match", "replace", "search", "slice", "split", "substr", "substring", "toLowerCase", "toUpperCase", "valueOf"] + }; + for (var g in generics){ + for (var i = generics[g].length; i--;) Native.genericize(natives[g], generics[g][i], true); + } +})(); + +var Hash = new Native({ + + name: 'Hash', + + initialize: function(object){ + if ($type(object) == 'hash') object = $unlink(object.getClean()); + for (var key in object) this[key] = object[key]; + return this; + } + +}); + +Hash.implement({ + + forEach: function(fn, bind){ + for (var key in this){ + if (this.hasOwnProperty(key)) fn.call(bind, this[key], key, this); + } + }, + + getClean: function(){ + var clean = {}; + for (var key in this){ + if (this.hasOwnProperty(key)) clean[key] = this[key]; + } + return clean; + }, + + getLength: function(){ + var length = 0; + for (var key in this){ + if (this.hasOwnProperty(key)) length++; + } + return length; + } + +}); + +Hash.alias('forEach', 'each'); + +Array.implement({ + + forEach: function(fn, bind){ + for (var i = 0, l = this.length; i < l; i++) fn.call(bind, this[i], i, this); + } + +}); + +Array.alias('forEach', 'each'); + +function $A(iterable){ + if (iterable.item){ + var l = iterable.length, array = new Array(l); + while (l--) array[l] = iterable[l]; + return array; + } + return Array.prototype.slice.call(iterable); +}; + +function $arguments(i){ + return function(){ + return arguments[i]; + }; +}; + +function $chk(obj){ + return !!(obj || obj === 0); +}; + +function $clear(timer){ + clearTimeout(timer); + clearInterval(timer); + return null; +}; + +function $defined(obj){ + return (obj != undefined); +}; + +function $each(iterable, fn, bind){ + var type = $type(iterable); + ((type == 'arguments' || type == 'collection' || type == 'array') ? Array : Hash).each(iterable, fn, bind); +}; + +function $empty(){}; + +function $extend(original, extended){ + for (var key in (extended || {})) original[key] = extended[key]; + return original; +}; + +function $H(object){ + return new Hash(object); +}; + +function $lambda(value){ + return ($type(value) == 'function') ? value : function(){ + return value; + }; +}; + +function $merge(){ + var args = Array.slice(arguments); + args.unshift({}); + return $mixin.apply(null, args); +}; + +function $mixin(mix){ + for (var i = 1, l = arguments.length; i < l; i++){ + var object = arguments[i]; + if ($type(object) != 'object') continue; + for (var key in object){ + var op = object[key], mp = mix[key]; + mix[key] = (mp && $type(op) == 'object' && $type(mp) == 'object') ? $mixin(mp, op) : $unlink(op); + } + } + return mix; +}; + +function $pick(){ + for (var i = 0, l = arguments.length; i < l; i++){ + if (arguments[i] != undefined) return arguments[i]; + } + return null; +}; + +function $random(min, max){ + return Math.floor(Math.random() * (max - min + 1) + min); +}; + +function $splat(obj){ + var type = $type(obj); + return (type) ? ((type != 'array' && type != 'arguments') ? [obj] : obj) : []; +}; + +var $time = Date.now || function(){ + return +new Date; +}; + +function $try(){ + for (var i = 0, l = arguments.length; i < l; i++){ + try { + return arguments[i](); + } catch(e){} + } + return null; +}; + +function $type(obj){ + if (obj == undefined) return false; + if (obj.$family) return (obj.$family.name == 'number' && !isFinite(obj)) ? false : obj.$family.name; + if (obj.nodeName){ + switch (obj.nodeType){ + case 1: return 'element'; + case 3: return (/\S/).test(obj.nodeValue) ? 'textnode' : 'whitespace'; + } + } else if (typeof obj.length == 'number'){ + if (obj.callee) return 'arguments'; + else if (obj.item) return 'collection'; + } + return typeof obj; +}; + +function $unlink(object){ + var unlinked; + switch ($type(object)){ + case 'object': + unlinked = {}; + for (var p in object) unlinked[p] = $unlink(object[p]); + break; + case 'hash': + unlinked = new Hash(object); + break; + case 'array': + unlinked = []; + for (var i = 0, l = object.length; i < l; i++) unlinked[i] = $unlink(object[i]); + break; + default: return object; + } + return unlinked; +}; + + +/* +--- + +script: Browser.js + +description: The Browser Core. Contains Browser initialization, Window and Document, and the Browser Hash. + +license: MIT-style license. + +requires: +- /Native +- /$util + +provides: [Browser, Window, Document, $exec] + +... +*/ + +var Browser = $merge({ + + Engine: {name: 'unknown', version: 0}, + + Platform: {name: (window.orientation != undefined) ? 'ipod' : (navigator.platform.match(/mac|win|linux/i) || ['other'])[0].toLowerCase()}, + + Features: {xpath: !!(document.evaluate), air: !!(window.runtime), query: !!(document.querySelector)}, + + Plugins: {}, + + Engines: { + + presto: function(){ + return (!window.opera) ? false : ((arguments.callee.caller) ? 960 : ((document.getElementsByClassName) ? 950 : 925)); + }, + + trident: function(){ + return (!window.ActiveXObject) ? false : ((window.XMLHttpRequest) ? ((document.querySelectorAll) ? 6 : 5) : 4); + }, + + webkit: function(){ + return (navigator.taintEnabled) ? false : ((Browser.Features.xpath) ? ((Browser.Features.query) ? 525 : 420) : 419); + }, + + gecko: function(){ + return (!document.getBoxObjectFor && window.mozInnerScreenX == null) ? false : ((document.getElementsByClassName) ? 19 : 18); + } + + } + +}, Browser || {}); + +Browser.Platform[Browser.Platform.name] = true; + +Browser.detect = function(){ + + for (var engine in this.Engines){ + var version = this.Engines[engine](); + if (version){ + this.Engine = {name: engine, version: version}; + this.Engine[engine] = this.Engine[engine + version] = true; + break; + } + } + + return {name: engine, version: version}; + +}; + +Browser.detect(); + +Browser.Request = function(){ + return $try(function(){ + return new XMLHttpRequest(); + }, function(){ + return new ActiveXObject('MSXML2.XMLHTTP'); + }, function(){ + return new ActiveXObject('Microsoft.XMLHTTP'); + }); +}; + +Browser.Features.xhr = !!(Browser.Request()); + +Browser.Plugins.Flash = (function(){ + var version = ($try(function(){ + return navigator.plugins['Shockwave Flash'].description; + }, function(){ + return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version'); + }) || '0 r0').match(/\d+/g); + return {version: parseInt(version[0] || 0 + '.' + version[1], 10) || 0, build: parseInt(version[2], 10) || 0}; +})(); + +function $exec(text){ + if (!text) return text; + if (window.execScript){ + window.execScript(text); + } else { + var script = document.createElement('script'); + script.setAttribute('type', 'text/javascript'); + script[(Browser.Engine.webkit && Browser.Engine.version < 420) ? 'innerText' : 'text'] = text; + document.head.appendChild(script); + document.head.removeChild(script); + } + return text; +}; + +Native.UID = 1; + +var $uid = (Browser.Engine.trident) ? function(item){ + return (item.uid || (item.uid = [Native.UID++]))[0]; +} : function(item){ + return item.uid || (item.uid = Native.UID++); +}; + +var Window = new Native({ + + name: 'Window', + + legacy: (Browser.Engine.trident) ? null: window.Window, + + initialize: function(win){ + $uid(win); + if (!win.Element){ + win.Element = $empty; + if (Browser.Engine.webkit) win.document.createElement("iframe"); //fixes safari 2 + win.Element.prototype = (Browser.Engine.webkit) ? window["[[DOMElement.prototype]]"] : {}; + } + win.document.window = win; + return $extend(win, Window.Prototype); + }, + + afterImplement: function(property, value){ + window[property] = Window.Prototype[property] = value; + } + +}); + +Window.Prototype = {$family: {name: 'window'}}; + +new Window(window); + +var Document = new Native({ + + name: 'Document', + + legacy: (Browser.Engine.trident) ? null: window.Document, + + initialize: function(doc){ + $uid(doc); + doc.head = doc.getElementsByTagName('head')[0]; + doc.html = doc.getElementsByTagName('html')[0]; + if (Browser.Engine.trident && Browser.Engine.version <= 4) $try(function(){ + doc.execCommand("BackgroundImageCache", false, true); + }); + if (Browser.Engine.trident) doc.window.attachEvent('onunload', function(){ + doc.window.detachEvent('onunload', arguments.callee); + doc.head = doc.html = doc.window = null; + }); + return $extend(doc, Document.Prototype); + }, + + afterImplement: function(property, value){ + document[property] = Document.Prototype[property] = value; + } + +}); + +Document.Prototype = {$family: {name: 'document'}}; + +new Document(document); + + +/* +--- + +script: Array.js + +description: Contains Array Prototypes like each, contains, and erase. + +license: MIT-style license. + +requires: +- /$util +- /Array.each + +provides: [Array] + +... +*/ + +Array.implement({ + + every: function(fn, bind){ + for (var i = 0, l = this.length; i < l; i++){ + if (!fn.call(bind, this[i], i, this)) return false; + } + return true; + }, + + filter: function(fn, bind){ + var results = []; + for (var i = 0, l = this.length; i < l; i++){ + if (fn.call(bind, this[i], i, this)) results.push(this[i]); + } + return results; + }, + + clean: function(){ + return this.filter($defined); + }, + + indexOf: function(item, from){ + var len = this.length; + for (var i = (from < 0) ? Math.max(0, len + from) : from || 0; i < len; i++){ + if (this[i] === item) return i; + } + return -1; + }, + + map: function(fn, bind){ + var results = []; + for (var i = 0, l = this.length; i < l; i++) results[i] = fn.call(bind, this[i], i, this); + return results; + }, + + some: function(fn, bind){ + for (var i = 0, l = this.length; i < l; i++){ + if (fn.call(bind, this[i], i, this)) return true; + } + return false; + }, + + associate: function(keys){ + var obj = {}, length = Math.min(this.length, keys.length); + for (var i = 0; i < length; i++) obj[keys[i]] = this[i]; + return obj; + }, + + link: function(object){ + var result = {}; + for (var i = 0, l = this.length; i < l; i++){ + for (var key in object){ + if (object[key](this[i])){ + result[key] = this[i]; + delete object[key]; + break; + } + } + } + return result; + }, + + contains: function(item, from){ + return this.indexOf(item, from) != -1; + }, + + extend: function(array){ + for (var i = 0, j = array.length; i < j; i++) this.push(array[i]); + return this; + }, + + getLast: function(){ + return (this.length) ? this[this.length - 1] : null; + }, + + getRandom: function(){ + return (this.length) ? this[$random(0, this.length - 1)] : null; + }, + + include: function(item){ + if (!this.contains(item)) this.push(item); + return this; + }, + + combine: function(array){ + for (var i = 0, l = array.length; i < l; i++) this.include(array[i]); + return this; + }, + + erase: function(item){ + for (var i = this.length; i--; i){ + if (this[i] === item) this.splice(i, 1); + } + return this; + }, + + empty: function(){ + this.length = 0; + return this; + }, + + flatten: function(){ + var array = []; + for (var i = 0, l = this.length; i < l; i++){ + var type = $type(this[i]); + if (!type) continue; + array = array.concat((type == 'array' || type == 'collection' || type == 'arguments') ? Array.flatten(this[i]) : this[i]); + } + return array; + }, + + hexToRgb: function(array){ + if (this.length != 3) return null; + var rgb = this.map(function(value){ + if (value.length == 1) value += value; + return value.toInt(16); + }); + return (array) ? rgb : 'rgb(' + rgb + ')'; + }, + + rgbToHex: function(array){ + if (this.length < 3) return null; + if (this.length == 4 && this[3] == 0 && !array) return 'transparent'; + var hex = []; + for (var i = 0; i < 3; i++){ + var bit = (this[i] - 0).toString(16); + hex.push((bit.length == 1) ? '0' + bit : bit); + } + return (array) ? hex : '#' + hex.join(''); + } + +}); + + +/* +--- + +script: Function.js + +description: Contains Function Prototypes like create, bind, pass, and delay. + +license: MIT-style license. + +requires: +- /Native +- /$util + +provides: [Function] + +... +*/ + +Function.implement({ + + extend: function(properties){ + for (var property in properties) this[property] = properties[property]; + return this; + }, + + create: function(options){ + var self = this; + options = options || {}; + return function(event){ + var args = options.arguments; + args = (args != undefined) ? $splat(args) : Array.slice(arguments, (options.event) ? 1 : 0); + if (options.event) args = [event || window.event].extend(args); + var returns = function(){ + return self.apply(options.bind || null, args); + }; + if (options.delay) return setTimeout(returns, options.delay); + if (options.periodical) return setInterval(returns, options.periodical); + if (options.attempt) return $try(returns); + return returns(); + }; + }, + + run: function(args, bind){ + return this.apply(bind, $splat(args)); + }, + + pass: function(args, bind){ + return this.create({bind: bind, arguments: args}); + }, + + bind: function(bind, args){ + return this.create({bind: bind, arguments: args}); + }, + + bindWithEvent: function(bind, args){ + return this.create({bind: bind, arguments: args, event: true}); + }, + + attempt: function(args, bind){ + return this.create({bind: bind, arguments: args, attempt: true})(); + }, + + delay: function(delay, bind, args){ + return this.create({bind: bind, arguments: args, delay: delay})(); + }, + + periodical: function(periodical, bind, args){ + return this.create({bind: bind, arguments: args, periodical: periodical})(); + } + +}); + + +/* +--- + +script: Number.js + +description: Contains Number Prototypes like limit, round, times, and ceil. + +license: MIT-style license. + +requires: +- /Native +- /$util + +provides: [Number] + +... +*/ + +Number.implement({ + + limit: function(min, max){ + return Math.min(max, Math.max(min, this)); + }, + + round: function(precision){ + precision = Math.pow(10, precision || 0); + return Math.round(this * precision) / precision; + }, + + times: function(fn, bind){ + for (var i = 0; i < this; i++) fn.call(bind, i, this); + }, + + toFloat: function(){ + return parseFloat(this); + }, + + toInt: function(base){ + return parseInt(this, base || 10); + } + +}); + +Number.alias('times', 'each'); + +(function(math){ + var methods = {}; + math.each(function(name){ + if (!Number[name]) methods[name] = function(){ + return Math[name].apply(null, [this].concat($A(arguments))); + }; + }); + Number.implement(methods); +})(['abs', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'exp', 'floor', 'log', 'max', 'min', 'pow', 'sin', 'sqrt', 'tan']); + + +/* +--- + +script: String.js + +description: Contains String Prototypes like camelCase, capitalize, test, and toInt. + +license: MIT-style license. + +requires: +- /Native + +provides: [String] + +... +*/ + +String.implement({ + + test: function(regex, params){ + return ((typeof regex == 'string') ? new RegExp(regex, params) : regex).test(this); + }, + + contains: function(string, separator){ + return (separator) ? (separator + this + separator).indexOf(separator + string + separator) > -1 : this.indexOf(string) > -1; + }, + + trim: function(){ + return this.replace(/^\s+|\s+$/g, ''); + }, + + clean: function(){ + return this.replace(/\s+/g, ' ').trim(); + }, + + camelCase: function(){ + return this.replace(/-\D/g, function(match){ + return match.charAt(1).toUpperCase(); + }); + }, + + hyphenate: function(){ + return this.replace(/[A-Z]/g, function(match){ + return ('-' + match.charAt(0).toLowerCase()); + }); + }, + + capitalize: function(){ + return this.replace(/\b[a-z]/g, function(match){ + return match.toUpperCase(); + }); + }, + + escapeRegExp: function(){ + return this.replace(/([-.*+?^${}()|[\]\/\\])/g, '\\$1'); + }, + + toInt: function(base){ + return parseInt(this, base || 10); + }, + + toFloat: function(){ + return parseFloat(this); + }, + + hexToRgb: function(array){ + var hex = this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/); + return (hex) ? hex.slice(1).hexToRgb(array) : null; + }, + + rgbToHex: function(array){ + var rgb = this.match(/\d{1,3}/g); + return (rgb) ? rgb.rgbToHex(array) : null; + }, + + stripScripts: function(option){ + var scripts = ''; + var text = this.replace(/]*>([\s\S]*?)<\/script>/gi, function(){ + scripts += arguments[1] + '\n'; + return ''; + }); + if (option === true) $exec(scripts); + else if ($type(option) == 'function') option(scripts, text); + return text; + }, + + substitute: function(object, regexp){ + return this.replace(regexp || (/\\?\{([^{}]+)\}/g), function(match, name){ + if (match.charAt(0) == '\\') return match.slice(1); + return (object[name] != undefined) ? object[name] : ''; + }); + } + +}); + + +/* +--- + +script: Hash.js + +description: Contains Hash Prototypes. Provides a means for overcoming the JavaScript practical impossibility of extending native Objects. + +license: MIT-style license. + +requires: +- /Hash.base + +provides: [Hash] + +... +*/ + +Hash.implement({ + + has: Object.prototype.hasOwnProperty, + + keyOf: function(value){ + for (var key in this){ + if (this.hasOwnProperty(key) && this[key] === value) return key; + } + return null; + }, + + hasValue: function(value){ + return (Hash.keyOf(this, value) !== null); + }, + + extend: function(properties){ + Hash.each(properties || {}, function(value, key){ + Hash.set(this, key, value); + }, this); + return this; + }, + + combine: function(properties){ + Hash.each(properties || {}, function(value, key){ + Hash.include(this, key, value); + }, this); + return this; + }, + + erase: function(key){ + if (this.hasOwnProperty(key)) delete this[key]; + return this; + }, + + get: function(key){ + return (this.hasOwnProperty(key)) ? this[key] : null; + }, + + set: function(key, value){ + if (!this[key] || this.hasOwnProperty(key)) this[key] = value; + return this; + }, + + empty: function(){ + Hash.each(this, function(value, key){ + delete this[key]; + }, this); + return this; + }, + + include: function(key, value){ + if (this[key] == undefined) this[key] = value; + return this; + }, + + map: function(fn, bind){ + var results = new Hash; + Hash.each(this, function(value, key){ + results.set(key, fn.call(bind, value, key, this)); + }, this); + return results; + }, + + filter: function(fn, bind){ + var results = new Hash; + Hash.each(this, function(value, key){ + if (fn.call(bind, value, key, this)) results.set(key, value); + }, this); + return results; + }, + + every: function(fn, bind){ + for (var key in this){ + if (this.hasOwnProperty(key) && !fn.call(bind, this[key], key)) return false; + } + return true; + }, + + some: function(fn, bind){ + for (var key in this){ + if (this.hasOwnProperty(key) && fn.call(bind, this[key], key)) return true; + } + return false; + }, + + getKeys: function(){ + var keys = []; + Hash.each(this, function(value, key){ + keys.push(key); + }); + return keys; + }, + + getValues: function(){ + var values = []; + Hash.each(this, function(value){ + values.push(value); + }); + return values; + }, + + toQueryString: function(base){ + var queryString = []; + Hash.each(this, function(value, key){ + if (base) key = base + '[' + key + ']'; + var result; + switch ($type(value)){ + case 'object': result = Hash.toQueryString(value, key); break; + case 'array': + var qs = {}; + value.each(function(val, i){ + qs[i] = val; + }); + result = Hash.toQueryString(qs, key); + break; + default: result = key + '=' + encodeURIComponent(value); + } + if (value != undefined) queryString.push(result); + }); + + return queryString.join('&'); + } + +}); + +Hash.alias({keyOf: 'indexOf', hasValue: 'contains'}); + + +/* +--- + +script: Event.js + +description: Contains the Event Class, to make the event object cross-browser. + +license: MIT-style license. + +requires: +- /Window +- /Document +- /Hash +- /Array +- /Function +- /String + +provides: [Event] + +... +*/ + +var Event = new Native({ + + name: 'Event', + + initialize: function(event, win){ + win = win || window; + var doc = win.document; + event = event || win.event; + if (event.$extended) return event; + this.$extended = true; + var type = event.type; + var target = event.target || event.srcElement; + while (target && target.nodeType == 3) target = target.parentNode; + + if (type.test(/key/)){ + var code = event.which || event.keyCode; + var key = Event.Keys.keyOf(code); + if (type == 'keydown'){ + var fKey = code - 111; + if (fKey > 0 && fKey < 13) key = 'f' + fKey; + } + key = key || String.fromCharCode(code).toLowerCase(); + } else if (type.match(/(click|mouse|menu)/i)){ + doc = (!doc.compatMode || doc.compatMode == 'CSS1Compat') ? doc.html : doc.body; + var page = { + x: event.pageX || event.clientX + doc.scrollLeft, + y: event.pageY || event.clientY + doc.scrollTop + }; + var client = { + x: (event.pageX) ? event.pageX - win.pageXOffset : event.clientX, + y: (event.pageY) ? event.pageY - win.pageYOffset : event.clientY + }; + if (type.match(/DOMMouseScroll|mousewheel/)){ + var wheel = (event.wheelDelta) ? event.wheelDelta / 120 : -(event.detail || 0) / 3; + } + var rightClick = (event.which == 3) || (event.button == 2); + var related = null; + if (type.match(/over|out/)){ + switch (type){ + case 'mouseover': related = event.relatedTarget || event.fromElement; break; + case 'mouseout': related = event.relatedTarget || event.toElement; + } + if (!(function(){ + while (related && related.nodeType == 3) related = related.parentNode; + return true; + }).create({attempt: Browser.Engine.gecko})()) related = false; + } + } + + return $extend(this, { + event: event, + type: type, + + page: page, + client: client, + rightClick: rightClick, + + wheel: wheel, + + relatedTarget: related, + target: target, + + code: code, + key: key, + + shift: event.shiftKey, + control: event.ctrlKey, + alt: event.altKey, + meta: event.metaKey + }); + } + +}); + +Event.Keys = new Hash({ + 'enter': 13, + 'up': 38, + 'down': 40, + 'left': 37, + 'right': 39, + 'esc': 27, + 'space': 32, + 'backspace': 8, + 'tab': 9, + 'delete': 46 +}); + +Event.implement({ + + stop: function(){ + return this.stopPropagation().preventDefault(); + }, + + stopPropagation: function(){ + if (this.event.stopPropagation) this.event.stopPropagation(); + else this.event.cancelBubble = true; + return this; + }, + + preventDefault: function(){ + if (this.event.preventDefault) this.event.preventDefault(); + else this.event.returnValue = false; + return this; + } + +}); + + +/* +--- + +script: Class.js + +description: Contains the Class Function for easily creating, extending, and implementing reusable Classes. + +license: MIT-style license. + +requires: +- /$util +- /Native +- /Array +- /String +- /Function +- /Number +- /Hash + +provides: [Class] + +... +*/ + +function Class(params){ + + if (params instanceof Function) params = {initialize: params}; + + var newClass = function(){ + Object.reset(this); + if (newClass._prototyping) return this; + this._current = $empty; + var value = (this.initialize) ? this.initialize.apply(this, arguments) : this; + delete this._current; delete this.caller; + return value; + }.extend(this); + + newClass.implement(params); + + newClass.constructor = Class; + newClass.prototype.constructor = newClass; + + return newClass; + +}; + +Function.prototype.protect = function(){ + this._protected = true; + return this; +}; + +Object.reset = function(object, key){ + + if (key == null){ + for (var p in object) Object.reset(object, p); + return object; + } + + delete object[key]; + + switch ($type(object[key])){ + case 'object': + var F = function(){}; + F.prototype = object[key]; + var i = new F; + object[key] = Object.reset(i); + break; + case 'array': object[key] = $unlink(object[key]); break; + } + + return object; + +}; + +new Native({name: 'Class', initialize: Class}).extend({ + + instantiate: function(F){ + F._prototyping = true; + var proto = new F; + delete F._prototyping; + return proto; + }, + + wrap: function(self, key, method){ + if (method._origin) method = method._origin; + + return function(){ + if (method._protected && this._current == null) throw new Error('The method "' + key + '" cannot be called.'); + var caller = this.caller, current = this._current; + this.caller = current; this._current = arguments.callee; + var result = method.apply(this, arguments); + this._current = current; this.caller = caller; + return result; + }.extend({_owner: self, _origin: method, _name: key}); + + } + +}); + +Class.implement({ + + implement: function(key, value){ + + if ($type(key) == 'object'){ + for (var p in key) this.implement(p, key[p]); + return this; + } + + var mutator = Class.Mutators[key]; + + if (mutator){ + value = mutator.call(this, value); + if (value == null) return this; + } + + var proto = this.prototype; + + switch ($type(value)){ + + case 'function': + if (value._hidden) return this; + proto[key] = Class.wrap(this, key, value); + break; + + case 'object': + var previous = proto[key]; + if ($type(previous) == 'object') $mixin(previous, value); + else proto[key] = $unlink(value); + break; + + case 'array': + proto[key] = $unlink(value); + break; + + default: proto[key] = value; + + } + + return this; + + } + +}); + +Class.Mutators = { + + Extends: function(parent){ + + this.parent = parent; + this.prototype = Class.instantiate(parent); + + this.implement('parent', function(){ + var name = this.caller._name, previous = this.caller._owner.parent.prototype[name]; + if (!previous) throw new Error('The method "' + name + '" has no parent.'); + return previous.apply(this, arguments); + }.protect()); + + }, + + Implements: function(items){ + $splat(items).each(function(item){ + if (item instanceof Function) item = Class.instantiate(item); + this.implement(item); + }, this); + + } + +}; + + +/* +--- + +script: Class.Extras.js + +description: Contains Utility Classes that can be implemented into your own Classes to ease the execution of many common tasks. + +license: MIT-style license. + +requires: +- /Class + +provides: [Chain, Events, Options] + +... +*/ + +var Chain = new Class({ + + $chain: [], + + chain: function(){ + this.$chain.extend(Array.flatten(arguments)); + return this; + }, + + callChain: function(){ + return (this.$chain.length) ? this.$chain.shift().apply(this, arguments) : false; + }, + + clearChain: function(){ + this.$chain.empty(); + return this; + } + +}); + +var Events = new Class({ + + $events: {}, + + addEvent: function(type, fn, internal){ + type = Events.removeOn(type); + if (fn != $empty){ + this.$events[type] = this.$events[type] || []; + this.$events[type].include(fn); + if (internal) fn.internal = true; + } + return this; + }, + + addEvents: function(events){ + for (var type in events) this.addEvent(type, events[type]); + return this; + }, + + fireEvent: function(type, args, delay){ + type = Events.removeOn(type); + if (!this.$events || !this.$events[type]) return this; + this.$events[type].each(function(fn){ + fn.create({'bind': this, 'delay': delay, 'arguments': args})(); + }, this); + return this; + }, + + removeEvent: function(type, fn){ + type = Events.removeOn(type); + if (!this.$events[type]) return this; + if (!fn.internal) this.$events[type].erase(fn); + return this; + }, + + removeEvents: function(events){ + var type; + if ($type(events) == 'object'){ + for (type in events) this.removeEvent(type, events[type]); + return this; + } + if (events) events = Events.removeOn(events); + for (type in this.$events){ + if (events && events != type) continue; + var fns = this.$events[type]; + for (var i = fns.length; i--; i) this.removeEvent(type, fns[i]); + } + return this; + } + +}); + +Events.removeOn = function(string){ + return string.replace(/^on([A-Z])/, function(full, first){ + return first.toLowerCase(); + }); +}; + +var Options = new Class({ + + setOptions: function(){ + this.options = $merge.run([this.options].extend(arguments)); + if (!this.addEvent) return this; + for (var option in this.options){ + if ($type(this.options[option]) != 'function' || !(/^on[A-Z]/).test(option)) continue; + this.addEvent(option, this.options[option]); + delete this.options[option]; + } + return this; + } + +}); + + +/* +--- + +script: Element.js + +description: One of the most important items in MooTools. Contains the dollar function, the dollars function, and an handful of cross-browser, time-saver methods to let you easily work with HTML Elements. + +license: MIT-style license. + +requires: +- /Window +- /Document +- /Array +- /String +- /Function +- /Number +- /Hash + +provides: [Element, Elements, $, $$, Iframe] + +... +*/ + +var Element = new Native({ + + name: 'Element', + + legacy: window.Element, + + initialize: function(tag, props){ + var konstructor = Element.Constructors.get(tag); + if (konstructor) return konstructor(props); + if (typeof tag == 'string') return document.newElement(tag, props); + return document.id(tag).set(props); + }, + + afterImplement: function(key, value){ + Element.Prototype[key] = value; + if (Array[key]) return; + Elements.implement(key, function(){ + var items = [], elements = true; + for (var i = 0, j = this.length; i < j; i++){ + var returns = this[i][key].apply(this[i], arguments); + items.push(returns); + if (elements) elements = ($type(returns) == 'element'); + } + return (elements) ? new Elements(items) : items; + }); + } + +}); + +Element.Prototype = {$family: {name: 'element'}}; + +Element.Constructors = new Hash; + +var IFrame = new Native({ + + name: 'IFrame', + + generics: false, + + initialize: function(){ + var params = Array.link(arguments, {properties: Object.type, iframe: $defined}); + var props = params.properties || {}; + var iframe = document.id(params.iframe); + var onload = props.onload || $empty; + delete props.onload; + props.id = props.name = $pick(props.id, props.name, iframe ? (iframe.id || iframe.name) : 'IFrame_' + $time()); + iframe = new Element(iframe || 'iframe', props); + var onFrameLoad = function(){ + var host = $try(function(){ + return iframe.contentWindow.location.host; + }); + if (!host || host == window.location.host){ + var win = new Window(iframe.contentWindow); + new Document(iframe.contentWindow.document); + $extend(win.Element.prototype, Element.Prototype); + } + onload.call(iframe.contentWindow, iframe.contentWindow.document); + }; + var contentWindow = $try(function(){ + return iframe.contentWindow; + }); + ((contentWindow && contentWindow.document.body) || window.frames[props.id]) ? onFrameLoad() : iframe.addListener('load', onFrameLoad); + return iframe; + } + +}); + +var Elements = new Native({ + + initialize: function(elements, options){ + options = $extend({ddup: true, cash: true}, options); + elements = elements || []; + if (options.ddup || options.cash){ + var uniques = {}, returned = []; + for (var i = 0, l = elements.length; i < l; i++){ + var el = document.id(elements[i], !options.cash); + if (options.ddup){ + if (uniques[el.uid]) continue; + uniques[el.uid] = true; + } + if (el) returned.push(el); + } + elements = returned; + } + return (options.cash) ? $extend(elements, this) : elements; + } + +}); + +Elements.implement({ + + filter: function(filter, bind){ + if (!filter) return this; + return new Elements(Array.filter(this, (typeof filter == 'string') ? function(item){ + return item.match(filter); + } : filter, bind)); + } + +}); + +Document.implement({ + + newElement: function(tag, props){ + if (Browser.Engine.trident && props){ + ['name', 'type', 'checked'].each(function(attribute){ + if (!props[attribute]) return; + tag += ' ' + attribute + '="' + props[attribute] + '"'; + if (attribute != 'checked') delete props[attribute]; + }); + tag = '<' + tag + '>'; + } + return document.id(this.createElement(tag)).set(props); + }, + + newTextNode: function(text){ + return this.createTextNode(text); + }, + + getDocument: function(){ + return this; + }, + + getWindow: function(){ + return this.window; + }, + + id: (function(){ + + var types = { + + string: function(id, nocash, doc){ + id = doc.getElementById(id); + return (id) ? types.element(id, nocash) : null; + }, + + element: function(el, nocash){ + $uid(el); + if (!nocash && !el.$family && !(/^object|embed$/i).test(el.tagName)){ + var proto = Element.Prototype; + for (var p in proto) el[p] = proto[p]; + }; + return el; + }, + + object: function(obj, nocash, doc){ + if (obj.toElement) return types.element(obj.toElement(doc), nocash); + return null; + } + + }; + + types.textnode = types.whitespace = types.window = types.document = $arguments(0); + + return function(el, nocash, doc){ + if (el && el.$family && el.uid) return el; + var type = $type(el); + return (types[type]) ? types[type](el, nocash, doc || document) : null; + }; + + })() + +}); + +if (window.$ == null) Window.implement({ + $: function(el, nc){ + return document.id(el, nc, this.document); + } +}); + +Window.implement({ + + $$: function(selector){ + if (arguments.length == 1 && typeof selector == 'string') return this.document.getElements(selector); + var elements = []; + var args = Array.flatten(arguments); + for (var i = 0, l = args.length; i < l; i++){ + var item = args[i]; + switch ($type(item)){ + case 'element': elements.push(item); break; + case 'string': elements.extend(this.document.getElements(item, true)); + } + } + return new Elements(elements); + }, + + getDocument: function(){ + return this.document; + }, + + getWindow: function(){ + return this; + } + +}); + +Native.implement([Element, Document], { + + getElement: function(selector, nocash){ + return document.id(this.getElements(selector, true)[0] || null, nocash); + }, + + getElements: function(tags, nocash){ + tags = tags.split(','); + var elements = []; + var ddup = (tags.length > 1); + tags.each(function(tag){ + var partial = this.getElementsByTagName(tag.trim()); + (ddup) ? elements.extend(partial) : elements = partial; + }, this); + return new Elements(elements, {ddup: ddup, cash: !nocash}); + } + +}); + +(function(){ + +var collected = {}, storage = {}; +var props = {input: 'checked', option: 'selected', textarea: (Browser.Engine.webkit && Browser.Engine.version < 420) ? 'innerHTML' : 'value'}; + +var get = function(uid){ + return (storage[uid] || (storage[uid] = {})); +}; + +var clean = function(item, retain){ + if (!item) return; + var uid = item.uid; + if (Browser.Engine.trident){ + if (item.clearAttributes){ + var clone = retain && item.cloneNode(false); + item.clearAttributes(); + if (clone) item.mergeAttributes(clone); + } else if (item.removeEvents){ + item.removeEvents(); + } + if ((/object/i).test(item.tagName)){ + for (var p in item){ + if (typeof item[p] == 'function') item[p] = $empty; + } + Element.dispose(item); + } + } + if (!uid) return; + collected[uid] = storage[uid] = null; +}; + +var purge = function(){ + Hash.each(collected, clean); + if (Browser.Engine.trident) $A(document.getElementsByTagName('object')).each(clean); + if (window.CollectGarbage) CollectGarbage(); + collected = storage = null; +}; + +var walk = function(element, walk, start, match, all, nocash){ + var el = element[start || walk]; + var elements = []; + while (el){ + if (el.nodeType == 1 && (!match || Element.match(el, match))){ + if (!all) return document.id(el, nocash); + elements.push(el); + } + el = el[walk]; + } + return (all) ? new Elements(elements, {ddup: false, cash: !nocash}) : null; +}; + +var attributes = { + 'html': 'innerHTML', + 'class': 'className', + 'for': 'htmlFor', + 'defaultValue': 'defaultValue', + 'text': (Browser.Engine.trident || (Browser.Engine.webkit && Browser.Engine.version < 420)) ? 'innerText' : 'textContent' +}; +var bools = ['compact', 'nowrap', 'ismap', 'declare', 'noshade', 'checked', 'disabled', 'readonly', 'multiple', 'selected', 'noresize', 'defer']; +var camels = ['value', 'type', 'defaultValue', 'accessKey', 'cellPadding', 'cellSpacing', 'colSpan', 'frameBorder', 'maxLength', 'readOnly', 'rowSpan', 'tabIndex', 'useMap']; + +bools = bools.associate(bools); + +Hash.extend(attributes, bools); +Hash.extend(attributes, camels.associate(camels.map(String.toLowerCase))); + +var inserters = { + + before: function(context, element){ + if (element.parentNode) element.parentNode.insertBefore(context, element); + }, + + after: function(context, element){ + if (!element.parentNode) return; + var next = element.nextSibling; + (next) ? element.parentNode.insertBefore(context, next) : element.parentNode.appendChild(context); + }, + + bottom: function(context, element){ + element.appendChild(context); + }, + + top: function(context, element){ + var first = element.firstChild; + (first) ? element.insertBefore(context, first) : element.appendChild(context); + } + +}; + +inserters.inside = inserters.bottom; + +Hash.each(inserters, function(inserter, where){ + + where = where.capitalize(); + + Element.implement('inject' + where, function(el){ + inserter(this, document.id(el, true)); + return this; + }); + + Element.implement('grab' + where, function(el){ + inserter(document.id(el, true), this); + return this; + }); + +}); + +Element.implement({ + + set: function(prop, value){ + switch ($type(prop)){ + case 'object': + for (var p in prop) this.set(p, prop[p]); + break; + case 'string': + var property = Element.Properties.get(prop); + (property && property.set) ? property.set.apply(this, Array.slice(arguments, 1)) : this.setProperty(prop, value); + } + return this; + }, + + get: function(prop){ + var property = Element.Properties.get(prop); + return (property && property.get) ? property.get.apply(this, Array.slice(arguments, 1)) : this.getProperty(prop); + }, + + erase: function(prop){ + var property = Element.Properties.get(prop); + (property && property.erase) ? property.erase.apply(this) : this.removeProperty(prop); + return this; + }, + + setProperty: function(attribute, value){ + var key = attributes[attribute]; + if (value == undefined) return this.removeProperty(attribute); + if (key && bools[attribute]) value = !!value; + (key) ? this[key] = value : this.setAttribute(attribute, '' + value); + return this; + }, + + setProperties: function(attributes){ + for (var attribute in attributes) this.setProperty(attribute, attributes[attribute]); + return this; + }, + + getProperty: function(attribute){ + var key = attributes[attribute]; + var value = (key) ? this[key] : this.getAttribute(attribute, 2); + return (bools[attribute]) ? !!value : (key) ? value : value || null; + }, + + getProperties: function(){ + var args = $A(arguments); + return args.map(this.getProperty, this).associate(args); + }, + + removeProperty: function(attribute){ + var key = attributes[attribute]; + (key) ? this[key] = (key && bools[attribute]) ? false : '' : this.removeAttribute(attribute); + return this; + }, + + removeProperties: function(){ + Array.each(arguments, this.removeProperty, this); + return this; + }, + + hasClass: function(className){ + return this.className.contains(className, ' '); + }, + + addClass: function(className){ + if (!this.hasClass(className)) this.className = (this.className + ' ' + className).clean(); + return this; + }, + + removeClass: function(className){ + this.className = this.className.replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)'), '$1'); + return this; + }, + + toggleClass: function(className){ + return this.hasClass(className) ? this.removeClass(className) : this.addClass(className); + }, + + adopt: function(){ + Array.flatten(arguments).each(function(element){ + element = document.id(element, true); + if (element) this.appendChild(element); + }, this); + return this; + }, + + appendText: function(text, where){ + return this.grab(this.getDocument().newTextNode(text), where); + }, + + grab: function(el, where){ + inserters[where || 'bottom'](document.id(el, true), this); + return this; + }, + + inject: function(el, where){ + inserters[where || 'bottom'](this, document.id(el, true)); + return this; + }, + + replaces: function(el){ + el = document.id(el, true); + el.parentNode.replaceChild(this, el); + return this; + }, + + wraps: function(el, where){ + el = document.id(el, true); + return this.replaces(el).grab(el, where); + }, + + getPrevious: function(match, nocash){ + return walk(this, 'previousSibling', null, match, false, nocash); + }, + + getAllPrevious: function(match, nocash){ + return walk(this, 'previousSibling', null, match, true, nocash); + }, + + getNext: function(match, nocash){ + return walk(this, 'nextSibling', null, match, false, nocash); + }, + + getAllNext: function(match, nocash){ + return walk(this, 'nextSibling', null, match, true, nocash); + }, + + getFirst: function(match, nocash){ + return walk(this, 'nextSibling', 'firstChild', match, false, nocash); + }, + + getLast: function(match, nocash){ + return walk(this, 'previousSibling', 'lastChild', match, false, nocash); + }, + + getParent: function(match, nocash){ + return walk(this, 'parentNode', null, match, false, nocash); + }, + + getParents: function(match, nocash){ + return walk(this, 'parentNode', null, match, true, nocash); + }, + + getSiblings: function(match, nocash){ + return this.getParent().getChildren(match, nocash).erase(this); + }, + + getChildren: function(match, nocash){ + return walk(this, 'nextSibling', 'firstChild', match, true, nocash); + }, + + getWindow: function(){ + return this.ownerDocument.window; + }, + + getDocument: function(){ + return this.ownerDocument; + }, + + getElementById: function(id, nocash){ + var el = this.ownerDocument.getElementById(id); + if (!el) return null; + for (var parent = el.parentNode; parent != this; parent = parent.parentNode){ + if (!parent) return null; + } + return document.id(el, nocash); + }, + + getSelected: function(){ + return new Elements($A(this.options).filter(function(option){ + return option.selected; + })); + }, + + getComputedStyle: function(property){ + if (this.currentStyle) return this.currentStyle[property.camelCase()]; + var computed = this.getDocument().defaultView.getComputedStyle(this, null); + return (computed) ? computed.getPropertyValue([property.hyphenate()]) : null; + }, + + toQueryString: function(){ + var queryString = []; + this.getElements('input, select, textarea', true).each(function(el){ + if (!el.name || el.disabled || el.type == 'submit' || el.type == 'reset' || el.type == 'file') return; + var value = (el.tagName.toLowerCase() == 'select') ? Element.getSelected(el).map(function(opt){ + return opt.value; + }) : ((el.type == 'radio' || el.type == 'checkbox') && !el.checked) ? null : el.value; + $splat(value).each(function(val){ + if (typeof val != 'undefined') queryString.push(el.name + '=' + encodeURIComponent(val)); + }); + }); + return queryString.join('&'); + }, + + clone: function(contents, keepid){ + contents = contents !== false; + var clone = this.cloneNode(contents); + var clean = function(node, element){ + if (!keepid) node.removeAttribute('id'); + if (Browser.Engine.trident){ + node.clearAttributes(); + node.mergeAttributes(element); + node.removeAttribute('uid'); + if (node.options){ + var no = node.options, eo = element.options; + for (var j = no.length; j--;) no[j].selected = eo[j].selected; + } + } + var prop = props[element.tagName.toLowerCase()]; + if (prop && element[prop]) node[prop] = element[prop]; + }; + + if (contents){ + var ce = clone.getElementsByTagName('*'), te = this.getElementsByTagName('*'); + for (var i = ce.length; i--;) clean(ce[i], te[i]); + } + + clean(clone, this); + return document.id(clone); + }, + + destroy: function(){ + Element.empty(this); + Element.dispose(this); + clean(this, true); + return null; + }, + + empty: function(){ + $A(this.childNodes).each(function(node){ + Element.destroy(node); + }); + return this; + }, + + dispose: function(){ + return (this.parentNode) ? this.parentNode.removeChild(this) : this; + }, + + hasChild: function(el){ + el = document.id(el, true); + if (!el) return false; + if (Browser.Engine.webkit && Browser.Engine.version < 420) return $A(this.getElementsByTagName(el.tagName)).contains(el); + return (this.contains) ? (this != el && this.contains(el)) : !!(this.compareDocumentPosition(el) & 16); + }, + + match: function(tag){ + return (!tag || (tag == this) || (Element.get(this, 'tag') == tag)); + } + +}); + +Native.implement([Element, Window, Document], { + + addListener: function(type, fn){ + if (type == 'unload'){ + var old = fn, self = this; + fn = function(){ + self.removeListener('unload', fn); + old(); + }; + } else { + collected[this.uid] = this; + } + if (this.addEventListener) this.addEventListener(type, fn, false); + else this.attachEvent('on' + type, fn); + return this; + }, + + removeListener: function(type, fn){ + if (this.removeEventListener) this.removeEventListener(type, fn, false); + else this.detachEvent('on' + type, fn); + return this; + }, + + retrieve: function(property, dflt){ + var storage = get(this.uid), prop = storage[property]; + if (dflt != undefined && prop == undefined) prop = storage[property] = dflt; + return $pick(prop); + }, + + store: function(property, value){ + var storage = get(this.uid); + storage[property] = value; + return this; + }, + + eliminate: function(property){ + var storage = get(this.uid); + delete storage[property]; + return this; + } + +}); + +window.addListener('unload', purge); + +})(); + +Element.Properties = new Hash; + +Element.Properties.style = { + + set: function(style){ + this.style.cssText = style; + }, + + get: function(){ + return this.style.cssText; + }, + + erase: function(){ + this.style.cssText = ''; + } + +}; + +Element.Properties.tag = { + + get: function(){ + return this.tagName.toLowerCase(); + } + +}; + +Element.Properties.html = (function(){ + var wrapper = document.createElement('div'); + + var translations = { + table: [1, '', '
'], + select: [1, ''], + tbody: [2, '', '
'], + tr: [3, '', '
'] + }; + translations.thead = translations.tfoot = translations.tbody; + + var html = { + set: function(){ + var html = Array.flatten(arguments).join(''); + var wrap = Browser.Engine.trident && translations[this.get('tag')]; + if (wrap){ + var first = wrapper; + first.innerHTML = wrap[1] + html + wrap[2]; + for (var i = wrap[0]; i--;) first = first.firstChild; + this.empty().adopt(first.childNodes); + } else { + this.innerHTML = html; + } + } + }; + + html.erase = html.set; + + return html; +})(); + +if (Browser.Engine.webkit && Browser.Engine.version < 420) Element.Properties.text = { + get: function(){ + if (this.innerText) return this.innerText; + var temp = this.ownerDocument.newElement('div', {html: this.innerHTML}).inject(this.ownerDocument.body); + var text = temp.innerText; + temp.destroy(); + return text; + } +}; + + +/* +--- + +script: Element.Event.js + +description: Contains Element methods for dealing with events. This file also includes mouseenter and mouseleave custom Element Events. + +license: MIT-style license. + +requires: +- /Element +- /Event + +provides: [Element.Event] + +... +*/ + +Element.Properties.events = {set: function(events){ + this.addEvents(events); +}}; + +Native.implement([Element, Window, Document], { + + addEvent: function(type, fn){ + var events = this.retrieve('events', {}); + events[type] = events[type] || {'keys': [], 'values': []}; + if (events[type].keys.contains(fn)) return this; + events[type].keys.push(fn); + var realType = type, custom = Element.Events.get(type), condition = fn, self = this; + if (custom){ + if (custom.onAdd) custom.onAdd.call(this, fn); + if (custom.condition){ + condition = function(event){ + if (custom.condition.call(this, event)) return fn.call(this, event); + return true; + }; + } + realType = custom.base || realType; + } + var defn = function(){ + return fn.call(self); + }; + var nativeEvent = Element.NativeEvents[realType]; + if (nativeEvent){ + if (nativeEvent == 2){ + defn = function(event){ + event = new Event(event, self.getWindow()); + if (condition.call(self, event) === false) event.stop(); + }; + } + this.addListener(realType, defn); + } + events[type].values.push(defn); + return this; + }, + + removeEvent: function(type, fn){ + var events = this.retrieve('events'); + if (!events || !events[type]) return this; + var pos = events[type].keys.indexOf(fn); + if (pos == -1) return this; + events[type].keys.splice(pos, 1); + var value = events[type].values.splice(pos, 1)[0]; + var custom = Element.Events.get(type); + if (custom){ + if (custom.onRemove) custom.onRemove.call(this, fn); + type = custom.base || type; + } + return (Element.NativeEvents[type]) ? this.removeListener(type, value) : this; + }, + + addEvents: function(events){ + for (var event in events) this.addEvent(event, events[event]); + return this; + }, + + removeEvents: function(events){ + var type; + if ($type(events) == 'object'){ + for (type in events) this.removeEvent(type, events[type]); + return this; + } + var attached = this.retrieve('events'); + if (!attached) return this; + if (!events){ + for (type in attached) this.removeEvents(type); + this.eliminate('events'); + } else if (attached[events]){ + while (attached[events].keys[0]) this.removeEvent(events, attached[events].keys[0]); + attached[events] = null; + } + return this; + }, + + fireEvent: function(type, args, delay){ + var events = this.retrieve('events'); + if (!events || !events[type]) return this; + events[type].keys.each(function(fn){ + fn.create({'bind': this, 'delay': delay, 'arguments': args})(); + }, this); + return this; + }, + + cloneEvents: function(from, type){ + from = document.id(from); + var fevents = from.retrieve('events'); + if (!fevents) return this; + if (!type){ + for (var evType in fevents) this.cloneEvents(from, evType); + } else if (fevents[type]){ + fevents[type].keys.each(function(fn){ + this.addEvent(type, fn); + }, this); + } + return this; + } + +}); + +Element.NativeEvents = { + click: 2, dblclick: 2, mouseup: 2, mousedown: 2, contextmenu: 2, //mouse buttons + mousewheel: 2, DOMMouseScroll: 2, //mouse wheel + mouseover: 2, mouseout: 2, mousemove: 2, selectstart: 2, selectend: 2, //mouse movement + keydown: 2, keypress: 2, keyup: 2, //keyboard + focus: 2, blur: 2, change: 2, reset: 2, select: 2, submit: 2, //form elements + load: 1, unload: 1, beforeunload: 2, resize: 1, move: 1, DOMContentLoaded: 1, readystatechange: 1, //window + error: 1, abort: 1, scroll: 1 //misc +}; + +(function(){ + +var $check = function(event){ + var related = event.relatedTarget; + if (related == undefined) return true; + if (related === false) return false; + return ($type(this) != 'document' && related != this && related.prefix != 'xul' && !this.hasChild(related)); +}; + +Element.Events = new Hash({ + + mouseenter: { + base: 'mouseover', + condition: $check + }, + + mouseleave: { + base: 'mouseout', + condition: $check + }, + + mousewheel: { + base: (Browser.Engine.gecko) ? 'DOMMouseScroll' : 'mousewheel' + } + +}); + +})(); + + +/* +--- + +script: Element.Style.js + +description: Contains methods for interacting with the styles of Elements in a fashionable way. + +license: MIT-style license. + +requires: +- /Element + +provides: [Element.Style] + +... +*/ + +Element.Properties.styles = {set: function(styles){ + this.setStyles(styles); +}}; + +Element.Properties.opacity = { + + set: function(opacity, novisibility){ + if (!novisibility){ + if (opacity == 0){ + if (this.style.visibility != 'hidden') this.style.visibility = 'hidden'; + } else { + if (this.style.visibility != 'visible') this.style.visibility = 'visible'; + } + } + if (!this.currentStyle || !this.currentStyle.hasLayout) this.style.zoom = 1; + if (Browser.Engine.trident) this.style.filter = (opacity == 1) ? '' : 'alpha(opacity=' + opacity * 100 + ')'; + this.style.opacity = opacity; + this.store('opacity', opacity); + }, + + get: function(){ + return this.retrieve('opacity', 1); + } + +}; + +Element.implement({ + + setOpacity: function(value){ + return this.set('opacity', value, true); + }, + + getOpacity: function(){ + return this.get('opacity'); + }, + + setStyle: function(property, value){ + switch (property){ + case 'opacity': return this.set('opacity', parseFloat(value)); + case 'float': property = (Browser.Engine.trident) ? 'styleFloat' : 'cssFloat'; + } + property = property.camelCase(); + if ($type(value) != 'string'){ + var map = (Element.Styles.get(property) || '@').split(' '); + value = $splat(value).map(function(val, i){ + if (!map[i]) return ''; + return ($type(val) == 'number') ? map[i].replace('@', Math.round(val)) : val; + }).join(' '); + } else if (value == String(Number(value))){ + value = Math.round(value); + } + this.style[property] = value; + return this; + }, + + getStyle: function(property){ + switch (property){ + case 'opacity': return this.get('opacity'); + case 'float': property = (Browser.Engine.trident) ? 'styleFloat' : 'cssFloat'; + } + property = property.camelCase(); + var result = this.style[property]; + if (!$chk(result)){ + result = []; + for (var style in Element.ShortStyles){ + if (property != style) continue; + for (var s in Element.ShortStyles[style]) result.push(this.getStyle(s)); + return result.join(' '); + } + result = this.getComputedStyle(property); + } + if (result){ + result = String(result); + var color = result.match(/rgba?\([\d\s,]+\)/); + if (color) result = result.replace(color[0], color[0].rgbToHex()); + } + if (Browser.Engine.presto || (Browser.Engine.trident && !$chk(parseInt(result, 10)))){ + if (property.test(/^(height|width)$/)){ + var values = (property == 'width') ? ['left', 'right'] : ['top', 'bottom'], size = 0; + values.each(function(value){ + size += this.getStyle('border-' + value + '-width').toInt() + this.getStyle('padding-' + value).toInt(); + }, this); + return this['offset' + property.capitalize()] - size + 'px'; + } + if ((Browser.Engine.presto) && String(result).test('px')) return result; + if (property.test(/(border(.+)Width|margin|padding)/)) return '0px'; + } + return result; + }, + + setStyles: function(styles){ + for (var style in styles) this.setStyle(style, styles[style]); + return this; + }, + + getStyles: function(){ + var result = {}; + Array.flatten(arguments).each(function(key){ + result[key] = this.getStyle(key); + }, this); + return result; + } + +}); + +Element.Styles = new Hash({ + left: '@px', top: '@px', bottom: '@px', right: '@px', + width: '@px', height: '@px', maxWidth: '@px', maxHeight: '@px', minWidth: '@px', minHeight: '@px', + backgroundColor: 'rgb(@, @, @)', backgroundPosition: '@px @px', color: 'rgb(@, @, @)', + fontSize: '@px', letterSpacing: '@px', lineHeight: '@px', clip: 'rect(@px @px @px @px)', + margin: '@px @px @px @px', padding: '@px @px @px @px', border: '@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)', + borderWidth: '@px @px @px @px', borderStyle: '@ @ @ @', borderColor: 'rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)', + zIndex: '@', 'zoom': '@', fontWeight: '@', textIndent: '@px', opacity: '@' +}); + +Element.ShortStyles = {margin: {}, padding: {}, border: {}, borderWidth: {}, borderStyle: {}, borderColor: {}}; + +['Top', 'Right', 'Bottom', 'Left'].each(function(direction){ + var Short = Element.ShortStyles; + var All = Element.Styles; + ['margin', 'padding'].each(function(style){ + var sd = style + direction; + Short[style][sd] = All[sd] = '@px'; + }); + var bd = 'border' + direction; + Short.border[bd] = All[bd] = '@px @ rgb(@, @, @)'; + var bdw = bd + 'Width', bds = bd + 'Style', bdc = bd + 'Color'; + Short[bd] = {}; + Short.borderWidth[bdw] = Short[bd][bdw] = All[bdw] = '@px'; + Short.borderStyle[bds] = Short[bd][bds] = All[bds] = '@'; + Short.borderColor[bdc] = Short[bd][bdc] = All[bdc] = 'rgb(@, @, @)'; +}); + + +/* +--- + +script: Element.Dimensions.js + +description: Contains methods to work with size, scroll, or positioning of Elements and the window object. + +license: MIT-style license. + +credits: +- Element positioning based on the [qooxdoo](http://qooxdoo.org/) code and smart browser fixes, [LGPL License](http://www.gnu.org/licenses/lgpl.html). +- Viewport dimensions based on [YUI](http://developer.yahoo.com/yui/) code, [BSD License](http://developer.yahoo.com/yui/license.html). + +requires: +- /Element + +provides: [Element.Dimensions] + +... +*/ + +(function(){ + +Element.implement({ + + scrollTo: function(x, y){ + if (isBody(this)){ + this.getWindow().scrollTo(x, y); + } else { + this.scrollLeft = x; + this.scrollTop = y; + } + return this; + }, + + getSize: function(){ + if (isBody(this)) return this.getWindow().getSize(); + return {x: this.offsetWidth, y: this.offsetHeight}; + }, + + getScrollSize: function(){ + if (isBody(this)) return this.getWindow().getScrollSize(); + return {x: this.scrollWidth, y: this.scrollHeight}; + }, + + getScroll: function(){ + if (isBody(this)) return this.getWindow().getScroll(); + return {x: this.scrollLeft, y: this.scrollTop}; + }, + + getScrolls: function(){ + var element = this, position = {x: 0, y: 0}; + while (element && !isBody(element)){ + position.x += element.scrollLeft; + position.y += element.scrollTop; + element = element.parentNode; + } + return position; + }, + + getOffsetParent: function(){ + var element = this; + if (isBody(element)) return null; + if (!Browser.Engine.trident) return element.offsetParent; + while ((element = element.parentNode) && !isBody(element)){ + if (styleString(element, 'position') != 'static') return element; + } + return null; + }, + + getOffsets: function(){ + if (this.getBoundingClientRect){ + var bound = this.getBoundingClientRect(), + html = document.id(this.getDocument().documentElement), + htmlScroll = html.getScroll(), + elemScrolls = this.getScrolls(), + elemScroll = this.getScroll(), + isFixed = (styleString(this, 'position') == 'fixed'); + + return { + x: bound.left.toInt() + elemScrolls.x - elemScroll.x + ((isFixed) ? 0 : htmlScroll.x) - html.clientLeft, + y: bound.top.toInt() + elemScrolls.y - elemScroll.y + ((isFixed) ? 0 : htmlScroll.y) - html.clientTop + }; + } + + var element = this, position = {x: 0, y: 0}; + if (isBody(this)) return position; + + while (element && !isBody(element)){ + position.x += element.offsetLeft; + position.y += element.offsetTop; + + if (Browser.Engine.gecko){ + if (!borderBox(element)){ + position.x += leftBorder(element); + position.y += topBorder(element); + } + var parent = element.parentNode; + if (parent && styleString(parent, 'overflow') != 'visible'){ + position.x += leftBorder(parent); + position.y += topBorder(parent); + } + } else if (element != this && Browser.Engine.webkit){ + position.x += leftBorder(element); + position.y += topBorder(element); + } + + element = element.offsetParent; + } + if (Browser.Engine.gecko && !borderBox(this)){ + position.x -= leftBorder(this); + position.y -= topBorder(this); + } + return position; + }, + + getPosition: function(relative){ + if (isBody(this)) return {x: 0, y: 0}; + var offset = this.getOffsets(), + scroll = this.getScrolls(); + var position = { + x: offset.x - scroll.x, + y: offset.y - scroll.y + }; + var relativePosition = (relative && (relative = document.id(relative))) ? relative.getPosition() : {x: 0, y: 0}; + return {x: position.x - relativePosition.x, y: position.y - relativePosition.y}; + }, + + getCoordinates: function(element){ + if (isBody(this)) return this.getWindow().getCoordinates(); + var position = this.getPosition(element), + size = this.getSize(); + var obj = { + left: position.x, + top: position.y, + width: size.x, + height: size.y + }; + obj.right = obj.left + obj.width; + obj.bottom = obj.top + obj.height; + return obj; + }, + + computePosition: function(obj){ + return { + left: obj.x - styleNumber(this, 'margin-left'), + top: obj.y - styleNumber(this, 'margin-top') + }; + }, + + setPosition: function(obj){ + return this.setStyles(this.computePosition(obj)); + } + +}); + + +Native.implement([Document, Window], { + + getSize: function(){ + if (Browser.Engine.presto || Browser.Engine.webkit){ + var win = this.getWindow(); + return {x: win.innerWidth, y: win.innerHeight}; + } + var doc = getCompatElement(this); + return {x: doc.clientWidth, y: doc.clientHeight}; + }, + + getScroll: function(){ + var win = this.getWindow(), doc = getCompatElement(this); + return {x: win.pageXOffset || doc.scrollLeft, y: win.pageYOffset || doc.scrollTop}; + }, + + getScrollSize: function(){ + var doc = getCompatElement(this), min = this.getSize(); + return {x: Math.max(doc.scrollWidth, min.x), y: Math.max(doc.scrollHeight, min.y)}; + }, + + getPosition: function(){ + return {x: 0, y: 0}; + }, + + getCoordinates: function(){ + var size = this.getSize(); + return {top: 0, left: 0, bottom: size.y, right: size.x, height: size.y, width: size.x}; + } + +}); + +// private methods + +var styleString = Element.getComputedStyle; + +function styleNumber(element, style){ + return styleString(element, style).toInt() || 0; +}; + +function borderBox(element){ + return styleString(element, '-moz-box-sizing') == 'border-box'; +}; + +function topBorder(element){ + return styleNumber(element, 'border-top-width'); +}; + +function leftBorder(element){ + return styleNumber(element, 'border-left-width'); +}; + +function isBody(element){ + return (/^(?:body|html)$/i).test(element.tagName); +}; + +function getCompatElement(element){ + var doc = element.getDocument(); + return (!doc.compatMode || doc.compatMode == 'CSS1Compat') ? doc.html : doc.body; +}; + +})(); + +//aliases +Element.alias('setPosition', 'position'); //compatability + +Native.implement([Window, Document, Element], { + + getHeight: function(){ + return this.getSize().y; + }, + + getWidth: function(){ + return this.getSize().x; + }, + + getScrollTop: function(){ + return this.getScroll().y; + }, + + getScrollLeft: function(){ + return this.getScroll().x; + }, + + getScrollHeight: function(){ + return this.getScrollSize().y; + }, + + getScrollWidth: function(){ + return this.getScrollSize().x; + }, + + getTop: function(){ + return this.getPosition().y; + }, + + getLeft: function(){ + return this.getPosition().x; + } + +}); + + +/* +--- + +script: Selectors.js + +description: Adds advanced CSS-style querying capabilities for targeting HTML Elements. Includes pseudo selectors. + +license: MIT-style license. + +requires: +- /Element + +provides: [Selectors] + +... +*/ + +Native.implement([Document, Element], { + + getElements: function(expression, nocash){ + expression = expression.split(','); + var items, local = {}; + for (var i = 0, l = expression.length; i < l; i++){ + var selector = expression[i], elements = Selectors.Utils.search(this, selector, local); + if (i != 0 && elements.item) elements = $A(elements); + items = (i == 0) ? elements : (items.item) ? $A(items).concat(elements) : items.concat(elements); + } + return new Elements(items, {ddup: (expression.length > 1), cash: !nocash}); + } + +}); + +Element.implement({ + + match: function(selector){ + if (!selector || (selector == this)) return true; + var tagid = Selectors.Utils.parseTagAndID(selector); + var tag = tagid[0], id = tagid[1]; + if (!Selectors.Filters.byID(this, id) || !Selectors.Filters.byTag(this, tag)) return false; + var parsed = Selectors.Utils.parseSelector(selector); + return (parsed) ? Selectors.Utils.filter(this, parsed, {}) : true; + } + +}); + +var Selectors = {Cache: {nth: {}, parsed: {}}}; + +Selectors.RegExps = { + id: (/#([\w-]+)/), + tag: (/^(\w+|\*)/), + quick: (/^(\w+|\*)$/), + splitter: (/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g), + combined: (/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)(["']?)([^\4]*?)\4)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g) +}; + +Selectors.Utils = { + + chk: function(item, uniques){ + if (!uniques) return true; + var uid = $uid(item); + if (!uniques[uid]) return uniques[uid] = true; + return false; + }, + + parseNthArgument: function(argument){ + if (Selectors.Cache.nth[argument]) return Selectors.Cache.nth[argument]; + var parsed = argument.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/); + if (!parsed) return false; + var inta = parseInt(parsed[1], 10); + var a = (inta || inta === 0) ? inta : 1; + var special = parsed[2] || false; + var b = parseInt(parsed[3], 10) || 0; + if (a != 0){ + b--; + while (b < 1) b += a; + while (b >= a) b -= a; + } else { + a = b; + special = 'index'; + } + switch (special){ + case 'n': parsed = {a: a, b: b, special: 'n'}; break; + case 'odd': parsed = {a: 2, b: 0, special: 'n'}; break; + case 'even': parsed = {a: 2, b: 1, special: 'n'}; break; + case 'first': parsed = {a: 0, special: 'index'}; break; + case 'last': parsed = {special: 'last-child'}; break; + case 'only': parsed = {special: 'only-child'}; break; + default: parsed = {a: (a - 1), special: 'index'}; + } + + return Selectors.Cache.nth[argument] = parsed; + }, + + parseSelector: function(selector){ + if (Selectors.Cache.parsed[selector]) return Selectors.Cache.parsed[selector]; + var m, parsed = {classes: [], pseudos: [], attributes: []}; + while ((m = Selectors.RegExps.combined.exec(selector))){ + var cn = m[1], an = m[2], ao = m[3], av = m[5], pn = m[6], pa = m[7]; + if (cn){ + parsed.classes.push(cn); + } else if (pn){ + var parser = Selectors.Pseudo.get(pn); + if (parser) parsed.pseudos.push({parser: parser, argument: pa}); + else parsed.attributes.push({name: pn, operator: '=', value: pa}); + } else if (an){ + parsed.attributes.push({name: an, operator: ao, value: av}); + } + } + if (!parsed.classes.length) delete parsed.classes; + if (!parsed.attributes.length) delete parsed.attributes; + if (!parsed.pseudos.length) delete parsed.pseudos; + if (!parsed.classes && !parsed.attributes && !parsed.pseudos) parsed = null; + return Selectors.Cache.parsed[selector] = parsed; + }, + + parseTagAndID: function(selector){ + var tag = selector.match(Selectors.RegExps.tag); + var id = selector.match(Selectors.RegExps.id); + return [(tag) ? tag[1] : '*', (id) ? id[1] : false]; + }, + + filter: function(item, parsed, local){ + var i; + if (parsed.classes){ + for (i = parsed.classes.length; i--; i){ + var cn = parsed.classes[i]; + if (!Selectors.Filters.byClass(item, cn)) return false; + } + } + if (parsed.attributes){ + for (i = parsed.attributes.length; i--; i){ + var att = parsed.attributes[i]; + if (!Selectors.Filters.byAttribute(item, att.name, att.operator, att.value)) return false; + } + } + if (parsed.pseudos){ + for (i = parsed.pseudos.length; i--; i){ + var psd = parsed.pseudos[i]; + if (!Selectors.Filters.byPseudo(item, psd.parser, psd.argument, local)) return false; + } + } + return true; + }, + + getByTagAndID: function(ctx, tag, id){ + if (id){ + var item = (ctx.getElementById) ? ctx.getElementById(id, true) : Element.getElementById(ctx, id, true); + return (item && Selectors.Filters.byTag(item, tag)) ? [item] : []; + } else { + return ctx.getElementsByTagName(tag); + } + }, + + search: function(self, expression, local){ + var splitters = []; + + var selectors = expression.trim().replace(Selectors.RegExps.splitter, function(m0, m1, m2){ + splitters.push(m1); + return ':)' + m2; + }).split(':)'); + + var items, filtered, item; + + for (var i = 0, l = selectors.length; i < l; i++){ + + var selector = selectors[i]; + + if (i == 0 && Selectors.RegExps.quick.test(selector)){ + items = self.getElementsByTagName(selector); + continue; + } + + var splitter = splitters[i - 1]; + + var tagid = Selectors.Utils.parseTagAndID(selector); + var tag = tagid[0], id = tagid[1]; + + if (i == 0){ + items = Selectors.Utils.getByTagAndID(self, tag, id); + } else { + var uniques = {}, found = []; + for (var j = 0, k = items.length; j < k; j++) found = Selectors.Getters[splitter](found, items[j], tag, id, uniques); + items = found; + } + + var parsed = Selectors.Utils.parseSelector(selector); + + if (parsed){ + filtered = []; + for (var m = 0, n = items.length; m < n; m++){ + item = items[m]; + if (Selectors.Utils.filter(item, parsed, local)) filtered.push(item); + } + items = filtered; + } + + } + + return items; + + } + +}; + +Selectors.Getters = { + + ' ': function(found, self, tag, id, uniques){ + var items = Selectors.Utils.getByTagAndID(self, tag, id); + for (var i = 0, l = items.length; i < l; i++){ + var item = items[i]; + if (Selectors.Utils.chk(item, uniques)) found.push(item); + } + return found; + }, + + '>': function(found, self, tag, id, uniques){ + var children = Selectors.Utils.getByTagAndID(self, tag, id); + for (var i = 0, l = children.length; i < l; i++){ + var child = children[i]; + if (child.parentNode == self && Selectors.Utils.chk(child, uniques)) found.push(child); + } + return found; + }, + + '+': function(found, self, tag, id, uniques){ + while ((self = self.nextSibling)){ + if (self.nodeType == 1){ + if (Selectors.Utils.chk(self, uniques) && Selectors.Filters.byTag(self, tag) && Selectors.Filters.byID(self, id)) found.push(self); + break; + } + } + return found; + }, + + '~': function(found, self, tag, id, uniques){ + while ((self = self.nextSibling)){ + if (self.nodeType == 1){ + if (!Selectors.Utils.chk(self, uniques)) break; + if (Selectors.Filters.byTag(self, tag) && Selectors.Filters.byID(self, id)) found.push(self); + } + } + return found; + } + +}; + +Selectors.Filters = { + + byTag: function(self, tag){ + return (tag == '*' || (self.tagName && self.tagName.toLowerCase() == tag)); + }, + + byID: function(self, id){ + return (!id || (self.id && self.id == id)); + }, + + byClass: function(self, klass){ + return (self.className && self.className.contains && self.className.contains(klass, ' ')); + }, + + byPseudo: function(self, parser, argument, local){ + return parser.call(self, argument, local); + }, + + byAttribute: function(self, name, operator, value){ + var result = Element.prototype.getProperty.call(self, name); + if (!result) return (operator == '!='); + if (!operator || value == undefined) return true; + switch (operator){ + case '=': return (result == value); + case '*=': return (result.contains(value)); + case '^=': return (result.substr(0, value.length) == value); + case '$=': return (result.substr(result.length - value.length) == value); + case '!=': return (result != value); + case '~=': return result.contains(value, ' '); + case '|=': return result.contains(value, '-'); + } + return false; + } + +}; + +Selectors.Pseudo = new Hash({ + + // w3c pseudo selectors + + checked: function(){ + return this.checked; + }, + + empty: function(){ + return !(this.innerText || this.textContent || '').length; + }, + + not: function(selector){ + return !Element.match(this, selector); + }, + + contains: function(text){ + return (this.innerText || this.textContent || '').contains(text); + }, + + 'first-child': function(){ + return Selectors.Pseudo.index.call(this, 0); + }, + + 'last-child': function(){ + var element = this; + while ((element = element.nextSibling)){ + if (element.nodeType == 1) return false; + } + return true; + }, + + 'only-child': function(){ + var prev = this; + while ((prev = prev.previousSibling)){ + if (prev.nodeType == 1) return false; + } + var next = this; + while ((next = next.nextSibling)){ + if (next.nodeType == 1) return false; + } + return true; + }, + + 'nth-child': function(argument, local){ + argument = (argument == undefined) ? 'n' : argument; + var parsed = Selectors.Utils.parseNthArgument(argument); + if (parsed.special != 'n') return Selectors.Pseudo[parsed.special].call(this, parsed.a, local); + var count = 0; + local.positions = local.positions || {}; + var uid = $uid(this); + if (!local.positions[uid]){ + var self = this; + while ((self = self.previousSibling)){ + if (self.nodeType != 1) continue; + count ++; + var position = local.positions[$uid(self)]; + if (position != undefined){ + count = position + count; + break; + } + } + local.positions[uid] = count; + } + return (local.positions[uid] % parsed.a == parsed.b); + }, + + // custom pseudo selectors + + index: function(index){ + var element = this, count = 0; + while ((element = element.previousSibling)){ + if (element.nodeType == 1 && ++count > index) return false; + } + return (count == index); + }, + + even: function(argument, local){ + return Selectors.Pseudo['nth-child'].call(this, '2n+1', local); + }, + + odd: function(argument, local){ + return Selectors.Pseudo['nth-child'].call(this, '2n', local); + }, + + selected: function(){ + return this.selected; + }, + + enabled: function(){ + return (this.disabled === false); + } + +}); + + +/* +--- + +script: DomReady.js + +description: Contains the custom event domready. + +license: MIT-style license. + +requires: +- /Element.Event + +provides: [DomReady] + +... +*/ + +Element.Events.domready = { + + onAdd: function(fn){ + if (Browser.loaded) fn.call(this); + } + +}; + +(function(){ + + var domready = function(){ + if (Browser.loaded) return; + Browser.loaded = true; + window.fireEvent('domready'); + document.fireEvent('domready'); + }; + + window.addEvent('load', domready); + + if (Browser.Engine.trident){ + var temp = document.createElement('div'); + (function(){ + ($try(function(){ + temp.doScroll(); // Technique by Diego Perini + return document.id(temp).inject(document.body).set('html', 'temp').dispose(); + })) ? domready() : arguments.callee.delay(50); + })(); + } else if (Browser.Engine.webkit && Browser.Engine.version < 525){ + (function(){ + (['loaded', 'complete'].contains(document.readyState)) ? domready() : arguments.callee.delay(50); + })(); + } else { + document.addEvent('DOMContentLoaded', domready); + } + +})(); + + +/* +--- + +script: JSON.js + +description: JSON encoder and decoder. + +license: MIT-style license. + +See Also: + +requires: +- /Array +- /String +- /Number +- /Function +- /Hash + +provides: [JSON] + +... +*/ + +var JSON = new Hash(this.JSON && { + stringify: JSON.stringify, + parse: JSON.parse +}).extend({ + + $specialChars: {'\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"' : '\\"', '\\': '\\\\'}, + + $replaceChars: function(chr){ + return JSON.$specialChars[chr] || '\\u00' + Math.floor(chr.charCodeAt() / 16).toString(16) + (chr.charCodeAt() % 16).toString(16); + }, + + encode: function(obj){ + switch ($type(obj)){ + case 'string': + return '"' + obj.replace(/[\x00-\x1f\\"]/g, JSON.$replaceChars) + '"'; + case 'array': + return '[' + String(obj.map(JSON.encode).clean()) + ']'; + case 'object': case 'hash': + var string = []; + Hash.each(obj, function(value, key){ + var json = JSON.encode(value); + if (json) string.push(JSON.encode(key) + ':' + json); + }); + return '{' + string + '}'; + case 'number': case 'boolean': return String(obj); + case false: return 'null'; + } + return null; + }, + + decode: function(string, secure){ + if ($type(string) != 'string' || !string.length) return null; + if (secure && !(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''))) return null; + return eval('(' + string + ')'); + } + +}); + +Native.implement([Hash, Array, String, Number], { + + toJSON: function(){ + return JSON.encode(this); + } + +}); + + +/* +--- + +script: Cookie.js + +description: Class for creating, reading, and deleting browser Cookies. + +license: MIT-style license. + +credits: +- Based on the functions by Peter-Paul Koch (http://quirksmode.org). + +requires: +- /Options + +provides: [Cookie] + +... +*/ + +var Cookie = new Class({ + + Implements: Options, + + options: { + path: false, + domain: false, + duration: false, + secure: false, + document: document + }, + + initialize: function(key, options){ + this.key = key; + this.setOptions(options); + }, + + write: function(value){ + value = encodeURIComponent(value); + if (this.options.domain) value += '; domain=' + this.options.domain; + if (this.options.path) value += '; path=' + this.options.path; + if (this.options.duration){ + var date = new Date(); + date.setTime(date.getTime() + this.options.duration * 24 * 60 * 60 * 1000); + value += '; expires=' + date.toGMTString(); + } + if (this.options.secure) value += '; secure'; + this.options.document.cookie = this.key + '=' + value; + return this; + }, + + read: function(){ + var value = this.options.document.cookie.match('(?:^|;)\\s*' + this.key.escapeRegExp() + '=([^;]*)'); + return (value) ? decodeURIComponent(value[1]) : null; + }, + + dispose: function(){ + new Cookie(this.key, $merge(this.options, {duration: -1})).write(''); + return this; + } + +}); + +Cookie.write = function(key, value, options){ + return new Cookie(key, options).write(value); +}; + +Cookie.read = function(key){ + return new Cookie(key).read(); +}; + +Cookie.dispose = function(key, options){ + return new Cookie(key, options).dispose(); +}; + + +/* +--- + +script: Swiff.js + +description: Wrapper for embedding SWF movies. Supports External Interface Communication. + +license: MIT-style license. + +credits: +- Flash detection & Internet Explorer + Flash Player 9 fix inspired by SWFObject. + +requires: +- /Options +- /$util + +provides: [Swiff] + +... +*/ + +var Swiff = new Class({ + + Implements: [Options], + + options: { + id: null, + height: 1, + width: 1, + container: null, + properties: {}, + params: { + quality: 'high', + allowScriptAccess: 'always', + wMode: 'transparent', + swLiveConnect: true + }, + callBacks: {}, + vars: {} + }, + + toElement: function(){ + return this.object; + }, + + initialize: function(path, options){ + this.instance = 'Swiff_' + $time(); + + this.setOptions(options); + options = this.options; + var id = this.id = options.id || this.instance; + var container = document.id(options.container); + + Swiff.CallBacks[this.instance] = {}; + + var params = options.params, vars = options.vars, callBacks = options.callBacks; + var properties = $extend({height: options.height, width: options.width}, options.properties); + + var self = this; + + for (var callBack in callBacks){ + Swiff.CallBacks[this.instance][callBack] = (function(option){ + return function(){ + return option.apply(self.object, arguments); + }; + })(callBacks[callBack]); + vars[callBack] = 'Swiff.CallBacks.' + this.instance + '.' + callBack; + } + + params.flashVars = Hash.toQueryString(vars); + if (Browser.Engine.trident){ + properties.classid = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'; + params.movie = path; + } else { + properties.type = 'application/x-shockwave-flash'; + properties.data = path; + } + var build = ''; + } + build += ''; + this.object = ((container) ? container.empty() : new Element('div')).set('html', build).firstChild; + }, + + replaces: function(element){ + element = document.id(element, true); + element.parentNode.replaceChild(this.toElement(), element); + return this; + }, + + inject: function(element){ + document.id(element, true).appendChild(this.toElement()); + return this; + }, + + remote: function(){ + return Swiff.remote.apply(Swiff, [this.toElement()].extend(arguments)); + } + +}); + +Swiff.CallBacks = {}; + +Swiff.remote = function(obj, fn){ + var rs = obj.CallFunction('' + __flash__argumentsToXML(arguments, 2) + ''); + return eval(rs); +}; + + +/* +--- + +script: Fx.js + +description: Contains the basic animation logic to be extended by all other Fx Classes. + +license: MIT-style license. + +requires: +- /Chain +- /Events +- /Options + +provides: [Fx] + +... +*/ + +var Fx = new Class({ + + Implements: [Chain, Events, Options], + + options: { + /* + onStart: $empty, + onCancel: $empty, + onComplete: $empty, + */ + fps: 50, + unit: false, + duration: 500, + link: 'ignore' + }, + + initialize: function(options){ + this.subject = this.subject || this; + this.setOptions(options); + this.options.duration = Fx.Durations[this.options.duration] || this.options.duration.toInt(); + var wait = this.options.wait; + if (wait === false) this.options.link = 'cancel'; + }, + + getTransition: function(){ + return function(p){ + return -(Math.cos(Math.PI * p) - 1) / 2; + }; + }, + + step: function(){ + var time = $time(); + if (time < this.time + this.options.duration){ + var delta = this.transition((time - this.time) / this.options.duration); + this.set(this.compute(this.from, this.to, delta)); + } else { + this.set(this.compute(this.from, this.to, 1)); + this.complete(); + } + }, + + set: function(now){ + return now; + }, + + compute: function(from, to, delta){ + return Fx.compute(from, to, delta); + }, + + check: function(){ + if (!this.timer) return true; + switch (this.options.link){ + case 'cancel': this.cancel(); return true; + case 'chain': this.chain(this.caller.bind(this, arguments)); return false; + } + return false; + }, + + start: function(from, to){ + if (!this.check(from, to)) return this; + this.from = from; + this.to = to; + this.time = 0; + this.transition = this.getTransition(); + this.startTimer(); + this.onStart(); + return this; + }, + + complete: function(){ + if (this.stopTimer()) this.onComplete(); + return this; + }, + + cancel: function(){ + if (this.stopTimer()) this.onCancel(); + return this; + }, + + onStart: function(){ + this.fireEvent('start', this.subject); + }, + + onComplete: function(){ + this.fireEvent('complete', this.subject); + if (!this.callChain()) this.fireEvent('chainComplete', this.subject); + }, + + onCancel: function(){ + this.fireEvent('cancel', this.subject).clearChain(); + }, + + pause: function(){ + this.stopTimer(); + return this; + }, + + resume: function(){ + this.startTimer(); + return this; + }, + + stopTimer: function(){ + if (!this.timer) return false; + this.time = $time() - this.time; + this.timer = $clear(this.timer); + return true; + }, + + startTimer: function(){ + if (this.timer) return false; + this.time = $time() - this.time; + this.timer = this.step.periodical(Math.round(1000 / this.options.fps), this); + return true; + } + +}); + +Fx.compute = function(from, to, delta){ + return (to - from) * delta + from; +}; + +Fx.Durations = {'short': 250, 'normal': 500, 'long': 1000}; + + +/* +--- + +script: Fx.CSS.js + +description: Contains the CSS animation logic. Used by Fx.Tween, Fx.Morph, Fx.Elements. + +license: MIT-style license. + +requires: +- /Fx +- /Element.Style + +provides: [Fx.CSS] + +... +*/ + +Fx.CSS = new Class({ + + Extends: Fx, + + //prepares the base from/to object + + prepare: function(element, property, values){ + values = $splat(values); + var values1 = values[1]; + if (!$chk(values1)){ + values[1] = values[0]; + values[0] = element.getStyle(property); + } + var parsed = values.map(this.parse); + return {from: parsed[0], to: parsed[1]}; + }, + + //parses a value into an array + + parse: function(value){ + value = $lambda(value)(); + value = (typeof value == 'string') ? value.split(' ') : $splat(value); + return value.map(function(val){ + val = String(val); + var found = false; + Fx.CSS.Parsers.each(function(parser, key){ + if (found) return; + var parsed = parser.parse(val); + if ($chk(parsed)) found = {value: parsed, parser: parser}; + }); + found = found || {value: val, parser: Fx.CSS.Parsers.String}; + return found; + }); + }, + + //computes by a from and to prepared objects, using their parsers. + + compute: function(from, to, delta){ + var computed = []; + (Math.min(from.length, to.length)).times(function(i){ + computed.push({value: from[i].parser.compute(from[i].value, to[i].value, delta), parser: from[i].parser}); + }); + computed.$family = {name: 'fx:css:value'}; + return computed; + }, + + //serves the value as settable + + serve: function(value, unit){ + if ($type(value) != 'fx:css:value') value = this.parse(value); + var returned = []; + value.each(function(bit){ + returned = returned.concat(bit.parser.serve(bit.value, unit)); + }); + return returned; + }, + + //renders the change to an element + + render: function(element, property, value, unit){ + element.setStyle(property, this.serve(value, unit)); + }, + + //searches inside the page css to find the values for a selector + + search: function(selector){ + if (Fx.CSS.Cache[selector]) return Fx.CSS.Cache[selector]; + var to = {}; + Array.each(document.styleSheets, function(sheet, j){ + var href = sheet.href; + if (href && href.contains('://') && !href.contains(document.domain)) return; + var rules = sheet.rules || sheet.cssRules; + Array.each(rules, function(rule, i){ + if (!rule.style) return; + var selectorText = (rule.selectorText) ? rule.selectorText.replace(/^\w+/, function(m){ + return m.toLowerCase(); + }) : null; + if (!selectorText || !selectorText.test('^' + selector + '$')) return; + Element.Styles.each(function(value, style){ + if (!rule.style[style] || Element.ShortStyles[style]) return; + value = String(rule.style[style]); + to[style] = (value.test(/^rgb/)) ? value.rgbToHex() : value; + }); + }); + }); + return Fx.CSS.Cache[selector] = to; + } + +}); + +Fx.CSS.Cache = {}; + +Fx.CSS.Parsers = new Hash({ + + Color: { + parse: function(value){ + if (value.match(/^#[0-9a-f]{3,6}$/i)) return value.hexToRgb(true); + return ((value = value.match(/(\d+),\s*(\d+),\s*(\d+)/))) ? [value[1], value[2], value[3]] : false; + }, + compute: function(from, to, delta){ + return from.map(function(value, i){ + return Math.round(Fx.compute(from[i], to[i], delta)); + }); + }, + serve: function(value){ + return value.map(Number); + } + }, + + Number: { + parse: parseFloat, + compute: Fx.compute, + serve: function(value, unit){ + return (unit) ? value + unit : value; + } + }, + + String: { + parse: $lambda(false), + compute: $arguments(1), + serve: $arguments(0) + } + +}); + + +/* +--- + +script: Fx.Tween.js + +description: Formerly Fx.Style, effect to transition any CSS property for an element. + +license: MIT-style license. + +requires: +- /Fx.CSS + +provides: [Fx.Tween, Element.fade, Element.highlight] + +... +*/ + +Fx.Tween = new Class({ + + Extends: Fx.CSS, + + initialize: function(element, options){ + this.element = this.subject = document.id(element); + this.parent(options); + }, + + set: function(property, now){ + if (arguments.length == 1){ + now = property; + property = this.property || this.options.property; + } + this.render(this.element, property, now, this.options.unit); + return this; + }, + + start: function(property, from, to){ + if (!this.check(property, from, to)) return this; + var args = Array.flatten(arguments); + this.property = this.options.property || args.shift(); + var parsed = this.prepare(this.element, this.property, args); + return this.parent(parsed.from, parsed.to); + } + +}); + +Element.Properties.tween = { + + set: function(options){ + var tween = this.retrieve('tween'); + if (tween) tween.cancel(); + return this.eliminate('tween').store('tween:options', $extend({link: 'cancel'}, options)); + }, + + get: function(options){ + if (options || !this.retrieve('tween')){ + if (options || !this.retrieve('tween:options')) this.set('tween', options); + this.store('tween', new Fx.Tween(this, this.retrieve('tween:options'))); + } + return this.retrieve('tween'); + } + +}; + +Element.implement({ + + tween: function(property, from, to){ + this.get('tween').start(arguments); + return this; + }, + + fade: function(how){ + var fade = this.get('tween'), o = 'opacity', toggle; + how = $pick(how, 'toggle'); + switch (how){ + case 'in': fade.start(o, 1); break; + case 'out': fade.start(o, 0); break; + case 'show': fade.set(o, 1); break; + case 'hide': fade.set(o, 0); break; + case 'toggle': + var flag = this.retrieve('fade:flag', this.get('opacity') == 1); + fade.start(o, (flag) ? 0 : 1); + this.store('fade:flag', !flag); + toggle = true; + break; + default: fade.start(o, arguments); + } + if (!toggle) this.eliminate('fade:flag'); + return this; + }, + + highlight: function(start, end){ + if (!end){ + end = this.retrieve('highlight:original', this.getStyle('background-color')); + end = (end == 'transparent') ? '#fff' : end; + } + var tween = this.get('tween'); + tween.start('background-color', start || '#ffff88', end).chain(function(){ + this.setStyle('background-color', this.retrieve('highlight:original')); + tween.callChain(); + }.bind(this)); + return this; + } + +}); + + +/* +--- + +script: Fx.Morph.js + +description: Formerly Fx.Styles, effect to transition any number of CSS properties for an element using an object of rules, or CSS based selector rules. + +license: MIT-style license. + +requires: +- /Fx.CSS + +provides: [Fx.Morph] + +... +*/ + +Fx.Morph = new Class({ + + Extends: Fx.CSS, + + initialize: function(element, options){ + this.element = this.subject = document.id(element); + this.parent(options); + }, + + set: function(now){ + if (typeof now == 'string') now = this.search(now); + for (var p in now) this.render(this.element, p, now[p], this.options.unit); + return this; + }, + + compute: function(from, to, delta){ + var now = {}; + for (var p in from) now[p] = this.parent(from[p], to[p], delta); + return now; + }, + + start: function(properties){ + if (!this.check(properties)) return this; + if (typeof properties == 'string') properties = this.search(properties); + var from = {}, to = {}; + for (var p in properties){ + var parsed = this.prepare(this.element, p, properties[p]); + from[p] = parsed.from; + to[p] = parsed.to; + } + return this.parent(from, to); + } + +}); + +Element.Properties.morph = { + + set: function(options){ + var morph = this.retrieve('morph'); + if (morph) morph.cancel(); + return this.eliminate('morph').store('morph:options', $extend({link: 'cancel'}, options)); + }, + + get: function(options){ + if (options || !this.retrieve('morph')){ + if (options || !this.retrieve('morph:options')) this.set('morph', options); + this.store('morph', new Fx.Morph(this, this.retrieve('morph:options'))); + } + return this.retrieve('morph'); + } + +}; + +Element.implement({ + + morph: function(props){ + this.get('morph').start(props); + return this; + } + +}); + + +/* +--- + +script: Fx.Transitions.js + +description: Contains a set of advanced transitions to be used with any of the Fx Classes. + +license: MIT-style license. + +credits: +- Easing Equations by Robert Penner, , modified and optimized to be used with MooTools. + +requires: +- /Fx + +provides: [Fx.Transitions] + +... +*/ + +Fx.implement({ + + getTransition: function(){ + var trans = this.options.transition || Fx.Transitions.Sine.easeInOut; + if (typeof trans == 'string'){ + var data = trans.split(':'); + trans = Fx.Transitions; + trans = trans[data[0]] || trans[data[0].capitalize()]; + if (data[1]) trans = trans['ease' + data[1].capitalize() + (data[2] ? data[2].capitalize() : '')]; + } + return trans; + } + +}); + +Fx.Transition = function(transition, params){ + params = $splat(params); + return $extend(transition, { + easeIn: function(pos){ + return transition(pos, params); + }, + easeOut: function(pos){ + return 1 - transition(1 - pos, params); + }, + easeInOut: function(pos){ + return (pos <= 0.5) ? transition(2 * pos, params) / 2 : (2 - transition(2 * (1 - pos), params)) / 2; + } + }); +}; + +Fx.Transitions = new Hash({ + + linear: $arguments(0) + +}); + +Fx.Transitions.extend = function(transitions){ + for (var transition in transitions) Fx.Transitions[transition] = new Fx.Transition(transitions[transition]); +}; + +Fx.Transitions.extend({ + + Pow: function(p, x){ + return Math.pow(p, x[0] || 6); + }, + + Expo: function(p){ + return Math.pow(2, 8 * (p - 1)); + }, + + Circ: function(p){ + return 1 - Math.sin(Math.acos(p)); + }, + + Sine: function(p){ + return 1 - Math.sin((1 - p) * Math.PI / 2); + }, + + Back: function(p, x){ + x = x[0] || 1.618; + return Math.pow(p, 2) * ((x + 1) * p - x); + }, + + Bounce: function(p){ + var value; + for (var a = 0, b = 1; 1; a += b, b /= 2){ + if (p >= (7 - 4 * a) / 11){ + value = b * b - Math.pow((11 - 6 * a - 11 * p) / 4, 2); + break; + } + } + return value; + }, + + Elastic: function(p, x){ + return Math.pow(2, 10 * --p) * Math.cos(20 * p * Math.PI * (x[0] || 1) / 3); + } + +}); + +['Quad', 'Cubic', 'Quart', 'Quint'].each(function(transition, i){ + Fx.Transitions[transition] = new Fx.Transition(function(p){ + return Math.pow(p, [i + 2]); + }); +}); + + +/* +--- + +script: Request.js + +description: Powerful all purpose Request Class. Uses XMLHTTPRequest. + +license: MIT-style license. + +requires: +- /Element +- /Chain +- /Events +- /Options +- /Browser + +provides: [Request] + +... +*/ + +var Request = new Class({ + + Implements: [Chain, Events, Options], + + options: {/* + onRequest: $empty, + onComplete: $empty, + onCancel: $empty, + onSuccess: $empty, + onFailure: $empty, + onException: $empty,*/ + url: '', + data: '', + headers: { + 'X-Requested-With': 'XMLHttpRequest', + 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*' + }, + async: true, + format: false, + method: 'post', + link: 'ignore', + isSuccess: null, + emulation: true, + urlEncoded: true, + encoding: 'utf-8', + evalScripts: false, + evalResponse: false, + noCache: false + }, + + initialize: function(options){ + this.xhr = new Browser.Request(); + this.setOptions(options); + this.options.isSuccess = this.options.isSuccess || this.isSuccess; + this.headers = new Hash(this.options.headers); + }, + + onStateChange: function(){ + if (this.xhr.readyState != 4 || !this.running) return; + this.running = false; + this.status = 0; + $try(function(){ + this.status = this.xhr.status; + }.bind(this)); + this.xhr.onreadystatechange = $empty; + if (this.options.isSuccess.call(this, this.status)){ + this.response = {text: this.xhr.responseText, xml: this.xhr.responseXML}; + this.success(this.response.text, this.response.xml); + } else { + this.response = {text: null, xml: null}; + this.failure(); + } + }, + + isSuccess: function(){ + return ((this.status >= 200) && (this.status < 300)); + }, + + processScripts: function(text){ + if (this.options.evalResponse || (/(ecma|java)script/).test(this.getHeader('Content-type'))) return $exec(text); + return text.stripScripts(this.options.evalScripts); + }, + + success: function(text, xml){ + this.onSuccess(this.processScripts(text), xml); + }, + + onSuccess: function(){ + this.fireEvent('complete', arguments).fireEvent('success', arguments).callChain(); + }, + + failure: function(){ + this.onFailure(); + }, + + onFailure: function(){ + this.fireEvent('complete').fireEvent('failure', this.xhr); + }, + + setHeader: function(name, value){ + this.headers.set(name, value); + return this; + }, + + getHeader: function(name){ + return $try(function(){ + return this.xhr.getResponseHeader(name); + }.bind(this)); + }, + + check: function(){ + if (!this.running) return true; + switch (this.options.link){ + case 'cancel': this.cancel(); return true; + case 'chain': this.chain(this.caller.bind(this, arguments)); return false; + } + return false; + }, + + send: function(options){ + if (!this.check(options)) return this; + this.running = true; + + var type = $type(options); + if (type == 'string' || type == 'element') options = {data: options}; + + var old = this.options; + options = $extend({data: old.data, url: old.url, method: old.method}, options); + var data = options.data, url = String(options.url), method = options.method.toLowerCase(); + + switch ($type(data)){ + case 'element': data = document.id(data).toQueryString(); break; + case 'object': case 'hash': data = Hash.toQueryString(data); + } + + if (this.options.format){ + var format = 'format=' + this.options.format; + data = (data) ? format + '&' + data : format; + } + + if (this.options.emulation && !['get', 'post'].contains(method)){ + var _method = '_method=' + method; + data = (data) ? _method + '&' + data : _method; + method = 'post'; + } + + if (this.options.urlEncoded && method == 'post'){ + var encoding = (this.options.encoding) ? '; charset=' + this.options.encoding : ''; + this.headers.set('Content-type', 'application/x-www-form-urlencoded' + encoding); + } + + if (this.options.noCache){ + var noCache = 'noCache=' + new Date().getTime(); + data = (data) ? noCache + '&' + data : noCache; + } + + var trimPosition = url.lastIndexOf('/'); + if (trimPosition > -1 && (trimPosition = url.indexOf('#')) > -1) url = url.substr(0, trimPosition); + + if (data && method == 'get'){ + url = url + (url.contains('?') ? '&' : '?') + data; + data = null; + } + + this.xhr.open(method.toUpperCase(), url, this.options.async); + + this.xhr.onreadystatechange = this.onStateChange.bind(this); + + this.headers.each(function(value, key){ + try { + this.xhr.setRequestHeader(key, value); + } catch (e){ + this.fireEvent('exception', [key, value]); + } + }, this); + + this.fireEvent('request'); + this.xhr.send(data); + if (!this.options.async) this.onStateChange(); + return this; + }, + + cancel: function(){ + if (!this.running) return this; + this.running = false; + this.xhr.abort(); + this.xhr.onreadystatechange = $empty; + this.xhr = new Browser.Request(); + this.fireEvent('cancel'); + return this; + } + +}); + +(function(){ + +var methods = {}; +['get', 'post', 'put', 'delete', 'GET', 'POST', 'PUT', 'DELETE'].each(function(method){ + methods[method] = function(){ + var params = Array.link(arguments, {url: String.type, data: $defined}); + return this.send($extend(params, {method: method})); + }; +}); + +Request.implement(methods); + +})(); + +Element.Properties.send = { + + set: function(options){ + var send = this.retrieve('send'); + if (send) send.cancel(); + return this.eliminate('send').store('send:options', $extend({ + data: this, link: 'cancel', method: this.get('method') || 'post', url: this.get('action') + }, options)); + }, + + get: function(options){ + if (options || !this.retrieve('send')){ + if (options || !this.retrieve('send:options')) this.set('send', options); + this.store('send', new Request(this.retrieve('send:options'))); + } + return this.retrieve('send'); + } + +}; + +Element.implement({ + + send: function(url){ + var sender = this.get('send'); + sender.send({data: this, url: url || sender.options.url}); + return this; + } + +}); + + +/* +--- + +script: Request.HTML.js + +description: Extends the basic Request Class with additional methods for interacting with HTML responses. + +license: MIT-style license. + +requires: +- /Request +- /Element + +provides: [Request.HTML] + +... +*/ + +Request.HTML = new Class({ + + Extends: Request, + + options: { + update: false, + append: false, + evalScripts: true, + filter: false + }, + + processHTML: function(text){ + var match = text.match(/]*>([\s\S]*?)<\/body>/i); + text = (match) ? match[1] : text; + + var container = new Element('div'); + + return $try(function(){ + var root = '' + text + '', doc; + if (Browser.Engine.trident){ + doc = new ActiveXObject('Microsoft.XMLDOM'); + doc.async = false; + doc.loadXML(root); + } else { + doc = new DOMParser().parseFromString(root, 'text/xml'); + } + root = doc.getElementsByTagName('root')[0]; + if (!root) return null; + for (var i = 0, k = root.childNodes.length; i < k; i++){ + var child = Element.clone(root.childNodes[i], true, true); + if (child) container.grab(child); + } + return container; + }) || container.set('html', text); + }, + + success: function(text){ + var options = this.options, response = this.response; + + response.html = text.stripScripts(function(script){ + response.javascript = script; + }); + + var temp = this.processHTML(response.html); + + response.tree = temp.childNodes; + response.elements = temp.getElements('*'); + + if (options.filter) response.tree = response.elements.filter(options.filter); + if (options.update) document.id(options.update).empty().set('html', response.html); + else if (options.append) document.id(options.append).adopt(temp.getChildren()); + if (options.evalScripts) $exec(response.javascript); + + this.onSuccess(response.tree, response.elements, response.html, response.javascript); + } + +}); + +Element.Properties.load = { + + set: function(options){ + var load = this.retrieve('load'); + if (load) load.cancel(); + return this.eliminate('load').store('load:options', $extend({data: this, link: 'cancel', update: this, method: 'get'}, options)); + }, + + get: function(options){ + if (options || ! this.retrieve('load')){ + if (options || !this.retrieve('load:options')) this.set('load', options); + this.store('load', new Request.HTML(this.retrieve('load:options'))); + } + return this.retrieve('load'); + } + +}; + +Element.implement({ + + load: function(){ + this.get('load').send(Array.link(arguments, {data: Object.type, url: String.type})); + return this; + } + +}); + + +/* +--- + +script: Request.JSON.js + +description: Extends the basic Request Class with additional methods for sending and receiving JSON data. + +license: MIT-style license. + +requires: +- /Request JSON + +provides: [Request.HTML] + +... +*/ + +Request.JSON = new Class({ + + Extends: Request, + + options: { + secure: true + }, + + initialize: function(options){ + this.parent(options); + this.headers.extend({'Accept': 'application/json', 'X-Request': 'JSON'}); + }, + + success: function(text){ + this.response.json = JSON.decode(text, this.options.secure); + this.onSuccess(this.response.json, text); + } + +}); + +/* +--- + +script: More.js + +description: MooTools More + +license: MIT-style license + +authors: +- Guillermo Rauch +- Thomas Aylott +- Scott Kyle + +requires: +- core:1.2.4/MooTools + +provides: [MooTools.More] + +... +*/ + +MooTools.More = { + 'version': '1.2.4.2dev', + 'build': '%build%' +}; + +/* +Script: Fx.Scroll.js + Effect to smoothly scroll any element, including the window. + + License: + MIT-style license. + + Authors: + Valerio Proietti +*/ + +Fx.Scroll = new Class({ + + Extends: Fx, + + options: { + offset: {x: 0, y: 0}, + wheelStops: true + }, + + initialize: function(element, options){ + this.element = this.subject = $(element); + this.parent(options); + var cancel = this.cancel.bind(this, false); + + if ($type(this.element) != 'element') this.element = $(this.element.getDocument().body); + + var stopper = this.element; + + if (this.options.wheelStops){ + this.addEvent('start', function(){ + stopper.addEvent('mousewheel', cancel); + }, true); + this.addEvent('complete', function(){ + stopper.removeEvent('mousewheel', cancel); + }, true); + } + }, + + set: function(){ + var now = Array.flatten(arguments); + this.element.scrollTo(now[0], now[1]); + }, + + compute: function(from, to, delta){ + return [0, 1].map(function(i){ + return Fx.compute(from[i], to[i], delta); + }); + }, + + start: function(x, y){ + if (!this.check(x, y)) return this; + var offsetSize = this.element.getSize(), scrollSize = this.element.getScrollSize(); + var scroll = this.element.getScroll(), values = {x: x, y: y}; + for (var z in values){ + var max = scrollSize[z] - offsetSize[z]; + if ($chk(values[z])) values[z] = ($type(values[z]) == 'number') ? values[z].limit(0, max) : max; + else values[z] = scroll[z]; + values[z] += this.options.offset[z]; + } + return this.parent([scroll.x, scroll.y], [values.x, values.y]); + }, + + toTop: function(){ + return this.start(false, 0); + }, + + toLeft: function(){ + return this.start(0, false); + }, + + toRight: function(){ + return this.start('right', false); + }, + + toBottom: function(){ + return this.start(false, 'bottom'); + }, + + toElement: function(el){ + var position = $(el).getPosition(this.element); + return this.start(position.x, position.y); + } + +}); + +Element.implement({ + + getSelectedRange: function() { + if ('number' == typeof(this.selectionStart)) return {start: this.selectionStart, end: this.selectionEnd}; + var pos = {start: 0, end: 0}; + var range = this.getDocument().selection.createRange(); + if (!range || range.parentElement() != this) return pos; + var dup = range.duplicate(); + if (this.type == 'text') { + pos.start = 0 - dup.moveStart('character', -100000); + pos.end = pos.start + range.text.length; + } else { + var value = this.value; + var offset = value.length - value.match(/[\n\r]*$/)[0].length; + dup.moveToElementText(this); + dup.setEndPoint('StartToEnd', range); + pos.end = offset - dup.text.length; + dup.setEndPoint('StartToStart', range); + pos.start = offset - dup.text.length; + } + return pos; + }, + + selectRange: function(start, end) { + if (Browser.Engine.trident) { + var diff = this.value.substr(start, end - start).replace(/\r/g, '').length; + start = this.value.substr(0, start).replace(/\r/g, '').length; + var range = this.createTextRange(); + range.collapse(true); + range.moveEnd('character', start + diff); + range.moveStart('character', start); + range.select(); + } else { + this.focus(); + this.setSelectionRange(start, end); + } + return this; + } + +}); + +/* +--- + +script: Drag.js + +description: The base Drag Class. Can be used to drag and resize Elements using mouse events. + +license: MIT-style license + +authors: +- Valerio Proietti +- Tom Occhinno +- Jan Kassens + +requires: +- core:1.2.4/Events +- core:1.2.4/Options +- core:1.2.4/Element.Event +- core:1.2.4/Element.Style +- /MooTools.More + +provides: [Drag] + +*/ + +var Drag = new Class({ + + Implements: [Events, Options], + + options: {/* + onBeforeStart: $empty(thisElement), + onStart: $empty(thisElement, event), + onSnap: $empty(thisElement) + onDrag: $empty(thisElement, event), + onCancel: $empty(thisElement), + onComplete: $empty(thisElement, event),*/ + snap: 6, + unit: 'px', + grid: false, + style: true, + limit: false, + handle: false, + invert: false, + preventDefault: false, + modifiers: {x: 'left', y: 'top'} + }, + + initialize: function(){ + var params = Array.link(arguments, {'options': Object.type, 'element': $defined}); + this.element = document.id(params.element); + this.document = this.element.getDocument(); + this.setOptions(params.options || {}); + var htype = $type(this.options.handle); + this.handles = ((htype == 'array' || htype == 'collection') ? $$(this.options.handle) : document.id(this.options.handle)) || this.element; + this.mouse = {'now': {}, 'pos': {}}; + this.value = {'start': {}, 'now': {}}; + + this.selection = (Browser.Engine.trident) ? 'selectstart' : 'mousedown'; + + this.bound = { + start: this.start.bind(this), + check: this.check.bind(this), + drag: this.drag.bind(this), + stop: this.stop.bind(this), + cancel: this.cancel.bind(this), + eventStop: $lambda(false) + }; + this.attach(); + }, + + attach: function(){ + this.handles.addEvent('mousedown', this.bound.start); + return this; + }, + + detach: function(){ + this.handles.removeEvent('mousedown', this.bound.start); + return this; + }, + + start: function(event){ + if (event.rightClick) return; + if (this.options.preventDefault) event.preventDefault(); + this.mouse.start = event.page; + this.fireEvent('beforeStart', this.element); + var limit = this.options.limit; + this.limit = {x: [], y: []}; + for (var z in this.options.modifiers){ + if (!this.options.modifiers[z]) continue; + if (this.options.style) this.value.now[z] = this.element.getStyle(this.options.modifiers[z]).toInt(); + else this.value.now[z] = this.element[this.options.modifiers[z]]; + if (this.options.invert) this.value.now[z] *= -1; + this.mouse.pos[z] = event.page[z] - this.value.now[z]; + if (limit && limit[z]){ + for (var i = 2; i--; i){ + if ($chk(limit[z][i])) this.limit[z][i] = $lambda(limit[z][i])(); + } + } + } + if ($type(this.options.grid) == 'number') this.options.grid = {x: this.options.grid, y: this.options.grid}; + this.document.addEvents({mousemove: this.bound.check, mouseup: this.bound.cancel}); + this.document.addEvent(this.selection, this.bound.eventStop); + }, + + check: function(event){ + if (this.options.preventDefault) event.preventDefault(); + var distance = Math.round(Math.sqrt(Math.pow(event.page.x - this.mouse.start.x, 2) + Math.pow(event.page.y - this.mouse.start.y, 2))); + if (distance > this.options.snap){ + this.cancel(); + this.document.addEvents({ + mousemove: this.bound.drag, + mouseup: this.bound.stop + }); + this.fireEvent('start', [this.element, event]).fireEvent('snap', this.element); + } + }, + + drag: function(event){ + if (this.options.preventDefault) event.preventDefault(); + this.mouse.now = event.page; + for (var z in this.options.modifiers){ + if (!this.options.modifiers[z]) continue; + this.value.now[z] = this.mouse.now[z] - this.mouse.pos[z]; + if (this.options.invert) this.value.now[z] *= -1; + if (this.options.limit && this.limit[z]){ + if ($chk(this.limit[z][1]) && (this.value.now[z] > this.limit[z][1])){ + this.value.now[z] = this.limit[z][1]; + } else if ($chk(this.limit[z][0]) && (this.value.now[z] < this.limit[z][0])){ + this.value.now[z] = this.limit[z][0]; + } + } + if (this.options.grid[z]) this.value.now[z] -= ((this.value.now[z] - (this.limit[z][0]||0)) % this.options.grid[z]); + if (this.options.style) { + this.element.setStyle(this.options.modifiers[z], this.value.now[z] + this.options.unit); + } else { + this.element[this.options.modifiers[z]] = this.value.now[z]; + } + } + this.fireEvent('drag', [this.element, event]); + }, + + cancel: function(event){ + this.document.removeEvent('mousemove', this.bound.check); + this.document.removeEvent('mouseup', this.bound.cancel); + if (event){ + this.document.removeEvent(this.selection, this.bound.eventStop); + this.fireEvent('cancel', this.element); + } + }, + + stop: function(event){ + this.document.removeEvent(this.selection, this.bound.eventStop); + this.document.removeEvent('mousemove', this.bound.drag); + this.document.removeEvent('mouseup', this.bound.stop); + if (event) this.fireEvent('complete', [this.element, event]); + } + +}); + +Element.implement({ + + makeResizable: function(options){ + var drag = new Drag(this, $merge({modifiers: {x: 'width', y: 'height'}}, options)); + this.store('resizer', drag); + return drag.addEvent('drag', function(){ + this.fireEvent('resize', drag); + }.bind(this)); + } + +}); + + +/* +--- + +script: Drag.Move.js + +description: A Drag extension that provides support for the constraining of draggables to containers and droppables. + +license: MIT-style license + +authors: +- Valerio Proietti +- Tom Occhinno +- Jan Kassens +- Aaron Newton +- Scott Kyle + +requires: +- core:1.2.4/Element.Dimensions +- /Drag + +provides: [Drag.Move] + +... +*/ + +Drag.Move = new Class({ + + Extends: Drag, + + options: {/* + onEnter: $empty(thisElement, overed), + onLeave: $empty(thisElement, overed), + onDrop: $empty(thisElement, overed, event),*/ + droppables: [], + container: false, + precalculate: false, + includeMargins: true, + checkDroppables: true + }, + + initialize: function(element, options){ + this.parent(element, options); + element = this.element; + + this.droppables = $$(this.options.droppables); + this.container = document.id(this.options.container); + + if (this.container && $type(this.container) != 'element') + this.container = document.id(this.container.getDocument().body); + + var styles = element.getStyles('left', 'right', 'position'); + if (styles.left == 'auto' || styles.top == 'auto') + element.setPosition(element.getPosition(element.getOffsetParent())); + + if (styles.position == 'static') + element.setStyle('position', 'absolute'); + + this.addEvent('start', this.checkDroppables, true); + + this.overed = null; + }, + + start: function(event){ + if (this.container) this.options.limit = this.calculateLimit(); + + if (this.options.precalculate){ + this.positions = this.droppables.map(function(el){ + return el.getCoordinates(); + }); + } + + this.parent(event); + }, + + calculateLimit: function(){ + var offsetParent = this.element.getOffsetParent(), + containerCoordinates = this.container.getCoordinates(offsetParent), + containerBorder = {}, + elementMargin = {}, + elementBorder = {}, + containerMargin = {}, + offsetParentPadding = {}; + + ['top', 'right', 'bottom', 'left'].each(function(pad){ + containerBorder[pad] = this.container.getStyle('border-' + pad).toInt(); + elementBorder[pad] = this.element.getStyle('border-' + pad).toInt(); + elementMargin[pad] = this.element.getStyle('margin-' + pad).toInt(); + containerMargin[pad] = this.container.getStyle('margin-' + pad).toInt(); + offsetParentPadding[pad] = offsetParent.getStyle('padding-' + pad).toInt(); + }, this); + + var width = this.element.offsetWidth + elementMargin.left + elementMargin.right, + height = this.element.offsetHeight + elementMargin.top + elementMargin.bottom, + left = 0, + top = 0, + right = containerCoordinates.right - containerBorder.right - width, + bottom = containerCoordinates.bottom - containerBorder.bottom - height; + + if (this.options.includeMargins){ + left += elementMargin.left; + top += elementMargin.top; + } else { + right += elementMargin.right; + bottom += elementMargin.bottom; + } + + if (this.element.getStyle('position') == 'relative'){ + var coords = this.element.getCoordinates(offsetParent); + coords.left -= this.element.getStyle('left').toInt(); + coords.top -= this.element.getStyle('top').toInt(); + + left += containerBorder.left - coords.left; + top += containerBorder.top - coords.top; + right += elementMargin.left - coords.left; + bottom += elementMargin.top - coords.top; + + if (this.container != offsetParent){ + left += containerMargin.left + offsetParentPadding.left; + top += (Browser.Engine.trident4 ? 0 : containerMargin.top) + offsetParentPadding.top; + } + } else { + left -= elementMargin.left; + top -= elementMargin.top; + + if (this.container == offsetParent){ + right -= containerBorder.left; + bottom -= containerBorder.top; + } else { + left += containerCoordinates.left + containerBorder.left; + top += containerCoordinates.top + containerBorder.top; + } + } + + return { + x: [left, right], + y: [top, bottom] + }; + }, + + checkAgainst: function(el, i){ + el = (this.positions) ? this.positions[i] : el.getCoordinates(); + var now = this.mouse.now; + return (now.x > el.left && now.x < el.right && now.y < el.bottom && now.y > el.top); + }, + + checkDroppables: function(){ + var overed = this.droppables.filter(this.checkAgainst, this).getLast(); + if (this.overed != overed){ + if (this.overed) this.fireEvent('leave', [this.element, this.overed]); + if (overed) this.fireEvent('enter', [this.element, overed]); + this.overed = overed; + } + }, + + drag: function(event){ + this.parent(event); + if (this.options.checkDroppables && this.droppables.length) this.checkDroppables(); + }, + + stop: function(event){ + this.checkDroppables(); + this.fireEvent('drop', [this.element, this.overed, event]); + this.overed = null; + return this.parent(event); + } + +}); + +Element.implement({ + + makeDraggable: function(options){ + var drag = new Drag.Move(this, options); + this.store('dragger', drag); + return drag; + } + +}); + + +/* +--- + +script: Sortables.js + +description: Class for creating a drag and drop sorting interface for lists of items. + +license: MIT-style license + +authors: +- Tom Occhino + +requires: +- /Drag.Move + +provides: [Slider] + +... +*/ + +var Sortables = new Class({ + + Implements: [Events, Options], + + options: {/* + onSort: $empty(element, clone), + onStart: $empty(element, clone), + onComplete: $empty(element),*/ + snap: 4, + opacity: 1, + clone: false, + revert: false, + handle: false, + constrain: false + }, + + initialize: function(lists, options){ + this.setOptions(options); + this.elements = []; + this.lists = []; + this.idle = true; + + this.addLists($$(document.id(lists) || lists)); + if (!this.options.clone) this.options.revert = false; + if (this.options.revert) this.effect = new Fx.Morph(null, $merge({duration: 250, link: 'cancel'}, this.options.revert)); + }, + + attach: function(){ + this.addLists(this.lists); + return this; + }, + + detach: function(){ + this.lists = this.removeLists(this.lists); + return this; + }, + + addItems: function(){ + Array.flatten(arguments).each(function(element){ + this.elements.push(element); + var start = element.retrieve('sortables:start', this.start.bindWithEvent(this, element)); + (this.options.handle ? element.getElement(this.options.handle) || element : element).addEvent('mousedown', start); + }, this); + return this; + }, + + addLists: function(){ + Array.flatten(arguments).each(function(list){ + this.lists.push(list); + this.addItems(list.getChildren()); + }, this); + return this; + }, + + removeItems: function(){ + return $$(Array.flatten(arguments).map(function(element){ + this.elements.erase(element); + var start = element.retrieve('sortables:start'); + (this.options.handle ? element.getElement(this.options.handle) || element : element).removeEvent('mousedown', start); + + return element; + }, this)); + }, + + removeLists: function(){ + return $$(Array.flatten(arguments).map(function(list){ + this.lists.erase(list); + this.removeItems(list.getChildren()); + + return list; + }, this)); + }, + + getClone: function(event, element){ + if (!this.options.clone) return new Element('div').inject(document.body); + if ($type(this.options.clone) == 'function') return this.options.clone.call(this, event, element, this.list); + return element.clone(true).setStyles({ + margin: '0px', + position: 'absolute', + visibility: 'hidden', + 'width': element.getStyle('width') + }).inject(this.list).setPosition(element.getPosition(element.getOffsetParent())); + }, + + getDroppables: function(){ + var droppables = this.list.getChildren(); + if (!this.options.constrain) droppables = this.lists.concat(droppables).erase(this.list); + return droppables.erase(this.clone).erase(this.element); + }, + + insert: function(dragging, element){ + var where = 'inside'; + if (this.lists.contains(element)){ + this.list = element; + this.drag.droppables = this.getDroppables(); + } else { + where = this.element.getAllPrevious().contains(element) ? 'before' : 'after'; + } + this.element.inject(element, where); + this.fireEvent('sort', [this.element, this.clone]); + }, + + start: function(event, element){ + if (!this.idle) return; + this.idle = false; + this.element = element; + this.opacity = element.get('opacity'); + this.list = element.getParent(); + this.clone = this.getClone(event, element); + + this.drag = new Drag.Move(this.clone, { + snap: this.options.snap, + container: this.options.constrain && this.element.getParent(), + droppables: this.getDroppables(), + onSnap: function(){ + event.stop(); + this.clone.setStyle('visibility', 'visible'); + this.element.set('opacity', this.options.opacity || 0); + this.fireEvent('start', [this.element, this.clone]); + }.bind(this), + onEnter: this.insert.bind(this), + onCancel: this.reset.bind(this), + onComplete: this.end.bind(this) + }); + + this.clone.inject(this.element, 'before'); + this.drag.start(event); + }, + + end: function(){ + this.drag.detach(); + this.element.set('opacity', this.opacity); + if (this.effect){ + var dim = this.element.getStyles('width', 'height'); + var pos = this.clone.computePosition(this.element.getPosition(this.clone.offsetParent)); + this.effect.element = this.clone; + this.effect.start({ + top: pos.top, + left: pos.left, + width: dim.width, + height: dim.height, + opacity: 0.25 + }).chain(this.reset.bind(this)); + } else { + this.reset(); + } + }, + + reset: function(){ + this.idle = true; + this.clone.destroy(); + this.fireEvent('complete', this.element); + }, + + serialize: function(){ + var params = Array.link(arguments, {modifier: Function.type, index: $defined}); + var serial = this.lists.map(function(list){ + return list.getChildren().map(params.modifier || function(element){ + return element.get('id'); + }, this); + }, this); + + var index = params.index; + if (this.lists.length == 1) index = 0; + return $chk(index) && index >= 0 && index < this.lists.length ? serial[index] : serial; + } + +}); diff --git a/admin/javascript/swfupload/swfupload.cookies.js b/admin/javascript/swfupload/swfupload.cookies.js new file mode 100755 index 00000000..96e0e58e --- /dev/null +++ b/admin/javascript/swfupload/swfupload.cookies.js @@ -0,0 +1,53 @@ +/* + Cookie Plug-in + + This plug in automatically gets all the cookies for this site and adds them to the post_params. + Cookies are loaded only on initialization. The refreshCookies function can be called to update the post_params. + The cookies will override any other post params with the same name. +*/ + +var SWFUpload; +if (typeof(SWFUpload) === "function") { + SWFUpload.prototype.initSettings = function (oldInitSettings) { + return function () { + if (typeof(oldInitSettings) === "function") { + oldInitSettings.call(this); + } + + this.refreshCookies(false); // The false parameter must be sent since SWFUpload has not initialzed at this point + }; + }(SWFUpload.prototype.initSettings); + + // refreshes the post_params and updates SWFUpload. The sendToFlash parameters is optional and defaults to True + SWFUpload.prototype.refreshCookies = function (sendToFlash) { + if (sendToFlash === undefined) { + sendToFlash = true; + } + sendToFlash = !!sendToFlash; + + // Get the post_params object + var postParams = this.settings.post_params; + + // Get the cookies + var i, cookieArray = document.cookie.split(';'), caLength = cookieArray.length, c, eqIndex, name, value; + for (i = 0; i < caLength; i++) { + c = cookieArray[i]; + + // Left Trim spaces + while (c.charAt(0) === " ") { + c = c.substring(1, c.length); + } + eqIndex = c.indexOf("="); + if (eqIndex > 0) { + name = c.substring(0, eqIndex); + value = c.substring(eqIndex + 1); + postParams[name] = unescape(value); + } + } + + if (sendToFlash) { + this.setPostParams(postParams); + } + }; + +} diff --git a/admin/javascript/swfupload/swfupload.js b/admin/javascript/swfupload/swfupload.js new file mode 100644 index 00000000..969e2008 --- /dev/null +++ b/admin/javascript/swfupload/swfupload.js @@ -0,0 +1,980 @@ +/** + * SWFUpload: http://www.swfupload.org, http://swfupload.googlecode.com + * + * mmSWFUpload 1.0: Flash upload dialog - http://profandesign.se/swfupload/, http://www.vinterwebb.se/ + * + * SWFUpload is (c) 2006-2007 Lars Huring, Olov Nilzn and Mammon Media and is released under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + * + * SWFUpload 2 is (c) 2007-2008 Jake Roberts and is released under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + * + */ + + +/* ******************* */ +/* Constructor & Init */ +/* ******************* */ +var SWFUpload; + +if (SWFUpload == undefined) { + SWFUpload = function (settings) { + this.initSWFUpload(settings); + }; +} + +SWFUpload.prototype.initSWFUpload = function (settings) { + try { + this.customSettings = {}; // A container where developers can place their own settings associated with this instance. + this.settings = settings; + this.eventQueue = []; + this.movieName = "SWFUpload_" + SWFUpload.movieCount++; + this.movieElement = null; + + + // Setup global control tracking + SWFUpload.instances[this.movieName] = this; + + // Load the settings. Load the Flash movie. + this.initSettings(); + this.loadFlash(); + this.displayDebugInfo(); + } catch (ex) { + delete SWFUpload.instances[this.movieName]; + throw ex; + } +}; + +/* *************** */ +/* Static Members */ +/* *************** */ +SWFUpload.instances = {}; +SWFUpload.movieCount = 0; +SWFUpload.version = "2.2.0 2009-03-25"; +SWFUpload.QUEUE_ERROR = { + QUEUE_LIMIT_EXCEEDED : -100, + FILE_EXCEEDS_SIZE_LIMIT : -110, + ZERO_BYTE_FILE : -120, + INVALID_FILETYPE : -130 +}; +SWFUpload.UPLOAD_ERROR = { + HTTP_ERROR : -200, + MISSING_UPLOAD_URL : -210, + IO_ERROR : -220, + SECURITY_ERROR : -230, + UPLOAD_LIMIT_EXCEEDED : -240, + UPLOAD_FAILED : -250, + SPECIFIED_FILE_ID_NOT_FOUND : -260, + FILE_VALIDATION_FAILED : -270, + FILE_CANCELLED : -280, + UPLOAD_STOPPED : -290 +}; +SWFUpload.FILE_STATUS = { + QUEUED : -1, + IN_PROGRESS : -2, + ERROR : -3, + COMPLETE : -4, + CANCELLED : -5 +}; +SWFUpload.BUTTON_ACTION = { + SELECT_FILE : -100, + SELECT_FILES : -110, + START_UPLOAD : -120 +}; +SWFUpload.CURSOR = { + ARROW : -1, + HAND : -2 +}; +SWFUpload.WINDOW_MODE = { + WINDOW : "window", + TRANSPARENT : "transparent", + OPAQUE : "opaque" +}; + +// Private: takes a URL, determines if it is relative and converts to an absolute URL +// using the current site. Only processes the URL if it can, otherwise returns the URL untouched +SWFUpload.completeURL = function(url) { + if (typeof(url) !== "string" || url.match(/^https?:\/\//i) || url.match(/^\//)) { + return url; + } + + var currentURL = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ":" + window.location.port : ""); + + var indexSlash = window.location.pathname.lastIndexOf("/"); + if (indexSlash <= 0) { + path = "/"; + } else { + path = window.location.pathname.substr(0, indexSlash) + "/"; + } + + return /*currentURL +*/ path + url; + +}; + + +/* ******************** */ +/* Instance Members */ +/* ******************** */ + +// Private: initSettings ensures that all the +// settings are set, getting a default value if one was not assigned. +SWFUpload.prototype.initSettings = function () { + this.ensureDefault = function (settingName, defaultValue) { + this.settings[settingName] = (this.settings[settingName] == undefined) ? defaultValue : this.settings[settingName]; + }; + + // Upload backend settings + this.ensureDefault("upload_url", ""); + this.ensureDefault("preserve_relative_urls", false); + this.ensureDefault("file_post_name", "Filedata"); + this.ensureDefault("post_params", {}); + this.ensureDefault("use_query_string", false); + this.ensureDefault("requeue_on_error", false); + this.ensureDefault("http_success", []); + this.ensureDefault("assume_success_timeout", 0); + + // File Settings + this.ensureDefault("file_types", "*.*"); + this.ensureDefault("file_types_description", "All Files"); + this.ensureDefault("file_size_limit", 0); // Default zero means "unlimited" + this.ensureDefault("file_upload_limit", 0); + this.ensureDefault("file_queue_limit", 0); + + // Flash Settings + this.ensureDefault("flash_url", "swfupload.swf"); + this.ensureDefault("prevent_swf_caching", true); + + // Button Settings + this.ensureDefault("button_image_url", ""); + this.ensureDefault("button_width", 1); + this.ensureDefault("button_height", 1); + this.ensureDefault("button_text", ""); + this.ensureDefault("button_text_style", "color: #000000; font-size: 16pt;"); + this.ensureDefault("button_text_top_padding", 0); + this.ensureDefault("button_text_left_padding", 0); + this.ensureDefault("button_action", SWFUpload.BUTTON_ACTION.SELECT_FILES); + this.ensureDefault("button_disabled", false); + this.ensureDefault("button_placeholder_id", ""); + this.ensureDefault("button_placeholder", null); + this.ensureDefault("button_cursor", SWFUpload.CURSOR.ARROW); + this.ensureDefault("button_window_mode", SWFUpload.WINDOW_MODE.WINDOW); + + // Debug Settings + this.ensureDefault("debug", false); + this.settings.debug_enabled = this.settings.debug; // Here to maintain v2 API + + // Event Handlers + this.settings.return_upload_start_handler = this.returnUploadStart; + this.ensureDefault("swfupload_loaded_handler", null); + this.ensureDefault("file_dialog_start_handler", null); + this.ensureDefault("file_queued_handler", null); + this.ensureDefault("file_queue_error_handler", null); + this.ensureDefault("file_dialog_complete_handler", null); + + this.ensureDefault("upload_start_handler", null); + this.ensureDefault("upload_progress_handler", null); + this.ensureDefault("upload_error_handler", null); + this.ensureDefault("upload_success_handler", null); + this.ensureDefault("upload_complete_handler", null); + + this.ensureDefault("debug_handler", this.debugMessage); + + this.ensureDefault("custom_settings", {}); + + // Other settings + this.customSettings = this.settings.custom_settings; + + // Update the flash url if needed + if (!!this.settings.prevent_swf_caching) { + this.settings.flash_url = this.settings.flash_url + (this.settings.flash_url.indexOf("?") < 0 ? "?" : "&") + "preventswfcaching=" + new Date().getTime(); + } + + if (!this.settings.preserve_relative_urls) { + //this.settings.flash_url = SWFUpload.completeURL(this.settings.flash_url); // Don't need to do this one since flash doesn't look at it + this.settings.upload_url = SWFUpload.completeURL(this.settings.upload_url); + this.settings.button_image_url = SWFUpload.completeURL(this.settings.button_image_url); + } + + delete this.ensureDefault; +}; + +// Private: loadFlash replaces the button_placeholder element with the flash movie. +SWFUpload.prototype.loadFlash = function () { + var targetElement, tempParent; + + // Make sure an element with the ID we are going to use doesn't already exist + if (document.getElementById(this.movieName) !== null) { + throw "ID " + this.movieName + " is already in use. The Flash Object could not be added"; + } + + // Get the element where we will be placing the flash movie + targetElement = document.getElementById(this.settings.button_placeholder_id) || this.settings.button_placeholder; + + if (targetElement == undefined) { + throw "Could not find the placeholder element: " + this.settings.button_placeholder_id; + } + + // Append the container and load the flash + tempParent = document.createElement("div"); + tempParent.innerHTML = this.getFlashHTML(); // Using innerHTML is non-standard but the only sensible way to dynamically add Flash in IE (and maybe other browsers) + targetElement.parentNode.replaceChild(tempParent.firstChild, targetElement); + + // Fix IE Flash/Form bug + if (window[this.movieName] == undefined) { + window[this.movieName] = this.getMovieElement(); + } + +}; + +// Private: getFlashHTML generates the object tag needed to embed the flash in to the document +SWFUpload.prototype.getFlashHTML = function () { + // Flash Satay object syntax: http://www.alistapart.com/articles/flashsatay + return ['', + '', + '', + '', + '', + '', + '', + ''].join(""); +}; + +// Private: getFlashVars builds the parameter string that will be passed +// to flash in the flashvars param. +SWFUpload.prototype.getFlashVars = function () { + // Build a string from the post param object + var paramString = this.buildParamString(); + var httpSuccessString = this.settings.http_success.join(","); + + // Build the parameter string + return ["movieName=", encodeURIComponent(this.movieName), + "&uploadURL=", encodeURIComponent(this.settings.upload_url), + "&useQueryString=", encodeURIComponent(this.settings.use_query_string), + "&requeueOnError=", encodeURIComponent(this.settings.requeue_on_error), + "&httpSuccess=", encodeURIComponent(httpSuccessString), + "&assumeSuccessTimeout=", encodeURIComponent(this.settings.assume_success_timeout), + "&params=", encodeURIComponent(paramString), + "&filePostName=", encodeURIComponent(this.settings.file_post_name), + "&fileTypes=", encodeURIComponent(this.settings.file_types), + "&fileTypesDescription=", encodeURIComponent(this.settings.file_types_description), + "&fileSizeLimit=", encodeURIComponent(this.settings.file_size_limit), + "&fileUploadLimit=", encodeURIComponent(this.settings.file_upload_limit), + "&fileQueueLimit=", encodeURIComponent(this.settings.file_queue_limit), + "&debugEnabled=", encodeURIComponent(this.settings.debug_enabled), + "&buttonImageURL=", encodeURIComponent(this.settings.button_image_url), + "&buttonWidth=", encodeURIComponent(this.settings.button_width), + "&buttonHeight=", encodeURIComponent(this.settings.button_height), + "&buttonText=", encodeURIComponent(this.settings.button_text), + "&buttonTextTopPadding=", encodeURIComponent(this.settings.button_text_top_padding), + "&buttonTextLeftPadding=", encodeURIComponent(this.settings.button_text_left_padding), + "&buttonTextStyle=", encodeURIComponent(this.settings.button_text_style), + "&buttonAction=", encodeURIComponent(this.settings.button_action), + "&buttonDisabled=", encodeURIComponent(this.settings.button_disabled), + "&buttonCursor=", encodeURIComponent(this.settings.button_cursor) + ].join(""); +}; + +// Public: getMovieElement retrieves the DOM reference to the Flash element added by SWFUpload +// The element is cached after the first lookup +SWFUpload.prototype.getMovieElement = function () { + if (this.movieElement == undefined) { + this.movieElement = document.getElementById(this.movieName); + } + + if (this.movieElement === null) { + throw "Could not find Flash element"; + } + + return this.movieElement; +}; + +// Private: buildParamString takes the name/value pairs in the post_params setting object +// and joins them up in to a string formatted "name=value&name=value" +SWFUpload.prototype.buildParamString = function () { + var postParams = this.settings.post_params; + var paramStringPairs = []; + + if (typeof(postParams) === "object") { + for (var name in postParams) { + if (postParams.hasOwnProperty(name)) { + paramStringPairs.push(encodeURIComponent(name.toString()) + "=" + encodeURIComponent(postParams[name].toString())); + } + } + } + + return paramStringPairs.join("&"); +}; + +// Public: Used to remove a SWFUpload instance from the page. This method strives to remove +// all references to the SWF, and other objects so memory is properly freed. +// Returns true if everything was destroyed. Returns a false if a failure occurs leaving SWFUpload in an inconsistant state. +// Credits: Major improvements provided by steffen +SWFUpload.prototype.destroy = function () { + try { + // Make sure Flash is done before we try to remove it + this.cancelUpload(null, false); + + + // Remove the SWFUpload DOM nodes + var movieElement = null; + movieElement = this.getMovieElement(); + + if (movieElement && typeof(movieElement.CallFunction) === "unknown") { // We only want to do this in IE + // Loop through all the movie's properties and remove all function references (DOM/JS IE 6/7 memory leak workaround) + for (var i in movieElement) { + try { + if (typeof(movieElement[i]) === "function") { + movieElement[i] = null; + } + } catch (ex1) {} + } + + // Remove the Movie Element from the page + try { + movieElement.parentNode.removeChild(movieElement); + } catch (ex) {} + } + + // Remove IE form fix reference + window[this.movieName] = null; + + // Destroy other references + SWFUpload.instances[this.movieName] = null; + delete SWFUpload.instances[this.movieName]; + + this.movieElement = null; + this.settings = null; + this.customSettings = null; + this.eventQueue = null; + this.movieName = null; + + + return true; + } catch (ex2) { + return false; + } +}; + + +// Public: displayDebugInfo prints out settings and configuration +// information about this SWFUpload instance. +// This function (and any references to it) can be deleted when placing +// SWFUpload in production. +SWFUpload.prototype.displayDebugInfo = function () { + this.debug( + [ + "---SWFUpload Instance Info---\n", + "Version: ", SWFUpload.version, "\n", + "Movie Name: ", this.movieName, "\n", + "Settings:\n", + "\t", "upload_url: ", this.settings.upload_url, "\n", + "\t", "flash_url: ", this.settings.flash_url, "\n", + "\t", "use_query_string: ", this.settings.use_query_string.toString(), "\n", + "\t", "requeue_on_error: ", this.settings.requeue_on_error.toString(), "\n", + "\t", "http_success: ", this.settings.http_success.join(", "), "\n", + "\t", "assume_success_timeout: ", this.settings.assume_success_timeout, "\n", + "\t", "file_post_name: ", this.settings.file_post_name, "\n", + "\t", "post_params: ", this.settings.post_params.toString(), "\n", + "\t", "file_types: ", this.settings.file_types, "\n", + "\t", "file_types_description: ", this.settings.file_types_description, "\n", + "\t", "file_size_limit: ", this.settings.file_size_limit, "\n", + "\t", "file_upload_limit: ", this.settings.file_upload_limit, "\n", + "\t", "file_queue_limit: ", this.settings.file_queue_limit, "\n", + "\t", "debug: ", this.settings.debug.toString(), "\n", + + "\t", "prevent_swf_caching: ", this.settings.prevent_swf_caching.toString(), "\n", + + "\t", "button_placeholder_id: ", this.settings.button_placeholder_id.toString(), "\n", + "\t", "button_placeholder: ", (this.settings.button_placeholder ? "Set" : "Not Set"), "\n", + "\t", "button_image_url: ", this.settings.button_image_url.toString(), "\n", + "\t", "button_width: ", this.settings.button_width.toString(), "\n", + "\t", "button_height: ", this.settings.button_height.toString(), "\n", + "\t", "button_text: ", this.settings.button_text.toString(), "\n", + "\t", "button_text_style: ", this.settings.button_text_style.toString(), "\n", + "\t", "button_text_top_padding: ", this.settings.button_text_top_padding.toString(), "\n", + "\t", "button_text_left_padding: ", this.settings.button_text_left_padding.toString(), "\n", + "\t", "button_action: ", this.settings.button_action.toString(), "\n", + "\t", "button_disabled: ", this.settings.button_disabled.toString(), "\n", + + "\t", "custom_settings: ", this.settings.custom_settings.toString(), "\n", + "Event Handlers:\n", + "\t", "swfupload_loaded_handler assigned: ", (typeof this.settings.swfupload_loaded_handler === "function").toString(), "\n", + "\t", "file_dialog_start_handler assigned: ", (typeof this.settings.file_dialog_start_handler === "function").toString(), "\n", + "\t", "file_queued_handler assigned: ", (typeof this.settings.file_queued_handler === "function").toString(), "\n", + "\t", "file_queue_error_handler assigned: ", (typeof this.settings.file_queue_error_handler === "function").toString(), "\n", + "\t", "upload_start_handler assigned: ", (typeof this.settings.upload_start_handler === "function").toString(), "\n", + "\t", "upload_progress_handler assigned: ", (typeof this.settings.upload_progress_handler === "function").toString(), "\n", + "\t", "upload_error_handler assigned: ", (typeof this.settings.upload_error_handler === "function").toString(), "\n", + "\t", "upload_success_handler assigned: ", (typeof this.settings.upload_success_handler === "function").toString(), "\n", + "\t", "upload_complete_handler assigned: ", (typeof this.settings.upload_complete_handler === "function").toString(), "\n", + "\t", "debug_handler assigned: ", (typeof this.settings.debug_handler === "function").toString(), "\n" + ].join("") + ); +}; + +/* Note: addSetting and getSetting are no longer used by SWFUpload but are included + the maintain v2 API compatibility +*/ +// Public: (Deprecated) addSetting adds a setting value. If the value given is undefined or null then the default_value is used. +SWFUpload.prototype.addSetting = function (name, value, default_value) { + if (value == undefined) { + return (this.settings[name] = default_value); + } else { + return (this.settings[name] = value); + } +}; + +// Public: (Deprecated) getSetting gets a setting. Returns an empty string if the setting was not found. +SWFUpload.prototype.getSetting = function (name) { + if (this.settings[name] != undefined) { + return this.settings[name]; + } + + return ""; +}; + + + +// Private: callFlash handles function calls made to the Flash element. +// Calls are made with a setTimeout for some functions to work around +// bugs in the ExternalInterface library. +SWFUpload.prototype.callFlash = function (functionName, argumentArray) { + argumentArray = argumentArray || []; + + var movieElement = this.getMovieElement(); + var returnValue, returnString; + + // Flash's method if calling ExternalInterface methods (code adapted from MooTools). + try { + returnString = movieElement.CallFunction('' + __flash__argumentsToXML(argumentArray, 0) + ''); + returnValue = eval(returnString); + } catch (ex) { + throw "Call to " + functionName + " failed"; + } + + // Unescape file post param values + if (returnValue != undefined && typeof returnValue.post === "object") { + returnValue = this.unescapeFilePostParams(returnValue); + } + + return returnValue; +}; + +/* ***************************** + -- Flash control methods -- + Your UI should use these + to operate SWFUpload + ***************************** */ + +// WARNING: this function does not work in Flash Player 10 +// Public: selectFile causes a File Selection Dialog window to appear. This +// dialog only allows 1 file to be selected. +SWFUpload.prototype.selectFile = function () { + this.callFlash("SelectFile"); +}; + +// WARNING: this function does not work in Flash Player 10 +// Public: selectFiles causes a File Selection Dialog window to appear/ This +// dialog allows the user to select any number of files +// Flash Bug Warning: Flash limits the number of selectable files based on the combined length of the file names. +// If the selection name length is too long the dialog will fail in an unpredictable manner. There is no work-around +// for this bug. +SWFUpload.prototype.selectFiles = function () { + this.callFlash("SelectFiles"); +}; + + +// Public: startUpload starts uploading the first file in the queue unless +// the optional parameter 'fileID' specifies the ID +SWFUpload.prototype.startUpload = function (fileID) { + this.callFlash("StartUpload", [fileID]); +}; + +// Public: cancelUpload cancels any queued file. The fileID parameter may be the file ID or index. +// If you do not specify a fileID the current uploading file or first file in the queue is cancelled. +// If you do not want the uploadError event to trigger you can specify false for the triggerErrorEvent parameter. +SWFUpload.prototype.cancelUpload = function (fileID, triggerErrorEvent) { + if (triggerErrorEvent !== false) { + triggerErrorEvent = true; + } + this.callFlash("CancelUpload", [fileID, triggerErrorEvent]); +}; + +// Public: stopUpload stops the current upload and requeues the file at the beginning of the queue. +// If nothing is currently uploading then nothing happens. +SWFUpload.prototype.stopUpload = function () { + this.callFlash("StopUpload"); +}; + +/* ************************ + * Settings methods + * These methods change the SWFUpload settings. + * SWFUpload settings should not be changed directly on the settings object + * since many of the settings need to be passed to Flash in order to take + * effect. + * *********************** */ + +// Public: getStats gets the file statistics object. +SWFUpload.prototype.getStats = function () { + return this.callFlash("GetStats"); +}; + +// Public: setStats changes the SWFUpload statistics. You shouldn't need to +// change the statistics but you can. Changing the statistics does not +// affect SWFUpload accept for the successful_uploads count which is used +// by the upload_limit setting to determine how many files the user may upload. +SWFUpload.prototype.setStats = function (statsObject) { + this.callFlash("SetStats", [statsObject]); +}; + +// Public: getFile retrieves a File object by ID or Index. If the file is +// not found then 'null' is returned. +SWFUpload.prototype.getFile = function (fileID) { + if (typeof(fileID) === "number") { + return this.callFlash("GetFileByIndex", [fileID]); + } else { + return this.callFlash("GetFile", [fileID]); + } +}; + +// Public: addFileParam sets a name/value pair that will be posted with the +// file specified by the Files ID. If the name already exists then the +// exiting value will be overwritten. +SWFUpload.prototype.addFileParam = function (fileID, name, value) { + return this.callFlash("AddFileParam", [fileID, name, value]); +}; + +// Public: removeFileParam removes a previously set (by addFileParam) name/value +// pair from the specified file. +SWFUpload.prototype.removeFileParam = function (fileID, name) { + this.callFlash("RemoveFileParam", [fileID, name]); +}; + +// Public: setUploadUrl changes the upload_url setting. +SWFUpload.prototype.setUploadURL = function (url) { + this.settings.upload_url = url.toString(); + this.callFlash("SetUploadURL", [url]); +}; + +// Public: setPostParams changes the post_params setting +SWFUpload.prototype.setPostParams = function (paramsObject) { + this.settings.post_params = paramsObject; + this.callFlash("SetPostParams", [paramsObject]); +}; + +// Public: addPostParam adds post name/value pair. Each name can have only one value. +SWFUpload.prototype.addPostParam = function (name, value) { + this.settings.post_params[name] = value; + this.callFlash("SetPostParams", [this.settings.post_params]); +}; + +// Public: removePostParam deletes post name/value pair. +SWFUpload.prototype.removePostParam = function (name) { + delete this.settings.post_params[name]; + this.callFlash("SetPostParams", [this.settings.post_params]); +}; + +// Public: setFileTypes changes the file_types setting and the file_types_description setting +SWFUpload.prototype.setFileTypes = function (types, description) { + this.settings.file_types = types; + this.settings.file_types_description = description; + this.callFlash("SetFileTypes", [types, description]); +}; + +// Public: setFileSizeLimit changes the file_size_limit setting +SWFUpload.prototype.setFileSizeLimit = function (fileSizeLimit) { + this.settings.file_size_limit = fileSizeLimit; + this.callFlash("SetFileSizeLimit", [fileSizeLimit]); +}; + +// Public: setFileUploadLimit changes the file_upload_limit setting +SWFUpload.prototype.setFileUploadLimit = function (fileUploadLimit) { + this.settings.file_upload_limit = fileUploadLimit; + this.callFlash("SetFileUploadLimit", [fileUploadLimit]); +}; + +// Public: setFileQueueLimit changes the file_queue_limit setting +SWFUpload.prototype.setFileQueueLimit = function (fileQueueLimit) { + this.settings.file_queue_limit = fileQueueLimit; + this.callFlash("SetFileQueueLimit", [fileQueueLimit]); +}; + +// Public: setFilePostName changes the file_post_name setting +SWFUpload.prototype.setFilePostName = function (filePostName) { + this.settings.file_post_name = filePostName; + this.callFlash("SetFilePostName", [filePostName]); +}; + +// Public: setUseQueryString changes the use_query_string setting +SWFUpload.prototype.setUseQueryString = function (useQueryString) { + this.settings.use_query_string = useQueryString; + this.callFlash("SetUseQueryString", [useQueryString]); +}; + +// Public: setRequeueOnError changes the requeue_on_error setting +SWFUpload.prototype.setRequeueOnError = function (requeueOnError) { + this.settings.requeue_on_error = requeueOnError; + this.callFlash("SetRequeueOnError", [requeueOnError]); +}; + +// Public: setHTTPSuccess changes the http_success setting +SWFUpload.prototype.setHTTPSuccess = function (http_status_codes) { + if (typeof http_status_codes === "string") { + http_status_codes = http_status_codes.replace(" ", "").split(","); + } + + this.settings.http_success = http_status_codes; + this.callFlash("SetHTTPSuccess", [http_status_codes]); +}; + +// Public: setHTTPSuccess changes the http_success setting +SWFUpload.prototype.setAssumeSuccessTimeout = function (timeout_seconds) { + this.settings.assume_success_timeout = timeout_seconds; + this.callFlash("SetAssumeSuccessTimeout", [timeout_seconds]); +}; + +// Public: setDebugEnabled changes the debug_enabled setting +SWFUpload.prototype.setDebugEnabled = function (debugEnabled) { + this.settings.debug_enabled = debugEnabled; + this.callFlash("SetDebugEnabled", [debugEnabled]); +}; + +// Public: setButtonImageURL loads a button image sprite +SWFUpload.prototype.setButtonImageURL = function (buttonImageURL) { + if (buttonImageURL == undefined) { + buttonImageURL = ""; + } + + this.settings.button_image_url = buttonImageURL; + this.callFlash("SetButtonImageURL", [buttonImageURL]); +}; + +// Public: setButtonDimensions resizes the Flash Movie and button +SWFUpload.prototype.setButtonDimensions = function (width, height) { + this.settings.button_width = width; + this.settings.button_height = height; + + var movie = this.getMovieElement(); + if (movie != undefined) { + movie.style.width = width + "px"; + movie.style.height = height + "px"; + } + + this.callFlash("SetButtonDimensions", [width, height]); +}; +// Public: setButtonText Changes the text overlaid on the button +SWFUpload.prototype.setButtonText = function (html) { + this.settings.button_text = html; + this.callFlash("SetButtonText", [html]); +}; +// Public: setButtonTextPadding changes the top and left padding of the text overlay +SWFUpload.prototype.setButtonTextPadding = function (left, top) { + this.settings.button_text_top_padding = top; + this.settings.button_text_left_padding = left; + this.callFlash("SetButtonTextPadding", [left, top]); +}; + +// Public: setButtonTextStyle changes the CSS used to style the HTML/Text overlaid on the button +SWFUpload.prototype.setButtonTextStyle = function (css) { + this.settings.button_text_style = css; + this.callFlash("SetButtonTextStyle", [css]); +}; +// Public: setButtonDisabled disables/enables the button +SWFUpload.prototype.setButtonDisabled = function (isDisabled) { + this.settings.button_disabled = isDisabled; + this.callFlash("SetButtonDisabled", [isDisabled]); +}; +// Public: setButtonAction sets the action that occurs when the button is clicked +SWFUpload.prototype.setButtonAction = function (buttonAction) { + this.settings.button_action = buttonAction; + this.callFlash("SetButtonAction", [buttonAction]); +}; + +// Public: setButtonCursor changes the mouse cursor displayed when hovering over the button +SWFUpload.prototype.setButtonCursor = function (cursor) { + this.settings.button_cursor = cursor; + this.callFlash("SetButtonCursor", [cursor]); +}; + +/* ******************************* + Flash Event Interfaces + These functions are used by Flash to trigger the various + events. + + All these functions a Private. + + Because the ExternalInterface library is buggy the event calls + are added to a queue and the queue then executed by a setTimeout. + This ensures that events are executed in a determinate order and that + the ExternalInterface bugs are avoided. +******************************* */ + +SWFUpload.prototype.queueEvent = function (handlerName, argumentArray) { + // Warning: Don't call this.debug inside here or you'll create an infinite loop + + if (argumentArray == undefined) { + argumentArray = []; + } else if (!(argumentArray instanceof Array)) { + argumentArray = [argumentArray]; + } + + var self = this; + if (typeof this.settings[handlerName] === "function") { + // Queue the event + this.eventQueue.push(function () { + this.settings[handlerName].apply(this, argumentArray); + }); + + // Execute the next queued event + setTimeout(function () { + self.executeNextEvent(); + }, 0); + + } else if (this.settings[handlerName] !== null) { + throw "Event handler " + handlerName + " is unknown or is not a function"; + } +}; + +// Private: Causes the next event in the queue to be executed. Since events are queued using a setTimeout +// we must queue them in order to garentee that they are executed in order. +SWFUpload.prototype.executeNextEvent = function () { + // Warning: Don't call this.debug inside here or you'll create an infinite loop + + var f = this.eventQueue ? this.eventQueue.shift() : null; + if (typeof(f) === "function") { + f.apply(this); + } +}; + +// Private: unescapeFileParams is part of a workaround for a flash bug where objects passed through ExternalInterface cannot have +// properties that contain characters that are not valid for JavaScript identifiers. To work around this +// the Flash Component escapes the parameter names and we must unescape again before passing them along. +SWFUpload.prototype.unescapeFilePostParams = function (file) { + var reg = /[$]([0-9a-f]{4})/i; + var unescapedPost = {}; + var uk; + + if (file != undefined) { + for (var k in file.post) { + if (file.post.hasOwnProperty(k)) { + uk = k; + var match; + while ((match = reg.exec(uk)) !== null) { + uk = uk.replace(match[0], String.fromCharCode(parseInt("0x" + match[1], 16))); + } + unescapedPost[uk] = file.post[k]; + } + } + + file.post = unescapedPost; + } + + return file; +}; + +// Private: Called by Flash to see if JS can call in to Flash (test if External Interface is working) +SWFUpload.prototype.testExternalInterface = function () { + try { + return this.callFlash("TestExternalInterface"); + } catch (ex) { + return false; + } +}; + +// Private: This event is called by Flash when it has finished loading. Don't modify this. +// Use the swfupload_loaded_handler event setting to execute custom code when SWFUpload has loaded. +SWFUpload.prototype.flashReady = function () { + // Check that the movie element is loaded correctly with its ExternalInterface methods defined + var movieElement = this.getMovieElement(); + + if (!movieElement) { + this.debug("Flash called back ready but the flash movie can't be found."); + return; + } + + this.cleanUp(movieElement); + + this.queueEvent("swfupload_loaded_handler"); +}; + +// Private: removes Flash added fuctions to the DOM node to prevent memory leaks in IE. +// This function is called by Flash each time the ExternalInterface functions are created. +SWFUpload.prototype.cleanUp = function (movieElement) { + // Pro-actively unhook all the Flash functions + try { + if (this.movieElement && typeof(movieElement.CallFunction) === "unknown") { // We only want to do this in IE + this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)"); + for (var key in movieElement) { + try { + if (typeof(movieElement[key]) === "function") { + movieElement[key] = null; + } + } catch (ex) { + } + } + } + } catch (ex1) { + + } + + // Fix Flashes own cleanup code so if the SWFMovie was removed from the page + // it doesn't display errors. + window["__flash__removeCallback"] = function (instance, name) { + try { + if (instance) { + instance[name] = null; + } + } catch (flashEx) { + + } + }; + +}; + + +/* This is a chance to do something before the browse window opens */ +SWFUpload.prototype.fileDialogStart = function () { + this.queueEvent("file_dialog_start_handler"); +}; + + +/* Called when a file is successfully added to the queue. */ +SWFUpload.prototype.fileQueued = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("file_queued_handler", file); +}; + + +/* Handle errors that occur when an attempt to queue a file fails. */ +SWFUpload.prototype.fileQueueError = function (file, errorCode, message) { + file = this.unescapeFilePostParams(file); + this.queueEvent("file_queue_error_handler", [file, errorCode, message]); +}; + +/* Called after the file dialog has closed and the selected files have been queued. + You could call startUpload here if you want the queued files to begin uploading immediately. */ +SWFUpload.prototype.fileDialogComplete = function (numFilesSelected, numFilesQueued, numFilesInQueue) { + this.queueEvent("file_dialog_complete_handler", [numFilesSelected, numFilesQueued, numFilesInQueue]); +}; + +SWFUpload.prototype.uploadStart = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("return_upload_start_handler", file); +}; + +SWFUpload.prototype.returnUploadStart = function (file) { + var returnValue; + if (typeof this.settings.upload_start_handler === "function") { + file = this.unescapeFilePostParams(file); + returnValue = this.settings.upload_start_handler.call(this, file); + } else if (this.settings.upload_start_handler != undefined) { + throw "upload_start_handler must be a function"; + } + + // Convert undefined to true so if nothing is returned from the upload_start_handler it is + // interpretted as 'true'. + if (returnValue === undefined) { + returnValue = true; + } + + returnValue = !!returnValue; + + this.callFlash("ReturnUploadStart", [returnValue]); +}; + + + +SWFUpload.prototype.uploadProgress = function (file, bytesComplete, bytesTotal) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_progress_handler", [file, bytesComplete, bytesTotal]); +}; + +SWFUpload.prototype.uploadError = function (file, errorCode, message) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_error_handler", [file, errorCode, message]); +}; + +SWFUpload.prototype.uploadSuccess = function (file, serverData, responseReceived) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_success_handler", [file, serverData, responseReceived]); +}; + +SWFUpload.prototype.uploadComplete = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_complete_handler", file); +}; + +/* Called by SWFUpload JavaScript and Flash functions when debug is enabled. By default it writes messages to the + internal debug console. You can override this event and have messages written where you want. */ +SWFUpload.prototype.debug = function (message) { + this.queueEvent("debug_handler", message); +}; + + +/* ********************************** + Debug Console + The debug console is a self contained, in page location + for debug message to be sent. The Debug Console adds + itself to the body if necessary. + + The console is automatically scrolled as messages appear. + + If you are using your own debug handler or when you deploy to production and + have debug disabled you can remove these functions to reduce the file size + and complexity. +********************************** */ + +// Private: debugMessage is the default debug_handler. If you want to print debug messages +// call the debug() function. When overriding the function your own function should +// check to see if the debug setting is true before outputting debug information. +SWFUpload.prototype.debugMessage = function (message) { + if (this.settings.debug) { + var exceptionMessage, exceptionValues = []; + + // Check for an exception object and print it nicely + if (typeof message === "object" && typeof message.name === "string" && typeof message.message === "string") { + for (var key in message) { + if (message.hasOwnProperty(key)) { + exceptionValues.push(key + ": " + message[key]); + } + } + exceptionMessage = exceptionValues.join("\n") || ""; + exceptionValues = exceptionMessage.split("\n"); + exceptionMessage = "EXCEPTION: " + exceptionValues.join("\nEXCEPTION: "); + SWFUpload.Console.writeLine(exceptionMessage); + } else { + SWFUpload.Console.writeLine(message); + } + } +}; + +SWFUpload.Console = {}; +SWFUpload.Console.writeLine = function (message) { + var console, documentForm; + + try { + console = document.getElementById("SWFUpload_Console"); + + if (!console) { + documentForm = document.createElement("form"); + document.getElementsByTagName("body")[0].appendChild(documentForm); + + console = document.createElement("textarea"); + console.id = "SWFUpload_Console"; + console.style.fontFamily = "monospace"; + console.setAttribute("wrap", "off"); + console.wrap = "off"; + console.style.overflow = "auto"; + console.style.width = "700px"; + console.style.height = "350px"; + console.style.margin = "5px"; + documentForm.appendChild(console); + } + + console.value += message + "\n"; + + console.scrollTop = console.scrollHeight - console.clientHeight; + } catch (ex) { + alert("Exception: " + ex.name + " Message: " + ex.message); + } +}; diff --git a/admin/javascript/swfupload/swfupload.queue.js b/admin/javascript/swfupload/swfupload.queue.js new file mode 100644 index 00000000..00aef320 --- /dev/null +++ b/admin/javascript/swfupload/swfupload.queue.js @@ -0,0 +1,98 @@ +/* + Queue Plug-in + + Features: + *Adds a cancelQueue() method for cancelling the entire queue. + *All queued files are uploaded when startUpload() is called. + *If false is returned from uploadComplete then the queue upload is stopped. + If false is not returned (strict comparison) then the queue upload is continued. + *Adds a QueueComplete event that is fired when all the queued files have finished uploading. + Set the event handler with the queue_complete_handler setting. + + */ + +var SWFUpload; +if (typeof(SWFUpload) === "function") { + SWFUpload.queue = {}; + + SWFUpload.prototype.initSettings = (function (oldInitSettings) { + return function () { + if (typeof(oldInitSettings) === "function") { + oldInitSettings.call(this); + } + + this.queueSettings = {}; + + this.queueSettings.queue_cancelled_flag = false; + this.queueSettings.queue_upload_count = 0; + + this.queueSettings.user_upload_complete_handler = this.settings.upload_complete_handler; + this.queueSettings.user_upload_start_handler = this.settings.upload_start_handler; + this.settings.upload_complete_handler = SWFUpload.queue.uploadCompleteHandler; + this.settings.upload_start_handler = SWFUpload.queue.uploadStartHandler; + + this.settings.queue_complete_handler = this.settings.queue_complete_handler || null; + }; + })(SWFUpload.prototype.initSettings); + + SWFUpload.prototype.startUpload = function (fileID) { + this.queueSettings.queue_cancelled_flag = false; + this.callFlash("StartUpload", [fileID]); + }; + + SWFUpload.prototype.cancelQueue = function () { + this.queueSettings.queue_cancelled_flag = true; + this.stopUpload(); + + var stats = this.getStats(); + while (stats.files_queued > 0) { + this.cancelUpload(); + stats = this.getStats(); + } + }; + + SWFUpload.queue.uploadStartHandler = function (file) { + var returnValue; + if (typeof(this.queueSettings.user_upload_start_handler) === "function") { + returnValue = this.queueSettings.user_upload_start_handler.call(this, file); + } + + // To prevent upload a real "FALSE" value must be returned, otherwise default to a real "TRUE" value. + returnValue = (returnValue === false) ? false : true; + + this.queueSettings.queue_cancelled_flag = !returnValue; + + return returnValue; + }; + + SWFUpload.queue.uploadCompleteHandler = function (file) { + var user_upload_complete_handler = this.queueSettings.user_upload_complete_handler; + var continueUpload; + + if (file.filestatus === SWFUpload.FILE_STATUS.COMPLETE) { + this.queueSettings.queue_upload_count++; + } + + if (typeof(user_upload_complete_handler) === "function") { + continueUpload = (user_upload_complete_handler.call(this, file) === false) ? false : true; + } else if (file.filestatus === SWFUpload.FILE_STATUS.QUEUED) { + // If the file was stopped and re-queued don't restart the upload + continueUpload = false; + } else { + continueUpload = true; + } + + if (continueUpload) { + var stats = this.getStats(); + if (stats.files_queued > 0 && this.queueSettings.queue_cancelled_flag === false) { + this.startUpload(); + } else if (this.queueSettings.queue_cancelled_flag === false) { + this.queueEvent("queue_complete_handler", [this.queueSettings.queue_upload_count]); + this.queueSettings.queue_upload_count = 0; + } else { + this.queueSettings.queue_cancelled_flag = false; + this.queueSettings.queue_upload_count = 0; + } + } + }; +} \ No newline at end of file diff --git a/admin/javascript/swfupload/swfupload.swf b/admin/javascript/swfupload/swfupload.swf new file mode 100644 index 0000000000000000000000000000000000000000..e3f767031ca8243a5f0b89bc0f154cc5962e01e9 GIT binary patch literal 12787 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 0; + + _el.getElements(_el._childTag).filter(function (item, index) { + /** 把th干掉 */ + return 'tr' != item.get('tag') || 0 == item.getChildren('th').length; + }).each(function (item, index) { + if (_hasEven) { + /** 处理已经选择的选项 */ + if (index % 2) { + item.removeClass('even'); + } else { + item.addClass('even'); + } + + if (item.hasClass('checked') || item.hasClass('checked-even')) { + item.removeClass(index % 2 ? 'checked-even' : 'checked') + .addClass(index % 2 ? 'checked' : 'checked-even'); + } + } + + Typecho.Table.bindEvents(item); + }); + }, + + checkBoxClick: function (event) { + var _el = $(this); + if (_el.getProperty('checked')) { + _el.setProperty('checked', false); + _el._parent.removeClass(_el._parent.hasClass('even') ? 'checked-even' : 'checked'); + Typecho.Table.unchecked(this, _el._parent); + } else { + _el.setProperty('checked', true); + _el._parent.addClass(_el._parent.hasClass('even') ? 'checked-even' : 'checked'); + Typecho.Table.checked(this, _el._parent); + } + }, + + itemMouseOver: function (event) { + if(!Typecho.Table.draggedEl || Typecho.Table.draggedEl == this) { + $(this).addClass('hover'); + + //fix ie + if (Browser.Engine.trident) { + $(this).getElements('.hidden-by-mouse').setStyle('display', 'inline'); + } + } + }, + + itemMouseLeave: function (event) { + if(!Typecho.Table.draggedEl || Typecho.Table.draggedEl == this) { + $(this).removeClass('hover'); + + //fix ie + if (Browser.Engine.trident) { + $(this).getElements('.hidden-by-mouse').setStyle('display', 'none'); + } + } + }, + + itemClick: function (event) { + /** 触发多选框点击事件 */ + if ('undefined' != typeof(event)) { + var _el = $(this).getElement('input[type=checkbox]'), _t = $(event.target); + + if (_el && ('a' != _t.get('tag') + && ('input' != _t.get('tag') || ('text' != _t.get('type') && 'button' != _t.get('type') && 'submit' != _t.get('type'))) + && 'textarea' != _t.get('tag') + && 'label' != _t.get('tag') + && 'img' != _t.get('tag') + && 'button' != _t.get('tag'))) { + _el.fireEvent('click'); + } + } + }, + + itemMouseDown: function (event) { + if (!Typecho.Table.draggedEl) { + Typecho.Table.draggedEl = this; + Typecho.Table.draggedFired = false; + return false; + } + }, + + itemMouseMove: function (event) { + if (Typecho.Table.draggedEl) { + + if (!Typecho.Table.draggedFired) { + Typecho.Table.dragStart(this); + $(this).setStyle('cursor', 'move'); + Typecho.Table.draggedFired = true; + } + + if (Typecho.Table.draggedEl != this) { + /** 从下面进来的 */ + if ($(this).getCoordinates(Typecho.Table.draggedEl).top < 0) { + $(this).inject(Typecho.Table.draggedEl, 'after'); + } else { + $(this).inject(Typecho.Table.draggedEl, 'before'); + } + + if ($(this).hasClass('even')) { + if (!$(Typecho.Table.draggedEl).hasClass('even')) { + $(this).removeClass('even'); + $(Typecho.Table.draggedEl).addClass('even'); + } + + if ($(this).hasClass('checked-even') && + !$(Typecho.Table.draggedEl).hasClass('checked-even')) { + $(this).removeClass('checked-even'); + $(Typecho.Table.draggedEl).addClass('checked-even'); + } + } else { + if ($(Typecho.Table.draggedEl).hasClass('even')) { + $(this).addClass('even'); + $(Typecho.Table.draggedEl).removeClass('even'); + } + + if ($(this).hasClass('checked') && + $(Typecho.Table.draggedEl).hasClass('checked')) { + $(this).removeClass('checked'); + $(Typecho.Table.draggedEl).addClass('checked'); + } + } + + return false; + } + } + }, + + itemMouseUp: function (event) { + if (Typecho.Table.draggedEl) { + var _inputs = Typecho.Table.table.getElements(Typecho.Table.table._childTag + ' input[type=checkbox]'); + var result = ''; + + for (var i = 0; i< _inputs.length; i ++) { + if (result.length > 0) result += '&'; + result += _inputs[i].name + '=' + _inputs[i].value; + } + + if (Typecho.Table.draggedFired) { + $(this).fireEvent('click'); + $(this).setStyle('cursor', ''); + Typecho.Table.dragStop(this, result); + Typecho.Table.draggedFired = false; + Typecho.Table.reset(); + } + + Typecho.Table.draggedEl = null; + return false; + } + }, + + checked: function (input, item) {return false;}, + + unchecked: function (input, item) {return false;}, + + dragStart: function (item) {return false;}, + + dragStop: function (item, result) {return false;}, + + bindButtons: function () { + /** 全选按钮 */ + $(document).getElements('.typecho-table-select-all') + .addEvent('click', function () { + Typecho.Table.table.getElements(Typecho.Table.table._childTag + ' input[type=checkbox]') + .each(function (item) { + if (!item.getProperty('checked')) { + item.fireEvent('click'); + } + }); + }); + + /** 不选按钮 */ + $(document).getElements('.typecho-table-select-none') + .addEvent('click', function () { + Typecho.Table.table.getElements(Typecho.Table.table._childTag + ' input[type=checkbox]') + .each(function (item) { + if (item.getProperty('checked')) { + item.fireEvent('click'); + } + }); + }); + + /** 提交按钮 */ + $(document).getElements('.typecho-table-select-submit') + .addEvent('click', function () { + var _lang = this.get('lang'); + var _c = _lang ? confirm(_lang) : true; + + if (_c) { + var _f = Typecho.Table.table.getParent('form'); + _f.getElement('input[name=do]').set('value', $(this).getProperty('rel')); + _f.submit(); + } + }); + }, + + bindEvents: function (item) { + item.removeEvents(); + + item.addEvents({ + 'mouseover': Typecho.Table.itemMouseOver, + 'mouseleave': Typecho.Table.itemMouseLeave, + 'click': Typecho.Table.itemClick + }); + + if (Typecho.Table.draggable && + Typecho.Table.table.getElements(Typecho.Table.table._childTag + ' input[type=checkbox]').length > 0) { + item.addEvents({ + 'mousedown': Typecho.Table.itemMouseDown, + 'mousemove': Typecho.Table.itemMouseMove, + 'mouseup': Typecho.Table.itemMouseUp + }); + } + } +}; + +Typecho.toggleEl = null; +Typecho.toggleBtn = null; +Typecho.toggleHideWord = null; +Typecho.toggleOpened = false; + +Typecho.toggle = function (sel, btn, showWord, hideWord) { + var el = $(document).getElement(sel); + + if (null != Typecho.toggleBtn && btn != Typecho.toggleBtn) { + $(Typecho.toggleBtn).set('html', Typecho.toggleHideWord); + Typecho.toggleEl.setStyle('display', 'none'); + Typecho.toggleEl.fireEvent('tabHide'); + $(Typecho.toggleBtn).toggleClass('close'); + } + + $(btn).toggleClass('close'); + if ('none' == el.getStyle('display')) { + $(btn).set('html', showWord); + el.setStyle('display', 'block'); + el.fireEvent('tabShow'); + Typecho.toggleOpened = true; + } else { + $(btn).set('html', hideWord); + el.setStyle('display', 'none'); + el.fireEvent('tabHide'); + Typecho.toggleOpened = false; + } + + Typecho.toggleEl = el; + Typecho.toggleBtn = btn; + Typecho.toggleHideWord = hideWord; +}; + +/** 自动保存组件 */ +Typecho.autoSave = new Class({ + + //继承自Options + Implements: [Options], + + //内部选项 + options: { + time: 10, //间隔 + getContentHandle: null, //获取内容函数 + messageElement: null, + leaveMessage: 'leave?', + form: null + }, + + initialize: function (url, options) { + this.setOptions(options); + this.duration = 0; + this.start = false; + this.url = url; + this.rev = 0; + this.saveRev = 0; + + window.onbeforeunload = this.leaveListener.bind(this); + $(this.options.form).getElements('.submit button').addEvent('mousedown', (function () { + this.saveRev = this.rev; + }).bind(this)); + + //时间间隔计数器 + (function () { + if (this.start) { + this.duration ++; + } + + if (this.duration > this.options.time) { + this.start = false; + this.onContentChange(); + } + }).periodical(1000, this); + }, + + //离开页面监听器 + leaveListener: function () { + if (this.saveRev != this.rev) { + return this.options.leaveMessage; + } + }, + + //内容改变监听器 + onContentChange: function () { + this.start = true; + this.rev ++; + + if (this.duration > this.options.time) { + + var o = {text: this.options.getContentHandle()}; + this.start = false; + this.duration = 0; + this.saveText = o.text; + this.saveRev = this.rev; + $(this.options.form).getElement('input[name=do]').set('value', 'save'); + + new Request.JSON({ + url: this.url, + + onSuccess: (function (responseJSON) { + if (responseJSON.success) { + $(this.options.form).getElement('input[name=cid]').set('value', responseJSON.cid); + } + + if (null != this.options.messageElement) { + $(this.options.messageElement).set('html', responseJSON.message); + $(this.options.messageElement).highlight('#ff0000'); + } + + }).bind(this) + }).send($(this.options.form).toQueryString() + '&' + Hash.toQueryString(o)); + } + } +}); + +/** 文本编辑器插入文字 */ +Typecho.textarea = new Class({ + + //继承自Options + Implements: [Options], + + //内部选项 + options: { + resizeAble: false, //能否调整大小 + resizeClass: 'size-btn', //调整大小的class名 + resizeUrl: '', //调整大小后的请求地址 + autoSave: false, + autoSaveMessageElement: null, + autoSaveLeaveMessage: 'leave?', + autoSaveTime: 60, + minSize: 30 + }, + + initialize: function (el, options) { + this.textarea = $(document).getElement(el); + this.range = null; + this.setOptions(options); + + if (this.options.autoSave) { + this.autoSave = new Typecho.autoSave(this.textarea.getParent('form').getProperty('action'), { + time: this.options.autoSaveTime, + getContentHandle: this.getContent.bind(this), + messageElement: this.options.autoSaveMessageElement, + leaveMessage: this.options.autoSaveLeaveMessage, + form: this.textarea.getParent('form') + }); + } + + var recordRangeCallback = this.recordRange.bind(this); + + this.textarea.addEvents({ + mouseup: recordRangeCallback, + keyup: (function () { + recordRangeCallback(); + if (this.options.autoSave) { + this.autoSave.onContentChange(); + } + }).bind(this) + }); + + if (this.options.resizeAble) { + this.makeResizeAble(); + } + }, + + //记录当前位置 + recordRange: function () { + this.range = this.textarea.getSelectedRange(); + }, + + //设置当前编辑域为可调整大小 + makeResizeAble: function () { + this.resizeOffset = this.textarea.getStyle('height') ? + this.textarea.getSize().y - parseInt(this.textarea.getStyle('height')) : 0; + this.resizeMouseY = 0; + this.lastMouseY = 0; + + //是否在调整区域按下鼠标 + this.isResizePressed = false; + + //创建调整区 + var cross = new Element('span', { + + 'class': this.options.resizeClass, + + 'events': { + mousedown: this.resizeMouseDown.bind(this) + } + }).inject(this.textarea, 'after'); + + //截获事件 + $(document).addEvents({ + mouseup: this.resizeMouseUp.bind(this), + mousemove: this.resizeMouseMove.bind(this) + }); + + //监听事件 + this.resizeListener.periodical(10, this); + }, + + //监听调整区 + resizeListener: function () { + if (this.isResizePressed) { + var resize = (0 == this.lastMouseY) ? 0 : this.resizeMouseY - this.lastMouseY; + this.lastMouseY = this.resizeMouseY; + + var finalY = this.textarea.getSize().y - this.resizeOffset + resize; + + if (finalY > this.options.minSize) { + this.textarea.setStyle('height', finalY); + } + } + }, + + //按下调整区 + resizeMouseDown: function (e) { + this.isResizePressed = true; + e.stop(); + }, + + //松开调整区 + resizeMouseUp: function (e) { + if (this.isResizePressed) { + this.isResizePressed = false; + + var size = this.textarea.getSize().y - this.resizeOffset; + + //发送ajax请求 + new Request({ + 'method': 'post', + 'url': this.options.resizeUrl + }).send('size=' + size + '&do=editorResize'); + + this.resizeMouseY = 0; + this.lastMouseY = 0; + } + }, + + //移动调整区 + resizeMouseMove: function (e) { + if (this.isResizePressed) { + this.resizeMouseY = e.page.y; + } + }, + + //获取内容 + getContent: function () { + return this.textarea.get('value'); + }, + + //设置当前选定的内容 + setContent: function (before, after) { + var range = (null == this.range) ? this.textarea.getSelectedRange() : this.range, + text = this.textarea.get('value'), + selectedText = text.substr(range.start, range.end - range.start), + scrollTop = this.textarea.scrollTop; + + //alert(textarea.selectionStart); + + this.textarea.set('value', text.substr(0, range.start) + before + selectedText + + after + text.substr(range.end)); + + (function () { + this.textarea.scrollTop = scrollTop; + }).bind(this).delay(0); + + this.textarea.focus(); + this.textarea.selectRange(range.start, range.end + before.length + after.length); + } +}); + +/** 自动完成 */ +Typecho.autoComplete = function (match, token) { + var _sp = ',', _index, _cur = -1, _hoverList = false, _remember = 0, + _el = $(document).getElement(match).setProperty('autocomplete', 'off'); + + //创建搜索索引 + var _build = function () { + var _len = 0, _val = _el.get('value'); + _index = []; + + if (_val.length > 0) { + _val.split(_sp).each(function (item, index) { + var _final = _len + item.length, + _l = 0, _r = 0; + + item = item.replace(/(\s*)(.*)(\s*)/, function (v, a, b, c) { + _l = a.length; + _r = c.length; + return b; + }); + + _index[index] = { + txt: item, + start: index*1 + _len, + end: index*1 + _final, + offsetStart: index*1 + _len + _l, + offsetEnd: index*1 + _final - _r + }; + + _len = _final; + }); + } + }; + + //获取当前keyword + var _keyword = function (s, pos) { + return pos ? pos.txt.substr(0, s - pos.offsetStart) : ''; + }; + + //搜索token + var _match = function (keyword) { + var matchCase = keyword.length > 0 ? token.filter(function (item) { + return 0 == item.indexOf(keyword); + }) : []; + + var matchOther = keyword.length > 0 ? token.filter(function (item) { + return (0 == item.toLowerCase().indexOf(keyword.toLowerCase()) && !matchCase.contains(item)); + }) : []; + + return matchCase.extend(matchOther); + }; + + //选择特定元素 + var _select = function (s, pos) { + _el.selectRange(pos.offsetStart > s ? pos.offsetStart : s, pos.offsetEnd); + }; + + //定位 + var _location = function (s) { + for (var i in _index) { + if (s >= _index[i].start && s <= _index[i].end) { + return _index[i]; + } + } + + return false; + }; + + //替换 + var _replace = function (w, s, e) { + var _val = _el.get('value'); + return _el.set('value', _val.substr(0, s) + w + _val.substr(e)); + }; + + //显示 + var _show = function (key, list) { + _cur = -1; + _hoverList = false; + + var _ul = new Element('ul', { + 'class': 'autocompleter-choices', + 'styles': { + 'width': _el.getSize().x - 2, + 'left': _el.getPosition().x, + 'top': _el.getPosition().y + _el.getSize().y + } + }); + + list.each(function (item, index) { + + _ul.grab(new Element('li', { + 'rel': index, + 'html': '' + item.substr(0, key.length) + + '' + item.substr(key.length), + 'events': { + + 'mouseover': function () { + _hoverList = true; + this.addClass('autocompleter-hover'); + }, + + 'mouseleave': function () { + _hoverList = false; + this.removeClass('autocompleter-hover'); + }, + + 'click': function () { + var _i = parseInt(this.get('rel')); + var _start = _remember > 0 ? _remember : _el.getSelectedRange().start, + _pos = _location(_start); + + _replace(list[_i], _pos.offsetStart, _pos.offsetEnd); + _build(); + + _pos = _location(_start); + _el.selectRange(_pos.offsetEnd, _pos.offsetEnd); + _hide(); + } + } + })); + }); + + $(document).getElement('body').grab(_ul); + }; + + var _hide = function () { + var _e = $(document).getElement('.autocompleter-choices'); + + if (_e) { + _e.destroy(); + _hoverList = false; + } + }; + + _build(); + + var _k, _l; + + //绑定事件 + _el.addEvents({ + + 'mouseup': function (e) { + var _start = _el.getSelectedRange().start, + _pos = _location(_start); + _hide(); + _select(_start, _pos); + this.fireEvent('keyup', e); + + _remember = _el.getSelectedRange().end; + + e.stop(); + return false; + }, + + 'blur': function () { + if (!_hoverList) { + _hide(); + } + }, + + 'keydown': function (e) { + _build(); + var _start = _el.getSelectedRange().start, + _pos = _location(_start); + + _remember = _el.getSelectedRange().end; + + switch (e.key) { + case 'up': + + if (_l.length > 0 && _cur >= 0) { + if (_cur < _l.length) { + $(document).getElement('.autocompleter-choices li[rel=' + _cur + ']').removeClass('autocompleter-selected'); + } + + if (_cur > 0) { + _cur --; + } else { + _cur = _l.length - 1; + } + + $(document).getElement('.autocompleter-choices li[rel=' + _cur + ']').addClass('autocompleter-selected'); + _replace(_l[_cur], _pos.offsetStart, _pos.offsetEnd); + _build(); + + _pos = _location(_start); + _select(_start, _pos); + } + + e.stop(); + return false; + + case 'down': + + if (_l.length > 0 && _cur < _l.length) { + if (_cur >= 0) { + $(document).getElement('.autocompleter-choices li[rel=' + _cur + ']').removeClass('autocompleter-selected'); + } + + if (_cur < _l.length - 1) { + _cur ++; + } else { + _cur = 0; + } + + $(document).getElement('.autocompleter-choices li[rel=' + _cur + ']').addClass('autocompleter-selected'); + _replace(_l[_cur], _pos.offsetStart, _pos.offsetEnd); + _build(); + + _pos = _location(_start); + _select(_start, _pos); + } + + e.stop(); + return false; + + case 'enter': + _hide(); + _el.selectRange(_pos.offsetEnd, _pos.offsetEnd); + e.stop(); + return false; + + default: + break; + } + }, + + 'keyup': function (e) { + + _build(); + var _start = _el.getSelectedRange().start, + _pos = _location(_start); + + _remember = _el.getSelectedRange().end; + + switch (e.key) { + + case 'left': + case 'right': + case 'backspace': + case 'delete': + case 'esc': + + _hide(); + e.key = 'a'; + this.fireEvent('keyup', e, 1000); + break; + + case 'enter': + return false; + + case 'up': + case 'down': + return false; + + case 'space': + default: + _hide(); + _k = _keyword(_start, _pos); + _l = _match(_k); + + if (_l.length > 0) { + + /* + if (0 == _l[0].indexOf(_k) && 'undefined' == typeof(e.shoot)) { + //_replace(_l[0], _pos.offsetStart, _pos.offsetEnd); + _build(); + _pos = _location(_start); + } + */ + + _select(_start, _pos); + _show(_k, _l); + } + + break; + } + } + + }); +}; + +Typecho.preview = { + + block: 'p|pre|div|blockquote|form|ul|ol|dd|table|h1|h2|h3|h4|h5|h6', + + uniqueId: 0, + + blockKeys: [], + + blockValues: [], + + values: [], + + boundary: '', + + keys: [], + + pos: 0, + + prefix: 'http://segmentfault.com/img/', + + makeUniqueId: function () { + var id = (this.uniqueId ++) + ''; + + for (var i = 0; i < 6 - id.length; i ++) { + id = '0' + id; + } + + return ':' + id; + }, + + cutByBlock: function (text) { + var space = "( | )"; + return text.replace(new RegExp(space + '*\n' + space + '*', 'ig'), '\n') + .replace(/\n{2,}/g, '

') + .replace(/\n/g, '
') + .replace(/(

)?\s*\s*(<\/p>)?/ig, '') + .replace(new RegExp('

' + space + '*

', 'ig'), ''); + }, + + trim: function (str, charlist) { + + var whitespace, l = 0, + i = 0; + str += ''; + + if (!charlist) { + // default list + whitespace = " \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000"; + } else { + // preg_quote custom list + charlist += ''; + whitespace = charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '$1'); + } + + l = str.length; + for (i = 0; i < l; i++) { + if (whitespace.indexOf(str.charAt(i)) === -1) { + str = str.substring(i); + break; + } + } + + l = str.length; + for (i = l - 1; i >= 0; i--) { + if (whitespace.indexOf(str.charAt(i)) === -1) { + str = str.substring(0, i + 1); + break; + } + } + + return whitespace.indexOf(str.charAt(0)) === -1 ? str : ''; + }, + + ltrim: function (str, charlist) { + charlist = !charlist ? ' \\s\u00A0' : (charlist + '').replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '$1'); + var re = new RegExp('^[' + charlist + ']+', 'g'); + return (str + '').replace(re, ''); + }, + + arrayReverse: function (array, preserve_keys) { + var arr_len = array.length, + newkey = 0, + tmp_arr = {}, + key = ''; + preserve_keys = !! preserve_keys; + + for (key in array) { + newkey = arr_len - key - 1; + tmp_arr[preserve_keys ? key : newkey] = array[key]; + } + + return tmp_arr; + }, + + pregReplaceCallback: function (reg, callback, subject, limit){ + limit = !limit?-1:limit; + + var rs = null, + res = [], + x = 0, + ret = subject; + + if (limit === -1) { + var tmp = []; + + do{ + tmp = reg.exec(subject); + if(tmp !== null){ + res.push(tmp); + } + } while (tmp !== null); + } else { + res.push(reg.exec(subject)); + } + + for (x = res.length-1; x > -1; x--) {//explore match + ret = ret.replace(res[x][0],callback(res[x])); + } + + return ret; + }, + + pregMatchAll: function (pattern, text) { + var result, list = []; + while (null != (result = pattern.exec(text))) { + list.push(result); + } + + return list; + }, + + strrpos: function (haystack, needle, offset) { + var i = -1; + if (offset) { + i = offset > 0 ? (haystack + '').slice(offset) : (haystack + '').slice(0, offset); + i = i.lastIndexOf(needle); // strrpos' offset indicates starting point of range till end, + + if (i !== -1) { + i += offset > 0 ? offset : 0; + } + } else { + i = (haystack + '').lastIndexOf(needle); + } + + return i >= 0 ? i : false; + }, + + substrReplace: function (str, replace, start, length) { + if (start < 0) { // start position in str + start = start + str.length; + } + length = length !== undefined ? length : str.length; + if (length < 0) { + length = length + str.length - start; + } + return str.slice(0, start) + replace.substr(0, length) + replace.slice(length) + str.slice(start + length); + }, + + htmlspecialchars: function (string, quote_style, charset, double_encode) { + + var optTemp = 0, + i = 0, + noquotes = false; + if (typeof quote_style === 'undefined' || quote_style === null) { + quote_style = 2; + } + string = string.toString(); + if (double_encode !== false) { // Put this first to avoid double-encoding + string = string.replace(/&/g, '&'); + } + string = string.replace(//g, '>'); + + var OPTS = { + 'ENT_NOQUOTES': 0, + 'ENT_HTML_QUOTE_SINGLE': 1, + 'ENT_HTML_QUOTE_DOUBLE': 2, + 'ENT_COMPAT': 2, + 'ENT_QUOTES': 3, + 'ENT_IGNORE': 4 + }; + + if (quote_style === 0) { + noquotes = true; + } + + if (typeof quote_style !== 'number') { // Allow for a single string or an array of string flags + quote_style = [].concat(quote_style); + for (i = 0; i < quote_style.length; i++) { + // Resolve string input to bitwise e.g. 'PATHINFO_EXTENSION' becomes 4 + if (OPTS[quote_style[i]] === 0) { + noquotes = true; + } else if (OPTS[quote_style[i]]) { + optTemp = optTemp | OPTS[quote_style[i]]; + } + } + quote_style = optTemp; + } + + if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) { + string = string.replace(/'/g, '''); + } + + if (!noquotes) { + string = string.replace(/"/g, '"'); + } + + return string; + }, + + parseUrl: function (str) { + + var key = ['source', 'scheme', 'authority', 'userInfo', 'user', 'pass', 'host', 'port', + 'relative', 'path', 'directory', 'file', 'query', 'fragment'], + parser = /^(?:([^:\/?#]+):)?(?:\/\/()(?:(?:()(?:([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?()(?:(()(?:(?:[^?#\/]*\/)*)()(?:[^?#]*))(?:\?([^#]*))?(?:#(.*))?)/; + + var m = parser.exec(str), + uri = {}, + i = 14; + + while (i--) { + if (m[i]) { + uri[key[i]] = m[i]; + } + } + + delete uri.source; + return uri; + }, + + buildUrl: function (params) { + return (params.scheme ? params.scheme + '://' : '') + + (params.user ? params.user + (params.pass ? ':' + params.pass : '') + '@' : '') + + (params.host ? params.host : '') + + (params.port ? ':' + params.port : '') + + (params.path ? params.path : '') + + (params.query ? '?' + params.query : '') + + (params.fragment ? '#' + params.fragment : ''); + }, + + fixPragraph: function (text) { + text = this.trim(text); + + if (null == text.match(new RegExp('^<(' + this.block + ')(\\s|>)', 'i'))) { + text = '

' + text; + } + + if (null == text.match(new RegExp('$', 'i'))) { + text = text + '

'; + } + + return text; + }, + + replaceBlockCallback: function (matches) { + var tagMatch = '|' + matches[1] + '|', + text = matches[4], key = ''; + + if ('|li|dd|dt|td|p|a|span|cite|strong|sup|sub|small|del|u|i|b|h1|h2|h3|h4|h5|h6|' + .indexOf(tagMatch) >= 0) { + text = Typecho.preview.trim(text).replace(/\n/g, '
'); + } else if ('|div|blockquote|form|'.indexOf(tagMatch) >= 0) { + text = Typecho.preview.cutByBlock(text); + if (text.indexOf('

') >= 0) { + text = Typecho.preview.fixPragraph(text); + } + } + + if ('|a|span|cite|strong|sup|sub|small|del|u|i|b|'.indexOf(tagMatch)) { + key = ''; + } else { + key = ''; + } + + Typecho.preview.blockKeys.push(key); + Typecho.preview.blockValues.push('<' + matches[1] + matches[3] + '>' + text + ''); + + return key; + }, + + autop: function (text) { + this.uniqueId = 0; + this.blockKeys = []; + this.blockValues = []; + + text = this.trim(text).replace(/<\/p>\s+\s*/ig, '
'); + + var foundTagCount = 0, textLength = text.length, + uniqueIdKeys = [], uniqueIdValues = []; + + list = this.pregMatchAll(new RegExp('', 'ig'), text); + + for (var i = 0; i < list.length; i++) { + var matches = list[i], tag = matches[1], + leftOffset = matches.index - textLength, + posSingle = this.strrpos(text, '<' + tag + '>', leftOffset), + posFix = this.strrpos(text, '<' + tag + ' ', leftOffset) + pos = false; + + if (false === posSingle && false !== posFix) { + pos = Math.max(posSingle, posFix); + } else if (false === posSingle && false !== posFix) { + pos = posFix; + } else if (false !== posSingle && false === posFix) { + pos = posSingle; + } + + if (false !== pos) { + var uniqueId = this.makeUniqueId(); + uniqueIdKeys.push(uniqueId); + uniqueIdValues.push(tag); + tagLength = tag.length; + + text = this.substrReplace(text, uniqueId, pos + 1 + tagLength, 0); + text = this.substrReplace(text, uniqueId, matches.index + 7 + foundTagCount * 10 + + tagLength, 0); + + foundTagCount ++; + } + } + + for (var i = 0; i < uniqueIdKeys.length; i ++) { + text = this.pregReplaceCallback(new RegExp('<(' + uniqueIdValues[i] + ')(' + uniqueIdKeys[i] + + ')([^>]*)>([\\s\\S]*)', 'ig'), this.replaceBlockCallback, text , 1); + } + + text = this.cutByBlock(text); + var blockKeys = this.arrayReverse(this.blockKeys), + blockValues = this.arrayReverse(this.blockValues); + + for (var i = 0; i < this.blockKeys.length; i ++) { + text = text.replace(blockKeys[i], blockValues[i]); + } + + return this.fixPragraph(text); + } +}; + diff --git a/admin/login.php b/admin/login.php new file mode 100644 index 00000000..9858c4cc --- /dev/null +++ b/admin/login.php @@ -0,0 +1,60 @@ + +

+
+ +
+
+ + diff --git a/admin/manage-comments.php b/admin/manage-comments.php new file mode 100644 index 00000000..fbba2fd1 --- /dev/null +++ b/admin/manage-comments.php @@ -0,0 +1,414 @@ + +
+
+ +
+
+ + +
+
+

: + , +     + : + , + , + , + get('status')): ?>, + + +

+ +
+
+ +
+
    + have()): ?> + next()): ?> +
  • +
    + +
    +
    +
    +
    + gravatar(); ?> +
    + +
    + + author(true); ?> + mail): ?> + | + mail(); ?> + + ip): ?> + | + ip(); ?> + +
    + +
    + content(); ?> +
    +
    + +
    +
    + status): ?> + + + + + | + status): ?> + + + + + | + status): ?> + + + + + | + + status && 'comment' == $comments->type): ?> + | + + + | + +
    +
    + dateWord(); ?> +    + title(); ?> +
    +
    +
    +
  • + + +
  • +
    +
  • + +
+ + cid)): ?> + + +
+ + have()): ?> +
+
+
    + pageNav(); ?> +
+
+
+ + +
+
+
+
+ + + diff --git a/admin/manage-medias.php b/admin/manage-medias.php new file mode 100644 index 00000000..614c09b0 --- /dev/null +++ b/admin/manage-medias.php @@ -0,0 +1,110 @@ + + +to($attachments); ?> +
+
+ +
+
+ +
+
+

: + , +     + : + +

+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + have()): ?> + next()): ?> + attachment->mime); ?> + alt(' class="even"', ''); ?> id="theId(); ?>"> + + + + + + + + + + + + + + + + +
commentsNum(); ?>title(); ?> + view + author(); ?> + parentPost->cid): ?> + parentPost->title(); ?> + + + + dateWord(); ?>
+ +
+ + have()): ?> +
+
+
    + pageNav(); ?> +
+
+
+ + +
+
+
+
+ + diff --git a/admin/manage-metas.php b/admin/manage-metas.php new file mode 100644 index 00000000..3d9a10bd --- /dev/null +++ b/admin/manage-metas.php @@ -0,0 +1,189 @@ + + +
+
+ +
+
+
    + type) || 'category' == $request->get('type')): ?> class="current"> + get('type')): ?> class="current"> +
+ + type) || 'category' == $request->get('type')): ?> + to($categories); ?> +
+
+

: + , +     + : + , + , + + +

+
+ + + + + + + + + + + + + + + + + + + + + + have()): ?> + next()): ?> + alt(' class="even"', ''); ?> id="theId(); ?>"> + + + + + + + + + + + + + + +
name(); ?> + view + slug(); ?> + defaultCategory == $categories->mid): ?> + + + + + count(); ?>
+ +
+ + to($tags); ?> +
+
+

: + , +     + : + , + , + + +

+
+ +
    + have()): ?> + next()): ?> +
  • + + name(); ?> +
  • + + +
    + +
+ +
+ + +
+
+ type) || 'category' == $request->get('type')): ?> + form()->render(); ?> + + form()->render(); ?> + +
+
+
+
+ + + + + diff --git a/admin/manage-pages.php b/admin/manage-pages.php new file mode 100644 index 00000000..dfbd38c3 --- /dev/null +++ b/admin/manage-pages.php @@ -0,0 +1,122 @@ + +
+
+ +
+
+
+
+

: + , +     + : + +

+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + to($pages); ?> + have()): ?> + next()): ?> + alt(' class="even"', ''); ?> id="theId(); ?>"> + + + status): ?> colspan="2">title(); ?> + status): ?> + + + + + + + + + + + + + + + +
commentsNum(); ?> + + + status): ?> + view + + slug(); ?>author(); ?> + hasSaved): ?> + + modified); ?> + word()); ?> + + + dateWord(); ?> + +
+ +
+ +
+
+
+
+ + + +status) || 'publish' == $request->get('status')): ?> + + + + diff --git a/admin/manage-posts.php b/admin/manage-posts.php new file mode 100644 index 00000000..68bf55a1 --- /dev/null +++ b/admin/manage-posts.php @@ -0,0 +1,135 @@ + +
+
+ +
+
+
+
+

: + , +     + : + +

+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + to($posts); ?> + have()): ?> + next()): ?> + alt(' class="even"', ''); ?> id="theId(); ?>"> + + + status && 'waiting' != $posts->status && 'private' != $posts->status && !$posts->password): ?> colspan="2"> + title(); ?> + status || 'waiting' == $posts->status || 'private' == $posts->status || $posts->password): ?> + + + + + + + + + + + + + + +
commentsNum(); ?> + status ? _e('草稿') : ('waiting' == $posts->status ? _e('待审核') : ('private' == $posts->status ? _e('私密') : _e(''))); ?> password ? _e('密码') : _e(''); ?> + + status): ?> + view + + author(); ?>categories; $length = count($categories); ?> + $val): ?> + adminUrl('manage-posts.php?category=' . $val['mid'] + . (isset($request->uid) ? '&uid=' . $request->uid : '') + . (isset($request->status) ? '&status=' . $request->status : '')); + echo '">' . $val['name'] . '' . ($key < $length - 1 ? ', ' : ''); ?> + + + hasSaved): ?> + + modified); ?> + word()); ?> + + + dateWord(); ?> + +
+ +
+ + have()): ?> +
+
+
    + pageNav(); ?> +
+
+
+ + +
+
+
+
+ + diff --git a/admin/manage-users.php b/admin/manage-users.php new file mode 100644 index 00000000..f60f35c1 --- /dev/null +++ b/admin/manage-users.php @@ -0,0 +1,109 @@ + +
+
+ +
+
+
+
+

+ : + , + ,    + : + +

+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + to($users); ?> + next()): ?> + alt(' class="even"', ''); ?> id="user-uid(); ?>"> + + + + + + + + + + +
name(); ?>screenName(); ?> + view + mail): ?>mail(); ?>group) { + case 'administrator': + _e('管理员'); + break; + case 'editor': + _e('编辑'); + break; + case 'contributor': + _e('贡献者'); + break; + case 'subscriber': + _e('关注者'); + break; + case 'visitor': + _e('访问者'); + break; + default: + break; + } ?>postsNum(); ?>
+ +
+ + have()): ?> +
+
+
    + pageNav(); ?> +
+
+
+ + +
+
+
+
+ + diff --git a/admin/media.php b/admin/media.php new file mode 100644 index 00000000..f1642b1f --- /dev/null +++ b/admin/media.php @@ -0,0 +1,186 @@ +to($attachment); +?> + +
+
+ +
+
+
+ attachment->isImage): ?> + <?php $attachment->attachment->name(); ?> + + +
+
    + attachment->mime); ?> +
  • attachment->name(); ?> attachment->size / 1024)); ?> Kb
  • +
  • + +
  • +
+
+
+
+
+ form()->render(); ?> +
+
+
+
+ + + + + + diff --git a/admin/menu.php b/admin/menu.php new file mode 100644 index 00000000..cf9e82e3 --- /dev/null +++ b/admin/menu.php @@ -0,0 +1,8 @@ + +
+
+ output(); ?> +
+

navBar(); _e('欢迎'); ?>, screenName(); ?> +

+
diff --git a/admin/options-discussion.php b/admin/options-discussion.php new file mode 100644 index 00000000..d17183db --- /dev/null +++ b/admin/options-discussion.php @@ -0,0 +1,22 @@ + + +
+
+ +
+
+ form()->render(); ?> +
+
+
+
+ + diff --git a/admin/options-general.php b/admin/options-general.php new file mode 100644 index 00000000..3ff16eff --- /dev/null +++ b/admin/options-general.php @@ -0,0 +1,22 @@ + + +
+
+ +
+
+ form()->render(); ?> +
+
+
+
+ + diff --git a/admin/options-permalink.php b/admin/options-permalink.php new file mode 100644 index 00000000..e9d1fbf2 --- /dev/null +++ b/admin/options-permalink.php @@ -0,0 +1,39 @@ + + +
+
+ +
+
+ form()->render(); ?> +
+
+
+
+ + + + + + diff --git a/admin/options-plugin.php b/admin/options-plugin.php new file mode 100644 index 00000000..e31349a9 --- /dev/null +++ b/admin/options-plugin.php @@ -0,0 +1,22 @@ + + +
+
+ +
+
+ config()->render(); ?> +
+
+
+
+ + diff --git a/admin/options-reading.php b/admin/options-reading.php new file mode 100644 index 00000000..383c45d3 --- /dev/null +++ b/admin/options-reading.php @@ -0,0 +1,22 @@ + + +
+
+ +
+
+ form()->render(); ?> +
+
+
+
+ + diff --git a/admin/options-theme.php b/admin/options-theme.php new file mode 100644 index 00000000..add5ad6b --- /dev/null +++ b/admin/options-theme.php @@ -0,0 +1,27 @@ + + +
+
+ +
+
    +
  • +
  • +
  • +
+
+ config()->render(); ?> +
+
+
+
+ + diff --git a/admin/page-title.php b/admin/page-title.php new file mode 100644 index 00000000..c911edd0 --- /dev/null +++ b/admin/page-title.php @@ -0,0 +1,18 @@ + +have() && in_array($notice->noticeType, array('success', 'notice', 'error'))): ?> + + +
+
+

title; ?>addLink)) { + echo "addLink}\">" . _t("新增") . ""; + } + ?>

+

+
+
diff --git a/admin/plugins.php b/admin/plugins.php new file mode 100644 index 00000000..65d50793 --- /dev/null +++ b/admin/plugins.php @@ -0,0 +1,144 @@ + +
+
+ +
+
+ to($activatedPlugins); ?> + have()): ?> +
+ + + + + + + + + + + + + + + + + + + + + next()): ?> + alt(' class="even"', ''); ?> id="plugin-name(); ?>"> + + + + + + + + + + activatedPlugins)): ?> + activatedPlugins as $key => $val): ?> + + + + + + + + + + +
title(); ?> + dependence): ?> + <?php _e('%s 无法在此版本的typecho下正常工作', $activatedPlugins->title); ?> + + description(); ?>version(); ?>homepage) ? $activatedPlugins->author : '' . $activatedPlugins->author . ''; ?> + activate || $activatedPlugins->deactivate || $activatedPlugins->config || $activatedPlugins->personalConfig): ?> + activated): ?> + config): ?> + + | + + + + + + + + +
+ + + to($deactivatedPlugins); ?> + have() || !$activatedPlugins->have()): ?> +
+ + + + + + + + + + + + + + + + + + + + + have()): ?> + next()): ?> + alt(' class="even"', ''); ?> id="plugin-name(); ?>"> + + + + + + + + + + + + + + +
title(); ?>description(); ?>version(); ?>homepage) ? $deactivatedPlugins->author : '' . $deactivatedPlugins->author . ''; ?> + activate || $deactivatedPlugins->deactivate || $deactivatedPlugins->config || $deactivatedPlugins->personalConfig): ?> + activated): ?> + config): ?> + + | + + + + + + +
+ + +
+
+
+
+ + diff --git a/admin/profile.php b/admin/profile.php new file mode 100644 index 00000000..46c8d17d --- /dev/null +++ b/admin/profile.php @@ -0,0 +1,46 @@ + + +
+
+ +
+
+

+ mail) . '?s=50&r=X' . + '&d=" alt="' . $user->screenName . '" width="50" height="50" />'; ?> + name(); ?>(screenName(); ?>) +

+

%s 篇 Blog,并有 %s 条关于你的评论在已设定的 %s 个分类中.', + $stat->myPublishedPostsNum, $stat->myPublishedCommentsNum, $stat->categoriesNum); ?>

+

logged > 0) { + _e('最后登录: %s', Typecho_I18n::dateWord($user->logged + $options->timezone, $options->gmtTime + $options->timezone)); + } + ?>

+ pass('contributor', true)): ?> +

+ optionsForm()->render(); ?> + + personalFormList(); ?> +

+ passwordForm()->render(); ?> +
+
+ profileForm()->render(); ?> +
+
+
+
+ +bottom(); +include 'footer.php'; +?> diff --git a/admin/register.php b/admin/register.php new file mode 100644 index 00000000..234d7569 --- /dev/null +++ b/admin/register.php @@ -0,0 +1,75 @@ + +
+
+ +
+
+ + diff --git a/admin/theme-editor.php b/admin/theme-editor.php new file mode 100644 index 00000000..1107060c --- /dev/null +++ b/admin/theme-editor.php @@ -0,0 +1,62 @@ +to($files); +?> + +
+
+ +
+
+ + +
+
+
    + next()): ?> + current): ?> class="current"> + file(); ?> + +
+
+
+ +
+ currentIsWriteable()): ?> + + + + +
+ +
+
+
+
+
+
+
+
+
+ +bottom($files); +include 'footer.php'; +?> diff --git a/admin/themes.php b/admin/themes.php new file mode 100644 index 00000000..5e8df617 --- /dev/null +++ b/admin/themes.php @@ -0,0 +1,131 @@ + + +
+
+ +
+
+
    +
  • +
  • + +
  • + +
+ + + + + + + to($themes); ?> + next()): ?> + alt('', ''); ?> + length - $themes->sequence >= ($themes->length % 2 ? 1 : 2)); + ?> + + sequence; ?> + alt('', ''); ?> + + + + +
+
+ +
+
+

title ? $themes->title() : $themes->name(); ?>

+ author): ?>: homepage): ?>author(); ?>homepage): ?>    + version): ?>: version() ?> + +

description); ?>

+
+ theme != $themes->name): ?> + + + +
 
+
+
+
+
+ + + + + + diff --git a/admin/upgrade.php b/admin/upgrade.php new file mode 100644 index 00000000..5627503d --- /dev/null +++ b/admin/upgrade.php @@ -0,0 +1,36 @@ + + +
+
+ +
+
+
+
+
+
+
    +
  • +
  • %s 升级到 %s', $options->version, Typecho_Common::VERSION); ?>
  • +
  • +
+
+
+

+
+
+
+
+
+
+ + diff --git a/admin/user.php b/admin/user.php new file mode 100644 index 00000000..edefb35e --- /dev/null +++ b/admin/user.php @@ -0,0 +1,23 @@ + + +
+
+ +
+
+ form()->render(); ?> +
+
+
+
+ + diff --git a/admin/welcome.php b/admin/welcome.php new file mode 100644 index 00000000..f01b07ad --- /dev/null +++ b/admin/welcome.php @@ -0,0 +1,40 @@ + + +
+
+ +
+
+
+
+
title); ?>
+
+
    +
  • +
  • 1.
  • + pass('contributor', true)): ?> +
  • 2.
  • +
  • 3.
  • + +
  • 2.
  • + +
+
+
+

+
+
+
+
+
+
+ + diff --git a/admin/write-js.php b/admin/write-js.php new file mode 100644 index 00000000..87aba01c --- /dev/null +++ b/admin/write-js.php @@ -0,0 +1,89 @@ +trigger($plugged)->editorPreview(); ?> + + + + + diff --git a/admin/write-page.php b/admin/write-page.php new file mode 100644 index 00000000..c5637413 --- /dev/null +++ b/admin/write-page.php @@ -0,0 +1,141 @@ +to($page); +?> +
+
+ +
+
+
+
+ +

+ +

+ content($page); ?> +

+ + + + + + + + + + + +

+
+ +
    +
  • +
    + +

    +

    +
    + +

    + +

    +

    + advanceOptionLeft($page); ?> +
    +
    + +
      +
    • allow('comment')): ?>checked="true" /> +
    • +
    • allow('ping')): ?>checked="true" /> +
    • +
    • allow('feed')): ?>checked="true" /> +
    • + advanceOptionRight($page); ?> +
    +
    +
  • +
+
    +
  • + +
  • +
+
+
+
+
    +
  • + +

    + + + , + + @ + + : + +

    +

    +
  • +
  • + +

    +

    +
  • + option($page); ?> + have()): ?> + modified); ?> +
  • + +

    word()); ?>

    +
  • + +
+
+
+
+
+
+ +trigger($plugged)->richEditor($page); +if (!$plugged) { + include 'editor-js.php'; +} +Typecho_Plugin::factory('admin/write-page.php')->bottom($page); +include 'file-upload-js.php'; +include 'footer.php'; +?> diff --git a/admin/write-post.php b/admin/write-post.php new file mode 100644 index 00000000..72dcb5be --- /dev/null +++ b/admin/write-post.php @@ -0,0 +1,177 @@ +to($post); +?> +
+
+ +
+
+
+
+ +

+ +

+ +

+ content($post); ?> +

+ + + + + + + + + + + +

+
+
    +
  • +
    + pass('editor', true)): ?> + +
      +
    • status == 'publish' && !$post->password) || !$post->status) { ?> checked="true" />
    • +
    • password) { ?> checked="true" />
    • +
    • status == 'private') { ?> checked="true" />
    • +
    • status == 'waiting') { ?> checked="true" />
    • +
    +
    + + + +

    + advanceOptionLeft($post); ?> +
    +
    + +
      +
    • allow('comment')): ?>checked="true" /> +
    • +
    • allow('ping')): ?>checked="true" /> +
    • +
    • allow('feed')): ?>checked="true" /> +
    • + advanceOptionRight($post); ?> + +
    +
    +
  • +
+
    +
  • + +
  • +
+
+
+
+
    +
  • + +

    + + + , + + @ + + : + +

    +

    +
  • +
  • + + to($category); ?> + length > 8): ?> style="height: 264px"> + have()) { + $categories = Typecho_Common::arrayFlatten($post->categories, 'mid'); + } else { + $categories = array(); + } + ?> + next()): ?> +
  • mid, $categories)): ?>checked="true"/> +
  • + +
+ +
  • + +

    +

    +
  • + option($post); ?> + have()): ?> + modified); ?> +
  • + +

    word()); ?>

    +
  • + + +
    +
    +
    +
    +
    + + + +to($tags); ?> + + +trigger($plugged)->richEditor($post); +if (!$plugged) { + include 'editor-js.php'; +} +Typecho_Plugin::factory('admin/write-post.php')->bottom($post); +include 'file-upload-js.php'; +include 'footer.php'; +?> diff --git a/changelog.txt b/changelog.txt new file mode 100644 index 00000000..769e5267 --- /dev/null +++ b/changelog.txt @@ -0,0 +1,52 @@ +Version 0.8.1/12.4.1 + +修复同级子目录下安装多个站点引起的登录失效 +增加评论黑名单插件 +修复评论接口重用导致启用评论验证插件后,后台无法评论的bug +修正年份路由的bug +修正由于flash的cookie丢失bug导致的文件无法上传bug +增加对ini_get的判断 +提交对Sina App Engine的兼容性判断 +增加对Sina App Engine环境的支持 +增加对ini_get的判断 +修正新注册用户登录后跳转错误bug +修正对ssl的支持 +fix issue 510 +修复使用多层代理时, 获取ip地址错误 +修正修改文章时上传控件无法载入的问题 +修改后台错别字 +修正错别字 +兼容server不支持http 1.1的情况,典型问题如 sae环境404页面乱码 +修正由于SAE更改常用导致的数据库信息无法自动读入的问题 +增加上传插件接口 +提交Sina App Engine专用的文件上传插件, +使用SAE的Storage做持久化存储。 +修正SaeUpload插件的说明地址 +new version library +只是一些小修正 +fix bug report on segmentfault +fix issue 536 +fix Issue 541 +fix Issue 544 +fix Issue 544 +fix Issue 540 +fix Issue 537 +fix Issue 529 +fix Issue 532 +fix issue 526 +文章增加待审核功能,下一步给文章增加private属性 +更新后台表单样式, 新增文章预览功能 +css细节微调 +文章增加private属性显示 +修正插件显示空白问题, 预览框box修正 +修改预览内容样式,修改预览选项位置,高级选项->权限控制增加“允许游客访问”选项,用于私密浏览 +fix Issue 545 +实现文章公开度:公开、密码保护、私有、未审核 +little change +实现功能:1,当用户之前有审核通过的评论,再次发评论会直接为通过审核(可关闭);2,未通过审核的评论,评论作者可以在前台看到(他人不可见);3,隐藏功能; +修正后台修改或添加页面状态错误的问题;修正保存私密、审核日志时会新增一篇同样日志的问题 +简单增强搜索功能 Issue 480 +添加有密码和未发布图标 +fix Issue 551 +将文章管理页的公开度草稿等信息改为文字 +接受插件返回的header diff --git a/index.php b/index.php new file mode 100644 index 00000000..0e13ba8b --- /dev/null +++ b/index.php @@ -0,0 +1,26 @@ +begin(); + +/** 开始路由分发 */ +Typecho_Router::dispatch(); + +/** 注册一个结束插件 */ +Typecho_Plugin::factory('index.php')->end(); diff --git a/install.php b/install.php new file mode 100644 index 00000000..3b8f582e --- /dev/null +++ b/install.php @@ -0,0 +1,529 @@ +generator = 'Typecho ' . Typecho_Common::VERSION; +list($soft, $currentVersion) = explode(' ', $options->generator); + +$options->software = $soft; +$options->version = $currentVersion; + +list($prefixVersion, $suffixVersion) = explode('/', $currentVersion); + +?> + + + + <?php _e('Typecho安装程序'); ?> + + + + + +
    +
      + class="current"> + class="current"> + class="current"> +
    +
    +
    +
    +
    +
    + + +

    +
    +
    +

    +
    +
    + +

    +
    +
    + + + +
      + +
    • :
    • +
    • :
    • + +
    + +
    + + + +
    +

    :

    +
      + +
    • +
    • +
    +
    + +

    +
    + + + +
    +

    +
    +

    + ' . _t('请填写您的网站地址') . '

    '; + } else if (NULL == _r('userName')) { + $success = false; + echo '

    ' . _t('请填写您的用户名') . '

    '; + } else if (NULL == _r('userMail')) { + $success = false; + echo '

    ' . _t('请填写您的邮箱地址') . '

    '; + } else if (32 < strlen(_r('userName'))) { + $success = false; + echo '

    ' . _t('用户名长度超过限制, 请不要超过32个字符') . '

    '; + } else if (200 < strlen(_r('userMail'))) { + $success = false; + echo '

    ' . _t('邮箱长度超过限制, 请不要超过200个字符') . '

    '; + } + + + if ($success) { + $installDb = new Typecho_Db ($adapter, _r('dbPrefix')); + $_dbConfig = _rFrom('dbHost', 'dbUser', 'dbPassword', 'dbCharset', 'dbPort', 'dbDatabase', 'dbFile', 'dbDsn'); + + $_dbConfig = array_filter($_dbConfig); + $dbConfig = array(); + foreach ($_dbConfig as $key => $val) { + $dbConfig[strtolower (substr($key, 2))] = $val; + } + + $installDb->addServer($dbConfig, Typecho_Db::READ | Typecho_Db::WRITE); + + + /** 检测数据库配置 */ + try { + $installDb->query('SELECT 1=1'); + } catch (Typecho_Db_Adapter_Exception $e) { + $success = false; + echo '

    ' + . _t('对不起,无法连接数据库,请先检查数据库配置再继续进行安装') . '

    '; + } catch (Typecho_Db_Exception $e) { + $success = false; + echo '

    ' + . _t('安装程序捕捉到以下错误: "%s". 程序被终止, 请检查您的配置信息.',$e->getMessage()) . '

    '; + } + + } + + if($success) + { + /** 初始化配置文件 */ + $lines = array_slice(file(__FILE__), 0, 52); + $lines[] = " +/** 定义数据库参数 */ +\$db = new Typecho_Db('{$adapter}', '" . _r('dbPrefix') . "'); +\$db->addServer(" . var_export($dbConfig, true) . ", Typecho_Db::READ | Typecho_Db::WRITE); +Typecho_Db::set(\$db); +"; + +if (false === ($handle = @file_put_contents('./config.inc.php', implode('', $lines)))) { + $creatConfigFile = false; +} + try { + /** 初始化数据库结构 */ + $scripts = file_get_contents ('./install/' . $type . '.sql'); + $scripts = str_replace('typecho_', _r('dbPrefix'), $scripts); + + if (isset($dbConfig['charset'])) { + $scripts = str_replace('%charset%', $dbConfig['charset'], $scripts); + } + + $scripts = explode(';', $scripts); + foreach ($scripts as $script) { + $script = trim($script); + if ($script) { + $installDb->query($script, Typecho_Db::WRITE); + } + } + + /** 全局变量 */ + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'theme', 'user' => 0, 'value' => 'default'))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'timezone', 'user' => 0, 'value' => _t('28800')))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'charset', 'user' => 0, 'value' => 'UTF-8'))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'contentType', 'user' => 0, 'value' => 'text/html'))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'gzip', 'user' => 0, 'value' => 0))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'generator', 'user' => 0, 'value' => $options->generator))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'title', 'user' => 0, 'value' => 'Hello World'))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'description', 'user' => 0, 'value' => 'Just So So ...'))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'keywords', 'user' => 0, 'value' => 'typecho,php,blog'))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'rewrite', 'user' => 0, 'value' => 0))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'frontPage', 'user' => 0, 'value' => 'recent'))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsRequireMail', 'user' => 0, 'value' => 1))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsWhitelist', 'user' => 0, 'value' => 1))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsRequireURL', 'user' => 0, 'value' => 0))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsRequireModeration', 'user' => 0, 'value' => 0))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'plugins', 'user' => 0, 'value' => 'a:0:{}'))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentDateFormat', 'user' => 0, 'value' => 'F jS, Y \a\t h:i a'))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'siteUrl', 'user' => 0, 'value' => _r('userUrl')))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'defaultCategory', 'user' => 0, 'value' => 1))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'allowRegister', 'user' => 0, 'value' => 0))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'defaultAllowComment', 'user' => 0, 'value' => 1))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'defaultAllowPing', 'user' => 0, 'value' => 1))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'defaultAllowFeed', 'user' => 0, 'value' => 1))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'pageSize', 'user' => 0, 'value' => 5))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'postsListSize', 'user' => 0, 'value' => 10))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsListSize', 'user' => 0, 'value' => 10))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsHTMLTagAllowed', 'user' => 0, 'value' => NULL))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'postDateFormat', 'user' => 0, 'value' => 'Y-m-d'))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'feedFullText', 'user' => 0, 'value' => 1))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'editorSize', 'user' => 0, 'value' => 350))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'autoSave', 'user' => 0, 'value' => 0))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsMaxNestingLevels', 'user' => 0, 'value' => 5))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsPostTimeout', 'user' => 0, 'value' => 24 * 3600 * 30))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsUrlNofollow', 'user' => 0, 'value' => 1))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsShowUrl', 'user' => 0, 'value' => 1))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsPageBreak', 'user' => 0, 'value' => 0))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsThreaded', 'user' => 0, 'value' => 1))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsPageSize', 'user' => 0, 'value' => 20))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsPageDisplay', 'user' => 0, 'value' => 'last'))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsOrder', 'user' => 0, 'value' => 'ASC'))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsCheckReferer', 'user' => 0, 'value' => 1))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsAutoClose', 'user' => 0, 'value' => 0))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsPostIntervalEnable', 'user' => 0, 'value' => 1))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsPostInterval', 'user' => 0, 'value' => 60))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsShowCommentOnly', 'user' => 0, 'value' => 0))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsAvatar', 'user' => 0, 'value' => 1))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsAvatarRating', 'user' => 0, 'value' => 'G'))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'routingTable', 'user' => 0, 'value' => 'a:23:{s:5:"index";a:3:{s:3:"url";s:1:"/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:2:"do";a:3:{s:3:"url";s:22:"/action/[action:alpha]";s:6:"widget";s:9:"Widget_Do";s:6:"action";s:6:"action";}s:4:"post";a:3:{s:3:"url";s:24:"/archives/[cid:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:10:"attachment";a:3:{s:3:"url";s:26:"/attachment/[cid:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:8:"category";a:3:{s:3:"url";s:17:"/category/[slug]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:3:"tag";a:3:{s:3:"url";s:12:"/tag/[slug]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:6:"author";a:3:{s:3:"url";s:22:"/author/[uid:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:6:"search";a:3:{s:3:"url";s:19:"/search/[keywords]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:10:"index_page";a:3:{s:3:"url";s:21:"/page/[page:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:13:"category_page";a:3:{s:3:"url";s:32:"/category/[slug]/[page:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:8:"tag_page";a:3:{s:3:"url";s:27:"/tag/[slug]/[page:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:11:"author_page";a:3:{s:3:"url";s:37:"/author/[uid:digital]/[page:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:11:"search_page";a:3:{s:3:"url";s:34:"/search/[keywords]/[page:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:12:"archive_year";a:3:{s:3:"url";s:18:"/[year:digital:4]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:13:"archive_month";a:3:{s:3:"url";s:36:"/[year:digital:4]/[month:digital:2]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:11:"archive_day";a:3:{s:3:"url";s:52:"/[year:digital:4]/[month:digital:2]/[day:digital:2]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:17:"archive_year_page";a:3:{s:3:"url";s:38:"/[year:digital:4]/page/[page:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:18:"archive_month_page";a:3:{s:3:"url";s:56:"/[year:digital:4]/[month:digital:2]/page/[page:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:16:"archive_day_page";a:3:{s:3:"url";s:72:"/[year:digital:4]/[month:digital:2]/[day:digital:2]/page/[page:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:12:"comment_page";a:3:{s:3:"url";s:53:"[permalink:string]/comment-page-[commentPage:digital]";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:4:"feed";a:3:{s:3:"url";s:20:"/feed[feed:string:0]";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:4:"feed";}s:8:"feedback";a:3:{s:3:"url";s:31:"[permalink:string]/[type:alpha]";s:6:"widget";s:15:"Widget_Feedback";s:6:"action";s:6:"action";}s:4:"page";a:3:{s:3:"url";s:12:"/[slug].html";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}}'))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'actionTable', 'user' => 0, 'value' => 'a:0:{}'))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'panelTable', 'user' => 0, 'value' => 'a:0:{}'))); + $installDb->query($installDb->insert('table.options')->rows(array('name' => 'attachmentTypes', 'user' => 0, 'value' => '@image@'))); + + /** 初始分类 */ + $installDb->query($installDb->insert('table.metas')->rows(array('name' => _t('默认分类'), 'slug' => 'default', 'type' => 'category', 'description' => _t('只是一个默认分类'), + 'count' => 1, 'order' => 1))); + + /** 初始关系 */ + $installDb->query($installDb->insert('table.relationships')->rows(array('cid' => 1, 'mid' => 1))); + + /** 初始内容 */ + $installDb->query($installDb->insert('table.contents')->rows(array('title' => _t('欢迎使用Typecho'), 'slug' => 'start', 'created' => Typecho_Date::gmtTime(), 'modified' => Typecho_Date::gmtTime(), + 'text' => _t('如果您看到这篇文章,表示您的blog已经安装成功.'), 'authorId' => 1, 'type' => 'post', 'status' => 'publish', 'commentsNum' => 1, 'allowComment' => 1, + 'allowPing' => 1, 'allowFeed' => 1, 'parent' => 0))); + + $installDb->query($installDb->insert('table.contents')->rows(array('title' => _t('关于'), 'slug' => 'start-page', 'created' => Typecho_Date::gmtTime(), 'modified' => Typecho_Date::gmtTime(), + 'text' => _t('本页面由Typecho创建, 这只是个测试页面.'), 'authorId' => 1, 'order' => 0, 'type' => 'page', 'status' => 'publish', 'commentsNum' => 0, 'allowComment' => 1, + 'allowPing' => 1, 'allowFeed' => 1, 'parent' => 0))); + + /** 初始评论 */ + $installDb->query($installDb->insert('table.comments')->rows(array('cid' => 1, 'created' => Typecho_Date::gmtTime(), 'author' => 'Typecho', 'ownerId' => 1, 'url' => 'http://typecho.org', + 'ip' => '127.0.0.1', 'agent' => $options->generator, 'text' => '欢迎加入Typecho大家族', 'type' => 'comment', 'status' => 'approved', 'parent' => 0))); + + /** 初始用户 */ + $password = substr(uniqid(), 7); + + $installDb->query($installDb->insert('table.users')->rows(array('name' => _r('userName'), 'password' => Typecho_Common::hash($password), 'mail' => _r('userMail'), + 'url' => 'http://www.typecho.org', 'screenName' => _r('userName'), 'group' => 'administrator', 'created' => Typecho_Date::gmtTime()))); + echo '

    抱歉,无法写入 config.inc.php 文件。
    您可手动创建 config.inc.php,并复制如下代码至其中。

    '; + echo ''; + echo '

    上传完成之后,请点击

    '; + exit; + } catch (Typecho_Db_Exception $e) { + $success = false; + $code = $e->getCode(); + + if(('Mysql' == $type && 1050 == $code) || + ('SQLite' == $type && ('HY000' == $code || 1 == $code)) || + ('Pgsql' == $type && '42P07' == $code)) { + if(_r('delete')) { + //删除原有数据 + $dbPrefix = _r('dbPrefix'); + $tableArray = array($dbPrefix . 'comments', $dbPrefix . 'contents', $dbPrefix . 'metas', $dbPrefix . 'options', $dbPrefix . 'relationships', $dbPrefix . 'users',); + foreach($tableArray as $table) { + if($type == 'Mysql') { + $installDb->query("DROP TABLE IF EXISTS `{$table}`"); + } elseif($type == 'Pgsql') { + $installDb->query("DROP TABLE {$table}"); + } elseif($type == 'SQLite') { + $installDb->query("DROP TABLE {$table}"); + } + } + echo '

    已经删除完原有数据,请点击继续安装

    '; + } elseif (_r('goahead')) { + //使用原有数据 + //但是要更新用户网站 + $installDb->query($installDb->update('table.options')->rows(array('value' => _r('userUrl')))->where('name = ?', 'siteUrl')); + header('Location: install.php?finish&use_old'); + exit; + } else { + echo '

    ' . _t('安装程序检查到原有数据表已经存在,请先删除该表然后再继续进行安装.') . '您可以选择或者直接安装

    '; + } + } else { + echo '

    ' . _t('安装程序捕捉到以下错误: "%s". 程序被终止, 请检查您的配置信息.',$e->getMessage()) . '

    '; + } + } + } + if($success != true && file_exists(__TYPECHO_ROOT_DIR__ . '/config.inc.php')) { + unlink(__TYPECHO_ROOT_DIR__ . '/config.inc.php'); + } + } + ?> +
      +
    • + + +

      +
    • + +
    • + + +

      +
    • +
    + + + +

    +
      +
    • + + +

      +
    • +
    • + + +

      +
    • +
    • + + +

      +
    • +
    +
    + +

    +
    + +
    +

    +
    + ' . _t('安装目录不可写, 请设置你的目录权限为可写。

    或者在安装过程中手动上传config.inc.php文件.') . '

    '; + } else { + fclose($handle); + unlink('./config.inc.php'); + } + ?> +

    +

    +

    +

    +

    +

    +
      + +
    +

    +
    +

    '; + } + ?> +
    + + +
    +
    +
    +
    + diff --git a/install/Mysql.php b/install/Mysql.php new file mode 100644 index 00000000..ac5cddab --- /dev/null +++ b/install/Mysql.php @@ -0,0 +1,58 @@ + + + + +
  • + + +

    +
  • +
  • + + +

    +
  • +
  • + + +

    +
  • +
  • + + +
  • +
  • + + +

    +
  • + + +
  • + + +

    +
  • +
  • + + +

    +
  • +
  • + + +

    +
  • +
  • + + +
  • +
  • + + +

    +
  • + + + + diff --git a/install/Mysql.sql b/install/Mysql.sql new file mode 100644 index 00000000..0f6ce0eb --- /dev/null +++ b/install/Mysql.sql @@ -0,0 +1,133 @@ +-- phpMyAdmin SQL Dump +-- version 2.11.5 +-- http://www.phpmyadmin.net +-- +-- 主机: localhost +-- 生成日期: 2008 年 07 月 06 日 18:00 +-- 服务器版本: 5.0.51 +-- PHP 版本: 5.2.5 + +-- +-- 数据库: `typecho` +-- + +-- -------------------------------------------------------- + +-- +-- 表的结构 `typecho_comments` +-- + +CREATE TABLE `typecho_comments` ( + `coid` int(10) unsigned NOT NULL auto_increment, + `cid` int(10) unsigned default '0', + `created` int(10) unsigned default '0', + `author` varchar(200) default NULL, + `authorId` int(10) unsigned default '0', + `ownerId` int(10) unsigned default '0', + `mail` varchar(200) default NULL, + `url` varchar(200) default NULL, + `ip` varchar(64) default NULL, + `agent` varchar(200) default NULL, + `text` text, + `type` varchar(16) default 'comment', + `status` varchar(16) default 'approved', + `parent` int(10) unsigned default '0', + PRIMARY KEY (`coid`), + KEY `cid` (`cid`), + KEY `created` (`created`) +) ENGINE=MyISAM DEFAULT CHARSET=%charset%; + +-- -------------------------------------------------------- + +-- +-- 表的结构 `typecho_contents` +-- + +CREATE TABLE `typecho_contents` ( + `cid` int(10) unsigned NOT NULL auto_increment, + `title` varchar(200) default NULL, + `slug` varchar(200) default NULL, + `created` int(10) unsigned default '0', + `modified` int(10) unsigned default '0', + `text` text, + `order` int(10) unsigned default '0', + `authorId` int(10) unsigned default '0', + `template` varchar(32) default NULL, + `type` varchar(16) default 'post', + `status` varchar(16) default 'publish', + `password` varchar(32) default NULL, + `commentsNum` int(10) unsigned default '0', + `allowComment` char(1) default '0', + `allowPing` char(1) default '0', + `allowFeed` char(1) default '0', + `parent` int(10) unsigned default '0', + PRIMARY KEY (`cid`), + UNIQUE KEY `slug` (`slug`), + KEY `created` (`created`) +) ENGINE=MyISAM DEFAULT CHARSET=%charset%; + +-- -------------------------------------------------------- + +-- +-- 表的结构 `typecho_metas` +-- + +CREATE TABLE `typecho_metas` ( + `mid` int(10) unsigned NOT NULL auto_increment, + `name` varchar(200) default NULL, + `slug` varchar(200) default NULL, + `type` varchar(32) NOT NULL, + `description` varchar(200) default NULL, + `count` int(10) unsigned default '0', + `order` int(10) unsigned default '0', + PRIMARY KEY (`mid`), + KEY `slug` (`slug`) +) ENGINE=MyISAM DEFAULT CHARSET=%charset%; + +-- -------------------------------------------------------- + +-- +-- 表的结构 `typecho_options` +-- + +CREATE TABLE `typecho_options` ( + `name` varchar(32) NOT NULL, + `user` int(10) unsigned NOT NULL default '0', + `value` text, + PRIMARY KEY (`name`,`user`) +) ENGINE=MyISAM DEFAULT CHARSET=%charset%; + +-- -------------------------------------------------------- + +-- +-- 表的结构 `typecho_relationships` +-- + +CREATE TABLE `typecho_relationships` ( + `cid` int(10) unsigned NOT NULL, + `mid` int(10) unsigned NOT NULL, + PRIMARY KEY (`cid`,`mid`) +) ENGINE=MyISAM DEFAULT CHARSET=%charset%; + +-- -------------------------------------------------------- + +-- +-- 表的结构 `typecho_users` +-- + +CREATE TABLE `typecho_users` ( + `uid` int(10) unsigned NOT NULL auto_increment, + `name` varchar(32) default NULL, + `password` varchar(64) default NULL, + `mail` varchar(200) default NULL, + `url` varchar(200) default NULL, + `screenName` varchar(32) default NULL, + `created` int(10) unsigned default '0', + `activated` int(10) unsigned default '0', + `logged` int(10) unsigned default '0', + `group` varchar(16) default 'visitor', + `authCode` varchar(64) default NULL, + PRIMARY KEY (`uid`), + UNIQUE KEY `name` (`name`), + UNIQUE KEY `mail` (`mail`) +) ENGINE=MyISAM DEFAULT CHARSET=%charset%; diff --git a/install/Pgsql.php b/install/Pgsql.php new file mode 100644 index 00000000..0bed2c84 --- /dev/null +++ b/install/Pgsql.php @@ -0,0 +1,26 @@ + +
  • + + +

    +
  • +
  • + + +

    +
  • +
  • + + +

    +
  • +
  • + + +
  • +
  • + + +

    +
  • + diff --git a/install/Pgsql.sql b/install/Pgsql.sql new file mode 100644 index 00000000..fbede038 --- /dev/null +++ b/install/Pgsql.sql @@ -0,0 +1,114 @@ +-- +-- Table structure for table `typecho_comments` +-- +CREATE SEQUENCE "typecho_comments_seq"; + +CREATE TABLE "typecho_comments" ( "coid" INT NOT NULL DEFAULT nextval('typecho_comments_seq'), + "cid" INT NULL DEFAULT '0', + "created" INT NULL DEFAULT '0', + "author" VARCHAR(200) NULL DEFAULT NULL, + "authorId" INT NULL DEFAULT '0', + "ownerId" INT NULL DEFAULT '0', + "mail" VARCHAR(200) NULL DEFAULT NULL, + "url" VARCHAR(200) NULL DEFAULT NULL, + "ip" VARCHAR(64) NULL DEFAULT NULL, + "agent" VARCHAR(200) NULL DEFAULT NULL, + "text" TEXT NULL DEFAULT NULL, + "type" VARCHAR(16) NULL DEFAULT 'comment', + "status" VARCHAR(16) NULL DEFAULT 'approved', + "parent" INT NULL DEFAULT '0', + PRIMARY KEY ("coid") +); + +CREATE INDEX "typecho_comments_cid" ON "typecho_comments" ("cid"); +CREATE INDEX "typecho_comments_created" ON "typecho_comments" ("created"); + + +-- +-- Table structure for table `typecho_contents` +-- + +CREATE SEQUENCE "typecho_contents_seq"; + +CREATE TABLE "typecho_contents" ( "cid" INT NOT NULL DEFAULT nextval('typecho_contents_seq'), + "title" VARCHAR(200) NULL DEFAULT NULL, + "slug" VARCHAR(200) NULL DEFAULT NULL, + "created" INT NULL DEFAULT '0', + "modified" INT NULL DEFAULT '0', + "text" TEXT NULL DEFAULT NULL, + "order" INT NULL DEFAULT '0', + "authorId" INT NULL DEFAULT '0', + "template" VARCHAR(32) NULL DEFAULT NULL, + "type" VARCHAR(16) NULL DEFAULT 'post', + "status" VARCHAR(16) NULL DEFAULT 'publish', + "password" VARCHAR(32) NULL DEFAULT NULL, + "commentsNum" INT NULL DEFAULT '0', + "allowComment" CHAR(1) NULL DEFAULT '0', + "allowPing" CHAR(1) NULL DEFAULT '0', + "allowFeed" CHAR(1) NULL DEFAULT '0', + "parent" INT NULL DEFAULT '0', + PRIMARY KEY ("cid"), + UNIQUE ("slug") +); + +CREATE INDEX "typecho_contents_created" ON "typecho_contents" ("created"); + + +-- +-- Table structure for table `typecho_metas` +-- + +CREATE SEQUENCE "typecho_metas_seq"; + +CREATE TABLE "typecho_metas" ( "mid" INT NOT NULL DEFAULT nextval('typecho_metas_seq'), + "name" VARCHAR(200) NULL DEFAULT NULL, + "slug" VARCHAR(200) NULL DEFAULT NULL, + "type" VARCHAR(16) NOT NULL DEFAULT '', + "description" VARCHAR(200) NULL DEFAULT NULL, + "count" INT NULL DEFAULT '0', + "order" INT NULL DEFAULT '0', + PRIMARY KEY ("mid") +); + +CREATE INDEX "typecho_metas_slug" ON "typecho_metas" ("slug"); + + +-- +-- Table structure for table `typecho_options` +-- + +CREATE TABLE "typecho_options" ( "name" VARCHAR(32) NOT NULL DEFAULT '', + "user" INT NOT NULL DEFAULT '0', + "value" TEXT NULL DEFAULT NULL, + PRIMARY KEY ("name","user") +); + +-- +-- Table structure for table `typecho_relationships` +-- + +CREATE TABLE "typecho_relationships" ( "cid" INT NOT NULL DEFAULT '0', + "mid" INT NOT NULL DEFAULT '0', + PRIMARY KEY ("cid","mid") +); + +-- +-- Table structure for table `typecho_users` +-- +CREATE SEQUENCE "typecho_users_seq"; + +CREATE TABLE "typecho_users" ( "uid" INT NOT NULL DEFAULT nextval('typecho_users_seq') , + "name" VARCHAR(32) NULL DEFAULT NULL, + "password" VARCHAR(64) NULL DEFAULT NULL, + "mail" VARCHAR(200) NULL DEFAULT NULL, + "url" VARCHAR(200) NULL DEFAULT NULL, + "screenName" VARCHAR(32) NULL DEFAULT NULL, + "created" INT NULL DEFAULT '0', + "activated" INT NULL DEFAULT '0', + "logged" INT NULL DEFAULT '0', + "group" VARCHAR(16) NULL DEFAULT 'visitor', + "authCode" VARCHAR(64) NULL DEFAULT NULL, + PRIMARY KEY ("uid"), + UNIQUE ("name"), + UNIQUE ("mail") +); diff --git a/install/SQLite.php b/install/SQLite.php new file mode 100644 index 00000000..a5600218 --- /dev/null +++ b/install/SQLite.php @@ -0,0 +1,7 @@ + + +
  • + + +

    +
  • diff --git a/install/SQLite.sql b/install/SQLite.sql new file mode 100644 index 00000000..73b05b8f --- /dev/null +++ b/install/SQLite.sql @@ -0,0 +1,74 @@ +CREATE TABLE typecho_comments ( "coid" INTEGER NOT NULL PRIMARY KEY, +"cid" int(10) default '0' , +"created" int(10) default '0' , +"author" varchar(200) default NULL , +"authorId" int(10) default '0' , +"ownerId" int(10) default '0' , +"mail" varchar(200) default NULL , +"url" varchar(200) default NULL , +"ip" varchar(64) default NULL , +"agent" varchar(200) default NULL , +"text" text , +"type" varchar(16) default 'comment' , +"status" varchar(16) default 'approved' , +"parent" int(10) default '0' ); + +CREATE INDEX typecho_comments_cid ON typecho_comments ("cid"); +CREATE INDEX typecho_comments_created ON typecho_comments ("created"); + +CREATE TABLE typecho_contents ( "cid" INTEGER NOT NULL PRIMARY KEY, +"title" varchar(200) default NULL , +"slug" varchar(200) default NULL , +"created" int(10) default '0' , +"modified" int(10) default '0' , +"text" text , +"order" int(10) default '0' , +"authorId" int(10) default '0' , +"template" varchar(32) default NULL , +"type" varchar(16) default 'post' , +"status" varchar(16) default 'publish' , +"password" varchar(32) default NULL , +"commentsNum" int(10) default '0' , +"allowComment" char(1) default '0' , +"allowPing" char(1) default '0' , +"allowFeed" char(1) default '0' , +"parent" int(10) default '0' ); + +CREATE UNIQUE INDEX typecho_contents_slug ON typecho_contents ("slug"); +CREATE INDEX typecho_contents_created ON typecho_contents ("created"); + +CREATE TABLE typecho_metas ( "mid" INTEGER NOT NULL PRIMARY KEY, +"name" varchar(200) default NULL , +"slug" varchar(200) default NULL , +"type" varchar(32) NOT NULL , +"description" varchar(200) default NULL , +"count" int(10) default '0' , +"order" int(10) default '0' ); + +CREATE INDEX typecho_metas_slug ON typecho_metas ("slug"); + +CREATE TABLE typecho_options ( "name" varchar(32) NOT NULL , +"user" int(10) NOT NULL default '0' , +"value" text ); + +CREATE UNIQUE INDEX typecho_options_name_user ON typecho_options ("name", "user"); + +CREATE TABLE typecho_relationships ( "cid" int(10) NOT NULL , +"mid" int(10) NOT NULL ); + +CREATE UNIQUE INDEX typecho_relationships_cid_mid ON typecho_relationships ("cid", "mid"); + +CREATE TABLE typecho_users ( "uid" INTEGER NOT NULL PRIMARY KEY, +"name" varchar(32) default NULL , +"password" varchar(64) default NULL , +"mail" varchar(200) default NULL , +"url" varchar(200) default NULL , +"screenName" varchar(32) default NULL , +"created" int(10) default '0' , +"activated" int(10) default '0' , +"logged" int(10) default '0' , +"group" varchar(16) default 'visitor' , +"authCode" varchar(64) default NULL); + +CREATE UNIQUE INDEX typecho_users_name ON typecho_users ("name"); +CREATE UNIQUE INDEX typecho_users_mail ON typecho_users ("mail"); diff --git a/license.txt b/license.txt new file mode 100644 index 00000000..a540051d --- /dev/null +++ b/license.txt @@ -0,0 +1,282 @@ +The GNU General Public License (GPL) +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. + +59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Everyone is permitted to copy and distribute verbatim copies + +of this license document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + +To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + +For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + +We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + +Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + +Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and +modification follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + +3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + +5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + +9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + +10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/mockup/001.php b/mockup/001.php new file mode 100644 index 00000000..dd7b91ae --- /dev/null +++ b/mockup/001.php @@ -0,0 +1,3 @@ + + + diff --git a/mockup/002.php b/mockup/002.php new file mode 100644 index 00000000..3df14818 --- /dev/null +++ b/mockup/002.php @@ -0,0 +1,3 @@ + + + diff --git a/mockup/003.php b/mockup/003.php new file mode 100644 index 00000000..d5170167 --- /dev/null +++ b/mockup/003.php @@ -0,0 +1,7 @@ + +
    +
    + +
    +
    + diff --git a/mockup/004.php b/mockup/004.php new file mode 100644 index 00000000..bb3067e9 --- /dev/null +++ b/mockup/004.php @@ -0,0 +1,11 @@ + + +
    +
    +
    +

    安装成功!

    + +
    +
    +
    + diff --git a/mockup/005.php b/mockup/005.php new file mode 100644 index 00000000..b57f0085 --- /dev/null +++ b/mockup/005.php @@ -0,0 +1,7 @@ + +
    +
    + +
    +
    + diff --git a/mockup/006.php b/mockup/006.php new file mode 100644 index 00000000..584da796 --- /dev/null +++ b/mockup/006.php @@ -0,0 +1,15 @@ + + +
    +
    + +
    +
    + + +
    +
    +
    +
    + + diff --git a/mockup/007.php b/mockup/007.php new file mode 100644 index 00000000..dfae8600 --- /dev/null +++ b/mockup/007.php @@ -0,0 +1,12 @@ + + +
    +
    +
    +

    确认您的配置

    + +

    +
    +
    +
    + diff --git a/mockup/008.php b/mockup/008.php new file mode 100644 index 00000000..0f0e57ce --- /dev/null +++ b/mockup/008.php @@ -0,0 +1,10 @@ + + +
    +
    + + +
    +
    + + diff --git a/mockup/010.php b/mockup/010.php new file mode 100644 index 00000000..066d03b9 --- /dev/null +++ b/mockup/010.php @@ -0,0 +1,32 @@ + +
    +
    +
    +
      +
    • +
    • +
    • +
    +

    Mesage

    + +

    + Comment at 10 Mar 2009 4:53:23AM form IP 127.0.0.1 Ban? +

    +
    +
    + + +
    +
    +
    + +
    +
    + +
    + +
    +
    +
    + + diff --git a/mockup/011.php b/mockup/011.php new file mode 100644 index 00000000..b952bd3f --- /dev/null +++ b/mockup/011.php @@ -0,0 +1,12 @@ + + +
    +
    + +
    + +
    +
    +
    + + diff --git a/mockup/012.php b/mockup/012.php new file mode 100644 index 00000000..2709c7a0 --- /dev/null +++ b/mockup/012.php @@ -0,0 +1,14 @@ + + +
    +
    +
    +
    +

    开始安装

    + +

    +
    +
    +
    +
    + diff --git a/mockup/013.php b/mockup/013.php new file mode 100644 index 00000000..498d2386 --- /dev/null +++ b/mockup/013.php @@ -0,0 +1,19 @@ + + +
    +
    + +
    +
    + +
    + + + +
    +
    +
    +
    +
    + + diff --git a/mockup/014.php b/mockup/014.php new file mode 100644 index 00000000..d309f8b5 --- /dev/null +++ b/mockup/014.php @@ -0,0 +1,15 @@ + + +
    +
    + +
    +
    + + +
    +
    +
    +
    + + diff --git a/mockup/015.php b/mockup/015.php new file mode 100644 index 00000000..b57af827 --- /dev/null +++ b/mockup/015.php @@ -0,0 +1,14 @@ + + +
    +
    + +
    + + + +
    +
    +
    + + diff --git a/mockup/016.php b/mockup/016.php new file mode 100644 index 00000000..c5fc5b2e --- /dev/null +++ b/mockup/016.php @@ -0,0 +1,60 @@ + + + + + Error + + + + +
    +

    404

    +

    There is an error

    + +
    + + diff --git a/mockup/css/grid.source.css b/mockup/css/grid.source.css new file mode 100644 index 00000000..3232329e --- /dev/null +++ b/mockup/css/grid.source.css @@ -0,0 +1,261 @@ +/* vim: set et sw=4 ts=4 sts=4 fdm=marker ff=unix fenc=utf8 */ +/** + * 格栅系统 + * + * 根据 Taobao 栅格系统规范制定 + * + * @change + * 2008-09-19 + * 初始化版本,使用“浮动定位布局” + * + * @author i.feelinglucky@gmail.com + * @since 2008-09-19 + * @link http://www.gracecode.com/ + * @version $Id: grid.source.css 470 2008-09-26 15:23:38Z i.feelinglucky $ + */ + +.body { + clear:both; + overflow:hidden; + position:relative; + width:100%; +} + +.container { + float:left; + position:relative; + width:100%; + left:100%; +} + +.container:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +/** + * 目前制定的是 950px 宽度 + */ +.body-950 { + width: 950px; + margin: 0px auto; +} + +.body-950 .container { + left: 950px; +} + +/** + * 将页面分成了 24 份,同时指定每个栅格的基本样式 + */ +.column-01, .column-02, .column-03, .column-04, .column-05, +.column-06, .column-07, .column-08, .column-09, .column-10, +.column-11, .column-12, .column-13, .column-14, .column-15, +.column-16, .column-17, .column-18, .column-19, .column-20, +.column-21, .column-22, .column-23, .column-24 { + float:left; + overflow:hidden; + position:relative; + width: 100%; +} + +/** + * 950 宽度的格栅 + * + * 公式:(40 x N) - 10 = 950 + */ +.body-950 .column-01 { + width: 30px; +} + +.body-950 .column-02 { + width: 70px; +} + +.body-950 .column-03 { + width: 110px; +} + +.body-950 .column-04 { + width: 150px; +} + +.body-950 .column-05 { + width: 190px; +} + +.body-950 .column-06 { + width: 230px; +} + +.body-950 .column-07 { + width: 270px; +} + +.body-950 .column-08 { + width: 310px; +} + +.body-950 .column-09 { + width: 350px; +} + +.body-950 .column-10 { + width: 390px; +} + +.body-950 .column-11 { + width: 430px; +} + +.body-950 .column-12 { + width: 470px; +} + +.body-950 .column-13 { + width: 510px; +} + +.body-950 .column-14 { + width: 550px; +} + +.body-950 .column-15 { + width: 590px; +} + +.body-950 .column-16 { + width: 630px; +} + +.body-950 .column-17 { + width: 670px; +} + +.body-950 .column-18 { + width: 710px; +} + +.body-950 .column-19 { + width: 750px; +} + +.body-950 .column-20 { + width: 790px; +} + +.body-950 .column-21 { + width: 830px; +} + +.body-950 .column-22 { + width: 870px; +} + +.body-950 .column-23 { + width: 910px; +} + +.body-950 .column-24 { + width: 950px; +} + +/** + * 对比栅格,设置偏移位置 + */ +.body-950 .column, .body-950 .start-01 { + margin-left: -950px; +} + +.body-950 .start-02 { + margin-left: -910px; +} + +.body-950 .start-03 { + margin-left: -870px; +} + +.body-950 .start-04 { + margin-left: -830px; +} + +.body-950 .start-05 { + margin-left: -790px; +} + +.body-950 .start-06 { + margin-left: -750px; +} + +.body-950 .start-07 { + margin-left: -710px; +} + +.body-950 .start-08 { + margin-left: -670px; +} + +.body-950 .start-09 { + margin-left: -630px; +} + +.body-950 .start-10 { + margin-left: -590px; +} + +.body-950 .start-11 { + margin-left: -550px; +} + +.body-950 .start-12 { + margin-left: -510px; +} + +.body-950 .start-13 { + margin-left: -470px; +} + +.body-950 .start-14 { + margin-left: -430px; +} + +.body-950 .start-15 { + margin-left: -390px; +} + +.body-950 .start-16 { + margin-left: -350px; +} + +.body-950 .start-17 { + margin-left: -310px; +} +.body-950 .start-18 { + margin-left: -270px; +} +.body-950 .start-19 { + margin-left: -230px; +} + +.body-950 .start-20 { + margin-left: -190px; +} + +.body-950 .start-21 { + margin-left: -150px; +} + +.body-950 .start-22 { + margin-left: -110px; +} + +.body-950 .start-23 { + margin-left: -70px; +} + +.body-950 .start-24 { + margin-left: -30px; +} diff --git a/mockup/css/reset.source.css b/mockup/css/reset.source.css new file mode 100644 index 00000000..97352c7f --- /dev/null +++ b/mockup/css/reset.source.css @@ -0,0 +1,77 @@ +/* vim: set et sw=4 ts=4 sts=4 fdm=marker ff=unix fenc=utf8 */ +/** + * CSS 重置样式 + * + * 重置主流浏览器默认样式,参考 YUI 以及 Blueprint + * + * @author i.feelinglucky@gmail.com + * @link http://www.gracecode.com/ + * @version $Id: reset.source.css 470 2008-09-26 15:23:38Z i.feelinglucky $ + */ +html, body, div, span, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, code, +del, dfn, em, img, q, dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + margin: 0em; padding: 0em; border: 0em; + font-weight: inherit; + font-style: inherit; + font-family: inherit; + vertical-align: baseline; +} + +h1 { + font-size: 200%; +} + +h2 { + font-size: 180%; +} + +h3 { + font-size: 160%; +} + +h4 { + font-size: 140%; +} + +h5 { + font-size: 120%; +} + +h6, p { + font-size: 100%; +} + +body { + line-height: 1.5; +} + +table { + border-collapse: separate; + border-spacing: 0; +} + +caption, th, td { + text-align: left; + font-weight: normal; +} + +table, td, th { + vertical-align: middle; +} + +blockquote:before, blockquote:after, q:before, q:after { + content: ""; +} + +blockquote, q { + quotes: "" ""; +} + +a img { + border: none; + outline: none; +} diff --git a/mockup/css/typecho.source.css b/mockup/css/typecho.source.css new file mode 100644 index 00000000..fafea558 --- /dev/null +++ b/mockup/css/typecho.source.css @@ -0,0 +1,1477 @@ +/* vim: set et sw=4 ts=4 sts=4 fdm=marker ff=unix fenc=utf8 */ +/** + * Typecho 后台样式 + * + * @author i.feelinglucky@gmail.com + * @since 2008-09-26 + * @link http://www.typecho.net/ + * @version $Id: grid.source.css 470 2008-09-26 15:23:38Z i.feelinglucky $ + */ + +/** + * Typecho 全局样式 + */ +body { + /* + background: #f7fbe9; + color: #333; + */ + font-family: "Lucida Grande","Lucida Sans Unicode",Tahoma,Verdana; + background: #333; + color: #f7fbe9; + /* + overflow-x: hidden; + */ +} + +/* +body > div { + background: #f7fbe9; + color: #333; +} +*/ + +body.bright, .main { + background: #f7fbe9; + color: #333; +} + + +body.dark { + background: #333; +} + +h1, h2, h3, h4, h5, h6, p { + color: #333; +} + +h1, h2, h3, h4, h5, h6 { + font-weight: 600; +} + +h1 { + font-size: 18px; +} + +h2 { + font-size: 16px; +} + +ul, ol { + list-style: none; +} + +p { + font-size: 12px; +} + +a { + color: #BD6800; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +a.important { + color: #fff; +} + +em { + color: #e47e00; + font-weight: normal; +} + +form { + padding: 0; + margin: 0; +} + +input, textarea { + font-size: 13px; + padding: 2px; +} + +@media screen and (-webkit-min-device-pixel-ratio:0) { + input, textarea { padding: 1px; } +} + +textarea { + overflow: auto; +} + +em { + font-style: normal; +} + +input:hover { + /* + cursor: pointer; + */ +} + +input, select, textarea { + font-family: Verdana, Geneva, sans-serif; +} + +/** hack webkit border by 70 */ +input:focus, textarea:focus, select:focus { + outline: 0 !important; +} + +select { + font-size: 13px; + padding: 1px; +} + +@media screen and (-webkit-min-device-pixel-ratio:0) { + select { padding: 0; } +} + +button { + overflow:visible; + line-height: 16px; + *height:24px; + *padding:0 8px; + *line-height: 20px; + *margin-bottom: -1px; +} + +/** just for ie6 */ +*html button { + line-height:17px; + height:17px; + margin-bottom:-1px; +} + +/** + * 弹出层 + */ +.typecho-popup { + background: #333; + color: #333; + height:100%; + left:0; + overflow:hidden; + position:absolute; + top:0; + width:100%; + z-index:999; + filter: Alpha(opacity=95); + opacity:.95; +} + +.typecho-popup-content { + background: #e5ead1; + padding: 10px 0px 10px 10px; + position: relative; + width: 800px; + border: 1px solid #dee4c5; + margin: 15% auto; +} + +.typecho-popup-content .submit button { + margin-right: 5px; +} + + +/** + * 选择日历 + */ +.select-date { + display: inline-block; + outline: none; + background: url(../images/sprite.png) no-repeat scroll 0px -293px; + width: 15px; + height: 15px; + overflow: hidden; + text-indent: -999px; + margin: 0px 7px; +} + +/** + * logo 的样式 + */ +.logo { + display: block; + height: 20px; + width: 92px; + overflow: hidden; + text-indent: -9999px; + background: url(../images/sprite.png) no-repeat scroll 0px -78px; +} + +.logo-dark { + display: block; + height: 21px; + width: 92px; + overflow: hidden; + text-indent: -9999px; + background: url(../images/sprite.png) no-repeat scroll 0px -150px; +} + + +/** + * 典型配置选项 + */ +/* +.typecho-option { + +} + */ + +.typecho-option li { + padding-left: 110px; +} + +.typecho-option label.typecho-label { + float: left; + width: 110px; + text-align: right; + margin: 1px 5px 0 -120px; + font-size: 13px; +} + +.typecho-option .description { + color: #555; +} + +/** 增加配置面板内部的错误样式 by 70 */ +.typecho-option .message { + padding: 2px 4px; + font-size: 12px; + width: 325px; + + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + + /* hope IE support border radius, God save me! */ + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + + +/** + * 提示信息框 + */ +.message { + padding: 5px; + font-size: 14px; + color: #333; + margin-bottom: 10px; + overflow: hidden; +} + +.message a:link, .message a:visited { + color: #333; + text-decoration: underline; +} + +.error { + border: 1px solid #fbc2c4; + background: #fbe3e4; + color: #8A1F11; +} + +.notice { + background: #fff6bf; + border: 1px solid #ffd324; + color: #514721; +} + +.success { + background: #e6efc2; + border: 1px solid #c6d880; + color: #264409; +} + +/** 增加顶部消息样式 by 70 */ +.popup { + margin-bottom: -10px; +} + +/** + * 安装样式 + * + * @author mingcheng + * @date 2008-09-06 + */ +/** + * 安装向导 + */ +.typecho-install-patch { + height: 30px; + line-height: 30px; + background: #333; +} + +.typecho-install-patch ol { + position: relative; + overflow: hidden; + margin-left: 20px; /* 给第一个位置流出 20px */ + zoom: 1; +} + +.typecho-install-patch li { + font-weight: 600; + float: left; + color: #999; + font-size: 12px; + height: 30px; + line-height: 30px; + padding-left: 20px; + left: -20px; + position: relative; + margin-right: 15px; + background: #333 url(../images/sprite.png) no-repeat scroll 0px 0px; +} + +.typecho-install-patch li.current { + color: #fff; +} + + +/** + * 安装主体内容 + */ +.typecho-install { + margin: 30px auto; + *padding-bottom: 30px; +} + +.typecho-install .typecho-install-title, .typecho-install .typecho-install-body { + padding: 0px 0px 10px 0px;; + margin: 0px 0px 10px 0px; + border-bottom: 1px solid #dee4c5; +} + +.typecho-install .typecho-install-title { + line-height: 25px; + height: 25px; + padding-left: 100px; + background: url(../images/sprite.png) no-repeat scroll 0px -75px; +} + +/* +.typecho-install .typecho-install-body { + +} + */ + +.typecho-install .typecho-install-body h2 { + margin-top: 10px; + color: #e47e00; +} + +.typecho-install .typecho-install-body p { + line-height: 18px; + margin-top: 5px; + text-align: justify; +} + +.typecho-install .session { + margin-bottom: 20px; +} + +.typecho-install .session ul { + font-size: 13px; + margin: 15px 0px 0px 20px; +} + +.typecho-install .session a:link, .typecho-install .session a:hover { +} + +.typecho-install .typecho-option { + margin: 10px 0px; +} + +.typecho-install .typecho-option li { + margin-bottom: 5px; +} + +.typecho-install .typecho-option .message { + margin: 2px 0px; + overflow: hidden; +} + +.typecho-install .typecho-option .message, +.typecho-install .typecho-option input { + width: 325px; +} + +.typecho-install .typecho-option input.mini { + width: 125px; +} + +/* +.typecho-install .submit { +margin-top: 25px; +} + */ + +/** + * @安装样式结束 + */ + +/** + * 后台分页 + */ +.typecho-pager { + text-align: center; + height: 15px; +} + +.typecho-pager .typecho-pager-content { + display: inline-block; + *display: inline; + *zoom: 1; +} + +.typecho-pager h5 { + font-size: 12px; + line-height: 15px; + font-weight: normal; + float: left; +} + +.typecho-pager ul { + line-height: 15px; + height: 15px; + overflow: hidden; + float: left; + zoom: 1; +} + +.typecho-pager li { + font-family: arial,sans-serif; + margin-right: 3px; + font-size: 12px; + float: left; + height: 15px; + line-height: 15px; +} + +.typecho-pager a { + color: #333; + display: block; + height: 15px; + outline: none; + padding: 0 4px; + float: left; +} + +.typecho-pager a:hover { + color: #333; + text-decoration: none; + background: #dee4c5; +} + +.typecho-pager li.current, .typecho-pager li.current a { + background: #e47e00; +} + +.typecho-pager li.current a { + color: #fff; +} + + +/** + * 登录框 + */ +.typecho-login { + position: relative; + margin: 15% auto; +} + +.typecho-login .logo, .typecho-login .logo-dark { + margin: 0px auto 15px; +} + +.typecho-login form { + background: #e5ead1; + margin: 0 10px; + padding: 25px 20px; + font-size: 12px; +} + +.typecho-login legend { + display: none; +} + +.typecho-login label { + display: block; + font-weight: bold; +} + +.typecho-login input.text { + width: 205px; + font-size: 18px; +} + +.typecho-login form p { + margin-bottom:15px; +} + +.typecho-login form p.submit { + margin: 5px 0px 0px 0px; + position: relative; +} + +.typecho-login form p.submit button { + position: absolute; + right: 0px; top: 0px; +} + +.typecho-login .more-link { + font-size: 12px; + margin: 10px auto; + padding: 0 10px; + clear: both; + overflow: hidden; +} + +.typecho-login .more-link .back-to-site { + float: left; +} + +.typecho-login .more-link .forgot-password { + float: right; +} + + +/** + * 后台头部导航 + */ +.typecho-head-guid { + height: 30px; + background: #333; + color: #fff; + position: relative; + z-index: 250; /* IE 是个 250 */ + border-bottom: 1px solid #DCE2C0; +} + +.typecho-head-guid dl { + overflow: hidden; + margin-left:10px; + zoom: 1; +} + +.typecho-head-guid dt { + float: left; + margin: 0; + font-size: 13px; + overflow: hidden; +} + +.typecho-head-guid dt a:link, .typecho-head-guid dt a:visited { + float: left; + color: #fff; + height: 30px; + line-height: 30px; + padding: 0 30px; + background: #333; + display: block; + outline: none; +} + +/** 增加focus类用来标示当前的菜单项 by 70 */ +.typecho-head-guid dt.focus a:link, .typecho-head-guid dt.focus a:visited, +.typecho-head-guid dt.current a:link, .typecho-head-guid dt.current a:visited, +.typecho-head-guid dt a:hover { + background: #404040 /*url(../images/sprite.png) 0 -360px repeat-x*/; + /*text-decoration: none;*/ +} + +.typecho-head-guid dd { + display:none; + position:absolute; + /* 替换下拉菜单背景 by fen (2008-11-12) */ + /* background: url(../images/typecho-head-guid-shadow.png) bottom no-repeat; + border: 1px solid #E5EAD1; + border-top: none;*/ + border: 1px solid #CED7A8; + border-top: none; + background: #DCE2C0; + font-size: 13px; + overflow: hidden; + z-index:100; + padding: 10px; + z-index: 250; + top: 30px; + min-width: 180px; + *width: 180px; /* IE需要这个宽度 */ + -moz-border-radius-bottomleft: 3px; + -moz-border-radius-bottomright: 3px; + -webkit-border-bottom-left-radius: 3px; + -webkit-border-bottom-right-radius: 3px; + + /* hope IE support border radius, God save me! */ + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} + +.typecho-head-guid ul { + position: relative; + top: 0; + padding: 0; +} + +.typecho-head-guid li { + /*margin-bottom: 1px;*/ + background: url(../images/sprite.png) 0px -370px repeat-x; + padding-top: 2px; +} + +.typecho-head-guid dd li.first { + background: none; + padding-top: 0; +} + +.typecho-head-guid dd li.focus a, .typecho-head-guid dd li.focus a:hover { + /*background: #E68A17; + color: #fff;*/ + background: #EDF0DF url(../images/sprite.png) right -412px no-repeat; +} + +/* 快捷键 +.typecho-head-guid dd a span.hotkey { + float: right; + margin: 2px -40px 0 0; + font-size: 11px; + color: #666; +} + +.typecho-head-guid dd li.focus a span.hotkey, .typecho-head-guid dd li.focus a:hover span.hotkey { + color: #fff; +}*/ + +.typecho-head-guid dd a:link, .typecho-head-guid dd a:visited { + text-decoration: none; + color: #333; + display: block; + padding: 5px 37px 5px 7px; + zoom: 1; +} + +.typecho-head-guid dd a:hover { + background: #EDF0DF; +} + +.typecho-head-guid .operate { + color: #ccc; + position:absolute; + font-size: 12px; + top: 0px; + right: 5px; + /* review IE */ + *right: 25px; + height: 30px; + line-height: 30px; +} + +.typecho-head-guid .operate a.exit { + display: inline-block; + background: url(../images/sprite.png) no-repeat scroll 0px -223px; + width: 20px; + height: 20px; + text-indent: -999px; + outline: none; + overflow: hidden; + position:relative; + *position:absolute; + top: 5px; +} + +.typecho-head-guid .operate .author { + margin-right: 8px; + text-decoration: underline; +} + + +/** + * 注脚 + */ +.typecho-foot { + background: #333333; + padding: 15px 25px 80px 25px; + font-size: 12px; + text-align: center; + color: #999; + /* + position: absolute; + height: 100%; + width: 100%; + */ +} + +.typecho-foot h4 { + margin: 5px auto; +} + +.typecho-foot h4 a { + margin: 0px auto; +} + +.typecho-foot em { + color: #fff; +} + +/* +.typecho-foot .copyright { + +} + + .typecho-foot .resource { + +} + */ + +.typecho-foot .resource ul { + margin: 5px auto; + text-align: center; + position: relative; + overflow: hidden; + display: inline-block; + *display: inline; + *zoom: 1; +} + +.typecho-foot .resource li { + font-size: 12px; + left: -6px; + position: relative; + float: left; + padding: 0px 5px; + line-height: 14px; + border-left: 1px solid #505050; +} + +.typecho-foot .resource li a:link, .typecho-foot .resource li a:visited { + color: #999; +} + +.typecho-foot .resource li a:hover, .typecho-foot .resource li a:active { + color: #fff; +} + +.typecho-foot-v2 { + text-align: left; +} + +.typecho-foot-v2 h4 { + float: left; + margin-right: 10px; +} + +.typecho-foot-v2 h4 a { + margin: 0px; +} + +.typecho-foot-v2 .resource ul { + text-align: left; +} + +/** + * 标题 + */ +.typecho-page-title { + margin-top: 30px; +} + +.typecho-page-title div { + height: 30px; + background: url(../images/sprite.png) repeat-x scroll 0px -1485px; +} + +.typecho-page-title div a { + color: #E47E00; +} + +.typecho-page-title h2 { + background: #f7fbe9; + padding-right: 10px; + font-size: 16px; + line-height: 30px; + height: 30px; + float: left; +} + +.typecho-page-title p { + height: 30px; + float: right; + background: #f7fbe9; + padding-left: 10px; +} + +.typecho-page-title a:link, .typecho-page-title a:visited { + font-size: 13px; + line-height: 30px; + font-weight: bold; +} + +.typecho-page-title a:hover { + text-decoration: underline; +} + + +/** + * 后台页面主体 + */ +.typecho-page-main { + margin: 10px auto; + *padding-bottom: 10px; +} + +.typecho-page-main .typecho-option-tabs { + font-size: 13px; + font-weight: bold; +} + +/** + * 后台主页左侧导航列表 + */ +.typecho-dashboard-nav h3 { + font-size: 14px; + font-weight: bold; + margin-bottom: 10px; +} + +.typecho-dashboard-nav h3.intro { + font-size: 13px; + font-weight: normal; +} + +.typecho-dashboard-nav .intro-link { + background: none; + padding: 0px; + font-size: 13px; + margin-bottom: 20px; +} + +.typecho-dashboard-nav .intro-link ul { +} + +.typecho-dashboard-nav .intro-link li { + border: none; + margin: 2px 0px; +} + +.typecho-dashboard-nav .dashboard-status { + font-size: 12px; +} + +.typecho-dashboard-nav .status p { + margin-bottom: 5px; +} + +.typecho-dashboard-nav .update-check { + background: #dee4c5; + color:#e47e00; + margin-bottom: 25px; + padding: 10px; + font-size: 12px; + text-align: center; +} + +.typecho-dashboard-nav .update-check p { + +} + +.typecho-dashboard-nav .update-check .current { + font-size: 13px; + font-weight: bold; +} + +.typecho-dashboard-nav .update-check .current em { + font-weight: bold; +} + +.typecho-dashboard-nav .update-check .latest { + font-size: 12px; +} + +.typecho-dashboard-nav .update-check .latest a, +.typecho-dashboard-nav .update-check .latest em { + color: #666; +} + +/** + * 主页主体 + */ +.typecho-dashboard-main { + +} + +.typecho-dashboard-main .section { + font-size: 13px; + margin-bottom: 20px; +} + +.typecho-dashboard-main .section h4 { + font-size: 14px; + margin-bottom: 10px; +} + +.typecho-dashboard-main .section ul { +} + +.typecho-dashboard-main .section li { + text-align: justify; + line-height: 26px; +} + +.typecho-dashboard-main .section .tags { + margin: 0px 5px; +} + +.typecho-dashboard-main .section .title { + +} + +.typecho-dashboard-main .section .date { + +} + +.typecho-dashboard-main .section .category { + +} + + +/** + * 标签页 + */ +.typecho-option-tabs { + background: #dee4c5; + height: 30px; + overflow: hidden; + zoom: 1; +} + +.typecho-option-tabs li { + float: left; + margin: 4px 0px 0px 5px; + height: 26px; +} + +.typecho-option-tabs li:hover, .typecho-option-tabs li.current { + background: #f7fbe9; +} + +.typecho-option-tabs li a:link, .typecho-option-tabs li a:visited { + display: block; + outline: none; + color: #333; + text-decoration: none; + padding: 3px 15px; +} + +/** + * 表格列表页 + */ +.typecho-article-list { + margin-top: 25px; +} + +/** + * 列表页选项 + */ +.typecho-list .typecho-pager { + margin: 10px 0px 20px; +} + +.typecho-list-operate { + height: 30px; + overflow: hidden; + font-size: 12px; + zoom: 1; +} + +.typecho-list-operate input { + font-size: 12px; +} + +.typecho-list-operate p.operate { + float: left; +} + +.typecho-list-operate p.search { + float: right; +} + +.typecho-list-operate span.operate-button { + cursor: pointer; + color: #BD6800; +} + +.typecho-list-operate a:hover { + text-decoration: none; +} + +/** + * 列表表格 + */ +/** 增加表格标题 by 70 */ +.typecho-list-table-title { + font-size:14px; + font-weight: normal; + color: #777; + text-align: center; +} + +.typecho-list-table { + width: 100%; + margin: 10px 0 20px 0; + font-size: 13px; + border-collapse: collapse; +} + +.typecho-list-table input { + border: none; /* 重置 input */ +} + +.typecho-list-table thead { + background: #dee4c5; +} + +.typecho-list-table th { + text-align: left; + padding: 3px 5px; + font-weight: bold; + border-bottom: 1px solid #d1daad; +} + +.typecho-list-table td { + height: 32px; + line-height: 32px; + padding: 0 5px; +} + +.typecho-list-table tbody tr.even { + background: #eff5d9; +} + +.typecho-list-table tbody tr.hover, .typecho-list-table tbody tr:hover { + +} + +.typecho-list-table tbody tr.hover a, .typecho-list-table tbody tr:hover td { + background: #E3EEBD; +} + +.typecho-list-table h4 { + font-weight: normal; +} + +.typecho-list-table sup { + font-size: 12px; + margin-left: 5px; +} + +.typecho-list-table .important { + color: #e47e00; +} + +/** + * 不使用表格的列表 + */ +ul.typecho-list-notable { + font-weight: normal; + color: #777; + margin: 0; + padding: 0; + line-height: 24px; + font-size: 14px; + font-family: "Lucida Grande","Lucida Sans Unicode",Tahoma,Verdana; +} + +ul.typecho-list-notable img { + background: #FFF; + padding: 2px; +} + +ul.typecho-list-notable .header { + padding: 10px 10px 0 10px; + height: 22px; +} + +ul.typecho-list-notable .footer { + padding: 0 10px 10px 10px; + font-size: 13px; + height: 22px; +} + +ul.typecho-list-notable .left { + float: left; +} + +ul.typecho-list-notable .right { + float: right; + text-align: right; +} + +ul.typecho-list-notable p { + font-size:14px; + font-family: Georgia,Times,"Times New Roman",serif; + padding: 10px; +} + +ul.typecho-list-notable li { + margin: 0 0 5px 0; + padding: 5px; + list-style: none; + background: #eff5d9; + + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + + /* hope IE support border radius, God save me! */ + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +ul.typecho-list-notable li.even { + +} + +ul.typecho-list-notable li:hover { + background: #E3EEBD; +} + +/** + * 图片列表 + */ +.typecho-thumb-list { + overflow: hidden; + clear: both; + width: 960px; + margin-bottom: 70px; +} + +.typecho-thumb-list a:hover { +} + +.typecho-thumb-list li { + text-align: center; + width: 230px; + float: left; + position: relative; + padding-top: 175px; + height: 55px; + margin: 20px 10px 00px 0px; +} + +.typecho-thumb-list .title { + font-size: 12px; + color: #e47e00; + font-size: 14px; +} + +.typecho-thumb-list .title a { + color: #e47e00; + display: block; +} + +.typecho-thumb-list .thumb { + border: 1px solid #dee4c5; + background: #fff; + padding: 1px; + position: absolute; + top:25px; + left:15px; +} + +.typecho-thumb-list .thumb img { + background: #E5EAD1; + width: 195px; + height: 145px; +} + +.typecho-thumb-list .description { + +} + +.typecho-thumb-list .current { + background: #e47e00; + color: #fff; + height: 20px; + line-height: 20px; + width: 200px; + position: absolute; + top:0px; + left:15px; +} + +/** + * 后台配置项 + */ +.typecho-page-main .typecho-option { + position: relative; + top: -1px; + font-size: 12px; + border-bottom: 1px solid #EBEFDA; + border-top: 1px solid #fff; +} + +.typecho-page-main .typecho-option label.typecho-label { + width: 190px; + margin-left: -200px; +} + +.typecho-page-main .typecho-option li { + margin: 15px 0px; + padding-left: 200px; +} + +.typecho-page-main .typecho-option input.text { + width: 475px; +} + +.typecho-page-main .typecho-option input.mini { + width: 115px; +} + +.typecho-page-main .typecho-option textarea { + width: 475px; + height: 150px; +} + +.typecho-page-main .typecho-option .description { + line-height:18px; + margin-top:5px; + text-align:justify; +} + +.typecho-page-main .typecho-option-submit { + border-bottom: none; +} + +/** + * 编辑模板 + */ +.typecho-select-theme { + height: 25px; + line-height: 25px; + margin: 15px 0px; +} + +.typecho-select-theme h5 { + color: #E47E00; + font-weight: bold; + float: left; + font-size: 14px; + width: 120px; + margin-right: 10px; +} + +.typecho-select-theme select { + width: 150px; +} + +/** + * 编辑模板(编辑详情) + */ +.typecho-edit-theme { + overflow: hidden; +} + +.typecho-edit-theme ul { + width: 120px; + float: left; + overflow: hidden; + padding: 10px 0px 10px 10px; +} + +.typecho-edit-theme li { + line-height: 25px; + height: 25px; + margin-bottom: 5px; + font-size: 12px; + padding: 0px 0px 0px 10px; +} + +.typecho-edit-theme li a:link, .typecho-edit-theme li a:visited { + color: #333; + display: block; +} + +.typecho-edit-theme li a:hover { + text-decoration: none; +} + +.typecho-edit-theme .current { + background: #DEE4C5; +} + +.typecho-edit-theme .content { + width: 810px; + float: left; + overflow: hidden; + padding: 10px 10px 10px 0px; +} + +.typecho-edit-theme .submit { + margin: 0 130px 130px 130px; + width: 810px; + text-align: center; +} + +.typecho-edit-theme textarea { + width: 800px; + height: 500px; +} + +/** + * 编写页面 + */ + +.typecho-post-area { + margin-bottom: 15px; +} + +.typecho-post-area label { + font-size: 13px; + font-weight: bold; + margin: 5px 0px; + display: block; +} + +.typecho-post-area .submit { + text-align: right; + margin: 15px 0px 20px; +} + +.column-24 .typecho-post-area input { + font-size: 13px; + width: 942px; +} + +.column-24 .typecho-post-area input.title { + font-size: 20px; /* 撰写页面标题input */ +} + +.column-24 .typecho-post-area textarea { + font-size: 13px; + width: 942px; +} + +.typecho-post-option .typecho-option { + border: 0px; + margin: 0px; +} + +.typecho-post-option .typecho-option select { + width: 120px; +} + +.typecho-post-option .typecho-option .message { + margin: 5px 0px; + width: 60%; +} + +/* +.typecho-post-option .typecho-option { + +} + */ + +.typecho-post-option .post-option-content { + clear: both; + zoom: 1; +} + +.typecho-post-option .post-option-content textarea { + width: 505px; + height: 75px; + clear: both; +} + +/** + * 标签列表 + */ +.tag-list { + font-size: 12px; + overflow: hidden; +} + +.tag-list li { + float: left; +} + +.typecho-page-main .tag-list li { + padding: 0px; + margin: 0px; +} + +.tag-list a:link, .tag-list a:visited { + outline: none; + padding: 0px 2px; +} + +.tag-list a:hover { + color: #fff; + background: #E47E00; + text-decoration: none; +} + +/** + * 查看留言回复 + */ +.typecho-view-comment { + +} + +.typecho-view-comment ul { + overflow: hidden; + zoom: 1; + width: 100% +} + +.typecho-view-comment li { + float: left; + width: 33.3%; +} + +.typecho-view-comment li input { + width: 250px; +} + +.typecho-view-comment li label { + display: block; + font-size: 13px; + font-weight: bold; +} + +.typecho-view-comment h4 { + font-size: 14px; + font-weight: bold; + margin: 10px 0px 5px 0px; +} + +.typecho-view-comment .status { + text-align: right; + margin: 5px 15px; +} + + +.typecho-view-comment textarea { + width: 780px; + height: 200px; +} diff --git a/mockup/images/grid.png b/mockup/images/grid.png new file mode 100644 index 0000000000000000000000000000000000000000..824ac38feb974899a73070755705ccba03c1bdc3 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^8bHj*!3-p4H_I#pQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jir4~tLR|m<|Nrmpr=Z`HO@Sf;o-U3d6}OTSj&MsnU{E-~ Yz^uj~pZGEL3{Z~2)78&qol`;+0A#WzSO5S3 literal 0 HcmV?d00001 diff --git a/mockup/images/psd&png/sprite.png b/mockup/images/psd&png/sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..14562d82ad26b3ec816e1b8db9e36f18e5b38a86 GIT binary patch literal 62276 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%0DJrFeM##G5=^dT}nFMa{kd^`jm9s1^r{fg;LT_ zQ_^39oJ>l3Dnx)1K1`#R)t)-+R3PEdT#V7@>rKCf}ptY2=t{k*TN$U&w zhEnDtCH)h=F@8>eh7k-31_T3w0l|P^Kro;&piYpI_7x!KDQVxCmXg*Ak@J+aR)!oY zX{`wP515kH?{(GwZVPf5$*FO2=cfCeRdOG&KM&@POcE0wRI6Zq` zM`KTI_v=`AQ`rAH8g2?ZU`K;ZX%FmZI8Zm$U9dUmbnk=B`8b727_f5ul=Rc>))VTCO>KFFj2Zv74S>7Pg-rPf3S%)Z^g#J@o>E2<@t;rKBVF)zi$1v9q3* zk`C>yr=_HIyX%RRv`9&d+hxIkU_dY+7!V8y1_T4s$iU?(VUyNreVk&$tW*8$c}p2c(eN6LG6#6EfI=kpn%=tVFf7!V8y1_T3w0l~memI3zv04xJx ACIA2c literal 0 HcmV?d00001 diff --git a/mockup/images/psd&png/typecho-head-guid-shadow.png b/mockup/images/psd&png/typecho-head-guid-shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..7610f07cea3a60f56028e04a33c7611089b889de GIT binary patch literal 47831 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 AUH||9 literal 0 HcmV?d00001 diff --git a/mockup/index.html b/mockup/index.html new file mode 100644 index 00000000..8015e989 --- /dev/null +++ b/mockup/index.html @@ -0,0 +1,40 @@ + + + + + Typecho 静态模板 + + +

    Typecho 静态模板

    +

    版本:$Id: index.html 541 2008-10-21 14:22:21Z i.feelinglucky $

    +

    安装

    +
      +
    1. 原型 简述[已完成]
    2. +
    3. 原型 配置[已完成]
    4. +
    5. 原型 安装成功[已完成]
    6. +
    + +

    后台

    +
      +
    1. 原型 登录页1[已完成]
    2. + +
    3. 原型 主页[已完成]
    4. +
    5. 原型 列表[已完成]
    6. +
    7. 原型 遮层[已完成]
    8. +
    9. 原型 撰写[已完成]
    10. +
    11. 原型 配置[已完成]
    12. +
    13. 原型 模板[已完成]
    14. +
    15. 原型 编辑模板[已完成]
    16. +
    + +

    结构

    +
      +
    1. 原型 菜单[已完成]
    2. +
    3. 原型 脚注[已完成] 脚注2[已完成] +
    4. +
    5. 原型 汇总
    6. +
    + + diff --git a/mockup/javascript/mootools-1.2.1-core-yc.js b/mockup/javascript/mootools-1.2.1-core-yc.js new file mode 100644 index 00000000..752b98ce --- /dev/null +++ b/mockup/javascript/mootools-1.2.1-core-yc.js @@ -0,0 +1,349 @@ +//MooTools, , My Object Oriented (JavaScript) Tools. Copyright (c) 2006-2008 Valerio Proietti, , MIT Style License. + +var MooTools={version:"1.2.1",build:"0d4845aab3d9a4fdee2f0d4a6dd59210e4b697cf"};var Native=function(K){K=K||{};var A=K.name;var I=K.legacy;var B=K.protect; +var C=K.implement;var H=K.generics;var F=K.initialize;var G=K.afterImplement||function(){};var D=F||I;H=H!==false;D.constructor=Native;D.$family={name:"native"}; +if(I&&F){D.prototype=I.prototype;}D.prototype.constructor=D;if(A){var E=A.toLowerCase();D.prototype.$family={name:E};Native.typize(D,E);}var J=function(N,L,O,M){if(!B||M||!N.prototype[L]){N.prototype[L]=O; +}if(H){Native.genericize(N,L,B);}G.call(N,L,O);return N;};D.alias=function(N,L,O){if(typeof N=="string"){if((N=this.prototype[N])){return J(this,L,N,O); +}}for(var M in N){this.alias(M,N[M],L);}return this;};D.implement=function(M,L,O){if(typeof M=="string"){return J(this,M,L,O);}for(var N in M){J(this,N,M[N],L); +}return this;};if(C){D.implement(C);}return D;};Native.genericize=function(B,C,A){if((!A||!B[C])&&typeof B.prototype[C]=="function"){B[C]=function(){var D=Array.prototype.slice.call(arguments); +return B.prototype[C].apply(D.shift(),D);};}};Native.implement=function(D,C){for(var B=0,A=D.length;B-1:this.indexOf(A)>-1;},trim:function(){return this.replace(/^\s+|\s+$/g,"");},clean:function(){return this.replace(/\s+/g," ").trim(); +},camelCase:function(){return this.replace(/-\D/g,function(A){return A.charAt(1).toUpperCase();});},hyphenate:function(){return this.replace(/[A-Z]/g,function(A){return("-"+A.charAt(0).toLowerCase()); +});},capitalize:function(){return this.replace(/\b[a-z]/g,function(A){return A.toUpperCase();});},escapeRegExp:function(){return this.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1"); +},toInt:function(A){return parseInt(this,A||10);},toFloat:function(){return parseFloat(this);},hexToRgb:function(B){var A=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/); +return(A)?A.slice(1).hexToRgb(B):null;},rgbToHex:function(B){var A=this.match(/\d{1,3}/g);return(A)?A.rgbToHex(B):null;},stripScripts:function(B){var A=""; +var C=this.replace(/]*>([\s\S]*?)<\/script>/gi,function(){A+=arguments[1]+"\n";return"";});if(B===true){$exec(A);}else{if($type(B)=="function"){B(A,C); +}}return C;},substitute:function(A,B){return this.replace(B||(/\\?\{([^{}]+)\}/g),function(D,C){if(D.charAt(0)=="\\"){return D.slice(1);}return(A[C]!=undefined)?A[C]:""; +});}});Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(B){for(var A in this){if(this.hasOwnProperty(A)&&this[A]===B){return A;}}return null; +},hasValue:function(A){return(Hash.keyOf(this,A)!==null);},extend:function(A){Hash.each(A,function(C,B){Hash.set(this,B,C);},this);return this;},combine:function(A){Hash.each(A,function(C,B){Hash.include(this,B,C); +},this);return this;},erase:function(A){if(this.hasOwnProperty(A)){delete this[A];}return this;},get:function(A){return(this.hasOwnProperty(A))?this[A]:null; +},set:function(A,B){if(!this[A]||this.hasOwnProperty(A)){this[A]=B;}return this;},empty:function(){Hash.each(this,function(B,A){delete this[A];},this); +return this;},include:function(B,C){var A=this[B];if(A==undefined){this[B]=C;}return this;},map:function(B,C){var A=new Hash;Hash.each(this,function(E,D){A.set(D,B.call(C,E,D,this)); +},this);return A;},filter:function(B,C){var A=new Hash;Hash.each(this,function(E,D){if(B.call(C,E,D,this)){A.set(D,E);}},this);return A;},every:function(B,C){for(var A in this){if(this.hasOwnProperty(A)&&!B.call(C,this[A],A)){return false; +}}return true;},some:function(B,C){for(var A in this){if(this.hasOwnProperty(A)&&B.call(C,this[A],A)){return true;}}return false;},getKeys:function(){var A=[]; +Hash.each(this,function(C,B){A.push(B);});return A;},getValues:function(){var A=[];Hash.each(this,function(B){A.push(B);});return A;},toQueryString:function(A){var B=[]; +Hash.each(this,function(F,E){if(A){E=A+"["+E+"]";}var D;switch($type(F)){case"object":D=Hash.toQueryString(F,E);break;case"array":var C={};F.each(function(H,G){C[G]=H; +});D=Hash.toQueryString(C,E);break;default:D=E+"="+encodeURIComponent(F);}if(F!=undefined){B.push(D);}});return B.join("&");}});Hash.alias({keyOf:"indexOf",hasValue:"contains"}); +var Event=new Native({name:"Event",initialize:function(A,F){F=F||window;var K=F.document;A=A||F.event;if(A.$extended){return A;}this.$extended=true;var J=A.type; +var G=A.target||A.srcElement;while(G&&G.nodeType==3){G=G.parentNode;}if(J.test(/key/)){var B=A.which||A.keyCode;var M=Event.Keys.keyOf(B);if(J=="keydown"){var D=B-111; +if(D>0&&D<13){M="f"+D;}}M=M||String.fromCharCode(B).toLowerCase();}else{if(J.match(/(click|mouse|menu)/i)){K=(!K.compatMode||K.compatMode=="CSS1Compat")?K.html:K.body; +var I={x:A.pageX||A.clientX+K.scrollLeft,y:A.pageY||A.clientY+K.scrollTop};var C={x:(A.pageX)?A.pageX-F.pageXOffset:A.clientX,y:(A.pageY)?A.pageY-F.pageYOffset:A.clientY}; +if(J.match(/DOMMouseScroll|mousewheel/)){var H=(A.wheelDelta)?A.wheelDelta/120:-(A.detail||0)/3;}var E=(A.which==3)||(A.button==2);var L=null;if(J.match(/over|out/)){switch(J){case"mouseover":L=A.relatedTarget||A.fromElement; +break;case"mouseout":L=A.relatedTarget||A.toElement;}if(!(function(){while(L&&L.nodeType==3){L=L.parentNode;}return true;}).create({attempt:Browser.Engine.gecko})()){L=false; +}}}}return $extend(this,{event:A,type:J,page:I,client:C,rightClick:E,wheel:H,relatedTarget:L,target:G,code:B,key:M,shift:A.shiftKey,control:A.ctrlKey,alt:A.altKey,meta:A.metaKey}); +}});Event.Keys=new Hash({enter:13,up:38,down:40,left:37,right:39,esc:27,space:32,backspace:8,tab:9,"delete":46});Event.implement({stop:function(){return this.stopPropagation().preventDefault(); +},stopPropagation:function(){if(this.event.stopPropagation){this.event.stopPropagation();}else{this.event.cancelBubble=true;}return this;},preventDefault:function(){if(this.event.preventDefault){this.event.preventDefault(); +}else{this.event.returnValue=false;}return this;}});var Class=new Native({name:"Class",initialize:function(B){B=B||{};var A=function(){for(var E in this){if($type(this[E])!="function"){this[E]=$unlink(this[E]); +}}this.constructor=A;if(Class.prototyping){return this;}var D=(this.initialize)?this.initialize.apply(this,arguments):this;if(this.options&&this.options.initialize){this.options.initialize.call(this); +}return D;};for(var C in Class.Mutators){if(!B[C]){continue;}B=Class.Mutators[C](B,B[C]);delete B[C];}$extend(A,this);A.constructor=Class;A.prototype=B; +return A;}});Class.Mutators={Extends:function(C,A){Class.prototyping=A.prototype;var B=new A;delete B.parent;B=Class.inherit(B,C);delete Class.prototyping; +return B;},Implements:function(A,B){$splat(B).each(function(C){Class.prototying=C;$extend(A,($type(C)=="class")?new C:C);delete Class.prototyping;});return A; +}};Class.extend({inherit:function(B,E){var A=arguments.callee.caller;for(var D in E){var C=E[D];var G=B[D];var F=$type(C);if(G&&F=="function"){if(C!=G){if(A){C.__parent=G; +B[D]=C;}else{Class.override(B,D,C);}}}else{if(F=="object"){B[D]=$merge(G,C);}else{B[D]=C;}}}if(A){B.parent=function(){return arguments.callee.caller.__parent.apply(this,arguments); +};}return B;},override:function(B,A,E){var D=Class.prototyping;if(D&&B[A]!=D[A]){D=null;}var C=function(){var F=this.parent;this.parent=D?D[A]:B[A];var G=E.apply(this,arguments); +this.parent=F;return G;};B[A]=C;}});Class.implement({implement:function(){var A=this.prototype;$each(arguments,function(B){Class.inherit(A,B);});return this; +}});var Chain=new Class({$chain:[],chain:function(){this.$chain.extend(Array.flatten(arguments));return this;},callChain:function(){return(this.$chain.length)?this.$chain.shift().apply(this,arguments):false; +},clearChain:function(){this.$chain.empty();return this;}});var Events=new Class({$events:{},addEvent:function(C,B,A){C=Events.removeOn(C);if(B!=$empty){this.$events[C]=this.$events[C]||[]; +this.$events[C].include(B);if(A){B.internal=true;}}return this;},addEvents:function(A){for(var B in A){this.addEvent(B,A[B]);}return this;},fireEvent:function(C,B,A){C=Events.removeOn(C); +if(!this.$events||!this.$events[C]){return this;}this.$events[C].each(function(D){D.create({bind:this,delay:A,"arguments":B})();},this);return this;},removeEvent:function(B,A){B=Events.removeOn(B); +if(!this.$events[B]){return this;}if(!A.internal){this.$events[B].erase(A);}return this;},removeEvents:function(C){if($type(C)=="object"){for(var D in C){this.removeEvent(D,C[D]); +}return this;}if(C){C=Events.removeOn(C);}for(var D in this.$events){if(C&&C!=D){continue;}var B=this.$events[D];for(var A=B.length;A--;A){this.removeEvent(D,B[A]); +}}return this;}});Events.removeOn=function(A){return A.replace(/^on([A-Z])/,function(B,C){return C.toLowerCase();});};var Options=new Class({setOptions:function(){this.options=$merge.run([this.options].extend(arguments)); +if(!this.addEvent){return this;}for(var A in this.options){if($type(this.options[A])!="function"||!(/^on[A-Z]/).test(A)){continue;}this.addEvent(A,this.options[A]); +delete this.options[A];}return this;}});var Element=new Native({name:"Element",legacy:window.Element,initialize:function(A,B){var C=Element.Constructors.get(A); +if(C){return C(B);}if(typeof A=="string"){return document.newElement(A,B);}return $(A).set(B);},afterImplement:function(A,B){Element.Prototype[A]=B;if(Array[A]){return ; +}Elements.implement(A,function(){var C=[],G=true;for(var E=0,D=this.length;E";}return $.element(this.createElement(A)).set(B);},newTextNode:function(A){return this.createTextNode(A); +},getDocument:function(){return this;},getWindow:function(){return this.window;}});Window.implement({$:function(B,C){if(B&&B.$family&&B.uid){return B;}var A=$type(B); +return($[A])?$[A](B,C,this.document):null;},$$:function(A){if(arguments.length==1&&typeof A=="string"){return this.document.getElements(A);}var F=[];var C=Array.flatten(arguments); +for(var D=0,B=C.length;D1);A.each(function(E){var F=this.getElementsByTagName(E.trim());(B)?C.extend(F):C=F;},this);return new Elements(C,{ddup:B,cash:!D}); +}});(function(){var H={},F={};var I={input:"checked",option:"selected",textarea:(Browser.Engine.webkit&&Browser.Engine.version<420)?"innerHTML":"value"}; +var C=function(L){return(F[L]||(F[L]={}));};var G=function(N,L){if(!N){return ;}var M=N.uid;if(Browser.Engine.trident){if(N.clearAttributes){var P=L&&N.cloneNode(false); +N.clearAttributes();if(P){N.mergeAttributes(P);}}else{if(N.removeEvents){N.removeEvents();}}if((/object/i).test(N.tagName)){for(var O in N){if(typeof N[O]=="function"){N[O]=$empty; +}}Element.dispose(N);}}if(!M){return ;}H[M]=F[M]=null;};var D=function(){Hash.each(H,G);if(Browser.Engine.trident){$A(document.getElementsByTagName("object")).each(G); +}if(window.CollectGarbage){CollectGarbage();}H=F=null;};var J=function(N,L,S,M,P,R){var O=N[S||L];var Q=[];while(O){if(O.nodeType==1&&(!M||Element.match(O,M))){if(!P){return $(O,R); +}Q.push(O);}O=O[L];}return(P)?new Elements(Q,{ddup:false,cash:!R}):null;};var E={html:"innerHTML","class":"className","for":"htmlFor",text:(Browser.Engine.trident||(Browser.Engine.webkit&&Browser.Engine.version<420))?"innerText":"textContent"}; +var B=["compact","nowrap","ismap","declare","noshade","checked","disabled","readonly","multiple","selected","noresize","defer"];var K=["value","accessKey","cellPadding","cellSpacing","colSpan","frameBorder","maxLength","readOnly","rowSpan","tabIndex","useMap"]; +Hash.extend(E,B.associate(B));Hash.extend(E,K.associate(K.map(String.toLowerCase)));var A={before:function(M,L){if(L.parentNode){L.parentNode.insertBefore(M,L); +}},after:function(M,L){if(!L.parentNode){return ;}var N=L.nextSibling;(N)?L.parentNode.insertBefore(M,N):L.parentNode.appendChild(M);},bottom:function(M,L){L.appendChild(M); +},top:function(M,L){var N=L.firstChild;(N)?L.insertBefore(M,N):L.appendChild(M);}};A.inside=A.bottom;Hash.each(A,function(L,M){M=M.capitalize();Element.implement("inject"+M,function(N){L(this,$(N,true)); +return this;});Element.implement("grab"+M,function(N){L($(N,true),this);return this;});});Element.implement({set:function(O,M){switch($type(O)){case"object":for(var N in O){this.set(N,O[N]); +}break;case"string":var L=Element.Properties.get(O);(L&&L.set)?L.set.apply(this,Array.slice(arguments,1)):this.setProperty(O,M);}return this;},get:function(M){var L=Element.Properties.get(M); +return(L&&L.get)?L.get.apply(this,Array.slice(arguments,1)):this.getProperty(M);},erase:function(M){var L=Element.Properties.get(M);(L&&L.erase)?L.erase.apply(this):this.removeProperty(M); +return this;},setProperty:function(M,N){var L=E[M];if(N==undefined){return this.removeProperty(M);}if(L&&B[M]){N=!!N;}(L)?this[L]=N:this.setAttribute(M,""+N); +return this;},setProperties:function(L){for(var M in L){this.setProperty(M,L[M]);}return this;},getProperty:function(M){var L=E[M];var N=(L)?this[L]:this.getAttribute(M,2); +return(B[M])?!!N:(L)?N:N||null;},getProperties:function(){var L=$A(arguments);return L.map(this.getProperty,this).associate(L);},removeProperty:function(M){var L=E[M]; +(L)?this[L]=(L&&B[M])?false:"":this.removeAttribute(M);return this;},removeProperties:function(){Array.each(arguments,this.removeProperty,this);return this; +},hasClass:function(L){return this.className.contains(L," ");},addClass:function(L){if(!this.hasClass(L)){this.className=(this.className+" "+L).clean(); +}return this;},removeClass:function(L){this.className=this.className.replace(new RegExp("(^|\\s)"+L+"(?:\\s|$)"),"$1");return this;},toggleClass:function(L){return this.hasClass(L)?this.removeClass(L):this.addClass(L); +},adopt:function(){Array.flatten(arguments).each(function(L){L=$(L,true);if(L){this.appendChild(L);}},this);return this;},appendText:function(M,L){return this.grab(this.getDocument().newTextNode(M),L); +},grab:function(M,L){A[L||"bottom"]($(M,true),this);return this;},inject:function(M,L){A[L||"bottom"](this,$(M,true));return this;},replaces:function(L){L=$(L,true); +L.parentNode.replaceChild(this,L);return this;},wraps:function(M,L){M=$(M,true);return this.replaces(M).grab(M,L);},getPrevious:function(L,M){return J(this,"previousSibling",null,L,false,M); +},getAllPrevious:function(L,M){return J(this,"previousSibling",null,L,true,M);},getNext:function(L,M){return J(this,"nextSibling",null,L,false,M);},getAllNext:function(L,M){return J(this,"nextSibling",null,L,true,M); +},getFirst:function(L,M){return J(this,"nextSibling","firstChild",L,false,M);},getLast:function(L,M){return J(this,"previousSibling","lastChild",L,false,M); +},getParent:function(L,M){return J(this,"parentNode",null,L,false,M);},getParents:function(L,M){return J(this,"parentNode",null,L,true,M);},getChildren:function(L,M){return J(this,"nextSibling","firstChild",L,true,M); +},getWindow:function(){return this.ownerDocument.window;},getDocument:function(){return this.ownerDocument;},getElementById:function(O,N){var M=this.ownerDocument.getElementById(O); +if(!M){return null;}for(var L=M.parentNode;L!=this;L=L.parentNode){if(!L){return null;}}return $.element(M,N);},getSelected:function(){return new Elements($A(this.options).filter(function(L){return L.selected; +}));},getComputedStyle:function(M){if(this.currentStyle){return this.currentStyle[M.camelCase()];}var L=this.getDocument().defaultView.getComputedStyle(this,null); +return(L)?L.getPropertyValue([M.hyphenate()]):null;},toQueryString:function(){var L=[];this.getElements("input, select, textarea",true).each(function(M){if(!M.name||M.disabled){return ; +}var N=(M.tagName.toLowerCase()=="select")?Element.getSelected(M).map(function(O){return O.value;}):((M.type=="radio"||M.type=="checkbox")&&!M.checked)?null:M.value; +$splat(N).each(function(O){if(typeof O!="undefined"){L.push(M.name+"="+encodeURIComponent(O));}});});return L.join("&");},clone:function(O,L){O=O!==false; +var R=this.cloneNode(O);var N=function(V,U){if(!L){V.removeAttribute("id");}if(Browser.Engine.trident){V.clearAttributes();V.mergeAttributes(U);V.removeAttribute("uid"); +if(V.options){var W=V.options,S=U.options;for(var T=W.length;T--;){W[T].selected=S[T].selected;}}}var X=I[U.tagName.toLowerCase()];if(X&&U[X]){V[X]=U[X]; +}};if(O){var P=R.getElementsByTagName("*"),Q=this.getElementsByTagName("*");for(var M=P.length;M--;){N(P[M],Q[M]);}}N(R,this);return $(R);},destroy:function(){Element.empty(this); +Element.dispose(this);G(this,true);return null;},empty:function(){$A(this.childNodes).each(function(L){Element.destroy(L);});return this;},dispose:function(){return(this.parentNode)?this.parentNode.removeChild(this):this; +},hasChild:function(L){L=$(L,true);if(!L){return false;}if(Browser.Engine.webkit&&Browser.Engine.version<420){return $A(this.getElementsByTagName(L.tagName)).contains(L); +}return(this.contains)?(this!=L&&this.contains(L)):!!(this.compareDocumentPosition(L)&16);},match:function(L){return(!L||(L==this)||(Element.get(this,"tag")==L)); +}});Native.implement([Element,Window,Document],{addListener:function(O,N){if(O=="unload"){var L=N,M=this;N=function(){M.removeListener("unload",N);L(); +};}else{H[this.uid]=this;}if(this.addEventListener){this.addEventListener(O,N,false);}else{this.attachEvent("on"+O,N);}return this;},removeListener:function(M,L){if(this.removeEventListener){this.removeEventListener(M,L,false); +}else{this.detachEvent("on"+M,L);}return this;},retrieve:function(M,L){var O=C(this.uid),N=O[M];if(L!=undefined&&N==undefined){N=O[M]=L;}return $pick(N); +},store:function(M,L){var N=C(this.uid);N[M]=L;return this;},eliminate:function(L){var M=C(this.uid);delete M[L];return this;}});window.addListener("unload",D); +})();Element.Properties=new Hash;Element.Properties.style={set:function(A){this.style.cssText=A;},get:function(){return this.style.cssText;},erase:function(){this.style.cssText=""; +}};Element.Properties.tag={get:function(){return this.tagName.toLowerCase();}};Element.Properties.html=(function(){var C=document.createElement("div"); +var A={table:[1,"","
    "],select:[1,""],tbody:[2,"","
    "],tr:[3,"","
    "]}; +A.thead=A.tfoot=A.tbody;var B={set:function(){var E=Array.flatten(arguments).join("");var F=Browser.Engine.trident&&A[this.get("tag")];if(F){var G=C;G.innerHTML=F[1]+E+F[2]; +for(var D=F[0];D--;){G=G.firstChild;}this.empty().adopt(G.childNodes);}else{this.innerHTML=E;}}};B.erase=B.set;return B;})();if(Browser.Engine.webkit&&Browser.Engine.version<420){Element.Properties.text={get:function(){if(this.innerText){return this.innerText; +}var A=this.ownerDocument.newElement("div",{html:this.innerHTML}).inject(this.ownerDocument.body);var B=A.innerText;A.destroy();return B;}};}Element.Properties.events={set:function(A){this.addEvents(A); +}};Native.implement([Element,Window,Document],{addEvent:function(E,G){var H=this.retrieve("events",{});H[E]=H[E]||{keys:[],values:[]};if(H[E].keys.contains(G)){return this; +}H[E].keys.push(G);var F=E,A=Element.Events.get(E),C=G,I=this;if(A){if(A.onAdd){A.onAdd.call(this,G);}if(A.condition){C=function(J){if(A.condition.call(this,J)){return G.call(this,J); +}return true;};}F=A.base||F;}var D=function(){return G.call(I);};var B=Element.NativeEvents[F];if(B){if(B==2){D=function(J){J=new Event(J,I.getWindow()); +if(C.call(I,J)===false){J.stop();}};}this.addListener(F,D);}H[E].values.push(D);return this;},removeEvent:function(C,B){var A=this.retrieve("events");if(!A||!A[C]){return this; +}var F=A[C].keys.indexOf(B);if(F==-1){return this;}A[C].keys.splice(F,1);var E=A[C].values.splice(F,1)[0];var D=Element.Events.get(C);if(D){if(D.onRemove){D.onRemove.call(this,B); +}C=D.base||C;}return(Element.NativeEvents[C])?this.removeListener(C,E):this;},addEvents:function(A){for(var B in A){this.addEvent(B,A[B]);}return this; +},removeEvents:function(A){if($type(A)=="object"){for(var C in A){this.removeEvent(C,A[C]);}return this;}var B=this.retrieve("events");if(!B){return this; +}if(!A){for(var C in B){this.removeEvents(C);}this.eliminate("events");}else{if(B[A]){while(B[A].keys[0]){this.removeEvent(A,B[A].keys[0]);}B[A]=null;}}return this; +},fireEvent:function(D,B,A){var C=this.retrieve("events");if(!C||!C[D]){return this;}C[D].keys.each(function(E){E.create({bind:this,delay:A,"arguments":B})(); +},this);return this;},cloneEvents:function(D,A){D=$(D);var C=D.retrieve("events");if(!C){return this;}if(!A){for(var B in C){this.cloneEvents(D,B);}}else{if(C[A]){C[A].keys.each(function(E){this.addEvent(A,E); +},this);}}return this;}});Element.NativeEvents={click:2,dblclick:2,mouseup:2,mousedown:2,contextmenu:2,mousewheel:2,DOMMouseScroll:2,mouseover:2,mouseout:2,mousemove:2,selectstart:2,selectend:2,keydown:2,keypress:2,keyup:2,focus:2,blur:2,change:2,reset:2,select:2,submit:2,load:1,unload:1,beforeunload:2,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scroll:1}; +(function(){var A=function(B){var C=B.relatedTarget;if(C==undefined){return true;}if(C===false){return false;}return($type(this)!="document"&&C!=this&&C.prefix!="xul"&&!this.hasChild(C)); +};Element.Events=new Hash({mouseenter:{base:"mouseover",condition:A},mouseleave:{base:"mouseout",condition:A},mousewheel:{base:(Browser.Engine.gecko)?"DOMMouseScroll":"mousewheel"}}); +})();Element.Properties.styles={set:function(A){this.setStyles(A);}};Element.Properties.opacity={set:function(A,B){if(!B){if(A==0){if(this.style.visibility!="hidden"){this.style.visibility="hidden"; +}}else{if(this.style.visibility!="visible"){this.style.visibility="visible";}}}if(!this.currentStyle||!this.currentStyle.hasLayout){this.style.zoom=1;}if(Browser.Engine.trident){this.style.filter=(A==1)?"":"alpha(opacity="+A*100+")"; +}this.style.opacity=A;this.store("opacity",A);},get:function(){return this.retrieve("opacity",1);}};Element.implement({setOpacity:function(A){return this.set("opacity",A,true); +},getOpacity:function(){return this.get("opacity");},setStyle:function(B,A){switch(B){case"opacity":return this.set("opacity",parseFloat(A));case"float":B=(Browser.Engine.trident)?"styleFloat":"cssFloat"; +}B=B.camelCase();if($type(A)!="string"){var C=(Element.Styles.get(B)||"@").split(" ");A=$splat(A).map(function(E,D){if(!C[D]){return"";}return($type(E)=="number")?C[D].replace("@",Math.round(E)):E; +}).join(" ");}else{if(A==String(Number(A))){A=Math.round(A);}}this.style[B]=A;return this;},getStyle:function(G){switch(G){case"opacity":return this.get("opacity"); +case"float":G=(Browser.Engine.trident)?"styleFloat":"cssFloat";}G=G.camelCase();var A=this.style[G];if(!$chk(A)){A=[];for(var F in Element.ShortStyles){if(G!=F){continue; +}for(var E in Element.ShortStyles[F]){A.push(this.getStyle(E));}return A.join(" ");}A=this.getComputedStyle(G);}if(A){A=String(A);var C=A.match(/rgba?\([\d\s,]+\)/); +if(C){A=A.replace(C[0],C[0].rgbToHex());}}if(Browser.Engine.presto||(Browser.Engine.trident&&!$chk(parseInt(A)))){if(G.test(/^(height|width)$/)){var B=(G=="width")?["left","right"]:["top","bottom"],D=0; +B.each(function(H){D+=this.getStyle("border-"+H+"-width").toInt()+this.getStyle("padding-"+H).toInt();},this);return this["offset"+G.capitalize()]-D+"px"; +}if((Browser.Engine.presto)&&String(A).test("px")){return A;}if(G.test(/(border(.+)Width|margin|padding)/)){return"0px";}}return A;},setStyles:function(B){for(var A in B){this.setStyle(A,B[A]); +}return this;},getStyles:function(){var A={};Array.each(arguments,function(B){A[B]=this.getStyle(B);},this);return A;}});Element.Styles=new Hash({left:"@px",top:"@px",bottom:"@px",right:"@px",width:"@px",height:"@px",maxWidth:"@px",maxHeight:"@px",minWidth:"@px",minHeight:"@px",backgroundColor:"rgb(@, @, @)",backgroundPosition:"@px @px",color:"rgb(@, @, @)",fontSize:"@px",letterSpacing:"@px",lineHeight:"@px",clip:"rect(@px @px @px @px)",margin:"@px @px @px @px",padding:"@px @px @px @px",border:"@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)",borderWidth:"@px @px @px @px",borderStyle:"@ @ @ @",borderColor:"rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)",zIndex:"@",zoom:"@",fontWeight:"@",textIndent:"@px",opacity:"@"}); +Element.ShortStyles={margin:{},padding:{},border:{},borderWidth:{},borderStyle:{},borderColor:{}};["Top","Right","Bottom","Left"].each(function(G){var F=Element.ShortStyles; +var B=Element.Styles;["margin","padding"].each(function(H){var I=H+G;F[H][I]=B[I]="@px";});var E="border"+G;F.border[E]=B[E]="@px @ rgb(@, @, @)";var D=E+"Width",A=E+"Style",C=E+"Color"; +F[E]={};F.borderWidth[D]=F[E][D]=B[D]="@px";F.borderStyle[A]=F[E][A]=B[A]="@";F.borderColor[C]=F[E][C]=B[C]="rgb(@, @, @)";});(function(){Element.implement({scrollTo:function(H,I){if(B(this)){this.getWindow().scrollTo(H,I); +}else{this.scrollLeft=H;this.scrollTop=I;}return this;},getSize:function(){if(B(this)){return this.getWindow().getSize();}return{x:this.offsetWidth,y:this.offsetHeight}; +},getScrollSize:function(){if(B(this)){return this.getWindow().getScrollSize();}return{x:this.scrollWidth,y:this.scrollHeight};},getScroll:function(){if(B(this)){return this.getWindow().getScroll(); +}return{x:this.scrollLeft,y:this.scrollTop};},getScrolls:function(){var I=this,H={x:0,y:0};while(I&&!B(I)){H.x+=I.scrollLeft;H.y+=I.scrollTop;I=I.parentNode; +}return H;},getOffsetParent:function(){var H=this;if(B(H)){return null;}if(!Browser.Engine.trident){return H.offsetParent;}while((H=H.parentNode)&&!B(H)){if(D(H,"position")!="static"){return H; +}}return null;},getOffsets:function(){if(Browser.Engine.trident){var L=this.getBoundingClientRect(),J=this.getDocument().documentElement;return{x:L.left+J.scrollLeft-J.clientLeft,y:L.top+J.scrollTop-J.clientTop}; +}var I=this,H={x:0,y:0};if(B(this)){return H;}while(I&&!B(I)){H.x+=I.offsetLeft;H.y+=I.offsetTop;if(Browser.Engine.gecko){if(!F(I)){H.x+=C(I);H.y+=G(I); +}var K=I.parentNode;if(K&&D(K,"overflow")!="visible"){H.x+=C(K);H.y+=G(K);}}else{if(I!=this&&Browser.Engine.webkit){H.x+=C(I);H.y+=G(I);}}I=I.offsetParent; +}if(Browser.Engine.gecko&&!F(this)){H.x-=C(this);H.y-=G(this);}return H;},getPosition:function(K){if(B(this)){return{x:0,y:0};}var L=this.getOffsets(),I=this.getScrolls(); +var H={x:L.x-I.x,y:L.y-I.y};var J=(K&&(K=$(K)))?K.getPosition():{x:0,y:0};return{x:H.x-J.x,y:H.y-J.y};},getCoordinates:function(J){if(B(this)){return this.getWindow().getCoordinates(); +}var H=this.getPosition(J),I=this.getSize();var K={left:H.x,top:H.y,width:I.x,height:I.y};K.right=K.left+K.width;K.bottom=K.top+K.height;return K;},computePosition:function(H){return{left:H.x-E(this,"margin-left"),top:H.y-E(this,"margin-top")}; +},position:function(H){return this.setStyles(this.computePosition(H));}});Native.implement([Document,Window],{getSize:function(){var I=this.getWindow(); +if(Browser.Engine.presto||Browser.Engine.webkit){return{x:I.innerWidth,y:I.innerHeight};}var H=A(this);return{x:H.clientWidth,y:H.clientHeight};},getScroll:function(){var I=this.getWindow(); +var H=A(this);return{x:I.pageXOffset||H.scrollLeft,y:I.pageYOffset||H.scrollTop};},getScrollSize:function(){var I=A(this);var H=this.getSize();return{x:Math.max(I.scrollWidth,H.x),y:Math.max(I.scrollHeight,H.y)}; +},getPosition:function(){return{x:0,y:0};},getCoordinates:function(){var H=this.getSize();return{top:0,left:0,bottom:H.y,right:H.x,height:H.y,width:H.x}; +}});var D=Element.getComputedStyle;function E(H,I){return D(H,I).toInt()||0;}function F(H){return D(H,"-moz-box-sizing")=="border-box";}function G(H){return E(H,"border-top-width"); +}function C(H){return E(H,"border-left-width");}function B(H){return(/^(?:body|html)$/i).test(H.tagName);}function A(H){var I=H.getDocument();return(!I.compatMode||I.compatMode=="CSS1Compat")?I.html:I.body; +}})();Native.implement([Window,Document,Element],{getHeight:function(){return this.getSize().y;},getWidth:function(){return this.getSize().x;},getScrollTop:function(){return this.getScroll().y; +},getScrollLeft:function(){return this.getScroll().x;},getScrollHeight:function(){return this.getScrollSize().y;},getScrollWidth:function(){return this.getScrollSize().x; +},getTop:function(){return this.getPosition().y;},getLeft:function(){return this.getPosition().x;}});Native.implement([Document,Element],{getElements:function(H,G){H=H.split(","); +var C,E={};for(var D=0,B=H.length;D1),cash:!G});}});Element.implement({match:function(B){if(!B||(B==this)){return true;}var D=Selectors.Utils.parseTagAndID(B); +var A=D[0],E=D[1];if(!Selectors.Filters.byID(this,E)||!Selectors.Filters.byTag(this,A)){return false;}var C=Selectors.Utils.parseSelector(B);return(C)?Selectors.Utils.filter(this,C,{}):true; +}});var Selectors={Cache:{nth:{},parsed:{}}};Selectors.RegExps={id:(/#([\w-]+)/),tag:(/^(\w+|\*)/),quick:(/^(\w+|\*)$/),splitter:(/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),combined:(/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)(["']?)([^\4]*?)\4)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)}; +Selectors.Utils={chk:function(B,C){if(!C){return true;}var A=$uid(B);if(!C[A]){return C[A]=true;}return false;},parseNthArgument:function(F){if(Selectors.Cache.nth[F]){return Selectors.Cache.nth[F]; +}var C=F.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);if(!C){return false;}var E=parseInt(C[1]);var B=(E||E===0)?E:1;var D=C[2]||false;var A=parseInt(C[3])||0; +if(B!=0){A--;while(A<1){A+=B;}while(A>=B){A-=B;}}else{B=A;D="index";}switch(D){case"n":C={a:B,b:A,special:"n"};break;case"odd":C={a:2,b:0,special:"n"}; +break;case"even":C={a:2,b:1,special:"n"};break;case"first":C={a:0,special:"index"};break;case"last":C={special:"last-child"};break;case"only":C={special:"only-child"}; +break;default:C={a:(B-1),special:"index"};}return Selectors.Cache.nth[F]=C;},parseSelector:function(E){if(Selectors.Cache.parsed[E]){return Selectors.Cache.parsed[E]; +}var D,H={classes:[],pseudos:[],attributes:[]};while((D=Selectors.RegExps.combined.exec(E))){var I=D[1],G=D[2],F=D[3],B=D[5],C=D[6],J=D[7];if(I){H.classes.push(I); +}else{if(C){var A=Selectors.Pseudo.get(C);if(A){H.pseudos.push({parser:A,argument:J});}else{H.attributes.push({name:C,operator:"=",value:J});}}else{if(G){H.attributes.push({name:G,operator:F,value:B}); +}}}}if(!H.classes.length){delete H.classes;}if(!H.attributes.length){delete H.attributes;}if(!H.pseudos.length){delete H.pseudos;}if(!H.classes&&!H.attributes&&!H.pseudos){H=null; +}return Selectors.Cache.parsed[E]=H;},parseTagAndID:function(B){var A=B.match(Selectors.RegExps.tag);var C=B.match(Selectors.RegExps.id);return[(A)?A[1]:"*",(C)?C[1]:false]; +},filter:function(F,C,E){var D;if(C.classes){for(D=C.classes.length;D--;D){var G=C.classes[D];if(!Selectors.Filters.byClass(F,G)){return false;}}}if(C.attributes){for(D=C.attributes.length; +D--;D){var B=C.attributes[D];if(!Selectors.Filters.byAttribute(F,B.name,B.operator,B.value)){return false;}}}if(C.pseudos){for(D=C.pseudos.length;D--;D){var A=C.pseudos[D]; +if(!Selectors.Filters.byPseudo(F,A.parser,A.argument,E)){return false;}}}return true;},getByTagAndID:function(B,A,D){if(D){var C=(B.getElementById)?B.getElementById(D,true):Element.getElementById(B,D,true); +return(C&&Selectors.Filters.byTag(C,A))?[C]:[];}else{return B.getElementsByTagName(A);}},search:function(I,H,N){var B=[];var C=H.trim().replace(Selectors.RegExps.splitter,function(Y,X,W){B.push(X); +return":)"+W;}).split(":)");var J,E,U;for(var T=0,P=C.length;T":function(H,G,I,A,F){var C=Selectors.Utils.getByTagAndID(G,I,A);for(var E=0,D=C.length;EA){return false;}}return(C==A);},even:function(B,A){return Selectors.Pseudo["nth-child"].call(this,"2n+1",A); +},odd:function(B,A){return Selectors.Pseudo["nth-child"].call(this,"2n",A);}});Element.Events.domready={onAdd:function(A){if(Browser.loaded){A.call(this); +}}};(function(){var B=function(){if(Browser.loaded){return ;}Browser.loaded=true;window.fireEvent("domready");document.fireEvent("domready");};if(Browser.Engine.trident){var A=document.createElement("div"); +(function(){($try(function(){A.doScroll("left");return $(A).inject(document.body).set("html","temp").dispose();}))?B():arguments.callee.delay(50);})(); +}else{if(Browser.Engine.webkit&&Browser.Engine.version<525){(function(){(["loaded","complete"].contains(document.readyState))?B():arguments.callee.delay(50); +})();}else{window.addEvent("load",B);document.addEvent("DOMContentLoaded",B);}}})();var JSON=new Hash({$specialChars:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},$replaceChars:function(A){return JSON.$specialChars[A]||"\\u00"+Math.floor(A.charCodeAt()/16).toString(16)+(A.charCodeAt()%16).toString(16); +},encode:function(B){switch($type(B)){case"string":return'"'+B.replace(/[\x00-\x1f\\"]/g,JSON.$replaceChars)+'"';case"array":return"["+String(B.map(JSON.encode).filter($defined))+"]"; +case"object":case"hash":var A=[];Hash.each(B,function(E,D){var C=JSON.encode(E);if(C){A.push(JSON.encode(D)+":"+C);}});return"{"+A+"}";case"number":case"boolean":return String(B); +case false:return"null";}return null;},decode:function(string,secure){if($type(string)!="string"||!string.length){return null;}if(secure&&!(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,""))){return null; +}return eval("("+string+")");}});Native.implement([Hash,Array,String,Number],{toJSON:function(){return JSON.encode(this);}});var Cookie=new Class({Implements:Options,options:{path:false,domain:false,duration:false,secure:false,document:document},initialize:function(B,A){this.key=B; +this.setOptions(A);},write:function(B){B=encodeURIComponent(B);if(this.options.domain){B+="; domain="+this.options.domain;}if(this.options.path){B+="; path="+this.options.path; +}if(this.options.duration){var A=new Date();A.setTime(A.getTime()+this.options.duration*24*60*60*1000);B+="; expires="+A.toGMTString();}if(this.options.secure){B+="; secure"; +}this.options.document.cookie=this.key+"="+B;return this;},read:function(){var A=this.options.document.cookie.match("(?:^|;)\\s*"+this.key.escapeRegExp()+"=([^;]*)"); +return(A)?decodeURIComponent(A[1]):null;},dispose:function(){new Cookie(this.key,$merge(this.options,{duration:-1})).write("");return this;}});Cookie.write=function(B,C,A){return new Cookie(B,A).write(C); +};Cookie.read=function(A){return new Cookie(A).read();};Cookie.dispose=function(B,A){return new Cookie(B,A).dispose();};var Swiff=new Class({Implements:[Options],options:{id:null,height:1,width:1,container:null,properties:{},params:{quality:"high",allowScriptAccess:"always",wMode:"transparent",swLiveConnect:true},callBacks:{},vars:{}},toElement:function(){return this.object; +},initialize:function(L,M){this.instance="Swiff_"+$time();this.setOptions(M);M=this.options;var B=this.id=M.id||this.instance;var A=$(M.container);Swiff.CallBacks[this.instance]={}; +var E=M.params,G=M.vars,F=M.callBacks;var H=$extend({height:M.height,width:M.width},M.properties);var K=this;for(var D in F){Swiff.CallBacks[this.instance][D]=(function(N){return function(){return N.apply(K.object,arguments); +};})(F[D]);G[D]="Swiff.CallBacks."+this.instance+"."+D;}E.flashVars=Hash.toQueryString(G);if(Browser.Engine.trident){H.classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"; +E.movie=L;}else{H.type="application/x-shockwave-flash";H.data=L;}var J=''; +}}J+="";this.object=((A)?A.empty():new Element("div")).set("html",J).firstChild;},replaces:function(A){A=$(A,true);A.parentNode.replaceChild(this.toElement(),A); +return this;},inject:function(A){$(A,true).appendChild(this.toElement());return this;},remote:function(){return Swiff.remote.apply(Swiff,[this.toElement()].extend(arguments)); +}});Swiff.CallBacks={};Swiff.remote=function(obj,fn){var rs=obj.CallFunction(''+__flash__argumentsToXML(arguments,2)+""); +return eval(rs);};var Fx=new Class({Implements:[Chain,Events,Options],options:{fps:50,unit:false,duration:500,link:"ignore"},initialize:function(A){this.subject=this.subject||this; +this.setOptions(A);this.options.duration=Fx.Durations[this.options.duration]||this.options.duration.toInt();var B=this.options.wait;if(B===false){this.options.link="cancel"; +}},getTransition:function(){return function(A){return -(Math.cos(Math.PI*A)-1)/2;};},step:function(){var A=$time();if(A=(7-4*B)/11){C=A*A-Math.pow((11-6*B-11*D)/4,2); +break;}}return C;},Elastic:function(B,A){return Math.pow(2,10*--B)*Math.cos(20*B*Math.PI*(A[0]||1)/3);}});["Quad","Cubic","Quart","Quint"].each(function(B,A){Fx.Transitions[B]=new Fx.Transition(function(C){return Math.pow(C,[A+2]); +});});var Request=new Class({Implements:[Chain,Events,Options],options:{url:"",data:"",headers:{"X-Requested-With":"XMLHttpRequest",Accept:"text/javascript, text/html, application/xml, text/xml, */*"},async:true,format:false,method:"post",link:"ignore",isSuccess:null,emulation:true,urlEncoded:true,encoding:"utf-8",evalScripts:false,evalResponse:false},initialize:function(A){this.xhr=new Browser.Request(); +this.setOptions(A);this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.headers=new Hash(this.options.headers);},onStateChange:function(){if(this.xhr.readyState!=4||!this.running){return ; +}this.running=false;this.status=0;$try(function(){this.status=this.xhr.status;}.bind(this));if(this.options.isSuccess.call(this,this.status)){this.response={text:this.xhr.responseText,xml:this.xhr.responseXML}; +this.success(this.response.text,this.response.xml);}else{this.response={text:null,xml:null};this.failure();}this.xhr.onreadystatechange=$empty;},isSuccess:function(){return((this.status>=200)&&(this.status<300)); +},processScripts:function(A){if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader("Content-type"))){return $exec(A);}return A.stripScripts(this.options.evalScripts); +},success:function(B,A){this.onSuccess(this.processScripts(B),A);},onSuccess:function(){this.fireEvent("complete",arguments).fireEvent("success",arguments).callChain(); +},failure:function(){this.onFailure();},onFailure:function(){this.fireEvent("complete").fireEvent("failure",this.xhr);},setHeader:function(A,B){this.headers.set(A,B); +return this;},getHeader:function(A){return $try(function(){return this.xhr.getResponseHeader(A);}.bind(this));},check:function(A){if(!this.running){return true; +}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(A.bind(this,Array.slice(arguments,1)));return false;}return false; +},send:function(I){if(!this.check(arguments.callee,I)){return this;}this.running=true;var G=$type(I);if(G=="string"||G=="element"){I={data:I};}var D=this.options; +I=$extend({data:D.data,url:D.url,method:D.method},I);var E=I.data,B=I.url,A=I.method;switch($type(E)){case"element":E=$(E).toQueryString();break;case"object":case"hash":E=Hash.toQueryString(E); +}if(this.options.format){var H="format="+this.options.format;E=(E)?H+"&"+E:H;}if(this.options.emulation&&["put","delete"].contains(A)){var F="_method="+A; +E=(E)?F+"&"+E:F;A="post";}if(this.options.urlEncoded&&A=="post"){var C=(this.options.encoding)?"; charset="+this.options.encoding:"";this.headers.set("Content-type","application/x-www-form-urlencoded"+C); +}if(E&&A=="get"){B=B+(B.contains("?")?"&":"?")+E;E=null;}this.xhr.open(A.toUpperCase(),B,this.options.async);this.xhr.onreadystatechange=this.onStateChange.bind(this); +this.headers.each(function(K,J){try{this.xhr.setRequestHeader(J,K);}catch(L){this.fireEvent("exception",[J,K]);}},this);this.fireEvent("request");this.xhr.send(E); +if(!this.options.async){this.onStateChange();}return this;},cancel:function(){if(!this.running){return this;}this.running=false;this.xhr.abort();this.xhr.onreadystatechange=$empty; +this.xhr=new Browser.Request();this.fireEvent("cancel");return this;}});(function(){var A={};["get","post","put","delete","GET","POST","PUT","DELETE"].each(function(B){A[B]=function(){var C=Array.link(arguments,{url:String.type,data:$defined}); +return this.send($extend(C,{method:B.toLowerCase()}));};});Request.implement(A);})();Element.Properties.send={set:function(A){var B=this.retrieve("send"); +if(B){B.cancel();}return this.eliminate("send").store("send:options",$extend({data:this,link:"cancel",method:this.get("method")||"post",url:this.get("action")},A)); +},get:function(A){if(A||!this.retrieve("send")){if(A||!this.retrieve("send:options")){this.set("send",A);}this.store("send",new Request(this.retrieve("send:options"))); +}return this.retrieve("send");}};Element.implement({send:function(A){var B=this.get("send");B.send({data:this,url:A||B.options.url});return this;}});Request.HTML=new Class({Extends:Request,options:{update:false,evalScripts:true,filter:false},processHTML:function(C){var B=C.match(/]*>([\s\S]*?)<\/body>/i); +C=(B)?B[1]:C;var A=new Element("div");return $try(function(){var D=""+C+"",G;if(Browser.Engine.trident){G=new ActiveXObject("Microsoft.XMLDOM"); +G.async=false;G.loadXML(D);}else{G=new DOMParser().parseFromString(D,"text/xml");}D=G.getElementsByTagName("root")[0];for(var F=0,E=D.childNodes.length; +F. Copyright (c) 2006-2008 Valerio Proietti, , MIT Style License. + +Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(B,A){this.element=this.subject=$(B);this.parent(A);var D=this.cancel.bind(this,false); +if($type(this.element)!="element"){this.element=$(this.element.getDocument().body);}var C=this.element;if(this.options.wheelStops){this.addEvent("start",function(){C.addEvent("mousewheel",D); +},true);this.addEvent("complete",function(){C.removeEvent("mousewheel",D);},true);}},set:function(){var A=Array.flatten(arguments);this.element.scrollTo(A[0],A[1]); +},compute:function(E,D,C){var B=[];var A=2;A.times(function(F){B.push(Fx.compute(E[F],D[F],C));});return B;},start:function(C,H){if(!this.check(arguments.callee,C,H)){return this; +}var E=this.element.getSize(),F=this.element.getScrollSize();var B=this.element.getScroll(),D={x:C,y:H};for(var G in D){var A=F[G]-E[G];if($chk(D[G])){D[G]=($type(D[G])=="number")?D[G].limit(0,A):A; +}else{D[G]=B[G];}D[G]+=this.options.offset[G];}return this.parent([B.x,B.y],[D.x,D.y]);},toTop:function(){return this.start(false,0);},toLeft:function(){return this.start(0,false); +},toRight:function(){return this.start("right",false);},toBottom:function(){return this.start(false,"bottom");},toElement:function(B){var A=$(B).getPosition(this.element); +return this.start(A.x,A.y);}}); \ No newline at end of file diff --git a/mockup/mockup/001.png b/mockup/mockup/001.png new file mode 100644 index 0000000000000000000000000000000000000000..66c51448a37b830c5d1cf2a03497de1985b2f213 GIT binary patch literal 88866 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

    I8LdYnWVAC#-Jb8|oZJk*P2c&h9g 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 Lu6{1-oD!M(>~VArj7%&!@o;c(@Ni7@Iq{Sj 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 I)rZgi54-mOP5=M^ literal 0 HcmV?d00001 diff --git a/mockup/mockup/004.png b/mockup/mockup/004.png new file mode 100644 index 0000000000000000000000000000000000000000..be772f8ae04733911130fca61c818d3612aad8a2 GIT binary patch literal 109129 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

    _vja2T;xL^RADV#4M^t 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 literal 0 HcmV?d00001 diff --git a/mockup/mockup/005.png b/mockup/mockup/005.png new file mode 100644 index 0000000000000000000000000000000000000000..d8f58f063cfae9d2542c151d59f2696f38909860 GIT binary patch literal 114553 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 z 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 NFui=P;*7^{{{kPG)B*qi literal 0 HcmV?d00001 diff --git a/mockup/mockup/008.png b/mockup/mockup/008.png new file mode 100644 index 0000000000000000000000000000000000000000..6f00889e1356dd7af56ea9f0b0ef33e3234e5307 GIT binary patch literal 159600 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⩔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ⅆ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�(L$b%{ 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 Gp8pSI>%}wx literal 0 HcmV?d00001 diff --git a/mockup/mockup/009.png b/mockup/mockup/009.png new file mode 100644 index 0000000000000000000000000000000000000000..d01ac5f0237c2333a29c7cf72773a78218afb6c5 GIT binary patch literal 166413 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

    }T5F(}iNUvT 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

    Z7W|@wRal!x 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 literal 0 HcmV?d00001 diff --git a/mockup/mockup/010.png b/mockup/mockup/010.png new file mode 100644 index 0000000000000000000000000000000000000000..f931aa298c6163cb4fac9cebeb6e93bb50e79b3f GIT binary patch literal 202242 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

    HDv7C9BdP%s1y_i^G;kHEO+ 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 literal 0 HcmV?d00001 diff --git a/mockup/mockup/011.png b/mockup/mockup/011.png new file mode 100644 index 0000000000000000000000000000000000000000..2b7552a6ee1288358287ee5ca2ae34b2879792f4 GIT binary patch literal 180956 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

    `#j7M~iM5t&o0XLCf7R?quGn%MY>hAZ0{Px=` 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

    sefds*V#9`W9U0@kd%|I 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 literal 0 HcmV?d00001 diff --git a/mockup/mockup/015.png b/mockup/mockup/015.png new file mode 100644 index 0000000000000000000000000000000000000000..5c33ba930e206049e111611cba7d8dbc1886cace GIT binary patch literal 233407 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�s@Uvf#p2-cZL7}mv@;5 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

    p zOq)R@h42tOA#C_JPkW_-lpa=F>m^$^A=e((r{Firm6|V7hLGP&0v?UdvEt;*J%>RJ zg`;!qGgRUtXpI{yIx5#@c)1HkpT*%vDbBh?UR}Pj490^WVLISoXeiCuHMa z^6{%%@EH3WJTR^QZdLzC{?EqK=RJM?kU;MiB(~sTyZy|as|q#Vdp=G636-;9LZVyn zNa-^@mf>D=6aAYLDC}-xI8pgvFKAsCE+9~J$rP?{s!2$@RINl_#uETk%EgpeKvg+)l zC`no*R|`CKAf#eApj~T2szbetq*t=e>kuQ3mo!hNJ04OUQ<{Z4%ng2T4zQ`DbX0Qm zlu5S4NblJoQ!OpCI2Q39GlmB0*j(c!J-=_sp5r28%3x^EU>Z~AxpTAp+!MuIgF2W3 zT*kjo8Gf*seHf>F9TB_U5Itih=h)ykKJkFoL#Ef1kXYyotp?A95fEswk<&XGnSP&R z!-~@qc3aGC4qVU+%HbOkAW<7%7bS4(IzK)oc(XN;8_=X!&F^MoI*aBgqaeAmU6Swf zdBt3z`|c{>4}kK9R34o9jK!9(vN;KLM4ebMy**Rg8-9!i@h8?VlY;h@uOHP^=q*0qzYNAj%8 zk^qx;Q`Y?Q2YlxJ?q_-iU}!N2n!3Ik+dARpVYgthHB=3Wa5xVH49wJHJ^?fIOG3$u z@MK589bg*sA)FlIA5{ZR-Er2(IL*U#cjHuHoO}u#h2wVDeWXznQr!C`*~@$_3)X#(1y=>! z28a5ojQsv+ExzZr3YoYO%#(X_=<4p1|7g>^bC5yAgym39ww42Z6tO<{Krixy7u+79 z#`Xu}>fX}Z${Qcdyf|tAwu9&AV-{EJY3!9dy+kZ9#pm79wrvXZc+E%#9Rvk3v_92V zm|AQr)*NiL>*X)fb&VXaCN3b9zk>DEpBB3sPK5Yv{1jX9=uR9m#7}qH$+&1*ep!D@ zFZmVd`ir7mBms@A_UIK~1;m#H=MCojV^Xr3^vEx0m4^mUrXHL77hxT`)qAKv%T2$Y zBZlYreST-)szb3AgdV18dg^}#1&u%Ac?)3yjnG|AyUX%!(mg0042roaAUp&G;VsQ2 zR4!zidg{JNLqFzwEmaAQ^jrO$5O8|KjIw*OoJ4O6d>&O!V(yLv+I~qk^mDJ@dKC*j z?Z09_C#El9BZ|HPuYgFfch;Rc=6)4;0css)eB>A1eunH(WnH=pUjjmPqn`ctE6(Tk zK>0RwqXs&an(y^I#0(B{G1-_3Y@!4i1D{MKDOZ;2_YXJl_iYg0@;5@BHqdYrW$f~a z5za+ZoE20%4_G+BE5oc(z{_OzCNviCtawl=s)L_Nk3@kD;Y*6zi*B*yE+z=ksdDmp zMr$+hiJv&m;BBhlc$X<3<3u7>CbZVw<8!0t@5&7?q<9vO!`n8m**TI(B{AO%{|*Rl zc^WJ*AkO(c%Ky2N$wg2ErG;2vjIb-pACSvTEl~8iTWdRDy?)unrW$}4Y`n>f^wS?v zk{gc@Yok~h_!(*;I&SiJO~yUSn0l*a4q6L+1sfAO1DLsWZh|FDws`j$3jLS-fy8ER35G}WM=X7- zih%W7pEIf6*uGi{3`)FfR~lY?8~E;es%}sN1C-0_#!-&zkQFjOk(isLR#7yijgjpL zeFT095ZlW}ls8$X^xf z0Xu}1CoZn~V{%rRP0w*>h_b8M#+0_l0&B@TkO3PE)7uUCDPEr0`w4myRk*&QHG50E zGejwf7uO9(!p%sH!Y@bOph=f{oZ5xg&owVksSX=vwrAeACHqBpZdE{Zf!wLpp5ACh z8FK4(qWY3yz?;oD?}}>N1~YhdL%-ilE5?NF1YL0>o^SQfb}8xMXS&dg5HSzI;FjTK z$d||vU7@;O!TJ?`_?)y`aA^f@ZGhc2yq4Z7_Z}#gSlM`=s8z`isb{A3d}$-PNCDT!U2?0HQ$T6>UAu|if2A&yAF3*XW#C7im7gGFs%0m z(RP@AEvackCc^Y$7ia`_G+z!^EzyYtdOtGvyDH-2YG1k)OQ>5=;x4+DY``ON(CLT0 zqR0@Orj=$O`Vp8gIs+S{I1s4S7gfVE`!EOnXjB-rV*xxL_=B^teAPSK+j*^0i%y1R zs2>bH0_bTPdC)kX)|&7DnT}u5Lo`rL*I=bq{xKNe;U{vSEb#PjXHW4(2;A#fr-kTr z&40G9NapAwgCWu(bk|9zQl$ zkmSqY(n7XNJM{*5X$r}4j-vQBA#{6~qJcfAmRGD7yuCM19_dVB{}3-r+LR3Jh*&A& zrvuJlL5d31>k}8T1NsE!lRmjBJRtkWG*EUZ4bg}3wZju%Hw3vbGsT9>XDg$Nk8AO! z${V@q7Jx~139(BIaA|kbqOUgEfuGQs_GA4MO9^aES)_m%1vnR^G}ZDm@VgSAc`gGw z$JBG^gKxr{8@xa}oOp=Jan7kY#(d>0O)yeWo~H^cH3JC)dXW~$d8F!!xX0-S=R@`H zY?p2eXh8g3hZV`pPgF^hOm`L{=T&wCnq4by8@^~*M|vUf;PVapUlwa;NRyI5%&%jO zt)5y72NL!2800USA(yM*cYvf;uXD)KuN35`xO7)H1Sen)x*WR9f}e}l9LDs_x*OZ~ z6udxvvgyzx;5I%*ZcDMD&0|?g(P35&oBmbDurZ0#Lxar?Qf2z%He;4i8rco$xbx_# z;~O}ZX29h2RbFTX-OHzS@m5Ok5&2RiAEVlFhwr%ZO#C>Xo4NU|dqe*Oek) z#wM*R%QjYG3l6wI4D};hW|+i~IKwls?@?7%*TmLfQ&S9WrROr^zVlNX9=Iz3^==Ko zIu@j37RpH)M38ZX?Bs@YCpuZ{H7g9eA3w{GtF1e@q5XEXwvwLGw9#YF(fM?*R`PWy z2iC-G+l*sP;%~vdrJ!88eNQ^SH<Vl|RHo*?71^mhu9DF$7 z8BcYWvOhrJeGgoqSgrXa(V3hX)BuPqELvcrVBfO1$kEIZW-KEH;g2ZzfT}i{sR>2M zm^fw8Kq1YRZv%md#RRc0z)@!i$A>IId`DZ)A_2!<>@793s#8H9Ucw$CaE_DPV~2|^ zost6)Prq(P)-?EX-u|V9ZYm9?u4{NZaUw7#_hbQws2*v^2dRwX$(bCRMi#q$7Enyo z`^i75U!HOm0Jcd~XVh92IqC@r?DhVee|OscpE_^w;v8+vwP!s#u$rpxZn z)fmS{wa`wR?xgHjl3kiX?}E zHLnNsUUmrjn`nLAMNB0RJLrIGG3Kk>Lk(KbUr3Nd6qK(}9hg~5C-X4+ae44}Ms!;G zkKtg?A)-^=5&`~&AJe~bXpRb#<5!7*OL%bk;H%_M#9s31(&=2OL4N|x_0xfe3eUWx zm3Mrnt#pU13Nlh`c$j3Moi3z*9k}8<_BLp|%2`*OSDEQ-#SnQpy!ymF>muuDf6~0Z z!I^~yzAGpb2fD@qr}|q{RGrx{EnY+?3|80MTQv7{tH|&_}H%}boaqBhmFg0?Y9)p_K~*JRhFq2 z7~&g#dh2?RPNI2donaqgFNc3Ih+cg}{q=`X@K*pAC2Nl%hcu7&NCP`-0BvpD1 zXbhjk|2pyPyytbe(Dl%z`nI|cXFPZ#R>{BZTZ~U8`Hy`d>NrZ>+@c(?LxMBE196k1 zPIjj>mgCuQ<*MRvX=bcn)JR~hS(M*tlT5AQGis5;!#(pvD zs!hh5P8g&{eHCENQo3>Jgc9=pHd_St^LysdQ6E%F1Y>?APzLhB(Z27J(RVw@+3MwX zJMq(wGQPGCxC~fV^PTh<{%Sq@O3TcC*%CPzq>Z~ZYt-(w;zf*t``3NzwOpaQnQ{2b zoY^3#-a(&(wrO9?{ zO1NZwgTNZJ*uX&CiD?+r&1|49v(y&U)v0;+Qd@3p>L{k1nqHgxyS-M(V@GL}3&m?8 zXSt^Xn#JEYek)ysAKr7;KmhZlI>%SM$q&ZJ_#v-T&BUSJQmhY;Xo@?$Zm>?onTJ*@ z2ULKK+IKKj&-BFUHmo)Jk==KorxV#SvbZYpR>OAACsTT@cwY?;n!&q-?Qf3SIE-%9 zVSecWmTZ4|ZDURQO%7i!0pvbSgGRX3-<1#f0Xsp0>q@|L_#RZGL~j)AyBI#5pW|d< z4j)Vm^!mPW!9CUYG1@eGIRC!2o77{Fb4?ZUJx85HBRO}D+iR{7+zP zmPOc+eQEz-ng z92CT+=$3*>^-uk-j>0-7p4Po#1&1Sh!J=@mG2*90g8FHC1jAsiVFhqbK{loifbW|z z6gM2aj6w*qYi~0~FKF>lj585ELg=Qdeb%(KgS_e&zniZbwApN6u7?zZm)+DzE;RK# z_;D@+e$TmR-4HY|P_GtzbP8{FYauSUfB;+_&GZN;LVZJi^ALeutyV|&Vtg}M6-neb z4x4q-MsNagy?@IW-^I4Co(DZ^Y5>6B*WN&*pF2EeJWT6#>!oYX$LUX~+9FhYy=dL6 z;^9kq%fxh21K#s1ppN^pn#tnZTcGsAdtz&?(_CCWGQmb|t%I!G`G7^xr~%6OWC1!2uArwu&+zsn=Z*Z>u9x3f`yVh_!ihdh+)bBx`lx_ zj`5^=@JSa<e|6&MWr|hPA z!IV&m9`ofgWAA6iTM^N}TWIv$fv@H2~%pD!h-r9SyHhQpx2UR>)H()E0b& zE5!B96H~lM8Bx`?66ynEha%P!=*VAcrVO!?G7E8vpyRmy8)vSF<9tryro@HOmUvB- ze5RZBSAKBzoVp;?5c$Ktb^IiDkOjlrGKSm8T#V>C!I(fSfUf*et1p0mTsmxI)}kh( ztQ`bD&a>&$6!D_Qq+S7?CVBl?BBr2x^2wr))1u!=KWYE%;1|2sQ=Spz8Z3dqz#GLz z$v+vyBF2O*qt;s(GY-%a!zaY_=D}}j0b&Fxfk<2j1V)Sto4JBvFrrUN2y?_!JF$ zN}R7eQ1*6Eorv>$f`9vo??lCvUjaO*&>k-e@KuVLNvj+tzsS(M9{0A1GogR3Z44D$ z)cWD9+j#X27Au71!NYjAw7t&fm=5{5<7lsnd6Rlmg(axlbP2^AxTjQo$fUL5e}TvD zld}%lU7<39G_>K5425;74cx_O>HeYwYq;_`o~`|~EmQI1J4&glG))b3QG% zXbJ!G*PqU3Og!PzenX2J;x|vqpN`4?aP*_$-5Z`C(gN0(_uXiJh?F7(s%H)@Mr7|k z@=f3an*|XIfBe@JcoPi=_yk&890-uAm%ASuk~}raTA6C{!XOS!r&t>5>Hp~E}+E4pGXsJ1Z z$@lobkEY`I?xJ+Jo-^QTVf=QI1Y>E|L2YdlIX{b4oxKXL+#e6A6k$G`ZM!(BkJb*? z7wB-(Q(YQu2a5P+tN_~n`Jh>Qc%jk>9KPxtugj{P7%VW)NzC+X>V@29$>2WTx1;Fa zaA2nV4BCA7vCY5kBq3@en&jZo{A@pP*Ke8+sQ}q^Tcvw|@*G?^@(&+Q$P2MO=In4m z=aPREdEie3hpVi|Z^Xswgv^rvA7pcKg-`;+rCJKVpLsPi_1N0-(rBuE2hoq7KND60?C^6%O`<)( zvCt5^=w4;mZ)mT-0~0XTp#+k>x?GGI6#7HEj}zq-_~ojF9m-3E@~Kl^-f)8?E+zpC zCF);p<5(en_7GFnj$<|P{g-S^z&2N)IbbDT0E0@Z9Q5cLiswOfjea|kOx`47RH2a# zd48nTz`0w&6S>mT_xVld_y3vhIN2d^?~&~Ee>j;i(z0(qK(=0^g~BFl9nPp= z|2Wq}hrh6W+1Xwj)Kj{3M5VWVK}RJpTy%J<2eQF+SlCsq1qP%F?{tkJFOJvSQf*K( zL7@|)+r^s58_hA7G6u2Zn+O+ySq`SNqwH45Ech>aIlrGQ<}m4|j{Zpw*RS|Ev$-81 zK^SWl-3*=;FKpl3?(jN;+a|inwYA{S>EO%Wb9Ti95>)-Y8rB z+(a=go#X{S<-Eq$Ri5d{e3aI>Xn$5cxN8l|nD^U@Xv}pdC~DNRiT)MKX}YQ5xI<0I zhy!RhO*=rveZWb=<`K^f&tUa>LQy#K+UGZgw0-eL9YjiO*{;vH=3w6shimNpiL+|* zaIlW0N2|}q#SE^L*Q^r*RF2@^3|<1W(J689X3NarKxTAEt?WqKNzPm6+F)h=cWyl| zgF7HP*m9~5*+YvxaGbO|CqQ=_PY-G|j#|PS zw&s7ZXUl^&GQz5sf^SN_m^H#Aa`z!;OqK+ShSPgOxq}D?nHr%bJj| zqU5cT1SXcR>R}dj4|jIKs-n{(WO&5Uxnf{z5i9+wfl)&@AewN>o4*-cy3MB;V?OV- zN2|5jC->ZDngqDMkT$}zQGG##yw|}7a8Q6#JbX)?JeHaa^k==Z z0SkUb%&mmYLv6cte}KtHbUnYt^&ve^0>AY2nB;NYwFZqgxDIQkt&k4kGUxeYf9T4&AU2gf0uYm{c*^BNG zYYkr#g?ii03ge!#$^dN`2$9=4Fq&n*&Hc+Wp%zc_MR6@;`FGJw%Qh^m+E(W%0qoEB zj7_H2Gsqt`oV$E-h)fUCpMXB3B#&ky;@B9Nu!94Eo)%G*8*^`C$WzU$tmQu<>832cB0488}Bt3 zOCCS102^T3nE#gd0oDUio;iZw5tQBseDHXEVYJF@j7k#;y($e9KjCJsF*jAno1=m$ z{6@!%d_p_scMyMklXm~FP5wV^;(u7i^9{<)ca9~)wu0616^46MFB{oTBQUdLCLJpi zhloBVRzON6L=8S&c9xj4My`uBrYuz-tGo0mHd;=9`lHq5>7<5(J?2FmbDp?k)+FAW z9-FZi5E!*@$&o3afT1kcICPkVCdS44_lTaD7*i$34&83hIOMk58R4v?)|N(NUt}S) zlGmlcCibz{>#|`{T5H%cb6Q!+!xEff?WH6N{IHNIm;}?&)-%>krV)tzuS!e40;_e+ zAA?MLiSSCyJ;yA_+YmwH>;*Q12Z;#GYM<1Z}XS-{~y=^!`PNZg5rAiJVu`*`Z`@xFy zjrRet&N5G!1&Jk(J^2ii_FtVetxk)$mO<83P<}`*lu-279td*Qp>JO5gyzB)fbr0` z)jt%Q;wRpk^0nYuljA?3i6K{8Gi7{tAs13`fy*CehKeC^R_z!!WVA&Q=m9m2t1?8c z_cPY>THJ5M!>s7OAF9742W0(Nzg4uREi`-0?uW+M^P;C2scSB`QYbrvGgOd@BPg4Y z*i@oaozKd+0sVH#L!5UmY---7UNR&u=zT+0$y#@i_#US}eg|K{G2af1Iq!l zH-%*{+q9C4goE25!Iqd$oEs(S>r3koA|3~-0|H-Ou}@55&SY(|K&t=dz|^r&88>VbsgdXKK8?WaoT7NXkhI-Zc-HLm)W+i%Qgm}u{|$Z~CFEYtjk_*E_OOlxoS*bQaqfPzA3v{Ni5OZVia1R zpduc+N$}6f)#`-Mi$7wy7l4wrv7a@{J|o0bpj&$`(k;FP(*aimB5LJ;29T}U0OK)a z-Hhqo)6qc&vxs@!!(H+$^6`omJUp}P82vixb~Md|QB>Wztd!_wFbaB(n+;h=g+Avm z)GCqE?E~_VdQG3mm_f_omJzCAKkuBG1C5uBdZf?5CGvkVms1r7?7^h;3B{B;nu$gp zmaYuaCA5Q! zY)K7ms8$0ENc)W-07qfn43QO&Ak%n_*mB)&Kv(E5zdEVK-DSTo>nb(-^pt?WA9wx^ z!pr~VZ~ZsFY(Y3}+kN2!fr5CWWT18IZ8UcF}0br_H`}YUqs5%m7QXS*@i? z)p>@joP-c2`MIwj>Eu|owSI{s87$Sek0{y*m1Tkui#BY(x4~LaV>VOyAgVBV-N|dQ zaEbd$^~3s^`{a3g75ZT@em-jmc%mOrGFI*9%XS;P87KSoVF%*9gdB9Kjl4C=#d(1w z*z#0bO@|2GD@|=R3Y#^Fd`7*-81i@rfGVVseH8ex+ojlORgW2$DZ;Hv=!Kc0cf_qQ zY5ec2WC-C1kM~&}7k4i$=OWAeERHlhtHoA?D+Z|afkjO?T^B=1_e_js2$^%e`mNC4 z^k=wtvbV_NmF#5hh%sD88Mg@E%XDkJyVbf1YYSWqJ&ZXCAB(f>@-FG~tSL^t*ASnh z(8G%kYfdISp(&V|Y}(vBZJqoqjQ{R^j18GiYhwBh;59^yidB-Y0&8T+x#C*44HZ^d z4qto+V#>{{00W`pHv7C@pJ5Rh#YDm40gM{{ca<%=qoquV?$vgad5vcRb1%lEun!;% zFjNyvH(3|+-oq8i*iD!_!9(;hvK+a{>6za8P~P4Ovk~oMfD9fXFK2%Q0z8!LuB+4t zXvCVEh9)jwrSuH*cl-r|Tz~5c2ug28hc=jMxy(5;+p_?=Ew$zn(A~vkgL7hN@g-kF zjTXjlWY~N{!;|=AP;??HsvfJ!C|Z0tUlKLpKs~ldgW@vY1q{M9y@#EMGeNu!^j0WA z&!Sr!E*rEX)?_+Tou{W34&kJ0%ZyvYN3$S48BTc4ehcO$p=CWx&#$4X>mH29qbRJx zaCLwPimx3Z^0}J7{|>?fksN&hS_39j&$4f^Cc-(F8s76!?+Z~Xs&CfxdhpFg0p;%J zc#^$VHo-It=AP^<9Fg!0%kO!*ln+jPrkj1C%7ycN)qHVXvl|%GQvwJ0z@DKsr})wl z$ig+$;~o??KA~@HQAI~6w>vASO1&<<%XTpE?D&BqN9cIgcNYdLjn4ElW?G^g>^AE- z{XM;KD$4BH>hT%(4NE;@u99V}`9UosYTd2$yE9+ns3RLnIPx%?c@nzCI1ugXY(8iKnG(noDuH71j7j{v4ZGBtOEpz9C?7N;9qE^XmcU=q;RPZV2RM9V zUhxBi8#JnO+=bdVoDl8LUicXeL!iu-dT@$kXXf@g(=vKV9fnHD0(x}4D*MEX{fm)5 z2y+TZ2hW4@NDg%J9%3S(g>s**IPtkKXLC4JyDG*mx8dLbU^CN6iPFHGaxe)B@*dowLW3voS?2MQ^l>W2WXNx>{C_PLi{d0*2_V^xvif`qu z42eJa@Wn{x@qu!OynzLi|BE`;>^OhdnEJb%a5A$AHi*WU19KR#1Mm0aY^kXq&&MWW z(hXx7dhn&jj)?d~MNwoi+zo%l2?@Z)CSq^-_of`UJkwEys~R8m=k1gj8G8(vOg`W# z4*0W|Hjv%2R@j))y>#jHVZk2}-^OD+Jk+Sg?&mraH6PfU2Q9M+Z{yy})oa)SzGk^l zw}9???+|qesDU4kR;0`fkc(NnlwCNH?!G!cVyXHdstP=>nqkHfQ7wUp9f}@CU3g0oINUn>H@zL6Naj8q(h#EUOOKc-UzXy68dF zlEOg%g|Y-?!zpxo2Uh^|6~nwDv9`^oU%aSGHW!-#jpf$jK+s1$bIGqT{2d#G?LsBe z`GB_}@DX4-`I@nfNTtqveqX4LLjt%;&E}WY$2603f53Se<5@|q?QR=nwDf|+XdC)G z@SaZ6$D}O)MN~YiW{iuhg4hQOO(g#2$Ib2F*{$!)Sqey|?75MoA+W~v}qcuM)> zbDrtoh+!C)w!jI6%CSp8Hkq_K^?Ym>`b{P4`aDP_KO;AA4H@_>*Hrt!0-N#t=&!ldqzqS&xpOJRuwYAwjDwgEo znSgAh#Afrw!GJI))K87XnZ-kLQVVgFGnO{sqpFcnV>%j|i{LV~H0|fz4AQFiYNid{ zMaRmAJ9y+J=4s60z1Wx-dYhO-eHlnKI}k9$?m!y3h;PjRwEYUcV0g><_Dp-@<*rPa zT%g?-^N`nu`m(|V?ienwtvTTxGaJ)a_16iOtfrc0mT38uA#Oi~Blz8<-yU5HYNE*CoBJ2XLP+{5kw_o| zci~_o9ze0lj^Hxsh5$cDiATk?M-$$qtT*=5-X_-S4>X5L9$_S!THwkoKaDt3p)2HzY-edgf>4)x4e$ z?fpC>-oQu4DlIgabhZmwzau&-bdnx)^l5Z$9@*?KE*zi`b3$(^OeZ#ApYpQ&-EV+F z<+HRMi&o}5Hw9uYX;u(*5B}n8w4lCnq@Rm}ULG8=ruw~>;WKWoQxiKc*&u{~@-Cr` zw<-@V=I5|3D-T1+q2G}M6o+>=W7wV~E_^UHA0RIq&<`41%a{Oz=hOM-ra0LwF!vj- zH7=+AGJIHqUk%|r?@w-9jv0U_Os|4S5VqO=l5TG3Z=RHD4?2eSE1jQ!5rk-If2~9S zGZ`mig*Rx?k^@2L(b(9=+817ybl&UHR|o*2(}1%52F?WUDu7>ST$TxO=j5Y!g55wb#(EZ17We`}-x*UMO9kmXzR7Kw4`lD|b|c%V*O(`;y~ z;E4!P%5RqD7sS>R-!P#mX!?%aZ(Q+yVD-iFw|u}z>%MIGPnA;7N2YKuqY2sL3qatv zbR%{&+XMPga)(qA$gnmc8&LbH8|$%+k5-e2Yz4L?*jt-50JDQg zxlx!7i}&oaeQXNk>;8~g0Mu7>d%z)A_H|*!#rF*_=wdaiRQhn_KHWbE<_Gn*ev3O6 zlD4MBgra@$;$|kxw+W^Ta@4ALiQe5U^ggfE+p0q@2ZfTdLS{yit*YXYO|M%R zqij$oDlhU`9^Z22(lzwj#MfE6txuiD@Ic+H4jGH+pGX{YA!xH>b7)qrcil9SLRxG5 z6_`EUuQhV7M{^``xzp{mYs6;Axz!3BL$${R@}1vS^S~{@b?t#$Y3lEr9<*;B?u-;P z9h+W-4@&fmc}AqSV<2&t61B$7njv-PW8Fgfvz{}7Xce3%>H&_UU7{oduf-^Ls#C_= zFWx1ORDEyz+8{&Jy1*Q(1H4S6A_9j?f*85FZllc^P#?4Wkl{iqP<*@jV%J!L*6+$- ziq4NDi%Q;eo=x6ej-(f(lkD{w9iaxNaN(6~ug(UnpW1!k@zuEk#BZbewhAb`fbU0~ zNFI4k_52P;sbFJA8P7M6-m}%U_MIqnG402!pE8K@!+&n^0dp9U57>IBWpY89*mS$D zWX}yCU^S6~i3}#eGRd>ShQ#aot@Gt}JROsYkZ0pNT7T%P3{^?l@PRwnc;+B@Myu6o zJ;VVAi>cJ3%>{Yatd$sPBo^vohrFKF@A8Q&UVobIioEz4Z?c~5ZNjUMav8G$z6Zvt z5(zZ8l#S*9zlaQA*(nmd#Wk;jWISgcP7^CZ0hxhwFiHcxT9tO3FzcL278Mxjt@N;Y?&+8@Kn=W+Ig|(aF~-@< z<}CMxzW3-p)6A9Z0F5R)kHskRf=rmw{i~SR78kuHFZGDP%=epQ=JLa>fLNgc3(U`K zSs<yJ-=0$+B^nk<;n6Y%|vKR%qD_HNfuh|Dx?Zz?$loy>So~8)8F5njIAp5h7DwZM>YPKw~^op{3f#kCip|} z5X{}k#WWdJR3RcN#c|0Dp-$JdsZ#P)z__cg8E{N{!gjN)(FIhWj}?Ea)Qy-Z(O0XV zKLH?x4AV=zxZduiU2Y2WkU0vIpkK~1zL7$MamjQm*ezD8 zz~ge5TGr@rxq$G*z|9Nj_oYFgij+wG2w|WvW*>0*DY0x@tr2*1P_%PKDYAH>TOb=( z6=MeV;*#CnGQ8Q!v`cnmK@;Z(;URL{zuggO9Ri6dw( z=@ieto|!B;5*x?FD&ZK}uE$$Aif0T_D4->1VOXS@aJeA}{nW|&M~kh9e-WDbK~x+- zE%Ck!VN04$Sytlzh6Q^>e`>d2G$6Mlq zOkTgK-11dXLc-8yOh103vF))515hwy@Oo)ir8-SOPcq{-RJbdNH}^IjzoT;inVJyL zG$^&$>v?d%VlvDe;jjtvlMR20BwcV7UQ6344|44@wt5M)xUVQbo^ZTyr_{X=)Cd|m zI?*$q+*|R6zt6|c0o2P)?UrL3+%6dL*$vYkpf}IAymWBeovrwqT$<@{X@uQL6ix4P z7+&;nbv_6*yXx8M4bU$ZWW&t%yTeg6i22g*&g7HqH~GxdjYSDsF$7dgZqXv!SqJDS zF|??zq@)g6Vxn9NtkgJ<5~S&NHz}<0sRL-X=(6DwM4_#wbFnz!X4nrx#bDiVOEJF8 zt<)KK?KvQxDB^^J9-apiO2<$9P%$AI9^jj}n4SW36ScuZ;P)8n=ieKNqyn&LH14jac7I&4+|#c1vtw85VS26 zF8acIhi;yOGLC%n!Qftad_*eiV9~CDDn8z>cgH~m?%vjrL;%!@E3eOqMvjxK?kq#b zRU5)PgGzV9QMyn*`gj#5M52xGCdh1};60H&2|36FTs>WrthQsw(&l8~R$s^ueV&LP z`=Wl*v1tV+N=q;JhL=}*&6znlS24*zYo25<(?*)ZPB@SlxP#%t)PxIZoBRxI5AZ(sMe zU?evNRMhA$o0f~6vp@aGUD1dBH}Vp57e&%X?3^ue^}zL2+g{#V{rm0E&22};FUj?B zSEaGeOPVM8k2_R+^hO=f^y4tzIE(yEwr>^dOcvlu9)+a|eLBi|ZeDpxoq1%@@qvk| z)+f@SgSzuK3I=n6a##wbcOtwK%B{Qx8^yL--U)RzJD;?|5UoLRoiucsvE97bqkcLv zuWxT*gfueiGSorMtua%%HHy(KHhw@M57J)KW|BC$Nb8DP<<>X2Lcmj}z)Rbe#2VUq z6QJgjXQ-2`dKza(B_G(&N*?V)Ou$(1lkAG;aXMPxOZ4(6=Wug-L3h(y^uKpbzwYAjE@7cwDa0&8Bm_@pp5^#U=wKjvBz;7GO%e&O;1~aJ)}> zo~?_00$3k$cFDCQhA|Gnz?J3UO3MqzIQCfpceIc3WFb$VdNs5{K!yF_!DsG54^OCK zX&s=+m&n1E+A|{4rmEYo0H;7{kNjSM@kJd$IT9K?K6!orU+>xfo>I(5ViPl^Bby#8Ki%%XXY==G`dg$& z&nh*!PS1cTwH_Bt$Yhayp_i9Ot>>0)>wZ2=OGx-~wXG6FVy z)PN&CITDePC*i)r`2tu?bDxW}!vT?SqBG0#kH1fbbC)KlXOS5DVR_V5j3fNGV6)!k0^9^N=%1w2-zLYn<+GTgWYeq|f$6Or>?B_+x4WrMh zPQa)^)n#y$N|G#cO^&D#>CTGg;~-cO2Q{V9AzWD;pI>>mvA?8QnQ~n<$3p|R zh^B~mt#Ww+tnHm1U>ciRcfVCM1OH@g8#1dDW{Yk=KKfAeC-@WQzL9M}aE%GLc`t+` zXOk-Az9hF$6##~od{u*J%80k0H9wvqiW8!hM?Y8e8jH?3?GaZI^CWNCsz34!^Zk{? z;|rC?)#qMSySigpYcbY{1C$~Q6CM99)5!GuDaUcufm?O98x75XPmGKj^Pfh$mzl2j6>op{D+ z8M1+}jHXEb%H_|%t479NHMFJ_t1;qs&Ch_7+#gV)DK7$Glzb8xBxEm7*C_uTCI#Sjnfd979^>tW|ILq0@#A{JKiv# zkdE+F*3d#!IR_T^>tuZa{hty1Gr;@H&^^Bb`T$x2A9WT>6!{ zm)R`(K6ia*Txq96hEzEu;LehV2xwMG+RnF2NkH^8*V`)f`Et8hM{%}&s`K{T{S!Nk zf!1?PgF#a-EDowT8HLbO5} z`?_=%n;|Ft_dq%hq2j(h=s@JlBy7ORfynLbilNitNBFPm*WCpodRw9L>TREAIQ z{Xyi69?^ViX-(RQED`S&y!l=Flfxu;spccL?%HZ01+lbO9_Aj2(Z-C6q5{|d!htg5YlsKh{sCg zD`*#3QDX0}T*+Ioau24cu8(n%{#4jlS;H>$a64bfYe}Oi%zM_Sa-O5+6P8;~XKJTS zFJHhi^`8*$mM(=XHQ#RS2%?0vG%Z&>v{Aai8MmYP$39%p&!6w6&@QBdrBl@t(icr8 zW@Baj5|@>%8gL`bCUZBDV?vG~b;-Fgr*(!GUH4tlrg3}TEH$-qwM%OUS98T+4wz~t zYu~0B{>U}(I0I_BmKxQx%m_EP!^9=bQ$iGSPv+7Mm+piaohHV-qCWSSorO+gY2I78 zysQ>^B z&H-SP;bwXw81HX2;S@nw1wBBRCM|CWzR~DQGq7JBtvO~BqJM^T?Jktu%ouMEuhrJx zE9(;<;H+l@df_ueJ&bB-PxVVp#0R?%POJ*~Iqk&HV{VmWACyUI1eE#d`w7AB z0?5cza5d=))UFXoEsd7TVG#m`9WLFY_rndNw{VMaB&|}95|E#*Yn*vG2At>w71LK; zv8=S_C@bLPwEsRA)?q)>rurFHRj(`YPGc$zJf-*Z`e1jgrSlG$tG+}}Y|JOAU?WMo zoXQ;w zwrM1ZTwH5C%dXVO4o_6sDW7K7?l0qnM$=<+r&qn2^rAKgerL@pZS>z5RcaueP9U2Z z|C9+k*z=g`&pl%5w%F|;S#H)KHih(0EGuY6UNaYJyjKs}bXeBHS(bk{?`r2(wT!`| zuD$O|2(E>*g^T|E#y;DOk>M81rIp}@TzA1Uu_eIUfTriErzFd9L{;PH;R=d0=@Ar7`*tzFe;~Xsvvk5(jNbV~{8hn?)-pC%Tjk zJ+B|ag&d`lLU<9CiEj+ncCD?+A`(3)`4w-hMV9Z!q!F#N!(K5%Gc}BZj!{k+XiMSk z>7IhhkBcShsVO~+%hjzRE`5OBe{}Ln?K}D|7xExXrEl)Si=dZyb@!}GF1gznq@D*1 zN%(2k7+TT1p|Sb3_oa{&iRs|k!s4AhhDMy7%g6_nd*C}`4qTbnQlynVH8!ATT%ETa zlaovf!lfIP5%(A!$`uf1v@LRx+fB2pc4^9UPsOJz1rU#T8kdWXYKD`dU0=GiSXE#7 znX2UxLj3Rxp72yI(PS*SO4SU0Z-l*OzVtBDn1w6T8 zmD;HPt=as!51o-M^8u+h+_AGW?stj-xtJ;44JV{Od568mAx;lNOX_lW70t_bgz6Rd z%vPo!owq?p&F5b$ILK5`udgDQ7HrQG5C)*M^_BfN%mrtm6`O)7hG7M3k=f+^&`Q7y zE{!>hw3(3oT;Q6+OS_>1q^J44sF9x7$%j?XN5IP=1|OBWTMC3fOo^MztLH=den?{r z1h^JD7}9AGOr9_}T_Iwk%?v7=NYGqgC3RH0Cl%nSy+D^2G3x4pr)mb!q! zK+ElR^e*-K6#;o-clf2c$E?v`tP^aYR!boIy+oaV>@BQ(?tZUwxqut(Veq(sQnOg` zJT>ix9ffmDyTx)0l3V{u(j@`E#u>!FdVhs7k7;u%N{3kj>-ctD&slRfIZWe`v31Jd zHH^|Whh)|r7shD&x1!@@$I`HB!8t(-AqQ-WU+4Mme$yU2vUIp4prqz2P*tE4%{ZA| z|J2&ht}3z_fW3f{E!xSk%zXVbn$kmGQtxu7%*fsER1?%9K{Fu`tc77msKHXG;zG?D zqxjiylM2}Zx6<$A`U1I#EUqo@7jm>wPP*1jJcyYL#7A4JgtY0OkyeUZ@-O%{54iBt z<&9&ePf9O)$DHYO*R@5vvpLmI)ADndt_crU_D+9m85v%0E26qLvmLK1y{A7qHN;nC z+{E7gknes{dib?a-FMM}O`gQAoM9!@#H_+y_kUDiEx=L$sanxyYV5R8@;Al`Hs9$G z*;s(R14KK8KLI$hEDoY5Z2l_kh=Tdl#8lsx95l+2@|dKZTbk&r*We|R_v70!38aua z;vfi&Dl8~0avm20H@qQ#A2t6z$^Dim7C0kYQSE*Fbdm>{1O}a2pj~@{zmn5_J1~O!3;+O>lhLpvV6U?AJ)M^pf+>P++y}@A;Ik{em}c! z8eDmd>;+%QUkX97x}We=wnX$O4wXb);;-f!=la-9%`7#Y41#`SN96(fy@l};(>O19 z8l<*gu>^)4ZaK?ap;C+Av#~yPPlUn{=`Qf{x6QNr3*Mo#2U>PgSe0f5d9#)S?=20D zfII+^DnKSA&%f_NCrkDx<6+Ox7~YHd;_mSB%dej>)btfhugi-H-si#9KRMZ@@gB6Y zU(~NWu}K`yW-zQ0S;7D{Hm82xnTE|*qrDDHx$aO!4q1NQ8g~3FGsF1Ppj~+94~)Mt z^gUhznS;MvJGe;e>yvCFa^efei7_ydWMCHKmbLN8Nq%@nM==>$cBLPRwk(`?r*LB@ zU)2x9uzv{`0x$havDU@;-!KK{TD_F+2+OqN_qR+B7Kw#`Zmo^L^xXNmLXit6=?(3f zkmbB@&aS0(*kyv5*DMlP8sbl?nc!!~OfZ4wiX?$SO|Bq^hME`(y5B6C(UbJiijo#`zya+$aCN;QFusBNlO!N5mnTHl2g7KeG4W?Q=3> ztJ9BvQ^ShykHqonrtVcH79Tp(R9srLvCbGmnsp%-A4FHoMxg( z)73{hwhucUxT!3uIk+IaWBK}fIyaXjlAVHZ75rEBP_wGTgdenYE3>@=F-js29w$yT z-uuz0(qgfLS}VIS1gqE4WxQrvBVo-Ed(;9?7m%k3>t}Lg6e$T=2>?mq!qWz{vi!mBvkMH%7xy;@ho`2xh=lcng%1x3byOZ6=`~(g5cp$ws!XD+fqV5g%4k;2gA0h>}Ex_JU2+*h0sax-aca=T}^61_l-?PiLlpg8^ z@XRZCb#}Rg`012k5MiwyRhAXUmDZsf=A+A8KJ~!9VoKBdjwFN#E+Ai^r z;v$@$Q2=Mr(dk0b3L!aA$U#k`-{Wv+-9iF&$D4z2#?5sR-Gbm?{PLmA!MM&Qadapg z${||#TGUVJUe-B2MQyGJ_t?76iQNXPOZ|0a8_%&I36@laA&)q3_yNG@W3G4l&N-N8 zTZP+aPW^4VWAvB7VmG#f@H78?btm1aH1o5Ec9Sqfb{Q}Xe2kU`i6f?pFVXI~NCL{z zdr%KZVm!GB<)$vCf|`V&!E4-7H=r3oUJn>o1P;R%J(O|hNfEe({DcA2aYiPgfBEig z&(9w)GKMlm2(-0E#BXhIWW|tfdG$jL3Xha4^u_L1KFQm}=3DrQHh4^Tvi%$jo*ujuU@`EUR8NbgHi3n4z^Kc5n_;T{U2Y zI|1lmz%i_)-qe<+5T~pz(OV3sSlOMVdC?bY*FhyVLMW(9=606MbBfDcPaZ5~nG{0; zX&4%AR=|plKfMTV2I}(0J`YQloJBn{XAuqvc6r~%8z$2E%FB?oZg#YnP;E6_@JX5p z;drclF4l*in*0#sV(-@JDCC@EZ2h1_&7_Sb&lFYbs=bLqlfRx7KHu?H+faHDwxW<1t zIGo<~Hdm!*@@^C=UQ}VJEG3=I=bH+fCL*Y3fM`&i#LP-I= zMXyXLhIp*7a;YOU(kD%OsM)%YFxX5347fN+H4 zkX}dYV{Rs3>jjJye7_O{t%0uafx;^;MKs;a#aRF;$pY=%5mhGR!(4tn0wF51wo4sb z>A6CE(KZNSyhum6tt2wuV!cWY;_!Vf{<(%`!W|0Ud`9uwa9tpyjA`3wNzGHUQ5Abs z+N0FxD2sm2P)z`Gv&)abXi(oI;go~>6_;s7b)Mq4hahKSO9iz-1oP%k)*PRYqdrd> z+NDrQIl!fcJQZPL>Na1_Ohl?8awGAia{hJRiNd)S&JDQoR130P>@{ZL331s6n2zh3 zAzygx8dIK3^?yk=+`$!o3i3&Y>;t3geg{$|#bS!ny1A zbPOaa8EReHMn9cw;fjdb#0-_^z=%Czf|W|-?LlM@ZjW~DDJF<$o(k_=95WQ2Ckg98 zadQ*ciTWVaF$5l+>7OM^BMTz`U*Hh_81g*c{K50b8f5Xds>h!wOA7mcN%rs0{@(cc zdtlMukwg{r{@7f-?l<;3tmri{)>f(7-81~P5Ebm(-nV(n+l58&@PSwE4jmWOC&t3T zSc!$5JADR%<-d_}^DX<6I)KiG>RlKpelaw2GA!r_#5p|Lh#K!PpcX^FIyt*A%ALUg zywC=tv}>)kx84%E6&tY*Jdh6Mvg0=v&p3XG^@dn}T!;*=?VH@jXKox-g@phg@tTL0 z8jIqSuH%oree0yQIj4Q*m$ZI_@WqOsQWd8?O?9)O*$>lmI032!?2BQV%@y4SF-F_w zmOY1pvwfkMm|*@4-x^VtJHxWUJY5<(t6I=w{!BRiV=)Fpp36XuQWF-vtp(}Af){fy z`<=3O9m@@==w@C<;^BqloMMy-SZWkG{>c6zy7)+dZxh`c+IT9~e3p`t>SCw@tnlq; zCfMnaYGGCBrHK)nXTV6?7>+rYQ=it^gxFduRtk4vh5>6T;UFN(&bGYF^CijRvQbAQjM*{D~uF5oR_>2Hj2H=2K3`P_nGFyxh^>F%oH7`5T zi$he0fUN{;R;oVM_ZgN1Vd=r>*9%GTpyOnk@VbD`P0WQ-0n0hokZ5>CFQHczx&s)D zIKlRw#lA6bKm+Z%Sv>AtLj-cXofip@-uicp|GV#LbF%jfj?LHUx11HT+`2zmE_vU- zo76v}7qeXNM*p!BTh{(ES-0Bs#A?&Sk4z3fI&=6xKA0Sqa?zH1q$I+< z%zOHWAyz86*P1un14zrh0!fO$W#bgA6n~~IB1Dr>!O*p<>)ECQA1Xy%<5x!l15=Ak z`I#uI^hxkzm%xFDgnM~{(3|yH@YYX-E|mk&`pL_?QPHTkohzZEgEq5- zhES)LB?0Y}E7?CPh^aPC{9E%0OA zVNO8RI}8pus;nKPz~Xc_S|&P?sfAdi5fqET4;r+<#vzUMWt6)|RH23C(zONWF!*JK zZeg_{n8Qioq34Jt(1(>S=ZH&?Q+jX?*V6M!XHSKb2hvki8>kAO7();k4c6Q$JdJC? zr7a#RoThb=%bhlJtKYzsn}OazQBwR8Zl^dS3nor>(3Be4-&u#(bKA{e;^d=MkAK3! zI5dzN;D!j9VA8(mg1@t`#`C#_)BM0=z-4Y7*aHox1+0{|gII_;QPpKT`c)BevIofm z^@6F!8eNzROv*$J0U;O{(CgWZt)_j28E8>H!;RA$dRpj=QdXE71?pb5E@>_Z8n> zNs`_a_;R$k#dKdeRXrp2+QlQkZ$b)(!x7Qxu#1nW4@*=MF7dZbL#=IaL%w_U9 zg1-bk?tZl*N2+&73To9aE#s92T~X+Oe6+g?Zq~Yp`1st;(-xo!UJ0Q=77J#oz%z2y zQ_X;sR&M&&r_j+P4~sZE7fNwjVw;(R%95LRGxL~JChmHQgW~zx>v(Z?n=6vJz}(#2 zLiAH~XeNhvX+QdO@}9bm(G<41Ak9{}MXxU5l`97ge&gAZR#T!uQ(Bo4;XEgSSwnQ% zrHd;?v-Wd`h}WC1apghH6?g>b%`Ltvh`?(U)sDRoLGQWRzIprQ&_~C=^F$?tob6TJ71M89KQG z@GxpTu(Yqu6@SopMo{=iPo-HW^wZh`8Sa|go>=;xgrb{h#Wp;Q$LWHWvytVHJWyBC z5AU|Hs15+_v!B2;rwS}!d-IZ)nXtnxpc!+)n3gyc_V83#Jmpxv72(jlcbli}B;mPG zY^%5*+GDho!v3mVO-l1Qz;Ok6$RwaZhl)Z<57iAAv?S7>1;w!L^d#|Wu07@$^weKc z_pu``E4;LGO;^eK9(Is(A)$Ug<0LM9KEWHFE+RWBR@{N$VW-%3b%R8Wsr`A({Phr9 z&DjJuSD#?h1TxdYM+2}WVi&mzCN?p5h=ncg^-=R_PU~v| z(of=;$D1%tJx9>yR8q~Yn09-!!ApfSim;FWCCTq={7l@4(%M0 zb)w&d8hJ@^JA|1QSIsH6xa(POVvJuV{0Bq+!IdtT4Y&TUU#|?uRU;Cjz4{EJQ^W=} z)_)E{8IS*Zi1}-Z-xAk|=ffL2o>)oyZ!FV%K`B^sV#NdvW%hj0irmK?YX1))SlBxMrGv%7@HI9>HYJ6lSOT!|+( zVet`xj1spvbm`6D{5HOEIksDmAc~rYR?tzlAUbX$EEUaf>?72;b_!b%cm@=p(2$sZ z2xS&PyAOoTQy2pkLS8F}Mi3GTc`6i6F2|&xJA|KN){Rr9!2VCsc$|Md())@DWCJ&^ z>RSKNJ7R&h_#c{g>8~5_uPJ`7dm{fh!{DmeX7jh_ub=n~gWnp%KaMc?!+`U6QeI;u z>811e=++73q|ABPg*z0&O`D4jlAp1+2OO}YgGBjc!%^s5I~^+>l)O*gx=eNgL3&u@ z!*~irQbkQH!b7mMDKa0(9>i|0i=&#;#F5^y(v$$d@ZuOo?NS)HOoOUALwkG6I;qgt zQp@fcIs8ibO6({XBT&yrJr9mFCg_{bD$VU2Fhgx8)>sIAE*TzTK}n}`k-4TVLW2Ok zbEsnpLHT289fLZ$X9Zo|*}m4_na;UW>h1+Yy8S-Xn#MzOs4M*Wbo6t^fW8R9%l85Q zPN0Q+4O?I>49Cz0`KNr3410mUr$qSTzkPM2zjZsx6nd%7)lobAUHNm6ALUBpJXv=< zH0@087?=n1Nox*AV?K(i8TON5$D^q6+`g+Y^zj51#5K`QNKJUic6K#8o*Nv)U^)?F zvQ-ELtwIM@A+a68WQu06P~kvnScp3=L!cY60|j$dRsB#{Zyh}}m=9OvPxLym$OLm? z0^%yuwQwlA1x*^NX$9o-K0pYakgQ@fCSe9gohAk#v4xaS6mcMyE6h(-GnKEk0gCAZ z8cI~lF1R(9Y2aC%!_B3g!8a0jBsWj+!*SFM9pkCc#KE;g;3Nib|DWK^)cEHQ z{CmHO!TX1tEH<|LZE!4hSl@eaArAfZ>BocoOV`|2I8pBj|NWiTeL4*&s1E*vetld2jtu3ez|5}%Sr>+sJ z0~~K_D{5N|pY(q+D65vN*6L&jLoQc+(}A}z_*lDn0*BUwb>Qp=$Zvvpb2TcFLQa@5 zv^)myObA)hkK_&b^ix0L15~ZP@hcL%X zmmD>3FH{%mZhx)8aC(63;yg%~$=<-FwJwEIn+e8@{^ANB8*K+YWSP^8fu5H!E?zC% z$uL|hRs}*xchvxlJmv(Lc&32q$k!ud#i1FrQkb>_1@-cp?n)fXT33zcs|8wUu3VPNph)jm=aNgJqvm zd)X&p3HlMAwg}K}b2`s*E!}Nsfja&KbmAmxItv*rasdHP7%dYXmqie5fL&j!&dkeN z`X8M^Bq4FHT~kj}cqIDC1`n|ZarK`l&)V?s;rX9ai&381F7_ba^rZ6lR!(b`q!{T& z!^FQ?+K1>FQ5C*3kk>7HGdG{Z z!Z)>j)Rkk6sMo7}YO@#eykLv5`1H61QQ%8SnOyS%ap>#3)_5r7Nl|a|#DSRfYwHt~!AVe&qZG{Kdcsd^Y1UxL6 z%ggGyHh{g5(U_FKt4V|vs+G{PRC}@Xm9|Jayss~*@j>%xOyxnJKKQPt0ySIRFbCx~`4^8+<_*h(bYMB#l*IsS(Miif_+@wOs80|K2z3XJ&+6PqN`qz?0vg6j5 z`Zs$1xGS@(f}A&YcZGSx_!^s_9lpMYTB;_MO4go+cv3#D;ok{iy{{;aX>wb`U!5(& zo@fpY*Wc~lv#abZ@L0eK z;8wLCPtjA7I$A=`_F03jD6^c#egNaoQ9XKq^J8F`a|dmEy_Zufu3Ur=0U<(bC(tu? zrVq(6G#vcA#wur)4R>KaWXxR?#(bdC*}s(cCnWXX zTb7(yfpZxMo)ab9k!rUD?7}l_UmZ#iiCmSS+f%X$%@r>ZK;a>@rjQDIa-p7s6wC0Jx#IQiZyPV^Y4b>N4=HDe zkkbI?46(`-;JiO|t9!SXtgE-1v@k@H9On}kuLPNE(DlMf)~O5|dG@HXv4oFh5hA`h zAN3PJ|El)ijTTA+4D@|~GyEN7JzPgTIPqT@@E&?U1y>k0u2j;KBanHr27wARdisbW z3EjY`%t|qhIP3k$HAGj9wz|+dJmammg4<1DCT1<+oF$m71B-K{a~ucQ@rb9Cq`0yX zOxtvISU19VpZ^ut3j_LBa!-P_Gu{J^$qSk+a=AhZ)TH2o&>IwSsz>aD#dE4TbrI;| z;B2rzTmv=_3C|T#-jd3Jq{yO0rzyrnIX{qOP2M=dyB&HN=+gD^K%y6$N9M!%v^LOz z#nJ4DqT{ryk0?0JSW&i8L|FLCaF$w@cOa>A$hGdK-rI_Z`v*$GU@8*Q?7~mxQ z=Qd#kMimrsz!l>125~o=y|qPk<+8BaS0hS8$caTfeP%EX!!rQIrGU+gDMpt3hr1Xc z>LPN#5P|6S8`2dYLE}c+TcD>I^0Y44=>vBAEMGT#6I)t(F^LXbSaH0uiCrEkP06Pu z9` zDz$2?7ikk6A|Jur%%i`(puQGG*XQb9a_b6URrcE-C0!=EoW>H2z2&4mtR8u~D)eX) zMX+mH39lk|!`}gJ%bdWRyLIev0!T=Fn0Bw^r{7xKx8>5zd?x2rsvLmJ7-ZQ3Od8D25J9AT56L5*9?9G~B!4^T)K;zH-I*cc7Miw3DO`OGh-7oNni5tds z$Ez!7)jXJfrZ%4N>FtK-mIzS{vGXKF1hYq|i>xa_Q-FRTHJ0ZDx}ksWWJW|v$Tzq9 zqG*zPe3De)15q*)f|ssQ+4Q6=PAtZ1{KF*v`M;F+fAm#6iTC_IXmN{))qy?lw z5c}_}kGuEi;-}a@?hkz~#6R*rf41pf#n#V;W2Vdi+CqDm;J5d6R@`|gSo7lveVewQ+)JWX@V%? zWVuR?Xc*9cExO5?5JKpx&Gx~9vX;Vmg5PBP+(mN^)SKg_8gBT{R}uH_4u9x=VEN{< z&l_=R$$vIn?$dvv^nXe6yWzg9m(W^g_GS6Dlv9|2wzuqF6_L{9aii0AA)0^ryu>{T z7aPJf=YLRqwa#p}vcOA7Yz_E_ zsziMh~>OFs8TcpyDWYIc5 zUmv;GiBMK)c`Zlf&XvVLgH%!LjWUH7)3pUo(PK}=M~W}e@=sSu741sj$OE+@JMt5U zdV_pUAC^@M@0Dr}nclbtCl014mIiL6wKyfYihWh-CQ7lc(Ix`cTIXA@w!V2pOl7?} zx(`-+UFA^d_37Nul-|)LU4mL{<*}CAWdXP)a|@#lk<y7P7q?x?+W8T8NI+i^ zmt-o?`!PlvGjr}ve6VYbibW$nwQ+d`B)lXuTeXPNr@*aF@Qu z)Y6A-vXEd`%-r-DII~gj!aeD#OtV!J*-)$YQo}l#tdXhOfZLaH)FeO6i|c$1HkY zmU@HH!bPEZzrvk!V@)a&8{REY8tJ#_JJ%$yUVRUGJyi6#^X2b~*W`tHUw*IiAw49| z(_(5)j@Wx@Q)pS5iiDCknyTBlv(5g{%Dvs^C2A^fiyV~kID#;IUp0DUslO+?4!EH% zJfz%hdE2s3KrfMw`jL|&-Jq;uB@zE<#XnDWQe1&u@nqWy^-nVa2&eSq&a|V#;DGkW z<2lm3xQ^!G>75TgZi%nTEXSzI{8*3@B&gR^uQ^V)rv zxn8^$xNBk2#2*l(`TdH-F3m`3jyT>5A8aT+THrD^Sx~$BUE~DrPK)i0&r+(Z{nnyA zzpG^)?G%&0%-chZ}oEUY*D@j56F@@VSfDzNBg4ELK7Th5qJP?AoAJz3<1T8GZ4xEhOXKEkWWt2Z*!OOfEW?^<7~|` zvz!o*>9??Qr}$gCcdooXa!TI#`{v*6;iWYz7~0!@+FC#iuI~l3OC_iACJ}Bj+bNdA z0lEiwpC#H;er7Q8K1SjvE#?+mn^S^ zrsM`R0k9q%lvvg<3-=3@^OZVq>eyjEF*#Xc<*nt;)Y?SL=p`Hb@FDv90?0ZO`BWZH z5VAS6hd)D+djqciamp=lc8g`@AjWtS3>vq00qgP>pd0RomhL)#k03@}NeZFKl*^!Wr`X(Dpz$W??DfnTLR_b|Q<2u6vtl-A;pHp!tGVH0{ioU`k5#VlJ=1ZAce5$%;(<(qc~to61#I{ zWX7(PAj(?n_ax=io+=YvEzt(x?Pq5s$6RV{nWSQVjxoe0>NHAz=f;TDe)Bsx`vq>G zno<7={szz{=#yKt=Su@h@pFP$4Sebk=E(=ySHDO%G`Q_F8K^~Oq%Nt`aVJ*us3cP5`Xf?Lt>y60+=UVT#I-5vuMP7X`ZgEL@ zSwx5;FL-uk9@K|ixUoIDG==JM0_K$BCA;G+*Vr9gbjp@}UPAIkk#(@lC{oPce%!^M z&wmY+H_U;I31jzqwuA&h0t%*P+279Svp2l$SK7%gJ0y_Vy8Vf`=nqB%bZ38^f6=P3 zVsTfZXqj62$_ci$j(&CBjm0OiAclX2`6+uM?iV#Z$U-tKZ3}aP{4@Ie{#ej4RsR~@ zuV3txzt_UFw&v|)B}ZTUo#3kAl3x$5bS-}rEiW`?PW!y&96TV7y#6$OU&N8tT)N%$ z)lTPf)XMzRd&Q&H&(Y0|gLC<{-QGlL-9_E2Qok~`{FFXxk#B(JNSm0o`fVT~8m7do z@M|J#*2B^mwdRe@O{cFWU+&e|tqYldd96!3{8qAQ(~)AyqQS##agQAyEnuBhaCWVT ze@>Ms3NXDFYd5rgaJp*-QoY~~W^X$XpwS+X^*isYooTw_Q9c8Eho7{2{b?}vIN*KY z-qzh?&VJ7>nds^=aF^(W_>~nso+=3HL-Et$+?Tj`TP(J*s@y-c-^)l@^q&a*a>l-> z^_)(~en}Z-@3G&Ixj`M)hu`QaI3(JctCuoc+G1dOk+{1e=Jq(q>DFY)=*!iK(S+X7 z(V^eO<5gCaeqEQgs9)W(=9k%W(h`Uy>=V<1@V(xvtSg$vw|QZfTLNr<;0eI=wO%J# z!_bE6f?}8EX;rpZlVSO}RIXnI*8KA8joS9>PwT_hi>K7pr+O6j^FyOT79`dcF0STd z0?SM6L=T*d%S=Zv|6Jsp>o*M>#yrIyWxQDBXBVQb_xS4N8}FjuB2IpQeNh`OvF+Ul z6E>A2mNTw!1*?IQYbV6VlJ+>WR2{llaKoHw#~dH^RwU@WL{#XBe&GVmPl?~Lhty#1 zgU5^VpXhWCQ(A{LU)^KNMpXOVny(_HmblLM79V?_HS7o@{*;sglE0|lyEaPULsFOA zfj6BMelTtBH#4;+(SY2ifo``_Xe!q6ykX_a%ksrWK>QvPz9?FR>x4q5Km`|L!e4dx#L)(UEY@!D zOvRQPDtmS3`wqV2CfvLPmic5gdj%^LRgS5uLR2jtMO$8ESxfjeF3Vi`RxEKyX)`_7 z^7hy^DYlV(E$)`%9=ByFre*nTd;1~t-jM6P?5j2N<(S@;=ek?=JSaY|q$64d$n=CZ zdr);5H;W`a)NaqiKuRZn4IsC!-lB%x^Db+h$jT7`7JgOzCEIK;>#xu6$zD`bIL6Sm z2cl|%rEVy;f(H8A7qgykT;I7b>KXmo_fnksGmNuq#Oq< z!XJ(nWoa2nUmE+O;chvy`{~12sbXuEQu77zD#XT6xwlb1`kll;pNteA3f+Gq+bBl^ zuR_GMNo0SWZiFOhM=h`fe8pzE+&7deR1HS5pj9=$> zio!1Ao3}!e?|v_qASjb-6ol6c8;an@NAunNyEvr4lZ$WX&9VK@tzvXR^9N6~jaN2M_pNXp{{qgE_`j6F%w642PTyu-K$` zwnuXwstSBNa@n-rzI69;e)D@@>n(~duO+Pk`cI%e_{4qHnx%D>U-F@Q!qFmg|BNyF z6SR?;9liN7hs;xAj59`IJKrAsnZB}i^WL9x@2!?nIw=$azrVCBze-fE%hIhZNN166 zkL9?2`mu0^dFbvBwO^%D+8;hz84N&w!QnF4q{%(ivJ!X0gJ~n%VW~)laKYnHTEJRX zD}&tMS6mp$4HLQO4X@>$K@AVC@$@|}V|WZR@9{8sKI@A>PGabNNN(C@7U!}U839D? zy_ZAZs8)u&j?lj4Y~&_;?80YU>b3*-eKTDGSTU(lqa$=WWVo;B!P<|z?${XV*_bM) zt^PiH$FL@GIb-YM_(88^|SUmXCJfo zKIiQHKD)g4`~72!Oqn&~%T_Wy!cM=rSQ_{EhDqCLYdiV`A$A4T6 zD^}Nhm%9m=6rP*k@{ck4PNkx~y>`{=3wlN1FfOe(cf`klliyIA*NK(+Bp65&6}my> zYbLzm{5<~RDv)~rcyyoPlGdBG-_yJ80)6Nj>QDR&VD{%Iot$d~Ap5 zB)B#mXj{I-9$uNN{(_IS}Bk;<2WfXR7BpivANn$mbGP5b^-Te>_jsfvoUGT z7H_Ah(5G}s>#OCM-AOQUbMQ%dSJ_zIV<$O(u(9IBv}sl2ORzT^=CDINP;`crYc%g! z)n5Q#NDg1e@S-v|N<(QyRP(8UuMqO(d{4D+nWrsnU|u+1BGW!KB+?FOG;) z;A*a-C%TT$>^c$88oz;B_u3<~MlUK=$}#yAL_H*fiXZJ$V&SysC?Zs@U%v4F|7joc z3ZT9VzHs;TRP~?D;=O-rU&=)PRgd!bu1MOKiE*09$Cu7OmMyy3sM_+LtB1~)S#$FO zS24$D(u@~x!rjU&clpq7rQm(^KMXdC?xz(TDKEkZ%2z%ny8Wv9bwI7Wm6mgUZ8e9- z^emjqe-XN#nL4Y1#RPqqz?^sdyBeY|kHAK;rq{Qxq^6UR(P;kj&41kbd+++MxkzuG z4NI(%yZjcod?Dg;(e}9uoxJ;v2_zh1QbaDI{KmN`l?x*sZXR1@nFV~J_0%E9ilNdD zx86)?%I4+dfEr-C4F3b+YrpnAMwh)=#h2uY`0S&2(MunF2?zPkm_epE+Q| z%{A)7IF6^E*>H-CquzB(rEPj4u7-HL_XsY$L|ACUqKP_xD=HC}jgXu|rq-1o}wepcd|E z4;=MtIt;r>zi&bw3N#Q%h)T64p}LqBRb@}`pw;WXxDSuU6}MF6?FqSI;PxE)K)%B> zF+!=ckF!+Ky%3M?oRgBnkWm_6S9-eB5huFAh((&u>#)ytkkDYy=`0$y> zN98jM`={_|!n2B9Kl`@Vx-SvNpQ;|p`w$&Q8)tBp?UBa4${9G$mV{hy&*0=OdD*=# zdG|pEH%A{$@bE4!V`gldvyH3$^c#yaCDqyDFkBy zYbF-r&K-kUk%D0!z*v~m!9oEM$ZWOobOVWgO%A2^jQ{Kn~9y_${yoIZhyaedKJyckByH^P#i7 z4uu~=upJ6TdMo&tBp0%qd64 zE23Bfnra~0siRII*-|b%*YQ&xP3gW<%*XEQjA(;1rR~Pl<45xA*v+1$N2fVddXmRh z)6cfhi>lmCupBxnAJp~9z<2?pN@I)w2ZR}iEwP@@?KoEBg84EKFmnxiQFV_T+%ZYV zZkH?_w?XcG5H6v}?-(A(CY0cj28TOX&glqBRN8;vIM@i{bS#6II4M0Zd0?eT7=0hy zmN_vy6)&Q&L_a9H6zU3XZ#sp?57f06vPO|@#XTalyhKAhp%U8>eq1tlm@tFCfE+GG z0=x+|kXZB3b!Ulb*Yq2h&%q|o>1ecv1#`E*?&`YHld~~!bH81IF1!qc$Fv=Q!@Euz zo^7~G6aq#Q63kUHv(1R3C;%-TkGYe|i0hD;Eby8EiT59Q1=r5_6ZGqD=7XJ-kxp~c zL2*QZhkY#SkY1-9Zy#J2)~K>)wk6;F)xE9o6Azq&9=BsNfO2F{ld4O=%!fb5LdW$! zH;kj|w{5hP+nq~u!VO)lqUCa0~{ErLtm+;;3y&P8-YF+wN{C1 z&kRX>+v}d^~8fjCN?ckBg=erH>qDoME|Z zj9#0}n9&}nN=AI8M4{K6MWG=bn@O?MUJ=!-%cY&E?IpWGNiObu-E3;D>E+%=;rGGa zBdR;M%9x`I9UZ86dG-hEWYn`nQl72KT-(04?UNX)n60;7BN5h$+jLT^^Z>=D$*U)BK;yfNq23$icxT4C)j zFnczQTvj-WYI9@j+jezqtyn+$m0!4_5}UZ+BKyuaTZy2g>m$>FPhhoc1jlI@)ei6) zrje+@MU9<=5&$km7C@9_LBnBHm_?U6ZBywG4K%8QoxRRnO7{B1#z@HocA_L|d`G6X zicj)_@vxH*THv=t&GZU7H;leZZnelUSZ5<&3DbbAj-PgcbZrMhO)Jwj8ALollWv=H zYnqn^Og1aAcQ+Y~0ZWU^krR{FSh3ok{S~xb0+kN~lIl%ibEu1Lv9N-^__|eY9HPHxyE|uKWbvMd zZf*r1Kxj9v*V(H2^i-j~z9%UpplU;@2Vitd(@@ zc6f8UK{BdRp`ML!Ig%yf#y_W2)n@-XIr@87q$w4&(*yPg)jIYIqvGob;XlU&CD(It zeplb8(NTyS!S>yE25Xawu@td@vqW)%`laC`Ral)lBCa|8Z)CMRJDeNZj|LC0bb0+a}0Ugc`#c*G8IW;ST5 zxVrL0t7P}Yk?2yk#)hhCYT*uun-Ap!)MQXY0ZZn&%0`hzbIp(etel}Df)lf~Dkr@$ z-YF@nlqx5!?^2HMty3k6;dY&eE$^2&eI^Le70CzU*7bz6eZ$1rOD;VJH5-g z>oW`u6;3%7qbtsp$KAWTglNwy{5*3GGD(&y;_p)ntl_c>q<8gW7mwOLHBL29gl0snXf6$)2xoi9WkDKZk zIg1WjF!}v2jS#WYNnoXrwl{W{4c6dxK{EPb#EKSG!;0X4xYTk4&q>2|iGHF|dFTG57CR0HJOmYU+G zL;P2>?83@RPq~jLr`xLEHflyAAy2ZTT5}DXh%IM(7eWpNFbP5B(~z2jjQfgl`7JLS zP68VCrU^5w*=}geAwm^txqwbx^4ZwkA_%)FV~<)}>VM>n_mVuZ)*Eyx13qu>TM@2e zU#!9*b3^%UutG%G6Ao-L$+kU6&yZI`u&{(+YFapdI5!QaGKVY)26$JNRxTlPly*a= z&C&5d;q=biCS0gsTE3UGMk_Q_&ka>^+tb4m2+*>GyEpwZj$s@n3Sev&P6jd4$~*3@ zfntMeBjcWDg7NYN*cMaFFQnN78gS!jsmnl)SS>Dz?7{+P>_Y@AA@2{{uWpw>D*gB~ z29-bTdgObScx+iMfOPDX^U+_V#`B>q%}0dGGg9B7A+w|*BU=o&Z7r5P3bzL1TiUB- ztB-&0o&PUs{XdT2;Y12br5~zgA2vXwqOt${xN7Wh8Tby8bjln#jzNU>m4fKc|8>g~g>n*Ba%C3WMK_lOU}!FyeG{R? zg-ffVLjen0HeFUu1f(-AO$KQ*{}t>)3YoH_cIELXRGIHzJNw8d|*oVc;=YO;oiof)rW*?>R%7jMhXx5%sy}xDT$5F z=WPXVDfXoU;IonX8lu$%#0!VrtpL1(Slo}lJPaVPV1d23Dh8icTDQ^v;57U9U#0_m zO0ksRIx{Yn@`p>K`=51G|96Z0mxmzL(QM2gE)BAOfDQjAz%YqO;~#LtB*bC&Ws_3q zhjsq9#`isf1SXz%ua4GLa!q&|XmgOAIQVFaLVl{F0U zTVV+x1MFq((<|Y@^rIty>8FN7Kqoj(>0>1^)9nCcnu*5zdi;rj)UT}JP9IH&P=jwSv?L%^1Y}iXIU9SO8uED9+z&3W4kuL{<2;4i5K&#zR_aEHX?Py$u1pT z#a`+)uZ*)i{WWuFb7-b)Wa#4;!Y}Tw*thq#cdm35h zw|Xh3g?o-yBq(by@V(;=TL=itfS?E4`#lQp^j0-Pyn5O4@RO$@#>An87JjcDkza__ z)-hrtUVpkx$FSl|F9b9nxZewZ0Vfd?!B$klxM0R%sX-BA%ARE+eaS(dhaz zZx-$LA%(T7V(ce8!c^2{DKcnyQM)A{&ohB<6+0zy0HHxf=rRY^JdgKZ^()Z?8ym#Y zLD?q=4e}nQ1;snVFYV?VEq%vHARo03;ess1U`Z~_9)qDiS-V(pP+v=af<($;xht>@ zaQt1$46+;~&-=&X?RBP4Nw$9EAO0fGKmJ89|K`O%<`l&w@N5z{%<=^;)feO>ZEXAt z%@=Rt#~3*~897(t$LLxaZ@l?YozG?kdK;WAqESBp0Hy*CH-B5qZkH2VWY`-mQgU* zsI)#OLUg`t9n=6Z8Jz|;tcki+y%TUBZ<#E9#DnIB_lI{RvvWk`VNbE9welmI`oy8N zTpw0`hul4sz$)x&)1F#$`}^R@m*t~h14Tg!|B(W)+Uc@#Ozx|-oSc)`c6ZoYTfmuC z%BO|#rTOuVz62oCx%jjJV1{VZ0(vkLl;Cv(%fHdZzYRU!oj0?wZXx|_lMA$AK7)9^ zWhtZVl`R#{&{@UnUId5<5j(PKm4Y_6se_>Wp*ThT!<}rvD-&qL9^m(kD-aGlT`0}j~8eu0xa(FOfs~(y$@JWK;#<4 zrxg$cdJh%W8soDA`+Th#rT{bs^d0S0>DUZ2B>^vwfdNjqMn2@Tuxf_u78CWDE> zTQ4~?LgGp6a0|pNQ8&Fk@Y-qOjnU9c<1!i}*!XhkyWYpcM!z=t*QG~>!eIQ6rtOgO zrNni3r)V2o0J~*?=3SD_M~z||wsXoHYI!q0H zc7XDSdr-BtdMi~+C1`j9Pcgu6wGniXCF-+{8T@>-4M8a)jUTxgBkuK_{&?M3QH)($ z!f#FkA1hF!(2b!woW4soTm$|DaNk7-#(stck9?}n@tG=HnjD0G@K7pz{^+p1y%dL* zir*r@Gt`11;fhK3pd{WgL=E5elbJPZf)3YEyVafuW}z?Wbf&V;(S5HJHYlsETyQmZ z2rvMC^V#z#2NGVa;w(l5;WTZ4ywdjU-`%sqzXLr0HbmZ|8Ud0Z{>6U2#pr($tbg}^ ze};x3?>v>uWRKsfT(}r5Lt8J|OV? z>+#U$sCSEZbz8s->v%WWkyLb7XzR$*b1Tb`^n^4yn|LvA<(?|fyjrtM;d;rYi zLySIcIG(Rr10jx;Tz8~rtSU(EnmpLPMqm}eAi(kq1ep;o(PZxuG* zH~JaCnJMS9*3QQs#HL_T?acvn@;uLMrVBWrKDqF6;8~7^A1{R2XVl`P~Cfi7puFr>k5JOJ2nlu~qMo3`4+=gRCRO zDBN8w&lBpQ9eaqHjPthUAS{;Fful+^92W;OEZ`y{dBG{Y$dH9sSdTksL3?SznPHFYNw7qVnkH72!W48ENc#^pl?X z73B;+IQi`xZ|k6_0J6a?w~YE<)xvaSQRrZsOuis~t7>Uca0_3;EnpI09Rm6nQ4-V} z-xoLU^?be$+{^mrkWQHvSD_Z1+oy*!afz--$gaRaixVo6iBaE4t_3rI+MP2(8zGnI z$8OliI}+}*bD)EeZ(m3FWC25Aovfn*=;g{!=upovqN{x6OeE$MuB5`%?A+LnbqUy` z{JS3{nX+L2zH3S4XVN5q@-I9mUDkiQF8`8|RIT$vdhFg;`VNBfc~^`Y-G3x3_p)B! z`H`Yax9DP<5JnOGuC1VWoYmp3dn_%IZ^`2Ze<2Xrb!ix{{=K|@-zqfe)Mf;%NaVaf z+&?y@(K?`;Dv0Ihw%8;;gJ!&ySq<9_<-wx{(92WJ6GkEl~YMB+wTjM zTr20LPC@G+Sy=(n-{JoLb&|f6SvO?Ly3XkkJZJ-A!OR7s+?PHamnbEJKY|M<6H7}= zi@&rbf$suCLqo+X#ACdes3?)yW<8QQEdkzFDgZbWac!G;eCPuq$yK@EN10|p>Ld-# zS>Ll2SRiIz=u{I8Qc&RNe0OCv-f^4Y<2TS9Q!QaY$hF;bIu!GaHPI)PsjshZQ*WKp zn4E|k3(L^opZi!0L*%*fPd4XNy0wM8ah1f_dP%H~_QfFc2zV+|nGgsh&A&zIb?O!S zjR0;TEw}#Qvaw+HhKo!-69zTAT&ATD=V@}0i$Yeky)IVRCT_icH#iHP3K_%&EKjwUahH%El~V^-u#HV&w?1ylgA%76e`UoKzBDTHJ|x zoAcBNYs^PNN5E&8lscFkx~;hBV}(%*2L( zS)Ydk(rxC+hS+8kL_%5%8_q4vNuEd;mMg~6pz5ZT^-1mPOl)asx#_GmLkDgbaCEU9 zO}d4HE|%SGt<#vH+hC@t8U5s*XENEs{nFTepc>m`u5g&J0S*ZfQczGZRQ*Q*Fc{1* z0-tvZUs&j$nVESyW<3Dvw}HQvQ&ij`dinbJ_;|No8|Ma8d!JZ}N|$xHyx#4QYOM;c44H>^hoqNpVup`%+4>?zsF~YTw+bc_`n7W`CGt zb&e<}9ZANEt2h5yy8}w-TTNJ%i~s)!BVzf<0A4URG(Vmg6rR6*0aMR`@plD#OdWWh zg$i`)IlK<2+d62iuRnXDkr)5FDGY4jxE)>;R=oQdt2WN|tQECrZt-+nuQ4~Z9`po| z%n6CX8VKgL7wkD{>P1!RSSdePS&p-L~M}GDW=(f{)nsb?RK5eGNNh7>h6Pr-V?hl(hP<8Sl7{CO_H-+D&V z?x<-VX>#BKQO)uC6QCa3Zgs9?A8fSuEIY0C0B99aBn4eRuyHdO!q0VF!MeZ~^1x~b z6n>kCXEVU35E2O1q|ieoSi=^p{8eb@U`Oh#y~M_KF|MFMW_9t}k{7Z*%!DHo0tWQ-x%HRIv8lws!Vvvg2I3QqUqhz7 zC<;HK)bV)>`dYD1%!eO{AxrAFXrg=$ z{OP0Ho2>QYMMS4euQ-N~m+yVSYi_3Osns)0KboT-IfK-zP33G6Fxzk@lKgXH&!*ppU5{P0+o50eDcwthD(uUR zxUt7?R<440`ZDMx5l_@KyE9{ieL8&1?JZ$>03;e9j|Cc-&&Xc3$1$#Lt5m!9wPt6^kw`Bstm+OPJS%c^YLI%*A--rxgg}}69eR;# z+=jx%3$YSDvZQyog6o8g0pMeW11FV7LR+H>rA0AIHl9ZN@VU`VDqa|E@ z|5IO?TyPc<@a|gJ??or@7p1m?J^Zk#+slrY`J+#8aOY{r%ECDzXoI|SOx`IyiYmyw z4j&H(>|E6pN@FXBU|BrpJc538F@kE^Yw+%*u5bB>lffgX?V*^z-o1wN#DO>d zbR|2B&F$a7wvUO{2Aq*Z%3ahN0RnV2IhPBAV+4%exqTrK$*A>Rr2DO`Upm!fj(Du5(CWKz6~uKHf|`5i|!WgK#hkP)(IL` zPCwZJc~SkBL^!Zgee-|^t;kJXc8uh-KUw=8dUylrCzX4b=#yD!IwCPU5pnkXSvU0t z&K{_|1qYgTUaEjco<->if@*q?_al&hwJ1NU*(1Ce|%V*&%hX4Nl> z0YgsfR#D*avP6G*c7E)}<3Xg`gY7rh##H*?Da10R?N>Yny?`VR`3a}0i*Qivu&fC? z;D*!n`g#maDef$ugJEfGx(J&=rgjT99T~YYPx@}SE;&}bZ9Zk&Ts)Siz?&p|b((>n zDwjMOzN0*r%k{6l6KCHX(JD)C=G3FD45G#fm>h8n_sxVD)RqpkI#fEQtKr19;$#AN z4%=mCe;6*e>Fp7?Un=ZZaAe#BeT(*69H5`6<4#8wF1JPw1m<$|ub+OuTf4pTa)h$z zDaQ%tTIa?RZSHwz$pO68)|d)7?H)pQ!MP>%6w9Vzw$bq;+gG&b_7>-p?u)w|^G>+H zHodJVyiTbn)q&d;1)fhscF8hJZak>WO6GXCI5(tRkj$9Z+-RLlR!iJjrv2$HbU?cg zQT?Wm=c8GZB(bl#FU;5yx{gzcmyqy*V6J!P`^rTKj3KjnBGc#3uJeCw<%7!!m4V=; zbynY?hkD$C1sY}=qkJe5SizCA)lS3MW6pxZ_D2ARwetzX6u!1KXuu%El94+!N! zaWn9FXn*ih4E~-F(f|F+W42+T$6`k)rujTVQ)8vWVJQwCtNi#51b9G*)Wx7DbBLpu zDap}M4zmPky@BsF~Ss zpMpfxfApzuV03V&eqI32Gos}?#Pdyb-7rM(JK$9eSz)7X&Qn^5*GP3cJPz$Wr+Y7t zTghbHU+x=dtlgjA)hwY-HV*}@wxrEL0`AGFd)Xd2IEe9jWEp}PH$OHoXsGW^VrO~Q z#JwdtG|Ga(s$GBnjUZ33;VKMIGD!8=)z~m~`PJ!t39gX9E63o!Gy%!;5do=#nmNvN zy7X1@=iiJLmaR%yBPIH86oTN)_|2VMYMCVNN{i`m=W~Q{{fqag5#C`xgph9m@Azi| zOAt*C9Yar(L6i9T(!1{8Frazs|1R*P(fRb@371RxQUtGw7jl8Njd}W%4L;s$&{o;* z*$SRMrGK;+{;|~3X?rvq@H}4Ak?3F9z=Ok4@3ClO(Oy<~;!US&Bfq%b7Q#)B$>1B{ zs#HJG(&LBO@Q$?^)i_Cnh_@&^ghLsPy=8uC@Z+s$CkOc0#|*M zm>!uQ zu!N?F3SM*m3DBdK*4$buxU>cT>}&303$Pw?#%+D7JUSjWB?Fw%ck79z#46(umD(l@ zWSa+R1Os6b{JcU`P~KyGO__N+mWO&w%g30rwGL4i7lN_5g02 z=Dj8$;W&(BOPC-P1SHg(o{iV=U&d9bt(#HRHL0oOT16N`dH0Hl95#Q9Oc>)UD8D|9gSR>@1;Tn<^KOMHl|V)mBL=3to__N;#C zNXp**s?;T1_$%=seRp^^Cq}XH0Nf=JmjnRh(TRX+tuW)!TeAA7Z7A@;)aZ1@>jGU56G@{#9~Sv-kJJ%G zfvL}|nMELq#t+WPtcB39s&B**Q@i)7VLGQyy!R|m(l zFj|7LfEw*9-|C+UUt2ft-7M7I?=p!jL0)=2%$HwUI^7wa(Sy!my;>((gkQ1@UI zZN<`!Sqe)B6SMhtYIz+~vN?Z2yE#{e3fhMcdgP<;o7yNyF}+QT0r^LVFTHvqZ&^yM zo{i<9{Su#ik70!nV#Hl^`2#o>+QB!2xgP1LM$lK=89lbFju5>~CKW^YC;=1a5`8OE z@vCy=WpGslSL6*lj*{zj?Ysv_x^q0R`iNikV-z1PIm=#$rYPdg=s2__9@v19`n5&Z z;vQ6sb}?PpvR`0)0e=2*kw4`ciLUpS(X9XZLx^BS%I_a!yvtkt0~|X%TB?s-2N5i| zM^xfuOt(Kq2EQO5E4xT1$URJRUF3SYaIEFK598)G9~3AqtQz@qGlR<4RT*C1Ew{EX=KI@bVbxv$7LW7@!TydB9@X~0J5+pLRc5%7 zBS&xekIQvkxqL0-sb>bi;5q7~%QaR`Bio(oX+ywXVev6uxj(!=uz((a%Dk^RZ2Rzb9mR!m#GV)R~_{aDP#c6ei=J)>msn4&BJ4{hC0yI6@q|rh>bE7C~_*^hkf( zFk|dxG)I+g3_(QKFyW+23n(L!WEeuV+)uypXhi*v2NN64w&jMbdzKgD)2!7CR&vyM z)Z?Itt!*Dz#`+Di3bEBqD>GB&1>h5}Dp@{6xbQ}FS%)sghHcQ6T7xxR;FJCC4eMlg97nx_jo zs?0}(eg1kgoV-Ii=vNj>Vxws)cv(y(pgg+1XnA{#{2*G;v01b!()rnhD%8%-_qUrlRS*1z#U#?K)BKXr&f;bpL62$oKyRaz$~>NKOq8?62jJc9&)ww(BrK| ztfJMW+ut`RUWpxFQ~fcnu5JFxyYqR5Or${v=(o&$IZKMJS4AvBvvu{)mpL?hy`^Hk zN>L9l(Aa;CklAk|Puu63a!zlLpT2q$Y1eK^@ugBKq07(As($CLckpMXik{=8zHeF| z0iEkgHkfNK)err=+M0|F$K<=0ttgC{%$yy{X+}Dkf5g!?UK#iLLT~^5Bx>{K9bb{- z4#IHw5nVP%N~CB*xQ0tjMnOQ}Q>m@;^EnRn&f_pB|8Ln=jJbWZXs4PlS?0U*ub%ZU zHGNzevJ(D+AL2iG19_8EP4F>IFkR72y3N@~?A*g0R(0lz&rMh;u$mc|mgr;0o|pZ;G2~??P3A?`EALy>Y9(0jft7B{^t+`{ zy|q;Y(JSD_Zn}TSB_DDYO^~X_TzsXq(LQp4UFoWE4s-~jnx$e|8WN|PHW3WU?v_>*rKzcVh|fZ^m}J+`7?r`^xx|Hh@sVnx6D_+8p%1VL zq@x#_g&4*7!BXJ$&jghNzhI>c@X=x7xW<#OGIdlm9a_CE=jbITGOms9)@)xDJGw1! z*K}erqF`=pDA>Mi1$QF5D{JK-Aw=b(njR@A=f!r#?xFO9AHQR3jlEgu&?d4+NC08DDnV%Q)!$o(48X7C(f0D)8^5+>{HX7YjizMnZc9AUs2y>#t4<&7uX(gR9bXI%V%UPAB|pdCD5IUy{4is zhu3D+r&p9oC`B@~3|~Ps^j}F795H(AR}w>cjXRN6oPJsLW9GS6$UFF) z*KU+Pnh+@mbDFQ9dao_b-zp7>G4uce(sL% zp`YY6m=;}8%o7^DuWr1)?`q(@vqE9}`>27$r*7TwR{fQZB`a%`g_lQQdV_1HI0x?XEUf`4l2hk3UVqRh(?N%MC$Y&GY) zzQvb+-PwpW7Gw1~R{|jg&LvFb~|7yd@T!nLyX~9{F&Ih^Vt%9!y2rn(;KvM#^zYM z)?O)^jp4ict#R9FOZ9%{z}ZzI&#D(kqsZq8GDg|=RXmOCl~cnHX>0FmW?yR8|9tHd zPZi^X?e6)ZC$Mp7e$1Pg2JtFk+D|F0Q1<6BTMK0-VL^C@s~=t_{~-G{BUJ;N6yPV2 zAG%astg`Q?aBgnrLS6TXw)>UQRn*1s)eMH!y^&1o7}R|-2jiH1LwoojF!WpEobbo7 zo=quvN_G3xd(T*K>2v2NH);&uP^h2DTzc@`=#g^)kGg8#SB4$aSLX_O8%$`o$u=+Y z(Dw)1+o~Oj$2@eatEVoSEj>V0g|LN~s{OdtnlQX~oPC+bxydos(*0=fl%*xCZKTtl zrNsG_&r@>2yg=x5;pJ;5_yw4&n(oB~?g`4?WkkLmvqp4Bhl+6xgdF^Bc#l>tU`6wJ z!{+J1jROO%gz4P=(WsiDvB@(T+UJYo)45K(Mzi*Zlif|+!%~CmDjZ2yuF_Mwnf#7_ z^;;C;Czxg(U&oqm753t;(1UeW!E-eyr-MEt)Y4?S4yk01+0|2M$~qX0K3bf^r=@!f z(s&b__z%h+ijTUzuL)mVG> z^a#fXh@2(%ME z48z9v<#hWd3F6DOgO%Ma#SflX@d+yQf~^@Z$(=7%7==;-(fX1Kaz8QTI?$3O3gfVF z$xAnb`PcJ`8r-U=@uS;s+aG*8DKMxvbd056Q}l`J?HV#2MFc zHp{pIOdvxkn+tiC0_FD`}1L` zZ;ZM3BB|~$sbJvZ z4mAsf(|H!}sVVD=$#ZSlf>TelV~jZ8$4EVgo~?HKWqbsxSgC9tKcch?Ghp(~DS((! zBDG&F_q3K}@(AAO26p>Tot~zpd4ckr5f^6~SD#Y*vJ*zc+L+Fhtrwuay;?Wgl7D@| z%SgyXU$ITOJCk4ijG|L=J(l;fm_%(3TTT@1$JdF;?K!}BG5M~r_4bafXJ0mL@4eS6 ze4NIFreEI62@kV&-iuO zIF>>~L@4H^ox+0mfml#TAQMlWK)Iby8*5#d_j^`6b7+#465=KP^VinI%#a#xH{Qyw zP_o~xVfMTndsO>wy(R0Hj5(-5fsIIx@%qFEH-}0ei04D|8un9WZ%2HYsb@9t3}5o= z{eCcEbJBM{EZjEn8?+jr!qdomz>~^FKpN6Fr}4j~v^DH$z*ow}rkZZr7};OQGGycn zxTPv%M*FFm;`iPa!G3hN`Z5(ey|4jSpw+JIa>B_gyAg?}Fnem?SOvKg+{2V=xvS{# z>fDmvC&E?Qtn>auS>I~>+Sy`JpJIXFo=4asU*ijxwBE@Hq}p@F#=ZX*zR_2=uj{N+Fjc8Mi=7I6A)Rx)K9sUm9e`zbah6-i=uzxQJ> z08@7=*NHmT8_ftDP&q8+QxMir-VcKm% zLie2tK40zaK1I%(^bVGUym9Zm90R6P1J`0#B~oopS?9yIci{~vdi6=$&y%CK!DTX# zFIO6_qot@SrFuY)JgJh;I^VF;t9lMjM{ESJEs;)y zj0brM`(v(zzr`2!eVt=>yFScctX8Z?y}gqYC1LS`{T#=UkjA#5Ug-UK))jGK zSNGR<*2fJys##r`(}V_yCRvl*VNBP3uRLF@>^K#$T|In2`=Z&?^7f>8Mw?$4~8B^Vq9ZLd{#`)8;CoMW)>> z_dAjbyrjOYUbztQJ65~(qDcrd6K3NQ(@oG@TXN*N>cFmgJK4xr@=~-Wud$}zCBJhx zlcOAJwFjjY@}57SL1g%rKzrxKK!p^oyFQj3dNU;Sgs-RgVBuE@nJg<2`E^cT%f9V( zoQs8Q^4Ve@@25dQ4+kV5nv&`D2eg+>=BX|@k1c10KZ=xK^a!8K&3eKS!1+_B9doNs zjzutiJLvh-^HdX)g7H@=6RBs&7S5h4vCdv>dGE-x`hwK)p_6Rzx2-vq<5<-#ZNIJL zd?k52t$?&~5ubUgVX^nx5(ha&>1{%o<=9^H7+YKTCP?Mhm-O7U;}>=?TdN*q!{<4$ z4q{Hll1$M>Yv1?$6J%`rtf3G5ytrX4#Z-Eyl1C8A%*uB6W*%Xcxi3Kyn&RZQHieP= zS7r3BAeLI78X~V9vfZ~JcEH(ZGL=+1=^7{5XZnmBBZ7xY77KhYJ@)N7m8ibX#U~Y- zFmzw%?sY15ANJ!mGP<^4&&EC-QC@-(>DL|PyN3B9*;sneaOo^;?(^~Tj!d~|T~eKS zQ0C1W4?HSC8x-mlt+1E7Q*(AZHYbs3QZz59T$2q2<$Gkw1uP=@&Mm9JmMv&Mi1GV( zZl!_GbAHO2u6gfp)iP7{_+Xx40FdoJnHiK({yp6U-({nS3n_vgDt>3ZZ|*dyR7 z(3@3cIkl1hS+tVqXu6YF9QtYSJ!6Hk-)Xxf;zeY-5@5UW7pXn8Uq>pG-bw6bb`o^b|W$-;pGsDS6P{#Udpy88dR1 z;Njogr=yI($%JV$Tk;5v!xz!;S`)=pIol~MS}~c&L>|z)`}ipT->=_)8p6O?waK_WZKz_QN9g^s0}|)tjcfn(w>LC1vYQ^jX$ljWL%r*o%%YtDr7nvvQG! z)*wqiniBf_e?QDmU8?MbwBNDNrD&=B@;RaI)iMZpi_<)bR2+?2BE% zWqsv7O2+i4iDm-A|F=tZfz=*h+e-2ej$gdR&I;bY0k!qsV{~#e8SOk@6=4W54$LU> zIB=wkMNw3J^t}6E`)2;k&Hf2|Ubg92W2FS|zO%r!*J(qmJf;W8*IiGZ%{(5Q^wfCm zO|cmXgp6Q0>cl<#ILt%}C$xC(3TV>)ggD$e_f&lpb-z~jd*UbEEiD?9j37H>BSLZX zyyoiG=^>L=mfQKP4_zEDUyLBiYKC=Q*pda$KfL%dI5JT|Nz96t-BnF!?Bb#1r_jUn zHR6Gd9oqIH2ThMrp5;P-!r5Z{`)D$KxiR!Q%O zy9Lj?5^;~QB)$~4i%bvS8pV=L+`g`gM~E;H*);`sTVNYQNccIq@2jsNh&1>1dE2R# zFWf2dP7x5$!*?@`?~n6(jO+#weULBk7&CfU3Fmo;-i04=0r_vZ^LV+OlS>b%B?}F* zlmTf7e~NgTNuZCCMSbU!oQ})auF#M?LftYDM*&_P?{IoqA|0kI4?y3?nLKKg&my?0bo-`4M~s9*yWR8UI9hDZ~UUZSEzL_kFZr9?qQ z1f+xxNmNuU5I_--77+yLBE1Hsgqk2N^Z)?@1PCF7B&6({-|v0LbM8Iwd7tsz^V~l! zBO~kud+m{(tU1@pnsa`>_Y(rI(C25Vu#cDV%WmN2)1KbTxA)TT$-hrhwyeGVBWfV} zu-^CW9xdC2422G=2v&~l+I1>D|C+t+zR?|FcS_hKbtK3N+eT;v>@XSat+cO8+0of* zu>n3;Rr{R}$yL1HnXhGEX1=htlV#~*h=*sfT~(YvyjGv=+@7^74_OZ8@+3^*!Ecg)4Zc;iE~y>gvD{X8D(m7@ZxrLMCpCpdVrAd4absxQM{p~#Y{LRkk zAJ5FHzZBdN;kP{Ztd>Py)DBq?g5B2bcb2dJ@-Qhv>++e@8H^IXuN&_b6-hR489aLe zb!fG*eeJm7U}kKp9HT|f#I)_^t=@3El3xFrd>ZkA=H|O@b6D1#;>@B^tV6}%6t{C9 z|NBL%NRF&@QGiOM)14jJzcx%nb|=e}J@uPDPx)l=SYE6DOu6yE4Pb04c>VqJvL6lw zH&0bu`vX5aUMAhPTh#L6SJkXv>CB(w%61ez8?^+A32$uZ#v}b51I9=I6Q}WcdGX zTR8Fiyp7M|{eup~(Ivw`FvH!Krq>ZZY4BmAb|sA8VAb3*-&gfyXz}$c^FPcWi1nWJ z{mg~DpBq#@f8+Hg@VrEH-;0OiXO2Ff{d8uC>9sBr@X_?a!QgwXi>VK)XDixEwzN86 z0N;yWJi0GFRJus7cTwP4XEvPbwR{&&?1;8#EyJ2?@59vh>OLIMre&yS2J!yUQg#>h);wx z(j|}XJ+$>yd)`ygFzn62IKQU(*Vt?c|4)#3JB^+M)GCzGNX&&k1ADb;j7(rHzS{(s zz8Fi0J1`!X!QNOm7X#g=ZD(lDabEN_CER6b#hZNhisKr3=E|`}mzbC29?({Ha?VvD zN3&U6Io9Z5m(sK+7zy3;2kRUp0*iO;5Lk+HCQ=!p5OMR`+z)o4tLvkmk5^m8C#dra zhkdf5e!sO{y%I_{Z{7frS55bC|HwMXBJJHf$;iG>jcz*qJ>fBvp9|X)v1N0C`mx&f zq3Vj=&p&%?e;aN!h=3}h450U4o!BYjqi%D);lbhXK6hB&!+xQ~ZL@&-ZxAbVy7YvX z_R|Quh>Vl@wp%;7vsByO14@tUH`kl`yAQpp-4T;`Xp3&RNhQ+TvN&AJ>pIT-=A8Cm z&a(Sm#2$XqhcM?}+XlA+-0u!7c&Gwg+$dw$w)0(bU)s&buVJJKLb80>mbECj=zCLf zj+*}g5#=OE?4PnJu)lf*WOsT^wYb}$u)%D-{*^S$xEsz+CJUgBWAx22R2VFW1>V0RjQ4TE`1*paz9eWzt+BKz6z2h=+M4RIOwf5y7)n1jMy@@1fJ z`ekvayy0r*k(nfcZ>g6)j{BZuOL1zBYjkM%vE^vJ*WBZ0UM4(V$>hntp(M?QZl#O* zs=F_9etrnYUPn7A3ri48Mj=YS9$nzL-Ho-(i)Bkq0)@XXK)$JVPfKro{V{HJ|K*E- z;hfO#Fl5hxtVUu#$KEhgA!J%VJ`rjzbmPP6?Qdh|UvQBth3$<#N0ayYm;Rv8)ZN0U z$r4geMj!opmBYS{b$Bd(C=U7R&4BxE^2~scV)D&hyZF?Hzpt*2aI<#Ye}nmuwYK3L zJuD+1;dK9NV`e8|6vH2&i#b*I$oJQNcpy0&*0y!7XgN;!GW-h5#Yn0(@SO_#4bOb} zQp@i@&(5IIM;nO|kb^h&pC1Zdi#`q1+J}Yk!Qnww&+;2oqzeM=zIMprnpfV|;@Bet zeqZrtN$Br89xr%h*r#eF?-)7q_)S%ZG%39#;Oc`KP5rLW>9A)QVW};&9Eh8-n)fr{ z5rC80HHR$lXsuQZUvTy!HSBb*K+nMq&e-7Hm+8KT=3fhK-_|i(8J9?kL-)ZKU2Rx znCh(P_E}08_~jtPofTrKZ^XZ%?0d5o75=Q_IZuip$UdV*gC{5fUUq2--;x59Gj^51 zS_K7S_(ioQ)Xze%kRL7lyQxmXQsv##C-lmK_nbDE3BOQ>SW*gBX}Iig{$9sYSGmJQFSt|KZnaVo zE9twFdmeAqPK(-d_NNxm49k6vYFN58bGR3nL+xETb=V4_I`D)H%SiZfXDq~^xmPnf z+)=dxrssG~{QlaD=ij5UQ;eRc_iV`RAx_^R>ewZ<=&fd)mi4KE7=W}&-lud>8!^cI zXZsqjDz{s3Pmc;o7J3$Sw)vulQ_hGhK}uK}3)K%Su7hk42QKfGNpAf8tOVHd;@THL zctU#=`(vB?y=g!0l6oVcs8Zu~5q-GmZOL2qfJ|Yd6UBAU(AW!PxasQ>@S@NtsQy&J zDs~?v-)^z2xQ#a>n%6h2Zo+CpUkmDt(Xh596(jnKo;ifpJ^GTQI6n1yUv}+@NUfM1 zVN8`X`SBfEvu|d-^&YfHof6t%w<*^Yzw(+lSe6E>SuDpDKwD1pP2PDs(h$ER zvB4|hAvvoHE&Jvt0_Q2pQLO9AyH+g(l(#!+lJ_c6_l)+i;h2y9)86i~!r!>|qF0Wu z1dozajde~0YdSnn>jCl|>a3_N!xuH82JPXMbt-;mlo{jh#_qUtJPXDTGaAO-C zQ0j)jPMdIbe73GRzZsc%g%%yv0zSDx_t`*m*RIxyzbB&zd&?Gxb5 z0)=16Z%9!34Hwh}N&F-K1$*$Hb6NhK_Fv^z54=bMB*ElGfqeS+146HE2mlrW%;e6$ z4*q%w*I)Tru7m#gD5(9;I2>$jVZOv-8)0c18^MMXTPD?)Q?iwoCwTr2=F)S28YsPZ zq^py8XdO9gZsP^JCTmDdb6P*Ti?Z$v+jNhK?Nggogw{6L70nG|)CXy2i>F55b0ci@ zjA4L+Iw2M_RAJ5z&vFp+aFra9y@eocy7%!OsOw2F#WK9nn;S|AVNVD-+VH9bie3I} z#dmm=w{;giX}WD0zrc|qjGpYC>JOig5?7Fd)4IlrJxg;96`5fP=n{6(UBJF7P|UX_ zAl60yP)H1QQEiO!-slwBpeW^5b#S z-1WDNDs580sG0+ykPvJc$M9NURv4?rG z&hL=0wB(r5=5Ope@Qjvm8OA8r>##ld=^X5qm!&VL6R!eGC9vz+ye^vtmmXeLqD{Jnc5y{-Agf-KmVSm=`<5oSwN!3_4N!b! zu+?}N)vOtS1Z@KDd-1Ks<#HV8+@t5g31ycN|IX0;t4}spNM!_<5as$McFPvgKmV|f z_Wx6uFvszd%sPp&zrm}1LV~&+!wHChwklw+rZ(Q*FZ6eTj#26@bqjk5mK$@3h%+JR zaUY+sz(>72oB<_J7>P|&KDx4Ek^euxSiyTEn=<&n1;sVRoXs?5gQh-*SiH6e-=+)y zRD8Krg;}Lg`H>QExmB5SFT7m_b0c&&64dnff@ z)ah#;x*Zof`lZQya`OO9NBAL$TF;G%+wh{{DQfLxqfCcmilMQ;g$&9p zR=*n$xQJJ(j@@CI?-PECEgJ-xw&qFrWp`~ zd_ZF9xb`VS3h=|1Vp4$9yvIgh%MTFH|&&^qURrg`t@nfniP_C*Wx~!a)Dz8(4 zI=-!3T?(+b$0}5OQfi9;**?c84E<7C6)j5fG1gKH-T|!2u@LU=@aA`vAcmv#JJ|55H4kKCuH zl3B?}ektviTAZP`<>aR;VrFWX>2bFDRrUGK_CdW5o+QOwvOFIHSC+6A*1uyARjwe6 zqg_dBQ?_iMJf{Z=E}zJt-*$Kz{cUO2#vu<#NA}&KR!TMZp}Cq(7r7rAO9@g3N_q3T zr7hqNom&;90mcPuU_wCINuBGAn{SPv%X)mbyHZN{kgB>OVU24PifVn4a7fT;ad0v~ zz4Fv*_MHz^ARz@pe^Y(3Ef2i9U2eTU!E&UPYgI8rq)uUW%Vr|SP^}4CTfP;NkY1f5 z+lGSos!%7wkIZ7qMh&~u{bA*dd!&&;4qIGFjxqd)-g(++#gmNlJ-H;K4)V}W`@grMY%lyQE88M8^eYXh^_0Wq?g*!GHZ8*r%hB$ zFIL8^g7On*Et)~;L_cm~@1y7|OSZadUUCpSr!zUo*R4+-A<})j2yYvF?^cxDHjtl1 z^F+1NNoY9TdBIJ!`4@ymu*37g#J-QkKe{@evdO`BuZ$chm60Xv=bPK(KbOhvEsUA{ zHqw|n4cN(jVl8TNgDMJCtu1l>Mdblc!@Vns$8ycAYQ$3DDp;U>nuN5#=1DSk%vWb> z`v;~#km>-W*3lz%8cP1&f%NWlD6VvcZ(Y|JRs~=@*Llg2IF7)WfXQp*p`=8shoBBc z+;Pj2@F8+Oq5u={7|B1)F_R0ocDDhsd>Rkom$q^~=MAKqlP=pBV)> zNU1*|9+afupQF`#wly^K{eCiF&lAYBqFr8ByK7f|{YfZK(y$M8N)C zxgmSkEih-o$wA)Lh177N2565E!VT*eBjcxKdx40_@-wSAD-pxuQ)5{xlnI`5IOfaw z^WKy8RD+35a)WpWwsfhU64TIm#h+-@j-g8V@2SIpmf;(FI+mxlgpc;iaXm1U2&&Zi z%<_{#Ze`3N^~d}Ts=J63eieMB;V`$0IlbqdNI3qp|GOleWU5p%?-pP2-SE3}KDSR5 z0W*k;^@Xq`bNjV@8Oq%ewO5H@aZCfnL4F$V#hj6`T3ksIlmGZQAtzcxPJ?8%ER_{% zWXd89y-(T-^ppp90oE;@jiuPoW*1^gP!bRfyFF+R~!dO-V zdqTd|6A>3R3DM2-uotD&;GkeM@5Md))~fdD)GbRXZ+_+KWz5|WFsXjl0YMuG&Wx4Y zV-=_NZv-*-+(PoknT?p%7v4nOIxOO%pvKgk4xqLGfBWq(P$h$2daj;if9@aja$M8q5p-DlMO`_1+O!i)&Ey8Tp-1ws+{T;)I3!PQ@`~Ne~2jb*bmyOd&#m_gOxP_^XB4dF|r{ubx6VK`}+*_ zaTyPd)%^@dmMb?DG_hb5l#zBn3b2d$%64yiVA0K6nMEGu-{LYqZ*J;LfgXFNLF`Ap zoK%Z5KF26_Qp@SP`J*NXuc@Hg-?Dp4SQ6E?1l`jsQ^4t;x42fHgEi}S0TG4F6!%wv zjL~rD_%#&~UsfmAgb<9#KgJ)EODMmpu{4X>yD?xrER9A>0CABHA{aSM?s4KFx*>|u zn9oBdibDKz$!8&9JAiu|AK7mA_g=tp2ag;nQ0k|F!Yj_bz7LOI19d)c5aB)G)k}1B z-|JN`hQ6Jeph2s-{cN-lEI1wbHrR9EJQWM&$vr4z=x^Q>$b|iTP5GnkB6_5CwDSQk zZ0{Vun#gn}wM+zb0I%3kF?)~4K1K}Ag{P`}izr7>ks~2hJUOX~{e4<G8LsnBmrX7pD{Ks}K%3sbaTOBAuEN*>&{sCtDE#==(mms{xZZ#L|# zA%|bZ70Y^dgV&Ul&9RS~0|!Zm0LK?d95AE*V?|``d3%D9O48^aM+mqFX)JD(=P#Mt>H!w>50YfCyY-QqwVPN=h$%~!`gUO2LuMgq}yH7{EhDUgrwZ{0{MRHb;| zC+&9hZdrRi@szAvQh`gl{7Bhw0RibbIP=7kby*w7^fNeGd9Cej`?BY9B=+bwzRjrq zBg??r22p-%jip@Xm^7{ly?8@$rO@keDoQ~xhuc5IFDORzxBK0X zJWWTsNvGLk?vMqn$gQ*g_;S}JKo{S0h73hk@A*)gN zQcOu9C!UnhJLF=*s~)NHK_uZA8kUqWIZ|k8(Y%h%N^f}a_b%}8q0a-u>F*jm){2pw zcx?5&&TSYt8Jpp&%HYPJI4f+oLJq*a&leDr72TtkzYh9a&0zW!yU_&OJ4GUFbu#o( zSoD#w_hWve4*XhOu*pkepgoV7hXG|a;V1^+0PxE1w zH|F99HeRXj#EEuK3m%?Oovl`v2cc7C0ys`Q>O115#IW47?!XJ^t%olPdATt}_Az@~@Mtoft=q19M$6$Wz6&x z9NI_djIXjd= zLTGssid|1#Zs`9ySeeE&pGS7G<3k1zknjmWA0JPhx`s0;vd6OT6>u67*sUywNrd9~K@p$|GWDjfz(cW@;4FiZPF5$U!lX4Gh1i zUsv1~Wm8N9FC#lK#VxlsF}RU3@+XVI{FYFafKZ&_6Cks{VjyoWysO&Q7h#$zW6(TX z9gq*0bYU_b@)yeZkW}gv9OYdNKS(BjfG_}CwDV^k+Hb-Q7Z(t$I!dTknVxfE8D4 z9RRZbT{pE#+KtG_V&RiYKxrSk2HX|kzv&so1aSmd-EA6ETfM# z>IZ}16WFlgZFDS`t#imAKh0|b62c82*DNZ?#|flbyq(T!c!=^Wk(7}K?})^|QFzU}%@F0xGRou_iNuIjsz9W@t9taa zMZeok(B`$QJmU$>+lCb3bQz>K;sjw9u9ENYw!bm7xA!l3|Li=08|~9L7;$6Y!*;oV*T`0&0z9Ut5rE(+K&^uu~n8g6%4|tHl z5$CzM|L+s7|DPAlC2fa4I{*5$HMLC;Ffsba-S=7iXLt2q{omh{h}X1W66uM*uq*z) zyUdrDe;vgBzfAqp3V&hr(Sh*~aHyRMyL#(ER{Be{&_FkEYM4G6Z?(lIBBOkx*K0zB z*q=ljS?SKOXC?*IXy5x*Q4|u?TvQYV>aBhK+3ik!{hwnkDxC6aGGB)@v_wo*?BA@n z9E0KoIw1|GBCDC*cfW0r=eiug$0{Q>fpQCy|Gdj53U>^v6vNJj+Hbhwc%QEjb)2Ie zYtxShKEYQ*c=%i|2C`D6Jci;TXO&w-atgU#f|bWu_~!VZnxP*Zk=-=@I6BVYFbszi z^nw>lN@9q&0G(KJjDPPUFkB%mu@@&-m-btYZLWq)yp0Ax%8>CzN)yj zIzU{KJ`=w}fN#c5qh{ggLZGO5a8rDNA9&1|X|$L~xktF!#Y?4^z*8ySA?|dN9kn}} zo#BXbg9mcuJd|;7hFqL^{hNe} z;Ri!+os*bwd9{_>K;mbOHfG}Tn#=?HxnHUb5Rwds=ka|5-F#2YZMIhJUAQ+R#giFX zAA^_iFbJ~hEj}T=n$QpE?w6z&4}!rm?Ea0XxyW=|YmeHwL->AL8-;6EB(8*!CUSXa zbpT}FsaYwa0}NhM&JRJq4X7|@(pfX%tw~&+R@+4={arXgvbv=*tjHFpfGgoTt|dF? zY_i`_!1(85n0YH4Q<(wG%a!xr2eP}ttxKcuMa*L$9fyFFL|-VAp|*BStUU6P@JC&OjjB~)*De0?2=-EiMM{cJSv$x6 zGE|3+_XsM#yR6r#?s~TSN#b3vj+N?IK*1wOjxcz4{KS(Z`QOdUBdZcMd=6*Mle{1x z;7wfu4W3u8)Sq3_g9D0eQd%$65Vc3r{0p=qrJ;nCeEezG{)xnt5WWOa3l2uef6Id=p9+2;Tvt_!jo-;Z*hR;`OILq8O7ycQxv3ne7;M z-TPA0+-|cd3o@qDj9#-q;&# zxRPn|mqx>O#R~@&_6aHIZX2u_bsKwH$ET%7#CerZhMH$O6-!ON*ytIDkzGT{%n+p13 zM~(!K>|dgN^W;XFY`xm8R#@mGTzQmoQGV>YZ9s#PfnGjcY_0wYltFFr7Rcy^8-%z0 zxBxsc1rFFVAfNsH03B;+LVu|eFUS9`AAFxFiRx&_B`*CIQAL3je`L|XU z4g@z>-pc#M|=a0Z5G)jz8O5Rs*Kq*Mk zmE@9-+i5&)ziPz8Ls%XVgFWVj1Sd`pf8^&xayTNPjQ0}!4a3~~n65Kb z9TRA?JZG?}KH#g)V|dq!Q&U%0c5EhoC7aDhr@y);1NQz(D1_IkKZCE|0$?A>xt8C( ze$*S4Mb2%)yKez8+O;~%9JAq$crf37Q%Zs7ly{ct5D5VtLVriwLO|;je{g{$^hQ2> zqLgT}fj-e~v6fL3qdfc-(*T5<0^hw=XYWL^gI+ow>sDMub{H2pO4Z2ThKg?T8z4D_ z*jnzj#q+^>#eF&X67JxOYMY^)#UBN7-KTmpkj$cPL{0cVX@0fg6%&B~t3}OE+SULS zF@3LI*RZ=+SM_VhZC)ZWt}0py9UC$`Guxb-mo}=a#+59;60dY@N?;{0kJo4<+ z3T6-&x5^P%$TaV3K*yi8w#}erm|R%1+dd`(*JS{dFY;41d%ao#;%N~}Bq_K=6&(9kZ8r`8a2u$(Q+ocD4Z z_`N-4mGdHBou=9M^Tgd4kd*1@xL+FeZhO;!?>w;2O)uTnS;E@gG76RwjNj?e_5zTv zG>aERmH@9yok6;xfcl3NW4Uw&Gd;##`J0O*lu*3ROqbI6)O|fnvl6}UfAzSr)Gc%T zaJMMDL%|QoFoMW25Y?9djK&t#^-*}R{v4zWj~M1G8F9#jv_V!UWrx-o6pI*A40 zTebyjn37lDxG`{Vr6r?6ddUS6G-W51&U^l;rcVk%dpw0grrpNnUFwfM-ov}51eJrG zm7=;bAlG+$Hf4h&3FTY;J|eFXt9c&lgn<3DIz=1x@u zP`T_<{|fKlO2U*QdM;J&fY_^_-WV;>wv^+Ryd;0(BQ23KVc}ZX;!B~+N<&@pd?;sS zqW@+YL7kb$MUZCd%fTM?N8`29iD%WCH^`f@^2ncekRImRSTVgO$(P6aF`%m>Y0%Wp7R3B8D+>eMx0UwH+)I(7uEA10R61{-^i^`e)6g&@P| zzB{93^QD<$PgIo^!4tE#%XlaCs~%Hc;QS3FzQpZE;ca9M#8#t@_&sbxvY{0sJ~t0!@W`F23CQAfE>ZC3fG1FZ0=+LnI22l zpSULn$$SDOSS_S^4Vb1hrY?Mrcb9Y`Tw0W%pE`~iK;DKive&Vxg%gH+*d`y!uqwHN zG>ELxk=nS&dtg41y8Pu3F!?Qm58Slu;&_l3k)ycZ^qSqae_9qXtw4^a`KUC`jMwKN z0rP`w%5fs>0JYwi1igL(cf2($wfGN+zSxA$T1PK>^Fix?l*e5dJ^Ft4#Fj1lZ2qyR z8gc&T1=7FM7A&e9$KwhN#dv>7U441CeP@Qrq%UZfAbIflKK-pWf2BuVa_bqr&W;kl zq}`(lBd=73>T2~pL-xcyeD2D{)7f0?f0`ZTBVd%q0$feZ4}SfIohKAMxEX zzP=tuB+e7EV*(s?)F+vA2J$eXa?xS;woh#Pp1PT}+w;*b;bODr6MURN>L!OB#i5!a z#sQxXY~H};c{lB`p4((3WA{|5&o_3A@2gUFLZX{p7@NRFvV|T7r>ag$=+4~TNr-{EA;0Jm{>_Uwvh$GSdNwh>8u?%mT^&N903xt|f?n@UxR6d8W%(uN#( zn~q{Ah8Rvu>if20mO2hI-Q?^wWVC~t!4%7b2&spOT{{v#H!+k_UU^5N@9v#A4~(H& zkh|Sj-VJRhM-g=4L~u9q@WZivF%T|kgu!yGAo0%-Ad^4h3jv7zq~5Gfm7KZN;Lqc7 z1Yd}Wepbmwn6W$a(43T1<;U;?&%;&;%3zw#Y79*>&}PSQ_fI*r!5IT#d5!Ev+V*ql z2Y@a&C5~N2Tz$Gx{L`|$^iP}|PoC|;j=Qw^qf~5!>kpd!_7)5uWmJO)sf8*4_6TeS-IwT=_Zgs0CL{*QqG+f15&W-Dn9Uc>bKy! zSHvy>vxW{V)s`2j+y-sqHU&|Bj#VoBi3yt*8RZ_^pkGo91B)Zq#F(HO`iBsY<~98W z?}&8&Gx9xrpeuN_kB`w|d4Gy2>nKSb=2scNN6y6ql_T?4rPj5~C!N5RTYC1R+)ZtW zHlrem+i2O?;8pQ3zAE3%B;AdTQLfHrsh`;79{_$_G-MLZp!YV>qgx=Eiz1affakEF zCh@Uc^>0h0m!+p8j7sro+k#-LyY5sIr$ID)QPFl_58F{W@Mp(V8d^Rq#8B-!D1T|R z(QSXDeur11t)UQ9{4I6Q7Z7Yd=v&9Uu^(naka%RBSngg#MQajU?nALx|p=RM!A!MCg?uKPQULjl618+*Wr@dQy`N?A<4gpavm& z-W}t`m@(L~#MtK^-Vf3bWAunys>Q7ziPh|c^+V|KaJX^g#2KPPDuL{9Y(`Q+F^V1f zCQY&xHd|dMG>E=!*)^`aad7X&IXmw!CHxXbD))Eo>QDHNt4(wq9CJ#q=rPv~#T@*R=MQxTIYWEH z?F<8V@lz%{LBdjPLEM?IC>rD)5Ep#CCDSDvT^p9Ld_>YKW;1D{R60`CV9O&|r zlLvg~nq6$*-6f+JRQUTTstjYbfwpLCrKpFU0-p)ri}|SBuH!LkxFUr>&EcM^FsWHIO>Ko>W z{j?bV(DFyRb@{^*PeG$75*-P?56WQU>j95T2I86GjTX*Pn{uJ|TiSa>&9hg_H$zHx z8b)7?QNeXIB5_jjB4kE@2MFfjs=|lS9FK?DzfQmX9Nk|EX1Va$JY>q`Uc&8PId;C| zmH~ta_R>)5- z&Nd>1oyoY_hG{eugt;(z+X}R-O1Vdn)!e;mlI|y#>B@9>i$=vq) zSZ)IXDHmgk<3GUKfimd@)*E=eq{d?$#)mudB3s5?(n=OzbuW5Y6IM$)bhGJAK@NwR zzx21H>2@Mvapr|Go}4@B`!-w8-M=q-98~I`6_*5QaW%*+Xpy80NBcj~4qrOzTf8$h zCBFEgqv}BU%diL4F5J5(=Gce&E1rS^>>M(PdgITEtDJ$T;kJ77MSu8Hyu$inzn68V zUg`aDYb!k0@z{=QE5UR-{gA30_BMoFl|avace(zKW6&@ih~??5d?qmfgK}~9WBaRY zkU5q(g(*Nj!YiajXun&g6G$W2raPxdvc$>+$t9^Z5lG<@!Sz5E=vy<*rZRKZd*It_ z5hr@nTLOM3rz3s_a%ymc`+-k0)kRIXf&jo2`KW26{D3s=NVQS#wPdzS%ENp`W zbq&8+cNI~%ewjJeW~>e+x}ktuOEl!M!?5u;8mbM-Ef56_%j-08gIO9#dke2?!9$%B zd=T*h`&pTr$iT1YWwF&y6vZ@`vXlO7odcbl46FYQUPqCD&ojGtNe?l?Sy_Gsl64~8 zJ};20+AGtV!Yl9_%N|94PGNQMJ!%wH7I-8=m^eP=fGGIIDl&?ktTlK`Ei`r2krwxX zrZqFc@0Z~6xOz=oMt5uM@*lmj&YyEG5d32q_Td1z^5Wvd5n~-X4}UmEPn8Jo*+6Nr z{xPw|lxz*%hSnEOhq-_r?i{}E3>Ht!0&>YOz*`dx(rpU({1cO!!f!cwX%!LrMdct( zJl}!`4-@01Jfqz|Mhwud;8;!$f9HJL0MJ{Zj3V*C|8JH)iTLbSu4s4a?9bG*o zdnVc5Q+%ZECe8(lrS=_SRC|w(pR1NcZqpTc^dU*o`fVEU=G<~i2Mg~Ty zH?3ZC?OT8Wo)>OzAoa>|PMsoU=w0nk7v;$8M6VS|-3u!?)tfq$ogKf#&mtegcENwq zP>Y4}PDi0nG*BMk9~JOKINwH{P1T5?7W=eUco)9aUE3v?eg?{e3l%tOH+ATE5Lq(MD&}fJEQnm%8#`+3E^E?eiamDHvMNHOv=t3&;`Z%ZVhLNtDhJEwo z&0WV>W7m1li(9vh?wT&sV2!kXmvOoL4vE6(7Q^G_F`toz_IiN#!gXa%z0~9$+>F@+ zt0V7Yt_&;rxziju2Y^+Pw&MQzOGblwyskgJ^)SBYO45dS%u6`|(FR+HUAf4I@Ifv* zbnj^3yNt#Wy7$5fznnr?PakT1JFi-KyiX(JRRxLzTChvU2K#_tQ}q5?X+Ab&edL2G zYNRXpUtC@_2iJ;kJY*lLK%$y{VK#uV#M)*pr(9zb@)z^$?pvTqAOO1mc+}zH#tmEJ zj?h}Eba_%pG}oKv-9pmiKQM2ro}>7WjeRimm7P@uQr842^210w+DW@QzAU$ZF}-`{%@I;OWq16mZuOyd9)>B=F{k?)BH#wUAxl!K)S>YA`Ny z(ZPFF6fP}F{3fWmQ||c2#YQ$Lhlv2@(wNBi+~b2Lo{1#dhA^Nyympu`*iPxp+WB*q zTz~v2ZVgaM+zTw(%l`t=bdAkI3vtqmH6lhy?Z~5+at|?cPqo(tnSqol`JzJ7MC9bb z21M?1z2`_MNA*M<>@^12At*D~PL({SJ@Wue)wNmZYP*+w}-R&&FhCT&57gPj#6_Rukw8 zWV5mdD~6SG*~OI<{ad;zOmy<-6-3kB@Ci`23nf)$CfIIl-Ww-hUi$UiqDeY2Xq7m~ zF+7B;e{vg5GiX7&4%H?gzp*eisN*`eNUa!RP32fg$B&>ih;_TMt$c`d^b+i;wf+mg zG*2e9+B#(83iZo*zr(M49)U)ZPtJwO(}>78^9p!cCQMjhkv8b9)xRckV!eG|17;O^ zDRyC&E71gfqn`NEX>3e~_^~Us_c8Sj^0jLRLBQVFG;TmuKw6;8H4g37jg@7k20NOX)jXK`toyV@W)&Sh#JRoTGJ>!8 z;6(bucobWevzJ9!eh|eHl0K zQlN>n8nsLMZ&B?7e?2Sw{g9qXKI~po=~nwBCwDxBNi#myx%PyRFuSoJkm%aFCBJ-` zgE+12oq)>GuW#{FdwqbQCTpN7OE+#l=Z5(@W{UUr9eX8ZzuFiH zRPl1WR~fmMuBSbtI0&u)otkjt^vffu9kMGfj*!7vi?@^`o2jM~BopbJxt|;F8N^Q; zn+EvGlUU-ibkRXVMCyCO=kg%iP0MkLFE_b(WFxr<7}%s<3L7hJrooKn=6;$5fOC>a zJT0xk9-sQA%LUfH@Jd~LF!1!$oE>cR6@77p_Gy#gwulf&7(Nw5vX^TTTt?%nT%s7m z@4U2Ht))FQ{Z@E&x_qs!>J;g)mC!;x#7mPrWRZ!(=(K@Ck*i~}tp^WW>z$G>fDQ!C z4nJ|sRC6EOoS zVx`95J%Swt{T&!Ws1&8Ru$L~`^XA~6bun|9%F}QO${kMGAVy2j0ZiSG=Mjmg%U}D7 z8_y{&V$2BP7QFPn64)X*s#%)jWQ_?%_fub*&-dK}1TW(zuo*Su5DnKv_tH#~`!XqL zj}J`O68XgQ=sK#L>1KbJ!pa{MkEPS^mJZ-&g3U(xJUQKg97-Y&2`Lz^Ko1S-kO+xctX z&R=^sKIZAQlz81A3n0`6%OlG38@UGKn$hd?=$M!o@W0+krN#K1FJ0^CrOkyFIO*}b zY7p;UkDPS?u$0BkN}k9F^JBQ@yg@XcX6EwKhG6AWHHggCPR+HrqOZ-U{sKc;$wnZf zgZhBWe3UjDhVuT7jN@;z^?EV)bfr{2F%I%N{k_V4;8%D1*X$Zj8sF2t|DHWP4#ZaX#ya%c8y9Gm3dAb>JR6kuO51 z)O2sq2AJm||AW2njB2v!+6@*^5fD*8x}c)cLFojMrXrwHq*p1@Lhle16%ZjRO=?h@ zbP)(0L_m5MLhrqW76ODMXYhI6`r|vxZ>{s=tYwx<u?`!WnWWH7#Q9{Sa zp?ak_6Lte`S8I*fuB$!!cEe7-iA$xaUV&u~kj&nsU){z~x-P_;dqiKgA-EE$^}CMy z4Ug>`0t|}>LaegyiPZ<62`bx*3EhJK4_o!U!#mQ`F_d{ znB(2L5C#Ol#D_#!;dF6wp#*pQe0Q$jO-7A=8VT=Sd_rrtK%@qDyJV=#bD1XAj)M8l zrE!YY;JE~ufP<$ycRTR2P667C0{!gJUh-L%Rd@J9^Q|%J$XMnWY;)dH!0Vy2tU-C* z1SQ5r*) zqLmTEw0Iv~V|K(|@jGmzcP%t{%X{AA>M|{XTXxp-tWz?Auhch(GNm`qV~5TVr?zk2 zE>%&GW9MfahTNh>@9na?@Qj<=<%*m(qwJ@&rC($9J@8JKOg4gNu*-w&)jKd`%bmqcXVJI(_oEpzSR@U!!omhWI-Z7$A13l1h&ayNoiSjZrQn=j zdcP?y&c58|XYtl{d&#|$2}430M2DhlzDkUrv!EB9XR9vHZ(EG%G#qb;CZ@G^n-U~s zZ9{VpQbUSaE*Ej>Rb-uJ9&;gjz)B>Nnu5MBzcTWnLT_VwJTH!86wsXW0#-?~<<8_4 zoktZqE^by1s7Z$6M4hTVTt_PcHtLqU=X|9Gj&6Q*#^xJdcsaV(8Ei(@QTzhA?|g;4 zViX_d>xN<&;Bg-CbNDPkL68QI_oQC7*OWcGS(Z}f#iTORF}sABKL@u@l{IUn>|>3p z+i7vp_=)W4$BD8w%?-WTlMw?)P@T>s*)zfFD_$~37y!;25AO}#DOni$oDes3Ztxw9 zVY7ZP@4=5VUqsc$=yA7gU84_y4QW;bvnAm}AIW>-Rdhbd&MHR;XXT30I%dDI zy1Cqxv_9QEKp@uKAuUueB-7n!^qrVTr;M&KFs=IMYrC>PEOmE2fL~!9Tys2)=Ip~Xq?+Q=KT3xMsKRqf^`D_UG9#L!FJDE zM>bopuX`99VUH2sdAwj@U$cFI3#_6G^NC~*W#NO5c83jaldj2=67~Y+m|d`lInR7p zmE+jiSvZ_jsh4lnn=168qv<$y-b+TPBdy)X>Pu%zTNhHU!$A$YW`%{VKp%VBQ&TRF zeIy1Hdn=F@N&RyeeT;qhyfZdPRK-@fq&Bb|-S3>^G?Ta9sN| z?(r0D;Ny`>%QrXs(fymxTK4QJy-RK2gCB{(2>u(E@|!$4)AQTVak?Efxb<=N*1npe zJ)Ew01x}sB);nD3zBh0#AO9^p+Rih~KV$!Be&4enS9+YhX>bmWskOCpG z?KoPMty>m2pNa=WioQB@f*sMH(OQf!o+`=_zH&tBmX8FqexJ7CP1|0UUyV6|Midi& z-QEb}wG#fcdUb)c_yLh=dbHQLt-;W-!@2}{vzGWkph#NxAYPz!?){DW4dJMHd&(MB z`i78)ZMzP)3L{1_f%3c%xRf5TIX4E@VH$&?gAD0&=jKh;=er4z)@&P zw&*I!i+g{f40mVx+-x%o_|;F+X%c~O)F`*FP_CMKUiKSFNUdpOLn2zGOhaN1t~G(F zu3S2~&sF30r4vKS%r8evwUa`B7~l-K>^j@1 z44xUB@;Fl?yDHO}_x9!W!+{9~}@RnEBz?M)_3e!fQpOW^^99NNhest*9}(a?)QLG<%_JU%Hn9+wU8%=3k}w~`ybH9}jIrOei7)yMbIyc(Gex7-6UtJ2F zw#=Np*SD22pX?%`6ZVndWeZqSIpA4{_HR3eRwo#~`p&quCHpvAvQgPSTUJ&Xy;jlz zZ~tNC7qUEL6qS9l@4mXQRahR4{+@pOLx+PtaOSxIntw>VJu#h%^tMu8dwHDfK7j9^8cKPy67K+C#FL^UX&ZiSYNtPA5MCX1?Uq+Llu1yS#CC z!fIoy<_CFmUXuQkH;A}L?caA;SmVgqo&J3z+i-`o9f-yddp|8}4>__7-6 zXPpGs!)))x#If?%XIP%gJCcu?J}xP}!S_vM>j!L|@Yi|L_xPUa&2>(1>~j6L=ljbM zn#tLc_B8z0qom6bTRbt1A242A-nWxl7T&%F!@~sKR~(2bb39S5 z;61Kxb$E!ls@bf@h4=|wf_))nZwvI6p{WqJ@oGyDw(dxc99q*+ov26iJ47U+e+MKUyMjBFua0~e3G5CQ*xIQ z^%S#Nk!qjNiT%jIY-~_n66I@qoneV$^Yc~pwW9~(YjTZIu2t6fK1o6(aV&5Cmh4W| z`UPua#0*W>T*oykw~w6z!jGwqDfU=)*!{AC=2P|W&U4B3lOor$lc)1E8yimi8{N5_p*+mfXG^N;C z7QflkLB++cRQi4;JVuQXhf`-KHcRz$WMeQak&A|na7bs{3WW}x+Oj=yY+`Ojci<;wVQ0d}-P-`W~+(<_8Oa7e#x*8{cyWN)-ME*0BwQm-KJ=zi*H<*HFYbBs#G%h)# zE!E%yxC3`pEq;v9&z1NMRu{e@T{nWaEslxo$P=zc%vs!4!0-DNLOb^GRKHCA&zyjh;v+U_;p3hwU){g`Y%pcIHl+E@3kxM@5@p3=xc!6t5bjDBULy7^>V%3eBt`m~JLByA{=u@>Yj=bS~sSUlanCe04 zevN&B+Vb!MIJ5#k>&7sGkPo%O;)qBD_)_lp{A zuM%obGRf{-fV-?lqQR3YCghOTb8{jNHmFgqQ)K)msV3scZU{T)ZO_XNhV>}_-pRKa~7LrD5bMW zA_UUieNsMwS`=}3VDs42E_}e=ZY!O*r$z7~LXBdTMoo6^l#YBUKmPE8iu|Dpl~1 zz7paR(d&)HQcJqU(~SQ~juRIZl6ENOPIHyFjacD6Z65rTnV)Ml)=JO!Cs|?iIE*@l z&o=Cf3ZNRs$({6yS*P)`_gSqO(l*?@;->?Dtk#BC(XSM`D<3HHtC`uW()1e^7_vu> z>mA%Fb{ehPFL`Fnh*-8`!~1^S!#xNmUp9U#J7InXe;nRDRI^7wT5SiRD#ua_#jg;W zYP^<*;jkJEUX~@)9d&Kag^vpTO$UN!*8lN^Rf2x~#5k$elL|WPu(iXS_EBvz4tKvS zyo0uyRQI%V7yf3els&iwK2z@W0z+~fT0BXRh-NhpF_7^oR+G(?O?p=8_wi%~wgV-G z-@}l0CFhnE)JX68=gd_XWf%8{t4V?Tv&;3`_{Ks-y4?~`xa4BW_Ci*Q^8fJUSfad# zKVW(%S-R#KrZS=5ziqYpj$&z23QMA0=&j;&nf~%v#0G7##I%-ia_PS2<4+rzvbd%R z-DccJ(pTaX{3N3dmaX+i*HDcPZi>}!$j*h748&0?mBpEiA@kk3 z59+U^Q0Y_5x%JQC&I~_H-P5#&b{W8Jx5lHx@~}E({?y@86P|pQd>!1MT4(AO>ms~} zB86_-gp3n;U|^Ki(~$T)rQZhn6I$q26qT1(29{ z!ZxjMa4MxAAFLyjw=c0MYLV)6c4iPHj1@zr}m1JY3Tjj06f^yx2EX|i?uC8&e` zJICWe>MQ{1V1+AeO^8w5{!-?Yz&tb_xW$hmRLn@bM-f{^-G;klhtLDg z2jRQrO(ayTD?0;p;J_!W>v9jG#8}e5H>fxd<8f6?-NXyuWmh>=1Uw2qP^y!OI^C-l(~~MF0ohPh%w)lZAz%Amv6tZRRU26F z?5j1F7=-f;QBq!GlE-~U4U`O?@L8li%4vbDL`c;r?i#Qb4xiz~pg1B?)|z0yFVp zWY>h!x@ESd@BDw8{1{adSMI0*lNlD(A#>T+X#6HduY7Mw#nOm&*OS6>)!$#rXDW@c z-qGbiwi9jc4}IOh_$cAq%|st}FRI!RqKL(oH>ZCA%7QmLKLT3)Ov1TM`JBLU{oQR^ z78)O8``7H>%U<$LSAR^afzF?2rHi_#7c)cnVWM&WHf&GFu^yZ#f#C9CAaId~nmbm4 zLxr)yHycHV>GqsYlb7@wuzG1Ddgf|WPaD#P&Mb>`v|?#6pW(2*@$Q$zFjZT(Pdn7Z zDg0i9$(S;XV!XjJqGWr)o(&u%j2QBex7ZxcF_>;;2R^7mNT!E@Z<1HS#$ zg^T)Un$W|exU%4OLJl!a)%L84{th3b52T)3eqLsu#2_9ys=~p2SrY;grhBTX2 zU(y_A&u{t!W@f?fY5&*R!P2sxj;7|e7Oos-7FJIkWH>PuHJltzpU7}NzNspx>L_nv z{q&BvvxSDYnx?t8t+~V#PFd(FX-`QofW3vQDTk-Mor8;{rwr$>aV5d~!^;Ak9KV{l z+RAXs9o~>bNA&@RJj~gG;|9MFpShsO4UQY4{K8_w5@Mpf92%ys9QRBeIE2MGgark` zU&4|iV&D(Q-!D$+Dez9(`H7|EBL$_u?+N}V!)fj6>L@87;NjuH?;*kubG8x?l8}%P z5EK>=7Ulyj_*}dkTunXs99+2m8ss12C|J0dJ3n=FeF}5nI2_m14Cdx4!^wGgqkq2s zUYx1pKX2sV@;870N&!z(M*$&zL4kjc3_41Ki<0ur7N)K+XH6K)4*J*fm7Y3Vc)*-( zT{z@5M5GUU{zs#K-SuDnEfh>$Eua7oalT)FGzEnvg@q(-BD+>Wf2P6z;8AF!>&JY{T2eh)%Xv){=oHH2>e##KkWJg*KZ;4TaEv)>knMNg}`q$ z{==?6aQzknzt#8;yZ*rSTL}DC<3H^B1J`dM@LP@lu9Px z54--r^;-!1R^vbH`UBT*A@Ey`|FG*1T)&0DZ#DkIu0L@776QN3_z%1O!1Y@Q{8r;X z?D_-OZz1qojsHh>o%+{rdRRDsU+?e$zsF%vep(R%;egy#kkj-`SQ+&*&~zJw<%esoEDi8bWC+uZ%v90BLd%oDU^fcY*#q_&lc?1p-53zIh z74>HZYztJs+`{pgB-cb;h;a}kADB30MgH@KKb)l_$Ym~^toyqp5n9CY;UZl=* zY@R^$4Oe${b>#{E>(!Lv?O9Hy@YkyzlKA&k9>H7OoWEY1M^1Nz{B^Ywa@6&&i<|;o zt-Vwnf47Jv^YgE-+gGYTMhK8AryuFl@a`H!p#2`0uLhbkP)tzv$_N@)?M)Wauoo)* zbtjKFBN;s*Vzp8mRer5ZwXCE;BSo(DOPVG9weLwT7k6v01P7aV#$-C$!&f&ew}0@- zlap7r*Pp)Jvk^$J@0wI-m)RX!p-Da;h)0aLdBM-uCj8iZ=fpDy!dR@J=@EJXqc_}1o<|@i zf{f)UnP6qE%qLHtl*5cwb@%je8g1cljT5zjt9i35xwbr_qVz&SLgF54BdWHA84ci0 z{QT75pTsdyadAfPs%riGh{kbr@HlbUV_~)THTW-@FOSO!ONk3&p#j+7~LUVKT?n+_j+xPE# zW(hBYg3Mc^`NaJX#Cv*r9%yLvhUH%7n(Cx%PM~oZh{AuSea+c=9WszkPcq z2G1;Law}+gWNq79<`p&TP?~*)I&y3k-P}n;*zE2coHQ2QZrCSD9mDc@gjgU>+uaHn z*OC@~P=4`&IksVG$}xc?N2!Wg{y>5;R21{wD{*~a`tzq|WMm}d?b`FEXX6PHE+4|M zk2VwYQd2K!r3*?*mbb!9JR~EUUr4yjnT(dZO%>PID+KAfl{*a%4&G5$r{M6zfJN6n z5jF+rB#xn9oTPi8r}uhgWo6Cb3LxaD(rNOeX6EKv`Bbcu=cuTt7$sdlmpViTI%toK ze%Ri2b&^4|vN0P3ReKoLspmomwESh`^06z9@$7lqN<)KkcL;s5XC~ms5wC7c^e&N& z_Fsu@WGmFx&c<2C(Y6?HlVt7B)#r|09j{>rd^Us2 z2T?0}drPVzp<&>b6>qRzALR?+B>w^fFDu*cFHTOCg5`V=G<~iU{r>&)=|;r#_F^yC zn9}QbdIkpWwfAZ1>95~78yF-Eq)W-(NqQR@`2rwUArSTc{n?fAnsE#ECO@0u@lE_C zT#0l1`nn^qk4)kTFp)<6;=biy}d$y`>w|*D2`eS*q2c4Ct&F~{P<@%jE&aR z*jpo!-G?LM?(CHrmpF{t8o^k2&<;mTR>BHHM`fv*r64+e(sAokF7bIe(R+Kc0smNr=FeK?XfqJ5#x4Rw1{mfVj9B5pWNLwfY2 zLu#{lkcMRa^9Uq;)ObA8yu5X~Q|>W2jb-75%*;&2n>OdJs3n|8RO6PEx_tR~ZEfub zaVJitFs7GBDX2dSm(pFi|E=6@S9=WjFX7(BKWz z%~Q+$xpmQe`U>k$gkujk^rd*~*fm8@-#fXu`#p1Hlh2adVsh{QU59PL6_& zP1e91AeHAzL8G9}&#S5F=~KmMBY7|#02DC(K)|Gpw4-+{CZnRFrexlZQ+RaN4(}JI zr<13prG0?WiE5fF3W|ysWn@?ZR^op9Hz4y!v54kN(3H)25#UmR6Pxnkxp`9y zOX!Xz99@O0(}x}hDBc1#W8|}Xv(HBatiCN)L>Viyki`mcnG)ahNHEIBd_g*7;39*A z7qo319DX!}GAIhNojv<}ZqD-D`SY1awm-@Tefs+KY{0pMaUV>TPL=mffc7i0qvQj} z+X6J#l7O{|Saom!*SL(%XOQ#s^_9MT`}P;RL1A8f)M+A-XvXgE?+?7LG6*Qz`9@)* z6&}+iH3Yt?>FIZIajz{}qc4JR!KEC24DyCW;%sk*y0VSU_4g4G4-E~&=8^ERRjA|n z3bHeGWZY^ASM$=ING4K0eE2XpJeO7A&xV^3&mvPY5*6FC>7PNRsNQgU{ zH}BZ)U6-@7{shXB60(4P?Fk+IeuMn7o=p4E*$qfldb*MUZ;OXIWU&K~B&@WHike!< z!XmBoO9$A8sLw6zkix+?z%5m5E(60BGP(ia2X_X+RmseZ^VF$R3IUpr9zB2l{K&h$ z@fx@+@RP2RtlQpISyj&X**CDecTdi>#Rh^AXn&TUa$v=Bu4-LM>4a{(Aim3g* zvoOU86~50QBV*V%?peRg;oAI(1#5kYcpexJslE9u9UVaTRN>%hum%Di=P@uo z2EHzLhPQO{RTD6+FAk%UsTmm+2bHnymKztMWRU>)#*OJlEx)INjGBHEYeWn3Ksn!% zW)ckzO^{lKyqVdjC725F&^PVDRL0U%Qx)9m+G2-iWkAT=j06IM)&)$f&O|Wz<3}|qrp)el7)o}xd)3Jx;LSjlkJtf$Kubp# z=!f44@q1!r#RbGkR7gxrYa=iVC3*Ryaq;nh5`1505YYXr;cPP3uNX;rZ(C>l_+IgP z^ixWT;>%oL)obIQALx}hu(nwimcDxU!<9U+)tB`qi4a8;Y`6N5cW8yT?-o{Yl!>Hhqk7qMDFYBD+pMRFg(%P zs5Q3dg6>XHUVVNG?CHXSbpi7XtHo7k@?Kw6x5xQ0Iwc17#r4GESX{GQU15lgSiisUX!lBMTJzWSpo2rtjCWZPaH#407=Jr?OOBX{hm#6 zKm9{Fd+**OY?<`O$W`|2RsVL&!lhTuz@>fcUDTv|bew|1!{+RXSTSsN+aQCPGGXSP z@~|cFGr&kefW5zaIfDC(hT1x4E$QY9Te0$R+u4dvOblBD2S!#i%m_UmEr4I%tGcVE zh8phIlDcyLL-KxnR%YhnHW$HR{#OjOlysRptrX6ZS)Lvt($j)wW?};QlAzCyT|rV! zP0eV^5ae36j9L8&t+)IL6*0!s?gg);cd80shlU<1%f4MKaEzJS@xkv{3W}aCI zFj=61gnWD4%Q9yDxKyceq+_C!&#L(xU^v-*eZeUs5&!2j(7o&H=|!v2mR(U6iR6J~ z6x1vaqP&_e*MLxO)>gtYqo}MreJEFeaWak%#s>A}>zAmV?`mZz+oU?wQbJG#iM@Vc zR}BhIdby~&_#;550X;|;AvL--m=0!BOdcXOJaL8Q_poz5*Ha8RiRJADcQl zUe%hMsr@8PuASs((9y*Mbi1+ij!IIuBv4ymphNY;OHcXf)2I4@0c3Xg{-P2}#&H4y zLfyuo6|&Z>U_ge(!2kU---tt5+lXMtmA}u4ueB5PSlZGCLDpl;ivo|sFpR5iuFQjt z&_`jyDp$egCZgmsdM6{)q0eef0vgQZJUu-#*cERBK8I^*Yn$zFFS?`k0U%sTZyr=t z!^WY!2Bl}1#T?G*ZUWts{P}Z}!!SrLCZir3ff3HcZm7!=&IM7ke&6bpMHJhjkG%a6 zT7zG!FtqV;cSm_1(|2<#UJ?&*4V0_CHW8dXkPGBpehsnQ)1YwGSsibSt@^-fd0Tdz zePf06`A5GfF>ottef46cjDZWP(xv;Phf1|R>)<9-RC8IY) zO5E@oZIsn*_o7^11Ld@;O(7||OJL*1AH;qUdynrN-E!{B$lF);N7@If>{;IOh^!dr zcbIXRSwjI)g!J2qWt6=XF%Dwg1eVTsjL zgcf`*(ctN2{PdjmylEKWU5BL=and-`VbvoLry~R{rIlYpeJ`0;FC|9M_!~RP65R`2 zrU_DkWRl&iSAZx!)L3PS&U=!7-=awNd3*Qtn7_lPqjBqPHHP(maXjv=zFn`icazWe zq&i|q@S{$74}<#S8RbO&t_gjTiiYPe2UA;rug5dd4&`5nGeVQGPqY-Xm3GY_YP82g zzrwMKt;I=VReb*{9t9|~{iFJ$VDqob|5j7__RsPY<-e7mpnS6ZPV^ps7oKR$$^TKK z`u9e^G2Wl1|0@J;38;$&lp~upgY-05AsoCbFq(b+)VBOw(XAekzGTz6jjzSEwWkTm_@?NSVs~1EhFT@bV zDItO;_KCfOgI(2kHdX93*S;f+;m?vhg1&huJg>8#!D5&skNYWc4_1wdtY5SyPPeNi zsxQx8(IJ)7Kkl6Wh;6yNy9>_npfLNmhZA$!YrS7|&Or`?H}A%Y1&!LIh?S+0?f-ll z@x^me1rk67s|=L2TBU16!Bpk#?PVa>JaMUd8ZsS`TCSx=nm3Lb|KjMT1JrMS(q`7! zu~=CB*urC;t@UX!#dTI8W*Pj;Z?KWq)Hw5sF)-1K&rPjrF^KVVWN#f#?1q1!LP80S zv#s|xydN9vPxBgNO9hSL8b6^41-qGOR7Vu=3?fd1X#~z7v1US(GVY3ET8}vZToH(7Pxo zB)Xxyu9a@i${py$QoMoFLQ;{#(Gt#J3I@4t^2@U-3r-#<_76HQZ7=ky^O6>WYz%BE zzvh$H`Qj+YlrR)*N&qU>wR`|0=n#krK4t)o$}@5=JIQCCkG=3NfDIH?TVi5MiSjqW z4r&x{G{Rmx=B}|ok})vqP&A?O?z~%7=1{KaP!f_<%Fvy{_ZgR}4<+|&&u-nA$+3b! ze8yY9fek3YRqa4Lo4-EUC~UB6_!y|$B$GuwF->Rrn!`vpyxLV)`1^NxGDv8W@o~rr zN}7fqi)KNltS^4HOpweQhWRuK4jn?)#Z0_fEOc)jE?tG46{qZ?v9O#Zpin$2J5l!D zJ7r~pu}k%sLOM%MF>ZG5Q|h;~`#7Mc={89E!t=u=X_E?aLcH`mMS4^}!V$GS4DYqf zn_KU-I$af^1dWeCK*D?G0_(FhfzO={W+=0|eUG;>T&$$#K@rXQWi|F+b?old<-Cs? z6Vt;C=%tRy4E9vWj^3yQU|@rxe8vR8rt4AZama)$QSk;tWmxogzV(gOP$RiIN31WK z_co;*K%9OV>px-o?l>uP(G0(=c4V84K>n$0!hXBd=S*H-qCCR?=!QnGBIJxN78%F? zNg3%6Oyy)hNiVdYCnnj?uEItZTJ6`+d1yQyREf`xaE-59AQmA$hzbe`yXn5IveE+_ zt_x4p**@)iB8Eg{%S-C4lTlHtQ+A^JPUqkikcXz20;^i@uI2iio7?zl{&C1RN8-;bL|+2HA3ayxxmzvN%?ln>zbFe*i#m%bp$KBT|u`8c|7ZdK`d{n z5&PAh*m#%w$BKf45y6C@mxQwxY3I#kEGhuhJ8R9ibabwQ?$5xU(-qEzd^5-sZEBSu zPx*KXPb|t_)!7>;_0P`YD=x-@%dawfuVfm*z52ZSFzl?-N2;J_HcpC=m7*Jek=@m& zVp;B5sDCk^3xCaAaDrQOqZ@vEF?3m0GX)U1Kn-wtQq19{O=SsBHP_k0t!O7|~8y#&-FQ-ggR`}(_obR%W&%DB2Y#FK9yN!+Gs#-%d z08dpMrca{u-ex{wc);$ku9fhUZcJ^)f(%lqVuZ{G(ujeU zpwFk|Qa@e&lb$-Ikxx6o-h!nwQZ2RRSJ<_-!0HD!gmxDuXmxnC0UocKe?pfhOPzLV za}6ZfE}XyE(lQ%=&f@YcB=sAO=*B!aXoc~wvbHE)bgs~!7eOHuuX&X%tpvz;yP-PIo^DVv%Kof>{_R|IF~jwx%EmEw}MGU!hkzqK3Y^YA7)>)Vzd0pz_# zbyWtZMMU8Qu(;m4QzMg7oMh4J(dBkX1k89Bm}M&*uKvapx3NmOYCfEH`T%YGx!>cb z65w6e0lN6p3u8;Ei;3Kx_5n}_-#2DQP`>rtZ7&+^6xX_aA&*{33SYmi)nTZu*S({+ z$7gTr`~9??L5c~YN}INX z!8G4`qWR)P4u}$NHgj$s_z%Cx;Q&AMnq;=iD@GVUc+Qd=n9zDJO<(DlCZDBq%r*2f z2$^fT&U$Z_*Us<09j#_%rFq-3Kp1A*yP~0HGC!Z1Q2n?|aHKF*p-A1KrjQ_MlcEls zG(NsA%daWlCk{=%094VBF_{a%TMQKNvA#Us@cCw6h_GW>ku-0POmI}|cUZC0v{?b| zYGD@5NlG_8|7t&5$s)Zl8&QuvgDDUb8`EXB;uRUs(w_nr50(e)WMzav&zZuh`Ro8V zQqwy+pBLg2E5@BGM%Q+Peo44dUGEXrseYGQzy0lsk2z)U4V=e#)<04sRvqw=dHa<% zsKa?gm>ecpJEOK^G``-v>u<@SmwTf&K{|5~*kqQoGq~Ypfsvuijbh2Lrsqe$`2380 z-(dIf_dg))hB=m5ZXCgmHs6R=Pl{|Q6^XaCAB^;b=p4?|6WtY8~5V-v;i*T)Z_5gKx zBXRa0x9D!4F21~W&zpfPYemWGMhz{Hu)n0#2ZyKGQuC)>jRjZNHvW1XzA(2wbQU*! z*Fmj%w=6|D`)?^M;jAB7>LWFqvk@*l)UxTM9yRgTQ|xyh<^gKIVv)kkah<8TS>23( zd=}uJm;dp^o7RhreBrOQ3Pu5Bl7Ef;j=|(#BmDo_^qEnT!!3{I_U0fX_FzB0w0za)6amVdL{lKB?U!AK9+*5jGL-Gi@K5%|eUi zz$r{kKL)FRxMsw|!`Jw+jrYJ|E1Mq|>$A=H=@Xa#4%t4CCKA3fywc}XVlIzQ^+P~R z1rf0pLZE)At>=J?)6Q1Z@%&7o*DJ%4sPPth#@jEMLQnn>bPr*~u?4w($YB6Y6SyRw z-3zhqtdBl^{PU6R@6XNDZ)~K46*PuCpQ46|i*K#CJmRpsp=sKPay?`>IXSY!SW|WVf${di^@MBL-Y{;bu$Bz7tw-j@FMYlYIE#O>#2iXMca)lPtRYm?-T5iw3~*AYB3FmV2$NdA7oR zA9IQf+<5hs?ZOvMW?m`X~hMf*6JV@Wo90=OO#G**=8i%Zg_A{zw4VjVahuWY# z!t+ufP=RK5bgtf0X%%w!Jq_Uyn`Z=`#|(%L5RsL9zu(ts(>4&)4uOmUG2H!q=PWFA zaO#Gw)eX(b*(lhp>|P+RZ)HTZ%OMXG>cz{c=LM%U(pAsSPWs@UB!5ZP zaeD`~7`mjOLYKO(RVjcL z)$+L91O2T$Xk578S0x^LDqhTR0pC`Mbq^~(=lc$tx}UnqQ($NRLhjN9_s7U z0A~l3nWmP=UwN*|f$Hg#lno$VIfE3W1ADQvws!_32d^zU`9JVf3xKpS5a_%w>kq&L zSX$biH<&d<6k3@qetlv$9(QHPrB>(it5>Bhsp^T)3tJ3rFM;f>%plR&*e*A00Gy~< z+rCO6!Ct+tL4NIVt|S?~5=SPZY&a~=KLBAbGCI=7?#`)0@_30MRL?S8xXEIX*7Gul zB^bfVel+D_%h(U@HU-_M5+GKbm@(4ZBL_)S!vGe*RXZlbJ`@$I-=@uLRC)^B`+RLy zLZ6JQAmtSe8KSQzdyym+uO&~?hnqA&JsqZ)kj3Z3K-sn1I-XYn2@61i{N)4R04~E2 zl6ni@Rm+>BTVcRr+x+!X0fA0r{-PMS@%gJqA31*UP$$2q(xRBmF)HY(TucCQ&eLm_ zdDo>MT7uUAvK7#9N{NEQqDcK*QoVAJ>@A}Xp+mD-DsHWJqL-;TC51{4A-eR{Y=+U5 zjnAN%!{`@x^}>3Ii{V>b7>0A_IQ;#=fZ`85&w{Wb1mAx$!`7}02KivK^ksQewF%hm z53GKJJKzBr_ZCpUATF-A!RW~#NeMDXK{)b~Xk6dS!VZ+-`9KxpoAu}Kv0qQoo^FLo zdLDad-^xe72pcmi7|NZ0t(_qU{02xrrix>d0fXUZ%zhi=a{oY;F^qIBZF6%E zn8C+GDz5hu5gQL0Gkoe#yIKc4_Usx?D>`ts!jnCq~mDLemH?UvIOpvEF%ah_3( zUn%ll(94&v-J(uWhJv`IN%oaRa}F#A$eE1_mVu-PPs)^(s2@kYJ^Emk=ep#P^f<}B zg6;iV-FZz5CrTPST8CR}c_8(jNg+c+`_!$o_Ns}ZCxL?dbZ`LD*&pG|T*AJOUVSBq zgS7WGarrac1uOS#1yxKE!GokTe0h&=?!KUuE79a$rOw*T20d*VZxm^q`HxGec=$I`yUC!dk zKu>>|zjLOfhA#e+PWn!tk{Lm&3E~G?a@8fgiDk5n?51MrquflRNR45>?A((0MBR*D zcL|-Gn|*a=1ycl^ux5URe)a0-TuyoW0@p0QcMoZS#Jc|K1Tf`CQQa*TcvR!Np~-SM zD>h!LeCwdeXTUN)D(V9FsbQEJ!Fw~peRvKym_hs5FlLaO9vT^4mY?hT3BW6b;#}Wp z<@7$AZ6VohoWSmW3qcb83Fd;&?S9Ze}cE0k)#3~0eMA%%|V&8N|{vQb=zVlT1QDe zOAvM+ZNv@QJz!oD}MA>^j}?hAb2PIqM&r9DY96Dzj^5L1d#npPR(-sLb9Y zLZz3?WMr4|exm3Fy+oz+$x9Dj&bNZKj zNZZIoO*f3*1Yrr7qGqFT?2S5VY1|U?eo%Scq1rUVB;$*xkml`XIOzrf%M{BVd-JMQ00?){r#6OJGh&|Hl-g< zKTN{yBZr!fR3o(%|Gx?Roz+fh&OJSdYQeh&@BD* zEVl-0G`|XpavMzO&>ny+y+!C#9g-ozVUyX|K9c^sD$v%2rSVYv5f2ftmx*z`U_BSounIrL#=> z{rI1vZ)T8(9vF#iJB)A>DS^s|j{knTd>zPk#-SyF3Up2mY$OK zqBZKW>vQ*Yj~~X$2D8&hjm;vemp#q;v6-xFZIAYm{v@zpTTPK=h8P(gr+UpNsMb+&&x>Vu{lpDDc#fA_ zfz2Sd?w+`==4+vXhn{xngi9rc#e7)5gxt>xprPGJW!CVHZ8jEzIYJUY@aY%nw4H+rxShXw-@-FNMF0A~ieF}3Ugkbdqgc$Hdg8FDM@JyyF;`1Wq zhiO-LVm6pWj#1f3ESBoT3C4i>vYwRi?5ygSeLX9a{e#(A`}EAl;~@dxd|1irKGv|j zC_Eo!W;jdrN_|VV@v&B)r=2$L_&lVZSngAE9n9!}K#DrD*`*vHAkwvu+?w1Pu7Olb zR`lts+mTmG`E3o!kA{=&cLrzYlo_#~Sb&+D|8mTz0}p0;Y` zQIuL*u0EXFI(pai{{6@-Lx^VMgRgq=53!vvEfD2rP>7I_N2|T=`j7E3!`hE=Rjt+5 z1bhVqg3KHasIIj>4kjP4r5r%3KA4LUG2>rf@GkN%kAAjq|NO61vzs+1Yf1l|z5g1V zThd_uTadCN$MlJ_^BuRQG#w-8pGB4;9 z+K9ZOVn3B#e8E^t%e*c<>I7ky!_Lz$L!2MNYe?i}OFR&~-qLB_p4HCC!gM6;hjEUG z_>E)CV)@^>gSMPF=ZAv#S0r3$vwS)|D4+Sn91IQPQ`2Z<|*NV`%qk1KIYtI z0+C4;(B;&}kAd|Pvcij|3B3G@g~i8_Gph|5d&U!0MFeXUD%jlbeF@r>y(-2XGN`+X zVBSIRPJ#_+*kF$rW``&s2T^jfkHR$j^Lmf^1(HF);J24!E?8H2GC`@2xW0f+trIR` zWdQouyZ1vUq@C7I z=lHwP9-0JR3X=i=EocY3#z@C}IU25|6&9gr!ALK34sqX`5uzaBpB#99|HHtY0wgd_ zGH?tXJ3uL?-|~>U^tK|={BU}e7}-!uTT1PGP4%pU5_4k{0L|3Ub6*K@W5N=r-9XW! zN{3~zS8u^y)PB4;@a1XR015RIr|9!UTSY|FPA>#Z`<~bl>iJ(;~C@E>A8v$tn=~ARYkWd-~lq^2zo_4Mg}@_qhmnhkkyeEbfGR;(2^1?15wDu;Ah3PFgrw&>Q@z*O5L`2NCl~L?hT3X^%SP+orCu04TE^Hb) zI>(?zf$u!fwbpy!hkP0;43kKuOg?{^Qp`#d%kB9- zAB;+^JHa&@r{gx~94&tvdwL>F70vBCh%UwqQR0z?w36S!Kik~G!RCWNUN*2+vLpY_ z3mvfOr~l+MNwNj`qYi?t!&deG_4>rvu7tB5UC%kW=u#<^@2 zXPmYH+|c!N=H&yaD2-yB)J2^i@xEiQ19-TbK1g7$oaQwHQM%{$;`^XY?`yz+$5snV znjnqi%FTGE(!TkqkciH{Y)+4F7iu0KJ{*)iU({OoRCE4DYTut&R_A}=fjk!h=a@C*ZwWRq*(M4jEJaO0;Hp_e52kpXfJfsz7e>s}_o z?_?RRP|XUL*p>f`wN}csd(ayhG8P1$<0}ZfSjw9gOAn7c;cFtFnx4E5(06Y8b2^%z z%3cv`@2wh-r96~XJ%v2jil^K_$DPORPTb#3M=J8B_rRYYXiccXnMsv8=V_Lrj50?9 zBYA#gQ@!b!uGa5x;YSaMfh||6logDlSO0Ulw|TC#?Px&b@@ehHn$@_0^(LN{a&&LO zOC&Il!a?9co`AmmX`QqYQyV8TjcI7zLaO0-IsgTcWA-KG18rxoqHFxA8TXRBKB zAC)i%%~Xcpsku?6ijkA4z1XtxM-&iD84FK2(@Ce!A{Nw{r zLBhMe1+=HeM96IkR_g7&hHLDr^}q!Hxegl8zNjs{NT(<)F7-YC3Ji-6^AZxyWHSN+ zi9iKU+-qoDG1c$KMP{8!R0x%7p0jA4`m;T4PgK6sO4?xU2@ckh%Qre!( znNN1FW|(ULSaNVU3Fhm51407)j(@t6!PenBnr*x4M{sQWGbxeO`dL8i2dWA#z_;)a z9-wUk`wC?o8K#HHCD7^bRz)(*y*Dy|o%-#{YvA6EnsM_1RSpJq0PexOGZ}0D05iV9 zmW70o_J8HIfrL$Hzp!J`M%=W?@AZ>ta z(J+_n7lKI115*-crt9GL;UPfghk1!X8YWU(xIotmBWyv0tUUr~9{_ZUu8~qPAb|iX z1=Q6Oul`9i@K4R+C+pokK);(gwCC{tt(|z(xIh6J-Q7nxH}2Jk9}ql%Y>soKA`jkPsrv`M>JNN2(f|k zi!^!?1hNV*5 z|C;DSBPd-TkXWAHx6Mq^&J3?>KYUbXyR-+Y1$(Jx6wm+**aR&7?DH`w4Z!1BbP|fp zQonh`w$}`L16nfKvXKP=`UEDs6Bha4x24REJ8{Sz(75!qwOWB4Y}hm9fb$|%-qFQw ziVLRZiHIi8>*u%pupirfb$$Q2q+|Rv{m2UUK(!^)$AR{By%z{nfQX z_MK2%a)6M8yC{%wN}r-NOsG+|!tZt2Vg1#P{Mbs+ssyCtw}MWFlN^NMPVR1bWt7P0AiOpXn|{NSfL&u5?WCgncQyAxmA+|-Wv z#U(~qz)1(43Cqaa$6!W zwYPD)W0^dPj6{&;{V;r(lry(noj|XBZDU)z_^KkQc&1F`8EiSk=X|Ltx~M@3_;e|C z{AO}3s7zNUAdoLf_6vW&G+6iDVfP+=De(S5!Lwb64%6Eby!FaW?{oBjvfuY<0tWkx1sGKz*Oq27>g^BI*mU|6aR+gNTtAK1zHO;k@0xt%pUZXNVQ`}!so@J&o zN8%7rgaRRFK5>ie?dLx>z*ZZJ0*ZibcG*mExQy|z#9<=Pp>6f83rt(p$#DthR^3;2 zJt+l6x=XxaZUE3RPVUm9k~qRV5=jeen{!Zy2uHFL z_4GV0PBhD#6d$qE6f+sTu!y)C<&t~6^vi=6HH;JEv664InYM*NIf~`Byr{_7avBs{ zrrv$}3)G|uCqcfiGe0d8vTnKH-ZAJV-xKvjCq>+DFWy4?{G8@{XC1Zr4MEpH9%>5` z|M1%JaNcRp{E#$|ex0yPSE$gf86=ofvbNNzUF51?O=_;>y6A^x2H2j!*{Ua>!%MlQ z+@dGS-bCa1bn3ev9eMep0SeC%@dLV7YD@TiP}UA&eF%a>&SgDP9wS zQy}2L_T}_WMd2YVnssPkt7Gc#8~EDkxT#^~u@GM75HhKRdCirS)iSgu>R3 zWCnna&xe2(1ngtU;(QABQf-()ku&fO=FphEy8wO3U7&kYix!R8Aid#mtZ^bx)?$!}oneiLQwCW8kv&CL9 z#x%7<5FjP0vqbioPESoW4icrB{j~e=MbxaC1ndI{SYVCT+bboE3u^W#U3MoFUM*@o zE||XJ`Ca$erf-F$D{J?@i1<3XW3URpSKF>`*_`zq2wf0})4?1KyFGzJ@7)KA+P-U~ zT}6t{&2F4|YaJuPyQe5PTch!9x#dDwSoDr1h}xJ-h4#ympxj5FlF?UegJ!e6 zIX$9Z<^clllZQL%EM3%5RIA;B2}vaVd3Ln@_pQ{Ii*zWO z9YHgbz-$AvG*%;=kGG0E$%lWhqJnl)H}0bJOd7!^DWvsyRoP!&BMWU5JZGTM%3CY) zfy=Ywi=NUIJ45bQR~Ra+N4ppdvp`l9Dy)+c1Pcng%dNu|&_fZW_fH`@1!A++>{#o%H~FlrX)k9U8226e2uo^!Ux5I6EL3y8*iHLklOF-{Z8~ zWYWRe5tN_>`gT;*fNA(3DIl7Wc~qSZ<7wT3dPG^CQ*d~;P>W{$2y*6~A4=z*;+M6; zsA)0#<(JylrebZ|h_*%Dr`oV)3W4l7Z@t{eKcG1VryPb($@aUt=9|Huv$4c%>HTtk zyuQoI39p2Ysg|Y{={f0Rl{n&Q?#NFjw0hRuk#SI2eQcwxBpR#q~{8vH$+Fq328%4tT*`;VxPJ%3fs{<>_Ku%x< z!DLEm)Ox9dpk%nV%i zyyeY?ft8pQ;DprqfIJNcIFRFsCjb{5PxQQ^EblrjoJ3sTOKoL8jgCJm^~l=ZZ66tP zDp|S$g9EHqk_jZyaXP^y(2{27U6#Y<`&;Ty=N6!5@!xF3cbmORctjd2&FtQ+DIZiL zDU@jYn106-4w7JdND|U^bM6WXH;`KK00IH?6Sd%MsoQS^nq?^lev4}Pt_seKuDL00 zPwk>L=-o6X_q*%W1wUqP#f*euc!O--T|ci^U2NMq;Cf*B%rUF zYt_O7FACFoSV9s*3Tz!s*bW1e4iiCU^V&H1^hxBYu>EDq0Y*mmsnGQ$<+g(epa;I% zJKxFXDPIcwwlWDhAVaQg*8&Y)j(NEaq%JTOVVXH6!YI zcE_+c*m?o9lBHh5f7{JnKMiPUgTj()r;Bvh*qY4VITjFC=e>A{(Q9@h<|$bYeVZ)x zeNxtN(pjL-MGU+Ul{JyydP>RN-_*+A#cKN0zGhsktgA7G=(g$GvIoP$uu42FjE1~FM zf9Pw(UM+e{QM(A_)K9vLH$AE)!> z5yLZz`vsU0#Gw9{kOF`qvMsJ<4Y}ELUWm<1A5?|FKnNg{GV){kEcR?0?vu)|$; ztbYxAk_yjvGYo90W8BF?v;a(z$h_R4q_JYU-&3V8dEx8vy5K1ak+9Y?6SF6nZ!;gL z0dlS!$aa3U*T@WPNMJ#NMe3Br2%dRVN_()rpJ@N|&70w%;a)g*kgOfH!#;7Fj^{^y zKd5Eke$%19cay^_T25DacS*07_9|g3BvS{2)%I1)`USws zRz*(gG91?@7fzF4Sz$994KBKcnSAk{4M1}w!)LJN-~3#Klu|?O@B%D=YUhV6?!1u) zWSP^RYy<0wPuL2!*^N&2*r>Yq9qbSXZ#%7xacslbD{w_aWF{>h;Q%0gLg{~m`^Bc; z`&XVqYB;cf)2#}Bf<cP0qeFQA!D8 z#G!G#3X*BTz5*K0*NZj&F_HP63=CH@WVf4(4$#Qpqv2OYc<#vW zuT!0JdTL_BF3yjbZ#Td>l~ilv{?4-d#w+#JrY&jq8YDRfYKG90+1vC#2^p5LEf^Hn zxqR$5b-C-N*AnW0vQxI_pi5Zt5^;77p-{H7Zzabn@Pcd^k*B1S!U?fFPsQuWakg5E83nS`>KESV{D1 zQ$oE}keNvk;+j@}tK<#$1Mhu$EfSVc3k3`k)Mw4H8J7M`>s6}H++*Fs7UJkDdDT+* z0dxH6;gNL5=v>8L*uoF+c=MMk!8n5fTzIeKN_}Zy)&YO~q;bfcoXweMhpbIz4P?&c z)``qomB728-_@1h^L|(^E-I?c{oSq0$QYVmTo)7+b-q)jC@pDHPpD*+ExB#^QPZGl zH9uU^)Du}_d(qOU`FH1Pk#w7Z9zXy~C9l0*TP-z`oRxY|h}z}}6=PWR2ljmQwTa$( zk_@{mb`bpXCbPkLX5 z=YmbHCt)0wCzIYKAHJ+_h6a_umO0*7^0tB=3fpf3TEbieSK`4!Gb%xtglf%#+4Qrw ztPA@06S$z|_=3jO;<1PGia2K#7qku~dm-|%(poilP{^xUIYCO`Jiw^WFJO-&cBh-S zsJmFx0B42{_1{|XQt3+2On_`3I9<27`zw54OO^!_36 za%Wh?B5IzPx583wGNq-b<*Lzne5hpqOn%4JV*XUB>7oB9COIZ-AhDEBhnI_%(7O4C zLf3oqYUb)eKXLEdmaCATLTxFaB9>9j=9$tFhZZ0L`ma0j|6~dT>xGw(eAjFh3}at* z6Gxoxw^#z04$jzlP;A0{?D#+wMUAAjYo%v7&WMIGoyw^4Q1JPb6@jx_pingeY(&b= zU7AA=S=!SOMSS9*a`}UkS(H~psIgW+HFLFaKm%r@fUVCXcKX;piV2CxIuY71Bt~_dJ~}W>ANpXsIzmyV4saj<8rqs@I4b#>>t?ELNT zjaT#1NTPBpdt@VL=)BnmJ>(Dn@zu<#qq;cbu=4TYC0dB)TGM+9)SR-jUgdhn6K58U z4%v!D;+h2jbB7vZ>fM;1i0yS1kC@uht-O`}D1txd;lTURUwN;YMeMM=nGz@98Jf(M zDeV~r5!PEjucl+|XBjT19P|x3C0;C=9=wDfGGloT`$U(pOD4v+b9p;mhPqr%QgvTm zx?`_&HvMQ(ecmo5vd)C=(5e*@SLE?rp0Jf+-S##ru*WFyM+?5GtNF~<^SmO|18xZp zmE-k*D>GMp`)6lF#3W?xh4Xp_J+FwcI44G3ZdR@tpJLn?CVZrg<@2o*@wm;$>WO+F zMEmFgP1tc}>P|~~(UG1^tTOla*arJ3Riv$85^H66@F@{ilFghQ+pcHQkCcE9g_ID; z{=7Z*5#=qd`@02?=+_J-At68G@oJI9XbWw|Pp72OR*I^tmG;sGCIvPuox@W)114og zw40yp4DcGbv@zOsVNwQ(rLxb_tL;VK*`b^BCcHQiU?D0?mN0UHFgVrW8ZuJr*D&Vx zCW`kPm+HB zBihNoDfj1y09W@&aOw_eC2gkqY-_dU?g-FuWSg~XMs2%`^|7@NE|158Hhd!Osf}2l zOnzYw9JZ=`mgJG*CJl%ZA{xsb#a1wbk0Cs6l3_fO;2>zaeurUy6(!Mg=-8{R6A


    xrxlC&%ova#;IrG;-itU}X#AG^LHq?8 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\n$pad"; + + // if this is the closing block for the list, + // put extra newlines after it so the output + // looks nice. + if ($level == 0) { + $html .= "\n\n"; + } + + // done! + return $html; + break; + + case 'number_list_start': + if (isset($format)) { + $format = ' type="' . $format . '"'; + } else { + $format = ''; + } + // build the base HTML + $css = $this->formatConf(' class="%s"', 'css_ol'); + $html = ""; + + /* + // if this is the opening block for the list, + // put an extra newline in front of it so the + // output looks nice. + if ($level == 0) { + $html = "\n$html"; + } + */ + + // done! + return $html; + break; + + case 'number_list_end': + + // build the base HTML + $html = "\n$pad"; + + // if this is the closing block for the list, + // put extra newlines after it so the output + // looks nice. + if ($level == 0) { + $html .= "\n\n"; + } + + // done! + return $html; + break; + + case 'bullet_item_start': + case 'number_item_start': + + // pick the proper CSS class + if ($type == 'bullet_item_start') { + $css = $this->formatConf(' class="%s"', 'css_ul_li'); + } else { + $css = $this->formatConf(' class="%s"', 'css_ol_li'); + } + + // build the base HTML + $html = "\n$pad"; + + // for the very first item in the list, do nothing. + // but for additional items, be sure to close the + // previous item. + if ($count > 0) { + $html = "$html"; + } + + // done! + return $html; + break; + + case 'bullet_item_end': + case 'number_item_end': + default: + // ignore item endings and all other types. + // item endings are taken care of by the other types + // depending on their place in the list. + return ''; + break; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Newline.php b/usr/plugins/Creole/Render/Xhtml/Newline.php new file mode 100644 index 00000000..c08b7adb --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Newline.php @@ -0,0 +1,35 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Newline.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders new lines in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Newline extends Text_Wiki_Render { + + + function token($options) + { + return "
    \n"; + } +} + +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Page.php b/usr/plugins/Creole/Render/Xhtml/Page.php new file mode 100644 index 00000000..912f360c --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Page.php @@ -0,0 +1,46 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Page.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders page markers in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Page extends Text_Wiki_Render { + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + return 'PAGE MARKER HERE*&^%$#^$%*PAGEMARKERHERE'; + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Paragraph.php b/usr/plugins/Creole/Render/Xhtml/Paragraph.php new file mode 100644 index 00000000..07b22502 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Paragraph.php @@ -0,0 +1,59 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Paragraph.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders paragraphs in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Paragraph extends Text_Wiki_Render { + + var $conf = array( + 'css' => null + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + extract($options); //type + + if ($type == 'start') { + $css = $this->formatConf(' class="%s"', 'css'); + return ""; + } + + if ($type == 'end') { + return "

    \n\n"; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Phplookup.php b/usr/plugins/Creole/Render/Xhtml/Phplookup.php new file mode 100644 index 00000000..2e598a88 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Phplookup.php @@ -0,0 +1,81 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Phplookup.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders a link to php functions description in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Phplookup extends Text_Wiki_Render { + + var $conf = array( + 'target' => '_blank', + 'css' => null + ); + + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + $text = trim($options['text']); + $css = $this->formatConf(' class="%s"', 'css'); + + // start the html + $output = "getConf('target', ''); + if ($target && $target != '_self') { + // use a "popup" window. this is XHTML compliant, suggested by + // Aaron Kalin. uses the $target as the new window name. + $target = $this->textEncode($target); + $output .= " onclick=\"window.open(this.href, '$target');"; + $output .= " return false;\""; + } + + // take off the final parens for functions + if (substr($text, -2) == '()') { + $q = substr($text, 0, -2); + } else { + $q = $text; + } + + // toggg 2006/02/05 page name must be url encoded (e.g. may contain spaces) + $q = $this->urlEncode($q); + $text = $this->textEncode($text); + + // finish and return + $output .= " href=\"http://php.net/$q\">$text"; + return $output; + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Plugin.php b/usr/plugins/Creole/Render/Xhtml/Plugin.php new file mode 100644 index 00000000..3419c1e3 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Plugin.php @@ -0,0 +1,47 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Plugin.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders wiki plugins in XHTML. (empty) + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Plugin extends Text_Wiki_Render { + + /** + * + * Renders a token into text matching the requested format. + * Plugins produce wiki markup so are processed by parsing, no tokens produced + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + return ''; + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Prefilter.php b/usr/plugins/Creole/Render/Xhtml/Prefilter.php new file mode 100644 index 00000000..64d87dce --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Prefilter.php @@ -0,0 +1,34 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Prefilter.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class implements a Text_Wiki_Render_Xhtml to "pre-filter" source text so + * that line endings are consistently \n, lines ending in a backslash \ + * are concatenated with the next line, and tabs are converted to spaces. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Prefilter extends Text_Wiki_Render { + function token() + { + return ''; + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Preformatted.php b/usr/plugins/Creole/Render/Xhtml/Preformatted.php new file mode 100644 index 00000000..ea079fb0 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Preformatted.php @@ -0,0 +1,47 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Preformatted.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders preformated text in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Preformatted extends Text_Wiki_Render { + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + $text = $this->textEncode($options['text']); + return '
    '.$text.'
    '; + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Raw.php b/usr/plugins/Creole/Render/Xhtml/Raw.php new file mode 100644 index 00000000..dbbdc19f --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Raw.php @@ -0,0 +1,46 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Raw.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders not processed blocks in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Raw extends Text_Wiki_Render { + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + return $this->textEncode($options['text']); + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Revise.php b/usr/plugins/Creole/Render/Xhtml/Revise.php new file mode 100644 index 00000000..bad6f029 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Revise.php @@ -0,0 +1,68 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Revise.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders revision marks in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Revise extends Text_Wiki_Render { + + var $conf = array( + 'css_ins' => null, + 'css_del' => null + ); + + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + if ($options['type'] == 'del_start') { + $css = $this->formatConf(' class="%s"', 'css_del'); + return ""; + } + + if ($options['type'] == 'del_end') { + return ""; + } + + if ($options['type'] == 'ins_start') { + $css = $this->formatConf(' class="%s"', 'css_ins'); + return ""; + } + + if ($options['type'] == 'ins_end') { + return ""; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Smiley.php b/usr/plugins/Creole/Render/Xhtml/Smiley.php new file mode 100644 index 00000000..0e9a0adb --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Smiley.php @@ -0,0 +1,74 @@ + + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Smiley.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * Smiley rule Xhtml render class + * + * @category Text + * @package Text_Wiki + * @author Bertrand Gugger + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + * @see Text_Wiki::Text_Wiki_Render() + */ +class Text_Wiki_Render_Xhtml_Smiley extends Text_Wiki_Render { + + /** + * Configuration keys for this rule + * 'prefix' => the path to smileys images inclusive file name prefix, + * starts with '/' ==> abolute reference + * if no file names prefix but some folder, terminates with '/' + * 'extension' => the file extension (inclusive '.'), e.g. : + * if prefix 'smileys/icon_' and extension '.gif' + * ':)' whose name is 'smile' will give relative file 'smileys/icon_smile.gif' + * if prefix '/image/smileys/' and extension '.png': absolute '/image/smileys/smile.gif' + * 'css' => optional style applied to smileys + * + * @access public + * @var array 'config-key' => mixed config-value + */ + var $conf = array( + 'prefix' => 'images/smiles/icon_', + 'extension' => '.gif', + 'css' => null + ); + + /** + * Renders a token into text matching the requested format. + * process the Smileys + * + * @access public + * @param array $options The "options" portion of the token (second element). + * @return string The text rendered from the token options. + */ + function token($options) + { + $imageFile = $this->getConf('prefix') . $options['name'] . $this->getConf('extension'); + + // attempt to get the image size + $imageSize = @getimagesize($imageFile); + + // return the HTML output + return '' . $options['desc'] . 'formatConf(' class="%s"', 'css') . ' />'; + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Specialchar.php b/usr/plugins/Creole/Render/Xhtml/Specialchar.php new file mode 100644 index 00000000..36221b41 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Specialchar.php @@ -0,0 +1,52 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Specialchar.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders special characters in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_SpecialChar extends Text_Wiki_Render { + + var $types = array('~bs~' => '\', + '~hs~' => ' ', + '~amp~' => '&', + '~ldq~' => '“', + '~rdq~' => '”', + '~lsq~' => '‘', + '~rsq~' => '’', + '~c~' => '©', + '~--~' => '—', + '" -- "' => '—', + '" -- "' => '—', + '~lt~' => '<', + '~gt~' => '>'); + + function token($options) + { + if (isset($this->types[$options['char']])) { + return $this->types[$options['char']]; + } else { + return '&#'.substr($options['char'], 1, -1).';'; + } + } +} + +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Strong.php b/usr/plugins/Creole/Render/Xhtml/Strong.php new file mode 100644 index 00000000..9bc0b950 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Strong.php @@ -0,0 +1,58 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Strong.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders text marked as strong in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Strong extends Text_Wiki_Render { + + + var $conf = array( + 'css' => null + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + if ($options['type'] == 'start') { + $css = $this->formatConf(' class="%s"', 'css'); + return ""; + } + + if ($options['type'] == 'end') { + return ''; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Subscript.php b/usr/plugins/Creole/Render/Xhtml/Subscript.php new file mode 100644 index 00000000..efe6192f --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Subscript.php @@ -0,0 +1,57 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Subscript.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders subscript text in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Subscript extends Text_Wiki_Render { + + var $conf = array( + 'css' => null + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + if ($options['type'] == 'start') { + $css = $this->formatConf(' class="%s"', 'css'); + return ""; + } + + if ($options['type'] == 'end') { + return ''; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Superscript.php b/usr/plugins/Creole/Render/Xhtml/Superscript.php new file mode 100644 index 00000000..a6c2b95e --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Superscript.php @@ -0,0 +1,57 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Superscript.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders superscript text in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Superscript extends Text_Wiki_Render { + + var $conf = array( + 'css' => null + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + if ($options['type'] == 'start') { + $css = $this->formatConf(' class="%s"', 'css'); + return ""; + } + + if ($options['type'] == 'end') { + return ''; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Table.php b/usr/plugins/Creole/Render/Xhtml/Table.php new file mode 100644 index 00000000..66fd8673 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Table.php @@ -0,0 +1,140 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Table.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders tables in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Table extends Text_Wiki_Render { + + var $conf = array( + 'css_table' => null, + 'css_caption' => null, + 'css_tr' => null, + 'css_th' => null, + 'css_td' => null + ); + + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + // make nice variable names (type, attr, span) + $span = $rowspan = 1; + extract($options); + + // free format + $format = isset($format) ? ' '. $format : ''; + + $pad = ' '; + + switch ($type) { + + case 'table_start': + $css = $this->formatConf(' class="%s"', 'css_table'); + return "\n\n\n"; + break; + + case 'table_end': + return "\n\n"; + break; + + case 'caption_start': + $css = $this->formatConf(' class="%s"', 'css_caption'); + return "\n"; + break; + + case 'caption_end': + return "\n"; + break; + + case 'row_start': + $css = $this->formatConf(' class="%s"', 'css_tr'); + return "$pad\n"; + break; + + case 'row_end': + return "$pad\n"; + break; + + case 'cell_start': + + // base html + $html = $pad . $pad; + + // is this a TH or TD cell? + if ($attr == 'header') { + // start a header cell + $css = $this->formatConf(' class="%s"', 'css_th'); + $html .= "formatConf(' class="%s"', 'css_td'); + $html .= " 1) { + $html .= " colspan=\"$span\""; + } + + // add the row span + if ($rowspan > 1) { + $html .= " rowspan=\"$rowspan\""; + } + + // add alignment + if ($attr != 'header' && $attr != '') { + $html .= " style=\"text-align: $attr;\""; + } + + // done! + $html .= "$format>"; + return $html; + break; + + case 'cell_end': + if ($attr == 'header') { + return "\n"; + } else { + return "\n"; + } + break; + + default: + return ''; + + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Tighten.php b/usr/plugins/Creole/Render/Xhtml/Tighten.php new file mode 100644 index 00000000..128764fd --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Tighten.php @@ -0,0 +1,34 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Tighten.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class makes the tightening in XHTML. (empty) + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Tighten extends Text_Wiki_Render { + + + function token() + { + return ''; + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Titlebar.php b/usr/plugins/Creole/Render/Xhtml/Titlebar.php new file mode 100644 index 00000000..7a1be0a9 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Titlebar.php @@ -0,0 +1,57 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Titlebar.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders a title bar in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Titlebar extends Text_Wiki_Render { + + var $conf = array( + 'css' => 'titlebar' + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + if ($options['type'] == 'start') { + $css = $this->formatConf(' class="%s"', 'css'); + return ""; + } + + if ($options['type'] == 'end') { + return ''; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Toc.php b/usr/plugins/Creole/Render/Xhtml/Toc.php new file mode 100644 index 00000000..c4a52cf3 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Toc.php @@ -0,0 +1,115 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Toc.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class inserts a table of content in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Toc extends Text_Wiki_Render { + + var $conf = array( + 'css_list' => null, + 'css_item' => null, + 'title' => 'Table of Contents', + 'div_id' => 'toc', + 'collapse' => true + ); + + var $min = 2; + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + // type, id, level, count, attr + extract($options); + + switch ($type) { + + case 'list_start': + + $css = $this->getConf('css_list'); + $html = ''; + + // collapse div within a table? + if ($this->getConf('collapse')) { + $html .= ''; + $html .= "
    \n"; + } + + // add the div, class, and id + $html .= 'getConf('div_id'); + if ($div_id) { + $html .= " id=\"$div_id\""; + } + + // add the title, and done + $html .= '>'; + $html .= $this->getConf('title'); + return $html; + break; + + case 'list_end': + if ($this->getConf('collapse')) { + return "\n\n
    \n\n"; + } else { + return "\n\n\n"; + } + break; + + case 'item_start': + $html = "\n\tgetConf('css_item'); + if ($css) { + $html .= " class=\"$css\""; + } + + $pad = ($level - $this->min); + $html .= " style=\"margin-left: {$pad}em;\">"; + + $html .= ""; + return $html; + break; + + case 'item_end': + return ""; + break; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Tt.php b/usr/plugins/Creole/Render/Xhtml/Tt.php new file mode 100644 index 00000000..57af2bd7 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Tt.php @@ -0,0 +1,58 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Tt.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders monospaced text in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Tt extends Text_Wiki_Render { + + + var $conf = array( + 'css' => null + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + if ($options['type'] == 'start') { + $css = $this->formatConf(' class="%s"', 'css'); + return ""; + } + + if ($options['type'] == 'end') { + return ''; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Underline.php b/usr/plugins/Creole/Render/Xhtml/Underline.php new file mode 100644 index 00000000..96ccd7a7 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Underline.php @@ -0,0 +1,58 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Underline.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders underlined text in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Underline extends Text_Wiki_Render { + + var $conf = array( + 'css' => null + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + function token($options) + { + if ($options['type'] == 'start') { + //$css = $this->formatConf(' class="%s"', 'css'); + //return ""; + //return ""; + return ""; + } + + if ($options['type'] == 'end') { + return ''; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Url.php b/usr/plugins/Creole/Render/Xhtml/Url.php new file mode 100644 index 00000000..03eec308 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Url.php @@ -0,0 +1,138 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Url.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders URL links in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Url extends Text_Wiki_Render { + var $conf = array( + //'target' => '_blank', + 'images' => true, + 'img_ext' => array('jpg', 'jpeg', 'gif', 'png'), + 'css_inline' => null, + //'css_footnote' => null, + //'css_descr' => null, + //'css_img' => null + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + // create local variables from the options array (text, + // href, type) + extract($options); + + // find the rightmost dot and determine the filename + // extension. + $pos = strrpos($href, '.'); + $ext = strtolower(substr($href, $pos + 1)); + $href = $this->textEncode($href); + + // does the filename extension indicate an image file? + if ($this->getConf('images') && + in_array($ext, $this->getConf('img_ext', array()))) { + + // create alt text for the image + if (! isset($text) || $text == '') { + $text = basename($href); + $text = $this->textEncode($text); + } + + // generate an image tag + // $css = $this->formatConf(' class="%s"', 'css_img'); + $start = "\"$text\""; //""; + $end = ""; + $text = ""; // cancel by feelinglucky + + } else { + + // should we build a target clause? + if ($href{0} == '#' || + strtolower(substr($href, 0, 7)) == 'mailto:') { + // targets not allowed for on-page anchors + // and mailto: links. + $target = ''; + } else { + // allow targets on non-anchor non-mailto links + $target = $this->getConf('target'); + } + + // generate a regular link (not an image) + $text = $this->textEncode($text); + //$css = $this->formatConf(' class="%s"', "css_$type"); + $start = "textEncode($target); + $start .= " onclick=\"window.open(this.href, '$target');"; + $start .= " return false;\""; + } + */ + + /* + if (isset($name)) { + $start .= " id=\"$name\""; + } + */ + + // finish up output + $start .= ">"; + $end = ""; + + // make numbered references look like footnotes when no + // CSS class specified, make them superscript by default + /* + if ($type == 'footnote' && ! $css) { + $start = '' . $start; + $end = $end . ''; + } + */ + } + + if ($options['type'] == 'start') { + $output = $start; + } else if ($options['type'] == 'end') { + $output = $end; + } else { + $output = $start . $text . $end; + } + + return $output; + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Wikilink.php b/usr/plugins/Creole/Render/Xhtml/Wikilink.php new file mode 100644 index 00000000..c140c98d --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Wikilink.php @@ -0,0 +1,177 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Wikilink.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders wiki links in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Wikilink extends Text_Wiki_Render { + + var $conf = array( + 'pages' => array(), // set to null or false to turn off page checks + 'view_url' => 'http://example.com/index.php?page=%s', + 'new_url' => 'http://example.com/new.php?page=%s', + 'new_text' => '?', + 'new_text_pos' => 'after', // 'before', 'after', or null/false + 'css' => null, + 'css_new' => null, + 'exists_callback' => null // call_user_func() callback + ); + + + /** + * + * Renders a token into XHTML. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + // make nice variable names (page, anchor, text) + extract($options); + + // is there a "page existence" callback? + // we need to access it directly instead of through + // getConf() because we'll need a reference (for + // object instance method callbacks). + if (isset($this->conf['exists_callback'])) { + $callback =& $this->conf['exists_callback']; + } else { + $callback = false; + } + + if ($callback) { + // use the callback function + $exists = call_user_func($callback, $page); + } else { + // no callback, go to the naive page array. + $list = $this->getConf('pages'); + if (is_array($list)) { + // yes, check against the page list + $exists = in_array($page, $list); + } else { + // no, assume it exists + $exists = true; + } + } + + $anchor = '#'.$this->urlEncode(substr($anchor, 1)); + + // does the page exist? + if ($exists) { + + // PAGE EXISTS. + + // link to the page view, but we have to build + // the HREF. we support both the old form where + // the page always comes at the end, and the new + // form that uses %s for sprintf() + $href = $this->getConf('view_url'); + + if (strpos($href, '%s') === false) { + // use the old form (page-at-end) + $href = $href . $this->urlEncode($page) . $anchor; + } else { + // use the new form (sprintf format string) + $href = sprintf($href, $this->urlEncode($page)) . $anchor; + } + + // get the CSS class and generate output + $css = ' class="'.$this->textEncode($this->getConf('css')).'"'; + + $start = ''; + $end = ''; + } else { + + // PAGE DOES NOT EXIST. + + // link to a create-page url, but only if new_url is set + $href = $this->getConf('new_url', null); + + // set the proper HREF + if (! $href || trim($href) == '') { + + // no useful href, return the text as it is + //TODO: This is no longer used, need to look closer into this branch + $output = $text; + + } else { + + // yes, link to the new-page href, but we have to build + // it. we support both the old form where + // the page always comes at the end, and the new + // form that uses sprintf() + if (strpos($href, '%s') === false) { + // use the old form + $href = $href . $this->urlEncode($page); + } else { + // use the new form + $href = sprintf($href, $this->urlEncode($page)); + } + } + + // get the appropriate CSS class and new-link text + $css = ' class="'.$this->textEncode($this->getConf('css_new')).'"'; + $new = $this->getConf('new_text'); + + // what kind of linking are we doing? + $pos = $this->getConf('new_text_pos'); + if (! $pos || ! $new) { + // no position (or no new_text), use css only on the page name + + $start = ''; + $end = ''; + } elseif ($pos == 'before') { + // use the new_text BEFORE the page name + $start = ''.$this->textEncode($new).''; + $end = ''; + } else { + // default, use the new_text link AFTER the page name + $start = ''; + $end = ''.$this->textEncode($new).''; + } + } + if (!strlen($text)) { + $start .= $this->textEncode($page); + } + if (isset($type)) { + switch ($type) { + case 'start': + $output = $start; + break; + case 'end': + $output = $end; + break; + } + } else { + $output = $start.$this->textEncode($text).$end; + } + return $output; + } +} +?> diff --git a/usr/plugins/FlashMp3Player/Plugin.php b/usr/plugins/FlashMp3Player/Plugin.php new file mode 100644 index 00000000..1ab176c0 --- /dev/null +++ b/usr/plugins/FlashMp3Player/Plugin.php @@ -0,0 +1,109 @@ +<mp3>http://...</mp3>的格式来添加一个音乐播放器 + * + * @package Dewplayer + * @author qining + * @version 1.0.1 + * @dependence 9.9.2-* + * @link http://typecho.org + */ +class FlashMp3Player_Plugin implements Typecho_Plugin_Interface +{ + /** + * 激活插件方法,如果激活失败,直接抛出异常 + * + * @access public + * @return void + * @throws Typecho_Plugin_Exception + */ + public static function activate() + { + //离线浏览器都是所见即所得模式 + Typecho_Plugin::factory('Widget_XmlRpc')->fromOfflineEditor = array('FlashMp3Player_Plugin', 'toCodeEditor'); + + /** 前端输出处理接口 */ + Typecho_Plugin::factory('Widget_Abstract_Contents')->excerptEx = array('FlashMp3Player_Plugin', 'parse'); + Typecho_Plugin::factory('Widget_Abstract_Contents')->contentEx = array('FlashMp3Player_Plugin', 'parse'); + } + + /** + * 禁用插件方法,如果禁用失败,直接抛出异常 + * + * @static + * @access public + * @return void + * @throws Typecho_Plugin_Exception + */ + public static function deactivate(){} + + /** + * 获取插件配置面板 + * + * @access public + * @param Typecho_Widget_Helper_Form $form 配置面板 + * @return void + */ + public static function config(Typecho_Widget_Helper_Form $form){} + + /** + * 个人用户的配置面板 + * + * @access public + * @param Typecho_Widget_Helper_Form $form + * @return void + */ + public static function personalConfig(Typecho_Widget_Helper_Form $form){} + + /** + * 将伪可视化代码转化为可视化代码 + * + * @access public + * @param string $content 需要处理的内容 + * @return string + */ + public static function toVisualEditor($content) + { + $swfUrl = Typecho_Common::url('FlashMp3Player/swf/dewplayer.swf', Helper::options()->pluginUrl); + return preg_replace("/<(mp3)>(.*?)<\/\\1>/is", + " + +", + $content); + } + + /** + * 将可视化代码转化为伪可视化代码 + * + * @access public + * @param string $content 需要处理的内容 + * @return string + */ + public static function toCodeEditor($content) + { + $swfUrl = preg_quote(Typecho_Common::url('FlashMp3Player/swf/dewplayer.swf', Helper::options()->pluginUrl), "/"); + return preg_replace("/<(object)[^>]*data=\"{$swfUrl}\?mp3\=([^\">]+)\"[^>]*>(.*?)<\/\\1>/is", "\\2", $content); + } + + /** + * 插件实现方法 + * + * @access public + * @return void + */ + public static function parse($text, $widget, $lastResult) + { + $text = empty($lastResult) ? $text : $lastResult; + + if ($widget instanceof Widget_Archive) { + $swfUrl = Typecho_Common::url('FlashMp3Player/swf/dewplayer.swf', Helper::options()->pluginUrl); + $text = preg_replace("/<(mp3)>(.*?)<\/\\1>/is", + " + +", + $text); + } + + return $text; + } +} diff --git a/usr/plugins/FlashMp3Player/swf/dewplayer.swf b/usr/plugins/FlashMp3Player/swf/dewplayer.swf new file mode 100644 index 0000000000000000000000000000000000000000..8d36637ed169e5012c9ce0cb0df6e71319a0dd11 GIT binary patch literal 5102 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 J#9nF6{~w9XljHyZ literal 0 HcmV?d00001 diff --git a/usr/plugins/GoogleCodePrettify/Plugin.php b/usr/plugins/GoogleCodePrettify/Plugin.php new file mode 100644 index 00000000..5615bdec --- /dev/null +++ b/usr/plugins/GoogleCodePrettify/Plugin.php @@ -0,0 +1,137 @@ +contentEx = array('GoogleCodePrettify_Plugin', 'parse'); + Typecho_Plugin::factory('Widget_Abstract_Contents')->excerptEx = array('GoogleCodePrettify_Plugin', 'parse'); + Typecho_Plugin::factory('Widget_Abstract_Comments')->contentEx = array('GoogleCodePrettify_Plugin', 'parse'); + Typecho_Plugin::factory('Widget_Archive')->header = array('GoogleCodePrettify_Plugin', 'header'); + Typecho_Plugin::factory('Widget_Archive')->footer = array('GoogleCodePrettify_Plugin', 'footer'); + } + + /** + * 禁用插件方法,如果禁用失败,直接抛出异常 + * + * @static + * @access public + * @return void + * @throws Typecho_Plugin_Exception + */ + public static function deactivate(){} + + /** + * 获取插件配置面板 + * + * @access public + * @param Typecho_Widget_Helper_Form $form 配置面板 + * @return void + */ + public static function config(Typecho_Widget_Helper_Form $form){} + + /** + * 个人用户的配置面板 + * + * @access public + * @param Typecho_Widget_Helper_Form $form + * @return void + */ + public static function personalConfig(Typecho_Widget_Helper_Form $form){} + + /** + * 输出头部css + * + * @access public + * @param unknown $header + * @return unknown + */ + public static function header() { + $cssUrl = Helper::options()->pluginUrl . '/GoogleCodePrettify/src/prettify.css'; + echo ''; + } + + /** + * 输出尾部js + * + * @access public + * @param unknown $header + * @return unknown + */ + public static function footer() { + $jsUrl = Helper::options()->pluginUrl . '/GoogleCodePrettify/src/prettify.js'; + echo ''; + echo ''; + } + + /** + * 解析 + * + * @access public + * @param array $matches 解析值 + * @return string + */ + public static function parseCallback($matches) + { + $language = trim($matches[2]); + + $map = array( + 'js' => 'javascript', + 'as' => 'actionscript', + 'as3' => 'actionscript3' + ); + + if (!empty($language) && isset($map[$language])) { + $language = $map[$language]; + } + + $source = '
    '; + $numberItem = ''; + + return $source . $numberItem . $sourceItem . '
    '; + $sourceItem = ''; + $sourceItem .= '
    '; + + $sourceList = explode("\n", trim($matches[3])); + foreach ($sourceList as $key => $sourceLine) { + $numberItem .= ''; + $sourceItem .= ''; + } + + $numberItem .= '
    ' . ($key + 1) . '
    ' . htmlspecialchars($sourceLine) . '
    '; + } + + /** + * 插件实现方法 + * + * @access public + * @return void + */ + public static function parse($text, $widget, $lastResult) + { + $text = empty($lastResult) ? $text : $lastResult; + + if ($widget instanceof Widget_Archive || $widget instanceof Widget_Abstract_Comments) { + return preg_replace_callback("/<(code|pre)(\s*[^>]*)>(.*?)<\/\\1>/is", array('GoogleCodePrettify_Plugin', 'parseCallback'), $text); + } else { + return $text; + } + } +} diff --git a/usr/plugins/GoogleCodePrettify/src/lang-apollo.js b/usr/plugins/GoogleCodePrettify/src/lang-apollo.js new file mode 100644 index 00000000..c2182100 --- /dev/null +++ b/usr/plugins/GoogleCodePrettify/src/lang-apollo.js @@ -0,0 +1,51 @@ +// Copyright (C) 2009 Onno Hommes. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/** + * @fileoverview + * Registers a language handler for the AGC/AEA Assembly Language as described + * at http://virtualagc.googlecode.com + *

    + * This file could be used by goodle code to allow syntax highlight for + * Virtual AGC SVN repository or if you don't want to commonize + * the header for the agc/aea html assembly listing. + * + * @author ohommes@alumni.cmu.edu + */ + +PR.registerLangHandler( + PR.createSimpleLexer( + [ + // A line comment that starts with ; + [PR.PR_COMMENT, /^#[^\r\n]*/, null, '#'], + // Whitespace + [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'], + // A double quoted, possibly multi-line, string. + [PR.PR_STRING, /^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"'] + ], + [ + [PR.PR_KEYWORD, /^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/,null], + [PR.PR_TYPE, /^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[SE]?BANK\=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/,null], + // A single quote possibly followed by a word that optionally ends with + // = ! or ?. + [PR.PR_LITERAL, + /^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/], + // Any word including labels that optionally ends with = ! or ?. + [PR.PR_PLAIN, + /^-*(?:[!-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i], + // A printable non-space non-special character + [PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0()\"\\\';]+/] + ]), + ['apollo', 'agc', 'aea']); diff --git a/usr/plugins/GoogleCodePrettify/src/lang-css.js b/usr/plugins/GoogleCodePrettify/src/lang-css.js new file mode 100644 index 00000000..44013d26 --- /dev/null +++ b/usr/plugins/GoogleCodePrettify/src/lang-css.js @@ -0,0 +1,78 @@ +// Copyright (C) 2009 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + + +/** + * @fileoverview + * Registers a language handler for CSS. + * + * + * To use, include prettify.js and this file in your HTML page. + * Then put your code in an HTML tag like + *

    
    + *
    + *
    + * http://www.w3.org/TR/CSS21/grammar.html Section G2 defines the lexical
    + * grammar.  This scheme does not recognize keywords containing escapes.
    + *
    + * @author mikesamuel@gmail.com
    + */
    +
    +PR.registerLangHandler(
    +    PR.createSimpleLexer(
    +        [
    +         // The space production 
    +         [PR.PR_PLAIN,       /^[ \t\r\n\f]+/, null, ' \t\r\n\f']
    +        ],
    +        [
    +         // Quoted strings.   and 
    +         [PR.PR_STRING,
    +          /^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/, null],
    +         [PR.PR_STRING,
    +          /^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/, null],
    +         ['lang-css-str', /^url\(([^\)\"\']*)\)/i],
    +         [PR.PR_KEYWORD,
    +          /^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,
    +          null],
    +         // A property name -- an identifier followed by a colon.
    +         ['lang-css-kw', /^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],
    +         // A C style block comment.  The  production.
    +         [PR.PR_COMMENT, /^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],
    +         // Escaping text spans
    +         [PR.PR_COMMENT, /^(?:)/],
    +         // A number possibly containing a suffix.
    +         [PR.PR_LITERAL, /^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],
    +         // A hex color
    +         [PR.PR_LITERAL, /^#(?:[0-9a-f]{3}){1,2}/i],
    +         // An identifier
    +         [PR.PR_PLAIN,
    +          /^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],
    +         // A run of punctuation
    +         [PR.PR_PUNCTUATION, /^[^\s\w\'\"]+/]
    +        ]),
    +    ['css']);
    +PR.registerLangHandler(
    +    PR.createSimpleLexer([],
    +        [
    +         [PR.PR_KEYWORD,
    +          /^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]
    +        ]),
    +    ['css-kw']);
    +PR.registerLangHandler(
    +    PR.createSimpleLexer([],
    +        [
    +         [PR.PR_STRING, /^[^\)\"\']+/]
    +        ]),
    +    ['css-str']);
    diff --git a/usr/plugins/GoogleCodePrettify/src/lang-hs.js b/usr/plugins/GoogleCodePrettify/src/lang-hs.js
    new file mode 100644
    index 00000000..91157b98
    --- /dev/null
    +++ b/usr/plugins/GoogleCodePrettify/src/lang-hs.js
    @@ -0,0 +1,101 @@
    +// Copyright (C) 2009 Google Inc.
    +//
    +// Licensed under the Apache License, Version 2.0 (the "License");
    +// you may not use this file except in compliance with the License.
    +// You may obtain a copy of the License at
    +//
    +//      http://www.apache.org/licenses/LICENSE-2.0
    +//
    +// Unless required by applicable law or agreed to in writing, software
    +// distributed under the License is distributed on an "AS IS" BASIS,
    +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +// See the License for the specific language governing permissions and
    +// limitations under the License.
    +
    +
    +
    +/**
    + * @fileoverview
    + * Registers a language handler for Haskell.
    + *
    + *
    + * To use, include prettify.js and this file in your HTML page.
    + * Then put your code in an HTML tag like
    + *      
    (my lisp code)
    + * The lang-cl class identifies the language as common lisp. + * This file supports the following language extensions: + * lang-cl - Common Lisp + * lang-el - Emacs Lisp + * lang-lisp - Lisp + * lang-scm - Scheme + * + * + * I used http://www.informatik.uni-freiburg.de/~thiemann/haskell/haskell98-report-html/syntax-iso.html + * as the basis, but ignore the way the ncomment production nests since this + * makes the lexical grammar irregular. It might be possible to support + * ncomments using the lookbehind filter. + * + * + * @author mikesamuel@gmail.com + */ + +PR.registerLangHandler( + PR.createSimpleLexer( + [ + // Whitespace + // whitechar -> newline | vertab | space | tab | uniWhite + // newline -> return linefeed | return | linefeed | formfeed + [PR.PR_PLAIN, /^[\t\n\x0B\x0C\r ]+/, null, '\t\n\x0B\x0C\r '], + // Single line double and single-quoted strings. + // char -> ' (graphic<' | \> | space | escape<\&>) ' + // string -> " {graphic<" | \> | space | escape | gap}" + // escape -> \ ( charesc | ascii | decimal | o octal + // | x hexadecimal ) + // charesc -> a | b | f | n | r | t | v | \ | " | ' | & + [PR.PR_STRING, /^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/, + null, '"'], + [PR.PR_STRING, /^\'(?:[^\'\\\n\x0C\r]|\\[^&])\'?/, + null, "'"], + // decimal -> digit{digit} + // octal -> octit{octit} + // hexadecimal -> hexit{hexit} + // integer -> decimal + // | 0o octal | 0O octal + // | 0x hexadecimal | 0X hexadecimal + // float -> decimal . decimal [exponent] + // | decimal exponent + // exponent -> (e | E) [+ | -] decimal + [PR.PR_LITERAL, + /^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i, + null, '0123456789'] + ], + [ + // Haskell does not have a regular lexical grammar due to the nested + // ncomment. + // comment -> dashes [ any {any}] newline + // ncomment -> opencom ANYseq {ncomment ANYseq}closecom + // dashes -> '--' {'-'} + // opencom -> '{-' + // closecom -> '-}' + [PR.PR_COMMENT, /^(?:(?:--+(?:[^\r\n\x0C]*)?)|(?:\{-(?:[^-]|-+[^-\}])*-\}))/], + // reservedid -> case | class | data | default | deriving | do + // | else | if | import | in | infix | infixl | infixr + // | instance | let | module | newtype | of | then + // | type | where | _ + [PR.PR_KEYWORD, /^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^a-zA-Z0-9\']|$)/, null], + // qvarid -> [ modid . ] varid + // qconid -> [ modid . ] conid + // varid -> (small {small | large | digit | ' }) + // conid -> large {small | large | digit | ' } + // modid -> conid + // small -> ascSmall | uniSmall | _ + // ascSmall -> a | b | ... | z + // uniSmall -> any Unicode lowercase letter + // large -> ascLarge | uniLarge + // ascLarge -> A | B | ... | Z + // uniLarge -> any uppercase or titlecase Unicode letter + [PR.PR_PLAIN, /^(?:[A-Z][\w\']*\.)*[a-zA-Z][\w\']*/], + // matches the symbol production + [PR.PR_PUNCTUATION, /^[^\t\n\x0B\x0C\r a-zA-Z0-9\'\"]+/] + ]), + ['hs']); diff --git a/usr/plugins/GoogleCodePrettify/src/lang-lisp.js b/usr/plugins/GoogleCodePrettify/src/lang-lisp.js new file mode 100644 index 00000000..4cffa53d --- /dev/null +++ b/usr/plugins/GoogleCodePrettify/src/lang-lisp.js @@ -0,0 +1,93 @@ +// Copyright (C) 2008 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + + +/** + * @fileoverview + * Registers a language handler for Common Lisp and related languages. + * + * + * To use, include prettify.js and this file in your HTML page. + * Then put your code in an HTML tag like + *
    (my lisp code)
    + * The lang-cl class identifies the language as common lisp. + * This file supports the following language extensions: + * lang-cl - Common Lisp + * lang-el - Emacs Lisp + * lang-lisp - Lisp + * lang-scm - Scheme + * + * + * I used http://www.devincook.com/goldparser/doc/meta-language/grammar-LISP.htm + * as the basis, but added line comments that start with ; and changed the atom + * production to disallow unquoted semicolons. + * + * "Name" = 'LISP' + * "Author" = 'John McCarthy' + * "Version" = 'Minimal' + * "About" = 'LISP is an abstract language that organizes ALL' + * | 'data around "lists".' + * + * "Start Symbol" = [s-Expression] + * + * {Atom Char} = {Printable} - {Whitespace} - [()"\''] + * + * Atom = ( {Atom Char} | '\'{Printable} )+ + * + * [s-Expression] ::= [Quote] Atom + * | [Quote] '(' [Series] ')' + * | [Quote] '(' [s-Expression] '.' [s-Expression] ')' + * + * [Series] ::= [s-Expression] [Series] + * | + * + * [Quote] ::= '' !Quote = do not evaluate + * | + * + * + * I used Practical Common Lisp as + * the basis for the reserved word list. + * + * + * @author mikesamuel@gmail.com + */ + +PR.registerLangHandler( + PR.createSimpleLexer( + [ + ['opn', /^\(/, null, '('], + ['clo', /^\)/, null, ')'], + // A line comment that starts with ; + [PR.PR_COMMENT, /^;[^\r\n]*/, null, ';'], + // Whitespace + [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'], + // A double quoted, possibly multi-line, string. + [PR.PR_STRING, /^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/, null, '"'] + ], + [ + [PR.PR_KEYWORD, /^(?:block|c[ad]+r|catch|cons|defun|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/, null], + [PR.PR_LITERAL, + /^[+\-]?(?:0x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i], + // A single quote possibly followed by a word that optionally ends with + // = ! or ?. + [PR.PR_LITERAL, + /^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/], + // A word that optionally ends with = ! or ?. + [PR.PR_PLAIN, + /^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i], + // A printable non-space non-special character + [PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0()\"\\\';]+/] + ]), + ['cl', 'el', 'lisp', 'scm']); diff --git a/usr/plugins/GoogleCodePrettify/src/lang-lua.js b/usr/plugins/GoogleCodePrettify/src/lang-lua.js new file mode 100644 index 00000000..68bb30b9 --- /dev/null +++ b/usr/plugins/GoogleCodePrettify/src/lang-lua.js @@ -0,0 +1,59 @@ +// Copyright (C) 2008 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + + +/** + * @fileoverview + * Registers a language handler for Lua. + * + * + * To use, include prettify.js and this file in your HTML page. + * Then put your code in an HTML tag like + *
    (my Lua code)
    + * + * + * I used http://www.lua.org/manual/5.1/manual.html#2.1 + * Because of the long-bracket concept used in strings and comments, Lua does + * not have a regular lexical grammar, but luckily it fits within the space + * of irregular grammars supported by javascript regular expressions. + * + * @author mikesamuel@gmail.com + */ + +PR.registerLangHandler( + PR.createSimpleLexer( + [ + // Whitespace + [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'], + // A double or single quoted, possibly multi-line, string. + [PR.PR_STRING, /^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/, null, '"\''] + ], + [ + // A comment is either a line comment that starts with two dashes, or + // two dashes preceding a long bracketed block. + [PR.PR_COMMENT, /^--(?:\[(=*)\[[\s\S]*?(?:\]\1\]|$)|[^\r\n]*)/], + // A long bracketed block not preceded by -- is a string. + [PR.PR_STRING, /^\[(=*)\[[\s\S]*?(?:\]\1\]|$)/], + [PR.PR_KEYWORD, /^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/, null], + // A number is a hex integer literal, a decimal real literal, or in + // scientific notation. + [PR.PR_LITERAL, + /^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i], + // An identifier + [PR.PR_PLAIN, /^[a-z_]\w*/i], + // A run of punctuation + [PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0][^\w\t\n\r \xA0\"\'\-\+=]*/] + ]), + ['lua']); diff --git a/usr/plugins/GoogleCodePrettify/src/lang-ml.js b/usr/plugins/GoogleCodePrettify/src/lang-ml.js new file mode 100644 index 00000000..c5a3db73 --- /dev/null +++ b/usr/plugins/GoogleCodePrettify/src/lang-ml.js @@ -0,0 +1,56 @@ +// Copyright (C) 2008 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + + +/** + * @fileoverview + * Registers a language handler for OCaml, SML, F# and similar languages. + * + * Based on the lexical grammar at + * http://research.microsoft.com/fsharp/manual/spec2.aspx#_Toc202383715 + * + * @author mikesamuel@gmail.com + */ + +PR.registerLangHandler( + PR.createSimpleLexer( + [ + // Whitespace is made up of spaces, tabs and newline characters. + [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'], + // #if ident/#else/#endif directives delimit conditional compilation + // sections + [PR.PR_COMMENT, + /^#(?:if[\t\n\r \xA0]+(?:[a-z_$][\w\']*|``[^\r\n\t`]*(?:``|$))|else|endif|light)/i, + null, '#'], + // A double or single quoted, possibly multi-line, string. + // F# allows escaped newlines in strings. + [PR.PR_STRING, /^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/, null, '"\''] + ], + [ + // Block comments are delimited by (* and *) and may be + // nested. Single-line comments begin with // and extend to + // the end of a line. + // TODO: (*...*) comments can be nested. This does not handle that. + [PR.PR_COMMENT, /^(?:\/\/[^\r\n]*|\(\*[\s\S]*?\*\))/], + [PR.PR_KEYWORD, /^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/], + // A number is a hex integer literal, a decimal real literal, or in + // scientific notation. + [PR.PR_LITERAL, + /^[+\-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i], + [PR.PR_PLAIN, /^(?:[a-z_]\w*[!?#]?|``[^\r\n\t`]*(?:``|$))/i], + // A printable non-space non-special character + [PR.PR_PUNCTUATION, /^[^\t\n\r \xA0\"\'\w]+/] + ]), + ['fs', 'ml']); diff --git a/usr/plugins/GoogleCodePrettify/src/lang-proto.js b/usr/plugins/GoogleCodePrettify/src/lang-proto.js new file mode 100644 index 00000000..d6531fd9 --- /dev/null +++ b/usr/plugins/GoogleCodePrettify/src/lang-proto.js @@ -0,0 +1,35 @@ +// Copyright (C) 2006 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/** + * @fileoverview + * Registers a language handler for Protocol Buffers as described at + * http://code.google.com/p/protobuf/. + * + * Based on the lexical grammar at + * http://research.microsoft.com/fsharp/manual/spec2.aspx#_Toc202383715 + * + * @author mikesamuel@gmail.com + */ + +PR.registerLangHandler(PR.sourceDecorator({ + keywords: ( + 'bool bytes default double enum extend extensions false fixed32 ' + + 'fixed64 float group import int32 int64 max message option ' + + 'optional package repeated required returns rpc service ' + + 'sfixed32 sfixed64 sint32 sint64 string syntax to true uint32 ' + + 'uint64'), + cStyleComments: true + }), ['proto']); diff --git a/usr/plugins/GoogleCodePrettify/src/lang-sql.js b/usr/plugins/GoogleCodePrettify/src/lang-sql.js new file mode 100644 index 00000000..7a580974 --- /dev/null +++ b/usr/plugins/GoogleCodePrettify/src/lang-sql.js @@ -0,0 +1,57 @@ +// Copyright (C) 2008 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + + +/** + * @fileoverview + * Registers a language handler for SQL. + * + * + * To use, include prettify.js and this file in your HTML page. + * Then put your code in an HTML tag like + *
    (my SQL code)
    + * + * + * http://savage.net.au/SQL/sql-99.bnf.html is the basis for the grammar, and + * http://msdn.microsoft.com/en-us/library/aa238507(SQL.80).aspx as the basis + * for the keyword list. + * + * @author mikesamuel@gmail.com + */ + +PR.registerLangHandler( + PR.createSimpleLexer( + [ + // Whitespace + [PR.PR_PLAIN, /^[\t\n\r \xA0]+/, null, '\t\n\r \xA0'], + // A double or single quoted, possibly multi-line, string. + [PR.PR_STRING, /^(?:"(?:[^\"\\]|\\.)*"|'(?:[^\'\\]|\\.)*')/, null, + '"\''] + ], + [ + // A comment is either a line comment that starts with two dashes, or + // two dashes preceding a long bracketed block. + [PR.PR_COMMENT, /^(?:--[^\r\n]*|\/\*[\s\S]*?(?:\*\/|$))/], + [PR.PR_KEYWORD, /^(?:ADD|ALL|ALTER|AND|ANY|AS|ASC|AUTHORIZATION|BACKUP|BEGIN|BETWEEN|BREAK|BROWSE|BULK|BY|CASCADE|CASE|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COMMIT|COMPUTE|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT|CURRENT_DATE|CURRENT_TIME|CURRENT_TIMESTAMP|CURRENT_USER|CURSOR|DATABASE|DBCC|DEALLOCATE|DECLARE|DEFAULT|DELETE|DENY|DESC|DISK|DISTINCT|DISTRIBUTED|DOUBLE|DROP|DUMMY|DUMP|ELSE|END|ERRLVL|ESCAPE|EXCEPT|EXEC|EXECUTE|EXISTS|EXIT|FETCH|FILE|FILLFACTOR|FOR|FOREIGN|FREETEXT|FREETEXTTABLE|FROM|FULL|FUNCTION|GOTO|GRANT|GROUP|HAVING|HOLDLOCK|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IN|INDEX|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KILL|LEFT|LIKE|LINENO|LOAD|NATIONAL|NOCHECK|NONCLUSTERED|NOT|NULL|NULLIF|OF|OFF|OFFSETS|ON|OPEN|OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|OPTION|OR|ORDER|OUTER|OVER|PERCENT|PLAN|PRECISION|PRIMARY|PRINT|PROC|PROCEDURE|PUBLIC|RAISERROR|READ|READTEXT|RECONFIGURE|REFERENCES|REPLICATION|RESTORE|RESTRICT|RETURN|REVOKE|RIGHT|ROLLBACK|ROWCOUNT|ROWGUIDCOL|RULE|SAVE|SCHEMA|SELECT|SESSION_USER|SET|SETUSER|SHUTDOWN|SOME|STATISTICS|SYSTEM_USER|TABLE|TEXTSIZE|THEN|TO|TOP|TRAN|TRANSACTION|TRIGGER|TRUNCATE|TSEQUAL|UNION|UNIQUE|UPDATE|UPDATETEXT|USE|USER|VALUES|VARYING|VIEW|WAITFOR|WHEN|WHERE|WHILE|WITH|WRITETEXT)(?=[^\w-]|$)/i, null], + // A number is a hex integer literal, a decimal real literal, or in + // scientific notation. + [PR.PR_LITERAL, + /^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i], + // An identifier + [PR.PR_PLAIN, /^[a-z_][\w-]*/i], + // A run of punctuation + [PR.PR_PUNCTUATION, /^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0+\-\"\']*/] + ]), + ['sql']); diff --git a/usr/plugins/GoogleCodePrettify/src/lang-vb.js b/usr/plugins/GoogleCodePrettify/src/lang-vb.js new file mode 100644 index 00000000..a38db455 --- /dev/null +++ b/usr/plugins/GoogleCodePrettify/src/lang-vb.js @@ -0,0 +1,61 @@ +// Copyright (C) 2009 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + + +/** + * @fileoverview + * Registers a language handler for various flavors of basic. + * + * + * To use, include prettify.js and this file in your HTML page. + * Then put your code in an HTML tag like + *
    
    + *
    + *
    + * http://msdn.microsoft.com/en-us/library/aa711638(VS.71).aspx defines the
    + * visual basic grammar lexical grammar.
    + *
    + * @author mikesamuel@gmail.com
    + */
    +
    +PR.registerLangHandler(
    +    PR.createSimpleLexer(
    +        [
    +         // Whitespace
    +         [PR.PR_PLAIN,       /^[\t\n\r \xA0\u2028\u2029]+/, null, '\t\n\r \xA0\u2028\u2029'],
    +         // A double quoted string with quotes escaped by doubling them.
    +         // A single character can be suffixed with C.
    +         [PR.PR_STRING,      /^(?:[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})(?:[\"\u201C\u201D]c|$)|[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})*(?:[\"\u201C\u201D]|$))/i, null,
    +          '"\u201C\u201D'],
    +         // A comment starts with a single quote and runs until the end of the
    +         // line.
    +         [PR.PR_COMMENT,     /^[\'\u2018\u2019][^\r\n\u2028\u2029]*/, null, '\'\u2018\u2019']
    +        ],
    +        [
    +         [PR.PR_KEYWORD, /^(?:AddHandler|AddressOf|Alias|And|AndAlso|Ansi|As|Assembly|Auto|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|CBool|CByte|CChar|CDate|CDbl|CDec|Char|CInt|Class|CLng|CObj|Const|CShort|CSng|CStr|CType|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else|ElseIf|End|EndIf|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get|GetType|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|Let|Lib|Like|Long|Loop|Me|Mod|Module|MustInherit|MustOverride|MyBase|MyClass|Namespace|New|Next|Not|NotInheritable|NotOverridable|Object|On|Option|Optional|Or|OrElse|Overloads|Overridable|Overrides|ParamArray|Preserve|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|Select|Set|Shadows|Shared|Short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TypeOf|Unicode|Until|Variant|Wend|When|While|With|WithEvents|WriteOnly|Xor|EndIf|GoSub|Let|Variant|Wend)\b/i, null],
    +         // A second comment form
    +         [PR.PR_COMMENT, /^REM[^\r\n\u2028\u2029]*/i],
    +         // A boolean, numeric, or date literal.
    +         [PR.PR_LITERAL,
    +          /^(?:True\b|False\b|Nothing\b|\d+(?:E[+\-]?\d+[FRD]?|[FRDSIL])?|(?:&H[0-9A-F]+|&O[0-7]+)[SIL]?|\d*\.\d+(?:E[+\-]?\d+)?[FRD]?|#\s+(?:\d+[\-\/]\d+[\-\/]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)?|\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)\s+#)/i],
    +         // An identifier?
    +         [PR.PR_PLAIN, /^(?:(?:[a-z]|_\w)\w*|\[(?:[a-z]|_\w)\w*\])/i],
    +         // A run of punctuation
    +         [PR.PR_PUNCTUATION,
    +          /^[^\w\t\n\r \"\'\[\]\xA0\u2018\u2019\u201C\u201D\u2028\u2029]+/],
    +         // Square brackets
    +         [PR.PR_PUNCTUATION, /^(?:\[|\])/]
    +        ]),
    +    ['vb', 'vbs']);
    diff --git a/usr/plugins/GoogleCodePrettify/src/lang-wiki.js b/usr/plugins/GoogleCodePrettify/src/lang-wiki.js
    new file mode 100644
    index 00000000..d4aa350a
    --- /dev/null
    +++ b/usr/plugins/GoogleCodePrettify/src/lang-wiki.js
    @@ -0,0 +1,53 @@
    +// Copyright (C) 2009 Google Inc.
    +//
    +// Licensed under the Apache License, Version 2.0 (the "License");
    +// you may not use this file except in compliance with the License.
    +// You may obtain a copy of the License at
    +//
    +//      http://www.apache.org/licenses/LICENSE-2.0
    +//
    +// Unless required by applicable law or agreed to in writing, software
    +// distributed under the License is distributed on an "AS IS" BASIS,
    +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +// See the License for the specific language governing permissions and
    +// limitations under the License.
    +
    +
    +/**
    + * @fileoverview
    + * Registers a language handler for Wiki pages.
    + *
    + * Based on WikiSyntax at http://code.google.com/p/support/wiki/WikiSyntax
    + *
    + * @author mikesamuel@gmail.com
    + */
    +
    +PR.registerLangHandler(
    +    PR.createSimpleLexer(
    +        [
    +         // Whitespace
    +         [PR.PR_PLAIN,       /^[\t \xA0a-gi-z0-9]+/, null,
    +          '\t \xA0abcdefgijklmnopqrstuvwxyz0123456789'],
    +         // Wiki formatting
    +         [PR.PR_PUNCTUATION, /^[=*~\^\[\]]+/, null, '=*~^[]']
    +        ],
    +        [
    +         // Meta-info like #summary, #labels, etc.
    +         ['lang-wiki.meta',  /(?:^^|\r\n?|\n)(#[a-z]+)\b/],
    +         // A WikiWord
    +         [PR.PR_LITERAL,     /^(?:[A-Z][a-z][a-z0-9]+[A-Z][a-z][a-zA-Z0-9]+)\b/
    +          ],
    +         // A preformatted block in an unknown language
    +         ['lang-',           /^\{\{\{([\s\S]+?)\}\}\}/],
    +         // A block of source code in an unknown language
    +         ['lang-',           /^`([^\r\n`]+)`/],
    +         // An inline URL.
    +         [PR.PR_STRING,
    +          /^https?:\/\/[^\/?#\s]*(?:\/[^?#\s]*)?(?:\?[^#\s]*)?(?:#\S*)?/i],
    +         [PR.PR_PLAIN,       /^(?:\r\n|[\s\S])[^#=*~^A-Zh\{`\[\r\n]*/]
    +        ]),
    +    ['wiki']);
    +
    +PR.registerLangHandler(
    +    PR.createSimpleLexer([[PR.PR_KEYWORD, /^#[a-z]+/i, null, '#']], []),
    +    ['wiki.meta']);
    diff --git a/usr/plugins/GoogleCodePrettify/src/prettify.css b/usr/plugins/GoogleCodePrettify/src/prettify.css
    new file mode 100644
    index 00000000..990d48ce
    --- /dev/null
    +++ b/usr/plugins/GoogleCodePrettify/src/prettify.css
    @@ -0,0 +1,32 @@
    +/* Pretty printing styles. Used with prettify.js. */
    +
    +.str { color: #B1D631; font-style: italic; }
    +.kwd { color: #527AA2; }
    +.com { color: #666; font-style: italic; }
    +.typ { color: #FAF4C6; }
    +.lit { color: #527AA2; }
    +.pun { color: #FF8613; }
    +.pln { color: #FAF4C6; }
    +.tag { color: #527AA2; }
    +.atn { color: #FAF4C6; }
    +.atv { color: #B1D631; }
    +.dec { color: #FAF4C6; }
    +table.prettyprint-table { padding: 2px; border: 1px solid #000; background: #222; color: #eee; font-size: 13px; margin: 0; font: 12px/1.5 'andale mono','lucida console',monospace; }
    +table.prettyprint-table pre, table.prettyprint-table table {margin: 0; background: #222; border: none; font-size: 13px;}
    +pre.prettyprint tr:hover td {background: #333}
    +table.prettyprint-table td.number {color: #666; font-family: "Courier New",Courier,monospace }
    +.prettyprint-box {width: 100%; display: block; overflow-x: auto}
    +table.prettyprint-table td {padding: 2px 4px}
    +
    +@media print {
    +  .str { color: #060; }
    +  .kwd { color: #006; font-weight: bold; }
    +  .com { color: #600; font-style: italic; }
    +  .typ { color: #404; font-weight: bold; }
    +  .lit { color: #044; }
    +  .pun { color: #440; }
    +  .pln { color: #000; }
    +  .tag { color: #006; font-weight: bold; }
    +  .atn { color: #404; }
    +  .atv { color: #060; }
    +}
    diff --git a/usr/plugins/GoogleCodePrettify/src/prettify.js b/usr/plugins/GoogleCodePrettify/src/prettify.js
    new file mode 100644
    index 00000000..09d6394f
    --- /dev/null
    +++ b/usr/plugins/GoogleCodePrettify/src/prettify.js
    @@ -0,0 +1,1478 @@
    +// Copyright (C) 2006 Google Inc.
    +//
    +// Licensed under the Apache License, Version 2.0 (the "License");
    +// you may not use this file except in compliance with the License.
    +// You may obtain a copy of the License at
    +//
    +//      http://www.apache.org/licenses/LICENSE-2.0
    +//
    +// Unless required by applicable law or agreed to in writing, software
    +// distributed under the License is distributed on an "AS IS" BASIS,
    +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +// See the License for the specific language governing permissions and
    +// limitations under the License.
    +
    +
    +/**
    + * @fileoverview
    + * some functions for browser-side pretty printing of code contained in html.
    + * 

    + * + * For a fairly comprehensive set of languages see the + * README + * file that came with this source. At a minimum, the lexer should work on a + * number of languages including C and friends, Java, Python, Bash, SQL, HTML, + * XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk + * and a subset of Perl, but, because of commenting conventions, doesn't work on + * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class. + *

    + * Usage:

      + *
    1. include this source file in an html page via + * {@code } + *
    2. define style rules. See the example page for examples. + *
    3. mark the {@code
      } and {@code } tags in your source with
      + *    {@code class=prettyprint.}
      + *    You can also use the (html deprecated) {@code } tag, but the pretty
      + *    printer needs to do more substantial DOM manipulations to support that, so
      + *    some css styles may not be preserved.
      + * </ol>
      + * That's it.  I wanted to keep the API as simple as possible, so there's no
      + * need to specify which language the code is in, but if you wish, you can add
      + * another class to the {@code <pre>} or {@code <code>} element to specify the
      + * language, as in {@code <pre class="prettyprint lang-java">}.  Any class that
      + * starts with "lang-" followed by a file extension, specifies the file type.
      + * See the "lang-*.js" files in this directory for code that implements
      + * per-language file handlers.
      + * <p>
      + * Change log:<br>
      + * cbeust, 2006/08/22
      + * <blockquote>
      + *   Java annotations (start with "@") are now captured as literals ("lit")
      + * </blockquote>
      + * @requires console
      + * @overrides window
      + */
      +
      +// JSLint declarations
      +/*global console, document, navigator, setTimeout, window */
      +
      +/**
      + * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
      + * UI events.
      + * If set to {@code false}, {@code prettyPrint()} is synchronous.
      + */
      +window['PR_SHOULD_USE_CONTINUATION'] = true;
      +
      +/** the number of characters between tab columns */
      +window['PR_TAB_WIDTH'] = 8;
      +
      +/** Walks the DOM returning a properly escaped version of innerHTML.
      +  * @param {Node} node
      +  * @param {Array.<string>} out output buffer that receives chunks of HTML.
      +  */
      +window['PR_normalizedHtml']
      +
      +/** Contains functions for creating and registering new language handlers.
      +  * @type {Object}
      +  */
      +  = window['PR']
      +
      +/** Pretty print a chunk of code.
      +  *
      +  * @param {string} sourceCodeHtml code as html
      +  * @return {string} code as html, but prettier
      +  */
      +  = window['prettyPrintOne']
      +/** Find all the {@code <pre>} and {@code <code>} tags in the DOM with
      +  * {@code class=prettyprint} and prettify them.
      +  * @param {Function?} opt_whenDone if specified, called when the last entry
      +  *     has been finished.
      +  */
      +  = window['prettyPrint'] = void 0;
      +
      +/** browser detection. @extern @returns false if not IE, otherwise the major version. */
      +window['_pr_isIE6'] = function () {
      +  var ieVersion = navigator && navigator.userAgent &&
      +      navigator.userAgent.match(/\bMSIE ([678])\./);
      +  ieVersion = ieVersion ? +ieVersion[1] : false;
      +  window['_pr_isIE6'] = function () { return ieVersion; };
      +  return ieVersion;
      +};
      +
      +
      +(function () {
      +  // Keyword lists for various languages.
      +  var FLOW_CONTROL_KEYWORDS =
      +      "break continue do else for if return while ";
      +  var C_KEYWORDS = FLOW_CONTROL_KEYWORDS + "auto case char const default " +
      +      "double enum extern float goto int long register short signed sizeof " +
      +      "static struct switch typedef union unsigned void volatile ";
      +  var COMMON_KEYWORDS = C_KEYWORDS + "catch class delete false import " +
      +      "new operator private protected public this throw true try typeof ";
      +  var CPP_KEYWORDS = COMMON_KEYWORDS + "alignof align_union asm axiom bool " +
      +      "concept concept_map const_cast constexpr decltype " +
      +      "dynamic_cast explicit export friend inline late_check " +
      +      "mutable namespace nullptr reinterpret_cast static_assert static_cast " +
      +      "template typeid typename using virtual wchar_t where ";
      +  var JAVA_KEYWORDS = COMMON_KEYWORDS +
      +      "abstract boolean byte extends final finally implements import " +
      +      "instanceof null native package strictfp super synchronized throws " +
      +      "transient ";
      +  var CSHARP_KEYWORDS = JAVA_KEYWORDS +
      +      "as base by checked decimal delegate descending event " +
      +      "fixed foreach from group implicit in interface internal into is lock " +
      +      "object out override orderby params partial readonly ref sbyte sealed " +
      +      "stackalloc string select uint ulong unchecked unsafe ushort var ";
      +  var JSCRIPT_KEYWORDS = COMMON_KEYWORDS +
      +      "debugger eval export function get null set undefined var with " +
      +      "Infinity NaN ";
      +  var PERL_KEYWORDS = "caller delete die do dump elsif eval exit foreach for " +
      +      "goto if import last local my next no our print package redo require " +
      +      "sub undef unless until use wantarray while BEGIN END ";
      +  var PYTHON_KEYWORDS = FLOW_CONTROL_KEYWORDS + "and as assert class def del " +
      +      "elif except exec finally from global import in is lambda " +
      +      "nonlocal not or pass print raise try with yield " +
      +      "False True None ";
      +  var RUBY_KEYWORDS = FLOW_CONTROL_KEYWORDS + "alias and begin case class def" +
      +      " defined elsif end ensure false in module next nil not or redo rescue " +
      +      "retry self super then true undef unless until when yield BEGIN END ";
      +  var SH_KEYWORDS = FLOW_CONTROL_KEYWORDS + "case done elif esac eval fi " +
      +      "function in local set then until ";
      +  var ALL_KEYWORDS = (
      +      CPP_KEYWORDS + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS +
      +      PYTHON_KEYWORDS + RUBY_KEYWORDS + SH_KEYWORDS);
      +
      +  // token style names.  correspond to css classes
      +  /** token style for a string literal */
      +  var PR_STRING = 'str';
      +  /** token style for a keyword */
      +  var PR_KEYWORD = 'kwd';
      +  /** token style for a comment */
      +  var PR_COMMENT = 'com';
      +  /** token style for a type */
      +  var PR_TYPE = 'typ';
      +  /** token style for a literal value.  e.g. 1, null, true. */
      +  var PR_LITERAL = 'lit';
      +  /** token style for a punctuation string. */
      +  var PR_PUNCTUATION = 'pun';
      +  /** token style for a punctuation string. */
      +  var PR_PLAIN = 'pln';
      +
      +  /** token style for an sgml tag. */
      +  var PR_TAG = 'tag';
      +  /** token style for a markup declaration such as a DOCTYPE. */
      +  var PR_DECLARATION = 'dec';
      +  /** token style for embedded source. */
      +  var PR_SOURCE = 'src';
      +  /** token style for an sgml attribute name. */
      +  var PR_ATTRIB_NAME = 'atn';
      +  /** token style for an sgml attribute value. */
      +  var PR_ATTRIB_VALUE = 'atv';
      +
      +  /**
      +   * A class that indicates a section of markup that is not code, e.g. to allow
      +   * embedding of line numbers within code listings.
      +   */
      +  var PR_NOCODE = 'nocode';
      +
      +  /** A set of tokens that can precede a regular expression literal in
      +    * javascript.
      +    * http://www.mozilla.org/js/language/js20/rationale/syntax.html has the full
      +    * list, but I've removed ones that might be problematic when seen in
      +    * languages that don't support regular expression literals.
      +    *
      +    * <p>Specifically, I've removed any keywords that can't precede a regexp
      +    * literal in a syntactically legal javascript program, and I've removed the
      +    * "in" keyword since it's not a keyword in many languages, and might be used
      +    * as a count of inches.
      +    *
      +    * <p>The link a above does not accurately describe EcmaScript rules since
      +    * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
      +    * very well in practice.
      +    *
      +    * @private
      +    */
      +  var REGEXP_PRECEDER_PATTERN = function () {
      +      var preceders = [
      +          "!", "!=", "!==", "#", "%", "%=", "&", "&&", "&&=",
      +          "&=", "(", "*", "*=", /* "+", */ "+=", ",", /* "-", */ "-=",
      +          "->", /*".", "..", "...", handled below */ "/", "/=", ":", "::", ";",
      +          "<", "<<", "<<=", "<=", "=", "==", "===", ">",
      +          ">=", ">>", ">>=", ">>>", ">>>=", "?", "@", "[",
      +          "^", "^=", "^^", "^^=", "{", "|", "|=", "||",
      +          "||=", "~" /* handles =~ and !~ */,
      +          "break", "case", "continue", "delete",
      +          "do", "else", "finally", "instanceof",
      +          "return", "throw", "try", "typeof"
      +          ];
      +      var pattern = '(?:^^|[+-]';
      +      for (var i = 0; i < preceders.length; ++i) {
      +        pattern += '|' + preceders[i].replace(/([^=<>:&a-z])/g, '\\$1');
      +      }
      +      pattern += ')\\s*';  // matches at end, and matches empty string
      +      return pattern;
      +      // CAVEAT: this does not properly handle the case where a regular
      +      // expression immediately follows another since a regular expression may
      +      // have flags for case-sensitivity and the like.  Having regexp tokens
      +      // adjacent is not valid in any language I'm aware of, so I'm punting.
      +      // TODO: maybe style special characters inside a regexp as punctuation.
      +    }();
      +
      +  // Define regexps here so that the interpreter doesn't have to create an
      +  // object each time the function containing them is called.
      +  // The language spec requires a new object created even if you don't access
      +  // the $1 members.
      +  var pr_amp = /&/g;
      +  var pr_lt = /</g;
      +  var pr_gt = />/g;
      +  var pr_quot = /\"/g;
      +  /** like textToHtml but escapes double quotes to be attribute safe. */
      +  function attribToHtml(str) {
      +    return str.replace(pr_amp, '&amp;')
      +        .replace(pr_lt, '&lt;')
      +        .replace(pr_gt, '&gt;')
      +        .replace(pr_quot, '&quot;');
      +  }
      +
      +  /** escapest html special characters to html. */
      +  function textToHtml(str) {
      +    return str.replace(pr_amp, '&amp;')
      +        .replace(pr_lt, '&lt;')
      +        .replace(pr_gt, '&gt;');
      +  }
      +
      +
      +  var pr_ltEnt = /&lt;/g;
      +  var pr_gtEnt = /&gt;/g;
      +  var pr_aposEnt = /&apos;/g;
      +  var pr_quotEnt = /&quot;/g;
      +  var pr_ampEnt = /&amp;/g;
      +  var pr_nbspEnt = /&nbsp;/g;
      +  /** unescapes html to plain text. */
      +  function htmlToText(html) {
      +    var pos = html.indexOf('&');
      +    if (pos < 0) { return html; }
      +    // Handle numeric entities specially.  We can't use functional substitution
      +    // since that doesn't work in older versions of Safari.
      +    // These should be rare since most browsers convert them to normal chars.
      +    for (--pos; (pos = html.indexOf('&#', pos + 1)) >= 0;) {
      +      var end = html.indexOf(';', pos);
      +      if (end >= 0) {
      +        var num = html.substring(pos + 3, end);
      +        var radix = 10;
      +        if (num && num.charAt(0) === 'x') {
      +          num = num.substring(1);
      +          radix = 16;
      +        }
      +        var codePoint = parseInt(num, radix);
      +        if (!isNaN(codePoint)) {
      +          html = (html.substring(0, pos) + String.fromCharCode(codePoint) +
      +                  html.substring(end + 1));
      +        }
      +      }
      +    }
      +
      +    return html.replace(pr_ltEnt, '<')
      +        .replace(pr_gtEnt, '>')
      +        .replace(pr_aposEnt, "'")
      +        .replace(pr_quotEnt, '"')
      +        .replace(pr_nbspEnt, ' ')
      +        .replace(pr_ampEnt, '&');
      +  }
      +
      +  /** is the given node's innerHTML normally unescaped? */
      +  function isRawContent(node) {
      +    return 'XMP' === node.tagName;
      +  }
      +
      +  var newlineRe = /[\r\n]/g;
      +  /**
      +   * Are newlines and adjacent spaces significant in the given node's innerHTML?
      +   */
      +  function isPreformatted(node, content) {
      +    // PRE means preformatted, and is a very common case, so don't create
      +    // unnecessary computed style objects.
      +    if ('PRE' === node.tagName) { return true; }
      +    if (!newlineRe.test(content)) { return true; }  // Don't care
      +    var whitespace = '';
      +    // For disconnected nodes, IE has no currentStyle.
      +    if (node.currentStyle) {
      +      whitespace = node.currentStyle.whiteSpace;
      +    } else if (window.getComputedStyle) {
      +      // Firefox makes a best guess if node is disconnected whereas Safari
      +      // returns the empty string.
      +      whitespace = window.getComputedStyle(node, null).whiteSpace;
      +    }
      +    return !whitespace || whitespace === 'pre';
      +  }
      +
      +  function normalizedHtml(node, out) {
      +    switch (node.nodeType) {
      +      case 1:  // an element
      +        var name = node.tagName.toLowerCase();
      +        out.push('<', name);
      +        for (var i = 0; i < node.attributes.length; ++i) {
      +          var attr = node.attributes[i];
      +          if (!attr.specified) { continue; }
      +          out.push(' ');
      +          normalizedHtml(attr, out);
      +        }
      +        out.push('>');
      +        for (var child = node.firstChild; child; child = child.nextSibling) {
      +          normalizedHtml(child, out);
      +        }
      +        if (node.firstChild || !/^(?:br|link|img)$/.test(name)) {
      +          out.push('<\/', name, '>');
      +        }
      +        break;
      +      case 2: // an attribute
      +        out.push(node.name.toLowerCase(), '="', attribToHtml(node.value), '"');
      +        break;
      +      case 3: case 4: // text
      +        out.push(textToHtml(node.nodeValue));
      +        break;
      +    }
      +  }
      +
      +  /**
      +   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
      +   * matches the union o the sets o strings matched d by the input RegExp.
      +   * Since it matches globally, if the input strings have a start-of-input
      +   * anchor (/^.../), it is ignored for the purposes of unioning.
      +   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
      +   * @return {RegExp} a global regex.
      +   */
      +  function combinePrefixPatterns(regexs) {
      +    var capturedGroupIndex = 0;
      +
      +    var needToFoldCase = false;
      +    var ignoreCase = false;
      +    for (var i = 0, n = regexs.length; i < n; ++i) {
      +      var regex = regexs[i];
      +      if (regex.ignoreCase) {
      +        ignoreCase = true;
      +      } else if (/[a-z]/i.test(regex.source.replace(
      +                     /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
      +        needToFoldCase = true;
      +        ignoreCase = false;
      +        break;
      +      }
      +    }
      +
      +    function decodeEscape(charsetPart) {
      +      if (charsetPart.charAt(0) !== '\\') { return charsetPart.charCodeAt(0); }
      +      switch (charsetPart.charAt(1)) {
      +        case 'b': return 8;
      +        case 't': return 9;
      +        case 'n': return 0xa;
      +        case 'v': return 0xb;
      +        case 'f': return 0xc;
      +        case 'r': return 0xd;
      +        case 'u': case 'x':
      +          return parseInt(charsetPart.substring(2), 16)
      +              || charsetPart.charCodeAt(1);
      +        case '0': case '1': case '2': case '3': case '4':
      +        case '5': case '6': case '7':
      +          return parseInt(charsetPart.substring(1), 8);
      +        default: return charsetPart.charCodeAt(1);
      +      }
      +    }
      +
      +    function encodeEscape(charCode) {
      +      if (charCode < 0x20) {
      +        return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
      +      }
      +      var ch = String.fromCharCode(charCode);
      +      if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
      +        ch = '\\' + ch;
      +      }
      +      return ch;
      +    }
      +
      +    function caseFoldCharset(charSet) {
      +      var charsetParts = charSet.substring(1, charSet.length - 1).match(
      +          new RegExp(
      +              '\\\\u[0-9A-Fa-f]{4}'
      +              + '|\\\\x[0-9A-Fa-f]{2}'
      +              + '|\\\\[0-3][0-7]{0,2}'
      +              + '|\\\\[0-7]{1,2}'
      +              + '|\\\\[\\s\\S]'
      +              + '|-'
      +              + '|[^-\\\\]',
      +              'g'));
      +      var groups = [];
      +      var ranges = [];
      +      var inverse = charsetParts[0] === '^';
      +      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
      +        var p = charsetParts[i];
      +        switch (p) {
      +          case '\\B': case '\\b':
      +          case '\\D': case '\\d':
      +          case '\\S': case '\\s':
      +          case '\\W': case '\\w':
      +            groups.push(p);
      +            continue;
      +        }
      +        var start = decodeEscape(p);
      +        var end;
      +        if (i + 2 < n && '-' === charsetParts[i + 1]) {
      +          end = decodeEscape(charsetParts[i + 2]);
      +          i += 2;
      +        } else {
      +          end = start;
      +        }
      +        ranges.push([start, end]);
      +        // If the range might intersect letters, then expand it.
      +        if (!(end < 65 || start > 122)) {
      +          if (!(end < 65 || start > 90)) {
      +            ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
      +          }
      +          if (!(end < 97 || start > 122)) {
      +            ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
      +          }
      +        }
      +      }
      +
      +      // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
      +      // -> [[1, 12], [14, 14], [16, 17]]
      +      ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1]  - a[1]); });
      +      var consolidatedRanges = [];
      +      var lastRange = [NaN, NaN];
      +      for (var i = 0; i < ranges.length; ++i) {
      +        var range = ranges[i];
      +        if (range[0] <= lastRange[1] + 1) {
      +          lastRange[1] = Math.max(lastRange[1], range[1]);
      +        } else {
      +          consolidatedRanges.push(lastRange = range);
      +        }
      +      }
      +
      +      var out = ['['];
      +      if (inverse) { out.push('^'); }
      +      out.push.apply(out, groups);
      +      for (var i = 0; i < consolidatedRanges.length; ++i) {
      +        var range = consolidatedRanges[i];
      +        out.push(encodeEscape(range[0]));
      +        if (range[1] > range[0]) {
      +          if (range[1] + 1 > range[0]) { out.push('-'); }
      +          out.push(encodeEscape(range[1]));
      +        }
      +      }
      +      out.push(']');
      +      return out.join('');
      +    }
      +
      +    function allowAnywhereFoldCaseAndRenumberGroups(regex) {
      +      // Split into character sets, escape sequences, punctuation strings
      +      // like ('(', '(?:', ')', '^'), and runs of characters that do not
      +      // include any of the above.
      +      var parts = regex.source.match(
      +          new RegExp(
      +              '(?:'
      +              + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]'  // a character set
      +              + '|\\\\u[A-Fa-f0-9]{4}'  // a unicode escape
      +              + '|\\\\x[A-Fa-f0-9]{2}'  // a hex escape
      +              + '|\\\\[0-9]+'  // a back-reference or octal escape
      +              + '|\\\\[^ux0-9]'  // other escape sequence
      +              + '|\\(\\?[:!=]'  // start of a non-capturing group
      +              + '|[\\(\\)\\^]'  // start/emd of a group, or line start
      +              + '|[^\\x5B\\x5C\\(\\)\\^]+'  // run of other characters
      +              + ')',
      +              'g'));
      +      var n = parts.length;
      +
      +      // Maps captured group numbers to the number they will occupy in
      +      // the output or to -1 if that has not been determined, or to
      +      // undefined if they need not be capturing in the output.
      +      var capturedGroups = [];
      +
      +      // Walk over and identify back references to build the capturedGroups
      +      // mapping.
      +      for (var i = 0, groupIndex = 0; i < n; ++i) {
      +        var p = parts[i];
      +        if (p === '(') {
      +          // groups are 1-indexed, so max group index is count of '('
      +          ++groupIndex;
      +        } else if ('\\' === p.charAt(0)) {
      +          var decimalValue = +p.substring(1);
      +          if (decimalValue && decimalValue <= groupIndex) {
      +            capturedGroups[decimalValue] = -1;
      +          }
      +        }
      +      }
      +
      +      // Renumber groups and reduce capturing groups to non-capturing groups
      +      // where possible.
      +      for (var i = 1; i < capturedGroups.length; ++i) {
      +        if (-1 === capturedGroups[i]) {
      +          capturedGroups[i] = ++capturedGroupIndex;
      +        }
      +      }
      +      for (var i = 0, groupIndex = 0; i < n; ++i) {
      +        var p = parts[i];
      +        if (p === '(') {
      +          ++groupIndex;
      +          if (capturedGroups[groupIndex] === undefined) {
      +            parts[i] = '(?:';
      +          }
      +        } else if ('\\' === p.charAt(0)) {
      +          var decimalValue = +p.substring(1);
      +          if (decimalValue && decimalValue <= groupIndex) {
      +            parts[i] = '\\' + capturedGroups[groupIndex];
      +          }
      +        }
      +      }
      +
      +      // Remove any prefix anchors so that the output will match anywhere.
      +      // ^^ really does mean an anchored match though.
      +      for (var i = 0, groupIndex = 0; i < n; ++i) {
      +        if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
      +      }
      +
      +      // Expand letters to groupts to handle mixing of case-sensitive and
      +      // case-insensitive patterns if necessary.
      +      if (regex.ignoreCase && needToFoldCase) {
      +        for (var i = 0; i < n; ++i) {
      +          var p = parts[i];
      +          var ch0 = p.charAt(0);
      +          if (p.length >= 2 && ch0 === '[') {
      +            parts[i] = caseFoldCharset(p);
      +          } else if (ch0 !== '\\') {
      +            // TODO: handle letters in numeric escapes.
      +            parts[i] = p.replace(
      +                /[a-zA-Z]/g,
      +                function (ch) {
      +                  var cc = ch.charCodeAt(0);
      +                  return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
      +                });
      +          }
      +        }
      +      }
      +
      +      return parts.join('');
      +    }
      +
      +    var rewritten = [];
      +    for (var i = 0, n = regexs.length; i < n; ++i) {
      +      var regex = regexs[i];
      +      if (regex.global || regex.multiline) { throw new Error('' + regex); }
      +      rewritten.push(
      +          '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
      +    }
      +
      +    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
      +  }
      +
      +  var PR_innerHtmlWorks = null;
      +  function getInnerHtml(node) {
      +    // inner html is hopelessly broken in Safari 2.0.4 when the content is
      +    // an html description of well formed XML and the containing tag is a PRE
      +    // tag, so we detect that case and emulate innerHTML.
      +    if (null === PR_innerHtmlWorks) {
      +      var testNode = document.createElement('PRE');
      +      testNode.appendChild(
      +          document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));
      +      PR_innerHtmlWorks = !/</.test(testNode.innerHTML);
      +    }
      +
      +    if (PR_innerHtmlWorks) {
      +      var content = node.innerHTML;
      +      // XMP tags contain unescaped entities so require special handling.
      +      if (isRawContent(node)) {
      +        content = textToHtml(content);
      +      } else if (!isPreformatted(node, content)) {
      +        content = content.replace(/(<br\s*\/?>)[\r\n]+/g, '$1')
      +            .replace(/(?:[\r\n]+[ \t]*)+/g, ' ');
      +      }
      +      return content;
      +    }
      +
      +    var out = [];
      +    for (var child = node.firstChild; child; child = child.nextSibling) {
      +      normalizedHtml(child, out);
      +    }
      +    return out.join('');
      +  }
      +
      +  /** returns a function that expand tabs to spaces.  This function can be fed
      +    * successive chunks of text, and will maintain its own internal state to
      +    * keep track of how tabs are expanded.
      +    * @return {function (string) : string} a function that takes
      +    *   plain text and return the text with tabs expanded.
      +    * @private
      +    */
      +  function makeTabExpander(tabWidth) {
      +    var SPACES = '                ';
      +    var charInLine = 0;
      +
      +    return function (plainText) {
      +      // walk over each character looking for tabs and newlines.
      +      // On tabs, expand them.  On newlines, reset charInLine.
      +      // Otherwise increment charInLine
      +      var out = null;
      +      var pos = 0;
      +      for (var i = 0, n = plainText.length; i < n; ++i) {
      +        var ch = plainText.charAt(i);
      +
      +        switch (ch) {
      +          case '\t':
      +            if (!out) { out = []; }
      +            out.push(plainText.substring(pos, i));
      +            // calculate how much space we need in front of this part
      +            // nSpaces is the amount of padding -- the number of spaces needed
      +            // to move us to the next column, where columns occur at factors of
      +            // tabWidth.
      +            var nSpaces = tabWidth - (charInLine % tabWidth);
      +            charInLine += nSpaces;
      +            for (; nSpaces >= 0; nSpaces -= SPACES.length) {
      +              out.push(SPACES.substring(0, nSpaces));
      +            }
      +            pos = i + 1;
      +            break;
      +          case '\n':
      +            charInLine = 0;
      +            break;
      +          default:
      +            ++charInLine;
      +        }
      +      }
      +      if (!out) { return plainText; }
      +      out.push(plainText.substring(pos));
      +      return out.join('');
      +    };
      +  }
      +
      +  var pr_chunkPattern = new RegExp(
      +      '[^<]+'  // A run of characters other than '<'
      +      + '|<\!--[\\s\\S]*?--\>'  // an HTML comment
      +      + '|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>'  // a CDATA section
      +      // a probable tag that should not be highlighted
      +      + '|<\/?[a-zA-Z](?:[^>\"\']|\'[^\']*\'|\"[^\"]*\")*>'
      +      + '|<',  // A '<' that does not begin a larger chunk
      +      'g');
      +  var pr_commentPrefix = /^<\!--/;
      +  var pr_cdataPrefix = /^<!\[CDATA\[/;
      +  var pr_brPrefix = /^<br\b/i;
      +  var pr_tagNameRe = /^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/;
      +
      +  /** split markup into chunks of html tags (style null) and
      +    * plain text (style {@link #PR_PLAIN}), converting tags which are
      +    * significant for tokenization (<br>) into their textual equivalent.
      +    *
      +    * @param {string} s html where whitespace is considered significant.
      +    * @return {Object} source code and extracted tags.
      +    * @private
      +    */
      +  function extractTags(s) {
      +    // since the pattern has the 'g' modifier and defines no capturing groups,
      +    // this will return a list of all chunks which we then classify and wrap as
      +    // PR_Tokens
      +    var matches = s.match(pr_chunkPattern);
      +    var sourceBuf = [];
      +    var sourceBufLen = 0;
      +    var extractedTags = [];
      +    if (matches) {
      +      for (var i = 0, n = matches.length; i < n; ++i) {
      +        var match = matches[i];
      +        if (match.length > 1 && match.charAt(0) === '<') {
      +          if (pr_commentPrefix.test(match)) { continue; }
      +          if (pr_cdataPrefix.test(match)) {
      +            // strip CDATA prefix and suffix.  Don't unescape since it's CDATA
      +            sourceBuf.push(match.substring(9, match.length - 3));
      +            sourceBufLen += match.length - 12;
      +          } else if (pr_brPrefix.test(match)) {
      +            // <br> tags are lexically significant so convert them to text.
      +            // This is undone later.
      +            sourceBuf.push('\n');
      +            ++sourceBufLen;
      +          } else {
      +            if (match.indexOf(PR_NOCODE) >= 0 && isNoCodeTag(match)) {
      +              // A <span class="nocode"> will start a section that should be
      +              // ignored.  Continue walking the list until we see a matching end
      +              // tag.
      +              var name = match.match(pr_tagNameRe)[2];
      +              var depth = 1;
      +              var j;
      +              end_tag_loop:
      +              for (j = i + 1; j < n; ++j) {
      +                var name2 = matches[j].match(pr_tagNameRe);
      +                if (name2 && name2[2] === name) {
      +                  if (name2[1] === '/') {
      +                    if (--depth === 0) { break end_tag_loop; }
      +                  } else {
      +                    ++depth;
      +                  }
      +                }
      +              }
      +              if (j < n) {
      +                extractedTags.push(
      +                    sourceBufLen, matches.slice(i, j + 1).join(''));
      +                i = j;
      +              } else {  // Ignore unclosed sections.
      +                extractedTags.push(sourceBufLen, match);
      +              }
      +            } else {
      +              extractedTags.push(sourceBufLen, match);
      +            }
      +          }
      +        } else {
      +          var literalText = htmlToText(match);
      +          sourceBuf.push(literalText);
      +          sourceBufLen += literalText.length;
      +        }
      +      }
      +    }
      +    return { source: sourceBuf.join(''), tags: extractedTags };
      +  }
      +
      +  /** True if the given tag contains a class attribute with the nocode class. */
      +  function isNoCodeTag(tag) {
      +    return !!tag
      +        // First canonicalize the representation of attributes
      +        .replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,
      +                 ' $1="$2$3$4"')
      +        // Then look for the attribute we want.
      +        .match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/);
      +  }
      +
      +  /**
      +   * Apply the given language handler to sourceCode and add the resulting
      +   * decorations to out.
      +   * @param {number} basePos the index of sourceCode within the chunk of source
      +   *    whose decorations are already present on out.
      +   */
      +  function appendDecorations(basePos, sourceCode, langHandler, out) {
      +    if (!sourceCode) { return; }
      +    var job = {
      +      source: sourceCode,
      +      basePos: basePos
      +    };
      +    langHandler(job);
      +    out.push.apply(out, job.decorations);
      +  }
      +
      +  /** Given triples of [style, pattern, context] returns a lexing function,
      +    * The lexing function interprets the patterns to find token boundaries and
      +    * returns a decoration list of the form
      +    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
      +    * where index_n is an index into the sourceCode, and style_n is a style
      +    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to
      +    * all characters in sourceCode[index_n-1:index_n].
      +    *
      +    * The stylePatterns is a list whose elements have the form
      +    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
      +    *
      +    * Style is a style constant like PR_PLAIN, or can be a string of the
      +    * form 'lang-FOO', where FOO is a language extension describing the
      +    * language of the portion of the token in $1 after pattern executes.
      +    * E.g., if style is 'lang-lisp', and group 1 contains the text
      +    * '(hello (world))', then that portion of the token will be passed to the
      +    * registered lisp handler for formatting.
      +    * The text before and after group 1 will be restyled using this decorator
      +    * so decorators should take care that this doesn't result in infinite
      +    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks
      +    * something like ['lang-js', /<[s]cript>(.+?)<\/script>/].  This may match
      +    * '<script>foo()<\/script>', which would cause the current decorator to
      +    * be called with '<script>' which would not match the same rule since
      +    * group 1 must not be empty, so it would be instead styled as PR_TAG by
      +    * the generic tag rule.  The handler registered for the 'js' extension would
      +    * then be called with 'foo()', and finally, the current decorator would
      +    * be called with '<\/script>' which would not match the original rule and
      +    * so the generic tag rule would identify it as a tag.
      +    *
      +    * Pattern must only match prefixes, and if it matches a prefix, then that
      +    * match is considered a token with the same style.
      +    *
      +    * Context is applied to the last non-whitespace, non-comment token
      +    * recognized.
      +    *
      +    * Shortcut is an optional string of characters, any of which, if the first
      +    * character, gurantee that this pattern and only this pattern matches.
      +    *
      +    * @param {Array} shortcutStylePatterns patterns that always start with
      +    *   a known character.  Must have a shortcut string.
      +    * @param {Array} fallthroughStylePatterns patterns that will be tried in
      +    *   order if the shortcut ones fail.  May have shortcuts.
      +    *
      +    * @return {function (Object)} a
      +    *   function that takes source code and returns a list of decorations.
      +    */
      +  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
      +    var shortcuts = {};
      +    var tokenizer;
      +    (function () {
      +      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
      +      var allRegexs = [];
      +      var regexKeys = {};
      +      for (var i = 0, n = allPatterns.length; i < n; ++i) {
      +        var patternParts = allPatterns[i];
      +        var shortcutChars = patternParts[3];
      +        if (shortcutChars) {
      +          for (var c = shortcutChars.length; --c >= 0;) {
      +            shortcuts[shortcutChars.charAt(c)] = patternParts;
      +          }
      +        }
      +        var regex = patternParts[1];
      +        var k = '' + regex;
      +        if (!regexKeys.hasOwnProperty(k)) {
      +          allRegexs.push(regex);
      +          regexKeys[k] = null;
      +        }
      +      }
      +      allRegexs.push(/[\0-\uffff]/);
      +      tokenizer = combinePrefixPatterns(allRegexs);
      +    })();
      +
      +    var nPatterns = fallthroughStylePatterns.length;
      +    var notWs = /\S/;
      +
      +    /**
      +     * Lexes job.source and produces an output array job.decorations of style
      +     * classes preceded by the position at which they start in job.source in
      +     * order.
      +     *
      +     * @param {Object} job an object like {@code
      +     *    source: {string} sourceText plain text,
      +     *    basePos: {int} position of job.source in the larger chunk of
      +     *        sourceCode.
      +     * }
      +     */
      +    var decorate = function (job) {
      +      var sourceCode = job.source, basePos = job.basePos;
      +      /** Even entries are positions in source in ascending order.  Odd enties
      +        * are style markers (e.g., PR_COMMENT) that run from that position until
      +        * the end.
      +        * @type {Array.<number|string>}
      +        */
      +      var decorations = [basePos, PR_PLAIN];
      +      var pos = 0;  // index into sourceCode
      +      var tokens = sourceCode.match(tokenizer) || [];
      +      var styleCache = {};
      +
      +      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
      +        var token = tokens[ti];
      +        var style = styleCache[token];
      +        var match = void 0;
      +
      +        var isEmbedded;
      +        if (typeof style === 'string') {
      +          isEmbedded = false;
      +        } else {
      +          var patternParts = shortcuts[token.charAt(0)];
      +          if (patternParts) {
      +            match = token.match(patternParts[1]);
      +            style = patternParts[0];
      +          } else {
      +            for (var i = 0; i < nPatterns; ++i) {
      +              patternParts = fallthroughStylePatterns[i];
      +              match = token.match(patternParts[1]);
      +              if (match) {
      +                style = patternParts[0];
      +                break;
      +              }
      +            }
      +
      +            if (!match) {  // make sure that we make progress
      +              style = PR_PLAIN;
      +            }
      +          }
      +
      +          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
      +          if (isEmbedded && !(match && typeof match[1] === 'string')) {
      +            isEmbedded = false;
      +            style = PR_SOURCE;
      +          }
      +
      +          if (!isEmbedded) { styleCache[token] = style; }
      +        }
      +
      +        var tokenStart = pos;
      +        pos += token.length;
      +
      +        if (!isEmbedded) {
      +          decorations.push(basePos + tokenStart, style);
      +        } else {  // Treat group 1 as an embedded block of source code.
      +          var embeddedSource = match[1];
      +          var embeddedSourceStart = token.indexOf(embeddedSource);
      +          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
      +          if (match[2]) {
      +            // If embeddedSource can be blank, then it would match at the
      +            // beginning which would cause us to infinitely recurse on the
      +            // entire token, so we catch the right context in match[2].
      +            embeddedSourceEnd = token.length - match[2].length;
      +            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
      +          }
      +          var lang = style.substring(5);
      +          // Decorate the left of the embedded source
      +          appendDecorations(
      +              basePos + tokenStart,
      +              token.substring(0, embeddedSourceStart),
      +              decorate, decorations);
      +          // Decorate the embedded source
      +          appendDecorations(
      +              basePos + tokenStart + embeddedSourceStart,
      +              embeddedSource,
      +              langHandlerForExtension(lang, embeddedSource),
      +              decorations);
      +          // Decorate the right of the embedded section
      +          appendDecorations(
      +              basePos + tokenStart + embeddedSourceEnd,
      +              token.substring(embeddedSourceEnd),
      +              decorate, decorations);
      +        }
      +      }
      +      job.decorations = decorations;
      +    };
      +    return decorate;
      +  }
      +
      +  /** returns a function that produces a list of decorations from source text.
      +    *
      +    * This code treats ", ', and ` as string delimiters, and \ as a string
      +    * escape.  It does not recognize perl's qq() style strings.
      +    * It has no special handling for double delimiter escapes as in basic, or
      +    * the tripled delimiters used in python, but should work on those regardless
      +    * although in those cases a single string literal may be broken up into
      +    * multiple adjacent string literals.
      +    *
      +    * It recognizes C, C++, and shell style comments.
      +    *
      +    * @param {Object} options a set of optional parameters.
      +    * @return {function (Object)} a function that examines the source code
      +    *     in the input job and builds the decoration list.
      +    */
      +  function sourceDecorator(options) {
      +    var shortcutStylePatterns = [], fallthroughStylePatterns = [];
      +    if (options['tripleQuotedStrings']) {
      +      // '''multi-line-string''', 'single-line-string', and double-quoted
      +      shortcutStylePatterns.push(
      +          [PR_STRING,  /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
      +           null, '\'"']);
      +    } else if (options['multiLineStrings']) {
      +      // 'multi-line-string', "multi-line-string"
      +      shortcutStylePatterns.push(
      +          [PR_STRING,  /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
      +           null, '\'"`']);
      +    } else {
      +      // 'single-line-string', "single-line-string"
      +      shortcutStylePatterns.push(
      +          [PR_STRING,
      +           /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
      +           null, '"\'']);
      +    }
      +    if (options['verbatimStrings']) {
      +      // verbatim-string-literal production from the C# grammar.  See issue 93.
      +      fallthroughStylePatterns.push(
      +          [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
      +    }
      +    if (options['hashComments']) {
      +      if (options['cStyleComments']) {
      +        // Stop C preprocessor declarations at an unclosed open comment
      +        shortcutStylePatterns.push(
      +            [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
      +             null, '#']);
      +        fallthroughStylePatterns.push(
      +            [PR_STRING,
      +             /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
      +             null]);
      +      } else {
      +        shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
      +      }
      +    }
      +    if (options['cStyleComments']) {
      +      fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
      +      fallthroughStylePatterns.push(
      +          [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
      +    }
      +    if (options['regexLiterals']) {
      +      var REGEX_LITERAL = (
      +          // A regular expression literal starts with a slash that is
      +          // not followed by * or / so that it is not confused with
      +          // comments.
      +          '/(?=[^/*])'
      +          // and then contains any number of raw characters,
      +          + '(?:[^/\\x5B\\x5C]'
      +          // escape sequences (\x5C),
      +          +    '|\\x5C[\\s\\S]'
      +          // or non-nesting character sets (\x5B\x5D);
      +          +    '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
      +          // finally closed by a /.
      +          + '/');
      +      fallthroughStylePatterns.push(
      +          ['lang-regex',
      +           new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
      +           ]);
      +    }
      +
      +    var keywords = options['keywords'].replace(/^\s+|\s+$/g, '');
      +    if (keywords.length) {
      +      fallthroughStylePatterns.push(
      +          [PR_KEYWORD,
      +           new RegExp('^(?:' + keywords.replace(/\s+/g, '|') + ')\\b'), null]);
      +    }
      +
      +    shortcutStylePatterns.push([PR_PLAIN,       /^\s+/, null, ' \r\n\t\xA0']);
      +    fallthroughStylePatterns.push(
      +        // TODO(mikesamuel): recognize non-latin letters and numerals in idents
      +        [PR_LITERAL,     /^@[a-z_$][a-z_$@0-9]*/i, null],
      +        [PR_TYPE,        /^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/, null],
      +        [PR_PLAIN,       /^[a-z_$][a-z_$@0-9]*/i, null],
      +        [PR_LITERAL,
      +         new RegExp(
      +             '^(?:'
      +             // A hex number
      +             + '0x[a-f0-9]+'
      +             // or an octal or decimal number,
      +             + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
      +             // possibly in scientific notation
      +             + '(?:e[+\\-]?\\d+)?'
      +             + ')'
      +             // with an optional modifier like UL for unsigned long
      +             + '[a-z]*', 'i'),
      +         null, '0123456789'],
      +        [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#]*/, null]);
      +
      +    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
      +  }
      +
      +  var decorateSource = sourceDecorator({
      +        'keywords': ALL_KEYWORDS,
      +        'hashComments': true,
      +        'cStyleComments': true,
      +        'multiLineStrings': true,
      +        'regexLiterals': true
      +      });
      +
      +  /** Breaks {@code job.source} around style boundaries in
      +    * {@code job.decorations} while re-interleaving {@code job.extractedTags},
      +    * and leaves the result in {@code job.prettyPrintedHtml}.
      +    * @param {Object} job like {
      +    *    source: {string} source as plain text,
      +    *    extractedTags: {Array.<number|string>} extractedTags chunks of raw
      +    *                   html preceded by their position in {@code job.source}
      +    *                   in order
      +    *    decorations: {Array.<number|string} an array of style classes preceded
      +    *                 by the position at which they start in job.source in order
      +    * }
      +    * @private
      +    */
      +  function recombineTagsAndDecorations(job) {
      +    var sourceText = job.source;
      +    var extractedTags = job.extractedTags;
      +    var decorations = job.decorations;
      +
      +    var html = [];
      +    // index past the last char in sourceText written to html
      +    var outputIdx = 0;
      +
      +    var openDecoration = null;
      +    var currentDecoration = null;
      +    var tagPos = 0;  // index into extractedTags
      +    var decPos = 0;  // index into decorations
      +    var tabExpander = makeTabExpander(window['PR_TAB_WIDTH']);
      +
      +    var adjacentSpaceRe = /([\r\n ]) /g;
      +    var startOrSpaceRe = /(^| ) /gm;
      +    var newlineRe = /\r\n?|\n/g;
      +    var trailingSpaceRe = /[ \r\n]$/;
      +    var lastWasSpace = true;  // the last text chunk emitted ended with a space.
      +
      +    // A helper function that is responsible for opening sections of decoration
      +    // and outputing properly escaped chunks of source
      +    function emitTextUpTo(sourceIdx) {
      +      if (sourceIdx > outputIdx) {
      +        if (openDecoration && openDecoration !== currentDecoration) {
      +          // Close the current decoration
      +          html.push('</span>');
      +          openDecoration = null;
      +        }
      +        if (!openDecoration && currentDecoration) {
      +          openDecoration = currentDecoration;
      +          html.push('<span class="', openDecoration, '">');
      +        }
      +        // This interacts badly with some wikis which introduces paragraph tags
      +        // into pre blocks for some strange reason.
      +        // It's necessary for IE though which seems to lose the preformattedness
      +        // of <pre> tags when their innerHTML is assigned.
      +        // http://stud3.tuwien.ac.at/~e0226430/innerHtmlQuirk.html
      +        // and it serves to undo the conversion of <br>s to newlines done in
      +        // chunkify.
      +        var htmlChunk = textToHtml(
      +            tabExpander(sourceText.substring(outputIdx, sourceIdx)))
      +            .replace(lastWasSpace
      +                     ? startOrSpaceRe
      +                     : adjacentSpaceRe, '$1&nbsp;');
      +        // Keep track of whether we need to escape space at the beginning of the
      +        // next chunk.
      +        lastWasSpace = trailingSpaceRe.test(htmlChunk);
      +        // IE collapses multiple adjacient <br>s into 1 line break.
      +        // Prefix every <br> with '&nbsp;' can prevent such IE's behavior.
      +        var lineBreakHtml = window['_pr_isIE6']() ? '&nbsp;<br />' : '<br />';
      +        html.push(htmlChunk.replace(newlineRe, lineBreakHtml));
      +        outputIdx = sourceIdx;
      +      }
      +    }
      +
      +    while (true) {
      +      // Determine if we're going to consume a tag this time around.  Otherwise
      +      // we consume a decoration or exit.
      +      var outputTag;
      +      if (tagPos < extractedTags.length) {
      +        if (decPos < decorations.length) {
      +          // Pick one giving preference to extractedTags since we shouldn't open
      +          // a new style that we're going to have to immediately close in order
      +          // to output a tag.
      +          outputTag = extractedTags[tagPos] <= decorations[decPos];
      +        } else {
      +          outputTag = true;
      +        }
      +      } else {
      +        outputTag = false;
      +      }
      +      // Consume either a decoration or a tag or exit.
      +      if (outputTag) {
      +        emitTextUpTo(extractedTags[tagPos]);
      +        if (openDecoration) {
      +          // Close the current decoration
      +          html.push('</span>');
      +          openDecoration = null;
      +        }
      +        html.push(extractedTags[tagPos + 1]);
      +        tagPos += 2;
      +      } else if (decPos < decorations.length) {
      +        emitTextUpTo(decorations[decPos]);
      +        currentDecoration = decorations[decPos + 1];
      +        decPos += 2;
      +      } else {
      +        break;
      +      }
      +    }
      +    emitTextUpTo(sourceText.length);
      +    if (openDecoration) {
      +      html.push('</span>');
      +    }
      +    job.prettyPrintedHtml = html.join('');
      +  }
      +
      +  /** Maps language-specific file extensions to handlers. */
      +  var langHandlerRegistry = {};
      +  /** Register a language handler for the given file extensions.
      +    * @param {function (Object)} handler a function from source code to a list
      +    *      of decorations.  Takes a single argument job which describes the
      +    *      state of the computation.   The single parameter has the form
      +    *      {@code {
      +    *        source: {string} as plain text.
      +    *        decorations: {Array.<number|string>} an array of style classes
      +    *                     preceded by the position at which they start in
      +    *                     job.source in order.
      +    *                     The language handler should assigned this field.
      +    *        basePos: {int} the position of source in the larger source chunk.
      +    *                 All positions in the output decorations array are relative
      +    *                 to the larger source chunk.
      +    *      } }
      +    * @param {Array.<string>} fileExtensions
      +    */
      +  function registerLangHandler(handler, fileExtensions) {
      +    for (var i = fileExtensions.length; --i >= 0;) {
      +      var ext = fileExtensions[i];
      +      if (!langHandlerRegistry.hasOwnProperty(ext)) {
      +        langHandlerRegistry[ext] = handler;
      +      } else if ('console' in window) {
      +        console.warn('cannot override language handler %s', ext);
      +      }
      +    }
      +  }
      +  function langHandlerForExtension(extension, source) {
      +    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
      +      // Treat it as markup if the first non whitespace character is a < and
      +      // the last non-whitespace character is a >.
      +      extension = /^\s*</.test(source)
      +          ? 'default-markup'
      +          : 'default-code';
      +    }
      +    return langHandlerRegistry[extension];
      +  }
      +  registerLangHandler(decorateSource, ['default-code']);
      +  registerLangHandler(
      +      createSimpleLexer(
      +          [],
      +          [
      +           [PR_PLAIN,       /^[^<?]+/],
      +           [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
      +           [PR_COMMENT,     /^<\!--[\s\S]*?(?:-\->|$)/],
      +           // Unescaped content in an unknown language
      +           ['lang-',        /^<\?([\s\S]+?)(?:\?>|$)/],
      +           ['lang-',        /^<%([\s\S]+?)(?:%>|$)/],
      +           [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
      +           ['lang-',        /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
      +           // Unescaped content in javascript.  (Or possibly vbscript).
      +           ['lang-js',      /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
      +           // Contains unescaped stylesheet content
      +           ['lang-css',     /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
      +           ['lang-in.tag',  /^(<\/?[a-z][^<>]*>)/i]
      +          ]),
      +      ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
      +  registerLangHandler(
      +      createSimpleLexer(
      +          [
      +           [PR_PLAIN,        /^[\s]+/, null, ' \t\r\n'],
      +           [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
      +           ],
      +          [
      +           [PR_TAG,          /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
      +           [PR_ATTRIB_NAME,  /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
      +           ['lang-uq.val',   /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
      +           [PR_PUNCTUATION,  /^[=<>\/]+/],
      +           ['lang-js',       /^on\w+\s*=\s*\"([^\"]+)\"/i],
      +           ['lang-js',       /^on\w+\s*=\s*\'([^\']+)\'/i],
      +           ['lang-js',       /^on\w+\s*=\s*([^\"\'>\s]+)/i],
      +           ['lang-css',      /^style\s*=\s*\"([^\"]+)\"/i],
      +           ['lang-css',      /^style\s*=\s*\'([^\']+)\'/i],
      +           ['lang-css',      /^style\s*=\s*([^\"\'>\s]+)/i]
      +           ]),
      +      ['in.tag']);
      +  registerLangHandler(
      +      createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
      +  registerLangHandler(sourceDecorator({
      +          'keywords': CPP_KEYWORDS,
      +          'hashComments': true,
      +          'cStyleComments': true
      +        }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
      +  registerLangHandler(sourceDecorator({
      +          'keywords': 'null true false'
      +        }), ['json']);
      +  registerLangHandler(sourceDecorator({
      +          'keywords': CSHARP_KEYWORDS,
      +          'hashComments': true,
      +          'cStyleComments': true,
      +          'verbatimStrings': true
      +        }), ['cs']);
      +  registerLangHandler(sourceDecorator({
      +          'keywords': JAVA_KEYWORDS,
      +          'cStyleComments': true
      +        }), ['java']);
      +  registerLangHandler(sourceDecorator({
      +          'keywords': SH_KEYWORDS,
      +          'hashComments': true,
      +          'multiLineStrings': true
      +        }), ['bsh', 'csh', 'sh']);
      +  registerLangHandler(sourceDecorator({
      +          'keywords': PYTHON_KEYWORDS,
      +          'hashComments': true,
      +          'multiLineStrings': true,
      +          'tripleQuotedStrings': true
      +        }), ['cv', 'py']);
      +  registerLangHandler(sourceDecorator({
      +          'keywords': PERL_KEYWORDS,
      +          'hashComments': true,
      +          'multiLineStrings': true,
      +          'regexLiterals': true
      +        }), ['perl', 'pl', 'pm']);
      +  registerLangHandler(sourceDecorator({
      +          'keywords': RUBY_KEYWORDS,
      +          'hashComments': true,
      +          'multiLineStrings': true,
      +          'regexLiterals': true
      +        }), ['rb']);
      +  registerLangHandler(sourceDecorator({
      +          'keywords': JSCRIPT_KEYWORDS,
      +          'cStyleComments': true,
      +          'regexLiterals': true
      +        }), ['js']);
      +  registerLangHandler(
      +      createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
      +
      +  function applyDecorator(job) {
      +    var sourceCodeHtml = job.sourceCodeHtml;
      +    var opt_langExtension = job.langExtension;
      +
      +    // Prepopulate output in case processing fails with an exception.
      +    job.prettyPrintedHtml = sourceCodeHtml;
      +
      +    try {
      +      // Extract tags, and convert the source code to plain text.
      +      var sourceAndExtractedTags = extractTags(sourceCodeHtml);
      +      /** Plain text. @type {string} */
      +      var source = sourceAndExtractedTags.source;
      +      job.source = source;
      +      job.basePos = 0;
      +
      +      /** Even entries are positions in source in ascending order.  Odd entries
      +        * are tags that were extracted at that position.
      +        * @type {Array.<number|string>}
      +        */
      +      job.extractedTags = sourceAndExtractedTags.tags;
      +
      +      // Apply the appropriate language handler
      +      langHandlerForExtension(opt_langExtension, source)(job);
      +      // Integrate the decorations and tags back into the source code to produce
      +      // a decorated html string which is left in job.prettyPrintedHtml.
      +      recombineTagsAndDecorations(job);
      +    } catch (e) {
      +      if ('console' in window) {
      +        console.log(e);
      +        console.trace();
      +      }
      +    }
      +  }
      +
      +  function prettyPrintOne(sourceCodeHtml, opt_langExtension) {
      +    var job = {
      +      sourceCodeHtml: sourceCodeHtml,
      +      langExtension: opt_langExtension
      +    };
      +    applyDecorator(job);
      +    return job.prettyPrintedHtml;
      +  }
      +
      +  function prettyPrint(opt_whenDone) {
      +    var isIE678 = window['_pr_isIE6']();
      +    var ieNewline = isIE678 === 6 ? '\r\n' : '\r';
      +    // See bug 71 and http://stackoverflow.com/questions/136443/why-doesnt-ie7-
      +
      +    // fetch a list of nodes to rewrite
      +    var codeSegments = [
      +        document.getElementsByTagName('pre'),
      +        document.getElementsByTagName('code'),
      +        document.getElementsByTagName('xmp') ];
      +    var elements = [];
      +    for (var i = 0; i < codeSegments.length; ++i) {
      +      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
      +        elements.push(codeSegments[i][j]);
      +      }
      +    }
      +    codeSegments = null;
      +
      +    var clock = Date;
      +    if (!clock['now']) {
      +      clock = { 'now': function () { return (new Date).getTime(); } };
      +    }
      +
      +    // The loop is broken into a series of continuations to make sure that we
      +    // don't make the browser unresponsive when rewriting a large page.
      +    var k = 0;
      +    var prettyPrintingJob;
      +
      +    function doWork() {
      +      var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
      +                     clock.now() + 250 /* ms */ :
      +                     Infinity);
      +      for (; k < elements.length && clock.now() < endTime; k++) {
      +        var cs = elements[k];
      +        if (cs.className && cs.className.indexOf('prettyprint') >= 0) {
      +          // If the classes includes a language extensions, use it.
      +          // Language extensions can be specified like
      +          //     <pre class="prettyprint lang-cpp">
      +          // the language extension "cpp" is used to find a language handler as
      +          // passed to PR_registerLangHandler.
      +          var langExtension = cs.className.match(/\blang-(\w+)\b/);
      +          if (langExtension) { langExtension = langExtension[1]; }
      +
      +          // make sure this is not nested in an already prettified element
      +          var nested = false;
      +          for (var p = cs.parentNode; p; p = p.parentNode) {
      +            if ((p.tagName === 'pre' || p.tagName === 'code' ||
      +                 p.tagName === 'xmp') &&
      +                p.className && p.className.indexOf('prettyprint') >= 0) {
      +              nested = true;
      +              break;
      +            }
      +          }
      +          if (!nested) {
      +            // fetch the content as a snippet of properly escaped HTML.
      +            // Firefox adds newlines at the end.
      +            var content = getInnerHtml(cs);
      +            content = content.replace(/(?:\r\n?|\n)$/, '');
      +
      +            // do the pretty printing
      +            prettyPrintingJob = {
      +              sourceCodeHtml: content,
      +              langExtension: langExtension,
      +              sourceNode: cs
      +            };
      +            applyDecorator(prettyPrintingJob);
      +            replaceWithPrettyPrintedHtml();
      +          }
      +        }
      +      }
      +      if (k < elements.length) {
      +        // finish up in a continuation
      +        setTimeout(doWork, 250);
      +      } else if (opt_whenDone) {
      +        opt_whenDone();
      +      }
      +    }
      +
      +    function replaceWithPrettyPrintedHtml() {
      +      var newContent = prettyPrintingJob.prettyPrintedHtml;
      +      if (!newContent) { return; }
      +      var cs = prettyPrintingJob.sourceNode;
      +
      +      // push the prettified html back into the tag.
      +      if (!isRawContent(cs)) {
      +        // just replace the old html with the new
      +        cs.innerHTML = newContent;
      +      } else {
      +        // we need to change the tag to a <pre> since <xmp>s do not allow
      +        // embedded tags such as the span tags used to attach styles to
      +        // sections of source code.
      +        var pre = document.createElement('PRE');
      +        for (var i = 0; i < cs.attributes.length; ++i) {
      +          var a = cs.attributes[i];
      +          if (a.specified) {
      +            var aname = a.name.toLowerCase();
      +            if (aname === 'class') {
      +              pre.className = a.value;  // For IE 6
      +            } else {
      +              pre.setAttribute(a.name, a.value);
      +            }
      +          }
      +        }
      +        pre.innerHTML = newContent;
      +
      +        // remove the old
      +        cs.parentNode.replaceChild(pre, cs);
      +        cs = pre;
      +      }
      +
      +      // Replace <br>s with line-feeds so that copying and pasting works
      +      // on IE 6.
      +      // Doing this on other browsers breaks lots of stuff since \r\n is
      +      // treated as two newlines on Firefox, and doing this also slows
      +      // down rendering.
      +      if (isIE678 && cs.tagName === 'PRE') {
      +        var lineBreaks = cs.getElementsByTagName('br');
      +        for (var j = lineBreaks.length; --j >= 0;) {
      +          var lineBreak = lineBreaks[j];
      +          lineBreak.parentNode.replaceChild(
      +              document.createTextNode(ieNewline), lineBreak);
      +        }
      +      }
      +    }
      +
      +    doWork();
      +  }
      +
      +  window['PR_normalizedHtml'] = normalizedHtml;
      +  window['prettyPrintOne'] = prettyPrintOne;
      +  window['prettyPrint'] = prettyPrint;
      +  window['PR'] = {
      +        'combinePrefixPatterns': combinePrefixPatterns,
      +        'createSimpleLexer': createSimpleLexer,
      +        'registerLangHandler': registerLangHandler,
      +        'sourceDecorator': sourceDecorator,
      +        'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
      +        'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
      +        'PR_COMMENT': PR_COMMENT,
      +        'PR_DECLARATION': PR_DECLARATION,
      +        'PR_KEYWORD': PR_KEYWORD,
      +        'PR_LITERAL': PR_LITERAL,
      +        'PR_NOCODE': PR_NOCODE,
      +        'PR_PLAIN': PR_PLAIN,
      +        'PR_PUNCTUATION': PR_PUNCTUATION,
      +        'PR_SOURCE': PR_SOURCE,
      +        'PR_STRING': PR_STRING,
      +        'PR_TAG': PR_TAG,
      +        'PR_TYPE': PR_TYPE
      +      };
      +})();
      diff --git a/usr/plugins/GoogleCodeSVN/Action.php b/usr/plugins/GoogleCodeSVN/Action.php
      new file mode 100644
      index 00000000..37d7eadf
      --- /dev/null
      +++ b/usr/plugins/GoogleCodeSVN/Action.php
      @@ -0,0 +1,157 @@
      +<?php
      +
      +class GoogleCodeSVN_Action extends Widget_Abstract_Contents implements Widget_Interface_Do
      +{
      +    private function parseFileName($fileName, $repositoryPath)
      +    {
      +        $result = array(
      +            'do'            =>  'publish',
      +            'allowComment'  =>  $this->options->defaultAllowComment,
      +            'allowPing'     =>  $this->options->defaultAllowPing,
      +            'allowFeed'     =>  $this->options->defaultAllowFeed
      +        );
      +    
      +        $basePath = Helper::options()->plugin('GoogleCodeSVN')->basePath;
      +        $basePath = '/' . trim($basePath, '/') . '/';
      +        
      +        if (0 !== strpos($fileName, $basePath)) {
      +            return false;
      +        }
      +        
      +        $path = substr($fileName, strlen($basePath));
      +        $part = explode('/', $path);
      +        
      +        if (2 != count($part)) {
      +            return false;
      +        }
      +        
      +        list($categoryName, $baseName) = $part;
      +        list($slug) = explode('.', $baseName);
      +        
      +        $result['slug'] = $slug;
      +        
      +        $post = $this->db->fetchRow($this->db->select()
      +        ->from('table.contents')->where('slug = ?', $slug)->limit(1));
      +        
      +        if (!empty($post)) {
      +            if ('post' != $post['type']) {
      +                return false;
      +            } else {
      +                $result['cid'] = $post['cid'];
      +            }
      +        }
      +        
      +        /** 将目录作为分类缩略名处理 */
      +        $categorySlug = Typecho_Common::slugName($categoryName);
      +        
      +        $category = $this->db->fetchRow($this->db->select()
      +        ->from('table.metas')->where('slug = ? OR name = ?', $categorySlug, $categoryName)
      +        ->where('type = ?', 'category')->limit(1));
      +        
      +        /** 如果分类不存在则直接重建分类 */
      +        if (empty($category)) {
      +            $input['name'] = $categoryName;
      +            $input['slug'] = $categorySlug;
      +            $input['type'] = 'category';
      +            $input['description'] = $categoryName;
      +            $input['do'] = 'insert';
      +            
      +            $this->widget('Widget_Metas_Category_Edit', NULL, $input, false)->action();
      +            $result['category'] = array($this->widget('Widget_Notice')->getHighlightId());
      +        } else {
      +            $result['category'] = array($category['mid']);
      +        }
      +        
      +        $url = rtrim($repositoryPath, '/') . $fileName;
      +        
      +        $client = Typecho_Http_Client::get('Curl', 'Socket');
      +        if (false == $client) {
      +            return false;
      +        }
      +        
      +        $client->send($url);
      +        $result['text'] = '';
      +        $result['title'] = '';
      +        
      +        if (200 == $client->getResponseStatus() || 304 == $client->getResponseStatus()) {
      +            $response = trim($client->getResponseBody());
      +            
      +            list($title, $text) = explode("\n", $response, 2);
      +            $result['title'] = $title;
      +            $result['text'] = $text;
      +        }
      +        
      +        return $result;
      +    }
      +
      +    public function action()
      +    {
      +        /** 验证合法性 */
      +        if (!isset($_SERVER['HTTP_GOOGLE_CODE_PROJECT_HOSTING_HOOK_HMAC'])) {
      +            return;
      +        }
      +    
      +        $googleSecretInfo = $_SERVER['HTTP_GOOGLE_CODE_PROJECT_HOSTING_HOOK_HMAC'];
      +        $revisionData = file_get_contents('php://input');
      +        
      +        if (empty($revisionData)) {
      +            return;
      +        }
      +        
      +        $secretVerify = hash_hmac("md5", $revisionData, Helper::options()->plugin('GoogleCodeSVN')->secretKey);
      +        
      +        if ($googleSecretInfo != $secretVerify) {
      +            return;
      +        }
      +        
      +        $data = Typecho_Json::decode($revisionData);
      +        
      +        if (!$data) {
      +            return;
      +        }
      +        
      +        /** 登录用户 */
      +        $master = $this->db->fetchRow($this->db->select()->from('table.users')
      +            ->where('group = ?', 'administrator')
      +            ->order('uid', Typecho_Db::SORT_ASC)
      +            ->limit(1));
      +        
      +        if (empty($master)) {
      +            return false;
      +        } else if (!$this->user->simpleLogin($master['uid'])) {
      +            return false;
      +        }
      +        
      +        if (isset($data->revisions) && is_array($data->revisions)) {
      +            foreach ($data->revisions as $revision) {
      +                if (!empty($revision->added)) {
      +                    foreach ($revision->added as $file) {
      +                        $input = $this->parseFileName($file, $data->repository_path);
      +                        if ($input) {
      +                            $this->widget('Widget_Contents_Post_Edit', NULL, $input, false)->action();
      +                        }
      +                    }
      +                }
      +                
      +                if (!empty($revision->modified)) {
      +                    foreach ($revision->modified as $file) {
      +                        $input = $this->parseFileName($file, $data->repository_path);
      +                        if ($input) {
      +                            $this->widget('Widget_Contents_Post_Edit', NULL, $input, false)->action();
      +                        }
      +                    }
      +                }
      +                
      +                if (!empty($revision->removed)) {
      +                    foreach ($revision->removed as $file) {
      +                        $input = $this->parseFileName($file, $data->repository_path);
      +                        if ($input && isset($input['cid'])) {
      +                            $postId = $input['cid'];
      +                            $this->widget('Widget_Contents_Post_Edit', NULL, "cid={$postId}", false)->deletePost();
      +                        }
      +                    }
      +                }
      +            }
      +        }
      +    }
      +}
      diff --git a/usr/plugins/GoogleCodeSVN/Plugin.php b/usr/plugins/GoogleCodeSVN/Plugin.php
      new file mode 100644
      index 00000000..1b7514a1
      --- /dev/null
      +++ b/usr/plugins/GoogleCodeSVN/Plugin.php
      @@ -0,0 +1,69 @@
      +<?php
      +/**
      + * google code svn 同步文章
      + * 
      + * @package Google Code SVN Transmit
      + * @author qining
      + * @version 1.0.0
      + * @dependence 10.6.24-*
      + * @link http://typecho.org
      + */
      +class GoogleCodeSVN_Plugin implements Typecho_Plugin_Interface
      +{
      +    /**
      +     * 激活插件方法,如果激活失败,直接抛出异常
      +     * 
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function activate()
      +    {
      +        if (false == Typecho_Http_Client::get()) {
      +            throw new Typecho_Plugin_Exception(_t('对不起, 您的主机不支持 php-curl 扩展而且没有打开 allow_url_fopen 功能, 无法正常使用此功能'));
      +        }
      +    
      +        Helper::addAction('googlecode-svn', 'GoogleCodeSVN_Action');
      +        return _t('请在插件设置里设置 Google Code 的SVN参数') . $error;
      +    }
      +    
      +    /**
      +     * 禁用插件方法,如果禁用失败,直接抛出异常
      +     * 
      +     * @static
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function deactivate()
      +    {
      +        Helper::removeAction('googlecode-svn');
      +    }
      +    
      +    /**
      +     * 获取插件配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form 配置面板
      +     * @return void
      +     */
      +    public static function config(Typecho_Widget_Helper_Form $form)
      +    {
      +        $secretKey = new Typecho_Widget_Helper_Form_Element_Text('secretKey', NULL, NULL,
      +        _t('安全密钥'), _t('请在你的Google Code项目的管理员面板的source区的最下方找到此项'));
      +        $form->addInput($secretKey->addRule('required', _t('必须填写安全密钥')));
      +        
      +        $basePath = new Typecho_Widget_Helper_Form_Element_Text('basePath', NULL, '/trunk',
      +        _t('SVN目录'), _t('填写需要监控的SVN目录'));
      +        $form->addInput($basePath->addRule('required', _t('必须填写数据库用户名')));
      +    }
      +    
      +    /**
      +     * 个人用户的配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form
      +     * @return void
      +     */
      +    public static function personalConfig(Typecho_Widget_Helper_Form $form){}
      +}
      diff --git a/usr/plugins/HelloWorld/Plugin.php b/usr/plugins/HelloWorld/Plugin.php
      new file mode 100644
      index 00000000..f375588e
      --- /dev/null
      +++ b/usr/plugins/HelloWorld/Plugin.php
      @@ -0,0 +1,67 @@
      +<?php
      +/**
      + * Hello World
      + * 
      + * @package HelloWorld 
      + * @author qining
      + * @version 1.0.0
      + * @link http://typecho.org
      + */
      +class HelloWorld_Plugin implements Typecho_Plugin_Interface
      +{
      +    /**
      +     * 激活插件方法,如果激活失败,直接抛出异常
      +     * 
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function activate()
      +    {
      +        Typecho_Plugin::factory('admin/menu.php')->navBar = array('HelloWorld_Plugin', 'render');
      +    }
      +    
      +    /**
      +     * 禁用插件方法,如果禁用失败,直接抛出异常
      +     * 
      +     * @static
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function deactivate(){}
      +    
      +    /**
      +     * 获取插件配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form 配置面板
      +     * @return void
      +     */
      +    public static function config(Typecho_Widget_Helper_Form $form)
      +    {
      +        /** 分类名称 */
      +        $name = new Typecho_Widget_Helper_Form_Element_Text('word', NULL, 'Hello World', _t('说点什么'));
      +        $form->addInput($name);
      +    }
      +    
      +    /**
      +     * 个人用户的配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form
      +     * @return void
      +     */
      +    public static function personalConfig(Typecho_Widget_Helper_Form $form){}
      +    
      +    /**
      +     * 插件实现方法
      +     * 
      +     * @access public
      +     * @return void
      +     */
      +    public static function render()
      +    {
      +        echo '<span class="message success">' . Typecho_Widget::widget('Widget_Options')->plugin('HelloWorld')->word . '</span>';
      +    }
      +}
      diff --git a/usr/plugins/MagikeToTypecho/Action.php b/usr/plugins/MagikeToTypecho/Action.php
      new file mode 100644
      index 00000000..ee9fc62d
      --- /dev/null
      +++ b/usr/plugins/MagikeToTypecho/Action.php
      @@ -0,0 +1,214 @@
      +<?php
      +
      +class MagikeToTypecho_Action extends Typecho_Widget implements Widget_Interface_Do
      +{
      +    public function doImport()
      +    {
      +        $options = $this->widget('Widget_Options');
      +        $dbConfig = $options->plugin('MagikeToTypecho');
      +
      +        /** 初始化一个db */
      +        if (Typecho_Db_Adapter_Mysql::isAvailable()) {
      +            $db = new Typecho_Db('Mysql', $dbConfig->prefix);
      +        } else {
      +            $db = new Typecho_Db('Pdo_Mysql', $dbConfig->prefix);
      +        }
      +        
      +        /** 只读即可 */
      +        $db->addServer(array (
      +          'host' => $dbConfig->host,
      +          'user' => $dbConfig->user,
      +          'password' => $dbConfig->password,
      +          'charset' => 'utf8',
      +          'port' => $dbConfig->port,
      +          'database' => $dbConfig->database
      +        ), Typecho_Db::READ);
      +        
      +        /** 删除当前内容 */
      +        $masterDb = Typecho_Db::get();
      +        $this->widget('Widget_Abstract_Contents')->to($contents)->delete($masterDb->sql()->where('1 = 1'));
      +        $this->widget('Widget_Abstract_Comments')->to($comments)->delete($masterDb->sql()->where('1 = 1'));
      +        $this->widget('Widget_Abstract_Metas')->to($metas)->delete($masterDb->sql()->where('1 = 1'));
      +        $this->widget('Widget_Contents_Post_Edit')->to($edit);
      +        $this->widget('Widget_Abstract_Users')->to($users)->delete($masterDb->sql()->where('uid <> 1'));
      +        $masterDb->query($masterDb->delete('table.relationships')->where('1 = 1'));
      +        $userId = $this->widget('Widget_User')->uid;
      +        
      +        /** 转换用户 */
      +        $rows = $db->fetchAll($db->select()->from('table.users'));
      +        foreach ($rows as $row) {
      +            if (1 != $row['user_id']) {
      +                $users->insert(array(
      +                    'uid'       =>  $row['user_id'],
      +                    'name'      =>  $row['user_name'],
      +                    'password'  =>  $row['user_password'],
      +                    'mail'      =>  $row['user_mail'],
      +                    'url'       =>  $row['user_url'],
      +                    'screenName'=>  $row['user_nick'],
      +                    'created'   => strtotime($row['user_register']),
      +                    'group'     => array_search($row['user_group'], $this->widget('Widget_User')->groups)
      +                ));
      +            }
      +        }
      +        
      +        /** 转换全局变量 */
      +        $rows = $db->fetchAll($db->select()->from('table.statics'));
      +        $static = array();
      +        foreach ($rows as $row) {
      +            $static[$row['static_name']] = $row['static_value'];
      +        }
      +        
      +        /** 转换文件 */
      +        $files = $db->fetchAll($db->select()->from('table.files'));
      +        if (!is_dir(__TYPECHO_ROOT_DIR__ . '/usr/uploads/')) {
      +            mkdir(__TYPECHO_ROOT_DIR__ . '/usr/uploads/', 0766);
      +        }
      +        
      +        $pattern = array();
      +        $replace = array();
      +        foreach ($files as $file) {
      +            $path = __TYPECHO_ROOT_DIR__ . '/data/upload/' . substr($file['file_guid'], 0, 2) . '/' .
      +            substr($file['file_guid'], 2, 2) . '/' . $file['file_guid'];
      +            
      +            if (file_exists($path)) {
      +                $file['file_time'] = empty($file['file_time']) ? $options->gmtTime : $file['file_time'];
      +                $year = idate('Y', $file['file_time']);
      +                $month = idate('m', $file['file_time']);
      +                $day = idate('d', $file['file_time']);
      +                
      +                if (!is_dir(__TYPECHO_ROOT_DIR__ . "/usr/uploads/{$year}")) {
      +                    mkdir(__TYPECHO_ROOT_DIR__ . "/usr/uploads/{$year}", 0766);
      +                }
      +                
      +                if (!is_dir(__TYPECHO_ROOT_DIR__ . "/usr/uploads/{$year}/{$month}")) {
      +                    mkdir(__TYPECHO_ROOT_DIR__ . "/usr/uploads/{$year}/{$month}", 0766);
      +                }
      +                
      +                if (!is_dir(__TYPECHO_ROOT_DIR__ . "/usr/uploads/{$year}/{$month}/{$day}")) {
      +                    mkdir(__TYPECHO_ROOT_DIR__ . "/usr/uploads/{$year}/{$month}/{$day}", 0766);
      +                }
      +                
      +                $parts = explode('.', $file['file_name']);
      +                $ext = array_pop($parts);
      +                copy($path, __TYPECHO_ROOT_DIR__ . "/usr/uploads/{$year}/{$month}/{$day}/{$file['file_id']}.{$ext}");
      +                
      +                $new = Typecho_Common::url("/usr/uploads/{$year}/{$month}/{$day}/{$file['file_id']}.{$ext}", $options->siteUrl);
      +                $old = Typecho_Common::url("/res/{$file['file_id']}/{$file['file_name']}", $static['siteurl'] . '/index.php');
      +                $pattern[] = '/' . str_replace('\/index\.php', '(\/index\.php)?', preg_quote($old, '/')) . '/is';
      +                $replace[] = $new;
      +            }
      +        }
      +        
      +        /** 转换评论 */
      +        $i = 1;
      +        
      +        while (true) {
      +            $result = $db->query($db->select()->from('table.comments')
      +            ->order('comment_id', Typecho_Db::SORT_ASC)->page($i, 100));
      +            $j = 0;
      +            
      +            while ($row = $db->fetchRow($result)) {
      +                $comments->insert(array(
      +                    'coid'      =>  $row['comment_id'],
      +                    'cid'       =>  $row['post_id'],
      +                    'created'   =>  $row['comment_date'],
      +                    'author'    =>  $row['comment_user'],
      +                    'authorId'  =>  $row['user_id'],
      +                    'ownerId'   =>  $userId,
      +                    'mail'      =>  $row['comment_email'],
      +                    'url'       =>  $row['comment_homepage'],
      +                    'ip'        =>  $row['comment_ip'],
      +                    'agent'     =>  $row['comment_agent'],
      +                    'text'      =>  $row['comment_text'],
      +                    'type'      =>  $row['comment_type'],
      +                    'status'    =>  $row['comment_publish'],
      +                    'parent'    =>  $row['comment_parent']
      +                ));
      +                $j ++;
      +                unset($row);
      +            }
      +            
      +            if ($j < 100) {
      +                break;
      +            }
      +            
      +            $i ++;
      +            unset($result);
      +        }
      +        
      +        /** 转换分类 */
      +        $cats = $db->fetchAll($db->select()->from('table.categories'));
      +        foreach ($cats as $cat) {
      +            $metas->insert(array(
      +                'mid'           =>  $cat['category_id'],
      +                'name'          =>  $cat['category_name'],
      +                'slug'          =>  $cat['category_postname'],
      +                'description'   =>  $cat['category_describe'],
      +                'count'         =>  0,
      +                'type'          =>  'category',
      +                'order'         =>  $cat['category_sort']
      +            ));
      +        }
      +        
      +        /** 转换内容 */
      +        $i = 1;
      +        
      +        while (true) {
      +            $result = $db->query($db->select()->from('table.posts')
      +            ->order('post_id', Typecho_Db::SORT_ASC)->page($i, 100));
      +            $j = 0;
      +            
      +            while ($row = $db->fetchRow($result)) {
      +                $row['post_content'] = preg_replace(
      +                array("/\s*<p>/is", "/\s*<\/p>\s*/is", "/\s*<br\s*\/>\s*/is",
      +                "/\s*<(div|blockquote|pre|table|ol|ul)>/is", "/<\/(div|blockquote|pre|table|ol|ul)>\s*/is"),
      +                array('', "\n\n", "\n", "\n\n<\\1>", "</\\1>\n\n"), 
      +                $row['post_content']);
      +            
      +                $contents->insert(array(
      +                    'cid'           =>  $row['post_id'],
      +                    'title'         =>  $row['post_title'],
      +                    'slug'          =>  $row['post_name'],
      +                    'created'       =>  $row['post_time'],
      +                    'modified'      =>  $row['post_edit_time'],
      +                    'text'          =>  preg_replace($pattern, $replace, $row['post_content']),
      +                    'order'         =>  0,
      +                    'authorId'      =>  $row['user_id'],
      +                    'template'      =>  NULL,
      +                    'type'          =>  $row['post_is_page'] ? 'page' : 'post',
      +                    'status'        =>  $row['post_is_draft'] ? 'draft' : 'publish',
      +                    'password'      =>  $row['post_password'],
      +                    'commentsNum'   =>  $row['post_comment_num'],
      +                    'allowComment'  =>  $row['post_allow_comment'],
      +                    'allowFeed'     =>  $row['post_allow_feed'],
      +                    'allowPing'     =>  $row['post_allow_ping']
      +                ));
      +                
      +                /** 插入分类关系 */
      +                $edit->setCategories($row['post_id'], array($row['category_id']), !$row['post_is_draft']);
      +                
      +                /** 设置标签 */
      +                $edit->setTags($row['post_id'], $row['post_tags'], !$row['post_is_draft']);
      +                
      +                $j ++;
      +                unset($row);
      +            }
      +            
      +            if ($j < 100) {
      +                break;
      +            }
      +            
      +            $i ++;
      +            unset($result);
      +        }
      +        
      +        $this->widget('Widget_Notice')->set(_t("数据已经转换完成"), NULL, 'success');
      +        $this->response->goBack();
      +    }
      +
      +    public function action()
      +    {
      +        $this->widget('Widget_User')->pass('administrator');
      +        $this->on($this->request->isPost())->doImport();
      +    }
      +}
      diff --git a/usr/plugins/MagikeToTypecho/Plugin.php b/usr/plugins/MagikeToTypecho/Plugin.php
      new file mode 100644
      index 00000000..848f106f
      --- /dev/null
      +++ b/usr/plugins/MagikeToTypecho/Plugin.php
      @@ -0,0 +1,94 @@
      +<?php
      +/**
      + * 将 Magike 数据库中的数据转换为 Typecho
      + * 
      + * @package Magike to Typecho
      + * @author qining
      + * @version 1.0.0
      + * @link http://typecho.org
      + */
      +class MagikeToTypecho_Plugin implements Typecho_Plugin_Interface
      +{
      +    /**
      +     * 激活插件方法,如果激活失败,直接抛出异常
      +     * 
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function activate()
      +    {
      +        if (!Typecho_Db_Adapter_Mysql::isAvailable() && !Typecho_Db_Adapter_Pdo_Mysql::isAvailable()) {
      +            throw new Typecho_Plugin_Exception(_t('没有找到任何可用的 Mysql 适配器'));
      +        }
      +        
      +        $error = NULL;
      +        if ((!is_dir(__TYPECHO_ROOT_DIR__ . '/usr/uploads/') || !is_writeable(__TYPECHO_ROOT_DIR__ . '/usr/uploads/'))
      +        && !is_writeable(__TYPECHO_ROOT_DIR__ . '/usr/')) {
      +            $error = '<br /><strong>' . _t('%s 目录不可写, 可能会导致附件转换不成功', __TYPECHO_ROOT_DIR__ . '/usr/uploads/') . '</strong>';
      +        }
      +    
      +        Helper::addPanel(1, 'MagikeToTypecho/panel.php', _t('从Magike导入数据'), _t('从Magike导入数据'), 'administrator');
      +        Helper::addAction('magike-to-typecho', 'MagikeToTypecho_Action');
      +        return _t('请在插件设置里设置 Magike 所在的数据库参数') . $error;
      +    }
      +    
      +    /**
      +     * 禁用插件方法,如果禁用失败,直接抛出异常
      +     * 
      +     * @static
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function deactivate()
      +    {
      +        Helper::removeAction('magike-to-typecho');
      +        Helper::removePanel(1, 'MagikeToTypecho/panel.php');
      +    }
      +    
      +    /**
      +     * 获取插件配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form 配置面板
      +     * @return void
      +     */
      +    public static function config(Typecho_Widget_Helper_Form $form)
      +    {
      +        $host = new Typecho_Widget_Helper_Form_Element_Text('host', NULL, 'localhost',
      +        _t('数据库地址'), _t('请填写 Magike 所在的数据库地址'));
      +        $form->addInput($host->addRule('required', _t('必须填写一个数据库地址')));
      +        
      +        $port = new Typecho_Widget_Helper_Form_Element_Text('port', NULL, '3306',
      +        _t('数据库端口'), _t('Magike 所在的数据库服务器端口'));
      +        $port->input->setAttribute('class', 'mini');
      +        $form->addInput($port->addRule('required', _t('必须填写数据库端口'))
      +        ->addRule('isInteger', _t('端口号必须是纯数字')));
      +        
      +        $user = new Typecho_Widget_Helper_Form_Element_Text('user', NULL, 'root',
      +        _t('数据库用户名'));
      +        $form->addInput($user->addRule('required', _t('必须填写数据库用户名')));
      +        
      +        $password = new Typecho_Widget_Helper_Form_Element_Password('password', NULL, NULL,
      +        _t('数据库密码'));
      +        $form->addInput($password);
      +        
      +        $database = new Typecho_Widget_Helper_Form_Element_Text('database', NULL, 'magike',
      +        _t('数据库名称'), _t('Magike 所在的数据库名称'));
      +        $form->addInput($database->addRule('required', _t('您必须填写数据库名称')));
      +    
      +        $prefix = new Typecho_Widget_Helper_Form_Element_Text('prefix', NULL, 'mg_',
      +        _t('表前缀'), _t('所有 Magike 数据表的前缀'));
      +        $form->addInput($prefix->addRule('required', _t('您必须填写表前缀')));
      +    }
      +    
      +    /**
      +     * 个人用户的配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form
      +     * @return void
      +     */
      +    public static function personalConfig(Typecho_Widget_Helper_Form $form){}
      +}
      diff --git a/usr/plugins/MagikeToTypecho/panel.php b/usr/plugins/MagikeToTypecho/panel.php
      new file mode 100644
      index 00000000..ec6f3b6e
      --- /dev/null
      +++ b/usr/plugins/MagikeToTypecho/panel.php
      @@ -0,0 +1,73 @@
      +<?php
      +if (!defined('__TYPECHO_ROOT_DIR__')) {
      +    exit;
      +}
      +
      +$success = true;
      +try {
      +    $dbConfig = $options->plugin('MagikeToTypecho');
      +
      +    /** 初始化一个db */
      +    if (Typecho_Db_Adapter_Mysql::isAvailable()) {
      +        $magikeDb = new Typecho_Db('Mysql', $dbConfig->prefix);
      +    } else {
      +        $magikeDb = new Typecho_Db('Pdo_Mysql', $dbConfig->prefix);
      +    }
      +
      +    /** 只读即可 */
      +    $magikeDb->addServer(array (
      +      'host' => $dbConfig->host,
      +      'user' => $dbConfig->user,
      +      'password' => $dbConfig->password,
      +      'charset' => 'utf8',
      +      'port' => $dbConfig->port,
      +      'database' => $dbConfig->database
      +    ), Typecho_Db::READ);
      +    
      +    $rows = $magikeDb->fetchAll($magikeDb->select()->from('table.statics'));
      +    $static = array();
      +    foreach ($rows as $row) {
      +        $static[$row['static_name']] = $row['static_value'];
      +    }
      +} catch (Typecho_Db_Exception $e) {
      +    $success = false;
      +}
      +
      +include 'header.php';
      +include 'menu.php';
      +?>
      +<div class="main">
      +    <div class="body body-950">
      +        <?php include 'page-title.php'; ?>
      +        <div class="container typecho-page-main">
      +            <div class="column-22 start-02">
      +                <?php if ($success): ?>
      +                <div class="message notice typecho-radius-topleft typecho-radius-topright typecho-radius-bottomleft typecho-radius-bottomright">
      +                <form action="<?php $options->index('/action/magike-to-typecho'); ?>" method="post">
      +                    <?php _e('我们检测到了 Magike 系统信息, 点击下方的按钮开始数据转换, 数据转换可能会耗时较长.'); ?>
      +                    <blockquote>
      +                    <ul>
      +                        <li><strong><?php echo $static['blog_name']; ?></strong></li>
      +                        <li><strong><?php echo $static['description']; ?></strong></li>
      +                        <li><strong><?php echo $static['siteurl']; ?></strong></li>
      +                    </ul>
      +                    </blockquote>
      +                    <br />
      +                    <p><button type="submit"><?php _e('开始数据转换 &raquo;'); ?></button></p>
      +                </form>
      +                </div>
      +                <?php else: ?>
      +                <div class="message error">
      +                    <?php _e('我们在连接到 Magike 的数据库时发生了错误, 请<a href="%s">重新设置</a>你的信息.', 
      +                    Typecho_Common::url('options-plugin.php?config=MagikeToTypecho', $options->adminUrl)); ?>
      +                </div>
      +                <?php endif; ?>
      +            </div>
      +        </div>
      +    </div>
      +</div>
      +<?php
      +include 'copyright.php';
      +include 'common-js.php';
      +include 'footer.php';
      +?>
      diff --git a/usr/plugins/PageToLinks.php b/usr/plugins/PageToLinks.php
      new file mode 100644
      index 00000000..3ed40556
      --- /dev/null
      +++ b/usr/plugins/PageToLinks.php
      @@ -0,0 +1,87 @@
      +<?php
      +/**
      + * 将页面转化为友情链接列表的插件
      + * 
      + * @package Page To Links
      + * @author qining
      + * @version 1.0.0
      + * @link http://typecho.org
      + */
      +class PageToLinks implements Typecho_Plugin_Interface
      +{
      +    /**
      +     * 激活插件方法,如果激活失败,直接抛出异常
      +     * 
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function activate(){}
      +    
      +    /**
      +     * 禁用插件方法,如果禁用失败,直接抛出异常
      +     * 
      +     * @static
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function deactivate(){}
      +    
      +    /**
      +     * 获取插件配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form 配置面板
      +     * @return void
      +     */
      +    public static function config(Typecho_Widget_Helper_Form $form){}
      +    
      +    /**
      +     * 个人用户的配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form
      +     * @return void
      +     */
      +    public static function personalConfig(Typecho_Widget_Helper_Form $form){}
      +    
      +    /**
      +     * 解析并输出
      +     * 
      +     * @access public
      +     * @param string $slug 页面标题
      +     * @param string $tag 标题的html tag
      +     * @param string $listTag 列表的html tag
      +     * @return void
      +     */
      +    public static function output($slug = 'links', $tag = 'h2', $listTag = 'ul')
      +    {
      +        /** 获取数据库支持 */
      +        $db = Typecho_Db::get();
      +        
      +        /** 获取文本 */
      +        $contents = $db->fetchObject($db->select('text')->from('table.contents')
      +        ->where('slug = ?', $slug)->limit(1));
      +        
      +        if (!$contents) {
      +            return;
      +        }
      +        
      +        $text = $contents->text;
      +        $cats = preg_split("/<\/(ol|ul)>/i", $text);
      +        
      +        foreach ($cats as $cat) {
      +            $item = trim($cat);
      +            
      +            if ($item) {
      +                $matches = array_map('trim', preg_split("/<(ol|ul)[^>]*>/i", $item));
      +                if (2 == count($matches)) {
      +                    list ($title, $list) = $matches;
      +                    echo "<$tag>" . strip_tags($title) . "</$tag>";
      +                    echo "<$listTag>" . $list . "</$listTag>";
      +                }
      +            }
      +        }
      +    }
      +}
      diff --git a/usr/plugins/PostToQzone/Plugin.php b/usr/plugins/PostToQzone/Plugin.php
      new file mode 100644
      index 00000000..e66a8ffa
      --- /dev/null
      +++ b/usr/plugins/PostToQzone/Plugin.php
      @@ -0,0 +1,185 @@
      +<?php
      +/**
      + * 将文章同时发布到您的Qzone
      + *
      + * @package PostToQzone
      + * @version 1.0 beta
      + * @author blankyao
      + * @link http://www.blankyao.cn
      + */
      +include "phpmailer.php";
      +include "smtp.php";
      +class PostToQzone_Plugin implements Typecho_Plugin_Interface
      +{
      +    /**
      +     * activate
      +     *
      +     * @static
      +     * @access public
      +     * @return void
      +     */
      +    public static function activate()
      +    {
      +        Typecho_Plugin::factory('Widget_Contents_Post_Edit')->insert =
      +            array('PostToQzone_Plugin', 'publish');
      +        if(!extension_loaded("sockets")){
      +            throw new Typecho_Plugin_Exception(_t('对不起, 您的主机不支持socket扩展, 无法正常使用此功能'));
      +        }
      +        return _t('请配置您的qq号码以及密码,以便发布文章到Qzone');
      +    }
      +
      +    /**
      +     * deactivate
      +     *
      +     * @static
      +     * @access public
      +     * @return void
      +     */
      +    public static function deactivate()
      +    {
      +    }
      +
      +    /**
      +     * 插件配置面板
      +     *
      +     * @param Typecho_Widget_Helper_Form $form
      +     * @static
      +     * @access public
      +     * @return void
      +     */
      +    public static function config(Typecho_Widget_Helper_Form $form)
      +    {
      +        $qq = new Typecho_Widget_Helper_Form_Element_Text('qq', NULL, NULL,
      +        _t('qq号码'), _t('请填写您的qq号码'));
      +        $qq->addRule('isInteger', _t('qq号码必须是纯数字'));
      +        $form->addInput($qq->addRule('required', _t('必须填写一个qq号码')));
      +        $psw = new Typecho_Widget_Helper_Form_Element_Password('psw', NULL, NULL,
      +        _t('qq邮箱密码'), _t('请填写您的qq邮箱密码'));
      +        $form->addInput($psw->addRule('required', _t('必须填写一个qq邮箱密码')));
      +        $title = new Typecho_Widget_Helper_Form_Element_Text('title', NULL, '{post_title}',
      +        _t('标题模板'), _t('请填写您的标题模板'));
      +        $form->addInput($title->addRule('required', _t('必须填写一个标题模板')));
      +        $content = new Typecho_Widget_Helper_Form_Element_Textarea('content', NULL, '{post_content}',
      +        _t('内容模板'), _t('请填写您的内容模板'));
      +        $form->addInput($content->addRule('required', _t('必须填写一个内容模板')));
      +    }
      +
      +    /**
      +     * 个人用户的配置面板
      +     *
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form
      +     * @return void
      +     */
      +    public static function personalConfig(Typecho_Widget_Helper_Form $form){}
      +
      +    /**
      +     * 发送文章到qzone
      +     *
      +     * @param mixed $contents 文章结构体
      +     * @access public
      +     * @return mixed $contents 处理后的文章结构体
      +     */
      +    public function publish($contents)
      +    {
      +        //todo:增加一个选项,如果选择发送的qzone的话再发到qzone
      +        $options = Typecho_Widget::widget('Widget_Options');
      +        $config = $options->plugin('PostToQzone');
      +        $config = postToQzoneDefault($config);
      +
      +        if($config->qq > 1000 && !empty($contents['title'])  && !empty($contents['text'])){
      +
      +            $post_content = str_replace('{post_content}', $contents['text'], $config->content);
      +            $post_content = str_replace('{post_title}', $contents['title'], $post_content);
      +
      +            $post_title = str_replace('{post_title}', $contents['title'], $config->title);
      +
      +            $m=new Mailer($config->qq,$config->psw);
      +            $m->Halo($post_title,$post_content);
      +        }
      +        return $contents;
      +    }
      +}
      +
      +function postToQzoneDefault($config){
      +	if(strpos($config->title,'{post_title}') === false){
      +		$config->title = '{post_title}';
      +	}
      +
      +	if(strpos($config->content,'{post_content}') === false){
      +		$config->content = '{post_content}';
      +	}
      +	return $config;
      +}
      +
      +class Mailer extends PHPMailer
      +{
      +	var $qq=null;
      +	function Mailer($qq,$psw) {
      +		$this->qq=$qq;
      +		$this->From	 = "{$qq}@qq.com";
      +		$this->FromName = $qq;
      +		$this->Host	 = "smtp.qq.com";
      +		$this->Mailer   = "smtp";
      +		$this->WordWrap = 75;
      +		$this->CharSet = Typecho_Widget::widget('Widget_Options')->charset;
      +		$this->Encoding = 'base64';
      +		$this->SMTPAuth = true;
      +		$this->IsHTML(true);
      +		$this->Username = $qq;
      +		$this->Password = $psw;
      +	}
      +
      +	function Halo($subject,$body){
      +		$this->AddAddress("{$this->qq}@qzone.qq.com", "{$this->qq}@qzone.qq.com");
      +		$this->Subject = $subject;
      +		$this->Body	= $body;
      +		return $this->Send();
      +	}
      +}
      +
      +class Crypter
      +{
      +   var $key;
      +
      +   function Crypter($clave){
      +	  $this->key = $clave;
      +   }
      +
      +   function keyED($txt) {
      +	  $encrypt_key = md5($this->key);
      +	  $ctr=0;
      +	  $tmp = "";
      +	  for ($i=0;$i<strlen($txt);$i++) {
      +		 if ($ctr==strlen($encrypt_key)) $ctr=0;
      +		 $tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);
      +		 $ctr++;
      +	  }
      +	  return $tmp;
      +   }
      +
      +   function encrypt($txt){
      +	  srand((double)microtime()*1000000);
      +	  $encrypt_key = md5(rand(0,32000));
      +	  $ctr=0;
      +	  $tmp = "";
      +	  for ($i=0;$i<strlen($txt);$i++){
      +		 if ($ctr==strlen($encrypt_key)) $ctr=0;
      +		 $tmp.= substr($encrypt_key,$ctr,1) .
      +			 (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));
      +		 $ctr++;
      +	  }
      +	  return base64_encode($this->keyED($tmp));
      +   }
      +
      +   function decrypt($txt) {
      +	  $txt = $this->keyED(base64_decode($txt));
      +	  $tmp = "";
      +	  for ($i=0;$i<strlen($txt);$i++){
      +		 $md5 = substr($txt,$i,1);
      +		 $i++;
      +		 $tmp.= (substr($txt,$i,1) ^ $md5);
      +	  }
      +	  return $tmp;
      +   }
      +}
      diff --git a/usr/plugins/PostToQzone/phpmailer.php b/usr/plugins/PostToQzone/phpmailer.php
      new file mode 100644
      index 00000000..aeb89283
      --- /dev/null
      +++ b/usr/plugins/PostToQzone/phpmailer.php
      @@ -0,0 +1,1896 @@
      +<?php
      +/*~ class.phpmailer.php
      +.---------------------------------------------------------------------------.
      +|  Software: PHPMailer - PHP email class                                    |
      +|   Version: 2.0.2                                                          |
      +|   Contact: via sourceforge.net support pages (also www.codeworxtech.com)  |
      +|      Info: http://phpmailer.sourceforge.net                               |
      +|   Support: http://sourceforge.net/projects/phpmailer/                     |
      +| ------------------------------------------------------------------------- |
      +|    Author: Andy Prevost (project admininistrator)                         |
      +|    Author: Brent R. Matzelle (original founder)                           |
      +| Copyright (c) 2004-2007, Andy Prevost. All Rights Reserved.               |
      +| Copyright (c) 2001-2003, Brent R. Matzelle                                |
      +| ------------------------------------------------------------------------- |
      +|   License: Distributed under the Lesser General Public License (LGPL)     |
      +|            http://www.gnu.org/copyleft/lesser.html                        |
      +| This program is distributed in the hope that it will be useful - WITHOUT  |
      +| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or     |
      +| FITNESS FOR A PARTICULAR PURPOSE.                                         |
      +| ------------------------------------------------------------------------- |
      +| We offer a number of paid services (www.codeworxtech.com):                |
      +| - Web Hosting on highly optimized fast and secure servers                 |
      +| - Technology Consulting                                                   |
      +| - Oursourcing (highly qualified programmers and graphic designers)        |
      +'---------------------------------------------------------------------------'
      + */
      +/**
      + * PHPMailer - PHP email transport class
      + * @package PHPMailer
      + * @author Andy Prevost
      + * @copyright 2004 - 2008 Andy Prevost
      + */
      +
      +class PHPMailer {
      +
      +  /////////////////////////////////////////////////
      +  // PROPERTIES, PUBLIC
      +  /////////////////////////////////////////////////
      +
      +  /**
      +   * Email priority (1 = High, 3 = Normal, 5 = low).
      +   * @var int
      +   */
      +  var $Priority          = 3;
      +
      +  /**
      +   * Sets the CharSet of the message.
      +   * @var string
      +   */
      +  var $CharSet           = 'iso-8859-1';
      +
      +  /**
      +   * Sets the Content-type of the message.
      +   * @var string
      +   */
      +  var $ContentType        = 'text/plain';
      +
      +  /**
      +   * Sets the Encoding of the message. Options for this are "8bit",
      +   * "7bit", "binary", "base64", and "quoted-printable".
      +   * @var string
      +   */
      +  var $Encoding          = '8bit';
      +
      +  /**
      +   * Holds the most recent mailer error message.
      +   * @var string
      +   */
      +  var $ErrorInfo         = '';
      +
      +  /**
      +   * Sets the From email address for the message.
      +   * @var string
      +   */
      +  var $From              = 'root@localhost';
      +
      +  /**
      +   * Sets the From name of the message.
      +   * @var string
      +   */
      +  var $FromName          = 'Root User';
      +
      +  /**
      +   * Sets the Sender email (Return-Path) of the message.  If not empty,
      +   * will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode.
      +   * @var string
      +   */
      +  var $Sender            = '';
      +
      +  /**
      +   * Sets the Subject of the message.
      +   * @var string
      +   */
      +  var $Subject           = '';
      +
      +  /**
      +   * Sets the Body of the message.  This can be either an HTML or text body.
      +   * If HTML then run IsHTML(true).
      +   * @var string
      +   */
      +  var $Body              = '';
      +
      +  /**
      +   * Sets the text-only body of the message.  This automatically sets the
      +   * email to multipart/alternative.  This body can be read by mail
      +   * clients that do not have HTML email capability such as mutt. Clients
      +   * that can read HTML will view the normal Body.
      +   * @var string
      +   */
      +  var $AltBody           = '';
      +
      +  /**
      +   * Sets word wrapping on the body of the message to a given number of
      +   * characters.
      +   * @var int
      +   */
      +  var $WordWrap          = 0;
      +
      +  /**
      +   * Method to send mail: ("mail", "sendmail", or "smtp").
      +   * @var string
      +   */
      +  var $Mailer            = 'mail';
      +
      +  /**
      +   * Sets the path of the sendmail program.
      +   * @var string
      +   */
      +  var $Sendmail          = '/usr/sbin/sendmail';
      +
      +  /**
      +   * Path to PHPMailer plugins.  This is now only useful if the SMTP class
      +   * is in a different directory than the PHP include path.
      +   * @var string
      +   */
      +  var $PluginDir         = '';
      +
      +  /**
      +   * Holds PHPMailer version.
      +   * @var string
      +   */
      +  var $Version           = "2.0.2";
      +
      +  /**
      +   * Sets the email address that a reading confirmation will be sent.
      +   * @var string
      +   */
      +  var $ConfirmReadingTo  = '';
      +
      +  /**
      +   * Sets the hostname to use in Message-Id and Received headers
      +   * and as default HELO string. If empty, the value returned
      +   * by SERVER_NAME is used or 'localhost.localdomain'.
      +   * @var string
      +   */
      +  var $Hostname          = '';
      +
      +  /**
      +   * Sets the message ID to be used in the Message-Id header.
      +   * If empty, a unique id will be generated.
      +   * @var string
      +   */
      +  var $MessageID         = '';
      +
      +  /////////////////////////////////////////////////
      +  // PROPERTIES FOR SMTP
      +  /////////////////////////////////////////////////
      +
      +  /**
      +   * Sets the SMTP hosts.  All hosts must be separated by a
      +   * semicolon.  You can also specify a different port
      +   * for each host by using this format: [hostname:port]
      +   * (e.g. "smtp1.example.com:25;smtp2.example.com").
      +   * Hosts will be tried in order.
      +   * @var string
      +   */
      +  var $Host        = 'localhost';
      +
      +  /**
      +   * Sets the default SMTP server port.
      +   * @var int
      +   */
      +  var $Port        = 25;
      +
      +  /**
      +   * Sets the SMTP HELO of the message (Default is $Hostname).
      +   * @var string
      +   */
      +  var $Helo        = '';
      +
      +  /**
      +   * Sets connection prefix.
      +   * Options are "", "ssl" or "tls"
      +   * @var string
      +   */
      +  var $SMTPSecure = "";
      +
      +  /**
      +   * Sets SMTP authentication. Utilizes the Username and Password variables.
      +   * @var bool
      +   */
      +  var $SMTPAuth     = false;
      +
      +  /**
      +   * Sets SMTP username.
      +   * @var string
      +   */
      +  var $Username     = '';
      +
      +  /**
      +   * Sets SMTP password.
      +   * @var string
      +   */
      +  var $Password     = '';
      +
      +  /**
      +   * Sets the SMTP server timeout in seconds. This function will not
      +   * work with the win32 version.
      +   * @var int
      +   */
      +  var $Timeout      = 10;
      +
      +  /**
      +   * Sets SMTP class debugging on or off.
      +   * @var bool
      +   */
      +  var $SMTPDebug    = false;
      +
      +  /**
      +   * Prevents the SMTP connection from being closed after each mail
      +   * sending.  If this is set to true then to close the connection
      +   * requires an explicit call to SmtpClose().
      +   * @var bool
      +   */
      +  var $SMTPKeepAlive = false;
      +
      +  /**
      +   * Provides the ability to have the TO field process individual
      +   * emails, instead of sending to entire TO addresses
      +   * @var bool
      +   */
      +  var $SingleTo = false;
      +
      +  /////////////////////////////////////////////////
      +  // PROPERTIES, PRIVATE
      +  /////////////////////////////////////////////////
      +
      +  var $smtp            = NULL;
      +  var $to              = array();
      +  var $cc              = array();
      +  var $bcc             = array();
      +  var $ReplyTo         = array();
      +  var $attachment      = array();
      +  var $CustomHeader    = array();
      +  var $message_type    = '';
      +  var $boundary        = array();
      +  var $language        = array();
      +  var $error_count     = 0;
      +  var $LE              = "\n";
      +  var $sign_key_file   = "";
      +  var $sign_key_pass   = "";
      +
      +  /////////////////////////////////////////////////
      +  // METHODS, VARIABLES
      +  /////////////////////////////////////////////////
      +
      +  /**
      +   * Sets message type to HTML.
      +   * @param bool $bool
      +   * @return void
      +   */
      +  function IsHTML($bool) {
      +    if($bool == true) {
      +      $this->ContentType = 'text/html';
      +    } else {
      +      $this->ContentType = 'text/plain';
      +    }
      +  }
      +
      +  /**
      +   * Sets Mailer to send message using SMTP.
      +   * @return void
      +   */
      +  function IsSMTP() {
      +    $this->Mailer = 'smtp';
      +  }
      +
      +  /**
      +   * Sets Mailer to send message using PHP mail() function.
      +   * @return void
      +   */
      +  function IsMail() {
      +    $this->Mailer = 'mail';
      +  }
      +
      +  /**
      +   * Sets Mailer to send message using the $Sendmail program.
      +   * @return void
      +   */
      +  function IsSendmail() {
      +    $this->Mailer = 'sendmail';
      +  }
      +
      +  /**
      +   * Sets Mailer to send message using the qmail MTA.
      +   * @return void
      +   */
      +  function IsQmail() {
      +    $this->Sendmail = '/var/qmail/bin/sendmail';
      +    $this->Mailer = 'sendmail';
      +  }
      +
      +  /////////////////////////////////////////////////
      +  // METHODS, RECIPIENTS
      +  /////////////////////////////////////////////////
      +
      +  /**
      +   * Adds a "To" address.
      +   * @param string $address
      +   * @param string $name
      +   * @return void
      +   */
      +  function AddAddress($address, $name = '') {
      +    $cur = count($this->to);
      +    $this->to[$cur][0] = trim($address);
      +    $this->to[$cur][1] = $name;
      +  }
      +
      +  /**
      +   * Adds a "Cc" address. Note: this function works
      +   * with the SMTP mailer on win32, not with the "mail"
      +   * mailer.
      +   * @param string $address
      +   * @param string $name
      +   * @return void
      +   */
      +  function AddCC($address, $name = '') {
      +    $cur = count($this->cc);
      +    $this->cc[$cur][0] = trim($address);
      +    $this->cc[$cur][1] = $name;
      +  }
      +
      +  /**
      +   * Adds a "Bcc" address. Note: this function works
      +   * with the SMTP mailer on win32, not with the "mail"
      +   * mailer.
      +   * @param string $address
      +   * @param string $name
      +   * @return void
      +   */
      +  function AddBCC($address, $name = '') {
      +    $cur = count($this->bcc);
      +    $this->bcc[$cur][0] = trim($address);
      +    $this->bcc[$cur][1] = $name;
      +  }
      +
      +  /**
      +   * Adds a "Reply-To" address.
      +   * @param string $address
      +   * @param string $name
      +   * @return void
      +   */
      +  function AddReplyTo($address, $name = '') {
      +    $cur = count($this->ReplyTo);
      +    $this->ReplyTo[$cur][0] = trim($address);
      +    $this->ReplyTo[$cur][1] = $name;
      +  }
      +
      +  /////////////////////////////////////////////////
      +  // METHODS, MAIL SENDING
      +  /////////////////////////////////////////////////
      +
      +  /**
      +   * Creates message and assigns Mailer. If the message is
      +   * not sent successfully then it returns false.  Use the ErrorInfo
      +   * variable to view description of the error.
      +   * @return bool
      +   */
      +  function Send() {
      +    $header = '';
      +    $body = '';
      +    $result = true;
      +
      +    if((count($this->to) + count($this->cc) + count($this->bcc)) < 1) {
      +      $this->SetError($this->Lang('provide_address'));
      +      return false;
      +    }
      +
      +    /* Set whether the message is multipart/alternative */
      +    if(!empty($this->AltBody)) {
      +      $this->ContentType = 'multipart/alternative';
      +    }
      +
      +    $this->error_count = 0; // reset errors
      +    $this->SetMessageType();
      +    $header .= $this->CreateHeader();
      +    $body = $this->CreateBody();
      +
      +    if($body == '') {
      +      return false;
      +    }
      +
      +    /* Choose the mailer */
      +    switch($this->Mailer) {
      +      case 'sendmail':
      +        $result = $this->SendmailSend($header, $body);
      +        break;
      +      case 'smtp':
      +        $result = $this->SmtpSend($header, $body);
      +        break;
      +      case 'mail':
      +        $result = $this->MailSend($header, $body);
      +        break;
      +      default:
      +        $result = $this->MailSend($header, $body);
      +        break;
      +        //$this->SetError($this->Mailer . $this->Lang('mailer_not_supported'));
      +        //$result = false;
      +        //break;
      +    }
      +
      +    return $result;
      +  }
      +
      +  /**
      +   * Sends mail using the $Sendmail program.
      +   * @access private
      +   * @return bool
      +   */
      +  function SendmailSend($header, $body) {
      +    if ($this->Sender != '') {
      +      $sendmail = sprintf("%s -oi -f %s -t", escapeshellcmd($this->Sendmail), escapeshellarg($this->Sender));
      +    } else {
      +      $sendmail = sprintf("%s -oi -t", escapeshellcmd($this->Sendmail));
      +    }
      +
      +    if(!@$mail = popen($sendmail, 'w')) {
      +      $this->SetError($this->Lang('execute') . $this->Sendmail);
      +      return false;
      +    }
      +
      +    fputs($mail, $header);
      +    fputs($mail, $body);
      +
      +    $result = pclose($mail);
      +    if (version_compare(phpversion(), '4.2.3') == -1) {
      +      $result = $result >> 8 & 0xFF;
      +    }
      +    if($result != 0) {
      +      $this->SetError($this->Lang('execute') . $this->Sendmail);
      +      return false;
      +    }
      +    return true;
      +  }
      +
      +  /**
      +   * Sends mail using the PHP mail() function.
      +   * @access private
      +   * @return bool
      +   */
      +  function MailSend($header, $body) {
      +
      +    $to = '';
      +    for($i = 0; $i < count($this->to); $i++) {
      +      if($i != 0) { $to .= ', '; }
      +      $to .= $this->AddrFormat($this->to[$i]);
      +    }
      +
      +    $toArr = split(',', $to);
      +
      +    $params = sprintf("-oi -f %s", $this->Sender);
      +    if ($this->Sender != '' && strlen(ini_get('safe_mode')) < 1) {
      +      $old_from = ini_get('sendmail_from');
      +      ini_set('sendmail_from', $this->Sender);
      +      if ($this->SingleTo === true && count($toArr) > 1) {
      +        foreach ($toArr as $key => $val) {
      +          $rt = @mail($val, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params);
      +        }
      +      } else {
      +        $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params);
      +      }
      +    } else {
      +      if ($this->SingleTo === true && count($toArr) > 1) {
      +        foreach ($toArr as $key => $val) {
      +          $rt = @mail($val, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params);
      +        }
      +      } else {
      +        $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header);
      +      }
      +    }
      +
      +    if (isset($old_from)) {
      +      ini_set('sendmail_from', $old_from);
      +    }
      +
      +    if(!$rt) {
      +      $this->SetError($this->Lang('instantiate'));
      +      return false;
      +    }
      +
      +    return true;
      +  }
      +
      +  /**
      +   * Sends mail via SMTP using PhpSMTP (Author:
      +   * Chris Ryan).  Returns bool.  Returns false if there is a
      +   * bad MAIL FROM, RCPT, or DATA input.
      +   * @access private
      +   * @return bool
      +   */
      +  function SmtpSend($header, $body) {
      +    include_once($this->PluginDir . 'smtp.php');
      +    $error = '';
      +    $bad_rcpt = array();
      +
      +    if(!$this->SmtpConnect()) {
      +      return false;
      +    }
      +
      +    $smtp_from = ($this->Sender == '') ? $this->From : $this->Sender;
      +    if(!$this->smtp->Mail($smtp_from)) {
      +      $error = $this->Lang('from_failed') . $smtp_from;
      +      $this->SetError($error);
      +      $this->smtp->Reset();
      +      return false;
      +    }
      +
      +    /* Attempt to send attach all recipients */
      +    for($i = 0; $i < count($this->to); $i++) {
      +      if(!$this->smtp->Recipient($this->to[$i][0])) {
      +        $bad_rcpt[] = $this->to[$i][0];
      +      }
      +    }
      +    for($i = 0; $i < count($this->cc); $i++) {
      +      if(!$this->smtp->Recipient($this->cc[$i][0])) {
      +        $bad_rcpt[] = $this->cc[$i][0];
      +      }
      +    }
      +    for($i = 0; $i < count($this->bcc); $i++) {
      +      if(!$this->smtp->Recipient($this->bcc[$i][0])) {
      +        $bad_rcpt[] = $this->bcc[$i][0];
      +      }
      +    }
      +
      +    if(count($bad_rcpt) > 0) { // Create error message
      +      for($i = 0; $i < count($bad_rcpt); $i++) {
      +        if($i != 0) {
      +          $error .= ', ';
      +        }
      +        $error .= $bad_rcpt[$i];
      +      }
      +      $error = $this->Lang('recipients_failed') . $error;
      +      $this->SetError($error);
      +      $this->smtp->Reset();
      +      return false;
      +    }
      +
      +    if(!$this->smtp->Data($header . $body)) {
      +      $this->SetError($this->Lang('data_not_accepted'));
      +      $this->smtp->Reset();
      +      return false;
      +    }
      +    if($this->SMTPKeepAlive == true) {
      +      $this->smtp->Reset();
      +    } else {
      +      $this->SmtpClose();
      +    }
      +
      +    return true;
      +  }
      +
      +  /**
      +   * Initiates a connection to an SMTP server.  Returns false if the
      +   * operation failed.
      +   * @access private
      +   * @return bool
      +   */
      +  function SmtpConnect() {
      +    if($this->smtp == NULL) {
      +      $this->smtp = new SMTP();
      +    }
      +
      +    $this->smtp->do_debug = $this->SMTPDebug;
      +    $hosts = explode(';', $this->Host);
      +    $index = 0;
      +    $connection = ($this->smtp->Connected());
      +
      +    /* Retry while there is no connection */
      +    while($index < count($hosts) && $connection == false) {
      +      $hostinfo = array();
      +      if(eregi('^(.+):([0-9]+)$', $hosts[$index], $hostinfo)) {
      +        $host = $hostinfo[1];
      +        $port = $hostinfo[2];
      +      } else {
      +        $host = $hosts[$index];
      +        $port = $this->Port;
      +      }
      +
      +      if($this->smtp->Connect(((!empty($this->SMTPSecure))?$this->SMTPSecure.'://':'').$host, $port, $this->Timeout)) {
      +        if ($this->Helo != '') {
      +          $this->smtp->Hello($this->Helo);
      +        } else {
      +          $this->smtp->Hello($this->ServerHostname());
      +        }
      +
      +        $connection = true;
      +        if($this->SMTPAuth) {
      +          if(!$this->smtp->Authenticate($this->Username, $this->Password)) {
      +            $this->SetError($this->Lang('authenticate'));
      +            $this->smtp->Reset();
      +            $connection = false;
      +          }
      +        }
      +      }
      +      $index++;
      +    }
      +    if(!$connection) {
      +      $this->SetError($this->Lang('connect_host'));
      +    }
      +
      +    return $connection;
      +  }
      +
      +  /**
      +   * Closes the active SMTP session if one exists.
      +   * @return void
      +   */
      +  function SmtpClose() {
      +    if($this->smtp != NULL) {
      +      if($this->smtp->Connected()) {
      +        $this->smtp->Quit();
      +        $this->smtp->Close();
      +      }
      +    }
      +  }
      +
      +  /**
      +   * Sets the language for all class error messages.  Returns false
      +   * if it cannot load the language file.  The default language type
      +   * is English.
      +   * @param string $lang_type Type of language (e.g. Portuguese: "br")
      +   * @param string $lang_path Path to the language file directory
      +   * @access public
      +   * @return bool
      +   */
      +  function SetLanguage($lang_type, $lang_path = 'language/') {
      +    if(file_exists($lang_path.'phpmailer.lang-'.$lang_type.'.php')) {
      +      include($lang_path.'phpmailer.lang-'.$lang_type.'.php');
      +    } elseif (file_exists($lang_path.'phpmailer.lang-en.php')) {
      +      include($lang_path.'phpmailer.lang-en.php');
      +    } else {
      +      $this->SetError('Could not load language file');
      +      return false;
      +    }
      +    $this->language = $PHPMAILER_LANG;
      +
      +    return true;
      +  }
      +
      +  /////////////////////////////////////////////////
      +  // METHODS, MESSAGE CREATION
      +  /////////////////////////////////////////////////
      +
      +  /**
      +   * Creates recipient headers.
      +   * @access private
      +   * @return string
      +   */
      +  function AddrAppend($type, $addr) {
      +    $addr_str = $type . ': ';
      +    $addr_str .= $this->AddrFormat($addr[0]);
      +    if(count($addr) > 1) {
      +      for($i = 1; $i < count($addr); $i++) {
      +        $addr_str .= ', ' . $this->AddrFormat($addr[$i]);
      +      }
      +    }
      +    $addr_str .= $this->LE;
      +
      +    return $addr_str;
      +  }
      +
      +  /**
      +   * Formats an address correctly.
      +   * @access private
      +   * @return string
      +   */
      +  function AddrFormat($addr) {
      +    if(empty($addr[1])) {
      +      $formatted = $this->SecureHeader($addr[0]);
      +    } else {
      +      $formatted = $this->EncodeHeader($this->SecureHeader($addr[1]), 'phrase') . " <" . $this->SecureHeader($addr[0]) . ">";
      +    }
      +
      +    return $formatted;
      +  }
      +
      +  /**
      +   * Wraps message for use with mailers that do not
      +   * automatically perform wrapping and for quoted-printable.
      +   * Original written by philippe.
      +   * @access private
      +   * @return string
      +   */
      +  function WrapText($message, $length, $qp_mode = false) {
      +    $soft_break = ($qp_mode) ? sprintf(" =%s", $this->LE) : $this->LE;
      +    // If utf-8 encoding is used, we will need to make sure we don't
      +    // split multibyte characters when we wrap
      +    $is_utf8 = (strtolower($this->CharSet) == "utf-8");
      +
      +    $message = $this->FixEOL($message);
      +    if (substr($message, -1) == $this->LE) {
      +      $message = substr($message, 0, -1);
      +    }
      +
      +    $line = explode($this->LE, $message);
      +    $message = '';
      +    for ($i=0 ;$i < count($line); $i++) {
      +      $line_part = explode(' ', $line[$i]);
      +      $buf = '';
      +      for ($e = 0; $e<count($line_part); $e++) {
      +        $word = $line_part[$e];
      +        if ($qp_mode and (strlen($word) > $length)) {
      +          $space_left = $length - strlen($buf) - 1;
      +          if ($e != 0) {
      +            if ($space_left > 20) {
      +              $len = $space_left;
      +              if ($is_utf8) {
      +                $len = $this->UTF8CharBoundary($word, $len);
      +              } elseif (substr($word, $len - 1, 1) == "=") {
      +                $len--;
      +              } elseif (substr($word, $len - 2, 1) == "=") {
      +                $len -= 2;
      +              }
      +              $part = substr($word, 0, $len);
      +              $word = substr($word, $len);
      +              $buf .= ' ' . $part;
      +              $message .= $buf . sprintf("=%s", $this->LE);
      +            } else {
      +              $message .= $buf . $soft_break;
      +            }
      +            $buf = '';
      +          }
      +          while (strlen($word) > 0) {
      +            $len = $length;
      +            if ($is_utf8) {
      +              $len = $this->UTF8CharBoundary($word, $len);
      +            } elseif (substr($word, $len - 1, 1) == "=") {
      +              $len--;
      +            } elseif (substr($word, $len - 2, 1) == "=") {
      +              $len -= 2;
      +            }
      +            $part = substr($word, 0, $len);
      +            $word = substr($word, $len);
      +
      +            if (strlen($word) > 0) {
      +              $message .= $part . sprintf("=%s", $this->LE);
      +            } else {
      +              $buf = $part;
      +            }
      +          }
      +        } else {
      +          $buf_o = $buf;
      +          $buf .= ($e == 0) ? $word : (' ' . $word);
      +
      +          if (strlen($buf) > $length and $buf_o != '') {
      +            $message .= $buf_o . $soft_break;
      +            $buf = $word;
      +          }
      +        }
      +      }
      +      $message .= $buf . $this->LE;
      +    }
      +
      +    return $message;
      +  }
      +
      +  /**
      +   * Finds last character boundary prior to maxLength in a utf-8
      +   * quoted (printable) encoded string.
      +   * Original written by Colin Brown.
      +   * @access private
      +   * @param string $encodedText utf-8 QP text
      +   * @param int    $maxLength   find last character boundary prior to this length
      +   * @return int
      +   */
      +  function UTF8CharBoundary($encodedText, $maxLength) {
      +    $foundSplitPos = false;
      +    $lookBack = 3;
      +    while (!$foundSplitPos) {
      +      $lastChunk = substr($encodedText, $maxLength - $lookBack, $lookBack);
      +      $encodedCharPos = strpos($lastChunk, "=");
      +      if ($encodedCharPos !== false) {
      +        // Found start of encoded character byte within $lookBack block.
      +        // Check the encoded byte value (the 2 chars after the '=')
      +        $hex = substr($encodedText, $maxLength - $lookBack + $encodedCharPos + 1, 2);
      +        $dec = hexdec($hex);
      +        if ($dec < 128) { // Single byte character.
      +          // If the encoded char was found at pos 0, it will fit
      +          // otherwise reduce maxLength to start of the encoded char
      +          $maxLength = ($encodedCharPos == 0) ? $maxLength :
      +          $maxLength - ($lookBack - $encodedCharPos);
      +          $foundSplitPos = true;
      +        } elseif ($dec >= 192) { // First byte of a multi byte character
      +          // Reduce maxLength to split at start of character
      +          $maxLength = $maxLength - ($lookBack - $encodedCharPos);
      +          $foundSplitPos = true;
      +        } elseif ($dec < 192) { // Middle byte of a multi byte character, look further back
      +          $lookBack += 3;
      +        }
      +      } else {
      +        // No encoded character found
      +        $foundSplitPos = true;
      +      }
      +    }
      +    return $maxLength;
      +  }
      +
      +  /**
      +   * Set the body wrapping.
      +   * @access private
      +   * @return void
      +   */
      +  function SetWordWrap() {
      +    if($this->WordWrap < 1) {
      +      return;
      +    }
      +
      +    switch($this->message_type) {
      +      case 'alt':
      +        /* fall through */
      +      case 'alt_attachments':
      +        $this->AltBody = $this->WrapText($this->AltBody, $this->WordWrap);
      +        break;
      +      default:
      +        $this->Body = $this->WrapText($this->Body, $this->WordWrap);
      +        break;
      +    }
      +  }
      +
      +  /**
      +   * Assembles message header.
      +   * @access private
      +   * @return string
      +   */
      +  function CreateHeader() {
      +    $result = '';
      +
      +    /* Set the boundaries */
      +    $uniq_id = md5(uniqid(time()));
      +    $this->boundary[1] = 'b1_' . $uniq_id;
      +    $this->boundary[2] = 'b2_' . $uniq_id;
      +
      +    $result .= $this->HeaderLine('Date', $this->RFCDate());
      +    if($this->Sender == '') {
      +      $result .= $this->HeaderLine('Return-Path', trim($this->From));
      +    } else {
      +      $result .= $this->HeaderLine('Return-Path', trim($this->Sender));
      +    }
      +
      +    /* To be created automatically by mail() */
      +    if($this->Mailer != 'mail') {
      +      if(count($this->to) > 0) {
      +        $result .= $this->AddrAppend('To', $this->to);
      +      } elseif (count($this->cc) == 0) {
      +        $result .= $this->HeaderLine('To', 'undisclosed-recipients:;');
      +      }
      +      if(count($this->cc) > 0) {
      +        $result .= $this->AddrAppend('Cc', $this->cc);
      +      }
      +    }
      +
      +    $from = array();
      +    $from[0][0] = trim($this->From);
      +    $from[0][1] = $this->FromName;
      +    $result .= $this->AddrAppend('From', $from);
      +
      +    /* sendmail and mail() extract Cc from the header before sending */
      +    if((($this->Mailer == 'sendmail') || ($this->Mailer == 'mail')) && (count($this->cc) > 0)) {
      +      $result .= $this->AddrAppend('Cc', $this->cc);
      +    }
      +
      +    /* sendmail and mail() extract Bcc from the header before sending */
      +    if((($this->Mailer == 'sendmail') || ($this->Mailer == 'mail')) && (count($this->bcc) > 0)) {
      +      $result .= $this->AddrAppend('Bcc', $this->bcc);
      +    }
      +
      +    if(count($this->ReplyTo) > 0) {
      +      $result .= $this->AddrAppend('Reply-To', $this->ReplyTo);
      +    }
      +
      +    /* mail() sets the subject itself */
      +    if($this->Mailer != 'mail') {
      +      $result .= $this->HeaderLine('Subject', $this->EncodeHeader($this->SecureHeader($this->Subject)));
      +    }
      +
      +    if($this->MessageID != '') {
      +      $result .= $this->HeaderLine('Message-ID',$this->MessageID);
      +    } else {
      +      $result .= sprintf("Message-ID: <%s@%s>%s", $uniq_id, $this->ServerHostname(), $this->LE);
      +    }
      +    $result .= $this->HeaderLine('X-Priority', $this->Priority);
      +    $result .= $this->HeaderLine('X-Mailer', 'PHPMailer (phpmailer.sourceforge.net) [version ' . $this->Version . ']');
      +
      +    if($this->ConfirmReadingTo != '') {
      +      $result .= $this->HeaderLine('Disposition-Notification-To', '<' . trim($this->ConfirmReadingTo) . '>');
      +    }
      +
      +    // Add custom headers
      +    for($index = 0; $index < count($this->CustomHeader); $index++) {
      +      $result .= $this->HeaderLine(trim($this->CustomHeader[$index][0]), $this->EncodeHeader(trim($this->CustomHeader[$index][1])));
      +    }
      +    if (!$this->sign_key_file) {
      +      $result .= $this->HeaderLine('MIME-Version', '1.0');
      +      $result .= $this->GetMailMIME();
      +    }
      +
      +    return $result;
      +  }
      +
      +  /**
      +   * Returns the message MIME.
      +   * @access private
      +   * @return string
      +   */
      +  function GetMailMIME() {
      +    $result = '';
      +    switch($this->message_type) {
      +      case 'plain':
      +        $result .= $this->HeaderLine('Content-Transfer-Encoding', $this->Encoding);
      +        $result .= sprintf("Content-Type: %s; charset=\"%s\"", $this->ContentType, $this->CharSet);
      +        break;
      +      case 'attachments':
      +        /* fall through */
      +      case 'alt_attachments':
      +        if($this->InlineImageExists()){
      +          $result .= sprintf("Content-Type: %s;%s\ttype=\"text/html\";%s\tboundary=\"%s\"%s", 'multipart/related', $this->LE, $this->LE, $this->boundary[1], $this->LE);
      +        } else {
      +          $result .= $this->HeaderLine('Content-Type', 'multipart/mixed;');
      +          $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"');
      +        }
      +        break;
      +      case 'alt':
      +        $result .= $this->HeaderLine('Content-Type', 'multipart/alternative;');
      +        $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"');
      +        break;
      +    }
      +
      +    if($this->Mailer != 'mail') {
      +      $result .= $this->LE.$this->LE;
      +    }
      +
      +    return $result;
      +  }
      +
      +  /**
      +   * Assembles the message body.  Returns an empty string on failure.
      +   * @access private
      +   * @return string
      +   */
      +  function CreateBody() {
      +    $result = '';
      +    if ($this->sign_key_file) {
      +      $result .= $this->GetMailMIME();
      +    }
      +
      +    $this->SetWordWrap();
      +
      +    switch($this->message_type) {
      +      case 'alt':
      +        $result .= $this->GetBoundary($this->boundary[1], '', 'text/plain', '');
      +        $result .= $this->EncodeString($this->AltBody, $this->Encoding);
      +        $result .= $this->LE.$this->LE;
      +        $result .= $this->GetBoundary($this->boundary[1], '', 'text/html', '');
      +        $result .= $this->EncodeString($this->Body, $this->Encoding);
      +        $result .= $this->LE.$this->LE;
      +        $result .= $this->EndBoundary($this->boundary[1]);
      +        break;
      +      case 'plain':
      +        $result .= $this->EncodeString($this->Body, $this->Encoding);
      +        break;
      +      case 'attachments':
      +        $result .= $this->GetBoundary($this->boundary[1], '', '', '');
      +        $result .= $this->EncodeString($this->Body, $this->Encoding);
      +        $result .= $this->LE;
      +        $result .= $this->AttachAll();
      +        break;
      +      case 'alt_attachments':
      +        $result .= sprintf("--%s%s", $this->boundary[1], $this->LE);
      +        $result .= sprintf("Content-Type: %s;%s" . "\tboundary=\"%s\"%s", 'multipart/alternative', $this->LE, $this->boundary[2], $this->LE.$this->LE);
      +        $result .= $this->GetBoundary($this->boundary[2], '', 'text/plain', '') . $this->LE; // Create text body
      +        $result .= $this->EncodeString($this->AltBody, $this->Encoding);
      +        $result .= $this->LE.$this->LE;
      +        $result .= $this->GetBoundary($this->boundary[2], '', 'text/html', '') . $this->LE; // Create the HTML body
      +        $result .= $this->EncodeString($this->Body, $this->Encoding);
      +        $result .= $this->LE.$this->LE;
      +        $result .= $this->EndBoundary($this->boundary[2]);
      +        $result .= $this->AttachAll();
      +        break;
      +    }
      +
      +    if($this->IsError()) {
      +      $result = '';
      +    } else if ($this->sign_key_file) {
      +      $file = tempnam("", "mail");
      +      $fp = fopen($file, "w");
      +      fwrite($fp, $result);
      +      fclose($fp);
      +      $signed = tempnam("", "signed");
      +
      +      if (@openssl_pkcs7_sign($file, $signed, "file://".$this->sign_key_file, array("file://".$this->sign_key_file, $this->sign_key_pass), null)) {
      +        $fp = fopen($signed, "r");
      +        $result = fread($fp, filesize($this->sign_key_file));
      +        fclose($fp);
      +      } else {
      +        $this->SetError($this->Lang("signing").openssl_error_string());
      +        $result = '';
      +      }
      +
      +      unlink($file);
      +      unlink($signed);
      +    }
      +
      +    return $result;
      +  }
      +
      +  /**
      +   * Returns the start of a message boundary.
      +   * @access private
      +   */
      +  function GetBoundary($boundary, $charSet, $contentType, $encoding) {
      +    $result = '';
      +    if($charSet == '') {
      +      $charSet = $this->CharSet;
      +    }
      +    if($contentType == '') {
      +      $contentType = $this->ContentType;
      +    }
      +    if($encoding == '') {
      +      $encoding = $this->Encoding;
      +    }
      +    $result .= $this->TextLine('--' . $boundary);
      +    $result .= sprintf("Content-Type: %s; charset = \"%s\"", $contentType, $charSet);
      +    $result .= $this->LE;
      +    $result .= $this->HeaderLine('Content-Transfer-Encoding', $encoding);
      +    $result .= $this->LE;
      +
      +    return $result;
      +  }
      +
      +  /**
      +   * Returns the end of a message boundary.
      +   * @access private
      +   */
      +  function EndBoundary($boundary) {
      +    return $this->LE . '--' . $boundary . '--' . $this->LE;
      +  }
      +
      +  /**
      +   * Sets the message type.
      +   * @access private
      +   * @return void
      +   */
      +  function SetMessageType() {
      +    if(count($this->attachment) < 1 && strlen($this->AltBody) < 1) {
      +      $this->message_type = 'plain';
      +    } else {
      +      if(count($this->attachment) > 0) {
      +        $this->message_type = 'attachments';
      +      }
      +      if(strlen($this->AltBody) > 0 && count($this->attachment) < 1) {
      +        $this->message_type = 'alt';
      +      }
      +      if(strlen($this->AltBody) > 0 && count($this->attachment) > 0) {
      +        $this->message_type = 'alt_attachments';
      +      }
      +    }
      +  }
      +
      +  /* Returns a formatted header line.
      +   * @access private
      +   * @return string
      +   */
      +  function HeaderLine($name, $value) {
      +    return $name . ': ' . $value . $this->LE;
      +  }
      +
      +  /**
      +   * Returns a formatted mail line.
      +   * @access private
      +   * @return string
      +   */
      +  function TextLine($value) {
      +    return $value . $this->LE;
      +  }
      +
      +  /////////////////////////////////////////////////
      +  // CLASS METHODS, ATTACHMENTS
      +  /////////////////////////////////////////////////
      +
      +  /**
      +   * Adds an attachment from a path on the filesystem.
      +   * Returns false if the file could not be found
      +   * or accessed.
      +   * @param string $path Path to the attachment.
      +   * @param string $name Overrides the attachment name.
      +   * @param string $encoding File encoding (see $Encoding).
      +   * @param string $type File extension (MIME) type.
      +   * @return bool
      +   */
      +  function AddAttachment($path, $name = '', $encoding = 'base64', $type = 'application/octet-stream') {
      +    if(!@is_file($path)) {
      +      $this->SetError($this->Lang('file_access') . $path);
      +      return false;
      +    }
      +
      +    $filename = basename($path);
      +    if($name == '') {
      +      $name = $filename;
      +    }
      +
      +    $cur = count($this->attachment);
      +    $this->attachment[$cur][0] = $path;
      +    $this->attachment[$cur][1] = $filename;
      +    $this->attachment[$cur][2] = $name;
      +    $this->attachment[$cur][3] = $encoding;
      +    $this->attachment[$cur][4] = $type;
      +    $this->attachment[$cur][5] = false; // isStringAttachment
      +    $this->attachment[$cur][6] = 'attachment';
      +    $this->attachment[$cur][7] = 0;
      +
      +    return true;
      +  }
      +
      +  /**
      +   * Attaches all fs, string, and binary attachments to the message.
      +   * Returns an empty string on failure.
      +   * @access private
      +   * @return string
      +   */
      +  function AttachAll() {
      +    /* Return text of body */
      +    $mime = array();
      +
      +    /* Add all attachments */
      +    for($i = 0; $i < count($this->attachment); $i++) {
      +      /* Check for string attachment */
      +      $bString = $this->attachment[$i][5];
      +      if ($bString) {
      +        $string = $this->attachment[$i][0];
      +      } else {
      +        $path = $this->attachment[$i][0];
      +      }
      +
      +      $filename    = $this->attachment[$i][1];
      +      $name        = $this->attachment[$i][2];
      +      $encoding    = $this->attachment[$i][3];
      +      $type        = $this->attachment[$i][4];
      +      $disposition = $this->attachment[$i][6];
      +      $cid         = $this->attachment[$i][7];
      +
      +      $mime[] = sprintf("--%s%s", $this->boundary[1], $this->LE);
      +      $mime[] = sprintf("Content-Type: %s; name=\"%s\"%s", $type, $name, $this->LE);
      +      $mime[] = sprintf("Content-Transfer-Encoding: %s%s", $encoding, $this->LE);
      +
      +      if($disposition == 'inline') {
      +        $mime[] = sprintf("Content-ID: <%s>%s", $cid, $this->LE);
      +      }
      +
      +      $mime[] = sprintf("Content-Disposition: %s; filename=\"%s\"%s", $disposition, $name, $this->LE.$this->LE);
      +
      +      /* Encode as string attachment */
      +      if($bString) {
      +        $mime[] = $this->EncodeString($string, $encoding);
      +        if($this->IsError()) {
      +          return '';
      +        }
      +        $mime[] = $this->LE.$this->LE;
      +      } else {
      +        $mime[] = $this->EncodeFile($path, $encoding);
      +        if($this->IsError()) {
      +          return '';
      +        }
      +        $mime[] = $this->LE.$this->LE;
      +      }
      +    }
      +
      +    $mime[] = sprintf("--%s--%s", $this->boundary[1], $this->LE);
      +
      +    return join('', $mime);
      +  }
      +
      +  /**
      +   * Encodes attachment in requested format.  Returns an
      +   * empty string on failure.
      +   * @access private
      +   * @return string
      +   */
      +  function EncodeFile ($path, $encoding = 'base64') {
      +    if(!@$fd = fopen($path, 'rb')) {
      +      $this->SetError($this->Lang('file_open') . $path);
      +      return '';
      +    }
      +    $magic_quotes = get_magic_quotes_runtime();
      +    set_magic_quotes_runtime(0);
      +    $file_buffer = fread($fd, filesize($path));
      +    $file_buffer = $this->EncodeString($file_buffer, $encoding);
      +    fclose($fd);
      +    set_magic_quotes_runtime($magic_quotes);
      +
      +    return $file_buffer;
      +  }
      +
      +  /**
      +   * Encodes string to requested format. Returns an
      +   * empty string on failure.
      +   * @access private
      +   * @return string
      +   */
      +  function EncodeString ($str, $encoding = 'base64') {
      +    $encoded = '';
      +    switch(strtolower($encoding)) {
      +      case 'base64':
      +        /* chunk_split is found in PHP >= 3.0.6 */
      +        $encoded = chunk_split(base64_encode($str), 76, $this->LE);
      +        break;
      +      case '7bit':
      +      case '8bit':
      +        $encoded = $this->FixEOL($str);
      +        if (substr($encoded, -(strlen($this->LE))) != $this->LE)
      +          $encoded .= $this->LE;
      +        break;
      +      case 'binary':
      +        $encoded = $str;
      +        break;
      +      case 'quoted-printable':
      +        $encoded = $this->EncodeQP($str);
      +        break;
      +      default:
      +        $this->SetError($this->Lang('encoding') . $encoding);
      +        break;
      +    }
      +    return $encoded;
      +  }
      +
      +  /**
      +   * Encode a header string to best of Q, B, quoted or none.
      +   * @access private
      +   * @return string
      +   */
      +  function EncodeHeader ($str, $position = 'text') {
      +    $x = 0;
      +
      +    switch (strtolower($position)) {
      +      case 'phrase':
      +        if (!preg_match('/[\200-\377]/', $str)) {
      +          /* Can't use addslashes as we don't know what value has magic_quotes_sybase. */
      +          $encoded = addcslashes($str, "\0..\37\177\\\"");
      +          if (($str == $encoded) && !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str)) {
      +            return ($encoded);
      +          } else {
      +            return ("\"$encoded\"");
      +          }
      +        }
      +        $x = preg_match_all('/[^\040\041\043-\133\135-\176]/', $str, $matches);
      +        break;
      +      case 'comment':
      +        $x = preg_match_all('/[()"]/', $str, $matches);
      +        /* Fall-through */
      +      case 'text':
      +      default:
      +        $x += preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches);
      +        break;
      +    }
      +
      +    if ($x == 0) {
      +      return ($str);
      +    }
      +
      +    $maxlen = 75 - 7 - strlen($this->CharSet);
      +    /* Try to select the encoding which should produce the shortest output */
      +    if (strlen($str)/3 < $x) {
      +      $encoding = 'B';
      +      if (function_exists('mb_strlen') && $this->HasMultiBytes($str)) {
      +     // Use a custom function which correctly encodes and wraps long
      +     // multibyte strings without breaking lines within a character
      +        $encoded = $this->Base64EncodeWrapMB($str);
      +      } else {
      +        $encoded = base64_encode($str);
      +        $maxlen -= $maxlen % 4;
      +        $encoded = trim(chunk_split($encoded, $maxlen, "\n"));
      +      }
      +    } else {
      +      $encoding = 'Q';
      +      $encoded = $this->EncodeQ($str, $position);
      +      $encoded = $this->WrapText($encoded, $maxlen, true);
      +      $encoded = str_replace('='.$this->LE, "\n", trim($encoded));
      +    }
      +
      +    $encoded = preg_replace('/^(.*)$/m', " =?".$this->CharSet."?$encoding?\\1?=", $encoded);
      +    $encoded = trim(str_replace("\n", $this->LE, $encoded));
      +
      +    return $encoded;
      +  }
      +
      +  /**
      +   * Checks if a string contains multibyte characters.
      +   * @access private
      +   * @param string $str multi-byte text to wrap encode
      +   * @return bool
      +   */
      +  function HasMultiBytes($str) {
      +    if (function_exists('mb_strlen')) {
      +      return (strlen($str) > mb_strlen($str, $this->CharSet));
      +    } else { // Assume no multibytes (we can't handle without mbstring functions anyway)
      +      return False;
      +    }
      +  }
      +
      +  /**
      +   * Correctly encodes and wraps long multibyte strings for mail headers
      +   * without breaking lines within a character.
      +   * Adapted from a function by paravoid at http://uk.php.net/manual/en/function.mb-encode-mimeheader.php
      +   * @access private
      +   * @param string $str multi-byte text to wrap encode
      +   * @return string
      +   */
      +  function Base64EncodeWrapMB($str) {
      +    $start = "=?".$this->CharSet."?B?";
      +    $end = "?=";
      +    $encoded = "";
      +
      +    $mb_length = mb_strlen($str, $this->CharSet);
      +    // Each line must have length <= 75, including $start and $end
      +    $length = 75 - strlen($start) - strlen($end);
      +    // Average multi-byte ratio
      +    $ratio = $mb_length / strlen($str);
      +    // Base64 has a 4:3 ratio
      +    $offset = $avgLength = floor($length * $ratio * .75);
      +
      +    for ($i = 0; $i < $mb_length; $i += $offset) {
      +      $lookBack = 0;
      +
      +      do {
      +        $offset = $avgLength - $lookBack;
      +        $chunk = mb_substr($str, $i, $offset, $this->CharSet);
      +        $chunk = base64_encode($chunk);
      +        $lookBack++;
      +      }
      +      while (strlen($chunk) > $length);
      +
      +      $encoded .= $chunk . $this->LE;
      +    }
      +
      +    // Chomp the last linefeed
      +    $encoded = substr($encoded, 0, -strlen($this->LE));
      +    return $encoded;
      +  }
      +
      +  /**
      +   * Encode string to quoted-printable.
      +   * @access private
      +   * @return string
      +   */
      +  function EncodeQP( $input = '', $line_max = 76, $space_conv = false ) {
      +    $hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
      +    $lines = preg_split('/(?:\r\n|\r|\n)/', $input);
      +    $eol = "\r\n";
      +    $escape = '=';
      +    $output = '';
      +    while( list(, $line) = each($lines) ) {
      +      $linlen = strlen($line);
      +      $newline = '';
      +      for($i = 0; $i < $linlen; $i++) {
      +        $c = substr( $line, $i, 1 );
      +        $dec = ord( $c );
      +        if ( ( $i == 0 ) && ( $dec == 46 ) ) { // convert first point in the line into =2E
      +          $c = '=2E';
      +        }
      +        if ( $dec == 32 ) {
      +          if ( $i == ( $linlen - 1 ) ) { // convert space at eol only
      +            $c = '=20';
      +          } else if ( $space_conv ) {
      +            $c = '=20';
      +          }
      +        } elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) { // always encode "\t", which is *not* required
      +          $h2 = floor($dec/16);
      +          $h1 = floor($dec%16);
      +          $c = $escape.$hex[$h2].$hex[$h1];
      +        }
      +        if ( (strlen($newline) + strlen($c)) >= $line_max ) { // CRLF is not counted
      +          $output .= $newline.$escape.$eol; //  soft line break; " =\r\n" is okay
      +          $newline = '';
      +          // check if newline first character will be point or not
      +          if ( $dec == 46 ) {
      +            $c = '=2E';
      +          }
      +        }
      +        $newline .= $c;
      +      } // end of for
      +      $output .= $newline.$eol;
      +    } // end of while
      +    return trim($output);
      +  }
      +
      +  /**
      +   * Encode string to q encoding.
      +   * @access private
      +   * @return string
      +   */
      +  function EncodeQ ($str, $position = 'text') {
      +    /* There should not be any EOL in the string */
      +    $encoded = preg_replace("[\r\n]", '', $str);
      +
      +    switch (strtolower($position)) {
      +      case 'phrase':
      +        $encoded = preg_replace("/([^A-Za-z0-9!*+\/ -])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded);
      +        break;
      +      case 'comment':
      +        $encoded = preg_replace("/([\(\)\"])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded);
      +      case 'text':
      +      default:
      +        /* Replace every high ascii, control =, ? and _ characters */
      +        $encoded = preg_replace('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/e',
      +              "'='.sprintf('%02X', ord('\\1'))", $encoded);
      +        break;
      +    }
      +
      +    /* Replace every spaces to _ (more readable than =20) */
      +    $encoded = str_replace(' ', '_', $encoded);
      +
      +    return $encoded;
      +  }
      +
      +  /**
      +   * Adds a string or binary attachment (non-filesystem) to the list.
      +   * This method can be used to attach ascii or binary data,
      +   * such as a BLOB record from a database.
      +   * @param string $string String attachment data.
      +   * @param string $filename Name of the attachment.
      +   * @param string $encoding File encoding (see $Encoding).
      +   * @param string $type File extension (MIME) type.
      +   * @return void
      +   */
      +  function AddStringAttachment($string, $filename, $encoding = 'base64', $type = 'application/octet-stream') {
      +    /* Append to $attachment array */
      +    $cur = count($this->attachment);
      +    $this->attachment[$cur][0] = $string;
      +    $this->attachment[$cur][1] = $filename;
      +    $this->attachment[$cur][2] = $filename;
      +    $this->attachment[$cur][3] = $encoding;
      +    $this->attachment[$cur][4] = $type;
      +    $this->attachment[$cur][5] = true; // isString
      +    $this->attachment[$cur][6] = 'attachment';
      +    $this->attachment[$cur][7] = 0;
      +  }
      +
      +  /**
      +   * Adds an embedded attachment.  This can include images, sounds, and
      +   * just about any other document.  Make sure to set the $type to an
      +   * image type.  For JPEG images use "image/jpeg" and for GIF images
      +   * use "image/gif".
      +   * @param string $path Path to the attachment.
      +   * @param string $cid Content ID of the attachment.  Use this to identify
      +   *        the Id for accessing the image in an HTML form.
      +   * @param string $name Overrides the attachment name.
      +   * @param string $encoding File encoding (see $Encoding).
      +   * @param string $type File extension (MIME) type.
      +   * @return bool
      +   */
      +  function AddEmbeddedImage($path, $cid, $name = '', $encoding = 'base64', $type = 'application/octet-stream') {
      +
      +    if(!@is_file($path)) {
      +      $this->SetError($this->Lang('file_access') . $path);
      +      return false;
      +    }
      +
      +    $filename = basename($path);
      +    if($name == '') {
      +      $name = $filename;
      +    }
      +
      +    /* Append to $attachment array */
      +    $cur = count($this->attachment);
      +    $this->attachment[$cur][0] = $path;
      +    $this->attachment[$cur][1] = $filename;
      +    $this->attachment[$cur][2] = $name;
      +    $this->attachment[$cur][3] = $encoding;
      +    $this->attachment[$cur][4] = $type;
      +    $this->attachment[$cur][5] = false;
      +    $this->attachment[$cur][6] = 'inline';
      +    $this->attachment[$cur][7] = $cid;
      +
      +    return true;
      +  }
      +
      +  /**
      +   * Returns true if an inline attachment is present.
      +   * @access private
      +   * @return bool
      +   */
      +  function InlineImageExists() {
      +    $result = false;
      +    for($i = 0; $i < count($this->attachment); $i++) {
      +      if($this->attachment[$i][6] == 'inline') {
      +        $result = true;
      +        break;
      +      }
      +    }
      +
      +    return $result;
      +  }
      +
      +  /////////////////////////////////////////////////
      +  // CLASS METHODS, MESSAGE RESET
      +  /////////////////////////////////////////////////
      +
      +  /**
      +   * Clears all recipients assigned in the TO array.  Returns void.
      +   * @return void
      +   */
      +  function ClearAddresses() {
      +    $this->to = array();
      +  }
      +
      +  /**
      +   * Clears all recipients assigned in the CC array.  Returns void.
      +   * @return void
      +   */
      +  function ClearCCs() {
      +    $this->cc = array();
      +  }
      +
      +  /**
      +   * Clears all recipients assigned in the BCC array.  Returns void.
      +   * @return void
      +   */
      +  function ClearBCCs() {
      +    $this->bcc = array();
      +  }
      +
      +  /**
      +   * Clears all recipients assigned in the ReplyTo array.  Returns void.
      +   * @return void
      +   */
      +  function ClearReplyTos() {
      +    $this->ReplyTo = array();
      +  }
      +
      +  /**
      +   * Clears all recipients assigned in the TO, CC and BCC
      +   * array.  Returns void.
      +   * @return void
      +   */
      +  function ClearAllRecipients() {
      +    $this->to = array();
      +    $this->cc = array();
      +    $this->bcc = array();
      +  }
      +
      +  /**
      +   * Clears all previously set filesystem, string, and binary
      +   * attachments.  Returns void.
      +   * @return void
      +   */
      +  function ClearAttachments() {
      +    $this->attachment = array();
      +  }
      +
      +  /**
      +   * Clears all custom headers.  Returns void.
      +   * @return void
      +   */
      +  function ClearCustomHeaders() {
      +    $this->CustomHeader = array();
      +  }
      +
      +  /////////////////////////////////////////////////
      +  // CLASS METHODS, MISCELLANEOUS
      +  /////////////////////////////////////////////////
      +
      +  /**
      +   * Adds the error message to the error container.
      +   * Returns void.
      +   * @access private
      +   * @return void
      +   */
      +  function SetError($msg) {
      +    $this->error_count++;
      +    $this->ErrorInfo = $msg;
      +  }
      +
      +  /**
      +   * Returns the proper RFC 822 formatted date.
      +   * @access private
      +   * @return string
      +   */
      +  function RFCDate() {
      +    $tz = date('Z');
      +    $tzs = ($tz < 0) ? '-' : '+';
      +    $tz = abs($tz);
      +    $tz = (int)($tz/3600)*100 + ($tz%3600)/60;
      +    $result = sprintf("%s %s%04d", date('D, j M Y H:i:s'), $tzs, $tz);
      +
      +    return $result;
      +  }
      +
      +  /**
      +   * Returns the appropriate server variable.  Should work with both
      +   * PHP 4.1.0+ as well as older versions.  Returns an empty string
      +   * if nothing is found.
      +   * @access private
      +   * @return mixed
      +   */
      +  function ServerVar($varName) {
      +    global $HTTP_SERVER_VARS;
      +    global $HTTP_ENV_VARS;
      +
      +    if(!isset($_SERVER)) {
      +      $_SERVER = $HTTP_SERVER_VARS;
      +      if(!isset($_SERVER['REMOTE_ADDR'])) {
      +        $_SERVER = $HTTP_ENV_VARS; // must be Apache
      +      }
      +    }
      +
      +    if(isset($_SERVER[$varName])) {
      +      return $_SERVER[$varName];
      +    } else {
      +      return '';
      +    }
      +  }
      +
      +  /**
      +   * Returns the server hostname or 'localhost.localdomain' if unknown.
      +   * @access private
      +   * @return string
      +   */
      +  function ServerHostname() {
      +    if ($this->Hostname != '') {
      +      $result = $this->Hostname;
      +    } elseif ($this->ServerVar('SERVER_NAME') != '') {
      +      $result = $this->ServerVar('SERVER_NAME');
      +    } else {
      +      $result = 'localhost.localdomain';
      +    }
      +
      +    return $result;
      +  }
      +
      +  /**
      +   * Returns a message in the appropriate language.
      +   * @access private
      +   * @return string
      +   */
      +  function Lang($key) {
      +    if(count($this->language) < 1) {
      +      $this->SetLanguage('en'); // set the default language
      +    }
      +
      +    if(isset($this->language[$key])) {
      +      return $this->language[$key];
      +    } else {
      +      return 'Language string failed to load: ' . $key;
      +    }
      +  }
      +
      +  /**
      +   * Returns true if an error occurred.
      +   * @return bool
      +   */
      +  function IsError() {
      +    return ($this->error_count > 0);
      +  }
      +
      +  /**
      +   * Changes every end of line from CR or LF to CRLF.
      +   * @access private
      +   * @return string
      +   */
      +  function FixEOL($str) {
      +    $str = str_replace("\r\n", "\n", $str);
      +    $str = str_replace("\r", "\n", $str);
      +    $str = str_replace("\n", $this->LE, $str);
      +    return $str;
      +  }
      +
      +  /**
      +   * Adds a custom header.
      +   * @return void
      +   */
      +  function AddCustomHeader($custom_header) {
      +    $this->CustomHeader[] = explode(':', $custom_header, 2);
      +  }
      +
      +  /**
      +   * Evaluates the message and returns modifications for inline images and backgrounds
      +   * @access public
      +   * @return $message
      +   */
      +  function MsgHTML($message,$basedir='') {
      +    preg_match_all("/(src|background)=\"(.*)\"/Ui", $message, $images);
      +    if(isset($images[2])) {
      +      foreach($images[2] as $i => $url) {
      +        // do not change urls for absolute images (thanks to corvuscorax)
      +        if (!preg_match('/^[A-z][A-z]*:\/\//',$url)) {
      +          $filename = basename($url);
      +          $directory = dirname($url);
      +          ($directory == '.')?$directory='':'';
      +          $cid = 'cid:' . md5($filename);
      +          $fileParts = split("\.", $filename);
      +          $ext = $fileParts[1];
      +          $mimeType = $this->_mime_types($ext);
      +          if ( strlen($basedir) > 1 && substr($basedir,-1) != '/') { $basedir .= '/'; }
      +          if ( strlen($directory) > 1 && substr($basedir,-1) != '/') { $directory .= '/'; }
      +          $this->AddEmbeddedImage($basedir.$directory.$filename, md5($filename), $filename, 'base64', $mimeType);
      +          if ( $this->AddEmbeddedImage($basedir.$directory.$filename, md5($filename), $filename, 'base64',$mimeType) ) {
      +            $message = preg_replace("/".$images[1][$i]."=\"".preg_quote($url, '/')."\"/Ui", $images[1][$i]."=\"".$cid."\"", $message);
      +          }
      +        }
      +      }
      +    }
      +    $this->IsHTML(true);
      +    $this->Body = $message;
      +    $textMsg = trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/s','',$message)));
      +    if ( !empty($textMsg) && empty($this->AltBody) ) {
      +      $this->AltBody = $textMsg;
      +    }
      +    if ( empty($this->AltBody) ) {
      +      $this->AltBody = 'To view this email message, open the email in with HTML compatibility!' . "\n\n";
      +    }
      +  }
      +
      +  /**
      +   * Gets the mime type of the embedded or inline image
      +   * @access private
      +   * @return mime type of ext
      +   */
      +  function _mime_types($ext = '') {
      +    $mimes = array(
      +      'hqx'  =>  'application/mac-binhex40',
      +      'cpt'   =>  'application/mac-compactpro',
      +      'doc'   =>  'application/msword',
      +      'bin'   =>  'application/macbinary',
      +      'dms'   =>  'application/octet-stream',
      +      'lha'   =>  'application/octet-stream',
      +      'lzh'   =>  'application/octet-stream',
      +      'exe'   =>  'application/octet-stream',
      +      'class' =>  'application/octet-stream',
      +      'psd'   =>  'application/octet-stream',
      +      'so'    =>  'application/octet-stream',
      +      'sea'   =>  'application/octet-stream',
      +      'dll'   =>  'application/octet-stream',
      +      'oda'   =>  'application/oda',
      +      'pdf'   =>  'application/pdf',
      +      'ai'    =>  'application/postscript',
      +      'eps'   =>  'application/postscript',
      +      'ps'    =>  'application/postscript',
      +      'smi'   =>  'application/smil',
      +      'smil'  =>  'application/smil',
      +      'mif'   =>  'application/vnd.mif',
      +      'xls'   =>  'application/vnd.ms-excel',
      +      'ppt'   =>  'application/vnd.ms-powerpoint',
      +      'wbxml' =>  'application/vnd.wap.wbxml',
      +      'wmlc'  =>  'application/vnd.wap.wmlc',
      +      'dcr'   =>  'application/x-director',
      +      'dir'   =>  'application/x-director',
      +      'dxr'   =>  'application/x-director',
      +      'dvi'   =>  'application/x-dvi',
      +      'gtar'  =>  'application/x-gtar',
      +      'php'   =>  'application/x-httpd-php',
      +      'php4'  =>  'application/x-httpd-php',
      +      'php3'  =>  'application/x-httpd-php',
      +      'phtml' =>  'application/x-httpd-php',
      +      'phps'  =>  'application/x-httpd-php-source',
      +      'js'    =>  'application/x-javascript',
      +      'swf'   =>  'application/x-shockwave-flash',
      +      'sit'   =>  'application/x-stuffit',
      +      'tar'   =>  'application/x-tar',
      +      'tgz'   =>  'application/x-tar',
      +      'xhtml' =>  'application/xhtml+xml',
      +      'xht'   =>  'application/xhtml+xml',
      +      'zip'   =>  'application/zip',
      +      'mid'   =>  'audio/midi',
      +      'midi'  =>  'audio/midi',
      +      'mpga'  =>  'audio/mpeg',
      +      'mp2'   =>  'audio/mpeg',
      +      'mp3'   =>  'audio/mpeg',
      +      'aif'   =>  'audio/x-aiff',
      +      'aiff'  =>  'audio/x-aiff',
      +      'aifc'  =>  'audio/x-aiff',
      +      'ram'   =>  'audio/x-pn-realaudio',
      +      'rm'    =>  'audio/x-pn-realaudio',
      +      'rpm'   =>  'audio/x-pn-realaudio-plugin',
      +      'ra'    =>  'audio/x-realaudio',
      +      'rv'    =>  'video/vnd.rn-realvideo',
      +      'wav'   =>  'audio/x-wav',
      +      'bmp'   =>  'image/bmp',
      +      'gif'   =>  'image/gif',
      +      'jpeg'  =>  'image/jpeg',
      +      'jpg'   =>  'image/jpeg',
      +      'jpe'   =>  'image/jpeg',
      +      'png'   =>  'image/png',
      +      'tiff'  =>  'image/tiff',
      +      'tif'   =>  'image/tiff',
      +      'css'   =>  'text/css',
      +      'html'  =>  'text/html',
      +      'htm'   =>  'text/html',
      +      'shtml' =>  'text/html',
      +      'txt'   =>  'text/plain',
      +      'text'  =>  'text/plain',
      +      'log'   =>  'text/plain',
      +      'rtx'   =>  'text/richtext',
      +      'rtf'   =>  'text/rtf',
      +      'xml'   =>  'text/xml',
      +      'xsl'   =>  'text/xml',
      +      'mpeg'  =>  'video/mpeg',
      +      'mpg'   =>  'video/mpeg',
      +      'mpe'   =>  'video/mpeg',
      +      'qt'    =>  'video/quicktime',
      +      'mov'   =>  'video/quicktime',
      +      'avi'   =>  'video/x-msvideo',
      +      'movie' =>  'video/x-sgi-movie',
      +      'doc'   =>  'application/msword',
      +      'word'  =>  'application/msword',
      +      'xl'    =>  'application/excel',
      +      'eml'   =>  'message/rfc822'
      +    );
      +    return ( ! isset($mimes[strtolower($ext)])) ? 'application/octet-stream' : $mimes[strtolower($ext)];
      +  }
      +
      +  /**
      +   * Set (or reset) Class Objects (variables)
      +   *
      +   * Usage Example:
      +   * $page->set('X-Priority', '3');
      +   *
      +   * @access public
      +   * @param string $name Parameter Name
      +   * @param mixed $value Parameter Value
      +   * NOTE: will not work with arrays, there are no arrays to set/reset
      +   */
      +  function set ( $name, $value = '' ) {
      +    if ( isset($this->$name) ) {
      +      $this->$name = $value;
      +    } else {
      +      $this->SetError('Cannot set or reset variable ' . $name);
      +      return false;
      +    }
      +  }
      +
      +  /**
      +   * Read a file from a supplied filename and return it.
      +   *
      +   * @access public
      +   * @param string $filename Parameter File Name
      +   */
      +  function getFile($filename) {
      +    $return = '';
      +    if ($fp = fopen($filename, 'rb')) {
      +      while (!feof($fp)) {
      +        $return .= fread($fp, 1024);
      +      }
      +      fclose($fp);
      +      return $return;
      +    } else {
      +      return false;
      +    }
      +  }
      +
      +  /**
      +   * Strips newlines to prevent header injection.
      +   * @access private
      +   * @param string $str String
      +   * @return string
      +   */
      +  function SecureHeader($str) {
      +    $str = trim($str);
      +    $str = str_replace("\r", "", $str);
      +    $str = str_replace("\n", "", $str);
      +    return $str;
      +  }
      +
      +  /**
      +   * Set the private key file and password to sign the message.
      +   *
      +   * @access public
      +   * @param string $key_filename Parameter File Name
      +   * @param string $key_pass Password for private key
      +   */
      +  function Sign($key_filename, $key_pass) {
      +    $this->sign_key_file = $key_filename;
      +    $this->sign_key_pass = $key_pass;
      +  }
      +
      +}
      +
      +?>
      diff --git a/usr/plugins/PostToQzone/smtp.php b/usr/plugins/PostToQzone/smtp.php
      new file mode 100644
      index 00000000..048bd0f7
      --- /dev/null
      +++ b/usr/plugins/PostToQzone/smtp.php
      @@ -0,0 +1,1062 @@
      +<?php
      +/*~ class.smtp.php
      +.---------------------------------------------------------------------------.
      +|  Software: PHPMailer - PHP email class                                    |
      +|   Version: 2.0.2                                                          |
      +|   Contact: via sourceforge.net support pages (also www.codeworxtech.com)  |
      +|      Info: http://phpmailer.sourceforge.net                               |
      +|   Support: http://sourceforge.net/projects/phpmailer/                     |
      +| ------------------------------------------------------------------------- |
      +|    Author: Andy Prevost (project admininistrator)                         |
      +|    Author: Brent R. Matzelle (original founder)                           |
      +| Copyright (c) 2004-2007, Andy Prevost. All Rights Reserved.               |
      +| Copyright (c) 2001-2003, Brent R. Matzelle                                |
      +| ------------------------------------------------------------------------- |
      +|   License: Distributed under the Lesser General Public License (LGPL)     |
      +|            http://www.gnu.org/copyleft/lesser.html                        |
      +| This program is distributed in the hope that it will be useful - WITHOUT  |
      +| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or     |
      +| FITNESS FOR A PARTICULAR PURPOSE.                                         |
      +| ------------------------------------------------------------------------- |
      +| We offer a number of paid services (www.codeworxtech.com):                |
      +| - Web Hosting on highly optimized fast and secure servers                 |
      +| - Technology Consulting                                                   |
      +| - Oursourcing (highly qualified programmers and graphic designers)        |
      +'---------------------------------------------------------------------------'
      + */
      +/**
      + * SMTP is rfc 821 compliant and implements all the rfc 821 SMTP
      + * commands except TURN which will always return a not implemented
      + * error. SMTP also provides some utility methods for sending mail
      + * to an SMTP server.
      + * @package PHPMailer
      + * @author Chris Ryan
      + */
      +
      +class SMTP
      +{
      +  /**
      +   *  SMTP server port
      +   *  @var int
      +   */
      +  var $SMTP_PORT = 25;
      +
      +  /**
      +   *  SMTP reply line ending
      +   *  @var string
      +   */
      +  var $CRLF = "\r\n";
      +
      +  /**
      +   *  Sets whether debugging is turned on
      +   *  @var bool
      +   */
      +  var $do_debug;       # the level of debug to perform
      +
      +  /**
      +   *  Sets VERP use on/off (default is off)
      +   *  @var bool
      +   */
      +  var $do_verp = false;
      +
      +  /**#@+
      +   * @access private
      +   */
      +  var $smtp_conn;      # the socket to the server
      +  var $error;          # error if any on the last call
      +  var $helo_rply;      # the reply the server sent to us for HELO
      +  /**#@-*/
      +
      +  /**
      +   * Initialize the class so that the data is in a known state.
      +   * @access public
      +   * @return void
      +   */
      +  function SMTP() {
      +    $this->smtp_conn = 0;
      +    $this->error = null;
      +    $this->helo_rply = null;
      +
      +    $this->do_debug = 0;
      +  }
      +
      +  /*************************************************************
      +   *                    CONNECTION FUNCTIONS                  *
      +   ***********************************************************/
      +
      +  /**
      +   * Connect to the server specified on the port specified.
      +   * If the port is not specified use the default SMTP_PORT.
      +   * If tval is specified then a connection will try and be
      +   * established with the server for that number of seconds.
      +   * If tval is not specified the default is 30 seconds to
      +   * try on the connection.
      +   *
      +   * SMTP CODE SUCCESS: 220
      +   * SMTP CODE FAILURE: 421
      +   * @access public
      +   * @return bool
      +   */
      +  function Connect($host,$port=0,$tval=30) {
      +    # set the error val to null so there is no confusion
      +    $this->error = null;
      +
      +    # make sure we are __not__ connected
      +    if($this->connected()) {
      +      # ok we are connected! what should we do?
      +      # for now we will just give an error saying we
      +      # are already connected
      +      $this->error = array("error" => "Already connected to a server");
      +      return false;
      +    }
      +
      +    if(empty($port)) {
      +      $port = $this->SMTP_PORT;
      +    }
      +
      +    #connect to the smtp server
      +    $this->smtp_conn = fsockopen($host,    # the host of the server
      +                                 $port,    # the port to use
      +                                 $errno,   # error number if any
      +                                 $errstr,  # error message if any
      +                                 $tval);   # give up after ? secs
      +    # verify we connected properly
      +    if(empty($this->smtp_conn)) {
      +      $this->error = array("error" => "Failed to connect to server",
      +                           "errno" => $errno,
      +                           "errstr" => $errstr);
      +      if($this->do_debug >= 1) {
      +        echo "SMTP -> ERROR: " . $this->error["error"] .
      +                 ": $errstr ($errno)" . $this->CRLF;
      +      }
      +      return false;
      +    }
      +
      +    # sometimes the SMTP server takes a little longer to respond
      +    # so we will give it a longer timeout for the first read
      +    // Windows still does not have support for this timeout function
      +    if(substr(PHP_OS, 0, 3) != "WIN")
      +     socket_set_timeout($this->smtp_conn, $tval, 0);
      +
      +    # get any announcement stuff
      +    $announce = $this->get_lines();
      +
      +    # set the timeout  of any socket functions at 1/10 of a second
      +    //if(function_exists("socket_set_timeout"))
      +    //   socket_set_timeout($this->smtp_conn, 0, 100000);
      +
      +    if($this->do_debug >= 2) {
      +      echo "SMTP -> FROM SERVER:" . $this->CRLF . $announce;
      +    }
      +
      +    return true;
      +  }
      +
      +  /**
      +   * Performs SMTP authentication.  Must be run after running the
      +   * Hello() method.  Returns true if successfully authenticated.
      +   * @access public
      +   * @return bool
      +   */
      +  function Authenticate($username, $password) {
      +    // Start authentication
      +    fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF);
      +
      +    $rply = $this->get_lines();
      +    $code = substr($rply,0,3);
      +
      +    if($code != 334) {
      +      $this->error =
      +        array("error" => "AUTH not accepted from server",
      +              "smtp_code" => $code,
      +              "smtp_msg" => substr($rply,4));
      +      if($this->do_debug >= 1) {
      +        echo "SMTP -> ERROR: " . $this->error["error"] .
      +                 ": " . $rply . $this->CRLF;
      +      }
      +      return false;
      +    }
      +
      +    // Send encoded username
      +    fputs($this->smtp_conn, base64_encode($username) . $this->CRLF);
      +
      +    $rply = $this->get_lines();
      +    $code = substr($rply,0,3);
      +
      +    if($code != 334) {
      +      $this->error =
      +        array("error" => "Username not accepted from server",
      +              "smtp_code" => $code,
      +              "smtp_msg" => substr($rply,4));
      +      if($this->do_debug >= 1) {
      +        echo "SMTP -> ERROR: " . $this->error["error"] .
      +                 ": " . $rply . $this->CRLF;
      +      }
      +      return false;
      +    }
      +
      +    // Send encoded password
      +    fputs($this->smtp_conn, base64_encode($password) . $this->CRLF);
      +
      +    $rply = $this->get_lines();
      +    $code = substr($rply,0,3);
      +
      +    if($code != 235) {
      +      $this->error =
      +        array("error" => "Password not accepted from server",
      +              "smtp_code" => $code,
      +              "smtp_msg" => substr($rply,4));
      +      if($this->do_debug >= 1) {
      +        echo "SMTP -> ERROR: " . $this->error["error"] .
      +                 ": " . $rply . $this->CRLF;
      +      }
      +      return false;
      +    }
      +
      +    return true;
      +  }
      +
      +  /**
      +   * Returns true if connected to a server otherwise false
      +   * @access private
      +   * @return bool
      +   */
      +  function Connected() {
      +    if(!empty($this->smtp_conn)) {
      +      $sock_status = socket_get_status($this->smtp_conn);
      +      if($sock_status["eof"]) {
      +        # hmm this is an odd situation... the socket is
      +        # valid but we are not connected anymore
      +        if($this->do_debug >= 1) {
      +            echo "SMTP -> NOTICE:" . $this->CRLF .
      +                 "EOF caught while checking if connected";
      +        }
      +        $this->Close();
      +        return false;
      +      }
      +      return true; # everything looks good
      +    }
      +    return false;
      +  }
      +
      +  /**
      +   * Closes the socket and cleans up the state of the class.
      +   * It is not considered good to use this function without
      +   * first trying to use QUIT.
      +   * @access public
      +   * @return void
      +   */
      +  function Close() {
      +    $this->error = null; # so there is no confusion
      +    $this->helo_rply = null;
      +    if(!empty($this->smtp_conn)) {
      +      # close the connection and cleanup
      +      fclose($this->smtp_conn);
      +      $this->smtp_conn = 0;
      +    }
      +  }
      +
      +  /***************************************************************
      +   *                        SMTP COMMANDS                       *
      +   *************************************************************/
      +
      +  /**
      +   * Issues a data command and sends the msg_data to the server
      +   * finializing the mail transaction. $msg_data is the message
      +   * that is to be send with the headers. Each header needs to be
      +   * on a single line followed by a <CRLF> with the message headers
      +   * and the message body being seperated by and additional <CRLF>.
      +   *
      +   * Implements rfc 821: DATA <CRLF>
      +   *
      +   * SMTP CODE INTERMEDIATE: 354
      +   *     [data]
      +   *     <CRLF>.<CRLF>
      +   *     SMTP CODE SUCCESS: 250
      +   *     SMTP CODE FAILURE: 552,554,451,452
      +   * SMTP CODE FAILURE: 451,554
      +   * SMTP CODE ERROR  : 500,501,503,421
      +   * @access public
      +   * @return bool
      +   */
      +  function Data($msg_data) {
      +    $this->error = null; # so no confusion is caused
      +
      +    if(!$this->connected()) {
      +      $this->error = array(
      +              "error" => "Called Data() without being connected");
      +      return false;
      +    }
      +
      +    fputs($this->smtp_conn,"DATA" . $this->CRLF);
      +
      +    $rply = $this->get_lines();
      +    $code = substr($rply,0,3);
      +
      +    if($this->do_debug >= 2) {
      +      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
      +    }
      +
      +    if($code != 354) {
      +      $this->error =
      +        array("error" => "DATA command not accepted from server",
      +              "smtp_code" => $code,
      +              "smtp_msg" => substr($rply,4));
      +      if($this->do_debug >= 1) {
      +        echo "SMTP -> ERROR: " . $this->error["error"] .
      +                 ": " . $rply . $this->CRLF;
      +      }
      +      return false;
      +    }
      +
      +    # the server is ready to accept data!
      +    # according to rfc 821 we should not send more than 1000
      +    # including the CRLF
      +    # characters on a single line so we will break the data up
      +    # into lines by \r and/or \n then if needed we will break
      +    # each of those into smaller lines to fit within the limit.
      +    # in addition we will be looking for lines that start with
      +    # a period '.' and append and additional period '.' to that
      +    # line. NOTE: this does not count towards are limit.
      +
      +    # normalize the line breaks so we know the explode works
      +    $msg_data = str_replace("\r\n","\n",$msg_data);
      +    $msg_data = str_replace("\r","\n",$msg_data);
      +    $lines = explode("\n",$msg_data);
      +
      +    # we need to find a good way to determine is headers are
      +    # in the msg_data or if it is a straight msg body
      +    # currently I am assuming rfc 822 definitions of msg headers
      +    # and if the first field of the first line (':' sperated)
      +    # does not contain a space then it _should_ be a header
      +    # and we can process all lines before a blank "" line as
      +    # headers.
      +    $field = substr($lines[0],0,strpos($lines[0],":"));
      +    $in_headers = false;
      +    if(!empty($field) && !strstr($field," ")) {
      +      $in_headers = true;
      +    }
      +
      +    $max_line_length = 998; # used below; set here for ease in change
      +
      +    while(list(,$line) = @each($lines)) {
      +      $lines_out = null;
      +      if($line == "" && $in_headers) {
      +        $in_headers = false;
      +      }
      +      # ok we need to break this line up into several
      +      # smaller lines
      +      while(strlen($line) > $max_line_length) {
      +        $pos = strrpos(substr($line,0,$max_line_length)," ");
      +
      +        # Patch to fix DOS attack
      +        if(!$pos) {
      +          $pos = $max_line_length - 1;
      +        }
      +
      +        $lines_out[] = substr($line,0,$pos);
      +        $line = substr($line,$pos + 1);
      +        # if we are processing headers we need to
      +        # add a LWSP-char to the front of the new line
      +        # rfc 822 on long msg headers
      +        if($in_headers) {
      +          $line = "\t" . $line;
      +        }
      +      }
      +      $lines_out[] = $line;
      +
      +      # now send the lines to the server
      +      while(list(,$line_out) = @each($lines_out)) {
      +        if(strlen($line_out) > 0)
      +        {
      +          if(substr($line_out, 0, 1) == ".") {
      +            $line_out = "." . $line_out;
      +          }
      +        }
      +        fputs($this->smtp_conn,$line_out . $this->CRLF);
      +      }
      +    }
      +
      +    # ok all the message data has been sent so lets get this
      +    # over with aleady
      +    fputs($this->smtp_conn, $this->CRLF . "." . $this->CRLF);
      +
      +    $rply = $this->get_lines();
      +    $code = substr($rply,0,3);
      +
      +    if($this->do_debug >= 2) {
      +      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
      +    }
      +
      +    if($code != 250) {
      +      $this->error =
      +        array("error" => "DATA not accepted from server",
      +              "smtp_code" => $code,
      +              "smtp_msg" => substr($rply,4));
      +      if($this->do_debug >= 1) {
      +        echo "SMTP -> ERROR: " . $this->error["error"] .
      +                 ": " . $rply . $this->CRLF;
      +      }
      +      return false;
      +    }
      +    return true;
      +  }
      +
      +  /**
      +   * Expand takes the name and asks the server to list all the
      +   * people who are members of the _list_. Expand will return
      +   * back and array of the result or false if an error occurs.
      +   * Each value in the array returned has the format of:
      +   *     [ <full-name> <sp> ] <path>
      +   * The definition of <path> is defined in rfc 821
      +   *
      +   * Implements rfc 821: EXPN <SP> <string> <CRLF>
      +   *
      +   * SMTP CODE SUCCESS: 250
      +   * SMTP CODE FAILURE: 550
      +   * SMTP CODE ERROR  : 500,501,502,504,421
      +   * @access public
      +   * @return string array
      +   */
      +  function Expand($name) {
      +    $this->error = null; # so no confusion is caused
      +
      +    if(!$this->connected()) {
      +      $this->error = array(
      +            "error" => "Called Expand() without being connected");
      +      return false;
      +    }
      +
      +    fputs($this->smtp_conn,"EXPN " . $name . $this->CRLF);
      +
      +    $rply = $this->get_lines();
      +    $code = substr($rply,0,3);
      +
      +    if($this->do_debug >= 2) {
      +      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
      +    }
      +
      +    if($code != 250) {
      +      $this->error =
      +        array("error" => "EXPN not accepted from server",
      +              "smtp_code" => $code,
      +              "smtp_msg" => substr($rply,4));
      +      if($this->do_debug >= 1) {
      +        echo "SMTP -> ERROR: " . $this->error["error"] .
      +                 ": " . $rply . $this->CRLF;
      +      }
      +      return false;
      +    }
      +
      +    # parse the reply and place in our array to return to user
      +    $entries = explode($this->CRLF,$rply);
      +    while(list(,$l) = @each($entries)) {
      +      $list[] = substr($l,4);
      +    }
      +
      +    return $list;
      +  }
      +
      +  /**
      +   * Sends the HELO command to the smtp server.
      +   * This makes sure that we and the server are in
      +   * the same known state.
      +   *
      +   * Implements from rfc 821: HELO <SP> <domain> <CRLF>
      +   *
      +   * SMTP CODE SUCCESS: 250
      +   * SMTP CODE ERROR  : 500, 501, 504, 421
      +   * @access public
      +   * @return bool
      +   */
      +  function Hello($host="") {
      +    $this->error = null; # so no confusion is caused
      +
      +    if(!$this->connected()) {
      +      $this->error = array(
      +            "error" => "Called Hello() without being connected");
      +      return false;
      +    }
      +
      +    # if a hostname for the HELO was not specified determine
      +    # a suitable one to send
      +    if(empty($host)) {
      +      # we need to determine some sort of appopiate default
      +      # to send to the server
      +      $host = "localhost";
      +    }
      +
      +    // Send extended hello first (RFC 2821)
      +    if(!$this->SendHello("EHLO", $host))
      +    {
      +      if(!$this->SendHello("HELO", $host))
      +          return false;
      +    }
      +
      +    return true;
      +  }
      +
      +  /**
      +   * Sends a HELO/EHLO command.
      +   * @access private
      +   * @return bool
      +   */
      +  function SendHello($hello, $host) {
      +    fputs($this->smtp_conn, $hello . " " . $host . $this->CRLF);
      +
      +    $rply = $this->get_lines();
      +    $code = substr($rply,0,3);
      +
      +    if($this->do_debug >= 2) {
      +      echo "SMTP -> FROM SERVER: " . $this->CRLF . $rply;
      +    }
      +
      +    if($code != 250) {
      +      $this->error =
      +        array("error" => $hello . " not accepted from server",
      +              "smtp_code" => $code,
      +              "smtp_msg" => substr($rply,4));
      +      if($this->do_debug >= 1) {
      +        echo "SMTP -> ERROR: " . $this->error["error"] .
      +                 ": " . $rply . $this->CRLF;
      +      }
      +      return false;
      +    }
      +
      +    $this->helo_rply = $rply;
      +
      +    return true;
      +  }
      +
      +  /**
      +   * Gets help information on the keyword specified. If the keyword
      +   * is not specified then returns generic help, ussually contianing
      +   * A list of keywords that help is available on. This function
      +   * returns the results back to the user. It is up to the user to
      +   * handle the returned data. If an error occurs then false is
      +   * returned with $this->error set appropiately.
      +   *
      +   * Implements rfc 821: HELP [ <SP> <string> ] <CRLF>
      +   *
      +   * SMTP CODE SUCCESS: 211,214
      +   * SMTP CODE ERROR  : 500,501,502,504,421
      +   * @access public
      +   * @return string
      +   */
      +  function Help($keyword="") {
      +    $this->error = null; # to avoid confusion
      +
      +    if(!$this->connected()) {
      +      $this->error = array(
      +              "error" => "Called Help() without being connected");
      +      return false;
      +    }
      +
      +    $extra = "";
      +    if(!empty($keyword)) {
      +      $extra = " " . $keyword;
      +    }
      +
      +    fputs($this->smtp_conn,"HELP" . $extra . $this->CRLF);
      +
      +    $rply = $this->get_lines();
      +    $code = substr($rply,0,3);
      +
      +    if($this->do_debug >= 2) {
      +      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
      +    }
      +
      +    if($code != 211 && $code != 214) {
      +      $this->error =
      +        array("error" => "HELP not accepted from server",
      +              "smtp_code" => $code,
      +              "smtp_msg" => substr($rply,4));
      +      if($this->do_debug >= 1) {
      +        echo "SMTP -> ERROR: " . $this->error["error"] .
      +                 ": " . $rply . $this->CRLF;
      +      }
      +      return false;
      +    }
      +
      +    return $rply;
      +  }
      +
      +  /**
      +   * Starts a mail transaction from the email address specified in
      +   * $from. Returns true if successful or false otherwise. If True
      +   * the mail transaction is started and then one or more Recipient
      +   * commands may be called followed by a Data command.
      +   *
      +   * Implements rfc 821: MAIL <SP> FROM:<reverse-path> <CRLF>
      +   *
      +   * SMTP CODE SUCCESS: 250
      +   * SMTP CODE SUCCESS: 552,451,452
      +   * SMTP CODE SUCCESS: 500,501,421
      +   * @access public
      +   * @return bool
      +   */
      +  function Mail($from) {
      +    $this->error = null; # so no confusion is caused
      +
      +    if(!$this->connected()) {
      +      $this->error = array(
      +              "error" => "Called Mail() without being connected");
      +      return false;
      +    }
      +
      +    $useVerp = ($this->do_verp ? "XVERP" : "");
      +    fputs($this->smtp_conn,"MAIL FROM:<" . $from . ">" . $useVerp . $this->CRLF);
      +
      +    $rply = $this->get_lines();
      +    $code = substr($rply,0,3);
      +
      +    if($this->do_debug >= 2) {
      +      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
      +    }
      +
      +    if($code != 250) {
      +      $this->error =
      +        array("error" => "MAIL not accepted from server",
      +              "smtp_code" => $code,
      +              "smtp_msg" => substr($rply,4));
      +      if($this->do_debug >= 1) {
      +        echo "SMTP -> ERROR: " . $this->error["error"] .
      +                 ": " . $rply . $this->CRLF;
      +      }
      +      return false;
      +    }
      +    return true;
      +  }
      +
      +  /**
      +   * Sends the command NOOP to the SMTP server.
      +   *
      +   * Implements from rfc 821: NOOP <CRLF>
      +   *
      +   * SMTP CODE SUCCESS: 250
      +   * SMTP CODE ERROR  : 500, 421
      +   * @access public
      +   * @return bool
      +   */
      +  function Noop() {
      +    $this->error = null; # so no confusion is caused
      +
      +    if(!$this->connected()) {
      +      $this->error = array(
      +              "error" => "Called Noop() without being connected");
      +      return false;
      +    }
      +
      +    fputs($this->smtp_conn,"NOOP" . $this->CRLF);
      +
      +    $rply = $this->get_lines();
      +    $code = substr($rply,0,3);
      +
      +    if($this->do_debug >= 2) {
      +      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
      +    }
      +
      +    if($code != 250) {
      +      $this->error =
      +        array("error" => "NOOP not accepted from server",
      +              "smtp_code" => $code,
      +              "smtp_msg" => substr($rply,4));
      +      if($this->do_debug >= 1) {
      +        echo "SMTP -> ERROR: " . $this->error["error"] .
      +                 ": " . $rply . $this->CRLF;
      +      }
      +      return false;
      +    }
      +    return true;
      +  }
      +
      +  /**
      +   * Sends the quit command to the server and then closes the socket
      +   * if there is no error or the $close_on_error argument is true.
      +   *
      +   * Implements from rfc 821: QUIT <CRLF>
      +   *
      +   * SMTP CODE SUCCESS: 221
      +   * SMTP CODE ERROR  : 500
      +   * @access public
      +   * @return bool
      +   */
      +  function Quit($close_on_error=true) {
      +    $this->error = null; # so there is no confusion
      +
      +    if(!$this->connected()) {
      +      $this->error = array(
      +              "error" => "Called Quit() without being connected");
      +      return false;
      +    }
      +
      +    # send the quit command to the server
      +    fputs($this->smtp_conn,"quit" . $this->CRLF);
      +
      +    # get any good-bye messages
      +    $byemsg = $this->get_lines();
      +
      +    if($this->do_debug >= 2) {
      +      echo "SMTP -> FROM SERVER:" . $this->CRLF . $byemsg;
      +    }
      +
      +    $rval = true;
      +    $e = null;
      +
      +    $code = substr($byemsg,0,3);
      +    if($code != 221) {
      +      # use e as a tmp var cause Close will overwrite $this->error
      +      $e = array("error" => "SMTP server rejected quit command",
      +                 "smtp_code" => $code,
      +                 "smtp_rply" => substr($byemsg,4));
      +      $rval = false;
      +      if($this->do_debug >= 1) {
      +        echo "SMTP -> ERROR: " . $e["error"] . ": " .
      +                 $byemsg . $this->CRLF;
      +      }
      +    }
      +
      +    if(empty($e) || $close_on_error) {
      +      $this->Close();
      +    }
      +
      +    return $rval;
      +  }
      +
      +  /**
      +   * Sends the command RCPT to the SMTP server with the TO: argument of $to.
      +   * Returns true if the recipient was accepted false if it was rejected.
      +   *
      +   * Implements from rfc 821: RCPT <SP> TO:<forward-path> <CRLF>
      +   *
      +   * SMTP CODE SUCCESS: 250,251
      +   * SMTP CODE FAILURE: 550,551,552,553,450,451,452
      +   * SMTP CODE ERROR  : 500,501,503,421
      +   * @access public
      +   * @return bool
      +   */
      +  function Recipient($to) {
      +    $this->error = null; # so no confusion is caused
      +
      +    if(!$this->connected()) {
      +      $this->error = array(
      +              "error" => "Called Recipient() without being connected");
      +      return false;
      +    }
      +
      +    fputs($this->smtp_conn,"RCPT TO:<" . $to . ">" . $this->CRLF);
      +
      +    $rply = $this->get_lines();
      +    $code = substr($rply,0,3);
      +
      +    if($this->do_debug >= 2) {
      +      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
      +    }
      +
      +    if($code != 250 && $code != 251) {
      +      $this->error =
      +        array("error" => "RCPT not accepted from server",
      +              "smtp_code" => $code,
      +              "smtp_msg" => substr($rply,4));
      +      if($this->do_debug >= 1) {
      +        echo "SMTP -> ERROR: " . $this->error["error"] .
      +                 ": " . $rply . $this->CRLF;
      +      }
      +      return false;
      +    }
      +    return true;
      +  }
      +
      +  /**
      +   * Sends the RSET command to abort and transaction that is
      +   * currently in progress. Returns true if successful false
      +   * otherwise.
      +   *
      +   * Implements rfc 821: RSET <CRLF>
      +   *
      +   * SMTP CODE SUCCESS: 250
      +   * SMTP CODE ERROR  : 500,501,504,421
      +   * @access public
      +   * @return bool
      +   */
      +  function Reset() {
      +    $this->error = null; # so no confusion is caused
      +
      +    if(!$this->connected()) {
      +      $this->error = array(
      +              "error" => "Called Reset() without being connected");
      +      return false;
      +    }
      +
      +    fputs($this->smtp_conn,"RSET" . $this->CRLF);
      +
      +    $rply = $this->get_lines();
      +    $code = substr($rply,0,3);
      +
      +    if($this->do_debug >= 2) {
      +      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
      +    }
      +
      +    if($code != 250) {
      +      $this->error =
      +        array("error" => "RSET failed",
      +              "smtp_code" => $code,
      +              "smtp_msg" => substr($rply,4));
      +      if($this->do_debug >= 1) {
      +        echo "SMTP -> ERROR: " . $this->error["error"] .
      +                 ": " . $rply . $this->CRLF;
      +      }
      +      return false;
      +    }
      +
      +    return true;
      +  }
      +
      +  /**
      +   * Starts a mail transaction from the email address specified in
      +   * $from. Returns true if successful or false otherwise. If True
      +   * the mail transaction is started and then one or more Recipient
      +   * commands may be called followed by a Data command. This command
      +   * will send the message to the users terminal if they are logged
      +   * in.
      +   *
      +   * Implements rfc 821: SEND <SP> FROM:<reverse-path> <CRLF>
      +   *
      +   * SMTP CODE SUCCESS: 250
      +   * SMTP CODE SUCCESS: 552,451,452
      +   * SMTP CODE SUCCESS: 500,501,502,421
      +   * @access public
      +   * @return bool
      +   */
      +  function Send($from) {
      +    $this->error = null; # so no confusion is caused
      +
      +    if(!$this->connected()) {
      +      $this->error = array(
      +              "error" => "Called Send() without being connected");
      +      return false;
      +    }
      +
      +    fputs($this->smtp_conn,"SEND FROM:" . $from . $this->CRLF);
      +
      +    $rply = $this->get_lines();
      +    $code = substr($rply,0,3);
      +
      +    if($this->do_debug >= 2) {
      +      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
      +    }
      +
      +    if($code != 250) {
      +      $this->error =
      +        array("error" => "SEND not accepted from server",
      +              "smtp_code" => $code,
      +              "smtp_msg" => substr($rply,4));
      +      if($this->do_debug >= 1) {
      +        echo "SMTP -> ERROR: " . $this->error["error"] .
      +                 ": " . $rply . $this->CRLF;
      +      }
      +      return false;
      +    }
      +    return true;
      +  }
      +
      +  /**
      +   * Starts a mail transaction from the email address specified in
      +   * $from. Returns true if successful or false otherwise. If True
      +   * the mail transaction is started and then one or more Recipient
      +   * commands may be called followed by a Data command. This command
      +   * will send the message to the users terminal if they are logged
      +   * in and send them an email.
      +   *
      +   * Implements rfc 821: SAML <SP> FROM:<reverse-path> <CRLF>
      +   *
      +   * SMTP CODE SUCCESS: 250
      +   * SMTP CODE SUCCESS: 552,451,452
      +   * SMTP CODE SUCCESS: 500,501,502,421
      +   * @access public
      +   * @return bool
      +   */
      +  function SendAndMail($from) {
      +    $this->error = null; # so no confusion is caused
      +
      +    if(!$this->connected()) {
      +      $this->error = array(
      +          "error" => "Called SendAndMail() without being connected");
      +      return false;
      +    }
      +
      +    fputs($this->smtp_conn,"SAML FROM:" . $from . $this->CRLF);
      +
      +    $rply = $this->get_lines();
      +    $code = substr($rply,0,3);
      +
      +    if($this->do_debug >= 2) {
      +      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
      +    }
      +
      +    if($code != 250) {
      +      $this->error =
      +        array("error" => "SAML not accepted from server",
      +              "smtp_code" => $code,
      +              "smtp_msg" => substr($rply,4));
      +      if($this->do_debug >= 1) {
      +        echo "SMTP -> ERROR: " . $this->error["error"] .
      +                 ": " . $rply . $this->CRLF;
      +      }
      +      return false;
      +    }
      +    return true;
      +  }
      +
      +  /**
      +   * Starts a mail transaction from the email address specified in
      +   * $from. Returns true if successful or false otherwise. If True
      +   * the mail transaction is started and then one or more Recipient
      +   * commands may be called followed by a Data command. This command
      +   * will send the message to the users terminal if they are logged
      +   * in or mail it to them if they are not.
      +   *
      +   * Implements rfc 821: SOML <SP> FROM:<reverse-path> <CRLF>
      +   *
      +   * SMTP CODE SUCCESS: 250
      +   * SMTP CODE SUCCESS: 552,451,452
      +   * SMTP CODE SUCCESS: 500,501,502,421
      +   * @access public
      +   * @return bool
      +   */
      +  function SendOrMail($from) {
      +    $this->error = null; # so no confusion is caused
      +
      +    if(!$this->connected()) {
      +      $this->error = array(
      +          "error" => "Called SendOrMail() without being connected");
      +      return false;
      +    }
      +
      +    fputs($this->smtp_conn,"SOML FROM:" . $from . $this->CRLF);
      +
      +    $rply = $this->get_lines();
      +    $code = substr($rply,0,3);
      +
      +    if($this->do_debug >= 2) {
      +      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
      +    }
      +
      +    if($code != 250) {
      +      $this->error =
      +        array("error" => "SOML not accepted from server",
      +              "smtp_code" => $code,
      +              "smtp_msg" => substr($rply,4));
      +      if($this->do_debug >= 1) {
      +        echo "SMTP -> ERROR: " . $this->error["error"] .
      +                 ": " . $rply . $this->CRLF;
      +      }
      +      return false;
      +    }
      +    return true;
      +  }
      +
      +  /**
      +   * This is an optional command for SMTP that this class does not
      +   * support. This method is here to make the RFC821 Definition
      +   * complete for this class and __may__ be implimented in the future
      +   *
      +   * Implements from rfc 821: TURN <CRLF>
      +   *
      +   * SMTP CODE SUCCESS: 250
      +   * SMTP CODE FAILURE: 502
      +   * SMTP CODE ERROR  : 500, 503
      +   * @access public
      +   * @return bool
      +   */
      +  function Turn() {
      +    $this->error = array("error" => "This method, TURN, of the SMTP ".
      +                                    "is not implemented");
      +    if($this->do_debug >= 1) {
      +      echo "SMTP -> NOTICE: " . $this->error["error"] . $this->CRLF;
      +    }
      +    return false;
      +  }
      +
      +  /**
      +   * Verifies that the name is recognized by the server.
      +   * Returns false if the name could not be verified otherwise
      +   * the response from the server is returned.
      +   *
      +   * Implements rfc 821: VRFY <SP> <string> <CRLF>
      +   *
      +   * SMTP CODE SUCCESS: 250,251
      +   * SMTP CODE FAILURE: 550,551,553
      +   * SMTP CODE ERROR  : 500,501,502,421
      +   * @access public
      +   * @return int
      +   */
      +  function Verify($name) {
      +    $this->error = null; # so no confusion is caused
      +
      +    if(!$this->connected()) {
      +      $this->error = array(
      +              "error" => "Called Verify() without being connected");
      +      return false;
      +    }
      +
      +    fputs($this->smtp_conn,"VRFY " . $name . $this->CRLF);
      +
      +    $rply = $this->get_lines();
      +    $code = substr($rply,0,3);
      +
      +    if($this->do_debug >= 2) {
      +      echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
      +    }
      +
      +    if($code != 250 && $code != 251) {
      +      $this->error =
      +        array("error" => "VRFY failed on name '$name'",
      +              "smtp_code" => $code,
      +              "smtp_msg" => substr($rply,4));
      +      if($this->do_debug >= 1) {
      +        echo "SMTP -> ERROR: " . $this->error["error"] .
      +                 ": " . $rply . $this->CRLF;
      +      }
      +      return false;
      +    }
      +    return $rply;
      +  }
      +
      +  /*******************************************************************
      +   *                       INTERNAL FUNCTIONS                       *
      +   ******************************************************************/
      +
      +  /**
      +   * Read in as many lines as possible
      +   * either before eof or socket timeout occurs on the operation.
      +   * With SMTP we can tell if we have more lines to read if the
      +   * 4th character is '-' symbol. If it is a space then we don't
      +   * need to read anything else.
      +   * @access private
      +   * @return string
      +   */
      +  function get_lines() {
      +    $data = "";
      +    while($str = @fgets($this->smtp_conn,515)) {
      +      if($this->do_debug >= 4) {
      +        echo "SMTP -> get_lines(): \$data was \"$data\"" .
      +                 $this->CRLF;
      +        echo "SMTP -> get_lines(): \$str is \"$str\"" .
      +                 $this->CRLF;
      +      }
      +      $data .= $str;
      +      if($this->do_debug >= 4) {
      +        echo "SMTP -> get_lines(): \$data is \"$data\"" . $this->CRLF;
      +      }
      +      # if the 4th character is a space then we are done reading
      +      # so just break the loop
      +      if(substr($str,3,1) == " ") { break; }
      +    }
      +    return $data;
      +  }
      +
      +}
      +
      +
      + ?>
      diff --git a/usr/plugins/SaeUpload/Plugin.php b/usr/plugins/SaeUpload/Plugin.php
      new file mode 100644
      index 00000000..7d3b6f34
      --- /dev/null
      +++ b/usr/plugins/SaeUpload/Plugin.php
      @@ -0,0 +1,270 @@
      +<?php
      +/**
      + * <a href="http://sae.sina.com.cn" target="_blank">Sina App Engine</a>专用的文件上传插件,使用Storage做持久化存储。
      + * 
      + * @package SaeUpload
      + * @author Kimi
      + * @version 1.0.0 Beta
      + * @link http://www.ccvita.com/491.html
      + */
      +class SaeUpload_Plugin implements Typecho_Plugin_Interface
      +{
      +    /**
      +     * 激活插件方法,如果激活失败,直接抛出异常
      +     * 
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function activate()
      +    {
      +        Typecho_Plugin::factory('Widget_Upload')->uploadHandle = array('SaeUpload_Plugin', 'uploadHandle');
      +        Typecho_Plugin::factory('Widget_Upload')->modifyHandle = array('SaeUpload_Plugin', 'modifyHandle');
      +        Typecho_Plugin::factory('Widget_Upload')->deleteHandle = array('SaeUpload_Plugin', 'deleteHandle');
      +        Typecho_Plugin::factory('Widget_Upload')->attachmentHandle = array('SaeUpload_Plugin', 'attachmentHandle');
      +        Typecho_Plugin::factory('Widget_Upload')->attachmentDataHandle = array('SaeUpload_Plugin', 'attachmentDataHandle');
      +        
      +        return _t('请您在 <a href="http://sae.sina.com.cn/?m=storage&app_id='.$_SERVER['HTTP_APPNAME'].'" target="_blank">Sina App Engine控制面板</a> 中创建Storage的Domain: 名称固定为 <strong>typechoupload</strong>');
      +    }
      +    
      +    /**
      +     * 禁用插件方法,如果禁用失败,直接抛出异常
      +     * 
      +     * @static
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function deactivate(){}
      +    
      +    /**
      +     * 获取插件配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form 配置面板
      +     * @return void
      +     */
      +    public static function config(Typecho_Widget_Helper_Form $form)
      +    {
      +        $domainName = new Typecho_Widget_Helper_Form_Element_Text('saestoragedomain', NULL, 'typechoupload',
      +        _t('Domain名称'), _t('请您在 <a href="http://sae.sina.com.cn/?m=storage&app_id='.$_SERVER['HTTP_APPNAME'].'" target="_blank">Sina App Engine控制面板</a> 中创建Storage的Domain: 名称固定为 <strong>typechoupload</strong>'));
      +        $form->addInput($domainName->addRule(array('SaeUpload_Plugin', 'validateDomainName'), _t('Domain名称错误,或者未上传文件!')));
      +    }
      +    
      +    /**
      +     * 个人用户的配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form
      +     * @return void
      +     */
      +    public static function personalConfig(Typecho_Widget_Helper_Form $form){}
      +    
      +    /**
      +     * 验证Sina App Engine Storage中DomainName是否存在
      +     * 
      +     * @access public
      +     * @param string $domainName domainName
      +     * @return boolean
      +     */
      +    public static function validateDomainName($domainName)
      +    {
      +        return true;
      +        /*
      +        $stor = new SaeStorage();
      +        $ret = $stor->getFilesNum($domainName);
      +        if ($ret) {
      +            return true;
      +        } else {
      +            return false;
      +        }
      +        */
      +    }
      +
      +    /**
      +     * 上传文件处理函数
      +     *
      +     * @access public
      +     * @param array $file 上传的文件
      +     * @return mixed
      +     */
      +    public static function uploadHandle($file)
      +    {
      +        if (empty($file['name'])) {
      +            return false;
      +        }
      +
      +        $fileName = preg_split("(\/|\\|:)", $file['name']);
      +        $file['name'] = array_pop($fileName);
      +        
      +        //获取扩展名
      +        $ext = '';
      +        $part = explode('.', $file['name']);
      +        if (($length = count($part)) > 1) {
      +            $ext = strtolower($part[$length - 1]);
      +        }
      +
      +        if (!self::checkFileType($ext)) {
      +            return false;
      +        }
      +
      +        //获取文件名
      +        $fileName = sprintf('%u', crc32(uniqid())) . '.' . $ext;
      +        $path = $path . '/' . $fileName;//add for mkdir
      +
      +        $stor = new SaeStorage();
      +        $options = Typecho_Widget::widget('Widget_Options');
      +        $SaeStorageDomain = $options->plugin('SaeUpload')->saestoragedomain;
      +
      +        if (isset($file['tmp_name'])) {
      +            //移动上传文件
      +            if (!$path = $stor->upload($SaeStorageDomain,$fileName,$file['tmp_name'])) {
      +                return false;
      +            }
      +        } else if (isset($file['bits'])) {
      +            //直接写入文件
      +            if (!$path = $stor->write($SaeStorageDomain,$fileName,$file['bits'])) {
      +                return false;
      +            }
      +        } else {
      +            return false;
      +        }
      +
      +        if (!isset($file['size'])) {
      +            $attr = $stor->getAttr($SaeStorageDomain,$fileName,array('length'));
      +            $file['size'] = $attr['length'];
      +        }
      +
      +        //返回相对存储路径
      +        return array(
      +            'name' => $file['name'],
      +            'path' => $fileName,
      +            'size' => $file['size'],
      +            'type' => $ext,
      +            'mime' => Typecho_Common::mimeContentType($path)
      +        );
      +    }
      +
      +    /**
      +     * 修改文件处理函数
      +     *
      +     * @access public
      +     * @param array $content 老文件
      +     * @param array $file 新上传的文件
      +     * @return mixed
      +     */
      +    public static function modifyHandle($content, $file)
      +    {
      +        if (empty($file['name'])) {
      +            return false;
      +        }
      +
      +        $fileName = preg_split("(\/|\\|:)", $file['name']);
      +        $file['name'] = array_pop($fileName);
      +        
      +        //获取扩展名
      +        $ext = '';
      +        $part = explode('.', $file['name']);
      +        if (($length = count($part)) > 1) {
      +            $ext = strtolower($part[$length - 1]);
      +        }
      +
      +        if ($content['attachment']->type != $ext) {
      +            return false;
      +        }
      +
      +        //获取文件名
      +        $fileName = $content['attachment']->path;
      +        $path = $path . '/' . $fileName;//add for mkdir
      +
      +        $stor = new SaeStorage();
      +        $options = Typecho_Widget::widget('Widget_Options');
      +        $SaeStorageDomain = $options->plugin('SaeUpload')->saestoragedomain;
      +
      +        if (isset($file['tmp_name'])) {
      +            //移动上传文件
      +            if (!$path = $stor->upload($SaeStorageDomain,$fileName,$file['tmp_name'])) {
      +                return false;
      +            }
      +        } else if (isset($file['bits'])) {
      +            //直接写入文件
      +            if (!$path = $stor->write($SaeStorageDomain,$fileName,$file['bits'])) {
      +                return false;
      +            }
      +        } else {
      +            return false;
      +        }
      +
      +        if (!isset($file['size'])) {
      +            $attr = $stor->getAttr($SaeStorageDomain,$fileName,array('length'));
      +            $file['size'] = $attr['length'];
      +        }
      +
      +        //返回相对存储路径
      +        return array(
      +            'name' => $content['attachment']->name,
      +            'path' => $content['attachment']->path,
      +            'size' => $file['size'],
      +            'type' => $content['attachment']->type,
      +            'mime' => $content['attachment']->mime
      +        );
      +    }
      +
      +    /**
      +     * 删除文件
      +     *
      +     * @access public
      +     * @param array $content 文件相关信息
      +     * @return string
      +     */
      +    public static function deleteHandle(array $content)
      +    {
      +        $stor = new SaeStorage();
      +        $options = Typecho_Widget::widget('Widget_Options');
      +        $SaeStorageDomain = $options->plugin('SaeUpload')->saestoragedomain;
      +        return $stor->delete($SaeStorageDomain,$content['attachment']->path);
      +    }
      +
      +    /**
      +     * 获取实际文件绝对访问路径
      +     *
      +     * @access public
      +     * @param array $content 文件相关信息
      +     * @return string
      +     */
      +    public static function attachmentHandle(array $content)
      +    {
      +        $stor = new SaeStorage();
      +        $options = Typecho_Widget::widget('Widget_Options');
      +        $SaeStorageDomain = $options->plugin('SaeUpload')->saestoragedomain;
      +        return $stor->getUrl($SaeStorageDomain,$content['attachment']->path);
      +    }
      +
      +    /**
      +     * 获取实际文件数据
      +     *
      +     * @access public
      +     * @param array $content
      +     * @return string
      +     */
      +    public static function attachmentDataHandle(array $content)
      +    {
      +        $stor = new SaeStorage();
      +        $options = Typecho_Widget::widget('Widget_Options');
      +        $SaeStorageDomain = $options->plugin('SaeUpload')->saestoragedomain;
      +        return $stor->read($SaeStorageDomain,$content['attachment']->path);
      +    }
      +
      +    /**
      +     * 检查文件名
      +     *
      +     * @access private
      +     * @param string $ext 扩展名
      +     * @return boolean
      +     */
      +    public static function checkFileType($ext)
      +    {
      +        $options = Typecho_Widget::widget('Widget_Options');
      +        return in_array($ext, $options->allowedAttachmentTypes);
      +    }
      +}
      diff --git a/usr/plugins/ShareCode/Plugin.php b/usr/plugins/ShareCode/Plugin.php
      new file mode 100644
      index 00000000..1c1618cc
      --- /dev/null
      +++ b/usr/plugins/ShareCode/Plugin.php
      @@ -0,0 +1,78 @@
      +<?php
      +/**
      + * 直接在在文章中插入[embed_snipt:{code_id}]({code_id}为snipt上面的id)就可引用http://snipt.org/上分享的代码
      + * 
      + * @package ShareCode
      + * @author blankyao
      + * @version 1.0.0
      + * @link http://www.blankyao.cn
      + */
      +
      +class ShareCode_Plugin implements Typecho_Plugin_Interface
      +{
      +    /**
      +     * 激活插件方法,如果激活失败,直接抛出异常
      +     * 
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function activate()
      +    {
      +        /** 前端输出处理接口 */
      +        Typecho_Plugin::factory('Widget_Abstract_Contents')->content = array('ShareCode_Plugin', 'parse');
      +        Typecho_Plugin::factory('Widget_Abstract_Contents')->excerpt = array('ShareCode_Plugin', 'parse');
      +    }
      +    
      +    /**
      +     * 禁用插件方法,如果禁用失败,直接抛出异常
      +     * 
      +     * @static
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function deactivate(){}
      +    
      +    /**
      +     * 获取插件配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form 配置面板
      +     * @return void
      +     */
      +    public static function config(Typecho_Widget_Helper_Form $form){}
      +    
      +    /**
      +     * 个人用户的配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form
      +     * @return void
      +     */
      +    public static function personalConfig(Typecho_Widget_Helper_Form $form){}
      +
      +    /**
      +     * 解析内容
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form
      +     * @return void
      +     */
      +    public static function parse($value, $lastResult)
      +    {
      +        $value = empty($lastResult) ? $value : $lastResult;
      +        $regex = '/\[embed_snipt:(.*?)]/i';
      +        preg_match_all( $regex, $value, $matches);
      +        
      +        $count = count($matches[0]);
      +        for($i = 0;$i < $count;$i++) {
      +            $url = $matches[1][$i];
      +            $url = '<script type="text/javascript" src="http://embed.snipt.org/'. $url .'"></script>';
      +            
      +            $value = str_replace($matches[0][$i], $url, $value);
      +        }
      +        
      +        return $value;
      +    }
      +}
      \ No newline at end of file
      diff --git a/usr/plugins/SimpleCode.php b/usr/plugins/SimpleCode.php
      new file mode 100644
      index 00000000..3b674812
      --- /dev/null
      +++ b/usr/plugins/SimpleCode.php
      @@ -0,0 +1,83 @@
      +<?php
      +/**
      + * 解析内容源代码中的code串
      + * 
      + * @package Simple Code 
      + * @author qining
      + * @version 1.0.2
      + * @dependence 9.9.2-*
      + * @link http://typecho.org
      + */
      +class SimpleCode implements Typecho_Plugin_Interface
      +{
      +    /**
      +     * 激活插件方法,如果激活失败,直接抛出异常
      +     * 
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function activate()
      +    {
      +        Typecho_Plugin::factory('Widget_Abstract_Contents')->contentEx = array('SimpleCode', 'parse');
      +        Typecho_Plugin::factory('Widget_Abstract_Contents')->excerptEx = array('SimpleCode', 'parse');
      +        Typecho_Plugin::factory('Widget_Abstract_Comments')->contentEx = array('SimpleCode', 'parse');
      +    }
      +    
      +    /**
      +     * 禁用插件方法,如果禁用失败,直接抛出异常
      +     * 
      +     * @static
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function deactivate(){}
      +    
      +    /**
      +     * 获取插件配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form 配置面板
      +     * @return void
      +     */
      +    public static function config(Typecho_Widget_Helper_Form $form){}
      +    
      +    /**
      +     * 个人用户的配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form
      +     * @return void
      +     */
      +    public static function personalConfig(Typecho_Widget_Helper_Form $form){}
      +    
      +    /**
      +     * 解析
      +     * 
      +     * @access public
      +     * @param array $matches 解析值
      +     * @return string
      +     */
      +    public static function parseCallback($matches)
      +    {
      +        return highlight_string(trim($matches[2]), true);
      +    }
      +    
      +    /**
      +     * 插件实现方法
      +     * 
      +     * @access public
      +     * @return void
      +     */
      +    public static function parse($text, $widget, $lastResult)
      +    {
      +        $text = empty($lastResult) ? $text : $lastResult;
      +        
      +        if ($widget instanceof Widget_Archive || $widget instanceof Widget_Abstract_Comments) {
      +            return preg_replace_callback("/<code(\s*[^>]*)>(.*?)<\/code>/is", array('SimpleCode', 'parseCallback'), $text);
      +        } else {
      +            return $text;
      +        }
      +    }
      +}
      diff --git a/usr/plugins/Textile2/Plugin.php b/usr/plugins/Textile2/Plugin.php
      new file mode 100644
      index 00000000..2e7dae7a
      --- /dev/null
      +++ b/usr/plugins/Textile2/Plugin.php
      @@ -0,0 +1,121 @@
      +<?php
      +/**
      + * This is a wrapper for Jim Riggs' <a href="http://jimandlissa.com/project/textilephp">PHP implementation</a> of <a href="http://bradchoate.com/mt-plugins/textile">Brad Choate's Textile 2</a>.  It is feature compatible with the MovableType plugin. <strong>Does not play well with the Markdown, Textile, or Textile 2 plugins that ship with WordPress.</strong>  Packaged by <a href="http://idly.org/">Adam Gessaman</a>.
      + * 
      + * @package Textile 2 (Improved)
      + * @author Jim Riggs
      + * @version 2.1.1
      + * @dependence 9.9.2-*
      + * @link http://jimandlissa.com/project/textilephp
      + */
      + 
      +require('Textile2/Textile.php');
      +
      +class Textile2_Plugin implements Typecho_Plugin_Interface
      +{
      +    /**
      +     * 激活插件方法,如果激活失败,直接抛出异常
      +     * 
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function activate()
      +    {
      +        Typecho_Plugin::factory('Widget_Abstract_Contents')->excerpt = array('Textile2_Plugin', 'parse');
      +        Typecho_Plugin::factory('Widget_Abstract_Contents')->content = array('Textile2_Plugin', 'parse');
      +        Typecho_Plugin::factory('Widget_Abstract_Comments')->content = array('Textile2_Plugin', 'parse');
      +    }
      +    
      +    /**
      +     * 禁用插件方法,如果禁用失败,直接抛出异常
      +     * 
      +     * @static
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function deactivate(){}
      +    
      +    /**
      +     * 获取插件配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form 配置面板
      +     * @return void
      +     */
      +    public static function config(Typecho_Widget_Helper_Form $form)
      +    {
      +        $version = new Typecho_Widget_Helper_Form_Element_Radio('version', 
      +        array('MTTextile' => 'MTTextile - includes Brad Choates\' extensions.',
      +        'Textile' => 'Textile for the Textile purist.'), 'MTTextile',
      +        'Textile Flavor');
      +        $form->addInput($version->multiMode());
      +
      +        $filters = new Typecho_Widget_Helper_Form_Element_Checkbox('filters', 
      +        array('SmartyPants' => 'Apply SmartyPants (provides em and en dashes, and other typographic niceities)',
      +        'EducateQuotes' => 'Apply Texturize (applies curly quotes)'),
      +        array('SmartyPants', 'EducateQuotes'), 'Text Filters');
      +        $form->addInput($filters->multiMode());
      +        
      +        $headerOffset = new Typecho_Widget_Helper_Form_Element_Select('headerOffset', 
      +        array('0 (.h1 = .h1)', '1 (.h1 = .h2)', '2 (.h1 = .h3)', '3 (.h1 = .h4)', '4 (.h1 = .h5)', '5 (.h1 = .h6)'),
      +        0, 'Header Offset');
      +        $form->addInput($headerOffset);
      +        
      +        $parsing = new Typecho_Widget_Helper_Form_Element_Checkbox('parsing', 
      +        array('ClearLines' => 'Strip extra spaces from the end of each line.',
      +        'PreserveSpaces' => 'Change double-spaces to the HTML entity for an em-space (&8195;).'),
      +        NULL, 'Parsing Options');
      +        $form->addInput($parsing->multiMode());
      +        
      +        $inputEncoding = new Typecho_Widget_Helper_Form_Element_Text('inputEncoding', NULL, Helper::options()->charset,
      +        _t('Input Character Encoding'));
      +        $inputEncoding->input->setAttribute('class', 'mini');
      +        $form->addInput($inputEncoding);
      +        
      +        $encoding = new Typecho_Widget_Helper_Form_Element_Text('encoding', NULL, Helper::options()->charset,
      +        _t('Output Character Encoding'));
      +        $encoding->input->setAttribute('class', 'mini');
      +        $form->addInput($encoding);
      +    }
      +    
      +    /**
      +     * 个人用户的配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form
      +     * @return void
      +     */
      +    public static function personalConfig(Typecho_Widget_Helper_Form $form){}
      +    
      +    /**
      +     * 插件实现方法
      +     * 
      +     * @access public
      +     * @return void
      +     */
      +    public static function parse($text, $widget, $lastResult)
      +    {
      +        $text = empty($lastResult) ? $text : $lastResult;
      +        
      +        $settings = Helper::options()->plugin('Textile2');
      +        
      +        if ($settings->version == 'Textile') {
      +            $textile = new Textile;
      +        } else {
      +            $textile = new MTLikeTextile;
      +        }
      +
      +        $textile->options['head_offset'] = $settings->headerOffset;
      +        $textile->options['char_encoding'] = $settings->encoding;
      +        $textile->options['input_encoding'] = $settings->inputEncoding;
      +        
      +        $textile->options['do_quotes'] = $settings->filters && in_array('EducateQuotes', $settings->filters);
      +        $textile->options['smarty_mode'] = $settings->filters && in_array('SmartyPants', $settings->filters);
      +        $textile->options['trim_spaces'] = $settings->parsing && in_array('ClearLines', $settings->parsing);
      +        $textile->options['preserve_spaces'] = $settings->parsing && in_array('PreserveSpaces', $settings->parsing);
      +
      +        return $textile->process($text);
      +    }
      +}
      diff --git a/usr/plugins/Textile2/Textile.php b/usr/plugins/Textile2/Textile.php
      new file mode 100644
      index 00000000..a99141e0
      --- /dev/null
      +++ b/usr/plugins/Textile2/Textile.php
      @@ -0,0 +1,4080 @@
      +<?php
      +// @(#) $Id: Textile.php,v 1.13 2005/03/21 15:26:55 jhriggs Exp $
      +
      +/* This program is free software; you can redistribute it and/or modify
      + * it under the terms of the GNU General Public License as published by
      + * the Free Software Foundation; either version 2 of the License, or
      + * (at your option) any later version.
      + *
      + * This program is distributed in the hope that it will be useful,
      + * but WITHOUT ANY WARRANTY; without even the implied warranty of
      + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      + * GNU General Public License for more details.
      + *
      + * You should have received a copy of the GNU General Public License
      + * along with this program; if not, write to the Free Software
      + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
      + */
      +
      +/**
      + * The Textile class serves as a wrapper for all Textile
      + * functionality. It is not inherently necessary that Textile be a
      + * class; however, this is as close as one can get to a namespace in
      + * PHP. Wrapping the functionality in a class prevents name
      + * collisions and dirtying of the global namespace. The Textile class
      + * uses no global variables and will not have any side-effects on
      + * other code.
      + *
      + * @brief Class wrapper for the Textile functionality.
      + */
      +class Textile {
      +  /**
      +   * The @c array containing all of the Textile options for this
      +   * object.
      +   *
      +   * @private
      +   */
      +  var $options = array();
      +
      +  /**
      +   * The @c string containing the regular expression pattern for a
      +   * URL. This variable is initialized by @c _create_re() which is
      +   * called in the contructor.
      +   *
      +   * @private
      +   */
      +  var $urlre;
      +
      +  /**
      +   * The @c string containing the regular expression pattern for
      +   * punctuation characters. This variable is initialized by
      +   * @c _create_re() which is called in the contructor.
      +   *
      +   * @private
      +   */
      +  var $punct;
      +
      +  /**
      +   * The @c string containing the regular expression pattern for the
      +   * valid vertical alignment codes. This variable is initialized by
      +   * @c _create_re() which is called in the contructor.
      +   *
      +   * @private
      +   */
      +  var $valignre;
      +
      +  /**
      +   * The @c string containing the regular expression pattern for the
      +   * valid table alignment codes. This variable is initialized by
      +   * @c _create_re() which is called in the contructor.
      +   *
      +   * @private
      +   */
      +  var $tblalignre;
      +
      +  /**
      +   * The @c string containing the regular expression pattern for the
      +   * valid horizontal alignment codes. This variable is initialized by
      +   * @c _create_re() which is called in the contructor.
      +   *
      +   * @private
      +   */
      +  var $halignre;
      +
      +  /**
      +   * The @c string containing the regular expression pattern for the
      +   * valid alignment codes. This variable is initialized by
      +   * @c _create_re() which is called in the contructor.
      +   *
      +   * @private
      +   */
      +  var $alignre;
      +
      +  /**
      +   * The @c string containing the regular expression pattern for the
      +   * valid image alignment codes. This variable is initialized by
      +   * @c _create_re() which is called in the contructor.
      +   *
      +   * @private
      +   */
      +  var $imgalignre;
      +
      +  /**
      +   * The @c string containing the regular expression pattern for a
      +   * class, ID, and/or padding specification. This variable is
      +   * initialized by @c _create_re() which is called in the contructor.
      +   *
      +   * @private
      +   */
      +  var $clstypadre;
      +
      +  /**
      +   * The @c string containing the regular expression pattern for a
      +   * class and/or ID specification. This variable is initialized by
      +   * @c _create_re() which is called in the contructor.
      +   *
      +   * @private
      +   */
      +  var $clstyre;
      +
      +  /**
      +   * The @c string containing the regular expression pattern for a
      +   * class, ID, and/or filter specification. This variable is
      +   * initialized by @c _create_re() which is called in the contructor.
      +   *
      +   * @private
      +   */
      +  var $clstyfiltre;
      +
      +  /**
      +   * The @c string containing the regular expression pattern for a
      +   * code block. This variable is initialized by @c _create_re() which
      +   * is called in the contructor.
      +   *
      +   * @private
      +   */
      +  var $codere;
      +
      +  /**
      +   * The @c string containing the regular expression pattern for all
      +   * block tags. This variable is initialized by @c _create_re() which
      +   * is called in the contructor.
      +   *
      +   * @private
      +   */
      +  var $blocktags;
      +
      +  /**
      +   * The @c array containing the list of lookup links.
      +   *
      +   * @private
      +   */
      +  var $links = array();
      +
      +  /**
      +   * The @c array containing <code>array</code>s of replacement blocks
      +   * of text that are temporary removed from the input text to avoid
      +   * processing. Different functions use this replacement
      +   * functionality, and each shifts its own replacement array into
      +   * position 0 and removes it when finished. This avoids having
      +   * several replacement variables and/or functions clobbering
      +   * eachothers' replacement blocks.
      +   *
      +   * @private
      +   */
      +  var $repl = array();
      +
      +  /**
      +   * The @c array containing temporary <code>string</code>s used in
      +   * replacement callbacks. *JHR*
      +   *
      +   * @private
      +   */
      +  var $tmp = array();
      +
      +  /**
      +   * Instantiates a new Textile object. Optional options
      +   * can be passed to initialize the object. Attributes for the
      +   * options key are the same as the get/set method names
      +   * documented here.
      +   *
      +   * @param $options The @c array specifying the options to use for
      +   *        this object.
      +   *
      +   * @public
      +   */
      +  function Textile($options = array()) {
      +    $this->options = $options;
      +    $this->options['filters'] = ($this->options['filters'] ? $this->options['filters'] : array());
      +    $this->options['charset'] = ($this->options['charset'] ? $this->options['charset'] : 'iso-8859-1');
      +    $this->options['char_encoding'] = (isset($this->options['char_encoding']) ? $this->options['char_encoding'] : 1);
      +    $this->options['do_quotes'] = (isset($this->options['do_quotes']) ? $this->options['do_quotes'] : 1);
      +    $this->options['trim_spaces'] = (isset($this->options['trim_spaces']) ? $this->options['trim_spaces'] : 0);
      +    $this->options['smarty_mode'] = (isset($this->options['smarty_mode']) ? $this->options['smarty_mode'] : 1);
      +    $this->options['preserve_spaces'] = (isset($this->options['preserve_spaces']) ? $this->options['preserve_spaaces'] : 0);
      +    $this->options['head_offset'] = (isset($this->options['head_offset']) ? $this->options['head_offset'] : 0);
      +
      +    if (is_array($this->options['css'])) {
      +      $this->css($this->options['css']);
      +    }
      +    $this->options['macros'] = ($this->options['macros'] ? $this->options['macros'] : $this->default_macros());
      +    if (isset($this->options['flavor'])) {
      +      $this->flavor($this->options['flavor']);
      +    } else {
      +      $this->flavor('xhtml1/css');
      +    }
      +    $this->_create_re();
      +  } // function Textile
      +
      +  // getter/setter methods...
      +
      +  /**
      +   * Used to set Textile attributes. Attribute names are the same
      +   * as the get/set method names documented here.
      +   *
      +   * @param $opt A @c string specifying the name of the option to
      +   *        change or an @c array specifying options and values.
      +   * @param $value The value for the provided option name.
      +   *
      +   * @public
      +   */
      +  function set($opt, $value = NULL) {
      +    if (is_array($opt)) {
      +      foreach ($opt as $opt => $value) {
      +        $this->set($opt, $value);
      +      }
      +    } else {
      +      // the following options have special set methods
      +      // that activate upon setting:
      +      if ($opt == 'charset') {
      +        $this->charset($value);
      +      } elseif ($opt == 'css') {
      +        $this->css($value);
      +      } elseif ($opt == 'flavor') {
      +        $this->flavor($value);
      +      } else {
      +        $this->options[$opt] = $value;
      +      }
      +    }
      +  } // function set
      +
      +  /**
      +   * Used to get Textile attributes. Attribute names are the same
      +   * as the get/set method names documented here.
      +   *
      +   * @param $opt A @c string specifying the name of the option to get.
      +   *
      +   * @return The value for the provided option.
      +   *
      +   * @public
      +   */
      +  function get($opt) {
      +    return $this->options[$opt];
      +  } // function get
      +
      +  /**
      +   * Gets or sets the "disable html" control, which allows you to
      +   * prevent HTML tags from being used within the text processed.
      +   * Any HTML tags encountered will be removed if disable html is
      +   * enabled. Default behavior is to allow HTML.
      +   *
      +   * @param $disable_html If provided, a @c bool indicating whether or
      +   *        not this object should disable HTML.
      +   *
      +   * @return A true value if this object disables HTML; a false value
      +   *         otherwise.
      +   *
      +   * @public
      +   */
      +  function disable_html($disable_html = NULL) {
      +    if ($disable_html != NULL) {
      +      $this->options['disable_html'] = $disable_html;
      +    }
      +    return ($this->options['disable_html'] ? $this->options['disable_html'] : 0);
      +  } // function disable_html
      +
      +  /**
      +   * Gets or sets the relative heading offset, which allows you to
      +   * change the heading level used within the text processed. For
      +   * example, if the heading offset is '2' and the text contains an
      +   * 'h1' block, an \<h3\> block will be output.
      +   *
      +   * @param $head_offset If provided, an @c integer specifying the
      +   *        heading offset for this object.
      +   *
      +   * @return An @c integer containing the heading offset for this
      +   *         object.
      +   *
      +   * @public
      +   */
      +  function head_offset($head_offset = NULL) {
      +    if ($head_offset != NULL) {
      +      $this->options['head_offset'] = $head_offset;
      +    }
      +    return ($this->options['head_offset'] ? $this->options['head_offset'] : 0);
      +  } // function head_offset
      +
      +  /**
      +   * Assigns the HTML flavor of output from Textile. Currently
      +   * these are the valid choices: html, xhtml (behaves like "xhtml1"),
      +   * xhtml1, xhtml2. Default flavor is "xhtml1".
      +   *
      +   * Note that the xhtml2 flavor support is experimental and incomplete
      +   * (and will remain that way until the XHTML 2.0 draft becomes a
      +   * proper recommendation).
      +   *
      +   * @param $flavor If provided, a @c string specifying the flavor to
      +   *        be used for this object.
      +   *
      +   * @return A @c string containing the flavor for this object.
      +   *
      +   * @public
      +   */
      +  function flavor($flavor = NULL) {
      +    if ($flavor != NULL) {
      +      $this->options['flavor'] = $flavor;
      +      if (preg_match('/^xhtml(\d)?(\D|$)/', $flavor, $matches)) {
      +        if ($matches[1] == '2') {
      +          $this->options['_line_open'] = '<l>';
      +          $this->options['_line_close'] = '</l>';
      +          $this->options['_blockcode_open'] = '<blockcode>';
      +          $this->options['_blockcode_close'] = '</blockcode>';
      +          $this->options['css_mode'] = 1;
      +        } else {
      +          // xhtml 1.x
      +          $this->options['_line_open'] = '';
      +          $this->options['_line_close'] = '<br />';
      +          $this->options['_blockcode_open'] = '<pre><code>';
      +          $this->options['_blockcode_close'] = '</code></pre>';
      +          $this->options['css_mode'] = 1;
      +        }
      +      } elseif (preg_match('/^html/', $flavor)) {
      +        $this->options['_line_open'] = '';
      +        $this->options['_line_close'] = '<br>';
      +        $this->options['_blockcode_open'] = '<pre><code>';
      +        $this->options['_blockcode_close'] = '</code></pre>';
      +        $this->options['css_mode'] = preg_match('/\/css/', $flavor);
      +      }
      +      if ($this->options['css_mode'] && !isset($this->options['css'])) { $this->_css_defaults(); }
      +    }
      +    return $this->options['flavor'];
      +  } // function flavor
      +
      +  /**
      +   * Gets or sets the css support for Textile. If css is enabled,
      +   * Textile will emit CSS rules. You may pass a 1 or 0 to enable
      +   * or disable CSS behavior altogether. If you pass an associative array,
      +   * you may assign the CSS class names that are used by
      +   * Textile. The following key names for such an array are
      +   * recognized:
      +   *
      +   * <ul>
      +   * <li><b>class_align_right</b>
      +   *
      +   * defaults to 'right'</li>
      +   *
      +   * <li><b>class_align_left</b>
      +   *
      +   * defaults to 'left'</li>
      +   *
      +   * <li><b>class_align_center</b>
      +   *
      +   * defaults to 'center'</li>
      +   *
      +   * <li><b>class_align_top</b>
      +   *
      +   * defaults to 'top'</li>
      +   *
      +   * <li><b>class_align_bottom</b>
      +   *
      +   * defaults to 'bottom'</li>
      +   *
      +   * <li><b>class_align_middle</b>
      +   *
      +   * defaults to 'middle'</li>
      +   *
      +   * <li><b>class_align_justify</b>
      +   *
      +   * defaults to 'justify'</li>
      +   *
      +   * <li><b>class_caps</b>
      +   *
      +   * defaults to 'caps'</li>
      +   *
      +   * <li><b>class_footnote</b>
      +   *
      +   * defaults to 'footnote'</li>
      +   *
      +   * <li><b>id_footnote_prefix</b>
      +   *
      +   * defaults to 'fn'</li>
      +   *
      +   * </ul>
      +   *
      +   * @param $css If provided, either a @c bool indicating whether or
      +   *        not this object should use css or an associative @c array
      +   *        specifying class names to use.
      +   *
      +   * @return Either an associative @c array containing class names
      +   *         used by this object, or a true or false value indicating
      +   *         whether or not this object uses css.
      +   *
      +   * @public
      +   */
      +  function css($css = NULL) {
      +    if ($css != NULL) {
      +      if (is_array($css)) {
      +        $this->options['css'] = $css;
      +        $this->options['css_mode'] = 1;
      +      } else {
      +        $this->options['css_mode'] = $css;
      +        if ($this->options['css_mode'] && !isset($this->options['css'])) { $this->_css_defaults(); }
      +      }
      +    }
      +    return ($this->options['css_mode'] ? $this->options['css'] : 0);
      +  } // function css
      +
      +  /**
      +   * Gets or sets the character set targetted for publication.
      +   * At this time, Textile only changes its behavior
      +   * if the 'utf-8' character set is assigned.
      +   *
      +   * Specifically, if utf-8 is requested, any special characters
      +   * created by Textile will be output as native utf-8 characters
      +   * rather than HTML entities.
      +   *
      +   * @param $charset If provided, a @c string specifying the
      +   *        characater set to be used for this object.
      +   *
      +   * @return A @c string containing the character set for this object.
      +   *
      +   * @public
      +   */
      +  function charset($charset = NULL) {
      +    if ($charset != NULL) {
      +        $this->options['charset'] = $charset;
      +        if (preg_match('/^utf-?8$/i', $this->options['charset'])) {
      +          $this->char_encoding(0);
      +        } else {
      +          $this->char_encoding(1);
      +        }
      +    }
      +    return $this->options['charset'];
      +  } // function charset
      +
      +  /**
      +   * Gets or sets the physical file path to root of document files.
      +   * This path is utilized when images are referenced and size
      +   * calculations are needed (the getimagesize() function is used to read
      +   * the image dimensions).
      +   *
      +   * @param $docroot If provided, a @c string specifying the document
      +   *        root to use for this object.
      +   *
      +   * @return A @c string containing the docroot for this object.
      +   *
      +   * @public
      +   */
      +  function docroot($docroot = NULL) {
      +    if ($docroot != NULL) {
      +      $this->options['docroot'] = $docroot;
      +    }
      +    return $this->options['docroot'];
      +  } // function docroot
      +
      +  /**
      +   * Gets or sets the 'trim spaces' control flag. If enabled, this
      +   * will clear any lines that have only spaces on them (the newline
      +   * itself will remain).
      +   *
      +   * @param $trim_spaces If provided, a @c bool indicating whether or
      +   *        not this object should trim spaces.
      +   *
      +   * @return A true value if this object trims spaces; a false value
      +   *         otherwise.
      +   *
      +   * @public
      +   */
      +  function trim_spaces($trim_spaces = NULL) {
      +    if ($trim_spaces != NULL) {
      +      $this->options['trim_spaces'] = $trim_spaces;
      +    }
      +    return $this->options['trim_spaces'];
      +  } // function trim_spaces
      +
      +  /**
      +   * Gets or sets a parameter that is passed to filters.
      +   *
      +   * @param $filter_param If provided, a parameter that this object
      +   *        should pass to filters.
      +   *
      +   * @return The parameter this object passes to filters.
      +   *
      +   * @public
      +   */
      +  function filter_param($filter_param = NULL) {
      +    if ($filter_param != NULL) {
      +      $this->options['filter_param'] = $filter_param;
      +    }
      +    return $this->options['filter_param'];
      +  } // function filter_param
      +
      +  /**
      +   * Gets or sets the 'preserve spaces' control flag. If enabled, this
      +   * will replace any double spaces within the paragraph data with the
      +   * \&amp;#8195; HTML entity (wide space). The default is 0. Spaces will
      +   * pass through to the browser unchanged and render as a single space.
      +   * Note that this setting has no effect on spaces within \<pre\>,
      +   * \<code\> blocks or \<script\> sections.
      +   *
      +   * @param $preserve_spaces If provided, a @c bool indicating whether
      +   *        or not this object should preserve spaces.
      +   *
      +   * @return A true value if this object preserves spaces; a false
      +   *         value otherwise.
      +   *
      +   * @public
      +   */
      +  function preserve_spaces($preserve_spaces = NULL) {
      +    if ($preserve_spaces != NULL) {
      +      $this->options['preserve_spaces'] = $preserve_spaces;
      +    }
      +    return $this->options['preserve_spaces'];
      +  } // function preserve_spaces
      +
      +  /**
      +   * Gets or sets a list of filters to make available for
      +   * Textile to use. Returns a hash reference of the currently
      +   * assigned filters.
      +   *
      +   * @param $filters If provided, an @c array of filters to be used
      +   *        for this object.
      +   *
      +   * @return An @c array containing the filters for this object.
      +   *
      +   * @public
      +   */
      +  function filters($filters = NULL) {
      +    if ($filters != NULL) {
      +      $this->options['filters'] = $filters;
      +    }
      +    return $this->options['filters'];
      +  } // function filters
      +
      +  /**
      +   * Gets or sets the character encoding logical flag. If character
      +   * encoding is enabled, the htmlentities function is used to
      +   * encode special characters. If character encoding is disabled,
      +   * only \<, \>, " and & are encoded to HTML entities.
      +   *
      +   * @param $char_encoding If provided, a @c bool indicating whether
      +   *        or not this object should encode special characters.
      +   *
      +   * @return A true value if this object encodes special characters; a
      +   *         false value otherwise.
      +   *
      +   * @public
      +   */
      +  function char_encoding($char_encoding = NULL) {
      +    if ($char_encoding != NULL) {
      +      $this->options['char_encoding'] = $char_encoding;
      +    }
      +    return $this->options['char_encoding'];
      +  } // function char_encoding
      +
      +  /**
      +   * Gets or sets the "smart quoting" control flag. Returns the
      +   * current setting.
      +   *
      +   * @param $do_quotes If provided, a @c bool indicating whether or
      +   *        not this object should use smart quoting.
      +   *
      +   * @return A true value if this object uses smart quoting; a false
      +   *         value otherwise.
      +   *
      +   * @public
      +   */
      +  function handle_quotes($do_quotes = NULL) {
      +    if ($do_quotes != NULL) {
      +      $this->options['do_quotes'] = $do_quotes;
      +    }
      +    return $this->options['do_quotes'];
      +  } // function handle_quotes
      +
      +  // end of getter/setter methods
      +
      +  /**
      +   * Creates the class variable regular expression patterns used by
      +   * Textile. They are not initialized in the declaration, because
      +   * some rely on the others, requiring a @c $this reference.
      +   *
      +   * PHP does not have the Perl qr operator to quote or precompile
      +   * patterns, so to avoid escaping and matching problems, all
      +   * patterns must use the same delimiter; this implementation uses
      +   * {}. Every use of these patterns within this class has been
      +   * changed to use these delimiters. *JHR*
      +   *
      +   * @private
      +   */
      +  function _create_re() {
      +    // a URL discovery regex. This is from Mastering Regex from O'Reilly.
      +    // Some modifications by Brad Choate <brad at bradchoate dot com>
      +    $this->urlre = '(?:
      +    # Must start out right...
      +    (?=[a-zA-Z0-9./#])
      +    # Match the leading part (proto://hostname, or just hostname)
      +    (?:
      +        # ftp://, http://, or https:// leading part
      +        (?:ftp|https?|telnet|nntp)://(?:\w+(?::\w+)?@)?[-\w]+(?:\.\w[-\w]*)+
      +        |
      +        (?:mailto:)?[-\+\w]+@[-\w]+(?:\.\w[-\w]*)+
      +        |
      +        # or, try to find a hostname with our more specific sub-expression
      +        (?i: [a-z0-9] (?:[-a-z0-9]*[a-z0-9])? \. )+ # sub domains
      +        # Now ending .com, etc. For these, require lowercase
      +        (?-i: com\b
      +            | edu\b
      +            | biz\b
      +            | gov\b
      +            | in(?:t|fo)\b # .int or .info
      +            | mil\b
      +            | net\b
      +            | org\b
      +            | museum\b
      +            | aero\b
      +            | coop\b
      +            | name\b
      +            | pro\b
      +            | [a-z][a-z]\b # two-letter country codes
      +        )
      +    )?
      +
      +    # Allow an optional port number
      +    (?: : \d+ )?
      +
      +    # The rest of the URL is optional, and begins with / . . .
      +    (?:
      +     /?
      +     # The rest are heuristics for what seems to work well
      +     [^.!,?;:"\'<>()\[\]{}\s\x7F-\xFF]*
      +     (?:
      +        [.!,?;:]+  [^.!,?;:"\'<>()\[\]{}\s\x7F-\xFF]+ #\'"
      +     )*
      +    )?
      +)';
      +
      +    $this->punct = '[\!"\#\$%&\'()\*\+,\-\./:;<=>\?@\[\\\\\]\^_`{\|}\~]';
      +    $this->valignre = '[\-^~]';
      +    $this->tblalignre = '[<>=]';
      +    $this->halignre = '(?:<>|[<>=])';
      +    $this->alignre = '(?:(?:' . $this->valignre . '|<>' . $this->valignre . '?|' . $this->valignre . '?<>|' . $this->valignre . '?' . $this->halignre . '?|' . $this->halignre . '?' . $this->valignre . '?)(?!\w))';
      +    $this->imgalignre = '(?:(?:[<>]|' . $this->valignre . '){1,2})';
      +
      +    $this->clstypadre = '(?:
      +  (?:\([A-Za-z0-9_\- \#]+\))
      +  |
      +  (?:{
      +      (?: \( [^)]+ \) | [^\}] )+
      +     })
      +  |
      +  (?:\(+? (?![A-Za-z0-9_\-\#]) )
      +  |
      +  (?:\)+?)
      +  |
      +  (?: \[ [a-zA-Z\-]+? \] )
      +)';
      +
      +    $this->clstyre = '(?:
      +  (?:\([A-Za-z0-9_\- \#]+\))
      +  |
      +  (?:{
      +      [A-Za-z0-9_\-](?: \( [^)]+ \) | [^\}] )+
      +     })
      +  |
      +  (?: \[ [a-zA-Z\-]+? \] )
      +)';
      +
      +    $this->clstyfiltre = '(?:
      +  (?:\([A-Za-z0-9_\- \#]+\))
      +  |
      +  (?:{
      +      [A-Za-z0-9_\-](?: \( [^)]+ \) | [^\}] )+
      +     })
      +  |
      +  (?:\|[^\|]+\|)
      +  |
      +  (?:\(+?(?![A-Za-z0-9_\-\#]))
      +  |
      +  (?:\)+)
      +  |
      +  (?: \[ [a-zA-Z]+? \] )
      +)';
      +
      +    $this->codere = '(?:
      +    (?:
      +      [\[{]
      +      @                           # opening
      +      (?:\[([A-Za-z0-9]+)\])?     # $1: language id
      +      (.+?)                       # $2: code
      +      @                           # closing
      +      [\]}]
      +    )
      +    |
      +    (?:
      +      (?:^|(?<=[\s\(]))
      +      @                           # opening
      +      (?:\[([A-Za-z0-9]+)\])?     # $3: language id
      +      ([^\s].+?[^\s])             # $4: code itself
      +      @                           # closing
      +      (?:$|(?=' . $this->punct . '{1,2}|\s))
      +    )
      +)';
      +
      +    $this->blocktags = '
      +    <
      +    (( /? ( h[1-6]
      +     | p
      +     | pre
      +     | div
      +     | table
      +     | t[rdh]
      +     | [ou]l
      +     | li
      +     | block(?:quote|code)
      +     | form
      +     | input
      +     | select
      +     | option
      +     | textarea
      +     )
      +    [ >]
      +    )
      +    | !--
      +    )
      +';
      +  } // function _create_re
      +
      +  /**
      +   * Transforms the provided text using Textile markup rules.
      +   *
      +   * @param $str The @c string specifying the text to process.
      +   *
      +   * @return A @c string containing the processed (X)HTML.
      +   *
      +   * @public
      +   */
      +  function process($str) {
      +    /*
      +     * Function names in PHP are case insensitive, so function
      +     * textile() cannot be redefined.  Thus, this PHP implementation
      +     * will only use process().
      +     *
      +     *   return $this->textile($str);
      +     * } // function process
      +     *
      +     * function textile($str) {
      +     */
      +
      +    // quick translator for abbreviated block names
      +    // to their tag
      +    $macros = array('bq' => 'blockquote');
      +
      +    // an array to hold any portions of the text to be preserved
      +    // without further processing by Textile
      +    array_unshift($this->repl, array());
      +
      +    // strip out extra newline characters. we're only matching for \n herein
      +    //$str = preg_replace('!(?:\r?\n|\r)!', "\n", $str);
      +    $str = preg_replace('!(?:\015?\012|\015)!', "\n", $str);
      +
      +    // optionally remove trailing spaces
      +    if ($this->options['trim_spaces']) { $str = preg_replace('/ +$/m', '', $str); }
      +
      +    // preserve contents of the '==', 'pre', 'blockcode' sections
      +    $str = preg_replace_callback('{(^|\n\n)==(.+?)==($|\n\n)}s',
      +                                 $this->_cb('"$m[1]\n\n" . $me->_repl($me->repl[0], $me->format_block(array("text" => $m[2]))) . "\n\n$m[3]"'), $str);
      +
      +    if (!$this->disable_html()) {
      +      // preserve style, script tag contents
      +      $str = preg_replace_callback('!(<(style|script)(?:>| .+?>).*?</\2>)!s', $this->_cb('$me->_repl($me->repl[0], $m[1])'), $str);
      +
      +      // preserve HTML comments
      +      $str = preg_replace_callback('|(<!--.+?-->)|s', $this->_cb('$me->_repl($me->repl[0], $m[1])'), $str);
      +
      +      // preserve pre block contents, encode contents by default
      +      $pre_start = count($this->repl[0]);
      +      $str = preg_replace_callback('{(<pre(?: [^>]*)?>)(.+?)(</pre>)}s',
      +                                   $this->_cb('"\n\n" . $me->_repl($me->repl[0], $m[1] . $me->encode_html($m[2], 1) . $m[3]) . "\n\n"'), $str);
      +      // fix code tags within pre blocks we just saved.
      +      for ($i = $pre_start; $i < count($this->repl[0]); $i++) {
      +        $this->repl[0][$i] = preg_replace('|&lt;(/?)code(.*?)&gt;|s', '<$1code$2>', $this->repl[0][$i]);
      +      }
      +
      +      // preserve code blocks by default, encode contents
      +      $str = preg_replace_callback('{(<code(?: [^>]+)?>)(.+?)(</code>)}s',
      +                                   $this->_cb('$me->_repl($me->repl[0], $m[1] . $me->encode_html($m[2], 1) . $m[3])'), $str);
      +
      +      // encode blockcode tag (an XHTML 2 tag) and encode it's
      +      // content by default
      +      $str = preg_replace_callback('{(<blockcode(?: [^>]+)?>)(.+?)(</blockcode>)}s',
      +                                   $this->_cb('"\n\n" . $me->_repl($me->repl[0], $m[1] . $me->encode_html($m[2], 1) . $m[3]) . "\n\n"'), $str);
      +
      +      // preserve PHPish, ASPish code
      +      $str = preg_replace_callback('!(<([\?%]).*?(\2)>)!s', $this->_cb('$me->_repl($me->repl[0], $m[1])'), $str);
      +    }
      +
      +    // pass through and remove links that follow this format
      +    // [id_without_spaces (optional title text)]url
      +    // lines like this are stripped from the content, and can be
      +    // referred to using the "link text":id_without_spaces syntax
      +    //$links = array();
      +    $str = preg_replace_callback('{(?:\n|^) [ ]* \[ ([^ ]+?) [ ]*? (?:\( (.+?) \) )?  \] ((?:(?:ftp|https?|telnet|nntp)://|/)[^ ]+?) [ ]* (\n|$)}mx',
      +                                 $this->_cb('($me->links[$m[1]] = array("url" => $m[3], "title" => $m[2])) ? $m[4] : $m[4]'), $str);
      +    //$this->links = $links;
      +
      +    // eliminate starting/ending blank lines
      +    $str = preg_replace('/^\n+/s', '', $str, 1);
      +    $str = preg_replace('/\n+$/s', '', $str, 1);
      +
      +    // split up text into paragraph blocks, capturing newlines too
      +    $para = preg_split('/(\n{2,})/', $str, -1, PREG_SPLIT_DELIM_CAPTURE);
      +    unset($block, $bqlang, $filter, $class, $sticky, $lines,
      +          $style, $stickybuff, $lang, $clear);
      +
      +    $out = '';
      +
      +    foreach ($para as $para) {
      +      if (preg_match('/^\n+$/s', $para)) {
      +        if ($sticky && $stickybuff) {
      +          $stickybuff .= $para;
      +        } else {
      +          $out .= $para;
      +        }
      +        continue;
      +      }
      +
      +      if ($sticky) {
      +        $sticky++;
      +      } else {
      +        unset($block);
      +        unset($class);
      +        $style = '';
      +        unset($lang);
      +      }
      +
      +      unset($id, $cite, $align, $padleft, $padright, $lines, $buffer);
      +      if (preg_match('{^(h[1-6]|p|bq|bc|fn\d+)
      +                        ((?:' . $this->clstyfiltre . '*|' . $this->halignre . ')*)
      +                        (\.\.?)
      +                        (?::(\d+|' . $this->urlre . '))?\ (.*)$}sx', $para, $matches)) {
      +        if ($sticky) {
      +          if ($block == 'bc') {
      +            // close our blockcode section
      +            $out = preg_replace('/\n\n$/', '', $out, 1);
      +            $out .= $this->options['_blockcode_close'] . "\n\n";
      +          } elseif ($block == 'bq') {
      +            $out = preg_replace('/\n\n$/', '', $out, 1);
      +            $out .= '</blockquote>' . "\n\n";
      +          } elseif ($block == 'table') {
      +            $table_out = $this->format_table(array('text' => $stickybuff));
      +            if (!$table_out) { $table_out = ''; }
      +            $out .= $table_out;
      +            unset($stickybuff);
      +          } elseif ($block == 'dl') {
      +            $dl_out = $this->format_deflist(array('text' => $stickybuff));
      +            if (!$dl_out) { $dl_out = ''; }
      +            $out .= $dl_out;
      +            unset($stickybuff);
      +          }
      +          $sticky = 0;
      +        }
      +        // block macros: h[1-6](class)., bq(class)., bc(class)., p(class).
      +        //warn "paragraph: [[$para]]\n\tblock: $1\n\tparams: $2\n\tcite: $4";
      +        $block = $matches[1];
      +        $params = $matches[2];
      +        $cite = $matches[4];
      +        if ($matches[3] == '..') {
      +          $sticky = 1;
      +        } else {
      +          $sticky = 0;
      +          unset($class);
      +          unset($bqlang);
      +          unset($lang);
      +          $style = '';
      +          unset($filter);
      +        }
      +        if (preg_match('/^h([1-6])$/', $block, $matches2)) {
      +          if ($this->options['head_offset']) {
      +            $block = 'h' . ($matches2[1] + $this->options['head_offset']);
      +          }
      +        }
      +        if (preg_match('{(' . $this->halignre . '+)}', $params, $matches2)) {
      +          $align = $matches2[1];
      +          $params = preg_replace('{' . $this->halignre . '+}', '', $params, 1);
      +        }
      +        if ($params) {
      +          if (preg_match('/\|(.+)\|/', $params, $matches2)) {
      +            $filter = $matches2[1];
      +            $params = preg_replace('/\|.+?\|/', '', $params, 1);
      +          }
      +          if (preg_match('/{([^}]+)}/', $params, $matches2)) {
      +            $style = $matches2[1];
      +            $style = preg_replace('/\n/', ' ', $style);
      +            $params = preg_replace('/{[^}]+}/', '', $params);
      +          }
      +          if (preg_match('/\(([A-Za-z0-9_\-\ ]+?)(?:\#(.+?))?\)/', $params, $matches2) ||
      +              preg_match('/\(([A-Za-z0-9_\-\ ]+?)?(?:\#(.+?))\)/', $params, $matches2)) {
      +            if ($matches2[1] || $matches2[2]) {
      +              $class = $matches2[1];
      +              $id = $matches2[2];
      +              if ($class) {
      +                $params = preg_replace('/\([A-Za-z0-9_\-\ ]+?(#.*?)?\)/', '', $params);
      +              } elseif ($id) {
      +                $params = preg_replace('/\(#.+?\)/', '', $params);
      +              }
      +            }
      +          }
      +          if (preg_match('/(\(+)/', $params, $matches2)) {
      +            $padleft = strlen($matches2[1]);
      +            $params = preg_replace('/\(+/', '', $params, 1);
      +          }
      +          if (preg_match('/(\)+)/', $params, $matches2)) {
      +            $padright = strlen($matches2[1]);
      +            $params = preg_replace('/\)+/', '', $params, 1);
      +          }
      +          if (preg_match('/\[(.+?)\]/', $params, $matches2)) {
      +            $lang = $matches2[1];
      +            if ($block == 'bc') {
      +              $bqlang = $lang;
      +              unset($lang);
      +            }
      +            $params = preg_replace('/\[.+?\]/', '', $params, 1);
      +          }
      +        }
      +        // warn "settings:\n\tblock: $block\n\tpadleft: $padleft\n\tpadright: $padright\n\tclass: $class\n\tstyle: $style\n\tid: $id\n\tfilter: $filter\n\talign: $align\n\tlang: $lang\n\tsticky: $sticky";
      +        $para = $matches[5];
      +      } elseif (preg_match('|^<textile#(\d+)>$|', $para, $matches)) {
      +        $buffer = $this->repl[0][$matches[1] - 1];
      +      } elseif (preg_match('/^clear([<>]+)?\.$/', $para, $matches)) {
      +        if ($matches[1] == '<') {
      +          $clear = 'left';
      +        } elseif ($matches[1] == '>') {
      +          $clear = 'right';
      +        } else {
      +          $clear = 'both';
      +        }
      +        continue;
      +      } elseif ($sticky && $stickybuff &&
      +                ($block == 'table' || $block == 'dl')) {
      +        $stickybuff .= $para;
      +        continue;
      +      } elseif (preg_match('{^(?:' . $this->halignre . '|' . $this->clstypadre . '*)*
      +                              [\*\#]
      +                              (?:' . $this->halignre . '|' . $this->clstypadre . '*)*
      +                              \ }x', $para)) {
      +        // '*', '#' prefix means a list
      +        $buffer = $this->format_list(array('text' => $para));
      +      } elseif (preg_match('{^(?:table(?:' . $this->tblalignre . '|' . $this->clstypadre . '*)*
      +                              (\.\.?)\s+)?
      +                              (?:_|' . $this->alignre . '|' . $this->clstypadre . '*)*\|}x', $para, $matches)) {
      +        // handle wiki-style tables
      +        if ($matches[1] && ($matches[1] == '..')) {
      +          $block = 'table';
      +          $stickybuff = $para;
      +          $sticky = 1;
      +          continue;
      +        } else {
      +          $buffer = $this->format_table(array('text' => $para));
      +        }
      +      } elseif (preg_match('{^(?:dl(?:' . $this->clstyre . ')*(\.\.?)\s+)}x', $para, $matches)) {
      +        // handle definition lists
      +        if ($matches[1] && ($matches[1] == '..')) {
      +          $block = 'dl';
      +          $stickybuff = $para;
      +          $sticky = 1;
      +          continue;
      +        } else {
      +          $buffer = $this->format_deflist(array('text' => $para));
      +        }
      +      }
      +      if ($buffer) {
      +        $out .= $buffer;
      +        continue;
      +      }
      +      $lines = preg_split('/\n/', $para);
      +      if ((count($lines) == 1) && ($lines[0] == '')) {
      +        continue;
      +      }
      +
      +      $block = ($block ? $block : 'p');
      +
      +      $buffer = '';
      +      $pre = '';
      +      $post = '';
      +
      +      if ($block == 'bc') {
      +        if ($sticky <= 1) {
      +          $pre .= $this->options['_blockcode_open'];
      +          $pre = preg_replace('/>$/s', '', $pre, 1);
      +          if ($bqlang) { $pre .= " language=\"$bqlang\""; }
      +          if ($align) {
      +            $alignment = $this->_halign($align);
      +            if ($this->options['css_mode']) {
      +              if (($padleft || $padright) &&
      +                  (($alignment == 'left') || ($alignment == 'right'))) {
      +                $style .= ';float:' . $alignment;
      +              } else {
      +                $style .= ';text-align:' . $alignment;
      +              }
      +              $class .= ' ' . ($this->options['css']["class_align_$alignment"] ? $this->options['css']["class_align_$alignment"] : $alignment);
      +            } else {
      +              if ($alignment) { $pre .= " align=\"$alignment\""; }
      +            }
      +          }
      +          if ($padleft) { $style .= ";padding-left:${padleft}em"; }
      +          if ($padright) { $style .= ";padding-right:${padright}em"; }
      +          if ($clear) { $style .= ";clear:${clear}"; }
      +          if ($class) { $class = preg_replace('/^ /', '', $class, 1); }
      +          if ($class) { $pre .= " class=\"$class\""; }
      +          if ($id) { $pre .= " id=\"$id\""; }
      +          if ($style) { $style = preg_replace('/^;/', '', $style, 1); }
      +          if ($style) { $pre .= " style=\"$style\""; }
      +          if ($lang) { $pre .= " lang=\"$lang\""; }
      +          $pre .= '>';
      +          unset($lang);
      +          unset($bqlang);
      +          unset($clear);
      +        }
      +        $para = preg_replace_callback('{(?:^|(?<=[\s>])|([{[]))
      +                                        ==(.+?)==
      +                                        (?:$|([\]}])|(?=' . $this->punct . '{1,2}|\s))}sx',
      +                                      $this->_cb('$me->_repl($me->repl[0], $me->format_block(array("text" => $m[2], "inline" => 1, "pre" => $m[1], "post" => $m[3])))'), $para);
      +        $buffer .= $this->encode_html_basic($para, 1);
      +        $buffer = preg_replace('/&lt;textile#(\d+)&gt;/', '<textile#$1>', $buffer);
      +        if ($sticky == 0) {
      +          $post .= $this->options['_blockcode_close'];
      +        }
      +        $out .= $pre . $buffer . $post;
      +        continue;
      +      } elseif ($block == 'bq') {
      +        if ($sticky <= 1) {
      +          $pre .= '<blockquote';
      +          if ($align) {
      +            $alignment = $this->_halign($align);
      +            if ($this->options['css_mode']) {
      +              if (($padleft || $padright) &&
      +                  (($alignment == 'left') || ($alignment == 'right'))) {
      +                $style .= ';float:' . $alignment;
      +              } else {
      +                $style .= ';text-align:' . $alignment;
      +              }
      +              $class .= ' ' . ($this->options['css']["class_align_$alignment"] ? $this->options['css']["class_align_$alignment"] : $alignment);
      +            } else {
      +              if ($alignment) { $pre .= " align=\"$alignment\""; }
      +            }
      +          }
      +          if ($padleft) { $style .= ";padding-left:${padleft}em"; }
      +          if ($padright) { $style .= ";padding-right:${padright}em"; }
      +          if ($clear) { $style .= ";clear:${clear}"; }
      +          if ($class) { $class = preg_replace('/^ /', '', $class, 1); }
      +          if ($class) { $pre .= " class=\"$class\""; }
      +          if ($id) { $pre .= " id=\"$id\""; }
      +          if ($style) { $style = preg_replace('/^;/', '', $style, 1); }
      +          if ($style) { $pre .= " style=\"$style\""; }
      +          if ($lang) { $pre .= " lang=\"$lang\""; }
      +          if ($cite) { $pre .= ' cite="' . $this->format_url(array('url' => $cite)) . '"'; }
      +          $pre .= '>';
      +          unset($clear);
      +        }
      +        $pre .= '<p>';
      +      } elseif (preg_match('/fn(\d+)/', $block, $matches)) {
      +        $fnum = $matches[1];
      +        $pre .= '<p';
      +        if ($this->options['css']['class_footnote']) { $class .= ' ' . $this->options['css']['class_footnote']; }
      +        if ($align) {
      +          $alignment = $this->_halign($align);
      +          if ($this->options['css_mode']) {
      +            if (($padleft || $padright) &&
      +                (($alignment == 'left') || ($alignment == 'right'))) {
      +              $style .= ';float:' . $alignment;
      +            } else {
      +              $style .= ';text-align:' . $alignment;
      +            }
      +            $class .= ($this->options['css']["class_align_$alignment"] ? $this->options['css']["class_align_$alignment"] : $alignment);
      +          } else {
      +            $pre .= " align=\"$alignment\"";
      +          }
      +        }
      +        if ($padleft) { $style .= ";padding-left:${padleft}em"; }
      +        if ($padright) { $style .= ";padding-right:${padright}em"; }
      +        if ($clear) { $style .= ";clear:${clear}"; }
      +        if ($class) { $class = preg_replace('/^ /', '', $class, 1); }
      +        if ($class) { $pre .= " class=\"$class\""; }
      +        $pre .= ' id="' . ($this->options['css']['id_footnote_prefix'] ? $this->options['css']['id_footnote_prefix'] : 'fn') . $fnum . '"';
      +        if ($style) { $style = preg_replace('/^;/', '', $style, 1); }
      +        if ($style) { $pre .= " style=\"$style\""; }
      +        if ($lang) { $pre .= " lang=\"$lang\""; }
      +        $pre .= '>';
      +        $pre .= '<sup>' . $fnum . '</sup> ';
      +        // we can close like a regular paragraph tag now
      +        $block = 'p';
      +        unset($clear);
      +      } else {
      +        $pre .= '<' . ($macros[$block] ? $macros[$block] : $block);
      +        if ($align) {
      +          $alignment = $this->_halign($align);
      +          if ($this->options['css_mode']) {
      +            if (($padleft || $padright) &&
      +                (($alignment == 'left') || ($alignment == 'right'))) {
      +              $style .= ';float:' . $alignment;
      +            } else {
      +              $style .= ';text-align:' . $alignment;
      +            }
      +            $class .= ' ' . ($this->options['css']["class_align_$alignment"] ? $this->options['css']["class_align_$alignment"] : $alignment);
      +          } else {
      +            $pre .= " align=\"$alignment\"";
      +          }
      +        }
      +        if ($padleft) { $style .= ";padding-left:${padleft}em"; }
      +        if ($padright) { $style .= ";padding-right:${padright}em"; }
      +        if ($clear) { $style .= ";clear:${clear}"; }
      +        if ($class) { $class = preg_replace('/^ /', '', $class, 1); }
      +        if ($class) { $pre .= " class=\"$class\""; }
      +        if ($id) { $pre .= " id=\"$id\""; }
      +        if ($style) { $style = preg_replace('/^;/', '', $style, 1); }
      +        if ($style) { $pre .= " style=\"$style\""; }
      +        if ($lang) { $pre .= " lang=\"$lang\""; }
      +        if ($cite && ($block == 'bq')) { $pre .= ' cite="' . $this->format_url(array('url' => $cite)) . '"'; }
      +        $pre .= '>';
      +        unset($clear);
      +      }
      +
      +      $buffer = $this->format_paragraph(array('text' => $para));
      +
      +      if ($block == 'bq') {
      +        if (!preg_match('/<p[ >]/', $buffer)) { $post .= '</p>'; }
      +        if ($sticky == 0) {
      +          $post .= '</blockquote>';
      +        }
      +      } else {
      +        $post .= '</' . $block . '>';
      +      }
      +
      +      if (preg_match('{' . $this->blocktags . '}x', $buffer)) {
      +        $buffer = preg_replace('/^\n\n/s', '', $buffer, 1);
      +        $out .= $buffer;
      +      } else {
      +        if ($filter) { $buffer = $this->format_block(array('text' => "|$filter|" . $buffer, 'inline' => 1)); }
      +        $out .= $pre . $buffer . $post;
      +      }
      +    }
      +
      +    if ($sticky) {
      +      if ($block == 'bc') {
      +        // close our blockcode section
      +        $out .= $this->options['_blockcode_close']; // . "\n\n";
      +      } elseif ($block == 'bq') {
      +        $out .= '</blockquote>'; // . "\n\n";
      +      } elseif (($block == 'table') && $stickybuff) {
      +        $table_out = $this->format_table(array('text' => $stickybuff));
      +        if ($table_out) { $out .= $table_out; }
      +      } elseif (($block == 'dl') && $stickybuff) {
      +        $dl_out = $this->format_deflist(array('text' => $stickybuff));
      +        if ($dl_out) { $out .= $dl_out; }
      +      }
      +    }
      +
      +    // cleanup-- restore preserved blocks
      +    for ($i = count($this->repl[0]); $i > 0; $i--) {
      +      $out = preg_replace('!(?:<|&lt;)textile#' . $i . '(?:>|&gt;)!', str_replace('$', '\\$', $this->repl[0][$i - 1]), $out, 1);
      +    }
      +    array_shift($this->repl);
      +
      +    // scan for br, hr tags that are not closed and close them
      +    // only for xhtml! just the common ones -- don't fret over input
      +    // and the like.
      +    if (preg_match('/^xhtml/i', $this->flavor())) {
      +      $out = preg_replace('/(<(?:img|br|hr)[^>]*?(?<!\/))>/', '$1 />', $out);
      +    }
      +
      +    return $out;
      +  } // function process
      +
      +  /**
      +   * Processes a single paragraph. The following attributes are
      +   * allowed:
      +   *
      +   * <ul>
      +   *
      +   * <li><b>text</b>
      +   *
      +   * The text to be processed.</li>
      +   *
      +   * </ul>
      +   *
      +   * @param $args An @c array specifying the attributes for formatting
      +   *        the paragraph.
      +   *
      +   * @return A @c string containing the formatted paragraph.
      +   *
      +   * @private
      +   */
      +  function format_paragraph($args) {
      +    $buffer = (isset($args['text']) ? $args['text'] : '');
      +
      +    array_unshift($this->repl, array());
      +    $buffer = preg_replace_callback('{(?:^|(?<=[\s>])|([{[]))
      +                                      ==(.+?)==
      +                                      (?:$|([\]}])|(?=' . $this->punct . '{1,2}|\s))}sx',
      +                                    $this->_cb('$me->_repl($me->repl[0], $me->format_block(array("text" => $m[2], "inline" => 1, "pre" => $m[1], "post" => $m[3])))'), $buffer);
      +
      +    unset($tokens);
      +    if (preg_match('/</', $buffer) && (!$this->disable_html())) {  // optimization -- no point in tokenizing if we
      +                                       // have no tags to tokenize
      +      $tokens = $this->_tokenize($buffer);
      +    } else {
      +      $tokens = array(array('text', $buffer));
      +    }
      +    $result = '';
      +    foreach ($tokens as $token) {
      +      $text = $token[1];
      +      if ($token[0] == 'tag') {
      +        $text = preg_replace('/&(?!amp;)/', '&amp;', $text);
      +        $result .= $text;
      +      } else {
      +        $text = $this->format_inline(array('text' => $text));
      +        $result .= $text;
      +      }
      +    }
      +
      +    // now, add line breaks for lines that contain plaintext
      +    $lines = preg_split('/\n/', $result);
      +    $result = '';
      +    $needs_closing = 0;
      +    foreach ($lines as $line) {
      +      if (!preg_match('{(' . $this->blocktags . ')}x', $line)
      +          && ((preg_match('/^[^<]/', $line) || preg_match('/>[^<]/', $line))
      +              || !preg_match('/<img /', $line))) {
      +        if ($this->options['_line_open']) {
      +          if ($result != '') { $result .= "\n"; }
      +          $result .= $this->options['_line_open'] . $line . $this->options['_line_close'];
      +        } else {
      +          if ($needs_closing) {
      +            $result .= $this->options['_line_close'] . "\n";
      +          } else {
      +            $needs_closing = 1;
      +            if ($result != '') { $result .= "\n"; }
      +          }
      +          $result .= $line;
      +        }
      +      } else {
      +        if ($needs_closing) {
      +          $result .= $this->options['_line_close'] . "\n";
      +        } else {
      +          if ($result != '') { $result .= "\n"; }
      +        }
      +        $result .= $line;
      +        $needs_closing = 0;
      +      }
      +    }
      +
      +    // at this point, we will restore the \001's to \n's (reversing
      +    // the step taken in _tokenize).
      +    //$result = preg_replace('/\r/', "\n", $result);
      +    $result = preg_replace('/\001/', "\n", $result);
      +
      +    for ($i = count($this->repl[0]); $i > 0; $i--) {
      +      $result = preg_replace("|<textile#$i>|", str_replace('$', '\\$', $this->repl[0][$i - 1]), $result, 1);
      +    }
      +    array_shift($this->repl);
      +
      +    // quotalize
      +    if ($this->options['do_quotes']) {
      +      $result = $this->process_quotes($result);
      +    }
      +
      +    return $result;
      +  } // function format_paragraph
      +
      +  /**
      +   * Processes an inline string (plaintext) for Textile syntax.
      +   * The following attributes are allowed:
      +   *
      +   * <ul>
      +   *
      +   * <li><b>text</b>
      +   *
      +   * The text to be processed.</li>
      +   *
      +   * </ul>
      +   *
      +   * @param $args An @c array specifying the attributes for formatting
      +   *        the inline string.
      +   *
      +   * @return A @c string containing the formatted inline string.
      +   *
      +   * @private
      +   */
      +  function format_inline($args) {
      +    $qtags = array(array('**', 'b',      '(?<!\*)\*\*(?!\*)', '\*'),
      +                   array('__', 'i',      '(?<!_)__(?!_)', '_'),
      +                   array('??', 'cite',   '\?\?(?!\?)', '\?'),
      +                   array('*',  'strong', '(?<!\*)\*(?!\*)', '\*'),
      +                   array('_',  'em',     '(?<!_)_(?!_)', '_'),
      +                   array('-',  'del',    '(?<!\-)\-(?!\-)', '-'),
      +                   array('+',  'ins',    '(?<!\+)\+(?!\+)', '\+'),
      +                   array('++', 'big',    '(?<!\+)\+\+(?!\+)', '\+\+'),
      +                   array('--', 'small',  '(?<!\-)\-\-(?!\-)', '\-\-'),
      +                   array('~',  'sub',    '(?<!\~)\~(?![\\\\/~])', '\~'));
      +    $text = (isset($args['text']) ? $args['text'] : '');
      +
      +    array_unshift($this->repl, array());
      +
      +    $text = preg_replace_callback('{' . $this->codere . '}mx', $this->_cb('$me->_repl($me->repl[0], $me->format_code(array("text" => $m[2] . $m[4], "lang" => $m[1] . $m[3])))'), $text);
      +
      +    // images must be processed before encoding the text since they might
      +    // have the <, > alignment specifiers...
      +
      +    // !blah (alt)! -> image
      +    $text = preg_replace_callback('{(?:^|(?<=[\s>])|([{[]))      # $1: open brace/bracket
      +                                    !                            # opening
      +                                    (' . $this->imgalignre . '?) # $2: optional alignment
      +                                    (' . $this->clstypadre . '*) # $3: optional CSS class/id
      +                                    (' . $this->imgalignre . '?) # $4: optional alignment
      +                                    (?:\s*)                      # space between alignment/css stuff
      +                                    ([^\s\(!]+)                  # $5: filename
      +                                    (\s*[^\(!]*(?:\([^\)]+\))?[^!]*) # $6: extras (alt text)
      +                                    !                            # closing
      +                                    (?::(\d+|' . $this->urlre . '))? # $7: optional URL
      +                                    (?:$|([\]}])|(?=' . $this->punct . '{1,2}|\s)) # $8: closing brace/bracket
      +                                   }mx', $this->_cb('$me->_repl($me->repl[0], $me->format_image(array("pre" => $m[1], "src" => $m[5], "align" => ($m[2] ? $m[2] : $m[4]), "extra" => $m[6], "url" => $m[7], "clsty" => $m[3], "post" => $m[8])))'), $text);
      +
      +    $text = preg_replace_callback('{(?:^|(?<=[\s>])|([{[]))     # $1: open brace/bracket
      +                                    %                           # opening
      +                                    (' . $this->halignre . '?)  # $2: optional alignment
      +                                    (' . $this->clstyre . '*)   # $3: optional CSS class/id
      +                                    (' . $this->halignre . '?)  # $4: optional alignment
      +                                    (?:\s*)                     # spacing
      +                                    ([^%]+?)                    # $5: text
      +                                    %                           # closing
      +                                    (?::(\d+|' . $this->urlre . '))? # $6: optional URL
      +                                    (?:$|([]}])|(?=' . $this->punct . '{1,2}|\s)) # $7: closing brace/bracket
      +                                   }mx', $this->_cb('$me->_repl($me->repl[0], $me->format_span(array("pre" => $m[1], "text" => $m[5], "align" => ($m[2] ? $m[2] : $m[4]), "cite" => $m[6], "clsty" => $m[3], "post" => $m[7])))'), $text);
      +
      +    $text = $this->encode_html($text);
      +    $text = preg_replace('!&lt;textile#(\d+)&gt;!', '<textile#$1>', $text);
      +    $text = preg_replace('!&amp;quot;!', '&#34;', $text);
      +    $text = preg_replace('!&amp;(([a-z]+|#\d+);)!', '&$1', $text);
      +    $text = preg_replace('!&quot;!', '"', $text);
      +
      +    // These create markup with entities. Do first and 'save' result for later:
      +    // "text":url -> hyperlink
      +    // links with brackets surrounding
      +    $parenre = '\( (?: [^()] )* \)';
      +    $text = preg_replace_callback('{(
      +                                    [{[]
      +                                    (?:
      +                                        (?:"                                         # quote character
      +                                           (' . $this->clstyre . '*)?                # $2: optional CSS class/id
      +                                           ([^"]+?)                                  # $3: link text
      +                                           (?:\( ( (?:[^()]|' . $parenre . ')*) \))? # $4: optional link title
      +                                           "                                         # closing quote
      +                                        )
      +                                        |
      +                                        (?:\'                                        # open single quote
      +                                           (' . $this->clstyre . '*)?                # $5: optional CSS class/id
      +                                           ([^\']+?)                                 # $6: link text
      +                                           (?:\( ( (?:[^()]|' . $parenre . ')*) \))? # $7: optional link title
      +                                           \'                                        # closing quote
      +                                        )
      +                                    )
      +                                    :(.+?)                                           # $8: URL suffix
      +                                    [\]}]
      +                                   )
      +                                   }mx', $this->_cb('$me->_repl($me->repl[0], $me->format_link(array("text" => $m[1], "linktext" => $m[3] . $m[6], "title" => $me->encode_html_basic($m[4] . $m[7]), "url" => $m[8], "clsty" => $m[2] . $m[5])))'), $text);
      +
      +    $text = preg_replace_callback('{((?:^|(?<=[\s>\(]))                              # $1: open brace/bracket
      +                                    (?: (?:"                                         # quote character "
      +                                           (' . $this->clstyre . '*)?                # $2: optional CSS class/id
      +                                           ([^"]+?)                                  # $3: link text "
      +                                           (?:\( ( (?:[^()]|' . $parenre . ')*) \))? # $4: optional link title
      +                                           "                                         # closing quote # "
      +                                        )
      +                                        |
      +                                        (?:\'                                        # open single quote \'
      +                                           (' . $this->clstyre . '*)?                # $5: optional CSS class/id
      +                                           ([^\']+?)                                 # $6: link text \'
      +                                           (?:\( ( (?:[^()]|' . $parenre . ')*) \))? # $7: optional link title
      +                                           \'                                        # closing quote \'
      +                                        )
      +                                    )
      +                                    :(\d+|' . $this->urlre . ')                      # $8: URL suffix
      +                                    (?:$|(?=' . $this->punct . '{1,2}|\s)))          # $9: closing brace/bracket
      +                                   }mx', $this->_cb('$me->_repl($me->repl[0], $me->format_link(array("text" => $m[1], "linktext" => $m[3] . $m[6], "title" => $me->encode_html_basic($m[4] . $m[7]), "url" => $m[8], "clsty" => $m[2] . $m[5])))'), $text);
      +
      +    if (preg_match('/^xhtml2/', $this->flavor())) {
      +      // citation with cite link
      +      $text = preg_replace_callback('{(?:^|(?<=[\s>\'"\(])|([{[]))                   # $1: open brace/bracket \'
      +                                      \?\?                                           # opening \'??\'
      +                                      ([^\?]+?)                                      # $2: characters (can\'t contain \'?\')
      +                                      \?\?                                           # closing \'??\'
      +                                      :(\d+|' . $this->urlre . ')                    # $3: optional citation URL
      +                                      (?:$|([\]}])|(?=' . $this->punct . '{1,2}|\s)) # $4: closing brace/bracket
      +                                     }mx', $this->_cb('$me->_repl($me->repl[0], $me->format_cite(array("pre" => $m[1], "text" => $m[2], "cite" => $m[3], "post" => $m[4])))'), $text);
      +    }
      +
      +    // footnotes
      +    if (preg_match('/[^ ]\[\d+\]/', $text)) {
      +      $fntag = '<sup';
      +      if ($this->options['css']['class_footnote']) { $fntag .= ' class="' . $this->options['css']['class_footnote'] . '"'; }
      +      $fntag .= '><a href="#' . ($this->options['css']['id_footnote_prefix'] ? $this->options['css']['id_footnote_prefix'] : 'fn');
      +      $text = preg_replace('|([^ ])\[(\d+)\]|', '$1' . $fntag . '$2">$2</a></sup>', $text);
      +    }
      +
      +    // translate macros:
      +    $text = preg_replace_callback('{(\{)(.+?)(\})}x',
      +                                  $this->_cb('$me->format_macro(array("pre" => $m[1], "post" => $m[3], "macro" => $m[2]))'), $text);
      +
      +    // these were present with textile 1 and are common enough
      +    // to not require macro braces...
      +    // (tm) -> &trade;
      +    $text = preg_replace('|[\(\[]TM[\)\]]|i', '&#8482;', $text);
      +    // (c) -> &copy;
      +    $text = preg_replace('|[\(\[]C[\)\]]|i', '&#169;', $text);
      +    // (r) -> &reg;
      +    $text = preg_replace('|[\(\[]R[\)\]]|i', '&#174;', $text);
      +
      +    if ($this->preserve_spaces()) {
      +      // replace two spaces with an em space
      +      $text = preg_replace('/(?<!\s)\ \ (?!=\s)/', '&#8195;', $text);
      +    }
      +
      +    $redo = preg_match('/[\*_\?\-\+\^\~]/', $text);
      +    $last = $text;
      +    while ($redo) {
      +      // simple replacements...
      +      $redo = 0;
      +      foreach ($qtags as $tag) {
      +        list ($this->tmp['f'][], $this->tmp['r'][], $qf, $cls) = $tag;
      +        if ($last != ($text = preg_replace_callback('{(?:^|(?<=[\s>\'"])|([{[]))                     # "\' $1 - pre
      +                                                      ' . $qf . '                                    #
      +                                                      (?:(' . $this->clstyre . '*))?                 # $2 - attributes
      +                                                      ([^' . $cls . '\s].*?)                         # $3 - content
      +                                                      (?<=\S)' . $qf . '                             #
      +                                                      (?:$|([\]}])|(?=' . $this->punct . '{1,2}|\s)) # $4 - post
      +                                                     }mx', $this->_cb('$me->format_tag(array("tag" => end($me->tmp["r"]), "marker" => end($me->tmp["f"]), "pre" => $m[1], "text" => $m[3], "clsty" => $m[2], "post" => $m[4]))'), $text))) {
      +          $redo = ($redo || ($last != $text));
      +          $last = $text;
      +        }
      +        array_pop($this->tmp['f']); array_pop($this->tmp['r']);
      +      }
      +    }
      +
      +    // superscript is an even simpler replacement...
      +    $text = preg_replace('/(?<!\^)\^(?!\^)(.+?)(?<!\^)\^(?!\^)/', '<sup>$1</sup>', $text);
      +
      +    // ABC(Aye Bee Cee) -> acronym
      +    $text = preg_replace_callback('{\b([A-Z][A-Za-z0-9]*?[A-Z0-9]+?)\b(?:[(]([^)]*)[)])}',
      +                                  $this->_cb('$me->_repl($me->repl[0],"<acronym title=\"" . $me->encode_html_basic($m[2]) . "\">$m[1]</acronym>")'), $text);
      +
      +    // ABC -> 'capped' span
      +    if ($this->tmp['caps'][] = $this->options['css']['class_caps']) {
      +      $text = preg_replace_callback('/(^|[^"][>\s])  # "
      +                                      ((?:[A-Z](?:[A-Z0-9\.,\']|\&amp;){2,}\ *)+?) # \'
      +                                      (?=[^A-Z\.0-9]|$)
      +                                     /mx', $this->_cb('$m[1] . $me->_repl($me->repl[0], "<span class=\"" . end($me->tmp["caps"]) . "\">$m[2]</span>")'), $text);
      +    }
      +    array_pop($this->tmp['caps']);
      +
      +    // nxn -> n&times;n
      +    $text = preg_replace('!((?:[0-9\.]0|[1-9]|\d[\'"])\ ?)x(\ ?\d)!', '$1&#215;$2', $text);
      +
      +    // translate these entities to the Unicode equivalents:
      +    $text = preg_replace('/&#133;/', '&#8230;', $text);
      +    $text = preg_replace('/&#145;/', '&#8216;', $text);
      +    $text = preg_replace('/&#146;/', '&#8217;', $text);
      +    $text = preg_replace('/&#147;/', '&#8220;', $text);
      +    $text = preg_replace('/&#148;/', '&#8221;', $text);
      +    $text = preg_replace('/&#150;/', '&#8211;', $text);
      +    $text = preg_replace('/&#151;/', '&#8212;', $text);
      +
      +    // Restore replacements done earlier:
      +    for ($i = count($this->repl[0]); $i > 0; $i--) {
      +      $text = preg_replace("|<textile#$i>|", str_replace('$', '\\$', $this->repl[0][$i - 1]), $text);
      +    }
      +    array_shift($this->repl);
      +
      +    // translate entities to characters for highbit stuff since
      +    // we're using utf8
      +    // removed for backward compatability with older versions of Perl
      +    //if (preg_match('/^utf-?8$/i', $this->options['charset'])) {
      +    //    // translate any unicode entities to native UTF-8
      +    //    $text = preg_replace('/\&\#(\d+);/e', '($1 > 127) ? pack('U', $1) : chr($1)', $text);
      +    //}
      +
      +    return $text;
      +  } // function format_inline
      +
      +  /**
      +   * Responsible for processing a particular macro. Arguments passed
      +   * include:
      +   *
      +   * <ul>
      +   *
      +   * <li><b>pre</b>
      +   *
      +   * open brace character</li>
      +   *
      +   * <li><b>post</b>
      +   *
      +   * close brace character</li>
      +   *
      +   * <li><b>macro</b>
      +   *
      +   * the macro to be executed</li>
      +   *
      +   * </ul>
      +   *
      +   * The return value from this method would be the replacement
      +   * text for the macro given. If the macro is not defined, it will
      +   * return pre + macro + post, thereby preserving the original
      +   * macro string.
      +   *
      +   * @param $attrs An @c array containing the attributes for
      +   *        formatting the macro.
      +   *
      +   * @return A @c string containing the formatted macro.
      +   *
      +   * @private
      +   */
      +  function format_macro($attrs) {
      +    $macro = $attrs['macro'];
      +    if ($this->options['macros'][$macro]) {
      +      return $this->options['macros'][$macro];
      +    }
      +
      +    return $attrs['pre'] . $macro . $attrs['post'];
      +  } // function format_macro
      +
      +  /**
      +   * Processes text for a citation tag. The following attributes
      +   * are allowed:
      +   *
      +   * <ul>
      +   *
      +   * <li><b>pre</b>
      +   *
      +   * Any text that comes before the citation.</li>
      +   *
      +   * <li><b>text</b>
      +   *
      +   * The text that is being cited.</li>
      +   *
      +   * <li><b>cite</b>
      +   *
      +   * The URL of the citation.</li>
      +   *
      +   * <li><b>post</b>
      +   *
      +   * Any text that follows the citation.</li>
      +   *
      +   * </ul>
      +   *
      +   * @param $args An @c array specifying the attributes for formatting
      +   *        the citation.
      +   *
      +   * @return A @c string containing the formatted citation.
      +   *
      +   * @private
      +   */
      +  function format_cite($args) {
      +    $pre = (isset($args['pre']) ? $args['pre'] : '');
      +    $text = (isset($args['text']) ? $args['text'] : '');
      +    $cite = $args['cite'];
      +    $post = (isset($args['post']) ? $args['post'] : '');
      +    $this->_strip_borders($pre, $post);
      +    $tag = $pre . '<cite';
      +    if (preg_match('/^xhtml2/', $this->flavor()) && $cite) {
      +      $cite = $this->format_url(array('url' => $cite));
      +      $tag .= " cite=\"$cite\"";
      +    } else {
      +      $post .= ':';
      +    }
      +    $tag .= '>';
      +    return $tag . $this->format_inline(array('text' => $text)) . '</cite>' . $post;
      +  } // function format_cite
      +
      +  /**
      +   * Processes '@...@' type blocks (code snippets). The following
      +   * attributes are allowed:
      +   *
      +   * <ul>
      +   *
      +   * <li><b>text</b>
      +   *
      +   * The text of the code itself.</li>
      +   *
      +   * <li><b>lang</b>
      +   *
      +   * The language (programming language) for the code.</li>
      +   *
      +   * </ul>
      +   *
      +   * @param $args An @c array specifying the attributes for formatting
      +   *        the code.
      +   *
      +   * @return A @c string containing the formatted code.
      +   *
      +   * @private
      +   */
      +  function format_code($args) {
      +    $code = (isset($args['text']) ? $args['text'] : '');
      +    $lang = $args['lang'];
      +    $code = $this->encode_html($code, 1);
      +    $code = preg_replace('/&lt;textile#(\d+)&gt;/', '<textile#$1>', $code);
      +    $tag = '<code';
      +    if ($lang) { $tag .= " language=\"$lang\""; }
      +    return $tag . '>' . $code . '</code>';
      +  } // function format_code
      +
      +  /**
      +   * Returns a string of tag attributes to accomodate the class,
      +   * style and symbols present in @c $clsty.
      +   *
      +   * @c $clsty is checked for:
      +   *
      +   * <ul>
      +   *
      +   * <li><b><code>{...}</code></b>
      +   *
      +   * style rules. If present, they are appended to <code>$style</code>.</li>
      +   *
      +   * <li><b><code>(...#...)</code></b>
      +   *
      +   * class and/or ID name declaration</li>
      +   *
      +   * <li><b><code>(</code> (one or more)</b>
      +   *
      +   * pad left characters</li>
      +   *
      +   * <li><b><code>)</code> (one or more)</b>
      +   *
      +   * pad right characters</li>
      +   *
      +   * <li><b><code>[ll]</code></b>
      +   *
      +   * language declaration</li>
      +   *
      +   * </ul>
      +   *
      +   * The attribute string returned will contain any combination
      +   * of class, id, style and/or lang attributes.
      +   *
      +   * @param $clsty A @c string specifying the class/style to process.
      +   * @param $class A @c string specifying the predetermined class.
      +   * @param $style A @c string specifying the predetermined style.
      +   *
      +   * @return A @c string containing the formatted class, ID, style,
      +   *         and/or language.
      +   *
      +   * @private
      +   */
      +  function format_classstyle($clsty = NULL, $class = NULL, $style = NULL) {
      +    $class = preg_replace('/^ /', '', $class, 1);
      +
      +    unset($lang, $padleft, $padright, $id);
      +    if ($clsty && preg_match('/{([^}]+)}/', $clsty, $matches)) {
      +      $_style = $matches[1];
      +      $_style = preg_replace('/\n/', ' ', $_style);
      +      $style .= ';' . $_style;
      +      $clsty = preg_replace('/{[^}]+}/', '', $clsty);
      +    }
      +    if ($clsty && (preg_match('/\(([A-Za-z0-9_\- ]+?)(?:#(.+?))?\)/', $clsty, $matches) ||
      +                   preg_match('/\(([A-Za-z0-9_\- ]+?)?(?:#(.+?))\)/', $clsty, $matches))) {
      +      if ($matches[1] || $matches[2]) {
      +        if ($class) {
      +          $class = $matches[1] . ' ' . $class;
      +        } else {
      +          $class = $matches[1];
      +        }
      +        $id = $matches[2];
      +        if ($class) {
      +          $clsty = preg_replace('/\([A-Za-z0-9_\- ]+?(#.*?)?\)/', '', $clsty);
      +        }
      +        if ($id) {
      +          $clsty = preg_replace('/\(#.+?\)/', '', $clsty);
      +        }
      +      }
      +    }
      +    if ($clsty && preg_match('/(\(+)/', $clsty, $matches)) {
      +      $padleft = strlen($matches[1]);
      +      $clsty = preg_replace('/\(+/', '', $clsty, 1);
      +    }
      +    if ($clsty && preg_match('/(\)+)/', $clsty, $matches)) {
      +      $padright = strlen($matches[1]);
      +      $clsty = preg_replace('/\)+/', '', $clsty, 1);
      +    }
      +    if ($clsty && preg_match('/\[(.+?)\]/', $clsty, $matches)) {
      +      $lang = $matches[1];
      +      $clsty = preg_replace('/\[.+?\]/', '', $clsty);
      +    }
      +    $attrs = '';
      +    if ($padleft) { $style .= ";padding-left:${padleft}em"; }
      +    if ($padright) { $style .= ";padding-right:${padright}em"; }
      +    $style = preg_replace('/^;/', '', $style, 1);
      +    $class = preg_replace('/^ /', '', $class, 1);
      +    $class = preg_replace('/ $/', '', $class, 1);
      +    if ($class) { $attrs .= " class=\"$class\""; }
      +    if ($id) { $attrs .= " id=\"$id\""; }
      +    if ($style) { $attrs .= " style=\"$style\""; }
      +    if ($lang) { $attrs .= " lang=\"$lang\""; }
      +    $attrs = preg_replace('/^ /', '', $attrs, 1);
      +    return $attrs;
      +  } // function format_classstyle
      +
      +  /**
      +   * Constructs an HTML tag. Accepted arguments:
      +   *
      +   * <ul>
      +   *
      +   * <li><b>tag</b>
      +   *
      +   * the tag to produce</li>
      +   *
      +   * <li><b>text</b>
      +   *
      +   * the text to output inside the tag</li>
      +   *
      +   * <li><b>pre</b>
      +   *
      +   * text to produce before the tag</li>
      +   *
      +   * <li><b>post</b>
      +   *
      +   * text to produce following the tag</li>
      +   *
      +   * <li><b>clsty</b>
      +   *
      +   * class and/or style attributes that should be assigned to the tag.</li>
      +   *
      +   * </ul>
      +   *
      +   * @param $args @c array specifying the attributes for formatting
      +   *        the tag.
      +   *
      +   * @return A @c string containing the formatted tag.
      +   *
      +   * @private
      +   */
      +  function format_tag($args) {
      +    $tagname = $args['tag'];
      +    $text = (isset($args['text']) ? $args['text'] : '');
      +    $pre = (isset($args['pre']) ? $args['pre'] : '');
      +    $post = (isset($args['post']) ? $args['post'] : '');
      +    $clsty = (isset($args['clsty']) ? $args['clsty'] : '');
      +    $this->_strip_borders($pre, $post);
      +    $tag = "<$tagname";
      +    $attr = $this->format_classstyle($clsty);
      +    if ($attr) { $tag .= " $attr"; }
      +    $tag .= ">$text</$tagname>";
      +    return $pre . $tag . $post;
      +  } // function format_tag
      +
      +  /**
      +   * Takes a Textile formatted definition list and
      +   * returns the markup for it. Arguments accepted:
      +   *
      +   * <ul>
      +   *
      +   * <li><b>text</b>
      +   *
      +   * The text to be processed.</li>
      +   *
      +   * </ul>
      +   *
      +   * @param $args An @c array specifying the attributes for formatting
      +   *        the definition list.
      +   *
      +   * @return A @c string containing the formatted definition list.
      +   *
      +   * @private
      +   */
      +  function format_deflist($args) {
      +    $str = (isset($args['text']) ? $args['text'] : '');
      +    unset($clsty);
      +    $lines = preg_split('/\n/', $str);
      +    if (preg_match('{^(dl(' . $this->clstyre . '*?)\.\.?(?:\ +|$))}x', $lines[0], $matches)) {
      +      $clsty = $matches[2];
      +      $lines[0] = substr($lines[0], strlen($matches[1]));
      +    }
      +
      +    unset($dt, $dd);
      +    $out = '';
      +    foreach ($lines as $line) {
      +      if (preg_match('{^((?:' . $this->clstyre . '*)(?:[^\ ].*?)(?<!["\'\ ])):([^\ \/].*)$}x', $line, $matches)) {
      +        if ($dt && $dd) { $out .= $this->add_term($dt, $dd); }
      +        $dt = $matches[1];
      +        $dd = $matches[2];
      +      } else {
      +        $dd .= "\n" . $line;
      +      }
      +    }
      +    if ($dt && $dd) { $out .= $this->add_term($dt, $dd); }
      +
      +    $tag = '<dl';
      +    if ($clsty) { $attr = $this->format_classstyle($clsty); }
      +    if ($attr) { $tag .= " $attr"; }
      +    $tag .= '>' . "\n";
      +
      +    return $tag . $out . "</dl>\n";
      +  } // function format_deflist
      +
      +  /**
      +   * Processes a single definition list item from the provided term
      +   * and definition.
      +   *
      +   * @param $dt A @c string specifying the term to be defined.
      +   * @param $dd A @c string specifying the definition for the term.
      +   *
      +   * @return A @c string containing the formatted definition list
      +   *         item.
      +   *
      +   * @private
      +   */
      +  function add_term($dt, $dd) {
      +    unset($dtattr, $ddattr);
      +    unset($dtlang);
      +    if (preg_match('{^(' . $this->clstyre . '*)}x', $dt, $matches)) {
      +      $param = $matches[1];
      +      $dtattr = $this->format_classstyle($param);
      +      if (preg_match('/\[([A-Za-z]+?)\]/', $param, $matches)) {
      +        $dtlang = $matches[1];
      +      }
      +      $dt = substr($dt, strlen($param));
      +    }
      +    if (preg_match('{^(' . $this->clstyre . '*)}x', $dd, $matches)) {
      +      $param = $matches[1];
      +      // if the language was specified for the term,
      +      // then apply it to the definition as well (unless
      +      // already specified of course)
      +      if ($dtlang && preg_match('/\[([A-Za-z]+?)\]/', $param)) {
      +        unset($dtlang);
      +      }
      +      $ddattr = $this->format_classstyle(($dtlang ? "[$dtlang]" : '') . $param);
      +      $dd = substr($dd, strlen($param));
      +    }
      +    $out = '<dt';
      +    if ($dtattr) { $out .= " $dtattr"; }
      +    $out .= '>' . $this->format_inline(array('text' => $dt)) . '</dt>' . "\n";
      +    if (preg_match('/\n\n/', $dd)) {
      +      if (preg_match('/\n\n/', $dd)) { $dd = $this->process($dd); }
      +    } else {
      +      $dd = $this->format_paragraph(array('text' => $dd));
      +    }
      +    $out .= '<dd';
      +    if ($ddattr) { $out .= " $ddattr"; }
      +    $out .= '>' . $dd . '</dd>' . "\n";
      +    return $out;
      +  } // function add_term
      +
      +  /**
      +   * Takes a Textile formatted list (numeric or bulleted) and
      +   * returns the markup for it. Text that is passed in requires
      +   * substantial parsing, so the @c format_list method is a little
      +   * involved. But it should always produce a proper ordered
      +   * or unordered list. If it cannot (due to misbalanced input),
      +   * it will return the original text. Arguments accepted:
      +   *
      +   * <ul>
      +   *
      +   * <li><b>text</b>
      +   *
      +   * The text to be processed.</li>
      +   *
      +   * </ul>
      +   *
      +   * @param $args An @c array specifying the attributes for formatting
      +   *        the list.
      +   *
      +   * @return A @c string containing the formatted list.
      +   *
      +   * @private
      +   */
      +  function format_list($args) {
      +    $str = (isset($args['text']) ? $args['text'] : '');
      +
      +    $list_tags = array('*' => 'ul', '#' => 'ol');
      +
      +    $lines = preg_split('/\n/', $str);
      +
      +    unset($stack);
      +    $last_depth = 0;
      +    $item = '';
      +    $out = '';
      +    foreach ($lines as $line) {
      +      if (preg_match('{^((?:' . $this->clstypadre . '*|' . $this->halignre . ')*)
      +                       ([\#\*]+)
      +                       ((?:' . $this->halignre . '|' . $this->clstypadre . '*)*)
      +                       \ (.+)$}x', $line, $matches)) {
      +        if ($item != '') {
      +          if (preg_match('/\n/', $item)) {
      +            if ($this->options['_line_open']) {
      +              $item = preg_replace('/(<li[^>]*>|^)/m', '$1' . $this->options['_line_open'], $item);
      +              $item = preg_replace('/(\n|$)/s', $this->options['_line_close'] . '$1', $item);
      +            } else {
      +              $item = preg_replace('/(\n)/s', $this->options['_line_close'] . '$1', $item);
      +            }
      +          }
      +          $out .= $item;
      +          $item = '';
      +        }
      +        $type = substr($matches[2], 0, 1);
      +        $depth = strlen($matches[2]);
      +        $blockparam = $matches[1];
      +        $itemparam = $matches[3];
      +        $line = $matches[4];
      +        unset ($blockclsty, $blockalign, $blockattr, $itemattr, $itemclsty,
      +               $itemalign);
      +        if (preg_match('{(' . $this->clstypadre . '+)}x', $blockparam, $matches)) {
      +          $blockclsty = $matches[1];
      +        }
      +        if (preg_match('{(' . $this->halignre . '+)}', $blockparam, $matches)) {
      +          $blockalign = $matches[1];
      +        }
      +        if (preg_match('{(' . $this->clstypadre . '+)}x', $itemparam, $matches)) {
      +          $itemclsty = $matches[1];
      +        }
      +        if (preg_match('{(' . $this->halignre . '+)}', $itemparam, $matches)) {
      +          $itemalign = $matches[1];
      +        }
      +        if ($itemclsty) { $itemattr = $this->format_classstyle($itemclsty); }
      +        if ($depth > $last_depth) {
      +          for ($j = $last_depth; $j < $depth; $j++) {
      +            $out .= "\n<$list_tags[$type]";
      +            $stack[] = $type;
      +            if ($blockclsty) {
      +              $blockattr = $this->format_classstyle($blockclsty);
      +              if ($blockattr) { $out .= ' ' . $blockattr; }
      +            }
      +            $out .= ">\n<li";
      +            if ($itemattr) { $out .= " $itemattr"; }
      +            $out .= ">";
      +          }
      +        } elseif ($depth < $last_depth) {
      +          for ($j = $depth; $j < $last_depth; $j++) {
      +            if ($j == $depth) { $out .= "</li>\n"; }
      +            $type = array_pop($stack);
      +            $out .= "</$list_tags[$type]>\n</li>\n";
      +          }
      +          if ($depth) {
      +            $out .= '<li';
      +            if ($itemattr) { $out .= " $itemattr"; }
      +            $out .= '>';
      +          }
      +        } else {
      +          $out .= "</li>\n<li";
      +          if ($itemattr) { $out .= " $itemattr"; }
      +          $out .= '>';
      +        }
      +        $last_depth = $depth;
      +      }
      +      if ($item != '') { $item .= "\n"; }
      +      $item .= $this->format_paragraph(array('text' => $line));
      +    }
      +
      +    if (preg_match('/\n/', $item, $matches)) {
      +      if ($this->options['_line_open']) {
      +        $item = preg_replace('/(<li[^>]*>|^)/m', '$1' . $this->options['_line_open'], $item);
      +        $item = preg_replace('/(\n|$)/s', $this->options['_line_close'] . '$1', $item);
      +      } else {
      +        $item = preg_replace('/(\n)/s', $this->options['_line_close'] . '$1', $item);
      +      }
      +    }
      +    $out .= $item;
      +
      +    for ($j = 1; $j <= $last_depth; $j++) {
      +      if ($j == 1) { $out .= '</li>'; }
      +      $type = array_pop($stack);
      +      $out .= "\n" . '</' . $list_tags[$type] . '>' . "\n";
      +      if ($j != $last_depth) { $out .= '</li>'; }
      +    }
      +
      +    return $out . "\n";
      +  } // function format_list
      +
      +  /**
      +   * Processes '==xxxxx==' type blocks for filters. A filter
      +   * would follow the open '==' sequence and is specified within
      +   * pipe characters, like so:
      +   * <pre>
      +   *     ==|filter|text to be filtered==
      +   * </pre>
      +   * You may specify multiple filters in the filter portion of
      +   * the string. Simply comma delimit the filters you desire
      +   * to execute. Filters are defined using the filters method.
      +   *
      +   * @param $args An @c array specifying the attributes for formatting
      +   *        the block.
      +   *
      +   * @return A @c string containing the formatted block.
      +   *
      +   * @private
      +   */
      +  function format_block($args) {
      +    $str = (isset($args['text']) ? $args['text'] : '');
      +    $inline = $args['inline'];
      +    $pre = (isset($args['pre']) ? $args['pre'] : '');
      +    $post = (isset($args['post']) ? $args['post'] : '');
      +    $this->_strip_borders($pre, $post);
      +    $filters = (preg_match('/^(\|(?:(?:[a-z0-9_\-]+)\|)+)/', $str, $matches) ? $matches[1] : '');
      +    if ($filters) {
      +      $filtreg = preg_replace('/[^A-Za-z0-9]/', '\\\\$1', $filters);
      +      $str = preg_replace('/^' . $filtreg . '/', '', $str, 1);
      +      $filters = preg_replace('/^\|/', '', $filters, 1);
      +      $filters = preg_replace('/\|$/', '', $filter, 1);
      +      $filters = preg_split('/\|/', $filters);
      +      $str = $this->apply_filters(array('text' => $str, 'filters' => $filters));
      +      $count = count($filters);
      +      if ($str = preg_replace('!(<p>){' . $count . '}!se', '(++$i ? "$1" : "$1")', $str) && $i) {
      +        $str = preg_replace('!(</p>){' . $count . '}!s', '$1', $str);
      +        $str = preg_replace('!(<br( /)?>){' . $count . '}!s', '$1', $str);
      +      }
      +    }
      +    if ($inline) {
      +      // strip off opening para, closing para, since we're
      +      // operating within an inline block
      +      $str = preg_replace('/^\s*<p[^>]*>/', '', $str, 1);
      +      $str = preg_replace('/<\/p>\s*$/', '', $str, 1);
      +    }
      +    return $pre . $str . $post;
      +  } // function format_block
      +
      +  /**
      +   * Takes the Textile link attributes and transforms them into
      +   * a hyperlink.
      +   *
      +   * @param $args An @c array specifying the attributes for formatting
      +   *        the link.
      +   *
      +   * @return A @c string containing the formatted link.
      +   *
      +   * @private
      +   */
      +  function format_link($args) {
      +    $text = (isset($args['text']) ? $args['text'] : '');
      +    $linktext = (isset($args['linktext']) ? $args['linktext'] : '');
      +    $title = $args['title'];
      +    $url = $args['url'];
      +    $clsty = $args['clsty'];
      +
      +    if (!$url || ($url == '')) {
      +      return $text;
      +    }
      +    if (isset($this->links) && isset($this->links[$url])) {
      +      $title = ($title ? $title : $this->links[$url]['title']);
      +      $url = $this->links[$url]['url'];
      +    }
      +    $linktext = preg_replace('/ +$/', '', $linktext, 1);
      +    $linktext = $this->format_paragraph(array('text' => $linktext));
      +    $url = $this->format_url(array('linktext' => $linktext, 'url' => $url));
      +    $tag = "<a href=\"$url\"";
      +    $attr = $this->format_classstyle($clsty);
      +    if ($attr) { $tag .= " $attr"; }
      +    if ($title) {
      +      $title = preg_replace('/^\s+/', '', $title, 1);
      +      if (strlen($title)) { $tag .= " title=\"$title\""; }
      +    }
      +    $tag .= ">$linktext</a>";
      +    return $tag;
      +  } // function format_link
      +
      +  /**
      +   * Takes the given @c $url and transforms it appropriately.
      +   *
      +   * @param $args An @c array specifying the attributes for formatting
      +   *        the url.
      +   *
      +   * @return A @c string containing the formatted url.
      +   *
      +   * @private
      +   */
      +  function format_url($args) {
      +    $url = ($args['url'] ? $args['url'] : '');
      +    if (preg_match('/^(mailto:)?([-\+\w]+@[-\w]+(\.\w[-\w]*)+)$/', $url, $matches)) {
      +      $url = 'mailto:' . $this->mail_encode($matches[2]);
      +    }
      +    if (!preg_match('!^(/|\./|\.\./|#)!', $url)) {
      +      if (!preg_match('!^(https?|ftp|mailto|nntp|telnet)!', $url)) { $url = "http://$url"; }
      +    }
      +    $url = preg_replace('/&(?!amp;)/', '&amp;', $url);
      +    $url = preg_replace('/\ /', '+', $url);
      +    $url = preg_replace_callback('/^((?:.+?)\?)(.+)$/', $this->_cb('$m[1] . $me->encode_url($m[2])'), $url);
      +    return $url;
      +  } // function format_url
      +
      +  /**
      +   * Takes a Textile formatted span and returns the markup for it.
      +   *
      +   * @return A @c string containing the formatted span.
      +   *
      +   * @private
      +   */
      +  function format_span($args) {
      +    $text = (isset($args['text']) ? $args['text'] : '');
      +    $pre = (isset($args['pre']) ? $args['pre'] : '');
      +    $post = (isset($args['post']) ? $args['post'] : '');
      +    $align = $args['align'];
      +    $cite = (isset($args['cite']) ? $args['cite'] : '');
      +    $clsty = $args['clsty'];
      +    $this->_strip_borders($pre, $post);
      +    unset($class, $style);
      +    $tag  = "<span";
      +    $style = '';
      +    if ($align) {
      +      if ($self->options['css_mode']) {
      +        $alignment = $this->_halign($align);
      +        if ($alignment) { $style .= ";float:$alignment"; }
      +        if ($alignment) { $class .= ' ' . $this->options['css']["class_align_$alignment"]; }
      +      } else {
      +        $alignment = ($this->_halign($align) ? $this->_halign($align) : $this->_valign($align));
      +        if ($alignment) { $tag .= " align=\"$alignment\""; }
      +      }
      +    }
      +    $attr = $this->format_classstyle($clsty, $class, $style);
      +    if ($attr) { $tag .= " $attr"; }
      +    if ($cite) {
      +      $cite = preg_replace('/^:/', '', $cite, 1);
      +      $cite = $this->format_url(array('url' => $cite));
      +      $tag .= " cite=\"$cite\"";
      +    }
      +    return $pre . $tag . '>' . $this->format_paragraph(array('text' => $text)) . '</span>' . $post;
      +  } // function format_span
      +
      +  /**
      +   * Returns markup for the given image. @c $src is the location of
      +   * the image, @c $extra contains the optional height/width and/or
      +   * alt text. @c $url is an optional hyperlink for the image. @c $class
      +   * holds the optional CSS class attribute.
      +   *
      +   * Arguments you may pass:
      +   *
      +   * <ul>
      +   *
      +   * <li><b>src</b>
      +   *
      +   * The 'src' (URL) for the image. This may be a local path,
      +   * ideally starting with a '/'. Images can be located within
      +   * the file system if the docroot method is used to specify
      +   * where the docroot resides. If the image can be found, the
      +   * image_size method is used to determine the dimensions of
      +   * the image.</li>
      +   *
      +   * <li><b>extra</b>
      +   *
      +   * Additional parameters for the image. This would include
      +   * alt text, height/width specification or scaling instructions.</li>
      +   *
      +   * <li><b>align</b>
      +   *
      +   * Alignment attribute.</li>
      +   *
      +   * <li><b>pre</b>
      +   *
      +   * Text to produce prior to the tag.</li>
      +   *
      +   * <li><b>post</b>
      +   *
      +   * Text to produce following the tag.</li>
      +   *
      +   * <li><b>link</b>
      +   *
      +   * Optional URL to connect with the image tag.</li>
      +   *
      +   * <li><b>clsty</b>
      +   *
      +   * Class and/or style attributes.</li>
      +   *
      +   * </ul>
      +   *
      +   * @param $args An @c array specifying the attributes for formatting
      +   *        the image.
      +   *
      +   * @return A @c string containing the formatted image.
      +   *
      +   * @private
      +   */
      +  function format_image($args) {
      +    $src = (isset($args['src']) ? $args['src'] : '');
      +    $extra = $args['extra'];
      +    $align = $args['align'];
      +    $pre = (isset($args['pre']) ? $args['pre'] : '');
      +    $post = (isset($args['post']) ? $args['post'] : '');
      +    $link = $args['url'];
      +    $clsty = $args['clsty'];
      +    $this->_strip_borders($pre, $post);
      +    if (strlen($src) == 0) { return $pre . '!!' . $post; }
      +    unset($tag);
      +    if (preg_match('/^xhtml2/', $this->options['flavor'])) {
      +      unset($type); // poor man's mime typing. need to extend this externally
      +      if (preg_match('/(?:\.jpeg|\.jpg)$/i', $src)) {
      +        $type = 'image/jpeg';
      +      } elseif (preg_match('/\.gif$/i', $src)) {
      +        $type = 'image/gif';
      +      } elseif (preg_match('/\.png$/i', $src)) {
      +        $type = 'image/png';
      +      } elseif (preg_match('/\.tiff$/i', $src)) {
      +        $type = 'image/tiff';
      +      }
      +      $tag = "<object";
      +      if ($type) { $tag .= " type=\"$type\""; }
      +      $tag .= " data=\"$src\"";
      +    } else {
      +      $tag = "<img src=\"$src\"";
      +    }
      +    unset($class, $style);
      +    if ($align) {
      +      if ($this->options['css_mode']) {
      +        $alignment = $this->_halign($align);
      +        if ($alignment) { $style .= ";float:$alignment"; }
      +        if ($alignment) { $class .= ' ' . $alignment; }
      +        $alignment = $this->_valign($align);
      +        if ($alignment) {
      +          $imgvalign = (preg_match('/(top|bottom)/', $alignment) ? 'text-' . $alignment : $alignment);
      +          if ($imgvalign) { $style .= ";vertical-align:$imgvalign"; }
      +          if ($alignment) { $class .= ' ' . $this->options['css']["class_align_$alignment"]; }
      +        }
      +      } else {
      +        $alignment = ($this->_halign($align) ? $this->_halign($align) : $this->_valign($align));
      +        if ($alignment) { $tag .= " align=\"$alignment\""; }
      +      }
      +    }
      +    unset($pctw, $pcth, $w, $h, $alt);
      +    if ($extra) {
      +      $alt = (preg_match('/\(([^\)]+)\)/', $extra, $matches) ? $matches[1] : '');
      +      $extra = preg_replace('/\([^\)]+\)/', '', $extra, 1);
      +      $pct = (preg_match('/(^|\s)(\d+)%(\s|$)/', $extra, $matches) ? $matches[2] : '');
      +      if (!$pct) {
      +        list($pctw, $pcth) = (preg_match('/(^|\s)(\d+)%x(\d+)%(\s|$)/', $extra, $matches) ? array($matches[2], $matches[3]) : NULL);
      +      } else {
      +        $pctw = $pcth = $pct;
      +      }
      +      if (!$pctw && !$pcth) {
      +        list($w,$h) = (preg_match('/(^|\s)(\d+|\*)x(\d+|\*)(\s|$)/', $extra, $matches) ? array($matches[2], $matches[3]) : NULL);
      +        if ($w == '*') { $w = ''; }
      +        if ($h == '*') { $h = ''; }
      +        if (!$w) {
      +          $w = (preg_match('/(^|[,\s])(\d+)w([\s,]|$)/', $extra, $matches) ? $matches[2] : '');
      +        }
      +        if (!$h) {
      +          $h = (preg_match('/(^|[,\s])(\d+)h([\s,]|$)/', $extra, $matches) ? $matches[2] : '');
      +        }
      +      }
      +    }
      +    $alt = ($alt ? $alt : '');
      +    if (!preg_match('/^xhtml2/', $this->options['flavor'])) {
      +      $tag .= ' alt="' . $this->encode_html_basic($alt) . '"';
      +    }
      +    if ($w && $h) {
      +      if (!preg_match('/^xhtml2/', $this->options['flavor'])) {
      +        $tag .= " height=\"$h\" width=\"$w\"";
      +      } else {
      +        $style .= ";height:${h}px;width:${w}px";
      +      }
      +    } else {
      +      list($image_w, $image_h) = $this->image_size($src);
      +      if (($image_w && $image_h) && ($w || $h)) {
      +        // image size determined, but only width or height specified
      +        if ($w && !$h) {
      +          // width defined, scale down height proportionately
      +          $h = intval($image_h * ($w / $image_w));
      +        } elseif ($h && !$w) {
      +          $w = intval($image_w * ($h / $image_h));
      +        }
      +      } else {
      +        $w = $image_w;
      +        $h = $image_h;
      +      }
      +      if ($w && $h) {
      +        if ($pctw || $pcth) {
      +          $w = intval($w * $pctw / 100);
      +          $h = intval($h * $pcth / 100);
      +        }
      +        if (!preg_match('/^xhtml2/', $this->options['flavor'])) {
      +          $tag .= " height=\"$h\" width=\"$w\"";
      +        } else {
      +          $style .= ";height:{$h}px;width:{$w}px";
      +        }
      +      }
      +    }
      +    $attr = $this->format_classstyle($clsty, $class, $style);
      +    if ($attr) { $tag .= " $attr"; }
      +    if (preg_match('/^xhtml2/', $this->options['flavor'])) {
      +      $tag .= '><p>' . $this->encode_html_basic($alt) . '</p></object>';
      +    } elseif (preg_match('/^xhtml/', $this->options['flavor'])) {
      +      $tag .= ' />';
      +    } else {
      +      $tag .= '>';
      +    }
      +    if ($link) {
      +      $link = preg_replace('/^:/', '', $link, 1);
      +      $link = $this->format_url(array('url' => $link));
      +      $tag = '<a href="' . $link . '">' . $tag . '</a>';
      +    }
      +    return $pre . $tag . $post;
      +  } // function format_image
      +
      +  /**
      +   * Takes a Wiki-ish string of data and transforms it into a full
      +   * table.
      +   *
      +   * @param $args An @c array specifying the attributes for formatting
      +   *        the table.
      +   *
      +   * @return A @c string containing the formatted table.
      +   *
      +   * @private
      +   */
      +  function format_table($args) {
      +    $str = (isset($args['text']) ? $args['text'] : '');
      +
      +    $lines = preg_split('/\n/', $str);
      +    unset($rows);
      +    $line_count = count($lines);
      +    for ($i = 0; $i < $line_count; $i++) {
      +      if (!preg_match('/\|\s*$/', $lines[$i])) {
      +        if ($i + 1 < $line_count) {
      +          if ($i + 1 <= count($lines) - 1) { $lines[$i + 1] = $lines[$i] . "\n" . $lines[$i + 1]; }
      +        } else {
      +          $rows[] = $lines[$i];
      +        }
      +      } else {
      +        $rows[] = $lines[$i];
      +      }
      +    }
      +    unset($tid, $tpadl, $tpadr, $tlang);
      +    $tclass = '';
      +    $tstyle = '';
      +    $talign = '';
      +    if (preg_match('/^table[^\.]/', $rows[0])) {
      +      $row = $rows[0];
      +      $row = preg_replace('/^table/', '', $row, 1);
      +      $params = 1;
      +      // process row parameters until none are left
      +      while ($params) {
      +        if (preg_match('{^(' . $this->tblalignre . ')}', $row, $matches)) {
      +          // found row alignment
      +          $talign .= $matches[1];
      +          if ($matches[1]) { $row = substr($row, strlen($matches[1])); }
      +          if ($matches[1]) { continue; }
      +        }
      +        if (preg_match('{^(' . $this->clstypadre . ')}x', $row, $matches)) {
      +          // found a class/id/style/padding indicator
      +          $clsty = $matches[1];
      +          if ($clsty) { $row = substr($row, strlen($clsty)); }
      +          if (preg_match('/{([^}]+)}/', $clsty, $matches)) {
      +            $tstyle = $matches[1];
      +            $clsty = preg_replace('/{([^}]+)}/', '', $clsty, 1);
      +            if ($tstyle) { continue; }
      +          }
      +          if (preg_match('/\(([A-Za-z0-9_\- ]+?)(?:#(.+?))?\)/', $clsty, $matches) ||
      +              preg_match('/\(([A-Za-z0-9_\- ]+?)?(?:#(.+?))\)/', $clsty, $matches)) {
      +            if ($matches[1] || $matches[2]) {
      +              $tclass = $matches[1];
      +              $tid = $matches[2];
      +              continue;
      +            }
      +          }
      +          if (preg_match('/(\(+)/', $clsty, $matches)) { $tpadl = strlen($matches[1]); }
      +          if (preg_match('/(\)+)/', $clsty, $matches)) { $tpadr = strlen($matches[1]); }
      +          if (preg_match('/\[(.+?)\]/', $clsty, $matches)) { $tlang = $matches[1]; }
      +          if ($clsty) { continue; }
      +        }
      +        $params = 0;
      +      }
      +      $row = preg_replace('/\.\s+/', '', $row, 1);
      +      $rows[0] = $row;
      +    }
      +    $out = '';
      +    $cols = preg_split('/\|/', $rows[0] . ' ');
      +    unset($colaligns, $rowspans);
      +    foreach ($rows as $row) {
      +      $cols = preg_split('/\|/', $row . ' ');
      +      $colcount = count($cols) - 1;
      +      array_pop($cols);
      +      $colspan = 0;
      +      $row_out = '';
      +      unset($rowclass, $rowid, $rowalign, $rowstyle, $rowheader);
      +      if (!$cols[0]) { $cols[0] = ''; }
      +      if (preg_match('/_/', $cols[0])) {
      +        $cols[0] = preg_replace('/_/', '', $cols[0]);
      +        $rowheader = 1;
      +      }
      +      if (preg_match('/{([^}]+)}/', $cols[0], $matches)) {
      +        $rowstyle = $matches[1];
      +        $cols[0] = preg_replace('/{[^}]+}/', '', $cols[0]);
      +      }
      +      if (preg_match('/\(([^\#]+?)?(#(.+))?\)/', $cols[0], $matches)) {
      +        $rowclass = $matches[1];
      +        $rowid = $matches[3];
      +        $cols[0] = preg_replace('/\([^\)]+\)/', '', $cols[0]);
      +      }
      +      if (preg_match('{(' . $this->alignre . ')}', $cols[0], $matches)) { $rowalign = $matches[1]; }
      +      for ($c = $colcount - 1; $c > 0; $c--) {
      +        if ($rowspans[$c]) {
      +          $rowspans[$c]--;
      +          if ($rowspans[$c] > 1) { continue; }
      +        }
      +        unset($colclass, $colid, $header, $colparams, $colpadl, $colpadr, $collang);
      +        $colstyle = '';
      +        $colalign = $colaligns[$c];
      +        $col = array_pop($cols);
      +        $col = ($col ? $col : '');
      +        $attrs = '';
      +        if (preg_match('{^(((_|[/\\\\]\d+|' . $this->alignre . '|' . $this->clstypadre . ')+)\.\ )}x', $col, $matches)) {
      +          $colparams = $matches[2];
      +          $col = substr($col, strlen($matches[1]));
      +          $params = 1;
      +          // keep processing column parameters until there
      +          // are none left...
      +          while ($params) {
      +            if (preg_match('{^(_|' . $this->alignre . ')(.*)$}', $colparams, $matches)) {
      +              // found alignment or heading indicator
      +              $attrs .= $matches[1];
      +              if ($matches[1]) { $colparams = $matches[2]; }
      +              if ($matches[1]) { continue; }
      +            }
      +            if (preg_match('{^(' . $this->clstypadre . ')(.*)$}x', $colparams, $matches)) {
      +              // found a class/id/style/padding marker
      +              $clsty = $matches[1];
      +              if ($clsty) { $colparams = $matches[2]; }
      +              if (preg_match('/{([^}]+)}/', $clsty, $matches)) {
      +                $colstyle = $matches[1];
      +                $clsty = preg_replace('/{([^}]+)}/', '', $clsty, 1);
      +              }
      +              if (preg_match('/\(([A-Za-z0-9_\- ]+?)(?:#(.+?))?\)/', $clsty, $matches) ||
      +                  preg_match('/\(([A-Za-z0-9_\- ]+?)?(?:#(.+?))\)/', $clsty, $matches)) {
      +                if ($matches[1] || $matches[2]) {
      +                  $colclass = $matches[1];
      +                  $colid = $matches[2];
      +                  if ($colclass) {
      +                    $clsty = preg_replace('/\([A-Za-z0-9_\- ]+?(#.*?)?\)/', '', $clsty);
      +                  } elseif ($colid) {
      +                    $clsty = preg_replace('/\(#.+?\)/', '', $clsty);
      +                  }
      +                }
      +              }
      +              if (preg_match('/(\(+)/', $clsty, $matches)) {
      +                $colpadl = strlen($matches[1]);
      +                $clsty = preg_replace('/\(+/', '', $clsty, 1);
      +              }
      +              if (preg_match('/(\)+)/', $clsty, $matches)) {
      +                $colpadr = strlen($matches[1]);
      +                $clsty = preg_replace('/\)+/', '', $clsty, 1);
      +              }
      +              if (preg_match('/\[(.+?)\]/', $clsty, $matches)) {
      +                $collang = $matches[1];
      +                $clsty = preg_replace('/\[.+?\]/', '', $clsty, 1);
      +              }
      +              if ($clsty) { continue; }
      +            }
      +            if (preg_match('/^\\\\(\d+)/', $colparams, $matches)) {
      +              $colspan = $matches[1];
      +              $colparams = substr($colparams, strlen($matches[1]) + 1);
      +              if ($matches[1]) { continue; }
      +            }
      +            if (preg_match('/\/(\d+)/', $colparams, $matches)) {
      +              if ($matches[1]) { $rowspans[$c] = $matches[1]; }
      +              $colparams = substr($colparams, strlen($matches[1]) + 1);
      +              if ($matches[1]) { continue; }
      +            }
      +            $params = 0;
      +          }
      +        }
      +        if (strlen($attrs)) {
      +          if (preg_match('/_/', $attrs)) { $header = 1; }
      +          if (preg_match('{(' . $this->alignre . ')}', $attrs, $matches) && strlen($matches[1])) { $colalign = ''; }
      +          // determine column alignment
      +          if (preg_match('/<>/', $attrs)) {
      +            $colalign .= '<>';
      +          } elseif (preg_match('/</', $attrs)) {
      +            $colalign .= '<';
      +          } elseif (preg_match('/=/', $attrs)) {
      +            $colalign = '=';
      +          } elseif (preg_match('/>/', $attrs)) {
      +            $colalign = '>';
      +          }
      +          if (preg_match('/\^/', $attrs)) {
      +            $colalign .= '^';
      +          } elseif (preg_match('/~/', $attrs)) {
      +            $colalign .= '~';
      +          } elseif (preg_match('/-/', $attrs)) {
      +            $colalign .= '-';
      +          }
      +        }
      +        if ($rowheader) { $header = 1; }
      +        if ($header) { $colaligns[$c] = $colalign; }
      +        $col = preg_replace('/^ +/', '', $col, 1); $col = preg_replace('/ +$/', '', $col, 1);
      +        if (strlen($col)) {
      +          // create one cell tag
      +          $rowspan = ($rowspans[$c] ? $rowspans[$c] : 0);
      +          $col_out = '<' . ($header ? 'th' : 'td');
      +          if ($colalign) {
      +            // horizontal, vertical alignment
      +            $halign = $this->_halign($colalign);
      +            if ($halign) { $col_out .= " align=\"$halign\""; }
      +            $valign = $this->_valign($colalign);
      +            if ($valign) { $col_out .= " valign=\"$valign\""; }
      +          }
      +          // apply css attributes, row, column spans
      +          if ($colpadl) { $colstyle .= ";padding-left:${colpadl}em"; }
      +          if ($colpadr) { $colstyle .= ";padding-right:${colpadr}em"; }
      +          if ($colclass) { $col_out .= " class=\"$colclass\""; }
      +          if ($colid) { $col_out .= " id=\"$colid\""; }
      +          if ($colstyle) { $colstyle = preg_replace('/^;/', '', $colstyle, 1); }
      +          if ($colstyle) { $col_out .= " style=\"$colstyle\""; }
      +          if ($collang) { $col_out .= " lang=\"$collang\""; }
      +          if ($colspan > 1) { $col_out .= " colspan=\"$colspan\""; }
      +          if ($rowspan > 1) { $col_out .= " rowspan=\"$rowspan\""; }
      +          $col_out .= '>';
      +          // if the content of this cell has newlines OR matches
      +          // our paragraph block signature, process it as a full-blown
      +          // textile document
      +          if (preg_match('/\n\n/', $col) ||
      +              preg_match('{^(?:' . $this->halignre . '|' . $this->clstypadre . '*)*
      +                            [\*\#]
      +                            (?:' . $this->clstypadre . '*|' . $this->halignre . ')*\ }x', $col)) {
      +            $col_out .= $this->process($col);
      +          } else {
      +            $col_out .= $this->format_paragraph(array('text' => $col));
      +          }
      +          $col_out .= '</' . ($header ? 'th' : 'td') . '>';
      +          $row_out = $col_out . $row_out;
      +          if ($colspan) { $colspan = 0; }
      +        } else {
      +          if ($colspan == 0) { $colspan = 1; }
      +          $colspan++;
      +        }
      +      }
      +      if ($colspan > 1) {
      +        // handle the spanned column if we came up short
      +        $colspan--;
      +        $row_out = "<td"
      +                 . ($colspan > 1 ? " colspan=\"$colspan\"" : '')
      +                 . "></td>$row_out";
      +      }
      +
      +      // build one table row
      +      $out .= "<tr";
      +      if ($rowalign) {
      +        $valign = $this->_valign($rowalign);
      +        if ($valign) { $out .= " valign=\"$valign\""; }
      +      }
      +      if ($rowclass) { $out .= " class=\"$rowclass\""; }
      +      if ($rowid) { $out .= " id=\"$rowid\""; }
      +      if ($rowstyle) { $out .= " style=\"$rowstyle\""; }
      +      $out .= ">$row_out</tr>";
      +    }
      +
      +    // now, form the table tag itself
      +    $table = '';
      +    $table .= "<table";
      +    if ($talign) {
      +      if ($this->options['css_mode']) {
      +        // horizontal alignment
      +        $alignment = $this->_halign($talign);
      +        if ($talign == '=') {
      +          $tstyle .= ';margin-left:auto;margin-right:auto';
      +        } else {
      +          if ($alignment) { $tstyle .= ';float:' . $alignment; }
      +        }
      +        if ($alignment) { $tclass .= ' ' . $alignment; }
      +      } else {
      +        $alignment = $this->_halign($talign);
      +        if ($alignment) { $table .= " align=\"$alignment\""; }
      +      }
      +    }
      +    if ($tpadl) { $tstyle .= ";padding-left:${tpadl}em"; }
      +    if ($tpadr) { $tstyle .= ";padding-right:${tpadr}em"; }
      +    if ($tclass) { $tclass = preg_replace('/^ /', '', $tclass, 1); }
      +    if ($tclass) { $table .= " class=\"$tclass\""; }
      +    if ($tid) { $table .= " id=\"$tid\""; }
      +    if ($tstyle) { $tstyle = preg_replace('/^;/', '', $tstyle, 1); }
      +    if ($tstyle) { $table .= " style=\"$tstyle\""; }
      +    if ($tlang) { $table .= " lang=\"$tlang\""; }
      +    if ($tclass || $tid || $tstyle) { $table .= " cellspacing=\"0\""; }
      +    $table .= ">$out</table>";
      +
      +    if (preg_match('|<tr></tr>|', $table)) {
      +      // exception -- something isn't right so return fail case
      +      return NULL;
      +    }
      +
      +    return $table;
      +  } // function format_table
      +
      +  /**
      +   * The following attributes are allowed:
      +   *
      +   * <ul>
      +   *
      +   * <li><b>text</b>
      +   *
      +   * The text to be processed.</li>
      +   *
      +   * <li><b>filters</b>
      +   *
      +   * An array reference of filter names to run for the given text.</li>
      +   *
      +   * </ul>
      +   *
      +   * @param $args An @c array specifying the text and filters to
      +   *        apply.
      +   *
      +   * @return A @c string containing the filtered text.
      +   *
      +   * @private
      +   */
      +  function apply_filters($args) {
      +    $text = $args['text'];
      +    if (!$text) { return ''; }
      +    $list = $args['filters'];
      +    $filters = $this->options['filters'];
      +    if (!is_array($filters)) { return $text; }
      +
      +    $param = $this->filter_param();
      +    foreach ($list as $filter) {
      +      if (!isset($filters[$filter])) { continue; }
      +      if (is_string($filters[$filter])) {
      +        $text = (($f = create_function('$text, $param', $filters[$filter])) ? $f($text, $param) : $text);
      +      }
      +    }
      +    return $text;
      +  } // function apply_filters
      +
      +  // minor utility / formatting routines
      +
      +  var $Have_Entities = 1;
      +
      +  /**
      +   * Encodes input @c $html string, escaping characters as needed
      +   * to HTML entities. This relies on the @c htmlentities function
      +   * for full effect. If unavailable, @c encode_html_basic is used
      +   * as a fallback technique. If the "char_encoding" flag is
      +   * set to false, @c encode_html_basic is used exclusively.
      +   *
      +   * @param $html A @c string specifying the HTML to be encoded.
      +   * @param $can_double_encode If provided, a @c bool indicating
      +   *        whether or not ampersand characters should be
      +   *        unconditionally encoded.
      +   *
      +   * @return A @c string containing the encoded HTML.
      +   *
      +   * @private
      +   */
      +  function encode_html($html, $can_double_encode = FALSE) {
      +    if (!$html) { return ''; }
      +    if ($this->Have_Entities && $this->options['char_encoding']) {
      +      $html = htmlentities($html, ENT_QUOTES, $this->options['char_encoding']);
      +    } else {
      +      $html = $this->encode_html_basic($html, $can_double_encode);
      +    }
      +    return $html;
      +  } // function encode_html
      +
      +  /**
      +   * Decodes HTML entities in @c $html to their natural character
      +   * equivalents.
      +   *
      +   * @param $html A @c string specifying the HTML to be decoded.
      +   *
      +   * @return A @c string containing the decode HTML
      +   *
      +   * @private
      +   */
      +  function decode_html($html) {
      +    $html = preg_replace('!&quot;!', '"', $html);
      +    $html = preg_replace('!&amp;!', '&', $html);
      +    $html = preg_replace('!&lt;!', '<', $html);
      +    $html = preg_replace('!&gt;!', '>', $html);
      +    return $html;
      +  } // function decode_html
      +
      +  /**
      +   * Encodes the input @c $html string for the following characters:
      +   * \<, \>, & and ". If @c $can_double_encode is true, all
      +   * ampersand characters are escaped even if they already were.
      +   * If @c $can_double_encode is false, ampersands are only escaped
      +   * when they aren't part of a HTML entity already.
      +   *
      +   * @param $html A @c string specifying the HTML to be encoded.
      +   * @param $can_double_encode If provided, a @c bool indicating
      +   *        whether or not ampersand characters should be
      +   * unconditionally encoded.
      +   *
      +   * @return A @c string containing the encoded HTML.
      +   *
      +   * @private
      +   */
      +  function encode_html_basic($html, $can_double_encode = FALSE) {
      +    if (!$html) { return ''; }
      +    if (!preg_match('/[^\w\s]/', $html)) { return $html; }
      +    if ($can_double_encode) {
      +      $html = preg_replace('!&!', '&amp;', $html);
      +    } else {
      +      // Encode any & not followed by something that looks like
      +      // an entity, numeric or otherwise.
      +      $html = preg_replace('/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w{1,8});)/', '&amp;', $html);
      +    }
      +    $html = preg_replace('!"!', '&quot;', $html);
      +    $html = preg_replace('!<!', '&lt;', $html);
      +    $html = preg_replace('!>!', '&gt;', $html);
      +    return $html;
      +  } // function encode_html_basic
      +
      +  /**
      +   * Returns the size for the image identified in @c $file. This
      +   * method relies upon the @c getimagesize function. If unavailable,
      +   * @c image_size will return @c NULL. Otherwise, the expected return
      +   * value is an array of the width and height (in that order), in
      +   * pixels.
      +   *
      +   * @param $file A @c string specifying the path or URL for the image
      +   *        file.
      +   *
      +   * @return An @c array containing the width and height
      +   *         (respectively) of the image.
      +   *
      +   * @private
      +   */
      +  function image_size($file) {
      +    $Have_ImageSize = function_exists('getimagesize');
      +
      +    if ($Have_ImageSize) {
      +      if (file_exists($file)) {
      +        return @getimagesize($file);
      +      } else {
      +        if ($docroot = ($this->docroot() ? $this->docroot() : $_SERVER['DOCUMENT_ROOT'])) {
      +          $fullpath = $docroot . preg_replace('|^/*(.*)$|', '/$1', $file);
      +          if (file_exists($fullpath)) {
      +            return @getimagesize($fullpath);
      +          }
      +        }
      +      }
      +    }
      +    return @getimagesize($file);
      +  } // function image_size
      +
      +  /**
      +   * Encodes the query portion of a URL, escaping characters
      +   * as necessary.
      +   *
      +   * @param $str A @c string specifying the URL to be encoded.
      +   *
      +   * @return A @c string containing the encoded URL.
      +   *
      +   * @private
      +   */
      +  function encode_url($str) {
      +    $str = preg_replace_callback('!([^A-Za-z0-9_\.\-\+\&=%;])!x',
      +                            $this->_cb('ord($m[1]) > 255 ? \'%u\' . sprintf("%04X", ord($m[1]))
      +                                                       : \'%\'  . sprintf("%02X", ord($m[1]))'), $str);
      +    return $str;
      +  } // function encode_url
      +
      +  /**
      +   * Encodes the email address in @c $addr for 'mailto:' links.
      +   *
      +   * @param $addr A @c string specifying the email address to encode.
      +   *
      +   * @return A @c string containing the encoded email address.
      +   *
      +   * @private
      +   */
      +  function mail_encode($addr) {
      +    // granted, this is simple, but it gives off warm fuzzies
      +    $addr = preg_replace_callback('!([^\$])!x',
      +                             $this->_cb('ord($m[1]) > 255 ? \'%u\' . sprintf("%04X", ord($m[1]))
      +                                                        : \'%\'  . sprintf("%02X", ord($m[1]))'), $addr);
      +    return $addr;
      +  } // function mail_encode
      +
      +  /**
      +   * Processes string, formatting plain quotes into curly quotes.
      +   *
      +   * @param $str A @c string specifying the text to process.
      +   *
      +   * @return A @c string containing the processed text.
      +   *
      +   * @private
      +   */
      +  function process_quotes($str) {
      +    // stub routine for now. subclass and implement.
      +    return $str;
      +  } // function process_quotes
      +
      +  // a default set of macros for the {...} macro syntax
      +  // just a handy way to write a lot of the international characters
      +  // and some commonly used symbols
      +
      +  /**
      +   * Returns an associative @c array of macros that are assigned to be processed by
      +   * default within the @c format_inline method.
      +   *
      +   * @return An @c array containing the default macros.
      +   *
      +   * @private
      +   */
      +  function default_macros() {
      +    // <, >, " must be html entities in the macro text since
      +    // those values are escaped by the time they are processed
      +    // for macros.
      +    return array(
      +      'c|' => '&#162;', // CENT SIGN
      +      '|c' => '&#162;', // CENT SIGN
      +      'L-' => '&#163;', // POUND SIGN
      +      '-L' => '&#163;', // POUND SIGN
      +      'Y=' => '&#165;', // YEN SIGN
      +      '=Y' => '&#165;', // YEN SIGN
      +      '(c)' => '&#169;', // COPYRIGHT SIGN
      +      '&lt;&lt;' => '&#171;', // LEFT-POINTING DOUBLE ANGLE QUOTATION
      +      '(r)' => '&#174;', // REGISTERED SIGN
      +      '+_' => '&#177;', // PLUS-MINUS SIGN
      +      '_+' => '&#177;', // PLUS-MINUS SIGN
      +      '&gt;&gt;' => '&#187;', // RIGHT-POINTING DOUBLE ANGLE QUOTATION
      +      '1/4' => '&#188;', // VULGAR FRACTION ONE QUARTER
      +      '1/2' => '&#189;', // VULGAR FRACTION ONE HALF
      +      '3/4' => '&#190;', // VULGAR FRACTION THREE QUARTERS
      +      'A`' => '&#192;', // LATIN CAPITAL LETTER A WITH GRAVE
      +      '`A' => '&#192;', // LATIN CAPITAL LETTER A WITH GRAVE
      +      'A\'' => '&#193;', // LATIN CAPITAL LETTER A WITH ACUTE
      +      '\'A' => '&#193;', // LATIN CAPITAL LETTER A WITH ACUTE
      +      'A^' => '&#194;', // LATIN CAPITAL LETTER A WITH CIRCUMFLEX
      +      '^A' => '&#194;', // LATIN CAPITAL LETTER A WITH CIRCUMFLEX
      +      'A~' => '&#195;', // LATIN CAPITAL LETTER A WITH TILDE
      +      '~A' => '&#195;', // LATIN CAPITAL LETTER A WITH TILDE
      +      'A"' => '&#196;', // LATIN CAPITAL LETTER A WITH DIAERESIS
      +      '"A' => '&#196;', // LATIN CAPITAL LETTER A WITH DIAERESIS
      +      'Ao' => '&#197;', // LATIN CAPITAL LETTER A WITH RING ABOVE
      +      'oA' => '&#197;', // LATIN CAPITAL LETTER A WITH RING ABOVE
      +      'AE' => '&#198;', // LATIN CAPITAL LETTER AE
      +      'C,' => '&#199;', // LATIN CAPITAL LETTER C WITH CEDILLA
      +      ',C' => '&#199;', // LATIN CAPITAL LETTER C WITH CEDILLA
      +      'E`' => '&#200;', // LATIN CAPITAL LETTER E WITH GRAVE
      +      '`E' => '&#200;', // LATIN CAPITAL LETTER E WITH GRAVE
      +      'E\'' => '&#201;', // LATIN CAPITAL LETTER E WITH ACUTE
      +      '\'E' => '&#201;', // LATIN CAPITAL LETTER E WITH ACUTE
      +      'E^' => '&#202;', // LATIN CAPITAL LETTER E WITH CIRCUMFLEX
      +      '^E' => '&#202;', // LATIN CAPITAL LETTER E WITH CIRCUMFLEX
      +      'E"' => '&#203;', // LATIN CAPITAL LETTER E WITH DIAERESIS
      +      '"E' => '&#203;', // LATIN CAPITAL LETTER E WITH DIAERESIS
      +      'I`' => '&#204;', // LATIN CAPITAL LETTER I WITH GRAVE
      +      '`I' => '&#204;', // LATIN CAPITAL LETTER I WITH GRAVE
      +      'I\'' => '&#205;', // LATIN CAPITAL LETTER I WITH ACUTE
      +      '\'I' => '&#205;', // LATIN CAPITAL LETTER I WITH ACUTE
      +      'I^' => '&#206;', // LATIN CAPITAL LETTER I WITH CIRCUMFLEX
      +      '^I' => '&#206;', // LATIN CAPITAL LETTER I WITH CIRCUMFLEX
      +      'I"' => '&#207;', // LATIN CAPITAL LETTER I WITH DIAERESIS
      +      '"I' => '&#207;', // LATIN CAPITAL LETTER I WITH DIAERESIS
      +      'D-' => '&#208;', // LATIN CAPITAL LETTER ETH
      +      '-D' => '&#208;', // LATIN CAPITAL LETTER ETH
      +      'N~' => '&#209;', // LATIN CAPITAL LETTER N WITH TILDE
      +      '~N' => '&#209;', // LATIN CAPITAL LETTER N WITH TILDE
      +      'O`' => '&#210;', // LATIN CAPITAL LETTER O WITH GRAVE
      +      '`O' => '&#210;', // LATIN CAPITAL LETTER O WITH GRAVE
      +      'O\'' => '&#211;', // LATIN CAPITAL LETTER O WITH ACUTE
      +      '\'O' => '&#211;', // LATIN CAPITAL LETTER O WITH ACUTE
      +      'O^' => '&#212;', // LATIN CAPITAL LETTER O WITH CIRCUMFLEX
      +      '^O' => '&#212;', // LATIN CAPITAL LETTER O WITH CIRCUMFLEX
      +      'O~' => '&#213;', // LATIN CAPITAL LETTER O WITH TILDE
      +      '~O' => '&#213;', // LATIN CAPITAL LETTER O WITH TILDE
      +      'O"' => '&#214;', // LATIN CAPITAL LETTER O WITH DIAERESIS
      +      '"O' => '&#214;', // LATIN CAPITAL LETTER O WITH DIAERESIS
      +      'O/' => '&#216;', // LATIN CAPITAL LETTER O WITH STROKE
      +      '/O' => '&#216;', // LATIN CAPITAL LETTER O WITH STROKE
      +      'U`' =>  '&#217;', // LATIN CAPITAL LETTER U WITH GRAVE
      +      '`U' =>  '&#217;', // LATIN CAPITAL LETTER U WITH GRAVE
      +      'U\'' => '&#218;', // LATIN CAPITAL LETTER U WITH ACUTE
      +      '\'U' => '&#218;', // LATIN CAPITAL LETTER U WITH ACUTE
      +      'U^' => '&#219;', // LATIN CAPITAL LETTER U WITH CIRCUMFLEX
      +      '^U' => '&#219;', // LATIN CAPITAL LETTER U WITH CIRCUMFLEX
      +      'U"' => '&#220;', // LATIN CAPITAL LETTER U WITH DIAERESIS
      +      '"U' => '&#220;', // LATIN CAPITAL LETTER U WITH DIAERESIS
      +      'Y\'' => '&#221;', // LATIN CAPITAL LETTER Y WITH ACUTE
      +      '\'Y' => '&#221;', // LATIN CAPITAL LETTER Y WITH ACUTE
      +      'a`' => '&#224;', // LATIN SMALL LETTER A WITH GRAVE
      +      '`a' => '&#224;', // LATIN SMALL LETTER A WITH GRAVE
      +      'a\'' => '&#225;', // LATIN SMALL LETTER A WITH ACUTE
      +      '\'a' => '&#225;', // LATIN SMALL LETTER A WITH ACUTE
      +      'a^' => '&#226;', // LATIN SMALL LETTER A WITH CIRCUMFLEX
      +      '^a' => '&#226;', // LATIN SMALL LETTER A WITH CIRCUMFLEX
      +      'a~' => '&#227;', // LATIN SMALL LETTER A WITH TILDE
      +      '~a' => '&#227;', // LATIN SMALL LETTER A WITH TILDE
      +      'a"' => '&#228;', // LATIN SMALL LETTER A WITH DIAERESIS
      +      '"a' => '&#228;', // LATIN SMALL LETTER A WITH DIAERESIS
      +      'ao' => '&#229;', // LATIN SMALL LETTER A WITH RING ABOVE
      +      'oa' => '&#229;', // LATIN SMALL LETTER A WITH RING ABOVE
      +      'ae' => '&#230;', // LATIN SMALL LETTER AE
      +      'c,' => '&#231;', // LATIN SMALL LETTER C WITH CEDILLA
      +      ',c' => '&#231;', // LATIN SMALL LETTER C WITH CEDILLA
      +      'e`' => '&#232;', // LATIN SMALL LETTER E WITH GRAVE
      +      '`e' => '&#232;', // LATIN SMALL LETTER E WITH GRAVE
      +      'e\'' => '&#233;', // LATIN SMALL LETTER E WITH ACUTE
      +      '\'e' => '&#233;', // LATIN SMALL LETTER E WITH ACUTE
      +      'e^' => '&#234;', // LATIN SMALL LETTER E WITH CIRCUMFLEX
      +      '^e' => '&#234;', // LATIN SMALL LETTER E WITH CIRCUMFLEX
      +      'e"' => '&#235;', // LATIN SMALL LETTER E WITH DIAERESIS
      +      '"e' => '&#235;', // LATIN SMALL LETTER E WITH DIAERESIS
      +      'i`' => '&#236;', // LATIN SMALL LETTER I WITH GRAVE
      +      '`i' => '&#236;', // LATIN SMALL LETTER I WITH GRAVE
      +      'i\'' => '&#237;', // LATIN SMALL LETTER I WITH ACUTE
      +      '\'i' => '&#237;', // LATIN SMALL LETTER I WITH ACUTE
      +      'i^' => '&#238;', // LATIN SMALL LETTER I WITH CIRCUMFLEX
      +      '^i' => '&#238;', // LATIN SMALL LETTER I WITH CIRCUMFLEX
      +      'i"' => '&#239;', // LATIN SMALL LETTER I WITH DIAERESIS
      +      '"i' => '&#239;', // LATIN SMALL LETTER I WITH DIAERESIS
      +      'n~' => '&#241;', // LATIN SMALL LETTER N WITH TILDE
      +      '~n' => '&#241;', // LATIN SMALL LETTER N WITH TILDE
      +      'o`' => '&#242;', // LATIN SMALL LETTER O WITH GRAVE
      +      '`o' => '&#242;', // LATIN SMALL LETTER O WITH GRAVE
      +      'o\'' => '&#243;', // LATIN SMALL LETTER O WITH ACUTE
      +      '\'o' => '&#243;', // LATIN SMALL LETTER O WITH ACUTE
      +      'o^' => '&#244;', // LATIN SMALL LETTER O WITH CIRCUMFLEX
      +      '^o' => '&#244;', // LATIN SMALL LETTER O WITH CIRCUMFLEX
      +      'o~' => '&#245;', // LATIN SMALL LETTER O WITH TILDE
      +      '~o' => '&#245;', // LATIN SMALL LETTER O WITH TILDE
      +      'o"' => '&#246;', // LATIN SMALL LETTER O WITH DIAERESIS
      +      '"o' => '&#246;', // LATIN SMALL LETTER O WITH DIAERESIS
      +      ':-' => '&#247;', // DIVISION SIGN
      +      '-:' => '&#247;', // DIVISION SIGN
      +      'o/' => '&#248;', // LATIN SMALL LETTER O WITH STROKE
      +      '/o' => '&#248;', // LATIN SMALL LETTER O WITH STROKE
      +      'u`' => '&#249;', // LATIN SMALL LETTER U WITH GRAVE
      +      '`u' => '&#249;', // LATIN SMALL LETTER U WITH GRAVE
      +      'u\'' => '&#250;', // LATIN SMALL LETTER U WITH ACUTE
      +      '\'u' => '&#250;', // LATIN SMALL LETTER U WITH ACUTE
      +      'u^' => '&#251;', // LATIN SMALL LETTER U WITH CIRCUMFLEX
      +      '^u' => '&#251;', // LATIN SMALL LETTER U WITH CIRCUMFLEX
      +      'u"' => '&#252;', // LATIN SMALL LETTER U WITH DIAERESIS
      +      '"u' => '&#252;', // LATIN SMALL LETTER U WITH DIAERESIS
      +      'y\'' => '&#253;', // LATIN SMALL LETTER Y WITH ACUTE
      +      '\'y' => '&#253;', // LATIN SMALL LETTER Y WITH ACUTE
      +      'y"' => '&#255;', // LATIN SMALL LETTER Y WITH DIAERESIS
      +      '"y' => '&#255;', // LATIN SMALL LETTER Y WITH DIAERESIS
      +      'OE' => '&#338;', // LATIN CAPITAL LIGATURE OE
      +      'oe' => '&#339;', // LATIN SMALL LIGATURE OE
      +      '*' => '&#8226;', // BULLET
      +      'Fr' => '&#8355;', // FRENCH FRANC SIGN
      +      'L=' => '&#8356;', // LIRA SIGN
      +      '=L' => '&#8356;', // LIRA SIGN
      +      'Rs' => '&#8360;', // RUPEE SIGN
      +      'C=' => '&#8364;', // EURO SIGN
      +      '=C' => '&#8364;', // EURO SIGN
      +      'tm' => '&#8482;', // TRADE MARK SIGN
      +      '&lt;-' => '&#8592;', // LEFTWARDS ARROW
      +      '-&gt;' => '&#8594;', // RIGHTWARDS ARROW
      +      '&lt;=' => '&#8656;', // LEFTWARDS DOUBLE ARROW
      +      '=&gt;' => '&#8658;', // RIGHTWARDS DOUBLE ARROW
      +      '=/' => '&#8800;', // NOT EQUAL TO
      +      '/=' => '&#8800;', // NOT EQUAL TO
      +      '&lt;_' => '&#8804;', // LESS-THAN OR EQUAL TO
      +      '_&lt;' => '&#8804;', // LESS-THAN OR EQUAL TO
      +      '&gt;_' => '&#8805;', // GREATER-THAN OR EQUAL TO
      +      '_&gt;' => '&#8805;', // GREATER-THAN OR EQUAL TO
      +      ':(' => '&#9785;', // WHITE FROWNING FACE
      +      ':)' => '&#9786;', // WHITE SMILING FACE
      +      'spade' => '&#9824;', // BLACK SPADE SUIT
      +      'club' => '&#9827;', // BLACK CLUB SUIT
      +      'heart' => '&#9829;', // BLACK HEART SUIT
      +      'diamond' => '&#9830;', // BLACK DIAMOND SUIT
      +    );
      +  } // function default_macros
      +
      +  // "private", internal routines
      +
      +  /**
      +   * Sets the default CSS names for CSS controlled markup. This
      +   * is an internal function that should not be called directly.
      +   *
      +   * @private
      +   */
      +  function _css_defaults() {
      +    $css_defaults = array(
      +      'class_align_right' => 'right',
      +      'class_align_left' => 'left',
      +      'class_align_center' => 'center',
      +      'class_align_top' => 'top',
      +      'class_align_bottom' => 'bottom',
      +      'class_align_middle' => 'middle',
      +      'class_align_justify' => 'justify',
      +      'class_caps' => 'caps',
      +      'class_footnote' => 'footnote',
      +      'id_footnote_prefix' => 'fn',
      +    );
      +    $this->css($css_defaults);
      +  } // function _css_defaults
      +
      +  /**
      +   * Returns the alignment keyword depending on the symbol passed.
      +   *
      +   * <ul>
      +   *
      +   * <li><b><code>\<\></code></b>
      +   *
      +   * becomes 'justify'</li>
      +   *
      +   * <li><b><code>\<</code></b>
      +   *
      +   * becomes 'left'</li>
      +   *
      +   * <li><b><code>\></code></b>
      +   *
      +   * becomes 'right'</li>
      +   *
      +   * <li><b><code>=</code></b>
      +   *
      +   * becomes 'center'</li>
      +   *
      +   * </ul>
      +   *
      +   * @param $align A @c string specifying the alignment code.
      +   *
      +   * @return A @c string containing the alignment text.
      +   *
      +   * @private
      +   */
      +  function _halign($align) {
      +    if (preg_match('/<>/', $align)) {
      +      return 'justify';
      +    } elseif (preg_match('/</', $align)) {
      +      return 'left';
      +    } elseif (preg_match('/>/', $align)) {
      +      return 'right';
      +    } elseif (preg_match('/=/', $align)) {
      +      return 'center';
      +    }
      +    return '';
      +  } // function _halign
      +
      +  /**
      +   * Returns the alignment keyword depending on the symbol passed.
      +   *
      +   * <ul>
      +   *
      +   * <li><b><code>^</code></b>
      +   *
      +   * becomes 'top'</li>
      +   *
      +   * <li><b><code>~</code></b>
      +   *
      +   * becomes 'bottom'</li>
      +   *
      +   * <li><b><code>-</code></b>
      +   *
      +   * becomes 'middle'</li>
      +   *
      +   * </ul>
      +   *
      +   * @param $align A @c string specifying the alignment code.
      +   *
      +   * @return A @c string containing the alignment text.
      +   *
      +   * @private
      +   */
      +  function _valign($align) {
      +    if (preg_match('/\^/', $align)) {
      +      return 'top';
      +    } elseif (preg_match('/~/', $align)) {
      +      return 'bottom';
      +    } elseif (preg_match('/-/', $align)) {
      +      return 'middle';
      +    }
      +    return '';
      +  } // function _valign
      +
      +  /**
      +   * Returns the alignment keyword depending on the symbol passed.
      +   * The following alignment symbols are recognized, and given
      +   * preference in the order listed:
      +   *
      +   * <ul>
      +   *
      +   * <li><b><code>^</code></b>
      +   *
      +   * becomes 'top'</li>
      +   *
      +   * <li><b><code>~</code></b>
      +   *
      +   * becomes 'bottom'</li>
      +   *
      +   * <li><b><code>-</code></b>
      +   *
      +   * becomes 'middle'</li>
      +   *
      +   * <li><b><code>\<</code></b>
      +   *
      +   * becomes 'left'</li>
      +   *
      +   * <li><b><code>\></code></b>
      +   *
      +   * becomes 'right'</li>
      +   *
      +   * </ul>
      +   *
      +   * @param $align A @c string containing the alignment code.
      +   *
      +   * @return A @c string containing the alignment text.
      +   *
      +   * @private
      +   */
      +  function _imgalign($align) {
      +    $align = preg_replace('/(<>|=)/', '', $align);
      +    return ($this->_valign($align) ? $this->_valign($align) : $this->_halign($align));
      +  } // function _imgalign
      +
      +  /**
      +   * This utility routine will take 'border' characters off of
      +   * the given @c $pre and @c $post strings if they match one of these
      +   * conditions:
      +   * <pre>
      +   *     $pre starts with '[', $post ends with ']'
      +   *     $pre starts with '{', $post ends with '}'
      +   * </pre>
      +   * If neither condition is met, then the @c $pre and @c $post
      +   * values are left untouched.
      +   *
      +   * @param $pre A @c string specifying the prefix.
      +   * @param $post A @c string specifying the postfix.
      +   *
      +   * @private
      +   */
      +  function _strip_borders(&$pre, &$post) {
      +    if ($post && $pre && preg_match('/[{[]/', ($open = substr($pre, 0, 1)))) {
      +      $close = substr($post, 0, 1);
      +      if ((($open == '{') && ($close == '}')) ||
      +          (($open == '[') && ($close == ']'))) {
      +        $pre = substr($pre, 1);
      +        $post = substr($post, 1);
      +      } else {
      +        if (!preg_match('/[}\]]/', $close)) { $close = substr($post, -1, 1); }
      +        if ((($open == '{') && ($close == '}')) ||
      +            (($open == '[') && ($close == ']'))) {
      +          $pre = substr($pre, 1);
      +          $post = substr($post, 0, strlen($post) - 1);
      +        }
      +      }
      +    }
      +  } // function _strip_borders
      +
      +  /**
      +   * An internal routine that takes a string and appends it to an array.
      +   * It returns a marker that is used later to restore the preserved
      +   * string.
      +   *
      +   * @param $array The @c array in which to store the replacement
      +   *        text.
      +   * @param $str A @c string specifying the replacement text.
      +   *
      +   * @return A @c string containing a temporary marker for the
      +   *         replacement.
      +   *
      +   * @private
      +   */
      +  function _repl(&$array, $str) {
      +    $array[] = $str;
      +    return '<textile#' . count($array) . '>';
      +  } // function _repl
      +
      +  /**
      +   * An internal routine responsible for breaking up a string into
      +   * individual tag and plaintext elements.
      +   *
      +   * @param $str A @c string specifying the text to tokenize.
      +   *
      +   * @return An @c array containing the tag and text tokens.
      +   *
      +   * @private
      +   */
      +  function _tokenize($str) {
      +    $pos = 0;
      +    $len = strlen($str);
      +    unset($tokens);
      +
      +    $depth = 6;
      +    $nested_tags = substr(str_repeat('(?:</?[A-Za-z0-9:]+ \s? (?:[^<>]|', $depth), 0, -1)
      +      . str_repeat(')*>)', $depth);
      +    $match = '(?s: <! ( -- .*? -- \s* )+ > )|  # comment
      +              (?s: <\? .*? \?> )|              # processing instruction
      +              (?s: <% .*? %> )|                # ASP-like
      +              (?:' . $nested_tags . ')|
      +              (?:' . $this->codere . ')';     // nested tags
      +
      +    while (preg_match('{(' . $match . ')}x', substr($str, $pos), $matches, PREG_OFFSET_CAPTURE)) {
      +      $whole_tag = $matches[1][0];
      +      $sec_start = $pos + $matches[1][1] + strlen($whole_tag);
      +      $tag_start = $sec_start - strlen($whole_tag);
      +      if ($pos < $tag_start) {
      +        $tokens[] = array('text', substr($str, $pos, $tag_start - $pos));
      +      }
      +      if (preg_match('/^[[{]?@/', $whole_tag)) {
      +        $tokens[] = array('text', $whole_tag);
      +      } else {
      +        // this clever hack allows us to preserve \n within tags.
      +        // this is restored at the end of the format_paragraph method
      +        //$whole_tag = preg_replace('/\n/', "\r", $whole_tag);
      +        $whole_tag = preg_replace('/\n/', "\001", $whole_tag);
      +        $tokens[] = array('tag', $whole_tag);
      +      }
      +      $pos = $sec_start;
      +    }
      +    if ($pos < $len) { $tokens[] = array('text', substr($str, $pos, $len - $pos)); }
      +    return $tokens;
      +  } // function _tokenize
      +
      +  /**
      +   * Returns the version of this release of Textile.php. *JHR*
      +   *
      +   * @return An @c array with keys 'text' and 'build' containing the
      +   *         text version and build ID of this release, respectively.
      +   *
      +   * @static
      +   */
      +  function version() {
      +    /* Why text and an ID?  Well, the text is easier for the user to
      +     * read and understand while the build ID, being a number (a date
      +     * with a serial, specifically), is easier for the developer to
      +     * use to determine newer/older versions for upgrade and
      +     * installation purposes.
      +     */
      +    return array("text" => "2.0.8", "build" => 2005032100);
      +  } // function version
      +
      +/**
      +   * Creates a custom callback function from the provided PHP
      +   * code. The result is used as the callback in
      +   * @c preg_replace_callback calls. *JHR*
      +   *
      +   * @param $function A @c string specifying the PHP code for the
      +   *        function body.
      +   *
      +   * @return A @c function to be used for the callback.
      +   *
      +   * @private
      +   */
      +  function _cb($function) {
      +    $current =& Textile::_current_store($this);
      +    return create_function('$m', '$me =& Textile::_current(); return ' . $function . ';');
      +  } // function _cb
      +
      +  /**
      +   * Stores a static variable for the Textile class. This helper
      +   * function is used by @c _current to simulate a static
      +   * class variable in PHP. *JHR*
      +   *
      +   * @param $new If a non-@c NULL object reference, the Textile object
      +   *        to be set as the current object.
      +   *
      +   * @return The @c array containing a reference to the current
      +   *         Textile object at index 0. An array is used because PHP
      +   *         does not allow static variables to be references.
      +   *
      +   * @static
      +   * @private
      +   */
      + /* static */ function &_current_store(&$new) {
      +   static $current = array();
      +
      +   if ($new != NULL) {
      +     $current = array(&$new);
      +   }
      +
      +   return $current;
      + } // function _current_store
      +
      +  /**
      +   * Returns the "current" Textile object. This is used within
      +   * anonymous callback functions which cannot have the scope of a
      +   * specific object. *JHR*
      +   *
      +   * @return An @c object reference to the current Textile object.
      +   *
      +   * @static
      +   * @private
      +   */
      + /* static */ function &_current() {
      +   $current =& Textile::_current_store($null = NULL);
      +   return $current[0];
      + } // function _current
      +} // class Textile
      +
      +/**
      + * Brad Choate's mttextile Movable Type plugin adds some additional
      + * functionality to the Textile.pm Perl module. This includes optional
      + * "SmartyPants" processing of text to produce smart quotes, dashes,
      + * etc., code colorizing using Beautifier, and some special lookup
      + * links (imdb, google, dict, and amazon). The @c MTLikeTextile class
      + * is a subclass of @c Textile that provides an MT-like implementation
      + * of Textile to produce results similar to that of the mttextile
      + * plugin. Currently only the SmartyPants and special lookup links are
      + * implemented.
      + *
      + * Using the @c MTLikeTextile class is exactly the same as using @c
      + * Textile. Simply use <code>$textile = new MTLikeTextile;</code>
      + * instead of <code>$textile = new Textile;</code> to create a Textile
      + * object.  This will enable the special lookup links.  To enable
      + * SmartyPants processing, you must install the SmartyPants-PHP
      + * implementation available at
      + * <a
      + * href="http://monauraljerk.org/smartypants-php/">http://monauraljerk.org/smartypants-php/</a>
      + * and include the
      + * SmartyPants-PHP.inc file.
      + *
      + * <pre><code>
      + * include_once("Textile.php");
      + * include_once("SmartyPants-PHP.inc");
      + * $text = \<\<\<EOT
      + * h1. Heading
      + *
      + * A _simple_ demonstration of Textile markup.
      + *
      + * * One
      + * * Two
      + * * Three
      + *
      + * "More information":http://www.textism.com/tools/textile is available.
      + * EOT;
      + *
      + * $textile = new MTLikeTextile;
      + * $html = $textile->process($text);
      + * print $html;
      + * </code></pre>
      + *
      + * @brief A Textile implementation providing additional
      + *        Movable-Type-like formatting to produce results similar to
      + *        the mttextile plugin.
      + *
      + * @author Jim Riggs \<textile at jimandlisa dot com\>
      + */
      +class MTLikeTextile extends Textile {
      +  /**
      +   * Instantiates a new MTLikeTextile object. Optional options
      +   * can be passed to initialize the object. Attributes for the
      +   * options key are the same as the get/set method names
      +   * documented here.
      +   *
      +   * @param $options The @c array specifying the options to use for
      +   *        this object.
      +   *
      +   * @public
      +   */
      +  function MTLikeTextile($options = array()) {
      +    parent::Textile($options);
      +  } // function MTLikeTextile
      +
      +  /**
      +   * @private
      +   */
      +  function process_quotes($str) {
      +    if (!$this->options['do_quotes'] || !function_exists('SmartyPants')) {
      +      return $str;
      +    }
      +
      +    return SmartyPants($str, $this->options['smarty_mode']);
      +  } // function process_quotes
      +
      +  /**
      +   * @private
      +   */
      +  function format_url($args) {
      +    $url = ($args['url'] ? $args['url'] : '');
      +
      +    if (preg_match('/^(imdb|google|dict|amazon)(:(.+))?$/x', $url, $matches)) {
      +      $term = $matches[3];
      +      $term = ($term ? $term : strip_tags($args['linktext']));
      +
      +      switch ($matches[1]) {
      +        case 'imdb':
      +          $args['url'] = 'http://www.imdb.com/Find?for=' . $term;
      +          break;
      +
      +        case 'google':
      +          $args['url'] = 'http://www.google.com/search?q=' . $term;
      +          break;
      +
      +        case 'dict':
      +          $args['url'] = 'http://www.dictionary.com/search?q=' . $term;
      +          break;
      +
      +        case 'amazon':
      +          $args['url'] = 'http://www.amazon.com/exec/obidos/external-search?index=blended&keyword=' . $term;
      +          break;
      +      }
      +    }
      +
      +    return parent::format_url($args);
      +  } // function format_url
      +} // class MTLikeTextile
      +
      +/**
      + * @mainpage
      + * Textile - A Humane Web Text Generator.
      + *
      + * @section synopsis SYNOPSIS
      + *
      + * <pre><code>
      + * include_once("Textile.php");
      + * $text = \<\<\<EOT
      + * h1. Heading
      + *
      + * A _simple_ demonstration of Textile markup.
      + *
      + * * One
      + * * Two
      + * * Three
      + *
      + * "More information":http://www.textism.com/tools/textile is available.
      + * EOT;
      + *
      + * $textile = new Textile;
      + * $html = $textile->process($text);
      + * print $html;
      + * </code></pre>
      + *
      + * @section abstract ABSTRACT
      + *
      + * Textile.php is a PHP-based implementation of Dean Allen's Textile
      + * syntax. Textile is shorthand for doing common formatting tasks.
      + *
      + * @section syntax SYNTAX
      + *
      + * Textile processes text in units of blocks and lines.
      + * A block might also be considered a paragraph, since blocks
      + * are separated from one another by a blank line. Blocks
      + * can begin with a signature that helps identify the rest
      + * of the block content. Block signatures include:
      + *
      + * <ul>
      + *
      + * <li><b>p</b>
      + *
      + * A paragraph block. This is the default signature if no
      + * signature is explicitly given. Paragraphs are formatted
      + * with all the inline rules (see inline formatting) and
      + * each line receives the appropriate markup rules for
      + * the flavor of HTML in use. For example, newlines for XHTML
      + * content receive a \<br /\> tag at the end of the line
      + * (with the exception of the last line in the paragraph).
      + * Paragraph blocks are enclosed in a \<p\> tag.</li>
      + *
      + * <li><b>pre</b>
      + *
      + * A pre-formatted block of text. Textile will not add any
      + * HTML tags for individual lines. Whitespace is also preserved.
      + * 
      + * Note that within a "pre" block, \< and \> are
      + * translated into HTML entities automatically.</li>
      + *
      + * <li><b>bc</b>
      + *
      + * A "bc" signature is short for "block code", which implies
      + * a preformatted section like the 'pre' block, but it also
      + * gets a \<code\> tag (or for XHTML 2, a \<blockcode\>
      + * tag is used instead).
      + * 
      + * Note that within a "bc" block, \< and \> are
      + * translated into HTML entities automatically.</li>
      + *
      + * <li><b>table</b>
      + *
      + * For composing HTML tables. See the "TABLES" section for more
      + * information.</li>
      + *
      + * <li><b>bq</b>
      + *
      + * A "bq" signature is short for "block quote". Paragraph text
      + * formatting is applied to these blocks and they are enclosed
      + * in a \<blockquote\> tag as well as \<p\> tags
      + * within.</li>
      + *
      + * <li><b>h1, h2, h3, h4, h5, h6</b>
      + *
      + * Headline signatures that produce \<h1\>, etc. tags.
      + * You can adjust the relative output of these using the
      + * head_offset attribute.</li>
      + *
      + * <li><b>clear</b>
      + *
      + * A 'clear' signature is simply used to indicate that the next
      + * block should emit a CSS style attribute that clears any
      + * floating elements. The default behavior is to clear "both",
      + * but you can use the left (\< or right \>) alignment
      + * characters to indicate which side to clear.</li>
      + *
      + * <li><b>dl</b>
      + *
      + * A "dl" signature is short for "definition list". See the
      + * "LISTS" section for more information.</li>
      + *
      + * <li><b>fn</b>
      + *
      + * A "fn" signature is short for "footnote". You add a number
      + * following the "fn" keyword to number the footnote. Footnotes
      + * are output as paragraph tags but are given a special CSS
      + * class name which can be used to style them as you see fit.</li>
      + *
      + * </ul>
      + *
      + * All signatures should end with a period and be followed
      + * with a space. Inbetween the signature and the period, you
      + * may use several parameters to further customize the block.
      + * These include:
      + *
      + * <ul>
      + *
      + * <li><b><code>{style rule}</code></b>
      + *
      + * A CSS style rule. Style rules can span multiple lines.</li>
      + *
      + * <li><b><code>[ll]</code></b>
      + *
      + * A language identifier (for a "lang" attribute).</li>
      + *
      + * <li><b><code>(class)</code> or <code>(#id)</code> or <code>(class#id)</code></b>
      + *
      + * For CSS class and id attributes.</li>
      + *
      + * <li><b><code>\></code>, <code>\<</code>, <code>=</code>, <code>\<\></code></b>
      + *
      + * Modifier characters for alignment. Right-justification, left-justification,
      + * centered, and full-justification.</li>
      + *
      + * <li><b><code>(</code> (one or more)</b>
      + *
      + * Adds padding on the left. 1em per "(" character is applied.
      + * When combined with the align-left or align-right modifier,
      + * it makes the block float.</li>
      + *
      + * <li><b><code>)</code> (one or more)</b>
      + *
      + * Adds padding on the right. 1em per ")" character is applied.
      + * When combined with the align-left or align-right modifier,
      + * it makes the block float.</li>
      + *
      + * <li><b><code>|filter|</code> or <code>|filter|filter|filter|</code></b>
      + *
      + * A filter may be invoked to further format the text for this
      + * signature. If one or more filters are identified, the text
      + * will be processed first using the filters and then by
      + * Textile's own block formatting rules.</li>
      + *
      + * </ul>
      + *
      + * @subsection extendedblocks Extended Blocks
      + *
      + * Normally, a block ends with the first blank line encountered.
      + * However, there are situations where you may want a block to continue
      + * for multiple paragraphs of text. To cause a given block signature
      + * to stay active, use two periods in your signature instead of one.
      + * This will tell Textile to keep processing using that signature
      + * until it hits the next signature is found.
      + *
      + * For example:
      + * <pre>
      + *     bq.. This is paragraph one of a block quote.
      + *
      + *     This is paragraph two of a block quote.
      + *
      + *     p. Now we're back to a regular paragraph.
      + * </pre>
      + * You can apply this technique to any signature (although for
      + * some it doesn't make sense, like "h1" for example). This is
      + * especially useful for "bc" blocks where your code may
      + * have many blank lines scattered through it.
      + *
      + * @subsection escaping Escaping
      + *
      + * Sometimes you want Textile to just get out of the way and
      + * let you put some regular HTML markup in your document. You
      + * can disable Textile formatting for a given block using the '=='
      + * escape mechanism:
      + * <pre>
      + *     p. Regular paragraph
      + *
      + *     ==
      + *     Escaped portion -- will not be formatted
      + *     by Textile at all
      + *     ==
      + *
      + *     p. Back to normal.
      + * </pre>
      + * You can also use this technique within a Textile block,
      + * temporarily disabling the inline formatting functions:
      + * <pre>
      + *     p. This is ==*a test*== of escaping.
      + * </pre>
      + * @subsection inlineformatting Inline Formatting
      + *
      + * Formatting within a block of text is covered by the "inline"
      + * formatting rules. These operators must be placed up against
      + * text/punctuation to be recognized. These include:
      + *
      + * <ul>
      + *
      + * <li><b><code>*strong*</code></b>
      + *
      + * Translates into \<strong\>strong\</strong\>.</li>
      + *
      + * <li><b>_emphasis_</b>
      + *
      + * Translates into \<em\>emphasis\</em\>.</li>
      + *
      + * <li><b><code>**bold**</code></b>
      + *
      + * Translates into \<b\>bold\</b\>.</li>
      + *
      + * <li><b><code>__italics__</code></b>
      + *
      + * Translates into \<i\>italics\</i\>.</li>
      + *
      + * <li><b><code>++bigger++</code></b>
      + *
      + * Translates into \<big\>bigger\</big\>.</li>
      + *
      + * <li><b><code>--smaller--</code></b>
      + *
      + * Translates into: \<small\>smaller\</small\>.</li>
      + *
      + * <li><b><code>-deleted text-</code></b>
      + *
      + * Translates into \<del\>deleted text\</del\>.</li>
      + *
      + * <li><b><code>+inserted text+</code></b>
      + *
      + * Translates into \<ins\>inserted text\</ins\>.</li>
      + *
      + * <li><b><code>^superscript^</code></b>
      + *
      + * Translates into \<sup\>superscript\</sup\>.</li>
      + *
      + * <li><b><code>~subscript~</code></b>
      + *
      + * Translates into \<sub\>subscript\</sub\>.</li>
      + *
      + * <li><b><code>\%span\%</code></b>
      + *
      + * Translates into \<span\>span\</span\>.</li>
      + *
      + * <li><b><code>\@code\@</code></b>
      + *
      + * Translates into \<code\>code\</code\>. Note
      + * that within a '\@...\@' section, \< and \> are
      + * translated into HTML entities automatically.</li>
      + *
      + * </ul>
      + *
      + * Inline formatting operators accept the following modifiers:
      + *
      + * <ul>
      + *
      + * <li><b><code>{style rule}</code></b>
      + *
      + * A CSS style rule.</li>
      + *
      + * <li><b><code>[ll]</code></b>
      + *
      + * A language identifier (for a "lang" attribute).</li>
      + *
      + * <li><b><code>(class)</code> or <code>(#id)</code> or <code>(class#id)</code></b>
      + *
      + * For CSS class and id attributes.</li>
      + *
      + * </ul>
      + *
      + * @subsubsection examples Examples
      + * <pre>
      + *     Textile is *way* cool.
      + *
      + *     Textile is *_way_* cool.
      + * </pre>
      + * Now this won't work, because the formatting
      + * characters need whitespace before and after
      + * to be properly recognized.
      + * <pre>
      + *     Textile is way c*oo*l.
      + * </pre>
      + * However, you can supply braces or brackets to
      + * further clarify that you want to format, so
      + * this would work:
      + * <pre>
      + *     Textile is way c[*oo*]l.
      + * </pre>
      + * @subsection footnotes Footnotes
      + *
      + * You can create footnotes like this:
      + * <pre>
      + *     And then he went on a long trip[1].
      + * </pre>
      + * By specifying the brackets with a number inside, Textile will
      + * recognize that as a footnote marker. It will replace that with
      + * a construct like this:
      + * <pre>
      + *     And then he went on a long
      + *     trip<sup class="footnote"><a href="#fn1">1</a></sup>
      + * </pre>
      + * To supply the content of the footnote, place it at the end of your
      + * document using a "fn" block signature:
      + * <pre>
      + *     fn1. And there was much rejoicing.
      + * </pre>
      + * Which creates a paragraph that looks like this:
      + * <pre>
      + *     <p class="footnote" id="fn1"><sup>1</sup> And there was
      + *     much rejoicing.</p>
      + * </pre>
      + * @subsection links Links
      + *
      + * Textile defines a shorthand for formatting hyperlinks.
      + * The format looks like this:
      + * <pre>
      + *     "Text to display":http://example.com
      + * </pre>
      + * In addition to this, you can add 'title' text to your link:
      + * <pre>
      + *     "Text to display (Title text)":http://example.com
      + * </pre>
      + * The URL portion of the link supports relative paths as well
      + * as other protocols like ftp, mailto, news, telnet, etc.
      + * <pre>
      + *     "E-mail me please":mailto:someone\@example.com
      + * </pre>
      + * You can also use single quotes instead of double-quotes if
      + * you prefer. As with the inline formatting rules, a hyperlink
      + * must be surrounded by whitespace to be recognized (an
      + * exception to this is common punctuation which can reside
      + * at the end of the URL). If you have to place a URL next to
      + * some other text, use the bracket or brace trick to do that:
      + * <pre>
      + *     You["gotta":http://example.com]seethis!
      + * </pre>
      + * Textile supports an alternate way to compose links. You can
      + * optionally create a lookup list of links and refer to them
      + * separately. To do this, place one or more links in a block
      + * of it's own (it can be anywhere within your document):
      + * <pre>
      + *     [excom]http://example.com
      + *     [exorg]http://example.org
      + * </pre>
      + * For a list like this, the text in the square brackets is
      + * used to uniquely identify the link given. To refer to that
      + * link, you would specify it like this:
      + * <pre>
      + *     "Text to display":excom
      + * </pre>
      + * Once you've defined your link lookup table, you can use
      + * the identifiers any number of times.
      + *
      + * @subsection images Images
      + *
      + * Images are identified by the following pattern:
      + * <pre>
      + *     !/path/to/image!
      + * </pre>
      + * Image attributes may also be specified:
      + * <pre>
      + *     !/path/to/image 10x20!
      + * </pre>
      + * Which will render an image 10 pixels wide and 20 pixels high.
      + * Another way to indicate width and height:
      + * <pre>
      + *     !/path/to/image 10w 20h!
      + * </pre>
      + * You may also redimension the image using a percentage.
      + * <pre>
      + *     !/path/to/image 20%x40%!
      + * </pre>
      + * Which will render the image at 20% of it's regular width
      + * and 40% of it's regular height.
      + *
      + * Or specify one percentage to resize proprotionately:
      + * <pre>
      + *     !/path/to/image 20%!
      + * </pre>
      + * Alt text can be given as well:
      + * <pre>
      + *     !/path/to/image (Alt text)!
      + * </pre>
      + * The path of the image may refer to a locally hosted image or
      + * can be a full URL.
      + *
      + * You can also use the following modifiers after the opening '!'
      + * character:
      + *
      + * <ul>
      + *
      + * <li><b><code>\<</code></b>
      + *
      + * Align the image to the left (causes the image to float if
      + * CSS options are enabled).</li>
      + *
      + * <li><b><code>\></code></b>
      + *
      + * Align the image to the right (causes the image to float if
      + * CSS options are enabled).</li>
      + *
      + * <li><b><code>-</code> (dash)</b>
      + *
      + * Aligns the image to the middle.</li>
      + *
      + * <li><b><code>^</code></b>
      + *
      + * Aligns the image to the top.</li>
      + *
      + * <li><b><code>~</code> (tilde)</b>
      + *
      + * Aligns the image to the bottom.</li>
      + *
      + * <li><b><code>{style rule}</code></b>
      + *
      + * Applies a CSS style rule to the image.</li>
      + *
      + * <li><b><code>(class)</code> or <code>(#id)</code> or <code>(class#id)</code></b>
      + *
      + * Applies a CSS class and/or id to the image.</li>
      + *
      + * <li><b><code>(</code> (one or more)</b>
      + *
      + * Pads 1em on the left for each '(' character.</li>
      + *
      + * <li><b><code>)</code> (one or more)</b>
      + *
      + * Pads 1em on the right for each ')' character.</li>
      + *
      + * </ul>
      + *
      + * @subsection characterreplacements Character Replacements
      + *
      + * A few simple, common symbols are automatically replaced:
      + * <pre>
      + *     (c)
      + *     (r)
      + *     (tm)
      + * </pre>
      + * In addition to these, there are a whole set of character
      + * macros that are defined by default. All macros are enclosed
      + * in curly braces. These include:
      + * <pre>
      + *     {c|} or {|c} cent sign
      + *     {L-} or {-L} pound sign
      + *     {Y=} or {=Y} yen sign
      + * </pre>
      + * Many of these macros can be guessed. For example:
      + * <pre>
      + *     {A'} or {'A}
      + *     {a"} or {"a}
      + *     {1/4}
      + *     {*}
      + *     {:)}
      + *     {:(}
      + * </pre>
      + * @subsection lists Lists
      + *
      + * Textile also supports ordered and unordered lists.
      + * You simply place an asterisk or pound sign, followed
      + * with a space at the start of your lines.
      + *
      + * Simple lists:
      + * <pre>
      + *     * one
      + *     * two
      + *     * three
      + * </pre>
      + * Multi-level lists:
      + * <pre>
      + *     * one
      + *     ** one A
      + *     ** one B
      + *     *** one B1
      + *     * two
      + *     ** two A
      + *     ** two B
      + *     * three
      + * </pre>
      + * Ordered lists:
      + * <pre>
      + *     # one
      + *     # two
      + *     # three
      + * </pre>
      + * Styling lists:
      + * <pre>
      + *     (class#id)* one
      + *     * two
      + *     * three
      + * </pre>
      + * The above sets the class and id attributes for the \<ul\>
      + * tag.
      + * <pre>
      + *     *(class#id) one
      + *     * two
      + *     * three
      + * </pre>
      + * The above sets the class and id attributes for the first \<li\>
      + * tag.
      + *
      + * Definition lists:
      + * <pre>
      + *     dl. textile:a cloth, especially one manufactured by weaving
      + *     or knitting; a fabric
      + *     format:the arrangement of data for storage or display.
      + * </pre>
      + * Note that there is no space between the term and definition. The
      + * term must be at the start of the line (or following the "dl"
      + * signature as shown above).
      + *
      + * @subsection tables Tables
      + *
      + * Textile supports tables. Tables must be in their own block and
      + * must have pipe characters delimiting the columns. An optional
      + * block signature of "table" may be used, usually for applying
      + * style, class, id or other options to the table element itself.
      + *
      + * From the simple:
      + * <pre>
      + *     |a|b|c|
      + *     |1|2|3|
      + * </pre>
      + * To the complex:
      + * <pre>
      + *     table(fig). {color:red}_|Top|Row|
      + *     {color:blue}|/2. Second|Row|
      + *     |_{color:green}. Last|
      + * </pre>
      + * Modifiers can be specified for the table signature itself,
      + * for a table row (prior to the first '|' character) and
      + * for any cell (following the '|' for that cell). Note that for
      + * cells, a period followed with a space must be placed after
      + * any modifiers to distinguish the modifier from the cell content.
      + *
      + * Modifiers allowed are:
      + *
      + * <ul>
      + *
      + * <li><b><code>{style rule}</code></b>
      + *
      + * A CSS style rule.</li>
      + *
      + * <li><b><code>(class)</code> or <code>(#id)</code> or <code>(class#id)</code></b>
      + *
      + * A CSS class and/or id attribute.</li>
      + *
      + * <li><b><code>(</code> (one or more)</b>
      + *
      + * Adds 1em of padding to the left for each '(' character.</li>
      + *
      + * <li><b><code>)</code> (one or more)</b>
      + *
      + * Adds 1em of padding to the right for each ')' character.</li>
      + *
      + * <li><b><code>\<</code></b>
      + *
      + * Aligns to the left (floats to left for tables if combined with the
      + * ')' modifier).</li>
      + *
      + * <li><b><code>\></code></b>
      + *
      + * Aligns to the right (floats to right for tables if combined with
      + * the '(' modifier).</li>
      + *
      + * <li><b><code>=</code></b>
      + *
      + * Aligns to center (sets left, right margins to 'auto' for tables).</li>
      + *
      + * <li><b><code>\<\></code></b>
      + *
      + * For cells only. Justifies text.</li>
      + *
      + * <li><b><code>^</code></b>
      + *
      + * For rows and cells only. Aligns to the top.</li>
      + *
      + * <li><b><code>~</code> (tilde)</b>
      + *
      + * For rows and cells only. Aligns to the bottom.</li>
      + *
      + * <li><b><code>_</code> (underscore)</b>
      + *
      + * Can be applied to a table row or cell to indicate a header
      + * row or cell.</li>
      + *
      + * <li><b><code>\\2</code> or <code>\\3</code> or <code>\\4</code>, etc.</b>
      + *
      + * Used within cells to indicate a colspan of 2, 3, 4, etc. columns.
      + * When you see "\\", think "push forward".</li>
      + *
      + * <li><b><code>/2</code> or <code>/3</code> or <code>/4</code>, etc.</b>
      + *
      + * Used within cells to indicate a rowspan of 2, 3, 4, etc. rows.
      + * When you see "/", think "push downward".</li>
      + *
      + * </ul>
      + *
      + * When a cell is identified as a header cell and an alignment
      + * is specified, that becomes the default alignment for
      + * cells below it. You can always override this behavior by
      + * specifying an alignment for one of the lower cells.
      + *
      + * @subsection cssnotes CSS Notes
      + *
      + * When CSS is enabled (and it is by default), CSS class names
      + * are automatically applied in certain situations.
      + *
      + * <ul>
      + *
      + * <li>Aligning a block or span or other element to
      + * left, right, etc.
      + *
      + * "left" for left justified, "right" for right justified,
      + * "center" for centered text, "justify" for full-justified
      + * text.</li>
      + *
      + * <li>Aligning an image to the top or bottom
      + *
      + * "top" for top alignment, "bottom" for bottom alignment,
      + * "middle" for middle alignment.</li>
      + *
      + * <li>Footnotes
      + *
      + * "footnote" is applied to the paragraph tag for the
      + * footnote text itself. An id of "fn" plus the footnote
      + * number is placed on the paragraph for the footnote as
      + * well. For the footnote superscript tag, a class of
      + * "footnote" is used.</li>
      + *
      + * <li>Capped text
      + *
      + * For a series of characters that are uppercased, a
      + * span is placed around them with a class of "caps".</li>
      + *
      + * </ul>
      + *
      + * @subsection miscellaneous Miscellaneous
      + *
      + * Textile tries to do it's very best to ensure proper XHTML
      + * syntax. It will even attempt to fix errors you may introduce
      + * writing in HTML yourself. Unescaped '&' characters within
      + * URLs will be properly escaped. Singlet tags such as br, img
      + * and hr are checked for the '/' terminator (and it's added
      + * if necessary). The best way to make sure you produce valid
      + * XHTML with Textile is to not use any HTML markup at all--
      + * use the Textile syntax and let it produce the markup for you.
      + *
      + * @section license LICENSE
      + *
      + * Text::Textile is licensed under the same terms as Perl
      + * itself. Textile.php is licensed under the terms of the GNU General
      + * Public License.
      + *
      + * @section authorandcopyright AUTHOR & COPYRIGHT
      + *
      + * Text::Textile was written by Brad Choate, \<brad at bradchoate dot com\>.
      + * It is an adaptation of Textile, developed by Dean Allen of Textism.com.
      + *
      + * Textile.php is a PHP port of Brad Choate's Text::Textile
      + * (Textile.pm) Perl module.
      + *
      + * Textile.php was ported by Jim Riggs \<textile at jimandlissa dot
      + * com\>. Great care has been taken to leave the Perl code in much the
      + * same form as Textile.pm. While changes were required due to
      + * syntactical differences between Perl and PHP, much of the code was
      + * left intact (even if alternative syntax or code optimizations could
      + * have been made in PHP), even to the point where one can compare
      + * functions/subroutines side by side between the two implementations.
      + * This has been done to ensure compatibility, reduce the possibility
      + * of introducing errors, and simplify maintainance as one version or
      + * the other is updated.
      + *
      + * @author Jim Riggs \<textile at jimandlissa dot com\>
      + * @author Brad Choate \<brad at bradchoate dot com\>
      + * @copyright Copyright &copy; 2004 Jim Riggs and Brad Choate
      + * @version @(#) $Id: Textile.php,v 1.13 2005/03/21 15:26:55 jhriggs Exp $
      + */
      +?>
      diff --git a/usr/plugins/TinyMCE/Plugin.php b/usr/plugins/TinyMCE/Plugin.php
      new file mode 100644
      index 00000000..60932368
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/Plugin.php
      @@ -0,0 +1,154 @@
      +<?php
      +/**
      + * 集成tinyMCE编辑器
      + * 
      + * @package tinyMCE Editor 
      + * @author qining
      + * @version 1.0.1
      + * @dependence 9.9.2-*
      + * @link http://typecho.org
      + */
      +class TinyMCE_Plugin implements Typecho_Plugin_Interface
      +{
      +    /**
      +     * 激活插件方法,如果激活失败,直接抛出异常
      +     * 
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function activate()
      +    {
      +        Typecho_Plugin::factory('admin/write-post.php')->richEditor = array('TinyMCE_Plugin', 'render');
      +        Typecho_Plugin::factory('admin/write-page.php')->richEditor = array('TinyMCE_Plugin', 'render');
      +        
      +        //去除段落
      +        Typecho_Plugin::factory('Widget_Contents_Post_Edit')->write = array('TinyMCE_Plugin', 'filter');
      +        Typecho_Plugin::factory('Widget_Contents_Page_Edit')->write = array('TinyMCE_Plugin', 'filter');
      +        
      +        Helper::addPanel(0, 'TinyMCE/tiny_mce/langs.php','', '', 'contributor');
      +    }
      +    
      +    /**
      +     * 禁用插件方法,如果禁用失败,直接抛出异常
      +     * 
      +     * @static
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function deactivate()
      +    {
      +        Helper::removePanel(0, 'TinyMCE/tiny_mce/langs.php');
      +    }
      +    
      +    /**
      +     * 获取插件配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form 配置面板
      +     * @return void
      +     */
      +    public static function config(Typecho_Widget_Helper_Form $form){}
      +    
      +    /**
      +     * 个人用户的配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form
      +     * @return void
      +     */
      +    public static function personalConfig(Typecho_Widget_Helper_Form $form){}
      +    
      +    /**
      +     * 去除段落
      +     * 
      +     * @access public
      +     * @param array $post 数据结构体
      +     * @return array
      +     */
      +    public static function filter($post)
      +    {
      +        $post['text'] = Typecho_Common::removeParagraph($post['text']);
      +        return $post;
      +    }
      +    
      +    /**
      +     * 插件实现方法
      +     * 
      +     * @access public
      +     * @return void
      +     */
      +    public static function render($post)
      +    {
      +        $options = Helper::options();
      +        $js = Typecho_Common::url('TinyMCE/tiny_mce/tiny_mce.js', $options->pluginUrl);
      +        $langs = Typecho_Common::url('extending.php?panel=TinyMCE/tiny_mce/langs.php', $options->adminUrl);
      +        echo "<script type=\"text/javascript\" src=\"{$js}\"></script>
      +<script type=\"text/javascript\" src=\"{$langs}\"></script>
      +<script type=\"text/javascript\">
      +    var insertImageToEditor = function (title, url, link) {
      +        tinyMCE.activeEditor.execCommand('mceInsertContent', false,
      +        '<a href=\"' + link + '\" title=\"' + title + '\"><img src=\"' + url + '\" alt=\"' + title + '\" /></a>');
      +        new Fx.Scroll(window).toElement($(document).getElement('.mceEditor'));
      +    };
      +    
      +    var insertLinkToEditor = function (title, url, link) {
      +        tinyMCE.activeEditor.execCommand('mceInsertContent', false, '<a href=\"' + url + '\" title=\"' + title + '\">' + title + '</a>');
      +        new Fx.Scroll(window).toElement($(document).getElement('.mceEditor'));
      +    };
      +
      +    //自动保存
      +    var autoSave;
      +    
      +    tinyMCE.init({
      +    // General options
      +    mode : 'exact',
      +    elements : 'text',
      +    theme : 'advanced',
      +    skin : 'typecho',
      +    plugins : 'safari,morebreak,inlinepopups,media,coder',
      +    extended_valid_elements : 'code[*],pre[*],script[*],iframe[*]',
      +    
      +    init_instance_callback : function(ed) {
      +        
      +        ed.setContent(\"" . str_replace(array("\n", "\r"), array("\\n", ""), addslashes($post->content)) . "\");
      +        "
      +        . ($options->autoSave ? 
      +        "autoSave = new Typecho.autoSave($('text').getParent('form').getProperty('action'), {
      +            time: 60,
      +            getContentHandle: tinyMCE.activeEditor.getContent.bind(ed),
      +            messageElement: 'auto-save-message',
      +            leaveMessage: '" . _t('您的内容尚未保存, 是否离开此页面?') . "',
      +            form: $('text').getParent('form')
      +        });" : "") .
      +        
      +        "
      +    },
      +    
      +    onchange_callback: function (inst) {
      +        if ('undefined' != typeof(autoSave)) {
      +            autoSave.onContentChange();
      +        }
      +    },
      +    
      +    save_callback: function (element_id, html, body) {
      +        if ('undefined' != typeof(autoSave)) {
      +            autoSave.saveRev = autoSave.rev;
      +        }
      +        
      +        return html;
      +    },
      +    
      +    // Theme options
      +    theme_advanced_buttons1 : 'bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,bullist,numlist,blockquote,|,link,unlink,image,media,|,forecolor,backcolor,|,morebreak,code',
      +    theme_advanced_buttons2 : '',
      +    theme_advanced_buttons3 : '',
      +    theme_advanced_toolbar_location : 'top',
      +    theme_advanced_toolbar_align : 'left',
      +    convert_urls : false,
      +    language : 'typecho'
      +});
      +</script>";
      +    }
      +}
      diff --git a/usr/plugins/TinyMCE/tiny_mce/langs.php b/usr/plugins/TinyMCE/tiny_mce/langs.php
      new file mode 100644
      index 00000000..3608524d
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/langs.php
      @@ -0,0 +1,391 @@
      +<?php
      +if (!defined('__TYPECHO_ROOT_DIR__')) {
      +    exit;
      +}
      +
      +$response->setContentType('text/javascript');
      +?>
      +
      +tinyMCE.addI18n({typecho:{
      +common:{
      +edit_confirm:"<?php _e('在这个文本域启用所见即所得模式?'); ?>",
      +apply:"<?php _e('应用'); ?>",
      +insert:"<?php _e('插入'); ?>",
      +update:"<?php _e('更新'); ?>",
      +cancel:"<?php _e('取消'); ?>",
      +close:"<?php _e('关闭'); ?>",
      +browse:"<?php _e('浏览'); ?>",
      +class_name:"<?php _e('类别'); ?>",
      +not_set:"<?php _e('-- 未设定 --'); ?>",
      +clipboard_msg:"<?php _e('贴上复制、剪下和贴上功能在 Mozilla 和 Firefox 中无法使用。\n你需要了解更多相关信息吗?'); ?>",
      +clipboard_no_support:"<?php _e('目前你的浏览器无法支持,请用键盘快捷键。'); ?>",
      +popup_blocked:"<?php _e('抱歉,快捷功能在你的系统上被封锁,使程序无法正常使用,你需要暂时解除快捷封锁,使工具能正常使用。'); ?>",
      +invalid_data:"<?php _e('错误:输入无效的值,以红色字表示。'); ?>",
      +more_colors:"<?php _e('其它更多颜色'); ?>"
      +},
      +contextmenu:{
      +align:"<?php _e('对齐方式'); ?>",
      +left:"<?php _e('居左对齐'); ?>",
      +center:"<?php _e('居中对齐'); ?>",
      +right:"<?php _e('居右对齐'); ?>",
      +full:"<?php _e('左右对齐'); ?>"
      +},
      +insertdatetime:{
      +date_fmt:"<?php _e('%Y-%m-%d'); ?>",
      +time_fmt:"<?php _e('%H:%M:%S'); ?>",
      +insertdate_desc:"<?php _e('插入今天日期'); ?>",
      +inserttime_desc:"<?php _e('插入现在时间'); ?>",
      +months_long:"<?php _e('一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月'); ?>",
      +months_short:"<?php _e('1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月'); ?>",
      +day_long:"<?php _e('星期日,星期一,星期二,星期三,星期四,星期五,星期六,星期日'); ?>",
      +day_short:"<?php _e('周日,周一,周二,周三,周四,周五,周六,周日'); ?>"
      +},
      +print:{
      +print_desc:"<?php _e('打印'); ?>"
      +},
      +preview:{
      +preview_desc:"<?php _e('预览'); ?>"
      +},
      +directionality:{
      +ltr_desc:"<?php _e('文字从左到右'); ?>",
      +rtl_desc:"<?php _e('文字从右到左'); ?>"
      +},
      +layer:{
      +insertlayer_desc:"<?php _e('插入层'); ?>",
      +forward_desc:"<?php _e('前移'); ?>",
      +backward_desc:"<?php _e('后移'); ?>",
      +absolute_desc:"<?php _e('切换绝对寻址'); ?>",
      +content:"<?php _e('新增层..'); ?>"
      +},
      +save:{
      +save_desc:"<?php _e('保存'); ?>",
      +cancel_desc:"<?php _e('取消所有变更'); ?>"
      +},
      +nonbreaking:{
      +nonbreaking_desc:"<?php _e('插入非截断的空格符'); ?>"
      +},
      +iespell:{
      +iespell_desc:"<?php _e('执行拼写检查'); ?>",
      +download:"<?php _e('侦测不到ieSpell套件,是否立即安装?'); ?>"
      +},
      +advhr:{
      +advhr_desc:"<?php _e('水平分隔线'); ?>"
      +},
      +emotions:{
      +emotions_desc:"<?php _e('表情'); ?>"
      +},
      +searchreplace:{
      +search_desc:"<?php _e('查找'); ?>",
      +replace_desc:"<?php _e('查找/替换'); ?>"
      +},
      +advimage:{
      +image_desc:"<?php _e('插入/编辑 图片'); ?>"
      +},
      +advlink:{
      +link_desc:"<?php _e('插入/编辑 链接'); ?>"
      +},
      +xhtmlxtras:{
      +cite_desc:"<?php _e('引用'); ?>",
      +abbr_desc:"<?php _e('缩写'); ?>",
      +acronym_desc:"<?php _e('首字母缩写'); ?>",
      +del_desc:"<?php _e('删除'); ?>",
      +ins_desc:"<?php _e('插入'); ?>",
      +attribs_desc:"<?php _e('插入/编辑 属性'); ?>"
      +},
      +style:{
      +desc:"<?php _e('编辑 CSS 样式'); ?>"
      +},
      +paste:{
      +paste_text_desc:"<?php _e('以纯文字格式粘贴'); ?>",
      +paste_word_desc:"<?php _e('从Word粘贴'); ?>",
      +selectall_desc:"<?php _e('全选'); ?>"
      +},
      +paste_dlg:{
      +text_title:"<?php _e('用 Ctrl+V 组合键将文字贴入窗口中。'); ?>",
      +text_linebreaks:"<?php _e('保留换行符号'); ?>",
      +word_title:"<?php _e('用 Ctrl+V 组合键将文字贴入窗口中。'); ?>"
      +},
      +table:{
      +desc:"<?php _e('插入新表格'); ?>",
      +row_before_desc:"<?php _e('插入列于前'); ?>",
      +row_after_desc:"<?php _e('插入列于后'); ?>",
      +delete_row_desc:"<?php _e('删除本列'); ?>",
      +col_before_desc:"<?php _e('插入栏于前'); ?>",
      +col_after_desc:"<?php _e('插入栏于后'); ?>",
      +delete_col_desc:"<?php _e('删除本栏'); ?>",
      +split_cells_desc:"<?php _e('分割储存格'); ?>",
      +merge_cells_desc:"<?php _e('合并储存格'); ?>",
      +row_desc:"<?php _e('表格列 属性'); ?>",
      +cell_desc:"<?php _e('储存格 属性'); ?>",
      +props_desc:"<?php _e('表格 属性'); ?>",
      +paste_row_before_desc:"<?php _e('贴入列于前'); ?>",
      +paste_row_after_desc:"<?php _e('贴入列于后'); ?>",
      +cut_row_desc:"<?php _e('剪切此列'); ?>",
      +copy_row_desc:"<?php _e('复制此列'); ?>",
      +del:"<?php _e('删除表格'); ?>",
      +row:"<?php _e('列'); ?>",
      +col:"<?php _e('栏'); ?>",
      +cell:"<?php _e('储存格'); ?>"
      +},
      +autosave:{
      +unload_msg:"<?php _e('如果离开该页,将导致所有修改全部遗失。'); ?>"
      +},
      +fullscreen:{
      +desc:"<?php _e('切换全屏幕模式'); ?>"
      +},
      +media:{
      +desc:"<?php _e('插入/编辑 媒体文件'); ?>",
      +edit:"<?php _e('编辑 媒体文件'); ?>"
      +},
      +fullpage:{
      +desc:"<?php _e('文档属性'); ?>"
      +},
      +template:{
      +desc:"<?php _e('插入预先定义的模板内容'); ?>"
      +},
      +visualchars:{
      +desc:"<?php _e('可见控制字符 开/关'); ?>"
      +},
      +spellchecker:{
      +desc:"<?php _e('切换拼写检查'); ?>",
      +menu:"<?php _e('拼写检查设定'); ?>",
      +ignore_word:"<?php _e('忽略字'); ?>",
      +ignore_words:"<?php _e('忽略全部'); ?>",
      +langs:"<?php _e('语言'); ?>",
      +wait:"<?php _e('请稍后..'); ?>",
      +sug:"<?php _e('建议'); ?>",
      +no_sug:"<?php _e('无建议'); ?>",
      +no_mpell:"<?php _e('无拼写错误'); ?>"
      +},
      +morebreak:{
      +desc:"<?php _e('插入摘要分割符'); ?>"
      +}}});
      +
      +tinyMCE.addI18n('typecho.advanced',{
      +style_select:"<?php _e('样式'); ?>",
      +font_size:"<?php _e('字体样式'); ?>",
      +fontdefault:"<?php _e('字体'); ?>",
      +block:"<?php _e('格式'); ?>",
      +paragraph:"<?php _e('段落'); ?>",
      +div:"<?php _e('布局'); ?>",
      +address:"<?php _e('地址'); ?>",
      +pre:"<?php _e('原始格式'); ?>",
      +h1:"<?php _e('标题 1 (H1)'); ?>",
      +h2:"<?php _e('标题 2 (H2)'); ?>",
      +h3:"<?php _e('标题 3 (H3)'); ?>",
      +h4:"<?php _e('标题 4 (H4)'); ?>",
      +h5:"<?php _e('标题 5 (H5)'); ?>",
      +h6:"<?php _e('标题 6 (H6)'); ?>",
      +blockquote:"<?php _e('引用'); ?>",
      +code:"<?php _e('代码'); ?>",
      +samp:"<?php _e('程序范例'); ?>",
      +dt:"<?php _e('名词定义'); ?>",
      +dd:"<?php _e('名词解释'); ?>",
      +bold_desc:"<?php _e('粗体 (Ctrl+B)'); ?>",
      +italic_desc:"<?php _e('斜体 (Ctrl+I)'); ?>",
      +underline_desc:"<?php _e('下划线 (Ctrl+U)'); ?>",
      +striketrough_desc:"<?php _e('删除线'); ?>",
      +justifyleft_desc:"<?php _e('居左对齐'); ?>",
      +justifycenter_desc:"<?php _e('居中对齐'); ?>",
      +justifyright_desc:"<?php _e('居右对齐'); ?>",
      +justifyfull_desc:"<?php _e('左右对齐'); ?>",
      +bullist_desc:"<?php _e('无序列表'); ?>",
      +numlist_desc:"<?php _e('有序列表'); ?>",
      +outdent_desc:"<?php _e('减少缩排'); ?>",
      +indent_desc:"<?php _e('增加缩排'); ?>",
      +undo_desc:"<?php _e('撤销 (Ctrl+Z)'); ?>",
      +redo_desc:"<?php _e('重做 (Ctrl+Y)'); ?>",
      +link_desc:"<?php _e('插入/编辑 链接'); ?>",
      +unlink_desc:"<?php _e('取消链接'); ?>",
      +image_desc:"<?php _e('插入/编辑 图片'); ?>",
      +cleanup_desc:"<?php _e('清除冗余代码'); ?>",
      +code_desc:"<?php _e('编辑 HTML 源代码'); ?>",
      +sub_desc:"<?php _e('下标'); ?>",
      +sup_desc:"<?php _e('上标'); ?>",
      +hr_desc:"<?php _e('插入水平分割线'); ?>",
      +removeformat_desc:"<?php _e('清除样式'); ?>",
      +custom1_desc:"<?php _e('在此输入自定义描述'); ?>",
      +forecolor_desc:"<?php _e('选择文本前景色'); ?>",
      +backcolor_desc:"<?php _e('选择文本背景色'); ?>",
      +charmap_desc:"<?php _e('插入自定义符号'); ?>",
      +visualaid_desc:"<?php _e('切换可见/隐藏元素'); ?>",
      +anchor_desc:"<?php _e('插入/编辑 锚点'); ?>",
      +cut_desc:"<?php _e('剪切 (Ctrl+X)'); ?>",
      +copy_desc:"<?php _e('复制 (Ctrl+C)'); ?>",
      +paste_desc:"<?php _e('粘贴 (Ctrl+V)'); ?>",
      +image_props_desc:"<?php _e('图片属性'); ?>",
      +newdocument_desc:"<?php _e('新文件'); ?>",
      +help_desc:"<?php _e('帮助'); ?>",
      +blockquote_desc:"<?php _e('引用'); ?>",
      +clipboard_msg:"<?php _e('复制/剪切/粘贴功能在 Mozilla 和 Firefox 中无法使用。\r\n需要获取更多相关信息?'); ?>",
      +path:"<?php _e('路径'); ?>",
      +newdocument:"<?php _e('你确定要清除所有内容吗?'); ?>",
      +toolbar_focus:"<?php _e('移至工具栏 - Alt+Q, 移至编辑器 - Alt-Z, 移至元素路径 - Alt-X'); ?>",
      +more_colors:"<?php _e('其它更多颜色'); ?>",
      +
      +colorpicker_delta_height: 30,
      +image_delta_height: 30,
      +link_delta_height: -20,
      +link_delta_width: 10
      +});
      +
      +tinyMCE.addI18n('typecho.advanced_dlg',{
      +about_title:"<?php _e('关于TinyMCE'); ?>",
      +about_general:"<?php _e('关于'); ?>",
      +about_help:"<?php _e('帮助'); ?>",
      +about_license:"<?php _e('授权'); ?>",
      +about_plugins:"<?php _e('插件'); ?>",
      +about_plugin:"<?php _e('插件'); ?>",
      +about_author:"<?php _e('作者'); ?>",
      +about_version:"<?php _e('版本'); ?>",
      +about_loaded:"<?php _e('已加载的插件'); ?>",
      +anchor_title:"<?php _e('插入/编辑 锚点'); ?>",
      +anchor_name:"<?php _e('锚点名'); ?>",
      +code_title:"<?php _e('HTML 源代码编辑器'); ?>",
      +code_wordwrap:"<?php _e('自动换行'); ?>",
      +colorpicker_title:"<?php _e('选择颜色'); ?>",
      +colorpicker_picker_tab:"<?php _e('选色器'); ?>",
      +colorpicker_picker_title:"<?php _e('选色器'); ?>",
      +colorpicker_palette_tab:"<?php _e('色盘'); ?>",
      +colorpicker_palette_title:"<?php _e('色盘颜色'); ?>",
      +colorpicker_named_tab:"<?php _e('已指定'); ?>",
      +colorpicker_named_title:"<?php _e('已指定颜色'); ?>",
      +colorpicker_color:"<?php _e('颜色:'); ?>",
      +colorpicker_name:"<?php _e('名称:'); ?>",
      +charmap_title:"<?php _e('选择自定义符号'); ?>",
      +image_title:"<?php _e('插入/编辑图片'); ?>",
      +image_src:"<?php _e('图片地址'); ?>",
      +image_alt:"<?php _e('图片描述'); ?>",
      +image_list:"<?php _e('图片列表'); ?>",
      +image_border:"<?php _e('边框'); ?>",
      +image_dimensions:"<?php _e('尺寸'); ?>",
      +image_vspace:"<?php _e('垂直间距'); ?>",
      +image_hspace:"<?php _e('水平间距'); ?>",
      +image_align:"<?php _e('对齐'); ?>",
      +image_align_baseline:"<?php _e('基线对齐'); ?>",
      +image_align_top:"<?php _e('居上'); ?>",
      +image_align_middle:"<?php _e('居中'); ?>",
      +image_align_bottom:"<?php _e('居下'); ?>",
      +image_align_texttop:"<?php _e('文字上方'); ?>",
      +image_align_textbottom:"<?php _e('文字下方'); ?>",
      +image_align_left:"<?php _e('居左'); ?>",
      +image_align_right:"<?php _e('居右'); ?>",
      +link_title:"<?php _e('插入/编辑链接'); ?>",
      +link_url:"<?php _e('链接地址'); ?>",
      +link_target:"<?php _e('目标'); ?>",
      +link_target_same:"<?php _e('在当前窗口打开链接'); ?>",
      +link_target_blank:"<?php _e('在新窗口打开链接'); ?>",
      +link_titlefield:"<?php _e('标题'); ?>",
      +link_is_email:"<?php _e('你输入的URL似乎是一个email地址,是否要加上前辍字 mailto: ?'); ?>",
      +link_is_external:"<?php _e('你输入的URL似乎是一个外部链接,是否要加上前辍字 http:// ?'); ?>",
      +link_list:"<?php _e('链接列表'); ?>"
      +});
      +
      +tinyMCE.addI18n('typecho.media_dlg',{
      +title:"<?php _e('插入/编辑 媒体文件'); ?>",
      +general:"<?php _e('常规'); ?>",
      +advanced:"<?php _e('高级'); ?>",
      +file:"<?php _e('文件/URL'); ?>",
      +list:"<?php _e('列表'); ?>",
      +size:"<?php _e('尺寸'); ?>",
      +preview:"<?php _e('预览'); ?>",
      +constrain_proportions:"<?php _e('保持比例'); ?>",
      +type:"<?php _e('类型'); ?>",
      +id:"<?php _e('ID'); ?>",
      +name:"<?php _e('名称'); ?>",
      +class_name:"<?php _e('类别'); ?>",
      +vspace:"<?php _e('垂直间距'); ?>",
      +hspace:"<?php _e('水平间距'); ?>",
      +play:"<?php _e('自动播放'); ?>",
      +loop:"<?php _e('循环'); ?>",
      +menu:"<?php _e('显示菜单'); ?>",
      +quality:"<?php _e('质量'); ?>",
      +scale:"<?php _e('缩放'); ?>",
      +align:"<?php _e('对齐'); ?>",
      +salign:"<?php _e('SAlign'); ?>",
      +wmode:"<?php _e('WMode'); ?>",
      +bgcolor:"<?php _e('背景色'); ?>",
      +base:"<?php _e('基底'); ?>",
      +flashvars:"<?php _e('Flash变量'); ?>",
      +liveconnect:"<?php _e('SWLiveConnect'); ?>",
      +autohref:"<?php _e('AutoHREF'); ?>",
      +cache:"<?php _e('缓存'); ?>",
      +hidden:"<?php _e('隐藏'); ?>",
      +controller:"<?php _e('控制台'); ?>",
      +kioskmode:"<?php _e('Kiosk 模式'); ?>",
      +playeveryframe:"<?php _e('逐帧播放'); ?>",
      +targetcache:"<?php _e('目标暂存'); ?>",
      +correction:"<?php _e('修正'); ?>",
      +enablejavascript:"<?php _e('启用 JavaScript'); ?>",
      +starttime:"<?php _e('开始时间'); ?>",
      +endtime:"<?php _e('结束时间'); ?>",
      +href:"<?php _e('Href'); ?>",
      +qtsrcchokespeed:"<?php _e('Choke速度'); ?>",
      +target:"<?php _e('目标'); ?>",
      +volume:"<?php _e('音量'); ?>",
      +autostart:"<?php _e('自动播放'); ?>",
      +enabled:"<?php _e('启用'); ?>",
      +fullscreen:"<?php _e('全屏幕'); ?>",
      +invokeurls:"<?php _e('挂用的URLs'); ?>",
      +mute:"<?php _e('静音'); ?>",
      +stretchtofit:"<?php _e('缩放至适合大小'); ?>",
      +windowlessvideo:"<?php _e('无窗口播放'); ?>",
      +balance:"<?php _e('平衡'); ?>",
      +baseurl:"<?php _e('基底 网址'); ?>",
      +captioningid:"<?php _e('字幕ID'); ?>",
      +currentmarker:"<?php _e('目前标记'); ?>",
      +currentposition:"<?php _e('当前位置'); ?>",
      +defaultframe:"<?php _e('预设帧'); ?>",
      +playcount:"<?php _e('播放次数'); ?>",
      +rate:"<?php _e('码率'); ?>",
      +uimode:"<?php _e('UI 模式'); ?>",
      +flash_options:"<?php _e('Flash 选项'); ?>",
      +qt_options:"<?php _e('Quicktime 选项'); ?>",
      +wmp_options:"<?php _e('Windows Media Player 选项'); ?>",
      +rmp_options:"<?php _e('Real Media Player 选项'); ?>",
      +shockwave_options:"<?php _e('Shockwave 选项'); ?>",
      +autogotourl:"<?php _e('自动转至 URL'); ?>",
      +center:"<?php _e('居中'); ?>",
      +imagestatus:"<?php _e('图片状态'); ?>",
      +maintainaspect:"<?php _e('维持比例'); ?>",
      +nojava:"<?php _e('No java'); ?>",
      +prefetch:"<?php _e('预读'); ?>",
      +shuffle:"<?php _e('随机'); ?>",
      +console:"<?php _e('控制台'); ?>",
      +numloop:"<?php _e('循环次数'); ?>",
      +controls:"<?php _e('控制'); ?>",
      +scriptcallbacks:"<?php _e('Script回传'); ?>",
      +swstretchstyle:"<?php _e('缩放样式'); ?>",
      +swstretchhalign:"<?php _e('缩放至水平对齐'); ?>",
      +swstretchvalign:"<?php _e('缩放至垂直对齐'); ?>",
      +sound:"<?php _e('声音'); ?>",
      +progress:"<?php _e('进度'); ?>",
      +qtsrc:"<?php _e('QT Src'); ?>",
      +qt_stream_warn:"<?php _e('RTSP协议的流资源需要在高级选项中增加QT Src域。 \n您还要补充一个非流的SRC域..'); ?>",
      +align_top:"<?php _e('居顶'); ?>",
      +align_right:"<?php _e('居右'); ?>",
      +align_bottom:"<?php _e('居底'); ?>",
      +align_left:"<?php _e('居左'); ?>",
      +align_center:"<?php _e('居中'); ?>",
      +align_top_left:"<?php _e('居顶左'); ?>",
      +align_top_right:"<?php _e('居顶右'); ?>",
      +align_bottom_left:"<?php _e('居底左'); ?>",
      +align_bottom_right:"<?php _e('居底右'); ?>",
      +flv_options:"<?php _e('Flash 视频选项'); ?>",
      +flv_scalemode:"<?php _e('缩放模式'); ?>",
      +flv_buffer:"<?php _e('缓冲'); ?>",
      +flv_startimage:"<?php _e('启动图片'); ?>",
      +flv_starttime:"<?php _e('启动时间'); ?>",
      +flv_defaultvolume:"<?php _e('预设音量'); ?>",
      +flv_hiddengui:"<?php _e('隐藏GUI'); ?>",
      +flv_autostart:"<?php _e('自动启动'); ?>",
      +flv_loop:"<?php _e('循环'); ?>",
      +flv_showscalemodes:"<?php _e('显示缩放模式'); ?>",
      +flv_smoothvideo:"<?php _e('平滑视图'); ?>",
      +flv_jscallback:"<?php _e('JS 回传'); ?>"
      +});
      +
      +/** offset */
      +tinyMCE.addI18n('typecho.media',{
      +    delta_height:40
      +});
      diff --git a/usr/plugins/TinyMCE/tiny_mce/langs/typecho.js b/usr/plugins/TinyMCE/tiny_mce/langs/typecho.js
      new file mode 100644
      index 00000000..ad52ac3f
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/langs/typecho.js
      @@ -0,0 +1 @@
      +/** nothing to do, just sleep...Zzz... */
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/coder/editor_plugin.js b/usr/plugins/TinyMCE/tiny_mce/plugins/coder/editor_plugin.js
      new file mode 100644
      index 00000000..0a87a707
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/plugins/coder/editor_plugin.js
      @@ -0,0 +1,79 @@
      +/**
      + * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
      + *
      + * @author Moxiecode
      + * @copyright Copyright  2004-2008, Moxiecode Systems AB, All rights reserved.
      + */
      +
      +(function() {
      +	tinymce.create('tinymce.plugins.CoderPlugin', {
      +		init : function(ed, url) {
      +            
      +			ed.onClick.add(function(ed, e) {
      +				e = e.target;
      +
      +				if (e.nodeName === 'CODE' || e.nodeName === 'PRE' || e.className.indexOf("typecho-plugin") >= 0)
      +					ed.selection.select(e);
      +			});
      +
      +            
      +			ed.onBeforeSetContent.add(function(ed, o) {
      +				
      +                var _replace = function (g, a, b, c) {
      +                    
      +                    c = c.trim().replace(/( |<|>|\r\n|\r|\n)/g, function (e) {
      +                    
      +                        switch (e) {
      +                        
      +                            case "<":
      +                                return "&lt;";
      +                                
      +                            case ">":
      +                                return "&gt;";
      +                            
      +                            case "\r\n":
      +                            case "\r":
      +                            case "\n":
      +                                return '<br />';
      +                                
      +                            case " ":
      +                                return '&nbsp;';
      +                                
      +                            default:
      +                                return;
      +                        
      +                        }
      +                    
      +                    });
      +                    
      +                    return '<' + a + b + '>' + c + '</' + a + '>';
      +                };
      +                
      +                o.content = o.content.replace(/<(code)([^>]*)>([\s\S]*?)<\/(code)>/ig, _replace);
      +                o.content = o.content.replace(/<(pre)([^>]*)>([\s\S]*?)<\/(pre)>/ig, _replace);
      +			});
      +            
      +            /*
      +			ed.onPostProcess.add(function(ed, o) {
      +				if (o.get) {
      +					o.content = o.content.replace(/<textarea([^>]*)>/ig, '<code$1>');
      +					o.content = o.content.replace(/<\/textarea>/ig, '</code>');
      +                }
      +			});
      +            */
      +		},
      +
      +		getInfo : function() {
      +			return {
      +				longname : 'Coder',
      +				author : 'Typecho Team',
      +				authorurl : 'http://typecho.org',
      +				infourl : 'http://typecho.org',
      +				version : tinymce.majorVersion + "." + tinymce.minorVersion
      +			};
      +		}
      +	});
      +
      +	// Register plugin
      +	tinymce.PluginManager.add('coder', tinymce.plugins.CoderPlugin);
      +})();
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/editor_plugin.js b/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/editor_plugin.js
      new file mode 100644
      index 00000000..07ea477b
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/editor_plugin.js
      @@ -0,0 +1 @@
      +(function(){var d=tinymce.DOM,b=tinymce.dom.Element,a=tinymce.dom.Event,e=tinymce.each,c=tinymce.is;tinymce.create("tinymce.plugins.InlinePopups",{init:function(f,g){f.onBeforeRenderUI.add(function(){f.windowManager=new tinymce.InlineWindowManager(f);d.loadCSS(g+"/skins/"+(f.settings.inlinepopups_skin||"clearlooks2")+"/window.css")})},getInfo:function(){return{longname:"InlinePopups",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.create("tinymce.InlineWindowManager:tinymce.WindowManager",{InlineWindowManager:function(f){var g=this;g.parent(f);g.zIndex=300000;g.count=0;g.windows={}},open:function(r,j){var y=this,i,k="",q=y.editor,g=0,s=0,h,m,n,o,l,v,x;r=r||{};j=j||{};if(!r.inline){return y.parent(r,j)}if(!r.type){y.bookmark=q.selection.getBookmark(1)}i=d.uniqueId();h=d.getViewPort();r.width=parseInt(r.width||320);r.height=parseInt(r.height||240)+(tinymce.isIE?8:0);r.min_width=parseInt(r.min_width||150);r.min_height=parseInt(r.min_height||100);r.max_width=parseInt(r.max_width||2000);r.max_height=parseInt(r.max_height||2000);r.left=r.left||Math.round(Math.max(h.x,h.x+(h.w/2)-(r.width/2)));r.top=r.top||Math.round(Math.max(h.y,h.y+(h.h/2)-(r.height/2)));r.movable=r.resizable=true;j.mce_width=r.width;j.mce_height=r.height;j.mce_inline=true;j.mce_window_id=i;j.mce_auto_focus=r.auto_focus;y.features=r;y.params=j;y.onOpen.dispatch(y,r,j);if(r.type){k+=" mceModal";if(r.type){k+=" mce"+r.type.substring(0,1).toUpperCase()+r.type.substring(1)}r.resizable=false}if(r.statusbar){k+=" mceStatusbar"}if(r.resizable){k+=" mceResizable"}if(r.minimizable){k+=" mceMinimizable"}if(r.maximizable){k+=" mceMaximizable"}if(r.movable){k+=" mceMovable"}y._addAll(d.doc.body,["div",{id:i,"class":q.settings.inlinepopups_skin||"clearlooks2",style:"width:100px;height:100px"},["div",{id:i+"_wrapper","class":"mceWrapper"+k},["div",{id:i+"_top","class":"mceTop"},["div",{"class":"mceLeft"}],["div",{"class":"mceCenter"}],["div",{"class":"mceRight"}],["span",{id:i+"_title"},r.title||""]],["div",{id:i+"_middle","class":"mceMiddle"},["div",{id:i+"_left","class":"mceLeft"}],["span",{id:i+"_content"}],["div",{id:i+"_right","class":"mceRight"}]],["div",{id:i+"_bottom","class":"mceBottom"},["div",{"class":"mceLeft"}],["div",{"class":"mceCenter"}],["div",{"class":"mceRight"}],["span",{id:i+"_status"},"Content"]],["a",{"class":"mceMove",tabindex:"-1",href:"javascript:;"}],["a",{"class":"mceMin",tabindex:"-1",href:"javascript:;",onmousedown:"return false;"}],["a",{"class":"mceMax",tabindex:"-1",href:"javascript:;",onmousedown:"return false;"}],["a",{"class":"mceMed",tabindex:"-1",href:"javascript:;",onmousedown:"return false;"}],["a",{"class":"mceClose",tabindex:"-1",href:"javascript:;",onmousedown:"return false;"}],["a",{id:i+"_resize_n","class":"mceResize mceResizeN",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_s","class":"mceResize mceResizeS",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_w","class":"mceResize mceResizeW",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_e","class":"mceResize mceResizeE",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_nw","class":"mceResize mceResizeNW",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_ne","class":"mceResize mceResizeNE",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_sw","class":"mceResize mceResizeSW",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_se","class":"mceResize mceResizeSE",tabindex:"-1",href:"javascript:;"}]]]);d.setStyles(i,{top:-10000,left:-10000});if(tinymce.isGecko){d.setStyle(i,"overflow","auto")}if(!r.type){g+=d.get(i+"_left").clientWidth;g+=d.get(i+"_right").clientWidth;s+=d.get(i+"_top").clientHeight;s+=d.get(i+"_bottom").clientHeight}d.setStyles(i,{top:r.top,left:r.left,width:r.width+g,height:r.height+s});x=r.url||r.file;if(x){if(tinymce.relaxedDomain){x+=(x.indexOf("?")==-1?"?":"&")+"mce_rdomain="+tinymce.relaxedDomain}x=tinymce._addVer(x)}if(!r.type){d.add(i+"_content","iframe",{id:i+"_ifr",src:'javascript:""',frameBorder:0,style:"border:0;width:10px;height:10px"});d.setStyles(i+"_ifr",{width:r.width,height:r.height});d.setAttrib(i+"_ifr","src",x)}else{d.add(i+"_wrapper","a",{id:i+"_ok","class":"mceButton mceOk",href:"javascript:;",onmousedown:"return false;"},"Ok");if(r.type=="confirm"){d.add(i+"_wrapper","a",{"class":"mceButton mceCancel",href:"javascript:;",onmousedown:"return false;"},"Cancel")}d.add(i+"_middle","div",{"class":"mceIcon"});d.setHTML(i+"_content",r.content.replace("\n","<br />"))}n=a.add(i,"mousedown",function(t){var u=t.target,f,p;f=y.windows[i];y.focus(i);if(u.nodeName=="A"||u.nodeName=="a"){if(u.className=="mceMax"){f.oldPos=f.element.getXY();f.oldSize=f.element.getSize();p=d.getViewPort();p.w-=2;p.h-=2;f.element.moveTo(p.x,p.y);f.element.resizeTo(p.w,p.h);d.setStyles(i+"_ifr",{width:p.w-f.deltaWidth,height:p.h-f.deltaHeight});d.addClass(i+"_wrapper","mceMaximized")}else{if(u.className=="mceMed"){f.element.moveTo(f.oldPos.x,f.oldPos.y);f.element.resizeTo(f.oldSize.w,f.oldSize.h);f.iframeElement.resizeTo(f.oldSize.w-f.deltaWidth,f.oldSize.h-f.deltaHeight);d.removeClass(i+"_wrapper","mceMaximized")}else{if(u.className=="mceMove"){return y._startDrag(i,t,u.className)}else{if(d.hasClass(u,"mceResize")){return y._startDrag(i,t,u.className.substring(13))}}}}}});o=a.add(i,"click",function(f){var p=f.target;y.focus(i);if(p.nodeName=="A"||p.nodeName=="a"){switch(p.className){case"mceClose":y.close(null,i);return a.cancel(f);case"mceButton mceOk":case"mceButton mceCancel":r.button_func(p.className=="mceButton mceOk");return a.cancel(f)}}});v=y.windows[i]={id:i,mousedown_func:n,click_func:o,element:new b(i,{blocker:1,container:q.getContainer()}),iframeElement:new b(i+"_ifr"),features:r,deltaWidth:g,deltaHeight:s};v.iframeElement.on("focus",function(){y.focus(i)});if(y.count==0&&y.editor.getParam("dialog_type","modal")=="modal"){d.add(d.doc.body,"div",{id:"mceModalBlocker","class":(y.editor.settings.inlinepopups_skin||"clearlooks2")+"_modalBlocker",style:{zIndex:y.zIndex-1}});d.show("mceModalBlocker")}else{d.setStyle("mceModalBlocker","z-index",y.zIndex-1)}if(tinymce.isIE6||/Firefox\/2\./.test(navigator.userAgent)||(tinymce.isIE&&!d.boxModel)){d.setStyles("mceModalBlocker",{position:"absolute",left:h.x,top:h.y,width:h.w-2,height:h.h-2})}y.focus(i);y._fixIELayout(i,1);if(d.get(i+"_ok")){d.get(i+"_ok").focus()}y.count++;return v},focus:function(h){var g=this,f;if(f=g.windows[h]){f.zIndex=this.zIndex++;f.element.setStyle("zIndex",f.zIndex);f.element.update();h=h+"_wrapper";d.removeClass(g.lastId,"mceFocus");d.addClass(h,"mceFocus");g.lastId=h}},_addAll:function(k,h){var g,l,f=this,j=tinymce.DOM;if(c(h,"string")){k.appendChild(j.doc.createTextNode(h))}else{if(h.length){k=k.appendChild(j.create(h[0],h[1]));for(g=2;g<h.length;g++){f._addAll(k,h[g])}}}},_startDrag:function(v,G,E){var o=this,u,z,C=d.doc,f,l=o.windows[v],h=l.element,y=h.getXY(),x,q,F,g,A,s,r,j,i,m,k,n,B;g={x:0,y:0};A=d.getViewPort();A.w-=2;A.h-=2;j=G.screenX;i=G.screenY;m=k=n=B=0;u=a.add(C,"mouseup",function(p){a.remove(C,"mouseup",u);a.remove(C,"mousemove",z);if(f){f.remove()}h.moveBy(m,k);h.resizeBy(n,B);q=h.getSize();d.setStyles(v+"_ifr",{width:q.w-l.deltaWidth,height:q.h-l.deltaHeight});o._fixIELayout(v,1);return a.cancel(p)});if(E!="Move"){D()}function D(){if(f){return}o._fixIELayout(v,0);d.add(C.body,"div",{id:"mceEventBlocker","class":"mceEventBlocker "+(o.editor.settings.inlinepopups_skin||"clearlooks2"),style:{zIndex:o.zIndex+1}});if(tinymce.isIE6||(tinymce.isIE&&!d.boxModel)){d.setStyles("mceEventBlocker",{position:"absolute",left:A.x,top:A.y,width:A.w-2,height:A.h-2})}f=new b("mceEventBlocker");f.update();x=h.getXY();q=h.getSize();s=g.x+x.x-A.x;r=g.y+x.y-A.y;d.add(f.get(),"div",{id:"mcePlaceHolder","class":"mcePlaceHolder",style:{left:s,top:r,width:q.w,height:q.h}});F=new b("mcePlaceHolder")}z=a.add(C,"mousemove",function(w){var p,H,t;D();p=w.screenX-j;H=w.screenY-i;switch(E){case"ResizeW":m=p;n=0-p;break;case"ResizeE":n=p;break;case"ResizeN":case"ResizeNW":case"ResizeNE":if(E=="ResizeNW"){m=p;n=0-p}else{if(E=="ResizeNE"){n=p}}k=H;B=0-H;break;case"ResizeS":case"ResizeSW":case"ResizeSE":if(E=="ResizeSW"){m=p;n=0-p}else{if(E=="ResizeSE"){n=p}}B=H;break;case"mceMove":m=p;k=H;break}if(n<(t=l.features.min_width-q.w)){if(m!==0){m+=n-t}n=t}if(B<(t=l.features.min_height-q.h)){if(k!==0){k+=B-t}B=t}n=Math.min(n,l.features.max_width-q.w);B=Math.min(B,l.features.max_height-q.h);m=Math.max(m,A.x-(s+A.x));k=Math.max(k,A.y-(r+A.y));m=Math.min(m,(A.w+A.x)-(s+q.w+A.x));k=Math.min(k,(A.h+A.y)-(r+q.h+A.y));if(m+k!==0){if(s+m<0){m=0}if(r+k<0){k=0}F.moveTo(s+m,r+k)}if(n+B!==0){F.resizeTo(q.w+n,q.h+B)}return a.cancel(w)});return a.cancel(G)},resizeBy:function(g,h,i){var f=this.windows[i];if(f){f.element.resizeBy(g,h);f.iframeElement.resizeBy(g,h)}},close:function(j,l){var h=this,g,k=d.doc,f=0,i,l;l=h._findId(l||j);if(!h.windows[l]){h.parent(j);return}h.count--;if(h.count==0){d.remove("mceModalBlocker")}if(g=h.windows[l]){h.onClose.dispatch(h);a.remove(k,"mousedown",g.mousedownFunc);a.remove(k,"click",g.clickFunc);a.clear(l);a.clear(l+"_ifr");d.setAttrib(l+"_ifr","src",'javascript:""');g.element.remove();delete h.windows[l];e(h.windows,function(m){if(m.zIndex>f){i=m;f=m.zIndex}});if(i){h.focus(i.id)}}},setTitle:function(f,g){var h;f=this._findId(f);if(h=d.get(f+"_title")){h.innerHTML=d.encode(g)}},alert:function(g,f,j){var i=this,h;h=i.open({title:i,type:"alert",button_func:function(k){if(f){f.call(k||i,k)}i.close(null,h.id)},content:d.encode(i.editor.getLang(g,g)),inline:1,width:400,height:130})},confirm:function(g,f,j){var i=this,h;h=i.open({title:i,type:"confirm",button_func:function(k){if(f){f.call(k||i,k)}i.close(null,h.id)},content:d.encode(i.editor.getLang(g,g)),inline:1,width:400,height:130})},_findId:function(f){var g=this;if(typeof(f)=="string"){return f}e(g.windows,function(h){var i=d.get(h.id+"_ifr");if(i&&f==i.contentWindow){f=h.id;return false}});return f},_fixIELayout:function(i,h){var f,g;if(!tinymce.isIE6){return}e(["n","s","w","e","nw","ne","sw","se"],function(j){var k=d.get(i+"_resize_"+j);d.setStyles(k,{width:h?k.clientWidth:"",height:h?k.clientHeight:"",cursor:d.getStyle(k,"cursor",1)});d.setStyle(i+"_bottom","bottom","-1px");k=0});if(f=this.windows[i]){f.element.hide();f.element.show();e(d.select("div,a",i),function(k,j){if(k.currentStyle.backgroundImage!="none"){g=new Image();g.src=k.currentStyle.backgroundImage.replace(/url\(\"(.+)\"\)/,"$1")}});d.get(i).style.filter=""}}});tinymce.PluginManager.add("inlinepopups",tinymce.plugins.InlinePopups)})();
      \ No newline at end of file
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif b/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..94abd08763fffdaa0dd5c5afb470a97294f2b94d
      GIT binary patch
      literal 818
      zcmV-21I_$LNk%w1VITk?0OkMyy?1uhZf>Is3*B5?sT&&Hqoc$;Jkrt6&k+&QHa5gV
      zL)l77I5;@fLqpYMWV<abwUm?7QBkxrGu*<$+j)7$S6A9;Y1?*oyK8FI)Y8t+&Cwbf
      z0|Nuh0s^}{Jk10I;B0K)Vq&Z$B;j>+*+oUyj*ia`4%)P|vrSClaB!?EE7K$--(_XZ
      zOH0lO2-#9n!;Fik78a-!6wR}-yS%#378ch%J=j4(x@2V5*3{b0&C|=t(mFcQDJi8A
      z60bTsucxKY8XD3{O5bW~+gDfHP*AZbD54S)*gHGL#>A(co5`c08yg$Yzr7_TCCA9d
      zs-U0MFfhzxW4%d9s-K?K($LSkxy-Sz(7?Xdn3%wSe#oDmxL#e?qN1My0^C(q&nzt3
      zjEvWFbJcly)5*uu)6w93eACp@*{!X#QBc56PRYv1%goBm&CA4*kj9vnyFx<e!NJmB
      zU(r85yc`_bZEdF@Amh5a-++MIVq($7!@-4wp8x>N00960|JK*lA^8LV00000EC2ui
      z03ZM$000O7fPaF6goTEOh>41ejE#<k00IISkBo0Jbrv!(m5O!&HzaZ~Rh@@>5-A-Y
      zDMkRMg$FSdD>XGe76Lo4g8*<LeI;2PArd&ee`G#*8(@BZ2^+ahyj*HueO=FJ9Yr1}
      zuuU>}CUeivLI}B6rYIE)9Vh306CXDUKb=<uW-bx)&*Zqs<6}#uA5xIGnDC4PhjS*P
      zC=iju(Gn3OJ~%k%@Z5zDL<n$dq#{5R1oJwc3$mgGDMoH24Cyc?<->Dfx`}wT=u<6#
      zD$n)U&_b6YEgl901IUC4zyf`27&(S$$E;fb{Wx)wm4^u-0<a*$Fr`SgtZ4n*=@8{X
      znnQYzW|c$BfC1VUE*c1!VTjAScy#S%)!|~rgM5Un%<`AEu^$T`cnDZR$Q_cij?u>H
      zv*CdXLINn%=tH`+>C>qDxJcmTfS@*Z45S!AI|Ya#EOHOnP2`2|1;88Ju#tey5e=^)
      w9O1*fx%21Hn;(HtX3!cMK%gku&b_<$??7lEkM$&p`Sa-0r)T3DnWI1eJD_KQDgXcg
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif b/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..e671094cb0eb210b756117f992cf5ca2caa698fd
      GIT binary patch
      literal 280
      zcmZ?wbhEHb3}BFB*v!Ci>hy`^<m7ADuRePG@c#XKPoF(yU|_g*<J$lK|A7olp!kyo
      zET{t_L1r+p91UP`UcJ}i^;v8FNsT=zne#GMt$UN@ldE&S#OrFsy6NBF{a+(j;Nim2
      z?Qz%e<Q(1E0n=AFtc_ZKV@=uVw`KYFHdOeWYdZa6%dD!n-S=;s)!6NqefMKe-TC*w
      z|2Nb#lr^@twRcoCD|Pnv^_O>ZOqepYsb$*CnUiMCojPaU!rn<NOP4KQv2xYwHEY+c
      zU9x`D<}F)SY}~eU*X|v=_wC<ce&Fzt<$IY=oIG{<%-M72FI+rx{L<BH*KaU43*WqZ
      U@BRsWMY$(WpFI~>5M;0h0LDv<C;$Ke
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif b/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..6baf64ad321ab3d35330f2aaae7504aa519644bd
      GIT binary patch
      literal 1195
      zcmV;c1XTM+Nk%w1VRQg60K^&qo}rxY@9u7Ug;85$H#j%{|NpDH#%p|xwZqR~a)67K
      zo_>*_&)DBrWN@OfznH1FT4{BUps!wTd|YdJ0002^_xJYp^u)%)d3$)z&B_1&{{R30
      z000000000000000A^8LW000^QEC2ui0CWH_000I5phk>jX`ZJhqHH^=Zk(=iEn-2g
      z?|i>wBOI?nEE<hGAVKJBHkC}LRHw8|uQ|)eIy`!bJS~BXm5Ryb<~eQN_P*b+o2{PH
      zd+R&iu7i8!V@(u;go93bJ%&1pK8SicjyXhygMT}bi<FFefj)#epLLy&kbIIAnwF)b
      zJer$;XswiOtfZKeMii=9ri+P(y*q_dViy3%$j7b}$;}rd#?8tZ8I;n<&jiuZ%+1}`
      z+1uBJ*U91K%jE#)<J1(@)#~ir^yTy1*7DHkuKL>ih2q)UH?AHyg7~@-@+VH6!(;c_
      zxnl@0-@$+5z5y6S@uA0c2rFuI7V_gjj3zt(raakjrMZ$WvB8W9atTdoP;NHMsS_E`
      zo&bQ*s1XAOQ5i;$x=5;&g^B@Cqe`7hmFm-~ShGUCs<o?Bu3o)rfXbk(*|TWVo|US$
      zty>0c-^w)`cdp#12=eOP%eQY|sD1+r)(d#BVZMbAD~4*IvE#>(BS&T|xw7TPlrL+3
      zoO$zRs18Dl9!<J*Y0#!qs}7CYbb;5fU$1UmTDEB0si8jD&AYen-@kPOe-Qii@ZQ3K
      z7l(cPLGs_si5ou-HG=i)*t2WbUVVFn<=(M(-@g2H_z2_47e9}Fz=HSi<IA5vA1eL#
      z1>)zw58wX%{rd5@fPehOCg6KeHK5@Cf($n3po0lM*gyda7AK*C5k5#^gBwbip@gwr
      zxFA#zlxU)f<rQ$^iV%><Vu>n3pyG@#n&{$-F`k&?i#Os}T#YskFu{;S5}9I=NKOD%
      zl13IcK><t>xnz`3B3WgWQ!)wLkXuHn<Ny+cDW;eyj%lU@P@Q>Z0c5HvW}0r6=_Z<B
      z#>pm`ce)8x0(|!A=bwNAx@Vw%7Dp(bgC44=paU%GsGm?BAnBx(R%)rGkzT6lrjlmL
      z>8F%>3M!~kDPZcUsHUnas#2}$>Z=O03hS(=%1Z03TZN@7Sh{A#Yp+%P3hY!W2w?27
      z$R?|-vc)dz?6bx;3+=SXN=q&OwHg>}*IdYMD_6JPx&>~yY8|WCxyGKWSi0&O#%{ZU
      z8SB}+^3J<iz4l&)Z@!foyV}2{`3vyC4hZa8d8-**TLGitW}30hMf@AY!!0K<#mbe}
      z9LCU17u|5ivL`ZjA$tcNdnK!PvUe$~3>(S<94K>q#ugahfi?d(AAt1bTp(;R8!O__
      z4hjuog&|&Ow1y6L_~6nY!bY^QK&A*J1XR};BaJ(<m^F?pcD>@)KE`%6)&h8Wq?g93
      z?c|kAwoPS{a3?9ZmalP{H`@ZtDW{vp&e>*|d8!$>oy!S+xSFqx+4!8sJ}P<SiyC?;
      z<&rOodFGc3FzV;Vem-g_=%Rm0dg+@Udn>KTu0Ct)uD=R<?5jq5?d{gy{%r2LFUx!H
      J$!ZV+06W;kU)}%!
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif b/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..497307a85ad32e00b67c5f27d6f3b46ac566d89b
      GIT binary patch
      literal 915
      zcmV;E18n?9Nk%w1VITk?0OkMy&&j~|k1Co}49|EKqh~0+ri!6j6Z*7U`lU1e^XU7^
      zod5p+om&^t%*Cs9J)E4I)z#6vZX5cfOQfZw_J9bzzPy@aE7*uE$H2Mzs7<(K4$*}x
      z?4CLJokRMqQrd$ZlS~7knw0jXHTSe!o0*mDqeS+82K9OY`oWCJ%E-LEy7!Ya^?nJ(
      z#>DxVCHlB}`m%1))6x2zDYdq=`Kv|wmLm3t8~B<$_Jb3xuB^__&G?WTylN4utE$1m
      z!1=ILv9hrCi66PSxc~e2>z6G0pe^@^5&5A-&VntacS+opK(T{V_m()r#KOD0y0na8
      z%goB5UmeoU$gX`!&(O}**3|y@@xQ>n(9zHMmpZewvaqqQx45?Js#L_q!_309tE{Tf
      zhBEo9Vadb0m3v>7ePP{-Blnp<{MWPlxL*0GU8$dvuduJ(k1^BK(#Ocgm{14%#gX`?
      zRrPxW_?tJVsi*s^Ih9Zd`n!Ms{rtGOx2&zJ_Iw2Oc>wp7H`dqHA^8LV00000EC2ui
      z03ZM$000O7fPaF6gntbM4p9Oi0#ObH4TX}Ee_sv)5lUSnX(L@q5dschl$1*XVQCp1
      zeyy$<2VnwB5T%0+1Q8<=Os>AJM<Wpgk);g`NC#QJ%&$lc#ghcdz0KAc8w9nIPrB9C
      z*AY*W00zp<3Rdb0);|USg;N*2=nMAj%^eq0gi-=&-+rO6w*Un=4+5kNDiFZ~xEBQR
      zfRn(Zz#s>0j(~$f5C*s#Z5#}WQsM?UH3Y?cED>eUzkt6a5bO}dMvwr^Xb5l#@FPJS
      zeS!wHvEmgRmp@>-3c_NDJ)uzN1ZkynBnOke0ssw~U_pYYQEhN&DagSGI<2(wiP}L<
      z2e47_&4?6KK!XdoP`Bdkv!miI0SHd)Rj>ff-abVV5}Gn#$6lukSl~7CfghoAf$`$8
      z5@&CbciebnJ`7g|k8#ol6q!Rhs*3^IC>>Kxp>@zA1EAR&LqLOw8f*9N5TStp1}s%3
      zVM*boLJ~NtT^KPTcxVj-0|X>-(j<kBZT(tY5u#;{1vnZ$5D{TV1d$IK;8<7#giD3)
      zR3t$WPd>+l5M`Wq2O|PlKt>1?^svPY_j#uua~0?Tgn$1%K*EI<CJ4rY+`aLga{KuZ
      p;S3Y*(Zh)wvY~~2S9sx|Ef7$_ToWQj=){fp`OpFs$Vn0i06Ts(yS)Ga
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif b/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..c894b2e83522ae29d32e0ed57007d1285c715a7f
      GIT binary patch
      literal 911
      zcmd6kdrwkv06>2i?j<x$Fc&q=@P#<CjHy{o!`u@3%Qe?r%SElVW?R#it<7cE3u4+*
      z^O4zWLS)c%sAyRWy=E#@W@#;agk-5Gh=9Blk?LD?KEXLVnY^PZ2hPL-8kpmOW#c>m
      zAoXC1c4Wxs^ZEJtUB4q<T9{d!{ejg#Ev}K=sC{By{AIT;tyqjMht09F{8*tf&FhVG
      zx?7K18)Pqy^V3%ILfL(JtyEbhZu{_Us<6CqaZb1DcA5-7O$I$$CoQRy4)?#3bl{#f
      zx7WMg{Gxx|v)0x8P}!^A*zhWQ)OMS>T{UQ1HY%Uh+pQ*t&D_y5<X!i4sD=hczOT9+
      zZs*FI!Ov@}uGjBAy?pzzvsdHstgTp0yJA>9>e1Hjx9TtBow%m&!&jTd_<n5C?Xv&P
      z`J48i6R`?I0Pw)>f1dxIfK5J>hhd07SSo@<yf^@e1PHE-yA7fU0t8{)M?x771ffs`
      zR$FyPCTnQqAuQG-MQ9hJ{brXGtCZKMRQD7N=71tIRx`j9^E9!U6{_l9yj77HGoi?c
      z)=k7Dmg=H2Mk~LzL>U1ANej1zBgs@J)fS$HxTwj{ShgdWQ_Y8V1_h@vv!qzRzyB@+
      z)6#Z?iW=a9&+kg`Kr%f7CfA71iK;1=LJ}Gy$VX4NJcj@#Eg2?3moI4LKhG1RIoI;k
      zR(9^*MkqfeXOWI?@z07&C`6+;+5U$r@?g~7SE`^9EI4NyQM);aP&a^Qu#OXmrWw+;
      zlBPWv*b`t#;?w$Wfug|f{7_}xnb%jXB(rC~MUS#+NW!T2av4Ypxp0F2N<hUQT%?#|
      z#`}b0TL~YvEx;jcCMAz-U*g(=Hh0Iv{PrdnHnpu7IES%hpxGDAY-pQwVY9(!1D12c
      z*sS054gt9-Qs|;gq;vOMa!U&|foU=yo+~V(8V~CeExI>_qva>Vv^VISDi|>EX(%41
      z@Cm688>Uf+QlLkXaIO#&z;q&UJDY-1!mg;(MFDCGS{6p8a!wV<G08a^8xR9TJDicC
      Q$ibXr>F{_rmktj70is)Xxc~qF
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif b/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..c2a2ad454db194e428a7b9da40f62d5376a17428
      GIT binary patch
      literal 769
      zcmb7?=`WiB0LI^D)(HC`v6*aD4AW#LGRb0Oi$t<fW)_L~Kx~mM4a>H~CP=nb%N%8n
      zy02ceuewTUUDeW|RaMp*TlLV6R$o=rQOY{@AME+?`}QQiCwU%4Jq)?`{5B8=ECT1T
      z+wH!7{<!M4+^W_x3X9mvt_8U*Jv?fkfX)#zho;^a)qkj<V5?d`5osSQsRa$~gqAMJ
      z;>zji$)-UA>D9({)xO1SJGLHK54Mat(}s4_unMiKjB85EHng*~!Ddt+?(c5uHG4ZI
      zsc>jP#5Y6w6Wj5!Y<hs+bU!o%27{ex{L}eAcpo{y03Z+uIIo>=0^oK*&D+R;Yh@ze
      z7vfi;q<Qcix+@`mxieE@%Hh|uvSI=oWth?&>FW{owiOfGqcB@XkwUZ0j?Km4{qjE-
      z6c!Z|O1!?5l~+^}tE#<g>*^aCo0?lZ$rLKBwT;dI+nLO(UEMvb-ad9elEWPw8Xg(t
      zx$y<#6T+{PQ@$ecjAT|iC%dxnP5yoH$I`OLFU5*drPiz>bidcu^@a^2v}rP3-`?4^
      z?Cl>M-Z(n8ot*x$0~Z|;ku35!-qAHSQN*GM3tW8AN#VWJNrHQD+6qXfO_zB^6eFVU
      z<cf)?cxIBg&kt7{lseNC#imOygk%_3#B7GlPJ-i{Jkb5%0xi-Rl|0kmE@#Bi&~@km
      z=3+-8JFQeO(6Q9>OjzupAb0*`W8}<a38zcJed8@^j^=hNN3twNrKHx3=VLE8BVz_x
      ztHMH8|4hMPuWq{BC%Pqu+_xsF3r<(fW@Gg-as&bSc({K<4n7S|lnxI-ORQ80JbZ*>
      zQVeE5Djt<<RtxaXp0SAh9i51HD`jqU$fBR8MUx&V^Y)=-cDj0w7e+8^gapqgW1~l|
      z26;z{Y>a0+Owme6r2OGio7DoTWqkhGKj0`0*1-*<$#uL5YH*kC8Z>wpCvYO~asp;G
      r-~A;>$wp)vkltB=c_?k6Zw*FUgrbAm;sB08O9+}m=}H3OFd*zN8L+JA
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif b/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..43a735f22c81d6d7d99c1ba9f034f38bfdd1a92b
      GIT binary patch
      literal 92
      zcmZ?wbhEHb<YM4sSj52a{`GSP28ON6=G?h*=KufyKsE#@{$v3&bU-9XEd#Tn27|Dp
      lx5hJt39I*7Y(09VtW<RR)W@1l^Cat@NFCPt>&D4o4FLHO9PR)B
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css b/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css
      new file mode 100644
      index 00000000..8e016b6a
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css
      @@ -0,0 +1,90 @@
      +/* Clearlooks 2 */
      +
      +/* Reset */
      +.clearlooks2, .clearlooks2 div, .clearlooks2 span, .clearlooks2 a {vertical-align:baseline; text-align:left; position:absolute; border:0; padding:0; margin:0; background:transparent; font-family:"Lucida Grande","Lucida Sans Unicode",Tahoma,Verdana; font-size:11px; color:#000; text-decoration:none; font-weight:normal; width:auto; height:auto; overflow:hidden; display:block}
      +
      +/* General */
      +.clearlooks2 {position:absolute; direction:ltr}
      +.clearlooks2 .mceWrapper {position:static}
      +.mceEventBlocker {position:fixed; left:0; top:0; background:url(img/horizontal.gif) no-repeat 0 -75px; width:100%; height:100%}
      +.clearlooks2 .mcePlaceHolder {border:1px solid #000; background:#888; top:0; left:0; opacity:0.5; -ms-filter:'alpha(opacity=50)'; filter:alpha(opacity=50)}
      +.clearlooks2_modalBlocker {position:fixed; left:0; top:0; width:100%; height:100%; background:#333; opacity:0.6; -ms-filter:'alpha(opacity=60)'; filter:alpha(opacity=60); display:none}
      +
      +/* Top */
      +.clearlooks2 .mceTop, .clearlooks2 .mceTop div {top:0; width:100%; height:30px}
      +.clearlooks2 .mceTop .mceLeft {width:6px; background:#666}
      +.clearlooks2 .mceTop .mceCenter {right:6px; width:100%; height:30px; background:#666; clip:rect(auto auto auto 12px)}
      +.clearlooks2 .mceTop .mceRight {right:0; width:6px; height:30px; background:#666}
      +.clearlooks2 .mceTop span {width:100%; text-align:center; vertical-align:middle; line-height:30px; font-weight:bold; font-size:10pt}
      +.clearlooks2 .mceFocus .mceTop .mceLeft {background:#666}
      +.clearlooks2 .mceFocus .mceTop .mceCenter {background:#666}
      +.clearlooks2 .mceFocus .mceTop .mceRight {background:#666}
      +.clearlooks2 .mceFocus .mceTop span {color:#FFF}
      +
      +/* Middle */
      +.clearlooks2 .mceMiddle, .clearlooks2 .mceMiddle div {top:0}
      +.clearlooks2 .mceMiddle {width:100%; height:100%; clip:rect(30px auto auto auto)}
      +.clearlooks2 .mceMiddle .mceLeft {left:0; width:5px; height:100%; background: #DEE4C5}
      +.clearlooks2 .mceMiddle span {top:30px; left:5px; width:100%; height:100%; background:#FFF}
      +.clearlooks2 .mceMiddle .mceRight {right:0; width:5px; height:100%; background:#DEE4C5}
      +
      +/* Bottom */
      +.clearlooks2 .mceBottom, .clearlooks2 .mceBottom div {height:6px}
      +.clearlooks2 .mceBottom {left:0; bottom:0; width:100%}
      +.clearlooks2 .mceBottom div {top:0}
      +.clearlooks2 .mceBottom .mceLeft {left:0; width:5px; background:url(img/corners.gif) -34px -6px}
      +.clearlooks2 .mceBottom .mceCenter {left:5px; width:100%; background:#DEE4C5}
      +.clearlooks2 .mceBottom .mceRight {right:0; width:5px; background: url(img/corners.gif) -34px 0}
      +.clearlooks2 .mceBottom span {display:none}
      +.clearlooks2 .mceStatusbar .mceBottom, .clearlooks2 .mceStatusbar .mceBottom div {height:30px}
      +.clearlooks2 .mceStatusbar .mceBottom .mceLeft {background:url(img/corners.gif) -29px 0}
      +.clearlooks2 .mceStatusbar .mceBottom .mceCenter {background:url(img/horizontal.gif) 0 -52px}
      +.clearlooks2 .mceStatusbar .mceBottom .mceRight {background:url(img/corners.gif) -24px 0}
      +.clearlooks2 .mceStatusbar .mceBottom span {display:block; left:7px; font-family:Arial, Verdana; font-size:11px; line-height:30px}
      +
      +/* Actions */
      +.clearlooks2 a {width:29px; height:16px; top:7px;}
      +.clearlooks2 .mceClose {right:6px; background:url(img/buttons.gif) -87px 0}
      +.clearlooks2 .mceMin {display:none; right:68px; background:url(img/buttons.gif) 0 0}
      +.clearlooks2 .mceMed {display:none; right:37px; background:url(img/buttons.gif) -29px 0}
      +.clearlooks2 .mceMax {display:none; right:37px; background:url(img/buttons.gif) -58px 0}
      +.clearlooks2 .mceMove {display:none;width:100%;cursor:move;background:url(img/corners.gif) no-repeat -100px -100px}
      +.clearlooks2 .mceMovable .mceMove {display:block}
      +.clearlooks2 .mceFocus .mceClose {right:6px; background:url(img/buttons.gif) -87px 0}
      +.clearlooks2 .mceFocus .mceMin {right:68px; background:url(img/buttons.gif) 0 0}
      +.clearlooks2 .mceFocus .mceMed {right:37px; background:url(img/buttons.gif) -29px 0}
      +.clearlooks2 .mceFocus .mceMax {right:37px; background:url(img/buttons.gif) -58px 0}
      +.clearlooks2 .mceFocus .mceClose:hover {right:6px; background:url(img/buttons.gif) -87px 0}
      +.clearlooks2 .mceFocus .mceClose:hover {right:6px; background:url(img/buttons.gif) -87px 0}
      +.clearlooks2 .mceFocus .mceMin:hover {right:68px; background:url(img/buttons.gif) 0 0}
      +.clearlooks2 .mceFocus .mceMed:hover {right:37px; background:url(img/buttons.gif) -29px 0}
      +.clearlooks2 .mceFocus .mceMax:hover {right:37px; background:url(img/buttons.gif) -58px 0}
      +
      +/* Resize */
      +.clearlooks2 .mceResize {top:auto; left:auto; display:none; width:1px; height:1px; background:#333}
      +.clearlooks2 .mceResizable .mceResize {display:block}
      +.clearlooks2 .mceResizable .mceMin, .clearlooks2 .mceMax {display:none}
      +.clearlooks2 .mceMinimizable .mceMin {display:block}
      +.clearlooks2 .mceMaximizable .mceMax {display:block}
      +.clearlooks2 .mceMaximized .mceMed {display:block}
      +.clearlooks2 .mceMaximized .mceMax {display:none}
      +.clearlooks2 a.mceResizeN {top:0; left:0; width:100%; cursor:n-resize}
      +.clearlooks2 a.mceResizeNW {top:0; left:0; cursor:nw-resize}
      +.clearlooks2 a.mceResizeNE {top:0; right:0; cursor:ne-resize}
      +.clearlooks2 a.mceResizeW {top:0; left:0; height:100%; cursor:w-resize;}
      +.clearlooks2 a.mceResizeE {top:0; right:0; height:100%; cursor:e-resize}
      +.clearlooks2 a.mceResizeS {bottom:0; left:0; width:100%; cursor:s-resize}
      +.clearlooks2 a.mceResizeSW {bottom:0; left:0; cursor:sw-resize}
      +.clearlooks2 a.mceResizeSE {bottom:0; right:0; cursor:se-resize}
      +
      +/* Alert/Confirm */
      +.clearlooks2 .mceButton {font-weight:bold; bottom:10px; width:80px; height:30px; background:url(img/button.gif); line-height:30px; vertical-align:middle; text-align:center; outline:0}
      +.clearlooks2 .mceMiddle .mceIcon {left:15px; top:35px; width:32px; height:32px}
      +.clearlooks2 .mceAlert .mceMiddle span, .clearlooks2 .mceConfirm .mceMiddle span {background:transparent;left:60px; top:35px; width:320px; height:50px; font-weight:bold; overflow:auto; white-space:normal}
      +.clearlooks2 a:hover {font-weight:bold;}
      +.clearlooks2 .mceAlert .mceMiddle, .clearlooks2 .mceConfirm .mceMiddle {background:#D6D7D5}
      +.clearlooks2 .mceAlert .mceOk {left:50%; top:auto; margin-left: -40px}
      +.clearlooks2 .mceAlert .mceIcon {background:url(img/alert.gif)}
      +.clearlooks2 .mceConfirm .mceOk {left:50%; top:auto; margin-left: -90px}
      +.clearlooks2 .mceConfirm .mceCancel {left:50%; top:auto}
      +.clearlooks2 .mceConfirm .mceIcon {background:url(img/confirm.gif)} 
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/template.htm b/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/template.htm
      new file mode 100644
      index 00000000..f9ec6421
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/plugins/inlinepopups/template.htm
      @@ -0,0 +1,387 @@
      +<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -->
      +<html xmlns="http://www.w3.org/1999/xhtml">
      +<head>
      +<title>Template for dialogs</title>
      +<link rel="stylesheet" type="text/css" href="skins/clearlooks2/window.css" />
      +</head>
      +<body>
      +
      +<div class="mceEditor">
      +	<div class="clearlooks2" style="width:400px; height:100px; left:10px;">
      +		<div class="mceWrapper">
      +			<div class="mceTop">
      +				<div class="mceLeft"></div>
      +				<div class="mceCenter"></div>
      +				<div class="mceRight"></div>
      +				<span>Blured</span>
      +			</div>
      +
      +			<div class="mceMiddle">
      +				<div class="mceLeft"></div>
      +				<span>Content</span>
      +				<div class="mceRight"></div>
      +			</div>
      +
      +			<div class="mceBottom">
      +				<div class="mceLeft"></div>
      +				<div class="mceCenter"></div>
      +				<div class="mceRight"></div>
      +				<span>Statusbar text.</span>
      +			</div>
      +
      +			<a class="mceMove" href="#"></a>
      +			<a class="mceMin" href="#"></a>
      +			<a class="mceMax" href="#"></a>
      +			<a class="mceMed" href="#"></a>
      +			<a class="mceClose" href="#"></a>
      +			<a class="mceResize mceResizeN" href="#"></a>
      +			<a class="mceResize mceResizeS" href="#"></a>
      +			<a class="mceResize mceResizeW" href="#"></a>
      +			<a class="mceResize mceResizeE" href="#"></a>
      +			<a class="mceResize mceResizeNW" href="#"></a>
      +			<a class="mceResize mceResizeNE" href="#"></a>
      +			<a class="mceResize mceResizeSW" href="#"></a>
      +			<a class="mceResize mceResizeSE" href="#"></a>
      +		</div>
      +	</div>
      +
      +	<div class="clearlooks2" style="width:400px; height:100px; left:420px;">
      +		<div class="mceWrapper mceMovable mceFocus">
      +			<div class="mceTop">
      +				<div class="mceLeft"></div>
      +				<div class="mceCenter"></div>
      +				<div class="mceRight"></div>
      +				<span>Focused</span>
      +			</div>
      +
      +			<div class="mceMiddle">
      +				<div class="mceLeft"></div>
      +				<span>Content</span>
      +				<div class="mceRight"></div>
      +			</div>
      +
      +			<div class="mceBottom">
      +				<div class="mceLeft"></div>
      +				<div class="mceCenter"></div>
      +				<div class="mceRight"></div>
      +				<span>Statusbar text.</span>
      +			</div>
      +
      +			<a class="mceMove" href="#"></a>
      +			<a class="mceMin" href="#"></a>
      +			<a class="mceMax" href="#"></a>
      +			<a class="mceMed" href="#"></a>
      +			<a class="mceClose" href="#"></a>
      +			<a class="mceResize mceResizeN" href="#"></a>
      +			<a class="mceResize mceResizeS" href="#"></a>
      +			<a class="mceResize mceResizeW" href="#"></a>
      +			<a class="mceResize mceResizeE" href="#"></a>
      +			<a class="mceResize mceResizeNW" href="#"></a>
      +			<a class="mceResize mceResizeNE" href="#"></a>
      +			<a class="mceResize mceResizeSW" href="#"></a>
      +			<a class="mceResize mceResizeSE" href="#"></a>
      +		</div>
      +	</div>
      +
      +	<div class="clearlooks2" style="width:400px; height:100px; left:10px; top:120px;">
      +		<div class="mceWrapper mceMovable mceFocus mceStatusbar">
      +			<div class="mceTop">
      +				<div class="mceLeft"></div>
      +				<div class="mceCenter"></div>
      +				<div class="mceRight"></div>
      +				<span>Statusbar</span>
      +			</div>
      +
      +			<div class="mceMiddle">
      +				<div class="mceLeft"></div>
      +				<span>Content</span>
      +				<div class="mceRight"></div>
      +			</div>
      +
      +			<div class="mceBottom">
      +				<div class="mceLeft"></div>
      +				<div class="mceCenter"></div>
      +				<div class="mceRight"></div>
      +				<span>Statusbar text.</span>
      +			</div>
      +
      +			<a class="mceMove" href="#"></a>
      +			<a class="mceMin" href="#"></a>
      +			<a class="mceMax" href="#"></a>
      +			<a class="mceMed" href="#"></a>
      +			<a class="mceClose" href="#"></a>
      +			<a class="mceResize mceResizeN" href="#"></a>
      +			<a class="mceResize mceResizeS" href="#"></a>
      +			<a class="mceResize mceResizeW" href="#"></a>
      +			<a class="mceResize mceResizeE" href="#"></a>
      +			<a class="mceResize mceResizeNW" href="#"></a>
      +			<a class="mceResize mceResizeNE" href="#"></a>
      +			<a class="mceResize mceResizeSW" href="#"></a>
      +			<a class="mceResize mceResizeSE" href="#"></a>
      +		</div>
      +	</div>
      +
      +	<div class="clearlooks2" style="width:400px; height:100px; left:420px; top:120px;">
      +		<div class="mceWrapper mceMovable mceFocus mceStatusbar mceResizable">
      +			<div class="mceTop">
      +				<div class="mceLeft"></div>
      +				<div class="mceCenter"></div>
      +				<div class="mceRight"></div>
      +				<span>Statusbar, Resizable</span>
      +			</div>
      +
      +			<div class="mceMiddle">
      +				<div class="mceLeft"></div>
      +				<span>Content</span>
      +				<div class="mceRight"></div>
      +			</div>
      +
      +			<div class="mceBottom">
      +				<div class="mceLeft"></div>
      +				<div class="mceCenter"></div>
      +				<div class="mceRight"></div>
      +				<span>Statusbar text.</span>
      +			</div>
      +
      +			<a class="mceMove" href="#"></a>
      +			<a class="mceMin" href="#"></a>
      +			<a class="mceMax" href="#"></a>
      +			<a class="mceMed" href="#"></a>
      +			<a class="mceClose" href="#"></a>
      +			<a class="mceResize mceResizeN" href="#"></a>
      +			<a class="mceResize mceResizeS" href="#"></a>
      +			<a class="mceResize mceResizeW" href="#"></a>
      +			<a class="mceResize mceResizeE" href="#"></a>
      +			<a class="mceResize mceResizeNW" href="#"></a>
      +			<a class="mceResize mceResizeNE" href="#"></a>
      +			<a class="mceResize mceResizeSW" href="#"></a>
      +			<a class="mceResize mceResizeSE" href="#"></a>
      +		</div>
      +	</div>
      +
      +	<div class="clearlooks2" style="width:400px; height:100px; left:10px; top:230px;">
      +		<div class="mceWrapper mceMovable mceFocus mceResizable mceMaximizable">
      +			<div class="mceTop">
      +				<div class="mceLeft"></div>
      +				<div class="mceCenter"></div>
      +				<div class="mceRight"></div>
      +				<span>Resizable, Maximizable</span>
      +			</div>
      +
      +			<div class="mceMiddle">
      +				<div class="mceLeft"></div>
      +				<span>Content</span>
      +				<div class="mceRight"></div>
      +			</div>
      +
      +			<div class="mceBottom">
      +				<div class="mceLeft"></div>
      +				<div class="mceCenter"></div>
      +				<div class="mceRight"></div>
      +				<span>Statusbar text.</span>
      +			</div>
      +
      +			<a class="mceMove" href="#"></a>
      +			<a class="mceMin" href="#"></a>
      +			<a class="mceMax" href="#"></a>
      +			<a class="mceMed" href="#"></a>
      +			<a class="mceClose" href="#"></a>
      +			<a class="mceResize mceResizeN" href="#"></a>
      +			<a class="mceResize mceResizeS" href="#"></a>
      +			<a class="mceResize mceResizeW" href="#"></a>
      +			<a class="mceResize mceResizeE" href="#"></a>
      +			<a class="mceResize mceResizeNW" href="#"></a>
      +			<a class="mceResize mceResizeNE" href="#"></a>
      +			<a class="mceResize mceResizeSW" href="#"></a>
      +			<a class="mceResize mceResizeSE" href="#"></a>
      +		</div>
      +	</div>
      +
      +	<div class="clearlooks2" style="width:400px; height:100px; left:420px; top:230px;">
      +		<div class="mceWrapper mceMovable mceStatusbar mceResizable mceMaximizable">
      +			<div class="mceTop">
      +				<div class="mceLeft"></div>
      +				<div class="mceCenter"></div>
      +				<div class="mceRight"></div>
      +				<span>Blurred, Maximizable, Statusbar, Resizable</span>
      +			</div>
      +
      +			<div class="mceMiddle">
      +				<div class="mceLeft"></div>
      +				<span>Content</span>
      +				<div class="mceRight"></div>
      +			</div>
      +
      +			<div class="mceBottom">
      +				<div class="mceLeft"></div>
      +				<div class="mceCenter"></div>
      +				<div class="mceRight"></div>
      +				<span>Statusbar text.</span>
      +			</div>
      +
      +			<a class="mceMove" href="#"></a>
      +			<a class="mceMin" href="#"></a>
      +			<a class="mceMax" href="#"></a>
      +			<a class="mceMed" href="#"></a>
      +			<a class="mceClose" href="#"></a>
      +			<a class="mceResize mceResizeN" href="#"></a>
      +			<a class="mceResize mceResizeS" href="#"></a>
      +			<a class="mceResize mceResizeW" href="#"></a>
      +			<a class="mceResize mceResizeE" href="#"></a>
      +			<a class="mceResize mceResizeNW" href="#"></a>
      +			<a class="mceResize mceResizeNE" href="#"></a>
      +			<a class="mceResize mceResizeSW" href="#"></a>
      +			<a class="mceResize mceResizeSE" href="#"></a>
      +		</div>
      +	</div>
      +
      +	<div class="clearlooks2" style="width:400px; height:100px; left:10px; top:340px;">
      +		<div class="mceWrapper mceMovable mceFocus mceResizable mceMaximized mceMinimizable mceMaximizable">
      +			<div class="mceTop">
      +				<div class="mceLeft"></div>
      +				<div class="mceCenter"></div>
      +				<div class="mceRight"></div>
      +				<span>Maximized, Maximizable, Minimizable</span>
      +			</div>
      +
      +			<div class="mceMiddle">
      +				<div class="mceLeft"></div>
      +				<span>Content</span>
      +				<div class="mceRight"></div>
      +			</div>
      +
      +			<div class="mceBottom">
      +				<div class="mceLeft"></div>
      +				<div class="mceCenter"></div>
      +				<div class="mceRight"></div>
      +				<span>Statusbar text.</span>
      +			</div>
      +
      +			<a class="mceMove" href="#"></a>
      +			<a class="mceMin" href="#"></a>
      +			<a class="mceMax" href="#"></a>
      +			<a class="mceMed" href="#"></a>
      +			<a class="mceClose" href="#"></a>
      +			<a class="mceResize mceResizeN" href="#"></a>
      +			<a class="mceResize mceResizeS" href="#"></a>
      +			<a class="mceResize mceResizeW" href="#"></a>
      +			<a class="mceResize mceResizeE" href="#"></a>
      +			<a class="mceResize mceResizeNW" href="#"></a>
      +			<a class="mceResize mceResizeNE" href="#"></a>
      +			<a class="mceResize mceResizeSW" href="#"></a>
      +			<a class="mceResize mceResizeSE" href="#"></a>
      +		</div>
      +	</div>
      +
      +	<div class="clearlooks2" style="width:400px; height:100px; left:420px; top:340px;">
      +		<div class="mceWrapper mceMovable mceStatusbar mceResizable mceMaximized mceMinimizable mceMaximizable">
      +			<div class="mceTop">
      +				<div class="mceLeft"></div>
      +				<div class="mceCenter"></div>
      +				<div class="mceRight"></div>
      +				<span>Blured</span>
      +			</div>
      +
      +			<div class="mceMiddle">
      +				<div class="mceLeft"></div>
      +				<span>Content</span>
      +				<div class="mceRight"></div>
      +			</div>
      +
      +			<div class="mceBottom">
      +				<div class="mceLeft"></div>
      +				<div class="mceCenter"></div>
      +				<div class="mceRight"></div>
      +				<span>Statusbar text.</span>
      +			</div>
      +
      +			<a class="mceMove" href="#"></a>
      +			<a class="mceMin" href="#"></a>
      +			<a class="mceMax" href="#"></a>
      +			<a class="mceMed" href="#"></a>
      +			<a class="mceClose" href="#"></a>
      +			<a class="mceResize mceResizeN" href="#"></a>
      +			<a class="mceResize mceResizeS" href="#"></a>
      +			<a class="mceResize mceResizeW" href="#"></a>
      +			<a class="mceResize mceResizeE" href="#"></a>
      +			<a class="mceResize mceResizeNW" href="#"></a>
      +			<a class="mceResize mceResizeNE" href="#"></a>
      +			<a class="mceResize mceResizeSW" href="#"></a>
      +			<a class="mceResize mceResizeSE" href="#"></a>
      +		</div>
      +	</div>
      +
      +	<div class="clearlooks2" style="width:400px; height:130px; left:10px; top:450px;">
      +		<div class="mceWrapper mceMovable mceFocus mceModal mceAlert">
      +			<div class="mceTop">
      +				<div class="mceLeft"></div>
      +				<div class="mceCenter"></div>
      +				<div class="mceRight"></div>
      +				<span>Alert</span>
      +			</div>
      +
      +			<div class="mceMiddle">
      +				<div class="mceLeft"></div>
      +				<span>
      +					This is a very long error message. This is a very long error message.
      +					This is a very long error message. This is a very long error message.
      +					This is a very long error message. This is a very long error message.
      +					This is a very long error message. This is a very long error message.
      +					This is a very long error message. This is a very long error message.
      +					This is a very long error message. This is a very long error message.
      +				</span>
      +				<div class="mceRight"></div>
      +				<div class="mceIcon"></div>
      +			</div>
      +
      +			<div class="mceBottom">
      +				<div class="mceLeft"></div>
      +				<div class="mceCenter"></div>
      +				<div class="mceRight"></div>
      +			</div>
      +
      +			<a class="mceMove" href="#"></a>
      +			<a class="mceButton mceOk" href="#">Ok</a>
      +			<a class="mceClose" href="#"></a>
      +		</div>
      +	</div>
      +
      +	<div class="clearlooks2" style="width:400px; height:130px; left:420px; top:450px;">
      +		<div class="mceWrapper mceMovable mceFocus mceModal mceConfirm">
      +			<div class="mceTop">
      +				<div class="mceLeft"></div>
      +				<div class="mceCenter"></div>
      +				<div class="mceRight"></div>
      +				<span>Confirm</span>
      +			</div>
      +
      +			<div class="mceMiddle">
      +				<div class="mceLeft"></div>
      +				<span>
      +					This is a very long error message. This is a very long error message.
      +					This is a very long error message. This is a very long error message.
      +					This is a very long error message. This is a very long error message.
      +					This is a very long error message. This is a very long error message.
      +					This is a very long error message. This is a very long error message.
      +					This is a very long error message. This is a very long error message.
      +					</span>
      +				<div class="mceRight"></div>
      +				<div class="mceIcon"></div>
      +			</div>
      +
      +			<div class="mceBottom">
      +				<div class="mceLeft"></div>
      +				<div class="mceCenter"></div>
      +				<div class="mceRight"></div>
      +			</div>
      +
      +			<a class="mceMove" href="#"></a>
      +			<a class="mceButton mceOk" href="#">Ok</a>
      +			<a class="mceButton mceCancel" href="#">Cancel</a>
      +			<a class="mceClose" href="#"></a>
      +		</div>
      +	</div>
      +</div>
      +
      +</body>
      +</html>
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/media/css/content.css b/usr/plugins/TinyMCE/tiny_mce/plugins/media/css/content.css
      new file mode 100644
      index 00000000..1bf6a758
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/plugins/media/css/content.css
      @@ -0,0 +1,6 @@
      +.mceItemFlash, .mceItemShockWave, .mceItemQuickTime, .mceItemWindowsMedia, .mceItemRealMedia {border:1px dotted #cc0000; background-position:center; background-repeat:no-repeat; background-color:#ffffcc;}
      +.mceItemShockWave {background-image: url(../img/shockwave.gif);}
      +.mceItemFlash {background-image:url(../img/flash.gif);}
      +.mceItemQuickTime {background-image:url(../img/quicktime.gif);}
      +.mceItemWindowsMedia {background-image:url(../img/windowsmedia.gif);}
      +.mceItemRealMedia {background-image:url(../img/realmedia.gif);}
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/media/css/media.css b/usr/plugins/TinyMCE/tiny_mce/plugins/media/css/media.css
      new file mode 100644
      index 00000000..fdfb78ec
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/plugins/media/css/media.css
      @@ -0,0 +1,16 @@
      +#id, #name, #hspace, #vspace, #class_name, #align {	width: 100px }
      +#hspace, #vspace { width: 50px }
      +#flash_quality, #flash_align, #flash_scale, #flash_salign, #flash_wmode { width: 100px }
      +#flash_base, #flash_flashvars { width: 240px }
      +#width, #height { width: 40px }
      +#src, #media_type { width: 250px }
      +#class { width: 120px }
      +#prev { margin: 0; border: 1px solid black; width: 360px; height: 230px; overflow: auto }
      +.panel_wrapper div.current { height: 420px; overflow: auto }
      +#flash_options, #shockwave_options, #qt_options, #wmp_options, #rmp_options { display: none }
      +.mceAddSelectValue { background-color: #DDDDDD }
      +#qt_starttime, #qt_endtime, #qt_fov, #qt_href, #qt_moveid, #qt_moviename, #qt_node, #qt_pan, #qt_qtsrc, #qt_qtsrcchokespeed, #qt_target, #qt_tilt, #qt_urlsubstituten, #qt_volume { width: 70px }
      +#wmp_balance, #wmp_baseurl, #wmp_captioningid, #wmp_currentmarker, #wmp_currentposition, #wmp_defaultframe, #wmp_playcount, #wmp_rate, #wmp_uimode, #wmp_volume { width: 70px }
      +#rmp_console, #rmp_numloop, #rmp_controls, #rmp_scriptcallbacks { width: 70px }
      +#shockwave_swvolume, #shockwave_swframe, #shockwave_swurl, #shockwave_swstretchvalign, #shockwave_swstretchhalign, #shockwave_swstretchstyle { width: 90px }
      +#qt_qtsrc { width: 200px }
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/media/editor_plugin.js b/usr/plugins/TinyMCE/tiny_mce/plugins/media/editor_plugin.js
      new file mode 100644
      index 00000000..2889be5a
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/plugins/media/editor_plugin.js
      @@ -0,0 +1 @@
      +(function(){var a=tinymce.each;tinymce.create("tinymce.plugins.MediaPlugin",{init:function(b,c){var e=this;e.editor=b;e.url=c;function f(g){return/^(mceItemFlash|mceItemShockWave|mceItemWindowsMedia|mceItemQuickTime|mceItemRealMedia)$/.test(g.className)}b.onPreInit.add(function(){b.serializer.addRules("param[name|value|_mce_value]")});b.addCommand("mceMedia",function(){b.windowManager.open({file:c+"/media.htm",width:430+parseInt(b.getLang("media.delta_width",0)),height:470+parseInt(b.getLang("media.delta_height",0)),inline:1},{plugin_url:c})});b.addButton("media",{title:"media.desc",cmd:"mceMedia"});b.onNodeChange.add(function(h,g,i){g.setActive("media",i.nodeName=="IMG"&&f(i))});b.onInit.add(function(){var g={mceItemFlash:"flash",mceItemShockWave:"shockwave",mceItemWindowsMedia:"windowsmedia",mceItemQuickTime:"quicktime",mceItemRealMedia:"realmedia"};b.selection.onSetContent.add(function(){e._spansToImgs(b.getBody())});b.selection.onBeforeSetContent.add(e._objectsToSpans,e);if(b.settings.content_css!==false){b.dom.loadCSS(c+"/css/content.css")}if(b.theme&&b.theme.onResolveName){b.theme.onResolveName.add(function(h,i){if(i.name=="img"){a(g,function(l,j){if(b.dom.hasClass(i.node,j)){i.name=l;i.title=b.dom.getAttrib(i.node,"title");return false}})}})}if(b&&b.plugins.contextmenu){b.plugins.contextmenu.onContextMenu.add(function(i,h,j){if(j.nodeName=="IMG"&&/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(j.className)){h.add({title:"media.edit",icon:"media",cmd:"mceMedia"})}})}});b.onBeforeSetContent.add(e._objectsToSpans,e);b.onSetContent.add(function(){e._spansToImgs(b.getBody())});b.onPreProcess.add(function(g,i){var h=g.dom;if(i.set){e._spansToImgs(i.node);a(h.select("IMG",i.node),function(k){var j;if(f(k)){j=e._parse(k.title);h.setAttrib(k,"width",h.getAttrib(k,"width",j.width||100));h.setAttrib(k,"height",h.getAttrib(k,"height",j.height||100))}})}if(i.get){a(h.select("IMG",i.node),function(m){var l,j,k;if(g.getParam("media_use_script")){if(f(m)){m.className=m.className.replace(/mceItem/g,"mceTemp")}return}switch(m.className){case"mceItemFlash":l="d27cdb6e-ae6d-11cf-96b8-444553540000";j="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0";k="application/x-shockwave-flash";break;case"mceItemShockWave":l="166b1bca-3f9c-11cf-8075-444553540000";j="http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0";k="application/x-director";break;case"mceItemWindowsMedia":l=g.getParam("media_wmp6_compatible")?"05589fa1-c356-11ce-bf01-00aa0055595a":"6bf52a52-394a-11d3-b153-00c04f79faa6";j="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701";k="application/x-mplayer2";break;case"mceItemQuickTime":l="02bf25d5-8c17-4b23-bc80-d3488abddc6b";j="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0";k="video/quicktime";break;case"mceItemRealMedia":l="cfcdaa03-8be4-11cf-b84b-0020afbbccfa";j="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0";k="audio/x-pn-realaudio-plugin";break}if(l){h.replace(e._buildObj({classid:l,codebase:j,type:k},m),m)}})}});b.onPostProcess.add(function(g,h){h.content=h.content.replace(/_mce_value=/g,"value=")});function d(g,h){h=new RegExp(h+'="([^"]+)"',"g").exec(g);return h?b.dom.decode(h[1]):""}b.onPostProcess.add(function(g,h){if(g.getParam("media_use_script")){h.content=h.content.replace(/<img[^>]+>/g,function(j){var i=d(j,"class");if(/^(mceTempFlash|mceTempShockWave|mceTempWindowsMedia|mceTempQuickTime|mceTempRealMedia)$/.test(i)){at=e._parse(d(j,"title"));at.width=d(j,"width");at.height=d(j,"height");j='<script type="text/javascript">write'+i.substring(7)+"({"+e._serialize(at)+"});<\/script>"}return j})}})},getInfo:function(){return{longname:"Media",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_objectsToSpans:function(b,e){var c=this,d=e.content;d=d.replace(/<script[^>]*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi,function(g,f,i){var h=c._parse(i);return'<img class="mceItem'+f+'" title="'+b.dom.encode(i)+'" src="'+c.url+'/img/trans.gif" width="'+h.width+'" height="'+h.height+'" />'});d=d.replace(/<object([^>]*)>/gi,'<span class="mceItemObject" $1>');d=d.replace(/<embed([^>]*)\/?>/gi,'<span class="mceItemEmbed" $1></span>');d=d.replace(/<embed([^>]*)>/gi,'<span class="mceItemEmbed" $1>');d=d.replace(/<\/(object)([^>]*)>/gi,"</span>");d=d.replace(/<\/embed>/gi,"");d=d.replace(/<param([^>]*)>/gi,function(g,f){return"<span "+f.replace(/value=/gi,"_mce_value=")+' class="mceItemParam"></span>'});d=d.replace(/\/ class=\"mceItemParam\"><\/span>/gi,'class="mceItemParam"></span>');e.content=d},_buildObj:function(g,h){var d,c=this.editor,f=c.dom,e=this._parse(h.title),b;b=c.getParam("media_strict",true)&&g.type=="application/x-shockwave-flash";e.width=g.width=f.getAttrib(h,"width")||100;e.height=g.height=f.getAttrib(h,"height")||100;if(e.src){e.src=c.convertURL(e.src,"src",h)}if(b){d=f.create("span",{id:e.id,mce_name:"object",type:"application/x-shockwave-flash",data:e.src,style:f.getAttrib(h,"style"),width:g.width,height:g.height})}else{d=f.create("span",{id:e.id,mce_name:"object",classid:"clsid:"+g.classid,style:f.getAttrib(h,"style"),codebase:g.codebase,width:g.width,height:g.height})}a(e,function(j,i){if(!/^(width|height|codebase|classid|id|_cx|_cy)$/.test(i)){if(g.type=="application/x-mplayer2"&&i=="src"&&!e.url){i="url"}if(j){f.add(d,"span",{mce_name:"param",name:i,_mce_value:j})}}});if(!b){f.add(d,"span",tinymce.extend({mce_name:"embed",type:g.type,style:f.getAttrib(h,"style")},e))}return d},_spansToImgs:function(e){var d=this,f=d.editor.dom,b,c;a(f.select("span",e),function(g){if(f.getAttrib(g,"class")=="mceItemObject"){c=f.getAttrib(g,"classid").toLowerCase().replace(/\s+/g,"");switch(c){case"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000":f.replace(d._createImg("mceItemFlash",g),g);break;case"clsid:166b1bca-3f9c-11cf-8075-444553540000":f.replace(d._createImg("mceItemShockWave",g),g);break;case"clsid:6bf52a52-394a-11d3-b153-00c04f79faa6":case"clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95":case"clsid:05589fa1-c356-11ce-bf01-00aa0055595a":f.replace(d._createImg("mceItemWindowsMedia",g),g);break;case"clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b":f.replace(d._createImg("mceItemQuickTime",g),g);break;case"clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa":f.replace(d._createImg("mceItemRealMedia",g),g);break;default:f.replace(d._createImg("mceItemFlash",g),g)}return}if(f.getAttrib(g,"class")=="mceItemEmbed"){switch(f.getAttrib(g,"type")){case"application/x-shockwave-flash":f.replace(d._createImg("mceItemFlash",g),g);break;case"application/x-director":f.replace(d._createImg("mceItemShockWave",g),g);break;case"application/x-mplayer2":f.replace(d._createImg("mceItemWindowsMedia",g),g);break;case"video/quicktime":f.replace(d._createImg("mceItemQuickTime",g),g);break;case"audio/x-pn-realaudio-plugin":f.replace(d._createImg("mceItemRealMedia",g),g);break;default:f.replace(d._createImg("mceItemFlash",g),g)}}})},_createImg:function(c,h){var b,g=this.editor.dom,f={},e="",d;d=["id","name","width","height","bgcolor","align","flashvars","src","wmode","allowfullscreen","quality","data"];b=g.create("img",{src:this.url+"/img/trans.gif",width:g.getAttrib(h,"width")||100,height:g.getAttrib(h,"height")||100,style:g.getAttrib(h,"style"),"class":c});a(d,function(i){var j=g.getAttrib(h,i);if(j){f[i]=j}});a(g.select("span",h),function(i){if(g.hasClass(i,"mceItemParam")){f[g.getAttrib(i,"name")]=g.getAttrib(i,"_mce_value")}});if(f.movie){f.src=f.movie;delete f.movie}if(!f.src){f.src=f.data;delete f.data}h=g.select(".mceItemEmbed",h)[0];if(h){a(d,function(i){var j=g.getAttrib(h,i);if(j&&!f[i]){f[i]=j}})}delete f.width;delete f.height;b.title=this._serialize(f);return b},_parse:function(b){return tinymce.util.JSON.parse("{"+b+"}")},_serialize:function(b){return tinymce.util.JSON.serialize(b).replace(/[{}]/g,"")}});tinymce.PluginManager.add("media",tinymce.plugins.MediaPlugin)})();
      \ No newline at end of file
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/media/img/flash.gif b/usr/plugins/TinyMCE/tiny_mce/plugins/media/img/flash.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..cb192e6ceda8d19ad8e7d08dd1cfde0aa72ead2a
      GIT binary patch
      literal 241
      zcmV<N01p30Nk%w1VH5xq0K*9Y0w_vuilWKS*;Z<L?e6iex5E`&f8F2Yf{&g3{rv|x
      zTAiq{x5LtEeU6HouK)l5A^8LW000jFEC2ui02BZe000D@@X1N5y*NLz+8E73XoTQ2
      zPEnkWFj@rD6vAN(MaR69(A0#W001z^1QkN-Ku9DA3WdRNF!3IR2Gf~vNCURRjDi4i
      ziw2sFfuQ^jTm~SjAlw@6+L>OzlLa+Za}7>m0&NpCfJ0FQc3~<M2Q3YA3WR}G4hIzs
      r9SQ&qC1C^&3>F7DE)S%o1)Qi1n@vxX46qnD4hRS-NE*Pw!4UvE=#^N(
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/media/img/flv_player.swf b/usr/plugins/TinyMCE/tiny_mce/plugins/media/img/flv_player.swf
      new file mode 100644
      index 0000000000000000000000000000000000000000..042c2ab969e98a6fdbe08848c4a73bd2c41de906
      GIT binary patch
      literal 11668
      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
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/media/img/quicktime.gif b/usr/plugins/TinyMCE/tiny_mce/plugins/media/img/quicktime.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..3b0499145b16138249f653a1a3f2c80230fb292c
      GIT binary patch
      literal 303
      zcmV+~0nq+ONk%w1VGsZi0K^{vH>m7Qv+~s9^fsC5ZpZP=*zu3F=Jxpf8k_5u%JNv6
      z=md-84VLU4w)kSE=yI&-yw>b=v+SqE?+kq47pC+YrR?bJ^yu>Zyvpn;hTp*6^mM!O
      zu+8$^=JX7b<p2NwA^8LW0018VEC2ui01yBW000H7;3tYl0b#{4u3u+7TeNM4p{`tp
      zAPhzE1BGA&nJgF$f-(Sr05YA=A+taLG^4^p09hzLl7$Bm6=@Mn&qSa&Zn6$^2jE#4
      z26c|e5)VWpbq{z8dLI`71Q#L?9t;r<3?2?62RBoV2@(h%84xTV1|E$a2Lo0L5*8vZ
      z3Of!e8b1IJ4>b<~J01ZTA{q@86#&8&6~H`Ss{{?p%K!-p%L6P2TpFYz90?pD06UU#
      BbnE~C
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/media/img/realmedia.gif b/usr/plugins/TinyMCE/tiny_mce/plugins/media/img/realmedia.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..fdfe0b9ac05869ae845fdd828eaad97cc0c69dbc
      GIT binary patch
      literal 439
      zcmV;o0Z9HwNk%w1VI=?(0K^{vQcz8xz}f&njBB06v9GQ`Jv%NdDHCI&z`wqZw$(Lw
      zuFTBL!Pe#<92tv>h)9OE1Xh}vnVEHSaeb-GByg#tqM_B*)YRkdSdqTu<Kq($4eIgt
      z07{c)W@Z2Y0RR90A^8LW0018VEC2ui03`qt000I5;3tmX6%3D}JVU~ea4d`4L_vbU
      z?R!oQuNiDZ90d+Lh@ur}CQvxRV<Qx03Jr;9kQ`iu8)s06@OUDh#O^TuSUR0br;y1w
      z00jxcDls$+9Rwc|9vTZ9NC#ge4rUr200@t8W`Y171r7xs4H=gP8w@)SF#sAG4s`||
      z1`!brkZu*Tn+6N39Ur0`7(=T7A`7Pl003~V4I0GBk&kGI90yb*k{%9LupJo$4h|NN
      zbOg?g8W|#L917Eeg?l0d$&Vfq8<!de2B!p<1q2IQYbH?1u;3qw4G1a_F!zptg$xJ|
      zEkIx)q7e!?4qyntfXKQ4DFjvllRyE792_7taG3BR07ec2){PXxV8R0m2M#27utPzc
      hnLsyCNWv1RQ6oJU9W}ZE0)zxhqYhA@G%AS@06S<cl~n)$
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/media/img/shockwave.gif b/usr/plugins/TinyMCE/tiny_mce/plugins/media/img/shockwave.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..5f235dfc7363bd4957b5fe352e16a7eee9a38574
      GIT binary patch
      literal 387
      zcmZ?wbhEHb6lD-#xXJ(m|AF9|(f@B(e|&xQ_v6XWFR%Td$?$)n^p7RFzqSScKhyN<
      z>ipLaF8n=^^LJP4|1^gG<ubn(XZ%`U^Z)3aPnY-pY_a}vWYNbnTmMHg{GXY2256v)
      z%70_yt9p8O%+2rR<lL>Rdo_Rl+a*grZQ1hw@Zo1ikN$oB{QbRq&z?QIckdq1a<D7N
      zBou$LFfuS`Gw6WygZ#w6w%~wh;|49Meh=kFMGvdVOm2@oW4YKwpJ#4uH4^E#y1?Ur
      zgw@h>E3;Fq_(WV>Kc7gjQtQh+9OrtFhn-)LUqD<|MOIl_!(Ed#pPRE;S)g;ew3>pd
      zn`Wa(lc2DGa)peFw3f88dp-|`@*)AXj;@(<N*-E#9KvFYwUjlLt5@ypo2MnDrKY8=
      g>8hwDr|7Sxsp;&YxjN*Y{PBB!TIU|!b7Zgv0OaG5)&Kwi
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/media/img/trans.gif b/usr/plugins/TinyMCE/tiny_mce/plugins/media/img/trans.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..388486517fa8da13ebd150e8f65d5096c3e10c3a
      GIT binary patch
      literal 43
      ncmZ?wbhEHbWMp7un7{x9ia%KxMSyG_5FaGNz{KRj$Y2csb)f_x
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/media/img/windowsmedia.gif b/usr/plugins/TinyMCE/tiny_mce/plugins/media/img/windowsmedia.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..ab50f2d887a0843b116ef598e5a005e5601d18d0
      GIT binary patch
      literal 415
      zcmV;Q0bu?|Nk%w1VGjTg0M$PL`E^qkEu+z?1&N?x_*pRg{rx~kg!#|I<>uyug^O^t
      z0hZGrt*x!>$1C!zn`W5@`ts6_uMW)2%<0NUEKIo?SIPPE=}U0}7Z(?JcX!y=*;bF<
      zCWz-=h7+2ao9)(dOHM;+X=xs9)%!~xc&ICMZdRYdUQ2$^@9y(6X3NCIz{cM7f^Z=Q
      z1_tQ95kgl8b%R%OiYTIo7LSdE^<g{S%f{2(!x(nqRGjHZr0IW^!yX<Ufq!q~!#RbG
      zsQ>@}A^8LW002J#EC2ui01p5U000KOz@O0K01zUifeIyT9%!RzMDgehG|mwLz+Eh;
      z7Z~<O+d66*jm@O!TxJNz2;i`UR0tHx^tgZ+0CP1KAR!ql1qdV^FA0GF8iXJ_Eg=Xd
      zF)utP961Ptlsgg#A3Xw_HykS#I~WWS1r`&g89Eg=I4CoS1qB}yE;0!k6cr*HE4>iE
      zrX?OfJ^>XeDJK)xJuWOB3_l1N0Ra>g4Gk^=ED0V6LI?>4;Q|6OB{LplLMRLg8U5-E
      J?0y6R06W6!pgRBn
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/media/js/embed.js b/usr/plugins/TinyMCE/tiny_mce/plugins/media/js/embed.js
      new file mode 100644
      index 00000000..f8dc8105
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/plugins/media/js/embed.js
      @@ -0,0 +1,73 @@
      +/**
      + * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose.
      + */
      +
      +function writeFlash(p) {
      +	writeEmbed(
      +		'D27CDB6E-AE6D-11cf-96B8-444553540000',
      +		'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
      +		'application/x-shockwave-flash',
      +		p
      +	);
      +}
      +
      +function writeShockWave(p) {
      +	writeEmbed(
      +	'166B1BCA-3F9C-11CF-8075-444553540000',
      +	'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',
      +	'application/x-director',
      +		p
      +	);
      +}
      +
      +function writeQuickTime(p) {
      +	writeEmbed(
      +		'02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
      +		'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',
      +		'video/quicktime',
      +		p
      +	);
      +}
      +
      +function writeRealMedia(p) {
      +	writeEmbed(
      +		'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',
      +		'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
      +		'audio/x-pn-realaudio-plugin',
      +		p
      +	);
      +}
      +
      +function writeWindowsMedia(p) {
      +	p.url = p.src;
      +	writeEmbed(
      +		'6BF52A52-394A-11D3-B153-00C04F79FAA6',
      +		'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',
      +		'application/x-mplayer2',
      +		p
      +	);
      +}
      +
      +function writeEmbed(cls, cb, mt, p) {
      +	var h = '', n;
      +
      +	h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';
      +	h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';
      +	h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';
      +	h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';
      +	h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';
      +	h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';
      +	h += '>';
      +
      +	for (n in p)
      +		h += '<param name="' + n + '" value="' + p[n] + '">';
      +
      +	h += '<embed type="' + mt + '"';
      +
      +	for (n in p)
      +		h += n + '="' + p[n] + '" ';
      +
      +	h += '></embed></object>';
      +
      +	document.write(h);
      +}
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/media/js/media.js b/usr/plugins/TinyMCE/tiny_mce/plugins/media/js/media.js
      new file mode 100644
      index 00000000..86cfa985
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/plugins/media/js/media.js
      @@ -0,0 +1,630 @@
      +tinyMCEPopup.requireLangPack();
      +
      +var oldWidth, oldHeight, ed, url;
      +
      +if (url = tinyMCEPopup.getParam("media_external_list_url"))
      +	document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
      +
      +function init() {
      +	var pl = "", f, val;
      +	var type = "flash", fe, i;
      +
      +	ed = tinyMCEPopup.editor;
      +
      +	tinyMCEPopup.resizeToInnerSize();
      +	f = document.forms[0]
      +
      +	fe = ed.selection.getNode();
      +	if (/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(ed.dom.getAttrib(fe, 'class'))) {
      +		pl = fe.title;
      +
      +		switch (ed.dom.getAttrib(fe, 'class')) {
      +			case 'mceItemFlash':
      +				type = 'flash';
      +				break;
      +
      +			case 'mceItemFlashVideo':
      +				type = 'flv';
      +				break;
      +
      +			case 'mceItemShockWave':
      +				type = 'shockwave';
      +				break;
      +
      +			case 'mceItemWindowsMedia':
      +				type = 'wmp';
      +				break;
      +
      +			case 'mceItemQuickTime':
      +				type = 'qt';
      +				break;
      +
      +			case 'mceItemRealMedia':
      +				type = 'rmp';
      +				break;
      +		}
      +
      +		document.forms[0].insert.value = ed.getLang('update', 'Insert', true); 
      +	}
      +
      +	document.getElementById('filebrowsercontainer').innerHTML = getBrowserHTML('filebrowser','src','media','media');
      +	document.getElementById('qtsrcfilebrowsercontainer').innerHTML = getBrowserHTML('qtsrcfilebrowser','qt_qtsrc','media','media');
      +	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
      +
      +	var html = getMediaListHTML('medialist','src','media','media');
      +	if (html == "")
      +		document.getElementById("linklistrow").style.display = 'none';
      +	else
      +		document.getElementById("linklistcontainer").innerHTML = html;
      +
      +	// Resize some elements
      +	if (isVisible('filebrowser'))
      +		document.getElementById('src').style.width = '230px';
      +
      +	// Setup form
      +	if (pl != "") {
      +		pl = tinyMCEPopup.editor.plugins.media._parse(pl);
      +
      +		switch (type) {
      +			case "flash":
      +				setBool(pl, 'flash', 'play');
      +				setBool(pl, 'flash', 'loop');
      +				setBool(pl, 'flash', 'menu');
      +				setBool(pl, 'flash', 'swliveconnect');
      +				setStr(pl, 'flash', 'quality');
      +				setStr(pl, 'flash', 'scale');
      +				setStr(pl, 'flash', 'salign');
      +				setStr(pl, 'flash', 'wmode');
      +				setStr(pl, 'flash', 'base');
      +				setStr(pl, 'flash', 'flashvars');
      +			break;
      +
      +			case "qt":
      +				setBool(pl, 'qt', 'loop');
      +				setBool(pl, 'qt', 'autoplay');
      +				setBool(pl, 'qt', 'cache');
      +				setBool(pl, 'qt', 'controller');
      +				setBool(pl, 'qt', 'correction');
      +				setBool(pl, 'qt', 'enablejavascript');
      +				setBool(pl, 'qt', 'kioskmode');
      +				setBool(pl, 'qt', 'autohref');
      +				setBool(pl, 'qt', 'playeveryframe');
      +				setBool(pl, 'qt', 'tarsetcache');
      +				setStr(pl, 'qt', 'scale');
      +				setStr(pl, 'qt', 'starttime');
      +				setStr(pl, 'qt', 'endtime');
      +				setStr(pl, 'qt', 'tarset');
      +				setStr(pl, 'qt', 'qtsrcchokespeed');
      +				setStr(pl, 'qt', 'volume');
      +				setStr(pl, 'qt', 'qtsrc');
      +			break;
      +
      +			case "shockwave":
      +				setBool(pl, 'shockwave', 'sound');
      +				setBool(pl, 'shockwave', 'progress');
      +				setBool(pl, 'shockwave', 'autostart');
      +				setBool(pl, 'shockwave', 'swliveconnect');
      +				setStr(pl, 'shockwave', 'swvolume');
      +				setStr(pl, 'shockwave', 'swstretchstyle');
      +				setStr(pl, 'shockwave', 'swstretchhalign');
      +				setStr(pl, 'shockwave', 'swstretchvalign');
      +			break;
      +
      +			case "wmp":
      +				setBool(pl, 'wmp', 'autostart');
      +				setBool(pl, 'wmp', 'enabled');
      +				setBool(pl, 'wmp', 'enablecontextmenu');
      +				setBool(pl, 'wmp', 'fullscreen');
      +				setBool(pl, 'wmp', 'invokeurls');
      +				setBool(pl, 'wmp', 'mute');
      +				setBool(pl, 'wmp', 'stretchtofit');
      +				setBool(pl, 'wmp', 'windowlessvideo');
      +				setStr(pl, 'wmp', 'balance');
      +				setStr(pl, 'wmp', 'baseurl');
      +				setStr(pl, 'wmp', 'captioningid');
      +				setStr(pl, 'wmp', 'currentmarker');
      +				setStr(pl, 'wmp', 'currentposition');
      +				setStr(pl, 'wmp', 'defaultframe');
      +				setStr(pl, 'wmp', 'playcount');
      +				setStr(pl, 'wmp', 'rate');
      +				setStr(pl, 'wmp', 'uimode');
      +				setStr(pl, 'wmp', 'volume');
      +			break;
      +
      +			case "rmp":
      +				setBool(pl, 'rmp', 'autostart');
      +				setBool(pl, 'rmp', 'loop');
      +				setBool(pl, 'rmp', 'autogotourl');
      +				setBool(pl, 'rmp', 'center');
      +				setBool(pl, 'rmp', 'imagestatus');
      +				setBool(pl, 'rmp', 'maintainaspect');
      +				setBool(pl, 'rmp', 'nojava');
      +				setBool(pl, 'rmp', 'prefetch');
      +				setBool(pl, 'rmp', 'shuffle');
      +				setStr(pl, 'rmp', 'console');
      +				setStr(pl, 'rmp', 'controls');
      +				setStr(pl, 'rmp', 'numloop');
      +				setStr(pl, 'rmp', 'scriptcallbacks');
      +			break;
      +		}
      +
      +		setStr(pl, null, 'src');
      +		setStr(pl, null, 'id');
      +		setStr(pl, null, 'name');
      +		setStr(pl, null, 'vspace');
      +		setStr(pl, null, 'hspace');
      +		setStr(pl, null, 'bgcolor');
      +		setStr(pl, null, 'align');
      +		setStr(pl, null, 'width');
      +		setStr(pl, null, 'height');
      +
      +		if ((val = ed.dom.getAttrib(fe, "width")) != "")
      +			pl.width = f.width.value = val;
      +
      +		if ((val = ed.dom.getAttrib(fe, "height")) != "")
      +			pl.height = f.height.value = val;
      +
      +		oldWidth = pl.width ? parseInt(pl.width) : 0;
      +		oldHeight = pl.height ? parseInt(pl.height) : 0;
      +	} else
      +		oldWidth = oldHeight = 0;
      +
      +	selectByValue(f, 'media_type', type);
      +	changedType(type);
      +	updateColor('bgcolor_pick', 'bgcolor');
      +
      +	TinyMCE_EditableSelects.init();
      +	generatePreview();
      +}
      +
      +function insertMedia() {
      +	var fe, f = document.forms[0], h;
      +
      +	tinyMCEPopup.restoreSelection();
      +
      +	if (!AutoValidator.validate(f)) {
      +		tinyMCEPopup.alert(ed.getLang('invalid_data'));
      +		return false;
      +	}
      +
      +	f.width.value = f.width.value == "" ? 100 : f.width.value;
      +	f.height.value = f.height.value == "" ? 100 : f.height.value;
      +
      +	fe = ed.selection.getNode();
      +	if (fe != null && /mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(ed.dom.getAttrib(fe, 'class'))) {
      +		switch (f.media_type.options[f.media_type.selectedIndex].value) {
      +			case "flash":
      +				fe.className = "mceItemFlash";
      +				break;
      +
      +			case "flv":
      +				fe.className = "mceItemFlashVideo";
      +				break;
      +
      +			case "shockwave":
      +				fe.className = "mceItemShockWave";
      +				break;
      +
      +			case "qt":
      +				fe.className = "mceItemQuickTime";
      +				break;
      +
      +			case "wmp":
      +				fe.className = "mceItemWindowsMedia";
      +				break;
      +
      +			case "rmp":
      +				fe.className = "mceItemRealMedia";
      +				break;
      +		}
      +
      +		if (fe.width != f.width.value || fe.height != f.height.value)
      +			ed.execCommand('mceRepaint');
      +
      +		fe.title = serializeParameters();
      +		fe.width = f.width.value;
      +		fe.height = f.height.value;
      +		fe.style.width = f.width.value + (f.width.value.indexOf('%') == -1 ? 'px' : '');
      +		fe.style.height = f.height.value + (f.height.value.indexOf('%') == -1 ? 'px' : '');
      +		fe.align = f.align.options[f.align.selectedIndex].value;
      +	} else {
      +		h = '<img src="' + tinyMCEPopup.getWindowArg("plugin_url") + '/img/trans.gif"' ;
      +
      +		switch (f.media_type.options[f.media_type.selectedIndex].value) {
      +			case "flash":
      +				h += ' class="mceItemFlash"';
      +				break;
      +
      +			case "flv":
      +				h += ' class="mceItemFlashVideo"';
      +				break;
      +
      +			case "shockwave":
      +				h += ' class="mceItemShockWave"';
      +				break;
      +
      +			case "qt":
      +				h += ' class="mceItemQuickTime"';
      +				break;
      +
      +			case "wmp":
      +				h += ' class="mceItemWindowsMedia"';
      +				break;
      +
      +			case "rmp":
      +				h += ' class="mceItemRealMedia"';
      +				break;
      +		}
      +
      +		h += ' title="' + serializeParameters() + '"';
      +		h += ' width="' + f.width.value + '"';
      +		h += ' height="' + f.height.value + '"';
      +		h += ' align="' + f.align.options[f.align.selectedIndex].value + '"';
      +
      +		h += ' />';
      +
      +		ed.execCommand('mceInsertContent', false, h);
      +	}
      +
      +	tinyMCEPopup.close();
      +}
      +
      +function updatePreview() {
      +	var f = document.forms[0], type;
      +
      +	f.width.value = f.width.value || '320';
      +	f.height.value = f.height.value || '240';
      +
      +	type = getType(f.src.value);
      +	selectByValue(f, 'media_type', type);
      +	changedType(type);
      +	generatePreview();
      +}
      +
      +function getMediaListHTML() {
      +	if (typeof(tinyMCEMediaList) != "undefined" && tinyMCEMediaList.length > 0) {
      +		var html = "";
      +
      +		html += '<select id="linklist" name="linklist" style="width: 250px" onchange="this.form.src.value=this.options[this.selectedIndex].value;updatePreview();">';
      +		html += '<option value="">---</option>';
      +
      +		for (var i=0; i<tinyMCEMediaList.length; i++)
      +			html += '<option value="' + tinyMCEMediaList[i][1] + '">' + tinyMCEMediaList[i][0] + '</option>';
      +
      +		html += '</select>';
      +
      +		return html;
      +	}
      +
      +	return "";
      +}
      +
      +function getType(v) {
      +	var fo, i, c, el, x, f = document.forms[0];
      +
      +	fo = ed.getParam("media_types", "flash=swf;flv=flv;shockwave=dcr;qt=mov,qt,mpg,mp3,mp4,mpeg;shockwave=dcr;wmp=avi,wmv,wm,asf,asx,wmx,wvx;rmp=rm,ra,ram").split(';');
      +
      +	// YouTube
      +	if (v.match(/watch\?v=(.+)(.*)/)) {
      +		f.width.value = '425';
      +		f.height.value = '350';
      +		f.src.value = 'http://www.youtube.com/v/' + v.match(/v=(.*)(.*)/)[0].split('=')[1];
      +		return 'flash';
      +	}
      +
      +	// Google video
      +	if (v.indexOf('http://video.google.com/videoplay?docid=') == 0) {
      +		f.width.value = '425';
      +		f.height.value = '326';
      +		f.src.value = 'http://video.google.com/googleplayer.swf?docId=' + v.substring('http://video.google.com/videoplay?docid='.length) + '&hl=en';
      +		return 'flash';
      +	}
      +
      +	for (i=0; i<fo.length; i++) {
      +		c = fo[i].split('=');
      +
      +		el = c[1].split(',');
      +		for (x=0; x<el.length; x++)
      +		if (v.indexOf('.' + el[x]) != -1)
      +			return c[0];
      +	}
      +
      +	return null;
      +}
      +
      +function switchType(v) {
      +	var t = getType(v), d = document, f = d.forms[0];
      +
      +	if (!t)
      +		return;
      +
      +	selectByValue(d.forms[0], 'media_type', t);
      +	changedType(t);
      +
      +	// Update qtsrc also
      +	if (t == 'qt' && f.src.value.toLowerCase().indexOf('rtsp://') != -1) {
      +		alert(ed.getLang("media_qt_stream_warn"));
      +
      +		if (f.qt_qtsrc.value == '')
      +			f.qt_qtsrc.value = f.src.value;
      +	}
      +}
      +
      +function changedType(t) {
      +	var d = document;
      +
      +	d.getElementById('flash_options').style.display = 'none';
      +	d.getElementById('flv_options').style.display = 'none';
      +	d.getElementById('qt_options').style.display = 'none';
      +	d.getElementById('shockwave_options').style.display = 'none';
      +	d.getElementById('wmp_options').style.display = 'none';
      +	d.getElementById('rmp_options').style.display = 'none';
      +
      +	if (t)
      +		d.getElementById(t + '_options').style.display = 'block';
      +}
      +
      +function serializeParameters() {
      +	var d = document, f = d.forms[0], s = '';
      +
      +	switch (f.media_type.options[f.media_type.selectedIndex].value) {
      +		case "flash":
      +			s += getBool('flash', 'play', true);
      +			s += getBool('flash', 'loop', true);
      +			s += getBool('flash', 'menu', true);
      +			s += getBool('flash', 'swliveconnect', false);
      +			s += getStr('flash', 'quality');
      +			s += getStr('flash', 'scale');
      +			s += getStr('flash', 'salign');
      +			s += getStr('flash', 'wmode');
      +			s += getStr('flash', 'base');
      +			s += getStr('flash', 'flashvars');
      +		break;
      +
      +		case "qt":
      +			s += getBool('qt', 'loop', false);
      +			s += getBool('qt', 'autoplay', true);
      +			s += getBool('qt', 'cache', false);
      +			s += getBool('qt', 'controller', true);
      +			s += getBool('qt', 'correction', false, 'none', 'full');
      +			s += getBool('qt', 'enablejavascript', false);
      +			s += getBool('qt', 'kioskmode', false);
      +			s += getBool('qt', 'autohref', false);
      +			s += getBool('qt', 'playeveryframe', false);
      +			s += getBool('qt', 'targetcache', false);
      +			s += getStr('qt', 'scale');
      +			s += getStr('qt', 'starttime');
      +			s += getStr('qt', 'endtime');
      +			s += getStr('qt', 'target');
      +			s += getStr('qt', 'qtsrcchokespeed');
      +			s += getStr('qt', 'volume');
      +			s += getStr('qt', 'qtsrc');
      +		break;
      +
      +		case "shockwave":
      +			s += getBool('shockwave', 'sound');
      +			s += getBool('shockwave', 'progress');
      +			s += getBool('shockwave', 'autostart');
      +			s += getBool('shockwave', 'swliveconnect');
      +			s += getStr('shockwave', 'swvolume');
      +			s += getStr('shockwave', 'swstretchstyle');
      +			s += getStr('shockwave', 'swstretchhalign');
      +			s += getStr('shockwave', 'swstretchvalign');
      +		break;
      +
      +		case "wmp":
      +			s += getBool('wmp', 'autostart', true);
      +			s += getBool('wmp', 'enabled', false);
      +			s += getBool('wmp', 'enablecontextmenu', true);
      +			s += getBool('wmp', 'fullscreen', false);
      +			s += getBool('wmp', 'invokeurls', true);
      +			s += getBool('wmp', 'mute', false);
      +			s += getBool('wmp', 'stretchtofit', false);
      +			s += getBool('wmp', 'windowlessvideo', false);
      +			s += getStr('wmp', 'balance');
      +			s += getStr('wmp', 'baseurl');
      +			s += getStr('wmp', 'captioningid');
      +			s += getStr('wmp', 'currentmarker');
      +			s += getStr('wmp', 'currentposition');
      +			s += getStr('wmp', 'defaultframe');
      +			s += getStr('wmp', 'playcount');
      +			s += getStr('wmp', 'rate');
      +			s += getStr('wmp', 'uimode');
      +			s += getStr('wmp', 'volume');
      +		break;
      +
      +		case "rmp":
      +			s += getBool('rmp', 'autostart', false);
      +			s += getBool('rmp', 'loop', false);
      +			s += getBool('rmp', 'autogotourl', true);
      +			s += getBool('rmp', 'center', false);
      +			s += getBool('rmp', 'imagestatus', true);
      +			s += getBool('rmp', 'maintainaspect', false);
      +			s += getBool('rmp', 'nojava', false);
      +			s += getBool('rmp', 'prefetch', false);
      +			s += getBool('rmp', 'shuffle', false);
      +			s += getStr('rmp', 'console');
      +			s += getStr('rmp', 'controls');
      +			s += getStr('rmp', 'numloop');
      +			s += getStr('rmp', 'scriptcallbacks');
      +		break;
      +	}
      +
      +	s += getStr(null, 'id');
      +	s += getStr(null, 'name');
      +	s += getStr(null, 'src');
      +	s += getStr(null, 'align');
      +	s += getStr(null, 'bgcolor');
      +	s += getInt(null, 'vspace');
      +	s += getInt(null, 'hspace');
      +	s += getStr(null, 'width');
      +	s += getStr(null, 'height');
      +
      +	s = s.length > 0 ? s.substring(0, s.length - 1) : s;
      +
      +	return s;
      +}
      +
      +function setBool(pl, p, n) {
      +	if (typeof(pl[n]) == "undefined")
      +		return;
      +
      +	document.forms[0].elements[p + "_" + n].checked = pl[n] != 'false';
      +}
      +
      +function setStr(pl, p, n) {
      +	var f = document.forms[0], e = f.elements[(p != null ? p + "_" : '') + n];
      +
      +	if (typeof(pl[n]) == "undefined")
      +		return;
      +
      +	if (e.type == "text")
      +		e.value = pl[n];
      +	else
      +		selectByValue(f, (p != null ? p + "_" : '') + n, pl[n]);
      +}
      +
      +function getBool(p, n, d, tv, fv) {
      +	var v = document.forms[0].elements[p + "_" + n].checked;
      +
      +	tv = typeof(tv) == 'undefined' ? 'true' : "'" + jsEncode(tv) + "'";
      +	fv = typeof(fv) == 'undefined' ? 'false' : "'" + jsEncode(fv) + "'";
      +
      +	return (v == d) ? '' : n + (v ? ':' + tv + ',' : ":\'" + fv + "\',");
      +}
      +
      +function getStr(p, n, d) {
      +	var e = document.forms[0].elements[(p != null ? p + "_" : "") + n];
      +	var v = e.type == "text" ? e.value : e.options[e.selectedIndex].value;
      +
      +	if (n == 'src')
      +		v = tinyMCEPopup.editor.convertURL(v, 'src', null);
      +
      +	return ((n == d || v == '') ? '' : n + ":'" + jsEncode(v) + "',");
      +}
      +
      +function getInt(p, n, d) {
      +	var e = document.forms[0].elements[(p != null ? p + "_" : "") + n];
      +	var v = e.type == "text" ? e.value : e.options[e.selectedIndex].value;
      +
      +	return ((n == d || v == '') ? '' : n + ":" + v.replace(/[^0-9]+/g, '') + ",");
      +}
      +
      +function jsEncode(s) {
      +	s = s.replace(new RegExp('\\\\', 'g'), '\\\\');
      +	s = s.replace(new RegExp('"', 'g'), '\\"');
      +	s = s.replace(new RegExp("'", 'g'), "\\'");
      +
      +	return s;
      +}
      +
      +function generatePreview(c) {
      +	var f = document.forms[0], p = document.getElementById('prev'), h = '', cls, pl, n, type, codebase, wp, hp, nw, nh;
      +
      +	p.innerHTML = '<!-- x --->';
      +
      +	nw = parseInt(f.width.value);
      +	nh = parseInt(f.height.value);
      +
      +	if (f.width.value != "" && f.height.value != "") {
      +		if (f.constrain.checked) {
      +			if (c == 'width' && oldWidth != 0) {
      +				wp = nw / oldWidth;
      +				nh = Math.round(wp * nh);
      +				f.height.value = nh;
      +			} else if (c == 'height' && oldHeight != 0) {
      +				hp = nh / oldHeight;
      +				nw = Math.round(hp * nw);
      +				f.width.value = nw;
      +			}
      +		}
      +	}
      +
      +	if (f.width.value != "")
      +		oldWidth = nw;
      +
      +	if (f.height.value != "")
      +		oldHeight = nh;
      +
      +	// After constrain
      +	pl = serializeParameters();
      +
      +	switch (f.media_type.options[f.media_type.selectedIndex].value) {
      +		case "flash":
      +			cls = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';
      +			codebase = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';
      +			type = 'application/x-shockwave-flash';
      +			break;
      +
      +		case "shockwave":
      +			cls = 'clsid:166B1BCA-3F9C-11CF-8075-444553540000';
      +			codebase = 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';
      +			type = 'application/x-director';
      +			break;
      +
      +		case "qt":
      +			cls = 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B';
      +			codebase = 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';
      +			type = 'video/quicktime';
      +			break;
      +
      +		case "wmp":
      +			cls = ed.getParam('media_wmp6_compatible') ? 'clsid:05589FA1-C356-11CE-BF01-00AA0055595A' : 'clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6';
      +			codebase = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';
      +			type = 'application/x-mplayer2';
      +			break;
      +
      +		case "rmp":
      +			cls = 'clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA';
      +			codebase = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';
      +			type = 'audio/x-pn-realaudio-plugin';
      +			break;
      +	}
      +
      +	if (pl == '') {
      +		p.innerHTML = '';
      +		return;
      +	}
      +
      +	pl = tinyMCEPopup.editor.plugins.media._parse(pl);
      +
      +	if (!pl.src) {
      +		p.innerHTML = '';
      +		return;
      +	}
      +
      +	pl.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(pl.src);
      +	pl.width = !pl.width ? 100 : pl.width;
      +	pl.height = !pl.height ? 100 : pl.height;
      +	pl.id = !pl.id ? 'obj' : pl.id;
      +	pl.name = !pl.name ? 'eobj' : pl.name;
      +	pl.align = !pl.align ? '' : pl.align;
      +
      +	// Avoid annoying warning about insecure items
      +	if (!tinymce.isIE || document.location.protocol != 'https:') {
      +		h += '<object classid="' + cls + '" codebase="' + codebase + '" width="' + pl.width + '" height="' + pl.height + '" id="' + pl.id + '" name="' + pl.name + '" align="' + pl.align + '">';
      +
      +		for (n in pl) {
      +			h += '<param name="' + n + '" value="' + pl[n] + '">';
      +
      +			// Add extra url parameter if it's an absolute URL
      +			if (n == 'src' && pl[n].indexOf('://') != -1)
      +				h += '<param name="url" value="' + pl[n] + '" />';
      +		}
      +	}
      +
      +	h += '<embed type="' + type + '" ';
      +
      +	for (n in pl)
      +		h += n + '="' + pl[n] + '" ';
      +
      +	h += '></embed>';
      +
      +	// Avoid annoying warning about insecure items
      +	if (!tinymce.isIE || document.location.protocol != 'https:')
      +		h += '</object>';
      +
      +	p.innerHTML = "<!-- x --->" + h;
      +}
      +
      +tinyMCEPopup.onInit.add(init);
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/media/langs/typecho_dlg.js b/usr/plugins/TinyMCE/tiny_mce/plugins/media/langs/typecho_dlg.js
      new file mode 100644
      index 00000000..8b137891
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/plugins/media/langs/typecho_dlg.js
      @@ -0,0 +1 @@
      +
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/media/media.htm b/usr/plugins/TinyMCE/tiny_mce/plugins/media/media.htm
      new file mode 100644
      index 00000000..911c03dc
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/plugins/media/media.htm
      @@ -0,0 +1,822 @@
      +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
      +<html xmlns="http://www.w3.org/1999/xhtml">
      +<head>
      +	<title>{#media_dlg.title}</title>
      +	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
      +	<script type="text/javascript" src="js/media.js"></script>
      +	<script type="text/javascript" src="../../utils/mctabs.js"></script>
      +	<script type="text/javascript" src="../../utils/validate.js"></script>
      +	<script type="text/javascript" src="../../utils/form_utils.js"></script>
      +	<script type="text/javascript" src="../../utils/editable_selects.js"></script>
      +	<link href="css/media.css" rel="stylesheet" type="text/css" />
      +</head>
      +<body style="display: none">
      +    <form onsubmit="insertMedia();return false;" action="#">
      +		<div class="tabs">
      +			<ul>
      +				<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');generatePreview();" onmousedown="return false;">{#media_dlg.general}</a></span></li>
      +				<li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#media_dlg.advanced}</a></span></li>
      +			</ul>
      +		</div>
      +
      +		<div class="panel_wrapper">
      +			<div id="general_panel" class="panel current">
      +				<fieldset>
      +					<legend>{#media_dlg.general}</legend>
      +
      +					<table border="0" cellpadding="4" cellspacing="0">
      +							<tr>
      +								<td><label for="media_type">{#media_dlg.type}</label></td>
      +								<td>
      +									<select id="media_type" name="media_type" onchange="changedType(this.value);generatePreview();">
      +										<option value="flash">Flash</option>
      +										<!-- <option value="flv">Flash video (FLV)</option> -->
      +										<option value="qt">Quicktime</option>
      +										<option value="shockwave">Shockwave</option>
      +										<option value="wmp">Windows Media</option>
      +										<option value="rmp">Real Media</option>
      +									</select>
      +								</td>
      +							</tr>
      +							<tr>
      +							<td><label for="src">{#media_dlg.file}</label></td>
      +							  <td>
      +									<table border="0" cellspacing="0" cellpadding="0">
      +									  <tr>
      +										<td><input id="src" name="src" type="text" value="" class="mceFocus" onchange="switchType(this.value);generatePreview();" /></td>
      +										<td id="filebrowsercontainer">&nbsp;</td>
      +									  </tr>
      +									</table>
      +								</td>
      +							</tr>
      +							<tr id="linklistrow">
      +								<td><label for="linklist">{#media_dlg.list}</label></td>
      +								<td id="linklistcontainer"><select id="linklist"><option value=""></option></select></td>
      +							</tr>
      +							<tr>
      +								<td><label for="width">{#media_dlg.size}</label></td>
      +								<td>
      +									<table border="0" cellpadding="0" cellspacing="0">
      +										<tr>
      +											<td><input type="text" id="width" name="width" value="" class="size" onchange="generatePreview('width');" /> x <input type="text" id="height" name="height" value="" class="size"  onchange="generatePreview('height');" /></td>
      +											<td>&nbsp;&nbsp;<input id="constrain" type="checkbox" name="constrain" class="checkbox" /></td>
      +											<td><label id="constrainlabel" for="constrain">{#media_dlg.constrain_proportions}</label></td>
      +										</tr>
      +									</table>
      +								</td>
      +							</tr>
      +					</table>
      +				</fieldset>
      +
      +				<fieldset>
      +					<legend>{#media_dlg.preview}</legend>
      +					<div id="prev"></div>
      +				</fieldset>
      +			</div>
      +
      +			<div id="advanced_panel" class="panel">
      +				<fieldset>
      +					<legend>{#media_dlg.advanced}</legend>
      +
      +					<table border="0" cellpadding="4" cellspacing="0" width="100%">
      +						<tr>
      +							<td><label for="id">{#media_dlg.id}</label></td>
      +							<td><input type="text" id="id" name="id" onchange="generatePreview();" /></td>
      +							<td><label for="name">{#media_dlg.name}</label></td>
      +							<td><input type="text" id="name" name="name" onchange="generatePreview();" /></td>
      +						</tr>
      +
      +						<tr>
      +							<td><label for="align">{#media_dlg.align}</label></td>
      +							<td>
      +								<select id="align" name="align" onchange="generatePreview();">
      +									<option value="">{#not_set}</option> 
      +									<option value="top">{#media_dlg.align_top}</option>
      +									<option value="right">{#media_dlg.align_right}</option>
      +									<option value="bottom">{#media_dlg.align_bottom}</option>
      +									<option value="left">{#media_dlg.align_left}</option>
      +								</select>
      +							</td>
      +
      +							<td><label for="bgcolor">{#media_dlg.bgcolor}</label></td>
      +							<td>
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');generatePreview();" /></td>
      +										<td id="bgcolor_pickcontainer">&nbsp;</td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td><label for="vspace">{#media_dlg.vspace}</label></td>
      +							<td><input type="text" id="vspace" name="vspace" class="number" onchange="generatePreview();" /></td>
      +							<td><label for="hspace">{#media_dlg.hspace}</label></td>
      +							<td><input type="text" id="hspace" name="hspace" class="number" onchange="generatePreview();" /></td>
      +						</tr>
      +					</table>
      +				</fieldset>
      +
      +				<fieldset id="flash_options">
      +					<legend>{#media_dlg.flash_options}</legend>
      +
      +					<table border="0" cellpadding="4" cellspacing="0">
      +						<tr>
      +							<td><label for="flash_quality">{#media_dlg.quality}</label></td>
      +							<td>
      +								<select id="flash_quality" name="flash_quality" onchange="generatePreview();">
      +									<option value="">{#not_set}</option> 
      +									<option value="high">high</option>
      +									<option value="low">low</option>
      +									<option value="autolow">autolow</option>
      +									<option value="autohigh">autohigh</option>
      +									<option value="best">best</option>
      +								</select>
      +							</td>
      +
      +							<td><label for="flash_scale">{#media_dlg.scale}</label></td>
      +							<td>
      +								<select id="flash_scale" name="flash_scale" onchange="generatePreview();">
      +									<option value="">{#not_set}</option> 
      +									<option value="showall">showall</option>
      +									<option value="noborder">noborder</option>
      +									<option value="exactfit">exactfit</option>
      +									<option value="noscale">noscale</option>
      +								</select>
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td><label for="flash_wmode">{#media_dlg.wmode}</label></td>
      +							<td>
      +								<select id="flash_wmode" name="flash_wmode" onchange="generatePreview();">
      +									<option value="">{#not_set}</option> 
      +									<option value="window">window</option>
      +									<option value="opaque">opaque</option>
      +									<option value="transparent">transparent</option>
      +								</select>
      +							</td>
      +
      +							<td><label for="flash_salign">{#media_dlg.salign}</label></td>
      +							<td>
      +								<select id="flash_salign" name="flash_salign" onchange="generatePreview();">
      +									<option value="">{#not_set}</option> 
      +									<option value="l">{#media_dlg.align_left}</option>
      +									<option value="t">{#media_dlg.align_top}</option>
      +									<option value="r">{#media_dlg.align_right}</option>
      +									<option value="b">{#media_dlg.align_bottom}</option>
      +									<option value="tl">{#media_dlg.align_top_left}</option>
      +									<option value="tr">{#media_dlg.align_top_right}</option>
      +									<option value="bl">{#media_dlg.align_bottom_left}</option>
      +									<option value="br">{#media_dlg.align_bottom_right}</option>
      +								</select>
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="flash_play" name="flash_play" checked="checked" onchange="generatePreview();" /></td>
      +										<td><label for="flash_play">{#media_dlg.play}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="flash_loop" name="flash_loop" checked="checked" onchange="generatePreview();" /></td>
      +										<td><label for="flash_loop">{#media_dlg.loop}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="flash_menu" name="flash_menu" checked="checked" onchange="generatePreview();" /></td>
      +										<td><label for="flash_menu">{#media_dlg.menu}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="flash_swliveconnect" name="flash_swliveconnect" onchange="generatePreview();" /></td>
      +										<td><label for="flash_swliveconnect">{#media_dlg.liveconnect}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +					</table>
      +
      +					<table>
      +						<tr>
      +							<td><label for="flash_base">{#media_dlg.base}</label></td>
      +							<td><input type="text" id="flash_base" name="flash_base" onchange="generatePreview();" /></td>
      +						</tr>
      +
      +						<tr>
      +							<td><label for="flash_flashvars">{#media_dlg.flashvars}</label></td>
      +							<td><input type="text" id="flash_flashvars" name="flash_flashvars" onchange="generatePreview();" /></td>
      +						</tr>
      +					</table>
      +				</fieldset>
      +
      +				<fieldset id="flv_options">
      +					<legend>{#media_dlg.flv_options}</legend>
      +
      +					<table border="0" cellpadding="4" cellspacing="0">
      +						<tr>
      +							<td><label for="flv_scalemode">{#media_dlg.flv_scalemode}</label></td>
      +							<td>
      +								<select id="flv_scalemode" name="flv_scalemode" onchange="generatePreview();">
      +									<option value="">{#not_set}</option> 
      +									<option value="none">none</option>
      +									<option value="double">double</option>
      +									<option value="full">full</option>
      +								</select>
      +							</td>
      +
      +							<td><label for="flv_buffer">{#media_dlg.flv_buffer}</label></td>
      +							<td><input type="text" id="flv_buffer" name="flv_buffer" onchange="generatePreview();" /></td>
      +						</tr>
      +
      +						<tr>
      +							<td><label for="flv_startimage">{#media_dlg.flv_startimage}</label></td>
      +							<td><input type="text" id="flv_startimage" name="flv_startimage" onchange="generatePreview();" /></td>
      +
      +							<td><label for="flv_starttime">{#media_dlg.flv_starttime}</label></td>
      +							<td><input type="text" id="flv_starttime" name="flv_starttime" onchange="generatePreview();" /></td>
      +						</tr>
      +
      +						<tr>
      +							<td><label for="flv_defaultvolume">{#media_dlg.flv_defaultvolume}</label></td>
      +							<td><input type="text" id="flv_defaultvolume" name="flv_defaultvolume" onchange="generatePreview();" /></td>
      +
      +
      +						</tr>
      +
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="flv_hiddengui" name="flv_hiddengui" checked="checked" onchange="generatePreview();" /></td>
      +										<td><label for="flv_hiddengui">{#media_dlg.flv_hiddengui}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="flv_autostart" name="flv_autostart" checked="checked" onchange="generatePreview();" /></td>
      +										<td><label for="flv_autostart">{#media_dlg.flv_autostart}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="flv_loop" name="flv_loop" checked="checked" onchange="generatePreview();" /></td>
      +										<td><label for="flv_loop">{#media_dlg.flv_loop}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="flv_showscalemodes" name="flv_showscalemodes" onchange="generatePreview();" /></td>
      +										<td><label for="flv_showscalemodes">{#media_dlg.flv_showscalemodes}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="flv_smoothvideo" name="flash_flv_flv_smoothvideosmoothvideo" checked="checked" onchange="generatePreview();" /></td>
      +										<td><label for="flv_smoothvideo">{#media_dlg.flv_smoothvideo}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="flv_jscallback" name="flv_jscallback" onchange="generatePreview();" /></td>
      +										<td><label for="flv_jscallback">{#media_dlg.flv_jscallback}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +					</table>
      +				</fieldset>
      +
      +				<fieldset id="qt_options">
      +					<legend>{#media_dlg.qt_options}</legend>
      +
      +					<table border="0" cellpadding="4" cellspacing="0">
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="qt_loop" name="qt_loop" onchange="generatePreview();" /></td>
      +										<td><label for="qt_loop">{#media_dlg.loop}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="qt_autoplay" name="qt_autoplay" checked="checked" onchange="generatePreview();" /></td>
      +										<td><label for="qt_autoplay">{#media_dlg.play}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="qt_cache" name="qt_cache" onchange="generatePreview();" /></td>
      +										<td><label for="qt_cache">{#media_dlg.cache}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="qt_controller" name="qt_controller" checked="checked" onchange="generatePreview();" /></td>
      +										<td><label for="qt_controller">{#media_dlg.controller}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="qt_correction" name="qt_correction" onchange="generatePreview();" /></td>
      +										<td><label for="qt_correction">{#media_dlg.correction}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="qt_enablejavascript" name="qt_enablejavascript" onchange="generatePreview();" /></td>
      +										<td><label for="qt_enablejavascript">{#media_dlg.enablejavascript}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="qt_kioskmode" name="qt_kioskmode" onchange="generatePreview();" /></td>
      +										<td><label for="qt_kioskmode">{#media_dlg.kioskmode}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="qt_autohref" name="qt_autohref" onchange="generatePreview();" /></td>
      +										<td><label for="qt_autohref">{#media_dlg.autohref}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="qt_playeveryframe" name="qt_playeveryframe" onchange="generatePreview();" /></td>
      +										<td><label for="qt_playeveryframe">{#media_dlg.playeveryframe}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="qt_targetcache" name="qt_targetcache" onchange="generatePreview();" /></td>
      +										<td><label for="qt_targetcache">{#media_dlg.targetcache}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td><label for="qt_scale">{#media_dlg.scale}</label></td>
      +							<td><select id="qt_scale" name="qt_scale" class="mceEditableSelect" onchange="generatePreview();">
      +									<option value="">{#not_set}</option> 
      +									<option value="tofit">tofit</option>
      +									<option value="aspect">aspect</option>
      +								</select>
      +							</td>
      +
      +							<td colspan="2">&nbsp;</td>
      +						</tr>
      +
      +						<tr>
      +							<td><label for="qt_starttime">{#media_dlg.starttime}</label></td>
      +							<td><input type="text" id="qt_starttime" name="qt_starttime" onchange="generatePreview();" /></td>
      +
      +							<td><label for="qt_endtime">{#media_dlg.endtime}</label></td>
      +							<td><input type="text" id="qt_endtime" name="qt_endtime" onchange="generatePreview();" /></td>
      +						</tr>
      +
      +						<tr>
      +							<td><label for="qt_target">{#media_dlg.target}</label></td>
      +							<td><input type="text" id="qt_target" name="qt_target" onchange="generatePreview();" /></td>
      +
      +							<td><label for="qt_href">{#media_dlg.href}</label></td>
      +							<td><input type="text" id="qt_href" name="qt_href" onchange="generatePreview();" /></td>
      +						</tr>
      +
      +						<tr>
      +							<td><label for="qt_qtsrcchokespeed">{#media_dlg.qtsrcchokespeed}</label></td>
      +							<td><input type="text" id="qt_qtsrcchokespeed" name="qt_qtsrcchokespeed" onchange="generatePreview();" /></td>
      +
      +							<td><label for="qt_volume">{#media_dlg.volume}</label></td>
      +							<td><input type="text" id="qt_volume" name="qt_volume" onchange="generatePreview();" /></td>
      +						</tr>
      +
      +						<tr>
      +							<td><label for="qt_qtsrc">{#media_dlg.qtsrc}</label></td>
      +							<td colspan="4">
      +							<table border="0" cellspacing="0" cellpadding="0">
      +								  <tr>
      +									<td><input type="text" id="qt_qtsrc" name="qt_qtsrc" onchange="generatePreview();" /></td>
      +									<td id="qtsrcfilebrowsercontainer">&nbsp;</td>
      +								  </tr>
      +							</table>
      +							</td>
      +						</tr>
      +					</table>
      +				</fieldset>
      +
      +				<fieldset id="wmp_options">
      +					<legend>{#media_dlg.wmp_options}</legend>
      +
      +					<table border="0" cellpadding="4" cellspacing="0">
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="wmp_autostart" name="wmp_autostart" checked="checked" onchange="generatePreview();" /></td>
      +										<td><label for="wmp_autostart">{#media_dlg.autostart}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="wmp_enabled" name="wmp_enabled" onchange="generatePreview();" /></td>
      +										<td><label for="wmp_enabled">{#media_dlg.enabled}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="wmp_enablecontextmenu" name="wmp_enablecontextmenu" checked="checked" onchange="generatePreview();" /></td>
      +										<td><label for="wmp_enablecontextmenu">{#media_dlg.menu}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="wmp_fullscreen" name="wmp_fullscreen" onchange="generatePreview();" /></td>
      +										<td><label for="wmp_fullscreen">{#media_dlg.fullscreen}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="wmp_invokeurls" name="wmp_invokeurls" checked="checked" onchange="generatePreview();" /></td>
      +										<td><label for="wmp_invokeurls">{#media_dlg.invokeurls}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="wmp_mute" name="wmp_mute" onchange="generatePreview();" /></td>
      +										<td><label for="wmp_mute">{#media_dlg.mute}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="wmp_stretchtofit" name="wmp_stretchtofit" onchange="generatePreview();" /></td>
      +										<td><label for="wmp_stretchtofit">{#media_dlg.stretchtofit}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="wmp_windowlessvideo" name="wmp_windowlessvideo" onchange="generatePreview();" /></td>
      +										<td><label for="wmp_windowlessvideo">{#media_dlg.windowlessvideo}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td><label for="wmp_balance">{#media_dlg.balance}</label></td>
      +							<td><input type="text" id="wmp_balance" name="wmp_balance" onchange="generatePreview();" /></td>
      +
      +							<td><label for="wmp_baseurl">{#media_dlg.baseurl}</label></td>
      +							<td><input type="text" id="wmp_baseurl" name="wmp_baseurl" onchange="generatePreview();" /></td>
      +						</tr>
      +
      +						<tr>
      +							<td><label for="wmp_captioningid">{#media_dlg.captioningid}</label></td>
      +							<td><input type="text" id="wmp_captioningid" name="wmp_captioningid" onchange="generatePreview();" /></td>
      +
      +							<td><label for="wmp_currentmarker">{#media_dlg.currentmarker}</label></td>
      +							<td><input type="text" id="wmp_currentmarker" name="wmp_currentmarker" onchange="generatePreview();" /></td>
      +						</tr>
      +
      +						<tr>
      +							<td><label for="wmp_currentposition">{#media_dlg.currentposition}</label></td>
      +							<td><input type="text" id="wmp_currentposition" name="wmp_currentposition" onchange="generatePreview();" /></td>
      +
      +							<td><label for="wmp_defaultframe">{#media_dlg.defaultframe}</label></td>
      +							<td><input type="text" id="wmp_defaultframe" name="wmp_defaultframe" onchange="generatePreview();" /></td>
      +						</tr>
      +
      +						<tr>
      +							<td><label for="wmp_playcount">{#media_dlg.playcount}</label></td>
      +							<td><input type="text" id="wmp_playcount" name="wmp_playcount" onchange="generatePreview();" /></td>
      +
      +							<td><label for="wmp_rate">{#media_dlg.rate}</label></td>
      +							<td><input type="text" id="wmp_rate" name="wmp_rate" onchange="generatePreview();" /></td>
      +						</tr>
      +
      +						<tr>
      +							<td><label for="wmp_uimode">{#media_dlg.uimode}</label></td>
      +							<td><input type="text" id="wmp_uimode" name="wmp_uimode" onchange="generatePreview();" /></td>
      +
      +							<td><label for="wmp_volume">{#media_dlg.volume}</label></td>
      +							<td><input type="text" id="wmp_volume" name="wmp_volume" onchange="generatePreview();" /></td>
      +						</tr>
      +
      +					</table>
      +				</fieldset>
      +
      +				<fieldset id="rmp_options">
      +					<legend>{#media_dlg.rmp_options}</legend>
      +
      +					<table border="0" cellpadding="4" cellspacing="0">
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="rmp_autostart" name="rmp_autostart" onchange="generatePreview();" /></td>
      +										<td><label for="rmp_autostart">{#media_dlg.autostart}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="rmp_loop" name="rmp_loop" onchange="generatePreview();" /></td>
      +										<td><label for="rmp_loop">{#media_dlg.loop}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="rmp_autogotourl" name="rmp_autogotourl" checked="checked" onchange="generatePreview();" /></td>
      +										<td><label for="rmp_autogotourl">{#media_dlg.autogotourl}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="rmp_center" name="rmp_center" onchange="generatePreview();" /></td>
      +										<td><label for="rmp_center">{#media_dlg.center}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="rmp_imagestatus" name="rmp_imagestatus" checked="checked" onchange="generatePreview();" /></td>
      +										<td><label for="rmp_imagestatus">{#media_dlg.imagestatus}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="rmp_maintainaspect" name="rmp_maintainaspect" onchange="generatePreview();" /></td>
      +										<td><label for="rmp_maintainaspect">{#media_dlg.maintainaspect}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="rmp_nojava" name="rmp_nojava" onchange="generatePreview();" /></td>
      +										<td><label for="rmp_nojava">{#media_dlg.nojava}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="rmp_prefetch" name="rmp_prefetch" onchange="generatePreview();" /></td>
      +										<td><label for="rmp_prefetch">{#media_dlg.prefetch}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="rmp_shuffle" name="rmp_shuffle" onchange="generatePreview();" /></td>
      +										<td><label for="rmp_shuffle">{#media_dlg.shuffle}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								&nbsp;
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td><label for="rmp_console">{#media_dlg.console}</label></td>
      +							<td><input type="text" id="rmp_console" name="rmp_console" onchange="generatePreview();" /></td>
      +
      +							<td><label for="rmp_controls">{#media_dlg.controls}</label></td>
      +							<td><input type="text" id="rmp_controls" name="rmp_controls" onchange="generatePreview();" /></td>
      +						</tr>
      +
      +						<tr>
      +							<td><label for="rmp_numloop">{#media_dlg.numloop}</label></td>
      +							<td><input type="text" id="rmp_numloop" name="rmp_numloop" onchange="generatePreview();" /></td>
      +
      +							<td><label for="rmp_scriptcallbacks">{#media_dlg.scriptcallbacks}</label></td>
      +							<td><input type="text" id="rmp_scriptcallbacks" name="rmp_scriptcallbacks" onchange="generatePreview();" /></td>
      +						</tr>
      +					</table>
      +				</fieldset>
      +
      +				<fieldset id="shockwave_options">
      +					<legend>{#media_dlg.shockwave_options}</legend>
      +
      +					<table border="0" cellpadding="4" cellspacing="0">
      +						<tr>
      +							<td><label for="shockwave_swstretchstyle">{#media_dlg.swstretchstyle}</label></td>
      +							<td>
      +								<select id="shockwave_swstretchstyle" name="shockwave_swstretchstyle" onchange="generatePreview();">
      +									<option value="none">{#not_set}</option>
      +									<option value="meet">Meet</option>
      +									<option value="fill">Fill</option>
      +									<option value="stage">Stage</option>
      +								</select>
      +							</td>
      +
      +							<td><label for="shockwave_swvolume">{#media_dlg.volume}</label></td>
      +							<td><input type="text" id="shockwave_swvolume" name="shockwave_swvolume" onchange="generatePreview();" /></td>
      +						</tr>
      +
      +						<tr>
      +							<td><label for="shockwave_swstretchhalign">{#media_dlg.swstretchhalign}</label></td>
      +							<td>
      +								<select id="shockwave_swstretchhalign" name="shockwave_swstretchhalign" onchange="generatePreview();">
      +									<option value="none">{#not_set}</option>
      +									<option value="left">{#media_dlg.align_left}</option>
      +									<option value="center">{#media_dlg.align_center}</option>
      +									<option value="right">{#media_dlg.align_right}</option>
      +								</select>
      +							</td>
      +
      +							<td><label for="shockwave_swstretchvalign">{#media_dlg.swstretchvalign}</label></td>
      +							<td>
      +								<select id="shockwave_swstretchvalign" name="shockwave_swstretchvalign" onchange="generatePreview();">
      +									<option value="none">{#not_set}</option>
      +									<option value="meet">Meet</option>
      +									<option value="fill">Fill</option>
      +									<option value="stage">Stage</option>
      +								</select>
      +							</td>
      +						</tr>
      +
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="shockwave_autostart" name="shockwave_autostart" onchange="generatePreview();" checked="checked" /></td>
      +										<td><label for="shockwave_autostart">{#media_dlg.autostart}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="shockwave_sound" name="shockwave_sound" onchange="generatePreview();" checked="checked" /></td>
      +										<td><label for="shockwave_sound">{#media_dlg.sound}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +
      +
      +						<tr>
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="shockwave_swliveconnect" name="shockwave_swliveconnect" onchange="generatePreview();" /></td>
      +										<td><label for="shockwave_swliveconnect">{#media_dlg.liveconnect}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +
      +							<td colspan="2">
      +								<table border="0" cellpadding="0" cellspacing="0">
      +									<tr>
      +										<td><input type="checkbox" class="checkbox" id="shockwave_progress" name="shockwave_progress" onchange="generatePreview();" checked="checked" /></td>
      +										<td><label for="shockwave_progress">{#media_dlg.progress}</label></td>
      +									</tr>
      +								</table>
      +							</td>
      +						</tr>
      +					</table>
      +				</fieldset>
      +			</div>
      +		</div>
      +
      +		<div class="mceActionPanel">
      +			<div style="float: left">
      +				<input type="submit" id="insert" name="insert" value="{#insert}" />
      +			</div>
      +
      +			<div style="float: right">
      +				<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
      +			</div>
      +		</div>
      +	</form>
      +</body>
      +</html>
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/morebreak/css/content.css b/usr/plugins/TinyMCE/tiny_mce/plugins/morebreak/css/content.css
      new file mode 100644
      index 00000000..99c85c9b
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/plugins/morebreak/css/content.css
      @@ -0,0 +1 @@
      +.mceMoreBreak {display:block;border:0;width:100%;height:12px;border-top:1px dotted #ccc;margin-top:15px;background:#fff url(../img/morebreak.gif) no-repeat center top;}
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/morebreak/editor_plugin.js b/usr/plugins/TinyMCE/tiny_mce/plugins/morebreak/editor_plugin.js
      new file mode 100644
      index 00000000..968d22ae
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/plugins/morebreak/editor_plugin.js
      @@ -0,0 +1,74 @@
      +/**
      + * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
      + *
      + * @author Moxiecode
      + * @copyright Copyright  2004-2008, Moxiecode Systems AB, All rights reserved.
      + */
      +
      +(function() {
      +	tinymce.create('tinymce.plugins.MoreBreakPlugin', {
      +		init : function(ed, url) {
      +			var pb = '<img src="' + url + '/img/trans.gif" class="mceMoreBreak mceItemNoResize" />', cls = 'mceMoreBreak', sep = ed.getParam('morebreak_separator', '<!--more-->'), pbRE;
      +
      +			pbRE = new RegExp(sep.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g, function(a) {return '\\' + a;}), 'g');
      +
      +			// Register commands
      +			ed.addCommand('mceMoreBreak', function() {
      +				ed.execCommand('mceInsertContent', 0, pb);
      +			});
      +
      +			// Register buttons
      +			ed.addButton('morebreak', {title : 'morebreak.desc', cmd : cls});
      +
      +			ed.onInit.add(function() {
      +				if (ed.settings.content_css !== false)
      +					ed.dom.loadCSS(url + "/css/content.css");
      +
      +				if (ed.theme.onResolveName) {
      +					ed.theme.onResolveName.add(function(th, o) {
      +						if (o.node.nodeName == 'IMG' && ed.dom.hasClass(o.node, cls))
      +							o.name = 'morebreak';
      +					});
      +				}
      +			});
      +
      +			ed.onClick.add(function(ed, e) {
      +				e = e.target;
      +
      +				if (e.nodeName === 'IMG' && ed.dom.hasClass(e, cls))
      +					ed.selection.select(e);
      +			});
      +
      +			ed.onNodeChange.add(function(ed, cm, n) {
      +				cm.setActive('morebreak', n.nodeName === 'IMG' && ed.dom.hasClass(n, cls));
      +			});
      +
      +			ed.onBeforeSetContent.add(function(ed, o) {
      +				o.content = o.content.replace(pbRE, pb);
      +			});
      +
      +			ed.onPostProcess.add(function(ed, o) {
      +				if (o.get)
      +					o.content = o.content.replace(/<img[^>]+>/g, function(im) {
      +						if (im.indexOf('class="mceMoreBreak') !== -1)
      +							im = sep;
      +
      +						return im;
      +					});
      +			});
      +		},
      +
      +		getInfo : function() {
      +			return {
      +				longname : 'MoreBreak',
      +				author : 'Moxiecode Systems AB',
      +				authorurl : 'http://tinymce.moxiecode.com',
      +				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/morebreak',
      +				version : tinymce.majorVersion + "." + tinymce.minorVersion
      +			};
      +		}
      +	});
      +
      +	// Register plugin
      +	tinymce.PluginManager.add('morebreak', tinymce.plugins.MoreBreakPlugin);
      +})();
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/morebreak/img/morebreak.gif b/usr/plugins/TinyMCE/tiny_mce/plugins/morebreak/img/morebreak.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..acdf4085f3068c4c0a1d6855f4b80dae8bac3068
      GIT binary patch
      literal 325
      zcmV-L0lNN2Nk%w1VPpUd0J9GO`>v<{=;ru;boX6P{`2zsmyZ3>&HK5t_;hIbi-G;z
      z+4`cI{KdfcXj}GCLjV8&A^8LW000jFEC2ui0Av6R000E?@X1N5y*TU5yZ>M)j$|1M
      z4Ouvb$pHu>IW8BZq|n;U0s@T!VM5~w1_+1X!EiVl!&PITYdjT!ffYfpt{jAfv%qvh
      zA63WUHSlr7LkeyaV4(pM0f50(II?RD4RtMg4-E+tFhdAy5{3c=0}3Bg9Y8`B2To20
      zR%SO62L%9}0H+dzoKB$+2TOwzUrwi{XiBM^4V#>63q3!LsU3u93zH8CdwqY%62;1g
      z0g8ze$k93lWExp`CUe|K4qOWk17ZeJ0|5pDP6+}};{>bI@lOWj=kf}r2sHp7w9-Ie
      XK%9UG6W(*AX-vY05F<*&5CH%?Gwy&_
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/morebreak/img/trans.gif b/usr/plugins/TinyMCE/tiny_mce/plugins/morebreak/img/trans.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..388486517fa8da13ebd150e8f65d5096c3e10c3a
      GIT binary patch
      literal 43
      ncmZ?wbhEHbWMp7un7{x9ia%KxMSyG_5FaGNz{KRj$Y2csb)f_x
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/safari/blank.htm b/usr/plugins/TinyMCE/tiny_mce/plugins/safari/blank.htm
      new file mode 100644
      index 00000000..266808ce
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/plugins/safari/blank.htm
      @@ -0,0 +1 @@
      +<!-- WebKit -->
      \ No newline at end of file
      diff --git a/usr/plugins/TinyMCE/tiny_mce/plugins/safari/editor_plugin.js b/usr/plugins/TinyMCE/tiny_mce/plugins/safari/editor_plugin.js
      new file mode 100644
      index 00000000..794477c9
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/plugins/safari/editor_plugin.js
      @@ -0,0 +1 @@
      +(function(){var a=tinymce.dom.Event,c=tinymce.grep,d=tinymce.each,b=tinymce.inArray;function e(j,i,h){var g,k;g=j.createTreeWalker(i,NodeFilter.SHOW_ALL,null,false);while(k=g.nextNode()){if(h){if(!h(k)){return false}}if(k.nodeType==3&&k.nodeValue&&/[^\s\u00a0]+/.test(k.nodeValue)){return false}if(k.nodeType==1&&/^(HR|IMG|TABLE)$/.test(k.nodeName)){return false}}return true}tinymce.create("tinymce.plugins.Safari",{init:function(f){var g=this,h;if(!tinymce.isWebKit){return}g.editor=f;g.webKitFontSizes=["x-small","small","medium","large","x-large","xx-large","-webkit-xxx-large"];g.namedFontSizes=["xx-small","x-small","small","medium","large","x-large","xx-large"];f.addCommand("CreateLink",function(k,j){var m=f.selection.getNode(),l=f.dom,i;if(m&&(/^(left|right)$/i.test(l.getStyle(m,"float",1))||/^(left|right)$/i.test(l.getAttrib(m,"align")))){i=l.create("a",{href:j},m.cloneNode());m.parentNode.replaceChild(i,m);f.selection.select(i)}else{f.getDoc().execCommand("CreateLink",false,j)}});f.onKeyUp.add(function(j,o){var l,i,m,p,k;if(o.keyCode==46||o.keyCode==8){i=j.getBody();l=i.innerHTML;k=j.selection;if(i.childNodes.length==1&&!/<(img|hr)/.test(l)&&tinymce.trim(l.replace(/<[^>]+>/g,"")).length==0){j.setContent('<p><br mce_bogus="1" /></p>',{format:"raw"});p=i.firstChild;m=k.getRng();m.setStart(p,0);m.setEnd(p,0);k.setRng(m)}}});f.addCommand("FormatBlock",function(j,i){var l=f.dom,k=l.getParent(f.selection.getNode(),l.isBlock);if(k){l.replace(l.create(i),k,1)}else{f.getDoc().execCommand("FormatBlock",false,i)}});f.addCommand("mceInsertContent",function(j,i){f.getDoc().execCommand("InsertText",false,"mce_marker");f.getBody().innerHTML=f.getBody().innerHTML.replace(/mce_marker/g,f.dom.processHTML(i)+'<span id="_mce_tmp">XX</span>');f.selection.select(f.dom.get("_mce_tmp"));f.getDoc().execCommand("Delete",false," ")});f.onKeyPress.add(function(o,p){var q,v,r,l,j,k,i,u,m,t,s;if(p.keyCode==13){i=o.selection;q=i.getNode();if(p.shiftKey||o.settings.force_br_newlines&&q.nodeName!="LI"){g._insertBR(o);a.cancel(p)}if(v=h.getParent(q,"LI")){r=h.getParent(v,"OL,UL");u=o.getDoc();s=h.create("p");h.add(s,"br",{mce_bogus:"1"});if(e(u,v)){if(k=h.getParent(r.parentNode,"LI,OL,UL")){return}k=h.getParent(r,"p,h1,h2,h3,h4,h5,h6,div")||r;l=u.createRange();l.setStartBefore(k);l.setEndBefore(v);j=u.createRange();j.setStartAfter(v);j.setEndAfter(k);m=l.cloneContents();t=j.cloneContents();if(!e(u,t)){h.insertAfter(t,k)}h.insertAfter(s,k);if(!e(u,m)){h.insertAfter(m,k)}h.remove(k);k=s.firstChild;l=u.createRange();l.setStartBefore(k);l.setEndBefore(k);i.setRng(l);return a.cancel(p)}}}});f.onExecCommand.add(function(i,k){var j,m,n,l;if(k=="InsertUnorderedList"||k=="InsertOrderedList"){j=i.selection;m=i.dom;if(n=m.getParent(j.getNode(),function(o){return/^(H[1-6]|P|ADDRESS|PRE)$/.test(o.nodeName)})){l=j.getBookmark();m.remove(n,1);j.moveToBookmark(l)}}});f.onClick.add(function(i,j){j=j.target;if(j.nodeName=="IMG"){g.selElm=j;i.selection.select(j)}else{g.selElm=null}});f.onInit.add(function(){g._fixWebKitSpans()});f.onSetContent.add(function(){h=f.dom;d(["strong","b","em","u","strike","sub","sup","a"],function(i){d(c(h.select(i)).reverse(),function(l){var k=l.nodeName.toLowerCase(),j;if(k=="a"){if(l.name){h.replace(h.create("img",{mce_name:"a",name:l.name,"class":"mceItemAnchor"}),l)}return}switch(k){case"b":case"strong":if(k=="b"){k="strong"}j="font-weight: bold;";break;case"em":j="font-style: italic;";break;case"u":j="text-decoration: underline;";break;case"sub":j="vertical-align: sub;";break;case"sup":j="vertical-align: super;";break;case"strike":j="text-decoration: line-through;";break}h.replace(h.create("span",{mce_name:k,style:j,"class":"Apple-style-span"}),l,1)})})});f.onPreProcess.add(function(i,j){h=i.dom;d(c(j.node.getElementsByTagName("span")).reverse(),function(m){var k,l;if(j.get){if(h.hasClass(m,"Apple-style-span")){l=m.style.backgroundColor;switch(h.getAttrib(m,"mce_name")){case"font":if(!i.settings.convert_fonts_to_spans){h.setAttrib(m,"style","")}break;case"strong":case"em":case"sub":case"sup":h.setAttrib(m,"style","");break;case"strike":case"u":if(!i.settings.inline_styles){h.setAttrib(m,"style","")}else{h.setAttrib(m,"mce_name","")}break;default:if(!i.settings.inline_styles){h.setAttrib(m,"style","")}}if(l){m.style.backgroundColor=l}}}if(h.hasClass(m,"mceItemRemoved")){h.remove(m,1)}})});f.onPostProcess.add(function(i,j){j.content=j.content.replace(/<br \/><\/(h[1-6]|div|p|address|pre)>/g,"</$1>");j.content=j.content.replace(/ id=\"undefined\"/g,"")})},getInfo:function(){return{longname:"Safari compatibility",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_fixWebKitSpans:function(){var g=this,f=g.editor;a.add(f.getDoc(),"DOMNodeInserted",function(h){h=h.target;if(h&&h.nodeType==1){g._fixAppleSpan(h)}})},_fixAppleSpan:function(l){var g=this.editor,m=g.dom,i=this.webKitFontSizes,f=this.namedFontSizes,j=g.settings,h,k;if(m.getAttrib(l,"mce_fixed")){return}if(l.nodeName=="SPAN"&&l.className=="Apple-style-span"){h=l.style;if(!j.convert_fonts_to_spans){if(h.fontSize){m.setAttrib(l,"mce_name","font");m.setAttrib(l,"size",b(i,h.fontSize)+1)}if(h.fontFamily){m.setAttrib(l,"mce_name","font");m.setAttrib(l,"face",h.fontFamily)}if(h.color){m.setAttrib(l,"mce_name","font");m.setAttrib(l,"color",m.toHex(h.color))}if(h.backgroundColor){m.setAttrib(l,"mce_name","font");m.setStyle(l,"background-color",h.backgroundColor)}}else{if(h.fontSize){m.setStyle(l,"fontSize",f[b(i,h.fontSize)])}}if(h.fontWeight=="bold"){m.setAttrib(l,"mce_name","strong")}if(h.fontStyle=="italic"){m.setAttrib(l,"mce_name","em")}if(h.textDecoration=="underline"){m.setAttrib(l,"mce_name","u")}if(h.textDecoration=="line-through"){m.setAttrib(l,"mce_name","strike")}if(h.verticalAlign=="super"){m.setAttrib(l,"mce_name","sup")}if(h.verticalAlign=="sub"){m.setAttrib(l,"mce_name","sub")}m.setAttrib(l,"mce_fixed","1")}},_insertBR:function(f){var j=f.dom,h=f.selection,i=h.getRng(),g;i.insertNode(g=j.create("br"));i.setStartAfter(g);i.setEndAfter(g);h.setRng(i);if(h.getSel().focusNode==g.previousSibling){h.select(j.insertAfter(j.doc.createTextNode("\u00a0"),g));h.collapse(1)}f.getWin().scrollTo(0,j.getPos(h.getRng().startContainer).y)}});tinymce.PluginManager.add("safari",tinymce.plugins.Safari)})();
      \ No newline at end of file
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/about.htm b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/about.htm
      new file mode 100644
      index 00000000..e5df7aa5
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/about.htm
      @@ -0,0 +1,56 @@
      +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
      +<html xmlns="http://www.w3.org/1999/xhtml">
      +<head>
      +	<title>{#advanced_dlg.about_title}</title>
      +	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
      +	<script type="text/javascript" src="../../utils/mctabs.js"></script>
      +	<script type="text/javascript" src="js/about.js"></script>
      +</head>
      +<body id="about" style="display: none">
      +		<div class="tabs">
      +			<ul>
      +				<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advanced_dlg.about_general}</a></span></li>
      +				<li id="help_tab" style="display:none"><span><a href="javascript:mcTabs.displayTab('help_tab','help_panel');" onmousedown="return false;">{#advanced_dlg.about_help}</a></span></li>
      +				<li id="plugins_tab"><span><a href="javascript:mcTabs.displayTab('plugins_tab','plugins_panel');" onmousedown="return false;">{#advanced_dlg.about_plugins}</a></span></li>
      +			</ul>
      +		</div>
      +
      +		<div class="panel_wrapper">
      +			<div id="general_panel" class="panel current">
      +				<h3>{#advanced_dlg.about_title}</h3>
      +				<p>Version: <span id="version"></span> (<span id="date"></span>)</p>
      +				<p>TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under <a href="../../license.txt" target="_blank">LGPL</a>
      +				by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.</p>
      +				<p>Copyright &copy; 2003-2008, <a href="http://www.moxiecode.com" target="_blank">Moxiecode Systems AB</a>, All rights reserved.</p>
      +				<p>For more information about this software visit the <a href="http://tinymce.moxiecode.com" target="_blank">TinyMCE website</a>.</p>
      +
      +				<div id="buttoncontainer">
      +					<a href="http://www.moxiecode.com" target="_blank"><img src="http://tinymce.moxiecode.com/images/gotmoxie.png" alt="Got Moxie?" border="0" /></a>
      +					<a href="http://sourceforge.net/projects/tinymce/" target="_blank"><img src="http://sourceforge.net/sflogo.php?group_id=103281" alt="Hosted By Sourceforge" border="0" /></a>
      +					<a href="http://www.freshmeat.net/projects/tinymce" target="_blank"><img src="http://tinymce.moxiecode.com/images/fm.gif" alt="Also on freshmeat" border="0" /></a>
      +				</div>
      +			</div>
      +
      +			<div id="plugins_panel" class="panel">
      +				<div id="pluginscontainer">
      +					<h3>{#advanced_dlg.about_loaded}</h3>
      +
      +					<div id="plugintablecontainer">
      +					</div>
      +
      +					<p>&nbsp;</p>
      +				</div>
      +			</div>
      +
      +			<div id="help_panel" class="panel noscroll" style="overflow: visible;">
      +				<div id="iframecontainer"></div>
      +			</div>
      +		</div>
      +
      +		<div class="mceActionPanel">
      +			<div style="float: right">
      +				<input type="button" id="cancel" name="cancel" value="{#close}" onclick="tinyMCEPopup.close();" />
      +			</div>
      +		</div>
      +</body>
      +</html>
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/anchor.htm b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/anchor.htm
      new file mode 100644
      index 00000000..42095a1c
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/anchor.htm
      @@ -0,0 +1,31 @@
      +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
      +<html xmlns="http://www.w3.org/1999/xhtml">
      +<head>
      +	<title>{#advanced_dlg.anchor_title}</title>
      +	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
      +	<script type="text/javascript" src="js/anchor.js"></script>
      +</head>
      +<body style="display: none">
      +<form onsubmit="AnchorDialog.update();return false;" action="#">
      +	<table border="0" cellpadding="4" cellspacing="0">
      +		<tr>
      +			<td colspan="2" class="title">{#advanced_dlg.anchor_title}</td>
      +		</tr>
      +		<tr>
      +			<td class="nowrap">{#advanced_dlg.anchor_name}:</td>
      +			<td><input name="anchorName" type="text" class="mceFocus" id="anchorName" value="" style="width: 200px" /></td>
      +		</tr>
      +	</table>
      +
      +	<div class="mceActionPanel">
      +		<div style="float: left">
      +			<input type="submit" id="insert" name="insert" value="{#update}" />
      +		</div>
      +
      +		<div style="float: right">
      +			<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
      +		</div>
      +	</div>
      +</form>
      +</body>
      +</html>
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/charmap.htm b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/charmap.htm
      new file mode 100644
      index 00000000..f11a38ad
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/charmap.htm
      @@ -0,0 +1,53 @@
      +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      +<html xmlns="http://www.w3.org/1999/xhtml">
      +<head>
      +	<title>{#advanced_dlg.charmap_title}</title>
      +	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
      +	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
      +	<script type="text/javascript" src="js/charmap.js"></script>
      +</head>
      +<body id="charmap" style="display:none">
      +<table align="center" border="0" cellspacing="0" cellpadding="2">
      +    <tr>
      +        <td colspan="2" class="title">{#advanced_dlg.charmap_title}</td>
      +    </tr>
      +    <tr>
      +        <td id="charmapView" rowspan="2" align="left" valign="top">
      +			<!-- Chars will be rendered here -->
      +        </td>
      +        <td width="100" align="center" valign="top">
      +            <table border="0" cellpadding="0" cellspacing="0" width="100" style="height:100px">
      +                <tr>
      +                    <td id="codeV">&nbsp;</td>
      +                </tr>
      +                <tr>
      +                    <td id="codeN">&nbsp;</td>
      +                </tr>
      +            </table>
      +        </td>
      +    </tr>
      +    <tr>
      +        <td valign="bottom" style="padding-bottom: 3px;">
      +            <table width="100" align="center" border="0" cellpadding="2" cellspacing="0">
      +                <tr>
      +                    <td align="center" style="border-left: 1px solid #666699; border-top: 1px solid #666699; border-right: 1px solid #666699;">HTML-Code</td>
      +                </tr>
      +                <tr>
      +                    <td style="font-size: 16px; font-weight: bold; border-left: 1px solid #666699; border-bottom: 1px solid #666699; border-right: 1px solid #666699;" id="codeA" align="center">&nbsp;</td>
      +                </tr>
      +                <tr>
      +                    <td style="font-size: 1px;">&nbsp;</td>
      +                </tr>
      +                <tr>
      +                    <td align="center" style="border-left: 1px solid #666699; border-top: 1px solid #666699; border-right: 1px solid #666699;">NUM-Code</td>
      +                </tr>
      +                <tr>
      +                    <td style="font-size: 16px; font-weight: bold; border-left: 1px solid #666699; border-bottom: 1px solid #666699; border-right: 1px solid #666699;" id="codeB" align="center">&nbsp;</td>
      +                </tr>
      +            </table>
      +        </td>
      +    </tr>
      +</table>
      +
      +</body>
      +</html>
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/color_picker.htm b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/color_picker.htm
      new file mode 100644
      index 00000000..cbd6b88d
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/color_picker.htm
      @@ -0,0 +1,75 @@
      +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
      +<html xmlns="http://www.w3.org/1999/xhtml">
      +<head>
      +	<title>{#advanced_dlg.colorpicker_title}</title>
      +	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
      +	<script type="text/javascript" src="../../utils/mctabs.js"></script>
      +	<script type="text/javascript" src="js/color_picker.js"></script>
      +</head>
      +<body id="colorpicker" style="display: none">
      +<form onsubmit="insertAction();return false" action="#">
      +	<div class="tabs">
      +		<ul>
      +			<li id="picker_tab" class="current"><span><a href="javascript:mcTabs.displayTab('picker_tab','picker_panel');" onmousedown="return false;">{#advanced_dlg.colorpicker_picker_tab}</a></span></li>
      +			<li id="rgb_tab"><span><a href="javascript:;" onclick="generateWebColors();mcTabs.displayTab('rgb_tab','rgb_panel');" onmousedown="return false;">{#advanced_dlg.colorpicker_palette_tab}</a></span></li>
      +			<li id="named_tab"><span><a  href="javascript:;" onclick="generateNamedColors();javascript:mcTabs.displayTab('named_tab','named_panel');" onmousedown="return false;">{#advanced_dlg.colorpicker_named_tab}</a></span></li>
      +		</ul>
      +	</div>
      +
      +	<div class="panel_wrapper">
      +		<div id="picker_panel" class="panel current">
      +			<fieldset>
      +				<legend>{#advanced_dlg.colorpicker_picker_title}</legend>
      +				<div id="picker">
      +					<img id="colors" src="img/colorpicker.jpg" onclick="computeColor(event)" onmousedown="isMouseDown = true;return false;" onmouseup="isMouseDown = false;" onmousemove="if (isMouseDown && isMouseOver) computeColor(event); return false;" onmouseover="isMouseOver=true;" onmouseout="isMouseOver=false;" alt="" />
      +
      +					<div id="light">
      +						<!-- Will be filled with divs -->
      +					</div>
      +
      +					<br style="clear: both" />
      +				</div>
      +			</fieldset>
      +		</div>
      +
      +		<div id="rgb_panel" class="panel">
      +			<fieldset>
      +				<legend>{#advanced_dlg.colorpicker_palette_title}</legend>
      +				<div id="webcolors">
      +					<!-- Gets filled with web safe colors-->
      +				</div>
      +
      +				<br style="clear: both" />
      +			</fieldset>
      +		</div>
      +
      +		<div id="named_panel" class="panel">
      +			<fieldset>
      +				<legend>{#advanced_dlg.colorpicker_named_title}</legend>
      +				<div id="namedcolors">
      +					<!-- Gets filled with named colors-->
      +				</div>
      +
      +				<br style="clear: both" />
      +
      +				<div id="colornamecontainer">
      +					{#advanced_dlg.colorpicker_name} <span id="colorname"></span>
      +				</div>
      +			</fieldset>
      +		</div>
      +	</div>
      +
      +	<div class="mceActionPanel">
      +		<div style="float: left">
      +			<input type="submit" id="insert" name="insert" value="{#apply}" />
      +		</div>
      +
      +		<div id="preview"></div>
      +
      +		<div id="previewblock">
      +			<label for="color">{#advanced_dlg.colorpicker_color}</label> <input id="color" type="text" size="8" maxlength="8" class="text mceFocus" />
      +		</div>
      +	</div>
      +</form>
      +</body>
      +</html>
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/editor_template.js b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/editor_template.js
      new file mode 100644
      index 00000000..628c793c
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/editor_template.js
      @@ -0,0 +1 @@
      +(function(e){var d=e.DOM,b=e.dom.Event,h=e.extend,f=e.each,a=e.util.Cookie,g,c=e.explode;e.ThemeManager.requireLangPack("advanced");e.create("tinymce.themes.AdvancedTheme",{sizes:[8,10,12,14,18,24,36],controls:{bold:["bold_desc","Bold"],italic:["italic_desc","Italic"],underline:["underline_desc","Underline"],strikethrough:["striketrough_desc","Strikethrough"],justifyleft:["justifyleft_desc","JustifyLeft"],justifycenter:["justifycenter_desc","JustifyCenter"],justifyright:["justifyright_desc","JustifyRight"],justifyfull:["justifyfull_desc","JustifyFull"],bullist:["bullist_desc","InsertUnorderedList"],numlist:["numlist_desc","InsertOrderedList"],outdent:["outdent_desc","Outdent"],indent:["indent_desc","Indent"],cut:["cut_desc","Cut"],copy:["copy_desc","Copy"],paste:["paste_desc","Paste"],undo:["undo_desc","Undo"],redo:["redo_desc","Redo"],link:["link_desc","mceLink"],unlink:["unlink_desc","unlink"],image:["image_desc","mceImage"],cleanup:["cleanup_desc","mceCleanup"],help:["help_desc","mceHelp"],code:["code_desc","mceCodeEditor"],hr:["hr_desc","InsertHorizontalRule"],removeformat:["removeformat_desc","RemoveFormat"],sub:["sub_desc","subscript"],sup:["sup_desc","superscript"],forecolor:["forecolor_desc","ForeColor"],forecolorpicker:["forecolor_desc","mceForeColor"],backcolor:["backcolor_desc","HiliteColor"],backcolorpicker:["backcolor_desc","mceBackColor"],charmap:["charmap_desc","mceCharMap"],visualaid:["visualaid_desc","mceToggleVisualAid"],anchor:["anchor_desc","mceInsertAnchor"],newdocument:["newdocument_desc","mceNewDocument"],blockquote:["blockquote_desc","mceBlockQuote"]},stateControls:["bold","italic","underline","strikethrough","bullist","numlist","justifyleft","justifycenter","justifyright","justifyfull","sub","sup","blockquote"],init:function(j,k){var l=this,m,i,n;l.editor=j;l.url=k;l.onResolveName=new e.util.Dispatcher(this);l.settings=m=h({theme_advanced_path:true,theme_advanced_toolbar_location:"bottom",theme_advanced_buttons1:"bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect",theme_advanced_buttons2:"bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code",theme_advanced_buttons3:"hr,removeformat,visualaid,|,sub,sup,|,charmap",theme_advanced_blockformats:"p,address,pre,h1,h2,h3,h4,h5,h6",theme_advanced_toolbar_align:"center",theme_advanced_fonts:"Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",theme_advanced_more_colors:1,theme_advanced_row_height:23,theme_advanced_resize_horizontal:1,theme_advanced_resizing_use_cookie:1,theme_advanced_font_sizes:"1,2,3,4,5,6,7",readonly:j.settings.readonly},j.settings);if(!m.font_size_style_values){m.font_size_style_values="8pt,10pt,12pt,14pt,18pt,24pt,36pt"}if(e.is(m.theme_advanced_font_sizes,"string")){m.font_size_style_values=e.explode(m.font_size_style_values);m.font_size_classes=e.explode(m.font_size_classes||"");n={};j.settings.theme_advanced_font_sizes=m.theme_advanced_font_sizes;f(j.getParam("theme_advanced_font_sizes","","hash"),function(q,p){var o;if(p==q&&q>=1&&q<=7){p=q+" ("+l.sizes[q-1]+"pt)";if(j.settings.convert_fonts_to_spans){o=m.font_size_classes[q-1];q=m.font_size_style_values[q-1]||(l.sizes[q-1]+"pt")}}if(/^\s*\./.test(q)){o=q.replace(/\./g,"")}n[p]=o?{"class":o}:{fontSize:q}});m.theme_advanced_font_sizes=n}if((i=m.theme_advanced_path_location)&&i!="none"){m.theme_advanced_statusbar_location=m.theme_advanced_path_location}if(m.theme_advanced_statusbar_location=="none"){m.theme_advanced_statusbar_location=0}j.onInit.add(function(){j.onNodeChange.add(l._nodeChanged,l);if(j.settings.content_css!==false){j.dom.loadCSS(j.baseURI.toAbsolute("themes/advanced/skins/"+j.settings.skin+"/content.css"))}});j.onSetProgressState.add(function(q,o,r){var s,t=q.id,p;if(o){l.progressTimer=setTimeout(function(){s=q.getContainer();s=s.insertBefore(d.create("DIV",{style:"position:relative"}),s.firstChild);p=d.get(q.id+"_tbl");d.add(s,"div",{id:t+"_blocker","class":"mceBlocker",style:{width:p.clientWidth+2,height:p.clientHeight+2}});d.add(s,"div",{id:t+"_progress","class":"mceProgress",style:{left:p.clientWidth/2,top:p.clientHeight/2}})},r||0)}else{d.remove(t+"_blocker");d.remove(t+"_progress");clearTimeout(l.progressTimer)}});d.loadCSS(m.editor_css?j.documentBaseURI.toAbsolute(m.editor_css):k+"/skins/"+j.settings.skin+"/ui.css");if(m.skin_variant){d.loadCSS(k+"/skins/"+j.settings.skin+"/ui_"+m.skin_variant+".css")}},createControl:function(l,i){var j,k;if(k=i.createControl(l)){return k}switch(l){case"styleselect":return this._createStyleSelect();case"formatselect":return this._createBlockFormats();case"fontselect":return this._createFontSelect();case"fontsizeselect":return this._createFontSizeSelect();case"forecolor":return this._createForeColorMenu();case"backcolor":return this._createBackColorMenu()}if((j=this.controls[l])){return i.createButton(l,{title:"advanced."+j[0],cmd:j[1],ui:j[2],value:j[3]})}},execCommand:function(k,j,l){var i=this["_"+k];if(i){i.call(this,j,l);return true}return false},_importClasses:function(j){var i=this.editor,k=i.controlManager.get("styleselect");if(k.getLength()==0){f(i.dom.getClasses(),function(l){k.add(l["class"],l["class"])})}},_createStyleSelect:function(m){var j=this,i=j.editor,k=i.controlManager,l=k.createListBox("styleselect",{title:"advanced.style_select",onselect:function(n){if(l.selectedValue===n){i.execCommand("mceSetStyleInfo",0,{command:"removeformat"});l.select();return false}else{i.execCommand("mceSetCSSClass",0,n)}}});if(l){f(i.getParam("theme_advanced_styles","","hash"),function(o,n){if(o){l.add(j.editor.translate(n),o)}});l.onPostRender.add(function(o,p){if(!l.NativeListBox){b.add(p.id+"_text","focus",j._importClasses,j);b.add(p.id+"_text","mousedown",j._importClasses,j);b.add(p.id+"_open","focus",j._importClasses,j);b.add(p.id+"_open","mousedown",j._importClasses,j)}else{b.add(p.id,"focus",j._importClasses,j)}})}return l},_createFontSelect:function(){var k,j=this,i=j.editor;k=i.controlManager.createListBox("fontselect",{title:"advanced.fontdefault",cmd:"FontName"});if(k){f(i.getParam("theme_advanced_fonts",j.settings.theme_advanced_fonts,"hash"),function(m,l){k.add(i.translate(l),m,{style:m.indexOf("dings")==-1?"font-family:"+m:""})})}return k},_createFontSizeSelect:function(){var m=this,k=m.editor,n,l=0,j=[];n=k.controlManager.createListBox("fontsizeselect",{title:"advanced.font_size",onselect:function(i){if(i.fontSize){k.execCommand("FontSize",false,i.fontSize)}else{f(m.settings.theme_advanced_font_sizes,function(p,o){if(p["class"]){j.push(p["class"])}});k.editorCommands._applyInlineStyle("span",{"class":i["class"]},{check_classes:j})}}});if(n){f(m.settings.theme_advanced_font_sizes,function(o,i){var p=o.fontSize;if(p>=1&&p<=7){p=m.sizes[parseInt(p)-1]+"pt"}n.add(i,o,{style:"font-size:"+p,"class":"mceFontSize"+(l++)+(" "+(o["class"]||""))})})}return n},_createBlockFormats:function(){var k,i={p:"advanced.paragraph",address:"advanced.address",pre:"advanced.pre",h1:"advanced.h1",h2:"advanced.h2",h3:"advanced.h3",h4:"advanced.h4",h5:"advanced.h5",h6:"advanced.h6",div:"advanced.div",blockquote:"advanced.blockquote",code:"advanced.code",dt:"advanced.dt",dd:"advanced.dd",samp:"advanced.samp"},j=this;k=j.editor.controlManager.createListBox("formatselect",{title:"advanced.block",cmd:"FormatBlock"});if(k){f(j.editor.getParam("theme_advanced_blockformats",j.settings.theme_advanced_blockformats,"hash"),function(m,l){k.add(j.editor.translate(l!=m?l:i[m]),m,{"class":"mce_formatPreview mce_"+m})})}return k},_createForeColorMenu:function(){var m,j=this,k=j.settings,l={},i;if(k.theme_advanced_more_colors){l.more_colors_func=function(){j._mceColorPicker(0,{color:m.value,func:function(n){m.setColor(n)}})}}if(i=k.theme_advanced_text_colors){l.colors=i}if(k.theme_advanced_default_foreground_color){l.default_color=k.theme_advanced_default_foreground_color}l.title="advanced.forecolor_desc";l.cmd="ForeColor";l.scope=this;m=j.editor.controlManager.createColorSplitButton("forecolor",l);return m},_createBackColorMenu:function(){var m,j=this,k=j.settings,l={},i;if(k.theme_advanced_more_colors){l.more_colors_func=function(){j._mceColorPicker(0,{color:m.value,func:function(n){m.setColor(n)}})}}if(i=k.theme_advanced_background_colors){l.colors=i}if(k.theme_advanced_default_background_color){l.default_color=k.theme_advanced_default_background_color}l.title="advanced.backcolor_desc";l.cmd="HiliteColor";l.scope=this;m=j.editor.controlManager.createColorSplitButton("backcolor",l);return m},renderUI:function(k){var m,l,q,v=this,r=v.editor,w=v.settings,u,j,i;m=j=d.create("span",{id:r.id+"_parent","class":"mceEditor "+r.settings.skin+"Skin"+(w.skin_variant?" "+r.settings.skin+"Skin"+v._ufirst(w.skin_variant):"")});if(!d.boxModel){m=d.add(m,"div",{"class":"mceOldBoxModel"})}m=u=d.add(m,"table",{id:r.id+"_tbl","class":"mceLayout",cellSpacing:0,cellPadding:0});m=q=d.add(m,"tbody");switch((w.theme_advanced_layout_manager||"").toLowerCase()){case"rowlayout":l=v._rowLayout(w,q,k);break;case"customlayout":l=r.execCallback("theme_advanced_custom_layout",w,q,k,j);break;default:l=v._simpleLayout(w,q,k,j)}m=k.targetNode;i=d.stdMode?u.getElementsByTagName("tr"):u.rows;d.addClass(i[0],"mceFirst");d.addClass(i[i.length-1],"mceLast");f(d.select("tr",q),function(o){d.addClass(o.firstChild,"mceFirst");d.addClass(o.childNodes[o.childNodes.length-1],"mceLast")});if(d.get(w.theme_advanced_toolbar_container)){d.get(w.theme_advanced_toolbar_container).appendChild(j)}else{d.insertAfter(j,m)}b.add(r.id+"_path_row","click",function(n){n=n.target;if(n.nodeName=="A"){v._sel(n.className.replace(/^.*mcePath_([0-9]+).*$/,"$1"));return b.cancel(n)}});if(!r.getParam("accessibility_focus")){b.add(d.add(j,"a",{href:"#"},"<!-- IE -->"),"focus",function(){tinyMCE.get(r.id).focus()})}if(w.theme_advanced_toolbar_location=="external"){k.deltaHeight=0}v.deltaHeight=k.deltaHeight;k.targetNode=null;return{iframeContainer:l,editorContainer:r.id+"_parent",sizeContainer:u,deltaHeight:k.deltaHeight}},getInfo:function(){return{longname:"Advanced theme",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",version:e.majorVersion+"."+e.minorVersion}},resizeBy:function(i,j){var k=d.get(this.editor.id+"_tbl");this.resizeTo(k.clientWidth+i,k.clientHeight+j)},resizeTo:function(i,l){var j=this.editor,k=j.settings,n=d.get(j.id+"_tbl"),o=d.get(j.id+"_ifr"),m;i=Math.max(k.theme_advanced_resizing_min_width||100,i);l=Math.max(k.theme_advanced_resizing_min_height||100,l);i=Math.min(k.theme_advanced_resizing_max_width||65535,i);l=Math.min(k.theme_advanced_resizing_max_height||65535,l);m=n.clientHeight-o.clientHeight;d.setStyle(o,"height",l-m);d.setStyles(n,{width:i,height:l})},destroy:function(){var i=this.editor.id;b.clear(i+"_resize");b.clear(i+"_path_row");b.clear(i+"_external_close")},_simpleLayout:function(y,r,k,i){var x=this,u=x.editor,v=y.theme_advanced_toolbar_location,m=y.theme_advanced_statusbar_location,l,j,q,w;if(y.readonly){l=d.add(r,"tr");l=j=d.add(l,"td",{"class":"mceIframeContainer"});return j}if(v=="top"){x._addToolbars(r,k)}if(v=="external"){l=w=d.create("div",{style:"position:relative"});l=d.add(l,"div",{id:u.id+"_external","class":"mceExternalToolbar"});d.add(l,"a",{id:u.id+"_external_close",href:"javascript:;","class":"mceExternalClose"});l=d.add(l,"table",{id:u.id+"_tblext",cellSpacing:0,cellPadding:0});q=d.add(l,"tbody");if(i.firstChild.className=="mceOldBoxModel"){i.firstChild.appendChild(w)}else{i.insertBefore(w,i.firstChild)}x._addToolbars(q,k);u.onMouseUp.add(function(){var o=d.get(u.id+"_external");d.show(o);d.hide(g);var n=b.add(u.id+"_external_close","click",function(){d.hide(u.id+"_external");b.remove(u.id+"_external_close","click",n)});d.show(o);d.setStyle(o,"top",0-d.getRect(u.id+"_tblext").h-1);d.hide(o);d.show(o);o.style.filter="";g=u.id+"_external";o=null})}if(m=="top"){x._addStatusBar(r,k)}if(!y.theme_advanced_toolbar_container){l=d.add(r,"tr");l=j=d.add(l,"td",{"class":"mceIframeContainer"})}if(v=="bottom"){x._addToolbars(r,k)}if(m=="bottom"){x._addStatusBar(r,k)}return j},_rowLayout:function(w,m,k){var v=this,p=v.editor,u,x,i=p.controlManager,l,j,r,q;u=w.theme_advanced_containers_default_class||"";x=w.theme_advanced_containers_default_align||"center";f(c(w.theme_advanced_containers||""),function(s,o){var n=w["theme_advanced_container_"+s]||"";switch(n.toLowerCase()){case"mceeditor":l=d.add(m,"tr");l=j=d.add(l,"td",{"class":"mceIframeContainer"});break;case"mceelementpath":v._addStatusBar(m,k);break;default:q=(w["theme_advanced_container_"+s+"_align"]||x).toLowerCase();q="mce"+v._ufirst(q);l=d.add(d.add(m,"tr"),"td",{"class":"mceToolbar "+(w["theme_advanced_container_"+s+"_class"]||u)+" "+q||x});r=i.createToolbar("toolbar"+o);v._addControls(n,r);d.setHTML(l,r.renderHTML());k.deltaHeight-=w.theme_advanced_row_height}});return j},_addControls:function(j,i){var k=this,l=k.settings,m,n=k.editor.controlManager;if(l.theme_advanced_disable&&!k._disabled){m={};f(c(l.theme_advanced_disable),function(o){m[o]=1});k._disabled=m}else{m=k._disabled}f(c(j),function(p){var o;if(m&&m[p]){return}if(p=="tablecontrols"){f(["table","|","row_props","cell_props","|","row_before","row_after","delete_row","|","col_before","col_after","delete_col","|","split_cells","merge_cells"],function(q){q=k.createControl(q,n);if(q){i.add(q)}});return}o=k.createControl(p,n);if(o){i.add(o)}})},_addToolbars:function(w,k){var z=this,p,m,r=z.editor,A=z.settings,y,j=r.controlManager,u,l,q=[],x;x=A.theme_advanced_toolbar_align.toLowerCase();x="mce"+z._ufirst(x);l=d.add(d.add(w,"tr"),"td",{"class":"mceToolbar "+x});if(!r.getParam("accessibility_focus")){q.push(d.createHTML("a",{href:"#",onfocus:"tinyMCE.get('"+r.id+"').focus();"},"<!-- IE -->"))}q.push(d.createHTML("a",{href:"#",accesskey:"q",title:r.getLang("advanced.toolbar_focus")},"<!-- IE -->"));for(p=1;(y=A["theme_advanced_buttons"+p]);p++){m=j.createToolbar("toolbar"+p,{"class":"mceToolbarRow"+p});if(A["theme_advanced_buttons"+p+"_add"]){y+=","+A["theme_advanced_buttons"+p+"_add"]}if(A["theme_advanced_buttons"+p+"_add_before"]){y=A["theme_advanced_buttons"+p+"_add_before"]+","+y}z._addControls(y,m);q.push(m.renderHTML());k.deltaHeight-=A.theme_advanced_row_height}q.push(d.createHTML("a",{href:"#",accesskey:"z",title:r.getLang("advanced.toolbar_focus"),onfocus:"tinyMCE.getInstanceById('"+r.id+"').focus();"},"<!-- IE -->"));d.setHTML(l,q.join(""))},_addStatusBar:function(m,j){var k,v=this,p=v.editor,w=v.settings,i,q,u,l;k=d.add(m,"tr");k=l=d.add(k,"td",{"class":"mceStatusbar"});k=d.add(k,"div",{id:p.id+"_path_row"},w.theme_advanced_path?p.translate("advanced.path")+": ":"&#160;");d.add(k,"a",{href:"#",accesskey:"x"});if(w.theme_advanced_resizing){d.add(l,"a",{id:p.id+"_resize",href:"javascript:;",onclick:"return false;","class":"mceResize"});if(w.theme_advanced_resizing_use_cookie){p.onPostRender.add(function(){var n=a.getHash("TinyMCE_"+p.id+"_size"),r=d.get(p.id+"_tbl");if(!n){return}if(w.theme_advanced_resize_horizontal){r.style.width=Math.max(10,n.cw)+"px"}r.style.height=Math.max(10,n.ch)+"px";d.get(p.id+"_ifr").style.height=Math.max(10,parseInt(n.ch)+v.deltaHeight)+"px"})}p.onPostRender.add(function(){b.add(p.id+"_resize","mousedown",function(x){var z,t,o,s,y,r;z=d.get(p.id+"_tbl");o=z.clientWidth;s=z.clientHeight;miw=w.theme_advanced_resizing_min_width||100;mih=w.theme_advanced_resizing_min_height||100;maw=w.theme_advanced_resizing_max_width||65535;mah=w.theme_advanced_resizing_max_height||65535;t=d.add(d.get(p.id+"_parent"),"div",{"class":"mcePlaceHolder"});d.setStyles(t,{width:o,height:s});d.hide(z);d.show(t);i={x:x.screenX,y:x.screenY,w:o,h:s,dx:null,dy:null};q=b.add(d.doc,"mousemove",function(B){var n,A;i.dx=B.screenX-i.x;i.dy=B.screenY-i.y;n=Math.max(miw,i.w+i.dx);A=Math.max(mih,i.h+i.dy);n=Math.min(maw,n);A=Math.min(mah,A);if(w.theme_advanced_resize_horizontal){t.style.width=n+"px"}t.style.height=A+"px";return b.cancel(B)});u=b.add(d.doc,"mouseup",function(n){var A;b.remove(d.doc,"mousemove",q);b.remove(d.doc,"mouseup",u);z.style.display="";d.remove(t);if(i.dx===null){return}A=d.get(p.id+"_ifr");if(w.theme_advanced_resize_horizontal){z.style.width=Math.max(10,i.w+i.dx)+"px"}z.style.height=Math.max(10,i.h+i.dy)+"px";A.style.height=Math.max(10,A.clientHeight+i.dy)+"px";if(w.theme_advanced_resizing_use_cookie){a.setHash("TinyMCE_"+p.id+"_size",{cw:i.w+i.dx,ch:i.h+i.dy})}});return b.cancel(x)})})}j.deltaHeight-=21;k=m=null},_nodeChanged:function(l,u,k,q){var y=this,i,r=0,x,m,z=y.settings,w,j,o;if(z.readonly){return}e.each(y.stateControls,function(n){u.setActive(n,l.queryCommandState(y.controls[n][1]))});u.setActive("visualaid",l.hasVisual);u.setDisabled("undo",!l.undoManager.hasUndo()&&!l.typing);u.setDisabled("redo",!l.undoManager.hasRedo());u.setDisabled("outdent",!l.queryCommandState("Outdent"));i=d.getParent(k,"A");if(m=u.get("link")){if(!i||!i.name){m.setDisabled(!i&&q);m.setActive(!!i)}}if(m=u.get("unlink")){m.setDisabled(!i&&q);m.setActive(!!i&&!i.name)}if(m=u.get("anchor")){m.setActive(!!i&&i.name);if(e.isWebKit){i=d.getParent(k,"IMG");m.setActive(!!i&&d.getAttrib(i,"mce_name")=="a")}}i=d.getParent(k,"IMG");if(m=u.get("image")){m.setActive(!!i&&k.className.indexOf("mceItem")==-1)}if(m=u.get("styleselect")){if(k.className){y._importClasses();m.select(k.className)}else{m.select()}}if(m=u.get("formatselect")){i=d.getParent(k,d.isBlock);if(i){m.select(i.nodeName.toLowerCase())}}if(l.settings.convert_fonts_to_spans){l.dom.getParent(k,function(p){if(p.nodeName==="SPAN"){if(!w&&p.className){w=p.className}if(!j&&p.style.fontSize){j=p.style.fontSize}if(!o&&p.style.fontFamily){o=p.style.fontFamily.replace(/[\"\']+/g,"").replace(/^([^,]+).*/,"$1").toLowerCase()}}return false});if(m=u.get("fontselect")){m.select(function(n){return n.replace(/^([^,]+).*/,"$1").toLowerCase()==o})}if(m=u.get("fontsizeselect")){m.select(function(n){if(n.fontSize&&n.fontSize===j){return true}if(n["class"]&&n["class"]===w){return true}})}}else{if(m=u.get("fontselect")){m.select(l.queryCommandValue("FontName"))}if(m=u.get("fontsizeselect")){x=l.queryCommandValue("FontSize");m.select(function(n){return n.fontSize==x})}}if(z.theme_advanced_path&&z.theme_advanced_statusbar_location){i=d.get(l.id+"_path")||d.add(l.id+"_path_row","span",{id:l.id+"_path"});d.setHTML(i,"");l.dom.getParent(k,function(A){var p=A.nodeName.toLowerCase(),s,v,t="";if(A.nodeType!=1||A.nodeName==="BR"||(d.hasClass(A,"mceItemHidden")||d.hasClass(A,"mceItemRemoved"))){return}if(x=d.getAttrib(A,"mce_name")){p=x}if(e.isIE&&A.scopeName!=="HTML"){p=A.scopeName+":"+p}p=p.replace(/mce\:/g,"");switch(p){case"b":p="strong";break;case"i":p="em";break;case"img":if(x=d.getAttrib(A,"src")){t+="src: "+x+" "}break;case"a":if(x=d.getAttrib(A,"name")){t+="name: "+x+" ";p+="#"+x}if(x=d.getAttrib(A,"href")){t+="href: "+x+" "}break;case"font":if(z.convert_fonts_to_spans){p="span"}if(x=d.getAttrib(A,"face")){t+="font: "+x+" "}if(x=d.getAttrib(A,"size")){t+="size: "+x+" "}if(x=d.getAttrib(A,"color")){t+="color: "+x+" "}break;case"span":if(x=d.getAttrib(A,"style")){t+="style: "+x+" "}break}if(x=d.getAttrib(A,"id")){t+="id: "+x+" "}if(x=A.className){x=x.replace(/(webkit-[\w\-]+|Apple-[\w\-]+|mceItem\w+|mceVisualAid)/g,"");if(x&&x.indexOf("mceItem")==-1){t+="class: "+x+" ";if(d.isBlock(A)||p=="img"||p=="span"){p+="."+x}}}p=p.replace(/(html:)/g,"");p={name:p,node:A,title:t};y.onResolveName.dispatch(y,p);t=p.title;p=p.name;v=d.create("a",{href:"javascript:;",onmousedown:"return false;",title:t,"class":"mcePath_"+(r++)},p);if(i.hasChildNodes()){i.insertBefore(d.doc.createTextNode(" \u00bb "),i.firstChild);i.insertBefore(v,i.firstChild)}else{i.appendChild(v)}},l.getBody())}},_sel:function(i){this.editor.execCommand("mceSelectNodeDepth",false,i)},_mceInsertAnchor:function(k,j){var i=this.editor;i.windowManager.open({url:e.baseURL+"/themes/advanced/anchor.htm",width:320+parseInt(i.getLang("advanced.anchor_delta_width",0)),height:90+parseInt(i.getLang("advanced.anchor_delta_height",0)),inline:true},{theme_url:this.url})},_mceCharMap:function(){var i=this.editor;i.windowManager.open({url:e.baseURL+"/themes/advanced/charmap.htm",width:550+parseInt(i.getLang("advanced.charmap_delta_width",0)),height:250+parseInt(i.getLang("advanced.charmap_delta_height",0)),inline:true},{theme_url:this.url})},_mceHelp:function(){var i=this.editor;i.windowManager.open({url:e.baseURL+"/themes/advanced/about.htm",width:480,height:380,inline:true},{theme_url:this.url})},_mceColorPicker:function(k,j){var i=this.editor;j=j||{};i.windowManager.open({url:e.baseURL+"/themes/advanced/color_picker.htm",width:375+parseInt(i.getLang("advanced.colorpicker_delta_width",0)),height:250+parseInt(i.getLang("advanced.colorpicker_delta_height",0)),close_previous:false,inline:true},{input_color:j.color,func:j.func,theme_url:this.url})},_mceCodeEditor:function(j,k){var i=this.editor;i.windowManager.open({url:e.baseURL+"/themes/advanced/source_editor.htm",width:parseInt(i.getParam("theme_advanced_source_editor_width",720)),height:parseInt(i.getParam("theme_advanced_source_editor_height",580)),inline:true,resizable:true,maximizable:true},{theme_url:this.url})},_mceImage:function(j,k){var i=this.editor;if(i.dom.getAttrib(i.selection.getNode(),"class").indexOf("mceItem")!=-1){return}i.windowManager.open({url:e.baseURL+"/themes/advanced/image.htm",width:355+parseInt(i.getLang("advanced.image_delta_width",0)),height:275+parseInt(i.getLang("advanced.image_delta_height",0)),inline:true},{theme_url:this.url})},_mceLink:function(j,k){var i=this.editor;i.windowManager.open({url:e.baseURL+"/themes/advanced/link.htm",width:310+parseInt(i.getLang("advanced.link_delta_width",0)),height:200+parseInt(i.getLang("advanced.link_delta_height",0)),inline:true},{theme_url:this.url})},_mceNewDocument:function(){var i=this.editor;i.windowManager.confirm("advanced.newdocument",function(j){if(j){i.execCommand("mceSetContent",false,"")}})},_mceForeColor:function(){var i=this;this._mceColorPicker(0,{color:i.fgColor,func:function(j){i.fgColor=j;i.editor.execCommand("ForeColor",false,j)}})},_mceBackColor:function(){var i=this;this._mceColorPicker(0,{color:i.bgColor,func:function(j){i.bgColor=j;i.editor.execCommand("HiliteColor",false,j)}})},_ufirst:function(i){return i.substring(0,1).toUpperCase()+i.substring(1)}});e.ThemeManager.add("advanced",e.themes.AdvancedTheme)}(tinymce));
      \ No newline at end of file
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/image.htm b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/image.htm
      new file mode 100644
      index 00000000..7ec1052b
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/image.htm
      @@ -0,0 +1,85 @@
      +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
      +<html xmlns="http://www.w3.org/1999/xhtml">
      +<head>
      +	<title>{#advanced_dlg.image_title}</title>
      +	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
      +	<script type="text/javascript" src="../../utils/mctabs.js"></script>
      +	<script type="text/javascript" src="../../utils/form_utils.js"></script>
      +	<script type="text/javascript" src="js/image.js"></script>
      +</head>
      +<body id="image" style="display: none">
      +<form onsubmit="ImageDialog.update();return false;" action="#">
      +	<div class="tabs">
      +		<ul>
      +			<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advanced_dlg.image_title}</a></span></li>
      +		</ul>
      +	</div>
      +
      +	<div class="panel_wrapper">
      +		<div id="general_panel" class="panel current">
      +     <table border="0" cellpadding="4" cellspacing="0">
      +          <tr>
      +            <td class="nowrap"><label for="src">{#advanced_dlg.image_src}</label></td>
      +            <td><table border="0" cellspacing="0" cellpadding="0">
      +                <tr>
      +                  <td><input id="src" name="src" type="text" class="mceFocus" value="" style="width: 200px" onchange="ImageDialog.getImageData();" /></td>
      +                  <td id="srcbrowsercontainer">&nbsp;</td>
      +                </tr>
      +              </table></td>
      +          </tr>
      +		  <tr>
      +			<td><label for="image_list">{#advanced_dlg.image_list}</label></td>
      +			<td><select id="image_list" name="image_list" onchange="document.getElementById('src').value=this.options[this.selectedIndex].value;document.getElementById('alt').value=this.options[this.selectedIndex].text;"></select></td>
      +		  </tr>
      +          <tr>
      +            <td class="nowrap"><label for="alt">{#advanced_dlg.image_alt}</label></td>
      +            <td><input id="alt" name="alt" type="text" value="" style="width: 200px" /></td>
      +          </tr>
      +          <tr>
      +            <td class="nowrap"><label for="align">{#advanced_dlg.image_align}</label></td>
      +            <td><select id="align" name="align" onchange="ImageDialog.updateStyle();">
      +                <option value="">{#not_set}</option>
      +                <option value="baseline">{#advanced_dlg.image_align_baseline}</option>
      +                <option value="top">{#advanced_dlg.image_align_top}</option>
      +                <option value="middle">{#advanced_dlg.image_align_middle}</option>
      +                <option value="bottom">{#advanced_dlg.image_align_bottom}</option>
      +                <option value="text-top">{#advanced_dlg.image_align_texttop}</option>
      +                <option value="text-bottom">{#advanced_dlg.image_align_textbottom}</option>
      +                <option value="left">{#advanced_dlg.image_align_left}</option>
      +                <option value="right">{#advanced_dlg.image_align_right}</option>
      +              </select></td>
      +          </tr>
      +          <tr>
      +            <td class="nowrap"><label for="width">{#advanced_dlg.image_dimensions}</label></td>
      +            <td><input id="width" name="width" type="text" value="" size="3" maxlength="5" />
      +              x
      +              <input id="height" name="height" type="text" value="" size="3" maxlength="5" /></td>
      +          </tr>
      +          <tr>
      +            <td class="nowrap"><label for="border">{#advanced_dlg.image_border}</label></td>
      +            <td><input id="border" name="border" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td>
      +          </tr>
      +          <tr>
      +            <td class="nowrap"><label for="vspace">{#advanced_dlg.image_vspace}</label></td>
      +            <td><input id="vspace" name="vspace" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td>
      +          </tr>
      +          <tr>
      +            <td class="nowrap"><label for="hspace">{#advanced_dlg.image_hspace}</label></td>
      +            <td><input id="hspace" name="hspace" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td>
      +          </tr>
      +        </table>
      +		</div>
      +	</div>
      +
      +	<div class="mceActionPanel">
      +		<div style="float: left">
      +			<input type="submit" id="insert" name="insert" value="{#insert}" />
      +		</div>
      +
      +		<div style="float: right">
      +			<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
      +		</div>
      +	</div>
      +</form>
      +</body>
      +</html>
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/img/colorpicker.jpg b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/img/colorpicker.jpg
      new file mode 100644
      index 0000000000000000000000000000000000000000..b4c542d107b25f68a9d4f9d7a109d0565d1f1437
      GIT binary patch
      literal 3189
      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
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/img/icons.gif b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/img/icons.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..ccac36f54d983cc33a0a6e45134e3dabf1820367
      GIT binary patch
      literal 11505
      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
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/about.js b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/about.js
      new file mode 100644
      index 00000000..5cee9ed8
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/about.js
      @@ -0,0 +1,72 @@
      +tinyMCEPopup.requireLangPack();
      +
      +function init() {
      +	var ed, tcont;
      +
      +	tinyMCEPopup.resizeToInnerSize();
      +	ed = tinyMCEPopup.editor;
      +
      +	// Give FF some time
      +	window.setTimeout(insertHelpIFrame, 10);
      +
      +	tcont = document.getElementById('plugintablecontainer');
      +	document.getElementById('plugins_tab').style.display = 'none';
      +
      +	var html = "";
      +	html += '<table id="plugintable">';
      +	html += '<thead>';
      +	html += '<tr>';
      +	html += '<td>' + ed.getLang('advanced_dlg.about_plugin') + '</td>';
      +	html += '<td>' + ed.getLang('advanced_dlg.about_author') + '</td>';
      +	html += '<td>' + ed.getLang('advanced_dlg.about_version') + '</td>';
      +	html += '</tr>';
      +	html += '</thead>';
      +	html += '<tbody>';
      +
      +	tinymce.each(ed.plugins, function(p, n) {
      +		var info;
      +
      +		if (!p.getInfo)
      +			return;
      +
      +		html += '<tr>';
      +
      +		info = p.getInfo();
      +
      +		if (info.infourl != null && info.infourl != '')
      +			html += '<td width="50%" title="' + n + '"><a href="' + info.infourl + '" target="_blank">' + info.longname + '</a></td>';
      +		else
      +			html += '<td width="50%" title="' + n + '">' + info.longname + '</td>';
      +
      +		if (info.authorurl != null && info.authorurl != '')
      +			html += '<td width="35%"><a href="' + info.authorurl + '" target="_blank">' + info.author + '</a></td>';
      +		else
      +			html += '<td width="35%">' + info.author + '</td>';
      +
      +		html += '<td width="15%">' + info.version + '</td>';
      +		html += '</tr>';
      +
      +		document.getElementById('plugins_tab').style.display = '';
      +
      +	});
      +
      +	html += '</tbody>';
      +	html += '</table>';
      +
      +	tcont.innerHTML = html;
      +
      +	tinyMCEPopup.dom.get('version').innerHTML = tinymce.majorVersion + "." + tinymce.minorVersion;
      +	tinyMCEPopup.dom.get('date').innerHTML = tinymce.releaseDate;
      +}
      +
      +function insertHelpIFrame() {
      +	var html;
      +
      +	if (tinyMCEPopup.getParam('docs_url')) {
      +		html = '<iframe width="100%" height="300" src="' + tinyMCEPopup.editor.baseURI.toAbsolute(tinyMCEPopup.getParam('docs_url')) + '"></iframe>';
      +		document.getElementById('iframecontainer').innerHTML = html;
      +		document.getElementById('help_tab').style.display = 'block';
      +	}
      +}
      +
      +tinyMCEPopup.onInit.add(init);
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/anchor.js b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/anchor.js
      new file mode 100644
      index 00000000..b5efd1ec
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/anchor.js
      @@ -0,0 +1,37 @@
      +tinyMCEPopup.requireLangPack();
      +
      +var AnchorDialog = {
      +	init : function(ed) {
      +		var action, elm, f = document.forms[0];
      +
      +		this.editor = ed;
      +		elm = ed.dom.getParent(ed.selection.getNode(), 'A,IMG');
      +		v = ed.dom.getAttrib(elm, 'name');
      +
      +		if (v) {
      +			this.action = 'update';
      +			f.anchorName.value = v;
      +		}
      +
      +		f.insert.value = ed.getLang(elm ? 'update' : 'insert');
      +	},
      +
      +	update : function() {
      +		var ed = this.editor;
      +		
      +		tinyMCEPopup.restoreSelection();
      +
      +		if (this.action != 'update')
      +			ed.selection.collapse(1);
      +
      +		// Webkit acts weird if empty inline element is inserted so we need to use a image instead
      +		if (tinymce.isWebKit)
      +			ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('img', {mce_name : 'a', name : document.forms[0].anchorName.value, 'class' : 'mceItemAnchor'}));
      +		else
      +			ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', {name : document.forms[0].anchorName.value, 'class' : 'mceItemAnchor'}, ''));
      +
      +		tinyMCEPopup.close();
      +	}
      +};
      +
      +tinyMCEPopup.onInit.add(AnchorDialog.init, AnchorDialog);
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/charmap.js b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/charmap.js
      new file mode 100644
      index 00000000..8467ef60
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/charmap.js
      @@ -0,0 +1,325 @@
      +tinyMCEPopup.requireLangPack();
      +
      +var charmap = [
      +	['&nbsp;',    '&#160;',  true, 'no-break space'],
      +	['&amp;',     '&#38;',   true, 'ampersand'],
      +	['&quot;',    '&#34;',   true, 'quotation mark'],
      +// finance
      +	['&cent;',    '&#162;',  true, 'cent sign'],
      +	['&euro;',    '&#8364;', true, 'euro sign'],
      +	['&pound;',   '&#163;',  true, 'pound sign'],
      +	['&yen;',     '&#165;',  true, 'yen sign'],
      +// signs
      +	['&copy;',    '&#169;',  true, 'copyright sign'],
      +	['&reg;',     '&#174;',  true, 'registered sign'],
      +	['&trade;',   '&#8482;', true, 'trade mark sign'],
      +	['&permil;',  '&#8240;', true, 'per mille sign'],
      +	['&micro;',   '&#181;',  true, 'micro sign'],
      +	['&middot;',  '&#183;',  true, 'middle dot'],
      +	['&bull;',    '&#8226;', true, 'bullet'],
      +	['&hellip;',  '&#8230;', true, 'three dot leader'],
      +	['&prime;',   '&#8242;', true, 'minutes / feet'],
      +	['&Prime;',   '&#8243;', true, 'seconds / inches'],
      +	['&sect;',    '&#167;',  true, 'section sign'],
      +	['&para;',    '&#182;',  true, 'paragraph sign'],
      +	['&szlig;',   '&#223;',  true, 'sharp s / ess-zed'],
      +// quotations
      +	['&lsaquo;',  '&#8249;', true, 'single left-pointing angle quotation mark'],
      +	['&rsaquo;',  '&#8250;', true, 'single right-pointing angle quotation mark'],
      +	['&laquo;',   '&#171;',  true, 'left pointing guillemet'],
      +	['&raquo;',   '&#187;',  true, 'right pointing guillemet'],
      +	['&lsquo;',   '&#8216;', true, 'left single quotation mark'],
      +	['&rsquo;',   '&#8217;', true, 'right single quotation mark'],
      +	['&ldquo;',   '&#8220;', true, 'left double quotation mark'],
      +	['&rdquo;',   '&#8221;', true, 'right double quotation mark'],
      +	['&sbquo;',   '&#8218;', true, 'single low-9 quotation mark'],
      +	['&bdquo;',   '&#8222;', true, 'double low-9 quotation mark'],
      +	['&lt;',      '&#60;',   true, 'less-than sign'],
      +	['&gt;',      '&#62;',   true, 'greater-than sign'],
      +	['&le;',      '&#8804;', true, 'less-than or equal to'],
      +	['&ge;',      '&#8805;', true, 'greater-than or equal to'],
      +	['&ndash;',   '&#8211;', true, 'en dash'],
      +	['&mdash;',   '&#8212;', true, 'em dash'],
      +	['&macr;',    '&#175;',  true, 'macron'],
      +	['&oline;',   '&#8254;', true, 'overline'],
      +	['&curren;',  '&#164;',  true, 'currency sign'],
      +	['&brvbar;',  '&#166;',  true, 'broken bar'],
      +	['&uml;',     '&#168;',  true, 'diaeresis'],
      +	['&iexcl;',   '&#161;',  true, 'inverted exclamation mark'],
      +	['&iquest;',  '&#191;',  true, 'turned question mark'],
      +	['&circ;',    '&#710;',  true, 'circumflex accent'],
      +	['&tilde;',   '&#732;',  true, 'small tilde'],
      +	['&deg;',     '&#176;',  true, 'degree sign'],
      +	['&minus;',   '&#8722;', true, 'minus sign'],
      +	['&plusmn;',  '&#177;',  true, 'plus-minus sign'],
      +	['&divide;',  '&#247;',  true, 'division sign'],
      +	['&frasl;',   '&#8260;', true, 'fraction slash'],
      +	['&times;',   '&#215;',  true, 'multiplication sign'],
      +	['&sup1;',    '&#185;',  true, 'superscript one'],
      +	['&sup2;',    '&#178;',  true, 'superscript two'],
      +	['&sup3;',    '&#179;',  true, 'superscript three'],
      +	['&frac14;',  '&#188;',  true, 'fraction one quarter'],
      +	['&frac12;',  '&#189;',  true, 'fraction one half'],
      +	['&frac34;',  '&#190;',  true, 'fraction three quarters'],
      +// math / logical
      +	['&fnof;',    '&#402;',  true, 'function / florin'],
      +	['&int;',     '&#8747;', true, 'integral'],
      +	['&sum;',     '&#8721;', true, 'n-ary sumation'],
      +	['&infin;',   '&#8734;', true, 'infinity'],
      +	['&radic;',   '&#8730;', true, 'square root'],
      +	['&sim;',     '&#8764;', false,'similar to'],
      +	['&cong;',    '&#8773;', false,'approximately equal to'],
      +	['&asymp;',   '&#8776;', true, 'almost equal to'],
      +	['&ne;',      '&#8800;', true, 'not equal to'],
      +	['&equiv;',   '&#8801;', true, 'identical to'],
      +	['&isin;',    '&#8712;', false,'element of'],
      +	['&notin;',   '&#8713;', false,'not an element of'],
      +	['&ni;',      '&#8715;', false,'contains as member'],
      +	['&prod;',    '&#8719;', true, 'n-ary product'],
      +	['&and;',     '&#8743;', false,'logical and'],
      +	['&or;',      '&#8744;', false,'logical or'],
      +	['&not;',     '&#172;',  true, 'not sign'],
      +	['&cap;',     '&#8745;', true, 'intersection'],
      +	['&cup;',     '&#8746;', false,'union'],
      +	['&part;',    '&#8706;', true, 'partial differential'],
      +	['&forall;',  '&#8704;', false,'for all'],
      +	['&exist;',   '&#8707;', false,'there exists'],
      +	['&empty;',   '&#8709;', false,'diameter'],
      +	['&nabla;',   '&#8711;', false,'backward difference'],
      +	['&lowast;',  '&#8727;', false,'asterisk operator'],
      +	['&prop;',    '&#8733;', false,'proportional to'],
      +	['&ang;',     '&#8736;', false,'angle'],
      +// undefined
      +	['&acute;',   '&#180;',  true, 'acute accent'],
      +	['&cedil;',   '&#184;',  true, 'cedilla'],
      +	['&ordf;',    '&#170;',  true, 'feminine ordinal indicator'],
      +	['&ordm;',    '&#186;',  true, 'masculine ordinal indicator'],
      +	['&dagger;',  '&#8224;', true, 'dagger'],
      +	['&Dagger;',  '&#8225;', true, 'double dagger'],
      +// alphabetical special chars
      +	['&Agrave;',  '&#192;',  true, 'A - grave'],
      +	['&Aacute;',  '&#193;',  true, 'A - acute'],
      +	['&Acirc;',   '&#194;',  true, 'A - circumflex'],
      +	['&Atilde;',  '&#195;',  true, 'A - tilde'],
      +	['&Auml;',    '&#196;',  true, 'A - diaeresis'],
      +	['&Aring;',   '&#197;',  true, 'A - ring above'],
      +	['&AElig;',   '&#198;',  true, 'ligature AE'],
      +	['&Ccedil;',  '&#199;',  true, 'C - cedilla'],
      +	['&Egrave;',  '&#200;',  true, 'E - grave'],
      +	['&Eacute;',  '&#201;',  true, 'E - acute'],
      +	['&Ecirc;',   '&#202;',  true, 'E - circumflex'],
      +	['&Euml;',    '&#203;',  true, 'E - diaeresis'],
      +	['&Igrave;',  '&#204;',  true, 'I - grave'],
      +	['&Iacute;',  '&#205;',  true, 'I - acute'],
      +	['&Icirc;',   '&#206;',  true, 'I - circumflex'],
      +	['&Iuml;',    '&#207;',  true, 'I - diaeresis'],
      +	['&ETH;',     '&#208;',  true, 'ETH'],
      +	['&Ntilde;',  '&#209;',  true, 'N - tilde'],
      +	['&Ograve;',  '&#210;',  true, 'O - grave'],
      +	['&Oacute;',  '&#211;',  true, 'O - acute'],
      +	['&Ocirc;',   '&#212;',  true, 'O - circumflex'],
      +	['&Otilde;',  '&#213;',  true, 'O - tilde'],
      +	['&Ouml;',    '&#214;',  true, 'O - diaeresis'],
      +	['&Oslash;',  '&#216;',  true, 'O - slash'],
      +	['&OElig;',   '&#338;',  true, 'ligature OE'],
      +	['&Scaron;',  '&#352;',  true, 'S - caron'],
      +	['&Ugrave;',  '&#217;',  true, 'U - grave'],
      +	['&Uacute;',  '&#218;',  true, 'U - acute'],
      +	['&Ucirc;',   '&#219;',  true, 'U - circumflex'],
      +	['&Uuml;',    '&#220;',  true, 'U - diaeresis'],
      +	['&Yacute;',  '&#221;',  true, 'Y - acute'],
      +	['&Yuml;',    '&#376;',  true, 'Y - diaeresis'],
      +	['&THORN;',   '&#222;',  true, 'THORN'],
      +	['&agrave;',  '&#224;',  true, 'a - grave'],
      +	['&aacute;',  '&#225;',  true, 'a - acute'],
      +	['&acirc;',   '&#226;',  true, 'a - circumflex'],
      +	['&atilde;',  '&#227;',  true, 'a - tilde'],
      +	['&auml;',    '&#228;',  true, 'a - diaeresis'],
      +	['&aring;',   '&#229;',  true, 'a - ring above'],
      +	['&aelig;',   '&#230;',  true, 'ligature ae'],
      +	['&ccedil;',  '&#231;',  true, 'c - cedilla'],
      +	['&egrave;',  '&#232;',  true, 'e - grave'],
      +	['&eacute;',  '&#233;',  true, 'e - acute'],
      +	['&ecirc;',   '&#234;',  true, 'e - circumflex'],
      +	['&euml;',    '&#235;',  true, 'e - diaeresis'],
      +	['&igrave;',  '&#236;',  true, 'i - grave'],
      +	['&iacute;',  '&#237;',  true, 'i - acute'],
      +	['&icirc;',   '&#238;',  true, 'i - circumflex'],
      +	['&iuml;',    '&#239;',  true, 'i - diaeresis'],
      +	['&eth;',     '&#240;',  true, 'eth'],
      +	['&ntilde;',  '&#241;',  true, 'n - tilde'],
      +	['&ograve;',  '&#242;',  true, 'o - grave'],
      +	['&oacute;',  '&#243;',  true, 'o - acute'],
      +	['&ocirc;',   '&#244;',  true, 'o - circumflex'],
      +	['&otilde;',  '&#245;',  true, 'o - tilde'],
      +	['&ouml;',    '&#246;',  true, 'o - diaeresis'],
      +	['&oslash;',  '&#248;',  true, 'o slash'],
      +	['&oelig;',   '&#339;',  true, 'ligature oe'],
      +	['&scaron;',  '&#353;',  true, 's - caron'],
      +	['&ugrave;',  '&#249;',  true, 'u - grave'],
      +	['&uacute;',  '&#250;',  true, 'u - acute'],
      +	['&ucirc;',   '&#251;',  true, 'u - circumflex'],
      +	['&uuml;',    '&#252;',  true, 'u - diaeresis'],
      +	['&yacute;',  '&#253;',  true, 'y - acute'],
      +	['&thorn;',   '&#254;',  true, 'thorn'],
      +	['&yuml;',    '&#255;',  true, 'y - diaeresis'],
      +    ['&Alpha;',   '&#913;',  true, 'Alpha'],
      +	['&Beta;',    '&#914;',  true, 'Beta'],
      +	['&Gamma;',   '&#915;',  true, 'Gamma'],
      +	['&Delta;',   '&#916;',  true, 'Delta'],
      +	['&Epsilon;', '&#917;',  true, 'Epsilon'],
      +	['&Zeta;',    '&#918;',  true, 'Zeta'],
      +	['&Eta;',     '&#919;',  true, 'Eta'],
      +	['&Theta;',   '&#920;',  true, 'Theta'],
      +	['&Iota;',    '&#921;',  true, 'Iota'],
      +	['&Kappa;',   '&#922;',  true, 'Kappa'],
      +	['&Lambda;',  '&#923;',  true, 'Lambda'],
      +	['&Mu;',      '&#924;',  true, 'Mu'],
      +	['&Nu;',      '&#925;',  true, 'Nu'],
      +	['&Xi;',      '&#926;',  true, 'Xi'],
      +	['&Omicron;', '&#927;',  true, 'Omicron'],
      +	['&Pi;',      '&#928;',  true, 'Pi'],
      +	['&Rho;',     '&#929;',  true, 'Rho'],
      +	['&Sigma;',   '&#931;',  true, 'Sigma'],
      +	['&Tau;',     '&#932;',  true, 'Tau'],
      +	['&Upsilon;', '&#933;',  true, 'Upsilon'],
      +	['&Phi;',     '&#934;',  true, 'Phi'],
      +	['&Chi;',     '&#935;',  true, 'Chi'],
      +	['&Psi;',     '&#936;',  true, 'Psi'],
      +	['&Omega;',   '&#937;',  true, 'Omega'],
      +	['&alpha;',   '&#945;',  true, 'alpha'],
      +	['&beta;',    '&#946;',  true, 'beta'],
      +	['&gamma;',   '&#947;',  true, 'gamma'],
      +	['&delta;',   '&#948;',  true, 'delta'],
      +	['&epsilon;', '&#949;',  true, 'epsilon'],
      +	['&zeta;',    '&#950;',  true, 'zeta'],
      +	['&eta;',     '&#951;',  true, 'eta'],
      +	['&theta;',   '&#952;',  true, 'theta'],
      +	['&iota;',    '&#953;',  true, 'iota'],
      +	['&kappa;',   '&#954;',  true, 'kappa'],
      +	['&lambda;',  '&#955;',  true, 'lambda'],
      +	['&mu;',      '&#956;',  true, 'mu'],
      +	['&nu;',      '&#957;',  true, 'nu'],
      +	['&xi;',      '&#958;',  true, 'xi'],
      +	['&omicron;', '&#959;',  true, 'omicron'],
      +	['&pi;',      '&#960;',  true, 'pi'],
      +	['&rho;',     '&#961;',  true, 'rho'],
      +	['&sigmaf;',  '&#962;',  true, 'final sigma'],
      +	['&sigma;',   '&#963;',  true, 'sigma'],
      +	['&tau;',     '&#964;',  true, 'tau'],
      +	['&upsilon;', '&#965;',  true, 'upsilon'],
      +	['&phi;',     '&#966;',  true, 'phi'],
      +	['&chi;',     '&#967;',  true, 'chi'],
      +	['&psi;',     '&#968;',  true, 'psi'],
      +	['&omega;',   '&#969;',  true, 'omega'],
      +// symbols
      +	['&alefsym;', '&#8501;', false,'alef symbol'],
      +	['&piv;',     '&#982;',  false,'pi symbol'],
      +	['&real;',    '&#8476;', false,'real part symbol'],
      +	['&thetasym;','&#977;',  false,'theta symbol'],
      +	['&upsih;',   '&#978;',  false,'upsilon - hook symbol'],
      +	['&weierp;',  '&#8472;', false,'Weierstrass p'],
      +	['&image;',   '&#8465;', false,'imaginary part'],
      +// arrows
      +	['&larr;',    '&#8592;', true, 'leftwards arrow'],
      +	['&uarr;',    '&#8593;', true, 'upwards arrow'],
      +	['&rarr;',    '&#8594;', true, 'rightwards arrow'],
      +	['&darr;',    '&#8595;', true, 'downwards arrow'],
      +	['&harr;',    '&#8596;', true, 'left right arrow'],
      +	['&crarr;',   '&#8629;', false,'carriage return'],
      +	['&lArr;',    '&#8656;', false,'leftwards double arrow'],
      +	['&uArr;',    '&#8657;', false,'upwards double arrow'],
      +	['&rArr;',    '&#8658;', false,'rightwards double arrow'],
      +	['&dArr;',    '&#8659;', false,'downwards double arrow'],
      +	['&hArr;',    '&#8660;', false,'left right double arrow'],
      +	['&there4;',  '&#8756;', false,'therefore'],
      +	['&sub;',     '&#8834;', false,'subset of'],
      +	['&sup;',     '&#8835;', false,'superset of'],
      +	['&nsub;',    '&#8836;', false,'not a subset of'],
      +	['&sube;',    '&#8838;', false,'subset of or equal to'],
      +	['&supe;',    '&#8839;', false,'superset of or equal to'],
      +	['&oplus;',   '&#8853;', false,'circled plus'],
      +	['&otimes;',  '&#8855;', false,'circled times'],
      +	['&perp;',    '&#8869;', false,'perpendicular'],
      +	['&sdot;',    '&#8901;', false,'dot operator'],
      +	['&lceil;',   '&#8968;', false,'left ceiling'],
      +	['&rceil;',   '&#8969;', false,'right ceiling'],
      +	['&lfloor;',  '&#8970;', false,'left floor'],
      +	['&rfloor;',  '&#8971;', false,'right floor'],
      +	['&lang;',    '&#9001;', false,'left-pointing angle bracket'],
      +	['&rang;',    '&#9002;', false,'right-pointing angle bracket'],
      +	['&loz;',     '&#9674;', true,'lozenge'],
      +	['&spades;',  '&#9824;', false,'black spade suit'],
      +	['&clubs;',   '&#9827;', true, 'black club suit'],
      +	['&hearts;',  '&#9829;', true, 'black heart suit'],
      +	['&diams;',   '&#9830;', true, 'black diamond suit'],
      +	['&ensp;',    '&#8194;', false,'en space'],
      +	['&emsp;',    '&#8195;', false,'em space'],
      +	['&thinsp;',  '&#8201;', false,'thin space'],
      +	['&zwnj;',    '&#8204;', false,'zero width non-joiner'],
      +	['&zwj;',     '&#8205;', false,'zero width joiner'],
      +	['&lrm;',     '&#8206;', false,'left-to-right mark'],
      +	['&rlm;',     '&#8207;', false,'right-to-left mark'],
      +	['&shy;',     '&#173;',  false,'soft hyphen']
      +];
      +
      +tinyMCEPopup.onInit.add(function() {
      +	tinyMCEPopup.dom.setHTML('charmapView', renderCharMapHTML());
      +});
      +
      +function renderCharMapHTML() {
      +	var charsPerRow = 20, tdWidth=20, tdHeight=20, i;
      +	var html = '<table border="0" cellspacing="1" cellpadding="0" width="' + (tdWidth*charsPerRow) + '"><tr height="' + tdHeight + '">';
      +	var cols=-1;
      +
      +	for (i=0; i<charmap.length; i++) {
      +		if (charmap[i][2]==true) {
      +			cols++;
      +			html += ''
      +				+ '<td class="charmap">'
      +				+ '<a onmouseover="previewChar(\'' + charmap[i][1].substring(1,charmap[i][1].length) + '\',\'' + charmap[i][0].substring(1,charmap[i][0].length) + '\',\'' + charmap[i][3] + '\');" onfocus="previewChar(\'' + charmap[i][1].substring(1,charmap[i][1].length) + '\',\'' + charmap[i][0].substring(1,charmap[i][0].length) + '\',\'' + charmap[i][3] + '\');" href="javascript:void(0)" onclick="insertChar(\'' + charmap[i][1].substring(2,charmap[i][1].length-1) + '\');" onclick="return false;" onmousedown="return false;" title="' + charmap[i][3] + '">'
      +				+ charmap[i][1]
      +				+ '</a></td>';
      +			if ((cols+1) % charsPerRow == 0)
      +				html += '</tr><tr height="' + tdHeight + '">';
      +		}
      +	 }
      +
      +	if (cols % charsPerRow > 0) {
      +		var padd = charsPerRow - (cols % charsPerRow);
      +		for (var i=0; i<padd-1; i++)
      +			html += '<td width="' + tdWidth + '" height="' + tdHeight + '" class="charmap">&nbsp;</td>';
      +	}
      +
      +	html += '</tr></table>';
      +
      +	return html;
      +}
      +
      +function insertChar(chr) {
      +	tinyMCEPopup.execCommand('mceInsertContent', false, '&#' + chr + ';');
      +
      +	// Refocus in window
      +	if (tinyMCEPopup.isWindow)
      +		window.focus();
      +
      +	tinyMCEPopup.editor.focus();
      +	tinyMCEPopup.close();
      +}
      +
      +function previewChar(codeA, codeB, codeN) {
      +	var elmA = document.getElementById('codeA');
      +	var elmB = document.getElementById('codeB');
      +	var elmV = document.getElementById('codeV');
      +	var elmN = document.getElementById('codeN');
      +
      +	if (codeA=='#160;') {
      +		elmV.innerHTML = '__';
      +	} else {
      +		elmV.innerHTML = '&' + codeA;
      +	}
      +
      +	elmB.innerHTML = '&amp;' + codeA;
      +	elmA.innerHTML = '&amp;' + codeB;
      +	elmN.innerHTML = codeN;
      +}
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/color_picker.js b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/color_picker.js
      new file mode 100644
      index 00000000..fd9700f2
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/color_picker.js
      @@ -0,0 +1,253 @@
      +tinyMCEPopup.requireLangPack();
      +
      +var detail = 50, strhex = "0123456789abcdef", i, isMouseDown = false, isMouseOver = false;
      +
      +var colors = [
      +	"#000000","#000033","#000066","#000099","#0000cc","#0000ff","#330000","#330033",
      +	"#330066","#330099","#3300cc","#3300ff","#660000","#660033","#660066","#660099",
      +	"#6600cc","#6600ff","#990000","#990033","#990066","#990099","#9900cc","#9900ff",
      +	"#cc0000","#cc0033","#cc0066","#cc0099","#cc00cc","#cc00ff","#ff0000","#ff0033",
      +	"#ff0066","#ff0099","#ff00cc","#ff00ff","#003300","#003333","#003366","#003399",
      +	"#0033cc","#0033ff","#333300","#333333","#333366","#333399","#3333cc","#3333ff",
      +	"#663300","#663333","#663366","#663399","#6633cc","#6633ff","#993300","#993333",
      +	"#993366","#993399","#9933cc","#9933ff","#cc3300","#cc3333","#cc3366","#cc3399",
      +	"#cc33cc","#cc33ff","#ff3300","#ff3333","#ff3366","#ff3399","#ff33cc","#ff33ff",
      +	"#006600","#006633","#006666","#006699","#0066cc","#0066ff","#336600","#336633",
      +	"#336666","#336699","#3366cc","#3366ff","#666600","#666633","#666666","#666699",
      +	"#6666cc","#6666ff","#996600","#996633","#996666","#996699","#9966cc","#9966ff",
      +	"#cc6600","#cc6633","#cc6666","#cc6699","#cc66cc","#cc66ff","#ff6600","#ff6633",
      +	"#ff6666","#ff6699","#ff66cc","#ff66ff","#009900","#009933","#009966","#009999",
      +	"#0099cc","#0099ff","#339900","#339933","#339966","#339999","#3399cc","#3399ff",
      +	"#669900","#669933","#669966","#669999","#6699cc","#6699ff","#999900","#999933",
      +	"#999966","#999999","#9999cc","#9999ff","#cc9900","#cc9933","#cc9966","#cc9999",
      +	"#cc99cc","#cc99ff","#ff9900","#ff9933","#ff9966","#ff9999","#ff99cc","#ff99ff",
      +	"#00cc00","#00cc33","#00cc66","#00cc99","#00cccc","#00ccff","#33cc00","#33cc33",
      +	"#33cc66","#33cc99","#33cccc","#33ccff","#66cc00","#66cc33","#66cc66","#66cc99",
      +	"#66cccc","#66ccff","#99cc00","#99cc33","#99cc66","#99cc99","#99cccc","#99ccff",
      +	"#cccc00","#cccc33","#cccc66","#cccc99","#cccccc","#ccccff","#ffcc00","#ffcc33",
      +	"#ffcc66","#ffcc99","#ffcccc","#ffccff","#00ff00","#00ff33","#00ff66","#00ff99",
      +	"#00ffcc","#00ffff","#33ff00","#33ff33","#33ff66","#33ff99","#33ffcc","#33ffff",
      +	"#66ff00","#66ff33","#66ff66","#66ff99","#66ffcc","#66ffff","#99ff00","#99ff33",
      +	"#99ff66","#99ff99","#99ffcc","#99ffff","#ccff00","#ccff33","#ccff66","#ccff99",
      +	"#ccffcc","#ccffff","#ffff00","#ffff33","#ffff66","#ffff99","#ffffcc","#ffffff"
      +];
      +
      +var named = {
      +	'#F0F8FF':'AliceBlue','#FAEBD7':'AntiqueWhite','#00FFFF':'Aqua','#7FFFD4':'Aquamarine','#F0FFFF':'Azure','#F5F5DC':'Beige',
      +	'#FFE4C4':'Bisque','#000000':'Black','#FFEBCD':'BlanchedAlmond','#0000FF':'Blue','#8A2BE2':'BlueViolet','#A52A2A':'Brown',
      +	'#DEB887':'BurlyWood','#5F9EA0':'CadetBlue','#7FFF00':'Chartreuse','#D2691E':'Chocolate','#FF7F50':'Coral','#6495ED':'CornflowerBlue',
      +	'#FFF8DC':'Cornsilk','#DC143C':'Crimson','#00FFFF':'Cyan','#00008B':'DarkBlue','#008B8B':'DarkCyan','#B8860B':'DarkGoldenRod',
      +	'#A9A9A9':'DarkGray','#A9A9A9':'DarkGrey','#006400':'DarkGreen','#BDB76B':'DarkKhaki','#8B008B':'DarkMagenta','#556B2F':'DarkOliveGreen',
      +	'#FF8C00':'Darkorange','#9932CC':'DarkOrchid','#8B0000':'DarkRed','#E9967A':'DarkSalmon','#8FBC8F':'DarkSeaGreen','#483D8B':'DarkSlateBlue',
      +	'#2F4F4F':'DarkSlateGray','#2F4F4F':'DarkSlateGrey','#00CED1':'DarkTurquoise','#9400D3':'DarkViolet','#FF1493':'DeepPink','#00BFFF':'DeepSkyBlue',
      +	'#696969':'DimGray','#696969':'DimGrey','#1E90FF':'DodgerBlue','#B22222':'FireBrick','#FFFAF0':'FloralWhite','#228B22':'ForestGreen',
      +	'#FF00FF':'Fuchsia','#DCDCDC':'Gainsboro','#F8F8FF':'GhostWhite','#FFD700':'Gold','#DAA520':'GoldenRod','#808080':'Gray','#808080':'Grey',
      +	'#008000':'Green','#ADFF2F':'GreenYellow','#F0FFF0':'HoneyDew','#FF69B4':'HotPink','#CD5C5C':'IndianRed','#4B0082':'Indigo','#FFFFF0':'Ivory',
      +	'#F0E68C':'Khaki','#E6E6FA':'Lavender','#FFF0F5':'LavenderBlush','#7CFC00':'LawnGreen','#FFFACD':'LemonChiffon','#ADD8E6':'LightBlue',
      +	'#F08080':'LightCoral','#E0FFFF':'LightCyan','#FAFAD2':'LightGoldenRodYellow','#D3D3D3':'LightGray','#D3D3D3':'LightGrey','#90EE90':'LightGreen',
      +	'#FFB6C1':'LightPink','#FFA07A':'LightSalmon','#20B2AA':'LightSeaGreen','#87CEFA':'LightSkyBlue','#778899':'LightSlateGray','#778899':'LightSlateGrey',
      +	'#B0C4DE':'LightSteelBlue','#FFFFE0':'LightYellow','#00FF00':'Lime','#32CD32':'LimeGreen','#FAF0E6':'Linen','#FF00FF':'Magenta','#800000':'Maroon',
      +	'#66CDAA':'MediumAquaMarine','#0000CD':'MediumBlue','#BA55D3':'MediumOrchid','#9370D8':'MediumPurple','#3CB371':'MediumSeaGreen','#7B68EE':'MediumSlateBlue',
      +	'#00FA9A':'MediumSpringGreen','#48D1CC':'MediumTurquoise','#C71585':'MediumVioletRed','#191970':'MidnightBlue','#F5FFFA':'MintCream','#FFE4E1':'MistyRose','#FFE4B5':'Moccasin',
      +	'#FFDEAD':'NavajoWhite','#000080':'Navy','#FDF5E6':'OldLace','#808000':'Olive','#6B8E23':'OliveDrab','#FFA500':'Orange','#FF4500':'OrangeRed','#DA70D6':'Orchid',
      +	'#EEE8AA':'PaleGoldenRod','#98FB98':'PaleGreen','#AFEEEE':'PaleTurquoise','#D87093':'PaleVioletRed','#FFEFD5':'PapayaWhip','#FFDAB9':'PeachPuff',
      +	'#CD853F':'Peru','#FFC0CB':'Pink','#DDA0DD':'Plum','#B0E0E6':'PowderBlue','#800080':'Purple','#FF0000':'Red','#BC8F8F':'RosyBrown','#4169E1':'RoyalBlue',
      +	'#8B4513':'SaddleBrown','#FA8072':'Salmon','#F4A460':'SandyBrown','#2E8B57':'SeaGreen','#FFF5EE':'SeaShell','#A0522D':'Sienna','#C0C0C0':'Silver',
      +	'#87CEEB':'SkyBlue','#6A5ACD':'SlateBlue','#708090':'SlateGray','#708090':'SlateGrey','#FFFAFA':'Snow','#00FF7F':'SpringGreen',
      +	'#4682B4':'SteelBlue','#D2B48C':'Tan','#008080':'Teal','#D8BFD8':'Thistle','#FF6347':'Tomato','#40E0D0':'Turquoise','#EE82EE':'Violet',
      +	'#F5DEB3':'Wheat','#FFFFFF':'White','#F5F5F5':'WhiteSmoke','#FFFF00':'Yellow','#9ACD32':'YellowGreen'
      +};
      +
      +function init() {
      +	var inputColor = convertRGBToHex(tinyMCEPopup.getWindowArg('input_color'));
      +
      +	tinyMCEPopup.resizeToInnerSize();
      +
      +	generatePicker();
      +
      +	if (inputColor) {
      +		changeFinalColor(inputColor);
      +
      +		col = convertHexToRGB(inputColor);
      +
      +		if (col)
      +			updateLight(col.r, col.g, col.b);
      +	}
      +}
      +
      +function insertAction() {
      +	var color = document.getElementById("color").value, f = tinyMCEPopup.getWindowArg('func');
      +
      +	tinyMCEPopup.restoreSelection();
      +
      +	if (f)
      +		f(color);
      +
      +	tinyMCEPopup.close();
      +}
      +
      +function showColor(color, name) {
      +	if (name)
      +		document.getElementById("colorname").innerHTML = name;
      +
      +	document.getElementById("preview").style.backgroundColor = color;
      +	document.getElementById("color").value = color.toLowerCase();
      +}
      +
      +function convertRGBToHex(col) {
      +	var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi");
      +
      +	if (!col)
      +		return col;
      +
      +	var rgb = col.replace(re, "$1,$2,$3").split(',');
      +	if (rgb.length == 3) {
      +		r = parseInt(rgb[0]).toString(16);
      +		g = parseInt(rgb[1]).toString(16);
      +		b = parseInt(rgb[2]).toString(16);
      +
      +		r = r.length == 1 ? '0' + r : r;
      +		g = g.length == 1 ? '0' + g : g;
      +		b = b.length == 1 ? '0' + b : b;
      +
      +		return "#" + r + g + b;
      +	}
      +
      +	return col;
      +}
      +
      +function convertHexToRGB(col) {
      +	if (col.indexOf('#') != -1) {
      +		col = col.replace(new RegExp('[^0-9A-F]', 'gi'), '');
      +
      +		r = parseInt(col.substring(0, 2), 16);
      +		g = parseInt(col.substring(2, 4), 16);
      +		b = parseInt(col.substring(4, 6), 16);
      +
      +		return {r : r, g : g, b : b};
      +	}
      +
      +	return null;
      +}
      +
      +function generatePicker() {
      +	var el = document.getElementById('light'), h = '', i;
      +
      +	for (i = 0; i < detail; i++){
      +		h += '<div id="gs'+i+'" style="background-color:#000000; width:15px; height:3px; border-style:none; border-width:0px;"'
      +		+ ' onclick="changeFinalColor(this.style.backgroundColor)"'
      +		+ ' onmousedown="isMouseDown = true; return false;"'
      +		+ ' onmouseup="isMouseDown = false;"'
      +		+ ' onmousemove="if (isMouseDown && isMouseOver) changeFinalColor(this.style.backgroundColor); return false;"'
      +		+ ' onmouseover="isMouseOver = true;"'
      +		+ ' onmouseout="isMouseOver = false;"'
      +		+ '></div>';
      +	}
      +
      +	el.innerHTML = h;
      +}
      +
      +function generateWebColors() {
      +	var el = document.getElementById('webcolors'), h = '', i;
      +
      +	if (el.className == 'generated')
      +		return;
      +
      +	h += '<table border="0" cellspacing="1" cellpadding="0">'
      +		+ '<tr>';
      +
      +	for (i=0; i<colors.length; i++) {
      +		h += '<td bgcolor="' + colors[i] + '" width="10" height="10">'
      +			+ '<a href="javascript:insertAction();" onfocus="showColor(\'' + colors[i] +  '\');" onmouseover="showColor(\'' + colors[i] +  '\');" style="display:block;width:10px;height:10px;overflow:hidden;">'
      +			+ '</a></td>';
      +		if ((i+1) % 18 == 0)
      +			h += '</tr><tr>';
      +	}
      +
      +	h += '</table>';
      +
      +	el.innerHTML = h;
      +	el.className = 'generated';
      +}
      +
      +function generateNamedColors() {
      +	var el = document.getElementById('namedcolors'), h = '', n, v, i = 0;
      +
      +	if (el.className == 'generated')
      +		return;
      +
      +	for (n in named) {
      +		v = named[n];
      +		h += '<a href="javascript:insertAction();" onmouseover="showColor(\'' + n +  '\',\'' + v + '\');" style="background-color: ' + n + '"><!-- IE --></a>'
      +	}
      +
      +	el.innerHTML = h;
      +	el.className = 'generated';
      +}
      +
      +function dechex(n) {
      +	return strhex.charAt(Math.floor(n / 16)) + strhex.charAt(n % 16);
      +}
      +
      +function computeColor(e) {
      +	var x, y, partWidth, partDetail, imHeight, r, g, b, coef, i, finalCoef, finalR, finalG, finalB;
      +
      +	x = e.offsetX ? e.offsetX : (e.target ? e.clientX - e.target.x : 0);
      +	y = e.offsetY ? e.offsetY : (e.target ? e.clientY - e.target.y : 0);
      +
      +	partWidth = document.getElementById('colors').width / 6;
      +	partDetail = detail / 2;
      +	imHeight = document.getElementById('colors').height;
      +
      +	r = (x >= 0)*(x < partWidth)*255 + (x >= partWidth)*(x < 2*partWidth)*(2*255 - x * 255 / partWidth) + (x >= 4*partWidth)*(x < 5*partWidth)*(-4*255 + x * 255 / partWidth) + (x >= 5*partWidth)*(x < 6*partWidth)*255;
      +	g = (x >= 0)*(x < partWidth)*(x * 255 / partWidth) + (x >= partWidth)*(x < 3*partWidth)*255	+ (x >= 3*partWidth)*(x < 4*partWidth)*(4*255 - x * 255 / partWidth);
      +	b = (x >= 2*partWidth)*(x < 3*partWidth)*(-2*255 + x * 255 / partWidth) + (x >= 3*partWidth)*(x < 5*partWidth)*255 + (x >= 5*partWidth)*(x < 6*partWidth)*(6*255 - x * 255 / partWidth);
      +
      +	coef = (imHeight - y) / imHeight;
      +	r = 128 + (r - 128) * coef;
      +	g = 128 + (g - 128) * coef;
      +	b = 128 + (b - 128) * coef;
      +
      +	changeFinalColor('#' + dechex(r) + dechex(g) + dechex(b));
      +	updateLight(r, g, b);
      +}
      +
      +function updateLight(r, g, b) {
      +	var i, partDetail = detail / 2, finalCoef, finalR, finalG, finalB, color;
      +
      +	for (i=0; i<detail; i++) {
      +		if ((i>=0) && (i<partDetail)) {
      +			finalCoef = i / partDetail;
      +			finalR = dechex(255 - (255 - r) * finalCoef);
      +			finalG = dechex(255 - (255 - g) * finalCoef);
      +			finalB = dechex(255 - (255 - b) * finalCoef);
      +		} else {
      +			finalCoef = 2 - i / partDetail;
      +			finalR = dechex(r * finalCoef);
      +			finalG = dechex(g * finalCoef);
      +			finalB = dechex(b * finalCoef);
      +		}
      +
      +		color = finalR + finalG + finalB;
      +
      +		setCol('gs' + i, '#'+color);
      +	}
      +}
      +
      +function changeFinalColor(color) {
      +	if (color.indexOf('#') == -1)
      +		color = convertRGBToHex(color);
      +
      +	setCol('preview', color);
      +	document.getElementById('color').value = color;
      +}
      +
      +function setCol(e, c) {
      +	try {
      +		document.getElementById(e).style.backgroundColor = c;
      +	} catch (ex) {
      +		// Ignore IE warning
      +	}
      +}
      +
      +tinyMCEPopup.onInit.add(init);
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/image.js b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/image.js
      new file mode 100644
      index 00000000..4982ce0c
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/image.js
      @@ -0,0 +1,245 @@
      +var ImageDialog = {
      +	preInit : function() {
      +		var url;
      +
      +		tinyMCEPopup.requireLangPack();
      +
      +		if (url = tinyMCEPopup.getParam("external_image_list_url"))
      +			document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
      +	},
      +
      +	init : function() {
      +		var f = document.forms[0], ed = tinyMCEPopup.editor;
      +
      +		// Setup browse button
      +		document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image');
      +		if (isVisible('srcbrowser'))
      +			document.getElementById('src').style.width = '180px';
      +
      +		e = ed.selection.getNode();
      +
      +		this.fillFileList('image_list', 'tinyMCEImageList');
      +
      +		if (e.nodeName == 'IMG') {
      +			f.src.value = ed.dom.getAttrib(e, 'src');
      +			f.alt.value = ed.dom.getAttrib(e, 'alt');
      +			f.border.value = this.getAttrib(e, 'border');
      +			f.vspace.value = this.getAttrib(e, 'vspace');
      +			f.hspace.value = this.getAttrib(e, 'hspace');
      +			f.width.value = ed.dom.getAttrib(e, 'width');
      +			f.height.value = ed.dom.getAttrib(e, 'height');
      +			f.insert.value = ed.getLang('update');
      +			this.styleVal = ed.dom.getAttrib(e, 'style');
      +			selectByValue(f, 'image_list', f.src.value);
      +			selectByValue(f, 'align', this.getAttrib(e, 'align'));
      +			this.updateStyle();
      +		}
      +	},
      +
      +	fillFileList : function(id, l) {
      +		var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
      +
      +		l = window[l];
      +
      +		if (l && l.length > 0) {
      +			lst.options[lst.options.length] = new Option('', '');
      +
      +			tinymce.each(l, function(o) {
      +				lst.options[lst.options.length] = new Option(o[0], o[1]);
      +			});
      +		} else
      +			dom.remove(dom.getParent(id, 'tr'));
      +	},
      +
      +	update : function() {
      +		var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, args = {}, el;
      +
      +		tinyMCEPopup.restoreSelection();
      +
      +		if (f.src.value === '') {
      +			if (ed.selection.getNode().nodeName == 'IMG') {
      +				ed.dom.remove(ed.selection.getNode());
      +				ed.execCommand('mceRepaint');
      +			}
      +
      +			tinyMCEPopup.close();
      +			return;
      +		}
      +
      +		if (!ed.settings.inline_styles) {
      +			args = tinymce.extend(args, {
      +				vspace : nl.vspace.value,
      +				hspace : nl.hspace.value,
      +				border : nl.border.value,
      +				align : getSelectValue(f, 'align')
      +			});
      +		} else
      +			args.style = this.styleVal;
      +
      +		tinymce.extend(args, {
      +			src : f.src.value,
      +			alt : f.alt.value,
      +			width : f.width.value,
      +			height : f.height.value
      +		});
      +
      +		el = ed.selection.getNode();
      +
      +		if (el && el.nodeName == 'IMG') {
      +			ed.dom.setAttribs(el, args);
      +		} else {
      +			ed.execCommand('mceInsertContent', false, '<img id="__mce_tmp" />', {skip_undo : 1});
      +			ed.dom.setAttribs('__mce_tmp', args);
      +			ed.dom.setAttrib('__mce_tmp', 'id', '');
      +			ed.undoManager.add();
      +		}
      +
      +		tinyMCEPopup.close();
      +	},
      +
      +	updateStyle : function() {
      +		var dom = tinyMCEPopup.dom, st, v, f = document.forms[0];
      +
      +		if (tinyMCEPopup.editor.settings.inline_styles) {
      +			st = tinyMCEPopup.dom.parseStyle(this.styleVal);
      +
      +			// Handle align
      +			v = getSelectValue(f, 'align');
      +			if (v) {
      +				if (v == 'left' || v == 'right') {
      +					st['float'] = v;
      +					delete st['vertical-align'];
      +				} else {
      +					st['vertical-align'] = v;
      +					delete st['float'];
      +				}
      +			} else {
      +				delete st['float'];
      +				delete st['vertical-align'];
      +			}
      +
      +			// Handle border
      +			v = f.border.value;
      +			if (v || v == '0') {
      +				if (v == '0')
      +					st['border'] = '0';
      +				else
      +					st['border'] = v + 'px solid black';
      +			} else
      +				delete st['border'];
      +
      +			// Handle hspace
      +			v = f.hspace.value;
      +			if (v) {
      +				delete st['margin'];
      +				st['margin-left'] = v + 'px';
      +				st['margin-right'] = v + 'px';
      +			} else {
      +				delete st['margin-left'];
      +				delete st['margin-right'];
      +			}
      +
      +			// Handle vspace
      +			v = f.vspace.value;
      +			if (v) {
      +				delete st['margin'];
      +				st['margin-top'] = v + 'px';
      +				st['margin-bottom'] = v + 'px';
      +			} else {
      +				delete st['margin-top'];
      +				delete st['margin-bottom'];
      +			}
      +
      +			// Merge
      +			st = tinyMCEPopup.dom.parseStyle(dom.serializeStyle(st));
      +			this.styleVal = dom.serializeStyle(st);
      +		}
      +	},
      +
      +	getAttrib : function(e, at) {
      +		var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2;
      +
      +		if (ed.settings.inline_styles) {
      +			switch (at) {
      +				case 'align':
      +					if (v = dom.getStyle(e, 'float'))
      +						return v;
      +
      +					if (v = dom.getStyle(e, 'vertical-align'))
      +						return v;
      +
      +					break;
      +
      +				case 'hspace':
      +					v = dom.getStyle(e, 'margin-left')
      +					v2 = dom.getStyle(e, 'margin-right');
      +					if (v && v == v2)
      +						return parseInt(v.replace(/[^0-9]/g, ''));
      +
      +					break;
      +
      +				case 'vspace':
      +					v = dom.getStyle(e, 'margin-top')
      +					v2 = dom.getStyle(e, 'margin-bottom');
      +					if (v && v == v2)
      +						return parseInt(v.replace(/[^0-9]/g, ''));
      +
      +					break;
      +
      +				case 'border':
      +					v = 0;
      +
      +					tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) {
      +						sv = dom.getStyle(e, 'border-' + sv + '-width');
      +
      +						// False or not the same as prev
      +						if (!sv || (sv != v && v !== 0)) {
      +							v = 0;
      +							return false;
      +						}
      +
      +						if (sv)
      +							v = sv;
      +					});
      +
      +					if (v)
      +						return parseInt(v.replace(/[^0-9]/g, ''));
      +
      +					break;
      +			}
      +		}
      +
      +		if (v = dom.getAttrib(e, at))
      +			return v;
      +
      +		return '';
      +	},
      +
      +	resetImageData : function() {
      +		var f = document.forms[0];
      +
      +		f.width.value = f.height.value = "";	
      +	},
      +
      +	updateImageData : function() {
      +		var f = document.forms[0], t = ImageDialog;
      +
      +		if (f.width.value == "")
      +			f.width.value = t.preloadImg.width;
      +
      +		if (f.height.value == "")
      +			f.height.value = t.preloadImg.height;
      +	},
      +
      +	getImageData : function() {
      +		var f = document.forms[0];
      +
      +		this.preloadImg = new Image();
      +		this.preloadImg.onload = this.updateImageData;
      +		this.preloadImg.onerror = this.resetImageData;
      +		this.preloadImg.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.src.value);
      +	}
      +};
      +
      +ImageDialog.preInit();
      +tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog);
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/link.js b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/link.js
      new file mode 100644
      index 00000000..f67a5bc8
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/link.js
      @@ -0,0 +1,156 @@
      +tinyMCEPopup.requireLangPack();
      +
      +var LinkDialog = {
      +	preInit : function() {
      +		var url;
      +
      +		if (url = tinyMCEPopup.getParam("external_link_list_url"))
      +			document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
      +	},
      +
      +	init : function() {
      +		var f = document.forms[0], ed = tinyMCEPopup.editor;
      +
      +		// Setup browse button
      +		document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser', 'href', 'file', 'theme_advanced_link');
      +		if (isVisible('hrefbrowser'))
      +			document.getElementById('href').style.width = '180px';
      +
      +		this.fillClassList('class_list');
      +		this.fillFileList('link_list', 'tinyMCELinkList');
      +		this.fillTargetList('target_list');
      +
      +		if (e = ed.dom.getParent(ed.selection.getNode(), 'A')) {
      +			f.href.value = ed.dom.getAttrib(e, 'href');
      +			f.linktitle.value = ed.dom.getAttrib(e, 'title');
      +			f.insert.value = ed.getLang('update');
      +			selectByValue(f, 'link_list', f.href.value);
      +			selectByValue(f, 'target_list', ed.dom.getAttrib(e, 'target'));
      +			selectByValue(f, 'class_list', ed.dom.getAttrib(e, 'class'));
      +		}
      +	},
      +
      +	update : function() {
      +		var f = document.forms[0], ed = tinyMCEPopup.editor, e, b;
      +
      +		tinyMCEPopup.restoreSelection();
      +		e = ed.dom.getParent(ed.selection.getNode(), 'A');
      +
      +		// Remove element if there is no href
      +		if (!f.href.value) {
      +			if (e) {
      +				tinyMCEPopup.execCommand("mceBeginUndoLevel");
      +				b = ed.selection.getBookmark();
      +				ed.dom.remove(e, 1);
      +				ed.selection.moveToBookmark(b);
      +				tinyMCEPopup.execCommand("mceEndUndoLevel");
      +				tinyMCEPopup.close();
      +				return;
      +			}
      +		}
      +
      +		tinyMCEPopup.execCommand("mceBeginUndoLevel");
      +
      +		// Create new anchor elements
      +		if (e == null) {
      +			ed.getDoc().execCommand("unlink", false, null);
      +			tinyMCEPopup.execCommand("CreateLink", false, "#mce_temp_url#", {skip_undo : 1});
      +
      +			tinymce.each(ed.dom.select("a"), function(n) {
      +				if (ed.dom.getAttrib(n, 'href') == '#mce_temp_url#') {
      +					e = n;
      +
      +					ed.dom.setAttribs(e, {
      +						href : f.href.value,
      +						title : f.linktitle.value,
      +						target : f.target_list ? getSelectValue(f, "target_list") : null,
      +						'class' : f.class_list ? getSelectValue(f, "class_list") : null
      +					});
      +				}
      +			});
      +		} else {
      +			ed.dom.setAttribs(e, {
      +				href : f.href.value,
      +				title : f.linktitle.value,
      +				target : f.target_list ? getSelectValue(f, "target_list") : null,
      +				'class' : f.class_list ? getSelectValue(f, "class_list") : null
      +			});
      +		}
      +
      +		// Don't move caret if selection was image
      +		if (e.childNodes.length != 1 || e.firstChild.nodeName != 'IMG') {
      +			ed.focus();
      +			ed.selection.select(e);
      +			ed.selection.collapse(0);
      +			tinyMCEPopup.storeSelection();
      +		}
      +
      +		tinyMCEPopup.execCommand("mceEndUndoLevel");
      +		tinyMCEPopup.close();
      +	},
      +
      +	checkPrefix : function(n) {
      +		if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_email')))
      +			n.value = 'mailto:' + n.value;
      +
      +		if (/^\s*www\./i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_external')))
      +			n.value = 'http://' + n.value;
      +	},
      +
      +	fillFileList : function(id, l) {
      +		var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
      +
      +		l = window[l];
      +
      +		if (l && l.length > 0) {
      +			lst.options[lst.options.length] = new Option('', '');
      +
      +			tinymce.each(l, function(o) {
      +				lst.options[lst.options.length] = new Option(o[0], o[1]);
      +			});
      +		} else
      +			dom.remove(dom.getParent(id, 'tr'));
      +	},
      +
      +	fillClassList : function(id) {
      +		var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
      +
      +		if (v = tinyMCEPopup.getParam('theme_advanced_styles')) {
      +			cl = [];
      +
      +			tinymce.each(v.split(';'), function(v) {
      +				var p = v.split('=');
      +
      +				cl.push({'title' : p[0], 'class' : p[1]});
      +			});
      +		} else
      +			cl = tinyMCEPopup.editor.dom.getClasses();
      +
      +		if (cl.length > 0) {
      +			lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');
      +
      +			tinymce.each(cl, function(o) {
      +				lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']);
      +			});
      +		} else
      +			dom.remove(dom.getParent(id, 'tr'));
      +	},
      +
      +	fillTargetList : function(id) {
      +		var dom = tinyMCEPopup.dom, lst = dom.get(id), v;
      +
      +		lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');
      +		lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_same'), '_self');
      +		lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_blank'), '_blank');
      +
      +		if (v = tinyMCEPopup.getParam('theme_advanced_link_targets')) {
      +			tinymce.each(v.split(','), function(v) {
      +				v = v.split('=');
      +				lst.options[lst.options.length] = new Option(v[0], v[1]);
      +			});
      +		}
      +	}
      +};
      +
      +LinkDialog.preInit();
      +tinyMCEPopup.onInit.add(LinkDialog.init, LinkDialog);
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/source_editor.js b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/source_editor.js
      new file mode 100644
      index 00000000..27932861
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/js/source_editor.js
      @@ -0,0 +1,62 @@
      +tinyMCEPopup.requireLangPack();
      +tinyMCEPopup.onInit.add(onLoadInit);
      +
      +function saveContent() {
      +	tinyMCEPopup.editor.setContent(document.getElementById('htmlSource').value, {source_view : true});
      +	tinyMCEPopup.close();
      +}
      +
      +function onLoadInit() {
      +	tinyMCEPopup.resizeToInnerSize();
      +
      +	// Remove Gecko spellchecking
      +	if (tinymce.isGecko)
      +		document.body.spellcheck = tinyMCEPopup.editor.getParam("gecko_spellcheck");
      +
      +	document.getElementById('htmlSource').value = tinyMCEPopup.editor.getContent({source_view : true});
      +
      +	if (tinyMCEPopup.editor.getParam("theme_advanced_source_editor_wrap", true)) {
      +		setWrap('soft');
      +		document.getElementById('wraped').checked = true;
      +	}
      +
      +	resizeInputs();
      +}
      +
      +function setWrap(val) {
      +	var v, n, s = document.getElementById('htmlSource');
      +
      +	s.wrap = val;
      +
      +	if (!tinymce.isIE) {
      +		v = s.value;
      +		n = s.cloneNode(false);
      +		n.setAttribute("wrap", val);
      +		s.parentNode.replaceChild(n, s);
      +		n.value = v;
      +	}
      +}
      +
      +function toggleWordWrap(elm) {
      +	if (elm.checked)
      +		setWrap('soft');
      +	else
      +		setWrap('off');
      +}
      +
      +var wHeight=0, wWidth=0, owHeight=0, owWidth=0;
      +
      +function resizeInputs() {
      +	var el = document.getElementById('htmlSource');
      +
      +	if (!tinymce.isIE) {
      +		 wHeight = self.innerHeight - 65;
      +		 wWidth = self.innerWidth - 16;
      +	} else {
      +		 wHeight = document.body.clientHeight - 70;
      +		 wWidth = document.body.clientWidth - 16;
      +	}
      +
      +	el.style.height = Math.abs(wHeight) + 'px';
      +	el.style.width  = Math.abs(wWidth) + 'px';
      +}
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/langs/typecho.js b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/langs/typecho.js
      new file mode 100644
      index 00000000..5361afd9
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/langs/typecho.js
      @@ -0,0 +1,2 @@
      +/** hack js laguage pack */
      +//tinymce.ScriptLoader.load(tinymce.baseURL + '/langs.php');
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/langs/typecho_dlg.js b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/langs/typecho_dlg.js
      new file mode 100644
      index 00000000..8b137891
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/langs/typecho_dlg.js
      @@ -0,0 +1 @@
      +
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/link.htm b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/link.htm
      new file mode 100644
      index 00000000..a78bd334
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/link.htm
      @@ -0,0 +1,63 @@
      +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
      +<html xmlns="http://www.w3.org/1999/xhtml">
      +<head>
      +	<title>{#advanced_dlg.link_title}</title>
      +	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
      +	<script type="text/javascript" src="../../utils/mctabs.js"></script>
      +	<script type="text/javascript" src="../../utils/form_utils.js"></script>
      +	<script type="text/javascript" src="../../utils/validate.js"></script>
      +	<script type="text/javascript" src="js/link.js"></script>
      +</head>
      +<body id="link" style="display: none">
      +<form onsubmit="LinkDialog.update();return false;" action="#">
      +	<div class="tabs">
      +		<ul>
      +			<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advanced_dlg.link_title}</a></span></li>
      +		</ul>
      +	</div>
      +
      +	<div class="panel_wrapper">
      +		<div id="general_panel" class="panel current">
      +
      +		<table border="0" cellpadding="4" cellspacing="0">
      +          <tr>
      +            <td class="nowrap"><label for="href">{#advanced_dlg.link_url}</label></td>
      +            <td><table border="0" cellspacing="0" cellpadding="0"> 
      +				  <tr> 
      +					<td><input id="href" name="href" type="text" class="mceFocus" value="" style="width: 200px" onchange="LinkDialog.checkPrefix(this);" /></td> 
      +					<td id="hrefbrowsercontainer">&nbsp;</td>
      +				  </tr> 
      +				</table></td>
      +          </tr>
      +		  <tr>
      +			<td><label for="link_list">{#advanced_dlg.link_list}</label></td>
      +			<td><select id="link_list" name="link_list" onchange="document.getElementById('href').value=this.options[this.selectedIndex].value;"></select></td>
      +		  </tr>
      +		<tr>
      +			<td><label id="targetlistlabel" for="targetlist">{#advanced_dlg.link_target}</label></td>
      +			<td><select id="target_list" name="target_list"></select></td>
      +		</tr>
      +          <tr>
      +            <td class="nowrap"><label for="linktitle">{#advanced_dlg.link_titlefield}</label></td>
      +            <td><input id="linktitle" name="linktitle" type="text" value="" style="width: 200px" /></td>
      +          </tr>
      +			<tr>
      +				<td><label for="class_list">{#class_name}</label></td>
      +				<td><select id="class_list" name="class_list"></select></td>
      +			</tr>
      +        </table>
      +		</div>
      +	</div>
      +
      +	<div class="mceActionPanel">
      +		<div style="float: left">
      +			<input type="submit" id="insert" name="insert" value="{#insert}" />
      +		</div>
      +
      +		<div style="float: right">
      +			<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
      +		</div>
      +	</div>
      +</form>
      +</body>
      +</html>
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/content.css b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/content.css
      new file mode 100644
      index 00000000..33b97689
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/content.css
      @@ -0,0 +1,36 @@
      +body, td, pre {color:#000; font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif; font-size:13px; line-height: 18px; margin:8px;}
      +body {background:#FFF;}
      +body.mceForceColors {background:#FFF; color:#000;}
      +h1 {font-size: 2em}
      +h2 {font-size: 1.5em}
      +h3 {font-size: 1.17em}
      +h4 {font-size: 1em}
      +h5 {font-size: .83em}
      +h6 {font-size: .75em}
      +.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;}
      +a.mceItemAnchor {width:12px; line-height:6px; overflow:hidden; padding-left:12px; background:url(img/items.gif) no-repeat bottom left;}
      +img.mceItemAnchor {width:12px; height:12px; background:url(img/items.gif) no-repeat;}
      +img {border:0;}
      +table {cursor:default}
      +table td, table th {cursor:text}
      +ins {border-bottom:1px solid green; text-decoration: none; color:green}
      +del {color:red; text-decoration:line-through}
      +cite {border-bottom:1px dashed blue}
      +acronym {border-bottom:1px dotted #CCC; cursor:help}
      +abbr, html\:abbr {border-bottom:1px dashed #CCC; cursor:help}
      +code {display: block; border: 1px solid #AAAAAA; background: #F1ECDD; color: #000; line-height: 16px; overflow: auto;
      +	font-family: 'andale mono','lucida console',monospace; font-size: 12px; padding: 10px; margin: 10px 0;}
      +pre {margin: 10px 0; padding: 5px; display: block; font-size: 12px;
      +	background: #EAF7FF; border: 1px solid #D5E7F0; font-family: "Courier New",Helvetica,sans-serif;}
      +
      +/* IE */
      +* html body {
      +scrollbar-3dlight-color:#F0F0EE;
      +scrollbar-arrow-color:#676662;
      +scrollbar-base-color:#F0F0EE;
      +scrollbar-darkshadow-color:#DDD;
      +scrollbar-face-color:#E0E0DD;
      +scrollbar-highlight-color:#F0F0EE;
      +scrollbar-shadow-color:#F0F0EE;
      +scrollbar-track-color:#F5F5F5;
      +}
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/dialog.css b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/dialog.css
      new file mode 100644
      index 00000000..9c955105
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/dialog.css
      @@ -0,0 +1,130 @@
      +/* Generic */
      +body {
      +font-family:"Lucida Grande","Lucida Sans Unicode",Tahoma,Verdana; font-size:11px;
      +scrollbar-3dlight-color:#F0F0EE;
      +scrollbar-arrow-color:#676662;
      +scrollbar-base-color:#F0F0EE;
      +scrollbar-darkshadow-color:#DDDDDD;
      +scrollbar-face-color:#E0E0DD;
      +scrollbar-highlight-color:#F0F0EE;
      +scrollbar-shadow-color:#F0F0EE;
      +scrollbar-track-color:#F5F5F5;
      +background:#DEE4C5;
      +padding:0;
      +margin:8px 8px 0 8px;
      +}
      +
      +html {background:#DEE4C5;}
      +td {font-size:9pt; padding: 0 6px 0 0; line-height: 32px;}
      +textarea {resize:none;outline:none;}
      +a:link, a:visited {color:black;}
      +a:hover {color:#2B6FB6;}
      +
      +/* Forms */
      +fieldset {margin:0; padding:4px; border:none; font-family:"Lucida Grande","Lucida Sans Unicode",Tahoma,Verdana; font-size:10pt;}
      +legend {color:#BD6800; font-weight:bold; margin-top: 10px;}
      +label.msg {display:none;}
      +label.invalid {color:#EE0000; display:inline;}
      +input.invalid {border:1px solid #EE0000;}
      +input {background:#FFF; border:1px solid #CCC;}
      +input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:9pt;}
      +input, select, textarea {border:1px solid #808080;}
      +input.radio {border:1px none #000000; background:transparent; vertical-align:middle;}
      +input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;}
      +.input_noborder {border:0;}
      +
      +/* Buttons */
      +#insert, #cancel, input.button, .updateButton {
      +border:0; margin:0; padding:0;
      +font-weight:bold;
      +width:94px; height:26px;
      +background: #fff url(./img/sprite.gif) repeat-x scroll center top;
      +border:1px solid #AFBA7C;
      +cursor:pointer;
      +padding-bottom:2px;
      +-moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -moz-border-radius-bottomleft: 3px; -moz-border-radius-bottomright: 3px;
      +-webkit-border-top-left-radius: 3px; -webkit-border-top-right-radius: 3px; -webkit-border-bottom-left-radius: 3px; -webkit-border-bottom-right-radius: 3px;
      +/* hope IE support border radius, God save me! */
      +border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px;
      +}
      +
      +#insert:hover, #cancel:hover, input.button:hover, .updateButton:hover {
      +border:1px solid #545c30;
      +background: #fff url(./img/sprite.gif) bottom repeat-x;
      +}
      +
      +/* Browse */
      +a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;}
      +.mceOldBoxModel a.browse span {width:22px; height:20px;}
      +a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;}
      +a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
      +a.browse:hover span.disabled {border:1px solid white; background-color:transparent;}
      +a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;}
      +.mceOldBoxModel a.pickcolor span {width:21px; height:17px;}
      +a.pickcolor:hover span {background-color:#B2BBD0;}
      +a.pickcolor:hover span.disabled {}
      +
      +/* Charmap */
      +table.charmap {border:1px solid #AAA; text-align:center}
      +td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;}
      +#charmap a {display:block; color:#000; text-decoration:none; border:0}
      +#charmap a:hover {background:#CCC;color:#2B6FB6}
      +#charmap #codeN {font-size:9pt; font-family:Arial,Helvetica,sans-serif; text-align:center}
      +#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center}
      +
      +/* Source */
      +.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;}
      +.mceActionPanel {margin-top:5px;}
      +
      +/* Tabs classes */
      +.tabs {width:100%; height:26px; line-height:normal; }
      +.tabs ul {margin:0; padding:0; list-style:none;}
      +.tabs li {float:left; margin:0 2px 0 0; line-height:25px; height:26px; display:block;
      +-moz-border-radius-topleft: 3px;
      +-moz-border-radius-topright: 3px;
      +-webkit-border-top-left-radius: 3px;
      +-webkit-border-top-right-radius: 3px;
      +
      +/* hope IE support border radius, God save me! */
      +border-bottom-top-radius: 3px;
      +border-bottom-top-radius: 3px;}
      +.tabs li.current {background:#f7fbe9 url(../../../../../../images/btn.png) top repeat-x;}
      +.tabs span {float:left; display:block; padding:0px 9pt;}
      +.tabs .current span {}
      +.tabs a {text-decoration:none; font-size:13px; font-weight:bold;}
      +.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;}
      +
      +/* Panels */
      +.panel_wrapper div.panel {display:none;}
      +.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;}
      +.panel_wrapper {padding:9pt; padding-top:5px; clear:both; background:#f7fbe9;}
      +
      +/* Columns */
      +.column {float:left;}
      +.properties {width:100%;}
      +.properties .column1 {}
      +.properties .column2 {text-align:left;}
      +
      +/* Titles */
      +h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;}
      +h3 {font-size:14px;}
      +.title {font-size:12px; font-weight:bold; color:#BD6800;}
      +
      +/* Dialog specific */
      +#link .panel_wrapper, #link div.current {height:90px;}
      +#image .panel_wrapper, #image div.current {height:220px;}
      +#plugintable thead {font-weight:bold; background:#DDD;}
      +#plugintable, #about #plugintable td {border:1px solid #919B9C;}
      +#plugintable {width:96%; margin-top:9pt;}
      +#pluginscontainer {height:290px; overflow:auto;}
      +#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;}
      +#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}
      +#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}
      +#colorpicker #light div {overflow:hidden;}
      +#colorpicker #previewblock {float:right; padding-left:9pt; height:20px;}
      +#colorpicker .panel_wrapper div.current {height:190px;}
      +#colorpicker td {padding:0;}
      +#colorpicker #namedcolors {width:150px;}
      +#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}
      +#colorpicker #colornamecontainer {margin-top:5px;}
      +#colorpicker #picker_panel fieldset {margin:auto;width:325px;}
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/img/items.gif b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/img/items.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..2eafd7954e6ebf24204b01db94b39299426d09da
      GIT binary patch
      literal 70
      zcmZ?wbhEHb<YwSzn8*ME|3Tmk5G(#<VPs%nX3znNg5({T#9MmG)lT2O)m+%L<jU2W
      QWB(Hum`qCgDav3C08tAXbN~PV
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/img/menu_arrow.gif b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/img/menu_arrow.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..85e31dfb2d0454de352d87fe95f7003f22c87992
      GIT binary patch
      literal 68
      zcmZ?wbhEHb6k!lyXkcUjg8%>jEB<5wG8q|kKzxu41Cw-5|H{*E`4`XOxxoD9Y}F^Z
      SLTQbO*E^TJI;F+RU=09Vu@yA{
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/img/menu_check.gif b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/img/menu_check.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..adfdddccd7cac62a17d68873fa53c248bff8351a
      GIT binary patch
      literal 70
      zcmZ?wbhEHb6k!lyXkcUjg8%>jEB<5wG8q|kKzxu41Cwk||H{*E`4`XG(j;}D)%x|1
      U%)82UlRJ8EoZ9xTT7<zG0H3rM{r~^~
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/img/progress.gif b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/img/progress.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..5bb90fd6a49107a321c35b9cee4a7b810314b51f
      GIT binary patch
      literal 1787
      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
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/img/sprite.gif b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/img/sprite.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..623120723449bb7539ff6cdcc3eea69b7382cbab
      GIT binary patch
      literal 604
      zcmZ?wbhEHb)L_tHxXQrr{rAgnzg~R#`Sk10XP<vO`TYIyr*98Ge7*Pa>x1`S?!Nnc
      z`|YP&Z$939{qe@D57%D4zxv|c<>zlNJ%4lI>FaaPUY~#R>g=PJryjpN{qV(!2hWe+
      ze|GHt)1&vE9KQSb(4EHzZa><8^WmOb5BJ`9u>1P`UDxjIxO#W{)jM0S+}^@KC7}3|
      zg@K*nKZ6d)JdmFl*#0{-6nN-J^?M{GoXoMBe<7pTVQtj<8*8p<y{Ov%U_-?p)fwks
      zY^gfyCVub3jvBx9$9aG3sXPDv_g9X_rskH`w)STBuI`@RzWxb4oRg<aoi=^O%&A;+
      z=FXeHVBw;9+)I}&U$Ju4>g7D^)^FIjY4es1yxVu|+_ihp-kp304jwvu<mj<O{3lPH
      zK6Ccm`O^ZIE?>EN?fQ)?g17J7y?6h?!@ELHo<4j2;^nJnB5&Wl|M2nC=l8<jzW@07
      z>-V1@qW>9~xnw*xBpl%85Y~!0v0<TetC*749FL8Qj&=(hX52Zkaq;nf1<N!E&rM5C
      zPSyyXcICjPrKhJGB%dnTxp3Lp*%rmG?o>{0K3_TCp_xn8OC+OxvBzYs*i&0FgZKj$
      zd(HLQx+-*~{HCnCr?#%XzCPNyL)LrSnwy(5PBulH-nRDk_JYUTL>;%UySuyM^Q*1a
      zi`L)Y-@wc*_h)*`!^0iI+Hq$j3OkQaQ1+hZv$H5gc!qKIy)!#Er=L}K>X!4}wdLjI
      J#mx*1)&MAyMUnsj
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/img/tabs.gif b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/img/tabs.gif
      new file mode 100644
      index 0000000000000000000000000000000000000000..ce4be63558b02e9837b995d2b9dd540ce6d61a6f
      GIT binary patch
      literal 1326
      zcmV+}1=0FPNk%w1VJrb!0M!5h00030|Ns2_{xV8plA^M<#LbbXwB+gR<LT_}@$;dx
      zyQ#Uq<LT>>o1FUl`^eGF(ALoK@apvR@ALES^78HR@$B&M>-P5Y_4V=e^zifZ@AC5Q
      z@$v2U_Ve}i^85Sw`1tnr_VoSz{QUg;`uh3!`1kSe-|p?^>+0k0?&$36<?-<A@bBv7
      z;@aor-RtP#=HuPz=HTe%-}CYA_Vn`p{{H;@{QCO(|Ns9000000000000000000000
      z00000A^8LW001}uEC2ui04xDo000L6KoewPC>oE*q;kn@I-k&}bV{vSuh^^>3n?4|
      z;IMd1E}PHjw0g~MyWjA*d`_>=7l@jE&+q&HfPsR8goTEOh>41ejE#<ujs_wkHY1jo
      zn3<ZJoSmMZprN9pq@|{(sHv)}s0KGAu(7hUw6(UkxVgH!yuH4^z`?@9#Kpu0B_PVn
      z%+1cv(9zP<)YaD4*xB0K+}+;a-UcBd9p&cd=;`X~?CtLF@bU8V^!4`l`1$(y2IUw3
      z00RmfNU)&6g9sBUT*$DY!-o(fN}NbhqJaw@FlgM!v7^V2AVZ2ANwTELlPFWFT*<Pf
      z%a<(;Xv{#frp=o;bL!m5v!~DhpFo2O9ZIyQ(W6L{9yLHygVU!_qe`7hwW`&tShH%~
      z%C)Q4uVBN99UInw1PK$;s$I*rt=qS7<I0^&x31m0c=PJr%eSvzz6R1#7)-dZ;lqd%
      zD_+dFvE#>(BTJr4xw7TUm@OOFuz`c;&!9t#9!<Km>C>oFt6t5zwd>cgW6Pc$+rZ!o
      zxO3~?&AYen-@t<lA5Ofu@#DyoD__pM`EmoeEl8hEy}I@5*t2Wj&b_<$@8H9WA5Xr#
      z`SaxsSct&Bz5Dm@<IA5<zrOwZ`19-E&%eL_{{RLE;1&cHXyAbeCaB<o3`*eu1Or4U
      z;e-@cXyJtzW~kwY9Cqmc;fElGDB_4DmS|#$5E7u`iY&J1;)^iGDC3MY)@b96IOeG1
      zjy(40<BvWX0OXKF7HQ;>NG7S|k~SJ3z>`o$Ddm(@N@>THSZ1l^mRxq}B^ypwDdw0~
      zere{JXr`&=nrnnf=9^WrDd(JY)@f%NZo;W2ly~;&=bwOLndhE*25RV`h$b4qpoG4u
      z=%bKEiYB9tjw$J-m}V*mrIp61>8GHE8V0AGPATfCs76X^sZplt>Z^dR%IcG_)@rMq
      zvd((zuDp7gE33T*D{LLV&T8zj$R?}ovdlK?EUU#nEA6z@R%`9G*b0Edw%m5>?YH2D
      zEAF`DmTT_0=%%ax?z-%@>+ZYox~sqgCd6y+z4+#<@4o!@>u<RU6ac}$1Q%@Z!3ZaO
      za19JBpzy;GM=bHg1%E(;0TgGf@x~l?OaluTcP#SAB$s^e3@U_d^2#i??D7gPsO<90
      zG}jz4%re`o^Ugfu%R&q}_bl|#M30*S&_yS$w9+TY5cJYeN8NJMPfKm})f=neLe*Gz
      z?RCN`z`*s_WS6~f*khZm_S)^D&_dd5$1V4`FT6eX-FWA%_ulIc0D%L12aY!ZehY4R
      z+$zF-_~J`HsW{`15AAs5lv_P{<(MmddFGr8y?N)L+x&Uxq_;eJ>8O)@dg`oiyn5@f
      zOZ<B5v?n}Ed+oRre0%P^@4I{Nz}x$K@Wi(}eDTO9ul(}NH}CxO&_^%*^wd{x{q@*q
      kul@Gickli8;D;~%_~e&w{`tx`sQ&uwx9|S@@CN|^JHwS1<NyEw
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/ui.css b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/ui.css
      new file mode 100644
      index 00000000..283183a4
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/skins/typecho/ui.css
      @@ -0,0 +1,228 @@
      +/* Reset */
      +.typechoSkin table, .typechoSkin tbody, .typechoSkin a, .typechoSkin img, .typechoSkin tr, .typechoSkin div, .typechoSkin td, .typechoSkin iframe, .typechoSkin span, .typechoSkin *, .typechoSkin .mceText {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000; vertical-align:baseline; width:auto; border-collapse:separate; text-align:left}
      +.typechoSkin a:hover, .typechoSkin a:link, .typechoSkin a:visited, .typechoSkin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000}
      +.typechoSkin table td {vertical-align:middle}
      +
      +/* Containers */
      +.typechoSkin table {background:#D3DBB3}
      +.typechoSkin iframe {display:block; background:#FFF}
      +.typechoSkin .mceToolbar {height:26px}
      +.typechoSkin .mceLeft {text-align:left}
      +.typechoSkin .mceRight {text-align:right}
      +
      +/* External */
      +.typechoSkin .mceExternalToolbar {position:absolute; border:1px solid #CCC; border-bottom:0; display:none;}
      +.typechoSkin .mceExternalToolbar td.mceToolbar {padding-right:13px;}
      +.typechoSkin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0}
      +
      +/* Layout */
      +.typechoSkin table.mceLayout {border:0; border-left:1px solid #C1CD94; border-right:1px solid #C1CD94}
      +.typechoSkin table.mceLayout tr.mceFirst td {border-top:1px solid #C1CD94}
      +.typechoSkin table.mceLayout tr.mceLast td {border-bottom:1px solid #C1CD94}
      +.typechoSkin table.mceToolbar, .typechoSkin tr.mceFirst .mceToolbar tr td, .typechoSkin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding: 2px 0;}
      +.typechoSkin td.mceToolbar {padding-top:1px; vertical-align:top}
      +.typechoSkin .mceIframeContainer {border-top:1px solid #C1CD94; border-bottom:1px solid #C1CD94}
      +.typechoSkin .mceStatusbar {font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; color:#000; display:block; height:20px}
      +.typechoSkin .mceStatusbar div {float:left; margin:2px}
      +.typechoSkin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize}
      +.typechoSkin .mceStatusbar a:hover {text-decoration:underline}
      +.typechoSkin table.mceToolbar {margin-left:7px}
      +.typechoSkin span.mceIcon, .typechoSkin img.mceIcon {display:block; width:20px; height:20px}
      +.typechoSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}
      +.typechoSkin td.mceCenter {text-align:center;}
      +.typechoSkin td.mceCenter table {margin:0 auto; text-align:left;}
      +.typechoSkin td.mceRight table {margin:0 0 0 auto;}
      +
      +/* Button */
      +.typechoSkin .mceButton {display:block; border:1px solid #AFBA7C; width:20px; height:20px; margin-right:1px; padding: 2px 3px;
      +background: #fff url(./img/sprite.gif) top repeat-x;
      +-moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -moz-border-radius-bottomleft: 3px; -moz-border-radius-bottomright: 3px;
      +-webkit-border-top-left-radius: 3px; -webkit-border-top-right-radius: 3px; -webkit-border-bottom-left-radius: 3px; -webkit-border-bottom-right-radius: 3px;
      +/* hope IE support border radius, God save me! */
      +border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px;}
      +.typechoSkin a.mceButtonEnabled:hover {border:1px solid #545c30; background: #fff url(./img/sprite.gif) bottom repeat-x; }
      +.typechoSkin a.mceButtonActive, .typechoSkin a.mceButtonSelected {border:1px solid #545c30; background: #fff url(./img/sprite.gif) bottom repeat-x; }
      +.typechoSkin .mceButtonDisabled .mceIcon {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
      +.typechoSkin .mceButtonLabeled {width:auto}
      +.typechoSkin .mceButtonLabeled span.mceIcon {float:left}
      +.typechoSkin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica}
      +.typechoSkin .mceButtonDisabled .mceButtonLabel {color:#888}
      +
      +/* Separator */
      +.typechoSkin .mceSeparator {display:block; width:2px; height:20px; margin:2px 2px 0 4px}
      +
      +/* ListBox */
      +.typechoSkin .mceListBox {direction:ltr}
      +.typechoSkin .mceListBox, .typechoSkin .mceListBox a {display:block}
      +.typechoSkin .mceListBox .mceText {padding-left:4px; width:70px; text-align:left; border:1px solid #CCC; border-right:0; background:#FFF; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; height:20px; line-height:20px; overflow:hidden}
      +.typechoSkin .mceListBox .mceOpen {width:9px; height:20px; background:url(../../img/icons.gif) -741px 0; margin-right:2px; border:1px solid #CCC;}
      +.typechoSkin table.mceListBoxEnabled:hover .mceText, .typechoSkin .mceListBoxHover .mceText, .typechoSkin .mceListBoxSelected .mceText {border:1px solid #A2ABC0; border-right:0; background:#FFF}
      +.typechoSkin table.mceListBoxEnabled:hover .mceOpen, .typechoSkin .mceListBoxHover .mceOpen, .typechoSkin .mceListBoxSelected .mceOpen {background-color:#FFF; border:1px solid #A2ABC0}
      +.typechoSkin .mceListBoxDisabled a.mceText {color:gray; background-color:transparent;}
      +.typechoSkin .mceListBoxMenu {overflow:auto; overflow-x:hidden}
      +.typechoSkin .mceOldBoxModel .mceListBox .mceText {height:22px}
      +.typechoSkin .mceOldBoxModel .mceListBox .mceOpen {width:11px; height:22px;}
      +.typechoSkin select.mceNativeListBox {font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:7pt; background:#F0F0EE; border:1px solid gray; margin-right:2px;}
      +
      +/* SplitButton */
      +.typechoSkin .mceSplitButton {width:32px; height:20px; direction:ltr}
      +.typechoSkin .mceSplitButton a, .typechoSkin .mceSplitButton span {height:20px; display:block}
      +.typechoSkin .mceSplitButton a.mceAction {width:20px; border:1px solid #999; border-right:0; padding: 2px 3px; 
      +background: #fff url(./img/sprite.gif) top repeat-x;
      +-moz-border-radius-topleft: 3px; -moz-border-radius-bottomleft: 3px;
      +-webkit-border-top-left-radius: 3px; -webkit-border-bottom-left-radius: 3px;
      +/* hope IE support border radius, God save me! */
      +border-top-left-radius: 3px; border-bottom-left-radius: 3px;}
      +.typechoSkin .mceSplitButton span.mceAction {width:20px; background:url(../../img/icons.gif) 20px 20px;}
      +.typechoSkin .mceSplitButton a.mceOpen {width:9px; background: #fff url(./img/sprite.gif) top repeat-x; border:1px solid #999; padding: 2px 1px; margin-right: 1px;
      +-moz-border-radius-topright: 3px; -moz-border-radius-bottomright: 3px;
      +-webkit-border-top-right-radius: 3px; -webkit-border-bottom-right-radius: 3px;
      +/* hope IE support border radius, God save me! */
      +border-top-right-radius: 3px; border-bottom-right-radius: 3px;}
      +.typechoSkin .mceSplitButton span.mceOpen {background:url(../../img/icons.gif) -741px 0;}
      +.typechoSkin table.mceSplitButtonEnabled:hover a.mceAction, .typechoSkin .mceSplitButtonHover a.mceAction, .typechoSkin .mceSplitButtonSelected a.mceAction {border:1px solid #555; border-right:0; background: #fff url(./img/sprite.gif) bottom repeat-x;}
      +.typechoSkin table.mceSplitButtonEnabled:hover a.mceOpen, .typechoSkin .mceSplitButtonHover a.mceOpen, .typechoSkin .mceSplitButtonSelected a.mceOpen {background: #fff url(./img/sprite.gif) bottom repeat-x; border:1px solid #555;}
      +.typechoSkin .mceSplitButtonDisabled .mceAction, .typechoSkin .mceSplitButtonDisabled a.mceOpen {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}
      +.typechoSkin .mceSplitButtonActive a.mceAction {border:1px solid #0A246A; background-color:#C2CBE0}
      +.typechoSkin .mceSplitButtonActive a.mceOpen {border-left:0;}
      +
      +/* ColorSplitButton */
      +.typechoSkin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray}
      +.typechoSkin .mceColorSplitMenu td {padding:2px}
      +.typechoSkin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080}
      +.typechoSkin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px}
      +.typechoSkin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF}
      +.typechoSkin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2}
      +.typechoSkin a.mceMoreColors:hover {border:1px solid #0A246A}
      +.typechoSkin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a}
      +.typechoSkin .mce_forecolor span.mceAction, .typechoSkin .mce_backcolor span.mceAction {overflow:hidden; height:16px}
      +
      +/* Menu */
      +.typechoSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #D4D0C8}
      +.typechoSkin .mceNoIcons span.mceIcon {width:0;}
      +.typechoSkin .mceNoIcons a .mceText {padding-left:10px}
      +.typechoSkin .mceMenu table {background:#FFF}
      +.typechoSkin .mceMenu a, .typechoSkin .mceMenu span, .typechoSkin .mceMenu {display:block}
      +.typechoSkin .mceMenu td {height:20px}
      +.typechoSkin .mceMenu a {position:relative;padding:3px 0 4px 0}
      +.typechoSkin .mceMenu .mceText {position:relative; display:block; font-family:Tahoma,Verdana,Arial,Helvetica; color:#000; cursor:default; margin:0; padding:0 25px 0 25px; display:block}
      +.typechoSkin .mceMenu span.mceText, .typechoSkin .mceMenu .mcePreview {font-size:11px}
      +.typechoSkin .mceMenu pre.mceText {font-family:Monospace}
      +.typechoSkin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;}
      +.typechoSkin .mceMenu .mceMenuItemEnabled a:hover, .typechoSkin .mceMenu .mceMenuItemActive {background-color:#dbecf3}
      +.typechoSkin td.mceMenuItemSeparator {background:#DDD; height:1px}
      +.typechoSkin .mceMenuItemTitle a {border:0; background:#EEE; border-bottom:1px solid #DDD}
      +.typechoSkin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px}
      +.typechoSkin .mceMenuItemDisabled .mceText {color:#888}
      +.typechoSkin .mceMenuItemSelected .mceIcon {background:url(img/menu_check.gif)}
      +.typechoSkin .mceNoIcons .mceMenuItemSelected a {background:url(img/menu_arrow.gif) no-repeat -6px center}
      +.typechoSkin .mceMenu span.mceMenuLine {display:none}
      +.typechoSkin .mceMenuItemSub a {background:url(img/menu_arrow.gif) no-repeat top right;}
      +
      +/* Progress,Resize */
      +.typechoSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=50)'; filter:alpha(opacity=50); background:#FFF}
      +.typechoSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}
      +.typechoSkin .mcePlaceHolder {border:1px dotted gray}
      +
      +/* Formats */
      +.typechoSkin .mce_formatPreview a {font-size:10px}
      +.typechoSkin .mce_p span.mceText {}
      +.typechoSkin .mce_address span.mceText {font-style:italic}
      +.typechoSkin .mce_pre span.mceText {font-family:monospace}
      +.typechoSkin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em}
      +.typechoSkin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em}
      +.typechoSkin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em}
      +.typechoSkin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em}
      +.typechoSkin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em}
      +.typechoSkin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em}
      +
      +/* Theme */
      +.typechoSkin span.mce_bold {background-position:0 0}
      +.typechoSkin span.mce_italic {background-position:-60px 0}
      +.typechoSkin span.mce_underline {background-position:-140px 0}
      +.typechoSkin span.mce_strikethrough {background-position:-120px 0}
      +.typechoSkin span.mce_undo {background-position:-160px 0}
      +.typechoSkin span.mce_redo {background-position:-100px 0}
      +.typechoSkin span.mce_cleanup {background-position:-40px 0}
      +.typechoSkin span.mce_bullist {background-position:-20px 0}
      +.typechoSkin span.mce_numlist {background-position:-80px 0}
      +.typechoSkin span.mce_justifyleft {background-position:-460px 0}
      +.typechoSkin span.mce_justifyright {background-position:-480px 0}
      +.typechoSkin span.mce_justifycenter {background-position:-420px 0}
      +.typechoSkin span.mce_justifyfull {background-position:-440px 0}
      +.typechoSkin span.mce_anchor {background-position:-200px 0}
      +.typechoSkin span.mce_indent {background-position:-400px 0}
      +.typechoSkin span.mce_outdent {background-position:-540px 0}
      +.typechoSkin span.mce_link {background-position:-500px 0}
      +.typechoSkin span.mce_unlink {background-position:-640px 0}
      +.typechoSkin span.mce_sub {background-position:-600px 0}
      +.typechoSkin span.mce_sup {background-position:-620px 0}
      +.typechoSkin span.mce_removeformat {background-position:-580px 0}
      +.typechoSkin span.mce_newdocument {background-position:-520px 0}
      +.typechoSkin span.mce_image {background-position:-380px 0}
      +.typechoSkin span.mce_help {background-position:-340px 0}
      +.typechoSkin span.mce_code {background-position:-260px 0}
      +.typechoSkin span.mce_hr {background-position:-360px 0}
      +.typechoSkin span.mce_visualaid {background-position:-660px 0}
      +.typechoSkin span.mce_charmap {background-position:-240px 0}
      +.typechoSkin span.mce_paste {background-position:-560px 0}
      +.typechoSkin span.mce_copy {background-position:-700px 0}
      +.typechoSkin span.mce_cut {background-position:-680px 0}
      +.typechoSkin span.mce_blockquote {background-position:-220px 0}
      +.typechoSkin .mce_forecolor span.mceAction {background-position:-720px 0}
      +.typechoSkin .mce_backcolor span.mceAction {background-position:-760px 0}
      +.typechoSkin span.mce_forecolorpicker {background-position:-720px 0}
      +.typechoSkin span.mce_backcolorpicker {background-position:-760px 0}
      +
      +/* Plugins */
      +.typechoSkin span.mce_advhr {background-position:-0px -20px}
      +.typechoSkin span.mce_ltr {background-position:-20px -20px}
      +.typechoSkin span.mce_rtl {background-position:-40px -20px}
      +.typechoSkin span.mce_emotions {background-position:-60px -20px}
      +.typechoSkin span.mce_fullpage {background-position:-80px -20px}
      +.typechoSkin span.mce_fullscreen {background-position:-100px -20px}
      +.typechoSkin span.mce_iespell {background-position:-120px -20px}
      +.typechoSkin span.mce_insertdate {background-position:-140px -20px}
      +.typechoSkin span.mce_inserttime {background-position:-160px -20px}
      +.typechoSkin span.mce_absolute {background-position:-180px -20px}
      +.typechoSkin span.mce_backward {background-position:-200px -20px}
      +.typechoSkin span.mce_forward {background-position:-220px -20px}
      +.typechoSkin span.mce_insert_layer {background-position:-240px -20px}
      +.typechoSkin span.mce_insertlayer {background-position:-260px -20px}
      +.typechoSkin span.mce_movebackward {background-position:-280px -20px}
      +.typechoSkin span.mce_moveforward {background-position:-300px -20px}
      +.typechoSkin span.mce_media {background-position:-320px -20px}
      +.typechoSkin span.mce_nonbreaking {background-position:-340px -20px}
      +.typechoSkin span.mce_pastetext {background-position:-360px -20px}
      +.typechoSkin span.mce_pasteword {background-position:-380px -20px}
      +.typechoSkin span.mce_selectall {background-position:-400px -20px}
      +.typechoSkin span.mce_preview {background-position:-420px -20px}
      +.typechoSkin span.mce_print {background-position:-440px -20px}
      +.typechoSkin span.mce_cancel {background-position:-460px -20px}
      +.typechoSkin span.mce_save {background-position:-480px -20px}
      +.typechoSkin span.mce_replace {background-position:-500px -20px}
      +.typechoSkin span.mce_search {background-position:-520px -20px}
      +.typechoSkin span.mce_styleprops {background-position:-560px -20px}
      +.typechoSkin span.mce_table {background-position:-580px -20px}
      +.typechoSkin span.mce_cell_props {background-position:-600px -20px}
      +.typechoSkin span.mce_delete_table {background-position:-620px -20px}
      +.typechoSkin span.mce_delete_col {background-position:-640px -20px}
      +.typechoSkin span.mce_delete_row {background-position:-660px -20px}
      +.typechoSkin span.mce_col_after {background-position:-680px -20px}
      +.typechoSkin span.mce_col_before {background-position:-700px -20px}
      +.typechoSkin span.mce_row_after {background-position:-720px -20px}
      +.typechoSkin span.mce_row_before {background-position:-740px -20px}
      +.typechoSkin span.mce_merge_cells {background-position:-760px -20px}
      +.typechoSkin span.mce_table_props {background-position:-980px -20px}
      +.typechoSkin span.mce_row_props {background-position:-780px -20px}
      +.typechoSkin span.mce_split_cells {background-position:-800px -20px}
      +.typechoSkin span.mce_template {background-position:-820px -20px}
      +.typechoSkin span.mce_visualchars {background-position:-840px -20px}
      +.typechoSkin span.mce_abbr {background-position:-860px -20px}
      +.typechoSkin span.mce_acronym {background-position:-880px -20px}
      +.typechoSkin span.mce_attribs {background-position:-900px -20px}
      +.typechoSkin span.mce_cite {background-position:-920px -20px}
      +.typechoSkin span.mce_del {background-position:-940px -20px}
      +.typechoSkin span.mce_ins {background-position:-960px -20px}
      +.typechoSkin span.mce_morebreak {background-position:0 -40px}
      +.typechoSkin .mce_spellchecker span.mceAction {background-position:-540px -20px}
      diff --git a/usr/plugins/TinyMCE/tiny_mce/themes/advanced/source_editor.htm b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/source_editor.htm
      new file mode 100644
      index 00000000..553e7bb2
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/themes/advanced/source_editor.htm
      @@ -0,0 +1,31 @@
      +<html xmlns="http://www.w3.org/1999/xhtml">
      +<head>
      +	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
      +	<title>{#advanced_dlg.code_title}</title>
      +	<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
      +	<script type="text/javascript" src="js/source_editor.js"></script>
      +</head>
      +<body onresize="resizeInputs();" style="display:none; overflow:hidden;">
      +	<form name="source" onsubmit="saveContent();return false;" action="#">
      +		<div style="float: left" class="title">{#advanced_dlg.code_title}</div>
      +
      +		<div id="wrapline" style="float: right">
      +			<input type="checkbox" name="wraped" id="wraped" onclick="toggleWordWrap(this);" class="wordWrapCode" /><label for="wraped">{#advanced_dlg.code_wordwrap}</label>
      +		</div>
      +
      +		<br style="clear: both" />
      +
      +		<textarea name="htmlSource" id="htmlSource" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,monospace; font-size: 12px;" dir="ltr" wrap="off" class="mceFocus"></textarea>
      +
      +		<div class="mceActionPanel">
      +			<div style="float: left">
      +				<input type="submit" name="insert" value="{#update}" id="insert" />
      +			</div>
      +
      +			<div style="float: right">
      +				<input type="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />
      +			</div>
      +		</div>
      +	</form>
      +</body>
      +</html>
      diff --git a/usr/plugins/TinyMCE/tiny_mce/tiny_mce.js b/usr/plugins/TinyMCE/tiny_mce/tiny_mce.js
      new file mode 100644
      index 00000000..ccbb173e
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/tiny_mce.js
      @@ -0,0 +1 @@
      +var tinymce={majorVersion:"3",minorVersion:"2.7",releaseDate:"2009-09-22",_init:function(){var o=this,k=document,l=window,j=navigator,b=j.userAgent,h,a,g,f,e,m;o.isOpera=l.opera&&opera.buildNumber;o.isWebKit=/WebKit/.test(b);o.isIE=!o.isWebKit&&!o.isOpera&&(/MSIE/gi).test(b)&&(/Explorer/gi).test(j.appName);o.isIE6=o.isIE&&/MSIE [56]/.test(b);o.isGecko=!o.isWebKit&&/Gecko/.test(b);o.isMac=b.indexOf("Mac")!=-1;o.isAir=/adobeair/i.test(b);if(l.tinyMCEPreInit){o.suffix=tinyMCEPreInit.suffix;o.baseURL=tinyMCEPreInit.base;o.query=tinyMCEPreInit.query;return}o.suffix="";a=k.getElementsByTagName("base");for(h=0;h<a.length;h++){if(m=a[h].href){if(/^https?:\/\/[^\/]+$/.test(m)){m+="/"}f=m?m.match(/.*\//)[0]:""}}function c(d){if(d.src&&/tiny_mce(|_gzip|_jquery|_prototype)(_dev|_src)?.js/.test(d.src)){if(/_(src|dev)\.js/g.test(d.src)){o.suffix="_src"}if((e=d.src.indexOf("?"))!=-1){o.query=d.src.substring(e+1)}o.baseURL=d.src.substring(0,d.src.lastIndexOf("/"));if(f&&o.baseURL.indexOf("://")==-1&&o.baseURL.indexOf("/")!==0){o.baseURL=f+o.baseURL}return o.baseURL}return null}a=k.getElementsByTagName("script");for(h=0;h<a.length;h++){if(c(a[h])){return}}g=k.getElementsByTagName("head")[0];if(g){a=g.getElementsByTagName("script");for(h=0;h<a.length;h++){if(c(a[h])){return}}}return},is:function(b,a){var c=typeof(b);if(!a){return c!="undefined"}if(a=="array"&&(b.hasOwnProperty&&b instanceof Array)){return true}return c==a},each:function(d,a,c){var e,b;if(!d){return 0}c=c||d;if(typeof(d.length)!="undefined"){for(e=0,b=d.length;e<b;e++){if(a.call(c,d[e],e,d)===false){return 0}}}else{for(e in d){if(d.hasOwnProperty(e)){if(a.call(c,d[e],e,d)===false){return 0}}}}return 1},map:function(b,c){var d=[];tinymce.each(b,function(a){d.push(c(a))});return d},grep:function(b,c){var d=[];tinymce.each(b,function(a){if(!c||c(a)){d.push(a)}});return d},inArray:function(c,d){var e,b;if(c){for(e=0,b=c.length;e<b;e++){if(c[e]===d){return e}}}return -1},extend:function(f,d){var c,b=arguments;for(c=1;c<b.length;c++){d=b[c];tinymce.each(d,function(a,e){if(typeof(a)!=="undefined"){f[e]=a}})}return f},trim:function(a){return(a?""+a:"").replace(/^\s*|\s*$/g,"")},create:function(j,a){var i=this,b,e,f,g,d,h=0;j=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(j);f=j[3].match(/(^|\.)(\w+)$/i)[2];e=i.createNS(j[3].replace(/\.\w+$/,""));if(e[f]){return}if(j[2]=="static"){e[f]=a;if(this.onCreate){this.onCreate(j[2],j[3],e[f])}return}if(!a[f]){a[f]=function(){};h=1}e[f]=a[f];i.extend(e[f].prototype,a);if(j[5]){b=i.resolve(j[5]).prototype;g=j[5].match(/\.(\w+)$/i)[1];d=e[f];if(h){e[f]=function(){return b[g].apply(this,arguments)}}else{e[f]=function(){this.parent=b[g];return d.apply(this,arguments)}}e[f].prototype[f]=e[f];i.each(b,function(c,k){e[f].prototype[k]=b[k]});i.each(a,function(c,k){if(b[k]){e[f].prototype[k]=function(){this.parent=b[k];return c.apply(this,arguments)}}else{if(k!=f){e[f].prototype[k]=c}}})}i.each(a["static"],function(c,k){e[f][k]=c});if(this.onCreate){this.onCreate(j[2],j[3],e[f].prototype)}},walk:function(c,b,d,a){a=a||this;if(c){if(d){c=c[d]}tinymce.each(c,function(f,e){if(b.call(a,f,e,d)===false){return false}tinymce.walk(f,b,d,a)})}},createNS:function(d,c){var b,a;c=c||window;d=d.split(".");for(b=0;b<d.length;b++){a=d[b];if(!c[a]){c[a]={}}c=c[a]}return c},resolve:function(d,c){var b,a;c=c||window;d=d.split(".");for(b=0,a=d.length;b<a;b++){c=c[d[b]];if(!c){break}}return c},addUnload:function(e,d){var c=this,a=window;e={func:e,scope:d||this};if(!c.unloads){function b(){var f=c.unloads,h,i;if(f){for(i in f){h=f[i];if(h&&h.func){h.func.call(h.scope,1)}}if(a.detachEvent){a.detachEvent("onbeforeunload",g);a.detachEvent("onunload",b)}else{if(a.removeEventListener){a.removeEventListener("unload",b,false)}}c.unloads=h=f=a=b=0;if(window.CollectGarbage){window.CollectGarbage()}}}function g(){var h=document;if(h.readyState=="interactive"){function f(){h.detachEvent("onstop",f);if(b){b()}h=0}if(h){h.attachEvent("onstop",f)}window.setTimeout(function(){if(h){h.detachEvent("onstop",f)}},0)}}if(a.attachEvent){a.attachEvent("onunload",b);a.attachEvent("onbeforeunload",g)}else{if(a.addEventListener){a.addEventListener("unload",b,false)}}c.unloads=[e]}else{c.unloads.push(e)}return e},removeUnload:function(c){var a=this.unloads,b=null;tinymce.each(a,function(e,d){if(e&&e.func==c){a.splice(d,1);b=c;return false}});return b},explode:function(a,b){return a?tinymce.map(a.split(b||","),tinymce.trim):a},_addVer:function(b){var a;if(!this.query){return b}a=(b.indexOf("?")==-1?"?":"&")+this.query;if(b.indexOf("#")==-1){return b+a}return b.replace("#",a+"#")}};window.tinymce=tinymce;tinymce._init();tinymce.create("tinymce.util.Dispatcher",{scope:null,listeners:null,Dispatcher:function(a){this.scope=a||this;this.listeners=[]},add:function(a,b){this.listeners.push({cb:a,scope:b||this.scope});return a},addToTop:function(a,b){this.listeners.unshift({cb:a,scope:b||this.scope});return a},remove:function(a){var b=this.listeners,c=null;tinymce.each(b,function(e,d){if(a==e.cb){c=a;b.splice(d,1);return false}});return c},dispatch:function(){var f,d=arguments,e,b=this.listeners,g;for(e=0;e<b.length;e++){g=b[e];f=g.cb.apply(g.scope,d);if(f===false){break}}return f}});(function(){var a=tinymce.each;tinymce.create("tinymce.util.URI",{URI:function(e,g){var f=this,h,d,c;e=tinymce.trim(e);g=f.settings=g||{};if(/^(mailto|tel|news|javascript|about|data):/i.test(e)||/^\s*#/.test(e)){f.source=e;return}if(e.indexOf("/")===0&&e.indexOf("//")!==0){e=(g.base_uri?g.base_uri.protocol||"http":"http")+"://mce_host"+e}if(!/^\w*:?\/\//.test(e)){e=(g.base_uri.protocol||"http")+"://mce_host"+f.toAbsPath(g.base_uri.path,e)}e=e.replace(/@@/g,"(mce_at)");e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e);a(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(b,j){var k=e[j];if(k){k=k.replace(/\(mce_at\)/g,"@@")}f[b]=k});if(c=g.base_uri){if(!f.protocol){f.protocol=c.protocol}if(!f.userInfo){f.userInfo=c.userInfo}if(!f.port&&f.host=="mce_host"){f.port=c.port}if(!f.host||f.host=="mce_host"){f.host=c.host}f.source=""}},setPath:function(c){var b=this;c=/^(.*?)\/?(\w+)?$/.exec(c);b.path=c[0];b.directory=c[1];b.file=c[2];b.source="";b.getURI()},toRelative:function(b){var c=this,d;if(b==="./"){return b}b=new tinymce.util.URI(b,{base_uri:c});if((b.host!="mce_host"&&c.host!=b.host&&b.host)||c.port!=b.port||c.protocol!=b.protocol){return b.getURI()}d=c.toRelPath(c.path,b.path);if(b.query){d+="?"+b.query}if(b.anchor){d+="#"+b.anchor}return d},toAbsolute:function(b,c){var b=new tinymce.util.URI(b,{base_uri:this});return b.getURI(this.host==b.host&&this.protocol==b.protocol?c:0)},toRelPath:function(g,h){var c,f=0,d="",e,b;g=g.substring(0,g.lastIndexOf("/"));g=g.split("/");c=h.split("/");if(g.length>=c.length){for(e=0,b=g.length;e<b;e++){if(e>=c.length||g[e]!=c[e]){f=e+1;break}}}if(g.length<c.length){for(e=0,b=c.length;e<b;e++){if(e>=g.length||g[e]!=c[e]){f=e+1;break}}}if(f==1){return h}for(e=0,b=g.length-(f-1);e<b;e++){d+="../"}for(e=f-1,b=c.length;e<b;e++){if(e!=f-1){d+="/"+c[e]}else{d+=c[e]}}return d},toAbsPath:function(e,f){var c,b=0,h=[],d,g;d=/\/$/.test(f)?"/":"";e=e.split("/");f=f.split("/");a(e,function(i){if(i){h.push(i)}});e=h;for(c=f.length-1,h=[];c>=0;c--){if(f[c].length==0||f[c]=="."){continue}if(f[c]==".."){b++;continue}if(b>0){b--;continue}h.push(f[c])}c=e.length-b;if(c<=0){g=h.reverse().join("/")}else{g=e.slice(0,c).join("/")+"/"+h.reverse().join("/")}if(g.indexOf("/")!==0){g="/"+g}if(d&&g.lastIndexOf("/")!==g.length-1){g+=d}return g},getURI:function(d){var c,b=this;if(!b.source||d){c="";if(!d){if(b.protocol){c+=b.protocol+"://"}if(b.userInfo){c+=b.userInfo+"@"}if(b.host){c+=b.host}if(b.port){c+=":"+b.port}}if(b.path){c+=b.path}if(b.query){c+="?"+b.query}if(b.anchor){c+="#"+b.anchor}b.source=c}return b.source}})})();(function(){var a=tinymce.each;tinymce.create("static tinymce.util.Cookie",{getHash:function(d){var b=this.get(d),c;if(b){a(b.split("&"),function(e){e=e.split("=");c=c||{};c[unescape(e[0])]=unescape(e[1])})}return c},setHash:function(j,b,g,f,i,c){var h="";a(b,function(e,d){h+=(!h?"":"&")+escape(d)+"="+escape(e)});this.set(j,h,g,f,i,c)},get:function(i){var h=document.cookie,g,f=i+"=",d;if(!h){return}d=h.indexOf("; "+f);if(d==-1){d=h.indexOf(f);if(d!=0){return null}}else{d+=2}g=h.indexOf(";",d);if(g==-1){g=h.length}return unescape(h.substring(d+f.length,g))},set:function(i,b,g,f,h,c){document.cookie=i+"="+escape(b)+((g)?"; expires="+g.toGMTString():"")+((f)?"; path="+escape(f):"")+((h)?"; domain="+h:"")+((c)?"; secure":"")},remove:function(e,b){var c=new Date();c.setTime(c.getTime()-1000);this.set(e,"",c,b,c)}})})();tinymce.create("static tinymce.util.JSON",{serialize:function(e){var c,a,d=tinymce.util.JSON.serialize,b;if(e==null){return"null"}b=typeof e;if(b=="string"){a="\bb\tt\nn\ff\rr\"\"''\\\\";return'"'+e.replace(/([\u0080-\uFFFF\x00-\x1f\"])/g,function(g,f){c=a.indexOf(f);if(c+1){return"\\"+a.charAt(c+1)}g=f.charCodeAt().toString(16);return"\\u"+"0000".substring(g.length)+g})+'"'}if(b=="object"){if(e.hasOwnProperty&&e instanceof Array){for(c=0,a="[";c<e.length;c++){a+=(c>0?",":"")+d(e[c])}return a+"]"}a="{";for(c in e){a+=typeof e[c]!="function"?(a.length>1?',"':'"')+c+'":'+d(e[c]):""}return a+"}"}return""+e},parse:function(s){try{return eval("("+s+")")}catch(ex){}}});tinymce.create("static tinymce.util.XHR",{send:function(g){var a,e,b=window,h=0;g.scope=g.scope||this;g.success_scope=g.success_scope||g.scope;g.error_scope=g.error_scope||g.scope;g.async=g.async===false?false:true;g.data=g.data||"";function d(i){a=0;try{a=new ActiveXObject(i)}catch(c){}return a}a=b.XMLHttpRequest?new XMLHttpRequest():d("Microsoft.XMLHTTP")||d("Msxml2.XMLHTTP");if(a){if(a.overrideMimeType){a.overrideMimeType(g.content_type)}a.open(g.type||(g.data?"POST":"GET"),g.url,g.async);if(g.content_type){a.setRequestHeader("Content-Type",g.content_type)}a.setRequestHeader("X-Requested-With","XMLHttpRequest");a.send(g.data);function f(){if(!g.async||a.readyState==4||h++>10000){if(g.success&&h<10000&&a.status==200){g.success.call(g.success_scope,""+a.responseText,a,g)}else{if(g.error){g.error.call(g.error_scope,h>10000?"TIMED_OUT":"GENERAL",a,g)}}a=null}else{b.setTimeout(f,10)}}if(!g.async){return f()}e=b.setTimeout(f,10)}}});(function(){var c=tinymce.extend,b=tinymce.util.JSON,a=tinymce.util.XHR;tinymce.create("tinymce.util.JSONRequest",{JSONRequest:function(d){this.settings=c({},d);this.count=0},send:function(f){var e=f.error,d=f.success;f=c(this.settings,f);f.success=function(h,g){h=b.parse(h);if(typeof(h)=="undefined"){h={error:"JSON Parse error."}}if(h.error){e.call(f.error_scope||f.scope,h.error,g)}else{d.call(f.success_scope||f.scope,h.result)}};f.error=function(h,g){e.call(f.error_scope||f.scope,h,g)};f.data=b.serialize({id:f.id||"c"+(this.count++),method:f.method,params:f.params});f.content_type="application/json";a.send(f)},"static":{sendRPC:function(d){return new tinymce.util.JSONRequest().send(d)}}})}());(function(c){var e=c.each,b=c.is;var d=c.isWebKit,a=c.isIE;c.create("tinymce.dom.DOMUtils",{doc:null,root:null,files:null,pixelStyles:/^(top|left|bottom|right|width|height|borderWidth)$/,props:{"for":"htmlFor","class":"className",className:"className",checked:"checked",disabled:"disabled",maxlength:"maxLength",readonly:"readOnly",selected:"selected",value:"value",id:"id",name:"name",type:"type"},DOMUtils:function(i,g){var f=this;f.doc=i;f.win=window;f.files={};f.cssFlicker=false;f.counter=0;f.boxModel=!c.isIE||i.compatMode=="CSS1Compat";f.stdMode=i.documentMode===8;f.settings=g=c.extend({keep_values:false,hex_colors:1,process_html:1},g);if(c.isIE6){try{i.execCommand("BackgroundImageCache",false,true)}catch(h){f.cssFlicker=true}}c.addUnload(f.destroy,f)},getRoot:function(){var f=this,g=f.settings;return(g&&f.get(g.root_element))||f.doc.body},getViewPort:function(g){var h,f;g=!g?this.win:g;h=g.document;f=this.boxModel?h.documentElement:h.body;return{x:g.pageXOffset||f.scrollLeft,y:g.pageYOffset||f.scrollTop,w:g.innerWidth||f.clientWidth,h:g.innerHeight||f.clientHeight}},getRect:function(i){var h,f=this,g;i=f.get(i);h=f.getPos(i);g=f.getSize(i);return{x:h.x,y:h.y,w:g.w,h:g.h}},getSize:function(j){var g=this,f,i;j=g.get(j);f=g.getStyle(j,"width");i=g.getStyle(j,"height");if(f.indexOf("px")===-1){f=0}if(i.indexOf("px")===-1){i=0}return{w:parseInt(f)||j.offsetWidth||j.clientWidth,h:parseInt(i)||j.offsetHeight||j.clientHeight}},getParent:function(i,h,g){return this.getParents(i,h,g,false)},getParents:function(p,k,i,m){var h=this,g,j=h.settings,l=[];p=h.get(p);m=m===undefined;if(j.strict_root){i=i||h.getRoot()}if(b(k,"string")){g=k;if(k==="*"){k=function(f){return f.nodeType==1}}else{k=function(f){return h.is(f,g)}}}while(p){if(p==i||!p.nodeType||p.nodeType===9){break}if(!k||k(p)){if(m){l.push(p)}else{return p}}p=p.parentNode}return m?l:null},get:function(f){var g;if(f&&this.doc&&typeof(f)=="string"){g=f;f=this.doc.getElementById(f);if(f&&f.id!==g){return this.doc.getElementsByName(g)[1]}}return f},getNext:function(g,f){return this._findSib(g,f,"nextSibling")},getPrev:function(g,f){return this._findSib(g,f,"previousSibling")},select:function(h,g){var f=this;return c.dom.Sizzle(h,f.get(g)||f.get(f.settings.root_element)||f.doc,[])},is:function(g,f){return c.dom.Sizzle.matches(f,g.nodeType?[g]:g).length>0},add:function(j,l,f,i,k){var g=this;return this.run(j,function(n){var m,h;m=b(l,"string")?g.doc.createElement(l):l;g.setAttribs(m,f);if(i){if(i.nodeType){m.appendChild(i)}else{g.setHTML(m,i)}}return !k?n.appendChild(m):m})},create:function(i,f,g){return this.add(this.doc.createElement(i),i,f,g,1)},createHTML:function(m,f,j){var l="",i=this,g;l+="<"+m;for(g in f){if(f.hasOwnProperty(g)){l+=" "+g+'="'+i.encode(f[g])+'"'}}if(c.is(j)){return l+">"+j+"</"+m+">"}return l+" />"},remove:function(h,f){var g=this;return this.run(h,function(m){var l,k,j;l=m.parentNode;if(!l){return null}if(f){for(j=m.childNodes.length-1;j>=0;j--){g.insertAfter(m.childNodes[j],m)}}if(g.fixPsuedoLeaks){l=m.cloneNode(true);f="IELeakGarbageBin";k=g.get(f)||g.add(g.doc.body,"div",{id:f,style:"display:none"});k.appendChild(m);k.innerHTML="";return l}return l.removeChild(m)})},setStyle:function(i,f,g){var h=this;return h.run(i,function(l){var k,j;k=l.style;f=f.replace(/-(\D)/g,function(n,m){return m.toUpperCase()});if(h.pixelStyles.test(f)&&(c.is(g,"number")||/^[\-0-9\.]+$/.test(g))){g+="px"}switch(f){case"opacity":if(a){k.filter=g===""?"":"alpha(opacity="+(g*100)+")";if(!i.currentStyle||!i.currentStyle.hasLayout){k.display="inline-block"}}k[f]=k["-moz-opacity"]=k["-khtml-opacity"]=g||"";break;case"float":a?k.styleFloat=g:k.cssFloat=g;break;default:k[f]=g||""}if(h.settings.update_styles){h.setAttrib(l,"mce_style")}})},getStyle:function(i,f,h){i=this.get(i);if(!i){return false}if(this.doc.defaultView&&h){f=f.replace(/[A-Z]/g,function(j){return"-"+j});try{return this.doc.defaultView.getComputedStyle(i,null).getPropertyValue(f)}catch(g){return null}}f=f.replace(/-(\D)/g,function(k,j){return j.toUpperCase()});if(f=="float"){f=a?"styleFloat":"cssFloat"}if(i.currentStyle&&h){return i.currentStyle[f]}return i.style[f]},setStyles:function(i,j){var g=this,h=g.settings,f;f=h.update_styles;h.update_styles=0;e(j,function(k,l){g.setStyle(i,l,k)});h.update_styles=f;if(h.update_styles){g.setAttrib(i,h.cssText)}},setAttrib:function(h,i,f){var g=this;if(!h||!i){return}if(g.settings.strict){i=i.toLowerCase()}return this.run(h,function(k){var j=g.settings;switch(i){case"style":if(!b(f,"string")){e(f,function(l,m){g.setStyle(k,m,l)});return}if(j.keep_values){if(f&&!g._isRes(f)){k.setAttribute("mce_style",f,2)}else{k.removeAttribute("mce_style",2)}}k.style.cssText=f;break;case"class":k.className=f||"";break;case"src":case"href":if(j.keep_values){if(j.url_converter){f=j.url_converter.call(j.url_converter_scope||g,f,i,k)}g.setAttrib(k,"mce_"+i,f,2)}break;case"shape":k.setAttribute("mce_style",f);break}if(b(f)&&f!==null&&f.length!==0){k.setAttribute(i,""+f,2)}else{k.removeAttribute(i,2)}})},setAttribs:function(g,h){var f=this;return this.run(g,function(i){e(h,function(j,k){f.setAttrib(i,k,j)})})},getAttrib:function(i,j,h){var f,g=this;i=g.get(i);if(!i||i.nodeType!==1){return false}if(!b(h)){h=""}if(/^(src|href|style|coords|shape)$/.test(j)){f=i.getAttribute("mce_"+j);if(f){return f}}if(a&&g.props[j]){f=i[g.props[j]];f=f&&f.nodeValue?f.nodeValue:f}if(!f){f=i.getAttribute(j,2)}if(/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(j)){if(i[g.props[j]]===true&&f===""){return j}return f?j:""}if(i.nodeName==="FORM"&&i.getAttributeNode(j)){return i.getAttributeNode(j).nodeValue}if(j==="style"){f=f||i.style.cssText;if(f){f=g.serializeStyle(g.parseStyle(f));if(g.settings.keep_values&&!g._isRes(f)){i.setAttribute("mce_style",f)}}}if(d&&j==="class"&&f){f=f.replace(/(apple|webkit)\-[a-z\-]+/gi,"")}if(a){switch(j){case"rowspan":case"colspan":if(f===1){f=""}break;case"size":if(f==="+0"||f===20||f===0){f=""}break;case"width":case"height":case"vspace":case"checked":case"disabled":case"readonly":if(f===0){f=""}break;case"hspace":if(f===-1){f=""}break;case"maxlength":case"tabindex":if(f===32768||f===2147483647||f==="32768"){f=""}break;case"multiple":case"compact":case"noshade":case"nowrap":if(f===65535){return j}return h;case"shape":f=f.toLowerCase();break;default:if(j.indexOf("on")===0&&f){f=(""+f).replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/,"$1")}}}return(f!==undefined&&f!==null&&f!=="")?""+f:h},getPos:function(m,i){var g=this,f=0,l=0,j,k=g.doc,h;m=g.get(m);i=i||k.body;if(m){if(a&&!g.stdMode){m=m.getBoundingClientRect();j=g.boxModel?k.documentElement:k.body;f=g.getStyle(g.select("html")[0],"borderWidth");f=(f=="medium"||g.boxModel&&!g.isIE6)&&2||f;m.top+=g.win.self!=g.win.top?2:0;return{x:m.left+j.scrollLeft-f,y:m.top+j.scrollTop-f}}h=m;while(h&&h!=i&&h.nodeType){f+=h.offsetLeft||0;l+=h.offsetTop||0;h=h.offsetParent}h=m.parentNode;while(h&&h!=i&&h.nodeType){f-=h.scrollLeft||0;l-=h.scrollTop||0;h=h.parentNode}}return{x:f,y:l}},parseStyle:function(h){var i=this,j=i.settings,k={};if(!h){return k}function f(w,q,v){var o,u,m,n;o=k[w+"-top"+q];if(!o){return}u=k[w+"-right"+q];if(o!=u){return}m=k[w+"-bottom"+q];if(u!=m){return}n=k[w+"-left"+q];if(m!=n){return}k[v]=n;delete k[w+"-top"+q];delete k[w+"-right"+q];delete k[w+"-bottom"+q];delete k[w+"-left"+q]}function g(n,m,l,p){var o;o=k[m];if(!o){return}o=k[l];if(!o){return}o=k[p];if(!o){return}k[n]=k[m]+" "+k[l]+" "+k[p];delete k[m];delete k[l];delete k[p]}h=h.replace(/&(#?[a-z0-9]+);/g,"&$1_MCE_SEMI_");e(h.split(";"),function(m){var l,n=[];if(m){m=m.replace(/_MCE_SEMI_/g,";");m=m.replace(/url\([^\)]+\)/g,function(o){n.push(o);return"url("+n.length+")"});m=m.split(":");l=c.trim(m[1]);l=l.replace(/url\(([^\)]+)\)/g,function(p,o){return n[parseInt(o)-1]});l=l.replace(/rgb\([^\)]+\)/g,function(o){return i.toHex(o)});if(j.url_converter){l=l.replace(/url\([\'\"]?([^\)\'\"]+)[\'\"]?\)/g,function(o,p){return"url("+j.url_converter.call(j.url_converter_scope||i,i.decode(p),"style",null)+")"})}k[c.trim(m[0]).toLowerCase()]=l}});f("border","","border");f("border","-width","border-width");f("border","-color","border-color");f("border","-style","border-style");f("padding","","padding");f("margin","","margin");g("border","border-width","border-style","border-color");if(a){if(k.border=="medium none"){k.border=""}}return k},serializeStyle:function(g){var f="";e(g,function(i,h){if(h&&i){if(c.isGecko&&h.indexOf("-moz-")===0){return}switch(h){case"color":case"background-color":i=i.toLowerCase();break}f+=(f?" ":"")+h+": "+i+";"}});return f},loadCSS:function(f){var h=this,i=h.doc,g;if(!f){f=""}g=h.select("head")[0];e(f.split(","),function(j){var k;if(h.files[j]){return}h.files[j]=true;k=h.create("link",{rel:"stylesheet",href:c._addVer(j)});if(a&&i.documentMode){k.onload=function(){i.recalc();k.onload=null}}g.appendChild(k)})},addClass:function(f,g){return this.run(f,function(h){var i;if(!g){return 0}if(this.hasClass(h,g)){return h.className}i=this.removeClass(h,g);return h.className=(i!=""?(i+" "):"")+g})},removeClass:function(h,i){var f=this,g;return f.run(h,function(k){var j;if(f.hasClass(k,i)){if(!g){g=new RegExp("(^|\\s+)"+i+"(\\s+|$)","g")}j=k.className.replace(g," ");return k.className=c.trim(j!=" "?j:"")}return k.className})},hasClass:function(g,f){g=this.get(g);if(!g||!f){return false}return(" "+g.className+" ").indexOf(" "+f+" ")!==-1},show:function(f){return this.setStyle(f,"display","block")},hide:function(f){return this.setStyle(f,"display","none")},isHidden:function(f){f=this.get(f);return !f||f.style.display=="none"||this.getStyle(f,"display")=="none"},uniqueId:function(f){return(!f?"mce_":f)+(this.counter++)},setHTML:function(i,g){var f=this;return this.run(i,function(m){var h,k,j,q,l,h;g=f.processHTML(g);if(a){function o(){try{m.innerHTML="<br />"+g;m.removeChild(m.firstChild)}catch(n){while(m.firstChild){m.firstChild.removeNode()}h=f.create("div");h.innerHTML="<br />"+g;e(h.childNodes,function(r,p){if(p){m.appendChild(r)}})}}if(f.settings.fix_ie_paragraphs){g=g.replace(/<p><\/p>|<p([^>]+)><\/p>|<p[^\/+]\/>/gi,'<p$1 mce_keep="true">&nbsp;</p>')}o();if(f.settings.fix_ie_paragraphs){j=m.getElementsByTagName("p");for(k=j.length-1,h=0;k>=0;k--){q=j[k];if(!q.hasChildNodes()){if(!q.mce_keep){h=1;break}q.removeAttribute("mce_keep")}}}if(h){g=g.replace(/<p ([^>]+)>|<p>/ig,'<div $1 mce_tmp="1">');g=g.replace(/<\/p>/g,"</div>");o();if(f.settings.fix_ie_paragraphs){j=m.getElementsByTagName("DIV");for(k=j.length-1;k>=0;k--){q=j[k];if(q.mce_tmp){l=f.doc.createElement("p");q.cloneNode(false).outerHTML.replace(/([a-z0-9\-_]+)=/gi,function(p,n){var r;if(n!=="mce_tmp"){r=q.getAttribute(n);if(!r&&n==="class"){r=q.className}l.setAttribute(n,r)}});for(h=0;h<q.childNodes.length;h++){l.appendChild(q.childNodes[h].cloneNode(true))}q.swapNode(l)}}}}}else{m.innerHTML=g}return g})},processHTML:function(j){var g=this,i=g.settings,k=[];if(!i.process_html){return j}if(c.isGecko){j=j.replace(/<(\/?)strong>|<strong( [^>]+)>/gi,"<$1b$2>");j=j.replace(/<(\/?)em>|<em( [^>]+)>/gi,"<$1i$2>")}else{if(a){j=j.replace(/&apos;/g,"&#39;");j=j.replace(/\s+(disabled|checked|readonly|selected)\s*=\s*[\"\']?(false|0)[\"\']?/gi,"")}}j=j.replace(/<a( )([^>]+)\/>|<a\/>/gi,"<a$1$2></a>");if(i.keep_values){if(/<script|noscript|style/i.test(j)){function f(h){h=h.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n");h=h.replace(/^[\r\n]*|[\r\n]*$/g,"");h=h.replace(/^\s*(\/\/\s*<!--|\/\/\s*<!\[CDATA\[|<!--|<!\[CDATA\[)[\r\n]*/g,"");h=h.replace(/\s*(\/\/\s*\]\]>|\/\/\s*-->|\]\]>|-->|\]\]-->)\s*$/g,"");return h}j=j.replace(/<script([^>]+|)>([\s\S]*?)<\/script>/gi,function(h,m,l){if(!m){m=' type="text/javascript"'}m=m.replace(/src=\"([^\"]+)\"?/i,function(n,o){if(i.url_converter){o=g.encode(i.url_converter.call(i.url_converter_scope||g,g.decode(o),"src","script"))}return'mce_src="'+o+'"'});if(c.trim(l)){k.push(f(l));l="<!--\nMCE_SCRIPT:"+(k.length-1)+"\n// -->"}return"<mce:script"+m+">"+l+"</mce:script>"});j=j.replace(/<style([^>]+|)>([\s\S]*?)<\/style>/gi,function(h,m,l){if(l){k.push(f(l));l="<!--\nMCE_SCRIPT:"+(k.length-1)+"\n-->"}return"<mce:style"+m+">"+l+"</mce:style><style "+m+' mce_bogus="1">'+l+"</style>"});j=j.replace(/<noscript([^>]+|)>([\s\S]*?)<\/noscript>/g,function(h,m,l){return"<mce:noscript"+m+"><!--"+g.encode(l).replace(/--/g,"&#45;&#45;")+"--></mce:noscript>"})}j=j.replace(/<!\[CDATA\[([\s\S]+)\]\]>/g,"<!--[CDATA[$1]]-->");j=j.replace(/<([\w:]+) [^>]*(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)[^>]*>/gi,function(l){function h(o,m,n){if(n==="false"||n==="0"){return""}return" "+m+'="'+m+'"'}l=l.replace(/ (checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)=[\"]([^\"]+)[\"]/gi,h);l=l.replace(/ (checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)=[\']([^\']+)[\']/gi,h);l=l.replace(/ (checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)=([^\s\"\'>]+)/gi,h);l=l.replace(/ (checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)([\s>])/gi,' $1="$1"$2');return l});j=j.replace(/<([\w:]+) [^>]*(src|href|style|shape|coords)[^>]*>/gi,function(h,m){function l(o,n,q){var p=q;if(h.indexOf("mce_"+n)!=-1){return o}if(n=="style"){if(g._isRes(q)){return o}p=g.encode(g.serializeStyle(g.parseStyle(p)))}else{if(n!="coords"&&n!="shape"){if(i.url_converter){p=g.encode(i.url_converter.call(i.url_converter_scope||g,g.decode(q),n,m))}}}return" "+n+'="'+q+'" mce_'+n+'="'+p+'"'}h=h.replace(/ (src|href|style|coords|shape)=[\"]([^\"]+)[\"]/gi,l);h=h.replace(/ (src|href|style|coords|shape)=[\']([^\']+)[\']/gi,l);return h.replace(/ (src|href|style|coords|shape)=([^\s\"\'>]+)/gi,l)});j=j.replace(/MCE_SCRIPT:([0-9]+)/g,function(l,h){return k[h]})}return j},getOuterHTML:function(f){var g;f=this.get(f);if(!f){return null}if(f.outerHTML!==undefined){return f.outerHTML}g=(f.ownerDocument||this.doc).createElement("body");g.appendChild(f.cloneNode(true));return g.innerHTML},setOuterHTML:function(j,g,k){var f=this;function i(m,l,p){var q,o;o=p.createElement("body");o.innerHTML=l;q=o.lastChild;while(q){f.insertAfter(q.cloneNode(true),m);q=q.previousSibling}f.remove(m)}return this.run(j,function(l){l=f.get(l);if(l.nodeType==1){k=k||l.ownerDocument||f.doc;if(a){try{if(a&&l.nodeType==1){l.outerHTML=g}else{i(l,g,k)}}catch(h){i(l,g,k)}}else{i(l,g,k)}}})},decode:function(g){var h,i,f;if(/&[^;]+;/.test(g)){h=this.doc.createElement("div");h.innerHTML=g;i=h.firstChild;f="";if(i){do{f+=i.nodeValue}while(i.nextSibling)}return f||g}return g},encode:function(f){return f?(""+f).replace(/[<>&\"]/g,function(h,g){switch(h){case"&":return"&amp;";case'"':return"&quot;";case"<":return"&lt;";case">":return"&gt;"}return h}):f},insertAfter:function(h,g){var f=this;g=f.get(g);return this.run(h,function(k){var j,i;j=g.parentNode;i=g.nextSibling;if(i){j.insertBefore(k,i)}else{j.appendChild(k)}return k})},isBlock:function(f){if(f.nodeType&&f.nodeType!==1){return false}f=f.nodeName||f;return/^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TH|TBODY|TR|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(f)},replace:function(i,h,f){var g=this;if(b(h,"array")){i=i.cloneNode(true)}return g.run(h,function(j){if(f){e(j.childNodes,function(k){i.appendChild(k.cloneNode(true))})}if(g.fixPsuedoLeaks&&j.nodeType===1){j.parentNode.insertBefore(i,j);g.remove(j);return i}return j.parentNode.replaceChild(i,j)})},findCommonAncestor:function(h,f){var i=h,g;while(i){g=f;while(g&&i!=g){g=g.parentNode}if(i==g){break}i=i.parentNode}if(!i&&h.ownerDocument){return h.ownerDocument.documentElement}return i},toHex:function(f){var h=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(f);function g(i){i=parseInt(i).toString(16);return i.length>1?i:"0"+i}if(h){f="#"+g(h[1])+g(h[2])+g(h[3]);return f}return f},getClasses:function(){var l=this,g=[],k,m={},n=l.settings.class_filter,j;if(l.classes){return l.classes}function o(f){e(f.imports,function(i){o(i)});e(f.cssRules||f.rules,function(i){switch(i.type||1){case 1:if(i.selectorText){e(i.selectorText.split(","),function(p){p=p.replace(/^\s*|\s*$|^\s\./g,"");if(/\.mce/.test(p)||!/\.[\w\-]+$/.test(p)){return}j=p;p=p.replace(/.*\.([a-z0-9_\-]+).*/i,"$1");if(n&&!(p=n(p,j))){return}if(!m[p]){g.push({"class":p});m[p]=1}})}break;case 3:o(i.styleSheet);break}})}try{e(l.doc.styleSheets,o)}catch(h){}if(g.length>0){l.classes=g}return g},run:function(j,i,h){var g=this,k;if(g.doc&&typeof(j)==="string"){j=g.get(j)}if(!j){return false}h=h||this;if(!j.nodeType&&(j.length||j.length===0)){k=[];e(j,function(l,f){if(l){if(typeof(l)=="string"){l=g.doc.getElementById(l)}k.push(i.call(h,l,f))}});return k}return i.call(h,j)},getAttribs:function(g){var f;g=this.get(g);if(!g){return[]}if(a){f=[];if(g.nodeName=="OBJECT"){return g.attributes}if(g.nodeName==="OPTION"&&this.getAttrib(g,"selected")){f.push({specified:1,nodeName:"selected"})}g.cloneNode(false).outerHTML.replace(/<\/?[\w:]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=\w+|>/gi,"").replace(/[\w:]+/gi,function(h){f.push({specified:1,nodeName:h})});return f}return g.attributes},destroy:function(g){var f=this;if(f.events){f.events.destroy()}f.win=f.doc=f.root=f.events=null;if(!g){c.removeUnload(f.destroy)}},createRng:function(){var f=this.doc;return f.createRange?f.createRange():new c.dom.Range(this)},split:function(l,k,o){var p=this,f=p.createRng(),m,j,n;function g(r,q){r=r[q];if(r&&r[q]&&r[q].nodeType==1&&i(r[q])){p.remove(r[q])}}function i(q){q=p.getOuterHTML(q);q=q.replace(/<(img|hr|table)/gi,"-");q=q.replace(/<[^>]+>/g,"");return q.replace(/[ \t\r\n]+|&nbsp;|&#160;/g,"")==""}function h(r){var q=0;while(r.previousSibling){q++;r=r.previousSibling}return q}if(l&&k){f.setStart(l.parentNode,h(l));f.setEnd(k.parentNode,h(k));m=f.extractContents();f=p.createRng();f.setStart(k.parentNode,h(k)+1);f.setEnd(l.parentNode,h(l)+1);j=f.extractContents();n=l.parentNode;g(m,"lastChild");if(!i(m)){n.insertBefore(m,l)}if(o){n.replaceChild(o,k)}else{n.insertBefore(k,l)}g(j,"firstChild");if(!i(j)){n.insertBefore(j,l)}p.remove(l);return o||k}},bind:function(j,f,i,h){var g=this;if(!g.events){g.events=new c.dom.EventUtils()}return g.events.add(j,f,i,h||this)},unbind:function(i,f,h){var g=this;if(!g.events){g.events=new c.dom.EventUtils()}return g.events.remove(i,f,h)},_findSib:function(j,g,h){var i=this,k=g;if(j){if(b(k,"string")){k=function(f){return i.is(f,g)}}for(j=j[h];j;j=j[h]){if(k(j)){return j}}}return null},_isRes:function(f){return/^(top|left|bottom|right|width|height)/i.test(f)||/;\s*(top|left|bottom|right|width|height)/i.test(f)}});c.DOM=new c.dom.DOMUtils(document,{process_html:0})})(tinymce);(function(f){var h=0,c=1,e=2,d=tinymce.extend;function g(m,k){var j,l;if(m.parentNode!=k){return -1}for(l=k.firstChild,j=0;l!=m;l=l.nextSibling){j++}return j}function b(k){var j=0;while(k.previousSibling){j++;k=k.previousSibling}return j}function i(j,k){var l;if(j.nodeType==3){return j}if(k<0){return j}l=j.firstChild;while(l!=null&&k>0){--k;l=l.nextSibling}if(l!=null){return l}return j}function a(k){var j=k.doc;d(this,{dom:k,startContainer:j,startOffset:0,endContainer:j,endOffset:0,collapsed:true,commonAncestorContainer:j,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3})}d(a.prototype,{setStart:function(k,j){this._setEndPoint(true,k,j)},setEnd:function(k,j){this._setEndPoint(false,k,j)},setStartBefore:function(j){this.setStart(j.parentNode,b(j))},setStartAfter:function(j){this.setStart(j.parentNode,b(j)+1)},setEndBefore:function(j){this.setEnd(j.parentNode,b(j))},setEndAfter:function(j){this.setEnd(j.parentNode,b(j)+1)},collapse:function(k){var j=this;if(k){j.endContainer=j.startContainer;j.endOffset=j.startOffset}else{j.startContainer=j.endContainer;j.startOffset=j.endOffset}j.collapsed=true},selectNode:function(j){this.setStartBefore(j);this.setEndAfter(j)},selectNodeContents:function(j){this.setStart(j,0);this.setEnd(j,j.nodeType===1?j.childNodes.length:j.nodeValue.length)},compareBoundaryPoints:function(m,n){var l=this,p=l.startContainer,o=l.startOffset,k=l.endContainer,j=l.endOffset;if(m===0){return l._compareBoundaryPoints(p,o,p,o)}if(m===1){return l._compareBoundaryPoints(p,o,k,j)}if(m===2){return l._compareBoundaryPoints(k,j,k,j)}if(m===3){return l._compareBoundaryPoints(k,j,p,o)}},deleteContents:function(){this._traverse(e)},extractContents:function(){return this._traverse(h)},cloneContents:function(){return this._traverse(c)},insertNode:function(m){var j=this,l,k;if(m.nodeType===3||m.nodeType===4){l=j.startContainer.splitText(j.startOffset);j.startContainer.parentNode.insertBefore(m,l)}else{if(j.startContainer.childNodes.length>0){k=j.startContainer.childNodes[j.startOffset]}j.startContainer.insertBefore(m,k)}},surroundContents:function(l){var j=this,k=j.extractContents();j.insertNode(l);l.appendChild(k);j.selectNode(l)},cloneRange:function(){var j=this;return d(new a(j.dom),{startContainer:j.startContainer,startOffset:j.startOffset,endContainer:j.endContainer,endOffset:j.endOffset,collapsed:j.collapsed,commonAncestorContainer:j.commonAncestorContainer})},_isCollapsed:function(){return(this.startContainer==this.endContainer&&this.startOffset==this.endOffset)},_compareBoundaryPoints:function(m,p,k,o){var q,l,j,r,t,s;if(m==k){if(p==o){return 0}else{if(p<o){return -1}else{return 1}}}q=k;while(q&&q.parentNode!=m){q=q.parentNode}if(q){l=0;j=m.firstChild;while(j!=q&&l<p){l++;j=j.nextSibling}if(p<=l){return -1}else{return 1}}q=m;while(q&&q.parentNode!=k){q=q.parentNode}if(q){l=0;j=k.firstChild;while(j!=q&&l<o){l++;j=j.nextSibling}if(l<o){return -1}else{return 1}}r=this.dom.findCommonAncestor(m,k);t=m;while(t&&t.parentNode!=r){t=t.parentNode}if(!t){t=r}s=k;while(s&&s.parentNode!=r){s=s.parentNode}if(!s){s=r}if(t==s){return 0}j=r.firstChild;while(j){if(j==t){return -1}if(j==s){return 1}j=j.nextSibling}},_setEndPoint:function(k,q,p){var l=this,j,m;if(k){l.startContainer=q;l.startOffset=p}else{l.endContainer=q;l.endOffset=p}j=l.endContainer;while(j.parentNode){j=j.parentNode}m=l.startContainer;while(m.parentNode){m=m.parentNode}if(m!=j){l.collapse(k)}else{if(l._compareBoundaryPoints(l.startContainer,l.startOffset,l.endContainer,l.endOffset)>0){l.collapse(k)}}l.collapsed=l._isCollapsed();l.commonAncestorContainer=l.dom.findCommonAncestor(l.startContainer,l.endContainer)},_traverse:function(r){var s=this,q,m=0,v=0,k,o,l,n,j,u;if(s.startContainer==s.endContainer){return s._traverseSameContainer(r)}for(q=s.endContainer,k=q.parentNode;k!=null;q=k,k=k.parentNode){if(k==s.startContainer){return s._traverseCommonStartContainer(q,r)}++m}for(q=s.startContainer,k=q.parentNode;k!=null;q=k,k=k.parentNode){if(k==s.endContainer){return s._traverseCommonEndContainer(q,r)}++v}o=v-m;l=s.startContainer;while(o>0){l=l.parentNode;o--}n=s.endContainer;while(o<0){n=n.parentNode;o++}for(j=l.parentNode,u=n.parentNode;j!=u;j=j.parentNode,u=u.parentNode){l=j;n=u}return s._traverseCommonAncestors(l,n,r)},_traverseSameContainer:function(o){var r=this,q,u,j,k,l,p,m;if(o!=e){q=r.dom.doc.createDocumentFragment()}if(r.startOffset==r.endOffset){return q}if(r.startContainer.nodeType==3){u=r.startContainer.nodeValue;j=u.substring(r.startOffset,r.endOffset);if(o!=c){r.startContainer.deleteData(r.startOffset,r.endOffset-r.startOffset);r.collapse(true)}if(o==e){return null}q.appendChild(r.dom.doc.createTextNode(j));return q}k=i(r.startContainer,r.startOffset);l=r.endOffset-r.startOffset;while(l>0){p=k.nextSibling;m=r._traverseFullySelected(k,o);if(q){q.appendChild(m)}--l;k=p}if(o!=c){r.collapse(true)}return q},_traverseCommonStartContainer:function(j,p){var s=this,r,k,l,m,q,o;if(p!=e){r=s.dom.doc.createDocumentFragment()}k=s._traverseRightBoundary(j,p);if(r){r.appendChild(k)}l=g(j,s.startContainer);m=l-s.startOffset;if(m<=0){if(p!=c){s.setEndBefore(j);s.collapse(false)}return r}k=j.previousSibling;while(m>0){q=k.previousSibling;o=s._traverseFullySelected(k,p);if(r){r.insertBefore(o,r.firstChild)}--m;k=q}if(p!=c){s.setEndBefore(j);s.collapse(false)}return r},_traverseCommonEndContainer:function(m,p){var s=this,r,o,j,k,q,l;if(p!=e){r=s.dom.doc.createDocumentFragment()}j=s._traverseLeftBoundary(m,p);if(r){r.appendChild(j)}o=g(m,s.endContainer);++o;k=s.endOffset-o;j=m.nextSibling;while(k>0){q=j.nextSibling;l=s._traverseFullySelected(j,p);if(r){r.appendChild(l)}--k;j=q}if(p!=c){s.setStartAfter(m);s.collapse(true)}return r},_traverseCommonAncestors:function(p,j,s){var w=this,l,v,o,q,r,k,u,m;if(s!=e){v=w.dom.doc.createDocumentFragment()}l=w._traverseLeftBoundary(p,s);if(v){v.appendChild(l)}o=p.parentNode;q=g(p,o);r=g(j,o);++q;k=r-q;u=p.nextSibling;while(k>0){m=u.nextSibling;l=w._traverseFullySelected(u,s);if(v){v.appendChild(l)}u=m;--k}l=w._traverseRightBoundary(j,s);if(v){v.appendChild(l)}if(s!=c){w.setStartAfter(p);w.collapse(true)}return v},_traverseRightBoundary:function(p,q){var s=this,l=i(s.endContainer,s.endOffset-1),r,o,n,j,k;var m=l!=s.endContainer;if(l==p){return s._traverseNode(l,m,false,q)}r=l.parentNode;o=s._traverseNode(r,false,false,q);while(r!=null){while(l!=null){n=l.previousSibling;j=s._traverseNode(l,m,false,q);if(q!=e){o.insertBefore(j,o.firstChild)}m=true;l=n}if(r==p){return o}l=r.previousSibling;r=r.parentNode;k=s._traverseNode(r,false,false,q);if(q!=e){k.appendChild(o)}o=k}return null},_traverseLeftBoundary:function(p,q){var s=this,m=i(s.startContainer,s.startOffset);var n=m!=s.startContainer,r,o,l,j,k;if(m==p){return s._traverseNode(m,n,true,q)}r=m.parentNode;o=s._traverseNode(r,false,true,q);while(r!=null){while(m!=null){l=m.nextSibling;j=s._traverseNode(m,n,true,q);if(q!=e){o.appendChild(j)}n=true;m=l}if(r==p){return o}m=r.nextSibling;r=r.parentNode;k=s._traverseNode(r,false,true,q);if(q!=e){k.appendChild(o)}o=k}return null},_traverseNode:function(j,o,r,s){var u=this,m,l,p,k,q;if(o){return u._traverseFullySelected(j,s)}if(j.nodeType==3){m=j.nodeValue;if(r){k=u.startOffset;l=m.substring(k);p=m.substring(0,k)}else{k=u.endOffset;l=m.substring(0,k);p=m.substring(k)}if(s!=c){j.nodeValue=p}if(s==e){return null}q=j.cloneNode(false);q.nodeValue=l;return q}if(s==e){return null}return j.cloneNode(false)},_traverseFullySelected:function(l,k){var j=this;if(k!=e){return k==c?l.cloneNode(true):l}l.parentNode.removeChild(l);return null}});f.Range=a})(tinymce.dom);(function(){function a(e){var d=this,h="\uFEFF",b,g;function c(j,i){if(j&&i){if(j.item&&i.item&&j.item(0)===i.item(0)){return 1}if(j.isEqual&&i.isEqual&&i.isEqual(j)){return 1}}return 0}function f(){var m=e.dom,j=e.getRng(),s=m.createRng(),p,k,n,q,o,l;function i(v){var t=v.parentNode.childNodes,u;for(u=t.length-1;u>=0;u--){if(t[u]==v){return u}}return -1}function r(v){var t=j.duplicate(),B,y,u,w,x=0,z=0,A,C;t.collapse(v);B=t.parentElement();t.pasteHTML(h);u=B.childNodes;for(y=0;y<u.length;y++){w=u[y];if(y>0&&(w.nodeType!==3||u[y-1].nodeType!==3)){z++}if(w.nodeType===3){A=w.nodeValue.indexOf(h);if(A!==-1){x+=A;break}x+=w.nodeValue.length}else{x=0}}t.moveStart("character",-1);t.text="";return{index:z,offset:x,parent:B}}n=j.item?j.item(0):j.parentElement();if(n.ownerDocument!=m.doc){return s}if(j.item||!n.hasChildNodes()){s.setStart(n.parentNode,i(n));s.setEnd(s.startContainer,s.startOffset+1);return s}l=e.isCollapsed();p=r(true);k=r(false);p.parent.normalize();k.parent.normalize();q=p.parent.childNodes[Math.min(p.index,p.parent.childNodes.length-1)];if(q.nodeType!=3){s.setStart(p.parent,p.index)}else{s.setStart(p.parent.childNodes[p.index],p.offset)}o=k.parent.childNodes[Math.min(k.index,k.parent.childNodes.length-1)];if(o.nodeType!=3){if(!l){k.index++}s.setEnd(k.parent,k.index)}else{s.setEnd(k.parent.childNodes[k.index],k.offset)}if(!l){q=s.startContainer;if(q.nodeType==1){s.setStart(q,Math.min(s.startOffset,q.childNodes.length))}o=s.endContainer;if(o.nodeType==1){s.setEnd(o,Math.min(s.endOffset,o.childNodes.length))}}d.addRange(s);return s}this.addRange=function(j){var o,m=e.dom.doc.body,p,k,q,l,n,i;q=j.startContainer;l=j.startOffset;n=j.endContainer;i=j.endOffset;o=m.createTextRange();q=q.nodeType==1?q.childNodes[Math.min(l,q.childNodes.length-1)]:q;n=n.nodeType==1?n.childNodes[Math.min(l==i?i:i-1,n.childNodes.length-1)]:n;if(q==n&&q.nodeType==1){if(/^(IMG|TABLE)$/.test(q.nodeName)&&l!=i){o=m.createControlRange();o.addElement(q)}else{o=m.createTextRange();if(!q.hasChildNodes()&&q.canHaveHTML){q.innerHTML=h}o.moveToElementText(q);if(q.innerHTML==h){o.collapse(true);q.removeChild(q.firstChild)}}if(l==i){o.collapse(i<=j.endContainer.childNodes.length-1)}o.select();return}function r(t,v){var u,s,w;if(t.nodeType!=3){return -1}u=t.nodeValue;s=m.createTextRange();t.nodeValue=u.substring(0,v)+h+u.substring(v);s.moveToElementText(t.parentNode);s.findText(h);w=Math.abs(s.moveStart("character",-1048575));t.nodeValue=u;return w}if(j.collapsed){pos=r(q,l);o=m.createTextRange();o.move("character",pos);o.select();return}else{if(q==n&&q.nodeType==3){p=r(q,l);o=m.createTextRange();o.move("character",p);o.moveEnd("character",i-l);o.select();return}p=r(q,l);k=r(n,i);o=m.createTextRange();if(p==-1){o.moveToElementText(q);p=0}else{o.move("character",p)}tmpRng=m.createTextRange();if(k==-1){tmpRng.moveToElementText(n)}else{tmpRng.move("character",k)}o.setEndPoint("EndToEnd",tmpRng);o.select();return}};this.getRangeAt=function(){if(!b||!c(g,e.getRng())){b=f();g=e.getRng()}return b};this.destroy=function(){g=b=null}}tinymce.dom.TridentSelection=a})();(function(){var p=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,i=0,d=Object.prototype.toString,n=false;var b=function(D,t,A,v){A=A||[];var e=t=t||document;if(t.nodeType!==1&&t.nodeType!==9){return[]}if(!D||typeof D!=="string"){return A}var B=[],C,y,G,F,z,s,r=true,w=o(t);p.lastIndex=0;while((C=p.exec(D))!==null){B.push(C[1]);if(C[2]){s=RegExp.rightContext;break}}if(B.length>1&&j.exec(D)){if(B.length===2&&f.relative[B[0]]){y=g(B[0]+B[1],t)}else{y=f.relative[B[0]]?[t]:b(B.shift(),t);while(B.length){D=B.shift();if(f.relative[D]){D+=B.shift()}y=g(D,y)}}}else{if(!v&&B.length>1&&t.nodeType===9&&!w&&f.match.ID.test(B[0])&&!f.match.ID.test(B[B.length-1])){var H=b.find(B.shift(),t,w);t=H.expr?b.filter(H.expr,H.set)[0]:H.set[0]}if(t){var H=v?{expr:B.pop(),set:a(v)}:b.find(B.pop(),B.length===1&&(B[0]==="~"||B[0]==="+")&&t.parentNode?t.parentNode:t,w);y=H.expr?b.filter(H.expr,H.set):H.set;if(B.length>0){G=a(y)}else{r=false}while(B.length){var u=B.pop(),x=u;if(!f.relative[u]){u=""}else{x=B.pop()}if(x==null){x=t}f.relative[u](G,x,w)}}else{G=B=[]}}if(!G){G=y}if(!G){throw"Syntax error, unrecognized expression: "+(u||D)}if(d.call(G)==="[object Array]"){if(!r){A.push.apply(A,G)}else{if(t&&t.nodeType===1){for(var E=0;G[E]!=null;E++){if(G[E]&&(G[E]===true||G[E].nodeType===1&&h(t,G[E]))){A.push(y[E])}}}else{for(var E=0;G[E]!=null;E++){if(G[E]&&G[E].nodeType===1){A.push(y[E])}}}}}else{a(G,A)}if(s){b(s,e,A,v);b.uniqueSort(A)}return A};b.uniqueSort=function(r){if(c){n=false;r.sort(c);if(n){for(var e=1;e<r.length;e++){if(r[e]===r[e-1]){r.splice(e--,1)}}}}};b.matches=function(e,r){return b(e,null,null,r)};b.find=function(x,e,y){var w,u;if(!x){return[]}for(var t=0,s=f.order.length;t<s;t++){var v=f.order[t],u;if((u=f.match[v].exec(x))){var r=RegExp.leftContext;if(r.substr(r.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");w=f.find[v](u,e,y);if(w!=null){x=x.replace(f.match[v],"");break}}}}if(!w){w=e.getElementsByTagName("*")}return{set:w,expr:x}};b.filter=function(A,z,D,t){var s=A,F=[],x=z,v,e,w=z&&z[0]&&o(z[0]);while(A&&z.length){for(var y in f.filter){if((v=f.match[y].exec(A))!=null){var r=f.filter[y],E,C;e=false;if(x==F){F=[]}if(f.preFilter[y]){v=f.preFilter[y](v,x,D,F,t,w);if(!v){e=E=true}else{if(v===true){continue}}}if(v){for(var u=0;(C=x[u])!=null;u++){if(C){E=r(C,v,u,x);var B=t^!!E;if(D&&E!=null){if(B){e=true}else{x[u]=false}}else{if(B){F.push(C);e=true}}}}}if(E!==undefined){if(!D){x=F}A=A.replace(f.match[y],"");if(!e){return[]}break}}}if(A==s){if(e==null){throw"Syntax error, unrecognized expression: "+A}else{break}}s=A}return x};var f=b.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")}},relative:{"+":function(x,e,w){var u=typeof e==="string",y=u&&!/\W/.test(e),v=u&&!y;if(y&&!w){e=e.toUpperCase()}for(var t=0,s=x.length,r;t<s;t++){if((r=x[t])){while((r=r.previousSibling)&&r.nodeType!==1){}x[t]=v||r&&r.nodeName===e?r||false:r===e}}if(v){b.filter(e,x,true)}},">":function(w,r,x){var u=typeof r==="string";if(u&&!/\W/.test(r)){r=x?r:r.toUpperCase();for(var s=0,e=w.length;s<e;s++){var v=w[s];if(v){var t=v.parentNode;w[s]=t.nodeName===r?t:false}}}else{for(var s=0,e=w.length;s<e;s++){var v=w[s];if(v){w[s]=u?v.parentNode:v.parentNode===r}}if(u){b.filter(r,w,true)}}},"":function(t,r,v){var s=i++,e=q;if(!r.match(/\W/)){var u=r=v?r:r.toUpperCase();e=m}e("parentNode",r,s,t,u,v)},"~":function(t,r,v){var s=i++,e=q;if(typeof r==="string"&&!r.match(/\W/)){var u=r=v?r:r.toUpperCase();e=m}e("previousSibling",r,s,t,u,v)}},find:{ID:function(r,s,t){if(typeof s.getElementById!=="undefined"&&!t){var e=s.getElementById(r[1]);return e?[e]:[]}},NAME:function(s,v,w){if(typeof v.getElementsByName!=="undefined"){var r=[],u=v.getElementsByName(s[1]);for(var t=0,e=u.length;t<e;t++){if(u[t].getAttribute("name")===s[1]){r.push(u[t])}}return r.length===0?null:r}},TAG:function(e,r){return r.getElementsByTagName(e[1])}},preFilter:{CLASS:function(t,r,s,e,w,x){t=" "+t[1].replace(/\\/g,"")+" ";if(x){return t}for(var u=0,v;(v=r[u])!=null;u++){if(v){if(w^(v.className&&(" "+v.className+" ").indexOf(t)>=0)){if(!s){e.push(v)}}else{if(s){r[u]=false}}}}return false},ID:function(e){return e[1].replace(/\\/g,"")},TAG:function(r,e){for(var s=0;e[s]===false;s++){}return e[s]&&o(e[s])?r[1]:r[1].toUpperCase()},CHILD:function(e){if(e[1]=="nth"){var r=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(e[2]=="even"&&"2n"||e[2]=="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(r[1]+(r[2]||1))-0;e[3]=r[3]-0}e[0]=i++;return e},ATTR:function(u,r,s,e,v,w){var t=u[1].replace(/\\/g,"");if(!w&&f.attrMap[t]){u[1]=f.attrMap[t]}if(u[2]==="~="){u[4]=" "+u[4]+" "}return u},PSEUDO:function(u,r,s,e,v){if(u[1]==="not"){if(u[3].match(p).length>1||/^\w/.test(u[3])){u[3]=b(u[3],null,null,r)}else{var t=b.filter(u[3],r,s,true^v);if(!s){e.push.apply(e,t)}return false}}else{if(f.match.POS.test(u[0])||f.match.CHILD.test(u[0])){return true}}return u},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){e.parentNode.selectedIndex;return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(s,r,e){return !!b(e[3],s).length},header:function(e){return/h\d/i.test(e.nodeName)},text:function(e){return"text"===e.type},radio:function(e){return"radio"===e.type},checkbox:function(e){return"checkbox"===e.type},file:function(e){return"file"===e.type},password:function(e){return"password"===e.type},submit:function(e){return"submit"===e.type},image:function(e){return"image"===e.type},reset:function(e){return"reset"===e.type},button:function(e){return"button"===e.type||e.nodeName.toUpperCase()==="BUTTON"},input:function(e){return/input|select|textarea|button/i.test(e.nodeName)}},setFilters:{first:function(r,e){return e===0},last:function(s,r,e,t){return r===t.length-1},even:function(r,e){return e%2===0},odd:function(r,e){return e%2===1},lt:function(s,r,e){return r<e[3]-0},gt:function(s,r,e){return r>e[3]-0},nth:function(s,r,e){return e[3]-0==r},eq:function(s,r,e){return e[3]-0==r}},filter:{PSEUDO:function(w,s,t,x){var r=s[1],u=f.filters[r];if(u){return u(w,t,s,x)}else{if(r==="contains"){return(w.textContent||w.innerText||"").indexOf(s[3])>=0}else{if(r==="not"){var v=s[3];for(var t=0,e=v.length;t<e;t++){if(v[t]===w){return false}}return true}}}},CHILD:function(e,t){var w=t[1],r=e;switch(w){case"only":case"first":while(r=r.previousSibling){if(r.nodeType===1){return false}}if(w=="first"){return true}r=e;case"last":while(r=r.nextSibling){if(r.nodeType===1){return false}}return true;case"nth":var s=t[2],z=t[3];if(s==1&&z==0){return true}var v=t[0],y=e.parentNode;if(y&&(y.sizcache!==v||!e.nodeIndex)){var u=0;for(r=y.firstChild;r;r=r.nextSibling){if(r.nodeType===1){r.nodeIndex=++u}}y.sizcache=v}var x=e.nodeIndex-z;if(s==0){return x==0}else{return(x%s==0&&x/s>=0)}}},ID:function(r,e){return r.nodeType===1&&r.getAttribute("id")===e},TAG:function(r,e){return(e==="*"&&r.nodeType===1)||r.nodeName===e},CLASS:function(r,e){return(" "+(r.className||r.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(v,t){var s=t[1],e=f.attrHandle[s]?f.attrHandle[s](v):v[s]!=null?v[s]:v.getAttribute(s),w=e+"",u=t[2],r=t[4];return e==null?u==="!=":u==="="?w===r:u==="*="?w.indexOf(r)>=0:u==="~="?(" "+w+" ").indexOf(r)>=0:!r?w&&e!==false:u==="!="?w!=r:u==="^="?w.indexOf(r)===0:u==="$="?w.substr(w.length-r.length)===r:u==="|="?w===r||w.substr(0,r.length+1)===r+"-":false},POS:function(u,r,s,v){var e=r[2],t=f.setFilters[e];if(t){return t(u,s,r,v)}}}};var j=f.match.POS;for(var l in f.match){f.match[l]=new RegExp(f.match[l].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var a=function(r,e){r=Array.prototype.slice.call(r);if(e){e.push.apply(e,r);return e}return r};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(k){a=function(u,t){var r=t||[];if(d.call(u)==="[object Array]"){Array.prototype.push.apply(r,u)}else{if(typeof u.length==="number"){for(var s=0,e=u.length;s<e;s++){r.push(u[s])}}else{for(var s=0;u[s];s++){r.push(u[s])}}}return r}}var c;if(document.documentElement.compareDocumentPosition){c=function(r,e){var s=r.compareDocumentPosition(e)&4?-1:r===e?0:1;if(s===0){n=true}return s}}else{if("sourceIndex" in document.documentElement){c=function(r,e){var s=r.sourceIndex-e.sourceIndex;if(s===0){n=true}return s}}else{if(document.createRange){c=function(t,r){var s=t.ownerDocument.createRange(),e=r.ownerDocument.createRange();s.setStart(t,0);s.setEnd(t,0);e.setStart(r,0);e.setEnd(r,0);var u=s.compareBoundaryPoints(Range.START_TO_END,e);if(u===0){n=true}return u}}}}(function(){var r=document.createElement("div"),s="script"+(new Date).getTime();r.innerHTML="<a name='"+s+"'/>";var e=document.documentElement;e.insertBefore(r,e.firstChild);if(!!document.getElementById(s)){f.find.ID=function(u,v,w){if(typeof v.getElementById!=="undefined"&&!w){var t=v.getElementById(u[1]);return t?t.id===u[1]||typeof t.getAttributeNode!=="undefined"&&t.getAttributeNode("id").nodeValue===u[1]?[t]:undefined:[]}};f.filter.ID=function(v,t){var u=typeof v.getAttributeNode!=="undefined"&&v.getAttributeNode("id");return v.nodeType===1&&u&&u.nodeValue===t}}e.removeChild(r)})();(function(){var e=document.createElement("div");e.appendChild(document.createComment(""));if(e.getElementsByTagName("*").length>0){f.find.TAG=function(r,v){var u=v.getElementsByTagName(r[1]);if(r[1]==="*"){var t=[];for(var s=0;u[s];s++){if(u[s].nodeType===1){t.push(u[s])}}u=t}return u}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){f.attrHandle.href=function(r){return r.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var e=b,s=document.createElement("div");s.innerHTML="<p class='TEST'></p>";if(s.querySelectorAll&&s.querySelectorAll(".TEST").length===0){return}b=function(w,v,t,u){v=v||document;if(!u&&v.nodeType===9&&!o(v)){try{return a(v.querySelectorAll(w),t)}catch(x){}}return e(w,v,t,u)};for(var r in e){b[r]=e[r]}})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var e=document.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}f.order.splice(1,0,"CLASS");f.find.CLASS=function(r,s,t){if(typeof s.getElementsByClassName!=="undefined"&&!t){return s.getElementsByClassName(r[1])}}})()}function m(r,w,v,A,x,z){var y=r=="previousSibling"&&!z;for(var t=0,s=A.length;t<s;t++){var e=A[t];if(e){if(y&&e.nodeType===1){e.sizcache=v;e.sizset=t}e=e[r];var u=false;while(e){if(e.sizcache===v){u=A[e.sizset];break}if(e.nodeType===1&&!z){e.sizcache=v;e.sizset=t}if(e.nodeName===w){u=e;break}e=e[r]}A[t]=u}}}function q(r,w,v,A,x,z){var y=r=="previousSibling"&&!z;for(var t=0,s=A.length;t<s;t++){var e=A[t];if(e){if(y&&e.nodeType===1){e.sizcache=v;e.sizset=t}e=e[r];var u=false;while(e){if(e.sizcache===v){u=A[e.sizset];break}if(e.nodeType===1){if(!z){e.sizcache=v;e.sizset=t}if(typeof w!=="string"){if(e===w){u=true;break}}else{if(b.filter(w,[e]).length>0){u=e;break}}}e=e[r]}A[t]=u}}}var h=document.compareDocumentPosition?function(r,e){return r.compareDocumentPosition(e)&16}:function(r,e){return r!==e&&(r.contains?r.contains(e):true)};var o=function(e){return e.nodeType===9&&e.documentElement.nodeName!=="HTML"||!!e.ownerDocument&&e.ownerDocument.documentElement.nodeName!=="HTML"};var g=function(e,x){var t=[],u="",v,s=x.nodeType?[x]:x;while((v=f.match.PSEUDO.exec(e))){u+=v[0];e=e.replace(f.match.PSEUDO,"")}e=f.relative[e]?e+"*":e;for(var w=0,r=s.length;w<r;w++){b(e,s[w],t)}return b.filter(u,t)};window.tinymce.dom.Sizzle=b})();(function(d){var f=d.each,c=d.DOM,b=d.isIE,e=d.isWebKit,a;d.create("tinymce.dom.EventUtils",{EventUtils:function(){this.inits=[];this.events=[]},add:function(m,p,l,j){var g,h=this,i=h.events,k;if(p instanceof Array){k=[];f(p,function(o){k.push(h.add(m,o,l,j))});return k}if(m&&m.hasOwnProperty&&m instanceof Array){k=[];f(m,function(n){n=c.get(n);k.push(h.add(n,p,l,j))});return k}m=c.get(m);if(!m){return}g=function(n){if(h.disabled){return}n=n||window.event;if(n&&b){if(!n.target){n.target=n.srcElement}d.extend(n,h._stoppers)}if(!j){return l(n)}return l.call(j,n)};if(p=="unload"){d.unloads.unshift({func:g});return g}if(p=="init"){if(h.domLoaded){g()}else{h.inits.push(g)}return g}i.push({obj:m,name:p,func:l,cfunc:g,scope:j});h._add(m,p,g);return l},remove:function(l,m,k){var h=this,g=h.events,i=false,j;if(l&&l.hasOwnProperty&&l instanceof Array){j=[];f(l,function(n){n=c.get(n);j.push(h.remove(n,m,k))});return j}l=c.get(l);f(g,function(o,n){if(o.obj==l&&o.name==m&&(!k||(o.func==k||o.cfunc==k))){g.splice(n,1);h._remove(l,m,o.cfunc);i=true;return false}});return i},clear:function(l){var j=this,g=j.events,h,k;if(l){l=c.get(l);for(h=g.length-1;h>=0;h--){k=g[h];if(k.obj===l){j._remove(k.obj,k.name,k.cfunc);k.obj=k.cfunc=null;g.splice(h,1)}}}},cancel:function(g){if(!g){return false}this.stop(g);return this.prevent(g)},stop:function(g){if(g.stopPropagation){g.stopPropagation()}else{g.cancelBubble=true}return false},prevent:function(g){if(g.preventDefault){g.preventDefault()}else{g.returnValue=false}return false},destroy:function(){var g=this;f(g.events,function(j,h){g._remove(j.obj,j.name,j.cfunc);j.obj=j.cfunc=null});g.events=[];g=null},_add:function(h,i,g){if(h.attachEvent){h.attachEvent("on"+i,g)}else{if(h.addEventListener){h.addEventListener(i,g,false)}else{h["on"+i]=g}}},_remove:function(i,j,h){if(i){try{if(i.detachEvent){i.detachEvent("on"+j,h)}else{if(i.removeEventListener){i.removeEventListener(j,h,false)}else{i["on"+j]=null}}}catch(g){}}},_pageInit:function(h){var g=this;if(g.domLoaded){return}g.domLoaded=true;f(g.inits,function(i){i()});g.inits=[]},_wait:function(i){var g=this,h=i.document;if(i.tinyMCE_GZ&&tinyMCE_GZ.loaded){g.domLoaded=1;return}if(h.attachEvent){h.attachEvent("onreadystatechange",function(){if(h.readyState==="complete"){h.detachEvent("onreadystatechange",arguments.callee);g._pageInit(i)}});if(h.documentElement.doScroll&&i==i.top){(function(){if(g.domLoaded){return}try{h.documentElement.doScroll("left")}catch(j){setTimeout(arguments.callee,0);return}g._pageInit(i)})()}}else{if(h.addEventListener){g._add(i,"DOMContentLoaded",function(){g._pageInit(i)})}}g._add(i,"load",function(){g._pageInit(i)})},_stoppers:{preventDefault:function(){this.returnValue=false},stopPropagation:function(){this.cancelBubble=true}}});a=d.dom.Event=new d.dom.EventUtils();a._wait(window);d.addUnload(function(){a.destroy()})})(tinymce);(function(a){var b=a.each;a.create("tinymce.dom.Element",{Element:function(g,e){var c=this,f,d;e=e||{};c.id=g;c.dom=f=e.dom||a.DOM;c.settings=e;if(!a.isIE){d=c.dom.get(c.id)}b(["getPos","getRect","getParent","add","setStyle","getStyle","setStyles","setAttrib","setAttribs","getAttrib","addClass","removeClass","hasClass","getOuterHTML","setOuterHTML","remove","show","hide","isHidden","setHTML","get"],function(h){c[h]=function(){var j=[g],k;for(k=0;k<arguments.length;k++){j.push(arguments[k])}j=f[h].apply(f,j);c.update(h);return j}})},on:function(e,d,c){return a.dom.Event.add(this.id,e,d,c)},getXY:function(){return{x:parseInt(this.getStyle("left")),y:parseInt(this.getStyle("top"))}},getSize:function(){var c=this.dom.get(this.id);return{w:parseInt(this.getStyle("width")||c.clientWidth),h:parseInt(this.getStyle("height")||c.clientHeight)}},moveTo:function(c,d){this.setStyles({left:c,top:d})},moveBy:function(c,e){var d=this.getXY();this.moveTo(d.x+c,d.y+e)},resizeTo:function(c,d){this.setStyles({width:c,height:d})},resizeBy:function(c,e){var d=this.getSize();this.resizeTo(d.w+c,d.h+e)},update:function(d){var e=this,c,f=e.dom;if(a.isIE6&&e.settings.blocker){d=d||"";if(d.indexOf("get")===0||d.indexOf("has")===0||d.indexOf("is")===0){return}if(d=="remove"){f.remove(e.blocker);return}if(!e.blocker){e.blocker=f.uniqueId();c=f.add(e.settings.container||f.getRoot(),"iframe",{id:e.blocker,style:"position:absolute;",frameBorder:0,src:'javascript:""'});f.setStyle(c,"opacity",0)}else{c=f.get(e.blocker)}f.setStyle(c,"left",e.getStyle("left",1));f.setStyle(c,"top",e.getStyle("top",1));f.setStyle(c,"width",e.getStyle("width",1));f.setStyle(c,"height",e.getStyle("height",1));f.setStyle(c,"display",e.getStyle("display",1));f.setStyle(c,"zIndex",parseInt(e.getStyle("zIndex",1)||0)-1)}}})})(tinymce);(function(c){function e(f){return f.replace(/[\n\r]+/g,"")}var b=c.is,a=c.isIE,d=c.each;c.create("tinymce.dom.Selection",{Selection:function(i,h,g){var f=this;f.dom=i;f.win=h;f.serializer=g;d(["onBeforeSetContent","onBeforeGetContent","onSetContent","onGetContent"],function(j){f[j]=new c.util.Dispatcher(f)});if(!f.win.getSelection){f.tridentSel=new c.dom.TridentSelection(f)}c.addUnload(f.destroy,f)},getContent:function(g){var f=this,h=f.getRng(),l=f.dom.create("body"),j=f.getSel(),i,k,m;g=g||{};i=k="";g.get=true;g.format=g.format||"html";f.onBeforeGetContent.dispatch(f,g);if(g.format=="text"){return f.isCollapsed()?"":(h.text||(j.toString?j.toString():""))}if(h.cloneContents){m=h.cloneContents();if(m){l.appendChild(m)}}else{if(b(h.item)||b(h.htmlText)){l.innerHTML=h.item?h.item(0).outerHTML:h.htmlText}else{l.innerHTML=h.toString()}}if(/^\s/.test(l.innerHTML)){i=" "}if(/\s+$/.test(l.innerHTML)){k=" "}g.getInner=true;g.content=f.isCollapsed()?"":i+f.serializer.serialize(l,g)+k;f.onGetContent.dispatch(f,g);return g.content},setContent:function(i,g){var f=this,j=f.getRng(),l,k=f.win.document;g=g||{format:"html"};g.set=true;i=g.content=f.dom.processHTML(i);f.onBeforeSetContent.dispatch(f,g);i=g.content;if(j.insertNode){i+='<span id="__caret">_</span>';j.deleteContents();j.insertNode(f.getRng().createContextualFragment(i));l=f.dom.get("__caret");j=k.createRange();j.setStartBefore(l);j.setEndAfter(l);f.setRng(j);f.dom.remove("__caret")}else{if(j.item){k.execCommand("Delete",false,null);j=f.getRng()}j.pasteHTML(i)}f.onSetContent.dispatch(f,g)},getStart:function(){var f=this,g=f.getRng(),h;if(a){if(g.item){return g.item(0)}g=g.duplicate();g.collapse(1);h=g.parentElement();if(h&&h.nodeName=="BODY"){return h.firstChild}return h}else{h=g.startContainer;if(h.nodeName=="BODY"){return h.firstChild}return f.dom.getParent(h,"*")}},getEnd:function(){var f=this,g=f.getRng(),h;if(a){if(g.item){return g.item(0)}g=g.duplicate();g.collapse(0);h=g.parentElement();if(h&&h.nodeName=="BODY"){return h.lastChild}return h}else{h=g.endContainer;if(h.nodeName=="BODY"){return h.lastChild}return f.dom.getParent(h,"*")}},getBookmark:function(x){var j=this,m=j.getRng(),f,n,l,u=j.dom.getViewPort(j.win),v,p,z,o,w=-16777215,k,h=j.dom.getRoot(),g=0,i=0,y;n=u.x;l=u.y;if(x){return{rng:m,scrollX:n,scrollY:l}}if(a){if(m.item){v=m.item(0);d(j.dom.select(v.nodeName),function(s,r){if(v==s){p=r;return false}});return{tag:v.nodeName,index:p,scrollX:n,scrollY:l}}f=j.dom.doc.body.createTextRange();f.moveToElementText(h);f.collapse(true);z=Math.abs(f.move("character",w));f=m.duplicate();f.collapse(true);p=Math.abs(f.move("character",w));f=m.duplicate();f.collapse(false);o=Math.abs(f.move("character",w))-p;return{start:p-z,length:o,scrollX:n,scrollY:l}}v=j.getNode();k=j.getSel();if(!k){return null}if(v&&v.nodeName=="IMG"){return{scrollX:n,scrollY:l}}function q(A,D,t){var s=j.dom.doc.createTreeWalker(A,NodeFilter.SHOW_TEXT,null,false),E,B=0,C={};while((E=s.nextNode())!=null){if(E==D){C.start=B}if(E==t){C.end=B;return C}B+=e(E.nodeValue||"").length}return null}if(k.anchorNode==k.focusNode&&k.anchorOffset==k.focusOffset){v=q(h,k.anchorNode,k.focusNode);if(!v){return{scrollX:n,scrollY:l}}e(k.anchorNode.nodeValue||"").replace(/^\s+/,function(r){g=r.length});return{start:Math.max(v.start+k.anchorOffset-g,0),end:Math.max(v.end+k.focusOffset-g,0),scrollX:n,scrollY:l,beg:k.anchorOffset-g==0}}else{v=q(h,m.startContainer,m.endContainer);if(!v){return{scrollX:n,scrollY:l}}return{start:Math.max(v.start+m.startOffset-g,0),end:Math.max(v.end+m.endOffset-i,0),scrollX:n,scrollY:l,beg:m.startOffset-g==0}}},moveToBookmark:function(n){var o=this,g=o.getRng(),p=o.getSel(),j=o.dom.getRoot(),m,h,k;function i(q,t,D){var B=o.dom.doc.createTreeWalker(q,NodeFilter.SHOW_TEXT,null,false),x,s=0,A={},u,C,z,y;while((x=B.nextNode())!=null){z=y=0;k=x.nodeValue||"";h=e(k).length;s+=h;if(s>=t&&!A.startNode){u=t-(s-h);if(n.beg&&u>=h){continue}A.startNode=x;A.startOffset=u+y}if(s>=D){A.endNode=x;A.endOffset=D-(s-h)+y;return A}}return null}if(!n){return false}o.win.scrollTo(n.scrollX,n.scrollY);if(a){o.tridentSel.destroy();if(g=n.rng){try{g.select()}catch(l){}return true}o.win.focus();if(n.tag){g=j.createControlRange();d(o.dom.select(n.tag),function(r,q){if(q==n.index){g.addElement(r)}})}else{try{if(n.start<0){return true}g=p.createRange();g.moveToElementText(j);g.collapse(true);g.moveStart("character",n.start);g.moveEnd("character",n.length)}catch(f){return true}}try{g.select()}catch(l){}return true}if(!p){return false}if(n.rng){p.removeAllRanges();p.addRange(n.rng)}else{if(b(n.start)&&b(n.end)){try{m=i(j,n.start,n.end);if(m){g=o.dom.doc.createRange();g.setStart(m.startNode,m.startOffset);g.setEnd(m.endNode,m.endOffset);p.removeAllRanges();p.addRange(g)}if(!c.isOpera){o.win.focus()}}catch(l){}}}},select:function(g,l){var p=this,f=p.getRng(),q=p.getSel(),o,m,k,j=p.win.document;function h(u,t){var s,r;if(u){s=j.createTreeWalker(u,NodeFilter.SHOW_TEXT,null,false);while(u=s.nextNode()){r=u;if(c.trim(u.nodeValue).length!=0){if(t){return u}else{r=u}}}}return r}if(a){try{o=j.body;if(/^(IMG|TABLE)$/.test(g.nodeName)){f=o.createControlRange();f.addElement(g)}else{f=o.createTextRange();f.moveToElementText(g)}f.select()}catch(i){}}else{if(l){m=h(g,1)||p.dom.select("br:first",g)[0];k=h(g,0)||p.dom.select("br:last",g)[0];if(m&&k){f=j.createRange();if(m.nodeName=="BR"){f.setStartBefore(m)}else{f.setStart(m,0)}if(k.nodeName=="BR"){f.setEndBefore(k)}else{f.setEnd(k,k.nodeValue.length)}}else{f.selectNode(g)}}else{f.selectNode(g)}p.setRng(f)}return g},isCollapsed:function(){var f=this,h=f.getRng(),g=f.getSel();if(!h||h.item){return false}return !g||h.boundingWidth==0||h.collapsed},collapse:function(f){var g=this,h=g.getRng(),i;if(h.item){i=h.item(0);h=this.win.document.body.createTextRange();h.moveToElementText(i)}h.collapse(!!f);g.setRng(h)},getSel:function(){var g=this,f=this.win;return f.getSelection?f.getSelection():f.document.selection},getRng:function(j){var g=this,h,i;if(j&&g.tridentSel){return g.tridentSel.getRangeAt(0)}try{if(h=g.getSel()){i=h.rangeCount>0?h.getRangeAt(0):(h.createRange?h.createRange():g.win.document.createRange())}}catch(f){}if(!i){i=a?g.win.document.body.createTextRange():g.win.document.createRange()}return i},setRng:function(i){var h,g=this;if(!g.tridentSel){h=g.getSel();if(h){h.removeAllRanges();h.addRange(i)}}else{if(i.cloneRange){g.tridentSel.addRange(i);return}try{i.select()}catch(f){}}},setNode:function(g){var f=this;f.setContent(f.dom.getOuterHTML(g));return g},getNode:function(){var f=this,h=f.getRng(),g=f.getSel(),i;if(!a){if(!h){return f.dom.getRoot()}i=h.commonAncestorContainer;if(!h.collapsed){if(c.isWebKit&&g.anchorNode&&g.anchorNode.nodeType==1){return g.anchorNode.childNodes[g.anchorOffset]}if(h.startContainer==h.endContainer){if(h.startOffset-h.endOffset<2){if(h.startContainer.hasChildNodes()){i=h.startContainer.childNodes[h.startOffset]}}}}return f.dom.getParent(i,"*")}return h.item?h.item(0):h.parentElement()},getSelectedBlocks:function(g,f){var i=this,j=i.dom,m,h,l,k=[];m=j.getParent(g||i.getStart(),j.isBlock);h=j.getParent(f||i.getEnd(),j.isBlock);if(m){k.push(m)}if(m&&h&&m!=h){l=m;while((l=l.nextSibling)&&l!=h){if(j.isBlock(l)){k.push(l)}}}if(h&&m!=h){k.push(h)}return k},destroy:function(g){var f=this;f.win=null;if(f.tridentSel){f.tridentSel.destroy()}if(!g){c.removeUnload(f.destroy)}}})})(tinymce);(function(a){a.create("tinymce.dom.XMLWriter",{node:null,XMLWriter:function(c){function b(){var e=document.implementation;if(!e||!e.createDocument){try{return new ActiveXObject("MSXML2.DOMDocument")}catch(d){}try{return new ActiveXObject("Microsoft.XmlDom")}catch(d){}}else{return e.createDocument("","",null)}}this.doc=b();this.valid=a.isOpera||a.isWebKit;this.reset()},reset:function(){var b=this,c=b.doc;if(c.firstChild){c.removeChild(c.firstChild)}b.node=c.appendChild(c.createElement("html"))},writeStartElement:function(c){var b=this;b.node=b.node.appendChild(b.doc.createElement(c))},writeAttribute:function(c,b){if(this.valid){b=b.replace(/>/g,"%MCGT%")}this.node.setAttribute(c,b)},writeEndElement:function(){this.node=this.node.parentNode},writeFullEndElement:function(){var b=this,c=b.node;c.appendChild(b.doc.createTextNode(""));b.node=c.parentNode},writeText:function(b){if(this.valid){b=b.replace(/>/g,"%MCGT%")}this.node.appendChild(this.doc.createTextNode(b))},writeCDATA:function(b){this.node.appendChild(this.doc.createCDATASection(b))},writeComment:function(b){if(a.isIE){b=b.replace(/^\-|\-$/g," ")}this.node.appendChild(this.doc.createComment(b.replace(/\-\-/g," ")))},getContent:function(){var b;b=this.doc.xml||new XMLSerializer().serializeToString(this.doc);b=b.replace(/<\?[^?]+\?>|<html>|<\/html>|<html\/>|<!DOCTYPE[^>]+>/g,"");b=b.replace(/ ?\/>/g," />");if(this.valid){b=b.replace(/\%MCGT%/g,"&gt;")}return b}})})(tinymce);(function(a){a.create("tinymce.dom.StringWriter",{str:null,tags:null,count:0,settings:null,indent:null,StringWriter:function(b){this.settings=a.extend({indent_char:" ",indentation:0},b);this.reset()},reset:function(){this.indent="";this.str="";this.tags=[];this.count=0},writeStartElement:function(b){this._writeAttributesEnd();this.writeRaw("<"+b);this.tags.push(b);this.inAttr=true;this.count++;this.elementCount=this.count},writeAttribute:function(d,b){var c=this;c.writeRaw(" "+c.encode(d)+'="'+c.encode(b)+'"')},writeEndElement:function(){var b;if(this.tags.length>0){b=this.tags.pop();if(this._writeAttributesEnd(1)){this.writeRaw("</"+b+">")}if(this.settings.indentation>0){this.writeRaw("\n")}}},writeFullEndElement:function(){if(this.tags.length>0){this._writeAttributesEnd();this.writeRaw("</"+this.tags.pop()+">");if(this.settings.indentation>0){this.writeRaw("\n")}}},writeText:function(b){this._writeAttributesEnd();this.writeRaw(this.encode(b));this.count++},writeCDATA:function(b){this._writeAttributesEnd();this.writeRaw("<![CDATA["+b+"]]>");this.count++},writeComment:function(b){this._writeAttributesEnd();this.writeRaw("<!-- "+b+"-->");this.count++},writeRaw:function(b){this.str+=b},encode:function(b){return b.replace(/[<>&"]/g,function(c){switch(c){case"<":return"&lt;";case">":return"&gt;";case"&":return"&amp;";case'"':return"&quot;"}return c})},getContent:function(){return this.str},_writeAttributesEnd:function(b){if(!this.inAttr){return}this.inAttr=false;if(b&&this.elementCount==this.count){this.writeRaw(" />");return false}this.writeRaw(">");return true}})})(tinymce);(function(e){var g=e.extend,f=e.each,b=e.util.Dispatcher,d=e.isIE,a=e.isGecko;function c(h){return h.replace(/([?+*])/g,".$1")}e.create("tinymce.dom.Serializer",{Serializer:function(j){var i=this;i.key=0;i.onPreProcess=new b(i);i.onPostProcess=new b(i);try{i.writer=new e.dom.XMLWriter()}catch(h){i.writer=new e.dom.StringWriter()}i.settings=j=g({dom:e.DOM,valid_nodes:0,node_filter:0,attr_filter:0,invalid_attrs:/^(mce_|_moz_|sizset|sizcache)/,closed:/^(br|hr|input|meta|img|link|param|area)$/,entity_encoding:"named",entities:"160,nbsp,161,iexcl,162,cent,163,pound,164,curren,165,yen,166,brvbar,167,sect,168,uml,169,copy,170,ordf,171,laquo,172,not,173,shy,174,reg,175,macr,176,deg,177,plusmn,178,sup2,179,sup3,180,acute,181,micro,182,para,183,middot,184,cedil,185,sup1,186,ordm,187,raquo,188,frac14,189,frac12,190,frac34,191,iquest,192,Agrave,193,Aacute,194,Acirc,195,Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,201,Eacute,202,Ecirc,203,Euml,204,Igrave,205,Iacute,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,211,Oacute,212,Ocirc,213,Otilde,214,Ouml,215,times,216,Oslash,217,Ugrave,218,Uacute,219,Ucirc,220,Uuml,221,Yacute,222,THORN,223,szlig,224,agrave,225,aacute,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,233,eacute,234,ecirc,235,euml,236,igrave,237,iacute,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,243,oacute,244,ocirc,245,otilde,246,ouml,247,divide,248,oslash,249,ugrave,250,uacute,251,ucirc,252,uuml,253,yacute,254,thorn,255,yuml,402,fnof,913,Alpha,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,966,phi,967,chi,968,psi,969,omega,977,thetasym,978,upsih,982,piv,8226,bull,8230,hellip,8242,prime,8243,Prime,8254,oline,8260,frasl,8472,weierp,8465,image,8476,real,8482,trade,8501,alefsym,8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,8704,forall,8706,part,8707,exist,8709,empty,8711,nabla,8712,isin,8713,notin,8715,ni,8719,prod,8721,sum,8722,minus,8727,lowast,8730,radic,8733,prop,8734,infin,8736,ang,8743,and,8744,or,8745,cap,8746,cup,8747,int,8756,there4,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8804,le,8805,ge,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,diams,338,OElig,339,oelig,352,Scaron,353,scaron,376,Yuml,710,circ,732,tilde,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,8211,ndash,8212,mdash,8216,lsquo,8217,rsquo,8218,sbquo,8220,ldquo,8221,rdquo,8222,bdquo,8224,dagger,8225,Dagger,8240,permil,8249,lsaquo,8250,rsaquo,8364,euro",valid_elements:"*[*]",extended_valid_elements:0,valid_child_elements:0,invalid_elements:0,fix_table_elements:1,fix_list_elements:true,fix_content_duplication:true,convert_fonts_to_spans:false,font_size_classes:0,font_size_style_values:0,apply_source_formatting:0,indent_mode:"simple",indent_char:"\t",indent_levels:1,remove_linebreaks:1,remove_redundant_brs:1,element_format:"xhtml"},j);i.dom=j.dom;if(j.remove_redundant_brs){i.onPostProcess.add(function(k,l){l.content=l.content.replace(/(<br \/>\s*)+<\/(p|h[1-6]|div|li)>/gi,function(n,m,o){if(/^<br \/>\s*<\//.test(n)){return"</"+o+">"}return n})})}if(j.element_format=="html"){i.onPostProcess.add(function(k,l){l.content=l.content.replace(/<([^>]+) \/>/g,"<$1>")})}if(j.fix_list_elements){i.onPreProcess.add(function(v,s){var l,y,w=["ol","ul"],u,t,q,k=/^(OL|UL)$/,z;function m(r,x){var o=x.split(","),p;while((r=r.previousSibling)!=null){for(p=0;p<o.length;p++){if(r.nodeName==o[p]){return r}}}return null}for(y=0;y<w.length;y++){l=i.dom.select(w[y],s.node);for(u=0;u<l.length;u++){t=l[u];q=t.parentNode;if(k.test(q.nodeName)){z=m(t,"LI");if(!z){z=i.dom.create("li");z.innerHTML="&nbsp;";z.appendChild(t);q.insertBefore(z,q.firstChild)}else{z.appendChild(t)}}}}})}if(j.fix_table_elements){i.onPreProcess.add(function(k,l){if(!e.isOpera||opera.buildNumber()>=1767){f(i.dom.select("p table",l.node).reverse(),function(p){var o=i.dom.getParent(p.parentNode,"table,p");if(o.nodeName!="TABLE"){try{i.dom.split(o,p)}catch(m){}}})}})}},setEntities:function(p){var n=this,j,m,h={},o="",k;if(n.entityLookup){return}j=p.split(",");for(m=0;m<j.length;m+=2){k=j[m];if(k==34||k==38||k==60||k==62){continue}h[String.fromCharCode(j[m])]=j[m+1];k=parseInt(j[m]).toString(16);o+="\\u"+"0000".substring(k.length)+k}if(!o){n.settings.entity_encoding="raw";return}n.entitiesRE=new RegExp("["+o+"]","g");n.entityLookup=h},setValidChildRules:function(h){this.childRules=null;this.addValidChildRules(h)},addValidChildRules:function(k){var j=this,l,h,i;if(!k){return}l="A|BR|SPAN|BDO|MAP|OBJECT|IMG|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|#text|#comment";h="A|BR|SPAN|BDO|OBJECT|APPLET|IMG|MAP|IFRAME|TT|I|B|U|S|STRIKE|BIG|SMALL|FONT|BASEFONT|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|#text|#comment";i="H[1-6]|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP";f(k.split(","),function(n){var o=n.split(/\[|\]/),m;n="";f(o[1].split("|"),function(p){if(n){n+="|"}switch(p){case"%itrans":p=h;break;case"%itrans_na":p=h.substring(2);break;case"%istrict":p=l;break;case"%istrict_na":p=l.substring(2);break;case"%btrans":p=i;break;case"%bstrict":p=i;break}n+=p});m=new RegExp("^("+n.toLowerCase()+")$","i");f(o[0].split("/"),function(p){j.childRules=j.childRules||{};j.childRules[p]=m})});k="";f(j.childRules,function(n,m){if(k){k+="|"}k+=m});j.parentElementsRE=new RegExp("^("+k.toLowerCase()+")$","i")},setRules:function(i){var h=this;h._setup();h.rules={};h.wildRules=[];h.validElements={};return h.addRules(i)},addRules:function(i){var h=this,j;if(!i){return}h._setup();f(i.split(","),function(m){var q=m.split(/\[|\]/),l=q[0].split("/"),r,k,o,n=[];if(j){k=e.extend([],j.attribs)}if(q.length>1){f(q[1].split("|"),function(u){var p={},t;k=k||[];u=u.replace(/::/g,"~");u=/^([!\-])?([\w*.?~_\-]+|)([=:<])?(.+)?$/.exec(u);u[2]=u[2].replace(/~/g,":");if(u[1]=="!"){r=r||[];r.push(u[2])}if(u[1]=="-"){for(t=0;t<k.length;t++){if(k[t].name==u[2]){k.splice(t,1);return}}}switch(u[3]){case"=":p.defaultVal=u[4]||"";break;case":":p.forcedVal=u[4];break;case"<":p.validVals=u[4].split("?");break}if(/[*.?]/.test(u[2])){o=o||[];p.nameRE=new RegExp("^"+c(u[2])+"$");o.push(p)}else{p.name=u[2];k.push(p)}n.push(u[2])})}f(l,function(v,u){var w=v.charAt(0),t=1,p={};if(j){if(j.noEmpty){p.noEmpty=j.noEmpty}if(j.fullEnd){p.fullEnd=j.fullEnd}if(j.padd){p.padd=j.padd}}switch(w){case"-":p.noEmpty=true;break;case"+":p.fullEnd=true;break;case"#":p.padd=true;break;default:t=0}l[u]=v=v.substring(t);h.validElements[v]=1;if(/[*.?]/.test(l[0])){p.nameRE=new RegExp("^"+c(l[0])+"$");h.wildRules=h.wildRules||{};h.wildRules.push(p)}else{p.name=l[0];if(l[0]=="@"){j=p}h.rules[v]=p}p.attribs=k;if(r){p.requiredAttribs=r}if(o){v="";f(n,function(s){if(v){v+="|"}v+="("+c(s)+")"});p.validAttribsRE=new RegExp("^"+v.toLowerCase()+"$");p.wildAttribs=o}})});i="";f(h.validElements,function(m,l){if(i){i+="|"}if(l!="@"){i+=l}});h.validElementsRE=new RegExp("^("+c(i.toLowerCase())+")$")},findRule:function(m){var j=this,l=j.rules,h,k;j._setup();k=l[m];if(k){return k}l=j.wildRules;for(h=0;h<l.length;h++){if(l[h].nameRE.test(m)){return l[h]}}return null},findAttribRule:function(h,l){var j,k=h.wildAttribs;for(j=0;j<k.length;j++){if(k[j].nameRE.test(l)){return k[j]}}return null},serialize:function(r,q){var m,k=this,p,i,j,l;k._setup();q=q||{};q.format=q.format||"html";k.processObj=q;if(d){l=[];f(r.getElementsByTagName("option"),function(o){var h=k.dom.getAttrib(o,"selected");l.push(h?h:null)})}r=r.cloneNode(true);if(d){f(r.getElementsByTagName("option"),function(o,h){k.dom.setAttrib(o,"selected",l[h])})}j=r.ownerDocument.implementation;if(j.createHTMLDocument&&(e.isOpera&&opera.buildNumber()>=1767)){p=j.createHTMLDocument("");f(r.nodeName=="BODY"?r.childNodes:[r],function(h){p.body.appendChild(p.importNode(h,true))});if(r.nodeName!="BODY"){r=p.body.firstChild}else{r=p.body}i=k.dom.doc;k.dom.doc=p}k.key=""+(parseInt(k.key)+1);if(!q.no_events){q.node=r;k.onPreProcess.dispatch(k,q)}k.writer.reset();k._serializeNode(r,q.getInner);q.content=k.writer.getContent();if(i){k.dom.doc=i}if(!q.no_events){k.onPostProcess.dispatch(k,q)}k._postProcess(q);q.node=null;return e.trim(q.content)},_postProcess:function(n){var i=this,k=i.settings,j=n.content,m=[],l;if(n.format=="html"){l=i._protect({content:j,patterns:[{pattern:/(<script[^>]*>)(.*?)(<\/script>)/g},{pattern:/(<noscript[^>]*>)(.*?)(<\/noscript>)/g},{pattern:/(<style[^>]*>)(.*?)(<\/style>)/g},{pattern:/(<pre[^>]*>)(.*?)(<\/pre>)/g,encode:1},{pattern:/(<!--\[CDATA\[)(.*?)(\]\]-->)/g}]});j=l.content;if(k.entity_encoding!=="raw"){j=i._encode(j)}if(!n.set){j=j.replace(/<p>\s+<\/p>|<p([^>]+)>\s+<\/p>/g,k.entity_encoding=="numeric"?"<p$1>&#160;</p>":"<p$1>&nbsp;</p>");if(k.remove_linebreaks){j=j.replace(/\r?\n|\r/g," ");j=j.replace(/(<[^>]+>)\s+/g,"$1 ");j=j.replace(/\s+(<\/[^>]+>)/g," $1");j=j.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object) ([^>]+)>\s+/g,"<$1 $2>");j=j.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>\s+/g,"<$1>");j=j.replace(/\s+<\/(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>/g,"</$1>")}if(k.apply_source_formatting&&k.indent_mode=="simple"){j=j.replace(/<(\/?)(ul|hr|table|meta|link|tbody|tr|object|body|head|html|map)(|[^>]+)>\s*/g,"\n<$1$2$3>\n");j=j.replace(/\s*<(p|h[1-6]|blockquote|div|title|style|pre|script|td|li|area)(|[^>]+)>/g,"\n<$1$2>");j=j.replace(/<\/(p|h[1-6]|blockquote|div|title|style|pre|script|td|li)>\s*/g,"</$1>\n");j=j.replace(/\n\n/g,"\n")}}j=i._unprotect(j,l);j=j.replace(/<!--\[CDATA\[([\s\S]+)\]\]-->/g,"<![CDATA[$1]]>");if(k.entity_encoding=="raw"){j=j.replace(/<p>&nbsp;<\/p>|<p([^>]+)>&nbsp;<\/p>/g,"<p$1>\u00a0</p>")}j=j.replace(/<noscript([^>]+|)>([\s\S]*?)<\/noscript>/g,function(h,p,o){return"<noscript"+p+">"+i.dom.decode(o.replace(/<!--|-->/g,""))+"</noscript>"})}n.content=j},_serializeNode:function(D,o){var z=this,A=z.settings,x=z.writer,q,j,u,F,E,G,B,h,y,k,r,C,p,m;if(!A.node_filter||A.node_filter(D)){switch(D.nodeType){case 1:if(D.hasAttribute?D.hasAttribute("mce_bogus"):D.getAttribute("mce_bogus")){return}p=false;q=D.hasChildNodes();k=D.getAttribute("mce_name")||D.nodeName.toLowerCase();if(d){if(D.scopeName!=="HTML"&&D.scopeName!=="html"){k=D.scopeName+":"+k}}if(k.indexOf("mce:")===0){k=k.substring(4)}if(!z.validElementsRE||!z.validElementsRE.test(k)||(z.invalidElementsRE&&z.invalidElementsRE.test(k))||o){p=true;break}if(d){if(A.fix_content_duplication){if(D.mce_serialized==z.key){return}D.mce_serialized=z.key}if(k.charAt(0)=="/"){k=k.substring(1)}}else{if(a){if(D.nodeName==="BR"&&D.getAttribute("type")=="_moz"){return}}}if(z.childRules){if(z.parentElementsRE.test(z.elementName)){if(!z.childRules[z.elementName].test(k)){p=true;break}}z.elementName=k}r=z.findRule(k);k=r.name||k;m=A.closed.test(k);if((!q&&r.noEmpty)||(d&&!k)){p=true;break}if(r.requiredAttribs){G=r.requiredAttribs;for(F=G.length-1;F>=0;F--){if(this.dom.getAttrib(D,G[F])!==""){break}}if(F==-1){p=true;break}}x.writeStartElement(k);if(r.attribs){for(F=0,B=r.attribs,E=B.length;F<E;F++){G=B[F];y=z._getAttrib(D,G);if(y!==null){x.writeAttribute(G.name,y)}}}if(r.validAttribsRE){B=z.dom.getAttribs(D);for(F=B.length-1;F>-1;F--){h=B[F];if(h.specified){G=h.nodeName.toLowerCase();if(A.invalid_attrs.test(G)||!r.validAttribsRE.test(G)){continue}C=z.findAttribRule(r,G);y=z._getAttrib(D,C,G);if(y!==null){x.writeAttribute(G,y)}}}}if(k==="script"&&e.trim(D.innerHTML)){x.writeText("// ");x.writeCDATA(D.innerHTML.replace(/<!--|-->|<\[CDATA\[|\]\]>/g,""));q=false;break}if(r.padd){if(q&&(u=D.firstChild)&&u.nodeType===1&&D.childNodes.length===1){if(u.hasAttribute?u.hasAttribute("mce_bogus"):u.getAttribute("mce_bogus")){x.writeText("\u00a0")}}else{if(!q){x.writeText("\u00a0")}}}break;case 3:if(z.childRules&&z.parentElementsRE.test(z.elementName)){if(!z.childRules[z.elementName].test(D.nodeName)){return}}return x.writeText(D.nodeValue);case 4:return x.writeCDATA(D.nodeValue);case 8:return x.writeComment(D.nodeValue)}}else{if(D.nodeType==1){q=D.hasChildNodes()}}if(q&&!m){u=D.firstChild;while(u){z._serializeNode(u);z.elementName=k;u=u.nextSibling}}if(!p){if(!m){x.writeFullEndElement()}else{x.writeEndElement()}}},_protect:function(j){var i=this;j.items=j.items||[];function h(l){return l.replace(/[\r\n\\]/g,function(m){if(m==="\n"){return"\\n"}else{if(m==="\\"){return"\\\\"}}return"\\r"})}function k(l){return l.replace(/\\[\\rn]/g,function(m){if(m==="\\n"){return"\n"}else{if(m==="\\\\"){return"\\"}}return"\r"})}f(j.patterns,function(l){j.content=k(h(j.content).replace(l.pattern,function(n,o,m,p){m=k(m);if(l.encode){m=i._encode(m)}j.items.push(m);return o+"<!--mce:"+(j.items.length-1)+"-->"+p}))});return j},_unprotect:function(i,j){i=i.replace(/\<!--mce:([0-9]+)--\>/g,function(k,h){return j.items[parseInt(h)]});j.items=[];return i},_encode:function(m){var j=this,k=j.settings,i;if(k.entity_encoding!=="raw"){if(k.entity_encoding.indexOf("named")!=-1){j.setEntities(k.entities);i=j.entityLookup;m=m.replace(j.entitiesRE,function(h){var l;if(l=i[h]){h="&"+l+";"}return h})}if(k.entity_encoding.indexOf("numeric")!=-1){m=m.replace(/[\u007E-\uFFFF]/g,function(h){return"&#"+h.charCodeAt(0)+";"})}}return m},_setup:function(){var h=this,i=this.settings;if(h.done){return}h.done=1;h.setRules(i.valid_elements);h.addRules(i.extended_valid_elements);h.addValidChildRules(i.valid_child_elements);if(i.invalid_elements){h.invalidElementsRE=new RegExp("^("+c(i.invalid_elements.replace(/,/g,"|").toLowerCase())+")$")}if(i.attrib_value_filter){h.attribValueFilter=i.attribValueFilter}},_getAttrib:function(m,j,h){var l,k;h=h||j.name;if(j.forcedVal&&(k=j.forcedVal)){if(k==="{$uid}"){return this.dom.uniqueId()}return k}k=this.dom.getAttrib(m,h);switch(h){case"rowspan":case"colspan":if(k=="1"){k=""}break}if(this.attribValueFilter){k=this.attribValueFilter(h,k,m)}if(j.validVals){for(l=j.validVals.length-1;l>=0;l--){if(k==j.validVals[l]){break}}if(l==-1){return null}}if(k===""&&typeof(j.defaultVal)!="undefined"){k=j.defaultVal;if(k==="{$uid}"){return this.dom.uniqueId()}return k}else{if(h=="class"&&this.processObj.get){k=k.replace(/\s?mceItem\w+\s?/g,"")}}if(k===""){return null}return k}})})(tinymce);(function(tinymce){var each=tinymce.each,Event=tinymce.dom.Event;tinymce.create("tinymce.dom.ScriptLoader",{ScriptLoader:function(s){this.settings=s||{};this.queue=[];this.lookup={}},isDone:function(u){return this.lookup[u]?this.lookup[u].state==2:0},markDone:function(u){this.lookup[u]={state:2,url:u}},add:function(u,cb,s,pr){var t=this,lo=t.lookup,o;if(o=lo[u]){if(cb&&o.state==2){cb.call(s||this)}return o}o={state:0,url:u,func:cb,scope:s||this};if(pr){t.queue.unshift(o)}else{t.queue.push(o)}lo[u]=o;return o},load:function(u,cb,s){var t=this,o;if(o=t.lookup[u]){if(cb&&o.state==2){cb.call(s||t)}return o}function loadScript(u){if(Event.domLoaded||t.settings.strict_mode){tinymce.util.XHR.send({url:tinymce._addVer(u),error:t.settings.error,async:false,success:function(co){t.eval(co)}})}else{document.write('<script type="text/javascript" src="'+tinymce._addVer(u)+'"><\/script>')}}if(!tinymce.is(u,"string")){each(u,function(u){loadScript(u)});if(cb){cb.call(s||t)}}else{loadScript(u);if(cb){cb.call(s||t)}}},loadQueue:function(cb,s){var t=this;if(!t.queueLoading){t.queueLoading=1;t.queueCallbacks=[];t.loadScripts(t.queue,function(){t.queueLoading=0;if(cb){cb.call(s||t)}each(t.queueCallbacks,function(o){o.func.call(o.scope)})})}else{if(cb){t.queueCallbacks.push({func:cb,scope:s||t})}}},eval:function(co){var w=window;if(!w.execScript){try{eval.call(w,co)}catch(ex){eval(co,w)}}else{w.execScript(co)}},loadScripts:function(sc,cb,s){var t=this,lo=t.lookup;function done(o){o.state=2;if(o.func){o.func.call(o.scope||t)}}function allDone(){var l;l=sc.length;each(sc,function(o){o=lo[o.url];if(o.state===2){done(o);l--}else{load(o)}});if(l===0&&cb){cb.call(s||t);cb=0}}function load(o){if(o.state>0){return}o.state=1;tinymce.dom.ScriptLoader.loadScript(o.url,function(){done(o);allDone()})}each(sc,function(o){var u=o.url;if(!lo[u]){lo[u]=o;t.queue.push(o)}else{o=lo[u]}if(o.state>0){return}if(!Event.domLoaded&&!t.settings.strict_mode){var ix,ol="";if(cb||o.func){o.state=1;ix=tinymce.dom.ScriptLoader._addOnLoad(function(){done(o);allDone()});if(tinymce.isIE){ol=' onreadystatechange="'}else{ol=' onload="'}ol+="tinymce.dom.ScriptLoader._onLoad(this,'"+u+"',"+ix+');"'}document.write('<script type="text/javascript" src="'+tinymce._addVer(u)+'"'+ol+"><\/script>");if(!o.func){done(o)}}else{load(o)}});allDone()},"static":{_addOnLoad:function(f){var t=this;t._funcs=t._funcs||[];t._funcs.push(f);return t._funcs.length-1},_onLoad:function(e,u,ix){if(!tinymce.isIE||e.readyState=="complete"){this._funcs[ix].call(this)}},loadScript:function(u,cb){var id=tinymce.DOM.uniqueId(),e;function done(){Event.clear(id);tinymce.DOM.remove(id);if(cb){cb.call(document,u);cb=0}}if(tinymce.isIE){tinymce.util.XHR.send({url:tinymce._addVer(u),async:false,success:function(co){window.execScript(co);done()}})}else{e=tinymce.DOM.create("script",{id:id,type:"text/javascript",src:tinymce._addVer(u)});Event.add(e,"load",done);(document.getElementsByTagName("head")[0]||document.body).appendChild(e)}}}});tinymce.ScriptLoader=new tinymce.dom.ScriptLoader()})(tinymce);(function(c){var b=c.DOM,a=c.is;c.create("tinymce.ui.Control",{Control:function(e,d){this.id=e;this.settings=d=d||{};this.rendered=false;this.onRender=new c.util.Dispatcher(this);this.classPrefix="";this.scope=d.scope||this;this.disabled=0;this.active=0},setDisabled:function(d){var f;if(d!=this.disabled){f=b.get(this.id);if(f&&this.settings.unavailable_prefix){if(d){this.prevTitle=f.title;f.title=this.settings.unavailable_prefix+": "+f.title}else{f.title=this.prevTitle}}this.setState("Disabled",d);this.setState("Enabled",!d);this.disabled=d}},isDisabled:function(){return this.disabled},setActive:function(d){if(d!=this.active){this.setState("Active",d);this.active=d}},isActive:function(){return this.active},setState:function(f,d){var e=b.get(this.id);f=this.classPrefix+f;if(d){b.addClass(e,f)}else{b.removeClass(e,f)}},isRendered:function(){return this.rendered},renderHTML:function(){},renderTo:function(d){b.setHTML(d,this.renderHTML())},postRender:function(){var e=this,d;if(a(e.disabled)){d=e.disabled;e.disabled=-1;e.setDisabled(d)}if(a(e.active)){d=e.active;e.active=-1;e.setActive(d)}},remove:function(){b.remove(this.id);this.destroy()},destroy:function(){c.dom.Event.clear(this.id)}})})(tinymce);tinymce.create("tinymce.ui.Container:tinymce.ui.Control",{Container:function(b,a){this.parent(b,a);this.controls=[];this.lookup={}},add:function(a){this.lookup[a.id]=a;this.controls.push(a);return a},get:function(a){return this.lookup[a]}});tinymce.create("tinymce.ui.Separator:tinymce.ui.Control",{Separator:function(b,a){this.parent(b,a);this.classPrefix="mceSeparator"},renderHTML:function(){return tinymce.DOM.createHTML("span",{"class":this.classPrefix})}});(function(d){var c=d.is,b=d.DOM,e=d.each,a=d.walk;d.create("tinymce.ui.MenuItem:tinymce.ui.Control",{MenuItem:function(g,f){this.parent(g,f);this.classPrefix="mceMenuItem"},setSelected:function(f){this.setState("Selected",f);this.selected=f},isSelected:function(){return this.selected},postRender:function(){var f=this;f.parent();if(c(f.selected)){f.setSelected(f.selected)}}})})(tinymce);(function(d){var c=d.is,b=d.DOM,e=d.each,a=d.walk;d.create("tinymce.ui.Menu:tinymce.ui.MenuItem",{Menu:function(h,g){var f=this;f.parent(h,g);f.items={};f.collapsed=false;f.menuCount=0;f.onAddItem=new d.util.Dispatcher(this)},expand:function(g){var f=this;if(g){a(f,function(h){if(h.expand){h.expand()}},"items",f)}f.collapsed=false},collapse:function(g){var f=this;if(g){a(f,function(h){if(h.collapse){h.collapse()}},"items",f)}f.collapsed=true},isCollapsed:function(){return this.collapsed},add:function(f){if(!f.settings){f=new d.ui.MenuItem(f.id||b.uniqueId(),f)}this.onAddItem.dispatch(this,f);return this.items[f.id]=f},addSeparator:function(){return this.add({separator:true})},addMenu:function(f){if(!f.collapse){f=this.createMenu(f)}this.menuCount++;return this.add(f)},hasMenus:function(){return this.menuCount!==0},remove:function(f){delete this.items[f.id]},removeAll:function(){var f=this;a(f,function(g){if(g.removeAll){g.removeAll()}else{g.remove()}g.destroy()},"items",f);f.items={}},createMenu:function(g){var f=new d.ui.Menu(g.id||b.uniqueId(),g);f.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);return f}})})(tinymce);(function(e){var d=e.is,c=e.DOM,f=e.each,a=e.dom.Event,b=e.dom.Element;e.create("tinymce.ui.DropMenu:tinymce.ui.Menu",{DropMenu:function(h,g){g=g||{};g.container=g.container||c.doc.body;g.offset_x=g.offset_x||0;g.offset_y=g.offset_y||0;g.vp_offset_x=g.vp_offset_x||0;g.vp_offset_y=g.vp_offset_y||0;if(d(g.icons)&&!g.icons){g["class"]+=" mceNoIcons"}this.parent(h,g);this.onShowMenu=new e.util.Dispatcher(this);this.onHideMenu=new e.util.Dispatcher(this);this.classPrefix="mceMenu"},createMenu:function(j){var h=this,i=h.settings,g;j.container=j.container||i.container;j.parent=h;j.constrain=j.constrain||i.constrain;j["class"]=j["class"]||i["class"];j.vp_offset_x=j.vp_offset_x||i.vp_offset_x;j.vp_offset_y=j.vp_offset_y||i.vp_offset_y;g=new e.ui.DropMenu(j.id||c.uniqueId(),j);g.onAddItem.add(h.onAddItem.dispatch,h.onAddItem);return g},update:function(){var i=this,j=i.settings,g=c.get("menu_"+i.id+"_tbl"),l=c.get("menu_"+i.id+"_co"),h,k;h=j.max_width?Math.min(g.clientWidth,j.max_width):g.clientWidth;k=j.max_height?Math.min(g.clientHeight,j.max_height):g.clientHeight;if(!c.boxModel){i.element.setStyles({width:h+2,height:k+2})}else{i.element.setStyles({width:h,height:k})}if(j.max_width){c.setStyle(l,"width",h)}if(j.max_height){c.setStyle(l,"height",k);if(g.clientHeight<j.max_height){c.setStyle(l,"overflow","hidden")}}},showMenu:function(p,n,r){var z=this,A=z.settings,o,g=c.getViewPort(),u,l,v,q,i=2,k,j,m=z.classPrefix;z.collapse(1);if(z.isMenuVisible){return}if(!z.rendered){o=c.add(z.settings.container,z.renderNode());f(z.items,function(h){h.postRender()});z.element=new b("menu_"+z.id,{blocker:1,container:A.container})}else{o=c.get("menu_"+z.id)}if(!e.isOpera){c.setStyles(o,{left:-65535,top:-65535})}c.show(o);z.update();p+=A.offset_x||0;n+=A.offset_y||0;g.w-=4;g.h-=4;if(A.constrain){u=o.clientWidth-i;l=o.clientHeight-i;v=g.x+g.w;q=g.y+g.h;if((p+A.vp_offset_x+u)>v){p=r?r-u:Math.max(0,(v-A.vp_offset_x)-u)}if((n+A.vp_offset_y+l)>q){n=Math.max(0,(q-A.vp_offset_y)-l)}}c.setStyles(o,{left:p,top:n});z.element.update();z.isMenuVisible=1;z.mouseClickFunc=a.add(o,"click",function(s){var h;s=s.target;if(s&&(s=c.getParent(s,"tr"))&&!c.hasClass(s,m+"ItemSub")){h=z.items[s.id];if(h.isDisabled()){return}k=z;while(k){if(k.hideMenu){k.hideMenu()}k=k.settings.parent}if(h.settings.onclick){h.settings.onclick(s)}return a.cancel(s)}});if(z.hasMenus()){z.mouseOverFunc=a.add(o,"mouseover",function(w){var h,t,s;w=w.target;if(w&&(w=c.getParent(w,"tr"))){h=z.items[w.id];if(z.lastMenu){z.lastMenu.collapse(1)}if(h.isDisabled()){return}if(w&&c.hasClass(w,m+"ItemSub")){t=c.getRect(w);h.showMenu((t.x+t.w-i),t.y-i,t.x);z.lastMenu=h;c.addClass(c.get(h.id).firstChild,m+"ItemActive")}}})}z.onShowMenu.dispatch(z);if(A.keyboard_focus){a.add(o,"keydown",z._keyHandler,z);c.select("a","menu_"+z.id)[0].focus();z._focusIdx=0}},hideMenu:function(j){var g=this,i=c.get("menu_"+g.id),h;if(!g.isMenuVisible){return}a.remove(i,"mouseover",g.mouseOverFunc);a.remove(i,"click",g.mouseClickFunc);a.remove(i,"keydown",g._keyHandler);c.hide(i);g.isMenuVisible=0;if(!j){g.collapse(1)}if(g.element){g.element.hide()}if(h=c.get(g.id)){c.removeClass(h.firstChild,g.classPrefix+"ItemActive")}g.onHideMenu.dispatch(g)},add:function(i){var g=this,h;i=g.parent(i);if(g.isRendered&&(h=c.get("menu_"+g.id))){g._add(c.select("tbody",h)[0],i)}return i},collapse:function(g){this.parent(g);this.hideMenu(1)},remove:function(g){c.remove(g.id);this.destroy();return this.parent(g)},destroy:function(){var g=this,h=c.get("menu_"+g.id);a.remove(h,"mouseover",g.mouseOverFunc);a.remove(h,"click",g.mouseClickFunc);if(g.element){g.element.remove()}c.remove(h)},renderNode:function(){var i=this,j=i.settings,l,h,k,g;g=c.create("div",{id:"menu_"+i.id,"class":j["class"],style:"position:absolute;left:0;top:0;z-index:200000"});k=c.add(g,"div",{id:"menu_"+i.id+"_co","class":i.classPrefix+(j["class"]?" "+j["class"]:"")});i.element=new b("menu_"+i.id,{blocker:1,container:j.container});if(j.menu_line){c.add(k,"span",{"class":i.classPrefix+"Line"})}l=c.add(k,"table",{id:"menu_"+i.id+"_tbl",border:0,cellPadding:0,cellSpacing:0});h=c.add(l,"tbody");f(i.items,function(m){i._add(h,m)});i.rendered=true;return g},_keyHandler:function(j){var i=this,h=j.keyCode;function g(m){var k=i._focusIdx+m,l=c.select("a","menu_"+i.id)[k];if(l){i._focusIdx=k;l.focus()}}switch(h){case 38:g(-1);return;case 40:g(1);return;case 13:return;case 27:return this.hideMenu()}},_add:function(j,h){var i,q=h.settings,p,l,k,m=this.classPrefix,g;if(q.separator){l=c.add(j,"tr",{id:h.id,"class":m+"ItemSeparator"});c.add(l,"td",{"class":m+"ItemSeparator"});if(i=l.previousSibling){c.addClass(i,"mceLast")}return}i=l=c.add(j,"tr",{id:h.id,"class":m+"Item "+m+"ItemEnabled"});i=k=c.add(i,"td");i=p=c.add(i,"a",{href:"#",onclick:"return false;",onmousedown:"return false;"});c.addClass(k,q["class"]);g=c.add(i,"span",{"class":"mceIcon"+(q.icon?" mce_"+q.icon:"")});if(q.icon_src){c.add(g,"img",{src:q.icon_src})}i=c.add(i,q.element||"span",{"class":"mceText",title:h.settings.title},h.settings.title);if(h.settings.style){c.setAttrib(i,"style",h.settings.style)}if(j.childNodes.length==1){c.addClass(l,"mceFirst")}if((i=l.previousSibling)&&c.hasClass(i,m+"ItemSeparator")){c.addClass(l,"mceFirst")}if(h.collapse){c.addClass(l,m+"ItemSub")}if(i=l.previousSibling){c.removeClass(i,"mceLast")}c.addClass(l,"mceLast")}})})(tinymce);(function(b){var a=b.DOM;b.create("tinymce.ui.Button:tinymce.ui.Control",{Button:function(d,c){this.parent(d,c);this.classPrefix="mceButton"},renderHTML:function(){var f=this.classPrefix,e=this.settings,d,c;c=a.encode(e.label||"");d='<a id="'+this.id+'" href="#" class="'+f+" "+f+"Enabled "+e["class"]+(c?" "+f+"Labeled":"")+'" onmousedown="return false;" onclick="return false;" title="'+a.encode(e.title)+'">';if(e.image){d+='<img class="mceIcon" src="'+e.image+'" />'+c+"</a>"}else{d+='<span class="mceIcon '+e["class"]+'"></span>'+(c?'<span class="'+f+'Label">'+c+"</span>":"")+"</a>"}return d},postRender:function(){var c=this,d=c.settings;b.dom.Event.add(c.id,"click",function(f){if(!c.isDisabled()){return d.onclick.call(d.scope,f)}})}})})(tinymce);(function(d){var c=d.DOM,b=d.dom.Event,e=d.each,a=d.util.Dispatcher;d.create("tinymce.ui.ListBox:tinymce.ui.Control",{ListBox:function(h,g){var f=this;f.parent(h,g);f.items=[];f.onChange=new a(f);f.onPostRender=new a(f);f.onAdd=new a(f);f.onRenderMenu=new d.util.Dispatcher(this);f.classPrefix="mceListBox"},select:function(h){var g=this,j,i;if(h==undefined){return g.selectByIndex(-1)}if(h&&h.call){i=h}else{i=function(f){return f==h}}if(h!=g.selectedValue){e(g.items,function(k,f){if(i(k.value)){j=1;g.selectByIndex(f);return false}});if(!j){g.selectByIndex(-1)}}},selectByIndex:function(f){var g=this,h,i;if(f!=g.selectedIndex){h=c.get(g.id+"_text");i=g.items[f];if(i){g.selectedValue=i.value;g.selectedIndex=f;c.setHTML(h,c.encode(i.title));c.removeClass(h,"mceTitle")}else{c.setHTML(h,c.encode(g.settings.title));c.addClass(h,"mceTitle");g.selectedValue=g.selectedIndex=null}h=0}},add:function(i,f,h){var g=this;h=h||{};h=d.extend(h,{title:i,value:f});g.items.push(h);g.onAdd.dispatch(g,h)},getLength:function(){return this.items.length},renderHTML:function(){var i="",f=this,g=f.settings,j=f.classPrefix;i='<table id="'+f.id+'" cellpadding="0" cellspacing="0" class="'+j+" "+j+"Enabled"+(g["class"]?(" "+g["class"]):"")+'"><tbody><tr>';i+="<td>"+c.createHTML("a",{id:f.id+"_text",href:"#","class":"mceText",onclick:"return false;",onmousedown:"return false;"},c.encode(f.settings.title))+"</td>";i+="<td>"+c.createHTML("a",{id:f.id+"_open",tabindex:-1,href:"#","class":"mceOpen",onclick:"return false;",onmousedown:"return false;"},"<span></span>")+"</td>";i+="</tr></tbody></table>";return i},showMenu:function(){var g=this,j,i,h=c.get(this.id),f;if(g.isDisabled()||g.items.length==0){return}if(g.menu&&g.menu.isMenuVisible){return g.hideMenu()}if(!g.isMenuRendered){g.renderMenu();g.isMenuRendered=true}j=c.getPos(this.settings.menu_container);i=c.getPos(h);f=g.menu;f.settings.offset_x=i.x;f.settings.offset_y=i.y;f.settings.keyboard_focus=!d.isOpera;if(g.oldID){f.items[g.oldID].setSelected(0)}e(g.items,function(k){if(k.value===g.selectedValue){f.items[k.id].setSelected(1);g.oldID=k.id}});f.showMenu(0,h.clientHeight);b.add(c.doc,"mousedown",g.hideMenu,g);c.addClass(g.id,g.classPrefix+"Selected")},hideMenu:function(g){var f=this;if(g&&g.type=="mousedown"&&(g.target.id==f.id+"_text"||g.target.id==f.id+"_open")){return}if(!g||!c.getParent(g.target,".mceMenu")){c.removeClass(f.id,f.classPrefix+"Selected");b.remove(c.doc,"mousedown",f.hideMenu,f);if(f.menu){f.menu.hideMenu()}}},renderMenu:function(){var g=this,f;f=g.settings.control_manager.createDropMenu(g.id+"_menu",{menu_line:1,"class":g.classPrefix+"Menu mceNoIcons",max_width:150,max_height:150});f.onHideMenu.add(g.hideMenu,g);f.add({title:g.settings.title,"class":"mceMenuItemTitle",onclick:function(){if(g.settings.onselect("")!==false){g.select("")}}});e(g.items,function(h){h.id=c.uniqueId();h.onclick=function(){if(g.settings.onselect(h.value)!==false){g.select(h.value)}};f.add(h)});g.onRenderMenu.dispatch(g,f);g.menu=f},postRender:function(){var f=this,g=f.classPrefix;b.add(f.id,"click",f.showMenu,f);b.add(f.id+"_text","focus",function(h){if(!f._focused){f.keyDownHandler=b.add(f.id+"_text","keydown",function(l){var i=-1,j,k=l.keyCode;e(f.items,function(m,n){if(f.selectedValue==m.value){i=n}});if(k==38){j=f.items[i-1]}else{if(k==40){j=f.items[i+1]}else{if(k==13){j=f.selectedValue;f.selectedValue=null;f.settings.onselect(j);return b.cancel(l)}}}if(j){f.hideMenu();f.select(j.value)}})}f._focused=1});b.add(f.id+"_text","blur",function(){b.remove(f.id+"_text","keydown",f.keyDownHandler);f._focused=0});if(d.isIE6||!c.boxModel){b.add(f.id,"mouseover",function(){if(!c.hasClass(f.id,g+"Disabled")){c.addClass(f.id,g+"Hover")}});b.add(f.id,"mouseout",function(){if(!c.hasClass(f.id,g+"Disabled")){c.removeClass(f.id,g+"Hover")}})}f.onPostRender.dispatch(f,c.get(f.id))},destroy:function(){this.parent();b.clear(this.id+"_text");b.clear(this.id+"_open")}})})(tinymce);(function(d){var c=d.DOM,b=d.dom.Event,e=d.each,a=d.util.Dispatcher;d.create("tinymce.ui.NativeListBox:tinymce.ui.ListBox",{NativeListBox:function(g,f){this.parent(g,f);this.classPrefix="mceNativeListBox"},setDisabled:function(f){c.get(this.id).disabled=f},isDisabled:function(){return c.get(this.id).disabled},select:function(h){var g=this,j,i;if(h==undefined){return g.selectByIndex(-1)}if(h&&h.call){i=h}else{i=function(f){return f==h}}if(h!=g.selectedValue){e(g.items,function(k,f){if(i(k.value)){j=1;g.selectByIndex(f);return false}});if(!j){g.selectByIndex(-1)}}},selectByIndex:function(f){c.get(this.id).selectedIndex=f+1;this.selectedValue=this.items[f]?this.items[f].value:null},add:function(j,g,f){var i,h=this;f=f||{};f.value=g;if(h.isRendered()){c.add(c.get(this.id),"option",f,j)}i={title:j,value:g,attribs:f};h.items.push(i);h.onAdd.dispatch(h,i)},getLength:function(){return c.get(this.id).options.length-1},renderHTML:function(){var g,f=this;g=c.createHTML("option",{value:""},"-- "+f.settings.title+" --");e(f.items,function(h){g+=c.createHTML("option",{value:h.value},h.title)});g=c.createHTML("select",{id:f.id,"class":"mceNativeListBox"},g);return g},postRender:function(){var g=this,h;g.rendered=true;function f(j){var i=g.items[j.target.selectedIndex-1];if(i&&(i=i.value)){g.onChange.dispatch(g,i);if(g.settings.onselect){g.settings.onselect(i)}}}b.add(g.id,"change",f);b.add(g.id,"keydown",function(j){var i;b.remove(g.id,"change",h);i=b.add(g.id,"blur",function(){b.add(g.id,"change",f);b.remove(g.id,"blur",i)});if(j.keyCode==13||j.keyCode==32){f(j);return b.cancel(j)}});g.onPostRender.dispatch(g,c.get(g.id))}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each;c.create("tinymce.ui.MenuButton:tinymce.ui.Button",{MenuButton:function(f,e){this.parent(f,e);this.onRenderMenu=new c.util.Dispatcher(this);e.menu_container=e.menu_container||b.doc.body},showMenu:function(){var g=this,j,i,h=b.get(g.id),f;if(g.isDisabled()){return}if(!g.isMenuRendered){g.renderMenu();g.isMenuRendered=true}if(g.isMenuVisible){return g.hideMenu()}j=b.getPos(g.settings.menu_container);i=b.getPos(h);f=g.menu;f.settings.offset_x=i.x;f.settings.offset_y=i.y;f.settings.vp_offset_x=i.x;f.settings.vp_offset_y=i.y;f.settings.keyboard_focus=g._focused;f.showMenu(0,h.clientHeight);a.add(b.doc,"mousedown",g.hideMenu,g);g.setState("Selected",1);g.isMenuVisible=1},renderMenu:function(){var f=this,e;e=f.settings.control_manager.createDropMenu(f.id+"_menu",{menu_line:1,"class":this.classPrefix+"Menu",icons:f.settings.icons});e.onHideMenu.add(f.hideMenu,f);f.onRenderMenu.dispatch(f,e);f.menu=e},hideMenu:function(g){var f=this;if(g&&g.type=="mousedown"&&b.getParent(g.target,function(h){return h.id===f.id||h.id===f.id+"_open"})){return}if(!g||!b.getParent(g.target,".mceMenu")){f.setState("Selected",0);a.remove(b.doc,"mousedown",f.hideMenu,f);if(f.menu){f.menu.hideMenu()}}f.isMenuVisible=0},postRender:function(){var e=this,f=e.settings;a.add(e.id,"click",function(){if(!e.isDisabled()){if(f.onclick){f.onclick(e.value)}e.showMenu()}})}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each;c.create("tinymce.ui.SplitButton:tinymce.ui.MenuButton",{SplitButton:function(f,e){this.parent(f,e);this.classPrefix="mceSplitButton"},renderHTML:function(){var i,f=this,g=f.settings,e;i="<tbody><tr>";if(g.image){e=b.createHTML("img ",{src:g.image,"class":"mceAction "+g["class"]})}else{e=b.createHTML("span",{"class":"mceAction "+g["class"]},"")}i+="<td>"+b.createHTML("a",{id:f.id+"_action",href:"#","class":"mceAction "+g["class"],onclick:"return false;",onmousedown:"return false;",title:g.title},e)+"</td>";e=b.createHTML("span",{"class":"mceOpen "+g["class"]});i+="<td>"+b.createHTML("a",{id:f.id+"_open",href:"#","class":"mceOpen "+g["class"],onclick:"return false;",onmousedown:"return false;",title:g.title},e)+"</td>";i+="</tr></tbody>";return b.createHTML("table",{id:f.id,"class":"mceSplitButton mceSplitButtonEnabled "+g["class"],cellpadding:"0",cellspacing:"0",onmousedown:"return false;",title:g.title},i)},postRender:function(){var e=this,f=e.settings;if(f.onclick){a.add(e.id+"_action","click",function(){if(!e.isDisabled()){f.onclick(e.value)}})}a.add(e.id+"_open","click",e.showMenu,e);a.add(e.id+"_open","focus",function(){e._focused=1});a.add(e.id+"_open","blur",function(){e._focused=0});if(c.isIE6||!b.boxModel){a.add(e.id,"mouseover",function(){if(!b.hasClass(e.id,"mceSplitButtonDisabled")){b.addClass(e.id,"mceSplitButtonHover")}});a.add(e.id,"mouseout",function(){if(!b.hasClass(e.id,"mceSplitButtonDisabled")){b.removeClass(e.id,"mceSplitButtonHover")}})}},destroy:function(){this.parent();a.clear(this.id+"_action");a.clear(this.id+"_open")}})})(tinymce);(function(d){var c=d.DOM,a=d.dom.Event,b=d.is,e=d.each;d.create("tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton",{ColorSplitButton:function(h,g){var f=this;f.parent(h,g);f.settings=g=d.extend({colors:"000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF",grid_width:8,default_color:"#888888"},f.settings);f.onShowMenu=new d.util.Dispatcher(f);f.onHideMenu=new d.util.Dispatcher(f);f.value=g.default_color},showMenu:function(){var f=this,g,j,i,h;if(f.isDisabled()){return}if(!f.isMenuRendered){f.renderMenu();f.isMenuRendered=true}if(f.isMenuVisible){return f.hideMenu()}i=c.get(f.id);c.show(f.id+"_menu");c.addClass(i,"mceSplitButtonSelected");h=c.getPos(i);c.setStyles(f.id+"_menu",{left:h.x,top:h.y+i.clientHeight,zIndex:200000});i=0;a.add(c.doc,"mousedown",f.hideMenu,f);f.onShowMenu.dispatch(f);if(f._focused){f._keyHandler=a.add(f.id+"_menu","keydown",function(k){if(k.keyCode==27){f.hideMenu()}});c.select("a",f.id+"_menu")[0].focus()}f.isMenuVisible=1},hideMenu:function(g){var f=this;if(g&&g.type=="mousedown"&&c.getParent(g.target,function(h){return h.id===f.id+"_open"})){return}if(!g||!c.getParent(g.target,".mceSplitButtonMenu")){c.removeClass(f.id,"mceSplitButtonSelected");a.remove(c.doc,"mousedown",f.hideMenu,f);a.remove(f.id+"_menu","keydown",f._keyHandler);c.hide(f.id+"_menu")}f.onHideMenu.dispatch(f);f.isMenuVisible=0},renderMenu:function(){var k=this,f,j=0,l=k.settings,p,h,o,g;g=c.add(l.menu_container,"div",{id:k.id+"_menu","class":l.menu_class+" "+l["class"],style:"position:absolute;left:0;top:-1000px;"});f=c.add(g,"div",{"class":l["class"]+" mceSplitButtonMenu"});c.add(f,"span",{"class":"mceMenuLine"});p=c.add(f,"table",{"class":"mceColorSplitMenu"});h=c.add(p,"tbody");j=0;e(b(l.colors,"array")?l.colors:l.colors.split(","),function(i){i=i.replace(/^#/,"");if(!j--){o=c.add(h,"tr");j=l.grid_width-1}p=c.add(o,"td");p=c.add(p,"a",{href:"#",style:{backgroundColor:"#"+i},mce_color:"#"+i})});if(l.more_colors_func){p=c.add(h,"tr");p=c.add(p,"td",{colspan:l.grid_width,"class":"mceMoreColors"});p=c.add(p,"a",{id:k.id+"_more",href:"#",onclick:"return false;","class":"mceMoreColors"},l.more_colors_title);a.add(p,"click",function(i){l.more_colors_func.call(l.more_colors_scope||this);return a.cancel(i)})}c.addClass(f,"mceColorSplitMenu");a.add(k.id+"_menu","click",function(i){var m;i=i.target;if(i.nodeName=="A"&&(m=i.getAttribute("mce_color"))){k.setColor(m)}return a.cancel(i)});return g},setColor:function(g){var f=this;c.setStyle(f.id+"_preview","backgroundColor",g);f.value=g;f.hideMenu();f.settings.onselect(g)},postRender:function(){var f=this,g=f.id;f.parent();c.add(g+"_action","div",{id:g+"_preview","class":"mceColorPreview"});c.setStyle(f.id+"_preview","backgroundColor",f.value)},destroy:function(){this.parent();a.clear(this.id+"_menu");a.clear(this.id+"_more");c.remove(this.id+"_menu")}})})(tinymce);tinymce.create("tinymce.ui.Toolbar:tinymce.ui.Container",{renderHTML:function(){var l=this,e="",g,j,b=tinymce.DOM,m=l.settings,d,a,f,k;k=l.controls;for(d=0;d<k.length;d++){j=k[d];a=k[d-1];f=k[d+1];if(d===0){g="mceToolbarStart";if(j.Button){g+=" mceToolbarStartButton"}else{if(j.SplitButton){g+=" mceToolbarStartSplitButton"}else{if(j.ListBox){g+=" mceToolbarStartListBox"}}}e+=b.createHTML("td",{"class":g},b.createHTML("span",null,"<!-- IE -->"))}if(a&&j.ListBox){if(a.Button||a.SplitButton){e+=b.createHTML("td",{"class":"mceToolbarEnd"},b.createHTML("span",null,"<!-- IE -->"))}}if(b.stdMode){e+='<td style="position: relative">'+j.renderHTML()+"</td>"}else{e+="<td>"+j.renderHTML()+"</td>"}if(f&&j.ListBox){if(f.Button||f.SplitButton){e+=b.createHTML("td",{"class":"mceToolbarStart"},b.createHTML("span",null,"<!-- IE -->"))}}}g="mceToolbarEnd";if(j.Button){g+=" mceToolbarEndButton"}else{if(j.SplitButton){g+=" mceToolbarEndSplitButton"}else{if(j.ListBox){g+=" mceToolbarEndListBox"}}}e+=b.createHTML("td",{"class":g},b.createHTML("span",null,"<!-- IE -->"));return b.createHTML("table",{id:l.id,"class":"mceToolbar"+(m["class"]?" "+m["class"]:""),cellpadding:"0",cellspacing:"0",align:l.settings.align||""},"<tbody><tr>"+e+"</tr></tbody>")}});(function(b){var a=b.util.Dispatcher,c=b.each;b.create("tinymce.AddOnManager",{items:[],urls:{},lookup:{},onAdd:new a(this),get:function(d){return this.lookup[d]},requireLangPack:function(f){var d,e=b.EditorManager.settings;if(e&&e.language){d=this.urls[f]+"/langs/"+e.language+".js";if(!b.dom.Event.domLoaded&&!e.strict_mode){b.ScriptLoader.load(d)}else{b.ScriptLoader.add(d)}}},add:function(e,d){this.items.push(d);this.lookup[e]=d;this.onAdd.dispatch(this,e,d);return d},load:function(h,e,d,g){var f=this;if(f.urls[h]){return}if(e.indexOf("/")!=0&&e.indexOf("://")==-1){e=b.baseURL+"/"+e}f.urls[h]=e.substring(0,e.lastIndexOf("/"));b.ScriptLoader.add(e,d,g)}});b.PluginManager=new b.AddOnManager();b.ThemeManager=new b.AddOnManager()}(tinymce));(function(f){var g=f.each,h=f.extend,e=f.DOM,a=f.dom.Event,c=f.ThemeManager,b=f.PluginManager,d=f.explode;f.create("static tinymce.EditorManager",{editors:{},i18n:{},activeEditor:null,preInit:function(){var i=this,j=window.location;f.documentBaseURL=j.href.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,"");if(!/[\/\\]$/.test(f.documentBaseURL)){f.documentBaseURL+="/"}f.baseURL=new f.util.URI(f.documentBaseURL).toAbsolute(f.baseURL);f.EditorManager.baseURI=new f.util.URI(f.baseURL);i.onBeforeUnload=new f.util.Dispatcher(i);a.add(window,"beforeunload",function(k){i.onBeforeUnload.dispatch(i,k)})},init:function(q){var p=this,l,k=f.ScriptLoader,o,n,i=[],m;function j(u,v,r){var t=u[v];if(!t){return}if(f.is(t,"string")){r=t.replace(/\.\w+$/,"");r=r?f.resolve(r):0;t=f.resolve(t)}return t.apply(r||this,Array.prototype.slice.call(arguments,2))}q=h({theme:"simple",language:"en",strict_loading_mode:document.contentType=="application/xhtml+xml"},q);p.settings=q;if(!a.domLoaded&&!q.strict_loading_mode){if(q.language){k.add(f.baseURL+"/langs/"+q.language+".js")}if(q.theme&&q.theme.charAt(0)!="-"&&!c.urls[q.theme]){c.load(q.theme,"themes/"+q.theme+"/editor_template"+f.suffix+".js")}if(q.plugins){l=d(q.plugins);g(l,function(r){if(r&&r.charAt(0)!="-"&&!b.urls[r]){if(!f.isWebKit&&r=="safari"){return}b.load(r,"plugins/"+r+"/editor_plugin"+f.suffix+".js")}})}k.loadQueue()}a.add(document,"init",function(){var r,t;j(q,"onpageload");if(q.browsers){r=false;g(d(q.browsers),function(u){switch(u){case"ie":case"msie":if(f.isIE){r=true}break;case"gecko":if(f.isGecko){r=true}break;case"safari":case"webkit":if(f.isWebKit){r=true}break;case"opera":if(f.isOpera){r=true}break}});if(!r){return}}switch(q.mode){case"exact":r=q.elements||"";if(r.length>0){g(d(r),function(u){if(e.get(u)){m=new f.Editor(u,q);i.push(m);m.render(1)}else{o=0;g(document.forms,function(v){g(v.elements,function(w){if(w.name===u){u="mce_editor_"+o;e.setAttrib(w,"id",u);m=new f.Editor(u,q);i.push(m);m.render(1)}})})}})}break;case"textareas":case"specific_textareas":function s(v,u){return u.constructor===RegExp?u.test(v.className):e.hasClass(v,u)}g(e.select("textarea"),function(u){if(q.editor_deselector&&s(u,q.editor_deselector)){return}if(!q.editor_selector||s(u,q.editor_selector)){n=e.get(u.name);if(!u.id&&!n){u.id=u.name}if(!u.id||p.get(u.id)){u.id=e.uniqueId()}m=new f.Editor(u.id,q);i.push(m);m.render(1)}});break}if(q.oninit){r=t=0;g(i,function(u){t++;if(!u.initialized){u.onInit.add(function(){r++;if(r==t){j(q,"oninit")}})}else{r++}if(r==t){j(q,"oninit")}})}})},get:function(i){return this.editors[i]},getInstanceById:function(i){return this.get(i)},add:function(i){this.editors[i.id]=i;this._setActive(i);return i},remove:function(j){var i=this;if(!i.editors[j.id]){return null}delete i.editors[j.id];if(i.activeEditor==j){i._setActive(null);g(i.editors,function(k){i._setActive(k);return false})}j.destroy();return j},execCommand:function(o,m,l){var n=this,k=n.get(l),i;switch(o){case"mceFocus":k.focus();return true;case"mceAddEditor":case"mceAddControl":if(!n.get(l)){new f.Editor(l,n.settings).render()}return true;case"mceAddFrameControl":i=l.window;i.tinyMCE=tinyMCE;i.tinymce=f;f.DOM.doc=i.document;f.DOM.win=i;k=new f.Editor(l.element_id,l);k.render();if(f.isIE){function j(){k.destroy();i.detachEvent("onunload",j);i=i.tinyMCE=i.tinymce=null}i.attachEvent("onunload",j)}l.page_window=null;return true;case"mceRemoveEditor":case"mceRemoveControl":if(k){k.remove()}return true;case"mceToggleEditor":if(!k){n.execCommand("mceAddControl",0,l);return true}if(k.isHidden()){k.show()}else{k.hide()}return true}if(n.activeEditor){return n.activeEditor.execCommand(o,m,l)}return false},execInstanceCommand:function(m,l,k,j){var i=this.get(m);if(i){return i.execCommand(l,k,j)}return false},triggerSave:function(){g(this.editors,function(i){i.save()})},addI18n:function(k,l){var i,j=this.i18n;if(!f.is(k,"string")){g(k,function(n,m){g(n,function(q,p){g(q,function(s,r){if(p==="common"){j[m+"."+r]=s}else{j[m+"."+p+"."+r]=s}})})})}else{g(l,function(n,m){j[k+"."+m]=n})}},_setActive:function(i){this.selectedInstance=this.activeEditor=i}});f.EditorManager.preInit()})(tinymce);var tinyMCE=window.tinyMCE=tinymce.EditorManager;(function(n){var o=n.DOM,k=n.dom.Event,f=n.extend,l=n.util.Dispatcher;var j=n.each,a=n.isGecko,b=n.isIE,e=n.isWebKit;var d=n.is,h=n.ThemeManager,c=n.PluginManager,i=n.EditorManager;var p=n.inArray,m=n.grep,g=n.explode;n.create("tinymce.Editor",{Editor:function(u,r){var q=this;q.id=q.editorId=u;q.execCommands={};q.queryStateCommands={};q.queryValueCommands={};q.isNotDirty=false;q.plugins={};j(["onPreInit","onBeforeRenderUI","onPostRender","onInit","onRemove","onActivate","onDeactivate","onClick","onEvent","onMouseUp","onMouseDown","onDblClick","onKeyDown","onKeyUp","onKeyPress","onContextMenu","onSubmit","onReset","onPaste","onPreProcess","onPostProcess","onBeforeSetContent","onBeforeGetContent","onSetContent","onGetContent","onLoadContent","onSaveContent","onNodeChange","onChange","onBeforeExecCommand","onExecCommand","onUndo","onRedo","onVisualAid","onSetProgressState"],function(s){q[s]=new l(q)});q.settings=r=f({id:u,language:"en",docs_language:"en",theme:"simple",skin:"default",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:n.documentBaseURL,add_form_submit_trigger:1,submit_patch:1,add_unload_trigger:1,convert_urls:1,relative_urls:1,remove_script_host:1,table_inline_editing:0,object_resizing:1,cleanup:1,accessibility_focus:1,custom_shortcuts:1,custom_undo_redo_keyboard_shortcuts:1,custom_undo_redo_restore_selection:1,custom_undo_redo:1,doctype:'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">',visual_table_class:"mceItemTable",visual:1,inline_styles:true,convert_fonts_to_spans:true,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",apply_source_formatting:1,directionality:"ltr",forced_root_block:"p",valid_elements:"@[id|class|style|title|dir<ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur],strong/b,em/i,strike,u,#p,-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote[cite],-table[border|cellspacing|cellpadding|width|frame|rules|height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],object[classid|width|height|codebase|*],param[name|value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value|tabindex|accesskey],kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],q[cite],samp,select[disabled|multiple|name|size],small,textarea[cols|rows|disabled|name|readonly],tt,var,big",hidden_input:1,padd_empty_editor:1,render_ui:1,init_theme:1,force_p_newlines:1,indentation:"30px",keep_styles:1,fix_table_elements:1,removeformat_selector:"span,b,strong,em,i,font,u,strike"},r);q.documentBaseURI=new n.util.URI(r.document_base_url||n.documentBaseURL,{base_uri:tinyMCE.baseURI});q.baseURI=i.baseURI;q.execCallback("setup",q)},render:function(u){var v=this,w=v.settings,x=v.id,q=n.ScriptLoader;if(!k.domLoaded){k.add(document,"init",function(){v.render()});return}if(!u){w.strict_loading_mode=1;tinyMCE.settings=w}if(!v.getElement()){return}if(w.strict_loading_mode){q.settings.strict_mode=w.strict_loading_mode;n.DOM.settings.strict=1}if(!/TEXTAREA|INPUT/i.test(v.getElement().nodeName)&&w.hidden_input&&o.getParent(x,"form")){o.insertAfter(o.create("input",{type:"hidden",name:x}),x)}if(n.WindowManager){v.windowManager=new n.WindowManager(v)}if(w.encoding=="xml"){v.onGetContent.add(function(s,t){if(t.save){t.content=o.encode(t.content)}})}if(w.add_form_submit_trigger){v.onSubmit.addToTop(function(){if(v.initialized){v.save();v.isNotDirty=1}})}if(w.add_unload_trigger){v._beforeUnload=tinyMCE.onBeforeUnload.add(function(){if(v.initialized&&!v.destroyed&&!v.isHidden()){v.save({format:"raw",no_events:true})}})}n.addUnload(v.destroy,v);if(w.submit_patch){v.onBeforeRenderUI.add(function(){var s=v.getElement().form;if(!s){return}if(s._mceOldSubmit){return}if(!s.submit.nodeType&&!s.submit.length){v.formElement=s;s._mceOldSubmit=s.submit;s.submit=function(){i.triggerSave();v.isNotDirty=1;return v.formElement._mceOldSubmit(v.formElement)}}s=null})}function r(){if(w.language){q.add(n.baseURL+"/langs/"+w.language+".js")}if(w.theme&&w.theme.charAt(0)!="-"&&!h.urls[w.theme]){h.load(w.theme,"themes/"+w.theme+"/editor_template"+n.suffix+".js")}j(g(w.plugins),function(s){if(s&&s.charAt(0)!="-"&&!c.urls[s]){if(!e&&s=="safari"){return}c.load(s,"plugins/"+s+"/editor_plugin"+n.suffix+".js")}});q.loadQueue(function(){if(!v.removed){v.init()}})}r()},init:function(){var v,F=this,G=F.settings,C,z,B=F.getElement(),r,q,D,y,A,E;i.add(F);if(G.theme){G.theme=G.theme.replace(/-/,"");r=h.get(G.theme);F.theme=new r();if(F.theme.init&&G.init_theme){F.theme.init(F,h.urls[G.theme]||n.documentBaseURL.replace(/\/$/,""))}}j(g(G.plugins.replace(/\-/g,"")),function(w){var H=c.get(w),t=c.urls[w]||n.documentBaseURL.replace(/\/$/,""),s;if(H){s=new H(F,t);F.plugins[w]=s;if(s.init){s.init(F,t)}}});if(G.popup_css!==false){if(G.popup_css){G.popup_css=F.documentBaseURI.toAbsolute(G.popup_css)}else{G.popup_css=F.baseURI.toAbsolute("themes/"+G.theme+"/skins/"+G.skin+"/dialog.css")}}if(G.popup_css_add){G.popup_css+=","+F.documentBaseURI.toAbsolute(G.popup_css_add)}F.controlManager=new n.ControlManager(F);F.undoManager=new n.UndoManager(F);F.undoManager.onAdd.add(function(t,s){if(!s.initial){return F.onChange.dispatch(F,s,t)}});F.undoManager.onUndo.add(function(t,s){return F.onUndo.dispatch(F,s,t)});F.undoManager.onRedo.add(function(t,s){return F.onRedo.dispatch(F,s,t)});if(G.custom_undo_redo){F.onExecCommand.add(function(t,w,u,H,s){if(w!="Undo"&&w!="Redo"&&w!="mceRepaint"&&(!s||!s.skip_undo)){F.undoManager.add()}})}F.onExecCommand.add(function(s,t){if(!/^(FontName|FontSize)$/.test(t)){F.nodeChanged()}});if(a){function x(s,t){if(!t||!t.initial){F.execCommand("mceRepaint")}}F.onUndo.add(x);F.onRedo.add(x);F.onSetContent.add(x)}F.onBeforeRenderUI.dispatch(F,F.controlManager);if(G.render_ui){C=G.width||B.style.width||B.offsetWidth;z=G.height||B.style.height||B.offsetHeight;F.orgDisplay=B.style.display;E=/^[0-9\.]+(|px)$/i;if(E.test(""+C)){C=Math.max(parseInt(C)+(r.deltaWidth||0),100)}if(E.test(""+z)){z=Math.max(parseInt(z)+(r.deltaHeight||0),100)}r=F.theme.renderUI({targetNode:B,width:C,height:z,deltaWidth:G.delta_width,deltaHeight:G.delta_height});F.editorContainer=r.editorContainer}if(document.domain&&location.hostname!=document.domain){n.relaxedDomain=document.domain}o.setStyles(r.sizeContainer||r.editorContainer,{width:C,height:z});z=(r.iframeHeight||z)+(typeof(z)=="number"?(r.deltaHeight||0):"");if(z<100){z=100}F.iframeHTML=G.doctype+'<html><head xmlns="http://www.w3.org/1999/xhtml">';if(G.document_base_url!=n.documentBaseURL){F.iframeHTML+='<base href="'+F.documentBaseURI.getURI()+'" />'}F.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';if(n.relaxedDomain){F.iframeHTML+='<script type="text/javascript">document.domain = "'+n.relaxedDomain+'";<\/script>'}y=G.body_id||"tinymce";if(y.indexOf("=")!=-1){y=F.getParam("body_id","","hash");y=y[F.id]||y}A=G.body_class||"";if(A.indexOf("=")!=-1){A=F.getParam("body_class","","hash");A=A[F.id]||""}F.iframeHTML+='</head><body id="'+y+'" class="mceContentBody '+A+'"></body></html>';if(n.relaxedDomain){if(b||(n.isOpera&&parseFloat(opera.version())>=9.5)){D='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinyMCE.get("'+F.id+'");document.write(ed.iframeHTML);document.close();ed.setupIframe();})()'}else{if(n.isOpera){D='javascript:(function(){document.open();document.domain="'+document.domain+'";document.close();ed.setupIframe();})()'}}}v=o.add(r.iframeContainer,"iframe",{id:F.id+"_ifr",src:D||'javascript:""',frameBorder:"0",style:{width:"100%",height:z}});F.contentAreaContainer=r.iframeContainer;o.get(r.editorContainer).style.display=F.orgDisplay;o.get(F.id).style.display="none";if(!b||!n.relaxedDomain){F.setupIframe()}B=v=r=null},setupIframe:function(){var z=this,A=z.settings,u=o.get(z.id),v=z.getDoc(),r,x;if(!b||!n.relaxedDomain){v.open();v.write(z.iframeHTML);v.close()}if(!b){try{if(!A.readonly){v.designMode="On"}}catch(w){}}if(b){x=z.getBody();o.hide(x);if(!A.readonly){x.contentEditable=true}o.show(x)}z.dom=new n.dom.DOMUtils(z.getDoc(),{keep_values:true,url_converter:z.convertURL,url_converter_scope:z,hex_colors:A.force_hex_style_colors,class_filter:A.class_filter,update_styles:1,fix_ie_paragraphs:1});z.serializer=new n.dom.Serializer(f(A,{valid_elements:A.verify_html===false?"*[*]":A.valid_elements,dom:z.dom}));z.selection=new n.dom.Selection(z.dom,z.getWin(),z.serializer);z.forceBlocks=new n.ForceBlocks(z,{forced_root_block:A.forced_root_block});z.editorCommands=new n.EditorCommands(z);z.serializer.onPreProcess.add(function(s,t){return z.onPreProcess.dispatch(z,t,s)});z.serializer.onPostProcess.add(function(s,t){return z.onPostProcess.dispatch(z,t,s)});z.onPreInit.dispatch(z);if(!A.gecko_spellcheck){z.getBody().spellcheck=0}if(!A.readonly){z._addEvents()}z.controlManager.onPostRender.dispatch(z,z.controlManager);z.onPostRender.dispatch(z);if(A.directionality){z.getBody().dir=A.directionality}if(A.nowrap){z.getBody().style.whiteSpace="nowrap"}if(A.custom_elements){function y(s,t){j(g(A.custom_elements),function(B){var C;if(B.indexOf("~")===0){B=B.substring(1);C="span"}else{C="div"}t.content=t.content.replace(new RegExp("<("+B+")([^>]*)>","g"),"<"+C+' mce_name="$1"$2>');t.content=t.content.replace(new RegExp("</("+B+")>","g"),"</"+C+">")})}z.onBeforeSetContent.add(y);z.onPostProcess.add(function(s,t){if(t.set){y(s,t)}})}if(A.handle_node_change_callback){z.onNodeChange.add(function(t,s,B){z.execCallback("handle_node_change_callback",z.id,B,-1,-1,true,z.selection.isCollapsed())})}if(A.save_callback){z.onSaveContent.add(function(s,B){var t=z.execCallback("save_callback",z.id,B.content,z.getBody());if(t){B.content=t}})}if(A.onchange_callback){z.onChange.add(function(t,s){z.execCallback("onchange_callback",z,s)})}if(A.convert_newlines_to_brs){z.onBeforeSetContent.add(function(s,t){if(t.initial){t.content=t.content.replace(/\r?\n/g,"<br />")}})}if(A.fix_nesting&&b){z.onBeforeSetContent.add(function(s,t){t.content=z._fixNesting(t.content)})}if(A.preformatted){z.onPostProcess.add(function(s,t){t.content=t.content.replace(/^\s*<pre.*?>/,"");t.content=t.content.replace(/<\/pre>\s*$/,"");if(t.set){t.content='<pre class="mceItemHidden">'+t.content+"</pre>"}})}if(A.verify_css_classes){z.serializer.attribValueFilter=function(D,B){var C,t;if(D=="class"){if(!z.classesRE){t=z.dom.getClasses();if(t.length>0){C="";j(t,function(s){C+=(C?"|":"")+s["class"]});z.classesRE=new RegExp("("+C+")","gi")}}return !z.classesRE||/(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(B)||z.classesRE.test(B)?B:""}return B}}if(A.convert_fonts_to_spans){z._convertFonts()}if(A.inline_styles){z._convertInlineElements()}if(A.cleanup_callback){z.onBeforeSetContent.add(function(s,t){t.content=z.execCallback("cleanup_callback","insert_to_editor",t.content,t)});z.onPreProcess.add(function(s,t){if(t.set){z.execCallback("cleanup_callback","insert_to_editor_dom",t.node,t)}if(t.get){z.execCallback("cleanup_callback","get_from_editor_dom",t.node,t)}});z.onPostProcess.add(function(s,t){if(t.set){t.content=z.execCallback("cleanup_callback","insert_to_editor",t.content,t)}if(t.get){t.content=z.execCallback("cleanup_callback","get_from_editor",t.content,t)}})}if(A.save_callback){z.onGetContent.add(function(s,t){if(t.save){t.content=z.execCallback("save_callback",z.id,t.content,z.getBody())}})}if(A.handle_event_callback){z.onEvent.add(function(s,t,B){if(z.execCallback("handle_event_callback",t,s,B)===false){k.cancel(t)}})}z.onSetContent.add(function(){z.addVisual(z.getBody())});if(A.padd_empty_editor){z.onPostProcess.add(function(s,t){t.content=t.content.replace(/^(<p[^>]*>(&nbsp;|&#160;|\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")})}if(a){function q(s,t){j(s.dom.select("a"),function(C){var B=C.parentNode;if(s.dom.isBlock(B)&&B.lastChild===C){s.dom.add(B,"br",{mce_bogus:1})}})}z.onExecCommand.add(function(s,t){if(t==="CreateLink"){q(s)}});z.onSetContent.add(z.selection.onSetContent.add(q));if(!A.readonly){try{v.designMode="Off";v.designMode="On"}catch(w){}}}setTimeout(function(){if(z.removed){return}z.load({initial:true,format:(A.cleanup_on_startup?"html":"raw")});z.startContent=z.getContent({format:"raw"});z.undoManager.add({initial:true});z.initialized=true;z.onInit.dispatch(z);z.execCallback("setupcontent_callback",z.id,z.getBody(),z.getDoc());z.execCallback("init_instance_callback",z);z.focus(true);z.nodeChanged({initial:1});if(A.content_css){n.each(g(A.content_css),function(s){z.dom.loadCSS(z.documentBaseURI.toAbsolute(s))})}if(A.auto_focus){setTimeout(function(){var s=i.get(A.auto_focus);s.selection.select(s.getBody(),1);s.selection.collapse(1);s.getWin().focus()},100)}},1);u=null},focus:function(r){var u,q=this,s=q.settings.content_editable;if(!r){if(!s&&(!b||q.selection.getNode().ownerDocument!=q.getDoc())){q.getWin().focus()}}if(i.activeEditor!=q){if((u=i.activeEditor)!=null){u.onDeactivate.dispatch(u,q)}q.onActivate.dispatch(q,u)}i._setActive(q)},execCallback:function(v){var q=this,u=q.settings[v],r;if(!u){return}if(q.callbackLookup&&(r=q.callbackLookup[v])){u=r.func;r=r.scope}if(d(u,"string")){r=u.replace(/\.\w+$/,"");r=r?n.resolve(r):0;u=n.resolve(u);q.callbackLookup=q.callbackLookup||{};q.callbackLookup[v]={func:u,scope:r}}return u.apply(r||q,Array.prototype.slice.call(arguments,1))},translate:function(q){var t=this.settings.language||"en",r=i.i18n;if(!q){return""}return r[t+"."+q]||q.replace(/{\#([^}]+)\}/g,function(u,s){return r[t+"."+s]||"{#"+s+"}"})},getLang:function(r,q){return i.i18n[(this.settings.language||"en")+"."+r]||(d(q)?q:"{#"+r+"}")},getParam:function(w,s,q){var t=n.trim,r=d(this.settings[w])?this.settings[w]:s,u;if(q==="hash"){u={};if(d(r,"string")){j(r.indexOf("=")>0?r.split(/[;,](?![^=;,]*(?:[;,]|$))/):r.split(","),function(x){x=x.split("=");if(x.length>1){u[t(x[0])]=t(x[1])}else{u[t(x[0])]=t(x)}})}else{u=r}return u}return r},nodeChanged:function(u){var q=this,r=q.selection,v=r.getNode()||q.getBody();if(q.initialized){q.onNodeChange.dispatch(q,u?u.controlManager||q.controlManager:q.controlManager,b&&v.ownerDocument!=q.getDoc()?q.getBody():v,r.isCollapsed(),u)}},addButton:function(u,r){var q=this;q.buttons=q.buttons||{};q.buttons[u]=r},addCommand:function(t,r,q){this.execCommands[t]={func:r,scope:q||this}},addQueryStateHandler:function(t,r,q){this.queryStateCommands[t]={func:r,scope:q||this}},addQueryValueHandler:function(t,r,q){this.queryValueCommands[t]={func:r,scope:q||this}},addShortcut:function(s,v,q,u){var r=this,w;if(!r.settings.custom_shortcuts){return false}r.shortcuts=r.shortcuts||{};if(d(q,"string")){w=q;q=function(){r.execCommand(w,false,null)}}if(d(q,"object")){w=q;q=function(){r.execCommand(w[0],w[1],w[2])}}j(g(s),function(t){var x={func:q,scope:u||this,desc:v,alt:false,ctrl:false,shift:false};j(g(t,"+"),function(y){switch(y){case"alt":case"ctrl":case"shift":x[y]=true;break;default:x.charCode=y.charCodeAt(0);x.keyCode=y.toUpperCase().charCodeAt(0)}});r.shortcuts[(x.ctrl?"ctrl":"")+","+(x.alt?"alt":"")+","+(x.shift?"shift":"")+","+x.keyCode]=x});return true},execCommand:function(x,w,z,q){var u=this,v=0,y,r;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(x)&&(!q||!q.skip_focus)){u.focus()}y={};u.onBeforeExecCommand.dispatch(u,x,w,z,y);if(y.terminate){return false}if(u.execCallback("execcommand_callback",u.id,u.selection.getNode(),x,w,z)){u.onExecCommand.dispatch(u,x,w,z,q);return true}if(y=u.execCommands[x]){r=y.func.call(y.scope,w,z);if(r!==true){u.onExecCommand.dispatch(u,x,w,z,q);return r}}j(u.plugins,function(s){if(s.execCommand&&s.execCommand(x,w,z)){u.onExecCommand.dispatch(u,x,w,z,q);v=1;return false}});if(v){return true}if(u.theme&&u.theme.execCommand&&u.theme.execCommand(x,w,z)){u.onExecCommand.dispatch(u,x,w,z,q);return true}if(n.GlobalCommands.execCommand(u,x,w,z)){u.onExecCommand.dispatch(u,x,w,z,q);return true}if(u.editorCommands.execCommand(x,w,z)){u.onExecCommand.dispatch(u,x,w,z,q);return true}u.getDoc().execCommand(x,w,z);u.onExecCommand.dispatch(u,x,w,z,q)},queryCommandState:function(w){var r=this,v,u;if(r._isHidden()){return}if(v=r.queryStateCommands[w]){u=v.func.call(v.scope);if(u!==true){return u}}v=r.editorCommands.queryCommandState(w);if(v!==-1){return v}try{return this.getDoc().queryCommandState(w)}catch(q){}},queryCommandValue:function(w){var r=this,v,u;if(r._isHidden()){return}if(v=r.queryValueCommands[w]){u=v.func.call(v.scope);if(u!==true){return u}}v=r.editorCommands.queryCommandValue(w);if(d(v)){return v}try{return this.getDoc().queryCommandValue(w)}catch(q){}},show:function(){var q=this;o.show(q.getContainer());o.hide(q.id);q.load()},hide:function(){var q=this,r=q.getDoc();if(b&&r){r.execCommand("SelectAll")}q.save();o.hide(q.getContainer());o.setStyle(q.id,"display",q.orgDisplay)},isHidden:function(){return !o.isHidden(this.id)},setProgressState:function(q,r,s){this.onSetProgressState.dispatch(this,q,r,s);return q},load:function(u){var q=this,s=q.getElement(),r;if(s){u=u||{};u.load=true;r=q.setContent(d(s.value)?s.value:s.innerHTML,u);u.element=s;if(!u.no_events){q.onLoadContent.dispatch(q,u)}u.element=s=null;return r}},save:function(v){var q=this,u=q.getElement(),r,s;if(!u||!q.initialized){return}v=v||{};v.save=true;if(!v.no_events){q.undoManager.typing=0;q.undoManager.add()}v.element=u;r=v.content=q.getContent(v);if(!v.no_events){q.onSaveContent.dispatch(q,v)}r=v.content;if(!/TEXTAREA|INPUT/i.test(u.nodeName)){u.innerHTML=r;if(s=o.getParent(q.id,"form")){j(s.elements,function(t){if(t.name==q.id){t.value=r;return false}})}}else{u.value=r}v.element=u=null;return r},setContent:function(r,s){var q=this;s=s||{};s.format=s.format||"html";s.set=true;s.content=r;if(!s.no_events){q.onBeforeSetContent.dispatch(q,s)}if(!n.isIE&&(r.length===0||/^\s+$/.test(r))){s.content=q.dom.setHTML(q.getBody(),'<br mce_bogus="1" />');s.format="raw"}s.content=q.dom.setHTML(q.getBody(),n.trim(s.content));if(s.format!="raw"&&q.settings.cleanup){s.getInner=true;s.content=q.dom.setHTML(q.getBody(),q.serializer.serialize(q.getBody(),s))}if(!s.no_events){q.onSetContent.dispatch(q,s)}return s.content},getContent:function(s){var q=this,r;s=s||{};s.format=s.format||"html";s.get=true;if(!s.no_events){q.onBeforeGetContent.dispatch(q,s)}if(s.format!="raw"&&q.settings.cleanup){s.getInner=true;r=q.serializer.serialize(q.getBody(),s)}else{r=q.getBody().innerHTML}r=r.replace(/^\s*|\s*$/g,"");s.content=r;if(!s.no_events){q.onGetContent.dispatch(q,s)}return s.content},isDirty:function(){var q=this;return n.trim(q.startContent)!=n.trim(q.getContent({format:"raw",no_events:1}))&&!q.isNotDirty},getContainer:function(){var q=this;if(!q.container){q.container=o.get(q.editorContainer||q.id+"_parent")}return q.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return o.get(this.settings.content_element||this.id)},getWin:function(){var q=this,r;if(!q.contentWindow){r=o.get(q.id+"_ifr");if(r){q.contentWindow=r.contentWindow}}return q.contentWindow},getDoc:function(){var r=this,q;if(!r.contentDocument){q=r.getWin();if(q){r.contentDocument=q.document}}return r.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(q,x,w){var r=this,v=r.settings;if(v.urlconverter_callback){return r.execCallback("urlconverter_callback",q,w,true,x)}if(!v.convert_urls||(w&&w.nodeName=="LINK")||q.indexOf("file:")===0){return q}if(v.relative_urls){return r.documentBaseURI.toRelative(q)}q=r.documentBaseURI.toAbsolute(q,v.remove_script_host);return q},addVisual:function(u){var q=this,r=q.settings;u=u||q.getBody();if(!d(q.hasVisual)){q.hasVisual=r.visual}j(q.dom.select("table,a",u),function(t){var s;switch(t.nodeName){case"TABLE":s=q.dom.getAttrib(t,"border");if(!s||s=="0"){if(q.hasVisual){q.dom.addClass(t,r.visual_table_class)}else{q.dom.removeClass(t,r.visual_table_class)}}return;case"A":s=q.dom.getAttrib(t,"name");if(s){if(q.hasVisual){q.dom.addClass(t,"mceItemAnchor")}else{q.dom.removeClass(t,"mceItemAnchor")}}return}});q.onVisualAid.dispatch(q,u,q.hasVisual)},remove:function(){var q=this,r=q.getContainer();q.removed=1;q.hide();q.execCallback("remove_instance_callback",q);q.onRemove.dispatch(q);q.onExecCommand.listeners=[];i.remove(q);o.remove(r)},destroy:function(r){var q=this;if(q.destroyed){return}if(!r){n.removeUnload(q.destroy);tinyMCE.onBeforeUnload.remove(q._beforeUnload);if(q.theme&&q.theme.destroy){q.theme.destroy()}q.controlManager.destroy();q.selection.destroy();q.dom.destroy();if(!q.settings.content_editable){k.clear(q.getWin());k.clear(q.getDoc())}k.clear(q.getBody());k.clear(q.formElement)}if(q.formElement){q.formElement.submit=q.formElement._mceOldSubmit;q.formElement._mceOldSubmit=null}q.contentAreaContainer=q.formElement=q.container=q.settings.content_element=q.bodyElement=q.contentDocument=q.contentWindow=null;if(q.selection){q.selection=q.selection.win=q.selection.dom=q.selection.dom.doc=null}q.destroyed=1},_addEvents:function(){var w=this,v,y=w.settings,x={mouseup:"onMouseUp",mousedown:"onMouseDown",click:"onClick",keyup:"onKeyUp",keydown:"onKeyDown",keypress:"onKeyPress",submit:"onSubmit",reset:"onReset",contextmenu:"onContextMenu",dblclick:"onDblClick",paste:"onPaste"};function u(t,A){var s=t.type;if(w.removed){return}if(w.onEvent.dispatch(w,t,A)!==false){w[x[t.fakeType||t.type]].dispatch(w,t,A)}}j(x,function(t,s){switch(s){case"contextmenu":if(n.isOpera){w.dom.bind(w.getBody(),"mousedown",function(A){if(A.ctrlKey){A.fakeType="contextmenu";u(A)}})}else{w.dom.bind(w.getBody(),s,u)}break;case"paste":w.dom.bind(w.getBody(),s,function(A){u(A)});break;case"submit":case"reset":w.dom.bind(w.getElement().form||o.getParent(w.id,"form"),s,u);break;default:w.dom.bind(y.content_editable?w.getBody():w.getDoc(),s,u)}});w.dom.bind(y.content_editable?w.getBody():(a?w.getDoc():w.getWin()),"focus",function(s){w.focus(true)});if(n.isGecko){w.dom.bind(w.getDoc(),"DOMNodeInserted",function(t){var s;t=t.target;if(t.nodeType===1&&t.nodeName==="IMG"&&(s=t.getAttribute("mce_src"))){t.src=w.documentBaseURI.toAbsolute(s)}})}if(a){function q(){var B=this,D=B.getDoc(),C=B.settings;if(a&&!C.readonly){if(B._isHidden()){try{if(!C.content_editable){D.designMode="On"}}catch(A){}}try{D.execCommand("styleWithCSS",0,false)}catch(A){if(!B._isHidden()){try{D.execCommand("useCSS",0,true)}catch(A){}}}if(!C.table_inline_editing){try{D.execCommand("enableInlineTableEditing",false,false)}catch(A){}}if(!C.object_resizing){try{D.execCommand("enableObjectResizing",false,false)}catch(A){}}}}w.onBeforeExecCommand.add(q);w.onMouseDown.add(q)}w.onMouseUp.add(w.nodeChanged);w.onClick.add(w.nodeChanged);w.onKeyUp.add(function(s,t){var A=t.keyCode;if((A>=33&&A<=36)||(A>=37&&A<=40)||A==13||A==45||A==46||A==8||(n.isMac&&(A==91||A==93))||t.ctrlKey){w.nodeChanged()}});w.onReset.add(function(){w.setContent(w.startContent,{format:"raw"})});if(y.custom_shortcuts){if(y.custom_undo_redo_keyboard_shortcuts){w.addShortcut("ctrl+z",w.getLang("undo_desc"),"Undo");w.addShortcut("ctrl+y",w.getLang("redo_desc"),"Redo")}if(a){w.addShortcut("ctrl+b",w.getLang("bold_desc"),"Bold");w.addShortcut("ctrl+i",w.getLang("italic_desc"),"Italic");w.addShortcut("ctrl+u",w.getLang("underline_desc"),"Underline")}for(v=1;v<=6;v++){w.addShortcut("ctrl+"+v,"",["FormatBlock",false,"<h"+v+">"])}w.addShortcut("ctrl+7","",["FormatBlock",false,"<p>"]);w.addShortcut("ctrl+8","",["FormatBlock",false,"<div>"]);w.addShortcut("ctrl+9","",["FormatBlock",false,"<address>"]);function z(t){var s=null;if(!t.altKey&&!t.ctrlKey&&!t.metaKey){return s}j(w.shortcuts,function(A){if(n.isMac&&A.ctrl!=t.metaKey){return}else{if(!n.isMac&&A.ctrl!=t.ctrlKey){return}}if(A.alt!=t.altKey){return}if(A.shift!=t.shiftKey){return}if(t.keyCode==A.keyCode||(t.charCode&&t.charCode==A.charCode)){s=A;return false}});return s}w.onKeyUp.add(function(s,t){var A=z(t);if(A){return k.cancel(t)}});w.onKeyPress.add(function(s,t){var A=z(t);if(A){return k.cancel(t)}});w.onKeyDown.add(function(s,t){var A=z(t);if(A){A.func.call(A.scope);return k.cancel(t)}})}if(n.isIE){w.dom.bind(w.getDoc(),"controlselect",function(A){var t=w.resizeInfo,s;A=A.target;if(A.nodeName!=="IMG"){return}if(t){w.dom.unbind(t.node,t.ev,t.cb)}if(!w.dom.hasClass(A,"mceItemNoResize")){ev="resizeend";s=w.dom.bind(A,ev,function(C){var B;C=C.target;if(B=w.dom.getStyle(C,"width")){w.dom.setAttrib(C,"width",B.replace(/[^0-9%]+/g,""));w.dom.setStyle(C,"width","")}if(B=w.dom.getStyle(C,"height")){w.dom.setAttrib(C,"height",B.replace(/[^0-9%]+/g,""));w.dom.setStyle(C,"height","")}})}else{ev="resizestart";s=w.dom.bind(A,"resizestart",k.cancel,k)}t=w.resizeInfo={node:A,ev:ev,cb:s}});w.onKeyDown.add(function(s,t){switch(t.keyCode){case 8:if(w.selection.getRng().item){w.selection.getRng().item(0).removeNode();return k.cancel(t)}}})}if(n.isOpera){w.onClick.add(function(s,t){k.prevent(t)})}if(y.custom_undo_redo){function r(){w.undoManager.typing=0;w.undoManager.add()}if(n.isIE){w.dom.bind(w.getWin(),"blur",function(s){var t;if(w.selection){t=w.selection.getNode();if(!w.removed&&t.ownerDocument&&t.ownerDocument!=w.getDoc()){r()}}})}else{w.dom.bind(w.getDoc(),"blur",function(){if(w.selection&&!w.removed){r()}})}w.onMouseDown.add(r);w.onKeyUp.add(function(s,t){if((t.keyCode>=33&&t.keyCode<=36)||(t.keyCode>=37&&t.keyCode<=40)||t.keyCode==13||t.keyCode==45||t.ctrlKey){w.undoManager.typing=0;w.undoManager.add()}});w.onKeyDown.add(function(s,t){if((t.keyCode>=33&&t.keyCode<=36)||(t.keyCode>=37&&t.keyCode<=40)||t.keyCode==13||t.keyCode==45){if(w.undoManager.typing){w.undoManager.add();w.undoManager.typing=0}return}if(!w.undoManager.typing){w.undoManager.add();w.undoManager.typing=1}})}},_convertInlineElements:function(){var z=this,B=z.settings,r=z.dom,y,w,u,A,q;function x(s,t){if(!B.inline_styles){return}if(t.get){j(z.dom.select("table,u,strike",t.node),function(v){switch(v.nodeName){case"TABLE":if(y=r.getAttrib(v,"height")){r.setStyle(v,"height",y);r.setAttrib(v,"height","")}break;case"U":case"STRIKE":v.style.textDecoration=v.nodeName=="U"?"underline":"line-through";r.setAttrib(v,"mce_style","");r.setAttrib(v,"mce_name","span");break}})}else{if(t.set){j(z.dom.select("table,span",t.node).reverse(),function(v){if(v.nodeName=="TABLE"){if(y=r.getStyle(v,"height")){r.setAttrib(v,"height",y.replace(/[^0-9%]+/g,""))}}else{if(v.style.textDecoration=="underline"){u="u"}else{if(v.style.textDecoration=="line-through"){u="strike"}else{u=""}}if(u){v.style.textDecoration="";r.setAttrib(v,"mce_style","");w=r.create(u,{style:r.getAttrib(v,"style")});r.replace(w,v,1)}}})}}}z.onPreProcess.add(x);if(!B.cleanup_on_startup){z.onSetContent.add(function(s,t){if(t.initial){x(z,{node:z.getBody(),set:1})}})}},_convertFonts:function(){var w=this,x=w.settings,z=w.dom,v,r,q,u;if(!x.inline_styles){return}v=[8,10,12,14,18,24,36];r=["xx-small","x-small","small","medium","large","x-large","xx-large"];if(q=x.font_size_style_values){q=g(q)}if(u=x.font_size_classes){u=g(u)}function y(B){var C,A,t,s;if(!x.inline_styles){return}t=w.dom.select("font",B);for(s=t.length-1;s>=0;s--){C=t[s];A=z.create("span",{style:z.getAttrib(C,"style"),"class":z.getAttrib(C,"class")});z.setStyles(A,{fontFamily:z.getAttrib(C,"face"),color:z.getAttrib(C,"color"),backgroundColor:C.style.backgroundColor});if(C.size){if(q){z.setStyle(A,"fontSize",q[parseInt(C.size)-1])}else{z.setAttrib(A,"class",u[parseInt(C.size)-1])}}z.setAttrib(A,"mce_style","");z.replace(A,C,1)}}w.onPreProcess.add(function(s,t){if(t.get){y(t.node)}});w.onSetContent.add(function(s,t){if(t.initial){y(t.node)}})},_isHidden:function(){var q;if(!a){return 0}q=this.selection.getSel();return(!q||!q.rangeCount||q.rangeCount==0)},_fixNesting:function(r){var t=[],q;r=r.replace(/<(\/)?([^\s>]+)[^>]*?>/g,function(u,s,w){var v;if(s==="/"){if(!t.length){return""}if(w!==t[t.length-1].tag){for(q=t.length-1;q>=0;q--){if(t[q].tag===w){t[q].close=1;break}}return""}else{t.pop();if(t.length&&t[t.length-1].close){u=u+"</"+t[t.length-1].tag+">";t.pop()}}}else{if(/^(br|hr|input|meta|img|link|param)$/i.test(w)){return u}if(/\/>$/.test(u)){return u}t.push({tag:w})}return u});for(q=t.length-1;q>=0;q--){r+="</"+t[q].tag+">"}return r}})})(tinymce);(function(d){var f=d.each,c=d.isIE,a=d.isGecko,b=d.isOpera,e=d.isWebKit;d.create("tinymce.EditorCommands",{EditorCommands:function(g){this.editor=g},execCommand:function(k,j,l){var h=this,g=h.editor,i;switch(k){case"mceResetDesignMode":case"mceBeginUndoLevel":return true;case"unlink":h.UnLink();return true;case"JustifyLeft":case"JustifyCenter":case"JustifyRight":case"JustifyFull":h.mceJustify(k,k.substring(7).toLowerCase());return true;default:i=this[k];if(i){i.call(this,j,l);return true}}return false},Indent:function(){var g=this.editor,l=g.dom,j=g.selection,k,h,i;h=g.settings.indentation;i=/[a-z%]+$/i.exec(h);h=parseInt(h);if(g.settings.inline_styles&&(!this.queryStateInsertUnorderedList()&&!this.queryStateInsertOrderedList())){f(j.getSelectedBlocks(),function(m){l.setStyle(m,"paddingLeft",(parseInt(m.style.paddingLeft||0)+h)+i)});return}g.getDoc().execCommand("Indent",false,null);if(c){l.getParent(j.getNode(),function(m){if(m.nodeName=="BLOCKQUOTE"){m.dir=m.style.cssText=""}})}},Outdent:function(){var h=this.editor,m=h.dom,k=h.selection,l,g,i,j;i=h.settings.indentation;j=/[a-z%]+$/i.exec(i);i=parseInt(i);if(h.settings.inline_styles&&(!this.queryStateInsertUnorderedList()&&!this.queryStateInsertOrderedList())){f(k.getSelectedBlocks(),function(n){g=Math.max(0,parseInt(n.style.paddingLeft||0)-i);m.setStyle(n,"paddingLeft",g?g+j:"")});return}h.getDoc().execCommand("Outdent",false,null)},mceSetContent:function(h,g){this.editor.setContent(g)},mceToggleVisualAid:function(){var g=this.editor;g.hasVisual=!g.hasVisual;g.addVisual()},mceReplaceContent:function(h,g){var i=this.editor.selection;i.setContent(g.replace(/\{\$selection\}/g,i.getContent({format:"text"})))},mceInsertLink:function(i,h){var g=this.editor,j=g.selection,k=g.dom.getParent(j.getNode(),"a");if(d.is(h,"string")){h={href:h}}function l(m){f(h,function(o,n){g.dom.setAttrib(m,n,o)})}if(!k){g.execCommand("CreateLink",false,"javascript:mctmp(0);");f(g.dom.select("a[href=javascript:mctmp(0);]"),function(m){l(m)})}else{if(h.href){l(k)}else{g.dom.remove(k,1)}}},UnLink:function(){var g=this.editor,h=g.selection;if(h.isCollapsed()){h.select(h.getNode())}g.getDoc().execCommand("unlink",false,null);h.collapse(0)},FontName:function(i,h){var j=this,g=j.editor,k=g.selection,l;if(!h){if(k.isCollapsed()){k.select(k.getNode())}}else{if(g.settings.convert_fonts_to_spans){j._applyInlineStyle("span",{style:{fontFamily:h}})}else{g.getDoc().execCommand("FontName",false,h)}}},FontSize:function(j,i){var h=this.editor,l=h.settings,k,g;if(l.convert_fonts_to_spans&&i>=1&&i<=7){g=d.explode(l.font_size_style_values);k=d.explode(l.font_size_classes);if(k){i=k[i-1]||i}else{i=g[i-1]||i}}if(i>=1&&i<=7){h.getDoc().execCommand("FontSize",false,i)}else{this._applyInlineStyle("span",{style:{fontSize:i}})}},queryCommandValue:function(h){var g=this["queryValue"+h];if(g){return g.call(this,h)}return false},queryCommandState:function(h){var g;switch(h){case"JustifyLeft":case"JustifyCenter":case"JustifyRight":case"JustifyFull":return this.queryStateJustify(h,h.substring(7).toLowerCase());default:if(g=this["queryState"+h]){return g.call(this,h)}}return -1},_queryState:function(h){try{return this.editor.getDoc().queryCommandState(h)}catch(g){}},_queryVal:function(h){try{return this.editor.getDoc().queryCommandValue(h)}catch(g){}},queryValueFontSize:function(){var h=this.editor,g=0,i;if(i=h.dom.getParent(h.selection.getNode(),"span")){g=i.style.fontSize}if(!g&&(b||e)){if(i=h.dom.getParent(h.selection.getNode(),"font")){g=i.size}return g}return g||this._queryVal("FontSize")},queryValueFontName:function(){var h=this.editor,g=0,i;if(i=h.dom.getParent(h.selection.getNode(),"font")){g=i.face}if(i=h.dom.getParent(h.selection.getNode(),"span")){g=i.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()}if(!g){g=this._queryVal("FontName")}return g},mceJustify:function(o,p){var k=this.editor,m=k.selection,g=m.getNode(),q=g.nodeName,h,j,i=k.dom,l;if(k.settings.inline_styles&&this.queryStateJustify(o,p)){l=1}h=i.getParent(g,k.dom.isBlock);if(q=="IMG"){if(p=="full"){return}if(l){if(p=="center"){i.setStyle(h||g.parentNode,"textAlign","")}i.setStyle(g,"float","");this.mceRepaint();return}if(p=="center"){if(h&&/^(TD|TH)$/.test(h.nodeName)){h=0}if(!h||h.childNodes.length>1){j=i.create("p");j.appendChild(g.cloneNode(false));if(h){i.insertAfter(j,h)}else{i.insertAfter(j,g)}i.remove(g);g=j.firstChild;h=j}i.setStyle(h,"textAlign",p);i.setStyle(g,"float","")}else{i.setStyle(g,"float",p);i.setStyle(h||g.parentNode,"textAlign","")}this.mceRepaint();return}if(k.settings.inline_styles&&k.settings.forced_root_block){if(l){p=""}f(m.getSelectedBlocks(i.getParent(m.getStart(),i.isBlock),i.getParent(m.getEnd(),i.isBlock)),function(n){i.setAttrib(n,"align","");i.setStyle(n,"textAlign",p=="full"?"justify":p)});return}else{if(!l){k.getDoc().execCommand(o,false,null)}}if(k.settings.inline_styles){if(l){i.getParent(k.selection.getNode(),function(r){if(r.style&&r.style.textAlign){i.setStyle(r,"textAlign","")}});return}f(i.select("*"),function(s){var r=s.align;if(r){if(r=="full"){r="justify"}i.setStyle(s,"textAlign",r);i.setAttrib(s,"align","")}})}},mceSetCSSClass:function(h,g){this.mceSetStyleInfo(0,{command:"setattrib",name:"class",value:g})},getSelectedElement:function(){var w=this,o=w.editor,n=o.dom,s=o.selection,h=s.getRng(),l,k,u,p,j,g,q,i,x,v;if(s.isCollapsed()||h.item){return s.getNode()}v=o.settings.merge_styles_invalid_parents;if(d.is(v,"string")){v=new RegExp(v,"i")}if(c){l=h.duplicate();l.collapse(true);u=l.parentElement();k=h.duplicate();k.collapse(false);p=k.parentElement();if(u!=p){l.move("character",1);u=l.parentElement()}if(u==p){l=h.duplicate();l.moveToElementText(u);if(l.compareEndPoints("StartToStart",h)==0&&l.compareEndPoints("EndToEnd",h)==0){return v&&v.test(u.nodeName)?null:u}}}else{function m(r){return n.getParent(r,"*")}u=h.startContainer;p=h.endContainer;j=h.startOffset;g=h.endOffset;if(!h.collapsed){if(u==p){if(j-g<2){if(u.hasChildNodes()){i=u.childNodes[j];return v&&v.test(i.nodeName)?null:i}}}}if(u.nodeType!=3||p.nodeType!=3){return null}if(j==0){i=m(u);if(i&&i.firstChild!=u){i=null}}if(j==u.nodeValue.length){q=u.nextSibling;if(q&&q.nodeType==1){i=u.nextSibling}}if(g==0){q=p.previousSibling;if(q&&q.nodeType==1){x=q}}if(g==p.nodeValue.length){x=m(p);if(x&&x.lastChild!=p){x=null}}if(i==x){return v&&i&&v.test(i.nodeName)?null:i}}return null},mceSetStyleInfo:function(n,m){var q=this,h=q.editor,j=h.getDoc(),g=h.dom,i,k,r=h.selection,p=m.wrapper||"span",k=r.getBookmark(),o;function l(t,s){if(t.nodeType==1){switch(m.command){case"setattrib":return g.setAttrib(t,m.name,m.value);case"setstyle":return g.setStyle(t,m.name,m.value);case"removeformat":return g.setAttrib(t,"class","")}}}o=h.settings.merge_styles_invalid_parents;if(d.is(o,"string")){o=new RegExp(o,"i")}if((i=q.getSelectedElement())&&!h.settings.force_span_wrappers){l(i,1)}else{j.execCommand("FontName",false,"__");f(g.select("span,font"),function(u){var s,t;if(g.getAttrib(u,"face")=="__"||u.style.fontFamily==="__"){s=g.create(p,{mce_new:"1"});l(s);f(u.childNodes,function(v){s.appendChild(v.cloneNode(true))});g.replace(s,u)}})}f(g.select(p).reverse(),function(t){var s=t.parentNode;if(!g.getAttrib(t,"mce_new")){s=g.getParent(t,"*[mce_new]");if(s){g.remove(t,1)}}});f(g.select(p).reverse(),function(t){var s=t.parentNode;if(!s||!g.getAttrib(t,"mce_new")){return}if(h.settings.force_span_wrappers&&s.nodeName!="SPAN"){return}if(s.nodeName==p.toUpperCase()&&s.childNodes.length==1){return g.remove(s,1)}if(t.nodeType==1&&(!o||!o.test(s.nodeName))&&s.childNodes.length==1){l(s);g.setAttrib(t,"class","")}});f(g.select(p).reverse(),function(s){if(g.getAttrib(s,"mce_new")||(g.getAttribs(s).length<=1&&s.className==="")){if(!g.getAttrib(s,"class")&&!g.getAttrib(s,"style")){return g.remove(s,1)}g.setAttrib(s,"mce_new","")}});r.moveToBookmark(k)},queryStateJustify:function(k,h){var g=this.editor,j=g.selection.getNode(),i=g.dom;if(j&&j.nodeName=="IMG"){if(i.getStyle(j,"float")==h){return 1}return j.parentNode.style.textAlign==h}j=i.getParent(g.selection.getStart(),function(l){return l.nodeType==1&&l.style.textAlign});if(h=="full"){h="justify"}if(g.settings.inline_styles){return(j&&j.style.textAlign==h)}return this._queryState(k)},ForeColor:function(i,h){var g=this.editor;if(g.settings.convert_fonts_to_spans){this._applyInlineStyle("span",{style:{color:h}});return}else{g.getDoc().execCommand("ForeColor",false,h)}},HiliteColor:function(i,k){var h=this,g=h.editor,j=g.getDoc();if(g.settings.convert_fonts_to_spans){this._applyInlineStyle("span",{style:{backgroundColor:k}});return}function l(n){if(!a){return}try{j.execCommand("styleWithCSS",0,n)}catch(m){j.execCommand("useCSS",0,!n)}}if(a||b){l(true);j.execCommand("hilitecolor",false,k);l(false)}else{j.execCommand("BackColor",false,k)}},FormatBlock:function(n,h){var o=this,l=o.editor,p=l.selection,j=l.dom,g,k,m;function i(q){return/^(P|DIV|H[1-6]|ADDRESS|BLOCKQUOTE|PRE)$/.test(q.nodeName)}g=j.getParent(p.getNode(),function(q){return i(q)});if(g){if((c&&i(g.parentNode))||g.nodeName=="DIV"){k=l.dom.create(h);f(j.getAttribs(g),function(q){j.setAttrib(k,q.nodeName,j.getAttrib(g,q.nodeName))});m=p.getBookmark();j.replace(k,g,1);p.moveToBookmark(m);l.nodeChanged();return}}h=l.settings.forced_root_block?(h||"<p>"):h;if(h.indexOf("<")==-1){h="<"+h+">"}if(d.isGecko){h=h.replace(/<(div|blockquote|code|dt|dd|dl|samp)>/gi,"$1")}l.getDoc().execCommand("FormatBlock",false,h)},mceCleanup:function(){var h=this.editor,i=h.selection,g=i.getBookmark();h.setContent(h.getContent());i.moveToBookmark(g)},mceRemoveNode:function(j,k){var h=this.editor,i=h.selection,g,l=k||i.getNode();if(l==h.getBody()){return}g=i.getBookmark();h.dom.remove(l,1);i.moveToBookmark(g);h.nodeChanged()},mceSelectNodeDepth:function(i,j){var g=this.editor,h=g.selection,k=0;g.dom.getParent(h.getNode(),function(l){if(l.nodeType==1&&k++==j){h.select(l);g.nodeChanged();return false}},g.getBody())},mceSelectNode:function(h,g){this.editor.selection.select(g)},mceInsertContent:function(g,h){this.editor.selection.setContent(h)},mceInsertRawHTML:function(h,i){var g=this.editor;g.selection.setContent("tiny_mce_marker");g.setContent(g.getContent().replace(/tiny_mce_marker/g,i))},mceRepaint:function(){var i,g,j=this.editor;if(d.isGecko){try{i=j.selection;g=i.getBookmark(true);if(i.getSel()){i.getSel().selectAllChildren(j.getBody())}i.collapse(true);i.moveToBookmark(g)}catch(h){}}},queryStateUnderline:function(){var g=this.editor,h=g.selection.getNode();if(h&&h.nodeName=="A"){return false}return this._queryState("Underline")},queryStateOutdent:function(){var g=this.editor,h;if(g.settings.inline_styles){if((h=g.dom.getParent(g.selection.getStart(),g.dom.isBlock))&&parseInt(h.style.paddingLeft)>0){return true}if((h=g.dom.getParent(g.selection.getEnd(),g.dom.isBlock))&&parseInt(h.style.paddingLeft)>0){return true}}return this.queryStateInsertUnorderedList()||this.queryStateInsertOrderedList()||(!g.settings.inline_styles&&!!g.dom.getParent(g.selection.getNode(),"BLOCKQUOTE"))},queryStateInsertUnorderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),"UL")},queryStateInsertOrderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),"OL")},queryStatemceBlockQuote:function(){return !!this.editor.dom.getParent(this.editor.selection.getStart(),function(g){return g.nodeName==="BLOCKQUOTE"})},_applyInlineStyle:function(o,j,m){var q=this,n=q.editor,l=n.dom,i,p={},k,r;o=o.toUpperCase();if(m&&m.check_classes&&j["class"]){m.check_classes.push(j["class"])}function h(){f(l.select(o).reverse(),function(t){var s=0;f(l.getAttribs(t),function(u){if(u.nodeName.substring(0,1)!="_"&&l.getAttrib(t,u.nodeName)!=""){s++}});if(s==0){l.remove(t,1)}})}function g(){var s;f(l.select("span,font"),function(t){if(t.style.fontFamily=="mceinline"||t.face=="mceinline"){if(!s){s=n.selection.getBookmark()}j._mce_new="1";l.replace(l.create(o,j),t,1)}});f(l.select(o+"[_mce_new]"),function(u){function t(v){if(v.nodeType==1){f(j.style,function(x,w){l.setStyle(v,w,"")});if(j["class"]&&v.className&&m){f(m.check_classes,function(w){if(l.hasClass(v,w)){l.removeClass(v,w)}})}}}f(l.select(o,u),t);if(u.parentNode&&u.parentNode.nodeType==1&&u.parentNode.childNodes.length==1){t(u.parentNode)}l.getParent(u.parentNode,function(v){if(v.nodeType==1){if(j.style){f(j.style,function(y,x){var w;if(!p[x]&&(w=l.getStyle(v,x))){if(w===y){l.setStyle(u,x,"")}p[x]=1}})}if(j["class"]&&v.className&&m){f(m.check_classes,function(w){if(l.hasClass(v,w)){l.removeClass(u,w)}})}}return false});u.removeAttribute("_mce_new")});h();n.selection.moveToBookmark(s);return !!s}n.focus();n.getDoc().execCommand("FontName",false,"mceinline");g();if(k=q._applyInlineStyle.keyhandler){n.onKeyUp.remove(k);n.onKeyPress.remove(k);n.onKeyDown.remove(k);n.onSetContent.remove(q._applyInlineStyle.chandler)}if(n.selection.isCollapsed()){if(!c){f(l.getParents(n.selection.getNode(),"span"),function(s){f(j.style,function(u,t){var w;if(w=l.getStyle(s,t)){if(w==u){l.setStyle(s,t,"");r=2;return false}r=1;return false}});if(r){return false}});if(r==2){i=n.selection.getBookmark();h();n.selection.moveToBookmark(i);window.setTimeout(function(){n.nodeChanged()},1);return}}q._pendingStyles=d.extend(q._pendingStyles||{},j.style);q._applyInlineStyle.chandler=n.onSetContent.add(function(){delete q._pendingStyles});q._applyInlineStyle.keyhandler=k=function(s){if(q._pendingStyles){j.style=q._pendingStyles;delete q._pendingStyles}if(g()){n.onKeyDown.remove(q._applyInlineStyle.keyhandler);n.onKeyPress.remove(q._applyInlineStyle.keyhandler)}if(s.type=="keyup"){n.onKeyUp.remove(q._applyInlineStyle.keyhandler)}};n.onKeyDown.add(k);n.onKeyPress.add(k);n.onKeyUp.add(k)}else{q._pendingStyles=0}}})})(tinymce);(function(a){a.create("tinymce.UndoManager",{index:0,data:null,typing:0,UndoManager:function(c){var d=this,b=a.util.Dispatcher;d.editor=c;d.data=[];d.onAdd=new b(this);d.onUndo=new b(this);d.onRedo=new b(this)},add:function(d){var g=this,f,e=g.editor,c,h=e.settings,j;d=d||{};d.content=d.content||e.getContent({format:"raw",no_events:1});d.content=d.content.replace(/^\s*|\s*$/g,"");j=g.data[g.index>0&&(g.index==0||g.index==g.data.length)?g.index-1:g.index];if(!d.initial&&j&&d.content==j.content){return null}if(h.custom_undo_redo_levels){if(g.data.length>h.custom_undo_redo_levels){for(f=0;f<g.data.length-1;f++){g.data[f]=g.data[f+1]}g.data.length--;g.index=g.data.length}}if(h.custom_undo_redo_restore_selection&&!d.initial){d.bookmark=c=d.bookmark||e.selection.getBookmark()}if(g.index<g.data.length){g.index++}if(g.data.length===0&&!d.initial){return null}g.data.length=g.index+1;g.data[g.index++]=d;if(d.initial){g.index=0}if(g.data.length==2&&g.data[0].initial){g.data[0].bookmark=c}g.onAdd.dispatch(g,d);e.isNotDirty=0;return d},undo:function(){var e=this,c=e.editor,b=b,d;if(e.typing){e.add();e.typing=0}if(e.index>0){if(e.index==e.data.length&&e.index>1){d=e.index;e.typing=0;if(!e.add()){e.index=d}--e.index}b=e.data[--e.index];c.setContent(b.content,{format:"raw"});c.selection.moveToBookmark(b.bookmark);e.onUndo.dispatch(e,b)}return b},redo:function(){var d=this,c=d.editor,b=null;if(d.index<d.data.length-1){b=d.data[++d.index];c.setContent(b.content,{format:"raw"});c.selection.moveToBookmark(b.bookmark);d.onRedo.dispatch(d,b)}return b},clear:function(){var b=this;b.data=[];b.index=0;b.typing=0;b.add({initial:true})},hasUndo:function(){return this.index!=0||this.typing},hasRedo:function(){return this.index<this.data.length-1}})})(tinymce);(function(i){var h,c,a,b,g,f;h=i.dom.Event;c=i.isIE;a=i.isGecko;b=i.isOpera;g=i.each;f=i.extend;function e(k,l){var j=l.ownerDocument.createRange();j.setStart(k.endContainer,k.endOffset);j.setEndAfter(l);return j.cloneContents().textContent.length==0}function d(j){j=j.innerHTML;j=j.replace(/<(img|hr|table|input|select|textarea)[ \>]/gi,"-");j=j.replace(/<[^>]+>/g,"");return j.replace(/[ \t\r\n]+/g,"")==""}i.create("tinymce.ForceBlocks",{ForceBlocks:function(k){var l=this,m=k.settings,n;l.editor=k;l.dom=k.dom;n=(m.forced_root_block||"p").toLowerCase();m.element=n.toUpperCase();k.onPreInit.add(l.setup,l);l.reOpera=new RegExp("(\\u00a0|&#160;|&nbsp;)</"+n+">","gi");l.rePadd=new RegExp("<p( )([^>]+)><\\/p>|<p( )([^>]+)\\/>|<p( )([^>]+)>\\s+<\\/p>|<p><\\/p>|<p\\/>|<p>\\s+<\\/p>".replace(/p/g,n),"gi");l.reNbsp2BR1=new RegExp("<p( )([^>]+)>[\\s\\u00a0]+<\\/p>|<p>[\\s\\u00a0]+<\\/p>".replace(/p/g,n),"gi");l.reNbsp2BR2=new RegExp("<%p()([^>]+)>(&nbsp;|&#160;)<\\/%p>|<%p>(&nbsp;|&#160;)<\\/%p>".replace(/%p/g,n),"gi");l.reBR2Nbsp=new RegExp("<p( )([^>]+)>\\s*<br \\/>\\s*<\\/p>|<p>\\s*<br \\/>\\s*<\\/p>".replace(/p/g,n),"gi");function j(p,q){if(b){q.content=q.content.replace(l.reOpera,"</"+n+">")}q.content=q.content.replace(l.rePadd,"<"+n+"$1$2$3$4$5$6>\u00a0</"+n+">");if(!c&&!b&&q.set){q.content=q.content.replace(l.reNbsp2BR1,"<"+n+"$1$2><br /></"+n+">");q.content=q.content.replace(l.reNbsp2BR2,"<"+n+"$1$2><br /></"+n+">")}else{q.content=q.content.replace(l.reBR2Nbsp,"<"+n+"$1$2>\u00a0</"+n+">")}}k.onBeforeSetContent.add(j);k.onPostProcess.add(j);if(m.forced_root_block){k.onInit.add(l.forceRoots,l);k.onSetContent.add(l.forceRoots,l);k.onBeforeGetContent.add(l.forceRoots,l)}},setup:function(){var k=this,j=k.editor,l=j.settings;if(l.forced_root_block){j.onKeyUp.add(k.forceRoots,k);j.onPreProcess.add(k.forceRoots,k)}if(l.force_br_newlines){if(c){j.onKeyPress.add(function(o,q){var r,p=o.selection;if(q.keyCode==13&&p.getNode().nodeName!="LI"){p.setContent('<br id="__" /> ',{format:"raw"});r=o.dom.get("__");r.removeAttribute("id");p.select(r);p.collapse();return h.cancel(q)}})}return}if(!c&&l.force_p_newlines){j.onKeyPress.add(function(n,o){if(o.keyCode==13&&!o.shiftKey){if(!k.insertPara(o)){h.cancel(o)}}});if(a){j.onKeyDown.add(function(n,o){if((o.keyCode==8||o.keyCode==46)&&!o.shiftKey){k.backspaceDelete(o,o.keyCode==8)}})}}function m(o,n){var p=j.dom.create(n);g(o.attributes,function(q){if(q.specified&&q.nodeValue){p.setAttribute(q.nodeName.toLowerCase(),q.nodeValue)}});g(o.childNodes,function(q){p.appendChild(q.cloneNode(true))});o.parentNode.replaceChild(p,o);return p}j.onPreProcess.add(function(n,p){g(n.dom.select("p,h1,h2,h3,h4,h5,h6,div",p.node),function(o){if(d(o)){g(n.dom.select("span,em,strong,b,i",p.node),function(q){if(!q.hasChildNodes()){q.appendChild(n.getDoc().createTextNode("\u00a0"));return false}})}})});if(c){if(l.element!="P"){j.onKeyPress.add(function(n,o){k.lastElm=n.selection.getNode().nodeName});j.onKeyUp.add(function(p,r){var t,q=p.selection,s=q.getNode(),o=p.getBody();if(o.childNodes.length===1&&s.nodeName=="P"){s=m(s,l.element);q.select(s);q.collapse();p.nodeChanged()}else{if(r.keyCode==13&&!r.shiftKey&&k.lastElm!="P"){t=p.dom.getParent(s,"p");if(t){m(t,l.element);p.nodeChanged()}}}})}}},find:function(p,l,m){var k=this.editor,j=k.getDoc().createTreeWalker(p,4,null,false),o=-1;while(p=j.nextNode()){o++;if(l==0&&p==m){return o}if(l==1&&o==m){return p}}return -1},forceRoots:function(p,D){var u=this,p=u.editor,H=p.getBody(),E=p.getDoc(),K=p.selection,v=K.getSel(),w=K.getRng(),I=-2,o,B,j,k,F=-16777215;var G,l,J,A,x,m=H.childNodes,z,y,q;for(z=m.length-1;z>=0;z--){G=m[z];if(G.nodeType===3||(!u.dom.isBlock(G)&&G.nodeType!==8&&!/^(script|mce:script|style|mce:style)$/i.test(G.nodeName))){if(!l){if(G.nodeType!=3||/[^\s]/g.test(G.nodeValue)){if(I==-2&&w){if(!c){if(w.startContainer.nodeType==1&&(y=w.startContainer.childNodes[w.startOffset])&&y.nodeType==1){q=y.getAttribute("id");y.setAttribute("id","__mce")}else{if(p.dom.getParent(w.startContainer,function(n){return n===H})){B=w.startOffset;j=w.endOffset;I=u.find(H,0,w.startContainer);o=u.find(H,0,w.endContainer)}}}else{k=E.body.createTextRange();k.moveToElementText(H);k.collapse(1);J=k.move("character",F)*-1;k=w.duplicate();k.collapse(1);A=k.move("character",F)*-1;k=w.duplicate();k.collapse(0);x=(k.move("character",F)*-1)-A;I=A-J;o=x}}l=p.dom.create(p.settings.forced_root_block);G.parentNode.replaceChild(l,G);l.appendChild(G)}}else{if(l.hasChildNodes()){l.insertBefore(G,l.firstChild)}else{l.appendChild(G)}}}else{l=null}}if(I!=-2){if(!c){l=H.getElementsByTagName(p.settings.element)[0];w=E.createRange();if(I!=-1){w.setStart(u.find(H,1,I),B)}else{w.setStart(l,0)}if(o!=-1){w.setEnd(u.find(H,1,o),j)}else{w.setEnd(l,0)}if(v){v.removeAllRanges();v.addRange(w)}}else{try{w=v.createRange();w.moveToElementText(H);w.collapse(1);w.moveStart("character",I);w.moveEnd("character",o);w.select()}catch(C){}}}else{if(!c&&(y=p.dom.get("__mce"))){if(q){y.setAttribute("id",q)}else{y.removeAttribute("id")}w=E.createRange();w.setStartBefore(y);w.setEndBefore(y);K.setRng(w)}}},getParentBlock:function(k){var j=this.dom;return j.getParent(k,j.isBlock)},insertPara:function(N){var B=this,p=B.editor,J=p.dom,O=p.getDoc(),S=p.settings,C=p.selection.getSel(),D=C.getRangeAt(0),R=O.body;var G,H,E,L,K,m,k,o,u,j,z,Q,l,q,F,I=J.getViewPort(p.getWin()),x,A,w;G=O.createRange();G.setStart(C.anchorNode,C.anchorOffset);G.collapse(true);H=O.createRange();H.setStart(C.focusNode,C.focusOffset);H.collapse(true);E=G.compareBoundaryPoints(G.START_TO_END,H)<0;L=E?C.anchorNode:C.focusNode;K=E?C.anchorOffset:C.focusOffset;m=E?C.focusNode:C.anchorNode;k=E?C.focusOffset:C.anchorOffset;if(L===m&&/^(TD|TH)$/.test(L.nodeName)){if(L.firstChild.nodeName=="BR"){J.remove(L.firstChild)}if(L.childNodes.length==0){p.dom.add(L,S.element,null,"<br />");Q=p.dom.add(L,S.element,null,"<br />")}else{F=L.innerHTML;L.innerHTML="";p.dom.add(L,S.element,null,F);Q=p.dom.add(L,S.element,null,"<br />")}D=O.createRange();D.selectNodeContents(Q);D.collapse(1);p.selection.setRng(D);return false}if(L==R&&m==R&&R.firstChild&&p.dom.isBlock(R.firstChild)){L=m=L.firstChild;K=k=0;G=O.createRange();G.setStart(L,0);H=O.createRange();H.setStart(m,0)}L=L.nodeName=="HTML"?O.body:L;L=L.nodeName=="BODY"?L.firstChild:L;m=m.nodeName=="HTML"?O.body:m;m=m.nodeName=="BODY"?m.firstChild:m;o=B.getParentBlock(L);u=B.getParentBlock(m);j=o?o.nodeName:S.element;if(B.dom.getParent(o,"ol,ul,pre")){return true}if(o&&(o.nodeName=="CAPTION"||/absolute|relative|fixed/gi.test(J.getStyle(o,"position",1)))){j=S.element;o=null}if(u&&(u.nodeName=="CAPTION"||/absolute|relative|fixed/gi.test(J.getStyle(o,"position",1)))){j=S.element;u=null}if(/(TD|TABLE|TH|CAPTION)/.test(j)||(o&&j=="DIV"&&/left|right/gi.test(J.getStyle(o,"float",1)))){j=S.element;o=u=null}z=(o&&o.nodeName==j)?o.cloneNode(0):p.dom.create(j);Q=(u&&u.nodeName==j)?u.cloneNode(0):p.dom.create(j);Q.removeAttribute("id");if(/^(H[1-6])$/.test(j)&&e(D,o)){Q=p.dom.create(S.element)}F=l=L;do{if(F==R||F.nodeType==9||B.dom.isBlock(F)||/(TD|TABLE|TH|CAPTION)/.test(F.nodeName)){break}l=F}while((F=F.previousSibling?F.previousSibling:F.parentNode));F=q=m;do{if(F==R||F.nodeType==9||B.dom.isBlock(F)||/(TD|TABLE|TH|CAPTION)/.test(F.nodeName)){break}q=F}while((F=F.nextSibling?F.nextSibling:F.parentNode));if(l.nodeName==j){G.setStart(l,0)}else{G.setStartBefore(l)}G.setEnd(L,K);z.appendChild(G.cloneContents()||O.createTextNode(""));try{H.setEndAfter(q)}catch(M){}H.setStart(m,k);Q.appendChild(H.cloneContents()||O.createTextNode(""));D=O.createRange();if(!l.previousSibling&&l.parentNode.nodeName==j){D.setStartBefore(l.parentNode)}else{if(G.startContainer.nodeName==j&&G.startOffset==0){D.setStartBefore(G.startContainer)}else{D.setStart(G.startContainer,G.startOffset)}}if(!q.nextSibling&&q.parentNode.nodeName==j){D.setEndAfter(q.parentNode)}else{D.setEnd(H.endContainer,H.endOffset)}D.deleteContents();if(b){p.getWin().scrollTo(0,I.y)}if(z.firstChild&&z.firstChild.nodeName==j){z.innerHTML=z.firstChild.innerHTML}if(Q.firstChild&&Q.firstChild.nodeName==j){Q.innerHTML=Q.firstChild.innerHTML}if(d(z)){z.innerHTML="<br />"}function P(y,s){var r=[],U,T,t;y.innerHTML="";if(S.keep_styles){T=s;do{if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(T.nodeName)){U=T.cloneNode(false);J.setAttrib(U,"id","");r.push(U)}}while(T=T.parentNode)}if(r.length>0){for(t=r.length-1,U=y;t>=0;t--){U=U.appendChild(r[t])}r[0].innerHTML=b?"&nbsp;":"<br />";return r[0]}else{y.innerHTML=b?"&nbsp;":"<br />"}}if(d(Q)){w=P(Q,m)}if(b&&parseFloat(opera.version())<9.5){D.insertNode(z);D.insertNode(Q)}else{D.insertNode(Q);D.insertNode(z)}Q.normalize();z.normalize();function v(r){return O.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false).nextNode()||r}D=O.createRange();D.selectNodeContents(a?v(w||Q):w||Q);D.collapse(1);C.removeAllRanges();C.addRange(D);x=p.dom.getPos(Q).y;A=Q.clientHeight;if(x<I.y||x+A>I.y+I.h){p.getWin().scrollTo(0,x<I.y?x:x-I.h+25)}return false},backspaceDelete:function(o,x){var z=this,m=z.editor,s=m.getBody(),l=m.dom,k,p=m.selection,j=p.getRng(),q=j.startContainer,k,u,v;if(q&&m.dom.isBlock(q)&&!/^(TD|TH)$/.test(q.nodeName)&&x){if(q.childNodes.length==0||(q.childNodes.length==1&&q.firstChild.nodeName=="BR")){k=q;while((k=k.previousSibling)&&!m.dom.isBlock(k)){}if(k){if(q!=s.firstChild){u=m.dom.doc.createTreeWalker(k,NodeFilter.SHOW_TEXT,null,false);while(v=u.nextNode()){k=v}j=m.getDoc().createRange();j.setStart(k,k.nodeValue?k.nodeValue.length:0);j.setEnd(k,k.nodeValue?k.nodeValue.length:0);p.setRng(j);m.dom.remove(q)}return h.cancel(o)}}}function y(n){var r;n=n.target;if(n&&n.parentNode&&n.nodeName=="BR"&&(k=z.getParentBlock(n))){r=n.previousSibling;h.remove(s,"DOMNodeInserted",y);if(r&&r.nodeType==3&&/\s+$/.test(r.nodeValue)){return}if(n.previousSibling||n.nextSibling){m.dom.remove(n)}}}h._add(s,"DOMNodeInserted",y);window.setTimeout(function(){h._remove(s,"DOMNodeInserted",y)},1)}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each,e=c.extend;c.create("tinymce.ControlManager",{ControlManager:function(f,j){var h=this,g;j=j||{};h.editor=f;h.controls={};h.onAdd=new c.util.Dispatcher(h);h.onPostRender=new c.util.Dispatcher(h);h.prefix=j.prefix||f.id+"_";h._cls={};h.onPostRender.add(function(){d(h.controls,function(i){i.postRender()})})},get:function(f){return this.controls[this.prefix+f]||this.controls[f]},setActive:function(h,f){var g=null;if(g=this.get(h)){g.setActive(f)}return g},setDisabled:function(h,f){var g=null;if(g=this.get(h)){g.setDisabled(f)}return g},add:function(g){var f=this;if(g){f.controls[g.id]=g;f.onAdd.dispatch(g,f)}return g},createControl:function(i){var h,g=this,f=g.editor;d(f.plugins,function(j){if(j.createControl){h=j.createControl(i,g);if(h){return false}}});switch(i){case"|":case"separator":return g.createSeparator()}if(!h&&f.buttons&&(h=f.buttons[i])){return g.createButton(i,h)}return g.add(h)},createDropMenu:function(f,n,h){var m=this,i=m.editor,j,g,k,l;n=e({"class":"mceDropDown",constrain:i.settings.constrain_menus},n);n["class"]=n["class"]+" "+i.getParam("skin")+"Skin";if(k=i.getParam("skin_variant")){n["class"]+=" "+i.getParam("skin")+"Skin"+k.substring(0,1).toUpperCase()+k.substring(1)}f=m.prefix+f;l=h||m._cls.dropmenu||c.ui.DropMenu;j=m.controls[f]=new l(f,n);j.onAddItem.add(function(r,q){var p=q.settings;p.title=i.getLang(p.title,p.title);if(!p.onclick){p.onclick=function(o){i.execCommand(p.cmd,p.ui||false,p.value)}}});i.onRemove.add(function(){j.destroy()});if(c.isIE){j.onShowMenu.add(function(){i.focus();g=i.selection.getBookmark(1)});j.onHideMenu.add(function(){if(g){i.selection.moveToBookmark(g);g=0}})}return m.add(j)},createListBox:function(m,i,l){var h=this,g=h.editor,j,k,f;if(h.get(m)){return null}i.title=g.translate(i.title);i.scope=i.scope||g;if(!i.onselect){i.onselect=function(n){g.execCommand(i.cmd,i.ui||false,n||i.value)}}i=e({title:i.title,"class":"mce_"+m,scope:i.scope,control_manager:h},i);m=h.prefix+m;if(g.settings.use_native_selects){k=new c.ui.NativeListBox(m,i)}else{f=l||h._cls.listbox||c.ui.ListBox;k=new f(m,i)}h.controls[m]=k;if(c.isWebKit){k.onPostRender.add(function(p,o){a.add(o,"mousedown",function(){g.bookmark=g.selection.getBookmark(1)});a.add(o,"focus",function(){g.selection.moveToBookmark(g.bookmark);g.bookmark=null})})}if(k.hideMenu){g.onMouseDown.add(k.hideMenu,k)}return h.add(k)},createButton:function(m,i,l){var h=this,g=h.editor,j,k,f;if(h.get(m)){return null}i.title=g.translate(i.title);i.label=g.translate(i.label);i.scope=i.scope||g;if(!i.onclick&&!i.menu_button){i.onclick=function(){g.execCommand(i.cmd,i.ui||false,i.value)}}i=e({title:i.title,"class":"mce_"+m,unavailable_prefix:g.getLang("unavailable",""),scope:i.scope,control_manager:h},i);m=h.prefix+m;if(i.menu_button){f=l||h._cls.menubutton||c.ui.MenuButton;k=new f(m,i);g.onMouseDown.add(k.hideMenu,k)}else{f=h._cls.button||c.ui.Button;k=new f(m,i)}return h.add(k)},createMenuButton:function(h,f,g){f=f||{};f.menu_button=1;return this.createButton(h,f,g)},createSplitButton:function(m,i,l){var h=this,g=h.editor,j,k,f;if(h.get(m)){return null}i.title=g.translate(i.title);i.scope=i.scope||g;if(!i.onclick){i.onclick=function(n){g.execCommand(i.cmd,i.ui||false,n||i.value)}}if(!i.onselect){i.onselect=function(n){g.execCommand(i.cmd,i.ui||false,n||i.value)}}i=e({title:i.title,"class":"mce_"+m,scope:i.scope,control_manager:h},i);m=h.prefix+m;f=l||h._cls.splitbutton||c.ui.SplitButton;k=h.add(new f(m,i));g.onMouseDown.add(k.hideMenu,k);return k},createColorSplitButton:function(f,n,h){var l=this,j=l.editor,i,k,m,g;if(l.get(f)){return null}n.title=j.translate(n.title);n.scope=n.scope||j;if(!n.onclick){n.onclick=function(o){if(c.isIE){g=j.selection.getBookmark(1)}j.execCommand(n.cmd,n.ui||false,o||n.value)}}if(!n.onselect){n.onselect=function(o){j.execCommand(n.cmd,n.ui||false,o||n.value)}}n=e({title:n.title,"class":"mce_"+f,menu_class:j.getParam("skin")+"Skin",scope:n.scope,more_colors_title:j.getLang("more_colors")},n);f=l.prefix+f;m=h||l._cls.colorsplitbutton||c.ui.ColorSplitButton;k=new m(f,n);j.onMouseDown.add(k.hideMenu,k);j.onRemove.add(function(){k.destroy()});if(c.isIE){k.onShowMenu.add(function(){j.focus();g=j.selection.getBookmark(1)});k.onHideMenu.add(function(){if(g){j.selection.moveToBookmark(g);g=0}})}return l.add(k)},createToolbar:function(k,h,j){var i,g=this,f;k=g.prefix+k;f=j||g._cls.toolbar||c.ui.Toolbar;i=new f(k,h);if(g.get(k)){return null}return g.add(i)},createSeparator:function(g){var f=g||this._cls.separator||c.ui.Separator;return new f()},setControlType:function(g,f){return this._cls[g.toLowerCase()]=f},destroy:function(){d(this.controls,function(f){f.destroy()});this.controls=null}})})(tinymce);(function(d){var a=d.util.Dispatcher,e=d.each,c=d.isIE,b=d.isOpera;d.create("tinymce.WindowManager",{WindowManager:function(f){var g=this;g.editor=f;g.onOpen=new a(g);g.onClose=new a(g);g.params={};g.features={}},open:function(z,h){var v=this,k="",n,m,i=v.editor.settings.dialog_type=="modal",q,o,j,g=d.DOM.getViewPort(),r;z=z||{};h=h||{};o=b?g.w:screen.width;j=b?g.h:screen.height;z.name=z.name||"mc_"+new Date().getTime();z.width=parseInt(z.width||320);z.height=parseInt(z.height||240);z.resizable=true;z.left=z.left||parseInt(o/2)-(z.width/2);z.top=z.top||parseInt(j/2)-(z.height/2);h.inline=false;h.mce_width=z.width;h.mce_height=z.height;h.mce_auto_focus=z.auto_focus;if(i){if(c){z.center=true;z.help=false;z.dialogWidth=z.width+"px";z.dialogHeight=z.height+"px";z.scroll=z.scrollbars||false}}e(z,function(p,f){if(d.is(p,"boolean")){p=p?"yes":"no"}if(!/^(name|url)$/.test(f)){if(c&&i){k+=(k?";":"")+f+":"+p}else{k+=(k?",":"")+f+"="+p}}});v.features=z;v.params=h;v.onOpen.dispatch(v,z,h);r=z.url||z.file;r=d._addVer(r);try{if(c&&i){q=1;window.showModalDialog(r,window,k)}else{q=window.open(r,z.name,k)}}catch(l){}if(!q){alert(v.editor.getLang("popup_blocked"))}},close:function(f){f.close();this.onClose.dispatch(this)},createInstance:function(i,h,g,m,l,k){var j=d.resolve(i);return new j(h,g,m,l,k)},confirm:function(h,f,i,g){g=g||window;f.call(i||this,g.confirm(this._decode(this.editor.getLang(h,h))))},alert:function(h,f,j,g){var i=this;g=g||window;g.alert(i._decode(i.editor.getLang(h,h)));if(f){f.call(j||i)}},_decode:function(f){return d.DOM.decode(f).replace(/\\n/g,"\n")}})}(tinymce));(function(a){a.CommandManager=function(){var c={},b={},d={};function e(i,h,g,f){if(typeof(h)=="string"){h=[h]}a.each(h,function(j){i[j.toLowerCase()]={func:g,scope:f}})}a.extend(this,{add:function(h,g,f){e(c,h,g,f)},addQueryStateHandler:function(h,g,f){e(b,h,g,f)},addQueryValueHandler:function(h,g,f){e(d,h,g,f)},execCommand:function(g,j,i,h,f){if(j=c[j.toLowerCase()]){if(j.func.call(g||j.scope,i,h,f)!==false){return true}}},queryCommandValue:function(){if(cmd=d[cmd.toLowerCase()]){return cmd.func.call(scope||cmd.scope,ui,value,args)}},queryCommandState:function(){if(cmd=b[cmd.toLowerCase()]){return cmd.func.call(scope||cmd.scope,ui,value,args)}}})};a.GlobalCommands=new a.CommandManager()})(tinymce);(function(b){function a(i,d,h,m){var j,g,e,l,f;function k(p,o){do{if(p.parentNode==o){return p}p=p.parentNode}while(p)}function c(o){m(o);b.walk(o,m,"childNodes")}j=i.findCommonAncestor(d,h);e=k(d,j)||d;l=k(h,j)||h;for(g=d;g&&g!=e;g=g.parentNode){for(f=g.nextSibling;f;f=f.nextSibling){c(f)}}if(e!=l){for(g=e.nextSibling;g&&g!=l;g=g.nextSibling){c(g)}}else{c(e)}for(g=h;g&&g!=l;g=g.parentNode){for(f=g.previousSibling;f;f=f.previousSibling){c(f)}}}b.GlobalCommands.add("RemoveFormat",function(){var m=this,l=m.dom,u=m.selection,d=u.getRng(1),e=[],h,f,j,q,g,o,c,i;function k(s){var r;l.getParent(s,function(v){if(l.is(v,m.getParam("removeformat_selector"))){r=v}return l.isBlock(v)},m.getBody());return r}function p(r){if(l.is(r,m.getParam("removeformat_selector"))){e.push(r)}}function t(r){p(r);b.walk(r,p,"childNodes")}h=u.getBookmark();q=d.startContainer;o=d.endContainer;g=d.startOffset;c=d.endOffset;q=q.nodeType==1?q.childNodes[Math.min(g,q.childNodes.length-1)]:q;o=o.nodeType==1?o.childNodes[Math.min(g==c?c:c-1,o.childNodes.length-1)]:o;if(q==o){f=k(q);if(q.nodeType==3){if(f&&f.nodeType==1){i=q.splitText(g);i.splitText(c-g);l.split(f,i);u.moveToBookmark(h)}return}t(l.split(f,q)||q)}else{f=k(q);j=k(o);if(f){if(q.nodeType==3){if(g==q.nodeValue.length){q.nodeValue+="\uFEFF"}q=q.splitText(g)}}if(j){if(o.nodeType==3){o.splitText(c)}}if(f&&f==j){l.replace(l.create("span",{id:"__end"},o.cloneNode(true)),o)}if(f){f=l.split(f,q)}else{f=q}if(i=l.get("__end")){o=i;j=k(o)}if(j){j=l.split(j,o)}else{j=o}a(l,f,j,p);if(q.nodeValue=="\uFEFF"){q.nodeValue=""}t(o);t(q)}b.each(e,function(r){l.remove(r,1)});l.remove("__end",1);u.moveToBookmark(h)})})(tinymce);(function(a){a.GlobalCommands.add("mceBlockQuote",function(){var j=this,o=j.selection,f=j.dom,l,k,e,d,p,c,m,h,b;function g(i){return f.getParent(i,function(q){return q.nodeName==="BLOCKQUOTE"})}l=f.getParent(o.getStart(),f.isBlock);k=f.getParent(o.getEnd(),f.isBlock);if(p=g(l)){if(l!=k||l.childNodes.length>1||(l.childNodes.length==1&&l.firstChild.nodeName!="BR")){d=o.getBookmark()}if(g(k)){m=p.cloneNode(false);while(e=k.nextSibling){m.appendChild(e.parentNode.removeChild(e))}}if(m){f.insertAfter(m,p)}b=o.getSelectedBlocks(l,k);for(h=b.length-1;h>=0;h--){f.insertAfter(b[h],p)}if(/^\s*$/.test(p.innerHTML)){f.remove(p,1)}if(m&&/^\s*$/.test(m.innerHTML)){f.remove(m,1)}if(!d){if(!a.isIE){c=j.getDoc().createRange();c.setStart(l,0);c.setEnd(l,0);o.setRng(c)}else{o.select(l);o.collapse(0);if(f.getParent(o.getStart(),f.isBlock)!=l){c=o.getRng();c.move("character",-1);c.select()}}}else{j.selection.moveToBookmark(d)}return}if(a.isIE&&!l&&!k){j.getDoc().execCommand("Indent");e=g(o.getNode());e.style.margin=e.dir="";return}if(!l||!k){return}if(l!=k||l.childNodes.length>1||(l.childNodes.length==1&&l.firstChild.nodeName!="BR")){d=o.getBookmark()}a.each(o.getSelectedBlocks(g(o.getStart()),g(o.getEnd())),function(i){if(i.nodeName=="BLOCKQUOTE"&&!p){p=i;return}if(!p){p=f.create("blockquote");i.parentNode.insertBefore(p,i)}if(i.nodeName=="BLOCKQUOTE"&&p){e=i.firstChild;while(e){p.appendChild(e.cloneNode(true));e=e.nextSibling}f.remove(i);return}p.appendChild(f.remove(i))});if(!d){if(!a.isIE){c=j.getDoc().createRange();c.setStart(l,0);c.setEnd(l,0);o.setRng(c)}else{o.select(l);o.collapse(1)}}else{o.moveToBookmark(d)}})})(tinymce);(function(a){a.each(["Cut","Copy","Paste"],function(b){a.GlobalCommands.add(b,function(){var c=this,e=c.getDoc();try{e.execCommand(b,false,null);if(!e.queryCommandEnabled(b)){throw"Error"}}catch(d){if(a.isGecko){c.windowManager.confirm(c.getLang("clipboard_msg"),function(f){if(f){open("http://www.mozilla.org/editor/midasdemo/securityprefs.html","_blank")}})}else{c.windowManager.alert(c.getLang("clipboard_no_support"))}}})})})(tinymce);(function(a){a.GlobalCommands.add("InsertHorizontalRule",function(){if(a.isOpera){return this.getDoc().execCommand("InsertHorizontalRule",false,"")}this.selection.setContent("<hr />")})})(tinymce);(function(){var a=tinymce.GlobalCommands;a.add(["mceEndUndoLevel","mceAddUndoLevel"],function(){this.undoManager.add()});a.add("Undo",function(){var b=this;if(b.settings.custom_undo_redo){b.undoManager.undo();b.nodeChanged();return true}return false});a.add("Redo",function(){var b=this;if(b.settings.custom_undo_redo){b.undoManager.redo();b.nodeChanged();return true}return false})})();
      \ No newline at end of file
      diff --git a/usr/plugins/TinyMCE/tiny_mce/tiny_mce_popup.js b/usr/plugins/TinyMCE/tiny_mce/tiny_mce_popup.js
      new file mode 100644
      index 00000000..c9bf1fe4
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/tiny_mce_popup.js
      @@ -0,0 +1,5 @@
      +
      +// Uncomment and change this document.domain value if you are loading the script cross subdomains
      +// document.domain = 'moxiecode.com';
      +
      +var tinymce=null,tinyMCEPopup,tinyMCE;tinyMCEPopup={init:function(){var b=this,a,c;a=b.getWin();tinymce=a.tinymce;tinyMCE=a.tinyMCE;b.editor=tinymce.EditorManager.activeEditor;b.params=b.editor.windowManager.params;b.features=b.editor.windowManager.features;b.dom=b.editor.windowManager.createInstance("tinymce.dom.DOMUtils",document);if(b.features.popup_css!==false){b.dom.loadCSS(b.features.popup_css||b.editor.settings.popup_css)}b.listeners=[];b.onInit={add:function(e,d){b.listeners.push({func:e,scope:d})}};b.isWindow=!b.getWindowArg("mce_inline");b.id=b.getWindowArg("mce_window_id");b.editor.windowManager.onOpen.dispatch(b.editor.windowManager,window)},getWin:function(){return(!window.frameElement&&window.dialogArguments)||opener||parent||top},getWindowArg:function(c,b){var a=this.params[c];return tinymce.is(a)?a:b},getParam:function(b,a){return this.editor.getParam(b,a)},getLang:function(b,a){return this.editor.getLang(b,a)},execCommand:function(d,c,e,b){b=b||{};b.skip_focus=1;this.restoreSelection();return this.editor.execCommand(d,c,e,b)},resizeToInnerSize:function(){var e=this,g,a=document.body,c=e.dom.getViewPort(window),d,f;d=e.getWindowArg("mce_width")-c.w;f=e.getWindowArg("mce_height")-c.h;if(e.isWindow){window.resizeBy(d,f)}else{e.editor.windowManager.resizeBy(d,f,e.id)}},executeOnLoad:function(s){this.onInit.add(function(){eval(s)})},storeSelection:function(){this.editor.windowManager.bookmark=tinyMCEPopup.editor.selection.getBookmark(1)},restoreSelection:function(){var a=tinyMCEPopup;if(!a.isWindow&&tinymce.isIE){a.editor.selection.moveToBookmark(a.editor.windowManager.bookmark)}},requireLangPack:function(){var b=this,a=b.getWindowArg("plugin_url")||b.getWindowArg("theme_url");if(a&&b.editor.settings.language&&b.features.translate_i18n!==false){a+="/langs/"+b.editor.settings.language+"_dlg.js";if(!tinymce.ScriptLoader.isDone(a)){document.write('<script type="text/javascript" src="'+tinymce._addVer(a)+'"><\/script>');tinymce.ScriptLoader.markDone(a)}}},pickColor:function(b,a){this.execCommand("mceColorPicker",true,{color:document.getElementById(a).value,func:function(e){document.getElementById(a).value=e;try{document.getElementById(a).onchange()}catch(d){}}})},openBrowser:function(a,c,b){tinyMCEPopup.restoreSelection();this.editor.execCallback("file_browser_callback",a,document.getElementById(a).value,c,window)},confirm:function(b,a,c){this.editor.windowManager.confirm(b,a,c,window)},alert:function(b,a,c){this.editor.windowManager.alert(b,a,c,window)},close:function(){var a=this;function b(){a.editor.windowManager.close(window);tinymce=tinyMCE=a.editor=a.params=a.dom=a.dom.doc=null}if(tinymce.isOpera){a.getWin().setTimeout(b,0)}else{b()}},_restoreSelection:function(){var a=window.event.srcElement;if(a.nodeName=="INPUT"&&(a.type=="submit"||a.type=="button")){tinyMCEPopup.restoreSelection()}},_onDOMLoaded:function(){var b=tinyMCEPopup,d=document.title,e,c,a;if(b.domLoaded){return}b.domLoaded=1;if(b.features.translate_i18n!==false){c=document.body.innerHTML;if(tinymce.isIE){c=c.replace(/ (value|title|alt)=([^"][^\s>]+)/gi,' $1="$2"')}document.dir=b.editor.getParam("directionality","");if((a=b.editor.translate(c))&&a!=c){document.body.innerHTML=a}if((a=b.editor.translate(d))&&a!=d){document.title=d=a}}document.body.style.display="";if(tinymce.isIE){document.attachEvent("onmouseup",tinyMCEPopup._restoreSelection);b.dom.add(b.dom.select("head")[0],"base",{target:"_self"})}b.restoreSelection();b.resizeToInnerSize();if(!b.isWindow){b.editor.windowManager.setTitle(window,d)}else{window.focus()}if(!tinymce.isIE&&!b.isWindow){tinymce.dom.Event._add(document,"focus",function(){b.editor.windowManager.focus(b.id)})}tinymce.each(b.dom.select("select"),function(f){f.onkeydown=tinyMCEPopup._accessHandler});tinymce.each(b.listeners,function(f){f.func.call(f.scope,b.editor)});if(b.getWindowArg("mce_auto_focus",true)){window.focus();tinymce.each(document.forms,function(g){tinymce.each(g.elements,function(f){if(b.dom.hasClass(f,"mceFocus")&&!f.disabled){f.focus();return false}})})}document.onkeyup=tinyMCEPopup._closeWinKeyHandler},_accessHandler:function(a){a=a||window.event;if(a.keyCode==13||a.keyCode==32){a=a.target||a.srcElement;if(a.onchange){a.onchange()}return tinymce.dom.Event.cancel(a)}},_closeWinKeyHandler:function(a){a=a||window.event;if(a.keyCode==27){tinyMCEPopup.close()}},_wait:function(){if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);tinyMCEPopup._onDOMLoaded()}});if(document.documentElement.doScroll&&window==window.top){(function(){if(tinyMCEPopup.domLoaded){return}try{document.documentElement.doScroll("left")}catch(a){setTimeout(arguments.callee,0);return}tinyMCEPopup._onDOMLoaded()})()}document.attachEvent("onload",tinyMCEPopup._onDOMLoaded)}else{if(document.addEventListener){window.addEventListener("DOMContentLoaded",tinyMCEPopup._onDOMLoaded,false);window.addEventListener("load",tinyMCEPopup._onDOMLoaded,false)}}}};tinyMCEPopup.init();tinyMCEPopup._wait();
      \ No newline at end of file
      diff --git a/usr/plugins/TinyMCE/tiny_mce/utils/editable_selects.js b/usr/plugins/TinyMCE/tiny_mce/utils/editable_selects.js
      new file mode 100644
      index 00000000..fff49639
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/utils/editable_selects.js
      @@ -0,0 +1,69 @@
      +/**
      + * $Id: editable_selects.js 867 2008-06-09 20:33:40Z spocke $
      + *
      + * Makes select boxes editable.
      + *
      + * @author Moxiecode
      + * @copyright Copyright  2004-2008, Moxiecode Systems AB, All rights reserved.
      + */
      +
      +var TinyMCE_EditableSelects = {
      +	editSelectElm : null,
      +
      +	init : function() {
      +		var nl = document.getElementsByTagName("select"), i, d = document, o;
      +
      +		for (i=0; i<nl.length; i++) {
      +			if (nl[i].className.indexOf('mceEditableSelect') != -1) {
      +				o = new Option('(value)', '__mce_add_custom__');
      +
      +				o.className = 'mceAddSelectValue';
      +
      +				nl[i].options[nl[i].options.length] = o;
      +				nl[i].onchange = TinyMCE_EditableSelects.onChangeEditableSelect;
      +			}
      +		}
      +	},
      +
      +	onChangeEditableSelect : function(e) {
      +		var d = document, ne, se = window.event ? window.event.srcElement : e.target;
      +
      +		if (se.options[se.selectedIndex].value == '__mce_add_custom__') {
      +			ne = d.createElement("input");
      +			ne.id = se.id + "_custom";
      +			ne.name = se.name + "_custom";
      +			ne.type = "text";
      +
      +			ne.style.width = se.offsetWidth + 'px';
      +			se.parentNode.insertBefore(ne, se);
      +			se.style.display = 'none';
      +			ne.focus();
      +			ne.onblur = TinyMCE_EditableSelects.onBlurEditableSelectInput;
      +			ne.onkeydown = TinyMCE_EditableSelects.onKeyDown;
      +			TinyMCE_EditableSelects.editSelectElm = se;
      +		}
      +	},
      +
      +	onBlurEditableSelectInput : function() {
      +		var se = TinyMCE_EditableSelects.editSelectElm;
      +
      +		if (se) {
      +			if (se.previousSibling.value != '') {
      +				addSelectValue(document.forms[0], se.id, se.previousSibling.value, se.previousSibling.value);
      +				selectByValue(document.forms[0], se.id, se.previousSibling.value);
      +			} else
      +				selectByValue(document.forms[0], se.id, '');
      +
      +			se.style.display = 'inline';
      +			se.parentNode.removeChild(se.previousSibling);
      +			TinyMCE_EditableSelects.editSelectElm = null;
      +		}
      +	},
      +
      +	onKeyDown : function(e) {
      +		e = e || window.event;
      +
      +		if (e.keyCode == 13)
      +			TinyMCE_EditableSelects.onBlurEditableSelectInput();
      +	}
      +};
      diff --git a/usr/plugins/TinyMCE/tiny_mce/utils/form_utils.js b/usr/plugins/TinyMCE/tiny_mce/utils/form_utils.js
      new file mode 100644
      index 00000000..9bc2bad4
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/utils/form_utils.js
      @@ -0,0 +1,199 @@
      +/**
      + * $Id: form_utils.js 1184 2009-08-11 11:47:27Z spocke $
      + *
      + * Various form utilitiy functions.
      + *
      + * @author Moxiecode
      + * @copyright Copyright  2004-2008, Moxiecode Systems AB, All rights reserved.
      + */
      +
      +var themeBaseURL = tinyMCEPopup.editor.baseURI.toAbsolute('themes/' + tinyMCEPopup.getParam("theme"));
      +
      +function getColorPickerHTML(id, target_form_element) {
      +	var h = "";
      +
      +	h += '<a id="' + id + '_link" href="javascript:;" onclick="tinyMCEPopup.pickColor(event,\'' + target_form_element +'\');" onmousedown="return false;" class="pickcolor">';
      +	h += '<span id="' + id + '" title="' + tinyMCEPopup.getLang('browse') + '">&nbsp;</span></a>';
      +
      +	return h;
      +}
      +
      +function updateColor(img_id, form_element_id) {
      +	document.getElementById(img_id).style.backgroundColor = document.forms[0].elements[form_element_id].value;
      +}
      +
      +function setBrowserDisabled(id, state) {
      +	var img = document.getElementById(id);
      +	var lnk = document.getElementById(id + "_link");
      +
      +	if (lnk) {
      +		if (state) {
      +			lnk.setAttribute("realhref", lnk.getAttribute("href"));
      +			lnk.removeAttribute("href");
      +			tinyMCEPopup.dom.addClass(img, 'disabled');
      +		} else {
      +			if (lnk.getAttribute("realhref"))
      +				lnk.setAttribute("href", lnk.getAttribute("realhref"));
      +
      +			tinyMCEPopup.dom.removeClass(img, 'disabled');
      +		}
      +	}
      +}
      +
      +function getBrowserHTML(id, target_form_element, type, prefix) {
      +	var option = prefix + "_" + type + "_browser_callback", cb, html;
      +
      +	cb = tinyMCEPopup.getParam(option, tinyMCEPopup.getParam("file_browser_callback"));
      +
      +	if (!cb)
      +		return "";
      +
      +	html = "";
      +	html += '<a id="' + id + '_link" href="javascript:openBrowser(\'' + id + '\',\'' + target_form_element + '\', \'' + type + '\',\'' + option + '\');" onmousedown="return false;" class="browse">';
      +	html += '<span id="' + id + '" title="' + tinyMCEPopup.getLang('browse') + '">&nbsp;</span></a>';
      +
      +	return html;
      +}
      +
      +function openBrowser(img_id, target_form_element, type, option) {
      +	var img = document.getElementById(img_id);
      +
      +	if (img.className != "mceButtonDisabled")
      +		tinyMCEPopup.openBrowser(target_form_element, type, option);
      +}
      +
      +function selectByValue(form_obj, field_name, value, add_custom, ignore_case) {
      +	if (!form_obj || !form_obj.elements[field_name])
      +		return;
      +
      +	var sel = form_obj.elements[field_name];
      +
      +	var found = false;
      +	for (var i=0; i<sel.options.length; i++) {
      +		var option = sel.options[i];
      +
      +		if (option.value == value || (ignore_case && option.value.toLowerCase() == value.toLowerCase())) {
      +			option.selected = true;
      +			found = true;
      +		} else
      +			option.selected = false;
      +	}
      +
      +	if (!found && add_custom && value != '') {
      +		var option = new Option(value, value);
      +		option.selected = true;
      +		sel.options[sel.options.length] = option;
      +		sel.selectedIndex = sel.options.length - 1;
      +	}
      +
      +	return found;
      +}
      +
      +function getSelectValue(form_obj, field_name) {
      +	var elm = form_obj.elements[field_name];
      +
      +	if (elm == null || elm.options == null || elm.selectedIndex === -1)
      +		return "";
      +
      +	return elm.options[elm.selectedIndex].value;
      +}
      +
      +function addSelectValue(form_obj, field_name, name, value) {
      +	var s = form_obj.elements[field_name];
      +	var o = new Option(name, value);
      +	s.options[s.options.length] = o;
      +}
      +
      +function addClassesToList(list_id, specific_option) {
      +	// Setup class droplist
      +	var styleSelectElm = document.getElementById(list_id);
      +	var styles = tinyMCEPopup.getParam('theme_advanced_styles', false);
      +	styles = tinyMCEPopup.getParam(specific_option, styles);
      +
      +	if (styles) {
      +		var stylesAr = styles.split(';');
      +
      +		for (var i=0; i<stylesAr.length; i++) {
      +			if (stylesAr != "") {
      +				var key, value;
      +
      +				key = stylesAr[i].split('=')[0];
      +				value = stylesAr[i].split('=')[1];
      +
      +				styleSelectElm.options[styleSelectElm.length] = new Option(key, value);
      +			}
      +		}
      +	} else {
      +		tinymce.each(tinyMCEPopup.editor.dom.getClasses(), function(o) {
      +			styleSelectElm.options[styleSelectElm.length] = new Option(o.title || o['class'], o['class']);
      +		});
      +	}
      +}
      +
      +function isVisible(element_id) {
      +	var elm = document.getElementById(element_id);
      +
      +	return elm && elm.style.display != "none";
      +}
      +
      +function convertRGBToHex(col) {
      +	var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi");
      +
      +	var rgb = col.replace(re, "$1,$2,$3").split(',');
      +	if (rgb.length == 3) {
      +		r = parseInt(rgb[0]).toString(16);
      +		g = parseInt(rgb[1]).toString(16);
      +		b = parseInt(rgb[2]).toString(16);
      +
      +		r = r.length == 1 ? '0' + r : r;
      +		g = g.length == 1 ? '0' + g : g;
      +		b = b.length == 1 ? '0' + b : b;
      +
      +		return "#" + r + g + b;
      +	}
      +
      +	return col;
      +}
      +
      +function convertHexToRGB(col) {
      +	if (col.indexOf('#') != -1) {
      +		col = col.replace(new RegExp('[^0-9A-F]', 'gi'), '');
      +
      +		r = parseInt(col.substring(0, 2), 16);
      +		g = parseInt(col.substring(2, 4), 16);
      +		b = parseInt(col.substring(4, 6), 16);
      +
      +		return "rgb(" + r + "," + g + "," + b + ")";
      +	}
      +
      +	return col;
      +}
      +
      +function trimSize(size) {
      +	return size.replace(/([0-9\.]+)px|(%|in|cm|mm|em|ex|pt|pc)/, '$1$2');
      +}
      +
      +function getCSSSize(size) {
      +	size = trimSize(size);
      +
      +	if (size == "")
      +		return "";
      +
      +	// Add px
      +	if (/^[0-9]+$/.test(size))
      +		size += 'px';
      +
      +	return size;
      +}
      +
      +function getStyle(elm, attrib, style) {
      +	var val = tinyMCEPopup.dom.getAttrib(elm, attrib);
      +
      +	if (val != '')
      +		return '' + val;
      +
      +	if (typeof(style) == 'undefined')
      +		style = attrib;
      +
      +	return tinyMCEPopup.dom.getStyle(elm, style);
      +}
      diff --git a/usr/plugins/TinyMCE/tiny_mce/utils/mctabs.js b/usr/plugins/TinyMCE/tiny_mce/utils/mctabs.js
      new file mode 100644
      index 00000000..284501ee
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/utils/mctabs.js
      @@ -0,0 +1,76 @@
      +/**
      + * $Id: mctabs.js 758 2008-03-30 13:53:29Z spocke $
      + *
      + * Moxiecode DHTML Tabs script.
      + *
      + * @author Moxiecode
      + * @copyright Copyright  2004-2008, Moxiecode Systems AB, All rights reserved.
      + */
      +
      +function MCTabs() {
      +	this.settings = [];
      +};
      +
      +MCTabs.prototype.init = function(settings) {
      +	this.settings = settings;
      +};
      +
      +MCTabs.prototype.getParam = function(name, default_value) {
      +	var value = null;
      +
      +	value = (typeof(this.settings[name]) == "undefined") ? default_value : this.settings[name];
      +
      +	// Fix bool values
      +	if (value == "true" || value == "false")
      +		return (value == "true");
      +
      +	return value;
      +};
      +
      +MCTabs.prototype.displayTab = function(tab_id, panel_id) {
      +	var panelElm, panelContainerElm, tabElm, tabContainerElm, selectionClass, nodes, i;
      +
      +	panelElm= document.getElementById(panel_id);
      +	panelContainerElm = panelElm ? panelElm.parentNode : null;
      +	tabElm = document.getElementById(tab_id);
      +	tabContainerElm = tabElm ? tabElm.parentNode : null;
      +	selectionClass = this.getParam('selection_class', 'current');
      +
      +	if (tabElm && tabContainerElm) {
      +		nodes = tabContainerElm.childNodes;
      +
      +		// Hide all other tabs
      +		for (i = 0; i < nodes.length; i++) {
      +			if (nodes[i].nodeName == "LI")
      +				nodes[i].className = '';
      +		}
      +
      +		// Show selected tab
      +		tabElm.className = 'current';
      +	}
      +
      +	if (panelElm && panelContainerElm) {
      +		nodes = panelContainerElm.childNodes;
      +
      +		// Hide all other panels
      +		for (i = 0; i < nodes.length; i++) {
      +			if (nodes[i].nodeName == "DIV")
      +				nodes[i].className = 'panel';
      +		}
      +
      +		// Show selected panel
      +		panelElm.className = 'current';
      +	}
      +};
      +
      +MCTabs.prototype.getAnchor = function() {
      +	var pos, url = document.location.href;
      +
      +	if ((pos = url.lastIndexOf('#')) != -1)
      +		return url.substring(pos + 1);
      +
      +	return "";
      +};
      +
      +// Global instance
      +var mcTabs = new MCTabs();
      diff --git a/usr/plugins/TinyMCE/tiny_mce/utils/validate.js b/usr/plugins/TinyMCE/tiny_mce/utils/validate.js
      new file mode 100644
      index 00000000..cde4c979
      --- /dev/null
      +++ b/usr/plugins/TinyMCE/tiny_mce/utils/validate.js
      @@ -0,0 +1,219 @@
      +/**
      + * $Id: validate.js 758 2008-03-30 13:53:29Z spocke $
      + *
      + * Various form validation methods.
      + *
      + * @author Moxiecode
      + * @copyright Copyright  2004-2008, Moxiecode Systems AB, All rights reserved.
      + */
      +
      +/**
      +	// String validation:
      +
      +	if (!Validator.isEmail('myemail'))
      +		alert('Invalid email.');
      +
      +	// Form validation:
      +
      +	var f = document.forms['myform'];
      +
      +	if (!Validator.isEmail(f.myemail))
      +		alert('Invalid email.');
      +*/
      +
      +var Validator = {
      +	isEmail : function(s) {
      +		return this.test(s, '^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$');
      +	},
      +
      +	isAbsUrl : function(s) {
      +		return this.test(s, '^(news|telnet|nttp|file|http|ftp|https)://[-A-Za-z0-9\\.]+\\/?.*$');
      +	},
      +
      +	isSize : function(s) {
      +		return this.test(s, '^[0-9]+(%|in|cm|mm|em|ex|pt|pc|px)?$');
      +	},
      +
      +	isId : function(s) {
      +		return this.test(s, '^[A-Za-z_]([A-Za-z0-9_])*$');
      +	},
      +
      +	isEmpty : function(s) {
      +		var nl, i;
      +
      +		if (s.nodeName == 'SELECT' && s.selectedIndex < 1)
      +			return true;
      +
      +		if (s.type == 'checkbox' && !s.checked)
      +			return true;
      +
      +		if (s.type == 'radio') {
      +			for (i=0, nl = s.form.elements; i<nl.length; i++) {
      +				if (nl[i].type == "radio" && nl[i].name == s.name && nl[i].checked)
      +					return false;
      +			}
      +
      +			return true;
      +		}
      +
      +		return new RegExp('^\\s*$').test(s.nodeType == 1 ? s.value : s);
      +	},
      +
      +	isNumber : function(s, d) {
      +		return !isNaN(s.nodeType == 1 ? s.value : s) && (!d || !this.test(s, '^-?[0-9]*\\.[0-9]*$'));
      +	},
      +
      +	test : function(s, p) {
      +		s = s.nodeType == 1 ? s.value : s;
      +
      +		return s == '' || new RegExp(p).test(s);
      +	}
      +};
      +
      +var AutoValidator = {
      +	settings : {
      +		id_cls : 'id',
      +		int_cls : 'int',
      +		url_cls : 'url',
      +		number_cls : 'number',
      +		email_cls : 'email',
      +		size_cls : 'size',
      +		required_cls : 'required',
      +		invalid_cls : 'invalid',
      +		min_cls : 'min',
      +		max_cls : 'max'
      +	},
      +
      +	init : function(s) {
      +		var n;
      +
      +		for (n in s)
      +			this.settings[n] = s[n];
      +	},
      +
      +	validate : function(f) {
      +		var i, nl, s = this.settings, c = 0;
      +
      +		nl = this.tags(f, 'label');
      +		for (i=0; i<nl.length; i++)
      +			this.removeClass(nl[i], s.invalid_cls);
      +
      +		c += this.validateElms(f, 'input');
      +		c += this.validateElms(f, 'select');
      +		c += this.validateElms(f, 'textarea');
      +
      +		return c == 3;
      +	},
      +
      +	invalidate : function(n) {
      +		this.mark(n.form, n);
      +	},
      +
      +	reset : function(e) {
      +		var t = ['label', 'input', 'select', 'textarea'];
      +		var i, j, nl, s = this.settings;
      +
      +		if (e == null)
      +			return;
      +
      +		for (i=0; i<t.length; i++) {
      +			nl = this.tags(e.form ? e.form : e, t[i]);
      +			for (j=0; j<nl.length; j++)
      +				this.removeClass(nl[j], s.invalid_cls);
      +		}
      +	},
      +
      +	validateElms : function(f, e) {
      +		var nl, i, n, s = this.settings, st = true, va = Validator, v;
      +
      +		nl = this.tags(f, e);
      +		for (i=0; i<nl.length; i++) {
      +			n = nl[i];
      +
      +			this.removeClass(n, s.invalid_cls);
      +
      +			if (this.hasClass(n, s.required_cls) && va.isEmpty(n))
      +				st = this.mark(f, n);
      +
      +			if (this.hasClass(n, s.number_cls) && !va.isNumber(n))
      +				st = this.mark(f, n);
      +
      +			if (this.hasClass(n, s.int_cls) && !va.isNumber(n, true))
      +				st = this.mark(f, n);
      +
      +			if (this.hasClass(n, s.url_cls) && !va.isAbsUrl(n))
      +				st = this.mark(f, n);
      +
      +			if (this.hasClass(n, s.email_cls) && !va.isEmail(n))
      +				st = this.mark(f, n);
      +
      +			if (this.hasClass(n, s.size_cls) && !va.isSize(n))
      +				st = this.mark(f, n);
      +
      +			if (this.hasClass(n, s.id_cls) && !va.isId(n))
      +				st = this.mark(f, n);
      +
      +			if (this.hasClass(n, s.min_cls, true)) {
      +				v = this.getNum(n, s.min_cls);
      +
      +				if (isNaN(v) || parseInt(n.value) < parseInt(v))
      +					st = this.mark(f, n);
      +			}
      +
      +			if (this.hasClass(n, s.max_cls, true)) {
      +				v = this.getNum(n, s.max_cls);
      +
      +				if (isNaN(v) || parseInt(n.value) > parseInt(v))
      +					st = this.mark(f, n);
      +			}
      +		}
      +
      +		return st;
      +	},
      +
      +	hasClass : function(n, c, d) {
      +		return new RegExp('\\b' + c + (d ? '[0-9]+' : '') + '\\b', 'g').test(n.className);
      +	},
      +
      +	getNum : function(n, c) {
      +		c = n.className.match(new RegExp('\\b' + c + '([0-9]+)\\b', 'g'))[0];
      +		c = c.replace(/[^0-9]/g, '');
      +
      +		return c;
      +	},
      +
      +	addClass : function(n, c, b) {
      +		var o = this.removeClass(n, c);
      +		n.className = b ? c + (o != '' ? (' ' + o) : '') : (o != '' ? (o + ' ') : '') + c;
      +	},
      +
      +	removeClass : function(n, c) {
      +		c = n.className.replace(new RegExp("(^|\\s+)" + c + "(\\s+|$)"), ' ');
      +		return n.className = c != ' ' ? c : '';
      +	},
      +
      +	tags : function(f, s) {
      +		return f.getElementsByTagName(s);
      +	},
      +
      +	mark : function(f, n) {
      +		var s = this.settings;
      +
      +		this.addClass(n, s.invalid_cls);
      +		this.markLabels(f, n, s.invalid_cls);
      +
      +		return false;
      +	},
      +
      +	markLabels : function(f, n, ic) {
      +		var nl, i;
      +
      +		nl = this.tags(f, "label");
      +		for (i=0; i<nl.length; i++) {
      +			if (nl[i].getAttribute("for") == n.id || nl[i].htmlFor == n.id)
      +				this.addClass(nl[i], ic);
      +		}
      +
      +		return null;
      +	}
      +};
      diff --git a/usr/plugins/WordpressToTypecho/Action.php b/usr/plugins/WordpressToTypecho/Action.php
      new file mode 100644
      index 00000000..df8a0d1f
      --- /dev/null
      +++ b/usr/plugins/WordpressToTypecho/Action.php
      @@ -0,0 +1,215 @@
      +<?php
      +
      +class WordpressToTypecho_Action extends Typecho_Widget implements Widget_Interface_Do
      +{
      +    public function doImport()
      +    {
      +        $options = $this->widget('Widget_Options');
      +        $dbConfig = $options->plugin('WordpressToTypecho');
      +
      +        /** 初始化一个db */
      +        if (Typecho_Db_Adapter_Mysql::isAvailable()) {
      +            $db = new Typecho_Db('Mysql', $dbConfig->prefix);
      +        } else {
      +            $db = new Typecho_Db('Pdo_Mysql', $dbConfig->prefix);
      +        }
      +        
      +        /** 只读即可 */
      +        $db->addServer(array (
      +          'host' => $dbConfig->host,
      +          'user' => $dbConfig->user,
      +          'password' => $dbConfig->password,
      +          'charset' => 'utf8',
      +          'port' => $dbConfig->port,
      +          'database' => $dbConfig->database
      +        ), Typecho_Db::READ);
      +        
      +        /** 删除当前内容 */
      +        $masterDb = Typecho_Db::get();
      +        $this->widget('Widget_Abstract_Contents')->to($contents)->delete($masterDb->sql()->where('1 = 1'));
      +        $this->widget('Widget_Abstract_Comments')->to($comments)->delete($masterDb->sql()->where('1 = 1'));
      +        $this->widget('Widget_Abstract_Metas')->to($metas)->delete($masterDb->sql()->where('1 = 1'));
      +        $this->widget('Widget_Contents_Post_Edit')->to($edit);
      +        $masterDb->query($masterDb->delete('table.relationships')->where('1 = 1'));
      +        $userId = $this->widget('Widget_User')->uid;
      +        
      +        /** 获取时区偏移 */
      +        $gmtOffset = idate('Z');
      +        
      +        /** 转换全局变量 */
      +		/** 
      +        $rows = $db->fetchAll($db->select()->from('table.statics'));
      +        $static = array();
      +        foreach ($rows as $row) {
      +            $static[$row['static_name']] = $row['static_value'];
      +        }*/
      +        
      +        /** 转换文件 */
      +        /**$files = $db->fetchAll($db->select()->from('table.files'));
      +        if (!is_dir(__TYPECHO_ROOT_DIR__ . '/usr/uploads/')) {
      +            mkdir(__TYPECHO_ROOT_DIR__ . '/usr/uploads/', 0766);
      +        }
      +        
      +        $pattern = array();
      +        $replace = array();
      +        foreach ($files as $file) {
      +            $path = __TYPECHO_ROOT_DIR__ . '/data/upload/' . substr($file['file_guid'], 0, 2) . '/' .
      +            substr($file['file_guid'], 2, 2) . '/' . $file['file_guid'];
      +            
      +            if (is_file($path)) {
      +                $file['file_time'] = empty($file['file_time']) ? $options->gmtTime : $file['file_time'];
      +                $year = idate('Y', $file['file_time']);
      +                $month = idate('m', $file['file_time']);
      +                $day = idate('d', $file['file_time']);
      +                
      +                if (!is_dir(__TYPECHO_ROOT_DIR__ . "/usr/uploads/{$year}")) {
      +                    mkdir(__TYPECHO_ROOT_DIR__ . "/usr/uploads/{$year}", 0766);
      +                }
      +                
      +                if (!is_dir(__TYPECHO_ROOT_DIR__ . "/usr/uploads/{$year}/{$month}")) {
      +                    mkdir(__TYPECHO_ROOT_DIR__ . "/usr/uploads/{$year}/{$month}", 0766);
      +                }
      +                
      +                if (!is_dir(__TYPECHO_ROOT_DIR__ . "/usr/uploads/{$year}/{$month}/{$day}")) {
      +                    mkdir(__TYPECHO_ROOT_DIR__ . "/usr/uploads/{$year}/{$month}/{$day}", 0766);
      +                }
      +                
      +                $parts = explode('.', $file['file_name']);
      +                $ext = array_pop($parts);
      +                copy($path, __TYPECHO_ROOT_DIR__ . "/usr/uploads/{$year}/{$month}/{$day}/{$file['file_id']}.{$ext}");
      +                
      +                $new = Typecho_Common::url("/usr/uploads/{$year}/{$month}/{$day}/{$file['file_id']}.{$ext}", $options->siteUrl);
      +                $old = Typecho_Common::url("/res/{$file['file_id']}/{$file['file_name']}", $static['siteurl'] . '/index.php');
      +                $pattern[] = '/' . str_replace('\/index\.php', '(\/index\.php)?', preg_quote($old, '/')) . '/is';
      +                $replace[] = $new;
      +            }
      +        }
      +        */
      +        /** 转换评论 */
      +        $i = 1;
      +        
      +        while (true) {
      +            $result = $db->query($db->select()->from('table.comments')
      +            ->order('comment_ID', Typecho_Db::SORT_ASC)->page($i, 100));
      +            $j = 0;
      +            
      +            while ($row = $db->fetchRow($result)) {
      +                $status = $row['comment_approved'];
      +                if ('spam' == $row['comment_approved']) {
      +                    $status = 'spam';
      +                } else if ('0' == $row['comment_approved']) {
      +                    $status = 'waiting';
      +                } else {
      +                    $status = 'approved';
      +                }
      +                
      +                $row['comment_content'] = preg_replace(
      +                array("/\s*<p>/is", "/\s*<\/p>\s*/is", "/\s*<br\s*\/>\s*/is",
      +                "/\s*<(div|blockquote|pre|table|ol|ul)>/is", "/<\/(div|blockquote|pre|table|ol|ul)>\s*/is"),
      +                array('', "\n\n", "\n", "\n\n<\\1>", "</\\1>\n\n"), 
      +                $row['comment_content']);
      +            
      +                $comments->insert(array(
      +                    'coid'      =>  $row['comment_ID'],
      +                    'cid'       =>  $row['comment_post_ID'],
      +                    'created'   =>  strtotime($row['comment_date_gmt']) + $gmtOffset,
      +                    'author'    =>  $row['comment_author'],
      +                    'authorId'  =>  $row['user_id'],
      +                    'ownerId'   =>  1,
      +                    'mail'      =>  $row['comment_author_email'],
      +                    'url'       =>  $row['comment_author_url'],
      +                    'ip'        =>  $row['comment_author_IP'],
      +                    'agent'     =>  $row['comment_agent'],
      +                    'text'      =>  $row['comment_content'],
      +                    'type'      =>  empty($row['comment_type']) ? 'comment' : $row['comment_type'],
      +                    'status'    =>  $status,
      +                    'parent'    =>  $row['comment_parent']
      +                ));
      +                $j ++;
      +                unset($row);
      +            }
      +            
      +            if ($j < 100) {
      +                break;
      +            }
      +            
      +            $i ++;
      +            unset($result);
      +        }
      +		
      +		/** 转换Wordpress的term_taxonomy表 */
      +		$terms = $db->fetchAll($db->select()->from('table.term_taxonomy')
      +        ->join('table.terms', 'table.term_taxonomy.term_id = table.terms.term_id')
      +        ->where('taxonomy = ? OR taxonomy = ?', 'category', 'post_tag'));
      +        foreach ($terms as $term) {
      +            $metas->insert(array(
      +                'mid'           =>  $term['term_taxonomy_id'],
      +                'name'          =>  $term['name'],
      +                'slug'          =>  'post_tag' == $term['taxonomy'] ? Typecho_Common::slugName($term['name']) : $term['slug'],
      +                'type'      	=>  'post_tag' == $term['taxonomy'] ? 'tag' : 'category',
      +                'description'   =>  $term['description'],
      +                'count'      	=>  $term['count'],
      +            ));
      +            
      +            /** 转换关系表 */
      +            $relationships = $db->fetchAll($db->select()->from('table.term_relationships')
      +            ->where('term_taxonomy_id = ?', $term['term_taxonomy_id']));
      +            foreach ($relationships as $relationship) {
      +                $masterDb->query($masterDb->insert('table.relationships')->rows(array(
      +                    'cid'      	=>  $relationship['object_id'],
      +                    'mid'   	=>  $relationship['term_taxonomy_id'],
      +                )));
      +            }
      +        }
      +		
      +        /** 转换内容 */
      +        $i = 1;
      +        
      +        while (true) {
      +            $result = $db->query($db->select()->from('table.posts')
      +            ->where('post_type = ? OR post_type = ?', 'post', 'page')
      +            ->order('ID', Typecho_Db::SORT_ASC)->page($i, 100));
      +            $j = 0;
      +            
      +            while ($row = $db->fetchRow($result)) {
      +                $contents->insert(array(
      +                    'cid'           =>  $row['ID'],
      +                    'title'         =>  $row['post_title'],
      +                    'slug'          =>  Typecho_Common::slugName(urldecode($row['post_name']), $row['ID'], 128),
      +                    'created'       =>  strtotime($row['post_date_gmt']) + $gmtOffset,
      +                    'modified'      =>  strtotime($row['post_modified_gmt']) + $gmtOffset,
      +                    'text'          =>  $row['post_content'],
      +                    'order'         =>  $row['menu_order'],
      +                    'authorId'      =>  $row['post_author'],
      +                    'template'      =>  NULL,
      +                    'type'          =>  'page' == $row['post_type'] ? 'page' : 'post',
      +                    'status'        =>  'publish' == $row['post_status'] ? 'publish' : 'draft',
      +                    'password'      =>  $row['post_password'],
      +                    'commentsNum'   =>  $row['comment_count'],
      +                    'allowComment'  =>  'open' == $row['comment_status']? '1' : '0',
      +                    'allowFeed'     =>  '1',
      +                    'allowPing'     =>  'open' == $row['ping_status']? '1' : '0',
      +                ));
      +                
      +                $j ++;
      +                unset($row);
      +            }
      +            
      +            if ($j < 100) {
      +                break;
      +            }
      +            
      +            $i ++;
      +            unset($result);
      +        }
      +        
      +        $this->widget('Widget_Notice')->set(_t("数据已经转换完成"), NULL, 'success');
      +        $this->response->goBack();
      +    }
      +
      +    public function action()
      +    {
      +        $this->widget('Widget_User')->pass('administrator');
      +        $this->on($this->request->isPost())->doImport();
      +    }
      +}
      diff --git a/usr/plugins/WordpressToTypecho/Plugin.php b/usr/plugins/WordpressToTypecho/Plugin.php
      new file mode 100644
      index 00000000..44879824
      --- /dev/null
      +++ b/usr/plugins/WordpressToTypecho/Plugin.php
      @@ -0,0 +1,95 @@
      +<?php
      +/**
      + * 将 Wordpress 数据库中的数据转换为 Typecho
      + * 
      + * @package Wordpress to Typecho
      + * @author qining
      + * @version 1.0.3 Beta
      + * @link http://typecho.org
      + */
      +class WordpressToTypecho_Plugin implements Typecho_Plugin_Interface
      +{
      +    /**
      +     * 激活插件方法,如果激活失败,直接抛出异常
      +     * 
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function activate()
      +    {
      +        if (!Typecho_Db_Adapter_Mysql::isAvailable() && !Typecho_Db_Adapter_Pdo_Mysql::isAvailable()) {
      +            throw new Typecho_Plugin_Exception(_t('没有找到任何可用的 Mysql 适配器'));
      +        }
      +        
      +        /**$error = NULL;
      +        if ((!is_dir(__TYPECHO_ROOT_DIR__ . '/usr/uploads/') || !is_writeable(__TYPECHO_ROOT_DIR__ . '/usr/uploads/'))
      +        && !is_writeable(__TYPECHO_ROOT_DIR__ . '/usr/')) {
      +            $error = '<br /><strong>' . _t('%s 目录不可写, 可能会导致附件转换不成功', __TYPECHO_ROOT_DIR__ . '/usr/uploads/') . '</strong>';
      +        }
      +		*/
      +    
      +        Helper::addPanel(1, 'WordpressToTypecho/panel.php', _t('从Wordpress导入数据'), _t('从Wordpress导入数据'), 'administrator');
      +        Helper::addAction('wordpress-to-typecho', 'WordpressToTypecho_Action');
      +        return _t('请在插件设置里设置 Wordpress 所在的数据库参数') . $error;
      +    }
      +    
      +    /**
      +     * 禁用插件方法,如果禁用失败,直接抛出异常
      +     * 
      +     * @static
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function deactivate()
      +    {
      +        Helper::removeAction('wordpress-to-typecho');
      +        Helper::removePanel(1, 'WordpressToTypecho/panel.php');
      +    }
      +    
      +    /**
      +     * 获取插件配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form 配置面板
      +     * @return void
      +     */
      +    public static function config(Typecho_Widget_Helper_Form $form)
      +    {
      +        $host = new Typecho_Widget_Helper_Form_Element_Text('host', NULL, 'localhost',
      +        _t('数据库地址'), _t('请填写 Wordpress 所在的数据库地址'));
      +        $form->addInput($host->addRule('required', _t('必须填写一个数据库地址')));
      +        
      +        $port = new Typecho_Widget_Helper_Form_Element_Text('port', NULL, '3306',
      +        _t('数据库端口'), _t('Wordpress 所在的数据库服务器端口'));
      +        $port->input->setAttribute('class', 'mini');
      +        $form->addInput($port->addRule('required', _t('必须填写数据库端口'))
      +        ->addRule('isInteger', _t('端口号必须是纯数字')));
      +        
      +        $user = new Typecho_Widget_Helper_Form_Element_Text('user', NULL, 'root',
      +        _t('数据库用户名'));
      +        $form->addInput($user->addRule('required', _t('必须填写数据库用户名')));
      +        
      +        $password = new Typecho_Widget_Helper_Form_Element_Password('password', NULL, NULL,
      +        _t('数据库密码'));
      +        $form->addInput($password);
      +        
      +        $database = new Typecho_Widget_Helper_Form_Element_Text('database', NULL, 'Wordpress',
      +        _t('数据库名称'), _t('Wordpress 所在的数据库名称'));
      +        $form->addInput($database->addRule('required', _t('您必须填写数据库名称')));
      +    
      +        $prefix = new Typecho_Widget_Helper_Form_Element_Text('prefix', NULL, 'wp_',
      +        _t('表前缀'), _t('所有 Wordpress 数据表的前缀'));
      +        $form->addInput($prefix->addRule('required', _t('您必须填写表前缀')));
      +    }
      +    
      +    /**
      +     * 个人用户的配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form
      +     * @return void
      +     */
      +    public static function personalConfig(Typecho_Widget_Helper_Form $form){}
      +}
      diff --git a/usr/plugins/WordpressToTypecho/panel.php b/usr/plugins/WordpressToTypecho/panel.php
      new file mode 100644
      index 00000000..e49d7f87
      --- /dev/null
      +++ b/usr/plugins/WordpressToTypecho/panel.php
      @@ -0,0 +1,73 @@
      +<?php
      +if (!defined('__TYPECHO_ROOT_DIR__')) {
      +    exit;
      +}
      +
      +$success = true;
      +try {
      +    $dbConfig = $options->plugin('WordpressToTypecho');
      +
      +    /** 初始化一个db */
      +    if (Typecho_Db_Adapter_Mysql::isAvailable()) {
      +        $wordpressDb = new Typecho_Db('Mysql', $dbConfig->prefix);
      +    } else {
      +        $wordpressDb = new Typecho_Db('Pdo_Mysql', $dbConfig->prefix);
      +    }
      +
      +    /** 只读即可 */
      +    $wordpressDb->addServer(array (
      +      'host' => $dbConfig->host,
      +      'user' => $dbConfig->user,
      +      'password' => $dbConfig->password,
      +      'charset' => 'utf8',
      +      'port' => $dbConfig->port,
      +      'database' => $dbConfig->database
      +    ), Typecho_Db::READ);
      +    
      +    $rows = $wordpressDb->fetchAll($wordpressDb->select()->from('table.options'));
      +    $static = array();
      +    foreach ($rows as $row) {
      +        $static[$row['option_name']] = $row['option_value'];
      +    }
      +} catch (Typecho_Db_Exception $e) {
      +    $success = false;
      +}
      +
      +include 'header.php';
      +include 'menu.php';
      +?>
      +<div class="main">
      +    <div class="body body-950">
      +        <?php include 'page-title.php'; ?>
      +        <div class="container typecho-page-main">
      +            <div class="column-22 start-02">
      +                <?php if ($success): ?>
      +                <div class="message notice typecho-radius-topleft typecho-radius-topright typecho-radius-bottomleft typecho-radius-bottomright">
      +                <form action="<?php $options->index('/action/wordpress-to-typecho'); ?>" method="post">
      +                    <?php _e('我们检测到了 Wordpress 系统信息, 点击下方的按钮开始数据转换, 数据转换可能会耗时较长.'); ?>
      +                    <blockquote>
      +                    <ul>
      +                        <li><strong><?php echo $static['blogname']; ?></strong></li>
      +                        <li><strong><?php echo $static['blogdescription']; ?></strong></li>
      +                        <li><strong><?php echo $static['siteurl']; ?></strong></li>
      +                    </ul>
      +                    </blockquote>
      +                    <br />
      +                    <p><button type="submit"><?php _e('开始数据转换 &raquo;'); ?></button></p>
      +                </form>
      +                </div>
      +                <?php else: ?>
      +                <div class="message error">
      +                    <?php _e('我们在连接到 Wordpress 的数据库时发生了错误, 请<a href="%s">重新设置</a>你的信息.', 
      +                    Typecho_Common::url('options-plugin.php?config=WordpressToTypecho', $options->adminUrl)); ?>
      +                </div>
      +                <?php endif; ?>
      +            </div>
      +        </div>
      +    </div>
      +</div>
      +<?php
      +include 'copyright.php';
      +include 'common-js.php';
      +include 'footer.php';
      +?>
      diff --git a/usr/plugins/ZenCoding/Plugin.php b/usr/plugins/ZenCoding/Plugin.php
      new file mode 100644
      index 00000000..ef2522ce
      --- /dev/null
      +++ b/usr/plugins/ZenCoding/Plugin.php
      @@ -0,0 +1,88 @@
      +<?php
      +/**
      + * Set of plugins for HTML and CSS hi-speed coding
      + * 
      + * @package Zen Coding
      + * @author qining
      + * @version 1.0.0
      + * @link http://code.google.com/p/zen-coding/
      + */
      +class ZenCoding_Plugin implements Typecho_Plugin_Interface
      +{
      +    /**
      +     * 激活插件方法,如果激活失败,直接抛出异常
      +     * 
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function activate()
      +    {
      +        Typecho_Plugin::factory('admin/write-post.php')->bottom = array('ZenCoding_Plugin', 'writeBottom');
      +        Typecho_Plugin::factory('admin/write-page.php')->bottom = array('ZenCoding_Plugin', 'writeBottom');
      +        Typecho_Plugin::factory('admin/theme-editor.php')->bottom = array('ZenCoding_Plugin', 'themeBottom');
      +    }
      +    
      +    /**
      +     * 禁用插件方法,如果禁用失败,直接抛出异常
      +     * 
      +     * @static
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function deactivate()
      +    {}
      +    
      +    /**
      +     * 获取插件配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form 配置面板
      +     * @return void
      +     */
      +    public static function config(Typecho_Widget_Helper_Form $form){}
      +    
      +    /**
      +     * 个人用户的配置面板
      +     * 
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form
      +     * @return void
      +     */
      +    public static function personalConfig(Typecho_Widget_Helper_Form $form){}
      +    
      +    /**
      +     * 插件实现方法
      +     * 
      +     * @access public
      +     * @return void
      +     */
      +    public static function themeBottom($files)
      +    {
      +        $options = Helper::options();
      +        $js = Typecho_Common::url('ZenCoding/zen_textarea.js', $options->pluginUrl);
      +        echo "<script type=\"text/javascript\" src=\"{$js}\"></script>
      +<script type=\"text/javascript\">
      +    $(document).getElement('#content').addClass('zc-use_tab-true zc-syntax-xsl zc-profile-xml');
      +    zen_textarea.setup({pretty_break: true});
      +</script>";
      +    }
      +    
      +    /**
      +     * 插件实现方法
      +     * 
      +     * @access public
      +     * @return void
      +     */
      +    public static function writeBottom($post)
      +    {
      +        $options = Helper::options();
      +        $js = Typecho_Common::url('ZenCoding/zen_textarea.js', $options->pluginUrl);
      +        echo "<script type=\"text/javascript\" src=\"{$js}\"></script>
      +<script type=\"text/javascript\">
      +    $(document).getElement('#text').addClass('zc-use_tab-true zc-syntax-xsl zc-profile-xml');
      +    zen_textarea.setup({pretty_break: true});
      +</script>";
      +    }
      +}
      diff --git a/usr/plugins/ZenCoding/zen_textarea.js b/usr/plugins/ZenCoding/zen_textarea.js
      new file mode 100644
      index 00000000..737ce80e
      --- /dev/null
      +++ b/usr/plugins/ZenCoding/zen_textarea.js
      @@ -0,0 +1,3113 @@
      +(function(){
      +/**
      + * Zen Coding settings
      + * @author Sergey Chikuyonok (serge.che@gmail.com)
      + * @link http://chikuyonok.ru
      + */
      +var zen_settings = {
      +	/** 
      +	 * Variables that can be placed inside snippets or abbreviations as ${variable}
      +	 * ${child} variable is reserved, don't use it 
      +	 */
      +	'variables': {
      +		'lang': 'en',
      +		'locale': 'en-US',
      +		'charset': 'UTF-8',
      +		'profile': 'xhtml',
      +		
      +		/** Inner element indentation */
      +		'indentation': '\t'     // TODO take from Aptana settings
      +	},
      +	
      +	'css': {
      +		'snippets': {
      +			"@i": "@import url(|);",
      +			"@m": "@media print {\n\t|\n}",
      +			"@f": "@font-face {\n\tfont-family:|;\n\tsrc:url(|);\n}",
      +			"!": "!important",
      +			"pos": "position:|;",
      +			"pos:s": "position:static;",
      +			"pos:a": "position:absolute;",
      +			"pos:r": "position:relative;",
      +			"pos:f": "position:fixed;",
      +			"t": "top:|;",
      +			"t:a": "top:auto;",
      +			"r": "right:|;",
      +			"r:a": "right:auto;",
      +			"b": "bottom:|;",
      +			"b:a": "bottom:auto;",
      +			"l": "left:|;",
      +			"l:a": "left:auto;",
      +			"z": "z-index:|;",
      +			"z:a": "z-index:auto;",
      +			"fl": "float:|;",
      +			"fl:n": "float:none;",
      +			"fl:l": "float:left;",
      +			"fl:r": "float:right;",
      +			"cl": "clear:|;",
      +			"cl:n": "clear:none;",
      +			"cl:l": "clear:left;",
      +			"cl:r": "clear:right;",
      +			"cl:b": "clear:both;",
      +			"d": "display:|;",
      +			"d:n": "display:none;",
      +			"d:b": "display:block;",
      +			"d:ib": "display:inline;",
      +			"d:li": "display:list-item;",
      +			"d:ri": "display:run-in;",
      +			"d:cp": "display:compact;",
      +			"d:tb": "display:table;",
      +			"d:itb": "display:inline-table;",
      +			"d:tbcp": "display:table-caption;",
      +			"d:tbcl": "display:table-column;",
      +			"d:tbclg": "display:table-column-group;",
      +			"d:tbhg": "display:table-header-group;",
      +			"d:tbfg": "display:table-footer-group;",
      +			"d:tbr": "display:table-row;",
      +			"d:tbrg": "display:table-row-group;",
      +			"d:tbc": "display:table-cell;",
      +			"d:rb": "display:ruby;",
      +			"d:rbb": "display:ruby-base;",
      +			"d:rbbg": "display:ruby-base-group;",
      +			"d:rbt": "display:ruby-text;",
      +			"d:rbtg": "display:ruby-text-group;",
      +			"v": "visibility:|;",
      +			"v:v": "visibility:visible;",
      +			"v:h": "visibility:hidden;",
      +			"v:c": "visibility:collapse;",
      +			"ov": "overflow:|;",
      +			"ov:v": "overflow:visible;",
      +			"ov:h": "overflow:hidden;",
      +			"ov:s": "overflow:scroll;",
      +			"ov:a": "overflow:auto;",
      +			"ovx": "overflow-x:|;",
      +			"ovx:v": "overflow-x:visible;",
      +			"ovx:h": "overflow-x:hidden;",
      +			"ovx:s": "overflow-x:scroll;",
      +			"ovx:a": "overflow-x:auto;",
      +			"ovy": "overflow-y:|;",
      +			"ovy:v": "overflow-y:visible;",
      +			"ovy:h": "overflow-y:hidden;",
      +			"ovy:s": "overflow-y:scroll;",
      +			"ovy:a": "overflow-y:auto;",
      +			"ovs": "overflow-style:|;",
      +			"ovs:a": "overflow-style:auto;",
      +			"ovs:s": "overflow-style:scrollbar;",
      +			"ovs:p": "overflow-style:panner;",
      +			"ovs:m": "overflow-style:move;",
      +			"ovs:mq": "overflow-style:marquee;",
      +			"zoo": "zoom:1;",
      +			"cp": "clip:|;",
      +			"cp:a": "clip:auto;",
      +			"cp:r": "clip:rect(|);",
      +			"bxz": "box-sizing:|;",
      +			"bxz:cb": "box-sizing:content-box;",
      +			"bxz:bb": "box-sizing:border-box;",
      +			"bxsh": "box-shadow:|;",
      +			"bxsh:n": "box-shadow:none;",
      +			"bxsh:w": "-webkit-box-shadow:0 0 0 #000;",
      +			"bxsh:m": "-moz-box-shadow:0 0 0 0 #000;",
      +			"m": "margin:|;",
      +			"m:a": "margin:auto;",
      +			"m:0": "margin:0;",
      +			"m:2": "margin:0 0;",
      +			"m:3": "margin:0 0 0;",
      +			"m:4": "margin:0 0 0 0;",
      +			"mt": "margin-top:|;",
      +			"mt:a": "margin-top:auto;",
      +			"mr": "margin-right:|;",
      +			"mr:a": "margin-right:auto;",
      +			"mb": "margin-bottom:|;",
      +			"mb:a": "margin-bottom:auto;",
      +			"ml": "margin-left:|;",
      +			"ml:a": "margin-left:auto;",
      +			"p": "padding:|;",
      +			"p:0": "padding:0;",
      +			"p:2": "padding:0 0;",
      +			"p:3": "padding:0 0 0;",
      +			"p:4": "padding:0 0 0 0;",
      +			"pt": "padding-top:|;",
      +			"pr": "padding-right:|;",
      +			"pb": "padding-bottom:|;",
      +			"pl": "padding-left:|;",
      +			"w": "width:|;",
      +			"w:a": "width:auto;",
      +			"h": "height:|;",
      +			"h:a": "height:auto;",
      +			"maw": "max-width:|;",
      +			"maw:n": "max-width:none;",
      +			"mah": "max-height:|;",
      +			"mah:n": "max-height:none;",
      +			"miw": "min-width:|;",
      +			"mih": "min-height:|;",
      +			"o": "outline:|;",
      +			"o:n": "outline:none;",
      +			"oo": "outline-offset:|;",
      +			"ow": "outline-width:|;",
      +			"os": "outline-style:|;",
      +			"oc": "outline-color:#000;",
      +			"oc:i": "outline-color:invert;",
      +			"bd": "border:|;",
      +			"bd+": "border:1px solid #000;",
      +			"bd:n": "border:none;",
      +			"bdbk": "border-break:|;",
      +			"bdbk:c": "border-break:close;",
      +			"bdcl": "border-collapse:|;",
      +			"bdcl:c": "border-collapse:collapse;",
      +			"bdcl:s": "border-collapse:separate;",
      +			"bdc": "border-color:#000;",
      +			"bdi": "border-image:url(|);",
      +			"bdi:n": "border-image:none;",
      +			"bdi:w": "-webkit-border-image:url(|) 0 0 0 0 stretch stretch;",
      +			"bdi:m": "-moz-border-image:url(|) 0 0 0 0 stretch stretch;",
      +			"bdti": "border-top-image:url(|);",
      +			"bdti:n": "border-top-image:none;",
      +			"bdri": "border-right-image:url(|);",
      +			"bdri:n": "border-right-image:none;",
      +			"bdbi": "border-bottom-image:url(|);",
      +			"bdbi:n": "border-bottom-image:none;",
      +			"bdli": "border-left-image:url(|);",
      +			"bdli:n": "border-left-image:none;",
      +			"bdci": "border-corner-image:url(|);",
      +			"bdci:n": "border-corner-image:none;",
      +			"bdci:c": "border-corner-image:continue;",
      +			"bdtli": "border-top-left-image:url(|);",
      +			"bdtli:n": "border-top-left-image:none;",
      +			"bdtli:c": "border-top-left-image:continue;",
      +			"bdtri": "border-top-right-image:url(|);",
      +			"bdtri:n": "border-top-right-image:none;",
      +			"bdtri:c": "border-top-right-image:continue;",
      +			"bdbri": "border-bottom-right-image:url(|);",
      +			"bdbri:n": "border-bottom-right-image:none;",
      +			"bdbri:c": "border-bottom-right-image:continue;",
      +			"bdbli": "border-bottom-left-image:url(|);",
      +			"bdbli:n": "border-bottom-left-image:none;",
      +			"bdbli:c": "border-bottom-left-image:continue;",
      +			"bdf": "border-fit:|;",
      +			"bdf:c": "border-fit:clip;",
      +			"bdf:r": "border-fit:repeat;",
      +			"bdf:sc": "border-fit:scale;",
      +			"bdf:st": "border-fit:stretch;",
      +			"bdf:ow": "border-fit:overwrite;",
      +			"bdf:of": "border-fit:overflow;",
      +			"bdf:sp": "border-fit:space;",
      +			"bdl": "border-length:|;",
      +			"bdl:a": "border-length:auto;",
      +			"bdsp": "border-spacing:|;",
      +			"bds": "border-style:|;",
      +			"bds:n": "border-style:none;",
      +			"bds:h": "border-style:hidden;",
      +			"bds:dt": "border-style:dotted;",
      +			"bds:ds": "border-style:dashed;",
      +			"bds:s": "border-style:solid;",
      +			"bds:db": "border-style:double;",
      +			"bds:dtds": "border-style:dot-dash;",
      +			"bds:dtdtds": "border-style:dot-dot-dash;",
      +			"bds:w": "border-style:wave;",
      +			"bds:g": "border-style:groove;",
      +			"bds:r": "border-style:ridge;",
      +			"bds:i": "border-style:inset;",
      +			"bds:o": "border-style:outset;",
      +			"bdw": "border-width:|;",
      +			"bdt": "border-top:|;",
      +			"bdt+": "border-top:1px solid #000;",
      +			"bdt:n": "border-top:none;",
      +			"bdtw": "border-top-width:|;",
      +			"bdts": "border-top-style:|;",
      +			"bdts:n": "border-top-style:none;",
      +			"bdtc": "border-top-color:#000;",
      +			"bdr": "border-right:|;",
      +			"bdr+": "border-right:1px solid #000;",
      +			"bdr:n": "border-right:none;",
      +			"bdrw": "border-right-width:|;",
      +			"bdrs": "border-right-style:|;",
      +			"bdrs:n": "border-right-style:none;",
      +			"bdrc": "border-right-color:#000;",
      +			"bdb": "border-bottom:|;",
      +			"bdb+": "border-bottom:1px solid #000;",
      +			"bdb:n": "border-bottom:none;",
      +			"bdbw": "border-bottom-width:|;",
      +			"bdbs": "border-bottom-style:|;",
      +			"bdbs:n": "border-bottom-style:none;",
      +			"bdbc": "border-bottom-color:#000;",
      +			"bdl": "border-left:|;",
      +			"bdl+": "border-left:1px solid #000;",
      +			"bdl:n": "border-left:none;",
      +			"bdlw": "border-left-width:|;",
      +			"bdls": "border-left-style:|;",
      +			"bdls:n": "border-left-style:none;",
      +			"bdlc": "border-left-color:#000;",
      +			"bdrs": "border-radius:|;",
      +			"bdtrrs": "border-top-right-radius:|;",
      +			"bdtlrs": "border-top-left-radius:|;",
      +			"bdbrrs": "border-bottom-right-radius:|;",
      +			"bdblrs": "border-bottom-left-radius:|;",
      +			"bg": "background:|;",
      +			"bg+": "background:#FFF url(|) 0 0 no-repeat;",
      +			"bg:n": "background:none;",
      +			"bg:ie": "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='|x.png');",
      +			"bgc": "background-color:#FFF;",
      +			"bgi": "background-image:url(|);",
      +			"bgi:n": "background-image:none;",
      +			"bgr": "background-repeat:|;",
      +			"bgr:n": "background-repeat:no-repeat;",
      +			"bgr:x": "background-repeat:repeat-x;",
      +			"bgr:y": "background-repeat:repeat-y;",
      +			"bga": "background-attachment:|;",
      +			"bga:f": "background-attachment:fixed;",
      +			"bga:s": "background-attachment:scroll;",
      +			"bgp": "background-position:0 0;",
      +			"bgpx": "background-position-x:|;",
      +			"bgpy": "background-position-y:|;",
      +			"bgbk": "background-break:|;",
      +			"bgbk:bb": "background-break:bounding-box;",
      +			"bgbk:eb": "background-break:each-box;",
      +			"bgbk:c": "background-break:continuous;",
      +			"bgcp": "background-clip:|;",
      +			"bgcp:bb": "background-clip:border-box;",
      +			"bgcp:pb": "background-clip:padding-box;",
      +			"bgcp:cb": "background-clip:content-box;",
      +			"bgcp:nc": "background-clip:no-clip;",
      +			"bgo": "background-origin:|;",
      +			"bgo:pb": "background-origin:padding-box;",
      +			"bgo:bb": "background-origin:border-box;",
      +			"bgo:cb": "background-origin:content-box;",
      +			"bgz": "background-size:|;",
      +			"bgz:a": "background-size:auto;",
      +			"bgz:ct": "background-size:contain;",
      +			"bgz:cv": "background-size:cover;",
      +			"c": "color:#000;",
      +			"tbl": "table-layout:|;",
      +			"tbl:a": "table-layout:auto;",
      +			"tbl:f": "table-layout:fixed;",
      +			"cps": "caption-side:|;",
      +			"cps:t": "caption-side:top;",
      +			"cps:b": "caption-side:bottom;",
      +			"ec": "empty-cells:|;",
      +			"ec:s": "empty-cells:show;",
      +			"ec:h": "empty-cells:hide;",
      +			"lis": "list-style:|;",
      +			"lis:n": "list-style:none;",
      +			"lisp": "list-style-position:|;",
      +			"lisp:i": "list-style-position:inside;",
      +			"lisp:o": "list-style-position:outside;",
      +			"list": "list-style-type:|;",
      +			"list:n": "list-style-type:none;",
      +			"list:d": "list-style-type:disc;",
      +			"list:c": "list-style-type:circle;",
      +			"list:s": "list-style-type:square;",
      +			"list:dc": "list-style-type:decimal;",
      +			"list:dclz": "list-style-type:decimal-leading-zero;",
      +			"list:lr": "list-style-type:lower-roman;",
      +			"list:ur": "list-style-type:upper-roman;",
      +			"lisi": "list-style-image:|;",
      +			"lisi:n": "list-style-image:none;",
      +			"q": "quotes:|;",
      +			"q:n": "quotes:none;",
      +			"q:ru": "quotes:'\00AB' '\00BB' '\201E' '\201C';",
      +			"q:en": "quotes:'\201C' '\201D' '\2018' '\2019';",
      +			"ct": "content:|;",
      +			"ct:n": "content:normal;",
      +			"ct:oq": "content:open-quote;",
      +			"ct:noq": "content:no-open-quote;",
      +			"ct:cq": "content:close-quote;",
      +			"ct:ncq": "content:no-close-quote;",
      +			"ct:a": "content:attr(|);",
      +			"ct:c": "content:counter(|);",
      +			"ct:cs": "content:counters(|);",
      +			"coi": "counter-increment:|;",
      +			"cor": "counter-reset:|;",
      +			"va": "vertical-align:|;",
      +			"va:sup": "vertical-align:super;",
      +			"va:t": "vertical-align:top;",
      +			"va:tt": "vertical-align:text-top;",
      +			"va:m": "vertical-align:middle;",
      +			"va:bl": "vertical-align:baseline;",
      +			"va:b": "vertical-align:bottom;",
      +			"va:tb": "vertical-align:text-bottom;",
      +			"va:sub": "vertical-align:sub;",
      +			"ta": "text-align:|;",
      +			"ta:l": "text-align:left;",
      +			"ta:c": "text-align:center;",
      +			"ta:r": "text-align:right;",
      +			"tal": "text-align-last:|;",
      +			"tal:a": "text-align-last:auto;",
      +			"tal:l": "text-align-last:left;",
      +			"tal:c": "text-align-last:center;",
      +			"tal:r": "text-align-last:right;",
      +			"td": "text-decoration:|;",
      +			"td:n": "text-decoration:none;",
      +			"td:u": "text-decoration:underline;",
      +			"td:o": "text-decoration:overline;",
      +			"td:l": "text-decoration:line-through;",
      +			"te": "text-emphasis:|;",
      +			"te:n": "text-emphasis:none;",
      +			"te:ac": "text-emphasis:accent;",
      +			"te:dt": "text-emphasis:dot;",
      +			"te:c": "text-emphasis:circle;",
      +			"te:ds": "text-emphasis:disc;",
      +			"te:b": "text-emphasis:before;",
      +			"te:a": "text-emphasis:after;",
      +			"th": "text-height:|;",
      +			"th:a": "text-height:auto;",
      +			"th:f": "text-height:font-size;",
      +			"th:t": "text-height:text-size;",
      +			"th:m": "text-height:max-size;",
      +			"ti": "text-indent:|;",
      +			"ti:-": "text-indent:-9999px;",
      +			"tj": "text-justify:|;",
      +			"tj:a": "text-justify:auto;",
      +			"tj:iw": "text-justify:inter-word;",
      +			"tj:ii": "text-justify:inter-ideograph;",
      +			"tj:ic": "text-justify:inter-cluster;",
      +			"tj:d": "text-justify:distribute;",
      +			"tj:k": "text-justify:kashida;",
      +			"tj:t": "text-justify:tibetan;",
      +			"to": "text-outline:|;",
      +			"to+": "text-outline:0 0 #000;",
      +			"to:n": "text-outline:none;",
      +			"tr": "text-replace:|;",
      +			"tr:n": "text-replace:none;",
      +			"tt": "text-transform:|;",
      +			"tt:n": "text-transform:none;",
      +			"tt:c": "text-transform:capitalize;",
      +			"tt:u": "text-transform:uppercase;",
      +			"tt:l": "text-transform:lowercase;",
      +			"tw": "text-wrap:|;",
      +			"tw:n": "text-wrap:normal;",
      +			"tw:no": "text-wrap:none;",
      +			"tw:u": "text-wrap:unrestricted;",
      +			"tw:s": "text-wrap:suppress;",
      +			"tsh": "text-shadow:|;",
      +			"tsh+": "text-shadow:0 0 0 #000;",
      +			"tsh:n": "text-shadow:none;",
      +			"lh": "line-height:|;",
      +			"whs": "white-space:|;",
      +			"whs:n": "white-space:normal;",
      +			"whs:p": "white-space:pre;",
      +			"whs:nw": "white-space:nowrap;",
      +			"whs:pw": "white-space:pre-wrap;",
      +			"whs:pl": "white-space:pre-line;",
      +			"whsc": "white-space-collapse:|;",
      +			"whsc:n": "white-space-collapse:normal;",
      +			"whsc:k": "white-space-collapse:keep-all;",
      +			"whsc:l": "white-space-collapse:loose;",
      +			"whsc:bs": "white-space-collapse:break-strict;",
      +			"whsc:ba": "white-space-collapse:break-all;",
      +			"wob": "word-break:|;",
      +			"wob:n": "word-break:normal;",
      +			"wob:k": "word-break:keep-all;",
      +			"wob:l": "word-break:loose;",
      +			"wob:bs": "word-break:break-strict;",
      +			"wob:ba": "word-break:break-all;",
      +			"wos": "word-spacing:|;",
      +			"wow": "word-wrap:|;",
      +			"wow:nm": "word-wrap:normal;",
      +			"wow:n": "word-wrap:none;",
      +			"wow:u": "word-wrap:unrestricted;",
      +			"wow:s": "word-wrap:suppress;",
      +			"lts": "letter-spacing:|;",
      +			"f": "font:|;",
      +			"f+": "font:1em Arial,sans-serif;",
      +			"fw": "font-weight:|;",
      +			"fw:n": "font-weight:normal;",
      +			"fw:b": "font-weight:bold;",
      +			"fw:br": "font-weight:bolder;",
      +			"fw:lr": "font-weight:lighter;",
      +			"fs": "font-style:|;",
      +			"fs:n": "font-style:normal;",
      +			"fs:i": "font-style:italic;",
      +			"fs:o": "font-style:oblique;",
      +			"fv": "font-variant:|;",
      +			"fv:n": "font-variant:normal;",
      +			"fv:sc": "font-variant:small-caps;",
      +			"fz": "font-size:|;",
      +			"fza": "font-size-adjust:|;",
      +			"fza:n": "font-size-adjust:none;",
      +			"ff": "font-family:|;",
      +			"ff:s": "font-family:serif;",
      +			"ff:ss": "font-family:sans-serif;",
      +			"ff:c": "font-family:cursive;",
      +			"ff:f": "font-family:fantasy;",
      +			"ff:m": "font-family:monospace;",
      +			"fef": "font-effect:|;",
      +			"fef:n": "font-effect:none;",
      +			"fef:eg": "font-effect:engrave;",
      +			"fef:eb": "font-effect:emboss;",
      +			"fef:o": "font-effect:outline;",
      +			"fem": "font-emphasize:|;",
      +			"femp": "font-emphasize-position:|;",
      +			"femp:b": "font-emphasize-position:before;",
      +			"femp:a": "font-emphasize-position:after;",
      +			"fems": "font-emphasize-style:|;",
      +			"fems:n": "font-emphasize-style:none;",
      +			"fems:ac": "font-emphasize-style:accent;",
      +			"fems:dt": "font-emphasize-style:dot;",
      +			"fems:c": "font-emphasize-style:circle;",
      +			"fems:ds": "font-emphasize-style:disc;",
      +			"fsm": "font-smooth:|;",
      +			"fsm:a": "font-smooth:auto;",
      +			"fsm:n": "font-smooth:never;",
      +			"fsm:aw": "font-smooth:always;",
      +			"fst": "font-stretch:|;",
      +			"fst:n": "font-stretch:normal;",
      +			"fst:uc": "font-stretch:ultra-condensed;",
      +			"fst:ec": "font-stretch:extra-condensed;",
      +			"fst:c": "font-stretch:condensed;",
      +			"fst:sc": "font-stretch:semi-condensed;",
      +			"fst:se": "font-stretch:semi-expanded;",
      +			"fst:e": "font-stretch:expanded;",
      +			"fst:ee": "font-stretch:extra-expanded;",
      +			"fst:ue": "font-stretch:ultra-expanded;",
      +			"op": "opacity:|;",
      +			"op:ie": "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);",
      +			"op:ms": "-ms-filter:'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';",
      +			"rz": "resize:|;",
      +			"rz:n": "resize:none;",
      +			"rz:b": "resize:both;",
      +			"rz:h": "resize:horizontal;",
      +			"rz:v": "resize:vertical;",
      +			"cur": "cursor:|;",
      +			"cur:a": "cursor:auto;",
      +			"cur:d": "cursor:default;",
      +			"cur:c": "cursor:crosshair;",
      +			"cur:ha": "cursor:hand;",
      +			"cur:he": "cursor:help;",
      +			"cur:m": "cursor:move;",
      +			"cur:p": "cursor:pointer;",
      +			"cur:t": "cursor:text;",
      +			"pgbb": "page-break-before:|;",
      +			"pgbb:au": "page-break-before:auto;",
      +			"pgbb:al": "page-break-before:always;",
      +			"pgbb:l": "page-break-before:left;",
      +			"pgbb:r": "page-break-before:right;",
      +			"pgbi": "page-break-inside:|;",
      +			"pgbi:au": "page-break-inside:auto;",
      +			"pgbi:av": "page-break-inside:avoid;",
      +			"pgba": "page-break-after:|;",
      +			"pgba:au": "page-break-after:auto;",
      +			"pgba:al": "page-break-after:always;",
      +			"pgba:l": "page-break-after:left;",
      +			"pgba:r": "page-break-after:right;",
      +			"orp": "orphans:|;",
      +			"wid": "widows:|;"
      +		}
      +	},
      +	
      +	'html': {
      +		'snippets': {
      +			'cc:ie6': '<!--[if lte IE 6]>\n\t${child}|\n<![endif]-->',
      +			'cc:ie': '<!--[if IE]>\n\t${child}|\n<![endif]-->',
      +			'cc:noie': '<!--[if !IE]><!-->\n\t${child}|\n<!--<![endif]-->',
      +			'html:4t': '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\n' +
      +					'<html lang="${lang}">\n' +
      +					'<head>\n' +
      +					'	<title></title>\n' +
      +					'	<meta http-equiv="Content-Type" content="text/html;charset=${charset}">\n' +
      +					'</head>\n' +
      +					'<body>\n\t${child}|\n</body>\n' +
      +					'</html>',
      +			
      +			'html:4s': '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\n' +
      +					'<html lang="${lang}">\n' +
      +					'<head>\n' +
      +					'	<title></title>\n' +
      +					'	<meta http-equiv="Content-Type" content="text/html;charset=${charset}">\n' +
      +					'</head>\n' +
      +					'<body>\n\t${child}|\n</body>\n' +
      +					'</html>',
      +			
      +			'html:xt': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n' +
      +					'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="${lang}">\n' +
      +					'<head>\n' +
      +					'	<title></title>\n' +
      +					'	<meta http-equiv="Content-Type" content="text/html;charset=${charset}" />\n' +
      +					'</head>\n' +
      +					'<body>\n\t${child}|\n</body>\n' +
      +					'</html>',
      +			
      +			'html:xs': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n' +
      +					'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="${lang}">\n' +
      +					'<head>\n' +
      +					'	<title></title>\n' +
      +					'	<meta http-equiv="Content-Type" content="text/html;charset=${charset}" />\n' +
      +					'</head>\n' +
      +					'<body>\n\t${child}|\n</body>\n' +
      +					'</html>',
      +			
      +			'html:xxs': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\n' +
      +					'<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="${lang}">\n' +
      +					'<head>\n' +
      +					'	<title></title>\n' +
      +					'	<meta http-equiv="Content-Type" content="text/html;charset=${charset}" />\n' +
      +					'</head>\n' +
      +					'<body>\n\t${child}|\n</body>\n' +
      +					'</html>',
      +			
      +			'html:5': '<!DOCTYPE HTML>\n' +
      +					'<html lang="${locale}">\n' +
      +					'<head>\n' +
      +					'	<title></title>\n' +
      +					'	<meta charset="${charset}">\n' +
      +					'</head>\n' +
      +					'<body>\n\t${child}|\n</body>\n' +
      +					'</html>',
      +            
      +            'more': '\n<!--more-->\n'
      +		},
      +		
      +		'abbreviations': {
      +			'a': '<a href=""></a>',
      +			'a:link': '<a href="http://|"></a>',
      +			'a:mail': '<a href="mailto:|"></a>',
      +			'abbr': '<abbr title=""></abbr>',
      +			'acronym': '<acronym title=""></acronym>',
      +			'base': '<base href="" />',
      +			'bdo': '<bdo dir=""></bdo>',
      +			'bdo:r': '<bdo dir="rtl"></bdo>',
      +			'bdo:l': '<bdo dir="ltr"></bdo>',
      +			'link:css': '<link rel="stylesheet" type="text/css" href="|style.css" media="all" />',
      +			'link:print': '<link rel="stylesheet" type="text/css" href="|print.css" media="print" />',
      +			'link:favicon': '<link rel="shortcut icon" type="image/x-icon" href="|favicon.ico" />',
      +			'link:touch': '<link rel="apple-touch-icon" href="|favicon.png" />',
      +			'link:rss': '<link rel="alternate" type="application/rss+xml" title="RSS" href="|rss.xml" />',
      +			'link:atom': '<link rel="alternate" type="application/atom+xml" title="Atom" href="atom.xml" />',
      +			'meta:utf': '<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />',
      +			'meta:win': '<meta http-equiv="Content-Type" content="text/html;charset=windows-1251" />',
      +			'meta:compat': '<meta http-equiv="X-UA-Compatible" content="IE=7" />',
      +			'style': '<style type="text/css"></style>',
      +			'script': '<script type="text/javascript"></script>',
      +			'script:src': '<script type="text/javascript" src=""></script>',
      +			'img': '<img src="" alt="" />',
      +			'iframe': '<iframe src="" frameborder="0"></iframe>',
      +			'embed': '<embed src="" type="" />',
      +			'object': '<object data="" type=""></object>',
      +			'param': '<param name="" value="" />',
      +			'map': '<map name=""></map>',
      +			'area': '<area shape="" coords="" href="" alt="" />',
      +			'area:d': '<area shape="default" href="" alt="" />',
      +			'area:c': '<area shape="circle" coords="" href="" alt="" />',
      +			'area:r': '<area shape="rect" coords="" href="" alt="" />',
      +			'area:p': '<area shape="poly" coords="" href="" alt="" />',
      +			'link': '<link rel="stylesheet" href="" />',
      +			'form': '<form action=""></form>',
      +			'form:get': '<form action="" method="get"></form>',
      +			'form:post': '<form action="" method="post"></form>',
      +			'label': '<label for=""></label>',
      +			'input': '<input type="" />',
      +			'input:hidden': '<input type="hidden" name="" />',
      +			'input:h': '<input type="hidden" name="" />',
      +			'input:text': '<input type="text" name="" id="" />',
      +			'input:t': '<input type="text" name="" id="" />',
      +			'input:search': '<input type="search" name="" id="" />',
      +			'input:email': '<input type="email" name="" id="" />',
      +			'input:url': '<input type="url" name="" id="" />',
      +			'input:password': '<input type="password" name="" id="" />',
      +			'input:p': '<input type="password" name="" id="" />',
      +			'input:datetime': '<input type="datetime" name="" id="" />',
      +			'input:date': '<input type="date" name="" id="" />',
      +			'input:datetime-local': '<input type="datetime-local" name="" id="" />',
      +			'input:month': '<input type="month" name="" id="" />',
      +			'input:week': '<input type="week" name="" id="" />',
      +			'input:time': '<input type="time" name="" id="" />',
      +			'input:number': '<input type="number" name="" id="" />',
      +			'input:color': '<input type="color" name="" id="" />',
      +			'input:checkbox': '<input type="checkbox" name="" id="" />',
      +			'input:c': '<input type="checkbox" name="" id="" />',
      +			'input:radio': '<input type="radio" name="" id="" />',
      +			'input:r': '<input type="radio" name="" id="" />',
      +			'input:range': '<input type="range" name="" id="" />',
      +			'input:file': '<input type="file" name="" id="" />',
      +			'input:f': '<input type="file" name="" id="" />',
      +			'input:submit': '<input type="submit" value="" />',
      +			'input:s': '<input type="submit" value="" />',
      +			'input:image': '<input type="image" src="" alt="" />',
      +			'input:i': '<input type="image" src="" alt="" />',
      +			'input:reset': '<input type="reset" value="" />',
      +			'input:button': '<input type="button" value="" />',
      +			'input:b': '<input type="button" value="" />',
      +			'select': '<select name="" id=""></select>',
      +			'option': '<option value=""></option>',
      +			'textarea': '<textarea name="" id="" cols="30" rows="10"></textarea>',
      +			'menu:context': '<menu type="context"></menu>',
      +			'menu:c': '<menu type="context"></menu>',
      +			'menu:toolbar': '<menu type="toolbar"></menu>',
      +			'menu:t': '<menu type="toolbar"></menu>',
      +			'video': '<video src=""></video>',
      +			'audio': '<audio src=""></audio>',
      +			'html:xml': '<html xmlns="http://www.w3.org/1999/xhtml"></html>',
      +			'bq': '<blockquote></blockquote>',
      +			'acr': '<acronym></acronym>',
      +			'fig': '<figure></figure>',
      +			'ifr': '<iframe></iframe>',
      +			'emb': '<embed></embed>',
      +			'obj': '<object></object>',
      +			'src': '<source></source>',
      +			'cap': '<caption></caption>',
      +			'colg': '<colgroup></colgroup>',
      +			'fst': '<fieldset></fieldset>',
      +			'btn': '<button></button>',
      +			'optg': '<optgroup></optgroup>',
      +			'opt': '<option></option>',
      +			'tarea': '<textarea></textarea>',
      +			'leg': '<legend></legend>',
      +			'sect': '<section></section>',
      +			'art': '<article></article>',
      +			'hdr': '<header></header>',
      +			'ftr': '<footer></footer>',
      +			'adr': '<address></address>',
      +			'dlg': '<dialog></dialog>',
      +			'str': '<strong></strong>',
      +			'prog': '<progress></progress>',
      +			'fset': '<fieldset></fieldset>',
      +			'datag': '<datagrid></datagrid>',
      +			'datal': '<datalist></datalist>',
      +			'kg': '<keygen></keygen>',
      +			'out': '<output></output>',
      +			'det': '<details></details>',
      +			'cmd': '<command></command>',
      +			
      +			// expandos
      +			'ol+': 'ol>li',
      +			'ul+': 'ul>li',
      +			'dl+': 'dl>dt+dd',
      +			'map+': 'map>area',
      +			'table+': 'table>tr>td',
      +			'colgroup+': 'colgroup>col',
      +			'colg+': 'colgroup>col',
      +			'tr+': 'tr>td',
      +			'select+': 'select>option',
      +			'optgroup+': 'optgroup>option',
      +			'optg+': 'optgroup>option'
      +
      +		},
      +		
      +		'element_types': {
      +			'empty': 'area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed,keygen,command',
      +			'block_level': 'address,applet,blockquote,button,center,dd,del,dir,div,dl,dt,fieldset,form,frameset,hr,iframe,ins,isindex,li,link,map,menu,noframes,noscript,object,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul,h1,h2,h3,h4,h5,h6',
      +			'inline_level': 'a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var'
      +		}
      +	},
      +	
      +	'xsl': {
      +		'extends': 'html', 
      +		'abbreviations': {
      +			'tm': '<xsl:template match="" mode=""></xsl:template>',
      +			'tmatch': 'tm',
      +			'tn': '<xsl:template name=""></xsl:template>',
      +			'tname': 'tn',
      +			'xsl:when': '<xsl:when test=""></xsl:when>',
      +			'wh': 'xsl:when',
      +			'var': '<xsl:variable name="">|</xsl:variable>',
      +			'vare': '<xsl:variable name="" select=""/>',
      +			'if': '<xsl:if test=""></xsl:if>',
      +			'call': '<xsl:call-template name=""/>',
      +			'attr': '<xsl:attribute name=""></xsl:attribute>',
      +			'wp': '<xsl:with-param name="" select=""/>',
      +			'par': '<xsl:param name="" select=""/>',
      +			'val': '<xsl:value-of select=""/>',
      +			'co': '<xsl:copy-of select=""/>',
      +			'each': '<xsl:for-each select=""></xsl:for-each>',
      +			'ap': '<xsl:apply-templates select="" mode=""/>',
      +			
      +			//expandos
      +			'choose+': 'xsl:choose>xsl:when+xsl:otherwise'
      +		}
      +	}
      +};/**
      + * @author Sergey Chikuyonok (serge.che@gmail.com)
      + * @link http://chikuyonok.ru
      + */
      (function(){
      +	// Regular Expressions for parsing tags and attributes
      +	var start_tag = /^<([\w\:\-]+)((?:\s+[\w\-:]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/,
      +		end_tag = /^<\/([\w\:\-]+)[^>]*>/,
      +		attr = /([\w\-:]+)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g;
      +		
      +	// Empty Elements - HTML 4.01
      +	var empty = makeMap("area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed");
      +
      +	// Block Elements - HTML 4.01
      +	var block = makeMap("address,applet,blockquote,button,center,dd,dir,div,dl,dt,fieldset,form,frameset,hr,iframe,isindex,li,map,menu,noframes,noscript,object,ol,p,pre,script,table,tbody,td,tfoot,th,thead,tr,ul");
      +
      +	// Inline Elements - HTML 4.01
      +	var inline = makeMap("a,abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,select,small,span,strike,strong,sub,sup,textarea,tt,u,var");
      +
      +	// Elements that you can, intentionally, leave open
      +	// (and which close themselves)
      +	var close_self = makeMap("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr");
      +	
      +	/** Last matched HTML pair */
      +	var last_match = {
      +		opening_tag: null, // tag() or comment() object
      +		closing_tag: null, // tag() or comment() object
      +		start_ix: -1,
      +		end_ix: -1
      +	};
      +	
      +	function tag(match, ix) {
      +		var name = match[1].toLowerCase();
      +		return  {
      +			name: name,
      +			full_tag: match[0],
      +			start: ix,
      +			end: ix + match[0].length,
      +			unary: Boolean(match[3]) || (name in empty),
      +			type: 'tag',
      +			close_self: (name in close_self)
      +		};
      +	}
      +	
      +	function comment(start, end) {
      +		return {
      +			start: start,
      +			end: end,
      +			type: 'comment'
      +		};
      +	}
      +	
      +	function makeMap(str){
      +		var obj = {}, items = str.split(",");
      +		for ( var i = 0; i < items.length; i++ )
      +			obj[ items[i] ] = true;
      +		return obj;
      +	}
      +	
      +	/**
      +	 * Makes selection ranges for matched tag pair
      +	 * @param {tag} opening_tag
      +	 * @param {tag} closing_tag
      +	 * @param {Number} ix
      +	 */
      +	function makeRange(opening_tag, closing_tag, ix) {
      +		ix = ix || 0;
      +		
      +		var start_ix = -1, 
      +			end_ix = -1;
      +		
      +		if (opening_tag && !closing_tag) { // unary element
      +			start_ix = opening_tag.start;
      +			end_ix = opening_tag.end;
      +		} else if (opening_tag && closing_tag) { // complete element
      +			if (
      +				(opening_tag.start < ix && opening_tag.end > ix) || 
      +				(closing_tag.start <= ix && closing_tag.end > ix)
      +			) {
      +				start_ix = opening_tag.start;
      +				end_ix = closing_tag.end;
      +			} else {
      +				start_ix = opening_tag.end;
      +				end_ix = closing_tag.start;
      +			}
      +		}
      +		
      +		return [start_ix, end_ix];
      +	}
      +	
      +	/**
      +	 * Save matched tag for later use and return found indexes
      +	 * @param {tag} opening_tag
      +	 * @param {tag} closing_tag
      +	 * @param {Number} ix
      +	 * @return {Array}
      +	 */
      +	function saveMatch(opening_tag, closing_tag, ix) {
      +		ix = ix || 0;
      +		last_match.opening_tag = opening_tag; 
      +		last_match.closing_tag = closing_tag;
      +		
      +		var range = makeRange(opening_tag, closing_tag, ix);
      +		last_match.start_ix = range[0];
      +		last_match.end_ix = range[1];
      +		
      +		return last_match.start_ix != -1 ? [last_match.start_ix, last_match.end_ix] : null;
      +	}
      +	
      +	/**
      +	 * Search for matching tags in <code>html</code>, starting from 
      +	 * <code>start_ix</code> position
      +	 * @param {String} html Code to search
      +	 * @param {Number} start_ix Character index where to start searching pair 
      +	 * (commonly, current caret position)
      +	 * @param {Function} action Function that creates selection range
      +	 * @return {Array|null}
      +	 */
      +	function findPair(html, start_ix, action) {
      +		action = action || makeRange;
      +		
      +		var forward_stack = [],
      +			backward_stack = [],
      +			/** @type {tag()} */
      +			opening_tag = null,
      +			/** @type {tag()} */
      +			closing_tag = null,
      +			range = null,
      +			html_len = html.length,
      +			m,
      +			ix,
      +			tmp_tag;
      +			
      +		forward_stack.last = backward_stack.last = function() {
      +			return this[this.length - 1];
      +		}
      +		
      +		function hasMatch(str, start) {
      +			if (arguments.length == 1)
      +				start = ix;
      +			return html.substr(start, str.length) == str;
      +		}
      +		
      +		function searchCommentStart(from) {
      +			while (from--) {
      +				if (html.charAt(from) == '<' && hasMatch('<!--', from))
      +					break;
      +			}
      +			
      +			return from;
      +		}
      +		
      +		// find opening tag
      +		ix = start_ix;
      +		while (ix-- && ix >= 0) {
      +			var ch = html.charAt(ix);
      +			if (ch == '<') {
      +				var check_str = html.substring(ix, html_len);
      +				
      +				if ( (m = check_str.match(end_tag)) ) { // found closing tag
      +					tmp_tag = tag(m, ix);
      +					if (tmp_tag.start < start_ix && tmp_tag.end > start_ix) // direct hit on searched closing tag
      +						closing_tag = tmp_tag;
      +					else
      +						backward_stack.push(tmp_tag);
      +				} else if ( (m = check_str.match(start_tag)) ) { // found opening tag
      +					tmp_tag = tag(m, ix);
      +					
      +					if (tmp_tag.unary) {
      +						if (tmp_tag.start < start_ix && tmp_tag.end > start_ix) // exact match
      +							return saveMatch(tmp_tag, null, start_ix);
      +					} else if (backward_stack.last() && backward_stack.last().name == tmp_tag.name) {
      +						backward_stack.pop();
      +					} else { // found nearest unclosed tag
      +						opening_tag = tmp_tag;
      +						break;
      +					}
      +				} else if (check_str.indexOf('<!--') == 0) { // found comment start
      +					var end_ix = check_str.search('-->') + ix + 3;
      +					if (ix < start_ix && end_ix >= start_ix)
      +						return saveMatch( comment(ix, end_ix) );
      +				}
      +			} else if (ch == '-' && hasMatch('-->')) { // found comment end
      +				// search left until comment start is reached
      +				ix = searchCommentStart(ix);
      +			}
      +		}
      +		
      +		if (!opening_tag)
      +			return action(null);
      +		
      +		// find closing tag
      +		if (!closing_tag) {
      +			for (ix = start_ix; ix < html_len; ix++) {
      +				var ch = html.charAt(ix);
      +				if (ch == '<') {
      +					var check_str = html.substring(ix, html_len);
      +					
      +					if ( (m = check_str.match(start_tag)) ) { // found opening tag
      +						tmp_tag = tag(m, ix);
      +						if (!tmp_tag.unary)
      +							forward_stack.push( tmp_tag );
      +					} else if ( (m = check_str.match(end_tag)) ) { // found closing tag
      +						var tmp_tag = tag(m, ix);
      +						if (forward_stack.last() && forward_stack.last().name == tmp_tag.name)
      +							forward_stack.pop();
      +						else { // found matched closing tag
      +							closing_tag = tmp_tag;
      +							break;
      +						}
      +					} else if (hasMatch('<!--')) { // found comment
      +						ix += check_str.search('-->') + 3;
      +					}
      +				} else if (ch == '-' && hasMatch('-->')) {
      +					// looks like cursor was inside comment with invalid HTML
      +					if (!forward_stack.last() || forward_stack.last().type != 'comment') {
      +						var end_ix = ix + 3;
      +						return action(comment( searchCommentStart(ix), end_ix ));
      +					}
      +				}
      +			}
      +		}
      +		
      +		return action(opening_tag, closing_tag, start_ix);
      +	}
      +	
      +	/**
      +	 * Search for matching tags in <code>html</code>, starting 
      +	 * from <code>start_ix</code> position. The result is automatically saved in 
      +	 * <code>last_match</code> property
      +	 * 
      +	 * @return {Array|null}
      +	 */
      +	var HTMLPairMatcher = this.HTMLPairMatcher = function(/* String */ html, /* Number */ start_ix){
      +		return findPair(html, start_ix, saveMatch);
      +	}
      +	
      +	HTMLPairMatcher.start_tag = start_tag;
      +	HTMLPairMatcher.end_tag = end_tag;
      +	
      +	/**
      +	 * Search for matching tags in <code>html</code>, starting from 
      +	 * <code>start_ix</code> position. The difference between 
      +	 * <code>HTMLPairMatcher</code> function itself is that <code>find</code> 
      +	 * method doesn't save matched result in <code>last_match</code> property.
      +	 * This method is generally used for lookups 
      +	 */
      +	HTMLPairMatcher.find = function(html, start_ix) {
      +		return findPair(html, start_ix);
      +	};
      +	
      +	/**
      +	 * Search for matching tags in <code>html</code>, starting from 
      +	 * <code>start_ix</code> position. The difference between 
      +	 * <code>HTMLPairMatcher</code> function itself is that <code>getTags</code> 
      +	 * method doesn't save matched result in <code>last_match</code> property 
      +	 * and returns array of opening and closing tags
      +	 * This method is generally used for lookups 
      +	 */
      +	HTMLPairMatcher.getTags = function(html, start_ix) {
      +		return findPair(html, start_ix, function(opening_tag, closing_tag){
      +			return [opening_tag, closing_tag];
      +		});
      +	};
      +	
      +	HTMLPairMatcher.last_match = last_match;
      +})();/**
      + * @author Sergey Chikuyonok (serge.che@gmail.com)
      + * @link http://chikuyonok.ru
      + * @include "settings.js"
      + * @include "/EclipseMonkey/scripts/monkey-doc.js"
      + */
      var zen_coding = (function(){
      +	
      +	var re_tag = /<\/?[\w:\-]+(?:\s+[\w\-:]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*\s*(\/?)>$/;
      +	
      +	var TYPE_ABBREVIATION = 'zen-tag',
      +		TYPE_EXPANDO = 'zen-expando',
      +	
      +		/** Reference to another abbreviation or tag */
      +		TYPE_REFERENCE = 'zen-reference',
      +		
      +		content_placeholder = '{%::zen-content::%}',
      +		newline = '\n';
      +		
      +	var default_profile = {
      +		tag_case: 'lower',
      +		attr_case: 'lower',
      +		attr_quotes: 'double',
      +		
      +		// each tag on new line
      +		tag_nl: 'decide',
      +		
      +		place_cursor: true,
      +		
      +		// indent tags
      +		indent: true,
      +		
      +		// use self-closing style for writing empty elements, e.g. <br /> or <br>
      +		self_closing_tag: 'xhtml'
      +	};
      +	
      +	var profiles = {};
      +	
      +	/**
      +	 * Проверяет, является ли символ допустимым в аббревиатуре
      +	 * @param {String} ch
      +	 * @return {Boolean}
      +	 */
      +	function isAllowedChar(ch) {
      +		var char_code = ch.charCodeAt(0),
      +			special_chars = '#.>+*:$-_!@';
      +		
      +		return (char_code > 64 && char_code < 91)       // uppercase letter
      +				|| (char_code > 96 && char_code < 123)  // lowercase letter
      +				|| (char_code > 47 && char_code < 58)   // number
      +				|| special_chars.indexOf(ch) != -1;     // special character
      +	}
      +	
      +	/**
      +	 * Возвращает символ перевода строки, используемый в редакторе
      +	 * @return {String}
      +	 */
      +	function getNewline() {
      +		return zen_coding.getNewline();
      +	}
      +	
      +	/**
      +	 * Split text into lines. Set <code>remove_empty</code> to true to filter
      +	 * empty lines
      +	 * @param {String} text
      +	 * @param {Boolean} [remove_empty]
      +	 * @return {Array}
      +	 */
      +	function splitByLines(text, remove_empty) {
      +		
      +		// IE fails to split string by regexp, 
      +		// need to normalize newlines first
      +		var lines = text.replace(/\r\n/g, '\n').replace(/\n\r/g, '\n').split('\n');
      +		
      +//		var nl = getNewline(), 
      +//			lines = text.split(new RegExp('\\r?\\n|\\n\\r|\\r|' + nl));
      +			
      +		if (remove_empty) {
      +			for (var i = lines.length; i >= 0; i--) {
      +				if (!trim(lines[i]))
      +					lines.splice(i, 1);
      +			}
      +		}
      +		
      +		return lines;
      +	}
      +	
      +	/**
      +	 * Trim whitespace from string
      +	 * @param {String} text
      +	 * @return {String}
      +	 */
      +	function trim(text) {
      +		return (text || "").replace( /^\s+|\s+$/g, "" );
      +	}
      +	
      +	function createProfile(options) {
      +		var result = {};
      +		for (var p in default_profile)
      +			result[p] = (p in options) ? options[p] : default_profile[p];
      +		
      +		return result;
      +	}
      +	
      +	function setupProfile(name, options) {
      +		profiles[name.toLowerCase()] = createProfile(options || {});
      +	}
      +	
      +	/**
      +	 * Helper function that transforms string into hash
      +	 * @return {Object}
      +	 */
      +	function stringToHash(str){
      +		var obj = {}, items = str.split(",");
      +		for ( var i = 0; i < items.length; i++ )
      +			obj[ items[i] ] = true;
      +		return obj;
      +	}
      +	
      +	/**
      +	 * Отбивает текст отступами
      +	 * @param {String} text Текст, который нужно отбить
      +	 * @param {String|Number} pad Количество отступов или сам отступ
      +	 * @return {String}
      +	 */
      +	function padString(text, pad, verbose) {
      +		var pad_str = '', result = '';
      +		if (typeof(pad) == 'number')
      +			for (var i = 0; i < pad; i++) 
      +				pad_str += zen_settings.variables.indentation;
      +		else
      +			pad_str = pad;
      +		
      +		var lines = splitByLines(text),
      +			nl = getNewline();
      +			
      +		result += lines[0];
      +		for (var j = 1; j < lines.length; j++) 
      +			result += nl + pad_str + lines[j];
      +			
      +		return result;
      +	}
      +	
      +	/**
      +	 * Check if passed abbreviation is snippet
      +	 * @param {String} abbr
      +	 * @param {String} type
      +	 * @return {Boolean}
      +	 */
      +	function isShippet(abbr, type) {
      +		return getSnippet(type, abbr) ? true : false;
      +	}
      +	
      +	/**
      +	 * Проверяет, закачивается ли строка полноценным тэгом. В основном 
      +	 * используется для проверки принадлежности символа '>' аббревиатуре 
      +	 * или тэгу
      +	 * @param {String} str
      +	 * @return {Boolean}
      +	 */
      +	function isEndsWithTag(str) {
      +		return re_tag.test(str);
      +	}
      +	
      +	/**
      +	 * Returns specified elements collection (like 'empty', 'block_level') from
      +	 * <code>resource</code>. If collections wasn't found, returns empty object
      +	 * @param {Object} resource
      +	 * @param {String} type
      +	 * @return {Object}
      +	 */
      +	function getElementsCollection(resource, type) {
      +		if (resource && resource.element_types)
      +			return resource.element_types[type] || {}
      +		else
      +			return {};
      +	}
      +	
      +	/**
      +	 * Replace variables like ${var} in string
      +	 * @param {String} str
      +	 * @param {Object} [vars] Variable set (default is <code>zen_settings.variables</code>) 
      +	 * @return {String}
      +	 */
      +	function replaceVariables(str, vars) {
      +		vars = vars || zen_settings.variables;
      +		return str.replace(/\$\{([\w\-]+)\}/g, function(str, p1){
      +			return (p1 in vars) ? vars[p1] : str;
      +		});
      +	}
      +	
      +	/**
      +	 * Тэг
      +	 * @class
      +	 * @param {String} name Имя тэга
      +	 * @param {Number} count Сколько раз вывести тэг (по умолчанию: 1)
      +	 * @param {String} type Тип тэга (html, xml)
      +	 */
      +	function Tag(name, count, type) {
      +		name = name.toLowerCase();
      +		type = type || 'html';
      +		
      +		var abbr = getAbbreviation(type, name);
      +		if (abbr && abbr.type == TYPE_REFERENCE)
      +			abbr = getAbbreviation(type, abbr.value);
      +		
      +		this.name = (abbr) ? abbr.value.name : name.replace('+', '');
      +		this.count = count || 1;
      +		this.children = [];
      +		this.attributes = [];
      +		this._attr_hash = {};
      +		this._abbr = abbr;
      +		this._res = zen_settings[type];
      +		this._content = '';
      +		this.repeat_by_lines = false;
      +		
      +		// add default attributes
      +		if (this._abbr && this._abbr.value.attributes) {
      +			var def_attrs = this._abbr.value.attributes;
      			if (def_attrs) {
      +				for (var i = 0; i < def_attrs.length; i++) {
      +					var attr = def_attrs[i];
      +					this.addAttribute(attr.name, attr.value);
      +				}
      +			}
      +		}
      +	}
      +	
      +	Tag.prototype = {
      +		/**
      +		 * Добавляет нового потомка
      +		 * @param {Tag} tag
      +		 */
      +		addChild: function(tag) {
      +			this.children.push(tag);
      +		},
      +		
      +		/**
      +		 * Добавляет атрибут
      +		 * @param {String} name Название атрибута
      +		 * @param {String} value Значение атрибута
      +		 */
      +		addAttribute: function(name, value) {
      +			var a;
      +			if (name in this._attr_hash) {
      +				// attribute already exists, decide what to do
      +				a = this._attr_hash[name];
      +				if (name == 'class') {
      +					// 'class' is a magic attribute
      +					a.value += ((a.value) ? ' ' : '') + value;
      +				} else {
      +					a.value = value;
      +				}
      +			} else {
      +				a = {name: name, value: value};
      +				this._attr_hash[name] = a
      +				this.attributes.push(a);
      +			}
      +			
      +		},
      +		
      +		/**
      +		 * Проверяет, является ли текущий элемент пустым
      +		 * @return {Boolean}
      +		 */
      +		isEmpty: function() {
      +			return (this._abbr && this._abbr.value.is_empty) || (this.name in getElementsCollection(this._res, 'empty'));
      +		},
      +		
      +		/**
      +		 * Проверяет, является ли текущий элемент строчным
      +		 * @return {Boolean}
      +		 */
      +		isInline: function() {
      +			return (this.name in getElementsCollection(this._res, 'inline_level'));
      +		},
      +		
      +		/**
      +		 * Проверяет, является ли текущий элемент блочным
      +		 * @return {Boolean}
      +		 */
      +		isBlock: function() {
      +			return (this.name in getElementsCollection(this._res, 'block_level'));
      +		},
      +		
      +		/**
      +		 * This function tests if current tags' content contains xHTML tags. 
      +		 * This function is mostly used for output formatting
      +		 */
      +		hasTagsInContent: function() {
      +			return this.getContent() && re_tag.test(this.getContent());
      +		},
      +		
      +		/**
      +		 * Проверяет, есть ли блочные потомки у текущего тэга. 
      +		 * Используется для форматирования
      +		 * @return {Boolean}
      +		 */
      +		hasBlockChildren: function() {
      +			if (this.hasTagsInContent() && this.isBlock()) {
      +				return true;
      +			}
      +			
      +			for (var i = 0; i < this.children.length; i++) {
      +				if (this.children[i].isBlock())
      +					return true;
      +			}
      +			
      +			return false;
      +		},
      +		
      +		/**
      +		 * Set textual content for tag
      +		 * @param {String} str Tag's content
      +		 */
      +		setContent: function(str) {
      +			this._content = str;
      +		},
      +		
      +		/**
      +		 * Returns tag's textual content
      +		 * @return {String}
      +		 */
      +		getContent: function() {
      +			return this._content;
      +		},
      +		
      +		/**
      +		 * Search for deepest and latest child of current element
      +		 * @return {Tag|null} Returns null if there's no children
      +		 */
      +		findDeepestChild: function() {
      +			if (!this.children.length)
      +				return null;
      +				
      +			var deepest_child = this;
      +			while (true) {
      +				deepest_child = deepest_child.children[ deepest_child.children.length - 1 ];
      +				if (!deepest_child.children.length)
      +					break;
      +			}
      +			
      +			return deepest_child;
      +		},
      +		
      +		/**
      +		 * Transforms and formats tag into string using profile
      +		 * @param {String} profile Profile name
      +		 * @return {String}
      +		 * TODO Function is too large, need refactoring
      +		 */
      +		toString: function(profile_name) {
      +			
      +			var result = [], 
      +				profile = (profile_name in profiles) ? profiles[profile_name] : profiles['plain'],
      +				attrs = '', 
      +				content = '', 
      +				start_tag = '', 
      +				end_tag = '',
      +				cursor = profile.place_cursor ? '|' : '',
      +				self_closing = '',
      +				attr_quote = profile.attr_quotes == 'single' ? "'" : '"',
      +				attr_name,
      +				
      +				is_empty = (this.isEmpty() && !this.children.length);
      +
      +			if (profile.self_closing_tag == 'xhtml')
      +				self_closing = ' /';
      +			else if (profile.self_closing_tag === true)
      +				self_closing = '/';
      +				
      +			function allowNewline(tag) {
      +				return (profile.tag_nl === true || (profile.tag_nl == 'decide' && tag.isBlock()))
      +			}
      +				
      +			// make attribute string
      +			for (var i = 0; i < this.attributes.length; i++) {
      +				var a = this.attributes[i];
      +				attr_name = (profile.attr_case == 'upper') ? a.name.toUpperCase() : a.name.toLowerCase();
      +				attrs += ' ' + attr_name + '=' + attr_quote + (a.value || cursor) + attr_quote;
      +			}
      +			
      +			var deepest_child = this.findDeepestChild();
      +			
      +			// output children
      +			if (!is_empty) {
      +				if (deepest_child && this.repeat_by_lines)
      +					deepest_child.setContent(content_placeholder);
      +				
      +				for (var j = 0; j < this.children.length; j++) {
      +//					
      +					content += this.children[j].toString(profile_name);
      +					if (
      +						(j != this.children.length - 1) &&
      +						( allowNewline(this.children[j]) || allowNewline(this.children[j + 1]) )
      +					)
      +						content += getNewline();
      +				}
      +			}
      +			
      +			// define opening and closing tags
      +			if (this.name) {
      +				var tag_name = (profile.tag_case == 'upper') ? this.name.toUpperCase() : this.name.toLowerCase();
      +				if (is_empty) {
      +					start_tag = '<' + tag_name + attrs + self_closing + '>';
      +				} else {
      +					start_tag = '<' + tag_name + attrs + '>';
      +					end_tag = '</' + tag_name + '>';
      +				}
      +			}
      +			
      +			// formatting output
      +			if (profile.tag_nl !== false) {
      +				if (
      +					this.name && 
      +					(
      +						profile.tag_nl === true || 
      +						this.hasBlockChildren() 
      +					)
      +				) {
      +					if (end_tag) { // non-empty tag: add indentation
      +						start_tag += getNewline() + zen_settings.variables.indentation;
      +						end_tag = getNewline() + end_tag;
      +					} else { // empty tag
      +						
      +					}
      +						
      +				}
      +				
      +				if (this.name) {
      +					if (content)
      +						content = padString(content, profile.indent ? 1 : 0);
      +					else if (!is_empty)
      +						start_tag += cursor;
      +				}
      +					
      +			}
      +			
      +			// repeat tag by lines count
      +			var cur_content = '';
      +			if (this.repeat_by_lines) {
      +				var lines = splitByLines( trim(this.getContent()) , true);
      +				for (var j = 0; j < lines.length; j++) {
      +					cur_content = deepest_child ? '' : content_placeholder;
      +					if (content && !deepest_child)
      +						cur_content += getNewline();
      +						
      +					var elem_str = start_tag.replace(/\$/g, j + 1) + cur_content + content + end_tag;
      +					result.push(elem_str.replace(content_placeholder, trim(lines[j])));
      +				}
      +			}
      +			
      +			// repeat tag output
      +			if (!result.length) {
      +				if (this.getContent()) {
      +					var pad = (profile.tag_nl === true || (this.hasTagsInContent() && this.isBlock())) ? 1 : 0;
      +					content = padString(this.getContent(), pad) + content;
      +				}
      +				
      +				for (var i = 0; i < this.count; i++) 
      +					result.push(start_tag.replace(/\$/g, i + 1) + content + end_tag);
      +			}
      +			
      +			var glue = '';
      +			if (allowNewline(this))
      +				glue = getNewline();
      +				
      +			return result.join(glue);
      +		}
      +	};
      +	
      +	// TODO inherit from Tag
      +	function Snippet(name, count, type) {
      +		/** @type {String} */
      +		this.name = name;
      +		this.count = count || 1;
      +		this.children = [];
      +		this._content = '';
      +		this.repeat_by_lines = false;
      +		this.attributes = {'id': '|', 'class': '|'};
      +		this.value = getSnippet(type, name);
      +	}
      +	
      +	Snippet.prototype = {
      +		/**
      +		 * Добавляет нового потомка
      +		 * @param {Tag} tag
      +		 */
      +		addChild: function(tag) {
      +			this.children.push(tag);
      +		},
      +		
      +		addAttribute: function(name, value){
      +			this.attributes[name] = value;
      +		},
      +		
      +		isBlock: function() {
      +			return true; 
      +		},
      +		
      +		/**
      +		 * Set textual content for snippet
      +		 * @param {String} str Tag's content
      +		 */
      +		setContent: function(str) {
      +			this._content = str;
      +		},
      +		
      +		/**
      +		 * Returns snippet's textual content
      +		 * @return {String}
      +		 */
      +		getContent: function() {
      +			return this._content;
      +		},
      +		
      +		/**
      +		 * Search for deepest and latest child of current element
      +		 * @return {Tag|null} Returns null if there's no children
      +		 */
      +		findDeepestChild: function() {
      +			if (!this.children.length)
      +				return null;
      +				
      +			var deepest_child = this;
      +			while (true) {
      +				deepest_child = deepest_child.children[ deepest_child.children.length - 1 ];
      +				if (!deepest_child.children.length)
      +					break;
      +			}
      +			
      +			return deepest_child;
      +		},
      +		
      +		toString: function(profile_name) {
      +			var content = '', 
      +				profile = (profile_name in profiles) ? profiles[profile_name] : profiles['plain'],
      +				result = [],
      +				data = this.value,
      +				begin = '',
      +				end = '',
      +				child_padding = '',
      +				child_token = '${child}';
      +			
      +			if (data) {
      +				if (profile.tag_nl !== false) {
      +					var nl = getNewline();
      +					data = data.replace(/\n/g, nl);
      +					// figuring out indentation for children
      +					var lines = data.split(nl), m;
      +					for (var j = 0; j < lines.length; j++) {
      +						if (lines[j].indexOf(child_token) != -1) {
      +							child_padding =  (m = lines[j].match(/(^\s+)/)) ? m[1] : '';
      +							break;
      +						}
      +					}
      +				}
      +				
      +				var parts = data.split(child_token);
      +				begin = parts[0] || '';
      +				end = parts[1] || '';
      +			}
      +			
      +			for (var i = 0; i < this.children.length; i++) {
      +				content += this.children[i].toString(profile_name);
      +				if (
      +					i != this.children.length - 1 &&
      +					(
      +						profile.tag_nl === true || 
      +						(profile.tag_nl == 'decide' && this.children[i].isBlock())
      +					)
      +				)
      +					content += getNewline();
      +			}
      +			
      +			if (child_padding)
      +				content = padString(content, child_padding);
      +			
      +			
      +			// substitute attributes
      +			begin = replaceVariables(begin, this.attributes);
      +			end = replaceVariables(end, this.attributes);
      +				
      +			if (this.getContent()) {
      +				content = padString(this.getContent(), 1) + content;
      +			}
      +			
      +			// выводим тэг нужное количество раз
      +			for (var i = 0; i < this.count; i++) 
      +				result.push(begin + content + end);
      +//				result.push(begin.replace(/\$(?!\{)/g, i + 1) + content + end);
      +			
      +			return result.join((profile.tag_nl !== false) ? getNewline() : '');
      +		}
      +	}
      +	
      +	/**
      +	 * Returns abbreviation value from data set
      +	 * @param {String} type Resource type (html, css, ...)
      +	 * @param {String} abbr Abbreviation name
      +	 * @return {Object|null}
      +	 */
      +	function getAbbreviation(type, abbr) {
      +		return getSettingsResource(type, abbr, 'abbreviations');
      +	}
      +	
      +	/**
      +	 * Returns snippet value from data set
      +	 * @param {String} type Resource type (html, css, ...)
      +	 * @param {String} snippet_name Snippet name
      +	 * @return {Object|null}
      +	 */
      +	function getSnippet(type, snippet_name) {
      +		return getSettingsResource(type, snippet_name, 'snippets');
      +	}
      +	
      +	/**
      +	 * Returns resurce value from data set with respect of inheritance
      +	 * @param {String} type Resource type (html, css, ...)
      +	 * @param {String} abbr Abbreviation name
      +	 * @param {String} res_name Resource name ('snippets' or 'abbreviation')
      +	 * @return {Object|null}
      +	 */
      +	function getSettingsResource(type, abbr, res_name) {
      +		var resource = zen_settings[type];
      +		
      +		if (resource) {
      +			if (res_name in resource && abbr in resource[res_name])
      +				return resource[res_name][abbr];
      +			else if ('extends' in resource) {
      +				// find abbreviation in ancestors
      +				for (var i = 0; i < resource['extends'].length; i++) {
      +					var type = resource['extends'][i];
      +					if (
      +						zen_settings[type] && 
      +						zen_settings[type][res_name] && 
      +						zen_settings[type][res_name][abbr]
      +					)
      +						return zen_settings[type][res_name][abbr];
      +				}
      +			}
      +		}
      +		
      +		
      +		return null;
      +	}
      +	
      +	// create default profiles
      +	setupProfile('xhtml');
      +	setupProfile('html', {self_closing_tag: false});
      +	setupProfile('xml', {self_closing_tag: true, tag_nl: true});
      +	setupProfile('plain', {tag_nl: false, indent: false, place_cursor: false});
      +	
      +	
      +	return {
      +		expandAbbreviation: function(abbr, type, profile) {
      +			var tree = this.parseIntoTree(abbr, type || 'html');
      +			return replaceVariables(tree ? tree.toString(profile) : '');
      +		},
      +		
      +		/**
      +		 * Extracts abbreviations from text stream, starting from the end
      +		 * @param {String} str
      +		 * @return {String} Abbreviation or empty string
      +		 */
      +		extractAbbreviation: function(str) {
      +			var cur_offset = str.length,
      +				start_index = -1;
      +			
      +			while (true) {
      +				cur_offset--;
      +				if (cur_offset < 0) {
      +					// дошли до начала строки
      +					start_index = 0;
      +					break;
      +				}
      +				
      +				var ch = str.charAt(cur_offset);
      +				
      +				if (!isAllowedChar(ch) || (ch == '>' && isEndsWithTag(str.substring(0, cur_offset + 1)))) {
      +					start_index = cur_offset + 1;
      +					break;
      +				}
      +			}
      +			
      +			if (start_index != -1) 
      +				// что-то нашли, возвращаем аббревиатуру
      +				return str.substring(start_index);
      +			else
      +				return '';
      +		},
      +		
      +		/**
      +		 * Parses abbreviation into a node set
      +		 * @param {String} abbr Abbreviation
      +		 * @param {String} type Document type (xsl, html, etc.)
      +		 * @return {Tag}
      +		 */
      +		parseIntoTree: function(abbr, type) {
      +			type = type || 'html';
      +			var root = new Tag('', 1, type),
      +				parent = root,
      +				last = null,
      +				multiply_elem = null,
      +				res = zen_settings[type],
      +				re = /([\+>])?([a-z@\!][a-z0-9:\-]*)(#[\w\-\$]+)?((?:\.[\w\-\$]+)*)(\*(\d*))?(\+$)?/ig;
      +			
      +			if (!abbr)
      +				return null;
      +			
      +			// replace expandos
      +			abbr = abbr.replace(/([a-z][\w\:\-]*)\+$/i, function(str){
      +				var a = getAbbreviation(type, str);
      +				return a ? a.value : str;
      +			});
      +			
      +			abbr = abbr.replace(re, function(str, operator, tag_name, id, class_name, has_multiplier, multiplier, has_expando){
      +				var multiply_by_lines = (has_multiplier && !multiplier);
      +				multiplier = multiplier ? parseInt(multiplier) : 1;
      +				
      +				if (has_expando)
      +					tag_name += '+';
      +				
      +				var current = isShippet(tag_name, type) ? new Snippet(tag_name, multiplier, type) : new Tag(tag_name, multiplier, type);
      +				if (id)
      +					current.addAttribute('id', id.substr(1));
      +				
      +				if (class_name) 
      +					current.addAttribute('class', class_name.substr(1).replace(/\./g, ' '));
      +				
      +				
      +				// dive into tree
      +				if (operator == '>' && last)
      +					parent = last;
      +					
      +				parent.addChild(current);
      +				
      +				last = current;
      +				
      +				if (multiply_by_lines)
      +					multiply_elem = current;
      +				
      +				return '';
      +			});
      +			
      +			root.last = last;
      +			root.multiply_elem = multiply_elem;
      +			
      +			// empty 'abbr' string means that abbreviation was successfully expanded,
      +			// if not — abbreviation wasn't valid 
      +			return (!abbr) ? root : null;
      +		},
      +		
      +		/**
      +		 * Отбивает текст отступами
      +		 * @param {String} text Текст, который нужно отбить
      +		 * @param {String|Number} pad Количество отступов или сам отступ
      +		 * @return {String}
      +		 */
      +		padString: padString,
      +		setupProfile: setupProfile,
      +		getNewline: function(){
      +			return newline;
      +		},
      +		
      +		setNewline: function(str) {
      +			newline = str;
      +		},
      +		
      +		/**
      +		 * Returns range for matched tag pair inside document
      +		 * @requires HTMLParser
      +		 * @param {String} html Full xHTML document
      +		 * @param {Number} cursor_pos Cursor position inside document
      +		 * @return {Object} Pair of indicies (<code>start</code> and <code>end</code>). 
      +		 * Returns 'null' if match wasn't found 
      +		 */
      +		getPairRange: function(html, cursor_pos) {
      +			var tags = {},
      +				ranges = [],
      +				result = null;
      +				
      +			function inRange(start, end) {
      +				return cursor_pos > start && cursor_pos < end;
      +			} 
      +			
      +			var handler = {
      +				start: function(name, attrs, unary, ix_start, ix_end) {
      +					if (unary && inRange(ix_start, ix_end)) {
      +						// this is the exact range for cursor position, stop searching
      +						result = {start: ix_start, end: ix_end};
      +						this.stop = true;
      +					} else {
      +						if (!tags.hasOwnProperty(name))
      +							tags[name] = [];
      +							
      +						tags[name].push(ix_start);
      +					}
      +				},
      +				
      +				end: function(name, ix_start, ix_end) {
      +					if (tags.hasOwnProperty(name)) {
      +						var start = tags[name].pop();
      +						if (inRange(start, ix_end))
      +							ranges.push({start: start, end: ix_end});
      +					}
      +				},
      +				
      +				comment: function(data, ix_start, ix_end) {
      +					if (inRange(ix_start, ix_end)) {
      +						// this is the exact range for cursor position, stop searching
      +						result = {start: ix_start, end: ix_end};
      +						this.stop = true;
      +					}
      +				}
      +			};
      +			
      +			// scan document
      +			try {
      +				HTMLParser(html, handler);
      +			} catch(e) {}
      +			
      +			if (!result && ranges.length) {
      +				// because we have overlaped ranges only, we have to sort array by 
      +				// length: the shorter range length, the most probable match
      +				result = ranges.sort(function(a, b){
      +					return (a.end - a.start) - (b.end - b.start);
      +				})[0];
      +			}
      +			
      +			return result;
      +		},
      +		
      +		/**
      +		 * Wraps passed text with abbreviation. Text will be placed inside last
      +		 * expanded element
      +		 * @param {String} abbr Abbreviation
      +		 * @param {String} text Text to wrap
      +		 * @param {String} [type] Document type (html, xml, etc.). Default is 'html'
      +		 * @param {String} [profile] Output profile's name. Default is 'plain'
      +		 * @return {String}
      +		 */
      +		wrapWithAbbreviation: function(abbr, text, type, profile) {
      +			var tree = this.parseIntoTree(abbr, type || 'html');
      +			if (tree) {
      +				var repeat_elem = tree.multiply_elem || tree.last;
      +				repeat_elem.setContent(text);
      +				repeat_elem.repeat_by_lines = !!tree.multiply_elem;
      +				return tree.toString(profile);
      +			} else {
      +				return null;
      +			}
      +		},
      +		
      +		splitByLines: splitByLines,
      +		
      +		/**
      +		 * Check if cursor is placed inside xHTML tag
      +		 * @param {String} html Contents of the document
      +		 * @param {Number} cursor_pos Current caret position inside tag
      +		 * @return {Boolean}
      +		 */
      +		isInsideTag: function(html, cursor_pos) {
      +			var re_tag = /^<\/?\w[\w\:\-]*.*?>/;
      +			
      +			// search left to find opening brace
      +			var pos = cursor_pos;
      +			while (pos > -1) {
      +				if (html.charAt(pos) == '<') 
      +					break;
      +				pos--;
      +			}
      +			
      +			if (pos != -1) {
      +				var m = re_tag.exec(html.substring(pos));
      +				if (m && cursor_pos > pos && cursor_pos < pos + m[0].length)
      +					return true;
      +			}
      +			
      +			return false;
      +		},
      +		
      +		settings_parser: (function(){
      +			/**
      +			 * Unified object for parsed data
      +			 */
      +			function entry(type, key, value) {
      +				return {
      +					type: type,
      +					key: key,
      +					value: value
      +				};
      +			}
      +			
      +			/** Regular expression for XML tag matching */
      +			var re_tag = /^<(\w+\:?[\w\-]*)((?:\s+[\w\:\-]+\s*=\s*(['"]).*?\3)*)\s*(\/?)>/,
      +				re_attrs = /([\w\-]+)\s*=\s*(['"])(.*?)\2/g;
      +			
      +			/**
      +			 * Make expando from string
      +			 * @param {String} key
      +			 * @param {String} value
      +			 * @return {Object}
      +			 */
      +			function makeExpando(key, value) {
      +				return entry(TYPE_EXPANDO, key, value);
      +			}
      +			
      +			/**
      +			 * Make abbreviation from string
      +			 * @param {String} key Abbreviation key
      +			 * @param {String} tag_name Expanded element's tag name
      +			 * @param {String} attrs Expanded element's attributes
      +			 * @param {Boolean} is_empty Is expanded element empty or not
      +			 * @return {Object}
      +			 */
      +			function makeAbbreviation(key, tag_name, attrs, is_empty) {
      +				var result = {
      +					name: tag_name,
      +					is_empty: Boolean(is_empty)
      +				};
      +				
      +				if (attrs) {
      +					var m;
      +					result.attributes = [];
      +					while (m = re_attrs.exec(attrs)) {
      +						result.attributes.push({
      +							name: m[1],
      +							value: m[3]
      +						});
      +					}
      +				}
      +				
      +				return entry(TYPE_ABBREVIATION, key, result);
      +			}
      +			
      +			/**
      +			 * Parses all abbreviations inside object
      +			 * @param {Object} obj
      +			 */
      +			function parseAbbreviations(obj) {
      +				for (var key in obj) {
      +					var value = obj[key], m;
      +					
      +					key = trim(key);
      +					if (key.substr(-1) == '+') {
      +						// this is expando, leave 'value' as is
      +						obj[key] = makeExpando(key, value);
      +					} else if (m = re_tag.exec(value)) {
      +						obj[key] = makeAbbreviation(key, m[1], m[2], m[4] == '/');
      +					} else {
      +						// assume it's reference to another abbreviation
      +						obj[key] = entry(TYPE_REFERENCE, key, value);
      +					}
      +					
      +				}
      +			}
      +			
      +			return {
      +				/**
      +				 * Parse user's settings
      +				 * @param {Object} settings
      +				 */
      +				parse: function(settings) {
      +					for (var p in settings) {
      +						if (p == 'abbreviations')
      +							parseAbbreviations(settings[p]);
      +						else if (p == 'extends') {
      +							var ar = settings[p].split(',');
      +							for (var i = 0; i < ar.length; i++) 
      +								ar[i] = trim(ar[i]);
      +							settings[p] = ar;
      +						}
      +						else if (typeof(settings[p]) == 'object')
      +							arguments.callee(settings[p]);
      +					}
      +				},
      +				
      +				extend: function(parent, child) {
      +					for (var p in child) {
      +						if (typeof(child[p]) == 'object' && parent.hasOwnProperty(p))
      +							arguments.callee(parent[p], child[p]);
      +						else
      +							parent[p] = child[p];
      +					}
      +				},
      +				
      +				/**
      +				 * Create hash maps on certain string properties
      +				 * @param {Object} obj
      +				 */
      +				createMaps: function(obj) {
      +					for (var p in obj) {
      +						if (p == 'element_types') {
      +							for (var k in obj[p]) 
      +								obj[p][k] = stringToHash(obj[p][k]);
      +						} else if (typeof(obj[p]) == 'object') {
      +							arguments.callee(obj[p]);
      +						}
      +					}
      +				},
      +				
      +				TYPE_ABBREVIATION: TYPE_ABBREVIATION,
      +				TYPE_EXPANDO: TYPE_EXPANDO,
      +				
      +				/** Reference to another abbreviation or tag */
      +				TYPE_REFERENCE: TYPE_REFERENCE
      +			}
      +		})()
      +	}
      +	
      +})();
      +
      +if ('zen_settings' in this || zen_settings) {
      +	// first we need to expand some strings into hashes
      +	zen_coding.settings_parser.createMaps(zen_settings);
      +	if ('my_zen_settings' in this) {
      +		// we need to extend default settings with user's
      +		zen_coding.settings_parser.createMaps(my_zen_settings);
      +		zen_coding.settings_parser.extend(zen_settings, my_zen_settings);
      +	}
      +	
      +	// now we need to parse final set of settings
      +	zen_coding.settings_parser.parse(zen_settings);
      +}/**
      + * High-level editor interface which communicates with other editor (like 
      + * TinyMCE, CKEditor, etc.) or browser.
      + * Before using any of editor's methods you should initialize it with
      + * <code>editor.setTarget(elem)</code> method and pass reference to 
      + * &lt;textarea&gt; element.
      + * @example
      + * var textarea = document.getElemenetsByTagName('textarea')[0];
      + * editor.setTarget(textarea);
      + * //now you are ready to use editor object
      + * editor.getSelectionRange() 
      + * 
      + * @author Sergey Chikuyonok (serge.che@gmail.com)
      + * @link http://chikuyonok.ru
      + * @include "../../aptana/lib/zen_coding.js"
      + */
      +var zen_editor = (function(){
      +	/** @param {Element} Source element */
      +	var target = null,
      +		/** Textual placeholder that identifies cursor position in pasted text */
      +		caret_placeholder = '|';
      +	
      +		
      +	// different browser uses different newlines, so we have to figure out
      +	// native browser newline and sanitize incoming text with them
      +	var tx = document.createElement('textarea');
      +	tx.value = '\n';
      +	zen_coding.setNewline(tx.value);
      +	tx = null;
      +	
      +	/**
      +	 * Returns content of current target element
      +	 */
      +	function getContent() {
      +		return target.value || '';
      +	}
      +	
      +	/**
      +	 * Returns selection indexes from element
      +	 */
      +	function getSelectionRange() {
      +		if ('selectionStart' in target) { // W3C's DOM
      +			var length = target.selectionEnd - target.selectionStart;
      +			return {
      +				start: target.selectionStart, 
      +				end: target.selectionEnd 
      +			};
      +		} else if (document.selection) { // IE
      +			target.focus();
      +	 
      +			var range = document.selection.createRange();
      +			
      +			if (range === null) {
      +				return {
      +					start: 0, 
      +					end: getContent().length
      +				};
      +			}
      +	 
      +			var re = target.createTextRange();
      +			var rc = re.duplicate();
      +			re.moveToBookmark(range.getBookmark());
      +			rc.setEndPoint('EndToStart', re);
      +	 
      +			return {
      +				start: rc.text.length, 
      +				end: rc.text.length + range.text.length
      +			};
      +		} else {
      +			return null;
      +		}
      +	}
      +	
      +	/**
      +	 * Creates text selection on target element
      +	 * @param {Number} start
      +	 * @param {Number} end
      +	 */
      +	function createSelection(start, end) {
      +		// W3C's DOM
      +		if (typeof(end) == 'undefined')
      +			end = start;
      +			
      +		if ('setSelectionRange' in target) {
      +			target.setSelectionRange(start, end);
      +		} else if ('createTextRange' in target) {
      +			var t = target.createTextRange();
      +			
      +			t.collapse(true);
      +			var delta = zen_coding.splitByLines(getContent().substring(0, start)).length - 1;
      +			
      +			// IE has an issue with handling newlines while creating selection,
      +			// so we need to adjust start and end indexes
      +			end -= delta + zen_coding.splitByLines(getContent().substring(start, end)).length - 1;
      +			start -= delta;
      +			
      +			t.moveStart('character', start);
      +			t.moveEnd('character', end - start);
      +			t.select();
      +		}
      +	}
      +	
      +	/**
      +	 * Find start and end index of text line for <code>from</code> index
      +	 * @param {String} text 
      +	 * @param {Number} from 
      +	 */
      +	function findNewlineBounds(text, from) {
      +		var len = text.length,
      +			start = 0,
      +			end = len - 1;
      +		
      +		// search left
      +		for (var i = from - 1; i > 0; i--) {
      +			var ch = text.charAt(i);
      +			if (ch == '\n' || ch == '\r') {
      +				start = i + 1;
      +				break;
      +			}
      +		}
      +		// search right
      +		for (var j = from; j < len; j++) {
      +			var ch = text.charAt(j);
      +			if (ch == '\n' || ch == '\r') {
      +				end = j;
      +				break;
      +			}
      +		}
      +		
      +		return {start: start, end: end};
      +	}
      +	
      +	/**
      +	 * Returns current caret position
      +	 */
      +	function getCaretPos() {
      +		var selection = getSelectionRange();
      +		return selection ? selection.start : null;
      +	}
      +	
      +	/**
      +	 * Returns whitrespace padding of string
      +	 * @param {String} str String line
      +	 * @return {String}
      +	 */
      +	function getStringPadding(str) {
      +		return (str.match(/^(\s+)/) || [''])[0];
      +	}
      +	
      +	return {
      +		setTarget: function(elem) {
      +			target = elem;
      +		},
      +		
      +		getSelectionRange: getSelectionRange,
      +		createSelection: createSelection,
      +		
      +		/**
      +		 * Returns current line's start and end indexes
      +		 */
      +		getCurrentLineRange: function() {
      +			var caret_pos = getCaretPos(),
      +				content = getContent();
      +			if (caret_pos === null) return null;
      +			
      +			return findNewlineBounds(content, caret_pos);
      +		},
      +		
      +		/**
      +		 * Returns current caret position
      +		 * @return {Number}
      +		 */
      +		getCaretPos: getCaretPos,
      +		
      +		/**
      +		 * Returns content of current line
      +		 * @return {String}
      +		 */
      +		getCurrentLine: function() {
      +			var range = this.getCurrentLineRange();
      +			return range.start < range.end ? this.getContent().substring(range.start, range.end) : '';
      +		},
      +		
      +		/**
      +		 * Replace editor's content or it's part (from <code>start</code> to 
      +		 * <code>end</code> index). If <code>value</code> contains 
      +		 * <code>caret_placeholder</code>, the editor will put caret into 
      +		 * this position. If you skip <code>start</code> and <code>end</code>
      +		 * arguments, the whole target's content will be replaced with 
      +		 * <code>value</code>. 
      +		 * 
      +		 * If you pass <code>start</code> argument only,
      +		 * the <code>value</code> will be placed at <code>start</code> string 
      +		 * index of current content. 
      +		 * 
      +		 * If you pass <code>start</code> and <code>end</code> arguments,
      +		 * the corresponding substring of current target's content will be 
      +		 * replaced with <code>value</code>. 
      +		 * @param {String} value Content you want to paste
      +		 * @param {Number} [start] Start index of editor's content
      +		 * @param {Number} [end] End index of editor's content
      +		 */
      +		replaceContent: function(value, start, end) {
      +			var content = getContent(),
      +				caret_pos = getCaretPos(),
      +				has_start = typeof(start) !== 'undefined',
      +				has_end = typeof(end) !== 'undefined';
      +				
      +			// indent new value
      +			value = zen_coding.padString(value, getStringPadding(this.getCurrentLine()));
      +			
      +			// find new caret position
      +			var new_pos = value.indexOf(caret_placeholder);
      +			if (new_pos != -1) {
      +				caret_pos = (start || 0) + new_pos;
      +				value = value.split(caret_placeholder).join('');
      +			} else {
      +				caret_pos += value.length;
      +			}
      +			
      +			try {
      +				if (has_start && has_end) {
      +					content = content.substring(0, start) + value + content.substring(end);
      +				} else if (has_start) {
      +					content = content.substring(0, start) + value + content.substring(start);
      +				}
      +				
      +				target.value = content;
      +				createSelection(caret_pos, caret_pos);
      +			} catch(e){}
      +		},
      +		
      +		/**
      +		 * Returns editor's content
      +		 * @return {String}
      +		 */
      +		getContent: getContent
      +	}
      +})();
      + /**
      + * Middleware layer that communicates between editor and Zen Coding.
      + * This layer describes all available Zen Coding actions, like 
      + * "Expand Abbreviation".
      + * @author Sergey Chikuyonok (serge.che@gmail.com)
      + * @link http://chikuyonok.ru
      + * 
      + * @include "editor.js"
      + * @include "../../aptana/lib/html_matcher.js"
      + * @include "../../aptana/lib/zen_coding.js"
      + */
      +
      +/**
      + * Search for abbreviation in editor from current caret position
      + * @param {zen_editor} editor Editor instance
      + * @return {String|null}
      + */
      +function findAbbreviation(editor) {
      +	var range = editor.getSelectionRange();
      +	if (range.start != range.end) {
      +		// abbreviation is selected by user
      +		return editor.getContent().substring(range.start, range.end);
      +	}
      +	
      +	// search for new abbreviation from current caret position
      +	var cur_line = editor.getCurrentLineRange();
      +	return zen_coding.extractAbbreviation(editor.getContent().substring(cur_line.start, range.start));
      +}
      +
      +/**
      + * Find from current caret position and expand abbreviation in editor
      + * @param {zen_editor} editor Editor instance
      + * @param {String} type Syntax type (html, css, etc.)
      + * @param {String} profile_name Output profile name (html, xml, xhtml)
      + * @return {Boolean} Returns <code>true</code> if abbreviation was expanded 
      + * successfully
      + */
      +function expandAbbreviation(editor, type, profile_name) {
      +	profile_name = profile_name || 'xhtml';
      +	
      +	var caret_pos = editor.getSelectionRange().end,
      +		abbr,
      +		content = '';
      +		
      +	if ( (abbr = findAbbreviation(editor)) ) {
      +		content = zen_coding.expandAbbreviation(abbr, type, profile_name);
      +		if (content) {
      +			editor.replaceContent(content, caret_pos - abbr.length, caret_pos);
      +			return true;
      +		}
      +	}
      +	
      +	return false;
      +}
      +
      +/**
      + * A special version of <code>expandAbbreviation</code> function: if it can't
      + * find abbreviation, it will place Tab character at caret position
      + * @param {zen_editor} editor Editor instance
      + * @param {String} type Syntax type (html, css, etc.)
      + * @param {String} profile_name Output profile name (html, xml, xhtml)
      + */
      +function expandAbbreviationWithTab(editor, type, profile_name) {
      +	if (!expandAbbreviation(editor, type, profile_name))
      +		editor.replaceContent('\t', editor.getCaretPos());
      +}
      +
      +/**
      + * Find and select HTML tag pair
      + * @param {zen_editor} editor Editor instance
      + * @param {String} [direction] Direction of pair matching: 'in' or 'out'. 
      + * Default is 'out'
      + */
      +function matchPair(editor, direction) {
      +	direction = (direction || 'out').toLowerCase();
      +	
      +	var range = editor.getSelectionRange(),
      +		cursor = range.end,
      +		range_start = range.start, 
      +		range_end = range.end,
      +//		content = zen_coding.splitByLines(editor.getContent()).join('\n'),
      +		content = editor.getContent(),
      +		range = null,
      +		_r,
      +	
      +		old_open_tag = HTMLPairMatcher.last_match['opening_tag'],
      +		old_close_tag = HTMLPairMatcher.last_match['closing_tag'];
      +		
      +	if (direction == 'in' && old_open_tag && range_start != range_end) {
      +//		user has previously selected tag and wants to move inward
      +		if (!old_close_tag) {
      +//			unary tag was selected, can't move inward
      +			return false;
      +		} else if (old_open_tag.start == range_start) {
      +			if (content[old_open_tag.end] == '<') {
      +//				test if the first inward tag matches the entire parent tag's content
      +				_r = HTMLPairMatcher.find(content, old_open_tag.end + 1);
      +				if (_r[0] == old_open_tag.end && _r[1] == old_close_tag.start) {
      +					range = HTMLPairMatcher(content, old_open_tag.end + 1);
      +				} else {
      +					range = [old_open_tag.end, old_close_tag.start];
      +				}
      +			} else {
      +				range = [old_open_tag.end, old_close_tag.start];
      +			}
      +		} else {
      +			var new_cursor = content.substring(0, old_close_tag.start).indexOf('<', old_open_tag.end);
      +			var search_pos = new_cursor != -1 ? new_cursor + 1 : old_open_tag.end;
      +			range = HTMLPairMatcher(content, search_pos);
      +		}
      +	} else {
      +		range = HTMLPairMatcher(content, cursor);
      +	}
      +	
      +	if (range !== null && range[0] != -1) {
      +//		alert(range[0] + ', '+ range[1]);
      +		editor.createSelection(range[0], range[1]);
      +		return true;
      +	} else {
      +		return false;
      +	}
      +}
      +
      +/**
      + * Wraps content with abbreviation
      + * @param {zen_editor} Editor instance
      + * @param {String} type Syntax type (html, css, etc.)
      + * @param {String} profile_name Output profile name (html, xml, xhtml)
      + */
      +function wrapWithAbbreviation(editor, abbr, type, profile_name) {
      +	profile_name = profile_name || 'xhtml';
      +	
      +	var range = editor.getSelectionRange(),
      +		start_offset = range.start,
      +		end_offset = range.end,
      +		content = editor.getContent();
      +		
      +		
      +	if (!abbr)
      +		return null; 
      +	
      +	if (start_offset == end_offset) {
      +		// no selection, find tag pair
      +		range = HTMLPairMatcher(content, start_offset);
      +		
      +		if (!range || range[0] == -1) // nothing to wrap
      +			return null;
      +			
      +		start_offset = range[0];
      +		end_offset = range[1];
      +			
      +		// narrow down selection until first non-space character
      +		var re_space = /\s|\n|\r/;
      +		function isSpace(ch) {
      +			return re_space.test(ch);
      +		}
      +		
      +		while (start_offset < end_offset) {
      +			if (!isSpace(content.charAt(start_offset)))
      +				break;
      +				
      +			start_offset++;
      +		}
      +		
      +		while (end_offset > start_offset) {
      +			end_offset--;
      +			if (!isSpace(content.charAt(end_offset))) {
      +				end_offset++;
      +				break;
      +			}
      +		}
      +			
      +	}
      +	
      +	var new_content = content.substring(start_offset, end_offset),
      +		result = zen_coding.wrapWithAbbreviation(abbr, unindent(editor, new_content), type, profile_name);
      +	
      +	if (result) {
      +		editor.createSelection(end_offset);
      +		editor.replaceContent(result, start_offset, end_offset);
      +	}
      +}
      +
      +/**
      + * Unindent content, thus preparing text for tag wrapping
      + * @param {zen_editor} Editor instance
      + * @param {String} text
      + * @return {String}
      + */
      +function unindent(editor, text) {
      +	var pad = getCurrentLinePadding(editor);
      +	var lines = zen_coding.splitByLines(text);
      +	for (var i = 0; i < lines.length; i++) {
      +		if (lines[i].search(pad) == 0)
      +			lines[i] = lines[i].substr(pad.length);
      +	}
      +	
      +	return lines.join(zen_coding.getNewline());
      +}
      +
      +/**
      + * Returns padding of current editor's line
      + * @param {zen_editor} Editor instance
      + * @return {String}
      + */
      +function getCurrentLinePadding(editor) {
      +	return (editor.getCurrentLine().match(/^(\s+)/) || [''])[0];
      +}
      +
      +/**
      + * Search for new caret insertion point
      + * @param {zen_editor} editor Editor instance
      + * @param {Number} Search increment: -1 — search left, 1 — search right
      + * @param {Number} Initial offset relative to current caret position
      + * @return {Number} Returns -1 if insertion point wasn't found
      + */
      +function findNewEditPoint(editor, inc, offset) {
      +	inc = inc || 1;
      +	offset = offset || 0;
      +	var cur_point = editor.getCaretPos() + offset,
      +		content = editor.getContent(),
      +		max_len = content.length,
      +		next_point = -1,
      +		re_empty_line = /^\s+$/;
      +	
      +	function ch(ix) {
      +		return content.charAt(ix);
      +	}
      +	
      +	function getLine(ix) {
      +		var start = ix;
      +		while (start >= 0) {
      +			var c = ch(start);
      +			if (c == '\n' || c == '\r')
      +				break;
      +			start--;
      +		}
      +		
      +		return content.substring(start, ix);
      +	}
      +		
      +	while (cur_point < max_len && cur_point > 0) {
      +		cur_point += inc;
      +		var cur_char = ch(cur_point),
      +			next_char = ch(cur_point + 1),
      +			prev_char = ch(cur_point - 1);
      +			
      +		switch (cur_char) {
      +			case '"':
      +			case '\'':
      +				if (next_char == cur_char && prev_char == '=') {
      +					// empty attribute
      +					next_point = cur_point + 1;
      +				}
      +				break;
      +			case '>':
      +				if (next_char == '<') {
      +					// between tags
      +					next_point = cur_point + 1;
      +				}
      +				break;
      +			case '\n':
      +			case '\r':
      +				// empty line
      +				if (re_empty_line.test(getLine(cur_point - 1))) {
      +					next_point = cur_point;
      +				}
      +				break;
      +		}
      +		
      +		if (next_point != -1)
      +			break;
      +	}
      +	
      +	return next_point;
      +}
      +
      +/**
      + * Move caret to previous edit point
      + * @param {zen_editor} editor Editor instance
      + */
      +function prevEditPoint(editor) {
      +	var cur_pos = editor.getCaretPos(),
      +		new_point = findNewEditPoint(editor, -1);
      +		
      +	if (new_point == cur_pos)
      +		// we're still in the same point, try searching from the other place
      +		new_point = findNewEditPoint(editor, -1, -2);
      +	
      +	if (new_point != -1) 
      +		editor.createSelection(new_point);
      +}
      +
      +/**
      + * Move caret to next edit point
      + * @param {zen_editor} editor Editor instance
      + */
      +function nextEditPoint(editor) {
      +	var new_point = findNewEditPoint(editor, 1);
      +	if (new_point != -1)
      +		editor.createSelection(new_point);
      +}
      +
      +/**
      + * Inserts newline character with proper indentation
      + * @param {zen_editor} editor Editor instance
      + * @param {String} mode Syntax mode (only 'html' is implemented)
      + */
      +function insertFormattedNewline(editor, mode) {
      +	mode = mode || 'html';
      +	var pad = getCurrentLinePadding(editor),
      +		caret_pos = editor.getCaretPos();
      +		
      +	function insert_nl() {
      +		editor.replaceContent('\n', caret_pos);
      +	}
      +	
      +	switch (mode) {
      +		case 'html':
      +			// let's see if we're breaking newly created tag
      +			var pair = HTMLPairMatcher.getTags(editor.getContent(), editor.getCaretPos());
      +			
      +			if (pair[0] && pair[1] && pair[0].type == 'tag' && pair[0].end == caret_pos && pair[1].start == caret_pos) {
      +				editor.replaceContent('\n\t|\n', caret_pos);
      +			} else {
      +				insert_nl();
      +			}
      +			break;
      +		default:
      +			insert_nl();
      +	}
      +}
      +
      +/**
      + * Select line under cursor
      + * @param {zen_editor} editor Editor instance
      + */
      +function selectLine(editor) {
      +	var range = editor.getCurrentLineRange();
      +	editor.createSelection(range.start, range.end);
      +}/**
      + * http://www.openjs.com/scripts/events/keyboard_shortcuts/
      + * Version : 2.01.B
      + * By Binny V A
      + * License : BSD
      + */
      +shortcut = {
      +	'all_shortcuts':{},//All the shortcuts are stored in this array
      +	'add': function(shortcut_combination,callback,opt) {
      +		var is_opera = !!window.opera,
      +			is_mac = /mac\s+os/i.test(navigator.userAgent);
      +		
      +		//Provide a set of default options
      +		var default_options = {
      +			'type':is_opera ? 'keypress' : 'keydown',
      +			'propagate':false,
      +			'disable_in_input':false,
      +			'target':document,
      +			'keycode':false
      +		}
      +		if(!opt) opt = default_options;
      +		else {
      +			for(var dfo in default_options) {
      +				if(typeof opt[dfo] == 'undefined') opt[dfo] = default_options[dfo];
      +			}
      +		}
      +
      +		var ele = opt.target;
      +		if(typeof opt.target == 'string') ele = document.getElementById(opt.target);
      +		var ths = this;
      +		shortcut_combination = shortcut_combination.toLowerCase();
      +
      +		//The function to be called at keypress
      +		var func = function(e) {
      +			e = e || window.event;
      +			var code;
      +			
      +			if(opt['disable_in_input']) { //Don't enable shortcut keys in Input, Textarea fields
      +				var element;
      +				if(e.target) element=e.target;
      +				else if(e.srcElement) element=e.srcElement;
      +				if(element.nodeType==3) element=element.parentNode;
      +
      +				if(element.tagName == 'INPUT' || element.tagName == 'TEXTAREA') return;
      +			}
      +	
      +			//Find Which key is pressed
      +			if (e.keyCode) code = e.keyCode;
      +			else if (e.which) code = e.which;
      +			var character = String.fromCharCode(code).toLowerCase();
      +			
      +			if(code == 188) character=","; //If the user presses , when the type is onkeydown
      +			if(code == 190) character="."; //If the user presses , when the type is onkeydown
      +
      +			var keys = shortcut_combination.split("+");
      +			//Key Pressed - counts the number of valid keypresses - if it is same as the number of keys, the shortcut function is invoked
      +			var kp = 0;
      +			
      +			//Work around for stupid Shift key bug created by using lowercase - as a result the shift+num combination was broken
      +			var shift_nums = {
      +				"`":"~",
      +				"1":"!",
      +				"2":"@",
      +				"3":"#",
      +				"4":"$",
      +				"5":"%",
      +				"6":"^",
      +				"7":"&",
      +				"8":"*",
      +				"9":"(",
      +				"0":")",
      +				"-":"_",
      +				"=":"+",
      +				";":":",
      +				"'":"\"",
      +				",":"<",
      +				".":">",
      +				"/":"?",
      +				"\\":"|"
      +			}
      +			//Special Keys - and their codes
      +			var special_keys = {
      +				'esc':27,
      +				'escape':27,
      +				'tab':9,
      +				'space':32,
      +				'return':13,
      +				'enter':13,
      +				'backspace':8,
      +	
      +				'scrolllock':145,
      +				'scroll_lock':145,
      +				'scroll':145,
      +				'capslock':20,
      +				'caps_lock':20,
      +				'caps':20,
      +				'numlock':144,
      +				'num_lock':144,
      +				'num':144,
      +				
      +				'pause':19,
      +				'break':19,
      +				
      +				'insert':45,
      +				'home':36,
      +				'delete':46,
      +				'end':35,
      +				
      +				'pageup':33,
      +				'page_up':33,
      +				'pu':33,
      +	
      +				'pagedown':34,
      +				'page_down':34,
      +				'pd':34,
      +				
      +				'plus': 187,
      +				'minus': 189,
      +	
      +				'left':37,
      +				'up':38,
      +				'right':39,
      +				'down':40,
      +	
      +				'f1':112,
      +				'f2':113,
      +				'f3':114,
      +				'f4':115,
      +				'f5':116,
      +				'f6':117,
      +				'f7':118,
      +				'f8':119,
      +				'f9':120,
      +				'f10':121,
      +				'f11':122,
      +				'f12':123
      +			}
      +	
      +			var modifiers = { 
      +				shift: { wanted:false, pressed:false},
      +				ctrl : { wanted:false, pressed:false},
      +				alt  : { wanted:false, pressed:false},
      +				meta : { wanted:false, pressed:false}	//Meta is Mac specific
      +			};
      +                        
      +			if(e.ctrlKey)	modifiers.ctrl.pressed = true;
      +			if(e.shiftKey)	modifiers.shift.pressed = true;
      +			if(e.altKey)	modifiers.alt.pressed = true;
      +			if(e.metaKey)   modifiers.meta.pressed = true;
      +            
      +			var k;
      +			for(var i=0; k=keys[i], i<keys.length; i++) {
      +				// Due to stupid Opera bug I have to swap Ctrl and Meta keys
      +				if (is_mac && is_opera) {
      +					if (k == 'ctrl' || k == 'control')
      +						k = 'meta';
      +					else if (k == 'meta')
      +						k = 'ctrl';
      +				} else if (!is_mac && k == 'meta') {
      +					k = 'ctrl';
      +				}
      +				
      +				//Modifiers
      +				if(k == 'ctrl' || k == 'control') {
      +					kp++;
      +					modifiers.ctrl.wanted = true;
      +
      +				} else if(k == 'shift') {
      +					kp++;
      +					modifiers.shift.wanted = true;
      +
      +				} else if(k == 'alt') {
      +					kp++;
      +					modifiers.alt.wanted = true;
      +				} else if(k == 'meta') {
      +					kp++;
      +					modifiers.meta.wanted = true;
      +				} else if(k.length > 1) { //If it is a special key
      +					if(special_keys[k] == code) kp++;
      +					
      +				} else if(opt['keycode']) {
      +					if(opt['keycode'] == code) kp++;
      +
      +				} else { //The special keys did not match
      +					if(character == k) kp++;
      +					else {
      +						if(shift_nums[character] && e.shiftKey) { //Stupid Shift key bug created by using lowercase
      +							character = shift_nums[character]; 
      +							if(character == k) kp++;
      +						}
      +					}
      +				}
      +			}
      +			
      +			if(kp == keys.length && 
      +						modifiers.ctrl.pressed == modifiers.ctrl.wanted &&
      +						modifiers.shift.pressed == modifiers.shift.wanted &&
      +						modifiers.alt.pressed == modifiers.alt.wanted &&
      +						modifiers.meta.pressed == modifiers.meta.wanted) {
      +				
      +				var result = callback(e);
      +	
      +				if(result !== true && !opt['propagate']) { //Stop the event
      +					//e.cancelBubble is supported by IE - this will kill the bubbling process.
      +					e.cancelBubble = true;
      +					e.returnValue = false;
      +	
      +					//e.stopPropagation works in Firefox.
      +					if (e.stopPropagation) {
      +						e.stopPropagation();
      +						e.preventDefault();
      +					}
      +					return false;
      +				}
      +			}
      +		}
      +		this.all_shortcuts[shortcut_combination] = {
      +			'callback':func, 
      +			'target':ele, 
      +			'event': opt['type']
      +		};
      +		//Attach the function with the event
      +		if(ele.addEventListener) ele.addEventListener(opt['type'], func, false);
      +		else if(ele.attachEvent) ele.attachEvent('on'+opt['type'], func);
      +		else ele['on'+opt['type']] = func;
      +	},
      +
      +	//Remove the shortcut - just specify the shortcut and I will remove the binding
      +	'remove':function(shortcut_combination) {
      +		shortcut_combination = shortcut_combination.toLowerCase();
      +		var binding = this.all_shortcuts[shortcut_combination];
      +		delete(this.all_shortcuts[shortcut_combination])
      +		if(!binding) return;
      +		var type = binding['event'];
      +		var ele = binding['target'];
      +		var callback = binding['callback'];
      +
      +		if(ele.detachEvent) ele.detachEvent('on'+type, callback);
      +		else if(ele.removeEventListener) ele.removeEventListener(type, callback, false);
      +		else ele['on'+type] = false;
      +	}
      +}/**
      + * Editor manager that handles all incoming events and runs Zen Coding actions.
      + * This manager is also used for setting up editor preferences
      + * @author Sergey Chikuyonok (serge.che@gmail.com)
      + * @link http://chikuyonok.ru
      + * 
      + * @include "actions.js"
      + * @include "editor.js"
      + * @include "shortcut.js"
      + */
      zen_textarea = (function(){ // should be global
      +	var default_options = {
      +		profile: 'xhtml',
      +		syntax: 'html',
      +		use_tab: false,
      +		pretty_break: false
      +	},
      +	
      +	mac_char_map = {
      +		'ctrl': '⌃',
      +		'control': '⌃',
      +		'meta': '⌘',
      +		'shift': '⇧',
      +		'alt': '⌥',
      +		'enter': '⏎',
      +		'tab': '⇥',
      +		'left': '←',
      +		'right': '→'
      +	},
      +	
      +	pc_char_map = {
      +		'left': '←',
      +		'right': '→'
      +	},
      +	
      +	shortcuts = {},
      +	is_mac = /mac\s+os/i.test(navigator.userAgent),
      +	
      +	/** Zen Coding parameter name/value regexp for getting options from element */
      +	re_param = /\bzc\-(\w+)\-(\w+)/g;
      +	
      +	/** @type {default_options} */
      +	var options = {};
      +	
      +	function copyOptions(opt) {
      +		opt = opt || {};
      +		var result = {};
      +		for (var p in default_options) if (default_options.hasOwnProperty(p)) {
      +			result[p] = (p in opt) ? opt[p] : default_options[p];
      +		}
      +		
      +		return result;
      +	}
      +	
      +	options = copyOptions();
      +	
      +	/**
      +	 * Makes first letter of string in uppercase
      +	 * @param {String} str
      +	 */
      +	function capitalize(str) {
      +		return str.charAt().toUpperCase() + str.substring(1);
      +	}
      +	
      +	function humanize(str) {
      +		return capitalize(str.replace(/_(\w)/g, function(s, p){return ' ' + p.toUpperCase()}));
      +	}
      +	
      +	function formatShortcut(char_map, glue) {
      +		var result = [];
      +		if (typeof(glue) == 'undefined')
      +			glue = '+';
      +			
      +		for (var p in shortcuts) if (shortcuts.hasOwnProperty(p)) {
      +			var keys = p.split('+'),
      +				ar = [],
      +				lp = p.toLowerCase();
      +				
      +			if (lp == 'tab' || lp == 'enter')
      +				continue;
      +				
      +			for (var i = 0; i < keys.length; i++) {
      +				var key = keys[i].toLowerCase();
      +				ar.push(key in char_map ? char_map[key] : capitalize(key));
      +			}
      +			
      +			result.push({
      +				'keystroke': ar.join(glue), 
      +				'action_name': humanize(shortcuts[p])
      +			});
      +		}
      +		
      +		return result;
      +	}
      +	
      +	
      +	/**
      +	 * Get Zen Coding options from element's class name
      +	 * @param {Element} elem
      +	 */
      +	function getOptionsFromElement(elem) {
      +		var param_str = elem.className || '',
      +			m,
      +			result = copyOptions(options);
      +			
      +		while ( (m = re_param.exec(param_str)) ) {
      +			var key = m[1].toLowerCase(),
      +				value = m[2].toLowerCase();
      +			
      +			if (value == 'true' || value == 'yes' || value == '1')
      +				value = true;
      +			else if (value == 'false' || value == 'no' || value == '0')
      +				value = false;
      +				
      +			result[key] = value;
      +		}
      +		
      +		return result;
      +	}
      +	
      +	/**
      +	 * Returns normalized action name
      +	 * @param {String} name Action name (like 'Expand Abbreviation')
      +	 * @return Normalized name for coding (like 'expand_abbreviation')
      +	 */
      +	function normalizeActionName(name) {
      +		return name
      +			.replace(/(^\s+|\s+$)/g, '') // remove trailing spaces
      +			.replace(/\s+/g, '_')
      +			.toLowerCase();
      +	}
      +	
      +	/**
      +	 * Runs actions called by user
      +	 * @param {String} name Normalized action name
      +	 * @param {Event} evt Event object
      +	 */
      +	function runAction(name, evt) {
      +		/** @type {Element} */
      +		var target_elem = evt.target || evt.srcElement,
      +			key_code = evt.keyCode || evt.which;
      +			
      +		if (target_elem && target_elem.nodeType == 1 && target_elem.nodeName == 'TEXTAREA') {
      +			zen_editor.setTarget(target_elem);
      +			
      +			var options = getOptionsFromElement(target_elem),
      +				syntax = options.syntax,
      +				profile_name = options.profile;
      +			
      +			switch (name) {
      +				case 'expand_abbreviation':
      +					if (key_code == 9) {
      +						if (options.use_tab)
      +							expandAbbreviationWithTab(zen_editor, syntax, profile_name);
      +						else
      +							// user pressed Tab key but it's forbidden in 
      +							// Zen Coding: bubble up event
      +							return true;
      +							
      +					} else {
      +						expandAbbreviation(zen_editor, syntax, profile_name);
      +					}
      +					break;
      +				case 'match_pair_inward':
      +				case 'balance_tag_inward':
      +					matchPair(zen_editor, 'in');
      +					break;
      +				case 'match_pair_outward':
      +				case 'balance_tag_outward':
      +					matchPair(zen_editor, 'out');
      +					break;
      +				case 'wrap_with_abbreviation':
      +					var abbr = prompt('Enter abbreviation', 'div');
      +					if (abbr)
      +						wrapWithAbbreviation(zen_editor, abbr, syntax, profile_name);
      +					break;
      +				case 'next_edit_point':
      +					nextEditPoint(zen_editor);
      +					break;
      +				case 'previous_edit_point':
      +				case 'prev_edit_point':
      +					prevEditPoint(zen_editor);
      +					break;
      +				case 'pretty_break':
      +				case 'format_line_break':
      +					if (key_code == 13) {
      +						if (options.pretty_break)
      +							insertFormattedNewline(zen_editor);
      +						else
      +							// user pressed Enter but it's forbidden in 
      +							// Zen Coding: bubble up event
      +							return true;
      +					} else {
      +						insertFormattedNewline(zen_editor);
      +					}
      +					break;
      +				case 'select_line':
      +					selectLine(zen_editor);
      +			}
      +		} else {
      +			// allow event bubbling
      +			return true;
      +		}
      +	}
      +	
      +	/**
      +	 * Bind shortcut to Zen Coding action
      +	 * @param {String} keystroke
      +	 * @param {String} action_name
      +	 */
      +	function addShortcut(keystroke, action_name) {
      +		action_name = normalizeActionName(action_name);
      +		shortcuts[keystroke.toLowerCase()] = action_name;
      +		shortcut.add(keystroke, function(evt){
      +			return runAction(action_name, evt);
      +		});
      +	}
      +	
      +	// add default shortcuts
      +	addShortcut('Meta+E', 'Expand Abbreviation');
      +	addShortcut('Tab', 'Expand Abbreviation');
      +	addShortcut('Meta+D', 'Balance Tag Outward');
      +	addShortcut('Shift+Meta+D', 'Balance Tag inward');
      +	addShortcut('Shift+Meta+A', 'Wrap with Abbreviation');
      +	addShortcut('Ctrl+RIGHT', 'Next Edit Point');
      +	addShortcut('Ctrl+LEFT', 'Previous Edit Point');
      +	addShortcut('Meta+L', 'Select Line');
      +	addShortcut('Enter', 'Format Line Break');
      +	
      +	
      +	return {
      +		shortcut: addShortcut,
      +		
      +		/**
      +		 * Removes shortcut binding
      +		 * @param {String} keystroke
      +		 */
      +		unbindShortcut: function(keystroke) {
      +			keystroke = keystroke.toLowerCase();
      +			if (keystroke in shortcuts)
      +				delete shortcuts[keystroke];
      +			shortcut.remove(keystroke);
      +		},
      +		
      +		/**
      +		 * Setup editor. Pass object with values defined in 
      +		 * <code>default_options</code>
      +		 */
      +		setup: function(opt) {
      +			options = copyOptions(opt);
      +		},
      +		
      +		/**
      +		 * Returns option value
      +		 */
      +		getOption: function(name) {
      +			return options[name];
      +		},
      +		
      +		/**
      +		 * Returns array of binded actions and their keystrokes
      +		 * @return {Array}
      +		 */
      +		getShortcuts: function() {
      +			return formatShortcut(is_mac ? mac_char_map : pc_char_map, is_mac ? '' : '+');
      +		},
      +		
      +		/**
      +		 * Show info window about Zen Coding
      +		 */
      +		showInfo: function() {
      +			var message = 'All textareas on this page are powered by Zen Coding project: ' +
      +					'a set of tools for fast HTML coding.\n\n' +
      +					'Available shortcuts:\n';
      +					
      +			var sh = this.getShortcuts(),
      +				actions = [];
      +				
      +			for (var i = 0; i < sh.length; i++) {
      +				actions.push(sh[i].keystroke + ' — ' + sh[i].action_name)
      +			}
      +			
      +			message += actions.join('\n') + '\n\n';
      +			message += 'More info on http://code.google.com/p/zen-coding/';
      +			
      +			alert(message);
      +			
      +		}
      +	}
      +})();	
      +})();
      diff --git a/usr/themes/default/404.php b/usr/themes/default/404.php
      new file mode 100644
      index 00000000..8cc1085c
      --- /dev/null
      +++ b/usr/themes/default/404.php
      @@ -0,0 +1,15 @@
      +<?php $this->need('header.php'); ?>
      +
      +    <div class="grid_10" id="content">
      +        <div class="post">
      +            <h2 class="entry_title">404 - <?php _e('页面没找到'); ?></h2>
      +            <p>
      +            <form method="post">
      +                <div><input type="text" name="s" class="text" size="20" /> <input type="submit" class="submit" value="<?php _e('搜索'); ?>" /></div>
      +            </form>
      +            </p>
      +        </div>
      +
      +    </div><!-- end #content-->
      +	<?php $this->need('sidebar.php'); ?>
      +	<?php $this->need('footer.php'); ?>
      diff --git a/usr/themes/default/archive.php b/usr/themes/default/archive.php
      new file mode 100644
      index 00000000..f774c13d
      --- /dev/null
      +++ b/usr/themes/default/archive.php
      @@ -0,0 +1,27 @@
      +<?php $this->need('header.php'); ?>
      +
      +    <div class="grid_10" id="content">
      +    <?php if ($this->have()): ?>
      +	<?php while($this->next()): ?>
      +        <div class="post">
      +			<h2 class="entry_title"><a href="<?php $this->permalink() ?>"><?php $this->title() ?></a></h2>
      +			<p class="entry_data">
      +				<span><?php _e('作者:'); ?><?php $this->author(); ?></span>
      +				<span><?php _e('发布时间:'); ?><?php $this->date('F j, Y'); ?></span>
      +				<?php _e('分类:'); ?><?php $this->category(','); ?>
      +			</p>
      +			<?php $this->content('阅读剩余部分...'); ?>
      +		</div>
      +	<?php endwhile; ?>
      +    <?php else: ?>
      +        <div class="post">
      +            <h2 class="entry_title"><?php _e('没有找到内容'); ?></h2>
      +        </div>
      +    <?php endif; ?>
      +
      +        <ol class="pages clearfix">
      +            <?php $this->pageNav(); ?>
      +        </ol>
      +    </div><!-- end #content-->
      +	<?php $this->need('sidebar.php'); ?>
      +	<?php $this->need('footer.php'); ?>
      diff --git a/usr/themes/default/comments.php b/usr/themes/default/comments.php
      new file mode 100644
      index 00000000..908007e1
      --- /dev/null
      +++ b/usr/themes/default/comments.php
      @@ -0,0 +1,44 @@
      +<div id="comments">
      +            <?php $this->comments()->to($comments); ?>
      +            <?php if ($comments->have()): ?>
      +			<h4><?php $this->commentsNum(_t('当前暂无评论'), _t('仅有一条评论'), _t('已有 %d 条评论')); ?> &raquo;</h4>
      +            
      +            <?php $comments->pageNav(); ?>
      +            
      +            <?php $comments->listComments(); ?>
      +            
      +            <?php endif; ?>
      +
      +            <?php if($this->allow('comment')): ?>
      +            <div id="<?php $this->respondId(); ?>" class="respond">
      +            
      +            <div class="cancel-comment-reply">
      +            <?php $comments->cancelReply(); ?>
      +            </div>
      +            
      +			<h4 id="response"><?php _e('添加新评论'); ?> &raquo;</h4>
      +			<form method="post" action="<?php $this->commentUrl() ?>" id="comment_form">
      +                <?php if($this->user->hasLogin()): ?>
      +				<p>Logged in as <a href="<?php $this->options->profileUrl(); ?>"><?php $this->user->screenName(); ?></a>. <a href="<?php $this->options->logoutUrl(); ?>" title="Logout"><?php _e('退出'); ?> &raquo;</a></p>
      +                <?php else: ?>
      +				<p>
      +                    <label for="author"><?php _e('称呼'); ?><span class="required">*</span></label>
      +					<input type="text" name="author" id="author" class="text" size="15" value="<?php $this->remember('author'); ?>" />
      +				</p>
      +				<p>
      +                    <label for="mail"><?php _e('电子邮件'); ?><?php if ($this->options->commentsRequireMail): ?><span class="required">*</span><?php endif; ?></label>
      +					<input type="text" name="mail" id="mail" class="text" size="15" value="<?php $this->remember('mail'); ?>" />
      +				</p>
      +				<p>
      +                    <label for="url"><?php _e('网站'); ?><?php if ($this->options->commentsRequireURL): ?><span class="required">*</span><?php endif; ?></label>
      +					<input type="text" name="url" id="url" class="text" size="15" value="<?php $this->remember('url'); ?>" />
      +				</p>
      +                <?php endif; ?>
      +				<p><textarea rows="5" cols="50" name="text" class="textarea"><?php $this->remember('text'); ?></textarea></p>
      +				<p><input type="submit" value="<?php _e('提交评论'); ?>" class="submit" /></p>
      +			</form>
      +            </div>
      +            <?php else: ?>
      +            <h4><?php _e('评论已关闭'); ?></h4>
      +            <?php endif; ?>
      +		</div>
      diff --git a/usr/themes/default/css/960.gs.css b/usr/themes/default/css/960.gs.css
      new file mode 100644
      index 00000000..5e8b293c
      --- /dev/null
      +++ b/usr/themes/default/css/960.gs.css
      @@ -0,0 +1,6 @@
      +/* reset.css */
      +html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}:focus{outline:0}ins{text-decoration:none}del{text-decoration:line-through}table{border-collapse:collapse;border-spacing:0}
      +/* text.css */
      +body{font:13px/1.5 'Helvetica Neue',Arial,'Liberation Sans',FreeSans,sans-serif}a:focus{outline:1px dotted}hr{border:0 #ccc solid;border-top-width:1px;clear:both;height:0}h1{font-size:25px}h2{font-size:23px}h3{font-size:21px}h4{font-size:19px}h5{font-size:17px}h6{font-size:15px}ol{list-style:decimal}ul{list-style:disc}li{margin-left:30px}p,dl,hr,h1,h2,h3,h4,h5,h6,ol,ul,pre,table,address,fieldset{margin-bottom:20px}
      +/* 960.css */
      +.container_12,.container_16{margin-left:auto;margin-right:auto;width:960px}.grid_1,.grid_2,.grid_3,.grid_4,.grid_5,.grid_6,.grid_7,.grid_8,.grid_9,.grid_10,.grid_11,.grid_12,.grid_13,.grid_14,.grid_15,.grid_16{display:inline;float:left;position:relative;margin-left:10px;margin-right:10px}.container_12 .grid_3,.container_16 .grid_4{width:220px}.container_12 .grid_6,.container_16 .grid_8{width:460px}.container_12 .grid_9,.container_16 .grid_12{width:700px}.container_12 .grid_12,.container_16 .grid_16{width:940px}.alpha{margin-left:0}.omega{margin-right:0}.container_12 .grid_1{width:60px}.container_12 .grid_2{width:140px}.container_12 .grid_4{width:300px}.container_12 .grid_5{width:380px}.container_12 .grid_7{width:540px}.container_12 .grid_8{width:620px}.container_12 .grid_10{width:780px}.container_12 .grid_11{width:860px}.container_16 .grid_1{width:40px}.container_16 .grid_2{width:100px}.container_16 .grid_3{width:160px}.container_16 .grid_5{width:280px}.container_16 .grid_6{width:340px}.container_16 .grid_7{width:400px}.container_16 .grid_9{width:520px}.container_16 .grid_10{width:580px}.container_16 .grid_11{width:640px}.container_16 .grid_13{width:760px}.container_16 .grid_14{width:820px}.container_16 .grid_15{width:880px}.container_12 .prefix_3,.container_16 .prefix_4{padding-left:240px}.container_12 .prefix_6,.container_16 .prefix_8{padding-left:480px}.container_12 .prefix_9,.container_16 .prefix_12{padding-left:720px}.container_12 .prefix_1{padding-left:80px}.container_12 .prefix_2{padding-left:160px}.container_12 .prefix_4{padding-left:320px}.container_12 .prefix_5{padding-left:400px}.container_12 .prefix_7{padding-left:560px}.container_12 .prefix_8{padding-left:640px}.container_12 .prefix_10{padding-left:800px}.container_12 .prefix_11{padding-left:880px}.container_16 .prefix_1{padding-left:60px}.container_16 .prefix_2{padding-left:120px}.container_16 .prefix_3{padding-left:180px}.container_16 .prefix_5{padding-left:300px}.container_16 .prefix_6{padding-left:360px}.container_16 .prefix_7{padding-left:420px}.container_16 .prefix_9{padding-left:540px}.container_16 .prefix_10{padding-left:600px}.container_16 .prefix_11{padding-left:660px}.container_16 .prefix_13{padding-left:780px}.container_16 .prefix_14{padding-left:840px}.container_16 .prefix_15{padding-left:900px}.container_12 .suffix_3,.container_16 .suffix_4{padding-right:240px}.container_12 .suffix_6,.container_16 .suffix_8{padding-right:480px}.container_12 .suffix_9,.container_16 .suffix_12{padding-right:720px}.container_12 .suffix_1{padding-right:80px}.container_12 .suffix_2{padding-right:160px}.container_12 .suffix_4{padding-right:320px}.container_12 .suffix_5{padding-right:400px}.container_12 .suffix_7{padding-right:560px}.container_12 .suffix_8{padding-right:640px}.container_12 .suffix_10{padding-right:800px}.container_12 .suffix_11{padding-right:880px}.container_16 .suffix_1{padding-right:60px}.container_16 .suffix_2{padding-right:120px}.container_16 .suffix_3{padding-right:180px}.container_16 .suffix_5{padding-right:300px}.container_16 .suffix_6{padding-right:360px}.container_16 .suffix_7{padding-right:420px}.container_16 .suffix_9{padding-right:540px}.container_16 .suffix_10{padding-right:600px}.container_16 .suffix_11{padding-right:660px}.container_16 .suffix_13{padding-right:780px}.container_16 .suffix_14{padding-right:840px}.container_16 .suffix_15{padding-right:900px}.container_12 .push_3,.container_16 .push_4{left:240px}.container_12 .push_6,.container_16 .push_8{left:480px}.container_12 .push_9,.container_16 .push_12{left:720px}.container_12 .push_1{left:80px}.container_12 .push_2{left:160px}.container_12 .push_4{left:320px}.container_12 .push_5{left:400px}.container_12 .push_7{left:560px}.container_12 .push_8{left:640px}.container_12 .push_10{left:800px}.container_12 .push_11{left:880px}.container_16 .push_1{left:60px}.container_16 .push_2{left:120px}.container_16 .push_3{left:180px}.container_16 .push_5{left:300px}.container_16 .push_6{left:360px}.container_16 .push_7{left:420px}.container_16 .push_9{left:540px}.container_16 .push_10{left:600px}.container_16 .push_11{left:660px}.container_16 .push_13{left:780px}.container_16 .push_14{left:840px}.container_16 .push_15{left:900px}.container_12 .pull_3,.container_16 .pull_4{left:-240px}.container_12 .pull_6,.container_16 .pull_8{left:-480px}.container_12 .pull_9,.container_16 .pull_12{left:-720px}.container_12 .pull_1{left:-80px}.container_12 .pull_2{left:-160px}.container_12 .pull_4{left:-320px}.container_12 .pull_5{left:-400px}.container_12 .pull_7{left:-560px}.container_12 .pull_8{left:-640px}.container_12 .pull_10{left:-800px}.container_12 .pull_11{left:-880px}.container_16 .pull_1{left:-60px}.container_16 .pull_2{left:-120px}.container_16 .pull_3{left:-180px}.container_16 .pull_5{left:-300px}.container_16 .pull_6{left:-360px}.container_16 .pull_7{left:-420px}.container_16 .pull_9{left:-540px}.container_16 .pull_10{left:-600px}.container_16 .pull_11{left:-660px}.container_16 .pull_13{left:-780px}.container_16 .pull_14{left:-840px}.container_16 .pull_15{left:-900px}.clear{clear:both;display:block;overflow:hidden;visibility:hidden;width:0;height:0}.clearfix:after{clear:both;content:' ';display:block;font-size:0;line-height:0;visibility:hidden;width:0;height:0}* html .clearfix{height:1%}
      \ No newline at end of file
      diff --git a/usr/themes/default/css/uncompressed/960.css b/usr/themes/default/css/uncompressed/960.css
      new file mode 100644
      index 00000000..0ff24f8c
      --- /dev/null
      +++ b/usr/themes/default/css/uncompressed/960.css
      @@ -0,0 +1,606 @@
      +/*
      +	960 Grid System ~ Core CSS.
      +	Learn more ~ http://960.gs/
      +
      +	Licensed under GPL and MIT.
      +*/
      +
      +/* `Containers
      +----------------------------------------------------------------------------------------------------*/
      +
      +.container_12,
      +.container_16 {
      +	margin-left: auto;
      +	margin-right: auto;
      +	width: 960px;
      +}
      +
      +/* `Grid >> Global
      +----------------------------------------------------------------------------------------------------*/
      +
      +.grid_1,
      +.grid_2,
      +.grid_3,
      +.grid_4,
      +.grid_5,
      +.grid_6,
      +.grid_7,
      +.grid_8,
      +.grid_9,
      +.grid_10,
      +.grid_11,
      +.grid_12,
      +.grid_13,
      +.grid_14,
      +.grid_15,
      +.grid_16 {
      +	display: inline;
      +	float: left;
      +	position: relative;
      +	margin-left: 10px;
      +	margin-right: 10px;
      +}
      +
      +.container_12 .grid_3,
      +.container_16 .grid_4 {
      +	width: 220px;
      +}
      +
      +.container_12 .grid_6,
      +.container_16 .grid_8 {
      +	width: 460px;
      +}
      +
      +.container_12 .grid_9,
      +.container_16 .grid_12 {
      +	width: 700px;
      +}
      +
      +.container_12 .grid_12,
      +.container_16 .grid_16 {
      +	width: 940px;
      +}
      +
      +/* `Grid >> Children (Alpha ~ First, Omega ~ Last)
      +----------------------------------------------------------------------------------------------------*/
      +
      +.alpha {
      +	margin-left: 0;
      +}
      +
      +.omega {
      +	margin-right: 0;
      +}
      +
      +/* `Grid >> 12 Columns
      +----------------------------------------------------------------------------------------------------*/
      +
      +.container_12 .grid_1 {
      +	width: 60px;
      +}
      +
      +.container_12 .grid_2 {
      +	width: 140px;
      +}
      +
      +.container_12 .grid_4 {
      +	width: 300px;
      +}
      +
      +.container_12 .grid_5 {
      +	width: 380px;
      +}
      +
      +.container_12 .grid_7 {
      +	width: 540px;
      +}
      +
      +.container_12 .grid_8 {
      +	width: 620px;
      +}
      +
      +.container_12 .grid_10 {
      +	width: 780px;
      +}
      +
      +.container_12 .grid_11 {
      +	width: 860px;
      +}
      +
      +/* `Grid >> 16 Columns
      +----------------------------------------------------------------------------------------------------*/
      +
      +.container_16 .grid_1 {
      +	width: 40px;
      +}
      +
      +.container_16 .grid_2 {
      +	width: 100px;
      +}
      +
      +.container_16 .grid_3 {
      +	width: 160px;
      +}
      +
      +.container_16 .grid_5 {
      +	width: 280px;
      +}
      +
      +.container_16 .grid_6 {
      +	width: 340px;
      +}
      +
      +.container_16 .grid_7 {
      +	width: 400px;
      +}
      +
      +.container_16 .grid_9 {
      +	width: 520px;
      +}
      +
      +.container_16 .grid_10 {
      +	width: 580px;
      +}
      +
      +.container_16 .grid_11 {
      +	width: 640px;
      +}
      +
      +.container_16 .grid_13 {
      +	width: 760px;
      +}
      +
      +.container_16 .grid_14 {
      +	width: 820px;
      +}
      +
      +.container_16 .grid_15 {
      +	width: 880px;
      +}
      +
      +/* `Prefix Extra Space >> Global
      +----------------------------------------------------------------------------------------------------*/
      +
      +.container_12 .prefix_3,
      +.container_16 .prefix_4 {
      +	padding-left: 240px;
      +}
      +
      +.container_12 .prefix_6,
      +.container_16 .prefix_8 {
      +	padding-left: 480px;
      +}
      +
      +.container_12 .prefix_9,
      +.container_16 .prefix_12 {
      +	padding-left: 720px;
      +}
      +
      +/* `Prefix Extra Space >> 12 Columns
      +----------------------------------------------------------------------------------------------------*/
      +
      +.container_12 .prefix_1 {
      +	padding-left: 80px;
      +}
      +
      +.container_12 .prefix_2 {
      +	padding-left: 160px;
      +}
      +
      +.container_12 .prefix_4 {
      +	padding-left: 320px;
      +}
      +
      +.container_12 .prefix_5 {
      +	padding-left: 400px;
      +}
      +
      +.container_12 .prefix_7 {
      +	padding-left: 560px;
      +}
      +
      +.container_12 .prefix_8 {
      +	padding-left: 640px;
      +}
      +
      +.container_12 .prefix_10 {
      +	padding-left: 800px;
      +}
      +
      +.container_12 .prefix_11 {
      +	padding-left: 880px;
      +}
      +
      +/* `Prefix Extra Space >> 16 Columns
      +----------------------------------------------------------------------------------------------------*/
      +
      +.container_16 .prefix_1 {
      +	padding-left: 60px;
      +}
      +
      +.container_16 .prefix_2 {
      +	padding-left: 120px;
      +}
      +
      +.container_16 .prefix_3 {
      +	padding-left: 180px;
      +}
      +
      +.container_16 .prefix_5 {
      +	padding-left: 300px;
      +}
      +
      +.container_16 .prefix_6 {
      +	padding-left: 360px;
      +}
      +
      +.container_16 .prefix_7 {
      +	padding-left: 420px;
      +}
      +
      +.container_16 .prefix_9 {
      +	padding-left: 540px;
      +}
      +
      +.container_16 .prefix_10 {
      +	padding-left: 600px;
      +}
      +
      +.container_16 .prefix_11 {
      +	padding-left: 660px;
      +}
      +
      +.container_16 .prefix_13 {
      +	padding-left: 780px;
      +}
      +
      +.container_16 .prefix_14 {
      +	padding-left: 840px;
      +}
      +
      +.container_16 .prefix_15 {
      +	padding-left: 900px;
      +}
      +
      +/* `Suffix Extra Space >> Global
      +----------------------------------------------------------------------------------------------------*/
      +
      +.container_12 .suffix_3,
      +.container_16 .suffix_4 {
      +	padding-right: 240px;
      +}
      +
      +.container_12 .suffix_6,
      +.container_16 .suffix_8 {
      +	padding-right: 480px;
      +}
      +
      +.container_12 .suffix_9,
      +.container_16 .suffix_12 {
      +	padding-right: 720px;
      +}
      +
      +/* `Suffix Extra Space >> 12 Columns
      +----------------------------------------------------------------------------------------------------*/
      +
      +.container_12 .suffix_1 {
      +	padding-right: 80px;
      +}
      +
      +.container_12 .suffix_2 {
      +	padding-right: 160px;
      +}
      +
      +.container_12 .suffix_4 {
      +	padding-right: 320px;
      +}
      +
      +.container_12 .suffix_5 {
      +	padding-right: 400px;
      +}
      +
      +.container_12 .suffix_7 {
      +	padding-right: 560px;
      +}
      +
      +.container_12 .suffix_8 {
      +	padding-right: 640px;
      +}
      +
      +.container_12 .suffix_10 {
      +	padding-right: 800px;
      +}
      +
      +.container_12 .suffix_11 {
      +	padding-right: 880px;
      +}
      +
      +/* `Suffix Extra Space >> 16 Columns
      +----------------------------------------------------------------------------------------------------*/
      +
      +.container_16 .suffix_1 {
      +	padding-right: 60px;
      +}
      +
      +.container_16 .suffix_2 {
      +	padding-right: 120px;
      +}
      +
      +.container_16 .suffix_3 {
      +	padding-right: 180px;
      +}
      +
      +.container_16 .suffix_5 {
      +	padding-right: 300px;
      +}
      +
      +.container_16 .suffix_6 {
      +	padding-right: 360px;
      +}
      +
      +.container_16 .suffix_7 {
      +	padding-right: 420px;
      +}
      +
      +.container_16 .suffix_9 {
      +	padding-right: 540px;
      +}
      +
      +.container_16 .suffix_10 {
      +	padding-right: 600px;
      +}
      +
      +.container_16 .suffix_11 {
      +	padding-right: 660px;
      +}
      +
      +.container_16 .suffix_13 {
      +	padding-right: 780px;
      +}
      +
      +.container_16 .suffix_14 {
      +	padding-right: 840px;
      +}
      +
      +.container_16 .suffix_15 {
      +	padding-right: 900px;
      +}
      +
      +/* `Push Space >> Global
      +----------------------------------------------------------------------------------------------------*/
      +
      +.container_12 .push_3,
      +.container_16 .push_4 {
      +	left: 240px;
      +}
      +
      +.container_12 .push_6,
      +.container_16 .push_8 {
      +	left: 480px;
      +}
      +
      +.container_12 .push_9,
      +.container_16 .push_12 {
      +	left: 720px;
      +}
      +
      +/* `Push Space >> 12 Columns
      +----------------------------------------------------------------------------------------------------*/
      +
      +.container_12 .push_1 {
      +	left: 80px;
      +}
      +
      +.container_12 .push_2 {
      +	left: 160px;
      +}
      +
      +.container_12 .push_4 {
      +	left: 320px;
      +}
      +
      +.container_12 .push_5 {
      +	left: 400px;
      +}
      +
      +.container_12 .push_7 {
      +	left: 560px;
      +}
      +
      +.container_12 .push_8 {
      +	left: 640px;
      +}
      +
      +.container_12 .push_10 {
      +	left: 800px;
      +}
      +
      +.container_12 .push_11 {
      +	left: 880px;
      +}
      +
      +/* `Push Space >> 16 Columns
      +----------------------------------------------------------------------------------------------------*/
      +
      +.container_16 .push_1 {
      +	left: 60px;
      +}
      +
      +.container_16 .push_2 {
      +	left: 120px;
      +}
      +
      +.container_16 .push_3 {
      +	left: 180px;
      +}
      +
      +.container_16 .push_5 {
      +	left: 300px;
      +}
      +
      +.container_16 .push_6 {
      +	left: 360px;
      +}
      +
      +.container_16 .push_7 {
      +	left: 420px;
      +}
      +
      +.container_16 .push_9 {
      +	left: 540px;
      +}
      +
      +.container_16 .push_10 {
      +	left: 600px;
      +}
      +
      +.container_16 .push_11 {
      +	left: 660px;
      +}
      +
      +.container_16 .push_13 {
      +	left: 780px;
      +}
      +
      +.container_16 .push_14 {
      +	left: 840px;
      +}
      +
      +.container_16 .push_15 {
      +	left: 900px;
      +}
      +
      +/* `Pull Space >> Global
      +----------------------------------------------------------------------------------------------------*/
      +
      +.container_12 .pull_3,
      +.container_16 .pull_4 {
      +	left: -240px;
      +}
      +
      +.container_12 .pull_6,
      +.container_16 .pull_8 {
      +	left: -480px;
      +}
      +
      +.container_12 .pull_9,
      +.container_16 .pull_12 {
      +	left: -720px;
      +}
      +
      +/* `Pull Space >> 12 Columns
      +----------------------------------------------------------------------------------------------------*/
      +
      +.container_12 .pull_1 {
      +	left: -80px;
      +}
      +
      +.container_12 .pull_2 {
      +	left: -160px;
      +}
      +
      +.container_12 .pull_4 {
      +	left: -320px;
      +}
      +
      +.container_12 .pull_5 {
      +	left: -400px;
      +}
      +
      +.container_12 .pull_7 {
      +	left: -560px;
      +}
      +
      +.container_12 .pull_8 {
      +	left: -640px;
      +}
      +
      +.container_12 .pull_10 {
      +	left: -800px;
      +}
      +
      +.container_12 .pull_11 {
      +	left: -880px;
      +}
      +
      +/* `Pull Space >> 16 Columns
      +----------------------------------------------------------------------------------------------------*/
      +
      +.container_16 .pull_1 {
      +	left: -60px;
      +}
      +
      +.container_16 .pull_2 {
      +	left: -120px;
      +}
      +
      +.container_16 .pull_3 {
      +	left: -180px;
      +}
      +
      +.container_16 .pull_5 {
      +	left: -300px;
      +}
      +
      +.container_16 .pull_6 {
      +	left: -360px;
      +}
      +
      +.container_16 .pull_7 {
      +	left: -420px;
      +}
      +
      +.container_16 .pull_9 {
      +	left: -540px;
      +}
      +
      +.container_16 .pull_10 {
      +	left: -600px;
      +}
      +
      +.container_16 .pull_11 {
      +	left: -660px;
      +}
      +
      +.container_16 .pull_13 {
      +	left: -780px;
      +}
      +
      +.container_16 .pull_14 {
      +	left: -840px;
      +}
      +
      +.container_16 .pull_15 {
      +	left: -900px;
      +}
      +
      +/* `Clear Floated Elements
      +----------------------------------------------------------------------------------------------------*/
      +
      +/* http://sonspring.com/journal/clearing-floats */
      +
      +.clear {
      +	clear: both;
      +	display: block;
      +	overflow: hidden;
      +	visibility: hidden;
      +	width: 0;
      +	height: 0;
      +}
      +
      +/* http://perishablepress.com/press/2008/02/05/lessons-learned-concerning-the-clearfix-css-hack */
      +
      +.clearfix:after {
      +	clear: both;
      +	content: ' ';
      +	display: block;
      +	font-size: 0;
      +	line-height: 0;
      +	visibility: hidden;
      +	width: 0;
      +	height: 0;
      +}
      +
      +* html .clearfix {
      +	height: 1%;
      +}
      \ No newline at end of file
      diff --git a/usr/themes/default/css/uncompressed/reset.css b/usr/themes/default/css/uncompressed/reset.css
      new file mode 100644
      index 00000000..13f8e0a1
      --- /dev/null
      +++ b/usr/themes/default/css/uncompressed/reset.css
      @@ -0,0 +1,53 @@
      +/* http://meyerweb.com/eric/tools/css/reset/ */
      +/* v1.0 | 20080212 */
      +
      +html, body, div, span, applet, object, iframe,
      +h1, h2, h3, h4, h5, h6, p, blockquote, pre,
      +a, abbr, acronym, address, big, cite, code,
      +del, dfn, em, font, img, ins, kbd, q, s, samp,
      +small, strike, strong, sub, sup, tt, var,
      +b, u, i, center,
      +dl, dt, dd, ol, ul, li,
      +fieldset, form, label, legend,
      +table, caption, tbody, tfoot, thead, tr, th, td {
      +	margin: 0;
      +	padding: 0;
      +	border: 0;
      +	outline: 0;
      +	font-size: 100%;
      +	vertical-align: baseline;
      +	background: transparent;
      +}
      +body {
      +	line-height: 1;
      +}
      +ol, ul {
      +	list-style: none;
      +}
      +blockquote, q {
      +	quotes: none;
      +}
      +blockquote:before, blockquote:after,
      +q:before, q:after {
      +	content: '';
      +	content: none;
      +}
      +
      +/* remember to define focus styles! */
      +:focus {
      +	outline: 0;
      +}
      +
      +/* remember to highlight inserts somehow! */
      +ins {
      +	text-decoration: none;
      +}
      +del {
      +	text-decoration: line-through;
      +}
      +
      +/* tables still need 'cellspacing="0"' in the markup */
      +table {
      +	border-collapse: collapse;
      +	border-spacing: 0;
      +}
      \ No newline at end of file
      diff --git a/usr/themes/default/css/uncompressed/text.css b/usr/themes/default/css/uncompressed/text.css
      new file mode 100644
      index 00000000..236d2132
      --- /dev/null
      +++ b/usr/themes/default/css/uncompressed/text.css
      @@ -0,0 +1,84 @@
      +/*
      +	960 Grid System ~ Text CSS.
      +	Learn more ~ http://960.gs/
      +
      +	Licensed under GPL and MIT.
      +*/
      +
      +/* `Basic HTML
      +----------------------------------------------------------------------------------------------------*/
      +
      +body {
      +	font: 13px/1.5 'Helvetica Neue', Arial, 'Liberation Sans', FreeSans, sans-serif;
      +}
      +
      +a:focus {
      +	outline: 1px dotted;
      +}
      +
      +hr {
      +	border: 0 #ccc solid;
      +	border-top-width: 1px;
      +	clear: both;
      +	height: 0;
      +}
      +
      +/* `Headings
      +----------------------------------------------------------------------------------------------------*/
      +
      +h1 {
      +	font-size: 25px;
      +}
      +
      +h2 {
      +	font-size: 23px;
      +}
      +
      +h3 {
      +	font-size: 21px;
      +}
      +
      +h4 {
      +	font-size: 19px;
      +}
      +
      +h5 {
      +	font-size: 17px;
      +}
      +
      +h6 {
      +	font-size: 15px;
      +}
      +
      +/* `Spacing
      +----------------------------------------------------------------------------------------------------*/
      +
      +ol {
      +	list-style: decimal;
      +}
      +
      +ul {
      +	list-style: disc;
      +}
      +
      +li {
      +	margin-left: 30px;
      +}
      +
      +p,
      +dl,
      +hr,
      +h1,
      +h2,
      +h3,
      +h4,
      +h5,
      +h6,
      +ol,
      +ul,
      +pre,
      +table,
      +address,
      +fieldset {
      +	margin-bottom: 20px;
      +}
      \ No newline at end of file
      diff --git a/usr/themes/default/footer.php b/usr/themes/default/footer.php
      new file mode 100644
      index 00000000..389c5609
      --- /dev/null
      +++ b/usr/themes/default/footer.php
      @@ -0,0 +1,9 @@
      +
      +
      +	<div class="grid_14" id="footer">
      +	<a href="<?php $this->options->siteurl(); ?>"><?php $this->options->title(); ?></a> <?php _e('is powered by'); ?> <a href="http://www.typecho.org">Typecho)))</a><br /><a href="<?php $this->options->feedUrl(); ?>"><?php _e('文章'); ?> RSS</a> and <a href="<?php $this->options->commentsFeedUrl(); ?>"><?php _e('评论'); ?> RSS</a>
      +	</div><!-- end #footer -->
      +</div>
      +<?php $this->footer(); ?>
      +</body>
      +</html>
      diff --git a/usr/themes/default/functions.php b/usr/themes/default/functions.php
      new file mode 100644
      index 00000000..e63e90d9
      --- /dev/null
      +++ b/usr/themes/default/functions.php
      @@ -0,0 +1,16 @@
      +<?php
      +
      +function themeConfig($form) {
      +    $logoUrl = new Typecho_Widget_Helper_Form_Element_Text('logoUrl', NULL, NULL, _t('站点LOGO地址'), _t('在这里填入一个图片URL地址, 以在网站标题前加上一个LOGO'));
      +    $form->addInput($logoUrl);
      +    
      +    $sidebarBlock = new Typecho_Widget_Helper_Form_Element_Checkbox('sidebarBlock', 
      +    array('ShowRecentPosts' => _t('显示最新文章'),
      +    'ShowRecentComments' => _t('显示最近回复'),
      +    'ShowCategory' => _t('显示分类'),
      +    'ShowArchive' => _t('显示归档'),
      +    'ShowOther' => _t('显示其它杂项')),
      +    array('ShowRecentPosts', 'ShowRecentComments', 'ShowCategory', 'ShowArchive', 'ShowOther'), _t('侧边栏显示'));
      +    
      +    $form->addInput($sidebarBlock->multiMode());
      +}
      diff --git a/usr/themes/default/header.php b/usr/themes/default/header.php
      new file mode 100644
      index 00000000..3280cf5e
      --- /dev/null
      +++ b/usr/themes/default/header.php
      @@ -0,0 +1,40 @@
      +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
      +<html xmlns="http://www.w3.org/1999/xhtml">
      +<head profile="http://gmpg.org/xfn/11">
      +<meta http-equiv="content-type" content="text/html; charset=<?php $this->options->charset(); ?>" />
      +<title><?php $this->archiveTitle(' &raquo; ', '', ' - '); ?><?php $this->options->title(); ?></title>
      +
      +<!-- 使用url函数转换相关路径 -->
      +<link rel="stylesheet" type="text/css" media="all" href="<?php $this->options->themeUrl('style.css'); ?>" />
      +
      +<!-- 通过自有函数输出HTML头部信息 -->
      +<?php $this->header(); ?>
      +</head>
      +
      +<body>
      +<div id="header" class="container_16 clearfix">
      +	<form id="search" method="post" action="/">
      +		<div><input type="text" name="s" class="text" size="20" /> <input type="submit" class="submit" value="<?php _e('搜索'); ?>" /></div>
      +    </form>
      +	<div id="logo">
      +	    <h1><a href="<?php $this->options->siteUrl(); ?>">
      +        <?php if ($this->options->logoUrl): ?>
      +        <img height="60" src="<?php $this->options->logoUrl() ?>" alt="<?php $this->options->title() ?>" />
      +        <?php endif; ?>
      +        <?php $this->options->title() ?>
      +        </a></h1>
      +	    <p class="description"><?php $this->options->description() ?></p>
      +    </div>
      +</div><!-- end #header -->
      +
      +<div id="nav_box" class="clearfix">
      +<ul class="container_16 clearfix" id="nav_menu">
      +    <li<?php if($this->is('index')): ?> class="current"<?php endif; ?>><a href="<?php $this->options->siteUrl(); ?>"><?php _e('首页'); ?></a></li>
      +    <?php $this->widget('Widget_Contents_Page_List')->to($pages); ?>
      +    <?php while($pages->next()): ?>
      +    <li<?php if($this->is('page', $pages->slug)): ?> class="current"<?php endif; ?>><a href="<?php $pages->permalink(); ?>" title="<?php $pages->title(); ?>"><?php $pages->title(); ?></a></li>
      +    <?php endwhile; ?>
      +</ul>
      +</div>
      +
      +<div class="container_16 clearfix">
      diff --git a/usr/themes/default/index.php b/usr/themes/default/index.php
      new file mode 100644
      index 00000000..89c41442
      --- /dev/null
      +++ b/usr/themes/default/index.php
      @@ -0,0 +1,31 @@
      +<?php
      +/**
      + * 这是 Typecho 系统的一套默认皮肤
      + * 
      + * @package Typecho Default Theme 
      + * @author fen
      + * @version 1.0.7
      + * @link http://typecho.org
      + */
      + 
      + $this->need('header.php');
      + ?>
      +
      +    <div class="grid_10" id="content">
      +	<?php while($this->next()): ?>
      +        <div class="post">
      +			<h2 class="entry_title"><a href="<?php $this->permalink() ?>"><?php $this->title() ?></a></h2>
      +			<p class="entry_data">
      +				<span><?php _e('作者:'); ?><?php $this->author(); ?></span>
      +				<span><?php _e('发布时间:'); ?><?php $this->date('F j, Y'); ?></span>
      +				<span><?php _e('分类:'); ?><?php $this->category(','); ?></span>
      +				<a href="<?php $this->permalink() ?>#comments"><?php $this->commentsNum('No Comments', '1 Comment', '%d Comments'); ?></a>
      +			</p>
      +			<?php $this->content('阅读剩余部分...'); ?>
      +        </div>
      +	<?php endwhile; ?>
      +
      +    <?php $this->pageNav(); ?>
      +    </div><!-- end #content-->
      +	<?php $this->need('sidebar.php'); ?>
      +	<?php $this->need('footer.php'); ?>
      diff --git a/usr/themes/default/page.php b/usr/themes/default/page.php
      new file mode 100644
      index 00000000..59f4b0cd
      --- /dev/null
      +++ b/usr/themes/default/page.php
      @@ -0,0 +1,16 @@
      +<?php $this->need('header.php'); ?>
      +
      +    <div class="grid_10" id="content">
      +        <div class="post">
      +			<h2 class="entry_title"><a href="<?php $this->permalink() ?>"><?php $this->title() ?></a></h2>
      +			<p class="entry_data">
      +				<span><?php _e('作者:'); ?><?php $this->author(); ?></span>
      +				<?php _e('发布时间:'); ?><?php $this->date('F j, Y'); ?>
      +			</p>
      +			<?php $this->content(); ?>
      +		</div>
      +
      +		<?php $this->need('comments.php'); ?>
      +    </div><!-- end #content-->
      +	<?php $this->need('sidebar.php'); ?>
      +	<?php $this->need('footer.php'); ?>
      diff --git a/usr/themes/default/post.php b/usr/themes/default/post.php
      new file mode 100644
      index 00000000..59a43e67
      --- /dev/null
      +++ b/usr/themes/default/post.php
      @@ -0,0 +1,18 @@
      +<?php $this->need('header.php'); ?>
      +
      +    <div class="grid_10" id="content">
      +        <div class="post">
      +			<h2 class="entry_title"><a href="<?php $this->permalink() ?>"><?php $this->title() ?></a></h2>
      +			<p class="entry_data">
      +				<span><?php _e('作者:'); ?><?php $this->author(); ?></span>
      +				<span><?php _e('发布时间:'); ?><?php $this->date('F j, Y'); ?></span>
      +				<?php _e('分类:'); ?><?php $this->category(','); ?>
      +			</p>
      +			<?php $this->content(); ?>
      +			<p class="tags"><?php _e('标签'); ?>: <?php $this->tags(', ', true, 'none'); ?></p>
      +		</div>
      +
      +		<?php $this->need('comments.php'); ?>
      +    </div><!-- end #content-->
      +	<?php $this->need('sidebar.php'); ?>
      +	<?php $this->need('footer.php'); ?>
      diff --git a/usr/themes/default/screenshot.png b/usr/themes/default/screenshot.png
      new file mode 100644
      index 0000000000000000000000000000000000000000..58f4f29c8ad1c0fec175aacba940903170d03310
      GIT binary patch
      literal 9265
      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
      
      literal 0
      HcmV?d00001
      
      diff --git a/usr/themes/default/sidebar.php b/usr/themes/default/sidebar.php
      new file mode 100644
      index 00000000..901deadb
      --- /dev/null
      +++ b/usr/themes/default/sidebar.php
      @@ -0,0 +1,62 @@
      +
      +    <div class="grid_4" id="sidebar">
      +
      +        <?php if (empty($this->options->sidebarBlock) || in_array('ShowRecentPosts', $this->options->sidebarBlock)): ?>
      +	    <div class="widget">
      +			<h3><?php _e('最新文章'); ?></h3>
      +            <ul>
      +                <?php $this->widget('Widget_Contents_Post_Recent')
      +                ->parse('<li><a href="{permalink}">{title}</a></li>'); ?>
      +            </ul>
      +	    </div>
      +        <?php endif; ?>
      +    
      +        <?php if (empty($this->options->sidebarBlock) || in_array('ShowRecentComments', $this->options->sidebarBlock)): ?>
      +	    <div class="widget">
      +			<h3><?php _e('最近回复'); ?></h3>
      +            <ul>
      +            <?php $this->widget('Widget_Comments_Recent')->to($comments); ?>
      +            <?php while($comments->next()): ?>
      +                <li><a href="<?php $comments->permalink(); ?>"><?php $comments->author(false); ?></a>: <?php $comments->excerpt(50, '...'); ?></li>
      +            <?php endwhile; ?>
      +            </ul>
      +	    </div>
      +        <?php endif; ?>
      +
      +        <?php if (empty($this->options->sidebarBlock) || in_array('ShowCategory', $this->options->sidebarBlock)): ?>
      +        <div class="widget">
      +			<h3><?php _e('分类'); ?></h3>
      +            <ul>
      +                <?php $this->widget('Widget_Metas_Category_List')
      +                ->parse('<li><a href="{permalink}">{name}</a> ({count})</li>'); ?>
      +            </ul>
      +		</div>
      +        <?php endif; ?>
      +
      +        <?php if (empty($this->options->sidebarBlock) || in_array('ShowArchive', $this->options->sidebarBlock)): ?>
      +        <div class="widget">
      +			<h3><?php _e('归档'); ?></h3>
      +            <ul>
      +                <?php $this->widget('Widget_Contents_Post_Date', 'type=month&format=F Y')
      +                ->parse('<li><a href="{permalink}">{date}</a></li>'); ?>
      +            </ul>
      +		</div>
      +        <?php endif; ?>
      +
      +        <?php if (empty($this->options->sidebarBlock) || in_array('ShowOther', $this->options->sidebarBlock)): ?>
      +		<div class="widget">
      +			<h3><?php _e('其它'); ?></h3>
      +            <ul>
      +                <?php if($this->user->hasLogin()): ?>
      +					<li class="last"><a href="<?php $this->options->adminUrl(); ?>"><?php _e('进入后台'); ?> (<?php $this->user->screenName(); ?>)</a></li>
      +                    <li><a href="<?php $this->options->logoutUrl(); ?>"><?php _e('退出'); ?></a></li>
      +                <?php else: ?>
      +                    <li class="last"><a href="<?php $this->options->adminUrl('login.php'); ?>"><?php _e('登录'); ?></a></li>
      +                <?php endif; ?>
      +                <li><a href="http://validator.w3.org/check/referer">Valid XHTML</a></li>
      +                <li><a href="http://www.typecho.org">Typecho</a></li>
      +            </ul>
      +		</div>
      +        <?php endif; ?>
      +
      +    </div><!-- end #sidebar -->
      diff --git a/usr/themes/default/style.css b/usr/themes/default/style.css
      new file mode 100644
      index 00000000..9008787a
      --- /dev/null
      +++ b/usr/themes/default/style.css
      @@ -0,0 +1,453 @@
      +/* ------------------------------------
      + * Typecho Default Theme
      + *
      + * @author	fen1211@gmail.com
      + * @link	http://typecho.net/
      + * @update	2009-03-29 14:30
      + * --------------------------------- */
      +
      +
      +/* = import 960.gs css framework */
      +@import url(css/960.gs.css);
      +
      +/* ------------------
      + * gobal settings
      + * --------------- */
      +body {
      +background: #fff;
      +color: #444;
      +font-size: 13px;
      +line-height: 1.7;
      +font-family: Georgia,Times,"Times New Roman",serif;
      +}
      +
      +h1, h2, h3, h4, h5, h6 { font-weight: normal; }
      +
      +input, textarea { font-family: Helvetica, Arial, sans-serif; font-size: 100%; }
      +
      +input, textarea {
      +    font-size: 13px;
      +    padding: 2px;
      +}
      +
      +textarea { *padding: 3px; }
      +
      +@media screen and (-webkit-min-device-pixel-ratio:0) {
      +    textarea { padding: 3px; }
      +}
      +
      +a {
      +color: #3354AA;
      +text-decoration: none;
      +border-bottom: 1px dotted #3354AA;
      +}
      +a:hover {
      +color: #444;
      +border-bottom: none;
      +}
      +
      +pre, code, tt {
      +	font: 12px 'andale mono', 'lucida console', monospace; line-height: 1.5;
      +}
      +code { margin-bottom: 20px; }
      +pre, code {
      +display: block;
      +overflow-x: auto;
      +background: #f4f4f4;
      +padding: 5px 10px;
      +border: 1px solid #eee;
      +}
      +
      +/* Remove possible quote marks (") from <q>, <blockquote>. */
      +blockquote:before, blockquote:after, q:before, q:after { content: ""; }
      +blockquote, q { quotes: "" ""; }
      +
      +blockquote  { margin: 1.5em; color: #666; font-style: italic; }
      +
      +/*code {display: block; border: 1px solid #AAAAAA; background: #F1ECDD; color: #444; line-height: 16px; overflow: auto;
      +	font-family: 'andale mono','lucida console',monospace; padding: 10px; margin: 10px 0;}*/
      +
      +/* Tables
      +-------------------------------------------------------------- */
      +
      +/* Tables still need 'cellspacing="0"' in the markup. */
      +table { border-collapse: separate; border-spacing: 0; }
      +caption, th, td { text-align: left; font-weight: normal; }
      +table, td, th { vertical-align: middle; }
      +
      +table       { margin-bottom: 1.4em; width:100%; }
      +th          { font-weight: bold; }
      +thead th 		{ background: #c3d9ff; }
      +th,td,caption { padding: 4px 10px 4px 5px; }
      +tr.even td  { background: #e5ecf9; }
      +tfoot       { font-style: italic; }
      +caption     { background: #eee; }
      +
      +fieldset    { padding:1.4em; margin: 0 0 1.5em 0; border: 1px solid #ccc; }
      +legend      { font-weight: bold; }
      +
      +
      +ul { list-style-type: disc; }
      +
      +/* -------------------------
      + * reset width to 840px
      + * ---------------------- */
      +.container_16 { width: 840px; }
      +
      +/* ------------------
      + * header
      + * --------------- */
      +
      +#header {
      +color: #666;
      +padding: 20px 0;
      +}
      +
      +#logo {
      +}
      +
      +#logo h1 {
      +font-size: 35px;
      +font-weight: normal;
      +margin-bottom: 0;
      +}
      +#logo h1 a {
      +color: #444;
      +border: none;
      +}
      +#logo h1 a:hover {
      +}
      +
      +p.description {
      +margin-bottom: 0;
      +font-style: italic;
      +}
      +
      +#search {
      +float: right;
      +margin-top: 30px;
      +}
      +
      +/* = header navigation menu */
      +#nav_box {
      +	border-bottom: 1px solid #eee;
      +	margin-bottom: 20px;
      +	font-family: "Lucida Grande",Tahoma,"Bitstream Vera Sans",Arial,sans-serif;
      +}
      +
      +ul#nav_menu {
      +height: 30px;
      +line-height: 30px;
      +list-style: none;
      +padding: 0;
      +margin-top: 0;
      +margin-bottom: 0;
      +border-left: 1px solid #eee;
      +}
      +ul#nav_menu li {
      +float: left;
      +padding: 0;
      +margin: 0;
      +height: 30px;
      +line-height: 30px;
      +}
      +ul#nav_menu li a {
      +color: #777;
      +border: 1px solid #eee;
      +border-bottom: none;
      +border-left: none;
      +height: 29px;
      +line-height: 29px;
      +display: block;
      +float: left;
      +padding: 0 20px;
      +}
      +
      +ul#nav_menu li.current a {
      +background: #fafafa;
      +}
      +ul#nav_menu li a:hover {
      +text-decoration: underline;
      +}
      +
      +/* ------------------
      + * content
      + * --------------- */
      +#content { overflow: hidden; }
      +#content p { margin-bottom: 20px; }
      +
      +.post {
      +margin-bottom: 20px;
      +padding-bottom: 5px;
      +border-bottom: 1px solid #eee;
      +width: 100%;
      +}
      +
      +.post img {
      +max-width: 570px;
      +margin: 5px;
      +}
      +
      +h2.entry_title {
      +margin-bottom: 0;
      +font-size: 18px;
      +font-weight: bold;
      +font-family: "Lucida Grande","Lucida Sans Unicode","Lucida Sans",Helvetica,Arial,sans-serif;
      +}
      +
      +h2.entry_title a {
      +border: none;
      +}
      +
      +.post h3 { font-size: 16px; }
      +.post h4 { font-size: 15px; }
      +.post h5 { font-size: 14px; font-weight: bold; }
      +.post h6 { font-size: 13px; font-weight: bold; }
      +
      +.entry_data {
      +color: #999;
      +font-size: 12px;
      +}
      +
      +.entry_data a {
      +}
      +
      +.entry_data span {
      +margin-right: 4px;
      +padding-right: 7px;
      +border-right: 1px solid #eee;
      +}
      +
      +
      +/* = pages nav */
      +ol.page-navigator {
      +margin: 20px 0 0 0;
      +color: #666;
      +list-style: none;
      +font-size: 12px;
      +line-height: 30px;
      +font-family: "Lucida Grande",Verdana,"Bitstream Vera Sans",Arial,sans-serif;
      +}
      +
      +ol.page-navigator li {
      +margin: 0 5px 0 0;
      +display: inline;
      +}
      +
      +ol.page-navigator li a {
      +padding: 2px 6px;
      +border: 1px solid #eee;
      +text-decoration: none;
      +}
      +
      +ol.page-navigator li.current a {
      +background: #3354AA;
      +border-color: #3354AA;
      +color: #fff;
      +}
      +
      +/* ------------------
      + * comment list
      + * --------------- */
      +#comments {
      +margin-top: 20px;
      +}
      +
      +#comments h4 {
      +font-size: 14px;
      +font-weight: bold;
      +}
      +
      +ol.comment-list, ol.comment-list ol {
      +margin: 0;
      +list-style: none;
      +}
      +
      +ol.comment-list ol {
      +padding-top: 10px;
      +}
      +
      +ol.comment-list li {
      +margin: 0;
      +padding-bottom: 10px;
      +}
      +
      +ol.comment-list li {
      +	padding: 10px 15px;
      +	margin-top: 10px;
      +	border: 1px solid #eee;
      +	background: #FAFAFA;
      +	overflow: hidden;
      +}
      +
      +ol.comment-list li.comment-level-odd {
      +	background: #fff;
      +}
      +
      +ol.comment-list li.comment-level-even {
      +	background: #FAFAFA;
      +}
      +
      +ol.comment-list li.comment-by-author {
      +	border: 1px dashed #AAA;
      +}
      +
      +ol.comment-list li .comment-reply {
      +	text-align: right;
      +}
      +
      +ol.comment-list li .comment-reply a {
      +	font-size: 11px;
      +	border: none;
      +	color: #aaa;
      +}
      +
      +ol.comment-list li .comment-reply a:hover {
      +	color: #444;
      +}
      +
      +.comment-meta {
      +padding-bottom: 8px;
      +/*border-bottom: 1px dashed #eee;*/
      +color: #999;
      +font-size: 11px;
      +}
      +.comment-author {
      +display: block;
      +font-size: 15px;
      +color: #444;
      +}
      +
      +.comment-author cite.fn {
      +font-style: normal;
      +}
      +
      +.comment-body {
      +overflow: hidden;
      +}
      +
      +img.avatar {
      +/*display: none;*/
      +float: left;
      +margin: 6px 10px 0 0;
      +}
      +
      +.respond {
      +margin-top: 20px;
      +}
      +
      +ol.comment-list li .respond {
      +border-top: 1px solid #ddd;
      +padding-top: 10px;
      +}
      +
      +#comment_form {
      +	padding-right: 8px;
      +}
      +
      +.respond .cancel-comment-reply {
      +	float: right;
      +	font-size: 11px;
      +}
      +
      +.respond .cancel-comment-reply a {
      +	border: none;
      +	color: #aaa;
      +}
      +
      +.respond .cancel-comment-reply a:hover {
      +	color: #444;
      +}
      +
      +#comment_form label {
      +	font-size: 12px;
      +	color: #555;
      +	display: block;
      +	font-weight: bold;
      +}
      +
      +#comment_form label .required {
      +	color: #C04E37;
      +	padding-left: 5px;
      +	font-size: 14px;
      +}
      +#comment_form .text {
      +width: 100%;
      +margin-right: 15px;
      +}
      +#comment_form textarea {
      +width: 100%;
      +height: 180px;
      +}
      +
      +ol#comment_list li .respond .text {
      +	_width: 400px;
      +}
      +
      +ol#comment_list li .respond textarea {
      +	_width: 400px;
      +}
      +
      +/* ------------------
      + * sidebar
      + * --------------- */
      +#sidebar {
      +overflow: hidden;
      +}
      +.widget {
      +margin: 0 0 20px 20px;
      +}
      +.widget h3 {
      +font-size: 16px;
      +margin-bottom: 5px;
      +}
      +.widget ul {
      +margin: 0;
      +list-style-type: none;
      +}
      +.widget ul li {
      +margin: 0;
      +padding: 0;
      +line-height: 24px;
      +}
      +
      +/* ------------------
      + * footer 
      + * --------------- */
      +#footer {
      +margin-top: 15px;
      +padding: 15px 0;
      +text-align: center;
      +}
      +
      +#footer a {
      +border-bottom: none;
      +}
      +
      +
      +/* -----------------
      + * misc
      + *--------------- */
      +.aligncenter,
      +div.aligncenter {
      +display: block;
      +margin-left: auto;
      +margin-right: auto;
      +}
      +
      +.alignleft {
      +float: left;
      +}
      +
      +.alignright {
      +float: right;
      +}
      +
      +img.alignleft { margin: 4px 15px 0 0; }
      +img.alignright { margin: 4px 0 0 15px; }
      +
      +.alt { 
      +color: #666; 
      +font-family: "Warnock Pro", "Goudy Old Style","Palatino","Book Antiqua", Georgia, serif; 
      +font-weight: normal;
      +}
      diff --git a/var/Helper.php b/var/Helper.php
      new file mode 100644
      index 00000000..9e98ea4e
      --- /dev/null
      +++ b/var/Helper.php
      @@ -0,0 +1,418 @@
      +<?php
      +/**
      + * 插件帮手将默认出现在所有的typecho发行版中.
      + * 因此你可以放心使用它的功能, 以方便你的插件安装在用户的系统里.
      + *
      + * @package Helper
      + * @author qining
      + * @version 1.0.0
      + * @link http://typecho.org
      + */
      +class Helper
      +{
      +    /**
      +     * 获取Widget_Options对象
      +     *
      +     * @access public
      +     * @return Widget_Options
      +     */
      +    public static function options()
      +    {
      +        return Typecho_Widget::widget('Widget_Options');
      +    }
      +
      +    /**
      +     * 强行删除某个插件
      +     *
      +     * @access public
      +     * @param string $pluginName 插件名称
      +     * @return void
      +     */
      +    public static function removePlugin($pluginName)
      +    {
      +        try {
      +            /** 获取插件入口 */
      +            list($pluginFileName, $className) = Typecho_Plugin::portal($pluginName, __TYPECHO_ROOT_DIR__ . '/' . __TYPECHO_PLUGIN_DIR__);
      +
      +            /** 获取已激活插件 */
      +            $plugins = Typecho_Plugin::export();
      +            $activatedPlugins = $plugins['activated'];
      +
      +            /** 载入插件 */
      +            require_once $pluginFileName;
      +
      +            /** 判断实例化是否成功 */
      +            if (!isset($activatedPlugins[$pluginName]) || !class_exists($className)
      +            || !method_exists($className, 'deactivate')) {
      +                throw new Typecho_Widget_Exception(_t('无法禁用插件'), 500);
      +            }
      +
      +            $result = call_user_func(array($className, 'deactivate'));
      +
      +        } catch (Exception $e) {
      +            //nothing to do
      +        }
      +
      +        $db = Typecho_Db::get();
      +
      +        try {
      +            Typecho_Plugin::deactivate($pluginName);
      +            $db->query($db->update('table.options')
      +            ->rows(array('value' => serialize(Typecho_Plugin::export())))
      +            ->where('name = ?', 'plugins'));
      +        } catch (Typecho_Plugin_Exception $e) {
      +            //nothing to do
      +        }
      +
      +        $db->query($db->delete('table.options')->where('name = ?', 'plugin:' . $pluginName));
      +    }
      +
      +    /**
      +     * 导入语言项
      +     *
      +     * @access public
      +     * @param string $domain
      +     * @return void
      +     */
      +    public static function lang($domain)
      +    {
      +        $currentLang = Typecho_I18n::getLang();
      +        if ($currentLang) {
      +            $currentLang = basename($currentLang);
      +            $fileName = dirname(__FILE__) . '/' . $domain . '/lang/' . $currentLang;
      +            if (file_exists($fileName)) {
      +                Typecho_I18n::addLang($fileName);
      +            }
      +        }
      +    }
      +
      +    /**
      +     * 增加路由
      +     *
      +     * @access public
      +     * @param string $name 路由名称
      +     * @param string $url 路由路径
      +     * @param string $widget 组件名称
      +     * @param string $action 组件动作
      +     * @return void
      +     */
      +    public static function addRoute($name, $url, $widget, $action = NULL)
      +    {
      +        $routingTable = self::options()->routingTable;
      +        if (isset($routingTable[0])) {
      +            unset($routingTable[0]);
      +        }
      +
      +        $routingTable[$name] = array(
      +            'url'       =>  $url,
      +            'widget'    =>  $widget,
      +            'action'    =>  $action
      +        );
      +        self::options()->routingTable = $routingTable;
      +
      +        $db = Typecho_Db::get();
      +        return Typecho_Widget::widget('Widget_Abstract_Options')->update(array('value' => serialize($routingTable))
      +        , $db->sql()->where('name = ?', 'routingTable'));
      +    }
      +
      +    /**
      +     * 移除路由
      +     *
      +     * @access public
      +     * @param string $name 路由名称
      +     * @return integer
      +     */
      +    public static function removeRoute($name)
      +    {
      +        $routingTable = self::options()->routingTable;
      +        if (isset($routingTable[0])) {
      +            unset($routingTable[0]);
      +        }
      +
      +        unset($routingTable[$name]);
      +        self::options()->routingTable = $routingTable;
      +
      +        $db = Typecho_Db::get();
      +        return Typecho_Widget::widget('Widget_Abstract_Options')->update(array('value' => serialize($routingTable))
      +        , $db->sql()->where('name = ?', 'routingTable'));
      +    }
      +
      +    /**
      +     * 增加action扩展
      +     *
      +     * @access public
      +     * @param string $actionName 需要扩展的action名称
      +     * @param string $widgetName 需要扩展的widget名称
      +     * @return integer
      +     */
      +    public static function addAction($actionName, $widgetName)
      +    {
      +        $actionTable = unserialize(self::options()->actionTable);
      +        $actionTable = empty($actionTable) ? array() : $actionTable;
      +        $actionTable[$actionName] = $widgetName;
      +
      +        $db = Typecho_Db::get();
      +        return Typecho_Widget::widget('Widget_Abstract_Options')->update(array('value' => (self::options()->actionTable = serialize($actionTable)))
      +        , $db->sql()->where('name = ?', 'actionTable'));
      +    }
      +
      +    /**
      +     * 删除action扩展
      +     *
      +     * @access public
      +     * @param unknown $actionName
      +     * @return unknown
      +     */
      +    public static function removeAction($actionName)
      +    {
      +        $actionTable = unserialize(self::options()->actionTable);
      +        $actionTable = empty($actionTable) ? array() : $actionTable;
      +
      +        if (isset($actionTable[$actionName])) {
      +            unset($actionTable[$actionName]);
      +            reset($actionTable);
      +        }
      +
      +        $db = Typecho_Db::get();
      +        return Typecho_Widget::widget('Widget_Abstract_Options')->update(array('value' => (self::options()->actionTable = serialize($actionTable)))
      +        , $db->sql()->where('name = ?', 'actionTable'));
      +    }
      +
      +    /**
      +     * 增加一个菜单
      +     *
      +     * @access public
      +     * @param string $menuName 菜单名
      +     * @return integer
      +     */
      +    public static function addMenu($menuName)
      +    {
      +        $panelTable = unserialize(self::options()->panelTable);
      +        $panelTable['parent'] = empty($panelTable['parent']) ? array() : $panelTable['parent'];
      +        $panelTable['parent'][] = $menuName;
      +
      +        $db = Typecho_Db::get();
      +        Typecho_Widget::widget('Widget_Abstract_Options')->update(array('value' => (self::options()->panelTable = serialize($panelTable)))
      +        , $db->sql()->where('name = ?', 'panelTable'));
      +
      +        end($panelTable['parent']);
      +        return key($panelTable['parent']) + 10;
      +    }
      +
      +    /**
      +     * 移除一个菜单
      +     *
      +     * @access public
      +     * @param string $menuName 菜单名
      +     * @return integer
      +     */
      +    public static function removeMenu($menuName)
      +    {
      +        $panelTable = unserialize(self::options()->panelTable);
      +        $panelTable['parent'] = empty($panelTable['parent']) ? array() : $panelTable['parent'];
      +
      +        if (false !== ($index = array_search($menuName, $panelTable['parent']))) {
      +            unset($panelTable['parent'][$index]);
      +        }
      +
      +        $db = Typecho_Db::get();
      +        Typecho_Widget::widget('Widget_Abstract_Options')->update(array('value' => (self::options()->panelTable = serialize($panelTable)))
      +        , $db->sql()->where('name = ?', 'panelTable'));
      +
      +        return $index + 10;
      +    }
      +
      +    /**
      +     * 增加一个面板
      +     *
      +     * @access public
      +     * @param integer $index 菜单索引
      +     * @param string $fileName 文件名称
      +     * @param string $title 面板标题
      +     * @param string $subTitle 面板副标题
      +     * @param string $level 进入权限
      +     * @param boolean $hidden 是否隐藏
      +     * @param boolean $addLink 新增项目链接, 会显示在页面标题之后
      +     * @return integer
      +     */
      +    public static function addPanel($index, $fileName, $title, $subTitle, $level, $hidden = false, $addLink = '')
      +    {
      +        $panelTable = unserialize(self::options()->panelTable);
      +        $panelTable['child'] = empty($panelTable['child']) ? array() : $panelTable['child'];
      +        $panelTable['child'][$index] = empty($panelTable['child'][$index]) ? array() : $panelTable['child'][$index];
      +        $fileName = urlencode(trim($fileName, '/'));
      +        $panelTable['child'][$index][] = array($title, $subTitle, 'extending.php?panel=' . $fileName, $level, $hidden, $addLink);
      +
      +        $panelTable['file'] = empty($panelTable['file']) ? array() : $panelTable['file'];
      +        $panelTable['file'][] = $fileName;
      +        $panelTable['file'] = array_unique($panelTable['file']);
      +
      +        $db = Typecho_Db::get();
      +        Typecho_Widget::widget('Widget_Abstract_Options')->update(array('value' => (self::options()->panelTable = serialize($panelTable)))
      +        , $db->sql()->where('name = ?', 'panelTable'));
      +
      +        end($panelTable['child'][$index]);
      +        return key($panelTable['child'][$index]);
      +    }
      +
      +    /**
      +     * 移除一个面板
      +     *
      +     * @access public
      +     * @param integer $index 菜单索引
      +     * @param string $fileName 文件名称
      +     * @return integer
      +     */
      +    public static function removePanel($index, $fileName)
      +    {
      +        $panelTable = unserialize(self::options()->panelTable);
      +        $panelTable['child'] = empty($panelTable['child']) ? array() : $panelTable['child'];
      +        $panelTable['child'][$index] = empty($panelTable['child'][$index]) ? array() : $panelTable['child'][$index];
      +        $panelTable['file'] = empty($panelTable['file']) ? array() : $panelTable['file'];
      +        $fileName = urlencode(trim($fileName, '/'));
      +
      +        if (false !== ($key = array_search($fileName, $panelTable['file']))) {
      +            unset($panelTable['file'][$key]);
      +        }
      +
      +        $return = 0;
      +        foreach ($panelTable['child'][$index] as $key => $val) {
      +            if ($val[2] == 'extending.php?panel=' . $fileName) {
      +                unset($panelTable['child'][$index][$key]);
      +                $return = $key;
      +            }
      +        }
      +
      +        $db = Typecho_Db::get();
      +        Typecho_Widget::widget('Widget_Abstract_Options')->update(array('value' => (self::options()->panelTable = serialize($panelTable)))
      +        , $db->sql()->where('name = ?', 'panelTable'));
      +        return $return;
      +    }
      +
      +    /**
      +     * 获取面板url
      +     *
      +     * @access public
      +     * @return unknown
      +     */
      +    public static function url($fileName)
      +    {
      +        return Typecho_Common::url('extending.php?panel=' . (trim($fileName, '/')), self::options()->adminUrl);
      +    }
      +    
      +    /**
      +     * 手动配置插件变量
      +     * 
      +     * @access public
      +     * @static
      +     * @param mixed $pluginName 插件名称
      +     * @param mixed array $settings 变量键值对
      +     * @param bool $isPersonal. (default: false) 是否为私人变量
      +     * @return void
      +     */
      +    public static function configPlugin($pluginName, array $settings, $isPersonal = false)
      +    {
      +        if (empty($settings)) {
      +            return;
      +        }
      +        
      +        Widget_Plugins_Edit::configPlugin($pluginName, $settings, $isPersonal);
      +    }
      +
      +    /**
      +     * 评论回复按钮
      +     *
      +     * @access public
      +     * @param string $theId 评论元素id
      +     * @param integer $coid 评论id
      +     * @param string $word 按钮文字
      +     * @param string $formId 表单id
      +     * @param integer $style 样式类型
      +     * @return void
      +     */
      +    public static function replyLink($theId, $coid, $word = 'Reply', $formId = 'respond', $style = 2)
      +    {
      +        if (self::options()->commentsThreaded) {
      +            echo '<a href="#' . $formId . '" rel="nofollow" onclick="return typechoAddCommentReply(\'' .
      +            $theId . '\', ' . $coid . ', \'' . $formId . '\', ' . $style . ');">' . $word . '</a>';
      +        }
      +    }
      +
      +    /**
      +     * 评论取消按钮
      +     *
      +     * @access public
      +     * @param string $word 按钮文字
      +     * @param string $formId 表单id
      +     * @return void
      +     */
      +    public static function cancleCommentReplyLink($word = 'Cancle', $formId = 'respond')
      +    {
      +        if (self::options()->commentsThreaded) {
      +            echo '<a href="#' . $formId . '" rel="nofollow" onclick="return typechoCancleCommentReply(\'' .
      +            $formId . '\');">' . $word . '</a>';
      +        }
      +    }
      +
      +    /**
      +     * 评论回复js脚本
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public static function threadedCommentsScript()
      +    {
      +        if (self::options()->commentsThreaded) {
      +            echo
      +<<<EOF
      +<script type="text/javascript">
      +var typechoAddCommentReply = function (cid, coid, cfid, style) {
      +    var _ce = document.getElementById(cid), _cp = _ce.parentNode;
      +    var _cf = document.getElementById(cfid);
      +
      +    var _pi = document.getElementById('comment-parent');
      +    if (null == _pi) {
      +        _pi = document.createElement('input');
      +        _pi.setAttribute('type', 'hidden');
      +        _pi.setAttribute('name', 'parent');
      +        _pi.setAttribute('id', 'comment-parent');
      +
      +        var _form = 'form' == _cf.tagName ? _cf : _cf.getElementsByTagName('form')[0];
      +
      +        _form.appendChild(_pi);
      +    }
      +    _pi.setAttribute('value', coid);
      +
      +    if (null == document.getElementById('comment-form-place-holder')) {
      +        var _cfh = document.createElement('div');
      +        _cfh.setAttribute('id', 'comment-form-place-holder');
      +        _cf.parentNode.insertBefore(_cfh, _cf);
      +    }
      +
      +    1 == style ? (null == _ce.nextSibling ? _cp.appendChild(_cf)
      +    : _cp.insertBefore(_cf, _ce.nextSibling)) : _ce.appendChild(_cf);
      +
      +    return false;
      +};
      +
      +var typechoCancleCommentReply = function (cfid) {
      +    var _cf = document.getElementById(cfid),
      +    _cfh = document.getElementById('comment-form-place-holder');
      +
      +    var _pi = document.getElementById('comment-parent');
      +    if (null != _pi) {
      +        _pi.parentNode.removeChild(_pi);
      +    }
      +
      +    if (null == _cfh) {
      +        return true;
      +    }
      +
      +    _cfh.parentNode.insertBefore(_cf, _cfh);
      +    return false;
      +};
      +</script>
      +EOF;
      +        }
      +    }
      +}
      diff --git a/var/IXR/Base64.php b/var/IXR/Base64.php
      new file mode 100644
      index 00000000..0afe16ea
      --- /dev/null
      +++ b/var/IXR/Base64.php
      @@ -0,0 +1,43 @@
      +<?php
      +/*
      +   IXR - The Inutio XML-RPC Library - (c) Incutio Ltd 2002
      +   Version 1.61 - Simon Willison, 11th July 2003 (htmlentities -> htmlspecialchars)
      +   Site:   http://scripts.incutio.com/xmlrpc/
      +   Manual: http://scripts.incutio.com/xmlrpc/manual.php
      +   Made available under the Artistic License: http://www.opensource.org/licenses/artistic-license.php
      +*/
      +
      +/**
      + * IXR Base64编码
      + *
      + * @package IXR
      + */
      +class IXR_Base64
      +{
      +    /**
      +     * 编码数据
      +     *
      +     * @var string
      +     */
      +    private $data;
      +
      +    /**
      +     * 初始化数据
      +     *
      +     * @param string $data
      +     */
      +    public function __construct($data)
      +    {
      +        $this->data = $data;
      +    }
      +
      +    /**
      +     * 获取XML数据
      +     *
      +     * @return string
      +     */
      +    public function getXml()
      +    {
      +        return '<base64>' . base64_encode($this->data) . '</base64>';
      +    }
      +}
      diff --git a/var/IXR/Client.php b/var/IXR/Client.php
      new file mode 100644
      index 00000000..89f1cc15
      --- /dev/null
      +++ b/var/IXR/Client.php
      @@ -0,0 +1,300 @@
      +<?php
      +/*
      +   IXR - The Inutio XML-RPC Library - (c) Incutio Ltd 2002
      +   Version 1.61 - Simon Willison, 11th July 2003 (htmlentities -> htmlspecialchars)
      +   Site:   http://scripts.incutio.com/xmlrpc/
      +   Manual: http://scripts.incutio.com/xmlrpc/manual.php
      +   Made available under the Artistic License: http://www.opensource.org/licenses/artistic-license.php
      +*/
      +
      +/** IXR值 */
      +require_once 'IXR/Value.php';
      +
      +/** IXR消息 */
      +require_once 'IXR/Message.php';
      +
      +/** IXR请求体 */
      +require_once 'IXR/Request.php';
      +
      +/** IXR错误 */
      +require_once 'IXR/Error.php';
      +
      +/** IXR日期 */
      +require_once 'IXR/Date.php';
      +
      +/** IXR Base64编码 */
      +require_once 'IXR/Base64.php';
      +
      +/** Typecho_Http_Client */
      +require_once 'Typecho/Http/Client.php';
      +
      +/**
      + * IXR客户端
      + * reload by typecho team(http://www.typecho.org)
      + *
      + * @package IXR
      + */
      +class IXR_Client
      +{
      +    /** 默认客户端 */
      +    const DEFAULT_USERAGENT = 'The Incutio XML-RPC PHP Library(Reload By Typecho)';
      +
      +    /**
      +     * 服务端地址
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $server;
      +
      +    /**
      +     * 端口名称
      +     *
      +     * @access private
      +     * @var integer
      +     */
      +    private $port;
      +
      +    /**
      +     * 路径名称
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $path;
      +
      +    /**
      +     * 地址
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $url;
      +
      +    /**
      +     * 客户端
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $useragent;
      +
      +    /**
      +     * 回执结构体
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $response;
      +
      +    /**
      +     * 消息体
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $message = false;
      +
      +    /**
      +     * 调试开关
      +     *
      +     * @access private
      +     * @var boolean
      +     */
      +    private $debug = false;
      +
      +    /**
      +     * 请求前缀
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $prefix = NULL;
      +
      +    // Storage place for an error message
      +    private $error = false;
      +
      +    /**
      +     * 客户端构造函数
      +     *
      +     * @access public
      +     * @param string $server 服务端地址
      +     * @param string $path 路径名称
      +     * @param integer $port 端口名称
      +     * @param string $useragent 客户端
      +     * @return void
      +     */
      +    public function __construct($server, $path = false, $port = 80, $useragent = self::DEFAULT_USERAGENT, $prefix = NULL)
      +    {
      +        if (!$path) {
      +            $this->url = $server;
      +
      +            // Assume we have been given a Url instead
      +            $bits = parse_url($server);
      +            $this->server = $bits['host'];
      +            $this->port = isset($bits['port']) ? $bits['port'] : 80;
      +            $this->path = isset($bits['path']) ? $bits['path'] : '/';
      +
      +            // Make absolutely sure we have a path
      +            if (isset($bits['query'])) {
      +                $this->path .= '?' . $bits['query'];
      +            }
      +        } else {
      +            /** Typecho_Common */
      +            require_once 'Typecho/Common.php';
      +
      +            $this->url = Typecho_Common::buildUrl(array(
      +                'scheme'    =>  'http',
      +                'host'      =>  $server,
      +                'path'      =>  $path,
      +                'port'      =>  $port
      +            ));
      +
      +            $this->server = $server;
      +            $this->path = $path;
      +            $this->port = $port;
      +        }
      +
      +        $this->prefix = $prefix;
      +        $this->useragent = $useragent;
      +    }
      +
      +    /**
      +     * 设置调试模式
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function __setDebug()
      +    {
      +        $this->debug = true;
      +    }
      +
      +    /**
      +     * 执行请求
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function __rpcCall()
      +    {
      +        $args = func_get_args();
      +        $method = array_shift($args);
      +        $request = new IXR_Request($method, $args);
      +        $xml = $request->getXml();
      +
      +        $client = Typecho_Http_Client::get();
      +        if (!$client) {
      +            $this->error = new IXR_Error(-32300, 'transport error - could not open socket');
      +            return false;
      +        }
      +
      +        $client->setHeader('Content-Type', 'text/xml')
      +        ->setHeader('User-Agent', $this->useragent)
      +        ->setData($xml)
      +        ->send($this->url);
      +
      +        $contents = $client->getResponseBody();
      +
      +        if ($this->debug) {
      +            echo '<pre>'.htmlspecialchars($contents)."\n</pre>\n\n";
      +        }
      +
      +        // Now parse what we've got back
      +        $this->message = new IXR_Message($contents);
      +        if (!$this->message->parse()) {
      +            // XML error
      +            $this->error = new IXR_Error(-32700, 'parse error. not well formed');
      +            return false;
      +        }
      +
      +        // Is the message a fault?
      +        if ($this->message->messageType == 'fault') {
      +            $this->error = new IXR_Error($this->message->faultCode, $this->message->faultString);
      +            return false;
      +        }
      +
      +        // Message must be OK
      +        return true;
      +    }
      +
      +    /**
      +     * 增加前缀
      +     * <code>
      +     * $rpc->metaWeblog->newPost();
      +     * </code>
      +     *
      +     * @access public
      +     * @param string $prefix 前缀
      +     * @return void
      +     */
      +    public function __get($prefix)
      +    {
      +        return new IXR_Client($this->server, $this->path, $this->port, $this->useragent, $this->prefix . $prefix . '.');
      +    }
      +
      +    /**
      +     * 增加魔术特性
      +     * by 70
      +     *
      +     * @access public
      +     * @return mixed
      +     */
      +    public function __call($method, $args)
      +    {
      +        array_unshift($args, $this->prefix . $method);
      +        $return = call_user_func_array(array($this, '__rpcCall'), $args);
      +
      +        if ($return) {
      +            return $this->__getResponse();
      +        } else {
      +            require_once 'IXR/Exception.php';
      +            throw new IXR_Exception($this->__getErrorMessage(), $this->__getErrorCode());
      +        }
      +    }
      +
      +    /**
      +     * 获得返回值
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function __getResponse()
      +    {
      +        // methodResponses can only have one param - return that
      +        return $this->message->params[0];
      +    }
      +
      +    /**
      +     * 是否为错误
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function __isError()
      +    {
      +        return (is_object($this->error));
      +    }
      +
      +    /**
      +     * 获取错误代码
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function __getErrorCode()
      +    {
      +        return $this->error->code;
      +    }
      +
      +    /**
      +     * 获取错误消息
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function __getErrorMessage()
      +    {
      +        return $this->error->message;
      +    }
      +}
      diff --git a/var/IXR/ClientMulticall.php b/var/IXR/ClientMulticall.php
      new file mode 100644
      index 00000000..24f91148
      --- /dev/null
      +++ b/var/IXR/ClientMulticall.php
      @@ -0,0 +1,37 @@
      +<?php
      +/*
      +   IXR - The Inutio XML-RPC Library - (c) Incutio Ltd 2002
      +   Version 1.61 - Simon Willison, 11th July 2003 (htmlentities -> htmlspecialchars)
      +   Site:   http://scripts.incutio.com/xmlrpc/
      +   Manual: http://scripts.incutio.com/xmlrpc/manual.php
      +   Made available under the Artistic License: http://www.opensource.org/licenses/artistic-license.php
      +*/
      +
      +/** IXR_Clinet */
      +require_once 'IXR/Clinet.php';
      +
      +/**
      + * IXR客户端
      + *
      + * @package IXR
      + */
      +class IXR_ClientMulticall extends IXR_Client {
      +    var $calls = array();
      +    function IXR_ClientMulticall($server, $path = false, $port = 80) {
      +        parent::IXR_Client($server, $path, $port);
      +        $this->useragent = 'The Incutio XML-RPC PHP Library (multicall client)';
      +    }
      +    function addCall() {
      +        $args = func_get_args();
      +        $methodName = array_shift($args);
      +        $struct = array(
      +            'methodName' => $methodName,
      +            'params' => $args
      +        );
      +        $this->calls[] = $struct;
      +    }
      +    function query() {
      +        // Prepare multicall, then call the parent::query() method
      +        return parent::query('system.multicall', $this->calls);
      +    }
      +}
      diff --git a/var/IXR/Date.php b/var/IXR/Date.php
      new file mode 100644
      index 00000000..048caae2
      --- /dev/null
      +++ b/var/IXR/Date.php
      @@ -0,0 +1,55 @@
      +<?php
      +/*
      +   IXR - The Inutio XML-RPC Library - (c) Incutio Ltd 2002
      +   Version 1.61 - Simon Willison, 11th July 2003 (htmlentities -> htmlspecialchars)
      +   Site:   http://scripts.incutio.com/xmlrpc/
      +   Manual: http://scripts.incutio.com/xmlrpc/manual.php
      +   Made available under the Artistic License: http://www.opensource.org/licenses/artistic-license.php
      +*/
      +
      +/**
      + * IXR日期
      + *
      + * @package IXR
      + */
      +class IXR_Date {
      +    var $year;
      +    var $month;
      +    var $day;
      +    var $hour;
      +    var $minute;
      +    var $second;
      +    function IXR_Date($time) {
      +        // $time can be a PHP timestamp or an ISO one
      +        if (is_numeric($time)) {
      +            $this->parseTimestamp($time);
      +        } else {
      +            $this->parseIso($time);
      +        }
      +    }
      +    function parseTimestamp($timestamp) {
      +        $this->year = date('Y', $timestamp);
      +        $this->month = date('m', $timestamp);
      +        $this->day = date('d', $timestamp);
      +        $this->hour = date('H', $timestamp);
      +        $this->minute = date('i', $timestamp);
      +        $this->second = date('s', $timestamp);
      +    }
      +    function parseIso($iso) {
      +        $this->year = substr($iso, 0, 4);
      +        $this->month = substr($iso, 4, 2);
      +        $this->day = substr($iso, 6, 2);
      +        $this->hour = substr($iso, 9, 2);
      +        $this->minute = substr($iso, 12, 2);
      +        $this->second = substr($iso, 15, 2);
      +    }
      +    function getIso() {
      +        return $this->year.$this->month.$this->day.'T'.$this->hour.':'.$this->minute.':'.$this->second;
      +    }
      +    function getXml() {
      +        return '<dateTime.iso8601>'.$this->getIso().'</dateTime.iso8601>';
      +    }
      +    function getTimestamp() {
      +        return mktime($this->hour, $this->minute, $this->second, $this->month, $this->day, $this->year);
      +    }
      +}
      diff --git a/var/IXR/Error.php b/var/IXR/Error.php
      new file mode 100644
      index 00000000..cfc7aaad
      --- /dev/null
      +++ b/var/IXR/Error.php
      @@ -0,0 +1,76 @@
      +<?php
      +/*
      +   IXR - The Inutio XML-RPC Library - (c) Incutio Ltd 2002
      +   Version 1.61 - Simon Willison, 11th July 2003 (htmlentities -> htmlspecialchars)
      +   Site:   http://scripts.incutio.com/xmlrpc/
      +   Manual: http://scripts.incutio.com/xmlrpc/manual.php
      +   Made available under the Artistic License: http://www.opensource.org/licenses/artistic-license.php
      +*/
      +
      +/**
      + * IXR错误
      + *
      + * @package IXR
      + */
      +class IXR_Error
      +{
      +    /**
      +     * 错误代码
      +     *
      +     * @access public
      +     * @var integer
      +     */
      +    public $code;
      +
      +    /**
      +     * 错误消息
      +     *
      +     * @access public
      +     * @var string
      +     */
      +    public $message;
      +
      +    /**
      +     * 构造函数
      +     *
      +     * @access public
      +     * @param integer $code 错误代码
      +     * @param string $message 错误消息
      +     * @return void
      +     */
      +    public function __construct($code, $message)
      +    {
      +        $this->code = $code;
      +        $this->message = $message;
      +    }
      +
      +    /**
      +     * 获取xml
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function getXml()
      +    {
      +        $xml = <<<EOD
      +<methodResponse>
      +  <fault>
      +    <value>
      +      <struct>
      +        <member>
      +          <name>faultCode</name>
      +          <value><int>{$this->code}</int></value>
      +        </member>
      +        <member>
      +          <name>faultString</name>
      +          <value><string>{$this->message}</string></value>
      +        </member>
      +      </struct>
      +    </value>
      +  </fault>
      +</methodResponse>
      +
      +EOD;
      +        return $xml;
      +    }
      +}
      diff --git a/var/IXR/Exception.php b/var/IXR/Exception.php
      new file mode 100644
      index 00000000..9fad4473
      --- /dev/null
      +++ b/var/IXR/Exception.php
      @@ -0,0 +1,16 @@
      +<?php
      +/*
      +   IXR - The Inutio XML-RPC Library - (c) Incutio Ltd 2002
      +   Version 1.61 - Simon Willison, 11th July 2003 (htmlentities -> htmlspecialchars)
      +   Site:   http://scripts.incutio.com/xmlrpc/
      +   Manual: http://scripts.incutio.com/xmlrpc/manual.php
      +   Made available under the Artistic License: http://www.opensource.org/licenses/artistic-license.php
      +*/
      +
      +/**
      + * IXR异常类
      + *
      + * @package IXR
      + */
      +class IXR_Exception extends Exception
      +{}
      diff --git a/var/IXR/IntrospectionServer.php b/var/IXR/IntrospectionServer.php
      new file mode 100644
      index 00000000..b8664c97
      --- /dev/null
      +++ b/var/IXR/IntrospectionServer.php
      @@ -0,0 +1,160 @@
      +<?php
      +/*
      +   IXR - The Inutio XML-RPC Library - (c) Incutio Ltd 2002
      +   Version 1.61 - Simon Willison, 11th July 2003 (htmlentities -> htmlspecialchars)
      +   Site:   http://scripts.incutio.com/xmlrpc/
      +   Manual: http://scripts.incutio.com/xmlrpc/manual.php
      +   Made available under the Artistic License: http://www.opensource.org/licenses/artistic-license.php
      +*/
      +
      +/** IXR_Server */
      +require_once 'IXR/Server.php';
      +
      +/**
      + * IXR服务器
      + *
      + * @package IXR
      + */
      +class IXR_IntrospectionServer extends IXR_Server {
      +    var $signatures;
      +    var $help;
      +    function IXR_IntrospectionServer() {
      +        $this->setCallbacks();
      +        $this->setCapabilities();
      +        $this->capabilities['introspection'] = array(
      +            'specUrl' => 'http://xmlrpc.usefulinc.com/doc/reserved.html',
      +            'specVersion' => 1
      +        );
      +        $this->addCallback(
      +            'system.methodSignature',
      +            'this:methodSignature',
      +            array('array', 'string'),
      +            'Returns an array describing the return type and required parameters of a method'
      +        );
      +        $this->addCallback(
      +            'system.getCapabilities',
      +            'this:getCapabilities',
      +            array('struct'),
      +            'Returns a struct describing the XML-RPC specifications supported by this server'
      +        );
      +        $this->addCallback(
      +            'system.listMethods',
      +            'this:listMethods',
      +            array('array'),
      +            'Returns an array of available methods on this server'
      +        );
      +        $this->addCallback(
      +            'system.methodHelp',
      +            'this:methodHelp',
      +            array('string', 'string'),
      +            'Returns a documentation string for the specified method'
      +        );
      +    }
      +    function addCallback($method, $callback, $args, $help) {
      +        $this->callbacks[$method] = $callback;
      +        $this->signatures[$method] = $args;
      +        $this->help[$method] = $help;
      +    }
      +    function call($methodname, $args) {
      +        // Make sure it's in an array
      +        if ($args && !is_array($args)) {
      +            $args = array($args);
      +        }
      +        // Over-rides default call method, adds signature check
      +        if (!$this->hasMethod($methodname)) {
      +            return new IXR_Error(-32601, 'server error. requested method "'.$this->message->methodName.'" not specified.');
      +        }
      +        $method = $this->callbacks[$methodname];
      +        $signature = $this->signatures[$methodname];
      +        $returnType = array_shift($signature);
      +        // Check the number of arguments
      +        if (count($args) != count($signature)) {
      +            // print 'Num of args: '.count($args).' Num in signature: '.count($signature);
      +            return new IXR_Error(-32602, 'server error. wrong number of method parameters');
      +        }
      +        // Check the argument types
      +        $ok = true;
      +        $argsbackup = $args;
      +        for ($i = 0, $j = count($args); $i < $j; $i++) {
      +            $arg = array_shift($args);
      +            $type = array_shift($signature);
      +            switch ($type) {
      +                case 'int':
      +                case 'i4':
      +                    if (is_array($arg) || !is_int($arg)) {
      +                        $ok = false;
      +                    }
      +                    break;
      +                case 'base64':
      +                case 'string':
      +                    if (!is_string($arg)) {
      +                        $ok = false;
      +                    }
      +                    break;
      +                case 'boolean':
      +                    if ($arg !== false && $arg !== true) {
      +                        $ok = false;
      +                    }
      +                    break;
      +                case 'float':
      +                case 'double':
      +                    if (!is_float($arg)) {
      +                        $ok = false;
      +                    }
      +                    break;
      +                case 'date':
      +                case 'dateTime.iso8601':
      +                    if (!is_a($arg, 'IXR_Date')) {
      +                        $ok = false;
      +                    }
      +                    break;
      +            }
      +            if (!$ok) {
      +                return new IXR_Error(-32602, 'server error. invalid method parameters');
      +            }
      +        }
      +        // It passed the test - run the "real" method call
      +        return parent::call($methodname, $argsbackup);
      +    }
      +    function methodSignature($method) {
      +        if (!$this->hasMethod($method)) {
      +            return new IXR_Error(-32601, 'server error. requested method "'.$method.'" not specified.');
      +        }
      +        // We should be returning an array of types
      +        $types = $this->signatures[$method];
      +        $return = array();
      +        foreach ($types as $type) {
      +            switch ($type) {
      +                case 'string':
      +                    $return[] = 'string';
      +                    break;
      +                case 'int':
      +                case 'i4':
      +                    $return[] = 42;
      +                    break;
      +                case 'double':
      +                    $return[] = 3.1415;
      +                    break;
      +                case 'dateTime.iso8601':
      +                    $return[] = new IXR_Date(time());
      +                    break;
      +                case 'boolean':
      +                    $return[] = true;
      +                    break;
      +                case 'base64':
      +                    $return[] = new IXR_Base64('base64');
      +                    break;
      +                case 'array':
      +                    $return[] = array('array');
      +                    break;
      +                case 'struct':
      +                    $return[] = array('struct' => 'struct');
      +                    break;
      +            }
      +        }
      +        return $return;
      +    }
      +    function methodHelp($method) {
      +        return $this->help[$method];
      +    }
      +}
      diff --git a/var/IXR/Message.php b/var/IXR/Message.php
      new file mode 100644
      index 00000000..78cb703d
      --- /dev/null
      +++ b/var/IXR/Message.php
      @@ -0,0 +1,167 @@
      +<?php
      +/*
      +   IXR - The Inutio XML-RPC Library - (c) Incutio Ltd 2002
      +   Version 1.61 - Simon Willison, 11th July 2003 (htmlentities -> htmlspecialchars)
      +   Site:   http://scripts.incutio.com/xmlrpc/
      +   Manual: http://scripts.incutio.com/xmlrpc/manual.php
      +   Made available under the Artistic License: http://www.opensource.org/licenses/artistic-license.php
      +*/
      +
      +/**
      + * IXR消息
      + *
      + * @package IXR
      + */
      +class IXR_Message {
      +    var $message;
      +    var $messageType;  // methodCall / methodResponse / fault
      +    var $faultCode;
      +    var $faultString;
      +    var $methodName;
      +    var $params;
      +    // Current variable stacks
      +    var $_arraystructs = array();   // The stack used to keep track of the current array/struct
      +    var $_arraystructstypes = array(); // Stack keeping track of if things are structs or array
      +    var $_currentStructName = array();  // A stack as well
      +    var $_param;
      +    var $_value;
      +    var $_currentTag;
      +    var $_currentTagContents;
      +    // The XML parser
      +    var $_parser;
      +    function IXR_Message ($message) {
      +        $this->message = $message;
      +    }
      +    function parse() {
      +        // first remove the XML declaration
      +        $this->message = preg_replace('/<\?xml(.*)?\?'.'>/', '', $this->message);
      +        if (trim($this->message) == '') {
      +            return false;
      +        }
      +        $this->_parser = xml_parser_create();
      +        // Set XML parser to take the case of tags in to account
      +        xml_parser_set_option($this->_parser, XML_OPTION_CASE_FOLDING, false);
      +        // Set XML parser callback functions
      +        xml_set_object($this->_parser, $this);
      +        xml_set_element_handler($this->_parser, 'tag_open', 'tag_close');
      +        xml_set_character_data_handler($this->_parser, 'cdata');
      +        if (!xml_parse($this->_parser, $this->message)) {
      +            /* die(sprintf('XML error: %s at line %d',
      +                xml_error_string(xml_get_error_code($this->_parser)),
      +                xml_get_current_line_number($this->_parser))); */
      +            return false;
      +        }
      +        xml_parser_free($this->_parser);
      +        // Grab the error messages, if any
      +        if ($this->messageType == 'fault') {
      +            $this->faultCode = $this->params[0]['faultCode'];
      +            $this->faultString = $this->params[0]['faultString'];
      +        }
      +        return true;
      +    }
      +    function tag_open($parser, $tag, $attr) {
      +        $this->currentTag = $tag;
      +        switch($tag) {
      +            case 'methodCall':
      +            case 'methodResponse':
      +            case 'fault':
      +                $this->messageType = $tag;
      +                break;
      +            /* Deal with stacks of arrays and structs */
      +            case 'data':    // data is to all intents and puposes more interesting than array
      +                $this->_arraystructstypes[] = 'array';
      +                $this->_arraystructs[] = array();
      +                break;
      +            case 'struct':
      +                $this->_arraystructstypes[] = 'struct';
      +                $this->_arraystructs[] = array();
      +                break;
      +        }
      +    }
      +    function cdata($parser, $cdata) {
      +        $this->_currentTagContents .= $cdata;
      +    }
      +    function tag_close($parser, $tag) {
      +        $valueFlag = false;
      +        switch($tag) {
      +            case 'int':
      +            case 'i4':
      +                $value = (int)trim($this->_currentTagContents);
      +                $this->_currentTagContents = '';
      +                $valueFlag = true;
      +                break;
      +            case 'double':
      +                $value = (double)trim($this->_currentTagContents);
      +                $this->_currentTagContents = '';
      +                $valueFlag = true;
      +                break;
      +            case 'string':
      +                $value = (string)trim($this->_currentTagContents);
      +                $this->_currentTagContents = '';
      +                $valueFlag = true;
      +                break;
      +            case 'dateTime.iso8601':
      +                $value = new IXR_Date(trim($this->_currentTagContents));
      +                // $value = $iso->getTimestamp();
      +                $this->_currentTagContents = '';
      +                $valueFlag = true;
      +                break;
      +            case 'value':
      +                // "If no type is indicated, the type is string."
      +                if (trim($this->_currentTagContents) != '') {
      +                    $value = (string)$this->_currentTagContents;
      +                    $this->_currentTagContents = '';
      +                    $valueFlag = true;
      +                }
      +                break;
      +            case 'boolean':
      +                $value = (boolean)trim($this->_currentTagContents);
      +                $this->_currentTagContents = '';
      +                $valueFlag = true;
      +                break;
      +            case 'base64':
      +                $value = base64_decode($this->_currentTagContents);
      +                $this->_currentTagContents = '';
      +                $valueFlag = true;
      +                break;
      +            /* Deal with stacks of arrays and structs */
      +            case 'data':
      +            case 'struct':
      +                $value = array_pop($this->_arraystructs);
      +                array_pop($this->_arraystructstypes);
      +                $valueFlag = true;
      +                break;
      +            case 'member':
      +                array_pop($this->_currentStructName);
      +                break;
      +            case 'name':
      +                $this->_currentStructName[] = trim($this->_currentTagContents);
      +                $this->_currentTagContents = '';
      +                break;
      +            case 'methodName':
      +                $this->methodName = trim($this->_currentTagContents);
      +                $this->_currentTagContents = '';
      +                break;
      +        }
      +        if ($valueFlag) {
      +            /*
      +            if (!is_array($value) && !is_object($value)) {
      +                $value = trim($value);
      +            }
      +            */
      +            if (count($this->_arraystructs) > 0) {
      +                // Add value to struct or array
      +                if ($this->_arraystructstypes[count($this->_arraystructstypes)-1] == 'struct') {
      +                    // Add to struct
      +                    $this->_arraystructs[count($this->_arraystructs)-1][$this->_currentStructName[count($this->_currentStructName)-1]] = $value;
      +                } else {
      +                    // Add to array
      +                    $this->_arraystructs[count($this->_arraystructs)-1][] = $value;
      +                }
      +            } else {
      +                // Just add as a paramater
      +                $this->params[] = $value;
      +            }
      +        }
      +    }
      +}
      diff --git a/var/IXR/Request.php b/var/IXR/Request.php
      new file mode 100644
      index 00000000..ef2df6ca
      --- /dev/null
      +++ b/var/IXR/Request.php
      @@ -0,0 +1,43 @@
      +<?php
      +/*
      +   IXR - The Inutio XML-RPC Library - (c) Incutio Ltd 2002
      +   Version 1.61 - Simon Willison, 11th July 2003 (htmlentities -> htmlspecialchars)
      +   Site:   http://scripts.incutio.com/xmlrpc/
      +   Manual: http://scripts.incutio.com/xmlrpc/manual.php
      +   Made available under the Artistic License: http://www.opensource.org/licenses/artistic-license.php
      +*/
      +
      +/**
      + * IXR请求体
      + *
      + * @package IXR
      + */
      +class IXR_Request {
      +    var $method;
      +    var $args;
      +    var $xml;
      +    function IXR_Request($method, $args) {
      +        $this->method = $method;
      +        $this->args = $args;
      +        $this->xml = <<<EOD
      +<?xml version="1.0"?>
      +<methodCall>
      +<methodName>{$this->method}</methodName>
      +<params>
      +
      +EOD;
      +        foreach ($this->args as $arg) {
      +            $this->xml .= '<param><value>';
      +            $v = new IXR_Value($arg);
      +            $this->xml .= $v->getXml();
      +            $this->xml .= "</value></param>\n";
      +        }
      +        $this->xml .= '</params></methodCall>';
      +    }
      +    function getLength() {
      +        return strlen($this->xml);
      +    }
      +    function getXml() {
      +        return $this->xml;
      +    }
      +}
      diff --git a/var/IXR/Server.php b/var/IXR/Server.php
      new file mode 100644
      index 00000000..a7fce2b3
      --- /dev/null
      +++ b/var/IXR/Server.php
      @@ -0,0 +1,346 @@
      +<?php
      +/*
      +   IXR - The Inutio XML-RPC Library - (c) Incutio Ltd 2002
      +   Version 1.61 - Simon Willison, 11th July 2003 (htmlentities -> htmlspecialchars)
      +   Site:   http://scripts.incutio.com/xmlrpc/
      +   Manual: http://scripts.incutio.com/xmlrpc/manual.php
      +   Made available under the Artistic License: http://www.opensource.org/licenses/artistic-license.php
      +*/
      +
      +/** IXR值 */
      +require_once 'IXR/Value.php';
      +
      +/** IXR消息 */
      +require_once 'IXR/Message.php';
      +
      +/** IXR请求体 */
      +require_once 'IXR/Request.php';
      +
      +/** IXR错误 */
      +require_once 'IXR/Error.php';
      +
      +/** IXR日期 */
      +require_once 'IXR/Date.php';
      +
      +/** IXR Base64编码 */
      +require_once 'IXR/Base64.php';
      +
      +/**
      + * IXR服务器
      + *
      + * @package IXR
      + */
      +class IXR_Server
      +{
      +    /**
      +     * 输入参数
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $data;
      +
      +    /**
      +     * 回调函数
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $callbacks = array();
      +
      +    /**
      +     * 消息体
      +     *
      +     * @access private
      +     * @var IXR_Message
      +     */
      +    private $message;
      +
      +    /**
      +     * 默认参数
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $capabilities;
      +
      +    /**
      +     * 构造函数
      +     *
      +     * @access public
      +     * @param mixed $callbacks 回调函数
      +     * @param mixed $data 输入参数
      +     * @return void
      +     */
      +    public function __construct($callbacks = false, $data = false)
      +    {
      +        $this->setCapabilities();
      +        if ($callbacks) {
      +            $this->callbacks = $callbacks;
      +        }
      +        $this->setCallbacks();
      +        $this->serve($data);
      +    }
      +
      +    /**
      +     * 呼叫内部方法
      +     *
      +     * @access private
      +     * @param string $methodname 方法名
      +     * @param mixed $args 参数
      +     * @return mixed
      +     */
      +    private function call($methodname, $args)
      +    {
      +        // hook
      +        if (0 !== strpos($methodname, 'hook.') && $this->hasMethod('hook.beforeCall')) {
      +            $this->call('hook.beforeCall', array($methodname));
      +        }
      +        
      +        if (!$this->hasMethod($methodname)) {
      +            return new IXR_Error(-32601, 'server error. requested method '.$methodname.' does not exist.');
      +        }
      +        $method = $this->callbacks[$methodname];
      +
      +        // Are we dealing with a function or a method?
      +        if (is_string($method) && substr($method, 0, 5) == 'this:') {
      +            // It's a class method - check it exists
      +            $method = substr($method, 5);
      +            if (!method_exists($this, $method)) {
      +                return new IXR_Error(-32601, 'server error. requested class method "'.$method.'" does not exist.');
      +            }
      +            // Call the method
      +            $result = $this->$method($args);
      +        } else {
      +            if (is_array($method)) {
      +                list($object, $func) = $method;
      +                if (!is_callable($method)) {
      +                    return new IXR_Error(-32601, 'server error. requested class method "'.$object . '.' . $func.'" does not exist.');
      +                }
      +                
      +                $result = call_user_func_array(array($object, $func), $args);
      +            } elseif (!function_exists($method)) {
      +                // It's a function - does it exist?
      +                return new IXR_Error(-32601, 'server error. requested function "'.$method.'" does not exist.');
      +            } else {
      +                // Call the function
      +                $result = $method($args);
      +            }
      +        }
      +        
      +        // hook
      +        if (0 !== strpos($methodname, 'hook.') && $this->hasMethod('hook.afterCall')) {
      +            $this->call('hook.afterCall', array($methodname));
      +        }
      +        
      +        return $result;
      +    }
      +
      +    /**
      +     * 抛出错误
      +     *
      +     * @access private
      +     * @param integer $error 错误代码
      +     * @param string $message 错误消息
      +     * @return void
      +     */
      +    private function error($error, $message = false)
      +    {
      +        // Accepts either an error object or an error code and message
      +        if ($message && !is_object($error)) {
      +            $error = new IXR_Error($error, $message);
      +        }
      +        $this->output($error->getXml());
      +    }
      +
      +    /**
      +     * 输出xml
      +     *
      +     * @access private
      +     * @param string $xml 输出xml
      +     * @return 输出xml
      +     */
      +    private function output($xml)
      +    {
      +        $xml = '<?xml version="1.0"?>'."\n".$xml;
      +        $length = strlen($xml);
      +        header('Connection: close');
      +        header('Content-Length: '.$length);
      +        header('Content-Type: text/xml');
      +        header('Date: '.date('r'));
      +        echo $xml;
      +        exit;
      +    }
      +
      +    /**
      +     * 是否存在方法
      +     *
      +     * @access private
      +     * @param string $method 方法名
      +     * @return mixed
      +     */
      +    private function hasMethod($method)
      +    {
      +        return in_array($method, array_keys($this->callbacks));
      +    }
      +
      +    /**
      +     * 设置默认参数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    private function setCapabilities()
      +    {
      +        // Initialises capabilities array
      +        $this->capabilities = array(
      +            'xmlrpc' => array(
      +                'specUrl' => 'http://www.xmlrpc.com/spec',
      +                'specVersion' => 1
      +            ),
      +            'faults_interop' => array(
      +                'specUrl' => 'http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php',
      +                'specVersion' => 20010516
      +            ),
      +            'system.multicall' => array(
      +                'specUrl' => 'http://www.xmlrpc.com/discuss/msgReader$1208',
      +                'specVersion' => 1
      +            ),
      +        );
      +    }
      +
      +    /**
      +     * 设置默认方法
      +     *
      +     * @access private
      +     * @return void
      +     */
      +    private function setCallbacks()
      +    {
      +        $this->callbacks['system.getCapabilities'] = 'this:getCapabilities';
      +        $this->callbacks['system.listMethods'] = 'this:listMethods';
      +        $this->callbacks['system.multicall'] = 'this:multiCall';
      +    }
      +
      +    /**
      +     * 服务入口
      +     *
      +     * @access private
      +     * @param mixed $data 输入参数
      +     * @return void
      +     */
      +    private function serve($data = false)
      +    {
      +        if (!isset($GLOBALS['HTTP_RAW_POST_DATA'])) {
      +            $GLOBALS['HTTP_RAW_POST_DATA'] = file_get_contents("php://input");
      +        }
      +        if (isset($GLOBALS['HTTP_RAW_POST_DATA'])) {
      +            $GLOBALS['HTTP_RAW_POST_DATA'] = trim($GLOBALS['HTTP_RAW_POST_DATA']);
      +        }
      +
      +        if (!$data) {
      +            global $HTTP_RAW_POST_DATA;
      +            if (!$HTTP_RAW_POST_DATA) {
      +               die('XML-RPC server accepts POST requests only.');
      +            }
      +            $data = $HTTP_RAW_POST_DATA;
      +        }
      +        $this->message = new IXR_Message($data);
      +        if (!$this->message->parse()) {
      +            $this->error(-32700, 'parse error. not well formed');
      +        }
      +        if ($this->message->messageType != 'methodCall') {
      +            $this->error(-32600, 'server error. invalid xml-rpc. not conforming to spec. Request must be a methodCall');
      +        }
      +        
      +        if (0 === strpos($this->message->methodName, 'hook.')) {
      +            die('THIS METHOD MUST BE CALLED INSIDE.');
      +        }
      +        
      +        $result = $this->call($this->message->methodName, $this->message->params);
      +        // Is the result an error?
      +        if (is_a($result, 'IXR_Error')) {
      +            $this->error($result);
      +        }
      +        // Encode the result
      +        $r = new IXR_Value($result);
      +        $resultxml = $r->getXml();
      +        // Create the XML
      +        $xml = <<<EOD
      +<methodResponse>
      +  <params>
      +    <param>
      +      <value>
      +        $resultxml
      +      </value>
      +    </param>
      +  </params>
      +</methodResponse>
      +
      +EOD;
      +        // hook
      +        if ($this->hasMethod('hook.beforeOutput')) {
      +            $this->call('hook.beforeOutput', array());
      +        }
      +        
      +        // Send it
      +        $this->output($xml);
      +    }
      +
      +    /**
      +     * 获取默认参数
      +     *
      +     * @access public
      +     * @param mixed $args 输入参数
      +     * @return array
      +     */
      +    public function getCapabilities($args)
      +    {
      +        return $this->capabilities;
      +    }
      +
      +    /**
      +     * 列出所有方法
      +     *
      +     * @access public
      +     * @param mixed $args 输入参数
      +     * @return mixed
      +     */
      +    public function listMethods($args)
      +    {
      +        // Returns a list of methods - uses array_reverse to ensure user defined
      +        // methods are listed before server defined methods
      +        return array_reverse(array_keys($this->callbacks));
      +    }
      +
      +    /**
      +     * 一次处理多个请求
      +     *
      +     * @access public
      +     * @param void $methodcalls
      +     * @return array
      +     */
      +    public function multiCall($methodcalls)
      +    {
      +        // See http://www.xmlrpc.com/discuss/msgReader$1208
      +        $return = array();
      +        foreach ($methodcalls as $call) {
      +            $method = $call['methodName'];
      +            $params = $call['params'];
      +            if ($method == 'system.multicall') {
      +                $result = new IXR_Error(-32600, 'Recursive calls to system.multicall are forbidden');
      +            } else {
      +                $result = $this->call($method, $params);
      +            }
      +            if (is_a($result, 'IXR_Error')) {
      +                $return[] = array(
      +                    'faultCode' => $result->code,
      +                    'faultString' => $result->message
      +                );
      +            } else {
      +                $return[] = array($result);
      +            }
      +        }
      +        return $return;
      +    }
      +}
      diff --git a/var/IXR/Value.php b/var/IXR/Value.php
      new file mode 100644
      index 00000000..4e8424d1
      --- /dev/null
      +++ b/var/IXR/Value.php
      @@ -0,0 +1,119 @@
      +<?php
      +/*
      +   IXR - The Inutio XML-RPC Library - (c) Incutio Ltd 2002
      +   Version 1.61 - Simon Willison, 11th July 2003 (htmlentities -> htmlspecialchars)
      +   Site:   http://scripts.incutio.com/xmlrpc/
      +   Manual: http://scripts.incutio.com/xmlrpc/manual.php
      +   Made available under the Artistic License: http://www.opensource.org/licenses/artistic-license.php
      +*/
      +
      +/**
      + * IXR值
      + *
      + * @package IXR
      + */
      +class IXR_Value {
      +    var $data;
      +    var $type;
      +    function IXR_Value ($data, $type = false) {
      +        $this->data = $data;
      +        if (!$type) {
      +            $type = $this->calculateType();
      +        }
      +        $this->type = $type;
      +        if ($type == 'struct') {
      +            /* Turn all the values in the array in to new IXR_Value objects */
      +            foreach ($this->data as $key => $value) {
      +                $this->data[$key] = new IXR_Value($value);
      +            }
      +        }
      +        if ($type == 'array') {
      +            for ($i = 0, $j = count($this->data); $i < $j; $i++) {
      +                $this->data[$i] = new IXR_Value($this->data[$i]);
      +            }
      +        }
      +    }
      +    function calculateType() {
      +        if ($this->data === true || $this->data === false) {
      +            return 'boolean';
      +        }
      +        if (is_integer($this->data)) {
      +            return 'int';
      +        }
      +        if (is_double($this->data)) {
      +            return 'double';
      +        }
      +        // Deal with IXR object types base64 and date
      +        if (is_object($this->data) && is_a($this->data, 'IXR_Date')) {
      +            return 'date';
      +        }
      +        if (is_object($this->data) && is_a($this->data, 'IXR_Base64')) {
      +            return 'base64';
      +        }
      +        // If it is a normal PHP object convert it in to a struct
      +        if (is_object($this->data)) {
      +
      +            $this->data = get_object_vars($this->data);
      +            return 'struct';
      +        }
      +        if (!is_array($this->data)) {
      +            return 'string';
      +        }
      +        /* We have an array - is it an array or a struct ? */
      +        if ($this->isStruct($this->data)) {
      +            return 'struct';
      +        } else {
      +            return 'array';
      +        }
      +    }
      +    function getXml() {
      +        /* Return XML for this value */
      +        switch ($this->type) {
      +            case 'boolean':
      +                return '<boolean>'.(($this->data) ? '1' : '0').'</boolean>';
      +                break;
      +            case 'int':
      +                return '<int>'.$this->data.'</int>';
      +                break;
      +            case 'double':
      +                return '<double>'.$this->data.'</double>';
      +                break;
      +            case 'string':
      +                return '<string>'.htmlspecialchars($this->data).'</string>';
      +                break;
      +            case 'array':
      +                $return = '<array><data>'."\n";
      +                foreach ($this->data as $item) {
      +                    $return .= '  <value>'.$item->getXml()."</value>\n";
      +                }
      +                $return .= '</data></array>';
      +                return $return;
      +                break;
      +            case 'struct':
      +                $return = '<struct>'."\n";
      +                foreach ($this->data as $name => $value) {
      +                    $return .= "  <member><name>$name</name><value>";
      +                    $return .= $value->getXml()."</value></member>\n";
      +                }
      +                $return .= '</struct>';
      +                return $return;
      +                break;
      +            case 'date':
      +            case 'base64':
      +                return $this->data->getXml();
      +                break;
      +        }
      +        return false;
      +    }
      +    function isStruct($array) {
      +        /* Nasty function to check if an array is a struct or not */
      +        $expected = 0;
      +        foreach ($array as $key => $value) {
      +            if ((string)$key != (string)$expected) {
      +                return true;
      +            }
      +            $expected++;
      +        }
      +        return false;
      +    }
      +}
      diff --git a/var/Typecho/Common.php b/var/Typecho/Common.php
      new file mode 100644
      index 00000000..78cf7977
      --- /dev/null
      +++ b/var/Typecho/Common.php
      @@ -0,0 +1,1427 @@
      +<?php
      +/**
      + * API方法,Typecho命名空间
      + *
      + * @category typecho
      + * @package Common
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * Typecho公用方法
      + *
      + * @category typecho
      + * @package Common
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Typecho_Common
      +{
      +    /** 程序版本 */
      +    const VERSION = '0.8/10.8.15';
      +
      +    /**
      +     * 缓存的包含路径
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private static $_cachedIncludePath = false;
      +
      +    /**
      +     * 锁定的代码块
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private static $_lockedBlocks = array('<p></p>' => '');
      +    
      +    /**
      +     * 允许的标签
      +     * 
      +     * @access private
      +     * @var array
      +     */
      +    private static $_allowableTags = '';
      +    
      +    /**
      +     * 允许的属性
      +     * 
      +     * @access private
      +     * @var array
      +     */
      +    private static $_allowableAttributes = array();
      +
      +    /**
      +     * 默认编码
      +     *
      +     * @access public
      +     * @var string
      +     */
      +    public static $charset = 'UTF-8';
      +
      +    /**
      +     * 异常处理类
      +     *
      +     * @access public
      +     * @var string
      +     */
      +    public static $exceptionHandle;
      +
      +    /**
      +     * 锁定标签回调函数
      +     *
      +     * @access private
      +     * @param array $matches 匹配的值
      +     * @return string
      +     */
      +    public static function __lockHTML(array $matches)
      +    {
      +        $guid = '<code>' . uniqid(time()) . '</code>';
      +        self::$_lockedBlocks[$guid] = $matches[0];
      +        return $guid;
      +    }
      +
      +    /**
      +     * 将url中的非法xss去掉时的数组回调过滤函数
      +     *
      +     * @access private
      +     * @param string $string 需要过滤的字符串
      +     * @return string
      +     */
      +    public static function __removeUrlXss($string)
      +    {
      +        $string = str_replace(array('%0d', '%0a'), '', strip_tags($string));
      +        return preg_replace(array(
      +            "/\(\s*(\"|')/i",           //函数开头
      +            "/(\"|')\s*\)/i",           //函数结尾
      +        ), '', $string);
      +    }
      +
      +    /**
      +     * 检查是否为安全路径
      +     *
      +     * @access public
      +     * @param string $path 检查是否为安全路径
      +     * @return boolean
      +     */
      +    public static function __safePath($path)
      +    {
      +        $safePath = rtrim(__TYPECHO_ROOT_DIR__, '/');
      +        return 0 === strpos($path, $safePath);
      +    }
      +    
      +    /**
      +     * html标签过滤
      +     * 
      +     * @access public
      +     * @param string $tag 标签
      +     * @param string $attrs 属性
      +     * @return string
      +     */
      +    public static function __tagFilter($tag, $attrs)
      +    {
      +
      +        $suffix = '';
      +        $tag = strtolower($tag);
      +        
      +        if (false === strpos(self::$_allowableTags, "|{$tag}|")) {
      +            return '';
      +        }
      +        
      +        if (!empty($attrs)) {
      +            $result = self::__parseAtttrs($attrs);
      +            $attrs = '';
      +            
      +            foreach ($result as $name => $val) {
      +                $quote = '';
      +                $lname = strtolower($name);
      +                $lval = self::__attrTrim($val, $quote);
      +
      +                if (in_array($lname, self::$_allowableAttributes[$tag])) {
      +                    $attrs .= ' ' . $name . (empty($val) ? '' : '=' . $val);
      +                }
      +            }
      +        }
      +        
      +        return "<{$tag}{$attrs}>";
      +    }
      +
      +    /**
      +     * 自闭合标签过滤
      +     * 
      +     * @access public
      +     * @param array $matches 匹配值
      +     * @return string
      +     */
      +    public static function __closeTagFilter($matches)
      +    {
      +        $tag = strtolower($matches[1]);
      +        return false === strpos(self::$_allowableTags, "|{$tag}|") ? '' : "</{$tag}>";
      +    }
      +    
      +    /**
      +     * 解析属性
      +     * 
      +     * @access public
      +     * @param string $attrs 属性字符串
      +     * @return array
      +     */
      +    public static function __parseAtttrs($attrs)
      +    {
      +        $attrs = trim($attrs);
      +        $len = strlen($attrs);
      +        $pos = -1;
      +        $result = array();
      +        $quote = '';
      +        $key = '';
      +        $value = '';
      +        
      +        for ($i = 0; $i < $len; $i ++) {
      +            if ('=' != $attrs[$i] && !ctype_space($attrs[$i]) && -1 == $pos) {
      +                $key .= $attrs[$i];
      +                
      +                /** 最后一个 */
      +                if ($i == $len - 1) {
      +                    if ('' != ($key = trim($key))) {
      +                        $result[$key] = '';
      +                        $key = '';
      +                        $value = '';
      +                    }
      +                }
      +                
      +            } else if (ctype_space($attrs[$i]) && -1 == $pos) {
      +                $pos = -2;
      +            } else if ('=' == $attrs[$i] && 0 > $pos) {
      +                $pos = 0;
      +            } else if (('"' == $attrs[$i] || "'" == $attrs[$i]) && 0 == $pos) {
      +                $quote = $attrs[$i];
      +                $value .= $attrs[$i];
      +                $pos = 1;
      +            } else if ($quote != $attrs[$i] && 1 == $pos) {
      +                $value .= $attrs[$i];
      +            } else if ($quote == $attrs[$i] && 1 == $pos) {
      +                $pos = -1;
      +                $value .= $attrs[$i];
      +                $result[trim($key)] = $value;
      +                $key = '';
      +                $value = '';
      +            } else if ('=' != $attrs[$i] && !ctype_space($attrs[$i]) && -2 == $pos) {
      +                if ('' != ($key = trim($key))) {
      +                    $result[$key] = '';
      +                }
      +                
      +                $key = '';
      +                $value = '';
      +                $pos = -1;
      +                $key .= $attrs[$i];
      +            }
      +        }
      +        
      +        return $result;
      +    }
      +
      +    /**
      +     * 清除属性空格
      +     * 
      +     * @access public
      +     * @param string $attr 属性
      +     * @param string $quote 引号
      +     * @return string
      +     */
      +    public static function __attrTrim($attr, &$quote)
      +    {
      +        $attr = trim($attr);
      +        $attr_len = strlen($attr);
      +        $quote = '';
      +        
      +        if ($attr_len >= 2 &&
      +            ('"' == $attr[0] || "'" == $attr[0]) 
      +            && $attr[0] == $attr[$attr_len - 1]) {
      +            $quote = $attr[0];
      +            return trim(substr($attr, 1, -1));
      +        }
      +        
      +        return $attr;
      +    }
      +
      +    /**
      +     * 程序初始化方法
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public static function init()
      +    {
      +        /** 输出logo */
      +        if (isset($_GET['464D-E63E-9D08-97E2-16DD-6A37-BDEC-6021'])) {
      +            header('content-Type: image/gif', true);
      +            die(base64_decode('R0lGODlhXQAVANUAAP////Pz8+bm5tnZ2c3NzcDAwLOzs5mZmY2NjeR+ANp6A9l5A4CAgM51BsNwCsNwCbhrDXNzc61nEKxmEKFiE6JiE2ZmZpddFpZdFoxZGYtYGoFUHYBUHVlZWXZPIHVPIGtLI2pKI01NTV9GJlRBKVRBKkBAQEk8LT44MD03MDMzMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAHAP8ALAAAAABdABUAAAb/QJVwSCwaj8ikUgjxLJ9Gj+JELBSg2OwyodFCSYkKkUDwms3cs5E0GlYSVCFZTX+m60IpSnhKXIZzeEonI21HKIVxQlyIhkaEjkVOQg2TKhIKKggHAgIHCEMmByZEERFCHaAmEQcHp0ckDgmzCxlEKG+zCRAkiw4LtCBEIw26CbZFEIYXD0MeCSQBANMAAUMWABZjZSoHAAzS1AGvQyAJDRwjIRQJDnsoshSFGAsLVLPKIbKGz+jq7A6KjBCjAsweFSgSbJDD7Vq2bUK8ARjwKsIAAORQLHBHREKaCQlKEDmhIYWKdkNSLKCg4sTGg3nuDGm2yJGCPyoCOdQGiJu3/wGkQg0IEJQDtCEjIJwr0QdDEpkqIEBQgQGOkQkLilSIAwFZ1Kk5GwrBxpNhxIdFsDFg0oDPmwUchIxIEKkIVKlRAxrZQJdIBkNdh+ANmxat2W4AkAA4wOQBigyzMJgUEqIvkrtTB0uyLOQvE6+DdY41TBhxUCImFgupqmCXIhInSkC120Xw1Kow3SSYLGTr55kSDu+EiJhxEW8d+CRYEAmMUwgLehERdrI2k6mygxMBw5IIzZOOjgkpIECIieQmAlxBBcDntLVDGABYL8QoBGEoNtSjUqKeBxQneFCMSJgJocEuwpyQgQIN8KbCQEIYJFcC1EXQHiflqSDfAAcYIJ+NexdxeECIpwnxATC6QKBICbLo0kAIi1j31RAcoIiPg1Et890FCcAUgQAACACfChZVY8AA7nVz0URDFpFCCBp8oAgRJWigAYxDSDlMJCl8oAEHIkUxRCVDKABWFoF4I8iaUOgRkyVIdFCWCgKspyabeCLBxphtLVEAAKoYgNadeRZ6BF9wImHCku8NQaihkAqRXxasICACEalEqqkRQQAAOw=='));
      +        }
      +
      +        /** 设置自动载入函数 */
      +        function __autoLoad($className)
      +        {
      +            /**
      +             * 自动载入函数并不判断此类的文件是否存在, 我们认为当你显式的调用它时, 你已经确认它存在了
      +             * 如果真的无法被加载, 那么系统将出现一个严重错误(Fetal Error)
      +             * 如果你需要判断一个类能否被加载, 请使用 Typecho_Common::isAvailableClass 方法
      +             */
      +            @include_once str_replace('_', '/', $className) . '.php';
      +        }
      +
      +        /** 兼容php6 */
      +        if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
      +            $_GET = self::stripslashesDeep($_GET);
      +            $_POST = self::stripslashesDeep($_POST);
      +            $_COOKIE = self::stripslashesDeep($_COOKIE);
      +
      +            reset($_GET);
      +            reset($_POST);
      +            reset($_COOKIE);
      +        }
      +
      +        /** 设置异常截获函数 */
      +        set_exception_handler(array('Typecho_Common', 'exceptionHandle'));
      +    }
      +
      +    /**
      +     * 异常截获函数
      +     *
      +     * @access public
      +     * @param Exception $exception 截获的异常
      +     * @return void
      +     */
      +    public static function exceptionHandle(Exception $exception)
      +    {
      +        //$obHandles = ob_list_handlers();
      +
      +        @ob_end_clean();
      +
      +        /*
      +        if (in_array('ob_gzhandler', $obHandles)) {
      +            ob_start('ob_gzhandler');
      +        } else {
      +            ob_start();
      +        }
      +        */
      +
      +        if (defined('__TYPECHO_DEBUG__')) {
      +            //@ob_clean();
      +            echo nl2br($exception->__toString());
      +        } else {
      +            if (404 == $exception->getCode() && !empty(self::$exceptionHandle)) {
      +                $handleClass = self::$exceptionHandle;
      +                new $handleClass($exception);
      +            } else {
      +                self::error($exception);
      +            }
      +        }
      +
      +        exit;
      +    }
      +
      +    /**
      +     * 输出错误页面
      +     *
      +     * @access public
      +     * @param mixed $exception 错误信息
      +     * @return void
      +     */
      +    public static function error($exception)
      +    {
      +        $isException = is_object($exception);
      +
      +        if ($isException) {
      +            $code = $exception->getCode();
      +            $message = $exception->getMessage();
      +        } else {
      +            $code = $exception;
      +        }
      +
      +        require_once 'Typecho/Response.php';
      +        $charset = self::$charset;
      +
      +        if ($isException && $exception instanceof Typecho_Db_Exception) {
      +            $code = 500;
      +            @error_log($message);
      +
      +            //覆盖原始错误信息
      +            $message = 'Database Server Error';
      +
      +            if ($exception instanceof Typecho_Db_Adapter_Exception) {
      +                $code = 503;
      +                $message = 'Error establishing a database connection';
      +            } else if ($exception instanceof Typecho_Db_Query_Exception) {
      +                $message = 'Database Query Error';
      +            }
      +        } else {
      +            switch ($code) {
      +                case 500:
      +                    $message = 'Server Error';
      +                    break;
      +
      +                case 404:
      +                    $message = 'Page Not Found';
      +                    break;
      +
      +                default:
      +                    $code = 'Error';
      +                    break;
      +            }
      +        }
      +
      +
      +        /** 设置http code */
      +        if (is_numeric($code) && $code > 200) {
      +            require_once 'Typecho/Response.php';
      +            Typecho_Response::setStatus($code);
      +        }
      +
      +        $message = nl2br($message);
      +
      +        if (defined('__TYPECHO_EXCEPTION_FILE__')) {
      +            require_once __TYPECHO_EXCEPTION_FILE__;
      +        } else {
      +            echo
      +<<<EOF
      +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      +    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      +<html xmlns="http://www.w3.org/1999/xhtml">
      +<head>
      +    <meta http-equiv="Content-Type" content="text/html; charset={$charset}" />
      +    <title>{$code}</title>
      +
      +    <style type="text/css">
      +        body {
      +            background: #f7fbe9;
      +            font-family: "Lucida Grande","Lucida Sans Unicode",Tahoma,Verdana;
      +        }
      +
      +        #error {
      +            background: #333;
      +            width: 360px;
      +            margin: 0 auto;
      +            margin-top: 100px;
      +            color: #fff;
      +            padding: 10px;
      +
      +            -moz-border-radius-topleft: 4px;
      +            -moz-border-radius-topright: 4px;
      +            -moz-border-radius-bottomleft: 4px;
      +            -moz-border-radius-bottomright: 4px;
      +            -webkit-border-top-left-radius: 4px;
      +            -webkit-border-top-right-radius: 4px;
      +            -webkit-border-bottom-left-radius: 4px;
      +            -webkit-border-bottom-right-radius: 4px;
      +
      +            border-top-left-radius: 4px;
      +            border-top-right-radius: 4px;
      +            border-bottom-left-radius: 4px;
      +            border-bottom-right-radius: 4px;
      +        }
      +
      +        h1 {
      +            padding: 10px;
      +            margin: 0;
      +            font-size: 36px;
      +        }
      +
      +        p {
      +            padding: 0 20px 20px 20px;
      +            margin: 0;
      +            font-size: 12px;
      +        }
      +
      +        img {
      +            padding: 0 0 5px 260px;
      +        }
      +    </style>
      +</head>
      +<body>
      +    <div id="error">
      +        <h1>{$code}</h1>
      +        <p>{$message}</p>
      +        <img src="?464D-E63E-9D08-97E2-16DD-6A37-BDEC-6021" />
      +    </div>
      +</body>
      +</html>
      +EOF;
      +        }
      +
      +        exit;
      +    }
      +
      +    /**
      +     * 判断类是否能被加载
      +     * 此函数会遍历所有的include目录, 所以会有一定的性能消耗, 但是不会很大
      +     * 可是我们依然建议你在必须检测一个类能否被加载时使用它, 它通常表现为以下两种情况
      +     * 1. 当需要被加载的类不存在时, 系统不会停止运行 (如果你不判断, 系统会因抛出严重错误而停止)
      +     * 2. 你需要知道哪些类无法被加载, 以提示使用者
      +     * 除了以上情况, 你无需关注那些类无法被加载, 因为当它们不存在时系统会自动停止并报错
      +     *
      +     * @access public
      +     * @param string $className 类名
      +     * @param string $path 指定的路径名称
      +     * @return boolean
      +     */
      +    public static function isAvailableClass($className, $path = NULL)
      +    {
      +        /** 获取所有include目录 */
      +        //增加安全目录检测 fix issue 106
      +        $dirs = array_map('realpath', array_filter(explode(PATH_SEPARATOR, get_include_path()),
      +        array('Typecho_Common', '__safePath')));
      +
      +        $file = str_replace('_', '/', $className) . '.php';
      +
      +        if (!empty($path)) {
      +            $path = realpath($path);
      +            if (in_array($path, $dirs)) {
      +                $dirs = array($path);
      +            } else {
      +                return false;
      +            }
      +        }
      +
      +        foreach ($dirs as $dir) {
      +            if (!empty($dir)) {
      +                if (file_exists($dir . '/' . $file)) {
      +                    return true;
      +                }
      +            }
      +        }
      +
      +        return false;
      +    }
      +
      +    /**
      +     * 递归去掉数组反斜线
      +     *
      +     * @access public
      +     * @param mixed $value
      +     * @return mixed
      +     */
      +    public static function stripslashesDeep($value)
      +    {
      +        return is_array($value) ? array_map(array('Typecho_Common', 'stripslashesDeep'), $value) : stripslashes($value);
      +    }
      +
      +    /**
      +     * 抽取多维数组的某个元素,组成一个新数组,使这个数组变成一个扁平数组
      +     * 使用方法:
      +     * <code>
      +     * <?php
      +     * $fruit = array(array('apple' => 2, 'banana' => 3), array('apple' => 10, 'banana' => 12));
      +     * $banana = Typecho_Common::arrayFlatten($fruit, 'banana');
      +     * print_r($banana);
      +     * //outputs: array(0 => 3, 1 => 12);
      +     * ?>
      +     * </code>
      +     *
      +     * @access public
      +     * @param array $value 被处理的数组
      +     * @param string $key 需要抽取的键值
      +     * @return array
      +     */
      +    public static function arrayFlatten(array $value, $key)
      +    {
      +        $result = array();
      +
      +        if ($value) {
      +            foreach ($value as $inval) {
      +                if (is_array($inval) && isset($inval[$key])) {
      +                    $result[] = $inval[$key];
      +                } else {
      +                    break;
      +                }
      +            }
      +        }
      +
      +        return $result;
      +    }
      +
      +    /**
      +     * 根据parse_url的结果重新组合url
      +     *
      +     * @access public
      +     * @param array $params 解析后的参数
      +     * @return string
      +     */
      +    public static function buildUrl($params)
      +    {
      +        return (isset($params['scheme']) ? $params['scheme'] . '://' : NULL)
      +        . (isset($params['user']) ? $params['user'] . (isset($params['pass']) ? ':' . $params['pass'] : NULL) . '@' : NULL)
      +        . (isset($params['host']) ? $params['host'] : NULL)
      +        . (isset($params['port']) ? ':' . $params['port'] : NULL)
      +        . (isset($params['path']) ? $params['path'] : NULL)
      +        . (isset($params['query']) ? '?' . $params['query'] : NULL)
      +        . (isset($params['fragment']) ? '#' . $params['fragment'] : NULL);
      +    }
      +
      +    /**
      +     * 根据count数目来输出字符
      +     * <code>
      +     * echo splitByCount(20, 10, 20, 30, 40, 50);
      +     * </code>
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public static function splitByCount($count)
      +    {
      +        $sizes = func_get_args();
      +        array_shift($sizes);
      +
      +        foreach ($sizes as $size) {
      +            if ($count < $size) {
      +                return $size;
      +            }
      +        }
      +
      +        return 0;
      +    }
      +
      +    /**
      +     * 自闭合html修复函数
      +     * 使用方法:
      +     * <code>
      +     * $input = '这是一段被截断的html文本<a href="#"';
      +     * echo Typecho_Common::fixHtml($input);
      +     * //output: 这是一段被截断的html文本
      +     * </code>
      +     *
      +     * @access public
      +     * @param string $string 需要修复处理的字符串
      +     * @return string
      +     */
      +    public static function fixHtml($string)
      +    {
      +        //关闭自闭合标签
      +        $startPos = strrpos($string, "<");
      +
      +        if (false == $startPos) {
      +            return $string;
      +        }
      +
      +        $trimString = substr($string, $startPos);
      +
      +        if (false === strpos($trimString, ">")) {
      +            $string = substr($string, 0, $startPos);
      +        }
      +
      +        //非自闭合html标签列表
      +        preg_match_all("/<([_0-9a-zA-Z-\:]+)\s*([^>]*)>/is", $string, $startTags);
      +        preg_match_all("/<\/([_0-9a-zA-Z-\:]+)>/is", $string, $closeTags);
      +
      +        if (!empty($startTags[1]) && is_array($startTags[1])) {
      +            krsort($startTags[1]);
      +            $closeTagsIsArray = is_array($closeTags[1]);
      +            foreach ($startTags[1] as $key => $tag) {
      +                $attrLength = strlen($startTags[2][$key]);
      +                if ($attrLength > 0 && "/" == trim($startTags[2][$key][$attrLength - 1])) {
      +                    continue;
      +                }
      +                if (!empty($closeTags[1]) && $closeTagsIsArray) {
      +                    if (false !== ($index = array_search($tag, $closeTags[1]))) {
      +                        unset($closeTags[1][$index]);
      +                        continue;
      +                    }
      +                }
      +                $string .= "</{$tag}>";
      +            }
      +        }
      +
      +        return preg_replace("/\<br\s*\/\>\s*\<\/p\>/is", '</p>', $string);
      +    }
      +
      +    /**
      +     * 去掉字符串中的html标签
      +     * 使用方法:
      +     * <code>
      +     * $input = '<a href="http://test/test.php" title="example">hello</a>';
      +     * $output = Typecho_Common::stripTags($input, <a href="">);
      +     * echo $output;
      +     * //display: '<a href="http://test/test.php">hello</a>'
      +     * </code>
      +     *
      +     * @access public
      +     * @param string $string 需要处理的字符串
      +     * @param string $allowableTags 需要忽略的html标签
      +     * @return string
      +     */
      +    public static function stripTags($html, $allowableTags = NULL)
      +    {
      +        if (!empty($allowableTags) && preg_match_all("/\<([a-z]+)([^>]*)\>/is", $allowableTags, $tags)) {
      +            self::$_allowableTags = '|' . implode('|', $tags[1]) . '|';
      +
      +            if (in_array('code', $tags[1])) {
      +                $html = self::lockHTML($html);
      +            }
      +
      +            $normalizeTags = '<' . implode('><', $tags[1]) . '>';
      +            $html = strip_tags($html, $normalizeTags);
      +            $attributes = array_map('trim', $tags[2]);
      +
      +            $allowableAttributes = array();
      +            foreach ($attributes as $key => $val) {
      +                $allowableAttributes[$tags[1][$key]] = array_keys(self::__parseAtttrs($val));
      +            }
      +            
      +            self::$_allowableAttributes = $allowableAttributes;
      +
      +            $len = strlen($html);
      +            $tag = '';
      +            $attrs = '';
      +            $pos = -1;
      +            $quote = '';
      +            $start = 0;
      +            
      +            for ($i = 0;  $i < $len; $i ++) {
      +                if ('<' == $html[$i] && -1 == $pos) {
      +                    $start = $i;
      +                    $pos = 0;
      +                } else if (0 == $pos && '/' == $html[$i] && empty($tag)) {
      +                    $pos = -1;
      +                } else if (0 == $pos && ctype_alpha($html[$i])) {
      +                    $tag .= $html[$i];
      +                } else if (0 == $pos && ctype_space($html[$i])) {
      +                    $pos = 1;
      +                } else if (1 == $pos && (!empty($quote) || '>' != $html[$i])) {
      +                    if (empty($quote) && ('"' == $html[$i] || "'" == $html[$i])) {
      +                        $quote = $html[$i];
      +                    } else if (!empty($quote) && $quote == $html[$i]) {
      +                        $quote = '';
      +                    }
      +                
      +                    $attrs .= $html[$i];
      +                } else if (-1 != $pos && empty($quote) && '>' == $html[$i]) {
      +                    $out = self::__tagFilter($tag, $attrs);
      +                    $outLen = strlen($out);
      +                    $nextStart = $start + $outLen;
      +                    
      +                    $tag = '';
      +                    $attrs = '';
      +                    $html = substr_replace($html, $out, $start, $i - $start + 1);
      +                    $len  = strlen($html);
      +                    $i = $nextStart - 1;
      +                    
      +                    $pos = -1;
      +                }
      +            }
      +            
      +            $html = preg_replace_callback("/<\/([_0-9a-z-]+)>/is", array('Typecho_Common', '__closeTagFilter'), $html);
      +             $html = self::releaseHTML($html);
      +        } else {
      +            $html = strip_tags($html);
      +        }
      +        
      +        //去掉注释
      +        return preg_replace("/<\!\-\-[^>]*\-\->/s", '', $html);
      +    }
      +
      +    /**
      +     * 过滤用于搜索的字符串
      +     *
      +     * @access public
      +     * @param string $query 搜索字符串
      +     * @return string
      +     */
      +    public static function filterSearchQuery($query)
      +    {
      +        return str_replace(array('%', '?', '*', '/', '{', '}'), '', $query);
      +    }
      +
      +    /**
      +     * 将url中的非法字符串
      +     *
      +     * @access private
      +     * @param string $string 需要过滤的url
      +     * @return string
      +     */
      +    public static function safeUrl($url)
      +    {
      +        //~ 针对location的xss过滤, 因为其特殊性无法使用removeXSS函数
      +        //~ fix issue 66
      +        $params = parse_url(str_replace(array("\r", "\n"), '', $url));
      +
      +        /** 禁止非法的协议跳转 */
      +        if (isset($params['scheme'])) {
      +            if (!in_array($params['scheme'], array('http', 'https'))) {
      +                return;
      +            }
      +        }
      +
      +        /** 过滤解析串 */
      +        $params = array_map(array('Typecho_Common', '__removeUrlXss'), $params);
      +        return self::buildUrl($params);
      +    }
      +
      +    /**
      +     * 处理XSS跨站攻击的过滤函数
      +     *
      +     * @author kallahar@kallahar.com
      +     * @link http://kallahar.com/smallprojects/php_xss_filter_function.php
      +     * @access public
      +     * @param string $val 需要处理的字符串
      +     * @return string
      +     */
      +    public static function removeXSS($val)
      +    {
      +       // remove all non-printable characters. CR(0a) and LF(0b) and TAB(9) are allowed
      +       // this prevents some character re-spacing such as <java\0script>
      +       // note that you have to handle splits with \n, \r, and \t later since they *are* allowed in some inputs
      +       $val = preg_replace('/([\x00-\x08]|[\x0b-\x0c]|[\x0e-\x19])/', '', $val);
      +
      +       // straight replacements, the user should never need these since they're normal characters
      +       // this prevents like <IMG SRC=&#X40&#X61&#X76&#X61&#X73&#X63&#X72&#X69&#X70&#X74&#X3A&#X61&#X6C&#X65&#X72&#X74&#X28&#X27&#X58&#X53&#X53&#X27&#X29>
      +       $search = 'abcdefghijklmnopqrstuvwxyz';
      +       $search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
      +       $search .= '1234567890!@#$%^&*()';
      +       $search .= '~`";:?+/={}[]-_|\'\\';
      +
      +       for ($i = 0; $i < strlen($search); $i++) {
      +          // ;? matches the ;, which is optional
      +          // 0{0,7} matches any padded zeros, which are optional and go up to 8 chars
      +
      +          // &#x0040 @ search for the hex values
      +          $val = preg_replace('/(&#[xX]0{0,8}'.dechex(ord($search[$i])).';?)/i', $search[$i], $val); // with a ;
      +          // &#00064 @ 0{0,7} matches '0' zero to seven times
      +          $val = preg_replace('/(&#0{0,8}'.ord($search[$i]).';?)/', $search[$i], $val); // with a ;
      +       }
      +
      +       // now the only remaining whitespace attacks are \t, \n, and \r
      +       $ra1 = Array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'style', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base');
      +       $ra2 = Array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavailable', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterchange', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowenter', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload');
      +       $ra = array_merge($ra1, $ra2);
      +
      +       $found = true; // keep replacing as long as the previous round replaced something
      +       while ($found == true) {
      +          $val_before = $val;
      +          for ($i = 0; $i < sizeof($ra); $i++) {
      +             $pattern = '/';
      +             for ($j = 0; $j < strlen($ra[$i]); $j++) {
      +                if ($j > 0) {
      +                   $pattern .= '(';
      +                   $pattern .= '(&#[xX]0{0,8}([9ab]);)';
      +                   $pattern .= '|';
      +                   $pattern .= '|(&#0{0,8}([9|10|13]);)';
      +                   $pattern .= ')*';
      +                }
      +                $pattern .= $ra[$i][$j];
      +             }
      +             $pattern .= '/i';
      +             $replacement = substr($ra[$i], 0, 2).'<x>'.substr($ra[$i], 2); // add in <> to nerf the tag
      +             $val = preg_replace($pattern, $replacement, $val); // filter out the hex tags
      +
      +             if ($val_before == $val) {
      +                // no replacements were made, so exit the loop
      +                $found = false;
      +             }
      +          }
      +       }
      +
      +       return $val;
      +    }
      +
      +    /**
      +     * 宽字符串截字函数
      +     *
      +     * @access public
      +     * @param string $str 需要截取的字符串
      +     * @param integer $start 开始截取的位置
      +     * @param integer $length 需要截取的长度
      +     * @param string $trim 截取后的截断标示符
      +     * @return string
      +     */
      +    public static function subStr($str, $start, $length, $trim = "...")
      +    {
      +        if (function_exists('mb_get_info')) {
      +            $iLength = mb_strlen($str, self::$charset);
      +            $str = mb_substr($str, $start, $length, self::$charset);
      +            return ($length < $iLength - $start) ? $str . $trim : $str;
      +        } else {
      +            preg_match_all("/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/", $str, $info);
      +            $str = join("", array_slice($info[0], $start, $length));
      +            return ($length < (sizeof($info[0]) - $start)) ? $str . $trim : $str;
      +        }
      +    }
      +
      +    /**
      +     * 获取宽字符串长度函数
      +     *
      +     * @access public
      +     * @param string $str 需要获取长度的字符串
      +     * @return integer
      +     */
      +    public static function strLen($str)
      +    {
      +        if (function_exists('mb_get_info')) {
      +            return mb_strlen($str, self::$charset);
      +        } else {
      +            preg_match_all("/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/", $str, $info);
      +            return sizeof($info[0]);
      +        }
      +    }
      +
      +    /**
      +     * 生成缩略名
      +     *
      +     * @access public
      +     * @param string $str 需要生成缩略名的字符串
      +     * @param string $default 默认的缩略名
      +     * @param integer $maxLength 缩略名最大长度
      +     * @return string
      +     */
      +    public static function slugName($str, $default = NULL, $maxLength = 200)
      +    {
      +        $str = str_replace(array("'", ":", "\\", "/", '"'), "", $str);
      +        $str = str_replace(array("+", ",", ' ', ',', ' ', ".", "?", "=", "&", "!", "<", ">", "(", ")", "[", "]", "{", "}"), "-", $str);
      +        $str = trim($str, '-');
      +        $str = empty($str) ? $default : $str;
      +
      +        return function_exists('mb_get_info') ? mb_strimwidth($str, 0, 128, '', self::$charset) : substr($str, 0, $maxLength);
      +    }
      +
      +    /**
      +     * 去掉html中的分段
      +     *
      +     * @access public
      +     * @param string $html 输入串
      +     * @return string
      +     */
      +    public static function removeParagraph($html)
      +    {
      +        /** 锁定标签 */
      +        $html = self::lockHTML($html);
      +        $html = str_replace(array("\r", "\n"), '', $html);
      +    
      +        $html = trim(preg_replace(
      +        array("/\s*<p>(.*?)<\/p>\s*/is", "/\s*<br\s*\/>\s*/is",
      +        "/\s*<(div|blockquote|pre|code|script|table|fieldset|ol|ul|dl|h[1-6])([^>]*)>/is",
      +        "/<\/(div|blockquote|pre|code|script|table|fieldset|ol|ul|dl|h[1-6])>\s*/is", "/\s*<\!--more-->\s*/is"),
      +        array("\n\\1\n", "\n", "\n\n<\\1\\2>", "</\\1>\n\n", "\n\n<!--more-->\n\n"),
      +        $html));
      +        
      +        return trim(self::releaseHTML($html));
      +    }
      +    
      +    /**
      +     * 锁定标签
      +     * 
      +     * @access public
      +     * @param string $html 输入串
      +     * @return string
      +     */
      +    public static function lockHTML($html)
      +    {
      +        return preg_replace_callback("/<(code|pre|script)[^>]*>.*?<\/\\1>/is", array('Typecho_Common', '__lockHTML'), $html);
      +    }
      +    
      +    /**
      +     * 释放标签
      +     * 
      +     * @access public
      +     * @param string $html 输入串
      +     * @return string
      +     */
      +    public static function releaseHTML($html)
      +    {
      +        $html = trim(str_replace(array_keys(self::$_lockedBlocks), array_values(self::$_lockedBlocks), $html));
      +        self::$_lockedBlocks = array('<p></p>' => '');
      +        return $html;
      +    }
      +    
      +    /**
      +     * 文本分段函数
      +     *
      +     * @param string $string 需要分段的字符串
      +     * @return string
      +     */
      +    public static function cutParagraph($string)
      +    {
      +        static $loaded;
      +        if (!$loaded) {
      +            require_once 'Typecho/Common/Paragraph.php';
      +            $loaded = true;
      +        }
      +        
      +        return Typecho_Common_Paragraph::process($string);
      +    }
      +
      +    /**
      +     * 生成随机字符串
      +     *
      +     * @access public
      +     * @param integer $length 字符串长度
      +     * @param string $specialChars 是否有特殊字符
      +     * @return string
      +     */
      +    public static function randString($length, $specialChars = false)
      +    {
      +        $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
      +        if ($specialChars) {
      +            $chars .= '!@#$%^&*()';
      +        }
      +
      +        $result = '';
      +        $max = strlen($chars) - 1;
      +        for ($i = 0; $i < $length; $i++) {
      +            $result .= $chars[rand(0, $max)];
      +        }
      +        return $result;
      +    }
      +
      +    /**
      +     * 对字符串进行hash加密
      +     *
      +     * @access public
      +     * @param string $string 需要hash的字符串
      +     * @param string $salt 扰码
      +     * @return string
      +     */
      +    public static function hash($string, $salt = NULL)
      +    {
      +        /** 生成随机字符串 */
      +        $salt = empty($salt) ? self::randString(9) : $salt;
      +        $length = strlen($string);
      +        $hash = '';
      +        $last = ord($string[$length - 1]);
      +        $pos = 0;
      +
      +        /** 判断扰码长度 */
      +        if (strlen($salt) != 9) {
      +            /** 如果不是9直接返回 */
      +            return;
      +        }
      +
      +        while ($pos < $length) {
      +            $asc = ord($string[$pos]);
      +            $last = ($last * ord($salt[($last % $asc) % 9]) + $asc) % 95 + 32;
      +            $hash .= chr($last);
      +            $pos ++;
      +        }
      +
      +        return '$T$' . $salt . md5($hash);
      +    }
      +
      +    /**
      +     * 判断hash值是否相等
      +     *
      +     * @access public
      +     * @param string $from 源字符串
      +     * @param string $to 目标字符串
      +     * @return boolean
      +     */
      +    public static function hashValidate($from, $to)
      +    {
      +        if ('$T$' == substr($to, 0, 3)) {
      +            $salt = substr($to, 3, 9);
      +            return self::hash($from, $salt) == $to;
      +        } else {
      +            return md5($from) == $to;
      +        }
      +    }
      +
      +    /**
      +     * 将路径转化为链接
      +     *
      +     * @access public
      +     * @param string $path 路径
      +     * @param string $prefix 前缀
      +     * @return string
      +     */
      +    public static function url($path, $prefix)
      +    {
      +        $path = (0 === strpos($path, './')) ? substr($path, 2) : $path;
      +        return rtrim($prefix, '/') . '/' . str_replace('//', '/', ltrim($path, '/'));
      +    }
      +
      +    /**
      +     * 获取图片
      +     *
      +     * @access public
      +     * @param string $fileName 文件名
      +     * @return string
      +     */
      +    public static function mimeContentType($fileName)
      +    {
      +        //改为并列判断
      +        if (function_exists('mime_content_type')) {
      +            return mime_content_type($fileName);
      +        }
      +
      +        if (function_exists('finfo_open')) {
      +            $fInfo = @finfo_open(FILEINFO_MIME);
      +
      +            if (false !== $fInfo) {
      +                $mimeType = finfo_file($fInfo, $fileName);
      +                finfo_close($fInfo);
      +                return $mimeType;
      +            }
      +        }
      +
      +        $mimeTypes = array(
      +          'ez' => 'application/andrew-inset',
      +          'csm' => 'application/cu-seeme',
      +          'cu' => 'application/cu-seeme',
      +          'tsp' => 'application/dsptype',
      +          'spl' => 'application/x-futuresplash',
      +          'hta' => 'application/hta',
      +          'cpt' => 'image/x-corelphotopaint',
      +          'hqx' => 'application/mac-binhex40',
      +          'nb' => 'application/mathematica',
      +          'mdb' => 'application/msaccess',
      +          'doc' => 'application/msword',
      +          'dot' => 'application/msword',
      +          'bin' => 'application/octet-stream',
      +          'oda' => 'application/oda',
      +          'ogg' => 'application/ogg',
      +          'prf' => 'application/pics-rules',
      +          'key' => 'application/pgp-keys',
      +          'pdf' => 'application/pdf',
      +          'pgp' => 'application/pgp-signature',
      +          'ps' => 'application/postscript',
      +          'ai' => 'application/postscript',
      +          'eps' => 'application/postscript',
      +          'rss' => 'application/rss+xml',
      +          'rtf' => 'text/rtf',
      +          'smi' => 'application/smil',
      +          'smil' => 'application/smil',
      +          'wp5' => 'application/wordperfect5.1',
      +          'xht' => 'application/xhtml+xml',
      +          'xhtml' => 'application/xhtml+xml',
      +          'zip' => 'application/zip',
      +          'cdy' => 'application/vnd.cinderella',
      +          'mif' => 'application/x-mif',
      +          'xls' => 'application/vnd.ms-excel',
      +          'xlb' => 'application/vnd.ms-excel',
      +          'cat' => 'application/vnd.ms-pki.seccat',
      +          'stl' => 'application/vnd.ms-pki.stl',
      +          'ppt' => 'application/vnd.ms-powerpoint',
      +          'pps' => 'application/vnd.ms-powerpoint',
      +          'pot' => 'application/vnd.ms-powerpoint',
      +          'sdc' => 'application/vnd.stardivision.calc',
      +          'sda' => 'application/vnd.stardivision.draw',
      +          'sdd' => 'application/vnd.stardivision.impress',
      +          'sdp' => 'application/vnd.stardivision.impress',
      +          'smf' => 'application/vnd.stardivision.math',
      +          'sdw' => 'application/vnd.stardivision.writer',
      +          'vor' => 'application/vnd.stardivision.writer',
      +          'sgl' => 'application/vnd.stardivision.writer-global',
      +          'sxc' => 'application/vnd.sun.xml.calc',
      +          'stc' => 'application/vnd.sun.xml.calc.template',
      +          'sxd' => 'application/vnd.sun.xml.draw',
      +          'std' => 'application/vnd.sun.xml.draw.template',
      +          'sxi' => 'application/vnd.sun.xml.impress',
      +          'sti' => 'application/vnd.sun.xml.impress.template',
      +          'sxm' => 'application/vnd.sun.xml.math',
      +          'sxw' => 'application/vnd.sun.xml.writer',
      +          'sxg' => 'application/vnd.sun.xml.writer.global',
      +          'stw' => 'application/vnd.sun.xml.writer.template',
      +          'sis' => 'application/vnd.symbian.install',
      +          'wbxml' => 'application/vnd.wap.wbxml',
      +          'wmlc' => 'application/vnd.wap.wmlc',
      +          'wmlsc' => 'application/vnd.wap.wmlscriptc',
      +          'wk' => 'application/x-123',
      +          'dmg' => 'application/x-apple-diskimage',
      +          'bcpio' => 'application/x-bcpio',
      +          'torrent' => 'application/x-bittorrent',
      +          'cdf' => 'application/x-cdf',
      +          'vcd' => 'application/x-cdlink',
      +          'pgn' => 'application/x-chess-pgn',
      +          'cpio' => 'application/x-cpio',
      +          'csh' => 'text/x-csh',
      +          'deb' => 'application/x-debian-package',
      +          'dcr' => 'application/x-director',
      +          'dir' => 'application/x-director',
      +          'dxr' => 'application/x-director',
      +          'wad' => 'application/x-doom',
      +          'dms' => 'application/x-dms',
      +          'dvi' => 'application/x-dvi',
      +          'pfa' => 'application/x-font',
      +          'pfb' => 'application/x-font',
      +          'gsf' => 'application/x-font',
      +          'pcf' => 'application/x-font',
      +          'pcf.Z' => 'application/x-font',
      +          'gnumeric' => 'application/x-gnumeric',
      +          'sgf' => 'application/x-go-sgf',
      +          'gcf' => 'application/x-graphing-calculator',
      +          'gtar' => 'application/x-gtar',
      +          'tgz' => 'application/x-gtar',
      +          'taz' => 'application/x-gtar',
      +          'gz'  => 'application/x-gtar',
      +          'hdf' => 'application/x-hdf',
      +          'phtml' => 'application/x-httpd-php',
      +          'pht' => 'application/x-httpd-php',
      +          'php' => 'application/x-httpd-php',
      +          'phps' => 'application/x-httpd-php-source',
      +          'php3' => 'application/x-httpd-php3',
      +          'php3p' => 'application/x-httpd-php3-preprocessed',
      +          'php4' => 'application/x-httpd-php4',
      +          'ica' => 'application/x-ica',
      +          'ins' => 'application/x-internet-signup',
      +          'isp' => 'application/x-internet-signup',
      +          'iii' => 'application/x-iphone',
      +          'jar' => 'application/x-java-archive',
      +          'jnlp' => 'application/x-java-jnlp-file',
      +          'ser' => 'application/x-java-serialized-object',
      +          'class' => 'application/x-java-vm',
      +          'js' => 'application/x-javascript',
      +          'chrt' => 'application/x-kchart',
      +          'kil' => 'application/x-killustrator',
      +          'kpr' => 'application/x-kpresenter',
      +          'kpt' => 'application/x-kpresenter',
      +          'skp' => 'application/x-koan',
      +          'skd' => 'application/x-koan',
      +          'skt' => 'application/x-koan',
      +          'skm' => 'application/x-koan',
      +          'ksp' => 'application/x-kspread',
      +          'kwd' => 'application/x-kword',
      +          'kwt' => 'application/x-kword',
      +          'latex' => 'application/x-latex',
      +          'lha' => 'application/x-lha',
      +          'lzh' => 'application/x-lzh',
      +          'lzx' => 'application/x-lzx',
      +          'frm' => 'application/x-maker',
      +          'maker' => 'application/x-maker',
      +          'frame' => 'application/x-maker',
      +          'fm' => 'application/x-maker',
      +          'fb' => 'application/x-maker',
      +          'book' => 'application/x-maker',
      +          'fbdoc' => 'application/x-maker',
      +          'wmz' => 'application/x-ms-wmz',
      +          'wmd' => 'application/x-ms-wmd',
      +          'com' => 'application/x-msdos-program',
      +          'exe' => 'application/x-msdos-program',
      +          'bat' => 'application/x-msdos-program',
      +          'dll' => 'application/x-msdos-program',
      +          'msi' => 'application/x-msi',
      +          'nc' => 'application/x-netcdf',
      +          'pac' => 'application/x-ns-proxy-autoconfig',
      +          'nwc' => 'application/x-nwc',
      +          'o' => 'application/x-object',
      +          'oza' => 'application/x-oz-application',
      +          'pl' => 'application/x-perl',
      +          'pm' => 'application/x-perl',
      +          'p7r' => 'application/x-pkcs7-certreqresp',
      +          'crl' => 'application/x-pkcs7-crl',
      +          'qtl' => 'application/x-quicktimeplayer',
      +          'rpm' => 'audio/x-pn-realaudio-plugin',
      +          'shar' => 'application/x-shar',
      +          'swf' => 'application/x-shockwave-flash',
      +          'swfl' => 'application/x-shockwave-flash',
      +          'sh' => 'text/x-sh',
      +          'sit' => 'application/x-stuffit',
      +          'sv4cpio' => 'application/x-sv4cpio',
      +          'sv4crc' => 'application/x-sv4crc',
      +          'tar' => 'application/x-tar',
      +          'tcl' => 'text/x-tcl',
      +          'tex' => 'text/x-tex',
      +          'gf' => 'application/x-tex-gf',
      +          'pk' => 'application/x-tex-pk',
      +          'texinfo' => 'application/x-texinfo',
      +          'texi' => 'application/x-texinfo',
      +          '~' => 'application/x-trash',
      +          '%' => 'application/x-trash',
      +          'bak' => 'application/x-trash',
      +          'old' => 'application/x-trash',
      +          'sik' => 'application/x-trash',
      +          't' => 'application/x-troff',
      +          'tr' => 'application/x-troff',
      +          'roff' => 'application/x-troff',
      +          'man' => 'application/x-troff-man',
      +          'me' => 'application/x-troff-me',
      +          'ms' => 'application/x-troff-ms',
      +          'ustar' => 'application/x-ustar',
      +          'src' => 'application/x-wais-source',
      +          'wz' => 'application/x-wingz',
      +          'crt' => 'application/x-x509-ca-cert',
      +          'fig' => 'application/x-xfig',
      +          'au' => 'audio/basic',
      +          'snd' => 'audio/basic',
      +          'mid' => 'audio/midi',
      +          'midi' => 'audio/midi',
      +          'kar' => 'audio/midi',
      +          'mpga' => 'audio/mpeg',
      +          'mpega' => 'audio/mpeg',
      +          'mp2' => 'audio/mpeg',
      +          'mp3' => 'audio/mpeg',
      +          'm3u' => 'audio/x-mpegurl',
      +          'sid' => 'audio/prs.sid',
      +          'aif' => 'audio/x-aiff',
      +          'aiff' => 'audio/x-aiff',
      +          'aifc' => 'audio/x-aiff',
      +          'gsm' => 'audio/x-gsm',
      +          'wma' => 'audio/x-ms-wma',
      +          'wax' => 'audio/x-ms-wax',
      +          'ra' => 'audio/x-realaudio',
      +          'rm' => 'audio/x-pn-realaudio',
      +          'ram' => 'audio/x-pn-realaudio',
      +          'pls' => 'audio/x-scpls',
      +          'sd2' => 'audio/x-sd2',
      +          'wav' => 'audio/x-wav',
      +          'pdb' => 'chemical/x-pdb',
      +          'xyz' => 'chemical/x-xyz',
      +          'bmp' => 'image/x-ms-bmp',
      +          'gif' => 'image/gif',
      +          'ief' => 'image/ief',
      +          'jpeg' => 'image/jpeg',
      +          'jpg' => 'image/jpeg',
      +          'jpe' => 'image/jpeg',
      +          'pcx' => 'image/pcx',
      +          'png' => 'image/png',
      +          'svg' => 'image/svg+xml',
      +          'svgz' => 'image/svg+xml',
      +          'tiff' => 'image/tiff',
      +          'tif' => 'image/tiff',
      +          'wbmp' => 'image/vnd.wap.wbmp',
      +          'ras' => 'image/x-cmu-raster',
      +          'cdr' => 'image/x-coreldraw',
      +          'pat' => 'image/x-coreldrawpattern',
      +          'cdt' => 'image/x-coreldrawtemplate',
      +          'djvu' => 'image/x-djvu',
      +          'djv' => 'image/x-djvu',
      +          'ico' => 'image/x-icon',
      +          'art' => 'image/x-jg',
      +          'jng' => 'image/x-jng',
      +          'psd' => 'image/x-photoshop',
      +          'pnm' => 'image/x-portable-anymap',
      +          'pbm' => 'image/x-portable-bitmap',
      +          'pgm' => 'image/x-portable-graymap',
      +          'ppm' => 'image/x-portable-pixmap',
      +          'rgb' => 'image/x-rgb',
      +          'xbm' => 'image/x-xbitmap',
      +          'xpm' => 'image/x-xpixmap',
      +          'xwd' => 'image/x-xwindowdump',
      +          'igs' => 'model/iges',
      +          'iges' => 'model/iges',
      +          'msh' => 'model/mesh',
      +          'mesh' => 'model/mesh',
      +          'silo' => 'model/mesh',
      +          'wrl' => 'x-world/x-vrml',
      +          'vrml' => 'x-world/x-vrml',
      +          'csv' => 'text/comma-separated-values',
      +          'css' => 'text/css',
      +          '323' => 'text/h323',
      +          'htm' => 'text/html',
      +          'html' => 'text/html',
      +          'uls' => 'text/iuls',
      +          'mml' => 'text/mathml',
      +          'asc' => 'text/plain',
      +          'txt' => 'text/plain',
      +          'text' => 'text/plain',
      +          'diff' => 'text/plain',
      +          'rtx' => 'text/richtext',
      +          'sct' => 'text/scriptlet',
      +          'wsc' => 'text/scriptlet',
      +          'tm' => 'text/texmacs',
      +          'ts' => 'text/texmacs',
      +          'tsv' => 'text/tab-separated-values',
      +          'jad' => 'text/vnd.sun.j2me.app-descriptor',
      +          'wml' => 'text/vnd.wap.wml',
      +          'wmls' => 'text/vnd.wap.wmlscript',
      +          'xml' => 'text/xml',
      +          'xsl' => 'text/xml',
      +          'h++' => 'text/x-c++hdr',
      +          'hpp' => 'text/x-c++hdr',
      +          'hxx' => 'text/x-c++hdr',
      +          'hh' => 'text/x-c++hdr',
      +          'c++' => 'text/x-c++src',
      +          'cpp' => 'text/x-c++src',
      +          'cxx' => 'text/x-c++src',
      +          'cc' => 'text/x-c++src',
      +          'h' => 'text/x-chdr',
      +          'c' => 'text/x-csrc',
      +          'java' => 'text/x-java',
      +          'moc' => 'text/x-moc',
      +          'p' => 'text/x-pascal',
      +          'pas' => 'text/x-pascal',
      +          '***' => 'text/x-pcs-***',
      +          'shtml' => 'text/x-server-parsed-html',
      +          'etx' => 'text/x-setext',
      +          'tk' => 'text/x-tcl',
      +          'ltx' => 'text/x-tex',
      +          'sty' => 'text/x-tex',
      +          'cls' => 'text/x-tex',
      +          'vcs' => 'text/x-vcalendar',
      +          'vcf' => 'text/x-vcard',
      +          'dl' => 'video/dl',
      +          'fli' => 'video/fli',
      +          'gl' => 'video/gl',
      +          'mpeg' => 'video/mpeg',
      +          'mpg' => 'video/mpeg',
      +          'mpe' => 'video/mpeg',
      +          'qt' => 'video/quicktime',
      +          'mov' => 'video/quicktime',
      +          'mxu' => 'video/vnd.mpegurl',
      +          'dif' => 'video/x-dv',
      +          'dv' => 'video/x-dv',
      +          'lsf' => 'video/x-la-asf',
      +          'lsx' => 'video/x-la-asf',
      +          'mng' => 'video/x-mng',
      +          'asf' => 'video/x-ms-asf',
      +          'asx' => 'video/x-ms-asf',
      +          'wm' => 'video/x-ms-wm',
      +          'wmv' => 'video/x-ms-wmv',
      +          'wmx' => 'video/x-ms-wmx',
      +          'wvx' => 'video/x-ms-wvx',
      +          'avi' => 'video/x-msvideo',
      +          'movie' => 'video/x-sgi-movie',
      +          'ice' => 'x-conference/x-cooltalk',
      +          'vrm' => 'x-world/x-vrml',
      +          'rar' => 'application/x-rar-compressed',
      +          'cab' => 'application/vnd.ms-cab-compressed'
      +        );
      +
      +        $part = explode('.', $fileName);
      +        $size = count($part);
      +
      +        if ($size > 1) {
      +            $ext = $part[$size - 1];
      +            if (isset($mimeTypes[$ext])) {
      +                return $mimeTypes[$ext];
      +            }
      +        }
      +
      +        return 'application/octet-stream';
      +    }
      +
      +    /**
      +     * 寻找匹配的mime图标
      +     *
      +     * @access public
      +     * @param string $mime mime类型
      +     * @return string
      +     */
      +    public static function mimeIconType($mime)
      +    {
      +        $parts = explode('/', $mime);
      +
      +        if (count($parts) < 2) {
      +            return 'unknown';
      +        }
      +
      +        list ($type, $stream) = $parts;
      +
      +        if (in_array($type, array('image', 'video', 'audio', 'text', 'application'))) {
      +            switch (true) {
      +                case in_array($stream, array('msword', 'msaccess', 'ms-powerpoint', 'ms-powerpoint')):
      +                case 0 === strpos($stream, 'vnd.'):
      +                    return 'office';
      +                case false !== strpos($stream, 'html') || false !== strpos($stream, 'xml') || false !== strpos($stream, 'wml'):
      +                    return 'html';
      +                case false !== strpos($stream, 'compressed') || false !== strpos($stream, 'zip') ||
      +                in_array($stream, array('application/x-gtar', 'application/x-tar')):
      +                    return 'archive';
      +                case 'text' == $type && 0 === strpos($stream, 'x-'):
      +                    return 'script';
      +                default:
      +                    return $type;
      +            }
      +        } else {
      +            return 'unknown';
      +        }
      +    }
      +}
      diff --git a/var/Typecho/Common/Paragraph.php b/var/Typecho/Common/Paragraph.php
      new file mode 100644
      index 00000000..f1094c9f
      --- /dev/null
      +++ b/var/Typecho/Common/Paragraph.php
      @@ -0,0 +1,218 @@
      +<?php
      +/**
      + * 段落处理类
      + *
      + * @category typecho
      + * @package Common
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      + 
      +/** 载入api支持 */
      +require_once 'Typecho/Common.php';
      +
      +/**
      + * 用于对自动分段做处理
      + *
      + * @category typecho
      + * @package Common
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Typecho_Common_Paragraph
      +{
      +    /**
      +     * 唯一id
      +     * 
      +     * @access private
      +     * @var integer
      +     */
      +    private static $_uniqueId = 0;
      +    
      +    /**
      +     * 存储的段落
      +     * 
      +     * @access private
      +     * @var array
      +     */
      +    private static $_blocks = array();
      +    
      +    /**
      +     * 作为段落看待的标签
      +     * 
      +     * (default value: 'p|code|pre|div|blockquote|form|ul|ol|dd|table|h1|h2|h3|h4|h5|h6')
      +     * 
      +     * @var string
      +     * @access private
      +     * @static
      +     */
      +    private static $_blockTag = 'p|code|pre|div|blockquote|form|ul|ol|dd|table|h1|h2|h3|h4|h5|h6';
      +
      +    /**
      +     * 生成唯一的id, 为了速度考虑最多支持1万个tag的处理
      +     * 
      +     * @access private
      +     * @return string
      +     */
      +    private static function makeUniqueId()
      +    {
      +        return ':' . str_pad(self::$_uniqueId ++, 4, '0', STR_PAD_LEFT);
      +    }
      +    
      +    /**
      +     * 用段落方法处理换行
      +     * 
      +     * @access private
      +     * @param string $text
      +     * @return string
      +     */
      +    private static function cutByBlock($text)
      +    {
      +        $space = "( | )";
      +        $text = str_replace("\r\n", "\n", trim($text));
      +        $text = preg_replace("/{$space}*\n{$space}*/is", "\n", $text);
      +        $text = preg_replace("/\n{2,}/", "</p><p>", $text);
      +        $text = nl2br($text);
      +        $text = preg_replace("/(<p>)?\s*<p:([0-9]{4})\/>\s*(<\/p>)?/s", "<p:\\2/>", $text);
      +        $text = preg_replace("/<p>{$space}*<\/p>/is", '', $text);
      +        return $text;
      +    }
      +    
      +    /**
      +     * 修复段落开头和结尾
      +     * 
      +     * @access private
      +     * @param string $text
      +     * @return string
      +     */
      +    private static function fixPragraph($text)
      +    {
      +        $text = trim($text);
      +        if (!preg_match("/^<(" . self::$_blockTag . ")(\s|>)/i", $text)) {
      +            $text = '<p>' . $text;
      +        }
      +        
      +        if (!preg_match("/<\/(" . self::$_blockTag . ")>$/i", $text)) {
      +            $text = $text . '</p>';
      +        }
      +        
      +        return $text;
      +    }
      +    
      +    /**
      +     * 替换段落的回调函数
      +     * 
      +     * @access public
      +     * @param array $matches 匹配值
      +     * @return string
      +     */
      +    public static function replaceBlockCallback($matches)
      +    {
      +        $tagMatch = '|' . $matches[1] . '|';
      +        $text = $matches[4];
      +    
      +        switch (true) {
      +            /** 用br处理换行 */
      +            case false !== strpos('|li|dd|dt|td|p|a|span|cite|strong|sup|sub|small|del|u|i|b|h1|h2|h3|h4|h5|h6|', $tagMatch):
      +                $text = nl2br(trim($text));
      +                break;
      +            /** 用段落处理换行 */
      +            case false !== strpos('|div|blockquote|form|', $tagMatch):
      +                $text = self::cutByBlock($text);
      +                if (false !== strpos($text, '</p><p>')) {
      +                    $text = self::fixPragraph($text);
      +                }
      +                break;
      +            default:
      +                break;
      +        }
      +        
      +        /** 没有段落能力的标签 */
      +        if (false !== strpos('|a|span|cite|strong|sup|sub|small|del|u|i|b|', $tagMatch)) {
      +            $key = '<b' . $matches[2] . '/>';
      +        } else {
      +            $key = '<p' . $matches[2] . '/>';
      +        }
      +        
      +        self::$_blocks[$key] = "<{$matches[1]}{$matches[3]}>{$text}</{$matches[1]}>";
      +        return $key;
      +    }
      +
      +    /**
      +     * 处理文本
      +     * 
      +     * @access public
      +     * @param string $text 文本
      +     * @return string
      +     */
      +    public static function process($text)
      +    {
      +        /** 锁定标签 */
      +        $text = Typecho_Common::lockHTML($text);
      +        
      +        /** 重置计数器 */
      +        self::$_uniqueId = 0;
      +        self::$_blocks = array();
      +    
      +        /** 将已有的段落后面的换行处理掉 */
      +        $text = preg_replace(array("/<\/p>\s+<p(\s*)/is", "/\s*<br\s*\/?>\s*/is"), array("</p><p\\1", "<br />"), trim($text));
      +        
      +        /** 将所有非自闭合标签解析为唯一的字符串 */
      +        $foundTagCount = 0;
      +        $textLength = strlen($text);
      +        $uniqueIdList = array();
      +        
      +        if (preg_match_all("/<\/\s*([a-z0-9]+)>/is", $text, $matches, PREG_OFFSET_CAPTURE)) {
      +            foreach ($matches[0] as $key => $match) {
      +                $tag = $matches[1][$key][0];
      +                
      +                $leftOffset = $match[1] - $textLength;
      +                $posSingle = strrpos($text, '<' . $tag . '>', $leftOffset);
      +                $posFix = strrpos($text, '<' . $tag . ' ', $leftOffset);
      +                $pos = false;
      +                
      +                switch (true) {
      +                    case (false !== $posSingle && false !== $posFix):
      +                        $pos = max($posSingle, $posFix);
      +                        break;
      +                    case false === $posSingle && false !== $posFix:
      +                        $pos = $posFix;
      +                        break;
      +                    case false !== $posSingle && false === $posFix:
      +                        $pos = $posSingle;
      +                        break;
      +                    default:
      +                        break;
      +                }
      +                
      +                if (false !== $pos) {
      +                    $uniqueId = self::makeUniqueId();
      +                    $uniqueIdList[$uniqueId] = $tag;
      +                    $tagLength = strlen($tag);
      +                    
      +                    $text = substr_replace($text, $uniqueId, $pos + 1 + $tagLength, 0);
      +                    $text = substr_replace($text, $uniqueId, $match[1] + 7 + $foundTagCount * 10 + $tagLength, 0); // 7 = 5 + 2
      +                    $foundTagCount ++;
      +                }
      +            }
      +        }
      +        
      +        foreach ($uniqueIdList as $uniqueId => $tag) {
      +            $text = preg_replace_callback("/<({$tag})({$uniqueId})([^>]*)>(.*)<\/\\1\\2>/is",
      +                array('Typecho_Common_Paragraph', 'replaceBlockCallback'), $text, 1);
      +        }
      +        
      +        $text = self::cutByBlock($text);
      +        $blocks = array_reverse(self::$_blocks);
      +        
      +        foreach ($blocks as $blockKey => $blockValue) {
      +            $text = str_replace($blockKey, $blockValue, $text);
      +        }
      +        
      +        $text = self::fixPragraph($text);
      +        
      +        /** 释放标签 */
      +        return Typecho_Common::releaseHTML($text);
      +    }
      +}
      diff --git a/var/Typecho/Config.php b/var/Typecho/Config.php
      new file mode 100644
      index 00000000..7f7eb31a
      --- /dev/null
      +++ b/var/Typecho/Config.php
      @@ -0,0 +1,199 @@
      +<?php
      +/**
      + * 配置管理
      + *
      + * @category typecho
      + * @package Config
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 配置管理类
      + *
      + * @category typecho
      + * @package Config
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Typecho_Config implements Iterator
      +{
      +    /**
      +     * 当前配置
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_currentConfig = array();
      +
      +    /**
      +     * 实例化一个当前配置
      +     *
      +     * @access public
      +     * @param mixed $config 配置列表
      +     * @return void
      +     */
      +    public function __construct($config = array())
      +    {
      +        /** 初始化参数 */
      +        $this->setDefault($config);
      +    }
      +
      +    /**
      +     * 工厂模式实例化一个当前配置
      +     *
      +     * @access public
      +     * @param array $config 配置列表
      +     * @return void
      +     */
      +    public static function factory($config = array())
      +    {
      +        return new Typecho_Config($config);
      +    }
      +
      +    /**
      +     * 设置默认的配置
      +     *
      +     * @access public
      +     * @param mixed $config 配置信息
      +     * @param boolean $replace 是否替换已经存在的信息
      +     * @return void
      +     */
      +    public function setDefault($config, $replace = false)
      +    {
      +        if (empty($config)) {
      +            return;
      +        }
      +    
      +        /** 初始化参数 */
      +        if (is_string($config)) {
      +            parse_str($config, $params);
      +        } else {
      +            $params = $config;
      +        }
      +
      +        /** 设置默认参数 */
      +        foreach ($params as $name => $value) {
      +            if ($replace || !array_key_exists($name, $this->_currentConfig)) {
      +                $this->_currentConfig[$name] = $value;
      +            }
      +        }
      +    }
      +
      +    /**
      +     * 重设指针
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function rewind()
      +    {
      +        reset($this->_currentConfig);
      +    }
      +
      +    /**
      +     * 返回当前值
      +     *
      +     * @access public
      +     * @return mixed
      +     */
      +    public function current()
      +    {
      +        return current($this->_currentConfig);
      +    }
      +
      +    /**
      +     * 指针后移一位
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function next()
      +    {
      +        next($this->_currentConfig);
      +    }
      +
      +    /**
      +     * 获取当前指针
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function key()
      +    {
      +        return key($this->_currentConfig);
      +    }
      +
      +    /**
      +     * 验证当前值是否到达最后
      +     *
      +     * @access public
      +     * @return boolean
      +     */
      +    public function valid()
      +    {
      +        return false !== $this->current();
      +    }
      +
      +    /**
      +     * 魔术函数获取一个配置值
      +     *
      +     * @access public
      +     * @param string $name 配置名称
      +     * @return mixed
      +     */
      +    public function __get($name)
      +    {
      +        return isset($this->_currentConfig[$name]) ? $this->_currentConfig[$name] : NULL;
      +    }
      +
      +    /**
      +     * 魔术函数设置一个配置值
      +     *
      +     * @access public
      +     * @param string $name 配置名称
      +     * @param mixed $value 配置值
      +     * @return void
      +     */
      +    public function __set($name, $value)
      +    {
      +        $this->_currentConfig[$name] = $value;
      +    }
      +
      +    /**
      +     * 直接输出默认配置值
      +     *
      +     * @access public
      +     * @param string $name 配置名称
      +     * @param array $args 参数
      +     * @return void
      +     */
      +    public function __call($name, $args)
      +    {
      +        echo $this->_currentConfig[$name];
      +    }
      +
      +    /**
      +     * 判断当前配置值是否存在
      +     *
      +     * @access public
      +     * @param string $name 配置名称
      +     * @return boolean
      +     */
      +    public function __isSet($name)
      +    {
      +        return isset($this->_currentConfig[$name]);
      +    }
      +
      +    /**
      +     * 魔术方法,打印当前配置数组
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function __toString()
      +    {
      +        return serialize($this->_currentConfig);
      +    }
      +}
      diff --git a/var/Typecho/Cookie.php b/var/Typecho/Cookie.php
      new file mode 100644
      index 00000000..919bb074
      --- /dev/null
      +++ b/var/Typecho/Cookie.php
      @@ -0,0 +1,132 @@
      +<?php
      +/**
      + * cookie支持
      + *
      + * @category typecho
      + * @package Cookie
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/** 载入api支持 */
      +require_once 'Typecho/Common.php';
      +
      +/**
      + * cookie支持
      + *
      + * @author qining
      + * @category typecho
      + * @package Cookie
      + */
      +class Typecho_Cookie
      +{
      +    /**
      +     * 前缀
      +     * 
      +     * @var string
      +     * @access private
      +     */
      +    private static $_prefix = '';
      +
      +    /**
      +     * 设置前缀 
      +     * 
      +     * @param string $prefix 
      +     * @access public
      +     * @return void
      +     */
      +    public static function setPrefix($prefix)
      +    {
      +        self::$_prefix = md5($prefix);
      +    }
      +
      +    /**
      +     * 获取前缀 
      +     * 
      +     * @access public
      +     * @return void
      +     */
      +    public static function getPrefix()
      +    {
      +        return self::$_prefix;
      +    }
      +
      +    /**
      +     * 获取指定的COOKIE值
      +     *
      +     * @access public
      +     * @param string $key 指定的参数
      +     * @param string $default 默认的参数
      +     * @return mixed
      +     */
      +    public static function get($key, $default = NULL)
      +    {
      +        $key = self::$_prefix . $key;
      +        $value = isset($_COOKIE[$key]) ? $_COOKIE[$key] : (isset($_POST[$key]) ? $_POST[$key] : $default);
      +        return $value;
      +    }
      +
      +    /**
      +     * 设置指定的COOKIE值
      +     *
      +     * @access public
      +     * @param string $key 指定的参数
      +     * @param mixed $value 设置的值
      +     * @param integer $expire 过期时间,默认为0,表示随会话时间结束
      +     * @param string $url 路径(可以是域名,也可以是地址)
      +     * @return void
      +     */
      +    public static function set($key, $value, $expire = 0, $url = NULL)
      +    {
      +        $path = '/';
      +        $key = self::$_prefix . $key;
      +        if (!empty($url)) {
      +            $parsed = parse_url($url);
      +
      +            /** 在路径后面强制加上斜杠 */
      +            $path = empty($parsed['path']) ? '/' : Typecho_Common::url(NULL, $parsed['path']);
      +        }
      +
      +        /** 对数组型COOKIE的写入支持 */
      +        if (is_array($value)) {
      +            foreach ($value as $name => $val) {
      +                setcookie("{$key}[{$name}]", $val, $expire, $path);
      +            }
      +        } else {
      +            setcookie($key, $value, $expire, $path);
      +        }
      +    }
      +
      +    /**
      +     * 删除指定的COOKIE值
      +     *
      +     * @access public
      +     * @param string $key 指定的参数
      +     * @return void
      +     */
      +    public static function delete($key, $url = NULL)
      +    {
      +        $key = self::$_prefix . $key;
      +        if (!isset($_COOKIE[$key])) {
      +            return;
      +        }
      +
      +        $path = '/';
      +        if (!empty($url)) {
      +            $parsed = parse_url($url);
      +
      +            /** 在路径后面强制加上斜杠 */
      +            $path = empty($parsed['path']) ? '/' : Typecho_Common::url(NULL, $parsed['path']);
      +        }
      +
      +        /** 对数组型COOKIE的删除支持 */
      +        if (is_array($_COOKIE[$key])) {
      +            foreach ($_COOKIE[$key] as $name => $val) {
      +                setcookie("{$key}[{$name}]", '', time() - 2592000, $path);
      +            }
      +        } else {
      +            setcookie($key, '', time() - 2592000, $path);
      +        }
      +    }
      +}
      diff --git a/var/Typecho/Date.php b/var/Typecho/Date.php
      new file mode 100644
      index 00000000..fd36c1f9
      --- /dev/null
      +++ b/var/Typecho/Date.php
      @@ -0,0 +1,126 @@
      +<?php
      +
      +/** Typecho_I18n */
      +require_once 'Typecho/I18n.php';
      +
      +/**
      + * 日期处理
      + *
      + * @author qining
      + * @category typecho
      + * @package Date
      + */
      +class Typecho_Date
      +{
      +    /**
      +     * 期望时区偏移
      +     *
      +     * @access public
      +     * @var integer
      +     */
      +    public static $timezoneOffset = 0;
      +
      +    /**
      +     * 服务器时区偏移
      +     *
      +     * @access public
      +     * @var integer
      +     */
      +    public static $serverTimezoneOffset = 0;
      +
      +    /**
      +     * 当前的GMT时间戳
      +     *
      +     * @access public
      +     * @var integer
      +     */
      +    public static $gmtTimeStamp;
      +
      +    /**
      +     * 可以被直接转换的时间戳
      +     *
      +     * @access public
      +     * @var integer
      +     */
      +    public $timeStamp = 0;
      +
      +    /**
      +     * 初始化参数
      +     *
      +     * @access public
      +     * @param integer $gmtTime GMT时间戳
      +     * @return void
      +     */
      +    public function __construct($gmtTime)
      +    {
      +        $this->timeStamp = $gmtTime + (self::$timezoneOffset - self::$serverTimezoneOffset);
      +    }
      +
      +    /**
      +     * 设置当前期望的时区偏移
      +     *
      +     * @access public
      +     * @param integer $offset
      +     * @return void
      +     */
      +    public static function setTimezoneOffset($offset)
      +    {
      +        self::$timezoneOffset = $offset;
      +        self::$serverTimezoneOffset = idate('Z');
      +    }
      +
      +    /**
      +     * 获取格式化时间
      +     *
      +     * @access public
      +     * @param string $format 时间格式
      +     * @return string
      +     */
      +    public function format($format)
      +    {
      +        return date($format, $this->timeStamp);
      +    }
      +
      +    /**
      +     * 获取国际化偏移时间
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function word()
      +    {
      +        return Typecho_I18n::dateWord($this->timeStamp, self::gmtTime() + (self::$timezoneOffset - self::$serverTimezoneOffset));
      +    }
      +
      +    /**
      +     * 获取单项数据
      +     *
      +     * @access public
      +     * @param string $name 名称
      +     * @return integer
      +     */
      +    public function __get($name)
      +    {
      +        switch ($name) {
      +            case 'year':
      +                return date('Y', $this->timeStamp);
      +            case 'month':
      +                return date('m', $this->timeStamp);
      +            case 'day':
      +                return date('d', $this->timeStamp);
      +            default:
      +                return;
      +        }
      +    }
      +
      +    /**
      +     * 获取GMT时间
      +     *
      +     * @access public
      +     * @return integer
      +     */
      +    public static function gmtTime()
      +    {
      +        return self::$gmtTimeStamp ? self::$gmtTimeStamp : (self::$gmtTimeStamp = @gmmktime());
      +    }
      +}
      diff --git a/var/Typecho/Db.php b/var/Typecho/Db.php
      new file mode 100644
      index 00000000..c718006e
      --- /dev/null
      +++ b/var/Typecho/Db.php
      @@ -0,0 +1,407 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: Db.php 107 2008-04-11 07:14:43Z magike.net $
      + */
      +
      +/** 配置管理 */
      +require_once 'Typecho/Config.php';
      +
      +/** sql构建器 */
      +require_once 'Typecho/Db/Query.php';
      +
      +/**
      + * 包含获取数据支持方法的类.
      + * 必须定义__TYPECHO_DB_HOST__, __TYPECHO_DB_PORT__, __TYPECHO_DB_NAME__,
      + * __TYPECHO_DB_USER__, __TYPECHO_DB_PASS__, __TYPECHO_DB_CHAR__
      + *
      + * @package Db
      + */
      +class Typecho_Db
      +{
      +    /** 读取数据库 */
      +    const READ = 1;
      +
      +    /** 写入数据库 */
      +    const WRITE = 2;
      +
      +    /** 升序方式 */
      +    const SORT_ASC = 'ASC';
      +
      +    /** 降序方式 */
      +    const SORT_DESC = 'DESC';
      +
      +    /** 表内连接方式 */
      +    const INNER_JOIN = 'INNER';
      +
      +    /** 表外连接方式 */
      +    const OUTER_JOIN = 'OUTER';
      +
      +    /** 表左连接方式 */
      +    const LEFT_JOIN = 'LEFT';
      +
      +    /** 表外连接方式 */
      +    const RIGHT_JOIN = 'RIGHT';
      +
      +    /** 数据库查询操作 */
      +    const SELECT = 'SELECT';
      +
      +    /** 数据库更新操作 */
      +    const UPDATE = 'UPDATE';
      +
      +    /** 数据库插入操作 */
      +    const INSERT = 'INSERT';
      +
      +    /** 数据库删除操作 */
      +    const DELETE = 'DELETE';
      +
      +    /**
      +     * 数据库适配器
      +     * @var Typecho_Db_Adapter
      +     */
      +    private $_adapter;
      +
      +    /**
      +     * 默认配置
      +     *
      +     * @access private
      +     * @var Typecho_Config
      +     */
      +    private $_config;
      +
      +    /**
      +     * 连接池
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_pool;
      +
      +    /**
      +     * 已经连接
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_connectedPool;
      +
      +    /**
      +     * 前缀
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_prefix;
      +
      +    /**
      +     * 适配器名称
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_adapterName;
      +
      +    /**
      +     * 实例化的数据库对象
      +     * @var Typecho_Db
      +     */
      +    private static $_instance;
      +
      +    /**
      +     * 数据库类构造函数
      +     *
      +     * @param mixed $adapterName 适配器名称
      +     * @param string $prefix 前缀
      +     * @return void
      +     */
      +    public function __construct($adapterName, $prefix = 'typecho_')
      +    {
      +        /** 获取适配器名称 */
      +        $this->_adapterName = $adapterName;
      +
      +        /** 数据库适配器 */
      +        require_once 'Typecho/Db/Adapter/' . str_replace('_', '/', $adapterName) . '.php';
      +        $adapterName = 'Typecho_Db_Adapter_' . $adapterName;
      +
      +        if (!call_user_func(array($adapterName, 'isAvailable'))) {
      +            throw new Typecho_Db_Exception("Adapter {$adapterName} is not available");
      +        }
      +
      +        $this->_prefix = $prefix;
      +
      +        /** 初始化内部变量 */
      +        $this->_pool = array();
      +        $this->_connectedPool = array();
      +        $this->_config = array();
      +
      +        //实例化适配器对象
      +        $this->_adapter = new $adapterName();
      +    }
      +
      +    /**
      +     * 获取适配器名称
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function getAdapterName()
      +    {
      +        return $this->_adapterName;
      +    }
      +
      +    /**
      +     * 获取表前缀
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function getPrefix()
      +    {
      +        return $this->_prefix;
      +    }
      +
      +    /**
      +     * 获取SQL词法构建器实例化对象
      +     *
      +     * @return Typecho_Db_Query
      +     */
      +    public function sql()
      +    {
      +        return new Typecho_Db_Query($this->_adapter, $this->_prefix);
      +    }
      +
      +    /**
      +     * 为多数据库提供支持
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库实例
      +     * @param integer $op 数据库操作
      +     * @return void
      +     */
      +    public function addServer($config, $op)
      +    {
      +        $this->_config[] = Typecho_Config::factory($config);
      +        $key = key($this->_config);
      +
      +        /** 将连接放入池中 */
      +        switch ($op) {
      +            case self::READ:
      +            case self::WRITE:
      +                $this->_pool[$op][] = $key;
      +                break;
      +            default:
      +                $this->_pool[self::READ][] = $key;
      +                $this->_pool[self::WRITE][] = $key;
      +                break;
      +        }
      +    }
      +
      +    /**
      +     * 设置默认数据库对象
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @return void
      +     */
      +    public static function set(Typecho_Db $db)
      +    {
      +        self::$_instance = $db;
      +    }
      +
      +    /**
      +     * 获取数据库实例化对象
      +     * 用静态变量存储实例化的数据库对象,可以保证数据连接仅进行一次
      +     *
      +     * @return Typecho_Db
      +     * @throws Typecho_Db_Exception
      +     */
      +    public static function get()
      +    {
      +        if (empty(self::$_instance)) {
      +            /** Typecho_Db_Exception */
      +            require_once 'Typecho/Db/Exception.php';
      +            throw new Typecho_Db_Exception('Missing Database Object');
      +        }
      +
      +        return self::$_instance;
      +    }
      +
      +    /**
      +     * 选择查询字段
      +     *
      +     * @access public
      +     * @param mixed $field 查询字段
      +     * @return Typecho_Db_Query
      +     */
      +    public function select()
      +    {
      +        $args = func_get_args();
      +        return call_user_func_array(array($this->sql(), 'select'), $args ? $args : array('*'));
      +    }
      +
      +    /**
      +     * 更新记录操作(UPDATE)
      +     *
      +     * @param string $table 需要更新记录的表
      +     * @return Typecho_Db_Query
      +     */
      +    public function update($table)
      +    {
      +        return $this->sql()->update($table);
      +    }
      +
      +    /**
      +     * 删除记录操作(DELETE)
      +     *
      +     * @param string $table 需要删除记录的表
      +     * @return Typecho_Db_Query
      +     */
      +    public function delete($table)
      +    {
      +        return $this->sql()->delete($table);
      +    }
      +
      +    /**
      +     * 插入记录操作(INSERT)
      +     *
      +     * @param string $table 需要插入记录的表
      +     * @return Typecho_Db_Query
      +     */
      +    public function insert($table)
      +    {
      +        return $this->sql()->insert($table);
      +    }
      +
      +    /**
      +     * 执行查询语句
      +     *
      +     * @param mixed $query 查询语句或者查询对象
      +     * @param boolean $op 数据库读写状态
      +     * @param string $action 操作动作
      +     * @return mixed
      +     */
      +    public function query($query, $op = self::READ, $action = self::SELECT)
      +    {
      +        /** 在适配器中执行查询 */
      +        if ($query instanceof Typecho_Db_Query) {
      +            $action = $query->getAttribute('action');
      +            $op = (self::UPDATE == $action || self::DELETE == $action
      +            || self::INSERT == $action) ? self::WRITE : self::READ;
      +        } else if (!is_string($query)) {
      +            /** 如果query不是对象也不是字符串,那么将其判断为查询资源句柄,直接返回 */
      +            return $query;
      +        }
      +
      +        /** 选择连接池 */
      +        if (!isset($this->_connectedPool[$op])) {
      +            if (empty($this->_pool[$op])) {
      +                /** Typecho_Db_Exception */
      +                require_once 'Typecho/Db/Exception.php';
      +                throw new Typecho_Db_Exception('Missing Database Connection');
      +            }
      +
      +            $selectConnection = rand(0, count($this->_pool[$op]) - 1);
      +            $selectConnectionConfig = $this->_config[$selectConnection];
      +            $selectConnectionHandle = $this->_adapter->connect($selectConnectionConfig);
      +            $other = (self::READ == $op) ? self::WRITE : self::READ;
      +
      +            if (!empty($this->_pool[$other]) && in_array($selectConnection, $this->_pool[$other])) {
      +                $this->_connectedPool[$other] = &$selectConnectionHandle;
      +            }
      +            $this->_connectedPool[$op] = &$selectConnectionHandle;
      +        }
      +        $handle = $this->_connectedPool[$op];
      +
      +        /** 提交查询 */
      +        $resource = $this->_adapter->query($query, $handle, $op, $action);
      +
      +        if ($action) {
      +            //根据查询动作返回相应资源
      +            switch ($action) {
      +                case self::UPDATE:
      +                case self::DELETE:
      +                    return $this->_adapter->affectedRows($resource, $handle);
      +                case self::INSERT:
      +                    return $this->_adapter->lastInsertId($resource, $handle);
      +                case self::SELECT:
      +                default:
      +                    return $resource;
      +            }
      +        } else {
      +            //如果直接执行查询语句则返回资源
      +            return $resource;
      +        }
      +    }
      +
      +    /**
      +     * 一次取出所有行
      +     *
      +     * @param mixed $query 查询对象
      +     * @param array $filter 行过滤器函数,将查询的每一行作为第一个参数传入指定的过滤器中
      +     * @return array
      +     */
      +    public function fetchAll($query, array $filter = NULL)
      +    {
      +        //执行查询
      +        $resource = $this->query($query, self::READ);
      +        $result = array();
      +
      +        /** 取出过滤器 */
      +        if (!empty($filter)) {
      +            list($object, $method) = $filter;
      +        }
      +
      +        //取出每一行
      +        while ($rows = $this->_adapter->fetch($resource)) {
      +            //判断是否有过滤器
      +            $result[] = $filter ? call_user_func(array(&$object, $method), $rows) : $rows;
      +        }
      +
      +        return $result;
      +    }
      +
      +    /**
      +     * 一次取出一行
      +     *
      +     * @param mixed $query 查询对象
      +     * @param array $filter 行过滤器函数,将查询的每一行作为第一个参数传入指定的过滤器中
      +     * @return stdClass
      +     */
      +    public function fetchRow($query, array $filter = NULL)
      +    {
      +        $resource = $this->query($query, self::READ);
      +
      +        /** 取出过滤器 */
      +        if ($filter) {
      +            list($object, $method) = $filter;
      +        }
      +
      +        return ($rows = $this->_adapter->fetch($resource)) ?
      +        ($filter ? $object->$method($rows) : $rows) :
      +        array();
      +    }
      +
      +    /**
      +     * 一次取出一个对象
      +     *
      +     * @param mixed $query 查询对象
      +     * @param array $filter 行过滤器函数,将查询的每一行作为第一个参数传入指定的过滤器中
      +     * @return array
      +     */
      +    public function fetchObject($query, array $filter = NULL)
      +    {
      +        $resource = $this->query($query, self::READ);
      +
      +        /** 取出过滤器 */
      +        if ($filter) {
      +            list($object, $method) = $filter;
      +        }
      +
      +        return ($rows = $this->_adapter->fetchObject($resource)) ?
      +        ($filter ? $object->$method($rows) : $rows) :
      +        new stdClass();
      +    }
      +}
      diff --git a/var/Typecho/Db/Adapter.php b/var/Typecho/Db/Adapter.php
      new file mode 100644
      index 00000000..63170c8c
      --- /dev/null
      +++ b/var/Typecho/Db/Adapter.php
      @@ -0,0 +1,104 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: DbAdapter.php 97 2008-04-04 04:39:54Z magike.net $
      + */
      +
      +/**
      + * Typecho数据库适配器
      + * 定义通用的数据库适配接口
      + *
      + * @package Db
      + */
      +interface Typecho_Db_Adapter
      +{
      +    /**
      +     * 判断适配器是否可用
      +     *
      +     * @access public
      +     * @return boolean
      +     */
      +    public static function isAvailable();
      +
      +    /**
      +     * 数据库连接函数
      +     *
      +     * @param Typecho_Config $config 数据库配置
      +     * @return resource
      +     */
      +    public function connect(Typecho_Config $config);
      +
      +    /**
      +     * 执行数据库查询
      +     *
      +     * @param string $query 数据库查询SQL字符串
      +     * @param mixed $handle 连接对象
      +     * @param integer $op 数据库读写状态
      +     * @param string $action 数据库动作
      +     * @return resource
      +     */
      +    public function query($query, $handle, $op = Typecho_Db::READ, $action = NULL);
      +
      +    /**
      +     * 将数据查询的其中一行作为数组取出,其中字段名对应数组键值
      +     *
      +     * @param resource $resource 查询的资源数据
      +     * @return array
      +     */
      +    public function fetch($resource);
      +
      +    /**
      +     * 将数据查询的其中一行作为对象取出,其中字段名对应对象属性
      +     *
      +     * @param resource $resource 查询的资源数据
      +     * @return object
      +     */
      +    public function fetchObject($resource);
      +
      +    /**
      +     * 引号转义函数
      +     *
      +     * @param string $string 需要转义的字符串
      +     * @return string
      +     */
      +    public function quoteValue($string);
      +
      +    /**
      +     * 对象引号过滤
      +     *
      +     * @access public
      +     * @param string $string
      +     * @return string
      +     */
      +    public function quoteColumn($string);
      +
      +    /**
      +     * 合成查询语句
      +     *
      +     * @access public
      +     * @param array $sql 查询对象词法数组
      +     * @return string
      +     */
      +    public function parseSelect(array $sql);
      +
      +    /**
      +     * 取出最后一次查询影响的行数
      +     *
      +     * @param resource $resource 查询的资源数据
      +     * @param mixed $handle 连接对象
      +     * @return integer
      +     */
      +    public function affectedRows($resource, $handle);
      +
      +    /**
      +     * 取出最后一次插入返回的主键值
      +     *
      +     * @param resource $resource 查询的资源数据
      +     * @param mixed $handle 连接对象
      +     * @return integer
      +     */
      +    public function lastInsertId($resource, $handle);
      +}
      diff --git a/var/Typecho/Db/Adapter/Exception.php b/var/Typecho/Db/Adapter/Exception.php
      new file mode 100644
      index 00000000..cb01f65d
      --- /dev/null
      +++ b/var/Typecho/Db/Adapter/Exception.php
      @@ -0,0 +1,19 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: DbException.php 52 2008-03-18 08:04:01Z magike.net $
      + */
      +
      +/** 数据库异常基类 */
      +require_once 'Typecho/Db/Exception.php';
      +
      +/**
      + * 数据库连接异常类
      + *
      + * @package Db
      + */
      +class Typecho_Db_Adapter_Exception extends Typecho_Db_Exception
      +{}
      diff --git a/var/Typecho/Db/Adapter/Mysql.php b/var/Typecho/Db/Adapter/Mysql.php
      new file mode 100644
      index 00000000..a842b97f
      --- /dev/null
      +++ b/var/Typecho/Db/Adapter/Mysql.php
      @@ -0,0 +1,175 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: Mysql.php 103 2008-04-09 16:22:43Z magike.net $
      + */
      +
      +/** 数据库适配器接口 */
      +require_once 'Typecho/Db/Adapter.php';
      +
      +/**
      + * 数据库Mysql适配器
      + *
      + * @package Db
      + */
      +class Typecho_Db_Adapter_Mysql implements Typecho_Db_Adapter
      +{
      +    /**
      +     * 数据库连接字符串标示
      +     *
      +     * @access private
      +     * @var resource
      +     */
      +    private $_dbLink;
      +
      +    /**
      +     * 判断适配器是否可用
      +     *
      +     * @access public
      +     * @return boolean
      +     */
      +    public static function isAvailable()
      +    {
      +        return function_exists('mysql_connect');
      +    }
      +
      +    /**
      +     * 数据库连接函数
      +     *
      +     * @param Typecho_Config $config 数据库配置
      +     * @throws Typecho_Db_Exception
      +     * @return resource
      +     */
      +    public function connect(Typecho_Config $config)
      +    {
      +        if ($this->_dbLink = @mysql_connect($config->host . (empty($config->port) ? '' : ':' . $config->port),
      +        $config->user, $config->password, true)) {
      +            if (@mysql_select_db($config->database, $this->_dbLink)) {
      +                if ($config->charset) {
      +                    mysql_query("SET NAMES '{$config->charset}'", $this->_dbLink);
      +                }
      +                return $this->_dbLink;
      +            }
      +        }
      +
      +        /** 数据库异常 */
      +        require_once 'Typecho/Db/Adapter/Exception.php';
      +        throw new Typecho_Db_Adapter_Exception(@mysql_error($this->_dbLink));
      +    }
      +
      +    /**
      +     * 执行数据库查询
      +     *
      +     * @param string $query 数据库查询SQL字符串
      +     * @param mixed $handle 连接对象
      +     * @param integer $op 数据库读写状态
      +     * @param string $action 数据库动作
      +     * @throws Typecho_Db_Exception
      +     * @return resource
      +     */
      +    public function query($query, $handle, $op = Typecho_Db::READ, $action = NULL)
      +    {
      +        if ($resource = @mysql_query($query instanceof Typecho_Db_Query ? $query->__toString() : $query, $handle)) {
      +            return $resource;
      +        }
      +
      +        /** 数据库异常 */
      +        require_once 'Typecho/Db/Query/Exception.php';
      +        throw new Typecho_Db_Query_Exception(@mysql_error($this->_dbLink), mysql_errno($this->_dbLink));
      +    }
      +
      +    /**
      +     * 将数据查询的其中一行作为数组取出,其中字段名对应数组键值
      +     *
      +     * @param resource $resource 查询返回资源标识
      +     * @return array
      +     */
      +    public function fetch($resource)
      +    {
      +        return mysql_fetch_assoc($resource);
      +    }
      +
      +    /**
      +     * 将数据查询的其中一行作为对象取出,其中字段名对应对象属性
      +     *
      +     * @param resource $resource 查询的资源数据
      +     * @return object
      +     */
      +    public function fetchObject($resource)
      +    {
      +        return mysql_fetch_object($resource);
      +    }
      +
      +    /**
      +     * 引号转义函数
      +     *
      +     * @param string $string 需要转义的字符串
      +     * @return string
      +     */
      +    public function quoteValue($string)
      +    {
      +        return '\'' . str_replace(array('\'', '\\'), array('\'\'', '\\\\'), $string) . '\'';
      +    }
      +
      +    /**
      +     * 对象引号过滤
      +     *
      +     * @access public
      +     * @param string $string
      +     * @return string
      +     */
      +    public function quoteColumn($string)
      +    {
      +        return '`' . $string . '`';
      +    }
      +
      +    /**
      +     * 合成查询语句
      +     *
      +     * @access public
      +     * @param array $sql 查询对象词法数组
      +     * @return string
      +     */
      +    public function parseSelect(array $sql)
      +    {
      +        if (!empty($sql['join'])) {
      +            foreach ($sql['join'] as $val) {
      +                list($table, $condition, $op) = $val;
      +                $sql['table'] = "{$sql['table']} {$op} JOIN {$table} ON {$condition}";
      +            }
      +        }
      +
      +        $sql['limit'] = (0 == strlen($sql['limit'])) ? NULL : ' LIMIT ' . $sql['limit'];
      +        $sql['offset'] = (0 == strlen($sql['offset'])) ? NULL : ' OFFSET ' . $sql['offset'];
      +
      +        return 'SELECT ' . $sql['fields'] . ' FROM ' . $sql['table'] .
      +        $sql['where'] . $sql['group'] . $sql['order'] . $sql['limit'] . $sql['offset'];
      +    }
      +
      +    /**
      +     * 取出最后一次查询影响的行数
      +     *
      +     * @param resource $resource 查询的资源数据
      +     * @param mixed $handle 连接对象
      +     * @return integer
      +     */
      +    public function affectedRows($resource, $handle)
      +    {
      +        return mysql_affected_rows($handle);
      +    }
      +
      +    /**
      +     * 取出最后一次插入返回的主键值
      +     *
      +     * @param resource $resource 查询的资源数据
      +     * @param mixed $handle 连接对象
      +     * @return integer
      +     */
      +    public function lastInsertId($resource, $handle)
      +    {
      +        return mysql_insert_id($handle);
      +    }
      +}
      diff --git a/var/Typecho/Db/Adapter/Pdo.php b/var/Typecho/Db/Adapter/Pdo.php
      new file mode 100644
      index 00000000..3bdcd2f6
      --- /dev/null
      +++ b/var/Typecho/Db/Adapter/Pdo.php
      @@ -0,0 +1,177 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: Mysql.php 89 2008-03-31 00:10:57Z magike.net $
      + */
      +
      +/** 数据库适配器接口 */
      +require_once 'Typecho/Db/Adapter.php';
      +
      +/**
      + * 数据库PDOMysql适配器
      + *
      + * @package Db
      + */
      +abstract class Typecho_Db_Adapter_Pdo implements Typecho_Db_Adapter
      +{
      +    /**
      +     * 数据库对象
      +     *
      +     * @access protected
      +     * @var PDO
      +     */
      +    protected $_object;
      +
      +    /**
      +     * 最后一次操作的数据表
      +     *
      +     * @access protected
      +     * @var string
      +     */
      +    protected $_lastTable;
      +
      +    /**
      +     * 判断适配器是否可用
      +     *
      +     * @access public
      +     * @return boolean
      +     */
      +    public static function isAvailable()
      +    {
      +        return extension_loaded('pdo');
      +    }
      +
      +    /**
      +     * 数据库连接函数
      +     *
      +     * @param Typecho_Config $config 数据库配置
      +     * @throws Typecho_Db_Exception
      +     * @return resource
      +     */
      +    public function connect(Typecho_Config $config)
      +    {
      +        try {
      +            $this->_object = $this->init($config);
      +            $this->_object->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      +            return $this->_object;
      +        } catch (PDOException $e) {
      +            /** 数据库异常 */
      +            require_once 'Typecho/Db/Adapter/Exception.php';
      +            throw new Typecho_Db_Adapter_Exception($e->getMessage());
      +        }
      +    }
      +
      +    /**
      +     * 初始化数据库
      +     *
      +     * @param Typecho_Config $config 数据库配置
      +     * @abstract
      +     * @access public
      +     * @return PDO
      +     */
      +    abstract public function init(Typecho_Config $config);
      +
      +    /**
      +     * 执行数据库查询
      +     *
      +     * @param string $query 数据库查询SQL字符串
      +     * @param mixed $handle 连接对象
      +     * @param integer $op 数据库读写状态
      +     * @param string $action 数据库动作
      +     * @throws Typecho_Db_Exception
      +     * @return resource
      +     */
      +    public function query($query, $handle, $op = Typecho_Db::READ, $action = NULL)
      +    {
      +        try {
      +            $isQueryObject = $query instanceof Typecho_Db_Query;
      +            $this->_lastTable = $isQueryObject ? $query->getAttribute('table') : NULL;
      +            $resource = $handle->prepare($isQueryObject ? $query->__toString() : $query);
      +            $resource->execute();
      +        } catch (PDOException $e) {
      +            /** 数据库异常 */
      +            require_once 'Typecho/Db/Query/Exception.php';
      +            throw new Typecho_Db_Query_Exception($e->getMessage(), $e->getCode());
      +        }
      +
      +        return $resource;
      +    }
      +
      +    /**
      +     * 将数据查询的其中一行作为数组取出,其中字段名对应数组键值
      +     *
      +     * @param resource $resource 查询返回资源标识
      +     * @return array
      +     */
      +    public function fetch($resource)
      +    {
      +        return $resource->fetch(PDO::FETCH_ASSOC);
      +    }
      +
      +    /**
      +     * 将数据查询的其中一行作为对象取出,其中字段名对应对象属性
      +     *
      +     * @param resource $resource 查询的资源数据
      +     * @return object
      +     */
      +    public function fetchObject($resource)
      +    {
      +        return $resource->fetchObject();
      +    }
      +
      +    /**
      +     * 引号转义函数
      +     *
      +     * @param string $string 需要转义的字符串
      +     * @return string
      +     */
      +    public function quoteValue($string)
      +    {
      +        return $this->_object->quote($string);
      +    }
      +
      +    /**
      +     * 对象引号过滤
      +     *
      +     * @access public
      +     * @param string $string
      +     * @return string
      +     */
      +    public function quoteColumn($string){}
      +
      +    /**
      +     * 合成查询语句
      +     *
      +     * @access public
      +     * @param array $sql 查询对象词法数组
      +     * @return string
      +     */
      +    public function parseSelect(array $sql){}
      +
      +    /**
      +     * 取出最后一次查询影响的行数
      +     *
      +     * @param resource $resource 查询的资源数据
      +     * @param mixed $handle 连接对象
      +     * @return integer
      +     */
      +    public function affectedRows($resource, $handle)
      +    {
      +        return $resource->rowCount();
      +    }
      +
      +    /**
      +     * 取出最后一次插入返回的主键值
      +     *
      +     * @param resource $resource 查询的资源数据
      +     * @param mixed $handle 连接对象
      +     * @return integer
      +     */
      +    public function lastInsertId($resource, $handle)
      +    {
      +        return $handle->lastInsertId();
      +    }
      +}
      diff --git a/var/Typecho/Db/Adapter/Pdo/Mysql.php b/var/Typecho/Db/Adapter/Pdo/Mysql.php
      new file mode 100644
      index 00000000..d8b26d6e
      --- /dev/null
      +++ b/var/Typecho/Db/Adapter/Pdo/Mysql.php
      @@ -0,0 +1,91 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: Mysql.php 89 2008-03-31 00:10:57Z magike.net $
      + */
      +
      +/** 数据库适配器接口 */
      +require_once 'Typecho/Db/Adapter/Pdo.php';
      +
      +/**
      + * 数据库Pdo_Mysql适配器
      + *
      + * @package Db
      + */
      +class Typecho_Db_Adapter_Pdo_Mysql extends Typecho_Db_Adapter_Pdo
      +{
      +    /**
      +     * 判断适配器是否可用
      +     *
      +     * @access public
      +     * @return boolean
      +     */
      +    public static function isAvailable()
      +    {
      +        return parent::isAvailable() && in_array('mysql', PDO::getAvailableDrivers());
      +    }
      +
      +    /**
      +     * 初始化数据库
      +     *
      +     * @param Typecho_Config $config 数据库配置
      +     * @access public
      +     * @return PDO
      +     */
      +    public function init(Typecho_Config $config)
      +    {
      +        $pdo = new PDO("mysql:dbname={$config->database};host={$config->host};port={$config->port}", $config->user, $config->password);
      +        $pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
      +        $pdo->exec("SET NAMES '{$config->charset}'");
      +        return $pdo;
      +    }
      +
      +    /**
      +     * 对象引号过滤
      +     *
      +     * @access public
      +     * @param string $string
      +     * @return string
      +     */
      +    public function quoteColumn($string)
      +    {
      +        return '`' . $string . '`';
      +    }
      +
      +    /**
      +     * 引号转义函数
      +     *
      +     * @param string $string 需要转义的字符串
      +     * @return string
      +     */
      +    public function quoteValue($string)
      +    {
      +        return '\'' . str_replace(array('\'', '\\'), array('\'\'', '\\\\'), $string) . '\'';
      +    }
      +
      +    /**
      +     * 合成查询语句
      +     *
      +     * @access public
      +     * @param array $sql 查询对象词法数组
      +     * @return string
      +     */
      +    public function parseSelect(array $sql)
      +    {
      +        if (!empty($sql['join'])) {
      +            foreach ($sql['join'] as $val) {
      +                list($table, $condition, $op) = $val;
      +                $sql['table'] = "{$sql['table']} {$op} JOIN {$table} ON {$condition}";
      +            }
      +        }
      +
      +        $sql['limit'] = (0 == strlen($sql['limit'])) ? NULL : ' LIMIT ' . $sql['limit'];
      +        $sql['offset'] = (0 == strlen($sql['offset'])) ? NULL : ' OFFSET ' . $sql['offset'];
      +
      +        return 'SELECT ' . $sql['fields'] . ' FROM ' . $sql['table'] .
      +        $sql['where'] . $sql['group'] . $sql['order'] . $sql['limit'] . $sql['offset'];
      +    }
      +}
      diff --git a/var/Typecho/Db/Adapter/Pdo/Pgsql.php b/var/Typecho/Db/Adapter/Pdo/Pgsql.php
      new file mode 100644
      index 00000000..48e4e258
      --- /dev/null
      +++ b/var/Typecho/Db/Adapter/Pdo/Pgsql.php
      @@ -0,0 +1,96 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/** 数据库适配器接口 */
      +require_once 'Typecho/Db/Adapter/Pdo.php';
      +
      +/**
      + * 数据库Pdo_Pgsql适配器
      + *
      + * @package Db
      + */
      +class Typecho_Db_Adapter_Pdo_Pgsql extends Typecho_Db_Adapter_Pdo
      +{
      +    /**
      +     * 判断适配器是否可用
      +     *
      +     * @access public
      +     * @return boolean
      +     */
      +    public static function isAvailable()
      +    {
      +        return parent::isAvailable() && in_array('pgsql', PDO::getAvailableDrivers());
      +    }
      +
      +    /**
      +     * 初始化数据库
      +     *
      +     * @param Typecho_Config $config 数据库配置
      +     * @access public
      +     * @return PDO
      +     */
      +    public function init(Typecho_Config $config)
      +    {
      +        $pdo = new PDO("pgsql:dbname={$config->database};host={$config->host};port={$config->port}", $config->user, $config->password);
      +        $pdo->exec("SET NAMES '{$config->charset}'");
      +        return $pdo;
      +    }
      +
      +    /**
      +     * 对象引号过滤
      +     *
      +     * @access public
      +     * @param string $string
      +     * @return string
      +     */
      +    public function quoteColumn($string)
      +    {
      +        return '"' . $string . '"';
      +    }
      +
      +    /**
      +     * 合成查询语句
      +     *
      +     * @access public
      +     * @param array $sql 查询对象词法数组
      +     * @return string
      +     */
      +    public function parseSelect(array $sql)
      +    {
      +        if (!empty($sql['join'])) {
      +            foreach ($sql['join'] as $val) {
      +                list($table, $condition, $op) = $val;
      +                $sql['table'] = "{$sql['table']} {$op} JOIN {$table} ON {$condition}";
      +            }
      +        }
      +
      +        $sql['limit'] = (0 == strlen($sql['limit'])) ? NULL : ' LIMIT ' . $sql['limit'];
      +        $sql['offset'] = (0 == strlen($sql['offset'])) ? NULL : ' OFFSET ' . $sql['offset'];
      +
      +        return 'SELECT ' . $sql['fields'] . ' FROM ' . $sql['table'] .
      +        $sql['where'] . $sql['group'] . $sql['order'] . $sql['limit'] . $sql['offset'];
      +    }
      +
      +    /**
      +     * 取出最后一次插入返回的主键值
      +     *
      +     * @param resource $resource 查询的资源数据
      +     * @param mixed $handle 连接对象
      +     * @return integer
      +     */
      +    public function lastInsertId($resource, $handle)
      +    {
      +        /** 查看是否存在序列,可能需要更严格的检查 */
      +        if ($handle->query('SELECT oid FROM pg_class WHERE relname = ' . $this->quoteValue($this->_lastTable . '_seq'))->fetchAll()) {
      +            return $handle->lastInsertId($this->_lastTable . '_seq');
      +        }
      +
      +        return 0;
      +    }
      +}
      diff --git a/var/Typecho/Db/Adapter/Pdo/SQLite.php b/var/Typecho/Db/Adapter/Pdo/SQLite.php
      new file mode 100644
      index 00000000..a7b3584c
      --- /dev/null
      +++ b/var/Typecho/Db/Adapter/Pdo/SQLite.php
      @@ -0,0 +1,78 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/** 数据库适配器接口 */
      +require_once 'Typecho/Db/Adapter/Pdo.php';
      +
      +/**
      + * 数据库Pdo_SQLite适配器
      + *
      + * @package Db
      + */
      +class Typecho_Db_Adapter_Pdo_SQLite extends Typecho_Db_Adapter_Pdo
      +{
      +    /**
      +     * 判断适配器是否可用
      +     *
      +     * @access public
      +     * @return boolean
      +     */
      +    public static function isAvailable()
      +    {
      +        return parent::isAvailable() && in_array('sqlite', PDO::getAvailableDrivers());
      +    }
      +
      +    /**
      +     * 初始化数据库
      +     *
      +     * @param Typecho_Config $config 数据库配置
      +     * @access public
      +     * @return PDO
      +     */
      +    public function init(Typecho_Config $config)
      +    {
      +        $pdo = new PDO("sqlite:{$config->file}");
      +        return $pdo;
      +    }
      +
      +    /**
      +     * 对象引号过滤
      +     *
      +     * @access public
      +     * @param string $string
      +     * @return string
      +     */
      +    public function quoteColumn($string)
      +    {
      +        return '"' . $string . '"';
      +    }
      +
      +    /**
      +     * 合成查询语句
      +     *
      +     * @access public
      +     * @param array $sql 查询对象词法数组
      +     * @return string
      +     */
      +    public function parseSelect(array $sql)
      +    {
      +        if (!empty($sql['join'])) {
      +            foreach ($sql['join'] as $val) {
      +                list($table, $condition, $op) = $val;
      +                $sql['table'] = "{$sql['table']} {$op} JOIN {$table} ON {$condition}";
      +            }
      +        }
      +
      +        $sql['limit'] = (0 == strlen($sql['limit'])) ? NULL : ' LIMIT ' . $sql['limit'];
      +        $sql['offset'] = (0 == strlen($sql['offset'])) ? NULL : ' OFFSET ' . $sql['offset'];
      +
      +        return 'SELECT ' . $sql['fields'] . ' FROM ' . $sql['table'] .
      +        $sql['where'] . $sql['group'] . $sql['order'] . $sql['limit'] . $sql['offset'];
      +    }
      +}
      diff --git a/var/Typecho/Db/Adapter/Pgsql.php b/var/Typecho/Db/Adapter/Pgsql.php
      new file mode 100644
      index 00000000..750fc6f9
      --- /dev/null
      +++ b/var/Typecho/Db/Adapter/Pgsql.php
      @@ -0,0 +1,188 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/** 数据库适配器接口 */
      +require_once 'Typecho/Db/Adapter.php';
      +
      +/**
      + * 数据库Pgsql适配器
      + *
      + * @package Db
      + */
      +class Typecho_Db_Adapter_Pgsql implements Typecho_Db_Adapter
      +{
      +    /**
      +     * 数据库连接字符串标示
      +     *
      +     * @access private
      +     * @var resource
      +     */
      +    private $_dbLink;
      +
      +    /**
      +     * 最后一次操作的数据表
      +     *
      +     * @access protected
      +     * @var string
      +     */
      +    protected $_lastTable;
      +
      +    /**
      +     * 判断适配器是否可用
      +     *
      +     * @access public
      +     * @return boolean
      +     */
      +    public static function isAvailable()
      +    {
      +        return function_exists('pg_connect');
      +    }
      +
      +    /**
      +     * 数据库连接函数
      +     *
      +     * @param Typecho_Config $config 数据库配置
      +     * @throws Typecho_Db_Exception
      +     * @return resource
      +     */
      +    public function connect(Typecho_Config $config)
      +    {
      +        if ($this->_dbLink = @pg_connect("host={$config->host} port={$config->port} dbname={$config->database} user={$config->user} password={$config->password}")) {
      +            if ($config->charset) {
      +                pg_query($this->_dbLink, "SET NAMES '{$config->charset}'");
      +            }
      +            return $this->_dbLink;
      +        }
      +
      +        /** 数据库异常 */
      +        require_once 'Typecho/Db/Adapter/Exception.php';
      +        throw new Typecho_Db_Adapter_Exception(@pg_last_error($this->_dbLink));
      +    }
      +
      +    /**
      +     * 执行数据库查询
      +     *
      +     * @param string $query 数据库查询SQL字符串
      +     * @param mixed $handle 连接对象
      +     * @param integer $op 数据库读写状态
      +     * @param string $action 数据库动作
      +     * @throws Typecho_Db_Exception
      +     * @return resource
      +     */
      +    public function query($query, $handle, $op = Typecho_Db::READ, $action = NULL)
      +    {
      +        $isQueryObject = $query instanceof Typecho_Db_Query;
      +        $this->_lastTable = $isQueryObject ? $query->getAttribute('table') : NULL;
      +        if ($resource = @pg_query($handle, $isQueryObject ? $query->__toString() : $query)) {
      +            return $resource;
      +        }
      +
      +        /** 数据库异常 */
      +        require_once 'Typecho/Db/Query/Exception.php';
      +        throw new Typecho_Db_Query_Exception(@pg_last_error($this->_dbLink),
      +        pg_result_error_field(pg_get_result($this->_dbLink), PGSQL_DIAG_SQLSTATE));
      +    }
      +
      +    /**
      +     * 将数据查询的其中一行作为数组取出,其中字段名对应数组键值
      +     *
      +     * @param resource $resource 查询返回资源标识
      +     * @return array
      +     */
      +    public function fetch($resource)
      +    {
      +        return pg_fetch_assoc($resource);
      +    }
      +
      +    /**
      +     * 将数据查询的其中一行作为对象取出,其中字段名对应对象属性
      +     *
      +     * @param resource $resource 查询的资源数据
      +     * @return object
      +     */
      +    public function fetchObject($resource)
      +    {
      +        return pg_fetch_object($resource);
      +    }
      +
      +    /**
      +     * 引号转义函数
      +     *
      +     * @param string $string 需要转义的字符串
      +     * @return string
      +     */
      +    public function quoteValue($string)
      +    {
      +        return '\'' . pg_escape_string($string) . '\'';
      +    }
      +
      +    /**
      +     * 对象引号过滤
      +     *
      +     * @access public
      +     * @param string $string
      +     * @return string
      +     */
      +    public function quoteColumn($string)
      +    {
      +        return '"' . $string . '"';
      +    }
      +
      +    /**
      +     * 合成查询语句
      +     *
      +     * @access public
      +     * @param array $sql 查询对象词法数组
      +     * @return string
      +     */
      +    public function parseSelect(array $sql)
      +    {
      +        if (!empty($sql['join'])) {
      +            foreach ($sql['join'] as $val) {
      +                list($table, $condition, $op) = $val;
      +                $sql['table'] = "{$sql['table']} {$op} JOIN {$table} ON {$condition}";
      +            }
      +        }
      +
      +        $sql['limit'] = (0 == strlen($sql['limit'])) ? NULL : ' LIMIT ' . $sql['limit'];
      +        $sql['offset'] = (0 == strlen($sql['offset'])) ? NULL : ' OFFSET ' . $sql['offset'];
      +
      +        return 'SELECT ' . $sql['fields'] . ' FROM ' . $sql['table'] .
      +        $sql['where'] . $sql['group'] . $sql['order'] . $sql['limit'] . $sql['offset'];
      +    }
      +
      +    /**
      +     * 取出最后一次查询影响的行数
      +     *
      +     * @param resource $resource 查询的资源数据
      +     * @param mixed $handle 连接对象
      +     * @return integer
      +     */
      +    public function affectedRows($resource, $handle)
      +    {
      +        return pg_affected_rows($resource);
      +    }
      +
      +    /**
      +     * 取出最后一次插入返回的主键值
      +     *
      +     * @param resource $resource 查询的资源数据
      +     * @param mixed $handle 连接对象
      +     * @return integer
      +     */
      +    public function lastInsertId($resource, $handle)
      +    {
      +        /** 查看是否存在序列,可能需要更严格的检查 */
      +        if (pg_fetch_assoc(pg_query($handle, 'SELECT oid FROM pg_class WHERE relname = ' . $this->quoteValue($this->_lastTable . '_seq')))) {
      +            return pg_fetch_result(pg_query($handle, 'SELECT CURRVAL(' . $this->quoteValue($this->_lastTable . '_seq') . ')'), 0, 0);
      +        }
      +
      +        return 0;
      +    }
      +}
      diff --git a/var/Typecho/Db/Adapter/SQLite.php b/var/Typecho/Db/Adapter/SQLite.php
      new file mode 100644
      index 00000000..9142c1d8
      --- /dev/null
      +++ b/var/Typecho/Db/Adapter/SQLite.php
      @@ -0,0 +1,203 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: Mysql.php 103 2008-04-09 16:22:43Z magike.net $
      + */
      +
      +/** 数据库适配器接口 */
      +require_once 'Typecho/Db/Adapter.php';
      +
      +/**
      + * 数据库SQLite适配器
      + *
      + * @package Db
      + */
      +class Typecho_Db_Adapter_SQLite implements Typecho_Db_Adapter
      +{
      +    /**
      +     * 数据库标示
      +     *
      +     * @access private
      +     * @var resource
      +     */
      +    private $_dbHandle;
      +
      +    /**
      +     * 判断适配器是否可用
      +     *
      +     * @access public
      +     * @return boolean
      +     */
      +    public static function isAvailable()
      +    {
      +        return function_exists('sqlite_open');
      +    }
      +
      +    /**
      +     * 过滤字段名
      +     *
      +     * @access private
      +     * @param mixed $result
      +     * @return array
      +     */
      +    private function filterColumnName($result)
      +    {
      +        /** 如果结果为空,直接返回 */
      +        if (!$result) {
      +            return $result;
      +        }
      +
      +        $tResult = array();
      +
      +        /** 遍历数组 */
      +        foreach ($result as $key => $val) {
      +            /** 按点分隔 */
      +            if (false !== ($pos = strpos($key, '.'))) {
      +                $key = substr($key, $pos + 1);
      +            }
      +
      +            /** 按引号分割 */
      +            if (false === ($pos = strpos($key, '"'))) {
      +                $tResult[$key] = $val;
      +            } else {
      +                $tResult[substr($key, $pos + 1, -1)] = $val;
      +            }
      +        }
      +
      +        return $tResult;
      +    }
      +
      +    /**
      +     * 数据库连接函数
      +     *
      +     * @param Typecho_Config $config 数据库配置
      +     * @throws Typecho_Db_Exception
      +     * @return resource
      +     */
      +    public function connect(Typecho_Config $config)
      +    {
      +        if ($this->_dbHandle = sqlite_open($config->file, 0666, $error)) {
      +            return $this->_dbHandle;
      +        }
      +
      +        /** 数据库异常 */
      +        require_once 'Typecho/Db/Adapter/Exception.php';
      +        throw new Typecho_Db_Adapter_Exception($error);
      +    }
      +
      +    /**
      +     * 执行数据库查询
      +     *
      +     * @param string $sql 查询字符串
      +     * @param mixed $handle 连接对象
      +     * @param boolean $op 查询读写开关
      +     * @throws Typecho_Db_Exception
      +     * @return resource
      +     */
      +    public function query($query, $handle, $op = Typecho_Db::READ, $action = NULL)
      +    {
      +        if ($resource = @sqlite_query($query instanceof Typecho_Db_Query ? $query->__toString() : $query, $handle)) {
      +            return $resource;
      +        }
      +
      +        /** 数据库异常 */
      +        require_once 'Typecho/Db/Query/Exception.php';
      +        $errorCode = sqlite_last_error($this->_dbHandle);
      +        throw new Typecho_Db_Query_Exception(sqlite_error_string($errorCode), $errorCode);
      +    }
      +
      +    /**
      +     * 将数据查询的其中一行作为数组取出,其中字段名对应数组键值
      +     *
      +     * @param resource $resource 查询返回资源标识
      +     * @return array
      +     */
      +    public function fetch($resource)
      +    {
      +        return $this->filterColumnName(sqlite_fetch_array($resource, SQLITE_ASSOC));
      +    }
      +
      +    /**
      +     * 将数据查询的其中一行作为对象取出,其中字段名对应对象属性
      +     *
      +     * @param resource $resource 查询的资源数据
      +     * @return object
      +     */
      +    public function fetchObject($resource)
      +    {
      +        return (object) $this->filterColumnName(sqlite_fetch_array($resource, SQLITE_ASSOC));
      +    }
      +
      +    /**
      +     * 引号转义函数
      +     *
      +     * @param string $string 需要转义的字符串
      +     * @return string
      +     */
      +    public function quoteValue($string)
      +    {
      +        return '\'' . str_replace('\'', '\'\'', $string) . '\'';
      +    }
      +
      +    /**
      +     * 对象引号过滤
      +     *
      +     * @access public
      +     * @param string $string
      +     * @return string
      +     */
      +    public function quoteColumn($string)
      +    {
      +        return '"' . $string . '"';
      +    }
      +
      +    /**
      +     * 合成查询语句
      +     *
      +     * @access public
      +     * @param array $sql 查询对象词法数组
      +     * @return string
      +     */
      +    public function parseSelect(array $sql)
      +    {
      +        if (!empty($sql['join'])) {
      +            foreach ($sql['join'] as $val) {
      +                list($table, $condition, $op) = $val;
      +                $sql['table'] = "{$sql['table']} {$op} JOIN {$table} ON {$condition}";
      +            }
      +        }
      +
      +        $sql['limit'] = (0 == strlen($sql['limit'])) ? NULL : ' LIMIT ' . $sql['limit'];
      +        $sql['offset'] = (0 == strlen($sql['offset'])) ? NULL : ' OFFSET ' . $sql['offset'];
      +
      +        return 'SELECT ' . $sql['fields'] . ' FROM ' . $sql['table'] .
      +        $sql['where'] . $sql['group'] . $sql['order'] . $sql['limit'] . $sql['offset'];
      +    }
      +
      +    /**
      +     * 取出最后一次查询影响的行数
      +     *
      +     * @param resource $resource 查询的资源数据
      +     * @param mixed $handle 连接对象
      +     * @return integer
      +     */
      +    public function affectedRows($resource, $handle)
      +    {
      +        return sqlite_changes($handle);
      +    }
      +
      +    /**
      +     * 取出最后一次插入返回的主键值
      +     *
      +     * @param resource $resource 查询的资源数据
      +     * @param mixed $handle 连接对象
      +     * @return integer
      +     */
      +    public function lastInsertId($resource, $handle)
      +    {
      +        return sqlite_last_insert_rowid($handle);
      +    }
      +}
      diff --git a/var/Typecho/Db/Exception.php b/var/Typecho/Db/Exception.php
      new file mode 100644
      index 00000000..8899ea2f
      --- /dev/null
      +++ b/var/Typecho/Db/Exception.php
      @@ -0,0 +1,19 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: DbException.php 52 2008-03-18 08:04:01Z magike.net $
      + */
      +
      +/** 异常基类 */
      +require_once 'Typecho/Exception.php';
      +
      +/**
      + * 数据库异常类
      + *
      + * @package Db
      + */
      +class Typecho_Db_Exception extends Typecho_Exception
      +{}
      diff --git a/var/Typecho/Db/Query.php b/var/Typecho/Db/Query.php
      new file mode 100644
      index 00000000..76dc2e86
      --- /dev/null
      +++ b/var/Typecho/Db/Query.php
      @@ -0,0 +1,446 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: DbQuery.php 97 2008-04-04 04:39:54Z magike.net $
      + */
      +
      +/** Typecho_Config */
      +require_once 'Typecho/Config.php';
      +
      +/**
      + * Typecho数据库查询语句构建类
      + * 使用方法:
      + * $query = new Typecho_Db_Query();	//或者使用DB积累的sql方法返回实例化对象
      + * $query->select('posts', 'post_id, post_title')
      + * ->where('post_id = %d', 1)
      + * ->limit(1);
      + * echo $query;
      + * 打印的结果将是
      + * SELECT post_id, post_title FROM posts WHERE 1=1 AND post_id = 1 LIMIT 1
      + *
      + *
      + * @package Db
      + */
      +class Typecho_Db_Query
      +{
      +    /** 数据库关键字 */
      +    const KEYWORDS = '*PRIMARY|AND|OR|LIKE|BINARY|BY|DISTINCT|AS|IN|IS|NULL';
      +
      +    /**
      +     * 数据库适配器
      +     *
      +     * @var Typecho_Db_Adapter
      +     */
      +    private $_adapter;
      +
      +    /**
      +     * 查询语句预结构,由数组构成,方便组合为SQL查询字符串
      +     *
      +     * @var array
      +     */
      +    private $_sqlPreBuild;
      +
      +    /**
      +     * 前缀
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_prefix;
      +
      +    /**
      +     * 构造函数,引用数据库适配器作为内部数据
      +     *
      +     * @param Typecho_Db_Adapter $adapter 数据库适配器
      +     * @param string $prefix 前缀
      +     * @return void
      +     */
      +    public function __construct(Typecho_Db_Adapter $adapter, $prefix)
      +    {
      +        $this->_adapter = &$adapter;
      +        $this->_prefix = $prefix;
      +
      +        $this->_sqlPreBuild = array(
      +            'action' => NULL,
      +            'table'  => NULL,
      +            'fields' => '*',
      +            'join'   => array(),
      +            'where'  => NULL,
      +            'limit'  => NULL,
      +            'offset' => NULL,
      +            'order'  => NULL,
      +            'group'  => NULL,
      +            'rows'   => array(),
      +        );
      +    }
      +
      +    /**
      +     * 过滤表前缀,表前缀由table.构成
      +     *
      +     * @param string $string 需要解析的字符串
      +     * @return string
      +     */
      +    private function filterPrefix($string)
      +    {
      +        return (0 === strpos($string, 'table.')) ? substr_replace($string, $this->_prefix, 0, 6) : $string;
      +    }
      +
      +    /**
      +     * 过滤数组键值
      +     *
      +     * @access private
      +     * @param string $str 待处理字段值
      +     * @return string
      +     */
      +    private function filterColumn($str)
      +    {
      +        $str = $str . ' 0';
      +        $length = strlen($str);
      +        $lastIsAlnum = false;
      +        $result = '';
      +        $word = '';
      +        $split = '';
      +        $quotes = 0;
      +
      +        for ($i = 0; $i < $length; $i ++) {
      +            $cha = $str[$i];
      +
      +            if (ctype_alnum($cha) || false !== strpos('_*', $cha)) {
      +                if (!$lastIsAlnum) {
      +                    if ($quotes > 0 && !ctype_digit($word) && '.' != $split
      +                    && false === strpos(self::KEYWORDS, strtoupper($word))) {
      +                        $word = $this->_adapter->quoteColumn($word);
      +                    } else if ('.' == $split && 'table' == $word) {
      +                        $word = $this->_prefix;
      +                        $split = '';
      +                    }
      +
      +                    $result .= $word . $split;
      +                    $word = '';
      +                    $quotes = 0;
      +                }
      +
      +                $word .= $cha;
      +                $lastIsAlnum = true;
      +            } else {
      +
      +                if ($lastIsAlnum) {
      +
      +                    if (0 == $quotes) {
      +                        if (false !== strpos(' ,)=<>.+-*/', $cha)) {
      +                            $quotes = 1;
      +                        } else if ('(' == $cha) {
      +                            $quotes = -1;
      +                        }
      +                    }
      +
      +                    $split = '';
      +                }
      +
      +                $split .= $cha;
      +                $lastIsAlnum = false;
      +            }
      +
      +        }
      +
      +        return $result;
      +    }
      +
      +    /**
      +     * 从参数中合成查询字段
      +     *
      +     * @access private
      +     * @param array $parameters
      +     * @return string
      +     */
      +    private function getColumnFromParameters(array $parameters)
      +    {
      +        $fields = array();
      +
      +        foreach ($parameters as $value) {
      +            if (is_array($value)) {
      +                foreach ($value as $key => $val) {
      +                    $fields[] = $key . ' AS ' . $val;
      +                }
      +            } else {
      +                 $fields[] = $value;
      +            }
      +        }
      +
      +        return $this->filterColumn(implode(' , ', $fields));
      +    }
      +
      +    /**
      +     * 获取查询字串属性值
      +     *
      +     * @access public
      +     * @param string $attributeName 属性名称
      +     * @return string
      +     */
      +    public function getAttribute($attributeName)
      +    {
      +        return isset($this->_sqlPreBuild[$attributeName]) ? $this->_sqlPreBuild[$attributeName] : NULL;
      +    }
      +
      +    /**
      +     * 连接表
      +     *
      +     * @param string $table 需要连接的表
      +     * @param string $condition 连接条件
      +     * @param string $op 连接方法(LEFT, RIGHT, INNER)
      +     * @return Typecho_Db_Query
      +     */
      +    public function join($table, $condition, $op = Typecho_Db::INNER_JOIN)
      +    {
      +        $this->_sqlPreBuild['join'][] = array($this->filterPrefix($table), $this->filterColumn($condition), $op);
      +        return $this;
      +    }
      +
      +    /**
      +     * AND条件查询语句
      +     *
      +     * @param string $condition 查询条件
      +     * @param mixed $param 条件值
      +     * @return Typecho_Db_Query
      +     */
      +    public function where()
      +    {
      +        $condition = func_get_arg(0);
      +        $condition = str_replace('?', "%s", $this->filterColumn($condition));
      +        $operator = empty($this->_sqlPreBuild['where']) ? ' WHERE ' : ' AND';
      +
      +        if (func_num_args() <= 1) {
      +            $this->_sqlPreBuild['where'] .= $operator . ' (' . $condition . ')';
      +        } else {
      +            $args = func_get_args();
      +            array_shift($args);
      +            $this->_sqlPreBuild['where'] .= $operator . ' (' . vsprintf($condition, array_map(array($this->_adapter, 'quoteValue'), $args)) . ')';
      +        }
      +
      +        return $this;
      +    }
      +
      +    /**
      +     * OR条件查询语句
      +     *
      +     * @param string $condition 查询条件
      +     * @param mixed $param 条件值
      +     * @return Typecho_Db_Query
      +     */
      +    public function orWhere()
      +    {
      +        $condition = func_get_arg(0);
      +        $condition = str_replace('?', "%s", $this->filterColumn($condition));
      +        $operator = empty($this->_sqlPreBuild['where']) ? ' WHERE ' : ' OR';
      +
      +        if (func_num_args() <= 1) {
      +            $this->_sqlPreBuild['where'] .= $operator . ' (' . $condition . ')';
      +        } else {
      +            $args = func_get_args();
      +            array_shift($args);
      +            $this->_sqlPreBuild['where'] .= $operator . ' (' . vsprintf($condition, array_map(array($this->_adapter, 'quoteValue'), $args)) . ')';
      +        }
      +
      +        return $this;
      +    }
      +
      +    /**
      +     * 查询行数限制
      +     *
      +     * @param integer $limit 需要查询的行数
      +     * @return Typecho_Db_Query
      +     */
      +    public function limit($limit)
      +    {
      +        $this->_sqlPreBuild['limit'] = intval($limit);
      +        return $this;
      +    }
      +
      +    /**
      +     * 查询行数偏移量
      +     *
      +     * @param integer $offset 需要偏移的行数
      +     * @return Typecho_Db_Query
      +     */
      +    public function offset($offset)
      +    {
      +        $this->_sqlPreBuild['offset'] = intval($offset);
      +        return $this;
      +    }
      +
      +    /**
      +     * 分页查询
      +     *
      +     * @param integer $page 页数
      +     * @param integer $pageSize 每页行数
      +     * @return Typecho_Db_Query
      +     */
      +    public function page($page, $pageSize)
      +    {
      +        $pageSize = intval($pageSize);
      +        $this->_sqlPreBuild['limit'] = $pageSize;
      +        $this->_sqlPreBuild['offset'] = (max(intval($page), 1) - 1) * $pageSize;
      +        return $this;
      +    }
      +
      +    /**
      +     * 指定需要写入的栏目及其值
      +     *
      +     * @param array $rows
      +     * @return Typecho_Db_Query
      +     */
      +    public function rows(array $rows)
      +    {
      +        foreach ($rows as $key => $row) {
      +            $this->_sqlPreBuild['rows'][$this->filterColumn($key)] = is_null($row) ? 'NULL' : $this->_adapter->quoteValue($row);
      +        }
      +        return $this;
      +    }
      +
      +    /**
      +     * 指定需要写入栏目及其值
      +     * 单行且不会转义引号
      +     *
      +     * @param string $key 栏目名称
      +     * @param mixed $value 指定的值
      +     * @return Typecho_Db_Query
      +     */
      +    public function expression($key, $value)
      +    {
      +        $this->_sqlPreBuild['rows'][$this->filterColumn($key)] = $this->filterColumn($value);
      +        return $this;
      +    }
      +
      +    /**
      +     * 排序顺序(ORDER BY)
      +     *
      +     * @param string $orderby 排序的索引
      +     * @param string $sort 排序的方式(ASC, DESC)
      +     * @return Typecho_Db_Query
      +     */
      +    public function order($orderby, $sort = Typecho_Db::SORT_ASC)
      +    {
      +        $this->_sqlPreBuild['order'] = ' ORDER BY ' . $this->filterColumn($orderby) . (empty($sort) ? NULL : ' ' . $sort);
      +        return $this;
      +    }
      +
      +    /**
      +     * 集合聚集(GROUP BY)
      +     *
      +     * @param string $key 聚集的键值
      +     * @return Typecho_Db_Query
      +     */
      +    public function group($key)
      +    {
      +        $this->_sqlPreBuild['group'] = ' GROUP BY ' . $this->filterColumn($key);
      +        return $this;
      +    }
      +
      +    /**
      +     * 选择查询字段
      +     *
      +     * @access public
      +     * @param mixed $field 查询字段
      +     * @return Typecho_Db_Query
      +     */
      +    public function select($field = '*')
      +    {
      +        $this->_sqlPreBuild['action'] = Typecho_Db::SELECT;
      +        $args = func_get_args();
      +
      +        $this->_sqlPreBuild['fields'] = $this->getColumnFromParameters($args);
      +        return $this;
      +    }
      +
      +    /**
      +     * 查询记录操作(SELECT)
      +     *
      +     * @param string $table 查询的表
      +     * @return Typecho_Db_Query
      +     */
      +    public function from($table)
      +    {
      +        $this->_sqlPreBuild['table'] = $this->filterPrefix($table);
      +        return $this;
      +    }
      +
      +    /**
      +     * 更新记录操作(UPDATE)
      +     *
      +     * @param string $table 需要更新记录的表
      +     * @return Typecho_Db_Query
      +     */
      +    public function update($table)
      +    {
      +        $this->_sqlPreBuild['action'] = Typecho_Db::UPDATE;
      +        $this->_sqlPreBuild['table'] = $this->filterPrefix($table);
      +        return $this;
      +    }
      +
      +    /**
      +     * 删除记录操作(DELETE)
      +     *
      +     * @param string $table 需要删除记录的表
      +     * @return Typecho_Db_Query
      +     */
      +    public function delete($table)
      +    {
      +        $this->_sqlPreBuild['action'] = Typecho_Db::DELETE;
      +        $this->_sqlPreBuild['table'] = $this->filterPrefix($table);
      +        return $this;
      +    }
      +
      +    /**
      +     * 插入记录操作(INSERT)
      +     *
      +     * @param string $table 需要插入记录的表
      +     * @return Typecho_Db_Query
      +     */
      +    public function insert($table)
      +    {
      +        $this->_sqlPreBuild['action'] = Typecho_Db::INSERT;
      +        $this->_sqlPreBuild['table'] = $this->filterPrefix($table);
      +        return $this;
      +    }
      +
      +    /**
      +     * 构造最终查询语句
      +     *
      +     * @return string
      +     */
      +    public function __toString()
      +    {
      +        switch ($this->_sqlPreBuild['action']) {
      +            case Typecho_Db::SELECT:
      +                return $this->_adapter->parseSelect($this->_sqlPreBuild);
      +            case Typecho_Db::INSERT:
      +                return 'INSERT INTO '
      +                . $this->_sqlPreBuild['table']
      +                . '(' . implode(' , ', array_keys($this->_sqlPreBuild['rows'])) . ')'
      +                . ' VALUES '
      +                . '(' . implode(' , ', array_values($this->_sqlPreBuild['rows'])) . ')'
      +                . $this->_sqlPreBuild['limit'];
      +            case Typecho_Db::DELETE:
      +                return 'DELETE FROM '
      +                . $this->_sqlPreBuild['table']
      +                . $this->_sqlPreBuild['where'];
      +            case Typecho_Db::UPDATE:
      +                $columns = array();
      +                if (isset($this->_sqlPreBuild['rows'])) {
      +                    foreach ($this->_sqlPreBuild['rows'] as $key => $val) {
      +                        $columns[] = "$key = $val";
      +                    }
      +                }
      +
      +                return 'UPDATE '
      +                . $this->_sqlPreBuild['table']
      +                . ' SET ' . implode(' , ', $columns)
      +                . $this->_sqlPreBuild['where'];
      +            default:
      +                return NULL;
      +        }
      +    }
      +}
      diff --git a/var/Typecho/Db/Query/Exception.php b/var/Typecho/Db/Query/Exception.php
      new file mode 100644
      index 00000000..5336367c
      --- /dev/null
      +++ b/var/Typecho/Db/Query/Exception.php
      @@ -0,0 +1,19 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: DbException.php 52 2008-03-18 08:04:01Z magike.net $
      + */
      +
      +/** 数据库异常基类 */
      +require_once 'Typecho/Db/Exception.php';
      +
      +/**
      + * 数据库查询异常类
      + *
      + * @package Db
      + */
      +class Typecho_Db_Query_Exception extends Typecho_Db_Exception
      +{}
      diff --git a/var/Typecho/Exception.php b/var/Typecho/Exception.php
      new file mode 100644
      index 00000000..c11b832e
      --- /dev/null
      +++ b/var/Typecho/Exception.php
      @@ -0,0 +1,24 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: Exception.php 106 2008-04-11 02:23:54Z magike.net $
      + */
      +
      +/**
      + * Typecho异常基类
      + * 主要重载异常打印函数
      + *
      + * @package Exception
      + */
      +class Typecho_Exception extends Exception
      +{
      +
      +    public function __construct($message, $code = 0)
      +    {
      +        $this->message = $message;
      +        $this->code = $code;
      +    }
      +}
      diff --git a/var/Typecho/Feed.php b/var/Typecho/Feed.php
      new file mode 100644
      index 00000000..42d0701c
      --- /dev/null
      +++ b/var/Typecho/Feed.php
      @@ -0,0 +1,411 @@
      +<?php
      +/**
      + * 格式化聚合XML数据,整合自Univarsel Feed Writer
      + *
      + * @author Anis uddin Ahmad <anisniit@gmail.com>
      + * @category typecho
      + * @package Feed
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id: Feed.php 219 2008-05-27 09:06:15Z magike.net $
      + */
      +
      +/**
      + * Typecho_Feed
      + *
      + * @author qining
      + * @category typecho
      + * @package Feed
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Typecho_Feed
      +{
      +    /** 定义RSS 1.0类型 */
      +    const RSS1 = 'RSS 1.0';
      +
      +    /** 定义RSS 2.0类型 */
      +    const RSS2 = 'RSS 2.0';
      +
      +    /** 定义ATOM 1.0类型 */
      +    const ATOM1 = 'ATOM 1.0';
      +
      +    /** 定义RSS时间格式 */
      +    const DATE_RFC822 = 'r';
      +
      +    /** 定义ATOM时间格式 */
      +    const DATE_W3CDTF = 'c';
      +
      +    /** 定义行结束符 */
      +    const EOL = "\n";
      +
      +    /**
      +     * feed状态
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_type;
      +
      +    /**
      +     * 字符集编码
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_charset;
      +
      +    /**
      +     * 语言状态
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_lang;
      +
      +    /**
      +     * 聚合地址
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_feedUrl;
      +
      +    /**
      +     * 基本地址
      +     *
      +     * @access private
      +     * @var unknown
      +     */
      +    private $_baseUrl;
      +
      +    /**
      +     * 聚合标题
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_title;
      +
      +    /**
      +     * 聚合副标题
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_subTitle;
      +
      +    /**
      +     * 版本信息
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_version;
      +
      +    /**
      +     * 所有的items
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_items = array();
      +
      +    /**
      +     * 创建Feed对象
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function __construct($version, $type = self::RSS2, $charset = 'UTF-8', $lang = 'en')
      +    {
      +        $this->_version = $version;
      +        $this->_type = $type;
      +        $this->_charset = $charset;
      +        $this->_lang = $lang;
      +    }
      +
      +    /**
      +     * 设置标题
      +     *
      +     * @access public
      +     * @param string $title 标题
      +     * @return void
      +     */
      +    public function setTitle($title)
      +    {
      +        $this->_title = $title;
      +    }
      +
      +    /**
      +     * 设置副标题
      +     *
      +     * @access public
      +     * @param string $subTitle 副标题
      +     * @return void
      +     */
      +    public function setSubTitle($subTitle)
      +    {
      +        $this->_subTitle = $subTitle;
      +    }
      +
      +    /**
      +     * 设置聚合地址
      +     *
      +     * @access public
      +     * @param string $feedUrl 聚合地址
      +     * @return void
      +     */
      +    public function setFeedUrl($feedUrl)
      +    {
      +        $this->_feedUrl = $feedUrl;
      +    }
      +
      +    /**
      +     * 设置主页
      +     *
      +     * @access public
      +     * @param string $baseUrl 主页地址
      +     * @return void
      +     */
      +    public function setBaseUrl($baseUrl)
      +    {
      +        $this->_baseUrl = $baseUrl;
      +    }
      +
      +    /**
      +     * 获取Feed时间格式
      +     *
      +     * @access public
      +     * @param integer $stamp 时间戳
      +     * @return string
      +     */
      +    public function dateFormat($stamp)
      +    {
      +        if (self::RSS2 == $this->_type) {
      +            return date(self::DATE_RFC822, $stamp);
      +        } else if (self::RSS1 == $this->_type || self::ATOM1 == $this->_type) {
      +            return date(self::DATE_W3CDTF, $stamp);
      +        }
      +    }
      +
      +    /**
      +     * $item的格式为
      +     * <code>
      +     * array (
      +     *     'title'      =>  'xxx',
      +     *     'content'    =>  'xxx',
      +     *     'excerpt'    =>  'xxx',
      +     *     'date'       =>  'xxx',
      +     *     'link'       =>  'xxx',
      +     *     'author'     =>  'xxx',
      +     *     'comments'   =>  'xxx',
      +     *     'commentsUrl'=>  'xxx',
      +     *     'commentsFeedUrl' => 'xxx',
      +     * )
      +     * </code>
      +     *
      +     * @access public
      +     * @param array $item
      +     * @return unknown
      +     */
      +    public function addItem(array $item)
      +    {
      +        $this->_items[] = $item;
      +    }
      +
      +    /**
      +     * 输出字符串
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function __toString()
      +    {
      +        $result = '<?xml version="1.0" encoding="' . $this->_charset . '"?>' . self::EOL;
      +
      +        if (self::RSS1 == $this->_type) {
      +            $result .= '<rdf:RDF
      +xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      +xmlns="http://purl.org/rss/1.0/"
      +xmlns:dc="http://purl.org/dc/elements/1.1/">' . self::EOL;
      +
      +            $content = '';
      +            $links = array();
      +            $lastUpdate = 0;
      +
      +            foreach ($this->_items as $item) {
      +                $content .= '<item rdf:about="' . $item['link'] . '">' . self::EOL;
      +                $content .= '<title>' . htmlspecialchars($item['title']) . '</title>' . self::EOL;
      +                $content .= '<link>' . $item['link'] . '</link>' . self::EOL;
      +                $content .= '<dc:date>' . $this->dateFormat($item['date']) . '</dc:date>' . self::EOL;
      +                $content .= '<description>' . strip_tags($item['content']) . '</description>' . self::EOL;
      +                if (!empty($item['suffix'])) {
      +                    $content .= $item['suffix'];
      +                }
      +                $content .= '</item>' . self::EOL;
      +
      +                $links[] = $item['link'];
      +
      +                if ($item['date'] > $lastUpdate) {
      +                    $lastUpdate = $item['date'];
      +                }
      +            }
      +
      +            $result .= '<channel rdf:about="' . $this->_feedUrl . '">
      +<title>' . htmlspecialchars($this->_title) . '</title>
      +<link>' . $this->_baseUrl . '</link>
      +<description>' . htmlspecialchars($this->_subTitle) . '</description>
      +<items>
      +<rdf:Seq>' . self::EOL;
      +
      +            foreach ($links as $link) {
      +                $result .= '<rdf:li resource="' . $link . '"/>' . self::EOL;
      +            }
      +
      +            $result .= '</rdf:Seq>
      +</items>
      +</channel>' . self::EOL;
      +
      +            $result .= $content . '</rdf:RDF>';
      +
      +        } else if (self::RSS2 == $this->_type) {
      +            $result .= '<rss version="2.0"
      +xmlns:content="http://purl.org/rss/1.0/modules/content/"
      +xmlns:dc="http://purl.org/dc/elements/1.1/"
      +xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
      +xmlns:atom="http://www.w3.org/2005/Atom"
      +xmlns:wfw="http://wellformedweb.org/CommentAPI/">
      +<channel>' . self::EOL;
      +
      +            $content = '';
      +            $lastUpdate = 0;
      +
      +            foreach ($this->_items as $item) {
      +                $content .= '<item>' . self::EOL;
      +                $content .= '<title>' . htmlspecialchars($item['title']) . '</title>' . self::EOL;
      +                $content .= '<link>' . $item['link'] . '</link>' . self::EOL;
      +                $content .= '<guid>' . $item['link'] . '</guid>' . self::EOL;
      +                $content .= '<pubDate>' . $this->dateFormat($item['date']) . '</pubDate>' . self::EOL;
      +                $content .= '<dc:creator>' . htmlspecialchars($item['author']->screenName) . '</dc:creator>' . self::EOL;
      +
      +                if (!empty($item['category']) && is_array($item['category'])) {
      +                    foreach ($item['category'] as $category) {
      +                        $content .= '<category><![CDATA[' . $category['name'] . ']]></category>' . self::EOL;
      +                    }
      +                }
      +
      +                if (!empty($item['excerpt'])) {
      +                    $content .= '<description><![CDATA[' . strip_tags($item['excerpt']) . ']]></description>' . self::EOL;
      +                }
      +
      +                if (!empty($item['content'])) {
      +                    $content .= '<content:encoded xml:lang="' . $this->_lang . '"><![CDATA['
      +                    . self::EOL .
      +                    $item['content'] . self::EOL .
      +                    ']]></content:encoded>' . self::EOL;
      +                }
      +
      +                if (isset($item['comments']) && strlen($item['comments']) > 0) {
      +                    $content .= '<slash:comments>' . $item['comments'] . '</slash:comments>' . self::EOL;
      +                }
      +
      +                $content .= '<comments>' . $item['link'] . '#comments</comments>' . self::EOL;
      +                if (!empty($item['commentsFeedUrl'])) {
      +                    $content .= '<wfw:commentRss>' . $item['commentsFeedUrl'] . '</wfw:commentRss>' . self::EOL;
      +                }
      +
      +                if (!empty($item['suffix'])) {
      +                    $content .= $item['suffix'];
      +                }
      +
      +                $content .= '</item>' . self::EOL;
      +
      +                if ($item['date'] > $lastUpdate) {
      +                    $lastUpdate = $item['date'];
      +                }
      +            }
      +
      +            $result .= '<title>' . htmlspecialchars($this->_title) . '</title>
      +<link>' . $this->_baseUrl . '</link>
      +<atom:link href="' . $this->_feedUrl . '" rel="self" type="application/rss+xml" />
      +<language>' . $this->_lang . '</language>
      +<description>' . htmlspecialchars($this->_subTitle) . '</description>
      +<lastBuildDate>' . $this->dateFormat($lastUpdate) . '</lastBuildDate>
      +<pubDate>' . $this->dateFormat($lastUpdate) . '</pubDate>' . self::EOL;
      +
      +            $result .= $content . '</channel>
      +</rss>';
      +
      +        } else if (self::ATOM1 == $this->_type) {
      +            $result .= '<feed xmlns="http://www.w3.org/2005/Atom"
      +xmlns:thr="http://purl.org/syndication/thread/1.0"
      +xml:lang="' . $this->_lang . '"
      +xml:base="' . $this->_baseUrl . '"
      +>' . self::EOL;
      +
      +            $content = '';
      +            $lastUpdate = 0;
      +
      +            foreach ($this->_items as $item) {
      +                $content .= '<entry>' . self::EOL;
      +                $content .= '<title type="html"><![CDATA[' . $item['title'] . ']]></title>' . self::EOL;
      +                $content .= '<link rel="alternate" type="text/html" href="' . $item['link'] . '" />' . self::EOL;
      +                $content .= '<id>' . $item['link'] . '</id>' . self::EOL;
      +                $content .= '<updated>' . $this->dateFormat($item['date']) . '</updated>' . self::EOL;
      +                $content .= '<published>' . $this->dateFormat($item['date']) . '</published>' . self::EOL;
      +                $content .= '<author>
      +    <name>' . $item['author']->screenName . '</name>
      +    <uri>' . $item['author']->url . '</uri>
      +</author>' . self::EOL;
      +
      +                if (!empty($item['category']) && is_array($item['category'])) {
      +                    foreach ($item['category'] as $category) {
      +                        $content .= '<category scheme="' . $category['permalink'] . '" term="' . $category['name'] . '" />' . self::EOL;
      +                    }
      +                }
      +
      +                if (!empty($item['excerpt'])) {
      +                    $content .= '<summary type="html"><![CDATA[' . htmlspecialchars($item['excerpt']) . ']]></summary>' . self::EOL;
      +                }
      +
      +                if (!empty($item['content'])) {
      +                    $content .= '<content type="html" xml:base="' . $item['link'] . '" xml:lang="' . $this->_lang . '"><![CDATA['
      +                    . self::EOL .
      +                    $item['content'] . self::EOL .
      +                    ']]></content>' . self::EOL;
      +                }
      +
      +                if (isset($item['comments']) && strlen($item['comments']) > 0) {
      +                    $content .= '<link rel="replies" type="text/html" href="' . $item['link'] . '#comments" thr:count="' . $item['comments'] . '" />' . self::EOL;
      +
      +                    if (!empty($item['commentsFeedUrl'])) {
      +                        $content .= '<link rel="replies" type="application/atom+xml" href="' . $item['commentsFeedUrl'] . '" thr:count="' . $item['comments'] . '"/>' . self::EOL;
      +                    }
      +                }
      +
      +                if (!empty($item['suffix'])) {
      +                    $content .= $item['suffix'];
      +                }
      +
      +                $content .= '</entry>' . self::EOL;
      +
      +                if ($item['date'] > $lastUpdate) {
      +                    $lastUpdate = $item['date'];
      +                }
      +            }
      +
      +            $result .= '<title type="text">' . htmlspecialchars($this->_title) . '</title>
      +<subtitle type="text">' . htmlspecialchars($this->_subTitle) . '</subtitle>
      +<updated>' . $this->dateFormat($lastUpdate) . '</updated>
      +<generator uri="http://typecho.org/" version="' . $this->_version . '">Typecho</generator>
      +<link rel="alternate" type="text/html" href="' . $this->_baseUrl . '" />
      +<id>' . $this->_feedUrl . '</id>
      +<link rel="self" type="application/atom+xml" href="' . $this->_feedUrl . '" />
      +';
      +            $result .= $content . '</feed>';
      +        }
      +
      +        return $result;
      +    }
      +}
      diff --git a/var/Typecho/Http/Client.php b/var/Typecho/Http/Client.php
      new file mode 100644
      index 00000000..827f9f7e
      --- /dev/null
      +++ b/var/Typecho/Http/Client.php
      @@ -0,0 +1,62 @@
      +<?php
      +/**
      + * Http客户端
      + *
      + * @author qining
      + * @category typecho
      + * @package Http
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/** Typecho_Common */
      +require_once 'Typecho/Common.php';
      +
      +/**
      + * Http客户端
      + *
      + * @author qining
      + * @category typecho
      + * @package Http
      + */
      +class Typecho_Http_Client
      +{
      +    /** POST方法 */
      +    const METHOD_POST = 'POST';
      +
      +    /** GET方法 */
      +    const METHOD_GET = 'GET';
      +
      +    /** 定义行结束符 */
      +    const EOL = "\r\n";
      +
      +    /**
      +     * 获取可用的连接
      +     *
      +     * @access public
      +     * @return Typecho_Http_Client_Adapter
      +     */
      +    public static function get()
      +    {
      +        $adapters = func_get_args();
      +
      +        if (empty($adapters)) {
      +            $adapters = array();
      +            $adapterFiles = glob(dirname(__FILE__) . '/Client/Adapter/*.php');
      +            foreach ($adapterFiles as $file) {
      +                $adapters[] = substr(basename($file), 0, -4);
      +            }
      +        }
      +
      +        foreach ($adapters as $adapter) {
      +            require_once 'Typecho/Http/Client/Adapter/' . $adapter . '.php';
      +            $adapterName = 'Typecho_Http_Client_Adapter_' . $adapter;
      +            if (Typecho_Common::isAvailableClass($adapterName) && call_user_func(array($adapterName, 'isAvailable'))) {
      +                return new $adapterName();
      +            }
      +        }
      +
      +        return false;
      +    }
      +}
      diff --git a/var/Typecho/Http/Client/Adapter.php b/var/Typecho/Http/Client/Adapter.php
      new file mode 100644
      index 00000000..23ec0152
      --- /dev/null
      +++ b/var/Typecho/Http/Client/Adapter.php
      @@ -0,0 +1,425 @@
      +<?php
      +/**
      + * 客户端适配器
      + *
      + * @author qining
      + * @category typecho
      + * @package Http
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/** Typecho_Http_Client */
      +require_once 'Typecho/Http/Client.php';
      +
      +/**
      + * 客户端适配器
      + *
      + * @author qining
      + * @category typecho
      + * @package Http
      + */
      +abstract class Typecho_Http_Client_Adapter
      +{
      +    /**
      +     * 方法名
      +     *
      +     * @access protected
      +     * @var string
      +     */
      +    protected $method = Typecho_Http_Client::METHOD_GET;
      +
      +    /**
      +     * 传递参数
      +     *
      +     * @access protected
      +     * @var string
      +     */
      +    protected $query;
      +
      +    /**
      +     * 设置超时
      +     *
      +     * @access protected
      +     * @var string
      +     */
      +    protected $timeout = 3;
      +
      +    /**
      +     * 需要在body中传递的值
      +     *
      +     * @access protected
      +     * @var array
      +     */
      +    protected $data = array();
      +
      +    /**
      +     * 文件列表
      +     *
      +     * @access protected
      +     * @var array
      +     */
      +    protected $files = array();
      +
      +    /**
      +     * 头信息参数
      +     *
      +     * @access protected
      +     * @var array
      +     */
      +    protected $headers = array();
      +
      +    /**
      +     * cookies
      +     *
      +     * @access protected
      +     * @var array
      +     */
      +    protected $cookies = array();
      +
      +    /**
      +     * 协议名称及版本
      +     *
      +     * @access protected
      +     * @var string
      +     */
      +    protected $rfc = 'HTTP/1.1';
      +
      +    /**
      +     * 请求地址
      +     *
      +     * @access protected
      +     * @var string
      +     */
      +    protected $url;
      +
      +    /**
      +     * 主机名
      +     *
      +     * @access protected
      +     * @var string
      +     */
      +    protected $host;
      +
      +    /**
      +     * 前缀
      +     *
      +     * @access protected
      +     * @var string
      +     */
      +    protected $scheme = 'http';
      +
      +    /**
      +     * 路径
      +     *
      +     * @access protected
      +     * @var string
      +     */
      +    protected $path = '/';
      +
      +    /**
      +     * 设置ip
      +     *
      +     * @access protected
      +     * @var string
      +     */
      +    protected $ip;
      +
      +    /**
      +     * 端口
      +     *
      +     * @access protected
      +     * @var integer
      +     */
      +    protected $port = 80;
      +
      +    /**
      +     * 回执头部信息
      +     *
      +     * @access protected
      +     * @var array
      +     */
      +    protected $responseHeader = array();
      +
      +    /**
      +     * 回执代码
      +     *
      +     * @access protected
      +     * @var integer
      +     */
      +    protected $responseStatus;
      +
      +    /**
      +     * 回执身体
      +     *
      +     * @access protected
      +     * @var string
      +     */
      +    protected $responseBody;
      +
      +    /**
      +     * 判断适配器是否可用
      +     *
      +     * @access public
      +     * @return boolean
      +     */
      +    public static function isAvailable()
      +    {
      +        return true;
      +    }
      +
      +    /**
      +     * 设置方法名
      +     *
      +     * @access public
      +     * @param string $method
      +     * @return Typecho_Http_Client_Adapter
      +     */
      +    public function setMethod($method)
      +    {
      +        $this->method = $method;
      +        return $this;
      +    }
      +
      +    /**
      +     * 设置指定的COOKIE值
      +     *
      +     * @access public
      +     * @param string $key 指定的参数
      +     * @param mixed $value 设置的值
      +     * @return Typecho_Http_Client_Adapter
      +     */
      +    public function setCookie($key, $value)
      +    {
      +        $this->cookies[$key] = $value;
      +        return $this;
      +    }
      +
      +    /**
      +     * 设置传递参数
      +     *
      +     * @access public
      +     * @param mixed $query 传递参数
      +     * @return Typecho_Http_Client_Adapter
      +     */
      +    public function setQuery($query)
      +    {
      +        $query = is_array($query) ? http_build_query($query) : $query;
      +        $this->query = empty($this->query) ? $query : $this->query . '&' . $query;
      +        return $this;
      +    }
      +
      +    /**
      +     * 设置需要POST的数据
      +     *
      +     * @access public
      +     * @param array $data 需要POST的数据
      +     * @return Typecho_Http_Client_Adapter
      +     */
      +    public function setData($data)
      +    {
      +        $this->data = $data;
      +        $this->setMethod(Typecho_Http_Client::METHOD_POST);
      +        return $this;
      +    }
      +
      +    /**
      +     * 设置需要POST的文件
      +     *
      +     * @access public
      +     * @param array $files 需要POST的文件
      +     * @return Typecho_Http_Client_Adapter
      +     */
      +    public function setFiles(array $files)
      +    {
      +        $this->files = empty($this->files) ? $files : array_merge($this->files, $files);
      +        $this->setMethod(Typecho_Http_Client::METHOD_POST);
      +        return $this;
      +    }
      +
      +    /**
      +     * 设置超时时间
      +     *
      +     * @access public
      +     * @param integer $timeout 超时时间
      +     * @return Typecho_Http_Client_Adapter
      +     */
      +    public function setTimeout($timeout)
      +    {
      +        $this->timeout = $timeout;
      +        return $this;
      +    }
      +
      +    /**
      +     * 设置http协议
      +     *
      +     * @access public
      +     * @param string $rfc http协议
      +     * @return Typecho_Http_Client_Adapter
      +     */
      +    public function setRfc($rfc)
      +    {
      +        $this->rfc = $rfc;
      +        return $this;
      +    }
      +
      +    /**
      +     * 设置ip地址
      +     *
      +     * @access public
      +     * @param string $ip ip地址
      +     * @return Typecho_Http_Client_Adapter
      +     */
      +    public function setIp($ip)
      +    {
      +        $this->ip = $ip;
      +        return $this;
      +    }
      +
      +    /**
      +     * 设置头信息参数
      +     *
      +     * @access public
      +     * @param string $key 参数名称
      +     * @param string $value 参数值
      +     * @return Typecho_Http_Client_Adapter
      +     */
      +    public function setHeader($key, $value)
      +    {
      +        $key = str_replace(' ', '-', ucwords(str_replace('-', ' ', $key)));
      +        $this->headers[$key] = $value;
      +        return $this;
      +    }
      +
      +    /**
      +     * 发送请求
      +     *
      +     * @access public
      +     * @param string $url 请求地址
      +     * @param string $rfc 请求协议
      +     * @return string
      +     */
      +    public function send($url)
      +    {
      +        $params = parse_url($url);
      +
      +        if (!empty($params['host'])) {
      +            $this->host = $params['host'];
      +        } else {
      +            /** Typecho_Http_Client_Exception */
      +            require_once 'Typecho/Http/Client/Exception.php';
      +            throw new Typecho_Http_Client_Exception('Unknown Host', 500);
      +        }
      +
      +        if (!empty($params['path'])) {
      +            $this->path = $params['path'];
      +        }
      +
      +        if (!empty($params['query'])) {
      +            $this->path .= '?' . $params['query'] . (empty($this->query) ? NULL : '&' . $this->query);
      +            $url .= (empty($this->query) ? NULL : '&' . $this->query);
      +        } else {
      +            $url .= (empty($this->query) ? NULL : '?' . $this->query);
      +        }
      +
      +        $this->scheme = $params['scheme'];
      +        $this->port = ('https' == $params['scheme']) ? 443 : 80;
      +
      +        if (!empty($params['port'])) {
      +            $this->port = $params['port'];
      +        }
      +
      +        /** 整理cookie */
      +        if (!empty($this->cookies)) {
      +            $this->setHeader('Cookie', str_replace('&', '; ', http_build_query($this->cookies)));
      +        }
      +
      +        $response = $this->httpSend($url);
      +
      +        if (!$response) {
      +            return;
      +        }
      +
      +        str_replace("\r", '', $response);
      +        $rows = explode("\n", $response);
      +
      +        $foundStatus = false;
      +        $foundInfo = false;
      +        $lines = array();
      +
      +        foreach ($rows as $key => $line) {
      +            if (!$foundStatus) {
      +                if (0 === strpos($line, "HTTP/")) {
      +                    if ('' == trim($rows[$key + 1])) {
      +                        continue;
      +                    } else {
      +                        $status = explode(' ', str_replace('  ', ' ', $line));
      +                        $this->responseStatus = intval($status[1]);
      +                        $foundStatus = true;
      +                    }
      +                }
      +            } else {
      +                if (!$foundInfo) {
      +                    if ('' != trim($line)) {
      +                        $status = explode(':', $line);
      +                        $name = strtolower(array_shift($status));
      +                        $data = implode(':', $status);
      +                        $this->responseHeader[trim($name)] = trim($data);
      +                    } else {
      +                        $foundInfo = true;
      +                    }
      +                } else {
      +                    $lines[] = $line;
      +                }
      +            }
      +        }
      +
      +        $this->reponseBody = implode("\n", $lines);
      +        return $this->reponseBody;
      +    }
      +
      +    /**
      +     * 获取回执的头部信息
      +     *
      +     * @access public
      +     * @param string $key 头信息名称
      +     * @return string
      +     */
      +    public function getResponseHeader($key)
      +    {
      +        $key = strtolower($key);
      +        return isset($this->responseHeader[$key]) ? $this->responseHeader[$key] : NULL;
      +    }
      +
      +    /**
      +     * 获取回执代码
      +     *
      +     * @access public
      +     * @return integer
      +     */
      +    public function getResponseStatus()
      +    {
      +        return $this->responseStatus;
      +    }
      +
      +    /**
      +     * 获取回执身体
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function getResponseBody()
      +    {
      +        return $this->reponseBody;
      +    }
      +
      +    /**
      +     * 需要实现的请求方法
      +     *
      +     * @access public
      +     * @param string $url 请求地址
      +     * @return string
      +     */
      +    abstract public function httpSend($url);
      +}
      diff --git a/var/Typecho/Http/Client/Adapter/Curl.php b/var/Typecho/Http/Client/Adapter/Curl.php
      new file mode 100644
      index 00000000..40b94327
      --- /dev/null
      +++ b/var/Typecho/Http/Client/Adapter/Curl.php
      @@ -0,0 +1,122 @@
      +<?php
      +/**
      + * CURL适配器
      + *
      + * @author qining
      + * @category typecho
      + * @package Http
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/** Typecho_Http_Client_Adapter */
      +require_once 'Typecho/Http/Client/Adapter.php';
      +
      +/**
      + * CURL适配器
      + *
      + * @author qining
      + * @category typecho
      + * @package Http
      + */
      +class Typecho_Http_Client_Adapter_Curl extends Typecho_Http_Client_Adapter
      +{
      +    /**
      +     * 判断适配器是否可用
      +     *
      +     * @access public
      +     * @return boolean
      +     */
      +    public static function isAvailable()
      +    {
      +        return function_exists('curl_version');
      +    }
      +
      +    /**
      +     * 发送请求
      +     *
      +     * @access public
      +     * @param string $url 请求地址
      +     * @return string
      +     */
      +    public function httpSend($url)
      +    {
      +        $ch = curl_init();
      +
      +        if ($this->ip) {
      +            $url = $this->scheme . '://' . $this->ip . $this->path;
      +            $this->headers['Rfc'] = $this->method . ' ' . $this->path . ' ' . $this->rfc;
      +            $this->headers['Host'] = $this->host;
      +        }
      +
      +        curl_setopt($ch, CURLOPT_URL, $url);
      +        curl_setopt($ch, CURLOPT_PORT, $this->port);
      +        curl_setopt($ch, CURLOPT_HEADER, true);
      +        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      +        curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
      +        curl_setopt($ch, CURLOPT_TIMEOUT, $this->timeout);
      +
      +        /** 设置HTTP版本 */
      +        switch ($this->rfc) {
      +            case 'HTTP/1.0':
      +                curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
      +                break;
      +            case 'HTTP/1.1':
      +                curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
      +                break;
      +            default:
      +                curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_NONE);
      +                break;
      +        }
      +
      +        /** 设置header信息 */
      +        if (!empty($this->headers)) {
      +            if (isset($this->headers['User-Agent'])) {
      +                curl_setopt($ch, CURLOPT_USERAGENT, $this->headers['User-Agent']);
      +                unset($this->headers['User-Agent']);
      +            }
      +
      +            $headers = array();
      +
      +            if (isset($this->headers['Rfc'])) {
      +                $headers[] = $this->headers['Rfc'];
      +                unset($this->headers['Rfc']);
      +            }
      +
      +            foreach ($this->headers as $key => $val) {
      +                $headers[] = $key . ': ' . $val;
      +            }
      +
      +            curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
      +        }
      +
      +        /** POST模式 */
      +        if (Typecho_Http_Client::METHOD_POST == $this->method) {
      +            if (!isset($this->headers['content-type'])) {
      +                curl_setopt($ch, CURLOPT_POST, true);
      +            }
      +
      +            if (!empty($this->data)) {
      +                curl_setopt($ch, CURLOPT_POSTFIELDS, is_array($this->data) ? http_build_query($this->data) : $this->data);
      +            }
      +
      +            if (!empty($this->files)) {
      +                foreach ($this->files as $key => &$file) {
      +                    $file = '@' . $file;
      +                }
      +                curl_setopt($ch, CURLOPT_POSTFIELDS, $this->files);
      +            }
      +        }
      +
      +        $response = curl_exec($ch);
      +        if (false === $response) {
      +            /** Typecho_Http_Client_Exception */
      +            require_once 'Typecho/Http/Client/Exception.php';
      +            throw new Typecho_Http_Client_Exception(curl_error($ch), 500);
      +        }
      +
      +        curl_close($ch);
      +        return $response;
      +    }
      +}
      diff --git a/var/Typecho/Http/Client/Adapter/Socket.php b/var/Typecho/Http/Client/Adapter/Socket.php
      new file mode 100644
      index 00000000..ff5ba500
      --- /dev/null
      +++ b/var/Typecho/Http/Client/Adapter/Socket.php
      @@ -0,0 +1,156 @@
      +<?php
      +/**
      + * Socket适配器
      + *
      + * @author qining
      + * @category typecho
      + * @package Http
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/** Typecho_Http_Client_Adapter */
      +require_once 'Typecho/Http/Client/Adapter.php';
      +
      +/**
      + * Socket适配器
      + *
      + * @author qining
      + * @category typecho
      + * @package Http
      + */
      +class Typecho_Http_Client_Adapter_Socket extends Typecho_Http_Client_Adapter
      +{
      +    /**
      +     * 判断适配器是否可用
      +     *
      +     * @access public
      +     * @return boolean
      +     */
      +    public static function isAvailable()
      +    {
      +        return function_exists("ini_get") && ini_get('allow_url_fopen');
      +    }
      +
      +    /**
      +     * 发送请求
      +     *
      +     * @access public
      +     * @param string $url 请求地址
      +     * @return string
      +     */
      +    public function httpSend($url)
      +    {
      +        $eol = Typecho_Http_Client::EOL;
      +        $request = $this->method . ' ' . $this->path . ' ' . $this->rfc . $eol;
      +        $request .= 'Host: ' . $this->host . $eol;
      +        $request .= 'Accept: */*' . $eol;
      +        $request .= 'Cache-Control: no-cache' . $eol;
      +        $request .= 'Connection: Close' . $eol;
      +
      +        /** 设置header信息 */
      +        if (!empty($this->headers)) {
      +            foreach ($this->headers as $key => $val) {
      +                $request .= $key . ': ' . $val . $eol;
      +            }
      +        }
      +
      +        /** 发送POST信息 */
      +        if (Typecho_Http_Client::METHOD_POST == $this->method) {
      +            if (empty($this->files)) {
      +                $content = is_array($this->data) ? http_build_query($this->data) : $this->data;
      +                $request .= 'Content-Length: ' . strlen($content) . $eol;
      +
      +                if (!isset($this->headers['content-type'])) {
      +                    $request .= 'Content-Type: application/x-www-form-urlencoded' . $eol;
      +                }
      +
      +                $request .= $eol;
      +                $request .= $content;
      +            } else {
      +                $boundary = '---------------------------' . substr(md5(uniqid()), 0, 16);
      +                $content .= $eol . $boundary;
      +
      +                if (!empty($this->data)) {
      +                    foreach ($this->data as $key => $val) {
      +                        $content .= $eol . 'Content-Disposition: form-data; name="' . $key . '"' . $eol . $eol;
      +                        $content .= $val . $eol;
      +                        $content .= $boundary;
      +                    }
      +                }
      +
      +                foreach ($this->files as $key => $file) {
      +                    $content .= $eol . 'Content-Disposition: form-data; name="' . $key . '"; filename="' . $file . '"' . $eol;
      +                    $content .= 'Content-Type: ' . mime_content_type($file) . $eol . $eol;
      +                    $content .= file_get_contents($file) . $eol;
      +                    $content .= $boundary;
      +                }
      +
      +                $content .= '--' . $eol;
      +                $request .= 'Content-Length: ' . strlen($content) . $eol;
      +                $request .= 'Content-Type: multipart/form-data; boundary=' . $boundary;
      +                $request .= $eol;
      +                $request .= $content;
      +            }
      +        } else {
      +            $request .= $eol;
      +        }
      +
      +        /** 打开连接 */
      +        $socket = @fsockopen($this->ip ? $this->ip : $this->host, $this->port, $errno, $errstr, $this->timeout);
      +        if (false === $socket) {
      +            throw new Typecho_Http_Client_Exception($errno . ':' . $errstr, 500);
      +        }
      +
      +        /** 发送数据 */
      +        fwrite($socket, $request);
      +        stream_set_timeout($socket, $this->timeout);
      +        $response = '';
      +
      +        //facebook code
      +        while (!feof($socket)) {
      +            $buf = fgets($socket, 4096);
      +
      +            if (false === $buf || '' === $buf) {
      +                $info = stream_get_meta_data($socket);
      +
      +                //超时判断
      +                if ($info['timed_out']) {
      +                    throw new Typecho_Http_Client_Exception(__CLASS__ . ': timeout reading from ' . $this->host . ':' . $this->port, 500);
      +                } else {
      +                    throw new Typecho_Http_Client_Exception(__CLASS__ . ': could not read from ' . $this->host . ':' . $this->port, 500);
      +                }
      +            } else if (strlen($buf) < 4096) {
      +                $info = stream_get_meta_data($socket);
      +
      +                if ($info['timed_out']) {
      +                    throw new Typecho_Http_Client_Exception(__CLASS__ . ': timeout reading from ' . $this->host . ':' . $this->port, 500);
      +                }
      +            }
      +
      +            $response .= $buf;
      +        }
      +
      +        fclose($socket);
      +        return $response;
      +    }
      +
      +    /**
      +     * 获取回执身体
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function getResponseBody()
      +    {
      +        /** 支持chunked编码 */
      +        if ('chunked' == $this->getResponseHeader('Transfer-Encoding')) {
      +            $parts = explode("\r\n", $this->reponseBody, 2);
      +            $counter = hexdec($parts[0]);
      +            $this->reponseBody = substr($parts[1], 0, $counter);
      +        }
      +
      +        return $this->reponseBody;
      +    }
      +}
      diff --git a/var/Typecho/Http/Client/Exception.php b/var/Typecho/Http/Client/Exception.php
      new file mode 100644
      index 00000000..984fdd50
      --- /dev/null
      +++ b/var/Typecho/Http/Client/Exception.php
      @@ -0,0 +1,19 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: DbException.php 52 2008-03-18 08:04:01Z magike.net $
      + */
      +
      +/** 异常基类 */
      +require_once 'Typecho/Exception.php';
      +
      +/**
      + * Http客户端异常类
      + *
      + * @package Http
      + */
      +class Typecho_Http_Client_Exception extends Typecho_Exception
      +{}
      diff --git a/var/Typecho/I18n.php b/var/Typecho/I18n.php
      new file mode 100644
      index 00000000..99c90b19
      --- /dev/null
      +++ b/var/Typecho/I18n.php
      @@ -0,0 +1,203 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: I18n.php 106 2008-04-11 02:23:54Z magike.net $
      + */
      +
      +/**
      + * I18n function
      + *
      + * @param string $string 需要翻译的文字
      + * @return string
      + */
      +function _t($string)
      +{
      +    if (func_num_args() <= 1) {
      +        return Typecho_I18n::translate($string);
      +    } else {
      +        $args = func_get_args();
      +        array_shift($args);
      +        return vsprintf(Typecho_I18n::translate($string), $args);
      +    }
      +}
      +
      +/**
      + * I18n function, translate and echo
      + *
      + * @param string $string 需要翻译并输出的文字
      + * @return void
      + */
      +function _e()
      +{
      +    $args = func_get_args();
      +    echo call_user_func_array('_t', $args);
      +}
      +
      +/**
      + * 针对复数形式的翻译函数
      + *
      + * @param string $single 单数形式的翻译
      + * @param string $plural 复数形式的翻译
      + * @param integer $number 数字
      + * @return string
      + */
      +function _n($single, $plural, $number)
      +{
      +    return Typecho_I18n::ngettext($single, $plural, $number);
      +}
      +
      +/**
      + * 国际化字符翻译
      + *
      + * @package I18n
      + */
      +class Typecho_I18n
      +{
      +    /**
      +     * 是否已经载入的标志位
      +     *
      +     * @access private
      +     * @var boolean
      +     */
      +    private static $_loaded = false;
      +
      +    /**
      +     * 语言文件
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private static $_lang = NULL;
      +
      +    /**
      +     * 初始化语言文件
      +     *
      +     * @access private
      +     * @return boolean
      +     */
      +    private static function init()
      +    {
      +        /** GetText支持 */
      +        require_once 'Typecho/I18n/GetTextMulti.php';
      +        self::$_loaded = new Typecho_I18n_GetTextMulti(self::$_lang);
      +        return true;
      +    }
      +
      +    /**
      +     * 翻译文字
      +     *
      +     * @access public
      +     * @param string $string 待翻译的文字
      +     * @return string
      +     */
      +    public static function translate($string)
      +    {
      +        self::$_lang && empty(self::$_loaded) && self::init();
      +        return self::$_lang ? self::$_loaded->translate($string) : $string;
      +    }
      +
      +    /**
      +     * 针对复数形式的翻译函数
      +     *
      +     * @param string $single 单数形式的翻译
      +     * @param string $plural 复数形式的翻译
      +     * @param integer $number 数字
      +     * @return string
      +     */
      +    public static function ngettext($single, $plural, $number)
      +    {
      +        self::$_lang && empty(self::$_loaded) && self::init();
      +        return self::$_lang ? self::$_loaded->ngettext($single, $plural, $number) : ($number > 1 ? $plural : $single);
      +    }
      +
      +    /**
      +     * 词义化时间
      +     *
      +     * @access public
      +     * @param string $from 起始时间
      +     * @param string $now 终止时间
      +     * @return string
      +     */
      +    public static function dateWord($from, $now)
      +    {
      +        $between = $now - $from;
      +
      +        /** 如果是一天 */
      +        if ($between > 0 && $between < 86400 && idate('d', $from) == idate('d', $now)) {
      +            /** 如果是一小时 */
      +            if ($between < 3600 && idate('H', $from) == idate('H', $now)) {
      +                /** 如果是一分钟 */
      +                if ($between < 60 && idate('i', $from) == idate('i', $now)) {
      +                    $second = idate('s', $now) - idate('s', $from);
      +                    if (0 == $second) {
      +                        return _t('刚刚');
      +                    } else {
      +                        return sprintf(_n('%d秒前', '%d秒前', $second), $second);
      +                    }
      +                }
      +
      +                $min = idate('i', $now) - idate('i', $from);
      +                return sprintf(_n('%d分钟前', '%d分钟前', $min), $min);
      +            }
      +
      +            $hour = idate('H', $now) - idate('H', $from);
      +            return sprintf(_n('%d小时前', '%d小时前', $hour), $hour);
      +        }
      +
      +        /** 如果是昨天 */
      +        if ($between > 0 && $between < 172800 && (idate('z', $from) + 1 == idate('z', $now) || idate('z', $from) > 2 + idate('z', $now))) {
      +            return _t('昨天 %s', date('H:i', $from));
      +        }
      +
      +        /** 如果是一个星期 */
      +        if ($between > 0 && $between < 604800 && idate('W', $from) == idate('W', $now)) {
      +            $day = intval($between / (3600 * 24));
      +            return sprintf(_n('%d天前', '%d天前', $day), $day);
      +        }
      +
      +        /** 如果是 */
      +        if ($between > 0 && $between < 31622400 && idate('Y', $from) == idate('Y', $now)) {
      +            return date(_t('n月j日'), $from);
      +        }
      +
      +        return date(_t('Y年m月d日'), $from);
      +    }
      +
      +    /**
      +     * 设置语言项
      +     *
      +     * @access public
      +     * @param string $lang 配置信息
      +     * @return void
      +     */
      +    public static function setLang($lang)
      +    {
      +        self::$_lang = $lang;
      +    }
      +
      +    /**
      +     * 增加语言项
      +     *
      +     * @access public
      +     * @param string $lang 语言名称
      +     * @return void
      +     */
      +    public static function addLang($lang)
      +    {
      +        self::$_loaded->addFile($lang);
      +    }
      +
      +    /**
      +     * 获取语言项
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public static function getLang()
      +    {
      +        return self::$_lang;
      +    }
      +}
      diff --git a/var/Typecho/I18n/GetText.php b/var/Typecho/I18n/GetText.php
      new file mode 100644
      index 00000000..81b858d2
      --- /dev/null
      +++ b/var/Typecho/I18n/GetText.php
      @@ -0,0 +1,378 @@
      +<?php
      +/*
      +   Copyright (c) 2003 Danilo Segan <danilo@kvota.net>.
      +   Copyright (c) 2005 Nico Kaiser <nico@siriux.net>
      +
      +   This file is part of PHP-gettext.
      +
      +   PHP-gettext is free software; you can redistribute it and/or modify
      +   it under the terms of the GNU General Public License as published by
      +   the Free Software Foundation; either version 2 of the License, or
      +   (at your option) any later version.
      +
      +   PHP-gettext is distributed in the hope that it will be useful,
      +   but WITHOUT ANY WARRANTY; without even the implied warranty of
      +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      +   GNU General Public License for more details.
      +
      +   You should have received a copy of the GNU General Public License
      +   along with PHP-gettext; if not, write to the Free Software
      +   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
      +
      + */
      +
      +/**
      + * Provides a simple gettext replacement that works independently from
      + * the system's gettext abilities.
      + * It can read MO files and use them for translating strings.
      + * The files are passed to gettext_reader as a Stream (see streams.php)
      + *
      + * This version has the ability to cache all strings and translations to
      + * speed up the string lookup.
      + * While the cache is enabled by default, it can be switched off with the
      + * second parameter in the constructor (e.g. whenusing very large MO files
      + * that you don't want to keep in memory)
      + */
      +
      +//reload by 70 (typecho group)
      +/**
      + * This file is part of PHP-gettext
      + *
      + * @author Danilo Segan <danilo@kvota.net>, Nico Kaiser <nico@siriux.net>
      + * @category typecho
      + * @package I18n
      + */
      +class Typecho_I18n_GetText
      +{
      +    //public:
      +    public $error = 0; // public variable that holds error code (0 if no error)
      +
      +    //private:
      +    private $BYTEORDER = 0;        // 0: low endian, 1: big endian
      +    private $STREAM = NULL;
      +    private $short_circuit = false;
      +    private $enable_cache = false;
      +    private $originals = NULL;      // offset of original table
      +    private $translations = NULL;    // offset of translation table
      +    private $pluralheader = NULL;    // cache header field for plural forms
      +    private $total = 0;          // total string count
      +    private $table_originals = NULL;  // table for original strings (offsets)
      +    private $table_translations = NULL;  // table for translated strings (offsets)
      +    private $cache_translations = NULL;  // original -> translation mapping
      +
      +
      +    /* Methods */
      +    /**
      +     * Constructor
      +     *
      +     * @param string $file file name
      +     * @param boolean enable_cache Enable or disable caching of strings (default on)
      +     */
      +    public function __construct($file, $enable_cache = true)
      +    {
      +        // If there isn't a StreamReader, turn on short circuit mode.
      +        if (!file_exists($file)) {
      +            $this->short_circuit = true;
      +            return;
      +        }
      +
      +        // Caching can be turned off
      +        $this->enable_cache = $enable_cache;
      +
      +        // $MAGIC1 = (int)0x950412de; //bug in PHP 5
      +        $MAGIC1 = (int) - 1794895138;
      +        // $MAGIC2 = (int)0xde120495; //bug
      +        $MAGIC2 = (int) - 569244523;
      +
      +        $this->STREAM = @fopen($file, 'rb');
      +        $magic = $this->readint();
      +        if ($magic == $MAGIC1) {
      +            $this->BYTEORDER = 0;
      +        } elseif ($magic == $MAGIC2) {
      +            $this->BYTEORDER = 1;
      +        } else {
      +            $this->error = 1; // not MO file
      +            return false;
      +        }
      +
      +        // FIXME: Do we care about revision? We should.
      +        $revision = $this->readint();
      +
      +        $this->total = $this->readint();
      +        $this->originals = $this->readint();
      +        $this->translations = $this->readint();
      +    }
      +
      +    /**
      +     * Reads a 32bit Integer from the Stream
      +     *
      +     * @access private
      +     * @return Integer from the Stream
      +     */
      +    private function readint()
      +    {
      +        $end = unpack($this->BYTEORDER == 0 ? 'V' : 'N', fread($this->STREAM, 4));
      +        return array_shift($end);
      +    }
      +
      +    /**
      +     * Reads an array of Integers from the Stream
      +     *
      +     * @param int count How many elements should be read
      +     * @return Array of Integers
      +     */
      +    private function readintarray($count)
      +    {
      +        return unpack(($this->BYTEORDER == 0 ? 'V' : 'N') . $count, fread($this->STREAM, 4 * $count));
      +    }
      +
      +    /**
      +     * Loads the translation tables from the MO file into the cache
      +     * If caching is enabled, also loads all strings into a cache
      +     * to speed up translation lookups
      +     *
      +     * @access private
      +     */
      +    private function load_tables()
      +    {
      +        if (is_array($this->cache_translations) &&
      +                is_array($this->table_originals) &&
      +                is_array($this->table_translations))
      +            return;
      +
      +        /* get original and translations tables */
      +        fseek($this->STREAM, $this->originals);
      +        $this->table_originals = $this->readintarray($this->total * 2);
      +        fseek($this->STREAM, $this->translations);
      +        $this->table_translations = $this->readintarray($this->total * 2);
      +
      +        if ($this->enable_cache) {
      +            $this->cache_translations = array ();
      +            /* read all strings in the cache */
      +            for ($i = 0; $i < $this->total; $i++) {
      +                if ($this->table_originals[$i * 2 + 1] > 0) {
      +                    fseek($this->STREAM, $this->table_originals[$i * 2 + 2]);
      +                    $original = fread($this->STREAM, $this->table_originals[$i * 2 + 1]);
      +                    fseek($this->STREAM, $this->table_translations[$i * 2 + 2]);
      +                    $translation = fread($this->STREAM, $this->table_translations[$i * 2 + 1]);
      +                    $this->cache_translations[$original] = $translation;
      +                }
      +            }
      +        }
      +    }
      +
      +    /**
      +     * Returns a string from the "originals" table
      +     *
      +     * @access private
      +     * @param int num Offset number of original string
      +     * @return string Requested string if found, otherwise ''
      +     */
      +    private function get_original_string($num)
      +    {
      +        $length = $this->table_originals[$num * 2 + 1];
      +        $offset = $this->table_originals[$num * 2 + 2];
      +        if (! $length)
      +            return '';
      +        fseek($this->STREAM, $offset);
      +        $data = fread($this->STREAM, $length);
      +        return (string)$data;
      +    }
      +
      +    /**
      +     * Returns a string from the "translations" table
      +     *
      +     * @access private
      +     * @param int num Offset number of original string
      +     * @return string Requested string if found, otherwise ''
      +     */
      +    private function get_translation_string($num)
      +    {
      +        $length = $this->table_translations[$num * 2 + 1];
      +        $offset = $this->table_translations[$num * 2 + 2];
      +        if (! $length)
      +            return '';
      +        fseek($this->STREAM, $offset);
      +        $data = fread($this->STREAM, $length);
      +        return (string)$data;
      +    }
      +
      +    /**
      +     * Binary search for string
      +     *
      +     * @access private
      +     * @param string string
      +     * @param int start (internally used in recursive function)
      +     * @param int end (internally used in recursive function)
      +     * @return int string number (offset in originals table)
      +     */
      +    private function find_string($string, $start = -1, $end = -1)
      +    {
      +        if (($start == -1) or ($end == -1)) {
      +            // find_string is called with only one parameter, set start end end
      +            $start = 0;
      +            $end = $this->total;
      +        }
      +        if (abs($start - $end) <= 1) {
      +            // We're done, now we either found the string, or it doesn't exist
      +            $txt = $this->get_original_string($start);
      +            if ($string == $txt)
      +                return $start;
      +            else
      +                return -1;
      +        } else if ($start > $end) {
      +            // start > end -> turn around and start over
      +            return $this->find_string($string, $end, $start);
      +        } else {
      +            // Divide table in two parts
      +            $half = (int)(($start + $end) / 2);
      +            $cmp = strcmp($string, $this->get_original_string($half));
      +            if ($cmp == 0)
      +                // string is exactly in the middle => return it
      +                return $half;
      +            else if ($cmp < 0)
      +                // The string is in the upper half
      +                return $this->find_string($string, $start, $half);
      +            else
      +                // The string is in the lower half
      +                return $this->find_string($string, $half, $end);
      +        }
      +    }
      +
      +    /**
      +     * Translates a string
      +     *
      +     * @access public
      +     * @param string string to be translated
      +     * @param integer $num found string number
      +     * @return string translated string (or original, if not found)
      +     */
      +    public function translate($string, &$num)
      +    {
      +        if ($this->short_circuit)
      +            return $string;
      +        $this->load_tables();
      +
      +        if ($this->enable_cache) {
      +            // Caching enabled, get translated string from cache
      +            if (array_key_exists($string, $this->cache_translations))
      +                return $this->cache_translations[$string];
      +            else
      +                return $string;
      +        } else {
      +            // Caching not enabled, try to find string
      +            $num = $this->find_string($string);
      +            if ($num == -1)
      +                return $string;
      +            else
      +                return $this->get_translation_string($num);
      +        }
      +    }
      +
      +    /**
      +     * Get possible plural forms from MO header
      +     *
      +     * @access private
      +     * @return string plural form header
      +     */
      +    private function get_plural_forms()
      +    {
      +        // lets assume message number 0 is header
      +        // this is true, right?
      +        $this->load_tables();
      +
      +        // cache header field for plural forms
      +        if (! is_string($this->pluralheader)) {
      +            if ($this->enable_cache) {
      +                $header = $this->cache_translations[""];
      +            } else {
      +                $header = $this->get_translation_string(0);
      +            }
      +            if (eregi("plural-forms: ([^\n]*)\n", $header, $regs))
      +                $expr = $regs[1];
      +            else
      +                $expr = "nplurals=2; plural=n == 1 ? 0 : 1;";
      +            $this->pluralheader = $expr;
      +        }
      +        return $this->pluralheader;
      +    }
      +
      +    /**
      +     * Detects which plural form to take
      +     *
      +     * @access private
      +     * @param n count
      +     * @return int array index of the right plural form
      +     */
      +    private function select_string($n)
      +    {
      +        $string = $this->get_plural_forms();
      +        $string = str_replace('nplurals',"\$total",$string);
      +        $string = str_replace("n",$n,$string);
      +        $string = str_replace('plural',"\$plural",$string);
      +
      +        $total = 0;
      +        $plural = 0;
      +
      +        eval("$string");
      +        if ($plural >= $total) $plural = $total - 1;
      +        return $plural;
      +    }
      +
      +    /**
      +     * Plural version of gettext
      +     *
      +     * @access public
      +     * @param string single
      +     * @param string plural
      +     * @param string number
      +     * @param integer $num found string number
      +     * @return translated plural form
      +     */
      +    public function ngettext($single, $plural, $number, &$num)
      +    {
      +        if ($this->short_circuit) {
      +            if ($number != 1)
      +                return $plural;
      +            else
      +                return $single;
      +        }
      +
      +        // find out the appropriate form
      +        $select = $this->select_string($number);
      +
      +        // this should contains all strings separated by NULLs
      +        $key = $single.chr(0).$plural;
      +
      +
      +        if ($this->enable_cache) {
      +            if (! array_key_exists($key, $this->cache_translations)) {
      +                return ($number != 1) ? $plural : $single;
      +            } else {
      +                $result = $this->cache_translations[$key];
      +                $list = explode(chr(0), $result);
      +                return $list[$select];
      +            }
      +        } else {
      +            $num = $this->find_string($key);
      +            if ($num == -1) {
      +                return ($number != 1) ? $plural : $single;
      +            } else {
      +                $result = $this->get_translation_string($num);
      +                $list = explode(chr(0), $result);
      +                return $list[$select];
      +            }
      +        }
      +    }
      +
      +    /**
      +     * 关闭文件句柄
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function __destruct()
      +    {
      +        fclose($this->STREAM);
      +    }
      +}
      diff --git a/var/Typecho/I18n/GetTextMulti.php b/var/Typecho/I18n/GetTextMulti.php
      new file mode 100644
      index 00000000..717c4c45
      --- /dev/null
      +++ b/var/Typecho/I18n/GetTextMulti.php
      @@ -0,0 +1,108 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/** Typecho_I18n_GetText */
      +require_once 'Typecho/I18n/GetText.php';
      +
      +/**
      + * 用于解决一个多个mo文件带来的读写问题
      + * 我们重写了一个文件读取类
      + *
      + * @author qining
      + * @category typecho
      + * @package I18n
      + */
      +class Typecho_I18n_GetTextMulti
      +{
      +    /**
      +     * 所有的文件读写句柄
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_handles = array();
      +
      +    /**
      +     * 构造函数
      +     *
      +     * @access public
      +     * @param string $fileName 语言文件名
      +     * @return void
      +     */
      +    public function __construct($fileName)
      +    {
      +        $this->addFile($fileName);
      +    }
      +
      +    /**
      +     * 增加一个语言文件
      +     *
      +     * @access public
      +     * @param string $fileName 语言文件名
      +     * @return void
      +     */
      +    public function addFile($fileName)
      +    {
      +        $this->_handles[] = new Typecho_I18n_GetText($fileName, true);
      +    }
      +
      +    /**
      +     * Translates a string
      +     *
      +     * @access public
      +     * @param string string to be translated
      +     * @return string translated string (or original, if not found)
      +     */
      +    public function translate($string)
      +    {
      +        foreach ($this->_handles as $handle) {
      +            $string = $handle->translate($string, $count);
      +            if (-1 != $count) {
      +                break;
      +            }
      +        }
      +
      +        return $string;
      +    }
      +
      +    /**
      +     * Plural version of gettext
      +     *
      +     * @access public
      +     * @param string single
      +     * @param string plural
      +     * @param string number
      +     * @return translated plural form
      +     */
      +    public function ngettext($single, $plural, $number)
      +    {
      +        foreach ($this->_handles as $handle) {
      +            $string = $handle->ngettext($single, $plural, $number, $count);
      +            if (-1 != $count) {
      +                break;
      +            }
      +        }
      +
      +        return $string;
      +    }
      +
      +    /**
      +     * 关闭所有句柄
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function __destruct()
      +    {
      +        foreach ($this->_handles as $handle) {
      +            /** 显示的释放内存 */
      +            unset($handle);
      +        }
      +    }
      +}
      diff --git a/var/Typecho/Json.php b/var/Typecho/Json.php
      new file mode 100644
      index 00000000..5895f8d4
      --- /dev/null
      +++ b/var/Typecho/Json.php
      @@ -0,0 +1,551 @@
      +<?php
      +/**********************************
      + * Created on: 2007-2-2
      + * File Name : lib.json.php
      + * Copyright : 2005 Michal Migursk
      + * License   :  http://www.opensource.org/licenses/bsd-license.php
      + *********************************/
      +
      +/**
      + * Json转换类,第三方包提供
      + *
      + * @author qining
      + * @category typecho
      + * @package Json
      + */
      +class Typecho_Json
      +{
      +    const SERVICES_JSON_SLICE = 1;
      +    const SERVICES_JSON_IN_STR = 2;
      +    const SERVICES_JSON_IN_ARR = 3;
      +    const SERVICES_JSON_IN_OBJ = 4;
      +    const SERVICES_JSON_IN_CMT = 5;
      +    const SERVICES_JSON_LOOSE_TYPE = 16;
      +    const SERVICES_JSON_SUPPRESS_ERRORS = 32;
      +    const E_JSONTYPE = 'json decode error';
      +
      +    /**
      +     * 将utf16转换为utf8
      +     *
      +     * @access private
      +     * @param string $utf16 utf16字符串
      +     * @return string
      +     */
      +    private static function utf162utf8($utf16)
      +    {
      +        if (function_exists('mb_convert_encoding')) {
      +            return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16');
      +        }
      +        $bytes = (ord($utf16{0}) << 8) | ord($utf16{1});
      +
      +        switch (true) {
      +            case ((0x7F & $bytes) == $bytes):
      +                return chr(0x7F & $bytes);
      +
      +            case (0x07FF & $bytes) == $bytes:
      +                return chr(0xC0 | (($bytes >> 6) & 0x1F))
      +                     . chr(0x80 | ($bytes & 0x3F));
      +
      +            case (0xFFFF & $bytes) == $bytes:
      +                return chr(0xE0 | (($bytes >> 12) & 0x0F))
      +                     . chr(0x80 | (($bytes >> 6) & 0x3F))
      +                     . chr(0x80 | ($bytes & 0x3F));
      +        }
      +        return '';
      +    }
      +
      +    /**
      +     * 将utf8转换为utf16
      +     *
      +     * @access private
      +     * @param string $utf8 utf8字符串
      +     * @return string
      +     */
      +    private static function utf82utf16($utf8)
      +    {
      +        if (function_exists('mb_convert_encoding')) {
      +            return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');
      +        }
      +
      +        switch (strlen($utf8)) {
      +            case 1:
      +                return $utf8;
      +
      +            case 2:
      +                return chr(0x07 & (ord($utf8{0}) >> 2))
      +                     . chr((0xC0 & (ord($utf8{0}) << 6))
      +                         | (0x3F & ord($utf8{1})));
      +            case 3:
      +                return chr((0xF0 & (ord($utf8{0}) << 4))
      +                         | (0x0F & (ord($utf8{1}) >> 2)))
      +                     . chr((0xC0 & (ord($utf8{1}) << 6))
      +                         | (0x7F & ord($utf8{2})));
      +        }
      +        return '';
      +    }
      +
      +    /**
      +     * 判断错误
      +     *
      +     * @access private
      +     * @param mixed $data 错误对象
      +     * @param string $code 错误代码
      +     * @return boolean
      +     */
      +    private static function _is_error($data, $code = null)
      +    {
      +        if (is_object($data) && (get_class($data) == 'services_json_error' ||
      +                                 is_subclass_of($data, 'services_json_error'))) {
      +            return true;
      +        }
      +
      +        return false;
      +    }
      +
      +    /**
      +     * 清除特殊格式
      +     *
      +     * @access private
      +     * @param string $str 待处理字符串
      +     * @return string
      +     */
      +    private static function _reduce_string($str)
      +    {
      +        $str = preg_replace(array(
      +                '#^\s*//(.+)$#m',
      +                '#^\s*/\*(.+)\*/#Us',
      +                '#/\*(.+)\*/\s*$#Us'
      +            ), '', $str);
      +        return trim($str);
      +    }
      +
      +    /**
      +     * 将对象转换为json串
      +     *
      +     * @access public
      +     * @param mixed $var 需要转换的对象
      +     * @return string
      +     */
      +    public static function _encode($var)
      +    {
      +        switch (gettype($var)) {
      +            case 'boolean':
      +                return $var ? 'true' : 'false';
      +
      +            case 'NULL':
      +                return 'null';
      +
      +            case 'integer':
      +                return (int) $var;
      +
      +            case 'double':
      +            case 'float':
      +                return (float) $var;
      +
      +            case 'string':
      +                $ascii = '';
      +                $strlen_var = strlen($var);
      +
      +                for ($c = 0; $c < $strlen_var; ++$c) {
      +
      +                    $ord_var_c = ord($var{$c});
      +
      +                    switch (true) {
      +                        case $ord_var_c == 0x08:
      +                            $ascii .= '\b';
      +                            break;
      +                        case $ord_var_c == 0x09:
      +                            $ascii .= '\t';
      +                            break;
      +                        case $ord_var_c == 0x0A:
      +                            $ascii .= '\n';
      +                            break;
      +                        case $ord_var_c == 0x0C:
      +                            $ascii .= '\f';
      +                            break;
      +                        case $ord_var_c == 0x0D:
      +                            $ascii .= '\r';
      +                            break;
      +
      +                        case $ord_var_c == 0x22:
      +                        case $ord_var_c == 0x2F:
      +                        case $ord_var_c == 0x5C:
      +                            $ascii .= '\\'.$var{$c};
      +                            break;
      +
      +                        case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
      +                            $ascii .= $var{$c};
      +                            break;
      +
      +                        case (($ord_var_c & 0xE0) == 0xC0):
      +                            $char = pack('C*', $ord_var_c, ord($var{$c + 1}));
      +                            $c += 1;
      +                            $utf16 = self::utf82utf16($char);
      +                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
      +                            break;
      +
      +                        case (($ord_var_c & 0xF0) == 0xE0):
      +                            $char = pack('C*', $ord_var_c,
      +                                         ord($var{$c + 1}),
      +                                         ord($var{$c + 2}));
      +                            $c += 2;
      +                            $utf16 = self::utf82utf16($char);
      +                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
      +                            break;
      +
      +                        case (($ord_var_c & 0xF8) == 0xF0):
      +                            $char = pack('C*', $ord_var_c,
      +                                         ord($var{$c + 1}),
      +                                         ord($var{$c + 2}),
      +                                         ord($var{$c + 3}));
      +                            $c += 3;
      +                            $utf16 = self::utf82utf16($char);
      +                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
      +                            break;
      +
      +                        case (($ord_var_c & 0xFC) == 0xF8):
      +                            $char = pack('C*', $ord_var_c,
      +                                         ord($var{$c + 1}),
      +                                         ord($var{$c + 2}),
      +                                         ord($var{$c + 3}),
      +                                         ord($var{$c + 4}));
      +                            $c += 4;
      +                            $utf16 = self::utf82utf16($char);
      +                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
      +                            break;
      +
      +                        case (($ord_var_c & 0xFE) == 0xFC):
      +                            $char = pack('C*', $ord_var_c,
      +                                         ord($var{$c + 1}),
      +                                         ord($var{$c + 2}),
      +                                         ord($var{$c + 3}),
      +                                         ord($var{$c + 4}),
      +                                         ord($var{$c + 5}));
      +                            $c += 5;
      +                            $utf16 = self::utf82utf16($char);
      +                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
      +                            break;
      +                    }
      +                }
      +
      +                return '"'.$ascii.'"';
      +
      +            case 'array':
      +                if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) {
      +                    $properties = array_map(array('Typecho_Json', '_name_value'),
      +                                            array_keys($var),
      +                                            array_values($var));
      +
      +                    foreach ($properties as $property) {
      +                        if (self::_is_error($property)) {
      +                            return $property;
      +                        }
      +                    }
      +
      +                    return '{' . join(',', $properties) . '}';
      +                }
      +
      +                // treat it like a regular array
      +                $elements = array_map(array('Typecho_Json', '_encode'), $var);
      +
      +                foreach ($elements as $element) {
      +                    if (self::_is_error($element)) {
      +                        return $element;
      +                    }
      +                }
      +
      +                return '[' . join(',', $elements) . ']';
      +
      +            case 'object':
      +                $vars = get_object_vars($var);
      +
      +                $properties = array_map(array('Typecho_Json', '_name_value'),
      +                                        array_keys($vars),
      +                                        array_values($vars));
      +
      +                foreach ($properties as $property) {
      +                    if (self::_is_error($property)) {
      +                        return $property;
      +                    }
      +                }
      +
      +                return '{' . join(',', $properties) . '}';
      +
      +            default:
      +                return false;
      +        }
      +    }
      +
      +    /**
      +     * 解码json字符串
      +     *
      +     * @access public
      +     * @param string $str 解码字符串
      +     * @return mixed
      +     */
      +    public static function _decode($str)
      +    {
      +        $str = self::_reduce_string($str);
      +
      +        switch (strtolower($str)) {
      +            case 'true':
      +                return true;
      +
      +            case 'false':
      +                return false;
      +
      +            case 'null':
      +                return null;
      +
      +            default:
      +                $m = array();
      +
      +                if (is_numeric($str)) {
      +                    return ((float)$str == (integer)$str)
      +                        ? (integer)$str
      +                        : (float)$str;
      +
      +                } elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) {
      +                    $delim = substr($str, 0, 1);
      +                    $chrs = substr($str, 1, -1);
      +                    $utf8 = '';
      +                    $strlen_chrs = strlen($chrs);
      +
      +                    for ($c = 0; $c < $strlen_chrs; ++$c) {
      +
      +                        $substr_chrs_c_2 = substr($chrs, $c, 2);
      +                        $ord_chrs_c = ord($chrs{$c});
      +
      +                        switch (true) {
      +                            case $substr_chrs_c_2 == '\b':
      +                                $utf8 .= chr(0x08);
      +                                ++$c;
      +                                break;
      +                            case $substr_chrs_c_2 == '\t':
      +                                $utf8 .= chr(0x09);
      +                                ++$c;
      +                                break;
      +                            case $substr_chrs_c_2 == '\n':
      +                                $utf8 .= chr(0x0A);
      +                                ++$c;
      +                                break;
      +                            case $substr_chrs_c_2 == '\f':
      +                                $utf8 .= chr(0x0C);
      +                                ++$c;
      +                                break;
      +                            case $substr_chrs_c_2 == '\r':
      +                                $utf8 .= chr(0x0D);
      +                                ++$c;
      +                                break;
      +
      +                            case $substr_chrs_c_2 == '\\"':
      +                            case $substr_chrs_c_2 == '\\\'':
      +                            case $substr_chrs_c_2 == '\\\\':
      +                            case $substr_chrs_c_2 == '\\/':
      +                                if (($delim == '"' && $substr_chrs_c_2 != '\\\'') ||
      +                                   ($delim == "'" && $substr_chrs_c_2 != '\\"')) {
      +                                    $utf8 .= $chrs{++$c};
      +                                }
      +                                break;
      +
      +                            case preg_match('/\\\u[0-9A-F]{4}/i', substr($chrs, $c, 6)):
      +                                $utf16 = chr(hexdec(substr($chrs, ($c + 2), 2)))
      +                                       . chr(hexdec(substr($chrs, ($c + 4), 2)));
      +                                $utf8 .= self::utf162utf8($utf16);
      +                                $c += 5;
      +                                break;
      +
      +                            case ($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F):
      +                                $utf8 .= $chrs{$c};
      +                                break;
      +
      +                            case ($ord_chrs_c & 0xE0) == 0xC0:
      +                                $utf8 .= substr($chrs, $c, 2);
      +                                ++$c;
      +                                break;
      +
      +                            case ($ord_chrs_c & 0xF0) == 0xE0:
      +                                $utf8 .= substr($chrs, $c, 3);
      +                                $c += 2;
      +                                break;
      +
      +                            case ($ord_chrs_c & 0xF8) == 0xF0:
      +                                $utf8 .= substr($chrs, $c, 4);
      +                                $c += 3;
      +                                break;
      +
      +                            case ($ord_chrs_c & 0xFC) == 0xF8:
      +                                $utf8 .= substr($chrs, $c, 5);
      +                                $c += 4;
      +                                break;
      +
      +                            case ($ord_chrs_c & 0xFE) == 0xFC:
      +                                $utf8 .= substr($chrs, $c, 6);
      +                                $c += 5;
      +                                break;
      +
      +                        }
      +
      +                    }
      +
      +                    return $utf8;
      +
      +                } elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) {
      +                    if ($str {0} == '[') {
      +                        $stk = array(self::SERVICES_JSON_IN_ARR);
      +                        $arr = array();
      +                    } else {
      +                            $stk = array(self::SERVICES_JSON_IN_OBJ);
      +                            $obj = new stdClass();
      +                    }
      +
      +                    array_push($stk, array('what'  => self::SERVICES_JSON_SLICE,
      +                                           'where' => 0,
      +                                           'delim' => false));
      +
      +                    $chrs = substr($str, 1, -1);
      +                    $chrs = self::_reduce_string($chrs);
      +
      +                    if ($chrs == '') {
      +                        if (reset($stk) == self::SERVICES_JSON_IN_ARR) {
      +                            return $arr;
      +
      +                        } else {
      +                            return $obj;
      +
      +                        }
      +                    }
      +
      +                    $strlen_chrs = strlen($chrs);
      +                    for ($c = 0; $c <= $strlen_chrs; ++$c) {
      +
      +                        $top = end($stk);
      +                        $substr_chrs_c_2 = substr($chrs, $c, 2);
      +
      +                        if (($c == $strlen_chrs) || (($chrs {$c} == ',') && ($top['what'] == self::SERVICES_JSON_SLICE))) {
      +                            $slice = substr($chrs, $top['where'], ($c - $top['where']));
      +                            array_push($stk, array('what' => self::SERVICES_JSON_SLICE, 'where' => ($c + 1), 'delim' => false));
      +
      +                            if (reset($stk) == self::SERVICES_JSON_IN_ARR) {
      +                                array_push($arr, self::_decode($slice));
      +
      +                            } elseif (reset($stk) == self::SERVICES_JSON_IN_OBJ) {
      +                                $parts = array();
      +
      +                                if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:\s*(\S.*),?$/Uis', $slice, $parts)) {
      +                                    $key = self::_decode($parts[1]);
      +                                    $val = self::_decode($parts[2]);
      +                                    $obj->$key = $val;
      +                                } elseif (preg_match('/^\s*(\w+)\s*:\s*(\S.*),?$/Uis', $slice, $parts)) {
      +                                    $key = $parts[1];
      +                                    $val = self::_decode($parts[2]);
      +                                    $obj->$key = $val;
      +                                }
      +
      +                            }
      +
      +                        } elseif ((($chrs {$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != self::SERVICES_JSON_IN_STR)) {
      +                            array_push($stk, array('what' => self::SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c}));
      +
      +                        } elseif (($chrs {$c} == $top['delim']) &&
      +                                 ($top['what'] == self::SERVICES_JSON_IN_STR) &&
      +                                 ((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) {
      +                            array_pop($stk);
      +
      +                        } elseif (($chrs {$c} == '[') &&
      +                                 in_array($top['what'], array(self::SERVICES_JSON_SLICE, self::SERVICES_JSON_IN_ARR, self::SERVICES_JSON_IN_OBJ))) {
      +                            array_push($stk, array('what' => self::SERVICES_JSON_IN_ARR, 'where' => $c, 'delim' => false));
      +                        } elseif (($chrs {$c} == ']') && ($top['what'] == self::SERVICES_JSON_IN_ARR)) {
      +                            array_pop($stk);
      +                        } elseif (($chrs {$c} == '{') &&
      +                                 in_array($top['what'], array(self::SERVICES_JSON_SLICE, self::SERVICES_JSON_IN_ARR, self::SERVICES_JSON_IN_OBJ))) {
      +                            array_push($stk, array('what' => self::SERVICES_JSON_IN_OBJ, 'where' => $c, 'delim' => false));
      +                        } elseif (($chrs {$c} == '}') && ($top['what'] == self::SERVICES_JSON_IN_OBJ)) {
      +                            array_pop($stk);
      +                        } elseif (($substr_chrs_c_2 == '/*') &&
      +                                 in_array($top['what'], array(self::SERVICES_JSON_SLICE, self::SERVICES_JSON_IN_ARR, self::SERVICES_JSON_IN_OBJ))) {
      +                            array_push($stk, array('what' => self::SERVICES_JSON_IN_CMT, 'where' => $c, 'delim' => false));
      +                            $c++;
      +                        } elseif (($substr_chrs_c_2 == '*/') && ($top['what'] == self::SERVICES_JSON_IN_CMT)) {
      +                            array_pop($stk);
      +                            $c++;
      +                            for ($i = $top['where']; $i <= $c; ++$i)
      +                                $chrs = substr_replace($chrs, ' ', $i, 1);
      +                        }
      +
      +                    }
      +
      +                    if (reset($stk) == self::SERVICES_JSON_IN_ARR) {
      +                        return $arr;
      +
      +                    } elseif (reset($stk) == self::SERVICES_JSON_IN_OBJ) {
      +                        return $obj;
      +
      +                    }
      +
      +                }
      +        }
      +    }
      +
      +    /**
      +     * 对配对值编码
      +     *
      +     * @access public
      +     * @param string $name 名称
      +     * @param mixed $value 值
      +     * @return string
      +     */
      +    public static function _name_value($name, $value)
      +    {
      +        $encoded_value = self::_encode($value);
      +
      +        if (self::_is_error($encoded_value)) {
      +            return $encoded_value;
      +        }
      +
      +        return self::_encode(strval($name)) . ':' . $encoded_value;
      +    }
      +
      +    /**
      +     * 对变量进行json编码
      +     *
      +     * @access public
      +     * @param mixed $var 需要处理的对象
      +     * @return string
      +     */
      +    public static function encode($var)
      +    {
      +        if (function_exists('json_encode')) {
      +            /** from php 5.1 */
      +            return json_encode($var);
      +        } else {
      +            return self::_encode($var);
      +        }
      +    }
      +
      +    /**
      +     * 对字符串进行json解码
      +     *
      +     * @access public
      +     * @param string $var 需要解码的字符串
      +     * @param boolean $assoc 是否强制解释为数组
      +     * @return mixed
      +     */
      +    public static function decode($var, $assoc = false)
      +    {
      +        if (function_exists('json_decode')) {
      +            /** from php 5.1 */
      +            $result = json_decode($var);
      +        } else {
      +            $result = self::_decode($var);
      +        }
      +
      +        if ($assoc && is_object($result)) {
      +            return (array) $result;
      +        } else if (!$assoc && is_array($result)) {
      +            return (object) $result;
      +        }
      +
      +        return $result;
      +    }
      +}
      diff --git a/var/Typecho/Plugin.php b/var/Typecho/Plugin.php
      new file mode 100644
      index 00000000..6025c187
      --- /dev/null
      +++ b/var/Typecho/Plugin.php
      @@ -0,0 +1,466 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/**
      + * 插件处理类
      + *
      + * @category typecho
      + * @package Plugin
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Typecho_Plugin
      +{
      +    /**
      +     * 所有激活的插件
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private static $_plugins = array();
      +
      +    /**
      +     * 已经加载的文件
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private static $_required = array();
      +
      +    /**
      +     * 实例化的插件对象
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private static $_instances;
      +
      +    /**
      +     * 临时存储变量
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private static $_tmp = array();
      +
      +    /**
      +     * 唯一句柄
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_handle;
      +
      +    /**
      +     * 组件
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_component;
      +
      +    /**
      +     * 是否触发插件的信号
      +     *
      +     * @access private
      +     * @var boolean
      +     */
      +    private $_signal;
      +
      +    /**
      +     * 插件初始化
      +     *
      +     * @access public
      +     * @param string $handle 插件
      +     * @return void
      +     */
      +    public function __construct($handle)
      +    {
      +        /** 初始化变量 */
      +        $this->_handle = $handle;
      +    }
      +
      +    /**
      +     * 插件handle比对
      +     *
      +     * @access private
      +     * @param array $pluginHandles
      +     * @param array $otherPluginHandles
      +     * @return void
      +     */
      +    private static function pluginHandlesDiff(array $pluginHandles, array $otherPluginHandles)
      +    {
      +        foreach ($otherPluginHandles as $handle) {
      +            while (false !== ($index = array_search($handle, $pluginHandles))) {
      +                unset($pluginHandles[$index]);
      +            }
      +        }
      +
      +        return $pluginHandles;
      +    }
      +
      +    /**
      +     * 插件初始化
      +     *
      +     * @access public
      +     * @param array $plugins 插件列表
      +     * @param mixed $callback 获取插件系统变量的代理函数
      +     * @return void
      +     */
      +    public static function init(array $plugins)
      +    {
      +        $plugins['activated'] = array_key_exists('activated', $plugins) ? $plugins['activated'] : array();
      +        $plugins['handles'] = array_key_exists('handles', $plugins) ? $plugins['handles'] : array();
      +
      +        /** 初始化变量 */
      +        self::$_plugins = $plugins;
      +    }
      +
      +    /**
      +     * 获取实例化插件对象
      +     *
      +     * @access public
      +     * @return Typecho_Plugin
      +     */
      +    public static function factory($handle)
      +    {
      +        return isset(self::$_instances[$handle]) ? self::$_instances[$handle] :
      +        (self::$_instances[$handle] = new Typecho_Plugin($handle));
      +    }
      +
      +    /**
      +     * 激活插件
      +     *
      +     * @access public
      +     * @param string $pluginName 插件名称
      +     * @return void
      +     */
      +    public static function activate($pluginName)
      +    {
      +        self::$_plugins['activated'][$pluginName] = self::$_tmp;
      +        self::$_tmp = array();
      +    }
      +
      +    /**
      +     * 禁用插件
      +     *
      +     * @access public
      +     * @param string $pluginName 插件名称
      +     * @return void
      +     */
      +    public static function deactivate($pluginName)
      +    {
      +        /** 去掉所有相关回调函数 */
      +        if (isset(self::$_plugins['activated'][$pluginName]['handles']) && is_array(self::$_plugins['activated'][$pluginName]['handles'])) {
      +            foreach (self::$_plugins['activated'][$pluginName]['handles'] as $handle => $handles) {
      +                self::$_plugins['handles'][$handle] = self::pluginHandlesDiff(
      +                empty(self::$_plugins['handles'][$handle]) ? array() : self::$_plugins['handles'][$handle],
      +                empty($handles) ? array() : $handles);
      +                if (empty(self::$_plugins['handles'][$handle])) {
      +                    unset(self::$_plugins['handles'][$handle]);
      +                }
      +            }
      +        }
      +
      +        /** 禁用当前插件 */
      +        unset(self::$_plugins['activated'][$pluginName]);
      +    }
      +
      +    /**
      +     * 导出当前插件设置
      +     *
      +     * @access public
      +     * @return array
      +     */
      +    public static function export()
      +    {
      +        return self::$_plugins;
      +    }
      +
      +    /**
      +     * 获取插件文件的头信息
      +     *
      +     * @access public
      +     * @param string $pluginFile 插件文件路径
      +     * @return void
      +     */
      +    public static function parseInfo($pluginFile)
      +    {
      +        $tokens = token_get_all(file_get_contents($pluginFile));
      +        $isDoc = false;
      +        $isFunction = false;
      +        $isClass = false;
      +        $isInClass = false;
      +        $isInFunction = false;
      +        $isDefined = false;
      +        $current = NULL;
      +
      +        /** 初始信息 */
      +        $info = array(
      +            'description'       => '',
      +            'title'             => '',
      +            'author'            => '',
      +            'homepage'          => '',
      +            'version'           => '',
      +            'dependence'        => '',
      +            'activate'          => false,
      +            'deactivate'        => false,
      +            'config'            => false,
      +            'personalConfig'    => false
      +        );
      +
      +        $map = array(
      +            'package'   =>  'title',
      +            'author'    =>  'author',
      +            'link'      =>  'homepage',
      +            'dependence'=>  'dependence',
      +            'version'   =>  'version'
      +        );
      +
      +        foreach ($tokens as $token) {
      +            /** 获取doc comment */
      +            if (!$isDoc && is_array($token) && T_DOC_COMMENT == $token[0]) {
      +
      +                /** 分行读取 */
      +                $described = false;
      +                $lines = preg_split("(\r|\n)", $token[1]);
      +                foreach ($lines as $line) {
      +                    $line = trim($line);
      +                    if (!empty($line) && '*' == $line[0]) {
      +                        $line = trim(substr($line, 1));
      +                        if (!$described && !empty($line) && '@' == $line[0]) {
      +                            $described = true;
      +                        }
      +
      +                        if (!$described && !empty($line)) {
      +                            $info['description'] .= $line . "\n";
      +                        } else if ($described && !empty($line) && '@' == $line[0]) {
      +                            $info['description'] = trim($info['description']);
      +                            $line = trim(substr($line, 1));
      +                            $args = explode(' ', $line);
      +                            $key = array_shift($args);
      +
      +                            if (isset($map[$key])) {
      +                                $info[$map[$key]] = trim(implode(' ', $args));
      +                            }
      +                        }
      +                    }
      +                }
      +
      +                $isDoc = true;
      +            }
      +
      +            if (is_array($token)) {
      +                switch ($token[0]) {
      +                    case T_FUNCTION:
      +                        $isFunction = true;
      +                        break;
      +                    case T_IMPLEMENTS:
      +                        $isClass = true;
      +                        break;
      +                    case T_WHITESPACE:
      +                    case T_COMMENT:
      +                    case T_DOC_COMMENT:
      +                        break;
      +                    case T_STRING:
      +                        $string = strtolower($token[1]);
      +                        switch ($string) {
      +                            case 'typecho_plugin_interface':
      +                                $isInClass = $isClass;
      +                                break;
      +                            case 'activate':
      +                            case 'deactivate':
      +                            case 'config':
      +                            case 'personalconfig':
      +                                if ($isFunction) {
      +                                    $current = ('personalconfig' == $string ? 'personalConfig' : $string);
      +                                }
      +                                break;
      +                            default:
      +                                if (!empty($current) && $isInFunction && $isInClass) {
      +                                    $info[$current] = true;
      +                                }
      +                                break;
      +                        }
      +                        break;
      +                    default:
      +                        if (!empty($current) && $isInFunction && $isInClass) {
      +                            $info[$current] = true;
      +                        }
      +                        break;
      +                }
      +            } else {
      +                $token = strtolower($token);
      +                switch ($token) {
      +                    case '{':
      +                        if ($isDefined) {
      +                            $isInFunction = true;
      +                        }
      +                        break;
      +                    case '(':
      +                        if ($isFunction && !$isDefined) {
      +                            $isDefined = true;
      +                        }
      +                        break;
      +                    case '}':
      +                    case ';':
      +                        $isDefined = false;
      +                        $isFunction = false;
      +                        $isInFunction = false;
      +                        $current = NULL;
      +                        break;
      +                    default:
      +                        if (!empty($current) && $isInFunction && $isInClass) {
      +                            $info[$current] = true;
      +                        }
      +                        break;
      +                }
      +            }
      +        }
      +
      +        return $info;
      +    }
      +
      +    /**
      +     * 获取插件路径和类名
      +     * 返回值为一个数组
      +     * 第一项为插件路径,第二项为类名
      +     *
      +     * @access public
      +     * @param string $pluginName 插件名
      +     * @param string $path 插件目录
      +     * @return array
      +     */
      +    public static function portal($pluginName, $path)
      +    {
      +        switch (true) {
      +            case file_exists($pluginFileName = $path . '/' . $pluginName . '/Plugin.php'):
      +                $className = $pluginName . '_Plugin';
      +                break;
      +            case file_exists($pluginFileName = $path . '/' . $pluginName . '.php'):
      +                $className = $pluginName;
      +                break;
      +            default:
      +                throw new Typecho_Plugin_Exception('Missing Plugin ' . $pluginName, 404);
      +        }
      +
      +        return array($pluginFileName, $className);
      +    }
      +
      +    /**
      +     * 版本依赖性检测
      +     *
      +     * @access public
      +     * @param string $version 程序版本
      +     * @param string $versionRange 依赖的版本规则
      +     * @return boolean
      +     */
      +    public static function checkDependence($version, $versionRange)
      +    {
      +        //如果没有检测规则,直接掠过
      +        if (empty($versionRange)) {
      +            return true;
      +        }
      +
      +        $items = array_map('trim', explode('-', $versionRange));
      +        if (count($items) < 2) {
      +            $items[1] = $items[0];
      +        }
      +
      +        list ($minVersion, $maxVersion) = $items;
      +
      +        //对*和?的支持,4个9是最大版本
      +        $minVersion = str_replace(array('*', '?'), array('9999', '9'), $minVersion);
      +        $maxVersion = str_replace(array('*', '?'), array('9999', '9'), $maxVersion);
      +
      +        if (version_compare($version, $minVersion, '>=') && version_compare($version, $maxVersion, '<=')) {
      +            return true;
      +        }
      +
      +        return false;
      +    }
      +
      +    /**
      +     * 插件调用后的触发器
      +     *
      +     * @access public
      +     * @param boolean $signal 触发器
      +     * @return Typecho_Plugin
      +     */
      +    public function trigger(&$signal)
      +    {
      +        $signal = false;
      +        $this->_signal = &$signal;
      +        return $this;
      +    }
      +
      +    /**
      +     * 判断插件是否存在
      +     *
      +     * @access public
      +     * @param string $pluginName 插件名称
      +     * @return void
      +     */
      +    public function exists($pluginName) {
      +        return array_search($pluginName, self::$_plugins['activated']);
      +    }
      +
      +    /**
      +     * 设置回调函数
      +     *
      +     * @access public
      +     * @param string $component 当前组件
      +     * @param mixed $value 回调函数
      +     * @return void
      +     */
      +    public function __set($component, $value)
      +    {
      +        $component = $this->_handle . ':' . $component;
      +        self::$_plugins['handles'][$component][] = $value;
      +        self::$_tmp['handles'][$component][] = $value;
      +    }
      +
      +    /**
      +     * 通过魔术函数设置当前组件位置
      +     *
      +     * @access public
      +     * @param string $component 当前组件
      +     * @return Typecho_Plugin
      +     */
      +    public function __get($component)
      +    {
      +        $this->_component = $component;
      +        return $this;
      +    }
      +
      +    /**
      +     * 回调处理函数
      +     *
      +     * @access public
      +     * @param string $component 当前组件
      +     * @param string $args 参数
      +     * @return mixed
      +     */
      +    public function __call($component, $args)
      +    {
      +        $component = $this->_handle . ':' . $component;
      +        $last = count($args);
      +        $args[$last] = $last > 0 ? $args[0] : false;
      +
      +        if (isset(self::$_plugins['handles'][$component])) {
      +            $args[$last] = NULL;
      +            $this->_signal = true;
      +            foreach (self::$_plugins['handles'][$component] as $callback) {
      +                $args[$last] = call_user_func_array($callback, $args);
      +            }
      +        }
      +
      +        return $args[$last];
      +    }
      +}
      diff --git a/var/Typecho/Plugin/Exception.php b/var/Typecho/Plugin/Exception.php
      new file mode 100644
      index 00000000..3a430ddc
      --- /dev/null
      +++ b/var/Typecho/Plugin/Exception.php
      @@ -0,0 +1,19 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: WidgetException.php 46 2008-03-10 13:59:36Z magike.net $
      + */
      +
      +/** 异常基类 */
      +require_once 'Typecho/Exception.php';
      +
      +/**
      + * 插件异常
      + *
      + * @package Plugin
      + */
      +class Typecho_Plugin_Exception extends Typecho_Exception
      +{}
      diff --git a/var/Typecho/Plugin/Interface.php b/var/Typecho/Plugin/Interface.php
      new file mode 100644
      index 00000000..dab400ea
      --- /dev/null
      +++ b/var/Typecho/Plugin/Interface.php
      @@ -0,0 +1,58 @@
      +<?php
      +/**
      + * 插件接口
      + *
      + * @category typecho
      + * @package Plugin
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 插件接口
      + *
      + * @package Plugin
      + * @abstract
      + */
      +interface Typecho_Plugin_Interface
      +{
      +    /**
      +     * 激活插件方法,如果激活失败,直接抛出异常
      +     *
      +     * @static
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function activate();
      +
      +    /**
      +     * 禁用插件方法,如果禁用失败,直接抛出异常
      +     *
      +     * @static
      +     * @access public
      +     * @return void
      +     * @throws Typecho_Plugin_Exception
      +     */
      +    public static function deactivate();
      +
      +    /**
      +     * 获取插件配置面板
      +     *
      +     * @static
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form 配置面板
      +     * @return void
      +     */
      +    public static function config(Typecho_Widget_Helper_Form $form);
      +
      +    /**
      +     * 个人用户的配置面板
      +     *
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form $form
      +     * @return void
      +     */
      +    public static function personalConfig(Typecho_Widget_Helper_Form $form);
      +}
      diff --git a/var/Typecho/Request.php b/var/Typecho/Request.php
      new file mode 100644
      index 00000000..0f26284e
      --- /dev/null
      +++ b/var/Typecho/Request.php
      @@ -0,0 +1,704 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/**
      + * 服务器请求处理类
      + *
      + * TODO getSiteUrl
      + * @package Request
      + */
      +class Typecho_Request
      +{
      +    /**
      +     * 内部参数
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_params = array();
      +
      +    /**
      +     * 路径信息
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_pathInfo = NULL;
      +
      +    /**
      +     * 服务端参数
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_server = array();
      +
      +    /**
      +     * 客户端ip地址
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_ip = NULL;
      +
      +    /**
      +     * 客户端字符串
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_agent = NULL;
      +
      +    /**
      +     * 来源页
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_referer = NULL;
      +
      +    /**
      +     * 单例句柄
      +     *
      +     * @access private
      +     * @var Typecho_Request
      +     */
      +    private static $_instance = NULL;
      +
      +    /**
      +     * 当前过滤器
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_filter = array();
      +
      +    /**
      +     * 支持的过滤器列表
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private static $_supportFilters = array(
      +        'int'       =>  'intval',
      +        'integer'   =>  'intval',
      +        'search'    =>  array('Typecho_Common', 'filterSearchQuery'),
      +        'xss'       =>  array('Typecho_Common', 'removeXSS'),
      +        'url'       =>  array('Typecho_Common', 'safeUrl')
      +    );
      +
      +    /**
      +     * 获取单例句柄
      +     *
      +     * @access public
      +     * @return Typecho_Request
      +     */
      +    public static function getInstance()
      +    {
      +        if (NULL === self::$_instance) {
      +            self::$_instance = new Typecho_Request();
      +        }
      +
      +        return self::$_instance;
      +    }
      +
      +    /**
      +     * 应用过滤器
      +     *
      +     * @access private
      +     * @param mixed $value
      +     * @return void
      +     */
      +    private function _applyFilter($value)
      +    {
      +        if ($this->_filter) {
      +            foreach ($this->_filter as $filter) {
      +                $value = is_array($value) ? array_map($filter, $value) :
      +                call_user_func($filter, $value);
      +            }
      +        }
      +
      +        $this->_filter = array();
      +        return $value;
      +    }
      +
      +    /**
      +     * 设置过滤器
      +     *
      +     * @access public
      +     * @param mixed $filter 过滤器名称
      +     * @return Typecho_Widget_Request
      +     */
      +    public function filter()
      +    {
      +        $filters = func_get_args();
      +
      +        foreach ($filters as $filter) {
      +            $this->_filter[] = is_string($filter) && isset(self::$_supportFilters[$filter])
      +            ? self::$_supportFilters[$filter] : $filter;
      +        }
      +
      +        return $this;
      +    }
      +
      +    /**
      +     * 获取实际传递参数(magic)
      +     *
      +     * @access public
      +     * @param string $key 指定参数
      +     * @return void
      +     */
      +    public function __get($key)
      +    {
      +        return $this->get($key);
      +    }
      +
      +    /**
      +     * 判断参数是否存在
      +     *
      +     * @access public
      +     * @param string $key 指定参数
      +     * @return void
      +     */
      +    public function __isset($key)
      +    {
      +        return isset($_GET[$key])
      +        || isset($_POST[$key])
      +        || isset($_COOKIE[$key])
      +        || $this->isSetParam($key);
      +    }
      +
      +    /**
      +     * 获取实际传递参数
      +     *
      +     * @access public
      +     * @param string $key 指定参数
      +     * @param mixed $default 默认参数 (default: NULL)
      +     * @return void
      +     */
      +    public function get($key, $default = NULL)
      +    {
      +        $value = $default;
      +
      +        switch (true) {
      +            case isset($this->_params[$key]):
      +                $value = $this->_params[$key];
      +                break;
      +            case isset($_GET[$key]):
      +                $value = $_GET[$key];
      +                break;
      +            case isset($_POST[$key]):
      +                $value = $_POST[$key];
      +                break;
      +            case isset($_COOKIE[$key]):
      +                $value = $_COOKIE[$key];
      +                break;
      +            default:
      +                $value = $default;
      +                break;
      +        }
      +
      +        $value = is_array($value) || strlen($value) > 0 ? $value : $default;
      +        return $this->_filter ? $this->_applyFilter($value) : $value;
      +    }
      +
      +    /**
      +     * 从参数列表指定的值中获取http传递参数
      +     *
      +     * @access public
      +     * @param mixed $parameter 指定的参数
      +     * @return array
      +     */
      +    public function from($params)
      +    {
      +        $result = array();
      +        $args = is_array($params) ? $params : func_get_args();
      +
      +        foreach ($args as $arg) {
      +            $result[$arg] = $this->get($arg);
      +        }
      +
      +        return $result;
      +    }
      +
      +    /**
      +     * 获取指定的http传递参数
      +     *
      +     * @access public
      +     * @param string $key 指定的参数
      +     * @param mixed $default 默认的参数
      +     * @return mixed
      +     */
      +    public function getParam($key, $default = NULL)
      +    {
      +        $value = isset($this->_params[$key]) ? $this->_params[$key] : $default;
      +        $value = is_array($value) || strlen($value) > 0 ? $value : $default;
      +        return $this->_filter ? $this->_applyFilter($value) : $value;
      +    }
      +
      +    /**
      +     * 设置http传递参数
      +     *
      +     * @access public
      +     * @param string $name 指定的参数
      +     * @param mixed $value 参数值
      +     * @return void
      +     */
      +    public function setParam($name, $value)
      +    {
      +        $this->_params[$name] = $value;
      +    }
      +
      +    /**
      +     * 删除参数
      +     *
      +     * @access public
      +     * @param string $name 指定的参数
      +     * @return void
      +     */
      +    public function unSetParam($name)
      +    {
      +        unset($this->_params[$name]);
      +    }
      +
      +    /**
      +     * 参数是否存在
      +     *
      +     * @access public
      +     * @param string $key 指定的参数
      +     * @return boolean
      +     */
      +    public function isSetParam($key)
      +    {
      +        return isset($this->_params[$key]);
      +    }
      +
      +    /**
      +     * 设置多个参数
      +     *
      +     * @access public
      +     * @param mixed $params 参数列表
      +     * @return void
      +     */
      +    public function setParams($params)
      +    {
      +        //处理字符串
      +        if (!is_array($params)) {
      +            parse_str($params, $out);
      +            $params = $out;
      +        }
      +
      +        $this->_params = array_merge($this->_params, $params);
      +    }
      +
      +    /**
      +     * 根据当前uri构造指定参数的uri
      +     *
      +     * @access public
      +     * @param mixed $parameter 指定的参数
      +     * @return string
      +     */
      +    public function makeUriByRequest($parameter = NULL)
      +    {
      +        /** 初始化地址 */
      +        $scheme = $this->isSecure() ? 'https' : 'http';
      +        $requestUri = strtolower($scheme) . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
      +        $parts = parse_url($requestUri);
      +
      +        /** 初始化参数 */
      +        if (is_string($parameter)) {
      +            parse_str($parameter, $args);
      +        } else if (is_array($parameter)) {
      +            $args = $parameter;
      +        } else {
      +            return $requestUri;
      +        }
      +
      +        /** 构造query */
      +        if (isset($parts['query'])) {
      +            parse_str($parts['query'], $currentArgs);
      +            $args = array_merge($currentArgs, $args);
      +        }
      +        $parts['query'] = http_build_query($args);
      +
      +        /** Typecho_Common */
      +        require_once 'Typecho/Common.php';
      +
      +        /** 返回地址 */
      +        return Typecho_Common::buildUrl($parts);
      +    }
      +
      +    /**
      +     * 获取当前pathinfo
      +     *
      +     * @access public
      +     * @param string $inputEncoding 输入编码
      +     * @param string $outputEncoding 输出编码
      +     * @return string
      +     */
      +    public function getPathInfo($inputEncoding = NULL, $outputEncoding = NULL)
      +    {
      +        /** 缓存信息 */
      +        if (NULL !== $this->_pathInfo) {
      +            return $this->_pathInfo;
      +        }
      +
      +        //参考Zend Framework对pahtinfo的处理, 更好的兼容性
      +        $pathInfo = NULL;
      +
      +        //处理requestUri
      +        $requestUri = NULL;
      +
      +        if (isset($_SERVER['HTTP_X_REWRITE_URL'])) { // check this first so IIS will catch
      +            $requestUri = $_SERVER['HTTP_X_REWRITE_URL'];
      +        } elseif (
      +            // IIS7 with URL Rewrite: make sure we get the unencoded url (double slash problem)
      +            isset($_SERVER['IIS_WasUrlRewritten'])
      +            && $_SERVER['IIS_WasUrlRewritten'] == '1'
      +            && isset($_SERVER['UNENCODED_URL'])
      +            && $_SERVER['UNENCODED_URL'] != ''
      +            ) {
      +            $requestUri = $_SERVER['UNENCODED_URL'];
      +        } elseif (isset($_SERVER['REQUEST_URI'])) {
      +            $requestUri = $_SERVER['REQUEST_URI'];
      +            if (isset($_SERVER['HTTP_HOST']) && strstr($requestUri, $_SERVER['HTTP_HOST'])) {
      +                $parts       = @parse_url($requestUri);
      +
      +                if (false !== $parts) {
      +                    $requestUri  = (empty($parts['path']) ? '' : $parts['path'])
      +                                 . ((empty($parts['query'])) ? '' : '?' . $parts['query']);
      +                }
      +            }
      +        } elseif (isset($_SERVER['ORIG_PATH_INFO'])) { // IIS 5.0, PHP as CGI
      +            $requestUri = $_SERVER['ORIG_PATH_INFO'];
      +            if (!empty($_SERVER['QUERY_STRING'])) {
      +                $requestUri .= '?' . $_SERVER['QUERY_STRING'];
      +            }
      +        } else {
      +            return $this->_pathInfo = '/';
      +        }
      +
      +        //处理baseUrl
      +        $filename = (isset($_SERVER['SCRIPT_FILENAME'])) ? basename($_SERVER['SCRIPT_FILENAME']) : '';
      +
      +        if (isset($_SERVER['SCRIPT_NAME']) && basename($_SERVER['SCRIPT_NAME']) === $filename) {
      +            $baseUrl = $_SERVER['SCRIPT_NAME'];
      +        } elseif (isset($_SERVER['PHP_SELF']) && basename($_SERVER['PHP_SELF']) === $filename) {
      +            $baseUrl = $_SERVER['PHP_SELF'];
      +        } elseif (isset($_SERVER['ORIG_SCRIPT_NAME']) && basename($_SERVER['ORIG_SCRIPT_NAME']) === $filename) {
      +            $baseUrl = $_SERVER['ORIG_SCRIPT_NAME']; // 1and1 shared hosting compatibility
      +        } else {
      +            // Backtrack up the script_filename to find the portion matching
      +            // php_self
      +            $path    = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : '';
      +            $file    = isset($_SERVER['SCRIPT_FILENAME']) ? $_SERVER['SCRIPT_FILENAME'] : '';
      +            $segs    = explode('/', trim($file, '/'));
      +            $segs    = array_reverse($segs);
      +            $index   = 0;
      +            $last    = count($segs);
      +            $baseUrl = '';
      +            do {
      +                $seg     = $segs[$index];
      +                $baseUrl = '/' . $seg . $baseUrl;
      +                ++$index;
      +            } while (($last > $index) && (false !== ($pos = strpos($path, $baseUrl))) && (0 != $pos));
      +        }
      +
      +        // Does the baseUrl have anything in common with the request_uri?
      +        $finalBaseUrl = NULL;
      +
      +        if (0 === strpos($requestUri, $baseUrl)) {
      +            // full $baseUrl matches
      +            $finalBaseUrl = $baseUrl;
      +        } else if (0 === strpos($requestUri, dirname($baseUrl))) {
      +            // directory portion of $baseUrl matches
      +            $finalBaseUrl = rtrim(dirname($baseUrl), '/');
      +        } else if (!strpos($requestUri, basename($baseUrl))) {
      +            // no match whatsoever; set it blank
      +            $finalBaseUrl = '';
      +        } else if ((strlen($requestUri) >= strlen($baseUrl))
      +            && ((false !== ($pos = strpos($requestUri, $baseUrl))) && ($pos !== 0)))
      +        {
      +            // If using mod_rewrite or ISAPI_Rewrite strip the script filename
      +            // out of baseUrl. $pos !== 0 makes sure it is not matching a value
      +            // from PATH_INFO or QUERY_STRING
      +            $baseUrl = substr($requestUri, 0, $pos + strlen($baseUrl));
      +        }
      +
      +        $finalBaseUrl = (NULL === $finalBaseUrl) ? rtrim($baseUrl, '/') : $finalBaseUrl;
      +
      +        // Remove the query string from REQUEST_URI
      +        if ($pos = strpos($requestUri, '?')) {
      +            $requestUri = substr($requestUri, 0, $pos);
      +        }
      +
      +        if ((NULL !== $finalBaseUrl)
      +            && (false === ($pathInfo = substr($requestUri, strlen($finalBaseUrl)))))
      +        {
      +            // If substr() returns false then PATH_INFO is set to an empty string
      +            $pathInfo = '/';
      +        } elseif (NULL === $finalBaseUrl) {
      +            $pathInfo = $requestUri;
      +        }
      +
      +        if (!empty($pathInfo)) {
      +            //针对iis的utf8编码做强制转换
      +            //参考http://docs.moodle.org/ja/%E5%A4%9A%E8%A8%80%E8%AA%9E%E5%AF%BE%E5%BF%9C%EF%BC%9A%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AE%E8%A8%AD%E5%AE%9A
      +            if (!empty($inputEncoding) && !empty($outputEncoding) &&
      +            (stripos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS') !== false
      +            || stripos($_SERVER['SERVER_SOFTWARE'], 'ExpressionDevServer') !== false)) {
      +                if (function_exists('mb_convert_encoding')) {
      +                    $pathInfo = mb_convert_encoding($pathInfo, $outputEncoding, $inputEncoding);
      +                } else if (function_exists('iconv')) {
      +                    $pathInfo = iconv($pathInfoEncoding, $outputEncoding, $pathInfo);
      +                }
      +            }
      +        } else {
      +            $pathInfo = '/';
      +        }
      +
      +        // fix issue 456
      +        return ($this->_pathInfo = '/' . ltrim(urldecode($pathInfo), '/'));
      +    }
      +
      +    /**
      +     * 设置服务端参数
      +     *
      +     * @access public
      +     * @param string $name 参数名称
      +     * @param mixed $value 参数值
      +     * @return void
      +     */
      +    public function setServer($name, $value = NULL)
      +    {
      +        if (NULL == $value) {
      +            if (isset($_SERVER[$name])) {
      +                $value = $_SERVER[$name];
      +            } else if (isset($_ENV[$name])) {
      +                $value = $_ENV[$name];
      +            }
      +        }
      +
      +        $this->_server[$name] = $value;
      +    }
      +
      +    /**
      +     * 获取环境变量
      +     *
      +     * @access public
      +     * @param string $name 获取环境变量名
      +     * @return string
      +     */
      +    public function getServer($name)
      +    {
      +        if (!isset($this->_server[$name])) {
      +            $this->setServer($name);
      +        }
      +
      +        return $this->_server[$name];
      +    }
      +
      +    /**
      +     * 设置ip地址
      +     *
      +     * @access public
      +     * @param unknown $ip
      +     * @return unknown
      +     */
      +    public function setIp($ip = NULL)
      +    {
      +        switch (true) {
      +            case NULL !== $this->getServer('HTTP_X_FORWARDED_FOR'):
      +                list($this->_ip) = array_map('trim', explode(',', $this->getServer('HTTP_X_FORWARDED_FOR')));
      +                return;
      +            case NULL !== $this->getServer('HTTP_CLIENT_IP'):
      +                $this->_ip = $this->getServer('HTTP_CLIENT_IP');
      +                return;
      +            case NULL !== $this->getServer('REMOTE_ADDR'):
      +                $this->_ip = $this->getServer('REMOTE_ADDR');
      +                return;
      +            default:
      +                break;
      +        }
      +
      +        $this->_ip = 'unknown';
      +    }
      +
      +    /**
      +     * 获取ip地址
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function getIp()
      +    {
      +        if (NULL === $this->_ip) {
      +            $this->setIp();
      +        }
      +
      +        return $this->_ip;
      +    }
      +
      +    /**
      +     * 设置客户端
      +     *
      +     * @access public
      +     * @param string $agent 客户端字符串
      +     * @return void
      +     */
      +    public function setAgent($agent = NULL)
      +    {
      +        $this->_agent = (NULL === $agent) ? $this->getServer('HTTP_USER_AGENT') : $agent;
      +    }
      +
      +    /**
      +     * 获取客户端
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function getAgent()
      +    {
      +        if (NULL === $this->_agent) {
      +            $this->setAgent();
      +        }
      +
      +        return $this->_agent;
      +    }
      +
      +    /**
      +     * 设置来源页
      +     *
      +     * @access public
      +     * @param string $referer 客户端字符串
      +     * @return void
      +     */
      +    public function setReferer($referer = NULL)
      +    {
      +        $this->_referer = (NULL === $referer) ? $this->getServer('HTTP_REFERER') : $referer;
      +    }
      +
      +    /**
      +     * 获取客户端
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function getReferer()
      +    {
      +        if (NULL === $this->_referer) {
      +            $this->setReferer();
      +        }
      +
      +        return $this->_referer;
      +    }
      +
      +    /**
      +     * 判断是否为get方法
      +     *
      +     * @access public
      +     * @return boolean
      +     */
      +    public function isGet()
      +    {
      +        return 'GET' == $this->getServer('REQUEST_METHOD');
      +    }
      +
      +    /**
      +     * 判断是否为post方法
      +     *
      +     * @access public
      +     * @return boolean
      +     */
      +    public function isPost()
      +    {
      +        return 'POST' == $this->getServer('REQUEST_METHOD');
      +    }
      +
      +    /**
      +     * 判断是否为put方法
      +     *
      +     * @access public
      +     * @return boolean
      +     */
      +    public function isPut()
      +    {
      +        return 'PUT' == $this->getServer('REQUEST_METHOD');
      +    }
      +
      +    /**
      +     * 判断是否为https
      +     *
      +     * @access public
      +     * @return boolean
      +     */
      +    public function isSecure()
      +    {
      +        return 'on' == $this->getServer('HTTPS') || 443 == $this->getServer('SERVER_PORT');
      +    }
      +
      +    /**
      +     * 判断是否为ajax
      +     *
      +     * @access public
      +     * @return boolean
      +     */
      +    public function isAjax()
      +    {
      +        return 'XMLHttpRequest' == $this->getServer('HTTP_X_REQUESTED_WITH');
      +    }
      +
      +    /**
      +     * 判断是否为flash
      +     *
      +     * @access public
      +     * @return boolean
      +     */
      +    public function isFlash()
      +    {
      +        return 'Shockwave Flash' == $this->getServer('USER_AGENT');
      +    }
      +
      +    /**
      +     * 判断输入是否满足要求
      +     *
      +     * @access public
      +     * @param mixed $query 条件
      +     * @return boolean
      +     */
      +    public function is($query)
      +    {
      +        $validated = false;
      +
      +        /** 解析串 */
      +        if (is_string($query)) {
      +            parse_str($query, $params);
      +        } else if (is_array($query)) {
      +            $params = $query;
      +        }
      +
      +        /** 验证串 */
      +        if ($params) {
      +            $validated = true;
      +            foreach ($params as $key => $val) {
      +                if (empty($val)) {
      +                    $validated = $this->__isSet($key);
      +                } else {
      +                    $validated = ($this->get($key) == $val);
      +                }
      +
      +                if (!$validated) {
      +                    break;
      +                }
      +            }
      +        }
      +
      +        return $validated;
      +    }
      +}
      diff --git a/var/Typecho/Response.php b/var/Typecho/Response.php
      new file mode 100644
      index 00000000..8f2b59e5
      --- /dev/null
      +++ b/var/Typecho/Response.php
      @@ -0,0 +1,306 @@
      +<?php
      +/**
      + * API方法,Typecho命名空间
      + *
      + * @category typecho
      + * @package Response
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/** 载入api支持 */
      +require_once 'Typecho/Common.php';
      +
      +/**
      + * Typecho公用方法
      + *
      + * @category typecho
      + * @package Response
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Typecho_Response
      +{
      +    /**
      +     * http code
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private static $_httpCode = array(
      +        100 => 'Continue',
      +        101	=> 'Switching Protocols',
      +        200	=> 'OK',
      +        201	=> 'Created',
      +        202	=> 'Accepted',
      +        203	=> 'Non-Authoritative Information',
      +        204	=> 'No Content',
      +        205	=> 'Reset Content',
      +        206	=> 'Partial Content',
      +        300	=> 'Multiple Choices',
      +        301	=> 'Moved Permanently',
      +        302	=> 'Found',
      +        303	=> 'See Other',
      +        304	=> 'Not Modified',
      +        305	=> 'Use Proxy',
      +        307	=> 'Temporary Redirect',
      +        400	=> 'Bad Request',
      +        401	=> 'Unauthorized',
      +        402	=> 'Payment Required',
      +        403	=> 'Forbidden',
      +        404	=> 'Not Found',
      +        405	=> 'Method Not Allowed',
      +        406	=> 'Not Acceptable',
      +        407	=> 'Proxy Authentication Required',
      +        408	=> 'Request Timeout',
      +        409	=> 'Conflict',
      +        410	=> 'Gone',
      +        411	=> 'Length Required',
      +        412	=> 'Precondition Failed',
      +        413	=> 'Request Entity Too Large',
      +        414	=> 'Request-URI Too Long',
      +        415	=> 'Unsupported Media Type',
      +        416	=> 'Requested Range Not Satisfiable',
      +        417	=> 'Expectation Failed',
      +        500	=> 'Internal Server Error',
      +        501	=> 'Not Implemented',
      +        502	=> 'Bad Gateway',
      +        503	=> 'Service Unavailable',
      +        504	=> 'Gateway Timeout',
      +        505	=> 'HTTP Version Not Supported'
      +    );
      +
      +    /**
      +     * 字符编码
      +     *
      +     * @var mixed
      +     * @access private
      +     */
      +    private $_charset;
      +
      +    //默认的字符编码
      +    const CHARSET = 'UTF-8';
      +
      +    /**
      +     * 单例句柄
      +     *
      +     * @access private
      +     * @var Typecho_Response
      +     */
      +    private static $_instance = null;
      +
      +    /**
      +     * 获取单例句柄
      +     *
      +     * @access public
      +     * @return Typecho_Response
      +     */
      +    public static function getInstance()
      +    {
      +        if (null === self::$_instance) {
      +            self::$_instance = new Typecho_Response();
      +        }
      +
      +        return self::$_instance;
      +    }
      +
      +    /**
      +     * 解析ajax回执的内部函数
      +     *
      +     * @access private
      +     * @param mixed $message 格式化数据
      +     * @return string
      +     */
      +    private function _parseXml($message)
      +    {
      +        /** 对于数组型则继续递归 */
      +        if (is_array($message)) {
      +            $result = '';
      +
      +            foreach ($message as $key => $val) {
      +                $tagName = is_int($key) ? 'item' : $key;
      +                $result .= '<' . $tagName . '>' . $this->_parseXml($val) . '</' . $tagName . '>';
      +            }
      +
      +            return $result;
      +        } else {
      +            return preg_match("/^[^<>]+$/is", $message) ? $message : '<![CDATA[' . $message . ']]>';
      +        }
      +    }
      +
      +    /**
      +     * 设置默认回执编码
      +     *
      +     * @access public
      +     * @param string $charset 字符集
      +     * @return void
      +     */
      +    public function setCharset($charset = null)
      +    {
      +        $this->_charset = empty($charset) ? self::CHARSET : $charset;
      +    }
      +
      +    /**
      +     * 获取字符集
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function getCharset()
      +    {
      +        if (empty($this->_charset)) {
      +            $this->setCharset();
      +        }
      +
      +        return $this->_charset;
      +    }
      +
      +    /**
      +     * 在http头部请求中声明类型和字符集
      +     *
      +     * @access public
      +     * @param string $contentType 文档类型
      +     * @return void
      +     */
      +    public function setContentType($contentType = 'text/html')
      +    {
      +        header('Content-Type: ' . $contentType . '; charset=' . $this->getCharset(), true);
      +    }
      +
      +    /**
      +     * 设置http头
      +     *
      +     * @access public
      +     * @param string $name 名称
      +     * @param string $value 对应值
      +     * @return void
      +     */
      +    public function setHeader($name, $value)
      +    {
      +        header($name . ': ' . $value, true);
      +    }
      +
      +    /**
      +     * 设置HTTP状态
      +     *
      +     * @access public
      +     * @param integer $code http代码
      +     * @return void
      +     */
      +    public static function setStatus($code)
      +    {
      +        if (isset(self::$_httpCode[$code])) {
      +            header((isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.1') . ' ' . $code . ' ' . self::$_httpCode[$code], true, $code);
      +        }
      +    }
      +
      +    /**
      +     * 抛出ajax的回执信息
      +     *
      +     * @access public
      +     * @param string $message 消息体
      +     * @return void
      +     */
      +    public function throwXml($message)
      +    {
      +        /** 设置http头信息 */
      +        $this->setContentType('text/xml');
      +
      +        /** 构建消息体 */
      +        echo '<?xml version="1.0" encoding="' . $this->getCharset() . '"?>',
      +        '<response>',
      +        $this->_parseXml($message),
      +        '</response>';
      +
      +        /** 终止后续输出 */
      +        exit;
      +    }
      +
      +    /**
      +     * 抛出json回执信息
      +     *
      +     * @access public
      +     * @param string $message 消息体
      +     * @return void
      +     */
      +    public function throwJson($message)
      +    {
      +        /** 设置http头信息 */
      +        $this->setContentType('application/json');
      +
      +        /** Typecho_Json */
      +        require_once 'Typecho/Json.php';
      +        echo Typecho_Json::encode($message);
      +
      +        /** 终止后续输出 */
      +        exit;
      +    }
      +
      +    /**
      +     * 重定向函数
      +     *
      +     * @access public
      +     * @param string $location 重定向路径
      +     * @param boolean $isPermanently 是否为永久重定向
      +     * @return void
      +     */
      +    public function redirect($location, $isPermanently = false)
      +    {
      +        /** Typecho_Common */
      +        require_once 'Typecho/Common.php';
      +        $location = Typecho_Common::safeUrl($location);
      +
      +        if ($isPermanently) {
      +            header('Location: ' . $location, false, 301);
      +            exit;
      +        } else {
      +            header('Location: ' . $location, false, 302);
      +            exit;
      +        }
      +    }
      +
      +    /**
      +     * 返回来路
      +     *
      +     * @access public
      +     * @param string $anchor 附加地址
      +     * @param string $default 默认来路
      +     * @return void
      +     */
      +    public function goBack($suffix = NULL, $default = NULL)
      +    {
      +        //获取来源
      +        $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
      +
      +        //判断来源
      +        if (!empty($referer)) {
      +            // ~ fix Issue 38
      +            if (!empty($suffix)) {
      +                $parts = parse_url($referer);
      +                $myParts = parse_url($suffix);
      +
      +                if (isset($myParts['fragment'])) {
      +                    $parts['fragment'] = $myParts['fragment'];
      +                }
      +
      +                if (isset($myParts['query'])) {
      +                    $args = array();
      +                    if (isset($parts['query'])) {
      +                        parse_str($parts['query'], $args);
      +                    }
      +
      +                    parse_str($myParts['query'], $currentArgs);
      +                    $args = array_merge($args, $currentArgs);
      +                    $parts['query'] = http_build_query($args);
      +                }
      +
      +                $referer = Typecho_Common::buildUrl($parts);
      +            }
      +
      +            $this->redirect($referer, false);
      +        } else if (!empty($default)) {
      +            $this->redirect($default);
      +        }
      +    }
      +}
      diff --git a/var/Typecho/Router.php b/var/Typecho/Router.php
      new file mode 100644
      index 00000000..012d2a16
      --- /dev/null
      +++ b/var/Typecho/Router.php
      @@ -0,0 +1,222 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: Route.php 107 2008-04-11 07:14:43Z magike.net $
      + */
      +
      +/** 载入api支持 */
      +require_once 'Typecho/Common.php';
      +
      +/** Typecho_Ruquest */
      +require_once 'Typecho/Request.php';
      +
      +/** Typecho_Widget */
      +require_once 'Typecho/Widget.php';
      +
      +/**
      + * Typecho组件基类
      + *
      + * TODO 增加cache缓存
      + * @package Router
      + */
      +class Typecho_Router
      +{
      +    /**
      +     * 当前路由名称
      +     *
      +     * @access public
      +     * @var string
      +     */
      +    public static $current;
      +
      +    /**
      +     * 已经解析完毕的路由表配置
      +     *
      +     * @access private
      +     * @var mixed
      +     */
      +    private static $_routingTable = array();
      +
      +    /**
      +     * 全路径
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private static $_pathInfo = NULL;
      +
      +    /**
      +     * 解析路径
      +     *
      +     * @access public
      +     * @param string $pathInfo 全路径
      +     * @param mixed $parameter 输入参数
      +     * @return mixed
      +     */
      +    public static function match($pathInfo, $parameter = NULL)
      +    {
      +        foreach (self::$_routingTable as $key => $route) {
      +            if (preg_match($route['regx'], $pathInfo, $matches)) {
      +                self::$current = $key;
      +
      +                try {
      +                    /** 载入参数 */
      +                    $params = NULL;
      +
      +                    if (!empty($route['params'])) {
      +                        unset($matches[0]);
      +                        $params = array_combine($route['params'], $matches);
      +                    }
      +
      +                    $widget = Typecho_Widget::widget($route['widget'], $parameter, $params);
      +
      +                    return $widget;
      +
      +                } catch (Exception $e) {
      +                    if (404 == $e->getCode()) {
      +                        Typecho_Widget::destory($route['widget']);
      +                        continue;
      +                    }
      +
      +                    throw $e;
      +                }
      +            }
      +        }
      +
      +        return false;
      +    }
      +
      +    /**
      +     * 设置全路径
      +     *
      +     * @access public
      +     * @param string $pathInfo
      +     * @return void
      +     */
      +    public static function setPathInfo($pathInfo = '/')
      +    {
      +        self::$_pathInfo = $pathInfo;
      +    }
      +
      +    /**
      +     * 获取全路径
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public static function getPathInfo()
      +    {
      +        if (NULL === self::$_pathInfo) {
      +            self::setPathInfo();
      +        }
      +
      +        return self::$_pathInfo;
      +    }
      +
      +    /**
      +     * 路由分发函数
      +     *
      +     * @param string $path 目的文件所在目录
      +     * @return void
      +     * @throws Typecho_Route_Exception
      +     */
      +    public static function dispatch()
      +    {
      +        /** 获取PATHINFO */
      +        $pathInfo = self::getPathInfo();
      +
      +        foreach (self::$_routingTable as $key => $route) {
      +            if (preg_match($route['regx'], $pathInfo, $matches)) {
      +                self::$current = $key;
      +
      +                try {
      +                    /** 载入参数 */
      +                    $params = NULL;
      +
      +                    if (!empty($route['params'])) {
      +                        unset($matches[0]);
      +                        $params = array_combine($route['params'], $matches);
      +                    }
      +
      +                    $widget = Typecho_Widget::widget($route['widget'], NULL, $params);
      +
      +                    if (isset($route['action'])) {
      +                        $widget->{$route['action']}();
      +                    }
      +
      +                    return;
      +
      +                } catch (Exception $e) {
      +                    if (404 == $e->getCode()) {
      +                        Typecho_Widget::destory($route['widget']);
      +                        continue;
      +                    }
      +
      +                    throw $e;
      +                }
      +            }
      +        }
      +
      +        /** 载入路由异常支持 */
      +        require_once 'Typecho/Router/Exception.php';
      +        throw new Typecho_Router_Exception("Path '{$pathInfo}' not found", 404);
      +    }
      +
      +    /**
      +     * 路由反解析函数
      +     *
      +     * @param string $name 路由配置表名称
      +     * @param string $value 路由填充值
      +     * @param string $prefix 最终合成路径的前缀
      +     * @return string
      +     */
      +    public static function url($name, array $value = NULL, $prefix = NULL)
      +    {
      +        $route = self::$_routingTable[$name];
      +
      +        //交换数组键值
      +        $pattern = array();
      +        foreach ($route['params'] as $row) {
      +            $pattern[$row] = isset($value[$row]) ? $value[$row] : '{' . $row . '}';
      +        }
      +
      +        return Typecho_Common::url(vsprintf($route['format'], $pattern), $prefix);
      +    }
      +
      +    /**
      +     * 设置路由器默认配置
      +     *
      +     * @access public
      +     * @param mixed $routes 配置信息
      +     * @return void
      +     */
      +    public static function setRoutes($routes)
      +    {
      +        /** 载入路由解析支持 */
      +        require_once 'Typecho/Router/Parser.php';
      +
      +        if (isset($routes[0])) {
      +            self::$_routingTable = $routes[0];
      +        } else {
      +            /** 解析路由配置 */
      +            $parser = new Typecho_Router_Parser($routes);
      +            self::$_routingTable = $parser->parse();
      +        }
      +    }
      +
      +    /**
      +     * 获取路由信息
      +     *
      +     * @param string $routeName 路由名称
      +     * @static
      +     * @access public
      +     * @return void
      +     */
      +    public static function get($routeName)
      +    {
      +        return isset(self::$_routingTable[$routeName]) ? self::$_routingTable[$routeName] : NULL;
      +    }
      +}
      diff --git a/var/Typecho/Router/Exception.php b/var/Typecho/Router/Exception.php
      new file mode 100644
      index 00000000..8a7e05ff
      --- /dev/null
      +++ b/var/Typecho/Router/Exception.php
      @@ -0,0 +1,19 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: RouteException.php 104 2008-04-10 07:58:09Z magike.net $
      + */
      +
      +/** 异常基类 */
      +require_once 'Typecho/Exception.php';
      +
      +/**
      + * 路由异常类
      + *
      + * @package Router
      + */
      +class Typecho_Router_Exception extends Typecho_Exception
      +{}
      diff --git a/var/Typecho/Router/Parser.php b/var/Typecho/Router/Parser.php
      new file mode 100644
      index 00000000..7bcc6d54
      --- /dev/null
      +++ b/var/Typecho/Router/Parser.php
      @@ -0,0 +1,117 @@
      +<?php
      +/**
      + * 路由器解析器
      + *
      + * @category typecho
      + * @package Router
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 路由器解析器
      + *
      + * @category typecho
      + * @package Router
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Typecho_Router_Parser
      +{
      +    /**
      +     * 默认匹配表
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_defaultRegx;
      +
      +    /**
      +     * 路由器映射表
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_routingTable;
      +
      +    /**
      +     * 参数表
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_params;
      +
      +    /**
      +     * 设置路由表
      +     *
      +     * @access public
      +     * @param array $routingTable 路由器映射表
      +     * @return void
      +     */
      +    public function __construct(array $routingTable)
      +    {
      +        $this->_routingTable = $routingTable;
      +
      +        $this->_defaultRegx = array(
      +            'string' => '(.%s)',
      +            'char'   => '([^/]%s)',
      +            'digital'=> '([0-9]%s)',
      +            'alpha'  => '([_0-9a-zA-Z-]%s)',
      +            'alphaslash'  => '([_0-9a-zA-Z-/]%s)',
      +        );
      +    }
      +
      +    /**
      +     * 局部匹配并替换正则字符串
      +     *
      +     * @access public
      +     * @param array $matches 匹配部分
      +     * @return string
      +     */
      +    public function _match(array $matches)
      +    {
      +        $params = explode(' ', $matches[1]);
      +        $paramsNum = count($params);
      +        $this->_params[] = $params[0];
      +
      +        if (1 == $paramsNum) {
      +            return sprintf($this->_defaultRegx['char'], '+');
      +        } else if (2 == $paramsNum) {
      +            return sprintf($this->_defaultRegx[$params[1]], '+');
      +        } else if (3 == $paramsNum) {
      +            return sprintf($this->_defaultRegx[$params[1]], $params[2] > 0 ? '{' . $params[2] . '}' : '*');
      +        } else if (4 == $paramsNum) {
      +            return sprintf($this->_defaultRegx[$params[1]], '{' . $params[2] . ',' . $params[3] . '}');
      +        }
      +    }
      +
      +    /**
      +     * 解析路由表
      +     *
      +     * @access public
      +     * @return array
      +     */
      +    public function parse()
      +    {
      +        $result = array();
      +
      +        foreach ($this->_routingTable as $key => $route) {
      +            $this->_params = array();
      +            $route['regx'] = preg_replace_callback("/%([^%]+)%/", array($this, '_match'),
      +            preg_quote(str_replace(array('[', ']', ':'), array('%', '%', ' '), $route['url'])));
      +
      +            /** 处理斜线 */
      +            $route['regx'] = rtrim($route['regx'], '/');
      +            $route['regx'] = '|^' . $route['regx'] . '[/]?$|';
      +
      +            $route['format'] = preg_replace("/\[([^\]]+)\]/", "%s", $route['url']);
      +            $route['params'] = $this->_params;
      +
      +            $result[$key] = $route;
      +        }
      +
      +        return $result;
      +    }
      +}
      diff --git a/var/Typecho/Validate.php b/var/Typecho/Validate.php
      new file mode 100644
      index 00000000..fb1e094f
      --- /dev/null
      +++ b/var/Typecho/Validate.php
      @@ -0,0 +1,321 @@
      +<?php
      +// vim: set et sw=4 ts=4 sts=4 fdm=marker ff=unix fenc=utf8
      +/**
      + * Typecho Blog Platform
      + *
      + * 验证类
      + * <code>
      + * $test = "hello";
      + * $Validation  = new TypechoValidation();
      + * $Validation->form($test, array("alpha" => "不是字符");
      + * var_dump($Validation->getErrorMsg());
      + * </code>
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: Validation.php 106 2008-04-11 02:23:54Z magike.net $
      + */
      +
      +/** Typecho_Common */
      +require_once 'Typecho/Common.php';
      +
      +/**
      + * 验证类
      + *
      + * @package Validate
      + */
      +class Typecho_Validate
      +{
      +    /**
      +     * 内部数据
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_data;
      +
      +    /**
      +     * 当前验证指针
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_key;
      +
      +    /**
      +     * 验证规则数组
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_rules = array();
      +
      +    /**
      +     * 中断模式,一旦出现验证错误即抛出而不再继续执行
      +     *
      +     * @access private
      +     * @var boolean
      +     */
      +    private $_break = false;
      +
      +    /**
      +     * 增加验证规则
      +     *
      +     * @access public
      +     * @param string $key 数值键值
      +     * @param string $rule 规则名称
      +     * @param string $message 错误字符串
      +     * @return Typecho_Validation
      +     */
      +    public function addRule($key, $rule, $message)
      +    {
      +        if (func_num_args() <= 3) {
      +            $this->_rules[$key][] = array($rule, $message);
      +        } else {
      +            $params = func_get_args();
      +            $params = array_splice($params, 3);
      +            $this->_rules[$key][] = array_merge(array($rule, $message), $params);
      +        }
      +
      +        return $this;
      +    }
      +
      +    /**
      +     * 设置为中断模式
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function setBreak()
      +    {
      +        $this->_break = true;
      +    }
      +
      +    /**
      +     * Run the Validator
      +     * This function does all the work.
      +     *
      +     * @access	public
      +     * @param   array $data 需要验证的数据
      +     * @param   array $rules 验证数据遵循的规则
      +     * @return	array
      +     * @throws  Typecho_Validate_Exception
      +     */
      +    public function run(array $data, $rules = NULL)
      +    {
      +        $result = array();
      +        $this->_data = $data;
      +        $rules = empty($rules) ? $this->_rules : $rules;
      +
      +        // Cycle through the rules and test for errors
      +        foreach ($rules as $key => $rules) {
      +            $this->_key = $key;
      +            $data[$key] = (0 == strlen($data[$key])) ? NULL : $data[$key];
      +
      +            foreach ($rules as $params) {
      +                $method = $params[0];
      +
      +                if ('required' != $method && 'confirm' != $method && 0 == strlen($data[$key])) {
      +                    continue;
      +                }
      +
      +                $message = $params[1];
      +                $params[1] = $data[$key];
      +                $params = array_slice($params, 1);
      +
      +                if (!call_user_func_array(is_array($method) ? $method : array($this, $method), $params)) {
      +                    $result[$key] = $message;
      +                    break;
      +                }
      +            }
      +
      +            /** 开启中断 */
      +            if ($this->_break && $result) {
      +                break;
      +            }
      +        }
      +
      +        return $result;
      +    }
      +
      +    /**
      +     * 最小长度
      +     *
      +     * @access public
      +     * @param string $str 待处理的字符串
      +     * @param integer $length 最小长度
      +     * @return boolean
      +     */
      +    public function minLength($str, $length)
      +    {
      +        return (Typecho_Common::strLen($str) >= $length);
      +    }
      +
      +    /**
      +     * 验证输入是否一致
      +     *
      +     * @access public
      +     * @param string $str 待处理的字符串
      +     * @param string $key 需要一致性检查的键值
      +     * @return boolean
      +     */
      +    public function confirm($str, $key)
      +    {
      +        return !empty($this->_data[$key]) ? ($str == $this->_data[$key]) : empty($str);
      +    }
      +
      +    /**
      +     * 是否为空
      +     *
      +     * @access public
      +     * @param string $str 待处理的字符串
      +     * @return boolean
      +     */
      +    public function required($str)
      +    {
      +        return !empty($this->_data[$this->_key]);
      +    }
      +
      +    /**
      +     * 枚举类型判断
      +     *
      +     * @access public
      +     * @param string $str 待处理的字符串
      +     * @param array $params 枚举值
      +     * @return unknown
      +     */
      +    public function enum($str, array $params)
      +    {
      +        return in_array($str, $params);
      +    }
      +
      +    /**
      +     * Max Length
      +     *
      +     * @access public
      +     * @param string
      +     * @return boolean
      +     */
      +    public function maxLength($str, $length)
      +    {
      +        return (Typecho_Common::strLen($str) < $length);
      +    }
      +
      +    /**
      +     * Valid Email
      +     *
      +     * @access public
      +     * @param string
      +     * @return boolean
      +     */
      +    public function email($str)
      +    {
      +        return preg_match("/^[^@\s<&>]+@([-a-z0-9]+\.)+[a-z]{2,}$/i", $str);
      +    }
      +
      +    /**
      +     * 验证是否为网址
      +     *
      +     * @access public
      +     * @param string $str
      +     * @return boolean
      +     */
      +    public function url($str)
      +    {
      +        $parts = @parse_url($str);
      +        if (!$parts) {
      +            return false;
      +        }
      +
      +        return isset($parts['scheme']) &&
      +        in_array($parts['scheme'], array('http', 'https', 'ftp')) &&
      +        !preg_match('/(\(|\)|\\\|"|<|>|[\x00-\x08]|[\x0b-\x0c]|[\x0e-\x19])/', $str);
      +    }
      +
      +    /**
      +     * Alpha
      +     *
      +     * @access public
      +     * @param string
      +     * @return boolean
      +     */
      +    public function alpha($str)
      +    {
      +        return preg_match("/^([a-z])+$/i", $str) ? true : false;
      +    }
      +
      +    /**
      +     * Alpha-numeric
      +     *
      +     * @access public
      +     * @param string
      +     * @return boolean
      +     */
      +    public function alphaNumeric($str)
      +    {
      +        return preg_match("/^([a-z0-9])+$/i", $str);
      +    }
      +
      +    /**
      +     * Alpha-numeric with underscores and dashes
      +     *
      +     * @access public
      +     * @param string
      +     * @return boolean
      +     */
      +    public function alphaDash($str)
      +    {
      +        return preg_match("/^([_a-z0-9-])+$/i", $str) ? true : false;
      +    }
      +
      +    /**
      +     * 对xss字符串的检测
      +     *
      +     * @access public
      +     * @param string $str
      +     * @return boolean
      +     */
      +    public function xssCheck($str)
      +    {
      +        $search = 'abcdefghijklmnopqrstuvwxyz';
      +        $search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
      +        $search .= '1234567890!@#$%^&*()';
      +        $search .= '~`";:?+/={}[]-_|\'\\';
      +
      +        for ($i = 0; $i < strlen($search); $i++) {
      +            // ;? matches the ;, which is optional
      +            // 0{0,7} matches any padded zeros, which are optional and go up to 8 chars
      +
      +            // &#x0040 @ search for the hex values
      +            $str = preg_replace('/(&#[xX]0{0,8}'.dechex(ord($search[$i])).';?)/i', $search[$i], $str); // with a ;
      +            // &#00064 @ 0{0,7} matches '0' zero to seven times
      +            $str = preg_replace('/(&#0{0,8}'.ord($search[$i]).';?)/', $search[$i], $str); // with a ;
      +        }
      +
      +        return !preg_match('/(\(|\)|\\\|"|<|>|[\x00-\x08]|[\x0b-\x0c]|[\x0e-\x19])/', $str);
      +    }
      +
      +    /**
      +     * Numeric
      +     *
      +     * @access public
      +     * @param integer
      +     * @return boolean
      +     */
      +    public function isFloat($str)
      +    {
      +        return ereg("^[0-9\.]+$", $str);
      +    }
      +
      +    /**
      +     * Is Numeric
      +     *
      +     * @access public
      +     * @param string
      +     * @return boolean
      +     */
      +    public function isInteger($str)
      +    {
      +        return is_numeric($str);
      +    }
      +}
      diff --git a/var/Typecho/Widget.php b/var/Typecho/Widget.php
      new file mode 100644
      index 00000000..3b4feb01
      --- /dev/null
      +++ b/var/Typecho/Widget.php
      @@ -0,0 +1,417 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: Widget.php 107 2008-04-11 07:14:43Z magike.net $
      + */
      +
      +/** Typecho_Config */
      +require_once 'Typecho/Config.php';
      +
      +/** Typecho_Plugin */
      +require_once 'Typecho/Plugin.php';
      +
      +/**
      + * Typecho组件基类
      + *
      + * @package Widget
      + */
      +abstract class Typecho_Widget
      +{
      +    /**
      +     * widget对象池
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private static $_widgetPool = array();
      +
      +    /**
      +     * 帮手列表
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_helpers = array();
      +
      +    /**
      +     * 数据堆栈每一行
      +     *
      +     * @access protected
      +     * @var array
      +     */
      +    protected $row = array();
      +
      +    /**
      +     * 数据堆栈
      +     *
      +     * @access public
      +     * @var array
      +     */
      +    public $stack = array();
      +
      +    /**
      +     * 当前队列指针顺序值,从1开始
      +     *
      +     * @access public
      +     * @var integer
      +     */
      +    public $sequence = 0;
      +
      +    /**
      +     * 队列长度
      +     *
      +     * @access public
      +     * @var integer
      +     */
      +    public $length = 0;
      +
      +    /**
      +     * request对象
      +     *
      +     * @var Typecho_Request
      +     * @access public
      +     */
      +    public $request;
      +
      +    /**
      +     * response对象
      +     *
      +     * @var Typecho_Response
      +     * @access public
      +     */
      +    public $response;
      +
      +    /**
      +     * config对象
      +     *
      +     * @access public
      +     * @var public
      +     */
      +    public $parameter;
      +
      +    /**
      +     * 构造函数,初始化组件
      +     *
      +     * @access public
      +     * @param mixed $request request对象
      +     * @param mixed $response response对象
      +     * @param mixed $params 参数列表
      +     * @return void
      +     */
      +    public function __construct($request, $response, $params = NULL)
      +    {
      +        //设置函数内部对象
      +        $this->request = $request;
      +        $this->response = $response;
      +        $this->parameter = new Typecho_Config();
      +
      +        if (!empty($params)) {
      +            $this->parameter->setDefault($params);
      +        }
      +    }
      +
      +    /**
      +     * execute function.
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute(){}
      +
      +    /**
      +     * post事件触发
      +     *
      +     * @param boolean $condition 触发条件
      +     * @return mixed
      +     */
      +    public function on($condition)
      +    {
      +        if ($condition) {
      +            return $this;
      +        } else {
      +            /** Typecho_Widget_Helper_Null */
      +            require_once 'Typecho/Widget/Helper/Empty.php';
      +            return new Typecho_Widget_Helper_Empty();
      +        }
      +    }
      +
      +    /**
      +     * 获取对象插件句柄
      +     *
      +     * @access public
      +     * @param string $handle 句柄
      +     * @return Typecho_Plugin
      +     */
      +    public function pluginHandle($handle = NULL)
      +    {
      +        return Typecho_Plugin::factory(empty($handle) ? get_class($this) : $handle);
      +    }
      +
      +    /**
      +     * 工厂方法,将类静态化放置到列表中
      +     *
      +     * @access public
      +     * @param string $alias 组件别名
      +     * @param mixed $params 传递的参数
      +     * @param mixed $request 前端参数
      +     * @param boolean $enableResponse 是否允许http回执
      +     * @return object
      +     * @throws Typecho_Exception
      +     */
      +    public static function widget($alias, $params = NULL, $request = NULL, $enableResponse = true)
      +    {
      +        list($className) = explode('@', $alias);
      +
      +        if (!isset(self::$_widgetPool[$alias])) {
      +            $fileName = str_replace('_', '/', $className) . '.php';
      +            require_once $fileName;
      +
      +            /** 如果类不存在 */
      +            if (!class_exists($className)) {
      +                /** Typecho_Exception */
      +                require_once 'Typecho/Widget/Exception.php';
      +                throw new Typecho_Widget_Exception($className);
      +            }
      +
      +            /** 初始化request */
      +            if (!empty($request)) {
      +                $requestObject = new Typecho_Request();
      +                $requestObject->setParams($request);
      +            } else {
      +                $requestObject = Typecho_Request::getInstance();
      +            }
      +
      +            /** 初始化response */
      +            $responseObject = $enableResponse ? Typecho_Response::getInstance()
      +            : Typecho_Widget_Helper_Empty::getInstance();
      +
      +            /** 初始化组件 */
      +            $widget = new $className($requestObject, $responseObject, $params);
      +
      +            $widget->execute();
      +            self::$_widgetPool[$alias] = $widget;
      +        }
      +
      +        return self::$_widgetPool[$alias];
      +    }
      +
      +    /**
      +     * 释放组件
      +     *
      +     * @access public
      +     * @param string $alias 组件名称
      +     * @return void
      +     */
      +    public static function destory($alias)
      +    {
      +        if (isset(self::$_widgetPool[$alias])) {
      +            unset(self::$_widgetPool[$alias]);
      +        }
      +    }
      +
      +    /**
      +     * 将类本身赋值
      +     *
      +     * @param string $variable 变量名
      +     * @return void
      +     */
      +    public function to(&$variable)
      +    {
      +        return $variable = $this;
      +    }
      +
      +    /**
      +     * 格式化解析堆栈内的所有数据
      +     *
      +     * @param string $format 数据格式
      +     * @return void
      +     */
      +    public function parse($format)
      +    {
      +        $rowsKey = array();
      +
      +        /** 过滤数据行 */
      +        foreach ($this->row as $key => $val) {
      +            if (is_array($val) || is_object($val)) {
      +                unset($this->row[$key]);
      +            }
      +        }
      +
      +        //将数据格式化
      +        foreach ($this->row as $key => $val) {
      +            $rowsKey[] = '{' . $key . '}';
      +        }
      +
      +        foreach ($this->stack as $val) {
      +            /** 过滤数据行 */
      +            foreach ($val as $inkey => $inval) {
      +                if (is_array($inval) || is_object($inval)) {
      +                    unset($val[$inkey]);
      +                }
      +            }
      +            echo str_replace($rowsKey, $val, $format) . "\n";
      +        }
      +
      +        /** 重置指针 */
      +        reset($this->row);
      +        reset($this->stack);
      +    }
      +
      +    /**
      +     * 将每一行的值压入堆栈
      +     *
      +     * @param array $value 每一行的值
      +     * @return array
      +     */
      +    public function push(array $value)
      +    {
      +        //将行数据按顺序置位
      +        $this->row = $value;
      +        $this->length ++;
      +
      +        $this->stack[] = $value;
      +        return $value;
      +    }
      +
      +    /**
      +     * 根据余数输出
      +     *
      +     * @access public
      +     * @param string $param 需要输出的值
      +     * @return void
      +     */
      +    public function alt()
      +    {
      +        $args = func_get_args();
      +        $num = func_num_args();
      +        $split = $this->sequence % $num;
      +        echo $args[(0 == $split ? $num : $split) -1];
      +    }
      +
      +    /**
      +     * 输出顺序值
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function sequence()
      +    {
      +        echo $this->sequence;
      +    }
      +
      +    /**
      +     * 输出数据长度
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function length()
      +    {
      +        echo $this->length;
      +    }
      +
      +    /**
      +     * 返回堆栈是否为空
      +     *
      +     * @return boolean
      +     */
      +    public function have()
      +    {
      +        return !empty($this->stack);
      +    }
      +
      +    /**
      +     * 返回堆栈每一行的值
      +     *
      +     * @return array
      +     */
      +    public function next()
      +    {
      +        if ($this->stack) {
      +            $this->row = @$this->stack[key($this->stack)];
      +            next($this->stack);
      +            $this->sequence ++;
      +        }
      +
      +        if (!$this->row) {
      +            reset($this->stack);
      +            if ($this->stack) {
      +                $this->row = $this->stack[key($this->stack)];
      +            }
      +            
      +            $this->sequence = 0;
      +            return false;
      +        }
      +
      +        return $this->row;
      +    }
      +
      +    /**
      +     * 魔术函数,用于挂接其它函数
      +     *
      +     * @access public
      +     * @param string $name 函数名
      +     * @param array $args 函数参数
      +     * @return void
      +     */
      +    public function __call($name, $args)
      +    {
      +        echo $this->{$name};
      +    }
      +
      +    /**
      +     * 魔术函数,用于获取内部变量
      +     *
      +     * @access public
      +     * @param string $name 变量名
      +     * @return mixed
      +     */
      +    public function __get($name)
      +    {
      +        $method = '___' . $name;
      +
      +        if (array_key_exists($name, $this->row)) {
      +            return $this->row[$name];
      +        } else {
      +            $method = '___' . $name;
      +
      +            if (method_exists($this, $method)) {
      +                return $this->$method();
      +            } else {
      +                $return = $this->pluginHandle()->trigger($plugged)->{$method}($this);
      +                if ($plugged) {
      +                    return $return;
      +                }
      +            }
      +        }
      +
      +        return NULL;
      +    }
      +
      +    /**
      +     * 设定堆栈每一行的值
      +     *
      +     * @param string $name 值对应的键值
      +     * @param mixed $value 相应的值
      +     * @return void
      +     */
      +    public function __set($name, $value)
      +    {
      +        $this->row[$name] = $value;
      +    }
      +
      +    /**
      +     * 验证堆栈值是否存在
      +     *
      +     * @access public
      +     * @param string $name
      +     * @return boolean
      +     */
      +    public function __isSet($name)
      +    {
      +        return isset($this->row[$name]);
      +    }
      +}
      diff --git a/var/Typecho/Widget/Exception.php b/var/Typecho/Widget/Exception.php
      new file mode 100644
      index 00000000..ccdeea14
      --- /dev/null
      +++ b/var/Typecho/Widget/Exception.php
      @@ -0,0 +1,19 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: WidgetException.php 46 2008-03-10 13:59:36Z magike.net $
      + */
      +
      +/** 异常基类 */
      +require_once 'Typecho/Exception.php';
      +
      +/**
      + * 组件异常类
      + *
      + * @package Widget
      + */
      +class Typecho_Widget_Exception extends Typecho_Exception
      +{}
      diff --git a/var/Typecho/Widget/Helper/Empty.php b/var/Typecho/Widget/Helper/Empty.php
      new file mode 100644
      index 00000000..0bfaef22
      --- /dev/null
      +++ b/var/Typecho/Widget/Helper/Empty.php
      @@ -0,0 +1,57 @@
      +<?php
      +/**
      + * widget对象帮手
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * widget对象帮手,用于处理空对象方法
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Typecho_Widget_Helper_Empty
      +{
      +    /**
      +     * 单例句柄
      +     *
      +     * @access private
      +     * @var Typecho_Widget_Helper_Empty
      +     */
      +    private static $_instance = null;
      +
      +    /**
      +     * 获取单例句柄
      +     *
      +     * @access public
      +     * @return Typecho_Widget_Helper_Empty
      +     */
      +    public static function getInstance()
      +    {
      +        if (null === self::$_instance) {
      +            self::$_instance = new Typecho_Widget_Helper_Empty();
      +        }
      +
      +        return self::$_instance;
      +    }
      +
      +    /**
      +     * 所有方法请求直接返回
      +     *
      +     * @access public
      +     * @param string $name 方法名
      +     * @param array $args 参数列表
      +     * @return void
      +     */
      +    public function __call($name, $args)
      +    {
      +        return;
      +    }
      +}
      diff --git a/var/Typecho/Widget/Helper/Form.php b/var/Typecho/Widget/Helper/Form.php
      new file mode 100644
      index 00000000..55dee7d7
      --- /dev/null
      +++ b/var/Typecho/Widget/Helper/Form.php
      @@ -0,0 +1,280 @@
      +<?php
      +/**
      + * 表单处理帮手
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/** Typecho_Widget_Helper_Layout */
      +require_once 'Typecho/Widget/Helper/Layout.php';
      +
      +/** Typecho_Request */
      +require_once 'Typecho/Cookie.php';
      +
      +/** Typecho_Validate */
      +require_once 'Typecho/Validate.php';
      +
      +/**
      + * 表单处理帮手
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Typecho_Widget_Helper_Form extends Typecho_Widget_Helper_Layout
      +{
      +    /** 表单post方法 */
      +    const POST_METHOD = 'post';
      +
      +    /** 表单get方法 */
      +    const GET_METHOD = 'get';
      +
      +    /** 标准编码方法 */
      +    const STANDARD_ENCODE = 'application/x-www-form-urlencoded';
      +
      +    /** 混合编码 */
      +    const MULTIPART_ENCODE = 'multipart/form-data';
      +
      +    /** 文本编码 */
      +    const TEXT_ENCODE= 'text/plain';
      +
      +    /**
      +     * 输入元素列表
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_inputs = array();
      +
      +    /**
      +     * 构造函数,设置基本属性
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function __construct($action = NULL, $method = self::GET_METHOD, $enctype = self::STANDARD_ENCODE)
      +    {
      +        /** 设置表单标签 */
      +        parent::__construct('form');
      +
      +        /** 关闭自闭合 */
      +        $this->setClose(false);
      +
      +        /** 设置表单属性 */
      +        $this->setAction($action);
      +        $this->setMethod($method);
      +        $this->setEncodeType($enctype);
      +    }
      +
      +    /**
      +     * 设置表单编码方案
      +     *
      +     * @access public
      +     * @param string $enctype 编码方法
      +     * @return Typecho_Widget_Helper_Form
      +     */
      +    public function setEncodeType($enctype)
      +    {
      +        $this->setAttribute('enctype', $enctype);
      +        return $this;
      +    }
      +
      +    /**
      +     * 增加输入元素
      +     *
      +     * @access public
      +     * @param Typecho_Widget_Helper_Form_Abstract $input 输入元素
      +     * @return Typecho_Widget_Helper_Form
      +     */
      +    public function addInput(Typecho_Widget_Helper_Form_Element $input)
      +    {
      +        $this->_inputs[$input->name] = $input;
      +        $this->addItem($input);
      +        return $this;
      +    }
      +
      +    /**
      +     * 增加元素(重载)
      +     *
      +     * @access public
      +     * @param Typecho_Widget_Helper_Layout $item 表单元素
      +     * @return Typecho_Widget_Helper_Layout
      +     */
      +    public function addItem(Typecho_Widget_Helper_Layout $item)
      +    {
      +        if ($item instanceof Typecho_Widget_Helper_Form_Submit) {
      +            $this->addItem($item);
      +        } else {
      +            parent::addItem($item);
      +        }
      +
      +        return $this;
      +    }
      +
      +    /**
      +     * 获取输入项
      +     *
      +     * @access public
      +     * @param string $name 输入项名称
      +     * @return mixed
      +     */
      +    public function getInput($name)
      +    {
      +        return $this->_inputs[$name];
      +    }
      +
      +    /**
      +     * 获取所有输入项的提交值
      +     *
      +     * @access public
      +     * @return array
      +     */
      +    public function getAllRequest()
      +    {
      +        $result = array();
      +        $source = (self::POST_METHOD == $this->getAttribute('method')) ? $_POST : $_GET;
      +
      +        foreach ($this->_inputs as $name => $input) {
      +            $result[$name] = isset($source[$name]) ? $source[$name] : NULL;
      +        }
      +        return $result;
      +    }
      +
      +    /**
      +     * 设置表单提交方法
      +     *
      +     * @access public
      +     * @param string $method 表单提交方法
      +     * @return Typecho_Widget_Helper_Form
      +     */
      +    public function setMethod($method)
      +    {
      +        $this->setAttribute('method', $method);
      +        return $this;
      +    }
      +
      +    /**
      +     * 设置表单提交目的
      +     *
      +     * @access public
      +     * @param string $action 表单提交目的
      +     * @return Typecho_Widget_Helper_Form
      +     */
      +    public function setAction($action)
      +    {
      +        $this->setAttribute('action', $action);
      +        return $this;
      +    }
      +
      +    /**
      +     * 获取此表单的所有输入项固有值
      +     *
      +     * @access public
      +     * @return array
      +     */
      +    public function getValues()
      +    {
      +        $values = array();
      +
      +        foreach ($this->_inputs as $name => $input) {
      +            $values[$name] = $input->value;
      +        }
      +        return $values;
      +    }
      +
      +    /**
      +     * 获取此表单的所有输入项
      +     *
      +     * @access public
      +     * @return array
      +     */
      +    public function getInputs()
      +    {
      +        return $this->_inputs;
      +    }
      +
      +    /**
      +     * 获取提交数据源
      +     *
      +     * @access public
      +     * @param array $params 数据参数集
      +     * @return array
      +     */
      +    public function getParams(array $params)
      +    {
      +        $result = array();
      +        $source = (self::POST_METHOD == $this->getAttribute('method')) ? $_POST : $_GET;
      +
      +        foreach ($params as $param) {
      +            $result[$param] = isset($source[$param]) ? $source[$param] : NULL;
      +        }
      +
      +        return $result;
      +    }
      +
      +    /**
      +     * 验证表单
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function validate()
      +    {
      +        $validator = new Typecho_Validate();
      +        $rules = array();
      +
      +        foreach ($this->_inputs as $name => $input) {
      +            $rules[$name] = $input->rules;
      +        }
      +
      +        $id = md5(implode('"', array_keys($this->_inputs)));
      +
      +        /** 表单值 */
      +        $formData = $this->getParams(array_keys($rules));
      +        $error = $validator->run($formData, $rules);
      +
      +        if ($error) {
      +            /** 利用cookie记录错误 */
      +            Typecho_Cookie::set('__typecho_form_message_' . $id, $error);
      +
      +            /** 利用cookie记录表单值 */
      +            Typecho_Cookie::set('__typecho_form_record_' . $id, $formData);
      +        }
      +
      +        return $error;
      +    }
      +
      +    /**
      +     * 显示表单
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function render()
      +    {
      +        $id = md5(implode('"', array_keys($this->_inputs)));
      +
      +        /** 恢复表单值 */
      +        if ($record = Typecho_Cookie::get('__typecho_form_record_' . $id)) {
      +            $message = Typecho_Cookie::get('__typecho_form_message_' . $id);
      +            foreach ($this->_inputs as $name => $input) {
      +                $input->value(isset($record[$name]) ? $record[$name] : $input->value);
      +
      +                /** 显示错误消息 */
      +                if (isset($message[$name])) {
      +                    $input->message($message[$name]);
      +                }
      +            }
      +
      +            Typecho_Cookie::delete('__typecho_form_record_' . $id);
      +        }
      +
      +        parent::render();
      +        Typecho_Cookie::delete('__typecho_form_message_' . $id);
      +    }
      +}
      diff --git a/var/Typecho/Widget/Helper/Form/Element.php b/var/Typecho/Widget/Helper/Form/Element.php
      new file mode 100644
      index 00000000..3b40e28c
      --- /dev/null
      +++ b/var/Typecho/Widget/Helper/Form/Element.php
      @@ -0,0 +1,300 @@
      +<?php
      +/**
      + * 表单元素抽象帮手
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/** Typecho_Widget_Helper_Layout */
      +require_once 'Typecho/Widget/Helper/Layout.php';
      +
      +/**
      + * 表单元素抽象类
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +abstract class Typecho_Widget_Helper_Form_Element extends Typecho_Widget_Helper_Layout
      +{
      +    /**
      +     * 表单标题
      +     *
      +     * @access protected
      +     * @var string
      +     */
      +    protected $label;
      +
      +    /**
      +     * 表单描述
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    protected $description;
      +
      +    /**
      +     * 表单消息
      +     *
      +     * @access protected
      +     * @var string
      +     */
      +    protected $message;
      +
      +    /**
      +     * 表单元素容器
      +     *
      +     * @access protected
      +     * @var Typecho_Widget_Helper_Layout
      +     */
      +    protected $container;
      +
      +    /**
      +     * 多行输入
      +     *
      +     * @access public
      +     * @var array()
      +     */
      +    protected $multiline = array();
      +
      +    /**
      +     * 单例唯一id
      +     *
      +     * @access protected
      +     * @var integer
      +     */
      +    protected static $uniqueId = 0;
      +
      +    /**
      +     * 输入栏
      +     *
      +     * @access public
      +     * @var Typecho_Widget_Helper_Layout
      +     */
      +    public $input;
      +
      +    /**
      +     * 表单验证器
      +     *
      +     * @access public
      +     * @var array
      +     */
      +    public $rules = array();
      +
      +    /**
      +     * 表单名称
      +     *
      +     * @access public
      +     * @var string
      +     */
      +    public $name;
      +
      +    /**
      +     * 表单值
      +     *
      +     * @access public
      +     * @var mixed
      +     */
      +    public $value;
      +
      +    /**
      +     * 构造函数
      +     *
      +     * @access public
      +     * @param string $name 表单输入项名称
      +     * @param array $options 选择项
      +     * @param mixed $value 表单默认值
      +     * @param string $label 表单标题
      +     * @param string $description 表单描述
      +     * @return void
      +     */
      +    public function __construct($name = NULL, array $options = NULL, $value = NULL, $label = NULL, $description = NULL)
      +    {
      +        /** 创建html元素,并设置class */
      +        parent::__construct('ul', array('class' => 'typecho-option', 'id' => 'typecho-option-item-' . $name . '-' . self::$uniqueId));
      +        $this->name = $name;
      +        self::$uniqueId ++;
      +
      +        /** 运行自定义初始函数 */
      +        $this->init();
      +
      +        /** 初始化表单标题 */
      +        if (NULL !== $label) {
      +            $this->label($label);
      +        }
      +
      +        /** 初始化表单项 */
      +        $this->input = $this->input($name, $options);
      +
      +        /** 初始化表单值 */
      +        if (NULL !== $value) {
      +            $this->value($value);
      +        }
      +
      +        /** 初始化表单描述 */
      +        if (NULL !== $description) {
      +            $this->description($description);
      +        }
      +    }
      +
      +    /**
      +     * 自定义初始函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function init(){}
      +
      +    /**
      +     * 创建表单标题
      +     *
      +     * @access public
      +     * @param string $value 标题字符串
      +     * @return Typecho_Widget_Helper_Form_Element
      +     */
      +    public function label($value)
      +    {
      +        /** 创建标题元素 */
      +        if (empty($this->label)) {
      +            $this->label = new Typecho_Widget_Helper_Layout('label', array('class' => 'typecho-label'));
      +            $this->container($this->label);
      +        }
      +
      +        $this->label->html($value);
      +        return $this;
      +    }
      +
      +    /**
      +     * 在容器里增加元素
      +     *
      +     * @access public
      +     * @param Typecho_Widget_Helper_Layout $item 表单元素
      +     * @return $this
      +     */
      +    public function container(Typecho_Widget_Helper_Layout $item)
      +    {
      +        /** 创建表单容器 */
      +        if (empty($this->container)) {
      +            $this->container = new Typecho_Widget_Helper_Layout('li');
      +            $this->addItem($this->container);
      +        }
      +
      +        $this->container->addItem($item);
      +        return $this;
      +    }
      +
      +    /**
      +     * 设置提示信息
      +     *
      +     * @access public
      +     * @param string $message 提示信息
      +     * @return Typecho_Widget_Helper_Form_Element
      +     */
      +    public function message($message)
      +    {
      +        if (empty($this->message)) {
      +            $this->message =  new Typecho_Widget_Helper_Layout('p', array('class' => 'message error'));
      +            $this->container($this->message);
      +        }
      +
      +        $this->message->html($message);
      +        return $this;
      +    }
      +
      +    /**
      +     * 设置描述信息
      +     *
      +     * @access public
      +     * @param string $description 描述信息
      +     * @return Typecho_Widget_Helper_Form_Element
      +     */
      +    public function description($description)
      +    {
      +        /** 创建描述元素 */
      +        if (empty($this->description)) {
      +            $this->description = new Typecho_Widget_Helper_Layout('p', array('class' => 'description'));
      +            $this->container($this->description);
      +        }
      +
      +        $this->description->html($description);
      +        return $this;
      +    }
      +
      +    /**
      +     * 设置表单元素值
      +     *
      +     * @access public
      +     * @param mixed $value 表单元素值
      +     * @return Typecho_Widget_Helper_Form_Element
      +     */
      +    public function value($value)
      +    {
      +        $this->value = $value;
      +        $this->_value($value);
      +        return $this;
      +    }
      +
      +    /**
      +     * 多行输出模式
      +     *
      +     * @access public
      +     * @return Typecho_Widget_Helper_Layout
      +     */
      +    public function multiline()
      +    {
      +        $item = new Typecho_Widget_Helper_Layout('span');
      +        $this->multiline[] = $item;
      +        return $item;
      +    }
      +
      +    /**
      +     * 多行输出模式
      +     *
      +     * @access public
      +     * @return Typecho_Widget_Helper_Form_Element
      +     */
      +    public function multiMode()
      +    {
      +        foreach ($this->multiline as $item) {
      +            $item->setAttribute('class', 'multiline');
      +        }
      +        return $this;
      +    }
      +
      +    /**
      +     * 初始化当前输入项
      +     *
      +     * @access public
      +     * @param Typecho_Widget_Helper_Layout $container 容器对象
      +     * @param string $name 表单元素名称
      +     * @param array $options 选择项
      +     * @return Typecho_Widget_Helper_Form_Element
      +     */
      +    abstract public function input($name = NULL, array $options = NULL);
      +
      +    /**
      +     * 设置表单元素值
      +     *
      +     * @access protected
      +     * @param mixed $value 表单元素值
      +     * @return void
      +     */
      +    abstract protected function _value($value);
      +
      +    /**
      +     * 增加验证器
      +     *
      +     * @access public
      +     * @return Typecho_Widget_Helper_Form_Element
      +     */
      +    public function addRule($name)
      +    {
      +        $this->rules[] = func_get_args();
      +        return $this;
      +    }
      +}
      diff --git a/var/Typecho/Widget/Helper/Form/Element/Checkbox.php b/var/Typecho/Widget/Helper/Form/Element/Checkbox.php
      new file mode 100644
      index 00000000..476a3ead
      --- /dev/null
      +++ b/var/Typecho/Widget/Helper/Form/Element/Checkbox.php
      @@ -0,0 +1,81 @@
      +<?php
      +/**
      + * 多选框帮手
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/** Typecho_Widget_Helper_Form_Element */
      +require_once 'Typecho/Widget/Helper/Form/Element.php';
      +
      +/**
      + * 多选框帮手类
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Typecho_Widget_Helper_Form_Element_Checkbox extends Typecho_Widget_Helper_Form_Element
      +{
      +    /**
      +     * 选择值
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_options = array();
      +
      +    /**
      +     * 初始化当前输入项
      +     *
      +     * @access public
      +     * @param string $name 表单元素名称
      +     * @param array $options 选择项
      +     * @return Typecho_Widget_Helper_Layout
      +     */
      +    public function input($name = NULL, array $options = NULL)
      +    {
      +        foreach ($options as $value => $label) {
      +            $this->_options[$value] = new Typecho_Widget_Helper_Layout('input');
      +            $item = $this->multiline();
      +
      +            $item->addItem($this->_options[$value]->setAttribute('name', $this->name . '[]')
      +            ->setAttribute('type', 'checkbox')
      +            ->setAttribute('value', $value)
      +            ->setAttribute('id', $this->name . '-' . $value));
      +
      +            $labelItem = new Typecho_Widget_Helper_Layout('label');
      +            $item->addItem($labelItem->setAttribute('for', $this->name . '-' . $value)->html($label));
      +            $this->container($item);
      +        }
      +
      +        return current($this->_options);
      +    }
      +
      +    /**
      +     * 设置表单元素值
      +     *
      +     * @access protected
      +     * @param mixed $value 表单元素值
      +     * @return void
      +     */
      +    protected function _value($value)
      +    {
      +        $values = is_array($value) ? $value : array($value);
      +
      +        foreach ($this->_options as $option) {
      +            $option->removeAttribute('checked');
      +        }
      +
      +        foreach ($values as $value) {
      +            if (isset($this->_options[$value])) {
      +                $this->_options[$value]->setAttribute('checked', 'true');
      +            }
      +        }
      +    }
      +}
      diff --git a/var/Typecho/Widget/Helper/Form/Element/Hidden.php b/var/Typecho/Widget/Helper/Form/Element/Hidden.php
      new file mode 100644
      index 00000000..87004e7f
      --- /dev/null
      +++ b/var/Typecho/Widget/Helper/Form/Element/Hidden.php
      @@ -0,0 +1,63 @@
      +<?php
      +/**
      + * 隐藏域帮手类
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/** Typecho_Widget_Helper_Form_Element */
      +require_once 'Typecho/Widget/Helper/Form/Element.php';
      +
      +/**
      + * 隐藏域帮手类
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Typecho_Widget_Helper_Form_Element_Hidden extends Typecho_Widget_Helper_Form_Element
      +{
      +    /**
      +     * 自定义初始函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function init()
      +    {
      +        /** 隐藏此行 */
      +        $this->setAttribute('style', 'display:none');
      +    }
      +
      +    /**
      +     * 初始化当前输入项
      +     *
      +     * @access public
      +     * @param string $name 表单元素名称
      +     * @param array $options 选择项
      +     * @return Typecho_Widget_Helper_Layout
      +     */
      +    public function input($name = NULL, array $options = NULL)
      +    {
      +        $input = new Typecho_Widget_Helper_Layout('input', array('name' => $name, 'type' => 'hidden'));
      +        $this->container($input);
      +        return $input;
      +    }
      +
      +    /**
      +     * 设置表单项默认值
      +     *
      +     * @access protected
      +     * @param string $value 表单项默认值
      +     * @return void
      +     */
      +    protected function _value($value)
      +    {
      +        $this->input->setAttribute('value', $value);
      +    }
      +}
      diff --git a/var/Typecho/Widget/Helper/Form/Element/Password.php b/var/Typecho/Widget/Helper/Form/Element/Password.php
      new file mode 100644
      index 00000000..01f04178
      --- /dev/null
      +++ b/var/Typecho/Widget/Helper/Form/Element/Password.php
      @@ -0,0 +1,53 @@
      +<?php
      +/**
      + * 密码输入表单项帮手
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/** Typecho_Widget_Helper_Form_Element */
      +require_once 'Typecho/Widget/Helper/Form/Element.php';
      +
      +/**
      + * 密码输入表单项帮手类
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Typecho_Widget_Helper_Form_Element_Password extends Typecho_Widget_Helper_Form_Element
      +{
      +    /**
      +     * 初始化当前输入项
      +     *
      +     * @access public
      +     * @param string $name 表单元素名称
      +     * @param array $options 选择项
      +     * @return Typecho_Widget_Helper_Layout
      +     */
      +    public function input($name = NULL, array $options = NULL)
      +    {
      +        $input = new Typecho_Widget_Helper_Layout('input', array('id' => $name . '-0-' . self::$uniqueId,
      +        'name' => $name, 'type' => 'password', 'class' => 'password'));
      +        $this->label->setAttribute('for', $name . '-0-' . self::$uniqueId);
      +        $this->container($input);
      +        return $input;
      +    }
      +
      +    /**
      +     * 设置表单项默认值
      +     *
      +     * @access protected
      +     * @param string $value 表单项默认值
      +     * @return void
      +     */
      +    protected function _value($value)
      +    {
      +        $this->input->setAttribute('value', $value);
      +    }
      +}
      diff --git a/var/Typecho/Widget/Helper/Form/Element/Radio.php b/var/Typecho/Widget/Helper/Form/Element/Radio.php
      new file mode 100644
      index 00000000..58bff53d
      --- /dev/null
      +++ b/var/Typecho/Widget/Helper/Form/Element/Radio.php
      @@ -0,0 +1,79 @@
      +<?php
      +/**
      + * 单选框帮手
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/** Typecho_Widget_Helper_Form_Element */
      +require_once 'Typecho/Widget/Helper/Form/Element.php';
      +
      +/**
      + * 单选框帮手类
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Typecho_Widget_Helper_Form_Element_Radio extends Typecho_Widget_Helper_Form_Element
      +{
      +    /**
      +     * 选择值
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_options = array();
      +
      +    /**
      +     * 初始化当前输入项
      +     *
      +     * @access public
      +     * @param string $name 表单元素名称
      +     * @param array $options 选择项
      +     * @return Typecho_Widget_Helper_Layout
      +     */
      +    public function input($name = NULL, array $options = NULL)
      +    {
      +        foreach ($options as $value => $label) {
      +            $this->_options[$value] = new Typecho_Widget_Helper_Layout('input');
      +            $item = $this->multiline();
      +
      +            $item->addItem($this->_options[$value]->setAttribute('name', $this->name)
      +            ->setAttribute('type', 'radio')
      +            ->setAttribute('value', $value)
      +            ->setAttribute('id', $this->name . '-' . $value));
      +
      +            $labelItem = new Typecho_Widget_Helper_Layout('label');
      +            $item->addItem($labelItem->setAttribute('for', $this->name . '-' . $value)->html($label));
      +            $this->container($item);
      +        }
      +
      +        return current($this->_options);
      +    }
      +
      +    /**
      +     * 设置表单元素值
      +     *
      +     * @access protected
      +     * @param mixed $value 表单元素值
      +     * @return void
      +     */
      +    protected function _value($value)
      +    {
      +        foreach ($this->_options as $option) {
      +            $option->removeAttribute('checked');
      +        }
      +
      +        if (isset($this->_options[$value])) {
      +            $this->value = $value;
      +            $this->_options[$value]->setAttribute('checked', 'true');
      +            $this->input = $this->_options[$value];
      +        }
      +    }
      +}
      diff --git a/var/Typecho/Widget/Helper/Form/Element/Select.php b/var/Typecho/Widget/Helper/Form/Element/Select.php
      new file mode 100644
      index 00000000..c2136c7b
      --- /dev/null
      +++ b/var/Typecho/Widget/Helper/Form/Element/Select.php
      @@ -0,0 +1,73 @@
      +<?php
      +/**
      + * 下拉选择框帮手
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/** Typecho_Widget_Helper_Form_Element */
      +require_once 'Typecho/Widget/Helper/Form/Element.php';
      +
      +/**
      + * 下拉选择框帮手类
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Typecho_Widget_Helper_Form_Element_Select extends Typecho_Widget_Helper_Form_Element
      +{
      +    /**
      +     * 选择值
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_options = array();
      +
      +    /**
      +     * 初始化当前输入项
      +     *
      +     * @access public
      +     * @param string $name 表单元素名称
      +     * @param array $options 选择项
      +     * @return Typecho_Widget_Helper_Layout
      +     */
      +    public function input($name = NULL, array $options = NULL)
      +    {
      +        $input = new Typecho_Widget_Helper_Layout('select');
      +        $this->container($input->setAttribute('name', $name)
      +        ->setAttribute('id', $name . '-0-' . self::$uniqueId));
      +        $this->label->setAttribute('for', $name . '-0-' . self::$uniqueId);
      +
      +        foreach ($options as $value => $label) {
      +            $this->_options[$value] = new Typecho_Widget_Helper_Layout('option');
      +            $input->addItem($this->_options[$value]->setAttribute('value', $value)->html($label));
      +        }
      +
      +        return $input;
      +    }
      +
      +    /**
      +     * 设置表单元素值
      +     *
      +     * @access protected
      +     * @param mixed $value 表单元素值
      +     * @return void
      +     */
      +    protected function _value($value)
      +    {
      +        foreach ($this->_options as $option) {
      +            $option->removeAttribute('selected');
      +        }
      +
      +        if (isset($this->_options[$value])) {
      +            $this->_options[$value]->setAttribute('selected', 'true');
      +        }
      +    }
      +}
      diff --git a/var/Typecho/Widget/Helper/Form/Element/Submit.php b/var/Typecho/Widget/Helper/Form/Element/Submit.php
      new file mode 100644
      index 00000000..fd69f679
      --- /dev/null
      +++ b/var/Typecho/Widget/Helper/Form/Element/Submit.php
      @@ -0,0 +1,52 @@
      +<?php
      +/**
      + * 提交按钮表单项帮手
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/** Typecho_Widget_Helper_Form_Element */
      +require_once 'Typecho/Widget/Helper/Form/Element.php';
      +
      +/**
      + * 提交按钮表单项帮手类
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Typecho_Widget_Helper_Form_Element_Submit extends Typecho_Widget_Helper_Form_Element
      +{
      +    /**
      +     * 初始化当前输入项
      +     *
      +     * @access public
      +     * @param string $name 表单元素名称
      +     * @param array $options 选择项
      +     * @return Typecho_Widget_Helper_Layout
      +     */
      +    public function input($name = NULL, array $options = NULL)
      +    {
      +        $this->setAttribute('class', 'typecho-option typecho-option-submit');
      +        $input = new Typecho_Widget_Helper_Layout('button', array('type' => 'submit'));
      +        $this->container($input);
      +        return $input;
      +    }
      +
      +    /**
      +     * 设置表单元素值
      +     *
      +     * @access protected
      +     * @param mixed $value 表单元素值
      +     * @return void
      +     */
      +    protected function _value($value)
      +    {
      +        $this->input->html($value);
      +    }
      +}
      diff --git a/var/Typecho/Widget/Helper/Form/Element/Text.php b/var/Typecho/Widget/Helper/Form/Element/Text.php
      new file mode 100644
      index 00000000..a62c1bb6
      --- /dev/null
      +++ b/var/Typecho/Widget/Helper/Form/Element/Text.php
      @@ -0,0 +1,54 @@
      +<?php
      +/**
      + * 文字输入表单项帮手
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/** Typecho_Widget_Helper_Form_Element */
      +require_once 'Typecho/Widget/Helper/Form/Element.php';
      +
      +/**
      + * 文字输入表单项帮手类
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Typecho_Widget_Helper_Form_Element_Text extends Typecho_Widget_Helper_Form_Element
      +{
      +    /**
      +     * 初始化当前输入项
      +     *
      +     * @access public
      +     * @param string $name 表单元素名称
      +     * @param array $options 选择项
      +     * @return Typecho_Widget_Helper_Layout
      +     */
      +    public function input($name = NULL, array $options = NULL)
      +    {
      +        $input = new Typecho_Widget_Helper_Layout('input', array('id' => $name . '-0-' . self::$uniqueId,
      +        'name' => $name, 'type' => 'text', 'class' => 'text'));
      +        $this->container($input);
      +        $this->label->setAttribute('for', $name . '-0-' . self::$uniqueId);
      +
      +        return $input;
      +    }
      +
      +    /**
      +     * 设置表单项默认值
      +     *
      +     * @access protected
      +     * @param mixed $value 表单项默认值
      +     * @return void
      +     */
      +    protected function _value($value)
      +    {
      +        $this->input->setAttribute('value', $value);
      +    }
      +}
      diff --git a/var/Typecho/Widget/Helper/Form/Element/Textarea.php b/var/Typecho/Widget/Helper/Form/Element/Textarea.php
      new file mode 100644
      index 00000000..72533987
      --- /dev/null
      +++ b/var/Typecho/Widget/Helper/Form/Element/Textarea.php
      @@ -0,0 +1,52 @@
      +<?php
      +/**
      + * 多行文字域帮手
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/** Typecho_Widget_Helper_Form_Element */
      +require_once 'Typecho/Widget/Helper/Form/Element.php';
      +
      +/**
      + * 多行文字域帮手类
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Typecho_Widget_Helper_Form_Element_Textarea extends Typecho_Widget_Helper_Form_Element
      +{
      +    /**
      +     * 初始化当前输入项
      +     *
      +     * @access public
      +     * @param string $name 表单元素名称
      +     * @param array $options 选择项
      +     * @return Typecho_Widget_Helper_Layout
      +     */
      +    public function input($name = NULL, array $options = NULL)
      +    {
      +        $input = new Typecho_Widget_Helper_Layout('textarea', array('id' => $name . '-0-' . self::$uniqueId, 'name' => $name));
      +        $this->label->setAttribute('for', $name . '-0-' . self::$uniqueId);
      +        $this->container($input->setClose(false));
      +        return $input;
      +    }
      +
      +    /**
      +     * 设置表单项默认值
      +     *
      +     * @access protected
      +     * @param string $value 表单项默认值
      +     * @return void
      +     */
      +    protected function _value($value)
      +    {
      +        $this->input->html($value);
      +    }
      +}
      diff --git a/var/Typecho/Widget/Helper/Layout.php b/var/Typecho/Widget/Helper/Layout.php
      new file mode 100644
      index 00000000..4e51e661
      --- /dev/null
      +++ b/var/Typecho/Widget/Helper/Layout.php
      @@ -0,0 +1,331 @@
      +<?php
      +/**
      + * HTML布局帮手
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * HTML布局帮手类
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Typecho_Widget_Helper_Layout
      +{
      +    /**
      +     * 元素列表
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_items = array();
      +
      +    /**
      +     * 表单属性列表
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_attributes = array();
      +
      +    /**
      +     * 标签名称
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_tagName = 'div';
      +
      +    /**
      +     * 是否自闭合
      +     *
      +     * @access private
      +     * @var boolean
      +     */
      +    private $_close = false;
      +
      +    /**
      +     * 是否强制自闭合
      +     *
      +     * @access private
      +     * @var boolean
      +     */
      +    private $_forceClose = NULL;
      +
      +    /**
      +     * 内部数据
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_html;
      +
      +    /**
      +     * 父节点
      +     *
      +     * @access private
      +     * @var Typecho_Widget_Helper_Layout
      +     */
      +    private $_parent;
      +
      +    /**
      +     * 构造函数,设置标签名称
      +     *
      +     * @access public
      +     * @param string $tagName 标签名称
      +     * @param array $attributes 属性列表
      +     * @return void
      +     */
      +    public function __construct($tagName = 'div', array $attributes = NULL)
      +    {
      +        $this->setTagName($tagName);
      +
      +        if (!empty($attributes)) {
      +            foreach ($attributes as $attributeName => $attributeValue) {
      +                $this->setAttribute($attributeName, $attributeValue);
      +            }
      +        }
      +    }
      +
      +    /**
      +     * 增加元素
      +     *
      +     * @access public
      +     * @param Typecho_Widget_Helper_Layout $item 元素
      +     * @return Typecho_Widget_Helper_Layout
      +     */
      +    public function addItem(Typecho_Widget_Helper_Layout $item)
      +    {
      +        $item->setParent($this);
      +        $this->_items[] = $item;
      +        return $this;
      +    }
      +
      +    /**
      +     * 删除元素
      +     *
      +     * @access public
      +     * @param Typecho_Widget_Helper_Layout $item 元素
      +     * @return Typecho_Widget_Helper_Layout
      +     */
      +    public function removeItem(Typecho_Widget_Helper_Layout $item)
      +    {
      +        unset($this->_items[array_search($item, $this->_items)]);
      +        return $this;
      +    }
      +
      +    /**
      +     * 设置内部数据
      +     *
      +     * @access public
      +     * @param mixed $html 内部数据
      +     * @return unknown
      +     */
      +    public function html($html = false)
      +    {
      +        if (false === $html) {
      +            if (empty($this->_html)) {
      +                foreach ($this->_items as $item) {
      +                    $item->render();
      +                }
      +            } else {
      +                echo $this->_html;
      +            }
      +        } else {
      +            $this->_html = $html;
      +            return $this;
      +        }
      +    }
      +
      +    /**
      +     * 设置标签名
      +     *
      +     * @access public
      +     * @param string $tagName 标签名
      +     * @return void
      +     */
      +    public function setTagName($tagName)
      +    {
      +        $this->_tagName = $tagName;
      +    }
      +
      +    /**
      +     * 设置表单属性
      +     *
      +     * @access public
      +     * @param string $attributeName 属性名称
      +     * @param string $attributeValue 属性值
      +     * @return Typecho_Widget_Helper_Layout
      +     */
      +    public function setAttribute($attributeName, $attributeValue)
      +    {
      +        $this->_attributes[$attributeName] = $attributeValue;
      +        return $this;
      +    }
      +
      +    /**
      +     * 移除某个属性
      +     *
      +     * @access public
      +     * @param string $attributeName 属性名称
      +     * @return Typecho_Widget_Helper_Layout
      +     */
      +    public function removeAttribute($attributeName)
      +    {
      +        if (isset($this->_attributes[$attributeName])) {
      +            unset($this->_attributes[$attributeName]);
      +        }
      +
      +        return $this;
      +    }
      +
      +    /**
      +     * 获取属性
      +     *
      +     * @access public
      +     * @param string $attributeName 属性名
      +     * @return string
      +     */
      +    public function getAttribute($attributeName)
      +    {
      +        return isset($this->_attributes[$attributeName]) ? $this->_attributes[$attributeName] : NULL;
      +    }
      +
      +    /**
      +     * 设置是否自闭合
      +     *
      +     * @access public
      +     * @param boolean $close 是否自闭合
      +     * @return Typecho_Widget_Helper_Layout
      +     */
      +    public function setClose($close)
      +    {
      +        $this->_forceClose = $close;
      +        return $this;
      +    }
      +
      +    /**
      +     * 设置父节点
      +     *
      +     * @access public
      +     * @param Typecho_Widget_Helper_Layout $parent 父节点
      +     * @return Typecho_Widget_Helper_Layout
      +     */
      +    public function setParent(Typecho_Widget_Helper_Layout $parent)
      +    {
      +        $this->_parent = $parent;
      +        return $this;
      +    }
      +
      +    /**
      +     * 获取父节点
      +     *
      +     * @access public
      +     * @return Typecho_Widget_Helper_Layout
      +     */
      +    public function getParent()
      +    {
      +        return $this->_parent;
      +    }
      +
      +    /**
      +     * 增加到某布局元素集合中
      +     *
      +     * @access public
      +     * @param Typecho_Widget_Helper_Layout $parent 布局对象
      +     * @return Typecho_Widget_Helper_Layout
      +     */
      +    public function appendTo(Typecho_Widget_Helper_Layout $parent)
      +    {
      +        $parent->addItem($this);
      +        return $this;
      +    }
      +
      +    /**
      +     * 开始标签
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function start()
      +    {
      +        /** 输出标签 */
      +        echo $this->_tagName ? "<{$this->_tagName}" : NULL;
      +
      +        /** 输出属性 */
      +        foreach ($this->_attributes as $attributeName => $attributeValue) {
      +            echo " {$attributeName}=\"{$attributeValue}\"";
      +        }
      +
      +        /** 支持自闭合 */
      +        if (!$this->_close && $this->_tagName) {
      +            echo ">\n";
      +        }
      +    }
      +
      +    /**
      +     * 结束标签
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function end()
      +    {
      +        if ($this->_tagName) {
      +            echo $this->_close ? " />\n" : "</{$this->_tagName}>\n";
      +        }
      +    }
      +
      +    /**
      +     * 设置属性
      +     *
      +     * @access public
      +     * @param string $attributeName 属性名称
      +     * @param string $attributeValue 属性值
      +     * @return void
      +     */
      +    public function __set($name, $value)
      +    {
      +        $this->_attributes[$name] = $value;
      +    }
      +
      +    /**
      +     * 获取属性
      +     *
      +     * @access public
      +     * @param string $attributeName 属性名称
      +     * @return void
      +     */
      +    public function __get($name)
      +    {
      +        return isset($this->_attributes[$name]) ? $this->_attributes[$name] : NULL;
      +    }
      +
      +    /**
      +     * 输出所有元素
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function render()
      +    {
      +        if (empty($this->_items) && empty($this->_html)) {
      +            $this->_close = true;
      +        }
      +
      +        if (NULL !== $this->_forceClose) {
      +            $this->_close = $this->_forceClose;
      +        }
      +
      +        $this->start();
      +        $this->html();
      +        $this->end();
      +    }
      +}
      diff --git a/var/Typecho/Widget/Helper/PageNavigator.php b/var/Typecho/Widget/Helper/PageNavigator.php
      new file mode 100644
      index 00000000..600d241d
      --- /dev/null
      +++ b/var/Typecho/Widget/Helper/PageNavigator.php
      @@ -0,0 +1,133 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/**
      + * 内容分页抽象类
      + *
      + * @package Widget
      + */
      +abstract class Typecho_Widget_Helper_PageNavigator
      +{
      +    /**
      +     * 记录总数
      +     *
      +     * @access protected
      +     * @var integer
      +     */
      +    protected $_total;
      +
      +    /**
      +     * 页面总数
      +     *
      +     * @access protected
      +     * @var integer
      +     */
      +    protected $_totalPage;
      +
      +    /**
      +     * 当前页面
      +     *
      +     * @access protected
      +     * @var integer
      +     */
      +    protected $_currentPage;
      +
      +    /**
      +     * 每页内容数
      +     *
      +     * @access protected
      +     * @var integer
      +     */
      +    protected $_pageSize;
      +
      +    /**
      +     * 页面链接模板
      +     *
      +     * @access protected
      +     * @var string
      +     */
      +    protected $_pageTemplate;
      +
      +    /**
      +     * 链接锚点
      +     *
      +     * @access protected
      +     * @var string
      +     */
      +    protected $_anchor;
      +
      +    /**
      +     * 页面占位符
      +     *
      +     * @access protected
      +     * @var mixed
      +     */
      +    protected $_pageHolder = array('{page}', '%7Bpage%7D');
      +
      +    /**
      +     * 构造函数,初始化页面基本信息
      +     *
      +     * @access public
      +     * @param integer $total 记录总数
      +     * @param integer $page 当前页面
      +     * @param integer $pageSize 每页记录数
      +     * @param string $pageTemplate 页面链接模板
      +     * @return void
      +     */
      +    public function __construct($total, $currentPage, $pageSize, $pageTemplate)
      +    {
      +        $this->_total = $total;
      +        $this->_totalPage = ceil($total / $pageSize);
      +        $this->_currentPage = $currentPage;
      +        $this->_pageSize = $pageSize;
      +        $this->_pageTemplate = $pageTemplate;
      +
      +        if (($currentPage > $this->_totalPage || $currentPage < 1) && $total > 0) {
      +            throw new Typecho_Widget_Exception('Page Not Exists', 404);
      +        }
      +    }
      +
      +    /**
      +     * 设置页面占位符
      +     *
      +     * @access protected
      +     * @param string $holder 页面占位符
      +     * @return void
      +     */
      +    public function setPageHolder($holder)
      +    {
      +        $this->_pageHolder = array('{' . $holder . '}',
      +        str_replace(array('{', '}'), array('%7B', '%7D'), $holder));
      +    }
      +
      +    /**
      +     * 设置锚点
      +     *
      +     * @access public
      +     * @param string $anchor 锚点
      +     * @return void
      +     */
      +    public function setAnchor($anchor)
      +    {
      +        $this->_anchor = '#' . $anchor;
      +    }
      +
      +    /**
      +     * 输出方法
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function render()
      +    {
      +        /** 载入异常支持 */
      +        require_once 'Typecho/Widget/Exception.php';
      +        throw new Typecho_Widget_Exception(get_class($this) . ':' . __METHOD__, 500);
      +    }
      +}
      diff --git a/var/Typecho/Widget/Helper/PageNavigator/Box.php b/var/Typecho/Widget/Helper/PageNavigator/Box.php
      new file mode 100644
      index 00000000..3537ce8e
      --- /dev/null
      +++ b/var/Typecho/Widget/Helper/PageNavigator/Box.php
      @@ -0,0 +1,82 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/** Typecho_Widget_Helper_PageNavigator */
      +require_once 'Typecho/Widget/Helper/PageNavigator.php';
      +
      +/**
      + * 盒状分页样式
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Typecho_Widget_Helper_PageNavigator_Box extends Typecho_Widget_Helper_PageNavigator
      +{
      +    /**
      +     * 输出盒装样式分页栏
      +     *
      +     * @access public
      +     * @param string $prevWord 上一页文字
      +     * @param string $nextWord 下一页文字
      +     * @param int $splitPage 分割范围
      +     * @param string $splitWord 分割字符
      +     * @return void
      +     */
      +    public function render($prevWord = 'PREV', $nextWord = 'NEXT', $splitPage = 3, $splitWord = '...')
      +    {
      +        if ($this->_total < 1) {
      +            return;
      +        }
      +
      +        $from = max(1, $this->_currentPage - $splitPage);
      +        $to = min($this->_totalPage, $this->_currentPage + $splitPage);
      +
      +        //输出上一页
      +        if ($this->_currentPage > 1) {
      +            echo '<li><a class="prev" href="' . str_replace($this->_pageHolder, $this->_currentPage - 1, $this->_pageTemplate) . $this->_anchor . '">'
      +            . $prevWord . '</a></li>';
      +        }
      +
      +        //输出第一页
      +        if ($from > 1) {
      +            echo '<li><a href="' . str_replace($this->_pageHolder, 1, $this->_pageTemplate) . $this->_anchor . '">1</a></li>';
      +
      +            if ($from > 2) {
      +                //输出省略号
      +                echo '<li>' . $splitWord . '</li>';
      +            }
      +        }
      +
      +        //输出中间页
      +        for ($i = $from; $i <= $to; $i ++) {
      +                echo '<li' . ($i != $this->_currentPage ? '' : ' class="current"') . '><a href="' .
      +                str_replace($this->_pageHolder, $i, $this->_pageTemplate) . $this->_anchor . '">'
      +                . $i . '</a></li>';
      +        }
      +
      +        //输出最后页
      +        if ($to < $this->_totalPage) {
      +            if ($to < $this->_totalPage - 1) {
      +                echo '<li>' . $splitWord . '</li>';
      +            }
      +
      +            echo '<li><a href="' . str_replace($this->_pageHolder, $this->_totalPage, $this->_pageTemplate) . $this->_anchor . '">'
      +            . $this->_totalPage . '</a></li>';
      +        }
      +
      +        //输出下一页
      +        if ($this->_currentPage < $this->_totalPage) {
      +            echo '<li><a class="next" href="' . str_replace($this->_pageHolder, $this->_currentPage + 1, $this->_pageTemplate)
      +            . $this->_anchor . '">' . $nextWord . '</a></li>';
      +        }
      +    }
      +}
      diff --git a/var/Typecho/Widget/Helper/PageNavigator/Classic.php b/var/Typecho/Widget/Helper/PageNavigator/Classic.php
      new file mode 100644
      index 00000000..0b0246b0
      --- /dev/null
      +++ b/var/Typecho/Widget/Helper/PageNavigator/Classic.php
      @@ -0,0 +1,69 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/** Typecho_Widget_Helper_PageNavigator */
      +require_once 'Typecho/Widget/Helper/PageNavigator.php';
      +
      +/**
      + * 经典分页样式
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Typecho_Widget_Helper_PageNavigator_Classic extends Typecho_Widget_Helper_PageNavigator
      +{
      +    /**
      +     * 输出经典样式的分页
      +     *
      +     * @access public
      +     * @param string $prevWord 上一页文字
      +     * @param string $nextWord 下一页文字
      +     * @return void
      +     */
      +    public function render($prevWord = 'PREV', $nextWord = 'NEXT')
      +    {
      +        $this->prev($prevWord);
      +        $this->next($nextWord);
      +    }
      +
      +    /**
      +     * 输出上一页
      +     *
      +     * @access public
      +     * @param string $prevWord 上一页文字
      +     * @return void
      +     */
      +    public function prev($prevWord = 'PREV')
      +    {
      +        //输出上一页
      +        if ($this->_total > 0 && $this->_currentPage > 1) {
      +            echo '<a class="prev" href="' . str_replace($this->_pageHolder, $this->_currentPage - 1, $this->_pageTemplate) . $this->_anchor . '">'
      +            . $prevWord . '</a>';
      +        }
      +    }
      +
      +    /**
      +     * 输出下一页
      +     *
      +     * @access public
      +     * @param string $prevWord 下一页文字
      +     * @return void
      +     */
      +    public function next($nextWord = 'NEXT')
      +    {
      +        //输出下一页
      +        if ($this->_total > 0 && $this->_currentPage < $this->_totalPage) {
      +            echo '<a class="next" title="" href="' . str_replace($this->_pageHolder, $this->_currentPage + 1, $this->_pageTemplate) . $this->_anchor . '">'
      +            . $nextWord . '</a>';
      +        }
      +    }
      +}
      diff --git a/var/Upgrade.php b/var/Upgrade.php
      new file mode 100644
      index 00000000..66e31bac
      --- /dev/null
      +++ b/var/Upgrade.php
      @@ -0,0 +1,958 @@
      +<?php
      +/**
      + * 升级程序
      + *
      + * @category typecho
      + * @package Upgrade
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 升级程序
      + *
      + * @category typecho
      + * @package Upgrade
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Upgrade
      +{
      +    /**
      +     * 升级至9.1.7
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_3r9_1_7($db, $options)
      +    {
      +        /** 转换评论 */
      +        $i = 1;
      +
      +        while (true) {
      +            $result = $db->query($db->select('coid', 'text')->from('table.comments')
      +            ->order('coid', Typecho_Db::SORT_ASC)->page($i, 100));
      +            $j = 0;
      +
      +            while ($row = $db->fetchRow($result)) {
      +                $text = nl2br($row['text']);
      +
      +                $db->query($db->update('table.comments')
      +                ->rows(array('text' => $text))
      +                ->where('coid = ?', $row['coid']));
      +
      +                $j ++;
      +                unset($text);
      +                unset($row);
      +            }
      +
      +            if ($j < 100) {
      +                break;
      +            }
      +
      +            $i ++;
      +            unset($result);
      +        }
      +
      +        /** 转换内容 */
      +        $i = 1;
      +
      +        while (true) {
      +            $result = $db->query($db->select('cid', 'text')->from('table.contents')
      +            ->order('cid', Typecho_Db::SORT_ASC)->page($i, 100));
      +            $j = 0;
      +
      +            while ($row = $db->fetchRow($result)) {
      +                $text = preg_replace(
      +                array("/\s*<p>/is", "/\s*<\/p>\s*/is", "/\s*<br\s*\/>\s*/is",
      +                "/\s*<(div|blockquote|pre|table|ol|ul)>/is", "/<\/(div|blockquote|pre|table|ol|ul)>\s*/is"),
      +                array('', "\n\n", "\n", "\n\n<\\1>", "</\\1>\n\n"),
      +                $row['text']);
      +
      +                $db->query($db->update('table.contents')
      +                ->rows(array('text' => $text))
      +                ->where('cid = ?', $row['cid']));
      +
      +                $j ++;
      +                unset($text);
      +                unset($row);
      +            }
      +
      +            if ($j < 100) {
      +                break;
      +            }
      +
      +            $i ++;
      +            unset($result);
      +        }
      +    }
      +
      +    /**
      +     * 升级至9.1.14
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_4r9_1_14($db, $options)
      +    {
      +        if (is_writeable(__TYPECHO_ROOT_DIR__ . '/config.inc.php')) {
      +            $handle = fopen(__TYPECHO_ROOT_DIR__ . '/config.inc.php', 'ab');
      +            fwrite($handle, '
      +/** 初始化时区 */
      +Typecho_Date::setTimezoneOffset($options->timezone);
      +');
      +            fclose($handle);
      +        } else {
      +            throw new Typecho_Exception(_t('config.inc.php 文件无法写入, 请将它的权限设置为可写'));
      +        }
      +    }
      +
      +    /**
      +     * 升级至9.2.3
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_5r9_2_3($db, $options)
      +    {
      +        /** 转换评论 */
      +        $i = 1;
      +
      +        while (true) {
      +            $result = $db->query($db->select('coid', 'text')->from('table.comments')
      +            ->order('coid', Typecho_Db::SORT_ASC)->page($i, 100));
      +            $j = 0;
      +
      +            while ($row = $db->fetchRow($result)) {
      +                $text = preg_replace("/\s*<br\s*\/>\s*/i", "\n", $row['text']);
      +
      +                $db->query($db->update('table.comments')
      +                ->rows(array('text' => $text))
      +                ->where('coid = ?', $row['coid']));
      +
      +                $j ++;
      +                unset($text);
      +                unset($row);
      +            }
      +
      +            if ($j < 100) {
      +                break;
      +            }
      +
      +            $i ++;
      +            unset($result);
      +        }
      +    }
      +
      +    /**
      +     * 升级至9.2.18
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_5r9_2_18($db, $options)
      +    {
      +        /** 升级编辑器接口 */
      +        $db->query($db->update('table.options')
      +        ->rows(array('value' => 350))
      +        ->where('name = ?', 'editorSize'));
      +    }
      +
      +    /**
      +     * 升级至9.2.25
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_5r9_2_25($db, $options)
      +    {
      +        /** 升级编辑器接口 */
      +        $db->query($db->insert('table.options')
      +        ->rows(array('name' => 'useRichEditor', 'user' => 0, 'value' => 1)));
      +    }
      +
      +    /**
      +     * 升级至9.4.3
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_6r9_4_3($db, $options)
      +    {
      +        /** 修改数据库字段 */
      +        $adapterName = $db->getAdapterName();
      +        $prefix  = $db->getPrefix();
      +
      +        //删除老数据
      +        try {
      +            switch (true) {
      +                case false !== strpos($adapterName, 'Mysql'):
      +                    $db->query('ALTER TABLE  `' . $prefix . 'users` DROP  `meta`', Typecho_Db::WRITE);
      +                    break;
      +
      +                case false !== strpos($adapterName, 'Pgsql'):
      +                    $db->query('ALTER TABLE  "' . $prefix . 'users" DROP COLUMN  "meta"', Typecho_Db::WRITE);
      +                    break;
      +
      +                case false !== strpos($adapterName, 'SQLite'):
      +                    $uuid = uniqid();
      +                    $db->query('CREATE TABLE ' . $prefix . 'users_' . $uuid . ' ( "uid" INTEGER NOT NULL PRIMARY KEY,
      +            "name" varchar(32) default NULL ,
      +            "password" varchar(64) default NULL ,
      +            "mail" varchar(200) default NULL ,
      +            "url" varchar(200) default NULL ,
      +            "screenName" varchar(32) default NULL ,
      +            "created" int(10) default \'0\' ,
      +            "activated" int(10) default \'0\' ,
      +            "logged" int(10) default \'0\' ,
      +            "group" varchar(16) default \'visitor\' ,
      +            "authCode" varchar(64) default NULL)', Typecho_Db::WRITE);
      +                    $db->query('INSERT INTO ' . $prefix . 'users_' . $uuid . ' ("uid", "name", "password", "mail", "url"
      +                    , "screenName", "created", "activated", "logged", "group", "authCode") SELECT "uid", "name", "password", "mail", "url"
      +                    , "screenName", "created", "activated", "logged", "group", "authCode" FROM ' . $prefix . 'users', Typecho_Db::WRITE);
      +                    $db->query('DROP TABLE  ' . $prefix . 'users', Typecho_Db::WRITE);
      +                    $db->query('CREATE TABLE ' . $prefix . 'users ( "uid" INTEGER NOT NULL PRIMARY KEY,
      +            "name" varchar(32) default NULL ,
      +            "password" varchar(64) default NULL ,
      +            "mail" varchar(200) default NULL ,
      +            "url" varchar(200) default NULL ,
      +            "screenName" varchar(32) default NULL ,
      +            "created" int(10) default \'0\' ,
      +            "activated" int(10) default \'0\' ,
      +            "logged" int(10) default \'0\' ,
      +            "group" varchar(16) default \'visitor\' ,
      +            "authCode" varchar(64) default NULL)', Typecho_Db::WRITE);
      +                    $db->query('INSERT INTO ' . $prefix . 'users SELECT * FROM ' . $prefix . 'users_' . $uuid, Typecho_Db::WRITE);
      +                    $db->query('DROP TABLE  ' . $prefix . 'users_' . $uuid, Typecho_Db::WRITE);
      +                    $db->query('CREATE UNIQUE INDEX ' . $prefix . 'users_name ON ' . $prefix . 'users ("name")', Typecho_Db::WRITE);
      +                    $db->query('CREATE UNIQUE INDEX ' . $prefix . 'users_mail ON ' . $prefix . 'users ("mail")', Typecho_Db::WRITE);
      +
      +                    break;
      +
      +                default:
      +                    break;
      +            }
      +        } catch (Typecho_Db_Exception $e) {
      +            //do nothing
      +        }
      +
      +        //将slug字段长度增加到200
      +        try {
      +            switch (true) {
      +                case false !== strpos($adapterName, 'Mysql'):
      +                    $db->query("ALTER TABLE  `" . $prefix . "contents` MODIFY COLUMN `slug` varchar(200)", Typecho_Db::WRITE);
      +                    $db->query("ALTER TABLE  `" . $prefix . "metas` MODIFY COLUMN `slug` varchar(200)", Typecho_Db::WRITE);
      +                    break;
      +
      +                case false !== strpos($adapterName, 'Pgsql'):
      +                    $db->query('ALTER TABLE  "' . $prefix . 'contents" ALTER COLUMN  "slug" TYPE varchar(200)', Typecho_Db::WRITE);
      +                    $db->query('ALTER TABLE  "' . $prefix . 'metas" ALTER COLUMN  "slug" TYPE varchar(200)', Typecho_Db::WRITE);
      +                    break;
      +
      +                case false !== strpos($adapterName, 'SQLite'):
      +                    $uuid = uniqid();
      +                    $db->query('CREATE TABLE ' . $prefix . 'contents' . $uuid . ' ( "cid" INTEGER NOT NULL PRIMARY KEY,
      +        "title" varchar(200) default NULL ,
      +        "slug" varchar(200) default NULL ,
      +        "created" int(10) default \'0\' ,
      +        "modified" int(10) default \'0\' ,
      +        "text" text ,
      +        "order" int(10) default \'0\' ,
      +        "authorId" int(10) default \'0\' ,
      +        "template" varchar(32) default NULL ,
      +        "type" varchar(16) default \'post\' ,
      +        "status" varchar(16) default \'publish\' ,
      +        "password" varchar(32) default NULL ,
      +        "commentsNum" int(10) default \'0\' ,
      +        "allowComment" char(1) default \'0\' ,
      +        "allowPing" char(1) default \'0\' ,
      +        "allowFeed" char(1) default \'0\' )', Typecho_Db::WRITE);
      +                    $db->query('INSERT INTO ' . $prefix . 'contents' . $uuid . ' SELECT * FROM ' . $prefix . 'contents', Typecho_Db::WRITE);
      +                    $db->query('DROP TABLE  ' . $prefix . 'contents', Typecho_Db::WRITE);
      +                    $db->query('CREATE TABLE ' . $prefix . 'contents ( "cid" INTEGER NOT NULL PRIMARY KEY,
      +        "title" varchar(200) default NULL ,
      +        "slug" varchar(200) default NULL ,
      +        "created" int(10) default \'0\' ,
      +        "modified" int(10) default \'0\' ,
      +        "text" text ,
      +        "order" int(10) default \'0\' ,
      +        "authorId" int(10) default \'0\' ,
      +        "template" varchar(32) default NULL ,
      +        "type" varchar(16) default \'post\' ,
      +        "status" varchar(16) default \'publish\' ,
      +        "password" varchar(32) default NULL ,
      +        "commentsNum" int(10) default \'0\' ,
      +        "allowComment" char(1) default \'0\' ,
      +        "allowPing" char(1) default \'0\' ,
      +        "allowFeed" char(1) default \'0\' )', Typecho_Db::WRITE);
      +                    $db->query('INSERT INTO ' . $prefix . 'contents SELECT * FROM ' . $prefix . 'contents' . $uuid, Typecho_Db::WRITE);
      +                    $db->query('DROP TABLE  ' . $prefix . 'contents' . $uuid, Typecho_Db::WRITE);
      +                    $db->query('CREATE UNIQUE INDEX ' . $prefix . 'contents_slug ON ' . $prefix . 'contents ("slug")', Typecho_Db::WRITE);
      +                    $db->query('CREATE INDEX ' . $prefix . 'contents_created ON ' . $prefix . 'contents ("created")', Typecho_Db::WRITE);
      +
      +                    $db->query('CREATE TABLE ' . $prefix . 'metas' . $uuid . ' ( "mid" INTEGER NOT NULL PRIMARY KEY,
      +        "name" varchar(200) default NULL ,
      +        "slug" varchar(200) default NULL ,
      +        "type" varchar(32) NOT NULL ,
      +        "description" varchar(200) default NULL ,
      +        "count" int(10) default \'0\' ,
      +        "order" int(10) default \'0\' )', Typecho_Db::WRITE);
      +                    $db->query('INSERT INTO ' . $prefix . 'metas' . $uuid . ' SELECT * FROM ' . $prefix . 'metas', Typecho_Db::WRITE);
      +                    $db->query('DROP TABLE  ' . $prefix . 'metas', Typecho_Db::WRITE);
      +                    $db->query('CREATE TABLE ' . $prefix . 'metas ( "mid" INTEGER NOT NULL PRIMARY KEY,
      +        "name" varchar(200) default NULL ,
      +        "slug" varchar(200) default NULL ,
      +        "type" varchar(32) NOT NULL ,
      +        "description" varchar(200) default NULL ,
      +        "count" int(10) default \'0\' ,
      +        "order" int(10) default \'0\' )', Typecho_Db::WRITE);
      +                    $db->query('INSERT INTO ' . $prefix . 'metas SELECT * FROM ' . $prefix . 'metas' . $uuid, Typecho_Db::WRITE);
      +                    $db->query('DROP TABLE  ' . $prefix . 'metas' . $uuid, Typecho_Db::WRITE);
      +                    $db->query('CREATE INDEX ' . $prefix . 'metas_slug ON ' . $prefix . 'metas ("slug")', Typecho_Db::WRITE);
      +
      +                    break;
      +
      +                default:
      +                    break;
      +            }
      +        } catch (Typecho_Db_Exception $e) {
      +            //do nothing
      +        }
      +    }
      +
      +    /**
      +     * 升级至9.4.21
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_6r9_4_21($db, $options)
      +    {
      +        //创建上传目录
      +        $uploadDir = Typecho_Common::url(Widget_Upload::UPLOAD_PATH, __TYPECHO_ROOT_DIR__);
      +        if (is_dir($uploadDir)) {
      +            if (!is_writeable($uploadDir)) {
      +                if (!@chmod($uploadDir, 0644)) {
      +                    throw new Typecho_Widget_Exception(_t('上传目录无法写入, 请手动将安装目录下的 %s 目录的权限设置为可写然后继续升级', Widget_Upload::UPLOAD_PATH));
      +                }
      +            }
      +        } else {
      +            if (!@mkdir($uploadDir, 0644)) {
      +                throw new Typecho_Widget_Exception(_t('上传目录无法创建, 请手动创建安装目录下的 %s 目录, 并将它的权限设置为可写然后继续升级', Widget_Upload::UPLOAD_PATH));
      +            }
      +        }
      +
      +        /** 增加自定义主页 */
      +        $db->query($db->insert('table.options')
      +                ->rows(array('name' => 'customHomePage', 'user' => 0, 'value' => 0)));
      +
      +        /** 增加文件上传散列函数 */
      +        $db->query($db->insert('table.options')
      +                ->rows(array('name' => 'uploadHandle', 'user' => 0, 'value' => 'a:2:{i:0;s:13:"Widget_Upload";i:1;s:12:"uploadHandle";}')));
      +
      +        /** 增加文件删除函数 */
      +        $db->query($db->insert('table.options')
      +                ->rows(array('name' => 'deleteHandle', 'user' => 0, 'value' => 'a:2:{i:0;s:13:"Widget_Upload";i:1;s:12:"deleteHandle";}')));
      +
      +        /** 增加文件展现散列函数 */
      +        $db->query($db->insert('table.options')
      +                ->rows(array('name' => 'attachmentHandle', 'user' => 0, 'value' => 'a:2:{i:0;s:13:"Widget_Upload";i:1;s:16:"attachmentHandle";}')));
      +
      +        /** 增加文件扩展名 */
      +        $db->query($db->insert('table.options')
      +                ->rows(array('name' => 'attachmentTypes', 'user' => 0, 'value' => '*.jpg;*.gif;*.png;*.zip;*.tar.gz')));
      +
      +        /** 增加路由 */
      +        $routingTable = $options->routingTable;
      +        if (isset($routingTable[0])) {
      +            unset($routingTable[0]);
      +        }
      +
      +        $pre = array_slice($routingTable, 0, 2);
      +        $next = array_slice($routingTable, 2);
      +
      +        $routingTable = array_merge($pre, array('attachment' =>
      +          array (
      +            'url' => '/attachment/[cid:digital]/',
      +            'widget' => 'Widget_Archive',
      +            'action' => 'render',
      +          )), $next);
      +
      +        $db->query($db->update('table.options')
      +                ->rows(array('value' => serialize($routingTable)))
      +                ->where('name = ?', 'routingTable'));
      +    }
      +
      +    /**
      +     * 升级至9.6.1
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_6r9_6_1($db, $options)
      +    {
      +        /** 去掉所见即所得编辑器 */
      +        $db->query($db->delete('table.options')
      +        ->where('name = ?', 'useRichEditor'));
      +
      +        /** 修正自动保存值 */
      +        $db->query($db->update('table.options')
      +        ->rows(array('value' => 0))
      +        ->where('name = ?', 'autoSave'));
      +
      +        /** 增加堆楼楼层数目限制 */
      +        $db->query($db->insert('table.options')
      +        ->rows(array('name' => 'commentsMaxNestingLevels', 'user' => 0, 'value' => 5)));
      +    }
      +
      +    /**
      +     * 升级至9.6.16
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_7r9_6_16($db, $options)
      +    {
      +        /** 增加附件handle */
      +        $db->query($db->insert('table.options')
      +        ->rows(array('name' => 'modifyHandle', 'value' => 'a:2:{i:0;s:13:"Widget_Upload";i:1;s:12:"modifyHandle";}')));
      +
      +        /** 增加附件handle */
      +        $db->query($db->insert('table.options')
      +        ->rows(array('name' => 'attachmentDataHandle', 'value' => 'a:2:{i:0;s:13:"Widget_Upload";i:1;s:20:"attachmentDataHandle";}')));
      +
      +        /** 转换附件 */
      +        $i = 1;
      +
      +        while (true) {
      +            $result = $db->query($db->select('cid', 'text')->from('table.contents')
      +            ->where('type = ?', 'attachment')
      +            ->order('cid', Typecho_Db::SORT_ASC)->page($i, 100));
      +            $j = 0;
      +
      +            while ($row = $db->fetchRow($result)) {
      +                $attachment = unserialize($row['text']);
      +                $attachment['modifyHandle'] = array('Widget_Upload', 'modifyHandle');
      +                $attachment['attachmentDataHandle'] = array('Widget_Upload', 'attachmentDataHandle');
      +
      +                $db->query($db->update('table.contents')
      +                ->rows(array('text' => serialize($attachment)))
      +                ->where('cid = ?', $row['cid']));
      +
      +                $j ++;
      +                unset($text);
      +                unset($row);
      +            }
      +
      +            if ($j < 100) {
      +                break;
      +            }
      +
      +            $i ++;
      +            unset($result);
      +        }
      +    }
      +
      +    /**
      +     * 升级至9.6.16.1
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_7r9_6_16_1($db, $options)
      +    {
      +        //修改action路由
      +        $routingTable = $options->routingTable;
      +        if (isset($routingTable[0])) {
      +            unset($routingTable[0]);
      +        }
      +
      +        $routingTable['do'] = array (
      +            'url' => '/action/[action:alpha]',
      +            'widget' => 'Widget_Do',
      +            'action' => 'action'
      +        );
      +
      +        $db->query($db->update('table.options')
      +                ->rows(array('value' => serialize($routingTable)))
      +                ->where('name = ?', 'routingTable'));
      +
      +        //干掉垃圾数据
      +        $db->query($db->update('table.options')
      +                ->rows(array('value' => 'a:0:{}'))
      +                ->where('name = ?', 'actionTable'));
      +    }
      +
      +    /**
      +     * 升级至9.7.2
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_7r9_7_2($db, $options)
      +    {
      +        /** 增加默认内容格式 */
      +        $db->query($db->insert('table.options')
      +        ->rows(array('name' => 'contentType', 'user' => 0, 'value' => 'text/html')));
      +
      +        /** 增加gzip开关 */
      +        $db->query($db->insert('table.options')
      +        ->rows(array('name' => 'gzip', 'user' => 0, 'value' => 0)));
      +
      +
      +        if(is_writeable(__TYPECHO_ROOT_DIR__ . '/config.inc.php')) {
      +
      +            $contents = file_get_contents(__TYPECHO_ROOT_DIR__ . '/config.inc.php');
      +            $contents = preg_replace("/Typecho_Common::init([^;]+);/is", "Typecho_Common::init(array(
      +    'autoLoad'          =>  true,
      +    'exception'         =>  'Widget_ExceptionHandle',
      +    'gpc'               =>  true
      +));", $contents);
      +            $contents = preg_replace("/\s*(\/[^\/]+\/)?\s*Typecho_Widget::widget([^;]+);/is", '', $contents);
      +            $contents = preg_replace("/\s*(\/[^\/]+\/)?\s*Typecho_Router::setRoutes([^;]+);/is", '', $contents);
      +            $contents = preg_replace("/\s*(\/[^\/]+\/)?\s*Typecho_Plugin::init([^;]+);/is", '', $contents);
      +            $contents = preg_replace("/\s*(\/[^\/]+\/)?\s*Typecho_Date::setTimezoneOffset([^;]+);/is", '', $contents);
      +            file_put_contents(__TYPECHO_ROOT_DIR__ . '/config.inc.php', $contents);
      +
      +        } else {
      +            /** 升级提示 */
      +            return _t('建议您在升级到 Typecho 0.7/9.7.2 以后的版本后, 立刻执行<a href="http://typecho.org/upgrade/9.7.2">以下优化步骤</a>');
      +        }
      +    }
      +
      +    /**
      +     * 升级至9.9.2
      +     * 修改contents表的text字段类型为longtext(仅限mysql, pgsql和sqlite都是不限制长度的)
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_7r9_9_2($db, $options)
      +    {
      +        $adapterName = $db->getAdapterName();
      +        $prefix  = $db->getPrefix();
      +
      +        if (false !== strpos($adapterName, 'Mysql')) {
      +            $db->query("ALTER TABLE  `{$prefix}contents` CHANGE  `text`  `text` LONGTEXT NULL DEFAULT NULL COMMENT  '内容文字'", Typecho_Db::WRITE);
      +        }
      +    }
      +
      +    /**
      +     * 升级至9.9.15
      +     * 优化路由表结构
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_7r9_9_15($db, $options)
      +    {
      +        /** 增加路由 */
      +        $routingTable = $options->routingTable;
      +        if (isset($routingTable[0])) {
      +            unset($routingTable[0]);
      +        }
      +
      +        $do = $routingTable['do'];
      +        unset($routingTable['do']);
      +
      +        $pre = array_slice($routingTable, 0, 1);
      +        $next = array_slice($routingTable, 1);
      +
      +        $routingTable = array_merge($pre, array('do' => $do), $next);
      +
      +        $db->query($db->update('table.options')
      +                ->rows(array('value' => serialize($routingTable)))
      +                ->where('name = ?', 'routingTable'));
      +    }
      +
      +    /**
      +     * 升级至9.9.22
      +     * 此升级用于修复从0.6升级时损坏的路由表
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_7r9_9_22($db, $options)
      +    {
      +        /** 修改路由 */
      +        $routingTable = $options->routingTable;
      +        if (isset($routingTable[0])) {
      +            unset($routingTable[0]);
      +        }
      +
      +        $routingTable['do'] = array (
      +            'url' => '/action/[action:alpha]',
      +            'widget' => 'Widget_Do',
      +            'action' => 'action'
      +        );
      +
      +        $do = $routingTable['do'];
      +        unset($routingTable['do']);
      +
      +        $pre = array_slice($routingTable, 0, 1);
      +        $next = array_slice($routingTable, 1);
      +
      +        $routingTable = array_merge($pre, array('do' => $do), $next);
      +
      +        $db->query($db->update('table.options')
      +                ->rows(array('value' => serialize($routingTable)))
      +                ->where('name = ?', 'routingTable'));
      +    }
      +
      +    /**
      +     * 升级至9.9.27
      +     * 增加按作者归档
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_7r9_9_27($db, $options)
      +    {
      +        /** 修改路由 */
      +        $routingTable = $options->routingTable;
      +        if (isset($routingTable[0])) {
      +            unset($routingTable[0]);
      +        }
      +
      +        $pre = array_slice($routingTable, 0, 6);
      +        $next = array_slice($routingTable, 6);
      +        $next_pre = array_slice($next, 0, 5);
      +        $next_next = array_slice($next, 5);
      +
      +        $author = array (
      +            'url' => '/author/[uid:digital]/',
      +            'widget' => 'Widget_Archive',
      +            'action' => 'render',
      +        );
      +
      +        $author_page = array (
      +            'url' => '/author/[uid:digital]/[page:digital]/',
      +            'widget' => 'Widget_Archive',
      +            'action' => 'render',
      +        );
      +
      +        $routingTable = array_merge($pre, array('author' => $author), $next_pre,
      +        array('author_page' => $author_page), $next_next);
      +
      +        $db->query($db->update('table.options')
      +                ->rows(array('value' => serialize($routingTable)))
      +                ->where('name = ?', 'routingTable'));
      +    }
      +
      +    /**
      +     * 升级至9.10.16
      +     * 增加评论分页
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_7r9_10_16($db, $options)
      +    {
      +        /** 修改路由 */
      +        $routingTable = $options->routingTable;
      +        if (isset($routingTable[0])) {
      +            unset($routingTable[0]);
      +        }
      +
      +        $pre = array_slice($routingTable, 0, 20);
      +        $next = array_slice($routingTable, 20);
      +
      +        $commentPage = array (
      +            'url' => '[permalink:string]/[commentType:alpha]-page-[commentPage:digital]',
      +            'widget' => 'Widget_Archive',
      +            'action' => 'render',
      +        );
      +
      +        $routingTable = array_merge($pre, array('comment_page' => $commentPage), $next);
      +
      +        $db->query($db->update('table.options')
      +                ->rows(array('value' => serialize($routingTable)))
      +                ->where('name = ?', 'routingTable'));
      +    }
      +
      +    /**
      +     * 升级至9.10.16
      +     * 增加评论分页
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_7r9_10_20($db, $options)
      +    {
      +        /** 修改数据库字段 */
      +        $adapterName = $db->getAdapterName();
      +        $prefix  = $db->getPrefix();
      +
      +        switch (true) {
      +            case false !== strpos($adapterName, 'Mysql'):
      +                $db->query('ALTER TABLE  `' . $prefix . 'contents` ADD  `parent` INT(10) UNSIGNED NULL DEFAULT \'0\'', Typecho_Db::WRITE);
      +                break;
      +
      +            case false !== strpos($adapterName, 'Pgsql'):
      +                $db->query('ALTER TABLE  "' . $prefix . 'contents" ADD COLUMN  "parent" INT NULL DEFAULT \'0\'', Typecho_Db::WRITE);
      +                break;
      +
      +            case false !== strpos($adapterName, 'SQLite'):
      +                $uuid = uniqid();
      +                $db->query('CREATE TABLE ' . $prefix . 'contents_tmp ( "cid" INTEGER NOT NULL PRIMARY KEY,
      +"title" varchar(200) default NULL ,
      +"slug" varchar(200) default NULL ,
      +"created" int(10) default \'0\' ,
      +"modified" int(10) default \'0\' ,
      +"text" text ,
      +"order" int(10) default \'0\' ,
      +"authorId" int(10) default \'0\' ,
      +"template" varchar(32) default NULL ,
      +"type" varchar(16) default \'post\' ,
      +"status" varchar(16) default \'publish\' ,
      +"password" varchar(32) default NULL ,
      +"commentsNum" int(10) default \'0\' ,
      +"allowComment" char(1) default \'0\' ,
      +"allowPing" char(1) default \'0\' ,
      +"allowFeed" char(1) default \'0\' ,
      +"parent" int(10) default \'0\' )', Typecho_Db::WRITE);
      +                $db->query('INSERT INTO ' . $prefix . 'contents_tmp ("cid", "title", "slug", "created", "modified"
      +                , "text", "order", "authorId", "template", "type", "status", "password", "commentsNum", "allowComment",
      +                "allowPing", "allowFeed", "parent") SELECT "cid", "title", "slug", "created", "modified"
      +                , "text", "order", "authorId", "template", "type", "status", "password", "commentsNum", "allowComment",
      +                "allowPing", "allowFeed", "parent" FROM ' . $prefix . 'contents', Typecho_Db::WRITE);
      +                $db->query('DROP TABLE  ' . $prefix . 'contents', Typecho_Db::WRITE);
      +                $db->query('CREATE TABLE ' . $prefix . 'contents ( "cid" INTEGER NOT NULL PRIMARY KEY,
      +"title" varchar(200) default NULL ,
      +"slug" varchar(200) default NULL ,
      +"created" int(10) default \'0\' ,
      +"modified" int(10) default \'0\' ,
      +"text" text ,
      +"order" int(10) default \'0\' ,
      +"authorId" int(10) default \'0\' ,
      +"template" varchar(32) default NULL ,
      +"type" varchar(16) default \'post\' ,
      +"status" varchar(16) default \'publish\' ,
      +"password" varchar(32) default NULL ,
      +"commentsNum" int(10) default \'0\' ,
      +"allowComment" char(1) default \'0\' ,
      +"allowPing" char(1) default \'0\' ,
      +"allowFeed" char(1) default \'0\' ,
      +"parent" int(10) default \'0\' )', Typecho_Db::WRITE);
      +                $db->query('INSERT INTO ' . $prefix . 'contents SELECT * FROM ' . $prefix . 'contents_tmp', Typecho_Db::WRITE);
      +                $db->query('DROP TABLE  ' . $prefix . 'contents_tmp', Typecho_Db::WRITE);
      +
      +                break;
      +
      +            default:
      +                break;
      +        }
      +
      +        $db->query($db->update('table.contents')->expression('parent', 'order')
      +        ->where('type = ?', 'attachment'));
      +
      +        $db->query($db->update('table.contents')->rows(array('order' => 0))
      +        ->where('type = ?', 'attachment'));
      +    }
      +
      +    /**
      +     * 升级至9.10.31
      +     * 修正附件
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_7r9_10_31($db, $options)
      +    {
      +        $db->query($db->update('table.contents')->rows(array('status' => 'publish'))
      +        ->where('type = ?', 'attachment'));
      +    }
      +
      +    /**
      +     * 升级至9.11.25
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_8r9_11_25($db, $options)
      +    {
      +        /** 增加若干选项 */
      +        $db->query($db->insert('table.options')
      +        ->rows(array('name' => 'commentsPageBreak', 'user' => 0, 'value' => 0)));
      +
      +        $db->query($db->insert('table.options')
      +        ->rows(array('name' => 'commentsThreaded', 'user' => 0, 'value' => 1)));
      +
      +        $db->query($db->insert('table.options')
      +        ->rows(array('name' => 'commentsPageSize', 'user' => 0, 'value' => 20)));
      +
      +        $db->query($db->insert('table.options')
      +        ->rows(array('name' => 'commentsPageDisplay', 'user' => 0, 'value' => 'last')));
      +
      +        $db->query($db->insert('table.options')
      +        ->rows(array('name' => 'commentsOrder', 'user' => 0, 'value' => 'ASC')));
      +
      +        $db->query($db->insert('table.options')
      +        ->rows(array('name' => 'commentsCheckReferer', 'user' => 0, 'value' => 1)));
      +
      +        $db->query($db->insert('table.options')
      +        ->rows(array('name' => 'commentsAutoClose', 'user' => 0, 'value' => 0)));
      +
      +        $db->query($db->insert('table.options')
      +        ->rows(array('name' => 'commentsPostIntervalEnable', 'user' => 0, 'value' => 1)));
      +
      +        $db->query($db->insert('table.options')
      +        ->rows(array('name' => 'commentsPostInterval', 'user' => 0, 'value' => 60)));
      +
      +        $db->query($db->insert('table.options')
      +        ->rows(array('name' => 'commentsShowCommentOnly', 'user' => 0, 'value' => 0)));
      +
      +        /** 修改路由 */
      +        $routingTable = $options->routingTable;
      +        if (isset($routingTable[0])) {
      +            unset($routingTable[0]);
      +        }
      +
      +        if (isset($routingTable['comment_page'])) {
      +            $routingTable['comment_page'] = array (
      +                'url' => '[permalink:string]/comment-page-[commentPage:digital]',
      +                'widget' => 'Widget_Archive',
      +                'action' => 'render',
      +            );
      +        } else {
      +            $pre = array_slice($routingTable, 0, 20);
      +            $next = array_slice($routingTable, 20);
      +
      +            $commentPage = array (
      +                'url' => '[permalink:string]/comment-page-[commentPage:digital]',
      +                'widget' => 'Widget_Archive',
      +                'action' => 'render',
      +            );
      +
      +            $routingTable = array_merge($pre, array('comment_page' => $commentPage), $next);
      +        }
      +
      +        $db->query($db->update('table.options')
      +                ->rows(array('value' => serialize($routingTable)))
      +                ->where('name = ?', 'routingTable'));
      +    }
      +
      +    /**
      +     * 升级至9.12.11
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_8r9_12_11($db, $options)
      +    {
      +        /** 删除无用选项 */
      +        $db->query($db->delete('table.options')
      +        ->where('name = ? OR name = ? OR name = ? OR name = ? OR name = ? OR name = ? OR name = ?', 'customHomePage', 'uploadHandle',
      +        'deleteHandle', 'modifyHandle', 'attachmentHandle', 'attachmentDataHandle', 'gzip'));
      +
      +        // 增加自定义首页
      +        $db->query($db->insert('table.options')
      +        ->rows(array('name' => 'frontPage', 'user' => 0, 'value' => 'recent')));
      +    }
      +    
      +    /**
      +     * 升级至10.2.27
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_8r10_2_27($db, $options)
      +    {
      +        /** 增加若干选项 */
      +        $db->query($db->insert('table.options')
      +        ->rows(array('name' => 'commentsAvatar', 'user' => 0, 'value' => 1)));
      +        
      +        $db->query($db->insert('table.options')
      +        ->rows(array('name' => 'commentsAvatarRating', 'user' => 0, 'value' => 'G')));
      +        
      +        //更新扩展
      +        if (NULL != $options->attachmentTypes) {
      +            $attachmentTypes = array_map('trim', explode(';', $options->attachmentTypes));
      +            $attachmentTypesResult = array();
      +            
      +            foreach ($attachmentTypes as $type) {
      +                $type = trim($type, '*.');
      +                if (!empty($type)) {
      +                    $attachmentTypesResult[] = $type;
      +                }
      +            }
      +            
      +            if (!empty($attachmentTypesResult)) {
      +                $db->query($db->update('table.options')
      +                ->rows(array('value' => implode(',', $attachmentTypesResult)))
      +                ->where('name = ?', 'attachmentTypes'));
      +            }
      +        }
      +    }
      +    
      +    /**
      +     * 升级至10.3.8
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_8r10_3_8($db, $options)
      +    {
      +        /** 删除无用选项 */
      +        $db->query($db->delete('table.options')
      +        ->where('name = ?', 'commentsAvatarSize'));
      +    }
      +    
      +    /**
      +     * 升级至10.5.17
      +     *
      +     * @access public
      +     * @param Typecho_Db $db 数据库对象
      +     * @param Typecho_Widget $options 全局信息组件
      +     * @return void
      +     */
      +    public static function v0_8r10_5_17($db, $options)
      +    {
      +        Typecho_Widget::widget('Widget_Themes_Edit', NULL, 'change=' . $options->theme, false)->action();
      +    }
      +}
      diff --git a/var/Widget/Abstract.php b/var/Widget/Abstract.php
      new file mode 100644
      index 00000000..91b9f188
      --- /dev/null
      +++ b/var/Widget/Abstract.php
      @@ -0,0 +1,111 @@
      +<?php
      +/**
      + * 纯数据抽象组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 纯数据抽象组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +abstract class Widget_Abstract extends Typecho_Widget
      +{
      +    /**
      +     * 全局选项
      +     *
      +     * @access protected
      +     * @var Widget_Options
      +     */
      +    protected $options;
      +
      +    /**
      +     * 用户对象
      +     *
      +     * @access protected
      +     * @var Widget_User
      +     */
      +    protected $user;
      +
      +    /**
      +     * 数据库对象
      +     *
      +     * @access protected
      +     * @var Typecho_Db
      +     */
      +    protected $db;
      +
      +    /**
      +     * 构造函数,初始化组件
      +     *
      +     * @access public
      +     * @param mixed $request request对象
      +     * @param mixed $response response对象
      +     * @param mixed $params 参数列表
      +     * @return void
      +     */
      +    public function __construct($request, $response, $params = NULL)
      +    {
      +        parent::__construct($request, $response, $params);
      +
      +        /** 初始化数据库 */
      +        $this->db = Typecho_Db::get();
      +
      +        /** 初始化常用组件 */
      +        $this->options = $this->widget('Widget_Options');
      +        $this->user = $this->widget('Widget_User');
      +    }
      +
      +    /**
      +     * 查询方法
      +     *
      +     * @access public
      +     * @return Typecho_Db_Query
      +     */
      +    abstract public function select();
      +
      +    /**
      +     * 获得所有记录数
      +     *
      +     * @access public
      +     * @param Typecho_Db_Query $condition 查询对象
      +     * @return integer
      +     */
      +    abstract public function size(Typecho_Db_Query $condition);
      +
      +    /**
      +     * 增加记录方法
      +     *
      +     * @access public
      +     * @param array $rows 字段对应值
      +     * @return integer
      +     */
      +    abstract public function insert(array $rows);
      +
      +    /**
      +     * 更新记录方法
      +     *
      +     * @access public
      +     * @param array $rows 字段对应值
      +     * @param Typecho_Db_Query $condition 查询对象
      +     * @return integer
      +     */
      +    abstract public function update(array $rows, Typecho_Db_Query $condition);
      +
      +    /**
      +     * 删除记录方法
      +     *
      +     * @access public
      +     * @param Typecho_Db_Query $condition 查询对象
      +     * @return integer
      +     */
      +    abstract public function delete(Typecho_Db_Query $condition);
      +}
      diff --git a/var/Widget/Abstract/Comments.php b/var/Widget/Abstract/Comments.php
      new file mode 100644
      index 00000000..dd237aff
      --- /dev/null
      +++ b/var/Widget/Abstract/Comments.php
      @@ -0,0 +1,437 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/**
      + * 评论基类
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Abstract_Comments extends Widget_Abstract
      +{
      +    /**
      +     * 获取当前内容结构
      +     *
      +     * @access protected
      +     * @return array
      +     */
      +    protected function ___parentContent()
      +    {
      +        return $this->db->fetchRow($this->widget('Widget_Abstract_Contents')->select()
      +        ->where('table.contents.cid = ?', $this->cid)
      +        ->limit(1), array($this->widget('Widget_Abstract_Contents'), 'filter'));
      +    }
      +
      +    /**
      +     * 获取当前评论标题
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___title()
      +    {
      +        return $this->parentContent['title'];
      +    }
      +
      +    /**
      +     * 获取当前评论链接
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___permalink()
      +    {
      +
      +        if ($this->options->commentsPageBreak && 'approved' == $this->status) {
      +            
      +            $coid = $this->coid;
      +            $parent = $this->parent;
      +            
      +            while ($parent > 0 && $this->options->commentsThreaded) {
      +                $parentRows = $this->db->fetchRow($this->db->select('parent')->from('table.comments')
      +                ->where('coid = ? AND status = ?', $parent, 'approved')->limit(1));
      +                
      +                if (!empty($parentRows)) {
      +                    $coid = $parent;
      +                    $parent = $parentRows['parent'];
      +                } else {
      +                    break;
      +                }
      +            }
      +
      +            $select  = $this->db->select('coid', 'parent')
      +            ->from('table.comments')->where('cid = ? AND status = ?', $this->parentContent['cid'], 'approved')
      +            ->where('coid ' . ('DESC' == $this->options->commentsOrder ? '>=' : '<=') . ' ?', $coid)
      +            ->order('coid', Typecho_Db::SORT_ASC);
      +
      +            if ($this->options->commentsShowCommentOnly) {
      +                $select->where('type = ?', 'comment');
      +            }
      +            
      +            $comments = $this->db->fetchAll($select);
      +            
      +            $commentsMap = array();
      +            $total = 0;
      +            
      +            foreach ($comments as $comment) {
      +                $commentsMap[$comment['coid']] = $comment['parent'];
      +                
      +                if (0 == $comment['parent'] || !isset($commentsMap[$comment['parent']])) {
      +                    $total ++;
      +                }
      +            }
      +
      +            $currentPage = ceil($total / $this->options->commentsPageSize);
      +            
      +            $pageRow = array('permalink' => $this->parentContent['pathinfo'], 'commentPage' => $currentPage);
      +            return Typecho_Router::url('comment_page',
      +                        $pageRow, $this->options->index) . '#' . $this->theId;
      +        }
      +        
      +        return $this->parentContent['permalink'] . '#' . $this->theId;
      +    }
      +
      +    /**
      +     * 获取当前评论内容
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___content()
      +    {
      +        $text = $this->parentContent['hidden'] ? _t('内容被隐藏') : $this->text;
      +
      +        $text = $this->pluginHandle(__CLASS__)->trigger($plugged)->content($text, $this);
      +        if (!$plugged) {
      +            $text = Typecho_Common::cutParagraph($text);
      +        }
      +
      +        return $this->pluginHandle(__CLASS__)->contentEx($text, $this);
      +    }
      +
      +    /**
      +     * 输出词义化日期
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___dateWord()
      +    {
      +        return $this->date->word();
      +    }
      +
      +    /**
      +     * 锚点id
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___theId()
      +    {
      +        return $this->type . '-' . $this->coid;
      +    }
      +
      +    /**
      +     * 获取查询对象
      +     *
      +     * @access public
      +     * @return Typecho_Db_Query
      +     */
      +    public function select()
      +    {
      +        return $this->db->select('table.comments.coid', 'table.comments.cid', 'table.comments.author', 'table.comments.mail', 'table.comments.url', 'table.comments.ip',
      +        'table.comments.authorId', 'table.comments.ownerId', 'table.comments.agent', 'table.comments.text', 'table.comments.type', 'table.comments.status', 'table.comments.parent', 'table.comments.created')
      +        ->from('table.comments');
      +    }
      +
      +    /**
      +     * 增加评论
      +     *
      +     * @access public
      +     * @param array $comment 评论结构数组
      +     * @return integer
      +     */
      +    public function insert(array $comment)
      +    {
      +        /** 构建插入结构 */
      +        $insertStruct = array(
      +            'cid'       =>  $comment['cid'],
      +            'created'   =>  empty($comment['created']) ? $this->options->gmtTime : $comment['created'],
      +            'author'    =>  empty($comment['author']) ? NULL : $comment['author'],
      +            'authorId'  =>  empty($comment['authorId']) ? 0 : $comment['authorId'],
      +            'ownerId'   =>  empty($comment['ownerId']) ? 0 : $comment['ownerId'],
      +            'mail'      =>  empty($comment['mail']) ? NULL : $comment['mail'],
      +            'url'       =>  empty($comment['url']) ? NULL : $comment['url'],
      +            'ip'        =>  empty($comment['ip']) ? $this->request->getIp() : $comment['ip'],
      +            'agent'     =>  empty($comment['agent']) ? $_SERVER["HTTP_USER_AGENT"] : $comment['agent'],
      +            'text'      =>  empty($comment['text']) ? NULL : $comment['text'],
      +            'type'      =>  empty($comment['type']) ? 'comment' : $comment['type'],
      +            'status'    =>  empty($comment['status']) ? 'approved' : $comment['status'],
      +            'parent'    =>  empty($comment['parent']) ? 0 : $comment['parent'],
      +        );
      +
      +        if (!empty($comment['coid'])) {
      +            $insertStruct['coid'] = $comment['coid'];
      +        }
      +
      +        /** 首先插入部分数据 */
      +        $insertId = $this->db->query($this->db->insert('table.comments')->rows($insertStruct));
      +
      +        /** 更新评论数 */
      +        $num = $this->db->fetchObject($this->db->select(array('COUNT(coid)' => 'num'))->from('table.comments')
      +        ->where('status = ? AND cid = ?', 'approved', $comment['cid']))->num;
      +
      +        $this->db->query($this->db->update('table.contents')->rows(array('commentsNum' => $num))
      +        ->where('cid = ?', $comment['cid']));
      +
      +        return $insertId;
      +    }
      +
      +    /**
      +     * 更新评论
      +     *
      +     * @access public
      +     * @param array $comment 评论结构数组
      +     * @param Typecho_Db_Query $condition 查询对象
      +     * @return integer
      +     */
      +    public function update(array $comment, Typecho_Db_Query $condition)
      +    {
      +        /** 获取内容主键 */
      +        $updateCondition = clone $condition;
      +        $updateComment = $this->db->fetchObject($condition->select('cid')->from('table.comments')->limit(1));
      +
      +        if ($updateComment) {
      +            $cid = $updateComment->cid;
      +        } else {
      +            return false;
      +        }
      +
      +        /** 构建插入结构 */
      +        $preUpdateStruct = array(
      +            'author'    =>  empty($comment['author']) ? NULL : $comment['author'],
      +            'mail'      =>  empty($comment['mail']) ? NULL : $comment['mail'],
      +            'url'       =>  empty($comment['url']) ? NULL : $comment['url'],
      +            'text'      =>  empty($comment['text']) ? NULL : $comment['text'],
      +            'status'    =>  empty($comment['status']) ? 'approved' : $comment['status'],
      +        );
      +
      +        $updateStruct = array();
      +        foreach ($comment as $key => $val) {
      +            if ((array_key_exists($key, $preUpdateStruct))) {
      +                $updateStruct[$key] = $preUpdateStruct[$key];
      +            }
      +        }
      +        
      +        /** 更新创建时间 */
      +        if (!empty($comment['created'])) {
      +            $updateStruct['created'] = $comment['created'];
      +        }
      +
      +        /** 更新评论数据 */
      +        $updateRows = $this->db->query($updateCondition->update('table.comments')->rows($updateStruct));
      +
      +        /** 更新评论数 */
      +        $num = $this->db->fetchObject($this->db->select(array('COUNT(coid)' => 'num'))->from('table.comments')
      +        ->where('status = ? AND cid = ?', 'approved', $cid))->num;
      +
      +        $this->db->query($this->db->update('table.contents')->rows(array('commentsNum' => $num))
      +        ->where('cid = ?', $cid));
      +
      +        return $updateRows;
      +    }
      +
      +    /**
      +     * 删除数据
      +     *
      +     * @access public
      +     * @param Typecho_Db_Query $condition 查询对象
      +     * @return integer
      +     */
      +    public function delete(Typecho_Db_Query $condition)
      +    {
      +        /** 获取内容主键 */
      +        $deleteCondition = clone $condition;
      +        $deleteComment = $this->db->fetchObject($condition->select('cid')->from('table.comments')->limit(1));
      +
      +        if ($deleteComment) {
      +            $cid = $deleteComment->cid;
      +        } else {
      +            return false;
      +        }
      +
      +        /** 删除评论数据 */
      +        $deleteRows = $this->db->query($deleteCondition->delete('table.comments'));
      +
      +        /** 更新评论数 */
      +        $num = $this->db->fetchObject($this->db->select(array('COUNT(coid)' => 'num'))->from('table.comments')
      +        ->where('status = ? AND cid = ?', 'approved', $cid))->num;
      +
      +        $this->db->query($this->db->update('table.contents')->rows(array('commentsNum' => $num))
      +        ->where('cid = ?', $cid));
      +
      +        return $deleteRows;
      +    }
      +
      +    /**
      +     * 评论是否可以被修改
      +     *
      +     * @access public
      +     * @param Typecho_Db_Query $condition 条件
      +     * @return mixed
      +     */
      +    public function commentIsWriteable(Typecho_Db_Query $condition = NULL)
      +    {
      +        if (empty($condition)) {
      +            if ($this->have() && ($this->user->pass('editor', true) || $this->ownerId == $this->user->uid)) {
      +                return true;
      +            }
      +        } else {
      +            $post = $this->db->fetchRow($condition->select('ownerId')->from('table.comments')->limit(1));
      +
      +            if ($post && ($this->user->pass('editor', true) || $post['ownerId'] == $this->user->uid)) {
      +                return true;
      +            }
      +        }
      +
      +        return false;
      +    }
      +
      +    /**
      +     * 按照条件计算评论数量
      +     *
      +     * @access public
      +     * @param Typecho_Db_Query $condition 查询对象
      +     * @return integer
      +     */
      +    public function size(Typecho_Db_Query $condition)
      +    {
      +        return $this->db->fetchObject($condition->select(array('COUNT(coid)' => 'num'))->from('table.comments'))->num;
      +    }
      +
      +    /**
      +     * 通用过滤器
      +     *
      +     * @access public
      +     * @param array $value 需要过滤的行数据
      +     * @return array
      +     */
      +    public function filter(array $value)
      +    {
      +        $value['date'] = new Typecho_Date($value['created']);
      +        $value = $this->pluginHandle(__CLASS__)->filter($value, $this);
      +        return $value;
      +    }
      +
      +    /**
      +     * 将每行的值压入堆栈
      +     *
      +     * @access public
      +     * @param array $value 每行的值
      +     * @return array
      +     */
      +    public function push(array $value)
      +    {
      +        $value = $this->filter($value);
      +        return parent::push($value);
      +    }
      +
      +    /**
      +     * 输出文章发布日期
      +     *
      +     * @access public
      +     * @param string $format 日期格式
      +     * @return void
      +     */
      +    public function date($format = NULL)
      +    {
      +        echo $this->date->format(empty($format) ? $this->options->commentDateFormat : $format);
      +    }
      +
      +    /**
      +     * 输出作者相关
      +     *
      +     * @access public
      +     * @param boolean $autoLink 是否自动加上链接
      +     * @param boolean $noFollow 是否加上nofollow标签
      +     * @return void
      +     */
      +    public function author($autoLink = NULL, $noFollow = NULL)
      +    {
      +        $autoLink = (NULL === $autoLink) ? $this->options->commentsShowUrl : $autoLink;
      +        $noFollow = (NULL === $noFollow) ? $this->options->commentsUrlNofollow : $noFollow;
      +
      +        if ($this->url && $autoLink) {
      +            echo '<a href="' , $this->url , '"' , ($noFollow ? ' rel="external nofollow"' : NULL) , '>' , $this->author , '</a>';
      +        } else {
      +            echo $this->author;
      +        }
      +    }
      +
      +    /**
      +     * 调用gravatar输出用户头像
      +     *
      +     * @access public
      +     * @param integer $size 头像尺寸
      +     * @param string $default 默认输出头像
      +     * @return void
      +     */
      +    public function gravatar($size = 32, $default = NULL)
      +    {
      +        if ($this->options->commentsAvatar && 'comment' == $this->type) {
      +            $rating = $this->options->commentsAvatarRating;
      +            
      +            $this->pluginHandle(__CLASS__)->trigger($plugged)->gravatar($size, $rating, $default, $this);
      +            if (!$plugged) {
      +            
      +                if (!empty($this->mail)) {
      +                    $mailHash = md5(strtolower($this->mail));
      +                }
      +                
      +                if ($this->request->isSecure()) {
      +                    $host = 'https://secure.gravatar.com';
      +                } else {
      +                    if (empty($this->mail)) {
      +                        $host = 'http://0.gravatar.com';
      +                    } else {
      +                        $host = sprintf( "http://%d.gravatar.com", (hexdec($mailHash{0}) % 2));
      +                    }
      +                }
      +                
      +                $url = $host . '/avatar/';
      +                
      +                if (!empty($this->mail)) {
      +                    $url .= $mailHash;
      +                }
      +                
      +                $url .= '?s=' . $size;
      +                $url .= '&amp;r=' . $rating;
      +                $url .= '&amp;d=' . $default;
      +            
      +                echo '<img class="avatar" src="' . $url . '" alt="' .
      +                $this->author . '" width="' . $size . '" height="' . $size . '" />';
      +            }
      +        }
      +    }
      +
      +    /**
      +     * 输出评论摘要
      +     *
      +     * @access public
      +     * @param integer $length 摘要截取长度
      +     * @param string $trim 摘要后缀
      +     * @return void
      +     */
      +    public function excerpt($length = 100, $trim = '...')
      +    {
      +        echo Typecho_Common::subStr(strip_tags($this->content), 0, $length, $trim);
      +    }
      +}
      diff --git a/var/Widget/Abstract/Contents.php b/var/Widget/Abstract/Contents.php
      new file mode 100644
      index 00000000..a4d56208
      --- /dev/null
      +++ b/var/Widget/Abstract/Contents.php
      @@ -0,0 +1,706 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/**
      + * 内容基类
      + *
      + * @package Widget
      + */
      +class Widget_Abstract_Contents extends Widget_Abstract
      +{
      +    /**
      +     * 将tags取出
      +     *
      +     * @access protected
      +     * @return array
      +     */
      +    protected function ___tags()
      +    {
      +        return $this->db->fetchAll($this->db
      +        ->select()->from('table.metas')
      +        ->join('table.relationships', 'table.relationships.mid = table.metas.mid')
      +        ->where('table.relationships.cid = ?', $this->cid)
      +        ->where('table.metas.type = ?', 'tag'), array($this->widget('Widget_Abstract_Metas'), 'filter'));
      +    }
      +
      +    /**
      +     * 文章作者
      +     *
      +     * @access protected
      +     * @return Typecho_Config
      +     */
      +    protected function ___author()
      +    {
      +        return $this->widget('Widget_Users_Author@' . $this->cid, array('uid' => $this->authorId));
      +    }
      +
      +    /**
      +     * 获取词义化日期
      +     *
      +     * @access protected
      +     * @return void
      +     */
      +    protected function ___dateWord()
      +    {
      +        return $this->date->word();
      +    }
      +
      +    /**
      +     * 获取父id
      +     *
      +     * @access protected
      +     * @return void
      +     */
      +    protected function ___parentId()
      +    {
      +        return $this->row['parent'];
      +    }
      +
      +    /**
      +     * 对文章的简短纯文本描述
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___description()
      +    {
      +        $plainTxt = trim(strip_tags($this->text));
      +        $plainTxt = $plainTxt ? $plainTxt : $this->title;
      +        return Typecho_Common::subStr($plainTxt, 0, 100, '...');
      +    }
      +
      +    /**
      +     * 获取文章内容摘要
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___excerpt()
      +    {
      +        $contents = explode('<!--more-->', $this->text);
      +        list($excerpt) = $contents;
      +
      +        $excerpt = $this->pluginHandle(__CLASS__)->trigger($plugged)->excerpt($excerpt, $this);
      +        if (!$plugged) {
      +            $excerpt = Typecho_Common::cutParagraph($excerpt);
      +        }
      +
      +        return Typecho_Common::fixHtml($this->pluginHandle(__CLASS__)->excerptEx($excerpt, $this));
      +    }
      +
      +    /**
      +     * 获取文章内容
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___content()
      +    {
      +        $content = $this->pluginHandle(__CLASS__)->trigger($plugged)->content($this->text, $this);
      +
      +        if (!$plugged) {
      +            $content = Typecho_Common::cutParagraph($content);
      +        }
      +
      +        return $this->pluginHandle(__CLASS__)->contentEx($content, $this);
      +    }
      +
      +    /**
      +     * 锚点id
      +     *
      +     * @access protected
      +     * @return void
      +     */
      +    protected function ___theId()
      +    {
      +        return $this->type . '-' . $this->cid;
      +    }
      +    
      +    /**
      +     * 回复框id
      +     * 
      +     * @access protected
      +     * @return void
      +     */
      +    protected function ___respondId()
      +    {
      +        return 'respond-' . $this->theId;
      +    }
      +    
      +    /**
      +     * 评论地址
      +     * 
      +     * @access protected
      +     * @return void
      +     */
      +    protected function ___commentUrl()
      +    {
      +        /** 生成反馈地址 */
      +        /** 评论 */
      +        return Typecho_Router::url('feedback',
      +            array('type' => 'comment', 'permalink' => $this->pathinfo), $this->options->index);
      +    }
      +    
      +    /**
      +     * trackback地址
      +     * 
      +     * @access protected
      +     * @return void
      +     */
      +    protected function ___trackbackUrl()
      +    {
      +        return Typecho_Router::url('feedback',
      +            array('type' => 'trackback', 'permalink' => $this->pathinfo), $this->options->index);
      +    }
      +    
      +    /**
      +     * 回复地址
      +     * 
      +     * @access protected
      +     * @return void
      +     */
      +    protected function ___responseUrl()
      +    {
      +        return $this->permalink . '#' . $this->respondId;
      +    }
      +
      +    /**
      +     * 获取页面偏移
      +     *
      +     * @access protected
      +     * @param string $column 字段名
      +     * @param integer $offset 偏移值
      +     * @param string $type 类型
      +     * @param string $status 状态值
      +     * @param integer $authorId 作者
      +     * @param integer $pageSize 分页值
      +     * @return integer
      +     */
      +    protected function getPageOffset($column, $offset, $type, $status = NULL, $authorId = 0, $pageSize = 20)
      +    {
      +        $select = $this->db->select(array('COUNT(table.contents.cid)' => 'num'))->from('table.contents')
      +        ->where("table.contents.{$column} > {$offset}")
      +        ->where("table.contents.type = ?", $type);
      +
      +        if (!empty($status)) {
      +            $select->where("table.contents.status = ?", $status);
      +        }
      +
      +        if ($authorId > 0) {
      +            $select->where('table.contents.authorId = ?', $authorId);
      +        }
      +
      +        $count = $this->db->fetchObject($select)->num + 1;
      +        return ceil($count / $pageSize);
      +    }
      +
      +    /**
      +     * 获取查询对象
      +     *
      +     * @access public
      +     * @return Typecho_Db_Query
      +     */
      +    public function select()
      +    {
      +        return $this->db->select('table.contents.cid', 'table.contents.title', 'table.contents.slug', 'table.contents.created', 'table.contents.authorId',
      +        'table.contents.modified', 'table.contents.type', 'table.contents.status', 'table.contents.text', 'table.contents.commentsNum', 'table.contents.order',
      +        'table.contents.template', 'table.contents.password', 'table.contents.allowComment', 'table.contents.allowPing', 'table.contents.allowFeed',
      +        'table.contents.parent')->from('table.contents');
      +    }
      +
      +    /**
      +     * 插入内容
      +     *
      +     * @access public
      +     * @param array $content 内容数组
      +     * @return integer
      +     */
      +    public function insert(array $content)
      +    {
      +        /** 构建插入结构 */
      +        $insertStruct = array(
      +            'title'         =>  empty($content['title']) ? NULL : $content['title'],
      +            'created'       =>  empty($content['created']) ? $this->options->gmtTime : $content['created'],
      +            'modified'      =>  $this->options->gmtTime,
      +            'text'          =>  empty($content['text']) ? NULL : $content['text'],
      +            'order'         =>  empty($content['order']) ? 0 : intval($content['order']),
      +            'authorId'      =>  isset($content['authorId']) ? $content['authorId'] : $this->user->uid,
      +            'template'      =>  empty($content['template']) ? NULL : $content['template'],
      +            'type'          =>  empty($content['type']) ? 'post' : $content['type'],
      +            'status'        =>  empty($content['status']) ? 'publish' : $content['status'],
      +            'password'      =>  empty($content['password']) ? NULL : $content['password'],
      +            'commentsNum'   =>  empty($content['commentsNum']) ? 0 : $content['commentsNum'],
      +            'allowComment'  =>  !empty($content['allowComment']) && 1 == $content['allowComment'] ? 1 : 0,
      +            'allowPing'     =>  !empty($content['allowPing']) && 1 == $content['allowPing'] ? 1 : 0,
      +            'allowFeed'     =>  !empty($content['allowFeed']) && 1 == $content['allowFeed'] ? 1 : 0,
      +            'parent'        =>  empty($content['parent']) ? 0 : intval($content['parent'])
      +        );
      +
      +        if (!empty($content['cid'])) {
      +            $insertStruct['cid'] = $content['cid'];
      +        }
      +
      +        /** 首先插入部分数据 */
      +        $insertId = $this->db->query($this->db->insert('table.contents')->rows($insertStruct));
      +
      +        /** 更新缩略名 */
      +        if ($insertId > 0) {
      +            $this->applySlug(empty($content['slug']) ? NULL : $content['slug'], $insertId);
      +        }
      +
      +        return $insertId;
      +    }
      +
      +    /**
      +     * 更新内容
      +     *
      +     * @access public
      +     * @param array $content 内容数组
      +     * @param Typecho_Db_Query $condition 更新条件
      +     * @return integer
      +     */
      +    public function update(array $content, Typecho_Db_Query $condition)
      +    {
      +        /** 首先验证写入权限 */
      +        if (!$this->isWriteable(clone $condition)) {
      +            return false;
      +        }
      +
      +        /** 构建更新结构 */
      +        $preUpdateStruct = array(
      +            'title'         =>  empty($content['title']) ? NULL : $content['title'],
      +            'order'         =>  empty($content['order']) ? 0 : intval($content['order']),
      +            'text'          =>  empty($content['text']) ? NULL : $content['text'],
      +            'template'      =>  empty($content['template']) ? NULL : $content['template'],
      +            'type'          =>  empty($content['type']) ? 'post' : $content['type'],
      +            'status'        =>  empty($content['status']) ? 'publish' : $content['status'],
      +            'password'      =>  empty($content['password']) ? NULL : $content['password'],
      +            'allowComment'  =>  !empty($content['allowComment']) && 1 == $content['allowComment'] ? 1 : 0,
      +            'allowPing'     =>  !empty($content['allowPing']) && 1 == $content['allowPing'] ? 1 : 0,
      +            'allowFeed'     =>  !empty($content['allowFeed']) && 1 == $content['allowFeed'] ? 1 : 0,
      +            'parent'        =>  empty($content['parent']) ? 0 : intval($content['parent'])
      +        );
      +
      +        $updateStruct = array();
      +        foreach ($content as $key => $val) {
      +            if (array_key_exists($key, $preUpdateStruct)) {
      +                $updateStruct[$key] = $preUpdateStruct[$key];
      +            }
      +        }
      +
      +        /** 更新创建时间 */
      +        if (!empty($content['created'])) {
      +            $updateStruct['created'] = $content['created'];
      +        }
      +
      +        $updateStruct['modified'] = $this->options->gmtTime;
      +
      +        /** 首先插入部分数据 */
      +        $updateCondition = clone $condition;
      +        $updateRows = $this->db->query($condition->update('table.contents')->rows($updateStruct));
      +
      +        /** 更新缩略名 */
      +        if ($updateRows > 0 && isset($content['slug'])) {
      +            $this->applySlug(empty($content['slug']) ? NULL : $content['slug'], $condition);
      +        }
      +
      +        return $updateRows;
      +    }
      +
      +    /**
      +     * 删除内容
      +     *
      +     * @access public
      +     * @param Typecho_Db_Query $condition 查询对象
      +     * @return integer
      +     */
      +    public function delete(Typecho_Db_Query $condition)
      +    {
      +        return $this->db->query($condition->delete('table.contents'));
      +    }
      +
      +    /**
      +     * 为内容应用缩略名
      +     *
      +     * @access public
      +     * @param string $slug 缩略名
      +     * @param mixed $cid 内容id
      +     * @return string
      +     */
      +    public function applySlug($slug, $cid)
      +    {
      +        if ($cid instanceof Typecho_Db_Query) {
      +            $cid = $this->db->fetchObject($cid->select('cid')
      +            ->from('table.contents')->limit(1))->cid;
      +        }
      +
      +        /** 生成一个非空的缩略名 */
      +        $slug = Typecho_Common::slugName($slug, $cid);
      +        $result = $slug;
      +
      +        /** 对草稿的slug做特殊处理 */
      +        $draft = $this->db->fetchObject($this->db->select('status', 'parent')
      +            ->from('table.contents')->where('cid = ?', $cid));
      +
      +        if ('draft' == $draft->status && $draft->parent) {
      +            $result = '@' . $result;
      +        }
      +
      +
      +        /** 判断是否在数据库中已经存在 */
      +        $count = 1;
      +        while ($this->db->fetchObject($this->db->select(array('COUNT(cid)' => 'num'))
      +        ->from('table.contents')->where('slug = ? AND cid <> ?', $result, $cid))->num > 0) {
      +            $result = $slug . '-' . $count;
      +            $count ++;
      +        }
      +
      +        $this->db->query($this->db->update('table.contents')->rows(array('slug' => $result))
      +        ->where('cid = ?', $cid));
      +
      +        return $result;
      +    }
      +
      +    /**
      +     * 内容是否可以被修改
      +     *
      +     * @access public
      +     * @param Typecho_Db_Query $condition 条件
      +     * @return mixed
      +     */
      +    public function isWriteable(Typecho_Db_Query $condition)
      +    {
      +        $post = $this->db->fetchRow($condition->select('authorId')->from('table.contents')->limit(1));
      +        return $post && ($this->user->pass('editor', true) || $post['authorId'] == $this->user->uid);
      +    }
      +
      +    /**
      +     * 按照条件计算内容数量
      +     *
      +     * @access public
      +     * @param Typecho_Db_Query $condition 查询对象
      +     * @return integer
      +     */
      +    public function size(Typecho_Db_Query $condition)
      +    {
      +        return $this->db->fetchObject($condition->select(array('COUNT(table.contents.cid)' => 'num'))->from('table.contents'))->num;
      +    }
      +    
      +    /**
      +     * 获取当前所有自定义模板
      +     *
      +     * @access public
      +     * @return array
      +     */
      +    public function getTemplates()
      +    {
      +        $files = glob(__TYPECHO_ROOT_DIR__ . '/' . __TYPECHO_THEME_DIR__ . '/' . $this->options->theme . '/*.php');
      +        $result = array();
      +
      +        foreach ($files as $file) {
      +            $info = Typecho_Plugin::parseInfo($file);
      +            $file = basename($file);
      +
      +            if ('index.php' != $file && 'custom' == $info['title']) {
      +                $result[$file] = $info['description'];
      +            }
      +        }
      +
      +        return $result;
      +    }
      +
      +    /**
      +     * 通用过滤器
      +     *
      +     * @access public
      +     * @param array $value 需要过滤的行数据
      +     * @return array
      +     */
      +    public function filter(array $value)
      +    {
      +        /** 取出所有分类 */
      +        $value['categories'] = $this->db->fetchAll($this->db
      +        ->select()->from('table.metas')
      +        ->join('table.relationships', 'table.relationships.mid = table.metas.mid')
      +        ->where('table.relationships.cid = ?', $value['cid'])
      +        ->where('table.metas.type = ?', 'category')
      +        ->order('table.metas.order', Typecho_Db::SORT_ASC), array($this->widget('Widget_Abstract_Metas'), 'filter'));
      +
      +        /** 取出第一个分类作为slug条件 */
      +        $value['category'] = current(Typecho_Common::arrayFlatten($value['categories'], 'slug'));
      +
      +        $value['date'] = new Typecho_Date($value['created']);
      +
      +        /** 生成日期 */
      +        $value['year'] = $value['date']->year;
      +        $value['month'] = $value['date']->month;
      +        $value['day'] = $value['date']->day;
      +
      +        /** 生成访问权限 */
      +        $value['hidden'] = false;
      +
      +        /** 获取路由类型并判断此类型在路由表中是否存在 */
      +        $type = $value['type'];
      +        $routeExists = (NULL != Typecho_Router::get($type));
      +
      +        $tmpSlug = $value['slug'];
      +        $tmpCategory = $value['category'];
      +        $value['slug'] = urlencode($value['slug']);
      +        $value['category'] = urlencode($value['category']);
      +
      +        /** 生成静态路径 */
      +        $value['pathinfo'] = $routeExists ? Typecho_Router::url($type, $value) : '#';
      +
      +        /** 生成静态链接 */
      +        $value['permalink'] = Typecho_Common::url($value['pathinfo'], $this->options->index);
      +
      +        /** 处理附件 */
      +        if ('attachment' == $type) {
      +            $content = unserialize($value['text']);
      +
      +            //增加数据信息
      +            $value['attachment'] = new Typecho_Config($content);
      +            $value['attachment']->isImage = in_array($content['type'], array('jpg', 'jpeg', 'gif', 'png', 'tiff', 'bmp'));
      +            $value['attachment']->url = Widget_Upload::attachmentHandle($value);
      +
      +            if ($value['attachment']->isImage) {
      +                $value['text'] = '<img src="' . $value['attachment']->url . '" alt="' .
      +                $value['title'] . '" />';
      +            } else {
      +                $value['text'] = '<a href="' . $value['attachment']->url . '" title="' .
      +                $value['title'] . '">' . $value['title'] . '</a>';
      +            }
      +        }
      +
      +        /** 生成聚合链接 */
      +        /** RSS 2.0 */
      +        $value['feedUrl'] = $routeExists ? Typecho_Router::url($type, $value, $this->options->feedUrl) : '#';
      +
      +        /** RSS 1.0 */
      +        $value['feedRssUrl'] = $routeExists ? Typecho_Router::url($type, $value, $this->options->feedRssUrl) : '#';
      +
      +        /** ATOM 1.0 */
      +        $value['feedAtomUrl'] = $routeExists ? Typecho_Router::url($type, $value, $this->options->feedAtomUrl) : '#';
      +
      +        $value['slug'] = $tmpSlug;
      +        $value['category'] = $tmpCategory;
      +
      +        /** 处理密码保护流程 */
      +        if (!empty($value['password']) &&
      +        $value['password'] != $this->request->protectPassword &&
      +        ($value['authorId'] != $this->user->uid
      +        || !$this->user->pass('editor', true))) {
      +            $value['hidden'] = true;
      +
      +            /** 抛出错误 */
      +            if ($this->request->isPost() && isset($this->request->protectPassword)) {
      +                throw new Typecho_Widget_Exception(_t('对不起,您输入的密码错误'), 403);
      +            }
      +        }
      +
      +        $value = $this->pluginHandle(__CLASS__)->filter($value, $this);
      +
      +        /** 如果访问权限被禁止 */
      +        if ($value['hidden']) {
      +            $value['text'] = '<form class="protected" action="' . $value['permalink'] . '" method="post">' .
      +            '<p class="word">' . _t('请输入密码访问') . '</p>' .
      +            '<p><input type="password" class="text" name="protectPassword" />
      +            <input type="submit" class="submit" value="' . _t('提交') . '" /></p>' .
      +            '</form>';
      +
      +            $value['title'] = _t('此内容被密码保护');
      +            $value['tags'] = array();
      +            $value['commentsNum'] = 0;
      +        }
      +
      +        return $value;
      +    }
      +
      +    /**
      +     * 将每行的值压入堆栈
      +     *
      +     * @access public
      +     * @param array $value 每行的值
      +     * @return array
      +     */
      +    public function push(array $value)
      +    {
      +        $value = $this->filter($value);
      +        return parent::push($value);
      +    }
      +
      +    /**
      +     * 输出文章发布日期
      +     *
      +     * @access public
      +     * @param string $format 日期格式
      +     * @return void
      +     */
      +    public function date($format = NULL)
      +    {
      +        echo $this->date->format(empty($format) ? $this->options->postDateFormat : $format);
      +    }
      +
      +    /**
      +     * 输出文章内容
      +     *
      +     * @access public
      +     * @param string $more 文章截取后缀
      +     * @return void
      +     */
      +    public function content($more = false)
      +    {
      +        echo false !== $more && false !== strpos($this->text, '<!--more-->') ?
      +        $this->excerpt . "<p class=\"more\"><a href=\"{$this->permalink}\" title=\"{$this->title}\">{$more}</a></p>" : $this->content;
      +    }
      +
      +    /**
      +     * 输出文章摘要
      +     *
      +     * @access public
      +     * @param integer $length 摘要截取长度
      +     * @param string $trim 摘要后缀
      +     * @return void
      +     */
      +    public function excerpt($length = 100, $trim = '...')
      +    {
      +        echo Typecho_Common::subStr(strip_tags($this->excerpt), 0, $length, $trim);
      +    }
      +
      +    /**
      +     * 输出标题
      +     *
      +     * @access public
      +     * @param integer $length 标题截取长度
      +     * @param string $trim 截取后缀
      +     * @return void
      +     */
      +    public function title($length = 0, $trim = '...')
      +    {
      +        $title = $this->pluginHandle()->trigger($plugged)->title($this->title, $this);
      +        if (!$plugged) {
      +            echo $length > 0 ? Typecho_Common::subStr($this->title, 0, $length, $trim) : $this->title;
      +        }
      +    }
      +
      +    /**
      +     * 输出文章评论数
      +     *
      +     * @access public
      +     * @param string $string 评论数格式化数据
      +     * @return void
      +     */
      +    public function commentsNum()
      +    {
      +        $args = func_get_args();
      +        if (!$args) {
      +            $args[] = '%d';
      +        }
      +
      +        $num = intval($this->commentsNum);
      +
      +        echo sprintf(isset($args[$num]) ? $args[$num] : array_pop($args), $num);
      +    }
      +
      +    /**
      +     * 获取文章权限
      +     *
      +     * @access public
      +     * @param string $permission 权限
      +     * @return unknown
      +     */
      +    public function allow()
      +    {
      +        $permissions = func_get_args();
      +        $allow = true;
      +
      +        foreach ($permissions as $permission) {
      +            $permission = strtolower($permission);
      +
      +            if ('edit' == $permission) {
      +                $allow &= ($this->user->pass('editor', true) || $this->authorId == $this->user->uid);
      +            } else {
      +                /** 对自动关闭反馈功能的支持 */
      +                if (('ping' == $permission || 'comment' == $permission) && $this->options->commentsPostTimeout > 0 &&
      +                $this->options->commentsAutoClose) {
      +                    if ($this->options->gmtTime - $this->created > $this->options->commentsPostTimeout) {
      +                        return false;
      +                    }
      +                }
      +
      +                $allow &= ($this->row['allow' . ucfirst($permission)] == 1) and !$this->hidden;
      +            }
      +        }
      +
      +        return $allow;
      +    }
      +
      +    /**
      +     * 输出文章分类
      +     *
      +     * @access public
      +     * @param string $split 多个分类之间分隔符
      +     * @param boolean $link 是否输出链接
      +     * @param string $default 如果没有则输出
      +     * @return void
      +     */
      +    public function category($split = ',', $link = true, $default = NULL)
      +    {
      +        $categories = $this->categories;
      +        if ($categories) {
      +            $result = array();
      +
      +            foreach ($categories as $category) {
      +                $result[] = $link ? '<a href="' . $category['permalink'] . '">'
      +                . $category['name'] . '</a>' : $category['name'];
      +            }
      +
      +            echo implode($split, $result);
      +        } else {
      +            echo $default;
      +        }
      +    }
      +
      +    /**
      +     * 输出文章标签
      +     *
      +     * @access public
      +     * @param string $split 多个标签之间分隔符
      +     * @param boolean $link 是否输出链接
      +     * @param string $default 如果没有则输出
      +     * @return void
      +     */
      +    public function tags($split = ',', $link = true, $default = NULL)
      +    {
      +        /** 取出tags */
      +        if ($this->tags) {
      +            $result = array();
      +            foreach ($this->tags as $tag) {
      +                $result[] = $link ? '<a href="' . $tag['permalink'] . '">'
      +                . $tag['name'] . '</a>' : $tag['name'];
      +            }
      +
      +            echo implode($split, $result);
      +        } else {
      +            echo $default;
      +        }
      +    }
      +
      +    /**
      +     * 输出当前作者
      +     *
      +     * @access public
      +     * @param string $item 需要输出的项目
      +     * @return void
      +     */
      +    public function author($item = 'screenName')
      +    {
      +        echo $this->author->{$item};
      +    }
      +}
      diff --git a/var/Widget/Abstract/Metas.php b/var/Widget/Abstract/Metas.php
      new file mode 100644
      index 00000000..1d945b8d
      --- /dev/null
      +++ b/var/Widget/Abstract/Metas.php
      @@ -0,0 +1,258 @@
      +<?php
      +/**
      + * 描述性数据
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 描述性数据组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Abstract_Metas extends Widget_Abstract
      +{
      +    /**
      +     * 锚点id
      +     *
      +     * @access protected
      +     * @return void
      +     */
      +    protected function ___theId()
      +    {
      +        return $this->type . '-' . $this->mid;
      +    }
      +
      +    /**
      +     * 获取原始查询对象
      +     *
      +     * @access public
      +     * @return Typecho_Db_Query
      +     */
      +    public function select()
      +    {
      +        return $this->db->select()->from('table.metas');
      +    }
      +
      +    /**
      +     * 插入一条记录
      +     *
      +     * @access public
      +     * @param array $options 记录插入值
      +     * @return integer
      +     */
      +    public function insert(array $options)
      +    {
      +        return $this->db->query($this->db->insert('table.metas')->rows($options));
      +    }
      +
      +    /**
      +     * 更新记录
      +     *
      +     * @access public
      +     * @param array $options 记录更新值
      +     * @param Typecho_Db_Query $condition 更新条件
      +     * @return integer
      +     */
      +    public function update(array $options, Typecho_Db_Query $condition)
      +    {
      +        return $this->db->query($condition->update('table.metas')->rows($options));
      +    }
      +
      +    /**
      +     * 删除记录
      +     *
      +     * @access public
      +     * @param Typecho_Db_Query $condition 删除条件
      +     * @return integer
      +     */
      +    public function delete(Typecho_Db_Query $condition)
      +    {
      +        return $this->db->query($condition->delete('table.metas'));
      +    }
      +
      +    /**
      +     * 获取记录总数
      +     *
      +     * @access public
      +     * @param Typecho_Db_Query $condition 计算条件
      +     * @return integer
      +     */
      +    public function size(Typecho_Db_Query $condition)
      +    {
      +        return $this->db->fetchObject($condition->select(array('COUNT(mid)' => 'num'))->from('table.metas'))->num;
      +    }
      +
      +    /**
      +     * 通用过滤器
      +     *
      +     * @access public
      +     * @param array $value 需要过滤的行数据
      +     * @return array
      +     */
      +    public function filter(array $value)
      +    {
      +        //生成静态链接
      +        $type = $value['type'];
      +        $routeExists = (NULL != Typecho_Router::get($type));
      +        $tmpSlug = $value['slug'];
      +        $value['slug'] = urlencode($value['slug']);
      +
      +        $value['permalink'] = $routeExists ? Typecho_Router::url($type, $value, $this->options->index) : '#';
      +
      +        /** 生成聚合链接 */
      +        /** RSS 2.0 */
      +        $value['feedUrl'] = $routeExists ? Typecho_Router::url($type, $value, $this->options->feedUrl) : '#';
      +
      +        /** RSS 1.0 */
      +        $value['feedRssUrl'] = $routeExists ? Typecho_Router::url($type, $value, $this->options->feedRssUrl) : '#';
      +
      +        /** ATOM 1.0 */
      +        $value['feedAtomUrl'] = $routeExists ? Typecho_Router::url($type, $value, $this->options->feedAtomUrl) : '#';
      +
      +        $value['slug'] = $tmpSlug;
      +        $value = $this->pluginHandle(__CLASS__)->filter($value, $this);
      +        return $value;
      +    }
      +
      +    /**
      +     * 将每行的值压入堆栈
      +     *
      +     * @access public
      +     * @param array $value 每行的值
      +     * @return array
      +     */
      +    public function push(array $value)
      +    {
      +        $value = $this->filter($value);
      +        return parent::push($value);
      +    }
      +
      +    /**
      +     * 对数据按照sort字段排序
      +     *
      +     * @access public
      +     * @param array $metas
      +     * @param string $type
      +     * @return void
      +     */
      +    public function sort(array $metas, $type)
      +    {
      +        foreach ($metas as $sort => $mid) {
      +            $this->update(array('order' => $sort + 1),
      +            $this->db->sql()->where('mid = ?', $mid)->where('type = ?', $type));
      +        }
      +    }
      +
      +    /**
      +     * 合并数据
      +     *
      +     * @access public
      +     * @param integer $mid 数据主键
      +     * @param string $type 数据类型
      +     * @param array $metas 需要合并的数据集
      +     * @return void
      +     */
      +    public function merge($mid, $type, array $metas)
      +    {
      +        $contents = Typecho_Common::arrayFlatten($this->db->fetchAll($this->select('cid')
      +        ->from('table.relationships')
      +        ->where('mid = ?', $mid)), 'cid');
      +
      +        foreach ($metas as $meta) {
      +            if ($mid != $meta) {
      +                $existsContents = Typecho_Common::arrayFlatten($this->db->fetchAll($this->db
      +                ->select('cid')->from('table.relationships')
      +                ->where('mid = ?', $meta)), 'cid');
      +
      +                $where = $this->db->sql()->where('mid = ? AND type = ?', $meta, $type);
      +                $this->delete($where);
      +                $diffContents = array_diff($existsContents, $contents);
      +                $this->db->query($this->db->delete('table.relationships')->where('mid = ?', $meta));
      +
      +                foreach ($diffContents as $content) {
      +                    $this->db->query($this->db->insert('table.relationships')
      +                    ->rows(array('mid' => $mid, 'cid' => $content)));
      +                    $contents[] = $content;
      +                }
      +
      +                unset($existsContents);
      +            }
      +        }
      +
      +        $num = $this->db->fetchObject($this->db
      +        ->select(array('COUNT(mid)' => 'num'))->from('table.relationships')
      +        ->where('table.relationships.mid = ?', $mid))->num;
      +
      +        $this->update(array('count' => $num), $this->db->sql()->where('mid = ?', $mid));
      +    }
      +
      +    /**
      +     * 根据tag获取ID
      +     *
      +     * @access public
      +     * @param mixed $inputTags 标签名
      +     * @return array
      +     */
      +    public function scanTags($inputTags)
      +    {
      +        $tags = is_array($inputTags) ? $inputTags : array($inputTags);
      +        $result = array();
      +
      +        foreach ($tags as $tag) {
      +            if (empty($tag)) {
      +                continue;
      +            }
      +
      +            $row = $this->db->fetchRow($this->select()
      +            ->where('type = ?', 'tag')
      +            ->where('name = ?', $tag)->limit(1));
      +
      +            if ($row) {
      +                $result[] = $row['mid'];
      +            } else {
      +                $slug = Typecho_Common::slugName($tag);
      +
      +                if ($slug) {
      +                    $result[] = $this->insert(array(
      +                        'name'  =>  $tag,
      +                        'slug'  =>  $slug,
      +                        'type'  =>  'tag',
      +                        'count' =>  0,
      +                        'order' =>  0,
      +                    ));
      +                }
      +            }
      +        }
      +
      +        return is_array($inputTags) ? $result : current($result);
      +    }
      +
      +    /**
      +     * 根据内容的指定类别和状态更新相关meta的计数信息
      +     *
      +     * @access public
      +     * @param Tint $mid meta id
      +     * @param string $type 类别
      +     * @param string $status 状态
      +     * @return void
      +     */
      +    public function refreshCountByTypeAndStatus($mid, $type, $status = 'publish')
      +    {
      +        $num = $this->db->fetchObject($this->db->select(array('COUNT(table.contents.cid)' => 'num'))->from('table.contents')
      +        ->join('table.relationships', 'table.contents.cid = table.relationships.cid')
      +        ->where('table.relationships.mid = ?', $mid)
      +        ->where('table.contents.type = ?', $type)
      +        ->where('table.contents.status = ?', $status))->num;
      +
      +        $this->db->query($this->db->update('table.metas')->rows(array('count' => $num))
      +        ->where('mid = ?', $mid));
      +    }
      +}
      diff --git a/var/Widget/Abstract/Options.php b/var/Widget/Abstract/Options.php
      new file mode 100644
      index 00000000..91d02323
      --- /dev/null
      +++ b/var/Widget/Abstract/Options.php
      @@ -0,0 +1,94 @@
      +<?php
      +/**
      + * 全局选项
      + *
      + * @link typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 全局选项组件
      + *
      + * @link typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Abstract_Options extends Widget_Abstract
      +{
      +    /**
      +     * 以checkbox选项判断是否某个值被启用
      +     *
      +     * @access protected
      +     * @param mixed $settings 选项集合
      +     * @param string $name 选项名称
      +     * @return integer
      +     */
      +    protected function isEnableByCheckbox($settings, $name)
      +    {
      +        return is_array($settings) && in_array($name, $settings) ? 1 : 0;
      +    }
      +
      +    /**
      +     * 获取原始查询对象
      +     *
      +     * @access public
      +     * @return Typecho_Db_Query
      +     */
      +    public function select()
      +    {
      +        return $this->db->select()->from('table.options');
      +    }
      +
      +    /**
      +     * 插入一条记录
      +     *
      +     * @access public
      +     * @param array $options 记录插入值
      +     * @return integer
      +     */
      +    public function insert(array $options)
      +    {
      +        return $this->db->query($this->db->insert('table.options')->rows($options));
      +    }
      +
      +    /**
      +     * 更新记录
      +     *
      +     * @access public
      +     * @param array $options 记录更新值
      +     * @param Typecho_Db_Query $condition 更新条件
      +     * @return integer
      +     */
      +    public function update(array $options, Typecho_Db_Query $condition)
      +    {
      +        return $this->db->query($condition->update('table.options')->rows($options));
      +    }
      +
      +    /**
      +     * 删除记录
      +     *
      +     * @access public
      +     * @param Typecho_Db_Query $condition 删除条件
      +     * @return integer
      +     */
      +    public function delete(Typecho_Db_Query $condition)
      +    {
      +        return $this->db->query($condition->delete('table.options'));
      +    }
      +
      +    /**
      +     * 获取记录总数
      +     *
      +     * @access public
      +     * @param Typecho_Db_Query $condition 计算条件
      +     * @return integer
      +     */
      +    public function size(Typecho_Db_Query $condition)
      +    {
      +        return $this->db->fetchObject($condition->select(array('COUNT(name)' => 'num'))->from('table.options'))->num;
      +    }
      +}
      diff --git a/var/Widget/Abstract/Users.php b/var/Widget/Abstract/Users.php
      new file mode 100644
      index 00000000..6ede7bef
      --- /dev/null
      +++ b/var/Widget/Abstract/Users.php
      @@ -0,0 +1,227 @@
      +<?php
      +/**
      + * 用户抽象组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 用户抽象类
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Abstract_Users extends Widget_Abstract
      +{
      +    /**
      +     * 判断用户名称是否存在
      +     *
      +     * @access public
      +     * @param string $name 用户名称
      +     * @return boolean
      +     */
      +    public function nameExists($name)
      +    {
      +        $select = $this->db->select()
      +        ->from('table.users')
      +        ->where('name = ?', $name)
      +        ->limit(1);
      +
      +        if ($this->request->uid) {
      +            $select->where('uid <> ?', $this->request->uid);
      +        }
      +
      +        $user = $this->db->fetchRow($select);
      +        return $user ? false : true;
      +    }
      +
      +    /**
      +     * 判断电子邮件是否存在
      +     *
      +     * @access public
      +     * @param string $mail 电子邮件
      +     * @return boolean
      +     */
      +    public function mailExists($mail)
      +    {
      +        $select = $this->db->select()
      +        ->from('table.users')
      +        ->where('mail = ?', $mail)
      +        ->limit(1);
      +
      +        if ($this->request->uid) {
      +            $select->where('uid <> ?', $this->request->uid);
      +        }
      +
      +        $user = $this->db->fetchRow($select);
      +        return $user ? false : true;
      +    }
      +
      +    /**
      +     * 判断用户昵称是否存在
      +     *
      +     * @access public
      +     * @param string $screenName 昵称
      +     * @return boolean
      +     */
      +    public function screenNameExists($screenName)
      +    {
      +        $select = $this->db->select()
      +        ->from('table.users')
      +        ->where('screenName = ?', $screenName)
      +        ->limit(1);
      +
      +        if ($this->request->uid) {
      +            $select->where('uid <> ?', $this->request->uid);
      +        }
      +
      +        $user = $this->db->fetchRow($select);
      +        return $user ? false : true;
      +    }
      +
      +    /**
      +     * 获取页面偏移
      +     *
      +     * @access protected
      +     * @param string $column 字段名
      +     * @param integer $offset 偏移值
      +     * @param string $group 用户组
      +     * @param integer $pageSize 分页值
      +     * @return integer
      +     */
      +    protected function getPageOffset($column, $offset, $group = NULL, $pageSize = 20)
      +    {
      +        $select = $this->db->select(array('COUNT(uid)' => 'num'))->from('table.users')
      +        ->where("table.users.{$column} > {$offset}");
      +
      +        if (!empty($group)) {
      +            $select->where('table.users.group = ?', $group);
      +        }
      +
      +        $count = $this->db->fetchObject($select)->num + 1;
      +        return ceil($count / $pageSize);
      +    }
      +
      +    /**
      +     * 通用过滤器
      +     *
      +     * @access public
      +     * @param array $value 需要过滤的行数据
      +     * @return array
      +     */
      +    public function filter(array $value)
      +    {
      +        //生成静态链接
      +        $routeExists = (NULL != Typecho_Router::get('author'));
      +
      +        $value['permalink'] = $routeExists ? Typecho_Router::url('author', $value, $this->options->index) : '#';
      +
      +        /** 生成聚合链接 */
      +        /** RSS 2.0 */
      +        $value['feedUrl'] = $routeExists ? Typecho_Router::url('author', $value, $this->options->feedUrl) : '#';
      +
      +        /** RSS 1.0 */
      +        $value['feedRssUrl'] = $routeExists ? Typecho_Router::url('author', $value, $this->options->feedRssUrl) : '#';
      +
      +        /** ATOM 1.0 */
      +        $value['feedAtomUrl'] = $routeExists ? Typecho_Router::url('author', $value, $this->options->feedAtomUrl) : '#';
      +
      +        $value = $this->pluginHandle(__CLASS__)->filter($value, $this);
      +        return $value;
      +    }
      +
      +    /**
      +     * 将每行的值压入堆栈
      +     *
      +     * @access public
      +     * @param array $value 每行的值
      +     * @return array
      +     */
      +    public function push(array $value)
      +    {
      +        $value = $this->filter($value);
      +        return parent::push($value);
      +    }
      +
      +    /**
      +     * 查询方法
      +     *
      +     * @access public
      +     * @return Typecho_Db_Query
      +     */
      +    public function select()
      +    {
      +        return $this->db->select()->from('table.users');
      +    }
      +
      +    /**
      +     * 获得所有记录数
      +     *
      +     * @access public
      +     * @param Typecho_Db_Query $condition 查询对象
      +     * @return integer
      +     */
      +    public function size(Typecho_Db_Query $condition)
      +    {
      +        return $this->db->fetchObject($condition->select(array('COUNT(uid)' => 'num'))->from('table.users'))->num;
      +    }
      +
      +    /**
      +     * 增加记录方法
      +     *
      +     * @access public
      +     * @param array $rows 字段对应值
      +     * @return integer
      +     */
      +    public function insert(array $rows)
      +    {
      +        return $this->db->query($this->db->insert('table.users')->rows($rows));
      +    }
      +
      +    /**
      +     * 更新记录方法
      +     *
      +     * @access public
      +     * @param array $rows 字段对应值
      +     * @param Typecho_Db_Query $condition 查询对象
      +     * @return integer
      +     */
      +    public function update(array $rows, Typecho_Db_Query $condition)
      +    {
      +        return $this->db->query($condition->update('table.users')->rows($rows));
      +    }
      +
      +    /**
      +     * 删除记录方法
      +     *
      +     * @access public
      +     * @param Typecho_Db_Query $condition 查询对象
      +     * @return integer
      +     */
      +    public function delete(Typecho_Db_Query $condition)
      +    {
      +        return $this->db->query($condition->delete('table.users'));
      +    }
      +
      +    /**
      +     * 调用gravatar输出用户头像
      +     *
      +     * @access public
      +     * @param integer $size 头像尺寸
      +     * @param string $rating 头像评级
      +     * @param string $default 默认输出头像
      +     * @return void
      +     */
      +    public function gravatar($size = 40, $rating = 'X', $default = NULL, $class = NULL)
      +    {
      +        echo '<img' . (empty($class) ? '' : ' class="' . $class . '"') . ' src="http://www.gravatar.com/avatar/' .
      +        md5($this->mail) . '?s=' . $size . '&amp;r=' . $rating . '&amp;d=' . $default . '" alt="' .
      +        $this->screenName . '" width="' . $size . '" height="' . $size . '" />';
      +    }
      +}
      diff --git a/var/Widget/Ajax.php b/var/Widget/Ajax.php
      new file mode 100644
      index 00000000..c7bfa383
      --- /dev/null
      +++ b/var/Widget/Ajax.php
      @@ -0,0 +1,163 @@
      +<?php
      +/**
      + * 异步调用组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 异步调用组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + */
      +class Widget_Ajax extends Widget_Abstract_Options implements Widget_Interface_Do
      +{
      +    /**
      +     * 针对rewrite验证的请求返回
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function remoteCallback()
      +    {
      +        if ($this->options->generator == $this->request->getAgent()) {
      +            echo 'OK';
      +        }
      +    }
      +
      +    /**
      +     * 获取最新版本
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function checkVersion()
      +    {
      +        $this->user->pass('editor');
      +        $client = Typecho_Http_Client::get();
      +        if ($client) {
      +            $client->setHeader('User-Agent', $this->options->generator)
      +            ->send('http://code.google.com/feeds/p/typecho/downloads/basic');
      +
      +            /** 匹配内容体 */
      +            $response = $client->getResponseBody();
      +            preg_match_all("/<link[^>]*href=\"([^>]*)\"\s*\/>\s*<title>([^>]*)<\/title>/is", $response, $matches);
      +            $result = array('available' => 0);
      +
      +            list($soft, $version) = explode(' ', $this->options->generator);
      +            $current = explode('/', $version);
      +
      +            if ($matches) {
      +                foreach ($matches[0] as $key => $val) {
      +                    $title = trim($matches[2][$key]);
      +                    if (preg_match("/([0-9\.]+)\(([0-9\.]+)\)\-release/is", $title, $out)) {
      +                        if (version_compare($out[1], $current[0], '>=')
      +                        && version_compare($out[2], $current[1], '>')) {
      +                            $result = array('available' => 1, 'latest' => $out[1] . '-' . $out[2],
      +                            'current' => $current[0] . '-' . $current[1], 'link' => $matches[1][$key]);
      +                            break;
      +                        }
      +                    }
      +                }
      +            }
      +
      +            Typecho_Cookie::set('__typecho_check_version', $result);
      +            $this->response->throwJson($result);
      +            return;
      +        }
      +
      +        throw new Typecho_Widget_Exception(_t('禁止访问'), 403);
      +    }
      +
      +    /**
      +     * 远程请求代理
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function feed()
      +    {
      +        $this->user->pass('subscriber');
      +        $client = Typecho_Http_Client::get();
      +        if ($client) {
      +            $client->setHeader('User-Agent', $this->options->generator)
      +            ->send('http://typecho.org/feed/');
      +
      +            /** 匹配内容体 */
      +            $response = $client->getResponseBody();
      +            preg_match_all("/<item>\s*<title>([^>]*)<\/title>\s*<link>([^>]*)<\/link>\s*<guid>[^>]*<\/guid>\s*<pubDate>([^>]*)<\/pubDate>/is", $response, $matches);
      +
      +            $data = array();
      +
      +            if ($matches) {
      +                foreach ($matches[0] as $key => $val) {
      +                    $data[] = array(
      +                        'title'  =>  $matches[1][$key],
      +                        'link'   =>  $matches[2][$key],
      +                        'date'   =>  Typecho_I18n::dateWord(strtotime($matches[3][$key]),
      +                        $this->options->gmtTime + $this->options->timezone),
      +                    );
      +
      +                    if ($key > 3) {
      +                        break;
      +                    }
      +                }
      +            }
      +            
      +            if (!empty($data)) {
      +                Typecho_Cookie::set('__typecho_feed', Typecho_Json::encode($data));
      +            }
      +            
      +            $this->response->throwJson($data);
      +            return;
      +        }
      +
      +        throw new Typecho_Widget_Exception(_t('禁止访问'), 403);
      +    }
      +
      +    /**
      +     * 自定义编辑器大小
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function editorResize()
      +    {
      +        $this->user->pass('contributor');
      +        if ($this->db->fetchObject($this->db->select(array('COUNT(*)' => 'num'))
      +        ->from('table.options')->where('name = ? AND user = ?', 'editorSize', $this->user->uid))->num > 0) {
      +            $this->widget('Widget_Abstract_Options')
      +            ->update(array('value' => $this->request->size), $this->db->sql()->where('name = ? AND user = ?', 'editorSize', $this->user->uid));
      +        } else {
      +            $this->widget('Widget_Abstract_Options')->insert(array(
      +                'name'  =>  'editorSize',
      +                'value' =>  $this->request->size,
      +                'user'  =>  $this->user->uid
      +            ));
      +        }
      +    }
      +
      +    /**
      +     * 异步请求入口
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        if (!$this->request->isAjax()) {
      +            $this->response->goBack();
      +        }
      +
      +        $this->on($this->request->is('do=remoteCallback'))->remoteCallback();
      +        $this->on($this->request->is('do=feed'))->feed();
      +        $this->on($this->request->is('do=checkVersion'))->checkVersion();
      +        $this->on($this->request->is('do=editorResize'))->editorResize();
      +    }
      +}
      diff --git a/var/Widget/Archive.php b/var/Widget/Archive.php
      new file mode 100644
      index 00000000..db4545a9
      --- /dev/null
      +++ b/var/Widget/Archive.php
      @@ -0,0 +1,1864 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: Posts.php 200 2008-05-21 06:33:20Z magike.net $
      + */
      +
      +/**
      + * 内容的文章基类
      + * 定义的css类
      + * p.more:阅读全文链接所属段落
      + *
      + * TODO 增加feed支持
      + * @package Widget
      + */
      +class Widget_Archive extends Widget_Abstract_Contents
      +{
      +    /**
      +     * 调用的风格文件
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_themeFile;
      +    
      +    /**
      +     * 风格目录
      +     * 
      +     * @access private
      +     * @var string
      +     */
      +    private $_themeDir;
      +
      +    /**
      +     * 分页计算对象
      +     *
      +     * @access private
      +     * @var Typecho_Db_Query
      +     */
      +    private $_countSql;
      +
      +    /**
      +     * 所有文章个数
      +     *
      +     * @access private
      +     * @var integer
      +     */
      +    private $_total = false;
      +
      +    /**
      +     * 标记是否为从外部调用
      +     *
      +     * @access private
      +     * @var boolean
      +     */
      +    private $_invokeFromOutside = false;
      +
      +    /**
      +     * 是否由聚合调用
      +     *
      +     * @access private
      +     * @var boolean
      +     */
      +    private $_invokeByFeed = false;
      +
      +    /**
      +     * 当前页
      +     *
      +     * @access private
      +     * @var integer
      +     */
      +    private $_currentPage;
      +
      +    /**
      +     * 生成分页的内容
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_pageRow;
      +
      +    /**
      +     * 聚合器对象
      +     *
      +     * @access private
      +     * @var Typecho_Feed_Writer
      +     */
      +    private $_feed;
      +
      +    /**
      +     * RSS 2.0聚合地址
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_feedUrl;
      +
      +    /**
      +     * RSS 1.0聚合地址
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_feedRssUrl;
      +
      +    /**
      +     * ATOM 聚合地址
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_feedAtomUrl;
      +
      +    /**
      +     * 本页关键字
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_keywords;
      +
      +    /**
      +     * 本页描述
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_description;
      +
      +    /**
      +     * 聚合类型
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_feedType;
      +
      +    /**
      +     * 聚合类型
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_feedContentType;
      +
      +    /**
      +     * 当前feed地址
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_currentFeedUrl;
      +
      +    /**
      +     * 归档标题
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_archiveTitle = array();
      +
      +    /**
      +     * 归档类型
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_archiveType = 'index';
      +
      +    /**
      +     * 是否为单一归档
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_archiveSingle = false;
      +    
      +    /**
      +     * 是否为自定义首页, 主要为了标记自定义首页的情况
      +     * 
      +     * (default value: false)
      +     * 
      +     * @var boolean
      +     * @access private
      +     */
      +    private $_makeSinglePageAsFrontPage = false;
      +
      +    /**
      +     * 归档缩略名
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_archiveSlug;
      +
      +    /**
      +     * 设置分页对象
      +     *
      +     * @access private
      +     * @var Typecho_Widget_Helper_PageNavigator
      +     */
      +    private $_pageNav;
      +
      +
      +    /**
      +     * 构造函数,初始化组件
      +     *
      +     * @access public
      +     * @param mixed $request request对象
      +     * @param mixed $response response对象
      +     * @param mixed $params 参数列表
      +     * @return void
      +     */
      +    public function __construct($request, $response, $params = NULL)
      +    {
      +        parent::__construct($request, $response, $params);
      +
      +        $this->parameter->setDefault(array('pageSize' => $this->options->pageSize,
      +        'type' => NULL));
      +
      +        /** 用于判断是路由调用还是外部调用 */
      +        if (NULL == $this->parameter->type) {
      +            $this->parameter->type = Typecho_Router::$current;
      +        } else {
      +            $this->_invokeFromOutside = true;
      +        }
      +
      +        /** 用于判断是否为feed调用 */
      +        if ($this->parameter->isFeed) {
      +            $this->_invokeByFeed = true;
      +        }
      +        
      +        /** 初始化皮肤路径 */
      +        $this->_themeDir =  __TYPECHO_ROOT_DIR__ . '/' . __TYPECHO_THEME_DIR__ . '/' . $this->options->theme . '/';
      +
      +        /** 处理feed模式 **/
      +        if ('feed' == $this->parameter->type) {
      +
      +            $this->_currentFeedUrl = '';
      +
      +            /** 判断聚合类型 */
      +            switch (true) {
      +                case 0 === strpos($this->request->feed, '/rss/') || '/rss' == $this->request->feed:
      +                    /** 如果是RSS1标准 */
      +                    $this->request->feed = substr($this->request->feed, 4);
      +                    $this->_feedType = Typecho_Feed::RSS1;
      +                    $this->_currentFeedUrl = $this->options->feedRssUrl;
      +                    $this->_feedContentType = 'application/rdf+xml';
      +                    break;
      +                case 0 === strpos($this->request->feed, '/atom/') || '/atom' == $this->request->feed:
      +                    /** 如果是ATOM标准 */
      +                    $this->request->feed = substr($this->request->feed, 5);
      +                    $this->_feedType = Typecho_Feed::ATOM1;
      +                    $this->_currentFeedUrl = $this->options->feedAtomUrl;
      +                    $this->_feedContentType = 'application/atom+xml';
      +                    break;
      +                default:
      +                    $this->_feedType = Typecho_Feed::RSS2;
      +                    $this->_currentFeedUrl = $this->options->feedUrl;
      +                    $this->_feedContentType = 'application/rss+xml';
      +                    break;
      +            }
      +
      +            $feedQuery = $this->request->feed;
      +            //$this->parameter->type = Typecho_Router::$current;
      +            //$this->request->setParams($params);
      +
      +            if ('/comments/' == $feedQuery || '/comments' == $feedQuery) {
      +                /** 专为feed使用的hack */
      +                $this->parameter->type = 'comments';
      +            } else {
      +                $matched = Typecho_Router::match($this->request->feed, 'pageSize=10&isFeed=1');
      +                if ($matched && $matched instanceof Widget_Archive) {
      +                    $this->import($matched);
      +                } else {
      +                    throw new Typecho_Widget_Exception(_t('聚合页不存在'), 404);
      +                }
      +            }
      +
      +            /** 初始化聚合器 */
      +            $this->setFeed(new Typecho_Feed(Typecho_Common::VERSION, $this->_feedType, $this->options->charset, _t('zh-CN')));
      +
      +            /** 默认输出10则文章 **/
      +            $this->parameter->pageSize = 10;
      +        }
      +    }
      +    
      +    /**
      +     * 评论地址
      +     * 
      +     * @access protected
      +     * @return void
      +     */
      +    protected function ___commentUrl()
      +    {
      +        /** 生成反馈地址 */
      +        /** 评论 */
      +        $commentUrl = parent::___commentUrl();
      +        
      +        //不依赖js的父级评论
      +        $reply = $this->request->filter('int')->replyTo;
      +        if ($reply && $this->is('single')) {
      +            $commentUrl .= '?parent=' . $reply;
      +        }
      +        
      +        return $commentUrl;
      +    }
      +
      +    /**
      +     * 设置分页对象
      +     * @param array $pageRow
      +     * @return void
      +     */
      +    public function setPageRow($pageRow)
      +    {
      +        $this->_pageRow = $pageRow;
      +    }
      +
      +    /**
      +     * @param $_archiveSlug the $_archiveSlug to set
      +     */
      +    public function setArchiveSlug($archiveSlug)
      +    {
      +        $this->_archiveSlug = $archiveSlug;
      +    }
      +
      +    /**
      +     * @param $_archiveSingle the $_archiveSingle to set
      +     */
      +    public function setArchiveSingle($archiveSingle)
      +    {
      +        $this->_archiveSingle = $archiveSingle;
      +    }
      +
      +    /**
      +     * @param $_archiveType the $_archiveType to set
      +     */
      +    public function setArchiveType($archiveType)
      +    {
      +        $this->_archiveType = $archiveType;
      +    }
      +
      +    /**
      +     * @param $_archiveTitle the $_archiveTitle to set
      +     */
      +    public function setArchiveTitle($archiveTitle)
      +    {
      +        $this->_archiveTitle = $archiveTitle;
      +    }
      +
      +    /**
      +     * 增加标题
      +     * @param string $archiveTitle 标题
      +     * @return void
      +     */
      +    public function addArchiveTitle($archiveTitle)
      +    {
      +        $current = $this->getArchiveTitle();
      +        $current[] = $archiveTitle;
      +        $this->setArchiveTitle($current);
      +    }
      +
      +    /**
      +     * @param $_feedType the $_feedType to set
      +     */
      +    public function setFeedType($feedType)
      +    {
      +        $this->_feedType = $feedType;
      +    }
      +
      +    /**
      +     * @param $_description the $_description to set
      +     */
      +    public function setDescription($description)
      +    {
      +        $this->_description = $description;
      +    }
      +
      +    /**
      +     * @param $_keywords the $_keywords to set
      +     */
      +    public function setKeywords($keywords)
      +    {
      +        $this->_keywords = $keywords;
      +    }
      +
      +    /**
      +     * @param $_feedAtomUrl the $_feedAtomUrl to set
      +     */
      +    public function setFeedAtomUrl($feedAtomUrl)
      +    {
      +        $this->_feedAtomUrl = $feedAtomUrl;
      +    }
      +
      +    /**
      +     * @param $_feedRssUrl the $_feedRssUrl to set
      +     */
      +    public function setFeedRssUrl($feedRssUrl)
      +    {
      +        $this->_feedRssUrl = $feedRssUrl;
      +    }
      +
      +    /**
      +     * @param $_feedUrl the $_feedUrl to set
      +     */
      +    public function setFeedUrl($feedUrl)
      +    {
      +        $this->_feedUrl = $feedUrl;
      +    }
      +
      +    /**
      +     * @param $_feed the $_feed to set
      +     */
      +    public function setFeed($feed)
      +    {
      +        $this->_feed = $feed;
      +    }
      +
      +    /**
      +     * @param $_countSql the $_countSql to set
      +     */
      +    public function setCountSql($countSql)
      +    {
      +        $this->_countSql = $countSql;
      +    }
      +
      +    /**
      +     * @param $_total the $_total to set
      +     */
      +    public function setTotal($total)
      +    {
      +        $this->_total = $total;
      +    }
      +
      +    /**
      +     * @param $_themeFile the $_themeFile to set
      +     */
      +    public function setThemeFile($themeFile)
      +    {
      +        $this->_themeFile = $themeFile;
      +    }
      +    
      +    /**
      +     * @param $_themeDir the $_themeDir to set
      +     */
      +    public function setThemeDir($themeDir)
      +    {
      +        $this->_themeDir = $themeDir;
      +    }
      +
      +    /**
      +     * 获取分页对象
      +     * @return array
      +     */
      +    public function getPageRow()
      +    {
      +        return $this->_pageRow;
      +    }
      +
      +    /**
      +     * @return the $_archiveSlug
      +     */
      +    public function getArchiveSlug()
      +    {
      +        return $this->_archiveSlug;
      +    }
      +
      +    /**
      +     * @return the $_archiveSingle
      +     */
      +    public function getArchiveSingle()
      +    {
      +        return $this->_archiveSingle;
      +    }
      +
      +    /**
      +     * @return the $_archiveType
      +     */
      +    public function getArchiveType()
      +    {
      +        return $this->_archiveType;
      +    }
      +
      +    /**
      +     * @return the $_archiveTitle
      +     */
      +    public function getArchiveTitle()
      +    {
      +        return $this->_archiveTitle;
      +    }
      +
      +    /**
      +     * @return the $_feedType
      +     */
      +    public function getFeedType()
      +    {
      +        return $this->_feedType;
      +    }
      +
      +    /**
      +     * @return the $_description
      +     */
      +    public function getDescription()
      +    {
      +        return $this->_description;
      +    }
      +
      +    /**
      +     * @return the $_keywords
      +     */
      +    public function getKeywords()
      +    {
      +        return $this->_keywords;
      +    }
      +
      +    /**
      +     * @return the $_feedAtomUrl
      +     */
      +    public function getFeedAtomUrl()
      +    {
      +        return $this->_feedAtomUrl;
      +    }
      +
      +    /**
      +     * @return the $_feedRssUrl
      +     */
      +    public function getFeedRssUrl()
      +    {
      +        return $this->_feedRssUrl;
      +    }
      +
      +    /**
      +     * @return the $_feedUrl
      +     */
      +    public function getFeedUrl()
      +    {
      +        return $this->_feedUrl;
      +    }
      +
      +    /**
      +     * @return the $_feed
      +     */
      +    public function getFeed()
      +    {
      +        return $this->_feed;
      +    }
      +
      +    /**
      +     * @return the $_countSql
      +     */
      +    public function getCountSql()
      +    {
      +        return $this->_countSql;
      +    }
      +
      +    /**
      +     * @return the $_total
      +     */
      +    public function getTotal()
      +    {
      +        return $this->_total;
      +    }
      +
      +    /**
      +     * @return the $_themeFile
      +     */
      +    public function getThemeFile()
      +    {
      +        return $this->_themeFile;
      +    }
      +    
      +    /**
      +     * @return the $_themeDir
      +     */
      +    public function getThemeDir()
      +    {
      +        return $this->_themeDir;
      +    }
      +
      +    /**
      +     * 导入对象
      +     *
      +     * @access private
      +     * @param Widget_Archive $widget 需要导入的对象
      +     * @return void
      +     */
      +    private function import(Widget_Archive $widget)
      +    {
      +        $currentProperties = get_object_vars($this);
      +
      +        foreach ($currentProperties as $name => $value) {
      +            if (false !== strpos('|request|response|parameter|_feed|_feedType|_currentFeedUrl|', '|' . $name . '|')) {
      +                continue;
      +            }
      +
      +            if (isset($widget->{$name})) {
      +                $this->{$name} = $widget->{$name};
      +            } else {
      +                $method = ucfirst(trim($name, '_'));
      +                $setMethod = 'set' . $method;
      +                $getMethod = 'get' . $method;
      +
      +                if (method_exists($this, $setMethod)
      +                    && method_exists($widget, $getMethod)) {
      +                    $this->{$setMethod}($widget->{$getMethod}());
      +                }
      +            }
      +        }
      +    }
      +
      +    /**
      +     * 处理index
      +     *
      +     * @access private
      +     * @param Typecho_Db_Query $select 查询对象
      +     * @param boolean $hasPushed 是否已经压入队列
      +     * @return void
      +     */
      +    private function indexHandle(Typecho_Db_Query $select, &$hasPushed)
      +    {
      +        $select->where('table.contents.type = ?', 'post');
      +
      +        /** 插件接口 */
      +        $this->pluginHandle()->indexHandle($this, $select);
      +    }
      +
      +    /**
      +     * 404页面处理
      +     *
      +     * @access private
      +     * @param Typecho_Db_Query $select 查询对象
      +     * @param boolean $hasPushed 是否已经压入队列
      +     * @return void
      +     */
      +    private function error404Handle(Typecho_Db_Query $select, &$hasPushed)
      +    {
      +        /** 设置header */
      +        $this->response->setStatus(404);
      +
      +        /** 设置标题 */
      +        $this->_archiveTitle[] = _t('页面没找到');
      +
      +        /** 设置归档类型 */
      +        $this->_archiveType = 'archive';
      +
      +        /** 设置归档缩略名 */
      +        $this->_archiveSlug = 404;
      +
      +        /** 设置归档模板 */
      +        $this->_themeFile = '404.php';
      +
      +        /** 设置单一归档类型 */
      +        $this->_archiveSingle = false;
      +
      +        $hasPushed = true;
      +
      +        /** 插件接口 */
      +        $this->pluginHandle()->error404Handle($this, $select);
      +    }
      +
      +    /**
      +     * 独立页处理
      +     *
      +     * @access private
      +     * @param Typecho_Db_Query $select 查询对象
      +     * @param boolean $hasPushed 是否已经压入队列
      +     * @return void
      +     */
      +    private function singleHandle(Typecho_Db_Query $select, &$hasPushed)
      +    {
      +        if ('comment_page' == $this->parameter->type) {
      +            $params = array();
      +            $matched = Typecho_Router::match($this->request->permalink);
      +
      +            if ($matched && $matched instanceof Widget_Archive && $matched->is('single')) {
      +                $this->import($matched);
      +                $hasPushed = true;
      +                return;
      +            }
      +        }
      +
      +        /** 将这两个设置提前是为了保证在调用query的plugin时可以在插件中使用is判断初步归档类型 */
      +        /** 如果需要更细判断,则可以使用singleHandle来实现 */
      +        $this->_archiveSingle = true;
      +
      +        /** 默认归档类型 */
      +        $this->_archiveType = 'single';
      +
      +        /** 匹配类型 */
      +        $select->where('table.contents.type = ?', $this->parameter->type);
      +
      +        /** 如果是单篇文章或独立页面 */
      +        if (isset($this->request->cid)) {
      +            $select->where('table.contents.cid = ?', $this->request->filter('int')->cid);
      +        }
      +
      +        /** 匹配缩略名 */
      +        if (isset($this->request->slug)) {
      +            $select->where('table.contents.slug = ?', $this->request->slug);
      +        }
      +
      +        /** 匹配时间 */
      +        if (isset($this->request->year)) {
      +            $year = $this->request->filter('int')->year;
      +
      +            $fromMonth = 1;
      +            $toMonth = 12;
      +
      +            $fromDay = 1;
      +            $toDay = 31;
      +
      +            if (isset($this->request->month)) {
      +                $fromMonth = $this->request->filter('int')->month;
      +                $toMonth = $fromMonth;
      +
      +                $fromDay = 1;
      +                $toDay = date('t', mktime(0, 0, 0, $toMonth, 1, $year));
      +
      +                if (isset($this->request->day)) {
      +                    $fromDay = $this->request->filter('int')->day;
      +                    $toDay = $fromDay;
      +                }
      +            }
      +
      +            /** 获取起始GMT时间的unix时间戳 */
      +            $from = mktime(0, 0, 0, $fromMonth, $fromDay, $year) - $this->options->timezone + $this->options->serverTimezone;
      +            $to = mktime(23, 59, 59, $toMonth, $toDay, $year) - $this->options->timezone + $this->options->serverTimezone;
      +            $select->where('table.contents.created > ? AND table.contents.created < ?', $from, $to);
      +        }
      +
      +        /** 保存密码至cookie */
      +        if ($this->request->isPost() && isset($this->request->protectPassword)) {
      +            Typecho_Cookie::set('protectPassword', $this->request->protectPassword, 0, $this->options->siteUrl);
      +        }
      +
      +        /** 匹配类型 */
      +        $select->limit(1);
      +        $this->query($select);
      +
      +        if (!$this->have() || (isset($this->request->category) && $this->category != $this->request->category)) {
      +            if (!$this->_invokeFromOutside) {
      +                /** 对没有索引情况下的判断 */
      +                throw new Typecho_Widget_Exception(_t('请求的地址不存在'), 404);
      +            } else {
      +                $hasPushed = true;
      +                return;
      +            }
      +        }
      +
      +        /** 设置关键词 */
      +        $this->_keywords = implode(',', Typecho_Common::arrayFlatten($this->tags, 'name'));
      +
      +        /** 设置描述 */
      +        $this->_description = $this->description;
      +
      +        /** 设置模板 */
      +        if ($this->template) {
      +            /** 应用自定义模板 */
      +            $this->_themeFile = $this->template;
      +        }
      +
      +        /** 设置头部feed */
      +        /** RSS 2.0 */
      +
      +        //对自定义首页使用全局变量
      +        if (!$this->_makeSinglePageAsFrontPage) {
      +            $this->_feedUrl = $this->feedUrl;
      +
      +            /** RSS 1.0 */
      +            $this->_feedRssUrl = $this->feedRssUrl;
      +
      +            /** ATOM 1.0 */
      +            $this->_feedAtomUrl = $this->feedAtomUrl;
      +
      +            /** 设置标题 */
      +            $this->_archiveTitle[] = $this->title;
      +        }
      +
      +        /** 设置归档类型 */
      +        $this->_archiveType = $this->type;
      +
      +        /** 设置归档缩略名 */
      +        $this->_archiveSlug = ('post' == $this->type || 'attachment' == $this->type) ? $this->cid : $this->slug;
      +
      +        /** 设置403头 */
      +        if ($this->hidden) {
      +            $this->response->setStatus(403);
      +        }
      +
      +        $hasPushed = true;
      +
      +        /** 插件接口 */
      +        $this->pluginHandle()->singleHandle($this, $select);
      +    }
      +
      +    /**
      +     * 处理分类
      +     *
      +     * @access private
      +     * @param Typecho_Db_Query $select 查询对象
      +     * @param boolean $hasPushed 是否已经压入队列
      +     * @return void
      +     */
      +    private function categoryHandle(Typecho_Db_Query $select, &$hasPushed)
      +    {
      +        /** 如果是分类 */
      +        $categorySelect = $this->db->select()
      +        ->from('table.metas')
      +        ->where('type = ?', 'category')
      +        ->limit(1);
      +
      +        if (isset($this->request->mid)) {
      +            $categorySelect->where('mid = ?', $this->request->filter('int')->mid);
      +        }
      +
      +        if (isset($this->request->slug)) {
      +            $categorySelect->where('slug = ?', $this->request->slug);
      +        }
      +
      +        $category = $this->db->fetchRow($categorySelect,
      +        array($this->widget('Widget_Abstract_Metas'), 'filter'));
      +
      +        if (!$category) {
      +            throw new Typecho_Widget_Exception(_t('分类不存在'), 404);
      +        }
      +
      +        /** fix sql92 by 70 */
      +        $select->join('table.relationships', 'table.contents.cid = table.relationships.cid')
      +        ->where('table.relationships.mid = ?', $category['mid'])
      +        ->where('table.contents.type = ?', 'post');
      +
      +        /** 设置分页 */
      +        $this->_pageRow = $category;
      +
      +        /** 设置关键词 */
      +        $this->_keywords = $category['name'];
      +
      +        /** 设置描述 */
      +        $this->_description = $category['description'];
      +
      +        /** 设置头部feed */
      +        /** RSS 2.0 */
      +        $this->_feedUrl = $category['feedUrl'];
      +
      +        /** RSS 1.0 */
      +        $this->_feedRssUrl = $category['feedRssUrl'];
      +
      +        /** ATOM 1.0 */
      +        $this->_feedAtomUrl = $category['feedAtomUrl'];
      +
      +        /** 设置标题 */
      +        $this->_archiveTitle[] = $category['name'];
      +
      +        /** 设置归档类型 */
      +        $this->_archiveType = 'category';
      +
      +        /** 设置归档缩略名 */
      +        $this->_archiveSlug = $category['slug'];
      +
      +        /** 插件接口 */
      +        $this->pluginHandle()->categoryHandle($this, $select);
      +    }
      +
      +    /**
      +     * 处理标签
      +     *
      +     * @access private
      +     * @param Typecho_Db_Query $select 查询对象
      +     * @param boolean $hasPushed 是否已经压入队列
      +     * @return void
      +     */
      +    private function tagHandle(Typecho_Db_Query $select, &$hasPushed)
      +    {
      +        $tagSelect = $this->db->select()->from('table.metas')
      +        ->where('type = ?', 'tag')->limit(1);
      +
      +        if (isset($this->request->mid)) {
      +            $tagSelect->where('mid = ?', $this->request->filter('int')->mid);
      +        }
      +
      +        if (isset($this->request->slug)) {
      +            $tagSelect->where('slug = ?', $this->request->slug);
      +        }
      +
      +        /** 如果是标签 */
      +        $tag = $this->db->fetchRow($tagSelect,
      +        array($this->widget('Widget_Abstract_Metas'), 'filter'));
      +
      +        if (!$tag) {
      +            throw new Typecho_Widget_Exception(_t('标签不存在'), 404);
      +        }
      +
      +        /** fix sql92 by 70 */
      +        $select->join('table.relationships', 'table.contents.cid = table.relationships.cid')
      +        ->where('table.relationships.mid = ?', $tag['mid'])
      +        ->where('table.contents.type = ?', 'post');
      +
      +        /** 设置分页 */
      +        $this->_pageRow = $tag;
      +
      +        /** 设置关键词 */
      +        $this->_keywords = $tag['name'];
      +
      +        /** 设置描述 */
      +        $this->_description = $tag['description'];
      +
      +        /** 设置头部feed */
      +        /** RSS 2.0 */
      +        $this->_feedUrl = $tag['feedUrl'];
      +
      +        /** RSS 1.0 */
      +        $this->_feedRssUrl = $tag['feedRssUrl'];
      +
      +        /** ATOM 1.0 */
      +        $this->_feedAtomUrl = $tag['feedAtomUrl'];
      +
      +        /** 设置标题 */
      +        $this->_archiveTitle[] = $tag['name'];
      +
      +        /** 设置归档类型 */
      +        $this->_archiveType = 'tag';
      +
      +        /** 设置归档缩略名 */
      +        $this->_archiveSlug = $tag['slug'];
      +
      +        /** 插件接口 */
      +        $this->pluginHandle()->tagHandle($this, $select);
      +    }
      +
      +    /**
      +     * 处理作者
      +     *
      +     * @access private
      +     * @param Typecho_Db_Query $select 查询对象
      +     * @param boolean $hasPushed 是否已经压入队列
      +     * @return void
      +     */
      +    private function authorHandle(Typecho_Db_Query $select, &$hasPushed)
      +    {
      +        $uid = $this->request->filter('int')->uid;
      +
      +        $author = $this->db->fetchRow($this->db->select()->from('table.users')
      +        ->where('uid = ?', $uid),
      +        array($this->widget('Widget_Abstract_Users'), 'filter'));
      +
      +        if (!$author) {
      +            throw new Typecho_Widget_Exception(_t('作者不存在'), 404);
      +        }
      +
      +        $select->where('table.contents.authorId = ?', $uid)
      +        ->where('table.contents.type = ?', 'post');
      +
      +        /** 设置分页 */
      +        $this->_pageRow = $author;
      +
      +        /** 设置关键词 */
      +        $this->_keywords = $author['screenName'];
      +
      +        /** 设置描述 */
      +        $this->_description = $author['screenName'];
      +
      +        /** 设置头部feed */
      +        /** RSS 2.0 */
      +        $this->_feedUrl = $author['feedUrl'];
      +
      +        /** RSS 1.0 */
      +        $this->_feedRssUrl = $author['feedRssUrl'];
      +
      +        /** ATOM 1.0 */
      +        $this->_feedAtomUrl = $author['feedAtomUrl'];
      +
      +        /** 设置标题 */
      +        $this->_archiveTitle[] = $author['screenName'];
      +
      +        /** 设置归档类型 */
      +        $this->_archiveType = 'author';
      +
      +        /** 设置归档缩略名 */
      +        $this->_archiveSlug = $author['uid'];
      +
      +        /** 插件接口 */
      +        $this->pluginHandle()->authorHandle($this, $select);
      +    }
      +
      +    /**
      +     * 处理日期
      +     *
      +     * @access private
      +     * @param Typecho_Db_Query $select 查询对象
      +     * @param boolean $hasPushed 是否已经压入队列
      +     * @return void
      +     */
      +    private function dateHandle(Typecho_Db_Query $select, &$hasPushed)
      +    {
      +        /** 如果是按日期归档 */
      +        $year = $this->request->filter('int')->year;
      +        $month = $this->request->filter('int')->month;
      +        $day = $this->request->filter('int')->day;
      +
      +        if (!empty($year) && !empty($month) && !empty($day)) {
      +
      +            /** 如果按日归档 */
      +            $from = mktime(0, 0, 0, $month, $day, $year);
      +            $to = mktime(23, 59, 59, $month, $day, $year);
      +
      +            /** 归档缩略名 */
      +            $this->_archiveSlug = 'day';
      +
      +            /** 设置标题 */
      +            $this->_archiveTitle[] = $year;
      +            $this->_archiveTitle[] = $month;
      +            $this->_archiveTitle[] = $day;
      +        } else if (!empty($year) && !empty($month)) {
      +
      +            /** 如果按月归档 */
      +            $from = mktime(0, 0, 0, $month, 1, $year);
      +            $to = mktime(23, 59, 59, $month, date('t', $from), $year);
      +
      +            /** 归档缩略名 */
      +            $this->_archiveSlug = 'month';
      +
      +            /** 设置标题 */
      +            $this->_archiveTitle[] = $year;
      +            $this->_archiveTitle[] = $month;
      +        } else if (!empty($year)) {
      +
      +            /** 如果按年归档 */
      +            $from = mktime(0, 0, 0, 1, 1, $year);
      +            $to = mktime(23, 59, 59, 12, 31, $year);
      +
      +            /** 归档缩略名 */
      +            $this->_archiveSlug = 'year';
      +
      +            /** 设置标题 */
      +            $this->_archiveTitle[] = $year;
      +        }
      +
      +        $select->where('table.contents.created >= ?', $from - $this->options->timezone + $this->options->serverTimezone)
      +        ->where('table.contents.created <= ?', $to - $this->options->timezone + $this->options->serverTimezone)
      +        ->where('table.contents.type = ?', 'post');
      +
      +        /** 设置归档类型 */
      +        $this->_archiveType = 'date';
      +
      +        /** 设置头部feed */
      +        $value = array('year' => $year, 'month' => str_pad($month, 2, '0', STR_PAD_LEFT), 'day' => str_pad($day, 2, '0', STR_PAD_LEFT));
      +
      +        /** 设置分页 */
      +        $this->_pageRow = $value;
      +
      +        /** 获取当前路由,过滤掉翻页情况 */
      +        $currentRoute = str_replace('_page', '', $this->parameter->type);
      +
      +        /** RSS 2.0 */
      +        $this->_feedUrl = Typecho_Router::url($currentRoute, $value, $this->options->feedUrl);
      +
      +        /** RSS 1.0 */
      +        $this->_feedRssUrl = Typecho_Router::url($currentRoute, $value, $this->options->feedRssUrl);
      +
      +        /** ATOM 1.0 */
      +        $this->_feedAtomUrl = Typecho_Router::url($currentRoute, $value, $this->options->feedAtomUrl);
      +
      +        /** 插件接口 */
      +        $this->pluginHandle()->dateHandle($this, $select);
      +    }
      +
      +    /**
      +     * 处理搜索
      +     *
      +     * @access private
      +     * @param Typecho_Db_Query $select 查询对象
      +     * @param boolean $hasPushed 是否已经压入队列
      +     * @return void
      +     */
      +    private function searchHandle(Typecho_Db_Query $select, &$hasPushed)
      +    {
      +        /** 增加自定义搜索引擎接口 */
      +        //~ fix issue 40
      +        $keywords = $this->request->filter('url', 'search')->keywords;
      +        $this->pluginHandle()->trigger($hasPushed)->search($keywords, $this);
      +
      +        if (!$hasPushed) {
      +            $searchQuery = '%' . str_replace(' ', '%', $keywords) . '%';
      +
      +            /** 搜索无法进入隐私项保护归档 */
      +            $select->where('table.contents.password IS NULL')
      +            ->where('table.contents.title LIKE ? OR table.contents.text LIKE ?', $searchQuery, $searchQuery)
      +            ->where('table.contents.type = ?', 'post');
      +        }
      +
      +        /** 设置关键词 */
      +        $this->_keywords = $keywords;
      +
      +        /** 设置分页 */
      +        $this->_pageRow = array('keywords' => $keywords);
      +
      +        /** 设置头部feed */
      +        /** RSS 2.0 */
      +        $this->_feedUrl = Typecho_Router::url('search', array('keywords' => $keywords), $this->options->feedUrl);
      +
      +        /** RSS 1.0 */
      +        $this->_feedRssUrl = Typecho_Router::url('search', array('keywords' => $keywords), $this->options->feedAtomUrl);
      +
      +        /** ATOM 1.0 */
      +        $this->_feedAtomUrl = Typecho_Router::url('search', array('keywords' => $keywords), $this->options->feedAtomUrl);
      +
      +        /** 设置标题 */
      +        $this->_archiveTitle[] = $keywords;
      +
      +        /** 设置归档类型 */
      +        $this->_archiveType = 'search';
      +
      +        /** 插件接口 */
      +        $this->pluginHandle()->searchHandle($this, $select);
      +    }
      +
      +    /**
      +     * 重载select
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function select()
      +    {
      +        if ($this->_feed) {
      +            // 对feed输出加入限制条件
      +            return parent::select()->where('table.contents.allowFeed = ?', 1)
      +            ->where('table.contents.password IS NULL');
      +        } else {
      +            return parent::select();
      +        }
      +    }
      +
      +    /**
      +     * 提交查询
      +     *
      +     * @access public
      +     * @param mixed $select 查询对象
      +     * @return void
      +     */
      +    public function query($select)
      +    {
      +        $this->pluginHandle()->trigger($queryPlugged)->query($this, $select);
      +        if (!$queryPlugged) {
      +            $this->db->fetchAll($select, array($this, 'push'));
      +        }
      +    }
      +
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        /** 避免重复取数据 */
      +        if ($this->have()) {
      +            return;
      +        }
      +
      +        /** 处理搜索结果跳转 */
      +        if (isset($this->request->s)) {
      +            $filterKeywords = $this->request->filter('search')->s;
      +
      +            /** 跳转到搜索页 */
      +            if (NULL != $filterKeywords) {
      +                $this->response->redirect(Typecho_Router::url('search',
      +                array('keywords' => urlencode($filterKeywords)), $this->options->index));
      +            }
      +        }
      +
      +        /** 自定义首页功能 */
      +        if (!$this->_invokeByFeed && ('index' == $this->parameter->type || 'index_page' == $this->parameter->type)) {
      +            $frontPage = $this->options->frontPage;
      +
      +            //显示某个页面
      +            if (0 === strpos($frontPage, 'page:')) {
      +                // 对某些变量做hack
      +                $this->request->setParam('cid', intval(substr($frontPage, 5)));
      +                $this->parameter->type = 'page';
      +                $this->_makeSinglePageAsFrontPage = true;
      +            } else if (0 === strpos($frontPage, 'file:')) {
      +                // 显示某个文件
      +                $this->setThemeFile(substr($frontPage, 5));
      +                return;
      +            }
      +        }
      +
      +        /** 初始化分页变量 */
      +        $this->_currentPage = isset($this->request->page) ? $this->request->page : 1;
      +        $hasPushed = false;
      +
      +        /** select初始化 */
      +        $select = $this->pluginHandle()->trigger($selectPlugged)->select($this);
      +
      +        /** 定时发布功能 */
      +        if (!$selectPlugged) {
      +            $select = $this->select()->where('table.contents.status = ?', 'publish')
      +                ->where('table.contents.created < ?', $this->options->gmtTime);
      +        }
      +
      +        /** handle初始化 */
      +        $this->pluginHandle()->handleInit($this, $select);
      +
      +        /** 初始化其它变量 */
      +        $this->_feedUrl = $this->options->feedUrl;
      +        $this->_feedRssUrl = $this->options->feedRssUrl;
      +        $this->_feedAtomUrl = $this->options->feedAtomUrl;
      +        $this->_keywords = $this->options->keywords;
      +        $this->_description = $this->options->description;
      +
      +        $handles = array(
      +            'index'                     =>  'indexHandle',
      +            'index_page'                =>  'indexHandle',
      +            404                        =>  'error404Handle',
      +            'page'                      =>  'singleHandle',
      +            'post'                      =>  'singleHandle',
      +            'attachment'                =>  'singleHandle',
      +            'comment_page'              =>  'singleHandle',
      +            'category'                  =>  'categoryHandle',
      +            'category_page'             =>  'categoryHandle',
      +            'tag'                       =>  'tagHandle',
      +            'tag_page'                  =>  'tagHandle',
      +            'author'                    =>  'authorHandle',
      +            'author_page'               =>  'authorHandle',
      +            'archive_year'              =>  'dateHandle',
      +            'archive_year_page'         =>  'dateHandle',
      +            'archive_month'             =>  'dateHandle',
      +            'archive_month_page'        =>  'dateHandle',
      +            'archive_day'               =>  'dateHandle',
      +            'archive_day_page'          =>  'dateHandle',
      +            'search'                    =>  'searchHandle',
      +            'search_page'               =>  'searchHandle'
      +        );
      +
      +        if (isset($handles[$this->parameter->type])) {
      +            $handle = $handles[$this->parameter->type];
      +            $this->{$handle}($select, $hasPushed);
      +        } else {
      +            $hasPushed = $this->pluginHandle()->handle($this->parameter->type, $this, $select);
      +        }
      +        
      +        /** 初始化皮肤函数 */
      +        $functionsFile = $this->_themeDir . 'functions.php';
      +        if (!$this->_invokeFromOutside && file_exists($functionsFile)) {
      +            require_once $functionsFile;
      +            if (function_exists('themeInit')) {
      +                themeInit($this);
      +            }
      +        }
      +
      +        /** 如果已经提前压入则直接返回 */
      +        if ($hasPushed) {
      +            return;
      +        }
      +
      +        /** 仅输出文章 */
      +        $this->_countSql = clone $select;
      +
      +        $select->order('table.contents.created', Typecho_Db::SORT_DESC)
      +        ->page($this->_currentPage, $this->parameter->pageSize);
      +        $this->query($select);
      +    }
      +
      +    /**
      +     * 输出文章内容
      +     *
      +     * @access public
      +     * @param string $more 文章截取后缀
      +     * @return void
      +     */
      +    public function content($more = NULL)
      +    {
      +        parent::content($this->is('single') ? false : $more);
      +    }
      +
      +    /**
      +     * 输出分页
      +     *
      +     * @access public
      +     * @param string $prev 上一页文字
      +     * @param string $next 下一页文字
      +     * @param int $splitPage 分割范围
      +     * @param string $splitWord 分割字符
      +     * @return void
      +     */
      +    public function pageNav($prev = '&laquo;', $next = '&raquo;', $splitPage = 3, $splitWord = '...')
      +    {
      +        if ($this->have()) {
      +            $hasNav = false;
      +            $this->pluginHandle()->trigger($hasNav)->pageNav($prev, $next, $splitPage, $splitWord);
      +
      +            if (!$hasNav) {
      +                $query = Typecho_Router::url($this->parameter->type .
      +                (false === strpos($this->parameter->type, '_page') ? '_page' : NULL),
      +                $this->_pageRow, $this->options->index);
      +
      +                /** 使用盒状分页 */
      +                $nav = new Typecho_Widget_Helper_PageNavigator_Box(false === $this->_total ? $this->_total = $this->size($this->_countSql) : $this->_total,
      +                $this->_currentPage, $this->parameter->pageSize, $query);
      +                
      +                echo '<ol class="page-navigator">';
      +                $nav->render($prev, $next, $splitPage, $splitWord);
      +                echo '</ol>';
      +            }
      +        }
      +    }
      +
      +    /**
      +     * 前一页
      +     *
      +     * @access public
      +     * @param string $word 链接标题
      +     * @param string $page 页面链接
      +     * @return void
      +     */
      +    public function pageLink($word = '&laquo; Previous Entries', $page = 'prev')
      +    {
      +        if ($this->have()) {
      +            if (empty($this->_pageNav)) {
      +                $query = Typecho_Router::url($this->parameter->type .
      +                (false === strpos($this->parameter->type, '_page') ? '_page' : NULL),
      +                $this->_pageRow, $this->options->index);
      +
      +                /** 使用盒状分页 */
      +                $this->_pageNav = new Typecho_Widget_Helper_PageNavigator_Classic(false === $this->_total ? $this->_total = $this->size($this->_countSql) : $this->_total,
      +                $this->_currentPage, $this->parameter->pageSize, $query);
      +            }
      +
      +            $this->_pageNav->{$page}($word);
      +        }
      +    }
      +
      +    /**
      +     * 获取评论归档对象
      +     *
      +     * @access public
      +     * @return Widget_Abstract_Comments
      +     */
      +    public function comments()
      +    {
      +        $parameter = array('parentId' => $this->hidden ? 0 : $this->cid, 'parentContent' => $this->row,
      +        'respondId' => $this->respondId, 'commentPage' => $this->request->filter('int')->commentPage);
      +
      +        return $this->widget('Widget_Comments_Archive', $parameter);
      +    }
      +
      +    /**
      +     * 获取回响归档对象 
      +     * 
      +     * @access public
      +     * @return void
      +     */
      +    public function pings()
      +    {
      +        return $this->widget('Widget_Comments_Ping', array('parentId' => $this->hidden ? 0 : $this->cid,
      +                    'parentContent' => $this->row));
      +    }
      +
      +    /**
      +     * 获取附件对象
      +     *
      +     * @access public
      +     * @param integer $limit 最大个数
      +     * @param integer $offset 重新
      +     * @return Widget_Contents_Attachment_Related
      +     */
      +    public function attachments($limit = 0, $offset = 0)
      +    {
      +        return $this->widget('Widget_Contents_Attachment_Related', array('parentId' => $this->cid, 'limit' => $limit));
      +    }
      +
      +    /**
      +     * 显示下一个内容的标题链接
      +     *
      +     * @access public
      +     * @param string $format 格式
      +     * @param string $default 如果没有下一篇,显示的默认文字
      +     * @return void
      +     */
      +    public function theNext($format = '%s', $default = NULL)
      +    {
      +        $content = $this->db->fetchRow($this->select()->where('table.contents.created > ? AND table.contents.created < ?',
      +        $this->created, $this->options->gmtTime)
      +        ->where('table.contents.status = ?', 'publish')
      +        ->where('table.contents.type = ?', $this->type)
      +        ->where('table.contents.password IS NULL')
      +        ->order('table.contents.created', Typecho_Db::SORT_ASC)
      +        ->limit(1));
      +
      +        if ($content) {
      +            $content = $this->filter($content);
      +            $link = '<a href="' . $content['permalink'] . '" title="' . $content['title'] . '">' . $content['title'] . '</a>';
      +            printf($format, $link);
      +        } else {
      +            echo $default;
      +        }
      +    }
      +
      +    /**
      +     * 显示上一个内容的标题链接
      +     *
      +     * @access public
      +     * @param string $format 格式
      +     * @param string $default 如果没有上一篇,显示的默认文字
      +     * @return void
      +     */
      +    public function thePrev($format = '%s', $default = NULL)
      +    {
      +        $content = $this->db->fetchRow($this->select()->where('table.contents.created < ?', $this->created)
      +        ->where('table.contents.status = ?', 'publish')
      +        ->where('table.contents.type = ?', $this->type)
      +        ->where('table.contents.password IS NULL')
      +        ->order('table.contents.created', Typecho_Db::SORT_DESC)
      +        ->limit(1));
      +
      +        if ($content) {
      +            $content = $this->filter($content);
      +            $link = '<a href="' . $content['permalink'] . '" title="' . $content['title'] . '">' . $content['title'] . '</a>';
      +            printf($format, $link);
      +        } else {
      +            echo $default;
      +        }
      +    }
      +
      +    /**
      +     * 获取关联内容组件
      +     *
      +     * @access public
      +     * @param integer $limit 输出数量
      +     * @param string $type 关联类型
      +     * @return Typecho_Widget
      +     */
      +    public function related($limit = 5, $type = NULL)
      +    {
      +        $type = strtolower($type);
      +
      +        switch ($type) {
      +            case 'author':
      +                /** 如果访问权限被设置为禁止,则tag会被置为空 */
      +                return $this->widget('Widget_Contents_Related_Author',
      +                array('cid' => $this->cid, 'type' => $this->type, 'author' => $this->author->uid, 'limit' => $limit));
      +            default:
      +                /** 如果访问权限被设置为禁止,则tag会被置为空 */
      +                return $this->widget('Widget_Contents_Related',
      +                array('cid' => $this->cid, 'type' => $this->type, 'tags' => $this->tags, 'limit' => $limit));
      +        }
      +    }
      +
      +    /**
      +     * 输出头部元数据
      +     *
      +     * @access public
      +     * @param string $rule 规则
      +     * @return void
      +     */
      +    public function header($rule = NULL)
      +    {
      +        $rules = array();
      +        $allows = array(
      +            'description'   =>  htmlspecialchars($this->_description),
      +            'keywords'      =>  htmlspecialchars($this->_keywords),
      +            'generator'     =>  $this->options->generator,
      +            'template'      =>  $this->options->theme,
      +            'pingback'      =>  $this->options->xmlRpcUrl,
      +            'xmlrpc'        =>  $this->options->xmlRpcUrl . '?rsd',
      +            'wlw'           =>  $this->options->xmlRpcUrl . '?wlw',
      +            'rss2'          =>  $this->_feedUrl,
      +            'rss1'          =>  $this->_feedRssUrl,
      +            'commentReply'  =>  1,
      +            'atom'          =>  $this->_feedAtomUrl
      +        );
      +
      +        /** 头部是否输出聚合 */
      +        $allowFeed = !$this->is('single') || $this->allow('feed') || $this->_makeSinglePageAsFrontPage;
      +
      +        if (!empty($rule)) {
      +            parse_str($rule, $rules);
      +            $allows = array_merge($allows, $rules);
      +        }
      +
      +        $header = '';
      +        if (!empty($allows['description'])) {
      +            $header .= '<meta name="description" content="' . $allows['description'] . '" />' . "\n";
      +        }
      +
      +        if (!empty($allows['keywords'])) {
      +            $header .= '<meta name="keywords" content="' . $allows['keywords'] . '" />' . "\n";
      +        }
      +
      +        if (!empty($allows['generator'])) {
      +            $header .= '<meta name="generator" content="' . $allows['generator'] . '" />' . "\n";
      +        }
      +
      +        if (!empty($allows['template'])) {
      +            $header .= '<meta name="template" content="' . $allows['template'] . '" />' . "\n";
      +        }
      +
      +        if (!empty($allows['pingback'])) {
      +            $header .= '<link rel="pingback" href="' . $allows['pingback'] . '" />' . "\n";
      +        }
      +
      +        if (!empty($allows['xmlrpc'])) {
      +            $header .= '<link rel="EditURI" type="application/rsd+xml" title="RSD" href="' . $allows['xmlrpc'] . '" />' . "\n";
      +        }
      +
      +        if (!empty($allows['wlw'])) {
      +            $header .= '<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="' . $allows['wlw'] . '" />' . "\n";
      +        }
      +
      +        if (!empty($allows['rss2']) && $allowFeed) {
      +            $header .= '<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="' . $allows['rss2'] . '" />' . "\n";
      +        }
      +
      +        if (!empty($allows['rss1']) && $allowFeed) {
      +            $header .= '<link rel="alternate" type="application/rdf+xml" title="RSS 1.0" href="' . $allows['rss1'] . '" />' . "\n";
      +        }
      +
      +        if (!empty($allows['atom']) && $allowFeed) {
      +            $header .= '<link rel="alternate" type="application/atom+xml" title="ATOM 1.0" href="' . $allows['atom'] . '" />' . "\n";
      +        }
      +        
      +        if ($this->options->commentsThreaded && $this->is('single')) {
      +            if (1 == $allows['commentReply']) {
      +                $header .= "<script type=\"text/javascript\">
      +//<![CDATA[
      +var TypechoComment = {
      +    dom : function (id) {
      +        return document.getElementById(id);
      +    },
      +    
      +    create : function (tag, attr) {
      +        var el = document.createElement(tag);
      +        
      +        for (var key in attr) {
      +            el.setAttribute(key, attr[key]);
      +        }
      +        
      +        return el;
      +    },
      +
      +    reply : function (cid, coid) {
      +        var comment = this.dom(cid), parent = comment.parentNode,
      +            response = this.dom('" . $this->respondId . "'), input = this.dom('comment-parent'),
      +            form = 'form' == response.tagName ? response : response.getElementsByTagName('form')[0],
      +            textarea = response.getElementsByTagName('textarea')[0];
      +
      +        if (null == input) {
      +            input = this.create('input', {
      +                'type' : 'hidden',
      +                'name' : 'parent',
      +                'id'   : 'comment-parent'
      +            });
      +
      +            form.appendChild(input);
      +        }
      +        
      +        input.setAttribute('value', coid);
      +
      +        if (null == this.dom('comment-form-place-holder')) {
      +            var holder = this.create('div', {
      +                'id' : 'comment-form-place-holder'
      +            });
      +            
      +            response.parentNode.insertBefore(holder, response);
      +        }
      +
      +        comment.appendChild(response);
      +        this.dom('cancel-comment-reply-link').style.display = '';
      +        
      +        if (null != textarea && 'text' == textarea.name) {
      +            textarea.focus();
      +        }
      +        
      +        return false;
      +    },
      +
      +    cancelReply : function () {
      +        var response = this.dom('" . $this->respondId . "'),
      +        holder = this.dom('comment-form-place-holder'), input = this.dom('comment-parent');
      +
      +        if (null != input) {
      +            input.parentNode.removeChild(input);
      +        }
      +
      +        if (null == holder) {
      +            return true;
      +        }
      +
      +        this.dom('cancel-comment-reply-link').style.display = 'none';
      +        holder.parentNode.insertBefore(response, holder);
      +        return false;
      +    }
      +}
      +//]]>
      +</script>";
      +            } else {
      +                $header .= '<script src="' . $allows['commentReply'] . '" type="text/javascript"></script>';
      +            }
      +        }
      +
      +        /** 插件支持 */
      +        $header = $this->pluginHandle()->header($header, $this);
      +
      +        /** 输出header */
      +        echo $header;
      +    }
      +
      +    /**
      +     * 支持页脚自定义
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function footer()
      +    {
      +        $this->pluginHandle()->footer($this);
      +    }
      +
      +    /**
      +     * 输出cookie记忆别名
      +     *
      +     * @access public
      +     * @param string $cookieName 已经记忆的cookie名称
      +     * @param string $return 是否返回
      +     * @return string
      +     */
      +    public function remember($cookieName, $return = false)
      +    {
      +        $cookieName = strtolower($cookieName);
      +        if (!in_array($cookieName, array('author', 'mail', 'url'))) {
      +            return;
      +        }
      +    
      +        $value = Typecho_Cookie::get('__typecho_remember_' . $cookieName);
      +        if ($return) {
      +            return $value;
      +        } else {
      +            echo htmlspecialchars($value);
      +        }
      +    }
      +
      +    /**
      +     * 输出归档标题
      +     *
      +     * @access public
      +     * @param string $split
      +     * @return void
      +     */
      +    public function archiveTitle($split = ' &raquo; ', $before = ' &raquo; ', $end = '')
      +    {
      +        if ($this->_archiveTitle) {
      +            echo $before . implode($split, $this->_archiveTitle) . $end;
      +        }
      +    }
      +
      +    /**
      +     * 输出关键字
      +     *
      +     * @access public
      +     * @return unknown
      +     */
      +    public function keywords($split = ',', $default = '')
      +    {
      +        echo empty($this->_keywords) ? $default : str_replace(',', $split, htmlspecialchars($this->_keywords));
      +    }
      +
      +    /**
      +     * 判断归档类型和名称
      +     *
      +     * @access public
      +     * @param string $archiveType 归档类型
      +     * @param string $archiveSlug 归档名称
      +     * @return boolean
      +     */
      +    public function is($archiveType, $archiveSlug = NULL)
      +    {
      +        return ($archiveType == $this->_archiveType ||
      +        (($this->_archiveSingle ? 'single' : 'archive') == $archiveType && 'index' != $this->_archiveType) ||
      +        ('index' == $archiveType && $this->_makeSinglePageAsFrontPage))
      +        && (empty($archiveSlug) ? true : $archiveSlug == $this->_archiveSlug);
      +    }
      +
      +    /**
      +     * 获取主题文件
      +     *
      +     * @access public
      +     * @param string $fileName 主题文件
      +     * @return void
      +     */
      +    public function need($fileName)
      +    {
      +        require __TYPECHO_ROOT_DIR__ . '/' . __TYPECHO_THEME_DIR__ . '/' . $this->options->theme . '/' . $fileName;
      +    }
      +
      +    /**
      +     * 输出视图
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function render()
      +    {
      +        /** 添加Pingback */
      +        $this->response->setHeader('X-Pingback', $this->options->xmlRpcUrl);
      +        $validated = false;
      +
      +        //~ 自定义模板
      +        if (!empty($this->_themeFile)) {
      +            if (file_exists($this->_themeDir . $this->_themeFile)) {
      +                $validated = true;
      +            }
      +        }
      +        
      +        if (!$validated && !empty($this->_archiveType)) {
      +
      +            //~ 首先找具体路径, 比如 category/default.php
      +            if (!$validated && !empty($this->_archiveSlug)) {
      +                $themeFile = $this->_archiveType . '/' . $this->_archiveSlug . '.php';
      +                if (file_exists($this->_themeDir . $themeFile)) {
      +                    $this->_themeFile = $themeFile;
      +                    $validated = true;
      +                }
      +            }
      +
      +            //~ 然后找归档类型路径, 比如 category.php
      +            if (!$validated) {
      +                $themeFile = $this->_archiveType . '.php';
      +                if (file_exists($this->_themeDir . $themeFile)) {
      +                    $this->_themeFile = $themeFile;
      +                    $validated = true;
      +                }
      +            }
      +
      +            //针对attachment的hook
      +            if (!$validated && 'attachment' == $this->_archiveType) {
      +                if (file_exists($this->_themeDir . 'page.php')) {
      +                    $this->_themeFile = 'page.php';
      +                    $validated = true;
      +                } else if (file_exists($this->_themeDir . 'post.php')) {
      +                    $this->_themeFile = 'post.php';
      +                    $validated = true;
      +                }
      +            }
      +
      +            //~ 最后找归档路径, 比如 archive.php 或者 single.php
      +            if (!$validated && 'index' != $this->_archiveType) {
      +                $themeFile = $this->_archiveSingle ? 'single.php' : 'archive.php';
      +                if (file_exists($this->_themeDir . $themeFile)) {
      +                    $this->_themeFile = $themeFile;
      +                    $validated = true;
      +                }
      +            }
      +
      +            if (!$validated) {
      +                $themeFile = 'index.php';
      +                if (file_exists($this->_themeDir . $themeFile)) {
      +                    $this->_themeFile = $themeFile;
      +                    $validated = true;
      +                }
      +            }
      +        }
      +
      +        /** 文件不存在 */
      +        if (!$validated) {
      +            Typecho_Common::error(500);
      +        }
      +
      +        /** 挂接插件 */
      +        $this->pluginHandle()->beforeRender($this);
      +
      +        /** 输出模板 */
      +        require_once $this->_themeDir . $this->_themeFile;
      +
      +        /** 挂接插件 */
      +        $this->pluginHandle()->afterRender($this);
      +    }
      +
      +    /**
      +     * 输出feed
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function feed()
      +    {
      +        $this->_feed->setSubTitle($this->_description);
      +        $this->_feed->setFeedUrl($this->_currentFeedUrl);
      +
      +        $this->_feed->setBaseUrl(('/' == $this->request->feed || 0 == strlen($this->request->feed)
      +        || '/comments' == $this->request->feed || '/comments/' == $this->request->feed) ?
      +        $this->options->siteUrl : Typecho_Common::url($this->request->feed, $this->options->index));
      +        $this->_feed->setFeedUrl($this->request->makeUriByRequest());
      +
      +        if ($this->is('single') || 'comments' == $this->parameter->type) {
      +            $this->_feed->setTitle(_t('%s 的评论',
      +            $this->options->title . ($this->_archiveTitle ? ' - ' . implode(' - ', $this->_archiveTitle) : NULL)));
      +
      +            if ('comments' == $this->parameter->type) {
      +                $comments = $this->widget('Widget_Comments_Recent', 'pageSize=10');
      +            } else {
      +                $comments = $this->widget('Widget_Comments_Recent', 'pageSize=10&parentId=' . $this->cid);
      +            }
      +
      +            while ($comments->next()) {
      +                $suffix = $this->pluginHandle()->trigger($plugged)->commentFeedItem($this->_feedType, $comments);
      +                if (!$plugged) {
      +                    $suffix = NULL;
      +                }
      +
      +                $this->_feed->addItem(array(
      +                    'title'     =>  $comments->author,
      +                    'content'   =>  $comments->content,
      +                    'date'      =>  $comments->created,
      +                    'link'      =>  $comments->permalink,
      +                    'author'    =>  (object) array(
      +                        'screenName'  =>  $comments->author,
      +                        'url'         =>  $comments->url,
      +                        'mail'        =>  $comments->mail
      +                    ),
      +                    'excerpt'   =>  strip_tags($comments->content),
      +                    'suffix'    =>  $suffix
      +                ));
      +            }
      +        } else {
      +            $this->_feed->setTitle($this->options->title . ($this->_archiveTitle ? ' - ' . implode(' - ', $this->_archiveTitle) : NULL));
      +
      +            while ($this->next()) {
      +                $suffix = $this->pluginHandle()->trigger($plugged)->feedItem($this->_feedType, $this);
      +                if (!$plugged) {
      +                    $suffix = NULL;
      +                }
      +
      +                $feedUrl = '';
      +                if (Typecho_Feed::RSS2 == $this->_feedType) {
      +                    $feedUrl = $this->feedUrl;
      +                } else if (Typecho_Feed::RSS1 == $this->_feedType) {
      +                    $feedUrl = $this->feedRssUrl;
      +                } else if (Typecho_Feed::ATOM1 == $this->_feedType) {
      +                    $feedUrl = $this->feedAtomUrl;
      +                }
      +
      +                $this->_feed->addItem(array(
      +                    'title'     =>  $this->title,
      +                    'content'   =>  $this->options->feedFullText ? $this->content : (false !== strpos($this->text, '<!--more-->') ?
      +                    $this->excerpt . "<p class=\"more\"><a href=\"{$this->permalink}\" title=\"{$this->title}\">[...]</a></p>" : $this->content),
      +                    'date'      =>  $this->created,
      +                    'link'      =>  $this->permalink,
      +                    'author'    =>  $this->author,
      +                    'excerpt'   =>  $this->description,
      +                    'comments'  =>  $this->commentsNum,
      +                    'commentsFeedUrl' => $feedUrl,
      +                    'suffix'    =>  $suffix
      +                ));
      +            }
      +        }
      +
      +        $this->response->setContentType($this->_feedContentType);
      +        echo $this->_feed->__toString();
      +    }
      +}
      diff --git a/var/Widget/Comments/Admin.php b/var/Widget/Comments/Admin.php
      new file mode 100644
      index 00000000..2d63ce68
      --- /dev/null
      +++ b/var/Widget/Comments/Admin.php
      @@ -0,0 +1,143 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/**
      + * 后台评论输出组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Comments_Admin extends Widget_Abstract_Comments
      +{
      +    /**
      +     * 分页计算对象
      +     *
      +     * @access private
      +     * @var Typecho_Db_Query
      +     */
      +    private $_countSql;
      +
      +    /**
      +     * 当前页
      +     *
      +     * @access private
      +     * @var integer
      +     */
      +    private $_currentPage;
      +
      +    /**
      +     * 所有文章个数
      +     *
      +     * @access private
      +     * @var integer
      +     */
      +    private $_total = false;
      +
      +    /**
      +     * 获取当前内容结构
      +     *
      +     * @access protected
      +     * @return array
      +     */
      +    protected function ___parentContent()
      +    {
      +        $cid = isset($this->request->cid) ? $this->request->filter('int')->cid : $this->cid;
      +        return $this->db->fetchRow($this->widget('Widget_Abstract_Contents')->select()
      +        ->where('table.contents.cid = ?', $cid)
      +        ->limit(1), array($this->widget('Widget_Abstract_Contents'), 'filter'));
      +    }
      +
      +    /**
      +     * 获取菜单标题
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function getMenuTitle()
      +    {
      +        $content = $this->parentContent;
      +
      +        if ($content) {
      +            return _t('%s的评论', $content['title']);
      +        }
      +
      +        throw new Typecho_Widget_Exception(_t('内容不存在'), 404);
      +    }
      +
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        $select = $this->select();
      +        $this->parameter->setDefault('pageSize=20');
      +        $this->_currentPage = $this->request->get('page', 1);
      +
      +        /** 过滤标题 */
      +        if (NULL != ($keywords = $this->request->filter('search')->keywords)) {
      +            $select->where('table.comments.text LIKE ?', '%' . $keywords . '%');
      +        }
      +
      +        /** 如果具有贡献者以上权限,可以查看所有评论,反之只能查看自己的评论 */
      +        if (!$this->user->pass('editor', true)) {
      +            $select->where('table.comments.ownerId = ?', $this->user->uid);
      +        } else if (!isset($this->request->cid)) {
      +            if ('on' == $this->request->__typecho_all_comments) {
      +                Typecho_Cookie::set('__typecho_all_comments', 'on');
      +            } else {
      +                if ('off' == $this->request->__typecho_all_comments) {
      +                    Typecho_Cookie::set('__typecho_all_comments', 'off');
      +                }
      +                $select->where('table.comments.ownerId = ?', $this->user->uid);
      +            }
      +        }
      +
      +        if (in_array($this->request->status, array('approved', 'waiting', 'spam'))) {
      +            $select->where('table.comments.status = ?', $this->request->status);
      +        } else if ('hold' == $this->request->status) {
      +            $select->where('table.comments.status <> ?', 'approved');
      +        } else {
      +            $select->where('table.comments.status = ?', 'approved');
      +        }
      +
      +        //增加按文章归档功能
      +        if (isset($this->request->cid)) {
      +            $select->where('table.comments.cid = ?', $this->request->filter('int')->cid);
      +        }
      +
      +        $this->_countSql = clone $select;
      +
      +        $select->order('table.comments.coid', Typecho_Db::SORT_DESC)
      +        ->page($this->_currentPage, $this->parameter->pageSize);
      +
      +        $this->db->fetchAll($select, array($this, 'push'));
      +    }
      +
      +    /**
      +     * 输出分页
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function pageNav()
      +    {
      +        $query = $this->request->makeUriByRequest('page={page}');
      +
      +        /** 使用盒状分页 */
      +        $nav = new Typecho_Widget_Helper_PageNavigator_Box(false === $this->_total ? $this->_total = $this->size($this->_countSql) : $this->_total,
      +        $this->_currentPage, $this->parameter->pageSize, $query);
      +        $nav->render(_t('&laquo;'), _t('&raquo;'));
      +    }
      +}
      diff --git a/var/Widget/Comments/Archive.php b/var/Widget/Comments/Archive.php
      new file mode 100644
      index 00000000..c8a06aeb
      --- /dev/null
      +++ b/var/Widget/Comments/Archive.php
      @@ -0,0 +1,489 @@
      +<?php
      +/**
      + * 评论归档
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 评论归档组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Comments_Archive extends Widget_Abstract_Comments
      +{
      +    /**
      +     * 当前页
      +     *
      +     * @access private
      +     * @var integer
      +     */
      +    private $_currentPage;
      +
      +    /**
      +     * 所有文章个数
      +     *
      +     * @access private
      +     * @var integer
      +     */
      +    private $_total = false;
      +
      +    /**
      +     * 子父级评论关系
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_threadedComments = array();
      +    
      +    /**
      +     * 多级评论回调函数
      +     * 
      +     * @access private
      +     * @var mixed
      +     */
      +    private $_customThreadedCommentsCallback = false;
      +
      +    /**
      +     * 构造函数,初始化组件
      +     *
      +     * @access public
      +     * @param mixed $request request对象
      +     * @param mixed $response response对象
      +     * @param mixed $params 参数列表
      +     * @return void
      +     */
      +    public function __construct($request, $response, $params = NULL)
      +    {
      +        parent::__construct($request, $response, $params);
      +        $this->parameter->setDefault('parentId=0&commentPage=0&commentsNum=0');
      +        
      +        /** 初始化回调函数 */
      +        if (function_exists('threadedComments')) {
      +            $this->_customThreadedCommentsCallback = true;
      +        }
      +    }
      +    
      +    /**
      +     * 评论回调函数
      +     * 
      +     * @access private
      +     * @param string $singleCommentOptions 单个评论自定义选项
      +     * @return void
      +     */
      +    private function threadedCommentsCallback($singleCommentOptions)
      +    {
      +        if ($this->_customThreadedCommentsCallback) {
      +            return threadedComments($this, $singleCommentOptions);
      +        }
      +        
      +        $commentClass = '';
      +        if ($this->authorId) {
      +            if ($this->authorId == $this->ownerId) {
      +                $commentClass .= ' comment-by-author';
      +            } else {
      +                $commentClass .= ' comment-by-user';
      +            }
      +        }
      +        
      +        $commentLevelClass = $this->levels > 0 ? ' comment-child' : ' comment-parent';
      +?>
      +<li id="<?php $this->theId(); ?>" class="comment-body<?php
      +    if ($this->levels > 0) {
      +        echo ' comment-child';
      +        $this->levelsAlt(' comment-level-odd', ' comment-level-even');
      +    } else {
      +        echo ' comment-parent';
      +    }
      +    $this->alt(' comment-odd', ' comment-even');
      +    echo $commentClass;
      +?>">
      +    <div class="comment-author">
      +        <?php $this->gravatar($singleCommentOptions->avatarSize, $singleCommentOptions->defaultAvatar); ?>
      +        <cite class="fn"><?php $singleCommentOptions->beforeAuthor();
      +        $this->author();
      +        $singleCommentOptions->afterAuthor(); ?></cite>
      +    </div>
      +    <div class="comment-meta">
      +        <a href="<?php $this->permalink(); ?>"><?php $singleCommentOptions->beforeDate();
      +        $this->date($singleCommentOptions->dateFormat);
      +        $singleCommentOptions->afterDate(); ?></a>
      +        <?php if ('waiting' == $this->status) { ?>
      +        <em class="comment-awaiting-moderation"><?php $singleCommentOptions->commentStatus(); ?></em>
      +        <?php } ?>
      +    </div>
      +    <?php $this->content(); ?>
      +    <?php if ($this->children) { ?>
      +    <div class="comment-children">
      +        <?php $this->threadedComments($singleCommentOptions); ?>
      +    </div>
      +    <?php } ?>
      +    <div class="comment-reply">
      +        <?php $this->reply($singleCommentOptions->replyWord); ?>
      +    </div>
      +</li>
      +<?php
      +    }
      +    
      +    /**
      +     * 获取当前评论链接
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___permalink()
      +    {
      +
      +        if ($this->options->commentsPageBreak) {            
      +            $pageRow = array('permalink' => $this->parentContent['pathinfo'], 'commentPage' => $this->_currentPage);
      +            return Typecho_Router::url('comment_page',
      +                        $pageRow, $this->options->index) . '#' . $this->theId;
      +        }
      +        
      +        return $this->parentContent['permalink'] . '#' . $this->theId;
      +    }
      +
      +    /**
      +     * 子评论
      +     *
      +     * @access protected
      +     * @return array
      +     */
      +    protected function ___children()
      +    {
      +        return $this->options->commentsThreaded && !$this->isTopLevel && isset($this->_threadedComments[$this->coid]) 
      +            ? $this->_threadedComments[$this->coid] : array();
      +    }
      +
      +    /**
      +     * 是否到达顶层
      +     *
      +     * @access protected
      +     * @return boolean
      +     */
      +    protected function ___isTopLevel()
      +    {
      +        return $this->levels > $this->options->commentsMaxNestingLevels - 2;
      +    }
      +
      +    /**
      +     * 重载内容获取
      +     *
      +     * @access protected
      +     * @return void
      +     */
      +    protected function ___parentContent()
      +    {
      +        return $this->parameter->parentContent;
      +    }
      +
      +    /**
      +     * 输出文章评论数
      +     *
      +     * @access public
      +     * @param string $string 评论数格式化数据
      +     * @return void
      +     */
      +    public function num()
      +    {
      +        $args = func_get_args();
      +        if (!$args) {
      +            $args[] = '%d';
      +        }
      +
      +        $num = intval($this->_total);
      +
      +        echo sprintf(isset($args[$num]) ? $args[$num] : array_pop($args), $num);
      +    }
      +
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        if (!$this->parameter->parentId) {
      +            return;
      +        }
      +
      +        $commentsAuthor = Typecho_Cookie::get('__typecho_remember_author');
      +        $commentsMail = Typecho_Cookie::get('__typecho_remember_mail');
      +        $select = $this->select()->where('table.comments.cid = ?', $this->parameter->parentId)
      +        ->where('table.comments.status = ? OR (table.comments.author = ? AND table.comments.mail = ? AND table.comments.status = ?)', 'approved', $commentsAuthor, $commentsMail, 'waiting');
      +        $threadedSelect = NULL;
      +        
      +        if ($this->options->commentsShowCommentOnly) {
      +            $select->where('table.comments.type = ?', 'comment');
      +        }
      +        
      +        $select->order('table.comments.coid', 'ASC');
      +        $this->db->fetchAll($select, array($this, 'push'));
      +        
      +        /** 需要输出的评论列表 */
      +        $outputComments = array();
      +        
      +        /** 如果开启评论回复 */
      +        if ($this->options->commentsThreaded) {
      +        
      +            foreach ($this->stack as $coid => &$comment) {
      +                
      +                /** 取出父节点 */
      +                $parent = $comment['parent'];
      +            
      +                /** 如果存在父节点 */
      +                if (0 != $parent && isset($this->stack[$parent])) {
      +                
      +                    /** 如果当前节点深度大于最大深度, 则将其挂接在父节点上 */
      +                    if ($comment['levels'] >= $this->options->commentsMaxNestingLevels) {
      +                        $comment['levels'] = $this->stack[$parent]['levels'];
      +                        $parent = $this->stack[$parent]['parent'];     // 上上层节点
      +                        $comment['parent'] = $parent;
      +                    }
      +                
      +                    /** 计算子节点顺序 */
      +                    $comment['order'] = isset($this->_threadedComments[$parent]) 
      +                        ? count($this->_threadedComments[$parent]) + 1 : 1;
      +                
      +                    /** 如果是子节点 */
      +                    $this->_threadedComments[$parent][$coid] = $comment;
      +                } else {
      +                    $outputComments[$coid] = $comment;
      +                }
      +                
      +            }
      +        
      +            $this->stack = $outputComments;
      +        }
      +        
      +        /** 评论排序 */
      +        if ('DESC' == $this->options->commentsOrder) {
      +            $this->stack = array_reverse($this->stack, true);
      +            $this->_threadedComments = array_map('array_reverse', $this->_threadedComments);
      +        }
      +        
      +        /** 评论总数 */
      +        $this->_total = count($this->stack);
      +        
      +        /** 对评论进行分页 */
      +        if ($this->options->commentsPageBreak) {
      +            if ('last' == $this->options->commentsPageDisplay && !$this->parameter->commentPage) {
      +                $this->_currentPage = ceil($this->_total / $this->options->commentsPageSize);
      +            } else {
      +                $this->_currentPage = $this->parameter->commentPage ? $this->parameter->commentPage : 1;
      +            }
      +            
      +            /** 截取评论 */
      +            $this->stack = array_slice($this->stack,
      +                ($this->_currentPage - 1) * $this->options->commentsPageSize, $this->options->commentsPageSize);
      +            
      +            /** 评论置位 */
      +            $this->row = current($this->stack);
      +            $this->length = count($this->stack);
      +        }
      +    }
      +
      +    /**
      +     * 将每行的值压入堆栈
      +     *
      +     * @access public
      +     * @param array $value 每行的值
      +     * @return array
      +     */
      +    public function push(array $value)
      +    {
      +        $value = $this->filter($value);
      +        
      +        /** 计算深度 */
      +        if (0 != $value['parent'] && isset($this->stack[$value['parent']]['levels'])) {
      +            $value['levels'] = $this->stack[$value['parent']]['levels'] + 1;
      +        } else {
      +            $value['levels'] = 0;
      +        }
      +
      +        /** 重载push函数,使用coid作为数组键值,便于索引 */
      +        $this->stack[$value['coid']] = $value;
      +        
      +        return $value;
      +    }
      +
      +    /**
      +     * 输出分页
      +     *
      +     * @access public
      +     * @param string $prev 上一页文字
      +     * @param string $next 下一页文字
      +     * @param int $splitPage 分割范围
      +     * @param string $splitWord 分割字符
      +     * @return void
      +     */
      +    public function pageNav($prev = '&laquo;', $next = '&raquo;', $splitPage = 3, $splitWord = '...')
      +    {
      +        if ($this->options->commentsPageBreak && $this->_total > $this->options->commentsPageSize) {
      +            $pageRow = $this->parameter->parentContent;
      +            $pageRow['permalink'] = $pageRow['pathinfo'];
      +
      +            $query = Typecho_Router::url('comment_page', $pageRow, $this->options->index);
      +
      +            /** 使用盒状分页 */
      +            $nav = new Typecho_Widget_Helper_PageNavigator_Box($this->_total, $this->_currentPage, $this->options->commentsPageSize, $query);
      +            $nav->setPageHolder('commentPage');
      +            $nav->setAnchor('comments');
      +            
      +            echo '<ol class="page-navigator">';
      +            $nav->render($prev, $next, $splitPage, $splitWord);
      +            echo '</ol>';
      +        }
      +    }
      +
      +    /**
      +     * 递归输出评论
      +     *
      +     * @access protected
      +     * @param string $before 在子评论之前输出
      +     * @param string $after 在子评论之后输出
      +     * @param Typecho_Config $singleCommentOptions 单个评论自定义选项
      +     * @return void
      +     */
      +    public function threadedComments($singleCommentOptions = NULL)
      +    {
      +        $children = $this->children;
      +        if ($children) {
      +            //缓存变量便于还原
      +            $tmp = $this->row;
      +            $this->sequence ++;
      +
      +            //在子评论之前输出
      +            echo $singleCommentOptions->before;
      +
      +            foreach ($children as $child) {
      +                $this->row = $child;
      +                $this->threadedCommentsCallback($singleCommentOptions);
      +                $this->row = $tmp;
      +            }
      +
      +            //在子评论之后输出
      +            echo $singleCommentOptions->after;
      +
      +            $this->sequence --;
      +        }
      +    }
      +    
      +    /**
      +     * 列出评论
      +     * 
      +     * @access private
      +     * @param mixed $singleCommentOptions 单个评论自定义选项
      +     * @return void
      +     */
      +    public function listComments($singleCommentOptions = NULL)
      +    {
      +        if ($this->have()) {
      +            //初始化一些变量
      +            $parsedSingleCommentOptions = Typecho_Config::factory($singleCommentOptions);
      +            $parsedSingleCommentOptions->setDefault(array(
      +                'before'        =>  '<ol class="comment-list">',
      +                'after'         =>  '</ol>',
      +                'beforeAuthor'  =>  '',
      +                'afterAuthor'   =>  '',
      +                'beforeDate'    =>  '',
      +                'afterDate'     =>  '',
      +                'dateFormat'    =>  $this->options->commentDateFormat,
      +                'replyWord'     =>  _t('回复'),
      +                'commentStatus' =>  _t('您的评论正等待审核!'),
      +                'avatarSize'    =>  32,
      +                'defaultAvatar' =>  NULL
      +            ));
      +        
      +            echo $parsedSingleCommentOptions->before;
      +            
      +            while ($this->next()) {
      +                $this->threadedCommentsCallback($parsedSingleCommentOptions);
      +            }
      +            
      +            echo $parsedSingleCommentOptions->after;
      +        }
      +    }
      +    
      +    /**
      +     * 重载alt函数,以适应多级评论
      +     * 
      +     * @access public
      +     * @return void
      +     */
      +    public function alt()
      +    {
      +        $args = func_get_args();
      +        $num = func_num_args();
      +        
      +        $sequence = $this->levels <= 0 ? $this->sequence : $this->order;
      +        
      +        $split = $sequence % $num;
      +        echo $args[(0 == $split ? $num : $split) -1];
      +    }
      +
      +    /**
      +     * 根据深度余数输出
      +     *
      +     * @access public
      +     * @param string $param 需要输出的值
      +     * @return void
      +     */
      +    public function levelsAlt()
      +    {
      +        $args = func_get_args();
      +        $num = func_num_args();
      +        $split = $this->levels % $num;
      +        echo $args[(0 == $split ? $num : $split) -1];
      +    }
      +    
      +    /**
      +     * 评论回复链接
      +     * 
      +     * @access public
      +     * @param string $word 回复链接文字
      +     * @return void
      +     */
      +    public function reply($word = '')
      +    {
      +        if ($this->options->commentsThreaded && !$this->isTopLevel) {
      +            $word = empty($word) ? _t('回复') : $word;
      +            $this->pluginHandle()->trigger($plugged)->reply($word, $this);
      +            
      +            if (!$plugged) {
      +                echo '<a href="' . substr($this->permalink, 0, - strlen($this->theId) - 1) . '?replyTo=' . $this->coid .
      +                    '#' . $this->parameter->respondId . '" rel="nofollow" onclick="return TypechoComment.reply(\'' .
      +                    $this->theId . '\', ' . $this->coid . ');">' . $word . '</a>';
      +            }
      +        }
      +    }
      +    
      +    /**
      +     * 取消评论回复链接
      +     * 
      +     * @access public
      +     * @param string $word 取消回复链接文字
      +     * @return void
      +     */
      +    public function cancelReply($word = '')
      +    {
      +        if ($this->options->commentsThreaded) {
      +            $word = empty($word) ? _t('取消回复') : $word;
      +            $this->pluginHandle()->trigger($plugged)->cancelReply($word, $this);
      +            
      +            if (!$plugged) {
      +                $replyId = $this->request->filter('int')->replyTo;
      +                echo '<a id="cancel-comment-reply-link" href="' . $this->parameter->parentContent['permalink'] . '#' . $this->parameter->respondId .
      +                '" rel="nofollow"' . ($replyId ? '' : ' style="display:none"') . ' onclick="return TypechoComment.cancelReply();">' . $word . '</a>';
      +            }
      +        }
      +    }
      +}
      diff --git a/var/Widget/Comments/Edit.php b/var/Widget/Comments/Edit.php
      new file mode 100644
      index 00000000..58787093
      --- /dev/null
      +++ b/var/Widget/Comments/Edit.php
      @@ -0,0 +1,378 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/**
      + * 评论编辑组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Comments_Edit extends Widget_Abstract_Comments implements Widget_Interface_Do
      +{
      +    /**
      +     * 标记评论状态
      +     *
      +     * @access private
      +     * @param integer $coid 评论主键
      +     * @param string $status 状态
      +     * @return boolean
      +     */
      +    private function mark($coid, $status)
      +    {
      +        $comment = $this->db->fetchRow($this->select()
      +        ->where('coid = ?', $coid)->limit(1), array($this, 'push'));
      +
      +        if ($comment && $this->commentIsWriteable()) {
      +            /** 增加评论编辑插件接口 */
      +            $this->pluginHandle()->mark($comment, $this, $status);
      +
      +            /** 不必更新的情况 */
      +            if ($status == $comment['status']) {
      +                return false;
      +            }
      +
      +            /** 更新评论 */
      +            $this->db->query($this->db->update('table.comments')
      +            ->rows(array('status' => $status))->where('coid = ?', $coid));
      +
      +            /** 更新相关内容的评论数 */
      +            if ('approved' == $comment['status'] && 'approved' != $status) {
      +                $this->db->query($this->db->update('table.contents')
      +                ->expression('commentsNum', 'commentsNum - 1')->where('cid = ? AND commentsNum > 0', $comment['cid']));
      +            } else if ('approved' != $comment['status'] && 'approved' == $status) {
      +                $this->db->query($this->db->update('table.contents')
      +                ->expression('commentsNum', 'commentsNum + 1')->where('cid = ?', $comment['cid']));
      +            }
      +
      +            return true;
      +        }
      +
      +        return false;
      +    }
      +
      +    /**
      +     * 以数组形式获取coid
      +     *
      +     * @access private
      +     * @return array
      +     */
      +    private function getCoidAsArray()
      +    {
      +        $coid = $this->request->filter('int')->coid;
      +        return $coid ? (is_array($coid) ? $coid : array($coid)) : array();
      +    }
      +
      +    /**
      +     * 标记为待审核
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function waitingComment()
      +    {
      +        $comments = $this->getCoidAsArray();
      +        $updateRows = 0;
      +
      +        foreach ($comments as $comment) {
      +            if ($this->mark($comment, 'waiting')) {
      +                $updateRows ++;
      +            }
      +        }
      +
      +        /** 设置提示信息 */
      +        $this->widget('Widget_Notice')->set($updateRows > 0 ? _t('评论已经被标记为待审核') : _t('没有评论被标记为待审核'), NULL,
      +        $updateRows > 0 ? 'success' : 'notice');
      +
      +        /** 返回原网页 */
      +        $this->response->goBack();
      +    }
      +
      +    /**
      +     * 标记为垃圾
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function spamComment()
      +    {
      +        $comments = $this->getCoidAsArray();
      +        $updateRows = 0;
      +
      +        foreach ($comments as $comment) {
      +            if ($this->mark($comment, 'spam')) {
      +                $updateRows ++;
      +            }
      +        }
      +
      +        /** 设置提示信息 */
      +        $this->widget('Widget_Notice')->set($updateRows > 0 ? _t('评论已经被标记为垃圾') : _t('没有评论被标记为垃圾'), NULL,
      +        $updateRows > 0 ? 'success' : 'notice');
      +
      +        /** 返回原网页 */
      +        $this->response->goBack();
      +    }
      +
      +    /**
      +     * 标记为展现
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function approvedComment()
      +    {
      +        $comments = $this->getCoidAsArray();
      +        $updateRows = 0;
      +
      +        foreach ($comments as $comment) {
      +            if ($this->mark($comment, 'approved')) {
      +                $updateRows ++;
      +            }
      +        }
      +
      +        /** 设置提示信息 */
      +        $this->widget('Widget_Notice')->set($updateRows > 0 ? _t('评论已经被通过') : _t('没有评论被通过'), NULL,
      +        $updateRows > 0 ? 'success' : 'notice');
      +
      +        /** 返回原网页 */
      +        $this->response->goBack();
      +    }
      +
      +    /**
      +     * 删除评论
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function deleteComment()
      +    {
      +        $comments = $this->getCoidAsArray();
      +        $deleteRows = 0;
      +
      +        foreach ($comments as $coid) {
      +            $comment = $this->db->fetchRow($this->select()
      +            ->where('coid = ?', $coid)->limit(1), array($this, 'push'));
      +
      +            if ($comment && $this->commentIsWriteable()) {
      +                /** 删除评论 */
      +                $this->db->query($this->db->delete('table.comments')->where('coid = ?', $coid));
      +
      +                /** 更新相关内容的评论数 */
      +                if ('approved' == $comment['status']) {
      +                    $this->db->query($this->db->update('table.contents')
      +                    ->expression('commentsNum', 'commentsNum - 1')->where('cid = ?', $comment['cid']));
      +                }
      +
      +                $deleteRows ++;
      +            }
      +        }
      +        
      +        if ($this->request->isAjax()) {
      +            
      +            if ($deleteRows > 0) {
      +                $this->response->throwJson(array(
      +                    'success'   => 1,
      +                    'message'   => _t('删除评论成功')
      +                ));
      +            } else {
      +                $this->response->throwJson(array(
      +                    'success'   => 0,
      +                    'message'   => _t('删除评论失败')
      +                ));
      +            }
      +            
      +        } else {
      +            /** 设置提示信息 */
      +            $this->widget('Widget_Notice')->set($deleteRows > 0 ? _t('评论已经被删除') : _t('没有评论被删除'), NULL,
      +            $deleteRows > 0 ? 'success' : 'notice');
      +
      +            /** 返回原网页 */
      +            $this->response->goBack();
      +        }
      +    }
      +
      +    /**
      +     * 删除所有垃圾评论
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function deleteSpamComment()
      +    {
      +        $deleteQuery = $this->db->delete('table.comments')->where('status = ?', 'spam');
      +        if (!$this->request->__typecho_all_comments || !$this->user->pass('editor', true)) {
      +            $deleteQuery->where('ownerId = ?', $this->user->uid);
      +        }
      +
      +        if (isset($this->request->cid)) {
      +            $deleteQuery->where('cid = ?', $this->request->cid);
      +        }
      +
      +        $deleteRows = $this->db->query($deleteQuery);
      +
      +        /** 设置提示信息 */
      +        $this->widget('Widget_Notice')->set($deleteRows > 0 ?
      +        _t('所有垃圾评论已经被删除') : _t('没有垃圾评论被删除'), NULL,
      +        $deleteRows > 0 ? 'success' : 'notice');
      +
      +        /** 返回原网页 */
      +        $this->response->goBack();
      +    }
      +
      +    /**
      +     * 获取可编辑的评论
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function getComment()
      +    {
      +        $coid = $this->request->filter('int')->coid;
      +        $comment = $this->db->fetchRow($this->select()
      +            ->where('coid = ?', $coid)->limit(1), array($this, 'push'));
      +
      +        if ($comment && $this->commentIsWriteable()) {
      +
      +            $this->response->throwJson(array(
      +                'success'   => 1,
      +                'comment'   => $comment
      +            ));
      +
      +        } else {
      +
      +            $this->response->throwJson(array(
      +                'success'   => 0,
      +                'message'   => _t('获取评论失败')
      +            ));
      +
      +        }
      +    }
      +
      +    /**
      +     * 编辑评论
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function editComment()
      +    {
      +        $coid = $this->request->filter('int')->coid;
      +        $commentSelect = $this->db->fetchRow($this->select()
      +            ->where('coid = ?', $coid)->limit(1), array($this, 'push'));
      +
      +        if ($commentSelect && $this->commentIsWriteable()) {
      +        
      +            $comment['text'] = $this->request->text;
      +            $comment['author'] = $this->request->filter('strip_tags', 'trim', 'xss')->author;
      +            $comment['mail'] = $this->request->filter('strip_tags', 'trim', 'xss')->mail;
      +            $comment['url'] = $this->request->filter('url')->url;
      +            
      +            /** 评论插件接口 */
      +            $this->pluginHandle()->edit($comment, $this);
      +
      +            /** 更新评论 */
      +            $this->update($comment, $this->db->sql()->where('coid = ?', $coid));
      +
      +            $updatedComment = $this->db->fetchRow($this->select()
      +                ->where('coid = ?', $coid)->limit(1), array($this, 'push'));
      +            $updatedComment['content'] = $this->content;
      +            
      +            /** 评论插件接口 */
      +            $this->pluginHandle()->finishEdit($this);
      +
      +            $this->response->throwJson(array(
      +                'success'   => 1,
      +                'comment'   => $updatedComment
      +            ));
      +        }
      +
      +        $this->response->throwJson(array(
      +            'success'   => 0,
      +            'message'   => _t('修评论失败')
      +        ));
      +    }
      +    
      +    /**
      +     * 回复评论
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function replyComment()
      +    {
      +        $coid = $this->request->filter('int')->coid;
      +        $commentSelect = $this->db->fetchRow($this->select()
      +            ->where('coid = ?', $coid)->limit(1), array($this, 'push'));
      +
      +        if ($commentSelect && $this->commentIsWriteable()) {
      +        
      +            $comment = array(
      +                'cid'       =>  $commentSelect['cid'],
      +                'created'   =>  $this->options->gmtTime,
      +                'agent'     =>  $this->request->getAgent(),
      +                'ip'        =>  $this->request->getIp(),
      +                'ownerId'   =>  $commentSelect['ownerId'],
      +                'authorId'  =>  $this->user->uid,
      +                'type'      =>  'comment',
      +                'author'    =>  $this->user->screenName,
      +                'mail'      =>  $this->user->mail,
      +                'url'       =>  $this->user->url,
      +                'parent'    =>  $coid,
      +                'text'      =>  $this->request->text,
      +                'status'    =>  'approved'
      +            );
      +            
      +            /** 评论插件接口 */
      +            $this->pluginHandle()->comment($comment, $this);
      +
      +            /** 回复评论 */
      +            $commentId = $this->insert($comment);
      +
      +            $insertComment = $this->db->fetchRow($this->select()
      +                ->where('coid = ?', $commentId)->limit(1), array($this, 'push'));
      +            $insertComment['content'] = $this->content;
      +            
      +            /** 评论完成接口 */
      +            $this->pluginHandle()->finishComment($this);
      +
      +            $this->response->throwJson(array(
      +                'success'   => 1,
      +                'comment'   => $insertComment
      +            ));
      +        }
      +
      +        $this->response->throwJson(array(
      +            'success'   => 0,
      +            'message'   => _t('回复评论失败')
      +        ));
      +    }
      +
      +    /**
      +     * 初始化函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        $this->user->pass('contributor');
      +        $this->on($this->request->is('do=waiting'))->waitingComment();
      +        $this->on($this->request->is('do=spam'))->spamComment();
      +        $this->on($this->request->is('do=approved'))->approvedComment();
      +        $this->on($this->request->is('do=delete'))->deleteComment();
      +        $this->on($this->request->is('do=delete-spam'))->deleteSpamComment();
      +        $this->on($this->request->is('do=get&coid'))->getComment();
      +        $this->on($this->request->is('do=edit&coid'))->editComment();
      +        $this->on($this->request->is('do=reply&coid'))->replyComment();
      +
      +        $this->response->redirect($this->options->adminUrl);
      +    }
      +}
      diff --git a/var/Widget/Comments/Ping.php b/var/Widget/Comments/Ping.php
      new file mode 100644
      index 00000000..e8568ec9
      --- /dev/null
      +++ b/var/Widget/Comments/Ping.php
      @@ -0,0 +1,161 @@
      +<?php
      +/**
      + * 回响归档
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 回响归档组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Comments_Ping extends Widget_Abstract_Comments
      +{
      +    /**
      +     * _customSinglePingCallback 
      +     * 
      +     * @var boolean
      +     * @access private
      +     */
      +    private $_customSinglePingCallback = false;
      +    
      +    /**
      +     * 构造函数,初始化组件
      +     *
      +     * @access public
      +     * @param mixed $request request对象
      +     * @param mixed $response response对象
      +     * @param mixed $params 参数列表
      +     * @return void
      +     */
      +    public function __construct($request, $response, $params = NULL)
      +    {
      +        parent::__construct($request, $response, $params);
      +        $this->parameter->setDefault('parentId=0');
      +        
      +        /** 初始化回调函数 */
      +        if (function_exists('singlePing')) {
      +            $this->_customSinglePingCallback = true;
      +        }
      +    }
      +
      +    /**
      +     * 重载内容获取
      +     *
      +     * @access protected
      +     * @return void
      +     */
      +    protected function ___parentContent()
      +    {
      +        return $this->parameter->parentContent;
      +    }
      +    
      +    /**
      +     * 回响回调函数
      +     * 
      +     * @access private
      +     * @param string $singlePingOptions 单个回响自定义选项
      +     * @return void
      +     */
      +    private function singlePingCallback($singlePingOptions)
      +    {
      +        if ($this->_customSinglePingCallback) {
      +            return singlePing($this, $singlePingOptions);
      +        }
      +
      +?>
      +<li id="<?php $this->theId(); ?>" class="ping-body">
      +    <div class="ping-title">
      +        <cite class="fn"><?php
      +        $singlePingOptions->beforeTitle();
      +        $this->author(true);
      +        $singlePingOptions->afterTitle();
      +        ?></cite>
      +    </div>
      +    <div class="ping-meta">
      +        <a href="<?php $this->permalink(); ?>"><?php $singlePingOptions->beforeDate();
      +        $this->date($singlePingOptions->dateFormat);
      +        $singlePingOptions->afterDate(); ?></a>
      +    </div>
      +    <?php $this->content(); ?>
      +</li>
      +<?php
      +    }
      +    
      +    /**
      +     * 输出文章回响数
      +     *
      +     * @access public
      +     * @param string $string 评论数格式化数据
      +     * @return void
      +     */
      +    public function num()
      +    {
      +        $args = func_get_args();
      +        if (!$args) {
      +            $args[] = '%d';
      +        }
      +
      +        echo sprintf(isset($args[$this->length]) ? $args[$this->length] : array_pop($this->length), $this->length);
      +    }
      +
      +    /**
      +     * execute  
      +     * 
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        if (!$this->parameter->parentId) {
      +            return;
      +        }
      +        
      +        $select = $this->select()->where('table.comments.status = ?', 'approved')
      +        ->where('table.comments.cid = ?', $this->parameter->parentId)
      +        ->where('table.comments.type <> ?', 'comment')
      +        ->order('table.comments.coid', 'ASC');
      +
      +        $this->db->fetchAll($select, array($this, 'push'));
      +    }
      +    
      +    /**
      +     * 列出回响
      +     * 
      +     * @access private
      +     * @param mixed $singlePingOptions 单个回响自定义选项
      +     * @return void
      +     */
      +    public function listPings($singlePingOptions = NULL)
      +    {
      +        if ($this->have()) {
      +            //初始化一些变量
      +            $parsedSinglePingOptions = Typecho_Config::factory($singlePingOptions);
      +            $parsedSinglePingOptions->setDefault(array(
      +                'before'        =>  '<ol class="ping-list">',
      +                'after'         =>  '</ol>',
      +                'beforeTitle'   =>  '',
      +                'afterTitle'    =>  '',
      +                'beforeDate'    =>  '',
      +                'afterDate'     =>  '',
      +                'dateFormat'    =>  $this->options->commentDateFormat
      +            ));
      +        
      +            echo $parsedSinglePingOptions->before;
      +            
      +            while ($this->next()) {
      +                $this->singlePingCallback($parsedSinglePingOptions);
      +            }
      +            
      +            echo $parsedSinglePingOptions->after;
      +        }
      +    }
      +}
      diff --git a/var/Widget/Comments/Recent.php b/var/Widget/Comments/Recent.php
      new file mode 100644
      index 00000000..c3b3dc61
      --- /dev/null
      +++ b/var/Widget/Comments/Recent.php
      @@ -0,0 +1,62 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/**
      + * 最近评论组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Comments_Recent extends Widget_Abstract_Comments
      +{
      +    /**
      +     * 构造函数,初始化组件
      +     *
      +     * @access public
      +     * @param mixed $request request对象
      +     * @param mixed $response response对象
      +     * @param mixed $params 参数列表
      +     * @return void
      +     */
      +    public function __construct($request, $response, $params = NULL)
      +    {
      +        parent::__construct($request, $response, $params);
      +        $this->parameter->setDefault(array('pageSize' => $this->options->commentsListSize, 'parentId' => 0, 'ignoreAuthor' => false));
      +    }
      +
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        $select  = $this->select()->limit($this->parameter->pageSize)
      +        ->where('table.comments.status = ?', 'approved')
      +        ->order('table.comments.coid', Typecho_Db::SORT_DESC);
      +
      +        if ($this->parameter->parentId) {
      +            $select->where('cid = ?', $this->parameter->parentId);
      +        }
      +
      +        if ($this->options->commentsShowCommentOnly) {
      +            $select->where('type = ?', 'comment');
      +        }
      +        
      +        /** 忽略作者评论 */
      +        if ($this->parameter->ignoreAuthor) {
      +            $select->where('ownerId <> authorId');
      +        }
      +
      +        $this->db->fetchAll($select, array($this, 'push'));
      +    }
      +}
      diff --git a/var/Widget/Contents/Attachment/Admin.php b/var/Widget/Contents/Attachment/Admin.php
      new file mode 100644
      index 00000000..6f264bb8
      --- /dev/null
      +++ b/var/Widget/Contents/Attachment/Admin.php
      @@ -0,0 +1,124 @@
      +<?php
      +/**
      + * 附件管理列表
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 附件管理列表组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Contents_Attachment_Admin extends Widget_Abstract_Contents
      +{
      +    /**
      +     * 用于计算数值的语句对象
      +     *
      +     * @access private
      +     * @var Typecho_Db_Query
      +     */
      +    private $_countSql;
      +
      +    /**
      +     * 所有文章个数
      +     *
      +     * @access private
      +     * @var integer
      +     */
      +    private $_total = false;
      +
      +    /**
      +     * 分页大小
      +     *
      +     * @access private
      +     * @var integer
      +     */
      +    private $pageSize;
      +
      +    /**
      +     * 当前页
      +     *
      +     * @access private
      +     * @var integer
      +     */
      +    private $_currentPage;
      +
      +    /**
      +     * 所属文章
      +     *
      +     * @access protected
      +     * @return Typecho_Config
      +     */
      +    protected function ___parentPost()
      +    {
      +        return new Typecho_Config($this->db->fetchRow(
      +        $this->select()->where('table.contents.cid = ?', $this->parentId)
      +        ->limit(1)));
      +    }
      +
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        $this->parameter->setDefault('pageSize=20');
      +        $this->_currentPage = $this->request->get('page', 1);
      +
      +        /** 构建基础查询 */
      +        $select = $this->select()->where('table.contents.type = ?', 'attachment');
      +
      +        /** 如果具有编辑以上权限,可以查看所有附件,反之只能查看自己的附件 */
      +        if (!$this->user->pass('editor', true)) {
      +            $select->where('table.contents.authorId = ?', $this->user->uid);
      +        }
      +
      +        /** 过滤标题 */
      +        if (NULL != ($keywords = $this->request->filter('search')->keywords)) {
      +            $args = array();
      +            $keywordsList = explode(' ', $keywords);
      +            $args[] = implode(' OR ', array_fill(0, count($keywordsList), 'table.contents.title LIKE ?'));
      +
      +            foreach ($keywordsList as $keyword) {
      +                $args[] = '%' . $keyword . '%';
      +            }
      +
      +            call_user_func_array(array($select, 'where'), $args);
      +        }
      +
      +        /** 给计算数目对象赋值,克隆对象 */
      +        $this->_countSql = clone $select;
      +
      +        /** 提交查询 */
      +        $select->order('table.contents.created', Typecho_Db::SORT_DESC)
      +        ->page($this->_currentPage, $this->parameter->pageSize);
      +
      +        $this->db->fetchAll($select, array($this, 'push'));
      +    }
      +
      +    /**
      +     * 输出分页
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function pageNav()
      +    {
      +        $query = $this->request->makeUriByRequest('page={page}');
      +
      +        /** 使用盒状分页 */
      +        $nav = new Typecho_Widget_Helper_PageNavigator_Box(false === $this->_total ? $this->_total = $this->size($this->_countSql) : $this->_total,
      +        $this->_currentPage, $this->parameter->pageSize, $query);
      +        $nav->render('&laquo;', '&raquo;');
      +    }
      +}
      diff --git a/var/Widget/Contents/Attachment/Edit.php b/var/Widget/Contents/Attachment/Edit.php
      new file mode 100644
      index 00000000..78ab575b
      --- /dev/null
      +++ b/var/Widget/Contents/Attachment/Edit.php
      @@ -0,0 +1,272 @@
      +<?php
      +/**
      + * 编辑文章
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 编辑文章组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Contents_Attachment_Edit extends Widget_Contents_Post_Edit implements Widget_Interface_Do
      +{
      +    /**
      +     * 获取页面偏移的URL Query
      +     *
      +     * @access protected
      +     * @param integer $cid 附件id
      +     * @param string $status 状态
      +     * @return string
      +     */
      +    protected function getPageOffsetQuery($cid, $status = NULL)
      +    {
      +        return 'page=' . $this->getPageOffset('cid', $cid, 'attachment', $status,
      +        $this->user->pass('editor', true) ? 0 : $this->user->uid);
      +    }
      +
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        /** 必须为贡献者以上权限 */
      +        $this->user->pass('contributor');
      +
      +        /** 获取文章内容 */
      +        if ((isset($this->request->cid) && 'delete' != $this->request->do
      +         && 'insert' != $this->request->do) || 'update' == $this->request->do) {
      +            $this->db->fetchRow($this->select()
      +            ->where('table.contents.type = ?', 'attachment')
      +            ->where('table.contents.cid = ?', $this->request->filter('int')->cid)
      +            ->limit(1), array($this, 'push'));
      +
      +            if (!$this->have()) {
      +                throw new Typecho_Widget_Exception(_t('附件不存在'), 404);
      +            } else if ($this->have() && !$this->allow('edit')) {
      +                throw new Typecho_Widget_Exception(_t('没有编辑权限'), 403);
      +            }
      +        }
      +    }
      +
      +    /**
      +     * 判断附件名转换到缩略名后是否合法
      +     *
      +     * @access public
      +     * @param string $name 附件名
      +     * @return boolean
      +     */
      +    public function nameToSlug($name)
      +    {
      +        if (empty($this->request->slug)) {
      +            $slug = Typecho_Common::slugName($name);
      +            if (empty($slug) || !$this->slugExists($name)) {
      +                return false;
      +            }
      +        }
      +
      +        return true;
      +    }
      +
      +    /**
      +     * 判断附件缩略名是否存在
      +     *
      +     * @access public
      +     * @param string $slug 缩略名
      +     * @return boolean
      +     */
      +    public function slugExists($slug)
      +    {
      +        $select = $this->db->select()
      +        ->from('table.contents')
      +        ->where('type = ?', 'attachment')
      +        ->where('slug = ?', Typecho_Common::slugName($slug))
      +        ->limit(1);
      +
      +        if ($this->request->cid) {
      +            $select->where('cid <> ?', $this->request->cid);
      +        }
      +
      +        $attachment = $this->db->fetchRow($select);
      +        return $attachment ? false : true;
      +    }
      +
      +    /**
      +     * 生成表单
      +     *
      +     * @access public
      +     * @param string $action 表单动作
      +     * @return Typecho_Widget_Helper_Form_Element
      +     */
      +    public function form($action = NULL)
      +    {
      +        /** 构建表格 */
      +        $form = new Typecho_Widget_Helper_Form(Typecho_Common::url('/action/contents-attachment-edit', $this->options->index),
      +        Typecho_Widget_Helper_Form::POST_METHOD);
      +
      +        /** 附件名称 */
      +        $name = new Typecho_Widget_Helper_Form_Element_Text('name', NULL, $this->title, _t('标题*'));
      +        $form->addInput($name);
      +
      +        /** 附件缩略名 */
      +        $slug = new Typecho_Widget_Helper_Form_Element_Text('slug', NULL, $this->slug, _t('缩略名'),
      +        _t('附件缩略名用于创建友好的链接形式,建议使用字母,数字,下划线和横杠.'));
      +        $form->addInput($slug);
      +
      +        /** 附件描述 */
      +        $description =  new Typecho_Widget_Helper_Form_Element_Textarea('description', NULL, $this->attachment->description,
      +        _t('描述'), _t('此文字用于描述附件,在有的主题中它会被显示.'));
      +        $form->addInput($description);
      +
      +        /** 分类动作 */
      +        $do = new Typecho_Widget_Helper_Form_Element_Hidden('do', NULL, 'update');
      +        $form->addInput($do);
      +
      +        /** 分类主键 */
      +        $cid = new Typecho_Widget_Helper_Form_Element_Hidden('cid', NULL, $this->cid);
      +        $form->addInput($cid);
      +
      +        /** 提交按钮 */
      +        $submit = new Typecho_Widget_Helper_Form_Element_Submit(NULL, NULL, _t('提交修改'));
      +        $delete = new Typecho_Widget_Helper_Layout('a', array('href' =>
      +        Typecho_Common::url('/action/contents-attachment-edit?do=delete&cid=' . $this->cid, $this->options->index),
      +        'class' => 'operate-delete',
      +        'lang'  => _t('你确认删除附件 %s 吗?', $this->attachment->name)));
      +        $submit->container($delete->html(_t('删除附件')));
      +        $form->addItem($submit);
      +
      +        $name->addRule('required', _t('必须填写附件标题'));
      +        $name->addRule(array($this, 'nameToSlug'), _t('附件标题无法被转换为缩略名'));
      +        $slug->addRule(array($this, 'slugExists'), _t('缩略名已经存在'));
      +
      +        return $form;
      +    }
      +
      +    /**
      +     * 更新附件
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function updateAttachment()
      +    {
      +        if ($this->form('update')->validate()) {
      +            $this->response->goBack();
      +        }
      +
      +        /** 取出数据 */
      +        $input = $this->request->from('name', 'slug', 'description');
      +        $input['slug'] = Typecho_Common::slugName(empty($input['slug']) ? $input['name'] : $input['slug']);
      +
      +        $attachment['title'] = $input['name'];
      +        $attachment['slug'] = $input['slug'];
      +
      +        $content = unserialize($this->attachment->__toString());
      +        $content['description'] = $input['description'];
      +
      +        $attachment['text'] = serialize($content);
      +        $cid = $this->request->filter('int')->cid;
      +
      +        /** 更新数据 */
      +        $updateRows = $this->update($attachment, $this->db->sql()->where('cid = ?', $cid));
      +
      +        if ($updateRows > 0) {
      +
      +            $this->db->fetchRow($this->select()
      +                ->where('table.contents.type = ?', 'attachment')
      +                ->where('table.contents.cid = ?', $cid)
      +                ->limit(1), array($this, 'push'));
      +
      +            /** 设置高亮 */
      +            $this->widget('Widget_Notice')->highlight($this->theId);
      +
      +            /** 提示信息 */
      +            $this->widget('Widget_Notice')->set('publish' == $this->status ?
      +            _t('附件 <a href="%s">%s</a> 已经被更新', $this->permalink, $this->title) :
      +            _t('未归档附件 %s 已经被更新', $this->title), NULL, 'success');
      +
      +        }
      +
      +        /** 转向原页 */
      +        $this->response->redirect(Typecho_Common::url('manage-medias.php?' .
      +        $this->getPageOffsetQuery($cid, $this->status), $this->options->adminUrl));
      +    }
      +
      +    /**
      +     * 删除文章
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function deleteAttachment()
      +    {
      +        $cid = $this->request->filter('int')->cid;
      +        $deleteCount = 0;
      +        $status = 'publish';
      +
      +        if ($cid) {
      +            /** 格式化文章主键 */
      +            $posts = is_array($cid) ? $cid : array($cid);
      +            foreach ($posts as $post) {
      +
      +                $condition = $this->db->sql()->where('cid = ?', $post);
      +                $row = $this->db->fetchRow($this->select()
      +                ->where('table.contents.type = ?', 'attachment')
      +                ->where('table.contents.cid = ?', $post)
      +                ->limit(1), array($this, 'push'));
      +
      +                if ($this->isWriteable($condition) && $this->delete($condition)) {
      +                    /** 删除文件 */
      +                    Widget_Upload::deleteHandle($row);
      +
      +                    /** 删除评论 */
      +                    $this->db->query($this->db->delete('table.comments')
      +                    ->where('cid = ?', $post));
      +
      +                    $status = $this->status;
      +
      +                    $deleteCount ++;
      +                }
      +
      +                unset($condition);
      +            }
      +        }
      +
      +        if ($this->request->isAjax()) {
      +            $this->response->throwJson($deleteCount > 0 ? array('code' => 200, 'message' => _t('附件已经被删除'))
      +            : array('code' => 500, 'message' => _t('没有附件被删除')));
      +        } else {
      +            /** 设置提示信息 */
      +            $this->widget('Widget_Notice')->set($deleteCount > 0 ? _t('附件已经被删除') : _t('没有附件被删除'), NULL,
      +            $deleteCount > 0 ? 'success' : 'notice');
      +
      +            /** 返回原网页 */
      +            $this->response->redirect(Typecho_Common::url('manage-medias.php', $this->options->adminUrl));
      +        }
      +    }
      +
      +    /**
      +     * 绑定动作
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        $this->on($this->request->is('do=delete'))->deleteAttachment();
      +        $this->on($this->request->is('do=update'))->updateAttachment();
      +        $this->response->redirect($this->options->adminUrl);
      +    }
      +}
      diff --git a/var/Widget/Contents/Attachment/Related.php b/var/Widget/Contents/Attachment/Related.php
      new file mode 100644
      index 00000000..3246fb9c
      --- /dev/null
      +++ b/var/Widget/Contents/Attachment/Related.php
      @@ -0,0 +1,52 @@
      +<?php
      +/**
      + * 文章相关附件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 文章相关附件组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Contents_Attachment_Related extends Widget_Abstract_Contents
      +{
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        $this->parameter->setDefault('parentId=0&limit=0');
      +
      +        //如果没有cid值
      +        if (!$this->parameter->parentId) {
      +            return;
      +        }
      +
      +        /** 构建基础查询 */
      +        $select = $this->select()->where('table.contents.type = ?', 'attachment');
      +
      +        //order字段在附件里代表所属文章
      +        $select->where('table.contents.parent = ?', $this->parameter->parentId);
      +
      +        /** 提交查询 */
      +        $select->order('table.contents.created', Typecho_Db::SORT_DESC);
      +
      +        if ($this->parameter->limit > 0) {
      +            $select->limit($this->parameter->limit);
      +        }
      +
      +        $this->db->fetchAll($select, array($this, 'push'));
      +    }
      +}
      diff --git a/var/Widget/Contents/Attachment/Unattached.php b/var/Widget/Contents/Attachment/Unattached.php
      new file mode 100644
      index 00000000..f38120d2
      --- /dev/null
      +++ b/var/Widget/Contents/Attachment/Unattached.php
      @@ -0,0 +1,42 @@
      +<?php
      +/**
      + * 没有关联的附件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 没有关联的附件组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Contents_Attachment_Unattached extends Widget_Abstract_Contents
      +{
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        /** 构建基础查询 */
      +        $select = $this->select()->where('table.contents.type = ? AND
      +        (table.contents.parent = 0 OR table.contents.parent IS NULL)', 'attachment');
      +        
      +        /** 加上对用户的判断 */
      +        $this->where('table.contents.authorId = ?', $this->user->uid);
      +
      +        /** 提交查询 */
      +        $select->order('table.contents.created', Typecho_Db::SORT_DESC);
      +
      +        $this->db->fetchAll($select, array($this, 'push'));
      +    }
      +}
      diff --git a/var/Widget/Contents/Page/Admin.php b/var/Widget/Contents/Page/Admin.php
      new file mode 100644
      index 00000000..0fdc8573
      --- /dev/null
      +++ b/var/Widget/Contents/Page/Admin.php
      @@ -0,0 +1,55 @@
      +<?php
      +/**
      + * 独立页面管理列表
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 独立页面管理列表组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Contents_Page_Admin extends Widget_Contents_Post_Admin
      +{
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        /** 构建基础查询 */
      +        $select = $this->select()->where('table.contents.type = ?', 'page');
      +
      +        /** 过滤状态 */
      +        $select->where('table.contents.status = ? OR table.contents.status = ? OR (table.contents.status = ? AND table.contents.parent = 0)',
      +            'publish', 'waiting', 'draft');
      +
      +        /** 过滤标题 */
      +        if (NULL != ($keywords = $this->request->keywords)) {
      +            $args = array();
      +            $keywordsList = explode(' ', $keywords);
      +            $args[] = implode(' OR ', array_fill(0, count($keywordsList), 'table.contents.title LIKE ?'));
      +
      +            foreach ($keywordsList as $keyword) {
      +                $args[] = '%' . Typecho_Common::filterSearchQuery($keyword) . '%';
      +            }
      +
      +            call_user_func_array(array($select, 'where'), $args);
      +        }
      +
      +        /** 提交查询 */
      +        $select->order('table.contents.order', Typecho_Db::SORT_ASC);
      +
      +        $this->db->fetchAll($select, array($this, 'push'));
      +    }
      +}
      diff --git a/var/Widget/Contents/Page/Edit.php b/var/Widget/Contents/Page/Edit.php
      new file mode 100644
      index 00000000..636398f8
      --- /dev/null
      +++ b/var/Widget/Contents/Page/Edit.php
      @@ -0,0 +1,238 @@
      +<?php
      +/**
      + * 编辑页面
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 编辑页面组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Contents_Page_Edit extends Widget_Contents_Post_Edit implements Widget_Interface_Do
      +{
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        /** 必须为编辑以上权限 */
      +        $this->user->pass('editor');
      +
      +        /** 获取文章内容 */
      +        if (!empty($this->request->cid) && 'delete' != $this->request->do 
      +            && 'sort' != $this->request->do) {
      +            $this->db->fetchRow($this->select()
      +            ->where('table.contents.type = ?', 'page')
      +            ->where('table.contents.cid = ?', $this->request->filter('int')->cid)
      +            ->limit(1), array($this, 'push'));
      +
      +            if ('draft' == $this->status && $this->parent) {
      +                $this->response->redirect(Typecho_Common::url('write-page.php?cid=' . $this->parent, $this->options->adminUrl));
      +            }
      +
      +            if (!$this->have()) {
      +                throw new Typecho_Widget_Exception(_t('页面不存在'), 404);
      +            } else if ($this->have() && !$this->allow('edit')) {
      +                throw new Typecho_Widget_Exception(_t('没有编辑权限'), 403);
      +            }
      +        }
      +    }
      +
      +    /**
      +     * 发布文章
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function writePage()
      +    {
      +        $contents = $this->request->from('text', 'template', 'allowComment',
      +            'allowPing', 'allowFeed', 'slug', 'order');
      +        $contents['type'] = 'page';
      +
      +        $contents['title'] = $this->request->get('title', _t('未命名页面'));
      +        $contents['created'] = $this->getCreated();
      +        $contents = $this->pluginHandle()->write($contents, $this);
      +
      +        if ($this->request->is('do=publish')) {
      +            /** 重新发布已经存在的文章 */
      +            $this->publish($contents);
      +
      +            /** 发送ping */
      +            $this->widget('Widget_Service')->sendPing($this->cid);
      +
      +            /** 设置提示信息 */
      +            $this->widget('Widget_Notice')->set(_t('页面 "<a href="%s">%s</a>" 已经发布', $this->permalink, $this->title),
      +            NULL, 'success');
      +
      +            /** 设置高亮 */
      +            $this->widget('Widget_Notice')->highlight($this->theId);
      +
      +            /** 页面跳转 */
      +            $this->response->redirect(Typecho_Common::url('manage-pages.php?', $this->options->adminUrl));
      +        } else {
      +            /** 保存文章 */
      +            $this->save($contents);
      +
      +            if ($this->request->isAjax()) {
      +                $created = new Typecho_Date($this->options->gmtTime);
      +                $this->response->throwJson(array(
      +                    'success'  =>  1,
      +                    'message'  =>  _t('文章保存于 %s', $created->format('H:i A')),
      +                    'cid'      =>  $this->cid
      +                ));
      +            } else {
      +                /** 设置提示信息 */
      +                $this->widget('Widget_Notice')->set(_t('草稿 "%s" 已经被保存', $this->title), NULL, 'success');
      +
      +                /** 返回原页面 */
      +                $this->response->redirect(Typecho_Common::url('write-page.php?cid=' . $this->cid, $this->options->adminUrl));
      +            }
      +        }
      +    }
      +
      +    /**
      +     * 删除页面
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function deletePage()
      +    {
      +        $cid = $this->request->filter('int')->cid;
      +        $deleteCount = 0;
      +
      +        if ($cid) {
      +            /** 格式化页面主键 */
      +            $pages = is_array($cid) ? $cid : array($cid);
      +            foreach ($pages as $page) {
      +                if ($this->delete($this->db->sql()->where('cid = ?', $page))) {
      +                    /** 删除评论 */
      +                    $this->db->query($this->db->delete('table.comments')
      +                    ->where('cid = ?', $page));
      +
      +                    /** 解除附件关联 */
      +                    $this->unAttach($page);
      +
      +                    /** 解除首页关联 */
      +                    if ($this->options->frontPage == 'page:' . $page) {
      +                        $this->db->query($this->db->update('table.options')
      +                        ->rows(array('value' => 'recent'))
      +                        ->where('name = ?', 'frontPage'));
      +                    }
      +
      +                    /** 删除草稿 */
      +                    $draft = $this->db->fetchRow($this->db->select('cid')
      +                    ->from('table.contents')
      +                    ->where('table.contents.parent = ? AND table.contents.type = ? AND table.contents.status = ?',
      +                        $page, 'page', 'draft')
      +                    ->limit(1));
      +
      +                    if ($draft) {
      +                        $this->deleteDraft($draft['cid']);
      +                    }
      +
      +                    $deleteCount ++;
      +                }
      +            }
      +        }
      +
      +        /** 设置提示信息 */
      +        $this->widget('Widget_Notice')->set($deleteCount > 0 ? _t('页面已经被删除') : _t('没有页面被删除'), NULL,
      +        $deleteCount > 0 ? 'success' : 'notice');
      +
      +        /** 返回原网页 */
      +        $this->response->goBack();
      +    }
      +    
      +    /**
      +     * 删除页面所属草稿
      +     * 
      +     * @access public
      +     * @return void
      +     */
      +    public function deletePageDraft()
      +    {
      +        $cid = $this->request->filter('int')->cid;
      +        $deleteCount = 0;
      +        
      +        if ($cid) {
      +            /** 格式化文章主键 */
      +            $pages = is_array($cid) ? $cid : array($cid);
      +            
      +            foreach ($pages as $page) {
      +                /** 删除草稿 */
      +                $draft = $this->db->fetchRow($this->db->select('cid')
      +                ->from('table.contents')
      +                ->where('table.contents.parent = ? AND table.contents.type = ? AND table.contents.status = ?',
      +                    $page, 'page', 'draft')
      +                ->limit(1));
      +
      +                if ($draft) {
      +                    $this->deleteDraft($draft['cid']);
      +                    $deleteCount ++;
      +                }
      +            }
      +        }
      +        
      +        /** 设置提示信息 */
      +        $this->widget('Widget_Notice')->set($deleteCount > 0 ? _t('草稿已经被删除') : _t('没有草稿被删除'), NULL,
      +        $deleteCount > 0 ? 'success' : 'notice');
      +        
      +        /** 返回原网页 */
      +        $this->response->goBack();
      +    }
      +
      +    /**
      +     * 页面排序
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function sortPage()
      +    {
      +        $pages = $this->request->filter('int')->cid;
      +
      +        if ($pages && is_array($pages)) {
      +            foreach ($pages as $sort => $cid) {
      +                $this->db->query($this->db->update('table.contents')->rows(array('order' => $sort + 1))
      +                ->where('cid = ?', $cid));
      +            }
      +        }
      +
      +        if (!$this->request->isAjax()) {
      +            /** 转向原页 */
      +            $this->response->goBack();
      +        } else {
      +            $this->response->throwJson(array('success' => 1, 'message' => _t('页面排序已经完成')));
      +        }
      +    }
      +
      +    /**
      +     * 绑定动作
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        $this->on($this->request->is('do=publish') || $this->request->is('do=save'))->writePage();
      +        $this->on($this->request->is('do=delete'))->deletePage();
      +        $this->on($this->request->is('do=deleteDraft'))->deletePageDraft();
      +        $this->on($this->request->is('do=sort'))->sortPage();
      +        $this->response->redirect($this->options->adminUrl);
      +    }
      +}
      diff --git a/var/Widget/Contents/Page/List.php b/var/Widget/Contents/Page/List.php
      new file mode 100644
      index 00000000..84d49da0
      --- /dev/null
      +++ b/var/Widget/Contents/Page/List.php
      @@ -0,0 +1,44 @@
      +<?php
      +/**
      + * 独立页面列表
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 独立页面列表组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Contents_Page_List extends Widget_Abstract_Contents
      +{
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        $select = $this->select()->where('table.contents.type = ?', 'page')
      +        ->where('table.contents.status = ?', 'publish')
      +        ->where('table.contents.created < ?', $this->options->gmtTime)
      +        ->order('table.contents.order', Typecho_Db::SORT_ASC);
      +
      +        //去掉自定义首页
      +        $frontPage = explode(':', $this->options->frontPage);
      +        if (2 == count($frontPage) && 'page' == $frontPage[0]) {
      +            $select->where('table.contents.cid <> ?', $frontPage[1]);
      +        }
      +
      +        $this->db->fetchAll($select, array($this, 'push'));
      +    }
      +}
      diff --git a/var/Widget/Contents/Post/Admin.php b/var/Widget/Contents/Post/Admin.php
      new file mode 100644
      index 00000000..fdb286bd
      --- /dev/null
      +++ b/var/Widget/Contents/Post/Admin.php
      @@ -0,0 +1,157 @@
      +<?php
      +/**
      + * 文章管理列表
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 文章管理列表组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Contents_Post_Admin extends Widget_Abstract_Contents
      +{
      +    /**
      +     * 用于计算数值的语句对象
      +     *
      +     * @access private
      +     * @var Typecho_Db_Query
      +     */
      +    private $_countSql;
      +
      +    /**
      +     * 所有文章个数
      +     *
      +     * @access private
      +     * @var integer
      +     */
      +    private $_total = false;
      +
      +    /**
      +     * 分页大小
      +     *
      +     * @access private
      +     * @var integer
      +     */
      +    private $pageSize;
      +
      +    /**
      +     * 当前页
      +     *
      +     * @access private
      +     * @var integer
      +     */
      +    private $_currentPage;
      +
      +    /**
      +     * 当前文章的草稿
      +     *
      +     * @access protected
      +     * @return array
      +     */
      +    protected function ___hasSaved()
      +    {
      +        $savedPost = $this->db->fetchRow($this->db->select('cid', 'modified')
      +        ->from('table.contents')
      +        ->where('table.contents.parent = ? AND table.contents.type = ?',
      +            $this->cid, 'post_draft')
      +        ->limit(1));
      +        
      +        if ($savedPost) {
      +            $this->modified = $savedPost['modified'];
      +            return true;
      +        }
      +
      +        return false;
      +    }
      +
      +    /**
      +     * 获取菜单标题
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function getMenuTitle()
      +    {
      +        if (isset($this->request->uid)) {
      +            return _t('%s的文章', $this->db->fetchObject($this->db->select('screenName')->from('table.users')
      +                ->where('uid = ?', $this->request->filter('int')->uid))->screenName);
      +        }
      +
      +        throw new Typecho_Widget_Exception(_t('用户不存在'), 404);
      +    }
      +
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        $this->parameter->setDefault('pageSize=20');
      +        $this->_currentPage = $this->request->get('page', 1);
      +
      +        /** 构建基础查询 */
      +        $select = $this->select()->where('table.contents.type = ? OR (table.contents.type = ? AND table.contents.parent = ?)', 'post', 'post_draft', 0);
      +
      +        /** 过滤分类 */
      +        if (NULL != ($category = $this->request->category)) {
      +            $select->join('table.relationships', 'table.contents.cid = table.relationships.cid')
      +            ->where('table.relationships.mid = ?', $category);
      +        }
      +
      +        /** 如果具有编辑以上权限,可以查看所有文章,反之只能查看自己的文章 */
      +        if (!$this->user->pass('editor', true)) {
      +            $select->where('table.contents.authorId = ?', $this->user->uid);
      +        } else if (isset($this->request->uid)) {
      +            $select->where('table.contents.authorId = ?', $this->request->filter('int')->uid);
      +        }
      +
      +        /** 过滤标题 */
      +        if (NULL != ($keywords = $this->request->filter('search')->keywords)) {
      +            $args = array();
      +            $keywordsList = explode(' ', $keywords);
      +            $args[] = implode(' OR ', array_fill(0, count($keywordsList), 'table.contents.title LIKE ?'));
      +
      +            foreach ($keywordsList as $keyword) {
      +                $args[] = '%' . $keyword . '%';
      +            }
      +
      +            call_user_func_array(array($select, 'where'), $args);
      +        }
      +
      +        /** 给计算数目对象赋值,克隆对象 */
      +        $this->_countSql = clone $select;
      +
      +        /** 提交查询 */
      +        $select->order('table.contents.created', Typecho_Db::SORT_DESC)
      +        ->page($this->_currentPage, $this->parameter->pageSize);
      +
      +        $this->db->fetchAll($select, array($this, 'push'));
      +    }
      +
      +    /**
      +     * 输出分页
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function pageNav()
      +    {
      +        $query = $this->request->makeUriByRequest('page={page}');
      +
      +        /** 使用盒状分页 */
      +        $nav = new Typecho_Widget_Helper_PageNavigator_Box(false === $this->_total ? $this->_total = $this->size($this->_countSql) : $this->_total,
      +        $this->_currentPage, $this->parameter->pageSize, $query);
      +        $nav->render('&laquo;', '&raquo;');
      +    }
      +}
      diff --git a/var/Widget/Contents/Post/Date.php b/var/Widget/Contents/Post/Date.php
      new file mode 100644
      index 00000000..233c467d
      --- /dev/null
      +++ b/var/Widget/Contents/Post/Date.php
      @@ -0,0 +1,101 @@
      +<?php
      +/**
      + * 按日期归档列表组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 按日期归档列表组件
      + *
      + * @fixme 交给缓存
      + * @author qining
      + * @category typecho
      + * @package Widget
      + */
      +class Widget_Contents_Post_Date extends Typecho_Widget
      +{
      +    /**
      +     * 全局选项
      +     *
      +     * @access protected
      +     * @var Widget_Options
      +     */
      +    protected $options;
      +
      +    /**
      +     * 数据库对象
      +     *
      +     * @access protected
      +     * @var Typecho_Db
      +     */
      +    protected $db;
      +
      +    /**
      +     * 构造函数,初始化组件
      +     *
      +     * @access public
      +     * @param mixed $request request对象
      +     * @param mixed $response response对象
      +     * @param mixed $params 参数列表
      +     * @return void
      +     */
      +    public function __construct($request, $response, $params = NULL)
      +    {
      +        parent::__construct($request, $response, $params);
      +
      +        /** 初始化数据库 */
      +        $this->db = Typecho_Db::get();
      +
      +        /** 初始化常用组件 */
      +        $this->options = $this->widget('Widget_Options');
      +    }
      +
      +    /**
      +     * 初始化函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        /** 设置参数默认值 */
      +        $this->parameter->setDefault('format=Y-m&type=month&limit=0');
      +
      +        $resource = $this->db->query($this->db->select('created')->from('table.contents')
      +        ->where('type = ?', 'post')
      +        ->where('table.contents.status = ?', 'publish')
      +        ->where('table.contents.created < ?', $this->options->gmtTime)
      +        ->order('table.contents.created', Typecho_Db::SORT_DESC));
      +
      +        $offset = $this->options->timezone - $this->options->serverTimezone;
      +        $result = array();
      +        while ($post = $this->db->fetchRow($resource)) {
      +            $timeStamp = $post['created'] + $offset;
      +            $date = date($this->parameter->format, $timeStamp);
      +
      +            if (isset($result[$date])) {
      +                $result[$date]['count'] ++;
      +            } else {
      +                $result[$date]['year'] = date('Y', $timeStamp);
      +                $result[$date]['month'] = date('m', $timeStamp);
      +                $result[$date]['day'] = date('d', $timeStamp);
      +                $result[$date]['date'] = $date;
      +                $result[$date]['count'] = 1;
      +            }
      +        }
      +
      +        if ($this->parameter->limit > 0) {
      +            $result = array_slice($result, 0, $this->parameter->limit);
      +        }
      +
      +        foreach ($result as $row) {
      +            $row['permalink'] = Typecho_Router::url('archive_' . $this->parameter->type, $row, $this->widget('Widget_Options')->index);
      +            $this->push($row);
      +        }
      +    }
      +}
      diff --git a/var/Widget/Contents/Post/Edit.php b/var/Widget/Contents/Post/Edit.php
      new file mode 100644
      index 00000000..8aff8d6a
      --- /dev/null
      +++ b/var/Widget/Contents/Post/Edit.php
      @@ -0,0 +1,719 @@
      +<?php
      +/**
      + * 编辑文章
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 编辑文章组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Contents_Post_Edit extends Widget_Abstract_Contents implements Widget_Interface_Do
      +{
      +    /**
      +     * 将tags取出
      +     *
      +     * @access protected
      +     * @return array
      +     */
      +    protected function ___tags()
      +    {
      +        if ($this->have()) {
      +            return $this->db->fetchAll($this->db
      +            ->select()->from('table.metas')
      +            ->join('table.relationships', 'table.relationships.mid = table.metas.mid')
      +            ->where('table.relationships.cid = ?', $this->cid)
      +            ->where('table.metas.type = ?', 'tag'), array($this->widget('Widget_Abstract_Metas'), 'filter'));
      +        }
      +
      +        return array();
      +    }
      +
      +    /**
      +     * 获取当前时间
      +     *
      +     * @access protected
      +     * @return Typecho_Date
      +     */
      +    protected function ___date()
      +    {
      +        return new Typecho_Date($this->options->gmtTime);
      +    }
      +
      +    /**
      +     * 当前文章的草稿
      +     *
      +     * @access protected
      +     * @return array
      +     */
      +    protected function ___draft()
      +    {
      +        if ($this->have()) {
      +            if ('post_draft' == $this->type) {
      +                return $this->row;
      +            } else {
      +                return $this->db->fetchRow($this->widget('Widget_Abstract_Contents')->select()
      +                ->where('table.contents.parent = ? AND table.contents.type = ?',
      +                    $this->cid, 'post_draft')
      +                ->limit(1), array($this->widget('Widget_Abstract_Contents'), 'filter'));
      +            }
      +        }
      +
      +        return NULL;
      +    }
      +
      +    /**
      +     * 根据提交值获取created字段值
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function getCreated()
      +    {
      +        $created = $this->options->gmtTime;
      +        if (isset($this->request->created)) {
      +            $created = $this->request->created;
      +        } else if (isset($this->request->date)) {
      +            $created = strtotime($this->request->date) - $this->options->timezone + $this->options->serverTimezone;
      +        } else if (isset($this->request->year) && isset($this->request->month) && isset($this->request->day)) {
      +            $second = intval($this->request->get('sec', date('s')));
      +            $min = intval($this->request->get('min', date('i')));
      +            $hour = intval($this->request->get('hour', date('H')));
      +
      +            $year = intval($this->request->year);
      +            $month = intval($this->request->month);
      +            $day = intval($this->request->day);
      +
      +            $created = mktime($hour, $min, $second, $month, $day, $year) - $this->options->timezone + $this->options->serverTimezone;
      +        } else if ($this->request->is('cid')) {
      +            //如果是修改文章
      +            $created = $this->created;
      +        }
      +
      +        return $created;
      +    }
      +
      +    /**
      +     * 同步附件
      +     *
      +     * @access protected
      +     * @param integer $cid 内容id
      +     * @return void
      +     */
      +    protected function attach($cid)
      +    {
      +        if ($this->request->attachment && is_array($this->request->attachment)) {
      +            $attachments = $this->request->filter('int')->attachment;
      +
      +            foreach ($attachments as $key => $attachment) {
      +                $this->db->query($this->db->update('table.contents')->rows(array('parent' => $cid, 'status' => 'publish',
      +                'order' => $key + 1))->where('cid = ? AND type = ?', $attachment, 'attachment'));
      +            }
      +        }
      +    }
      +
      +    /**
      +     * 取消附件关联
      +     *
      +     * @access protected
      +     * @param integer $cid 内容id
      +     * @return void
      +     */
      +    protected function unAttach($cid)
      +    {
      +        $this->db->query($this->db->update('table.contents')->rows(array('parent' => 0, 'status' => 'publish'))
      +                ->where('parent = ? AND type = ?', $cid, 'attachment'));
      +    }
      +
      +    /**
      +     * 获取页面偏移的URL Query
      +     *
      +     * @access protected
      +     * @param integer $created 创建时间
      +     * @param string $status 状态
      +     * @return string
      +     */
      +    protected function getPageOffsetQuery($created, $status = NULL)
      +    {
      +        return 'page=' . $this->getPageOffset('created', $created, 'post', $status,
      +        'on' == $this->request->__typecho_all_posts ? 0 : $this->user->uid);
      +    }
      +
      +    /**
      +     * 删除草稿
      +     *
      +     * @access protected
      +     * @param integer $cid 草稿id
      +     * @return void
      +     */
      +    protected function deleteDraft($cid)
      +    {
      +        $this->delete($this->db->sql()->where('cid = ?', $cid));
      +
      +        /** 删除草稿分类 */
      +        $this->setCategories($cid, array(), false, false);
      +
      +        /** 删除标签 */
      +        $this->setTags($cid, NULL, false, false);
      +    }
      +
      +    /**
      +     * 发布内容
      +     *
      +     * @access protected
      +     * @param array $contents 内容结构
      +     * @return void
      +     */
      +    protected function publish(array $contents)
      +    {
      +        /** 发布内容, 检查是否具有直接发布的权限 */
      +        if ($this->user->pass('editor', true)) {
      +            if ('password' == $contents['visibility'] || !in_array($contents['visibility'], array('private', 'waiting', 'publish'))) {
      +                if (empty($contents['password']) || 'password' != $contents['visibility']) {
      +                    $contents['password'] = '';
      +                }
      +                $contents['status'] = 'publish';
      +            } else {
      +                $contents['status'] = $contents['visibility'];
      +            }
      +        } else {
      +            $contents['status'] = 'waiting';
      +            $contents['password'] = '';
      +        }
      +
      +        /** 真实的内容id */
      +        $realId = 0;
      +        
      +        /** 是否是从草稿状态发布 */
      +        $isDraftToPublish = ('post_draft' == $this->type);
      +
      +        $isBeforePublish = ('publish' == $this->status);
      +        $isAfterPublish = ('publish' == $contents['status']);
      +
      +        /** 重新发布现有内容 */
      +        if ($this->have()) {
      +
      +            /** 如果它本身不是草稿, 需要删除其草稿 */
      +            if (!$isDraftToPublish && $this->draft) {
      +                $this->deleteDraft($this->draft['cid']);
      +            }
      +
      +            /** 直接将草稿状态更改 */
      +            if ($this->update($contents, $this->db->sql()->where('cid = ?', $this->cid))) {
      +                $realId = $this->cid;
      +            }
      +
      +        } else {
      +            /** 发布一个新内容 */
      +            $realId = $this->insert($contents);
      +        }
      +
      +        if ($realId > 0) {
      +            /** 插入分类 */
      +            if (array_key_exists('category', $contents)) {
      +                $this->setCategories($realId, !empty($contents['category']) && is_array($contents['category']) ?
      +                $contents['category'] : array($this->options->defaultCategory), !$isDraftToPublish && $isBeforePublish, $isAfterPublish);
      +            }
      +
      +            /** 插入标签 */
      +            if (array_key_exists('tags', $contents)) {
      +                $this->setTags($realId, $contents['tags'], !$isDraftToPublish, true);
      +            }
      +
      +            /** 同步附件 */
      +            $this->attach($realId);
      +        
      +            $this->db->fetchRow($this->select()->where('table.contents.cid = ?', $realId)->limit(1), array($this, 'push'));
      +        }
      +    }
      +
      +    /**
      +     * 保存内容
      +     *
      +     * @access protected
      +     * @param array $contents 内容结构
      +     * @return void
      +     */
      +    protected function save(array $contents)
      +    {
      +        /** 发布内容, 检查是否具有直接发布的权限 */
      +        if ($this->user->pass('editor', true)) {
      +            if ('password' == $contents['visibility'] || !in_array($contents['visibility'], array('private', 'waiting', 'publish'))) {
      +                if (empty($contents['password']) || 'password' != $contents['visibility']) {
      +                    $contents['password'] = '';
      +                }
      +                $contents['status'] = 'publish';
      +            } else {
      +                $contents['status'] = $contents['visibility'];
      +            }
      +        } else {
      +            $contents['status'] = 'waiting';
      +            $contents['password'] = '';
      +        }
      +
      +        /** 真实的内容id */
      +        $realId = 0;
      +
      +        /** 如果草稿已经存在 */
      +        if ($this->draft) {
      +        
      +            /** 直接将草稿状态更改 */
      +            if ($this->update($contents, $this->db->sql()->where('cid = ?', $this->draft['cid']))) {
      +                $realId = $this->draft['cid'];
      +            }
      +
      +        } else {
      +            if ($this->have()) {
      +                $contents['parent'] = $this->cid;
      +            }
      +
      +            /** 发布一个新内容 */
      +            $realId = $this->insert($contents);
      +
      +            if (!$this->have()) {
      +                $this->db->fetchRow($this->select()->where('table.contents.cid = ?', $realId)->limit(1), array($this, 'push'));
      +            }
      +        }
      +
      +        if ($realId > 0) {
      +            //$this->db->fetchRow($this->select()->where('table.contents.cid = ?', $realId)->limit(1), array($this, 'push'));
      +
      +            /** 插入分类 */
      +            if (array_key_exists('category', $contents)) {
      +                $this->setCategories($realId, !empty($contents['category']) && is_array($contents['category']) ?
      +                $contents['category'] : array($this->options->defaultCategory), false, false);
      +            }
      +
      +            /** 插入标签 */
      +            if (array_key_exists('tags', $contents)) {
      +                $this->setTags($realId, $contents['tags'], false, false);
      +            }
      +
      +            /** 同步附件 */
      +            $this->attach($this->cid);
      +        }
      +    }
      +
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        /** 必须为贡献者以上权限 */
      +        $this->user->pass('contributor');
      +
      +        /** 获取文章内容 */
      +        if (!empty($this->request->cid) && 'delete' != $this->request->do) {
      +            $this->db->fetchRow($this->select()
      +            ->where('table.contents.type = ?', 'post')
      +            ->where('table.contents.cid = ?', $this->request->filter('int')->cid)
      +            ->limit(1), array($this, 'push'));
      +
      +            if ('draft' == $this->status && $this->parent) {
      +                $this->response->redirect(Typecho_Common::url('write-post.php?cid=' . $this->parent, $this->options->adminUrl));
      +            }
      +
      +            if (!$this->have()) {
      +                throw new Typecho_Widget_Exception(_t('文章不存在'), 404);
      +            } else if ($this->have() && !$this->allow('edit')) {
      +                throw new Typecho_Widget_Exception(_t('没有编辑权限'), 403);
      +            }
      +        }
      +    }
      +
      +    /**
      +     * 过滤堆栈
      +     *
      +     * @access public
      +     * @param array $value 每行的值
      +     * @return array
      +     */
      +    public function filter(array $value)
      +    {
      +        if ('draft' != $value['status']) {
      +            $draft = $this->db->fetchRow($this->widget('Widget_Abstract_Contents')->select()
      +            ->where('table.contents.parent = ? AND table.contents.type = ? AND table.contents.status = ?',
      +                $value['cid'], $value['type'], 'draft')
      +            ->limit(1));
      +
      +            if (!empty($draft)) {
      +                $draft['slug'] = ltrim($draft['slug'], '@');
      +                $draft['status'] = $value['status'];
      +
      +                $draft = parent::filter($draft);
      +
      +                $draft['tags'] = $this->db->fetchAll($this->db
      +                ->select()->from('table.metas')
      +                ->join('table.relationships', 'table.relationships.mid = table.metas.mid')
      +                ->where('table.relationships.cid = ?', $draft['cid'])
      +                ->where('table.metas.type = ?', 'tag'), array($this->widget('Widget_Abstract_Metas'), 'filter'));
      +                $draft['cid'] = $value['cid'];
      +
      +                return $draft;
      +            }
      +        }
      +
      +        return parent::filter($value);
      +    }
      +
      +    /**
      +     * 输出文章发布日期
      +     *
      +     * @access public
      +     * @param string $format 日期格式
      +     * @return void
      +     */
      +    public function date($format = NULL)
      +    {
      +        if (isset($this->created)) {
      +            parent::date($format);
      +        } else {
      +            echo date($format, $this->options->gmtTime + $this->options->timezone - $this->options->serverTimezone);
      +        }
      +    }
      +
      +    /**
      +     * 获取文章权限
      +     *
      +     * @access public
      +     * @param string $permission 权限
      +     * @return unknown
      +     */
      +    public function allow()
      +    {
      +        $permissions = func_get_args();
      +        $allow = true;
      +
      +        foreach ($permissions as $permission) {
      +            $permission = strtolower($permission);
      +
      +            if ('edit' == $permission) {
      +                $allow &= ($this->user->pass('editor', true) || $this->authorId == $this->user->uid);
      +            } else {
      +                $permission = 'allow' . ucfirst(strtolower($permission));
      +                $optionPermission = 'default' . ucfirst($permission);
      +                $allow &= (isset($this->{$permission}) ? $this->{$permission} : $this->options->{$optionPermission});
      +            }
      +        }
      +
      +        return $allow;
      +    }
      +
      +    /**
      +     * 获取网页标题
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function getMenuTitle()
      +    {
      +        return _t('编辑 %s', $this->title);
      +    }
      +
      +    /**
      +     * 设置内容标签
      +     *
      +     * @access public
      +     * @param integer $cid
      +     * @param string $tags
      +     * @param boolean $count 是否参与计数
      +     * @return string
      +     */
      +    public function setTags($cid, $tags, $beforeCount = true, $afterCount = true)
      +    {
      +        $tags = str_replace(',', ',', $tags);
      +        $tags = array_unique(array_map('trim', explode(',', $tags)));
      +
      +        /** 取出已有tag */
      +        $existTags = Typecho_Common::arrayFlatten($this->db->fetchAll(
      +        $this->db->select('table.metas.mid')
      +        ->from('table.metas')
      +        ->join('table.relationships', 'table.relationships.mid = table.metas.mid')
      +        ->where('table.relationships.cid = ?', $cid)
      +        ->where('table.metas.type = ?', 'tag')), 'mid');
      +
      +        /** 删除已有tag */
      +        if ($existTags) {
      +            foreach ($existTags as $tag) {
      +                $this->db->query($this->db->delete('table.relationships')
      +                ->where('cid = ?', $cid)
      +                ->where('mid = ?', $tag));
      +
      +                if ($beforeCount) {
      +                    $this->db->query($this->db->update('table.metas')
      +                    ->expression('count', 'count - 1')
      +                    ->where('mid = ?', $tag));
      +                }
      +            }
      +        }
      +
      +        /** 取出插入tag */
      +        $insertTags = $this->widget('Widget_Abstract_Metas')->scanTags($tags);
      +
      +        /** 插入tag */
      +        if ($insertTags) {
      +            foreach ($insertTags as $tag) {
      +                $this->db->query($this->db->insert('table.relationships')
      +                ->rows(array(
      +                    'mid'  =>   $tag,
      +                    'cid'  =>   $cid
      +                )));
      +
      +                if ($afterCount) {
      +                    $this->db->query($this->db->update('table.metas')
      +                    ->expression('count', 'count + 1')
      +                    ->where('mid = ?', $tag));
      +                }
      +            }
      +        }
      +    }
      +
      +    /**
      +     * 设置分类
      +     *
      +     * @access public
      +     * @param integer $cid 内容id
      +     * @param array $categories 分类id的集合数组
      +     * @param boolean $count 是否参与计数
      +     * @return integer
      +     */
      +    public function setCategories($cid, array $categories, $beforeCount = true, $afterCount = true)
      +    {
      +        $categories = array_unique(array_map('trim', $categories));
      +
      +        /** 取出已有category */
      +        $existCategories = Typecho_Common::arrayFlatten($this->db->fetchAll(
      +        $this->db->select('table.metas.mid')
      +        ->from('table.metas')
      +        ->join('table.relationships', 'table.relationships.mid = table.metas.mid')
      +        ->where('table.relationships.cid = ?', $cid)
      +        ->where('table.metas.type = ?', 'category')), 'mid');
      +
      +        /** 删除已有category */
      +        if ($existCategories) {
      +            foreach ($existCategories as $category) {
      +                $this->db->query($this->db->delete('table.relationships')
      +                ->where('cid = ?', $cid)
      +                ->where('mid = ?', $category));
      +
      +                if ($beforeCount) {
      +                    $this->db->query($this->db->update('table.metas')
      +                    ->expression('count', 'count - 1')
      +                    ->where('mid = ?', $category));
      +                }
      +            }
      +        }
      +
      +        /** 插入category */
      +        if ($categories) {
      +            foreach ($categories as $category) {
      +                /** 如果分类不存在 */
      +                if (!$this->db->fetchRow($this->db->select('mid')
      +                ->from('table.metas')
      +                ->where('mid = ?', $category)
      +                ->limit(1))) {
      +                    continue;
      +                }
      +
      +                $this->db->query($this->db->insert('table.relationships')
      +                ->rows(array(
      +                    'mid'  =>   $category,
      +                    'cid'  =>   $cid
      +                )));
      +
      +                if ($afterCount) {
      +                    $this->db->query($this->db->update('table.metas')
      +                    ->expression('count', 'count + 1')
      +                    ->where('mid = ?', $category));
      +                }
      +            }
      +        }
      +    }
      +
      +    /**
      +     * 发布文章
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function writePost()
      +    {
      +        $contents = $this->request->from('password', 'allowComment',
      +        'allowPing', 'allowFeed', 'slug', 'category', 'tags', 'text', 'do', 'visibility');
      +
      +        $contents['title'] = $this->request->get('title', _t('未命名文档'));
      +        $contents['created'] = $this->getCreated();
      +        $contents = $this->pluginHandle()->write($contents, $this);
      +
      +        if ($this->request->is('do=publish')) {
      +            /** 重新发布已经存在的文章 */
      +            $contents['type'] = 'post';
      +            $this->publish($contents);
      +
      +            /** 发送ping */
      +            $trackback = array_unique(preg_split("/(\r|\n|\r\n)/", trim($this->request->trackback)));
      +            $this->widget('Widget_Service')->sendPing($this->cid, $trackback);
      +
      +            /** 设置提示信息 */
      +            $this->widget('Widget_Notice')->set('publish' == $this->status ?
      +            _t('文章 "<a href="%s">%s</a>" 已经发布', $this->permalink, $this->title) :
      +            _t('文章 "%s" 等待审核', $this->title), NULL, 'success');
      +
      +            /** 设置高亮 */
      +            $this->widget('Widget_Notice')->highlight($this->theId);
      +
      +            /** 获取页面偏移 */
      +            $pageQuery = $this->getPageOffsetQuery($this->created);
      +
      +            /** 页面跳转 */
      +            $this->response->redirect(Typecho_Common::url('manage-posts.php?' . $pageQuery, $this->options->adminUrl));
      +        } else {
      +            /** 保存文章 */
      +            $contents['type'] = 'post_draft';
      +            $this->save($contents);
      +
      +            if ($this->request->isAjax()) {
      +                $created = new Typecho_Date($this->options->gmtTime);
      +                $this->response->throwJson(array(
      +                    'success'  =>  1,
      +                    'message'  =>  _t('文章保存于 %s', $created->format('H:i A')),
      +                    'cid'      =>  $this->cid
      +                ));
      +            } else {
      +                /** 设置提示信息 */
      +                $this->widget('Widget_Notice')->set(_t('草稿 "%s" 已经被保存', $this->title), NULL, 'success');
      +
      +                /** 返回原页面 */
      +                $this->response->redirect(Typecho_Common::url('write-post.php?cid=' . $this->cid, $this->options->adminUrl));
      +            }
      +        }
      +    }
      +
      +    /**
      +     * 删除文章
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function deletePost()
      +    {
      +        $cid = $this->request->filter('int')->cid;
      +        $deleteCount = 0;
      +
      +        if ($cid) {
      +            /** 格式化文章主键 */
      +            $posts = is_array($cid) ? $cid : array($cid);
      +            foreach ($posts as $post) {
      +
      +                $condition = $this->db->sql()->where('cid = ?', $post);
      +
      +                if ($this->isWriteable($condition) &&
      +                ($status = $this->db->fetchObject($this->db->select('status')
      +                    ->from('table.contents')->where('cid = ? AND type = ?', $post, 'post'))->status) &&
      +                $this->delete($condition)) {
      +
      +                    /** 删除分类 */
      +                    $this->setCategories($post, array(), 'publish' == $status);
      +
      +                    /** 删除标签 */
      +                    $this->setTags($post, NULL, 'publish' == $status);
      +
      +                    /** 删除评论 */
      +                    $this->db->query($this->db->delete('table.comments')
      +                    ->where('cid = ?', $post));
      +
      +                    /** 解除附件关联 */
      +                    $this->unAttach($post);
      +
      +                    /** 删除草稿 */
      +                    $draft = $this->db->fetchRow($this->db->select('cid')
      +                    ->from('table.contents')
      +                    ->where('table.contents.parent = ? AND table.contents.type = ? AND table.contents.status = ?',
      +                        $post, 'post', 'draft')
      +                    ->limit(1));
      +
      +                    if ($draft) {
      +                        $this->deleteDraft($draft['cid']);
      +                    }
      +
      +                    $deleteCount ++;
      +                }
      +
      +                unset($condition);
      +            }
      +        }
      +
      +        /** 设置提示信息 */
      +        $this->widget('Widget_Notice')->set($deleteCount > 0 ? _t('文章已经被删除') : _t('没有文章被删除'), NULL,
      +        $deleteCount > 0 ? 'success' : 'notice');
      +
      +        /** 返回原网页 */
      +        $this->response->goBack();
      +    }
      +    
      +    /**
      +     * 删除文章所属草稿
      +     * 
      +     * @access public
      +     * @return void
      +     */
      +    public function deletePostDraft()
      +    {
      +        $cid = $this->request->filter('int')->cid;
      +        $deleteCount = 0;
      +        
      +        if ($cid) {
      +            /** 格式化文章主键 */
      +            $posts = is_array($cid) ? $cid : array($cid);
      +            
      +            foreach ($posts as $post) {
      +                /** 删除草稿 */
      +                $draft = $this->db->fetchRow($this->db->select('cid')
      +                ->from('table.contents')
      +                ->where('table.contents.parent = ? AND table.contents.type = ?',
      +                    $post, 'post_draft')
      +                ->limit(1));
      +
      +                if ($draft) {
      +                    $this->deleteDraft($draft['cid']);
      +                    $deleteCount ++;
      +                }
      +            }
      +        }
      +        
      +        /** 设置提示信息 */
      +        $this->widget('Widget_Notice')->set($deleteCount > 0 ? _t('草稿已经被删除') : _t('没有草稿被删除'), NULL,
      +        $deleteCount > 0 ? 'success' : 'notice');
      +        
      +        /** 返回原网页 */
      +        $this->response->goBack();
      +    }
      +
      +    /**
      +     * 绑定动作
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        $this->on($this->request->is('do=publish') || $this->request->is('do=save'))->writePost();
      +        $this->on($this->request->is('do=delete'))->deletePost();
      +        $this->on($this->request->is('do=deleteDraft'))->deletePostDraft();
      +
      +        $this->response->redirect($this->options->adminUrl);
      +    }
      +}
      diff --git a/var/Widget/Contents/Post/Recent.php b/var/Widget/Contents/Post/Recent.php
      new file mode 100644
      index 00000000..c5bd24a9
      --- /dev/null
      +++ b/var/Widget/Contents/Post/Recent.php
      @@ -0,0 +1,39 @@
      +<?php
      +/**
      + * 最新文章
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 最新评论组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Contents_Post_Recent extends Widget_Abstract_Contents
      +{
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        $this->parameter->setDefault(array('pageSize' => $this->options->postsListSize));
      +
      +        $this->db->fetchAll($this->select()
      +        ->where('table.contents.status = ?', 'publish')
      +        ->where('table.contents.created < ?', $this->options->gmtTime)
      +        ->where('table.contents.type = ?', 'post')
      +        ->order('table.contents.created', Typecho_Db::SORT_DESC)
      +        ->limit($this->parameter->pageSize), array($this, 'push'));
      +    }
      +}
      diff --git a/var/Widget/Contents/Related.php b/var/Widget/Contents/Related.php
      new file mode 100644
      index 00000000..befc220a
      --- /dev/null
      +++ b/var/Widget/Contents/Related.php
      @@ -0,0 +1,61 @@
      +<?php
      +/**
      + * 相关内容
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 相关内容组件(根据标签关联)
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Contents_Related extends Widget_Abstract_Contents
      +{
      +    /**
      +     * 获取查询对象
      +     *
      +     * @access public
      +     * @return Typecho_Db_Query
      +     */
      +    public function select()
      +    {
      +        return $this->db->select('DISTINCT table.contents.cid', 'table.contents.title', 'table.contents.slug', 'table.contents.created', 'table.contents.authorId',
      +        'table.contents.modified', 'table.contents.type', 'table.contents.status', 'table.contents.text', 'table.contents.commentsNum', 'table.contents.order',
      +        'table.contents.template', 'table.contents.password', 'table.contents.allowComment', 'table.contents.allowPing', 'table.contents.allowFeed')
      +        ->from('table.contents');
      +    }
      +
      +    /**
      +     * 执行函数,初始化数据
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        $this->parameter->setDefault('limit=5');
      +
      +        if ($this->parameter->tags) {
      +            $tagsGroup = implode(',', Typecho_Common::arrayFlatten($this->parameter->tags, 'mid'));
      +            $this->db->fetchAll($this->select()
      +            ->join('table.relationships', 'table.contents.cid = table.relationships.cid')
      +            ->where('table.relationships.mid IN (' . $tagsGroup . ')')
      +            ->where('table.contents.cid <> ?', $this->parameter->cid)
      +            ->where('table.contents.status = ?', 'publish')
      +            ->where('table.contents.password IS NULL')
      +            ->where('table.contents.created < ?', $this->options->gmtTime)
      +            ->where('table.contents.type = ?', $this->parameter->type)
      +            ->order('table.contents.created', Typecho_Db::SORT_DESC)
      +            ->limit($this->parameter->limit), array($this, 'push'));
      +        }
      +    }
      +}
      diff --git a/var/Widget/Contents/Related/Author.php b/var/Widget/Contents/Related/Author.php
      new file mode 100644
      index 00000000..f803188d
      --- /dev/null
      +++ b/var/Widget/Contents/Related/Author.php
      @@ -0,0 +1,45 @@
      +<?php
      +/**
      + * 相关内容
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 相关内容组件(根据作者关联)
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Contents_Related_Author extends Widget_Abstract_Contents
      +{
      +    /**
      +     * 执行函数,初始化数据
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        $this->parameter->setDefault('limit=5');
      +
      +        if ($this->parameter->author) {
      +            $this->db->fetchAll($this->select()
      +            ->where('table.contents.authorId = ?', $this->parameter->author)
      +            ->where('table.contents.cid <> ?', $this->parameter->cid)
      +            ->where('table.contents.status = ?', 'publish')
      +            ->where('table.contents.password IS NULL')
      +            ->where('table.contents.created < ?', $this->options->gmtTime)
      +            ->where('table.contents.type = ?', $this->parameter->type)
      +            ->order('table.contents.created', Typecho_Db::SORT_DESC)
      +            ->limit($this->parameter->limit), array($this, 'push'));
      +        }
      +    }
      +}
      diff --git a/var/Widget/Do.php b/var/Widget/Do.php
      new file mode 100644
      index 00000000..c197527b
      --- /dev/null
      +++ b/var/Widget/Do.php
      @@ -0,0 +1,87 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/**
      + * 执行模块
      + *
      + * @package Widget
      + */
      +class Widget_Do extends Typecho_Widget
      +{
      +    /**
      +     * 路由映射
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_map = array(
      +        'ajax'                      =>  'Widget_Ajax',
      +        'login'                     =>  'Widget_Login',
      +        'logout'                    =>  'Widget_Logout',
      +        'register'                  =>  'Widget_Register',
      +        'upgrade'                   =>  'Widget_Upgrade',
      +        'upload'                    =>  'Widget_Upload',
      +        'service'                   =>  'Widget_Service',
      +        'xmlrpc'                    =>  'Widget_XmlRpc',
      +        'comments-edit'             =>  'Widget_Comments_Edit',
      +        'contents-page-edit'        =>  'Widget_Contents_Page_Edit',
      +        'contents-post-edit'        =>  'Widget_Contents_Post_Edit',
      +        'contents-attachment-edit'  =>  'Widget_Contents_Attachment_Edit',
      +        'metas-category-edit'       =>  'Widget_Metas_Category_Edit',
      +        'metas-tag-edit'            =>  'Widget_Metas_Tag_Edit',
      +        'metas-tag-edit'            =>  'Widget_Metas_Tag_Edit',
      +        'options-discussion'        =>  'Widget_Options_Discussion',
      +        'options-general'           =>  'Widget_Options_General',
      +        'options-permalink'         =>  'Widget_Options_Permalink',
      +        'options-reading'           =>  'Widget_Options_Reading',
      +        'plugins-edit'              =>  'Widget_Plugins_Edit',
      +        'themes-edit'               =>  'Widget_Themes_Edit',
      +        'users-edit'                =>  'Widget_Users_Edit',
      +        'users-profile'             =>  'Widget_Users_Profile'
      +    );
      +
      +    /**
      +     * 入口函数,初始化路由器
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        /** 验证路由地址 **/
      +        $action = $this->request->action;
      +
      +        //兼容老版本
      +        if (empty($action)) {
      +            $widget = trim($this->request->widget, '/');
      +            $objectName = 'Widget_' . str_replace('/', '_', $widget);
      +
      +            if (Typecho_Common::isAvailableClass($objectName)) {
      +                $widgetName = $objectName;
      +            }
      +        } else {
      +            /** 判断是否为plugin */
      +            $actionTable = array_merge($this->_map, unserialize($this->widget('Widget_Options')->actionTable));
      +
      +            if (isset($actionTable[$action])) {
      +                $widgetName = $actionTable[$action];
      +            }
      +        }
      +
      +        if (isset($widgetName) && class_exists($widgetName)) {
      +            $reflectionWidget =  new ReflectionClass($widgetName);
      +            if ($reflectionWidget->implementsInterface('Widget_Interface_Do')) {
      +                $this->widget($widgetName)->action();
      +                return;
      +            }
      +        }
      +
      +        throw new Typecho_Widget_Exception(_t('请求的地址不存在'), 404);
      +    }
      +}
      diff --git a/var/Widget/ExceptionHandle.php b/var/Widget/ExceptionHandle.php
      new file mode 100644
      index 00000000..0a1c72f1
      --- /dev/null
      +++ b/var/Widget/ExceptionHandle.php
      @@ -0,0 +1,33 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/**
      + * 异常处理组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_ExceptionHandle extends Widget_Archive
      +{
      +    /**
      +     * 重载构造函数
      +     *
      +     * @access public
      +     * @param Exception $excepiton 抛出的异常
      +     * @return void
      +     */
      +    public function __construct()
      +    {
      +        $this->widget('Widget_Archive@404', 'type=404')->render();
      +        exit;
      +    }
      +}
      diff --git a/var/Widget/Feedback.php b/var/Widget/Feedback.php
      new file mode 100644
      index 00000000..166d13d3
      --- /dev/null
      +++ b/var/Widget/Feedback.php
      @@ -0,0 +1,333 @@
      +<?php
      +/**
      + * 反馈提交
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 反馈提交组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Feedback extends Widget_Abstract_Comments implements Widget_Interface_Do
      +{
      +    /**
      +     * 内容对象
      +     *
      +     * @access private
      +     * @var Widget_Archive
      +     */
      +    private $_content;
      +
      +    /**
      +     * 评论处理函数
      +     *
      +     * @access private
      +     * @return void
      +     */
      +    private function comment()
      +    {
      +        $comment = array(
      +            'cid'       =>  $this->_content->cid,
      +            'created'   =>  $this->options->gmtTime,
      +            'agent'     =>  $this->request->getAgent(),
      +            'ip'        =>  $this->request->getIp(),
      +            'ownerId'   =>  $this->_content->author->uid,
      +            'type'      =>  'comment',
      +            'status'    =>  !$this->_content->allow('edit') && $this->options->commentsRequireModeration ? 'waiting' : 'approved'
      +        );
      +
      +        /** 判断父节点 */
      +        if ($parentId = $this->request->filter('int')->get('parent')) {
      +            if ($this->options->commentsThreaded && ($parent = $this->db->fetchRow($this->db->select('coid', 'cid')->from('table.comments')
      +            ->where('coid = ?', $parentId))) && $this->_content->cid == $parent['cid']) {
      +                $comment['parent'] = $parentId;
      +            } else {
      +                throw new Typecho_Widget_Exception(_t('父级评论不存在'));
      +            }
      +        }
      +
      +        //检验格式
      +        $validator = new Typecho_Validate();
      +        $validator->addRule('author', 'required', _t('必须填写用户名'));
      +        $validator->addRule('author', 'xssCheck', _t('请不要在用户名中使用特殊字符'));
      +        $validator->addRule('author', array($this, 'requireUserLogin'), _t('您所使用的用户名已经被注册,请登录后再次提交'));
      +        $validator->addRule('author', 'maxLength', _t('用户名最多包含200个字符'), 200);
      +
      +        if ($this->options->commentsRequireMail && !$this->user->hasLogin()) {
      +            $validator->addRule('mail', 'required', _t('必须填写电子邮箱地址'));
      +        }
      +
      +        $validator->addRule('mail', 'email', _t('邮箱地址不合法'));
      +        $validator->addRule('mail', 'maxLength', _t('电子邮箱最多包含200个字符'), 200);
      +
      +        if ($this->options->commentsRequireUrl && !$this->user->hasLogin()) {
      +            $validator->addRule('url', 'required', _t('必须填写个人主页'));
      +        }
      +        $validator->addRule('url', 'url', _t('个人主页地址格式错误'));
      +        $validator->addRule('url', 'maxLength', _t('个人主页地址最多包含200个字符'), 200);
      +
      +        $validator->addRule('text', 'required', _t('必须填写评论内容'));
      +
      +        $comment['text'] = $this->request->filter(array($this, 'filterText'))->text;
      +
      +        /** 对一般匿名访问者,将用户数据保存一个月 */
      +        if (!$this->user->hasLogin()) {
      +            /** Anti-XSS */
      +            $comment['author'] = $this->request->filter('trim')->author;
      +            $comment['mail'] = $this->request->filter('trim')->mail;
      +            $comment['url'] = $this->request->filter('trim')->url;
      +
      +            /** 修正用户提交的url */
      +            if (!empty($comment['url'])) {
      +                $urlParams = parse_url($comment['url']);
      +                if (!isset($urlParams['scheme'])) {
      +                    $comment['url'] = 'http://' . $comment['url'];
      +                }
      +            }
      +
      +            $expire = $this->options->gmtTime + $this->options->timezone + 30*24*3600;
      +            Typecho_Cookie::set('__typecho_remember_author', $comment['author'], $expire);
      +            Typecho_Cookie::set('__typecho_remember_mail', $comment['mail'], $expire);
      +            Typecho_Cookie::set('__typecho_remember_url', $comment['url'], $expire);
      +        } else {
      +            $comment['author'] = $this->user->screenName;
      +            $comment['mail'] = $this->user->mail;
      +            $comment['url'] = $this->user->url;
      +
      +            /** 记录登录用户的id */
      +            $comment['authorId'] = $this->user->uid;
      +        }
      +        
      +        /** 评论者之前须有评论通过了审核 */
      +        if (!$this->options->commentsRequireModeration && $this->options->commentsWhitelist) {
      +            if ($commentApprovedNum = $this->size($this->select()->where('author = ? AND mail = ? AND status = ?', $comment['author'], $comment['mail'], 'approved'))) {
      +                $comment['status'] = 'approved';
      +            } else {
      +                $comment['status'] = 'waiting';
      +            }
      +        }
      +
      +        if ($error = $validator->run($comment)) {
      +            /** 记录文字 */
      +            Typecho_Cookie::set('__typecho_remember_text', $comment['text']);
      +            throw new Typecho_Widget_Exception(implode("\n", $error));
      +        }
      +
      +        /** 生成过滤器 */
      +        try {
      +            $comment = $this->pluginHandle()->comment($comment, $this->_content);
      +        } catch (Typecho_Exception $e) {
      +            Typecho_Cookie::set('__typecho_remember_text', $comment['text']);
      +            throw $e;
      +        }
      +
      +        /** 添加评论 */
      +        $commentId = $this->insert($comment);
      +        Typecho_Cookie::delete('__typecho_remember_text');
      +        $this->db->fetchRow($this->select()->where('coid = ?', $commentId)
      +        ->limit(1), array($this, 'push'));
      +
      +        /** 评论完成接口 */
      +        $this->pluginHandle()->finishComment($this);
      +
      +        $this->response->goBack('#' . $this->theId);
      +    }
      +
      +    /**
      +     * 引用处理函数
      +     *
      +     * @access private
      +     * @return void
      +     */
      +    private function trackback()
      +    {
      +        /** 如果不是POST方法 */
      +        if (!$this->request->isPost() || $this->request->getReferer()) {
      +            $this->response->redirect($this->_content->permalink);
      +        }
      +
      +        /** 如果库中已经存在当前ip为spam的trackback则直接拒绝 */
      +        if ($this->size($this->select()
      +        ->where('status = ? AND ip = ?', 'spam', $this->request->getIp())) > 0) {
      +            /** 使用404告诉机器人 */
      +            throw new Typecho_Widget_Exception(_t('找不到内容'), 404);
      +        }
      +
      +        $trackback = array(
      +            'cid'       =>  $this->_content->cid,
      +            'created'   =>  $this->options->gmtTime,
      +            'agent'     =>  $this->request->getAgent(),
      +            'ip'        =>  $this->request->getIp(),
      +            'ownerId'   =>  $this->_content->author->uid,
      +            'type'      =>  'trackback',
      +            'status'    =>  $this->options->commentsRequireModeration ? 'waiting' : 'approved'
      +        );
      +
      +        $trackback['author'] = $this->request->filter('trim')->blog_name;
      +        $trackback['url'] = $this->request->filter('trim')->url;
      +        $trackback['text'] = $this->request->filter(array($this, 'filterText'))->excerpt;
      +
      +        //检验格式
      +        $validator = new Typecho_Validate();
      +        $validator->addRule('url', 'required', 'We require all Trackbacks to provide an url.')
      +        ->addRule('url', 'url', 'Your url is not valid.')
      +        ->addRule('url', 'maxLength', 'Your url is not valid.', 200)
      +        ->addRule('text', 'required', 'We require all Trackbacks to provide an excerption.')
      +        ->addRule('author', 'required', 'We require all Trackbacks to provide an blog name.')
      +        ->addRule('author', 'xssCheck', 'Your blog name is not valid.')
      +        ->addRule('author', 'maxLength', 'Your blog name is not valid.', 200);
      +
      +        $validator->setBreak();
      +        if ($error = $validator->run($trackback)) {
      +            $message = array('success' => 1, 'message' => current($error));
      +            $this->response->throwXml($message);
      +        }
      +
      +        /** 截取长度 */
      +        $trackback['text'] = Typecho_Common::subStr($trackback['text'], 0, 100, '[...]');
      +
      +        /** 如果库中已经存在重复url则直接拒绝 */
      +        if ($this->size($this->select()
      +        ->where('cid = ? AND url = ? AND type <> ?', $this->_content->cid, $trackback['url'], 'comment')) > 0) {
      +            /** 使用403告诉机器人 */
      +            throw new Typecho_Widget_Exception(_t('禁止重复提交'), 403);
      +        }
      +
      +        /** 生成过滤器 */
      +        $trackback = $this->pluginHandle()->trackback($trackback, $this->_content);
      +
      +        /** 添加引用 */
      +        $trackbackId = $this->insert($trackback);
      +
      +        /** 评论完成接口 */
      +        $this->pluginHandle()->finishTrackback($this);
      +
      +        /** 返回正确 */
      +        $this->response->throwXml(array('success' => 0, 'message' => 'Trackback has registered.'));
      +    }
      +
      +    /**
      +     * 过滤评论内容
      +     *
      +     * @access public
      +     * @param string $text 评论内容
      +     * @return string
      +     */
      +    public function filterText($text)
      +    {
      +        $text = str_replace("\r", '', trim($text));
      +        $text = preg_replace("/\n{2,}/", "\n\n", $text);
      +
      +        return Typecho_Common::removeXSS(Typecho_Common::stripTags(
      +        $text, $this->options->commentsHTMLTagAllowed));
      +    }
      +
      +    /**
      +     * 对已注册用户的保护性检测
      +     *
      +     * @access public
      +     * @param string $userName 用户名
      +     * @return void
      +     */
      +    public function requireUserLogin($userName)
      +    {
      +        if ($this->user->hasLogin() && $this->user->screenName != $userName) {
      +            /** 当前用户名与提交者不匹配 */
      +            return false;
      +        } else if (!$this->user->hasLogin() && $this->db->fetchRow($this->db->select('uid')
      +        ->from('table.users')->where('screenName = ? OR name = ?', $userName, $userName)->limit(1))) {
      +            /** 此用户名已经被注册 */
      +            return false;
      +        }
      +
      +        return true;
      +    }
      +
      +    /**
      +     * 初始化函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        /** 回调方法 */
      +        $callback = $this->request->type;
      +        $this->_content = Typecho_Router::match($this->request->permalink);
      +
      +        /** 判断内容是否存在 */
      +        if (false !== $this->_content && $this->_content instanceof Widget_Archive &&
      +        $this->_content->have() && $this->_content->is('single') &&
      +        in_array($callback, array('comment', 'trackback'))) {
      +
      +            /** 如果文章不允许反馈 */
      +            if ('comment' == $callback) {
      +                /** 评论关闭 */
      +                if (!$this->_content->allow('comment')) {
      +                    throw new Typecho_Widget_Exception(_t('对不起,此内容的反馈被禁止.'), 403);
      +                }
      +
      +                /** 检查来源 */
      +                if ($this->options->commentsCheckReferer) {
      +                    $referer = $this->request->getReferer();
      +
      +                    if (empty($referer)) {
      +                        throw new Typecho_Widget_Exception(_t('评论来源页错误.'), 403);
      +                    }
      +
      +                    $refererPart = parse_url($referer);
      +                    $currentPart = parse_url($this->_content->permalink);
      +
      +                    if ($refererPart['host'] != $currentPart['host'] ||
      +                    0 !== strpos($refererPart['path'], $currentPart['path'])) {
      +                        
      +                        //自定义首页支持
      +                        if ('page:' . $this->_content->cid == $this->options->frontPage) {
      +                            $currentPart = parse_url(rtrim($this->options->siteUrl, '/') . '/');
      +                            
      +                            if ($refererPart['host'] != $currentPart['host'] ||
      +                            0 !== strpos($refererPart['path'], $currentPart['path'])) {
      +                                throw new Typecho_Widget_Exception(_t('评论来源页错误.'), 403);
      +                            }
      +                        } else {
      +                            throw new Typecho_Widget_Exception(_t('评论来源页错误.'), 403);
      +                        }
      +                    }
      +                }
      +
      +                /** 检查ip评论间隔 */
      +                if (!$this->user->pass('editor', true) && $this->_content->authorId != $this->user->uid &&
      +                $this->options->commentsPostIntervalEnable) {
      +                    $latestComment = $this->db->fetchRow($this->db->select('created')->from('table.comments')
      +                    ->where('cid = ?', $this->_content->cid)
      +                    ->order('created', Typecho_Db::SORT_DESC)
      +                    ->limit(1));
      +
      +                    if ($latestComment && ($this->options->gmtTime - $latestComment['created'] > 0 &&
      +                    $this->options->gmtTime - $latestComment['created'] < $this->options->commentsPostInterval)) {
      +                        throw new Typecho_Widget_Exception(_t('对不起, 您的发言过于频繁, 请稍侯再次发布.'), 403);
      +                    }
      +                }
      +            }
      +
      +            /** 如果文章不允许引用 */
      +            if ('trackback' == $callback && !$this->_content->allow('ping')) {
      +                throw new Typecho_Widget_Exception(_t('对不起,此内容的引用被禁止.'), 403);
      +            }
      +
      +            /** 调用函数 */
      +            $this->$callback();
      +        } else {
      +            throw new Typecho_Widget_Exception(_t('找不到内容'), 404);
      +        }
      +    }
      +}
      diff --git a/var/Widget/Init.php b/var/Widget/Init.php
      new file mode 100644
      index 00000000..f3e57f9b
      --- /dev/null
      +++ b/var/Widget/Init.php
      @@ -0,0 +1,70 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/**
      + * 初始化模块
      + *
      + * @package Widget
      + */
      +class Widget_Init extends Typecho_Widget
      +{
      +    /**
      +     * 入口函数,初始化路由器
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        /** 对变量赋值 */
      +        $options = $this->widget('Widget_Options');
      +
      +        /** 开始会话 */
      +        @session_start();
      +
      +        /** cookie初始化 */
      +        Typecho_Cookie::setPrefix($options->siteUrl);
      +
      +        /** 初始化charset */
      +        Typecho_Common::$charset = $options->charset;
      +
      +        /** 初始化exception */
      +        Typecho_Common::$exceptionHandle = 'Widget_ExceptionHandle';
      +
      +        /** 设置路径 */
      +        if (defined('__TYPECHO_PATHINFO_ENCODING__')) {
      +            $pathInfo = $this->request->getPathInfo(__TYPECHO_PATHINFO_ENCODING__, $options->charset);
      +        } else {
      +            $pathInfo = $this->request->getPathInfo();
      +        }
      +
      +        Typecho_Router::setPathInfo($pathInfo);
      +
      +        /** 初始化路由器 */
      +        Typecho_Router::setRoutes($options->routingTable);
      +
      +        /** 初始化插件 */
      +        Typecho_Plugin::init($options->plugins);
      +
      +        /** 初始化回执 */
      +        $this->response->setCharset($options->charset);
      +        $this->response->setContentType($options->contentType);
      +
      +        /** 默认时区 */
      +        if (function_exists("ini_get") && !ini_get("date.timezone") && function_exists("date_default_timezone_set")) {
      +            @date_default_timezone_set('UTC');
      +        }
      +
      +        /** 初始化时区 */
      +        Typecho_Date::setTimezoneOffset($options->timezone);
      +
      +        /** 监听缓冲区 */
      +        ob_start();
      +    }
      +}
      diff --git a/var/Widget/Interface/Do.php b/var/Widget/Interface/Do.php
      new file mode 100644
      index 00000000..355caf81
      --- /dev/null
      +++ b/var/Widget/Interface/Do.php
      @@ -0,0 +1,20 @@
      +<?php
      +/**
      + * 可以被Widget_Do调用的接口
      + *
      + * @package Widget
      + * @version $id$
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @author qining <magike.net@gmail.com>
      + * @license GNU General Public License 2.0
      + */
      +interface Widget_Interface_Do
      +{
      +    /**
      +     * 接口需要实现的入口函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action();
      +}
      diff --git a/var/Widget/Login.php b/var/Widget/Login.php
      new file mode 100644
      index 00000000..ee6d3e5b
      --- /dev/null
      +++ b/var/Widget/Login.php
      @@ -0,0 +1,80 @@
      +<?php
      +/**
      + * 登录动作
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 登录组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Login extends Widget_Abstract_Users implements Widget_Interface_Do
      +{
      +    /**
      +     * 初始化函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        /** 如果已经登录 */
      +        if ($this->user->hasLogin()) {
      +            /** 直接返回 */
      +            $this->response->redirect($this->options->index);
      +        }
      +
      +        /** 初始化验证类 */
      +        $validator = new Typecho_Validate();
      +        $validator->addRule('name', 'required', _t('请输入用户名'));
      +        $validator->addRule('password', 'required', _t('请输入密码'));
      +
      +        /** 截获验证异常 */
      +        if ($error = $validator->run($this->request->from('name', 'password'))) {
      +            Typecho_Cookie::set('__typecho_remember_name', $this->request->name);
      +
      +            /** 设置提示信息 */
      +            $this->widget('Widget_Notice')->set($error);
      +            $this->response->goBack();
      +        }
      +
      +        /** 开始验证用户 **/
      +        $valid = $this->user->login($this->request->name, $this->request->password,
      +        false, 1 == $this->request->remember ? $this->options->gmtTime + $this->options->timezone + 30*24*3600 : 0);
      +
      +        /** 比对密码 */
      +        if (!$valid) {
      +            /** 防止穷举,休眠3秒 */
      +            sleep(3);
      +
      +            $this->pluginHandle()->loginFail($this->user, $this->request->name,
      +            $this->request->password, 1 == $this->request->remember);
      +
      +            Typecho_Cookie::set('__typecho_remember_name', $this->request->name);
      +            $this->widget('Widget_Notice')->set(_t('用户名或密码无效'), NULL, 'error');
      +            $this->response->goBack('?referer=' . urlencode($this->request->referer));
      +        }
      +
      +        $this->pluginHandle()->loginSucceed($this->user, $this->request->name,
      +        $this->request->password, 1 == $this->request->remember);
      +
      +        /** 跳转验证后地址 */
      +        if (NULL != $this->request->referer) {
      +            $this->response->redirect($this->request->referer);
      +        } else if (!$this->user->pass('contributor', true)) {
      +            /** 不允许普通用户直接跳转后台 */
      +            $this->response->redirect($this->options->siteUrl);
      +        } else {
      +            $this->response->redirect($this->options->adminUrl);
      +        }
      +    }
      +}
      diff --git a/var/Widget/Logout.php b/var/Widget/Logout.php
      new file mode 100644
      index 00000000..76a30736
      --- /dev/null
      +++ b/var/Widget/Logout.php
      @@ -0,0 +1,34 @@
      +<?php
      +/**
      + * 登出动作
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 登出组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Logout extends Widget_Abstract_Users implements Widget_Interface_Do
      +{
      +    /**
      +     * 初始化函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        $this->user->logout();
      +        $this->pluginHandle()->logout();
      +        $this->response->goBack(NULL, $this->options->index);
      +    }
      +}
      diff --git a/var/Widget/Menu.php b/var/Widget/Menu.php
      new file mode 100644
      index 00000000..1d28b240
      --- /dev/null
      +++ b/var/Widget/Menu.php
      @@ -0,0 +1,298 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/**
      + * 后台菜单显示
      + *
      + * @package Widget
      + */
      +class Widget_Menu extends Typecho_Widget
      +{
      +    /**
      +     * 父菜单列表
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_menu = array();
      +
      +    /**
      +     * 当前父菜单
      +     *
      +     * @access private
      +     * @var integer
      +     */
      +    private $_currentParent = 1;
      +
      +    /**
      +     * 当前子菜单
      +     *
      +     * @access private
      +     * @var integer
      +     */
      +    private $_currentChild = 0;
      +
      +    /**
      +     * 当前页面
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_currentUrl;
      +
      +    /**
      +     * 全局选项
      +     *
      +     * @access protected
      +     * @var Widget_Options
      +     */
      +    protected $options;
      +
      +    /**
      +     * 用户对象
      +     *
      +     * @access protected
      +     * @var Widget_User
      +     */
      +    protected $user;
      +
      +    /**
      +     * 当前菜单标题
      +     * @var string
      +     */
      +    public $title;
      +    
      +    /**
      +     * 当前增加项目链接
      +     * @var string
      +     */
      +    public $addLink;
      +
      +    /**
      +     * 构造函数,初始化组件
      +     *
      +     * @access public
      +     * @param mixed $request request对象
      +     * @param mixed $response response对象
      +     * @param mixed $params 参数列表
      +     * @return void
      +     */
      +    public function __construct($request, $response, $params = NULL)
      +    {
      +        parent::__construct($request, $response, $params);
      +
      +        /** 初始化常用组件 */
      +        $this->options = $this->widget('Widget_Options');
      +        $this->user = $this->widget('Widget_User');
      +    }
      +
      +    /**
      +     * 执行函数,初始化菜单
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        $parentNodes = array(NULL, _t('控制台'), _t('创建'), _t('管理'), _t('设置'));
      +
      +        $childNodes =  array(
      +        array(
      +            array(_t('登录'), _t('登录到%s', $this->options->title), 'login.php', 'visitor'),
      +            array(_t('注册'), _t('注册到%s', $this->options->title), 'register.php', 'visitor')
      +        ),
      +        array(
      +            array(_t('概要'), _t('网站概要'), 'index.php', 'subscriber'),
      +            array(_t('个人设置'), _t('个人设置'), 'profile.php', 'subscriber'),
      +            array(_t('插件'), _t('插件管理'), 'plugins.php', 'administrator'),
      +            array(array('Widget_Plugins_Config', 'getMenuTitle'), array('Widget_Plugins_Config', 'getMenuTitle'), 'options-plugin.php?config=', 'administrator', true),
      +            array(_t('外观'), _t('网站外观'), 'themes.php', 'administrator'),
      +            array(array('Widget_Themes_Files', 'getMenuTitle'), array('Widget_Themes_Files', 'getMenuTitle'), 'theme-editor.php', 'administrator', true),
      +            array(array('Widget_Themes_Config', 'getMenuTitle'), array('Widget_Themes_Config', 'getMenuTitle'), 'options-theme.php', 'administrator', true),
      +            array(_t('升级'), _t('升级程序'), 'upgrade.php', 'administrator', true),
      +            array(_t('欢迎'), _t('欢迎使用'), 'welcome.php', 'subscriber', true)
      +        ),
      +        array(
      +            array(_t('撰写文章'), _t('撰写新文章'), 'write-post.php', 'contributor'),
      +            array(array('Widget_Contents_Post_Edit', 'getMenuTitle'), array('Widget_Contents_Post_Edit', 'getMenuTitle'), 'write-post.php?cid=', 'contributor', true),
      +            array(_t('创建页面'), _t('创建新页面'), 'write-page.php', 'editor'),
      +            array(array('Widget_Contents_Page_Edit', 'getMenuTitle'), array('Widget_Contents_Page_Edit', 'getMenuTitle'), 'write-page.php?cid=', 'editor', true),
      +        ),
      +        array(
      +            array(_t('文章'), _t('管理文章'), 'manage-posts.php', 'contributor', false, 'write-post.php'),
      +            array(array('Widget_Contents_Post_Admin', 'getMenuTitle'), array('Widget_Contents_Post_Admin', 'getMenuTitle'), 'manage-posts.php?uid=', 'contributor', true),
      +            array(_t('独立页面'), _t('管理独立页面'), 'manage-pages.php', 'editor', false, 'write-page.php'),
      +            array(_t('评论'), _t('管理评论'), 'manage-comments.php', 'contributor'),
      +            array(array('Widget_Comments_Admin', 'getMenuTitle'), array('Widget_Comments_Admin', 'getMenuTitle'), 'manage-comments.php?cid=', 'contributor', true),
      +            array(_t('标签和分类'), _t('标签和分类'), 'manage-metas.php', 'editor'),
      +            array(_t('附件'), _t('管理附件'), 'manage-medias.php', 'editor'),
      +            array(array('Widget_Contents_Attachment_Edit', 'getMenuTitle'), array('Widget_Contents_Attachment_Edit', 'getMenuTitle'), 'media.php?cid=', 'contributor', true),
      +            array(_t('用户'), _t('管理用户'), 'manage-users.php', 'administrator', false, 'user.php'),
      +            array(_t('新增用户'), _t('新增用户'), 'user.php', 'administrator', true),
      +            array(array('Widget_Users_Edit', 'getMenuTitle'), array('Widget_Users_Edit', 'getMenuTitle'), 'user.php?uid=', 'administrator', true),
      +        ),
      +        array(
      +            array(_t('基本'), _t('基本设置'), 'options-general.php', 'administrator'),
      +            array(_t('评论'), _t('评论设置'), 'options-discussion.php', 'administrator'),
      +            array(_t('文章'), _t('阅读设置'), 'options-reading.php', 'administrator'),
      +            array(_t('永久链接'), _t('永久链接设置'), 'options-permalink.php', 'administrator'),
      +        ));
      +
      +        /** 获取扩展菜单 */
      +        $panelTable = unserialize($this->options->panelTable);
      +        $extendingParentMenu = empty($panelTable['parent']) ? array() : $panelTable['parent'];
      +        $extendingChildMenu = empty($panelTable['child']) ? array() : $panelTable['child'];
      +        $currentUrl = $this->request->makeUriByRequest();
      +        $adminUrl = $this->options->adminUrl;
      +        $menu = array();
      +        $defaultChildeNode = array(NULL, NULL, NULL, 'administrator', false, NULL);
      +
      +        $currentUrlParts = parse_url($currentUrl);
      +        $currentUrlParams = array();
      +        if (!empty($currentUrlParts['query'])) {
      +            parse_str($currentUrlParts['query'], $currentUrlParams);
      +        }
      +
      +        foreach ($extendingParentMenu as $key => $val) {
      +            $parentNodes[10 + $key] = $val;
      +        }
      +
      +        foreach ($extendingChildMenu as $key => $val) {
      +            $childNodes[$key] = array_merge(isset($childNodes[$key]) ? $childNodes[$key] : array(), $val);
      +        }
      +
      +        foreach ($parentNodes as $key => $parentNode) {
      +            // this is a simple struct than before
      +            $children = array();
      +            $showedChildrenCount = 0;
      +            $firstUrl = NULL;
      +            
      +            foreach ($childNodes[$key] as $inKey => $childNode) {
      +                // magic merge
      +                $childNode += $defaultChildeNode;
      +                list ($name, $title, $url, $access, $hidden, $addLink) = $childNode;
      +
      +                // parse url
      +                $url = Typecho_Common::url($url, $adminUrl);
      +
      +                // compare url
      +                $urlParts = parse_url($url);
      +                $urlParams = array();
      +                if (!empty($urlParts['query'])) {
      +                    parse_str($urlParts['query'], $urlParams);
      +                }
      +
      +                $validate = true;
      +                if ($urlParts['path'] != $currentUrlParts['path']) {
      +                    $validate = false;
      +                } else {
      +                    foreach ($urlParams as $paramName => $paramValue) {
      +                        if (!isset($currentUrlParams[$paramName])) {
      +                            $validate = false;
      +                            break;
      +                        }
      +                    }
      +                }
      +
      +                if ($hidden && $validate) {
      +                    $hidden = false;
      +                }
      +
      +                if (!$hidden && !$this->user->pass($access, true)) {
      +                    $hidden = true;
      +                }
      +
      +                if (!$hidden) {
      +                    $showedChildrenCount ++;
      +
      +                    if (empty($firstUrl)) {
      +                        $firstUrl = $url;
      +                    }
      +
      +                    if (is_array($name)) {
      +                        list($widget, $method) = $name;
      +                        $name = Typecho_Widget::widget($widget)->$method();
      +                    }
      +                    
      +                    if (is_array($title)) {
      +                        list($widget, $method) = $title;
      +                        $title = Typecho_Widget::widget($widget)->$method();
      +                    }
      +                }
      +
      +                if ($validate) {
      +                    if ('visitor' != $access) {
      +                        $this->user->pass($access);
      +                    }
      +                    
      +                    $this->_currentParent = $key;
      +                    $this->_currentChild = $inKey;
      +                    $this->title = $title;
      +                    $this->addLink = $addLink;
      +                } 
      +
      +                $children[$inKey] = array(
      +                    $name,
      +                    $title,
      +                    $url,
      +                    $access,
      +                    $hidden,
      +                    $addLink
      +                );
      +            }
      +
      +            $menu[$key] = array($parentNode, $showedChildrenCount > 0, $firstUrl,$children);
      +        }
      +
      +        $this->_menu = $menu;
      +        $this->_currentUrl = $currentUrl;
      +    }
      +
      +    /**
      +     * 获取当前菜单
      +     *
      +     * @access public
      +     * @return array
      +     */
      +    public function getCurrentMenu()
      +    {
      +        return $this->_currentParent > 0 ? $this->_menu[$this->_currentParent][3][$this->_currentChild] : NULL;
      +    }
      +
      +    /**
      +     * 输出父级菜单
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function output($class = 'focus', $childClass = 'focus')
      +    {
      +        foreach ($this->_menu as $key => $node) {
      +            if (!$node[1] || !$key) {
      +                continue;
      +            }
      +
      +            echo "<dt" . ($key == $this->_currentParent ? ' class="' . $class . '"' : NULL) 
      +                . "><a href=\"{$node[2]}\" title=\"{$node[0]}\">{$node[0]}</a></dt>"
      +                . "<dd><ul>";
      +            
      +            foreach ($node[3] as $inKey => $inNode) {
      +                if ($inNode[4]) {
      +                    continue;
      +                }
      +
      +                echo "<li" . ($key == $this->_currentParent && $inKey == $this->_currentChild ? ' class="' . $childClass . '"' : NULL) .
      +                    "><a href=\"" . ($key == $this->_currentParent && $inKey == $this->_currentChild ? $this->_currentUrl : $inNode[2]) . "\" title=\"{$inNode[0]}\">{$inNode[0]}</a></li>";
      +            }
      +
      +            echo "</ul></dd>";
      +        }
      +    }
      +}
      +
      diff --git a/var/Widget/Metas/Category/Edit.php b/var/Widget/Metas/Category/Edit.php
      new file mode 100644
      index 00000000..37704ddd
      --- /dev/null
      +++ b/var/Widget/Metas/Category/Edit.php
      @@ -0,0 +1,425 @@
      +<?php
      +/**
      + * 编辑分类
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 编辑分类组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Metas_Category_Edit extends Widget_Abstract_Metas implements Widget_Interface_Do
      +{
      +    /**
      +     * 入口函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        /** 编辑以上权限 */
      +        $this->user->pass('editor');
      +    }
      +
      +    /**
      +     * 判断分类是否存在
      +     *
      +     * @access public
      +     * @param integer $mid 分类主键
      +     * @return boolean
      +     */
      +    public function categoryExists($mid)
      +    {
      +        $category = $this->db->fetchRow($this->db->select()
      +        ->from('table.metas')
      +        ->where('type = ?', 'category')
      +        ->where('mid = ?', $mid)->limit(1));
      +
      +        return $category ? true : false;
      +    }
      +
      +    /**
      +     * 判断分类名称是否存在
      +     *
      +     * @access public
      +     * @param string $name 分类名称
      +     * @return boolean
      +     */
      +    public function nameExists($name)
      +    {
      +        $select = $this->db->select()
      +        ->from('table.metas')
      +        ->where('type = ?', 'category')
      +        ->where('name = ?', $name)
      +        ->limit(1);
      +
      +        if ($this->request->mid) {
      +            $select->where('mid <> ?', $this->request->mid);
      +        }
      +
      +        $category = $this->db->fetchRow($select);
      +        return $category ? false : true;
      +    }
      +
      +    /**
      +     * 判断分类名转换到缩略名后是否合法
      +     *
      +     * @access public
      +     * @param string $name 分类名
      +     * @return boolean
      +     */
      +    public function nameToSlug($name)
      +    {
      +        if (empty($this->request->slug)) {
      +            $slug = Typecho_Common::slugName($name);
      +            if (empty($slug) || !$this->slugExists($name)) {
      +                return false;
      +            }
      +        }
      +
      +        return true;
      +    }
      +
      +    /**
      +     * 判断分类缩略名是否存在
      +     *
      +     * @access public
      +     * @param string $slug 缩略名
      +     * @return boolean
      +     */
      +    public function slugExists($slug)
      +    {
      +        $select = $this->db->select()
      +        ->from('table.metas')
      +        ->where('type = ?', 'category')
      +        ->where('slug = ?', Typecho_Common::slugName($slug))
      +        ->limit(1);
      +
      +        if ($this->request->mid) {
      +            $select->where('mid <> ?', $this->request->mid);
      +        }
      +
      +        $category = $this->db->fetchRow($select);
      +        return $category ? false : true;
      +    }
      +
      +    /**
      +     * 生成表单
      +     *
      +     * @access public
      +     * @param string $action 表单动作
      +     * @return Typecho_Widget_Helper_Form_Element
      +     */
      +    public function form($action = NULL)
      +    {
      +        /** 构建表格 */
      +        $form = new Typecho_Widget_Helper_Form(Typecho_Common::url('/action/metas-category-edit', $this->options->index),
      +        Typecho_Widget_Helper_Form::POST_METHOD);
      +
      +        /** 分类名称 */
      +        $name = new Typecho_Widget_Helper_Form_Element_Text('name', NULL, NULL, _t('分类名称*'));
      +        $form->addInput($name);
      +
      +        /** 分类缩略名 */
      +        $slug = new Typecho_Widget_Helper_Form_Element_Text('slug', NULL, NULL, _t('分类缩略名'),
      +        _t('分类缩略名用于创建友好的链接形式,建议使用字母,数字,下划线和横杠.'));
      +        $form->addInput($slug);
      +
      +        /** 分类描述 */
      +        $description =  new Typecho_Widget_Helper_Form_Element_Textarea('description', NULL, NULL,
      +        _t('分类描述'), _t('此文字用于描述分类,在有的主题中它会被显示.'));
      +        $form->addInput($description);
      +
      +        /** 分类动作 */
      +        $do = new Typecho_Widget_Helper_Form_Element_Hidden('do');
      +        $form->addInput($do);
      +
      +        /** 分类主键 */
      +        $mid = new Typecho_Widget_Helper_Form_Element_Hidden('mid');
      +        $form->addInput($mid);
      +
      +        /** 提交按钮 */
      +        $submit = new Typecho_Widget_Helper_Form_Element_Submit();
      +        $form->addItem($submit);
      +
      +        if (isset($this->request->mid) && 'insert' != $action) {
      +            /** 更新模式 */
      +            $meta = $this->db->fetchRow($this->select()
      +            ->where('mid = ?', $this->request->mid)
      +            ->where('type = ?', 'category')->limit(1));
      +
      +            if (!$meta) {
      +                throw new Typecho_Widget_Exception(_t('分类不存在'), 404);
      +            }
      +
      +            $name->value($meta['name']);
      +            $slug->value($meta['slug']);
      +            $description->value($meta['description']);
      +            $do->value('update');
      +            $mid->value($meta['mid']);
      +            $submit->value(_t('编辑分类'));
      +            $_action = 'update';
      +        } else {
      +            $do->value('insert');
      +            $submit->value(_t('增加分类'));
      +            $_action = 'insert';
      +        }
      +
      +        if (empty($action)) {
      +            $action = $_action;
      +        }
      +
      +        /** 给表单增加规则 */
      +        if ('insert' == $action || 'update' == $action) {
      +            $name->addRule('required', _t('必须填写分类名称'));
      +            $name->addRule(array($this, 'nameExists'), _t('分类名称已经存在'));
      +            $name->addRule(array($this, 'nameToSlug'), _t('分类名称无法被转换为缩略名'));
      +            $slug->addRule(array($this, 'slugExists'), _t('缩略名已经存在'));
      +        }
      +
      +        if ('update' == $action) {
      +            $mid->addRule('required', _t('分类主键不存在'));
      +            $mid->addRule(array($this, 'categoryExists'), _t('分类不存在'));
      +        }
      +
      +        return $form;
      +    }
      +
      +    /**
      +     * 增加分类
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function insertCategory()
      +    {
      +        if ($this->form('insert')->validate()) {
      +            $this->response->goBack();
      +        }
      +
      +        /** 取出数据 */
      +        $category = $this->request->from('name', 'slug', 'description');
      +        $category['slug'] = Typecho_Common::slugName(empty($category['slug']) ? $category['name'] : $category['slug']);
      +        $category['type'] = 'category';
      +        $category['order'] = $this->db->fetchObject($this->db->select(array('MAX(order)' => 'maxOrder'))
      +        ->from('table.metas')
      +        ->where('type = ?', 'category'))->maxOrder + 1;
      +
      +        /** 插入数据 */
      +        $category['mid'] = $this->insert($category);
      +        $this->push($category);
      +
      +        /** 设置高亮 */
      +        $this->widget('Widget_Notice')->highlight($this->theId);
      +
      +        /** 提示信息 */
      +        $this->widget('Widget_Notice')->set(_t('分类 <a href="%s">%s</a> 已经被增加',
      +        $this->permalink, $this->name), NULL, 'success');
      +
      +        /** 转向原页 */
      +        $this->response->redirect(Typecho_Common::url('manage-metas.php', $this->options->adminUrl));
      +    }
      +
      +    /**
      +     * 更新分类
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function updateCategory()
      +    {
      +        if ($this->form('update')->validate()) {
      +            $this->response->goBack();
      +        }
      +
      +        /** 取出数据 */
      +        $category = $this->request->from('name', 'slug', 'description');
      +        $category['slug'] = Typecho_Common::slugName(empty($category['slug']) ? $category['name'] : $category['slug']);
      +        $category['type'] = 'category';
      +
      +        /** 更新数据 */
      +        $this->update($category, $this->db->sql()->where('mid = ?', $this->request->filter('int')->mid));
      +        $category['mid'] = $this->request->mid;
      +        $this->push($category);
      +
      +        /** 设置高亮 */
      +        $this->widget('Widget_Notice')->highlight($this->theId);
      +
      +        /** 提示信息 */
      +        $this->widget('Widget_Notice')->set(_t('分类 <a href="%s">%s</a> 已经被更新',
      +        $this->permalink, $this->name), NULL, 'success');
      +
      +        /** 转向原页 */
      +        $this->response->redirect(Typecho_Common::url('manage-metas.php', $this->options->adminUrl));
      +    }
      +
      +    /**
      +     * 删除分类
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function deleteCategory()
      +    {
      +        $categories = $this->request->filter('int')->mid;
      +        $deleteCount = 0;
      +
      +        if ($categories && is_array($categories)) {
      +            foreach ($categories as $category) {
      +                if ($this->delete($this->db->sql()->where('mid = ?', $category))) {
      +                    $this->db->query($this->db->sql()->delete('table.relationships')->where('mid = ?', $category));
      +                    $deleteCount ++;
      +                }
      +            }
      +        }
      +
      +        /** 提示信息 */
      +        $this->widget('Widget_Notice')->set($deleteCount > 0 ? _t('分类已经删除') : _t('没有分类被删除'), NULL,
      +        $deleteCount > 0 ? 'success' : 'notice');
      +
      +        /** 转向原页 */
      +        $this->response->redirect(Typecho_Common::url('manage-metas.php', $this->options->adminUrl));
      +    }
      +
      +    /**
      +     * 合并分类
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function mergeCategory()
      +    {
      +        /** 验证数据 */
      +        $validator = new Typecho_Validate();
      +        $validator->addRule('merge', 'required', _t('分类主键不存在'));
      +        $validator->addRule('merge', array($this, 'categoryExists'), _t('请选择需要合并的分类'));
      +
      +        if ($validator->run($this->request->from('merge'))) {
      +            $this->widget('Widget_Notice')->set($e->getMessages(), NULL, 'error');
      +            $this->response->goBack();
      +        }
      +
      +        $merge = $this->request->merge;
      +        $categories = $this->request->filter('int')->mid;
      +
      +        if ($categories && is_array($categories)) {
      +            $this->merge($merge, 'category', $categories);
      +
      +            /** 提示信息 */
      +            $this->widget('Widget_Notice')->set(_t('分类已经合并'), NULL, 'success');
      +        } else {
      +            $this->widget('Widget_Notice')->set(_t('没有选择任何分类'), NULL, 'notice');
      +        }
      +
      +        /** 转向原页 */
      +        $this->response->goBack();
      +    }
      +
      +    /**
      +     * 分类排序
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function sortCategory()
      +    {
      +        $categories = $this->request->filter('int')->mid;
      +        if ($categories && is_array($categories)) {
      +            $this->sort($categories, 'category');
      +        }
      +
      +        if (!$this->request->isAjax()) {
      +            /** 转向原页 */
      +            $this->response->redirect(Typecho_Common::url('manage-cat.php', $this->options->adminUrl));
      +        } else {
      +            $this->response->throwJson(array('success' => 1, 'message' => _t('分类排序已经完成')));
      +        }
      +    }
      +
      +    /**
      +     * 刷新分类
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function refreshCategory()
      +    {
      +        $categories = $this->request->filter('int')->mid;
      +        if ($categories && is_array($categories)) {
      +            foreach ($categories as $category) {
      +                $this->refreshCountByTypeAndStatus($category, 'post', 'publish');
      +            }
      +
      +            $this->widget('Widget_Notice')->set(_t('分类刷新已经完成'), NULL, 'success');
      +        } else {
      +            $this->widget('Widget_Notice')->set(_t('没有选择任何分类'), NULL, 'notice');
      +        }
      +
      +        /** 转向原页 */
      +        $this->response->goBack();
      +    }
      +
      +    /**
      +     * 设置默认分类
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function defaultCategory()
      +    {
      +        /** 验证数据 */
      +        $validator = new Typecho_Validate();
      +        $validator->addRule('mid', 'required', _t('分类主键不存在'));
      +        $validator->addRule('mid', array($this, 'categoryExists'), _t('分类不存在'));
      +
      +        if ($error = $validator->run($this->request->from('mid'))) {
      +            $this->widget('Widget_Notice')->set($error, NULL, 'error');
      +        } else {
      +
      +            $this->db->query($this->db->update('table.options')
      +            ->rows(array('value' => $this->request->mid))
      +            ->where('name = ?', 'defaultCategory'));
      +
      +            $this->db->fetchRow($this->select()->where('mid = ?', $this->request->mid)
      +            ->where('type = ?', 'category')->limit(1), array($this, 'push'));
      +
      +            /** 设置高亮 */
      +            $this->widget('Widget_Notice')->highlight($this->theId);
      +
      +            /** 提示信息 */
      +            $this->widget('Widget_Notice')->set(_t('<a href="%s">%s</a> 已经被设为默认分类',
      +            $this->permalink, $this->name), NULL, 'success');
      +        }
      +
      +        /** 转向原页 */
      +        $this->response->redirect(Typecho_Common::url('manage-metas.php', $this->options->adminUrl));
      +    }
      +
      +    /**
      +     * 入口函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        $this->on($this->request->is('do=insert'))->insertCategory();
      +        $this->on($this->request->is('do=update'))->updateCategory();
      +        $this->on($this->request->is('do=delete'))->deleteCategory();
      +        $this->on($this->request->is('do=merge'))->mergeCategory();
      +        $this->on($this->request->is('do=sort'))->sortCategory();
      +        $this->on($this->request->is('do=refresh'))->refreshCategory();
      +        $this->on($this->request->is('do=default'))->defaultCategory();
      +        $this->response->redirect($this->options->adminUrl);
      +    }
      +}
      diff --git a/var/Widget/Metas/Category/List.php b/var/Widget/Metas/Category/List.php
      new file mode 100644
      index 00000000..5a97f6d8
      --- /dev/null
      +++ b/var/Widget/Metas/Category/List.php
      @@ -0,0 +1,33 @@
      +<?php
      +/**
      + * 分类输出
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 分类输出组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Metas_Category_List extends Widget_Abstract_Metas
      +{
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        $this->db->fetchAll($this->select()->where('type = ?', 'category')
      +        ->order('table.metas.order', Typecho_Db::SORT_ASC), array($this, 'push'));
      +    }
      +}
      diff --git a/var/Widget/Metas/Tag/Cloud.php b/var/Widget/Metas/Tag/Cloud.php
      new file mode 100644
      index 00000000..3d28f9b2
      --- /dev/null
      +++ b/var/Widget/Metas/Tag/Cloud.php
      @@ -0,0 +1,60 @@
      +<?php
      +/**
      + * 标签云
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 标签云组件
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Metas_Tag_Cloud extends Widget_Abstract_Metas
      +{
      +    /**
      +     * 入口函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        $this->parameter->setDefault(array('sort' => 'count', 'ignoreZeroCount' => false, 'desc' => true, 'limit' => 0));
      +        $select = $this->select()->where('type = ?', 'tag')->order($this->parameter->sort,
      +        $this->parameter->desc ? Typecho_Db::SORT_DESC : Typecho_Db::SORT_ASC);
      +
      +        /** 忽略零数量 */
      +        if ($this->parameter->ignoreZeroCount) {
      +            $select->where('count > 0');
      +        }
      +
      +        /** 总数限制 */
      +        if ($this->parameter->limit) {
      +            $select->limit($this->parameter->limit);
      +        }
      +
      +        $this->db->fetchAll($select, array($this, 'push'));
      +    }
      +
      +    /**
      +     * 按分割数输出字符串
      +     *
      +     * @access public
      +     * @param string $param 需要输出的值
      +     * @return void
      +     */
      +    public function split()
      +    {
      +        $args = func_get_args();
      +        array_unshift($args, $this->count);
      +        echo call_user_func_array(array('Typecho_Common', 'splitByCount'), $args);
      +    }
      +}
      diff --git a/var/Widget/Metas/Tag/Edit.php b/var/Widget/Metas/Tag/Edit.php
      new file mode 100644
      index 00000000..4e008b7b
      --- /dev/null
      +++ b/var/Widget/Metas/Tag/Edit.php
      @@ -0,0 +1,358 @@
      +<?php
      +/**
      + * 标签编辑
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 标签编辑组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Metas_Tag_Edit extends Widget_Abstract_Metas implements Widget_Interface_Do
      +{
      +    /**
      +     * 入口函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        /** 编辑以上权限 */
      +        $this->user->pass('editor');
      +    }
      +
      +    /**
      +     * 判断标签是否存在
      +     *
      +     * @access public
      +     * @param integer $mid 标签主键
      +     * @return boolean
      +     */
      +    public function tagExists($mid)
      +    {
      +        $tag = $this->db->fetchRow($this->db->select()
      +        ->from('table.metas')
      +        ->where('type = ?', 'tag')
      +        ->where('mid = ?', $mid)->limit(1));
      +
      +        return $tag ? true : false;
      +    }
      +
      +    /**
      +     * 判断标签名称是否存在
      +     *
      +     * @access public
      +     * @param string $name 标签名称
      +     * @return boolean
      +     */
      +    public function nameExists($name)
      +    {
      +        $select = $this->db->select()
      +        ->from('table.metas')
      +        ->where('type = ?', 'tag')
      +        ->where('name = ?', $name)
      +        ->limit(1);
      +
      +        if ($this->request->mid) {
      +            $select->where('mid <> ?', $this->request->filter('int')->mid);
      +        }
      +
      +        $tag = $this->db->fetchRow($select);
      +        return $tag ? false : true;
      +    }
      +
      +    /**
      +     * 判断标签名转换到缩略名后是否合法
      +     *
      +     * @access public
      +     * @param string $name 标签名
      +     * @return boolean
      +     */
      +    public function nameToSlug($name)
      +    {
      +        if (empty($this->request->slug)) {
      +            $slug = Typecho_Common::slugName($name);
      +            if (empty($slug) || !$this->slugExists($name)) {
      +                return false;
      +            }
      +        }
      +
      +        return true;
      +    }
      +
      +    /**
      +     * 判断标签缩略名是否存在
      +     *
      +     * @access public
      +     * @param string $slug 缩略名
      +     * @return boolean
      +     */
      +    public function slugExists($slug)
      +    {
      +        $select = $this->db->select()
      +        ->from('table.metas')
      +        ->where('type = ?', 'tag')
      +        ->where('slug = ?', Typecho_Common::slugName($slug))
      +        ->limit(1);
      +
      +        if ($this->request->mid) {
      +            $select->where('mid <> ?', $this->request->mid);
      +        }
      +
      +        $tag = $this->db->fetchRow($select);
      +        return $tag ? false : true;
      +    }
      +
      +    /**
      +     * 生成表单
      +     *
      +     * @access public
      +     * @param string $action 表单动作
      +     * @return Typecho_Widget_Helper_Form
      +     */
      +    public function form($action = NULL)
      +    {
      +        /** 构建表格 */
      +        $form = new Typecho_Widget_Helper_Form(Typecho_Common::url('/action/metas-tag-edit', $this->options->index),
      +        Typecho_Widget_Helper_Form::POST_METHOD);
      +
      +        /** 标签名称 */
      +        $name = new Typecho_Widget_Helper_Form_Element_Text('name', NULL, NULL,
      +        _t('标签名称*'), _t('这是标签在站点中显示的名称.可以使用中文,如"地球".'));
      +        $form->addInput($name);
      +
      +        /** 标签缩略名 */
      +        $slug = new Typecho_Widget_Helper_Form_Element_Text('slug', NULL, NULL,
      +        _t('标签缩略名'), _t('标签缩略名用于创建友好的链接形式,如果留空则默认使用标签名称.'));
      +        $form->addInput($slug);
      +
      +        /** 标签动作 */
      +        $do = new Typecho_Widget_Helper_Form_Element_Hidden('do');
      +        $form->addInput($do);
      +
      +        /** 标签主键 */
      +        $mid = new Typecho_Widget_Helper_Form_Element_Hidden('mid');
      +        $form->addInput($mid);
      +
      +        /** 提交按钮 */
      +        $submit = new Typecho_Widget_Helper_Form_Element_Submit();
      +        $form->addItem($submit);
      +
      +        if (isset($this->request->mid) && 'insert' != $action) {
      +            /** 更新模式 */
      +            $meta = $this->db->fetchRow($this->select()
      +            ->where('mid = ?', $this->request->mid)
      +            ->where('type = ?', 'tag')->limit(1));
      +
      +            if (!$meta) {
      +                throw new Typecho_Widget_Exception(_t('标签不存在'), 404);
      +            }
      +
      +            $name->value($meta['name']);
      +            $slug->value($meta['slug']);
      +            $do->value('update');
      +            $mid->value($meta['mid']);
      +            $submit->value(_t('编辑标签'));
      +            $_action = 'update';
      +        } else {
      +            $do->value('insert');
      +            $submit->value(_t('增加标签'));
      +            $_action = 'insert';
      +        }
      +
      +        if (empty($action)) {
      +            $action = $_action;
      +        }
      +
      +        /** 给表单增加规则 */
      +        if ('insert' == $action || 'update' == $action) {
      +            $name->addRule('required', _t('必须填写标签名称'));
      +            $name->addRule(array($this, 'nameExists'), _t('标签名称已经存在'));
      +            $name->addRule(array($this, 'nameToSlug'), _t('标签名称无法被转换为缩略名'));
      +            $slug->addRule(array($this, 'slugExists'), _t('缩略名已经存在'));
      +        }
      +
      +        if ('update' == $action) {
      +            $mid->addRule('required', _t('标签主键不存在'));
      +            $mid->addRule(array($this, 'tagExists'), _t('标签不存在'));
      +        }
      +
      +        return $form;
      +    }
      +
      +    /**
      +     * 插入标签
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function insertTag()
      +    {
      +        if ($this->form('insert')->validate()) {
      +            $this->response->goBack();
      +        }
      +
      +        /** 取出数据 */
      +        $tag = $this->request->from('name', 'slug');
      +        $tag['type'] = 'tag';
      +        $tag['slug'] = Typecho_Common::slugName(empty($tag['slug']) ? $tag['name'] : $tag['slug']);
      +
      +        /** 插入数据 */
      +        $tag['mid'] = $this->insert($tag);
      +        $this->push($tag);
      +
      +        /** 设置高亮 */
      +        $this->widget('Widget_Notice')->highlight($this->theId);
      +
      +        /** 提示信息 */
      +        $this->widget('Widget_Notice')->set(_t('标签 <a href="%s">%s</a> 已经被增加',
      +        $this->permalink, $this->name), NULL, 'success');
      +
      +        /** 转向原页 */
      +        $this->response->redirect(Typecho_Common::url('manage-metas.php?type=tag', $this->options->adminUrl));
      +    }
      +
      +    /**
      +     * 更新标签
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function updateTag()
      +    {
      +        if ($this->form('update')->validate()) {
      +            $this->response->goBack();
      +        }
      +
      +        /** 取出数据 */
      +        $tag = $this->request->from('name', 'slug', 'mid');
      +        $tag['type'] = 'tag';
      +        $tag['slug'] = Typecho_Common::slugName(empty($tag['slug']) ? $tag['name'] : $tag['slug']);
      +
      +        /** 更新数据 */
      +        $this->update($tag, $this->db->sql()->where('mid = ?', $this->request->filter('int')->mid));
      +        $this->push($tag);
      +
      +        /** 设置高亮 */
      +        $this->widget('Widget_Notice')->highlight($this->theId);
      +
      +        /** 提示信息 */
      +        $this->widget('Widget_Notice')->set(_t('标签 <a href="%s">%s</a> 已经被更新',
      +        $this->permalink, $this->name), NULL, 'success');
      +
      +        /** 转向原页 */
      +        $this->response->redirect(Typecho_Common::url('manage-metas.php?type=tag', $this->options->adminUrl));
      +    }
      +
      +    /**
      +     * 删除标签
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function deleteTag()
      +    {
      +        $tags = $this->request->filter('int')->mid;
      +        $deleteCount = 0;
      +
      +        if ($tags && is_array($tags)) {
      +            foreach ($tags as $tag) {
      +                if ($this->delete($this->db->sql()->where('mid = ?', $tag))) {
      +                    $this->db->query($this->db->delete('table.relationships')->where('mid = ?', $tag));
      +                    $deleteCount ++;
      +                }
      +            }
      +        }
      +
      +        /** 提示信息 */
      +        $this->widget('Widget_Notice')->set($deleteCount > 0 ? _t('标签已经删除') : _t('没有标签被删除'), NULL,
      +        $deleteCount > 0 ? 'success' : 'notice');
      +
      +        /** 转向原页 */
      +        $this->response->redirect(Typecho_Common::url('manage-metas.php?type=tag', $this->options->adminUrl));
      +    }
      +
      +    /**
      +     * 合并标签
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function mergeTag()
      +    {
      +        if (empty($this->request->merge)) {
      +            $this->widget('Widget_Notice')->set(_t('请填写需要合并到的标签'), NULL, 'notice');
      +            $this->response->goBack();
      +        }
      +
      +        $merge = $this->scanTags($this->request->merge);
      +        if (empty($merge)) {
      +            $this->widget('Widget_Notice')->set(_t('合并到的标签名不合法'), NULL, 'error');
      +            $this->response->goBack();
      +        }
      +
      +        $tags = $this->request->filter('int')->mid;
      +
      +        if ($tags && is_array($tags)) {
      +            $this->merge($merge, 'tag', $tags);
      +
      +            /** 提示信息 */
      +            $this->widget('Widget_Notice')->set(_t('标签已经合并'), NULL, 'success');
      +        } else {
      +            $this->widget('Widget_Notice')->set(_t('没有选择任何标签'), NULL, 'notice');
      +        }
      +
      +        /** 转向原页 */
      +        $this->response->redirect(Typecho_Common::url('manage-metas.php?type=tag', $this->options->adminUrl));
      +    }
      +
      +    /**
      +     * 刷新标签
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function refreshTag()
      +    {
      +        $tags = $this->request->filter('int')->mid;
      +        if ($tags && is_array($tags)) {
      +            foreach ($tags as $tag) {
      +                $this->refreshCountByTypeAndStatus($tag, 'post', 'publish');
      +            }
      +
      +            $this->widget('Widget_Notice')->set(_t('标签刷新已经完成'), NULL, 'success');
      +        } else {
      +            $this->widget('Widget_Notice')->set(_t('没有选择任何标签'), NULL, 'notice');
      +        }
      +
      +        /** 转向原页 */
      +        $this->response->goBack();
      +    }
      +
      +    /**
      +     * 入口函数,绑定事件
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        $this->on($this->request->is('do=insert'))->insertTag();
      +        $this->on($this->request->is('do=update'))->updateTag();
      +        $this->on($this->request->is('do=delete'))->deleteTag();
      +        $this->on($this->request->is('do=merge'))->mergeTag();
      +        $this->on($this->request->is('do=refresh'))->refreshTag();
      +        $this->response->redirect($this->options->adminUrl);
      +    }
      +}
      diff --git a/var/Widget/Notice.php b/var/Widget/Notice.php
      new file mode 100644
      index 00000000..b0af5c09
      --- /dev/null
      +++ b/var/Widget/Notice.php
      @@ -0,0 +1,153 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id: Widget.php 48 2008-03-16 02:51:40Z magike.net $
      + */
      +
      +/**
      + * 提示框组件
      + *
      + * @package Widget
      + */
      +class Widget_Notice extends Typecho_Widget
      +{
      +    /**
      +     * 提示类型
      +     *
      +     * @access public
      +     * @var string
      +     */
      +    public $noticeType = 'notice';
      +
      +    /**
      +     * 提示高亮
      +     *
      +     * @access public
      +     * @var string
      +     */
      +    public $highlight;
      +
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        if (NULL !== Typecho_Cookie::get('__typecho_notice')) {
      +            $this->noticeType = Typecho_Cookie::get('__typecho_notice_type');
      +            $this->push(Typecho_Cookie::get('__typecho_notice'));
      +            Typecho_Cookie::delete('__typecho_notice', $this->widget('Widget_Options')->siteUrl);
      +            Typecho_Cookie::delete('__typecho_notice_type', $this->widget('Widget_Options')->siteUrl);
      +        }
      +
      +        if (NULL !== Typecho_Cookie::get('__typecho_notice_highlight')) {
      +            $this->highlight = Typecho_Cookie::get('__typecho_notice_highlight');
      +            Typecho_Cookie::delete('__typecho_notice_highlight', $this->widget('Widget_Options')->siteUrl);
      +        }
      +    }
      +
      +    /**
      +     * 输出提示类型
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function noticeType()
      +    {
      +        echo $this->noticeType;
      +    }
      +
      +    /**
      +     * 列表显示所有提示内容
      +     *
      +     * @access public
      +     * @param string $tag 列表html标签
      +     * @return void
      +     */
      +    public function lists($tag = 'li')
      +    {
      +        foreach ($this->row as $row) {
      +            echo "<$tag>" . $row . "</$tag>";
      +        }
      +    }
      +
      +    /**
      +     * 显示相应提示字段
      +     *
      +     * @access public
      +     * @param string $name 字段名称
      +     * @param string $format 字段格式
      +     * @return void
      +     */
      +    public function display($name, $format = '%s')
      +    {
      +        echo empty($this->row[$name]) ? NULL :
      +        ((false === strpos($format, '%s')) ? $format : sprintf($format, $this->row[$name]));
      +    }
      +
      +    /**
      +     * 高亮相关元素
      +     *
      +     * @access public
      +     * @param string $theId 需要高亮元素的id
      +     * @return void
      +     */
      +    public function highlight($theId)
      +    {
      +        $this->highlight = $theId;
      +        Typecho_Cookie::set('__typecho_notice_highlight', $theId,
      +        $this->widget('Widget_Options')->gmtTime + $this->widget('Widget_Options')->timezone + 86400,
      +        $this->widget('Widget_Options')->siteUrl);
      +    }
      +
      +    /**
      +     * 获取高亮的id
      +     *
      +     * @access public
      +     * @return integer
      +     */
      +    public function getHighlightId()
      +    {
      +        return preg_match("/[0-9]+/", $this->highlight, $matches) ? $matches[0] : 0;
      +    }
      +
      +    /**
      +     * 设定堆栈每一行的值
      +     *
      +     * @param string $name 值对应的键值
      +     * @param mixed $name 相应的值
      +     * @param string $type 提示类型
      +     * @return array
      +     */
      +    public function set($name, $value = NULL, $type = 'notice')
      +    {
      +        $notice = array();
      +
      +        if (is_array($name)) {
      +            foreach ($name as $key => $row) {
      +                $notice[$key] = $row;
      +            }
      +        } else {
      +            if (empty($value)) {
      +                $notice[] = $name;
      +            } else {
      +                $notice[$name] = $value;
      +            }
      +        }
      +
      +        $this->noticeType = $type;
      +        $this->push($notice);
      +
      +        Typecho_Cookie::set('__typecho_notice', $notice,
      +        $this->widget('Widget_Options')->gmtTime + $this->widget('Widget_Options')->timezone + 86400,
      +        $this->widget('Widget_Options')->siteUrl);
      +        Typecho_Cookie::set('__typecho_notice_type', $type,
      +        $this->widget('Widget_Options')->gmtTime + $this->widget('Widget_Options')->timezone + 86400,
      +        $this->widget('Widget_Options')->siteUrl);
      +    }
      +}
      diff --git a/var/Widget/Options.php b/var/Widget/Options.php
      new file mode 100644
      index 00000000..93bacf65
      --- /dev/null
      +++ b/var/Widget/Options.php
      @@ -0,0 +1,500 @@
      +<?php
      +/**
      + * 全局选项
      + *
      + * @link typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 全局选项组件
      + *
      + * @link typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Options extends Typecho_Widget
      +{
      +    /**
      +     * 缓存的插件配置
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_pluginConfig = array();
      +
      +    /**
      +     * 缓存的个人插件配置
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_personalPluginConfig = array();
      +
      +    /**
      +     * 数据库对象
      +     *
      +     * @access protected
      +     * @var Typecho_Db
      +     */
      +    protected $db;
      +
      +    /**
      +     * 构造函数,初始化组件
      +     *
      +     * @access public
      +     * @param mixed $request request对象
      +     * @param mixed $response response对象
      +     * @param mixed $params 参数列表
      +     * @return void
      +     */
      +    public function __construct($request, $response, $params = NULL)
      +    {
      +        parent::__construct($request, $response, $params);
      +
      +        /** 初始化数据库 */
      +        $this->db = Typecho_Db::get();
      +    }
      +
      +    /**
      +     * RSS2.0
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___feedUrl()
      +    {
      +        return Typecho_Router::url('feed', array('feed' => '/'), $this->index);
      +    }
      +
      +    /**
      +     * RSS1.0
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___feedRssUrl()
      +    {
      +        return Typecho_Router::url('feed', array('feed' => '/rss/'), $this->index);
      +    }
      +
      +    /**
      +     * ATOM1.O
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___feedAtomUrl()
      +    {
      +        return Typecho_Router::url('feed', array('feed' => '/atom/'), $this->index);
      +    }
      +
      +    /**
      +     * 评论RSS2.0聚合
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___commentsFeedUrl()
      +    {
      +        return Typecho_Router::url('feed', array('feed' => '/comments/'), $this->index);
      +    }
      +
      +    /**
      +     * 评论RSS1.0聚合
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___commentsFeedRssUrl()
      +    {
      +        return Typecho_Router::url('feed', array('feed' => '/rss/comments/'), $this->index);
      +    }
      +
      +    /**
      +     * 评论ATOM1.0聚合
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___commentsFeedAtomUrl()
      +    {
      +        return Typecho_Router::url('feed', array('feed' => '/atom/comments/'), $this->index);
      +    }
      +
      +    /**
      +     * xmlrpc api地址
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___xmlRpcUrl()
      +    {
      +        return Typecho_Router::url('do', array('action' => 'xmlrpc'), $this->index);
      +    }
      +
      +    /**
      +     * 获取解析路径前缀
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___index()
      +    {
      +        return $this->rewrite ? $this->siteUrl : Typecho_Common::url('index.php', $this->siteUrl);
      +    }
      +
      +    /**
      +     * 获取模板路径
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___themeUrl()
      +    {
      +        return Typecho_Common::url(__TYPECHO_THEME_DIR__ . '/' . $this->theme, $this->siteUrl);
      +    }
      +
      +    /**
      +     * 获取插件路径
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___pluginUrl()
      +    {
      +        return Typecho_Common::url(__TYPECHO_PLUGIN_DIR__, $this->siteUrl);
      +    }
      +
      +    /**
      +     * 获取后台路径
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___adminUrl()
      +    {
      +        return Typecho_Common::url(defined('__TYPECHO_ADMIN_DIR__') ?
      +        __TYPECHO_ADMIN_DIR__ : '/admin/', $this->siteUrl);
      +    }
      +
      +    /**
      +     * 获取登录地址
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___loginUrl()
      +    {
      +        return Typecho_Common::url('login.php', $this->adminUrl);
      +    }
      +
      +    /**
      +     * 获取登录提交地址
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___loginAction()
      +    {
      +        return Typecho_Router::url('do', array('action' => 'login', 'widget' => 'Login'),
      +        Typecho_Common::url('index.php', $this->siteUrl));
      +    }
      +
      +    /**
      +     * 获取注册地址
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___registerUrl()
      +    {
      +        return Typecho_Common::url('register.php', $this->adminUrl);
      +    }
      +
      +    /**
      +     * 获取登录提交地址
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___registerAction()
      +    {
      +        return Typecho_Router::url('do', array('action' => 'register', 'widget' => 'Register'), $this->index);
      +    }
      +
      +    /**
      +     * 获取个人档案地址
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___profileUrl()
      +    {
      +        return Typecho_Common::url('profile.php', $this->adminUrl);
      +    }
      +
      +    /**
      +     * 获取登出地址
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___logoutUrl()
      +    {
      +        return Typecho_Common::url('/action/logout', $this->index);
      +    }
      +
      +    /**
      +     * 获取系统时区
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___serverTimezone()
      +    {
      +        return Typecho_Date::$serverTimezoneOffset;
      +    }
      +
      +    /**
      +     * 获取格林尼治标准时间
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___gmtTime()
      +    {
      +        return Typecho_Date::gmtTime();
      +    }
      +
      +    /**
      +     * 获取格式
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___contentType()
      +    {
      +        return isset($this->contentType) ? $this->contentType : 'text/html';
      +    }
      +    
      +    /**
      +     * 软件名称
      +     * 
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___software()
      +    {
      +        list($software, $version) = explode(' ', $this->generator);
      +        return $software;
      +    }
      +    
      +    /**
      +     * 软件版本
      +     * 
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___version()
      +    {
      +        list($software, $version) = explode(' ', $this->generator);
      +        return $version;
      +    }
      +    
      +    /**
      +     * 允许上传的文件类型
      +     * 
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___allowedAttachmentTypes()
      +    {
      +        $attachmentTypesResult = array();
      +    
      +        if (NULL != $this->attachmentTypes) {
      +            $attachmentTypes = str_replace(
      +                array('@image@', '@media@', '@doc@'), 
      +                array('gif,jpg,png,tiff,bmp', 'mp3,wmv,wma,rmvb,rm,avi,flv',
      +                    'txt,doc,docx,xls,xlsx,ppt,pptx,zip,rar,pdf'), $this->attachmentTypes);
      +            
      +            $attachmentTypesResult = array_unique(array_map('trim', explode(',', $attachmentTypes)));
      +        }
      +        
      +        return $attachmentTypesResult;
      +    }
      +
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        $this->db->fetchAll($this->db->select()->from('table.options')
      +        ->where('user = 0'), array($this, 'push'));
      +        
      +        /** 支持皮肤变量重载 */
      +        if (!empty($this->row['theme:' . $this->row['theme']])) {
      +            $themeOptions = NULL;
      +        
      +            /** 解析变量 */
      +            if ($themeOptions = unserialize($this->row['theme:' . $this->row['theme']])) {
      +                /** 覆盖变量 */
      +                $this->row = array_merge($this->row, $themeOptions);
      +            }
      +        }
      +        
      +        $this->stack[] = &$this->row;
      +
      +        /** 初始化站点信息 */
      +        $this->siteUrl = Typecho_Common::url(NULL, $this->siteUrl);
      +        $this->plugins = unserialize($this->plugins);
      +        
      +        /** 增加对SSL连接的支持 */
      +        if ($this->request->isSecure() && 0 === strpos($this->siteUrl, 'http://')) {
      +            $this->siteUrl = substr_replace($this->siteUrl, 'https', 0, 4);
      +        }
      +
      +        /** 自动初始化路由表 */
      +        $this->routingTable = unserialize($this->routingTable);
      +        if (!isset($this->routingTable[0])) {
      +            /** 解析路由并缓存 */
      +            $parser = new Typecho_Router_Parser($this->routingTable);
      +            $parsedRoutingTable = $parser->parse();
      +            $this->routingTable = array_merge(array($parsedRoutingTable), $this->routingTable);
      +            $this->db->query($this->db->update('table.options')->rows(array('value' => serialize($this->routingTable)))
      +            ->where('name = ?', 'routingTable'));
      +        }
      +    }
      +
      +    /**
      +     * 重载父类push函数,将所有变量值压入堆栈
      +     *
      +     * @access public
      +     * @param array $value 每行的值
      +     * @return array
      +     */
      +    public function push(array $value)
      +    {
      +        //将行数据按顺序置位
      +        $this->row[$value['name']] = $value['value'];
      +        return $value;
      +    }
      +
      +    /**
      +     * 输出网站路径
      +     *
      +     * @access public
      +     * @param string $path 子路径
      +     * @return void
      +     */
      +    public function siteUrl($path = NULL)
      +    {
      +        echo Typecho_Common::url($path, $this->siteUrl);
      +    }
      +
      +    /**
      +     * 输出解析地址
      +     *
      +     * @access public
      +     * @param string $path 子路径
      +     * @return void
      +     */
      +    public function index($path = NULL)
      +    {
      +        echo Typecho_Common::url($path, $this->index);
      +    }
      +
      +    /**
      +     * 输出模板路径
      +     *
      +     * @access public
      +     * @param string $path 子路径
      +     * @return void
      +     */
      +    public function themeUrl($path = NULL)
      +    {
      +        echo Typecho_Common::url($path, $this->themeUrl);
      +    }
      +
      +    /**
      +     * 输出插件路径
      +     *
      +     * @access public
      +     * @param string $path 子路径
      +     * @return void
      +     */
      +    public function pluginUrl($path = NULL)
      +    {
      +        echo Typecho_Common::url($path, $this->pluginUrl);
      +    }
      +
      +    /**
      +     * 输出后台路径
      +     *
      +     * @access public
      +     * @param string $path 子路径
      +     * @return void
      +     */
      +    public function adminUrl($path = NULL)
      +    {
      +        echo Typecho_Common::url($path, $this->adminUrl);
      +    }
      +
      +    /**
      +     * 编码输出允许出现在评论中的html标签
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function commentsHTMLTagAllowed()
      +    {
      +        echo htmlspecialchars($this->commentsHTMLTagAllowed);
      +    }
      +
      +    /**
      +     * 获取插件系统参数
      +     *
      +     * @param mixed $pluginName 插件名称
      +     * @return void
      +     */
      +    public function plugin($pluginName)
      +    {
      +        if (!isset($this->_pluginConfig[$pluginName])) {
      +            if (!empty($this->row['plugin:' . $pluginName])
      +            && false !== ($options = unserialize($this->row['plugin:' . $pluginName]))) {
      +                $this->_pluginConfig[$pluginName] = new Typecho_Config($options);
      +            } else {
      +                throw new Typecho_Plugin_Exception(_t('插件%s的配置信息没有找到', $pluginName), 500);
      +            }
      +        }
      +
      +        return $this->_pluginConfig[$pluginName];
      +    }
      +
      +    /**
      +     * 获取个人插件系统参数
      +     *
      +     * @param mixed $pluginName 插件名称
      +     * @return void
      +     */
      +    public function personalPlugin($pluginName)
      +    {
      +        if (!isset($this->_personalPluginConfig[$pluginName])) {
      +            if (!empty($this->row['_plugin:' . $pluginName])
      +            && false !== ($options = unserialize($this->row['_plugin:' . $pluginName]))) {
      +                $this->_personalPluginConfig[$pluginName] = new Typecho_Config($options);
      +            } else {
      +                throw new Typecho_Plugin_Exception(_t('插件%s的配置信息没有找到', $pluginName), 500);
      +            }
      +        }
      +
      +        return $this->_personalPluginConfig[$pluginName];
      +    }
      +}
      diff --git a/var/Widget/Options/Discussion.php b/var/Widget/Options/Discussion.php
      new file mode 100644
      index 00000000..472b63f2
      --- /dev/null
      +++ b/var/Widget/Options/Discussion.php
      @@ -0,0 +1,229 @@
      +<?php
      +/**
      + * 评论设置
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 评论设置组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Options_Discussion extends Widget_Abstract_Options implements Widget_Interface_Do
      +{
      +    /**
      +     * 输出表单结构
      +     *
      +     * @access public
      +     * @return Typecho_Widget_Helper_Form
      +     */
      +    public function form()
      +    {
      +        /** 构建表格 */
      +        $form = new Typecho_Widget_Helper_Form(Typecho_Common::url('/action/options-discussion', $this->options->index),
      +        Typecho_Widget_Helper_Form::POST_METHOD);
      +
      +        /** 评论日期格式 */
      +        $commentDateFormat = new Typecho_Widget_Helper_Form_Element_Text('commentDateFormat', NULL, $this->options->commentDateFormat,
      +        _t('评论日期格式'), _t('这是一个默认的格式,当你在模板中调用显示评论日期方法时, 如果没有指定日期格式, 将按照此格式输出.<br />
      +        具体写法请参考<a href="http://cn.php.net/manual/zh/function.date.php">PHP日期格式写法</a>.'));
      +        $form->addInput($commentDateFormat);
      +
      +        /** 评论列表数目 */
      +        $commentsListSize = new Typecho_Widget_Helper_Form_Element_Text('commentsListSize', NULL, $this->options->commentsListSize,
      +        _t('评论列表数目'), _t('此数目用于指定显示在侧边栏中的评论列表数目.'));
      +        $commentsListSize->input->setAttribute('class', 'mini');
      +        $form->addInput($commentsListSize->addRule('isInteger', _t('请填入一个数字')));
      +
      +        $commentsShowOptions = array(
      +            'commentsShowCommentOnly'   =>  _t('仅显示评论, 不显示Pingback和Trackback'),
      +            'commentsShowUrl'       =>  _t('评论者名称显示时自动加上其个人主页链接'),
      +            'commentsUrlNofollow'   =>  _t('对评论者个人主页链接使用<a href="http://en.wikipedia.org/wiki/Nofollow">nofollow属性</a>'),
      +            'commentsAvatar'        =>  _t('启用<a href="http://gravatar.com">Gravatar</a>头像服务, 最高显示评级为 %s 的头像',
      +            '</label><select id="commentsShow-commentsAvatarRating" name="commentsAvatarRating">
      +            <option value="G"' . ('G' == $this->options->commentsAvatarRating ? ' selected="true"' : '') . '>G - 普通</option>
      +            <option value="PG"' . ('PG' == $this->options->commentsAvatarRating ? ' selected="true"' : '') . '>PG - 13岁以上</option>
      +            <option value="R"' . ('R' == $this->options->commentsAvatarRating ? ' selected="true"' : '') . '>R - 17岁以上成人</option>
      +            <option value="X"' . ('X' == $this->options->commentsAvatarRating ? ' selected="true"' : '') . '>X - 限制级</option></select>
      +            <label for="commentsShow-commentsAvatarRating">'),
      +            'commentsPageBreak'     =>  _t('启用分页, 并且每页显示 %s 篇评论, 在列出时将 %s 作为默认显示',
      +            '</label><input type="text" value="' . $this->options->commentsPageSize
      +            . '" class="text num" id="commentsShow-commentsPageSize" name="commentsPageSize" /><label for="commentsShow-commentsPageSize">',
      +            '</label><select id="commentsShow-commentsPageDisplay" name="commentsPageDisplay">
      +            <option value="first"' . ('first' == $this->options->commentsPageDisplay ? ' selected="true"' : '') . '>' . _t('第一页') . '</option>
      +            <option value="last"' . ('last' == $this->options->commentsPageDisplay ? ' selected="true"' : '') . '>' . _t('最后一页') . '</option></select>'
      +            . '<label for="commentsShow-commentsPageDisplay">'),
      +            'commentsThreaded'      =>  _t('启用评论回复, 以 %s 层作为每个评论最多的回复层数',
      +            '</label><input name="commentsMaxNestingLevels" type="text" class="text num" value="' . $this->options->commentsMaxNestingLevels . '" id="commentsShow-commentsMaxNestingLevels" />
      +            <label for="commentsShow-commentsMaxNestingLevels">') . '</label></span><span class="multiline">'
      +            . _t('将 %s 的评论显示在前面', '<select id="commentsShow-commentsOrder" name="commentsOrder">
      +            <option value="DESC"' . ('DESC' == $this->options->commentsOrder ? ' selected="true"' : '') . '>' . _t('较新的') . '</option>
      +            <option value="ASC"' . ('ASC' == $this->options->commentsOrder ? ' selected="true"' : '') . '>' . _t('较旧的') . '</option></select><label for="commentsShow-commentsOrder">')
      +        );
      +
      +        $commentsShowOptionsValue = array();
      +        if ($this->options->commentsShowCommentOnly) {
      +            $commentsShowOptionsValue[] = 'commentsShowCommentOnly';
      +        }
      +
      +        if ($this->options->commentsShowUrl) {
      +            $commentsShowOptionsValue[] = 'commentsShowUrl';
      +        }
      +
      +        if ($this->options->commentsUrlNofollow) {
      +            $commentsShowOptionsValue[] = 'commentsUrlNofollow';
      +        }
      +        
      +        if ($this->options->commentsAvatar) {
      +            $commentsShowOptionsValue[] = 'commentsAvatar';
      +        }
      +
      +        if ($this->options->commentsPageBreak) {
      +            $commentsShowOptionsValue[] = 'commentsPageBreak';
      +        }
      +
      +        if ($this->options->commentsThreaded) {
      +            $commentsShowOptionsValue[] = 'commentsThreaded';
      +        }
      +
      +        $commentsShow = new Typecho_Widget_Helper_Form_Element_Checkbox('commentsShow', $commentsShowOptions,
      +        $commentsShowOptionsValue, _t('评论显示'));
      +        $form->addInput($commentsShow->multiMode());
      +
      +        /** 评论提交 */
      +        $commentsPostOptions = array(
      +            'commentsRequireModeration'     =>  _t('所有评论必须经过审核'),
      +            'commentsWhitelist'     =>  _t('评论者之前须有评论通过了审核'),
      +            'commentsRequireMail'           =>  _t('必须填写邮箱'),
      +            'commentsRequireURL'            =>  _t('必须填写网址'),
      +            'commentsCheckReferer'          =>  _t('检查评论来源页URL是否与文章链接一致'),
      +            'commentsAutoClose'             =>  _t('在文章发布 %s 天以后自动关闭评论',
      +            '</label><input name="commentsPostTimeout" type="text" class="text num" value="' . intval($this->options->commentsPostTimeout / (24 * 3600)) . '" id="commentsPost-commentsPostTimeout" />
      +            <label for="commentsPost-commentsPostTimeout">'),
      +            'commentsPostIntervalEnable'    =>  _t('同一IP发布评论的时间间隔限制为 %s 分钟',
      +            '</label><input name="commentsPostInterval" type="text" class="text num" value="' . round($this->options->commentsPostInterval / (60), 1) . '" id="commentsPost-commentsPostInterval" />
      +            <label for="commentsPost-commentsPostInterval">')
      +        );
      +
      +        $commentsPostOptionsValue = array();
      +        if ($this->options->commentsRequireModeration) {
      +            $commentsPostOptionsValue[] = 'commentsRequireModeration';
      +        }
      +
      +        if ($this->options->commentsWhitelist) {
      +            $commentsPostOptionsValue[] = 'commentsWhitelist';
      +        }
      +
      +        if ($this->options->commentsRequireMail) {
      +            $commentsPostOptionsValue[] = 'commentsRequireMail';
      +        }
      +
      +        if ($this->options->commentsRequireURL) {
      +            $commentsPostOptionsValue[] = 'commentsRequireURL';
      +        }
      +
      +        if ($this->options->commentsCheckReferer) {
      +            $commentsPostOptionsValue[] = 'commentsCheckReferer';
      +        }
      +
      +        if ($this->options->commentsAutoClose) {
      +            $commentsPostOptionsValue[] = 'commentsAutoClose';
      +        }
      +
      +        if ($this->options->commentsPostIntervalEnable) {
      +            $commentsPostOptionsValue[] = 'commentsPostIntervalEnable';
      +        }
      +
      +        $commentsPost = new Typecho_Widget_Helper_Form_Element_Checkbox('commentsPost', $commentsPostOptions,
      +        $commentsPostOptionsValue, _t('评论提交'));
      +        $form->addInput($commentsPost->multiMode());
      +
      +        /** 允许使用的HTML标签和属性 */
      +        $commentsHTMLTagAllowed = new Typecho_Widget_Helper_Form_Element_Textarea('commentsHTMLTagAllowed', NULL,
      +        htmlspecialchars($this->options->commentsHTMLTagAllowed),
      +        _t('允许使用的HTML标签和属性'), _t('默认的用户评论不允许填写任何的HTML标签, 你可以在这里填写允许使用的HTML标签.<br />
      +        比如: &lt;a href=&quot;&quot;&gt; &lt;img src=&quot;&quot;&gt; &lt;blockquote&gt;'));
      +        $form->addInput($commentsHTMLTagAllowed);
      +
      +        /** 提交按钮 */
      +        $submit = new Typecho_Widget_Helper_Form_Element_Submit('submit', NULL, _t('保存设置'));
      +        $form->addItem($submit);
      +
      +        return $form;
      +    }
      +
      +    /**
      +     * 执行更新动作
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function updateDiscussionSettings()
      +    {
      +        /** 验证格式 */
      +        if ($this->form()->validate()) {
      +            $this->response->goBack();
      +        }
      +
      +        $settings = $this->request->from('commentDateFormat', 'commentsListSize', 'commentsShow', 'commentsPost', 'commentsPageSize', 'commentsPageDisplay', 'commentsAvatar',
      +                'commentsOrder', 'commentsMaxNestingLevels', 'commentsUrlNofollow', 'commentsPostTimeout', 'commentsUniqueIpInterval', 'commentsWhitelist', 'commentsRequireMail', 'commentsAvatarRating',
      +                'commentsPostTimeout', 'commentsPostInterval', 'commentsRequireModeration', 'commentsRequireURL', 'commentsHTMLTagAllowed', 'commentsStopWords', 'commentsIpBlackList');
      +
      +        $settings['commentsShowCommentOnly'] = $this->isEnableByCheckbox($settings['commentsShow'], 'commentsShowCommentOnly');
      +        $settings['commentsShowUrl'] = $this->isEnableByCheckbox($settings['commentsShow'], 'commentsShowUrl');
      +        $settings['commentsUrlNofollow'] = $this->isEnableByCheckbox($settings['commentsShow'], 'commentsUrlNofollow');
      +        $settings['commentsAvatar'] = $this->isEnableByCheckbox($settings['commentsShow'], 'commentsAvatar');
      +        $settings['commentsPageBreak'] = $this->isEnableByCheckbox($settings['commentsShow'], 'commentsPageBreak');
      +        $settings['commentsThreaded'] = $this->isEnableByCheckbox($settings['commentsShow'], 'commentsThreaded');
      +
      +        $settings['commentsPageSize'] = intval($settings['commentsPageSize']);
      +        $settings['commentsMaxNestingLevels'] = max(2, intval($settings['commentsMaxNestingLevels']));
      +        $settings['commentsPageDisplay'] = ('first' == $settings['commentsPageDisplay']) ? 'first' : 'last';
      +        $settings['commentsOrder'] = ('DESC' == $settings['commentsOrder']) ? 'DESC' : 'ASC';
      +        $settings['commentsAvatarRating'] = in_array($settings['commentsAvatarRating'], array('G', 'PG', 'R', 'X'))
      +            ? $settings['commentsAvatarRating'] : 'G';
      +
      +        $settings['commentsRequireModeration'] = $this->isEnableByCheckbox($settings['commentsPost'], 'commentsRequireModeration');
      +        $settings['commentsWhitelist'] = $this->isEnableByCheckbox($settings['commentsPost'], 'commentsWhitelist');
      +        $settings['commentsRequireMail'] = $this->isEnableByCheckbox($settings['commentsPost'], 'commentsRequireMail');
      +        $settings['commentsRequireURL'] = $this->isEnableByCheckbox($settings['commentsPost'], 'commentsRequireURL');
      +        $settings['commentsCheckReferer'] = $this->isEnableByCheckbox($settings['commentsPost'], 'commentsCheckReferer');
      +        $settings['commentsAutoClose'] = $this->isEnableByCheckbox($settings['commentsPost'], 'commentsAutoClose');
      +        $settings['commentsPostIntervalEnable'] = $this->isEnableByCheckbox($settings['commentsPost'], 'commentsPostIntervalEnable');
      +
      +        $settings['commentsPostTimeout'] = intval($settings['commentsPostTimeout']) * 24 * 3600;
      +        $settings['commentsPostInterval'] = round($settings['commentsPostInterval'], 1) * 60;
      +
      +        unset($settings['commentsShow']);
      +        unset($settings['commentsPost']);
      +
      +        foreach ($settings as $name => $value) {
      +            $this->update(array('value' => $value), $this->db->sql()->where('name = ?', $name));
      +        }
      +
      +        $this->widget('Widget_Notice')->set(_t("设置已经保存"), NULL, 'success');
      +        $this->response->goBack();
      +    }
      +
      +    /**
      +     * 绑定动作
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        $this->user->pass('administrator');
      +        $this->on($this->request->isPost())->updateDiscussionSettings();
      +        $this->response->redirect($this->options->adminUrl);
      +    }
      +}
      diff --git a/var/Widget/Options/General.php b/var/Widget/Options/General.php
      new file mode 100644
      index 00000000..47499804
      --- /dev/null
      +++ b/var/Widget/Options/General.php
      @@ -0,0 +1,180 @@
      +<?php
      +/**
      + * 基本设置
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 基本设置组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Options_General extends Widget_Abstract_Options implements Widget_Interface_Do
      +{
      +    /**
      +     * 输出表单结构
      +     *
      +     * @access public
      +     * @return Typecho_Widget_Helper_Form
      +     */
      +    public function form()
      +    {
      +        /** 构建表格 */
      +        $form = new Typecho_Widget_Helper_Form(Typecho_Common::url('/action/options-general', $this->options->index),
      +        Typecho_Widget_Helper_Form::POST_METHOD);
      +
      +        /** 站点名称 */
      +        $title = new Typecho_Widget_Helper_Form_Element_Text('title', NULL, $this->options->title, _t('站点名称'), _t('站点的名称将显示在网页的标题处.'));
      +        $form->addInput($title);
      +
      +        /** 站点描述 */
      +        $description = new Typecho_Widget_Helper_Form_Element_Textarea('description', NULL, $this->options->description, _t('站点描述'), _t('站点描述将显示在网页代码的头部.'));
      +        $form->addInput($description);
      +
      +        /** 关键词 */
      +        $keywords = new Typecho_Widget_Helper_Form_Element_Text('keywords', NULL, $this->options->keywords, _t('关键词'), _t('请以半角逗号","分割多个关键字.'));
      +        $form->addInput($keywords);
      +
      +        /** 注册 */
      +        $allowRegister = new Typecho_Widget_Helper_Form_Element_Radio('allowRegister', array('0' => _t('不允许'), '1' => _t('允许')), $this->options->allowRegister, _t('是否允许注册'),
      +        _t('允许访问者注册到你的网站, 默认的注册用户不享有任何写入权限.'));
      +        $form->addInput($allowRegister);
      +
      +        /** 时区 */
      +        $timezoneList = array(
      +            "0"         => _t('格林威治(子午线)标准时间 (GMT)'),
      +            "3600"      => _t('中欧标准时间 阿姆斯特丹,荷兰,法国 (GMT +1)'),
      +            "7200"      => _t('东欧标准时间 布加勒斯特,塞浦路斯,希腊 (GMT +2)'),
      +            "10800"     => _t('莫斯科时间 伊拉克,埃塞俄比亚,马达加斯加 (GMT +3)'),
      +            "14400"     => _t('第比利斯时间 阿曼,毛里塔尼亚,留尼汪岛 (GMT +4)'),
      +            "18000"     => _t('新德里时间 巴基斯坦,马尔代夫 (GMT +5)'),
      +            "21600"     => _t('科伦坡时间 孟加拉 (GMT +6)'),
      +            "25200"     => _t('曼谷雅加达 柬埔寨,苏门答腊,老挝 (GMT +7)'),
      +            "28800"     => _t('北京时间 香港,新加坡,越南 (GMT +8)'),
      +            "32400"     => _t('东京平壤时间 西伊里安,摩鹿加群岛 (GMT +9)'),
      +            "36000"     => _t('悉尼关岛时间 塔斯马尼亚岛,新几内亚 (GMT +10)'),
      +            "39600"     => _t('所罗门群岛 库页岛 (GMT +11)'),
      +            "43200"     => _t('惠灵顿时间 新西兰,斐济群岛 (GMT +12)'),
      +            "-3600"     => _t('佛德尔群岛 亚速尔群岛,葡属几内亚 (GMT -1)'),
      +            "-7200"     => _t('大西洋中部时间 格陵兰 (GMT -2)'),
      +            "-10800"    => _t('布宜诺斯艾利斯 乌拉圭,法属圭亚那 (GMT -3)'),
      +            "-14400"    => _t('智利巴西 委内瑞拉,玻利维亚 (GMT -4)'),
      +            "-18000"    => _t('纽约渥太华 古巴,哥伦比亚,牙买加 (GMT -5)'),
      +            "-21600"    => _t('墨西哥城时间 洪都拉斯,危地马拉,哥斯达黎加 (GMT -6)'),
      +            "-25200"    => _t('美国丹佛时间 (GMT -7)'),
      +            "-28800"    => _t('美国旧金山时间 (GMT -8)'),
      +            "-32400"    => _t('阿拉斯加时间 (GMT -9)'),
      +            "-36000"    => _t('夏威夷群岛 (GMT -10)'),
      +            "-39600"    => _t('东萨摩亚群岛 (GMT -11)'),
      +            "-43200"    => _t('艾尼威托克岛 (GMT -12)')
      +        );
      +
      +        $timezone = new Typecho_Widget_Helper_Form_Element_Select('timezone', $timezoneList, $this->options->timezone, _t('时区'));
      +        $form->addInput($timezone);
      +
      +        /** 扩展名 */
      +        $attachmentTypesOptionsResult = (NULL != trim($this->options->attachmentTypes)) ? 
      +        array_map('trim', explode(',', $this->options->attachmentTypes)) : array();
      +        $attachmentTypesOptionsValue = array();
      +        
      +        if (in_array('@image@', $attachmentTypesOptionsResult)) {
      +            $attachmentTypesOptionsValue[] = '@image@';
      +        }
      +        
      +        if (in_array('@media@', $attachmentTypesOptionsResult)) {
      +            $attachmentTypesOptionsValue[] = '@media@';
      +        }
      +        
      +        if (in_array('@doc@', $attachmentTypesOptionsResult)) {
      +            $attachmentTypesOptionsValue[] = '@doc@';
      +        }
      +        
      +        $attachmentTypesOther = array_diff($attachmentTypesOptionsResult, $attachmentTypesOptionsValue);
      +        $attachmentTypesOtherValue = '';
      +        if (!empty($attachmentTypesOther)) {
      +            $attachmentTypesOptionsValue[] = '@other@';
      +            $attachmentTypesOtherValue = implode(',', $attachmentTypesOther);
      +        }
      +        
      +        $attachmentTypesOptions = array(
      +            '@image@'    =>  _t('图片文件') . ' <strong><small>gif jpg png tiff bmp</small></strong>',
      +            '@media@'    =>  _t('多媒体文件') . ' <strong><small>mp3 wmv wma rmvb rm avi flv</small></strong>',
      +            '@doc@'      =>  _t('常用档案文件') . ' <strong><small>txt doc docx xls xlsx ppt pptx zip rar pdf</small></strong>',
      +            '@other@'    =>  _t('其他格式 %s', '<input type="text" style="width: 250px;" name="attachmentTypesOther" value="' . htmlspecialchars($attachmentTypesOtherValue) . '" />'),
      +        );
      +        
      +        $attachmentTypes = new Typecho_Widget_Helper_Form_Element_Checkbox('attachmentTypes', $attachmentTypesOptions,
      +        $attachmentTypesOptionsValue, _t('允许上传的文件类型'), _t('用逗号 "," 将后缀名隔开, 例如: cpp,h,mak'));
      +        $form->addInput($attachmentTypes->multiMode());
      +
      +        /** 提交按钮 */
      +        $submit = new Typecho_Widget_Helper_Form_Element_Submit('submit', NULL, _t('保存设置'));
      +        $form->addItem($submit);
      +
      +        return $form;
      +    }
      +
      +    /**
      +     * 执行更新动作
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function updateGeneralSettings()
      +    {
      +        /** 验证格式 */
      +        if ($this->form()->validate()) {
      +            $this->response->goBack();
      +        }
      +
      +        $settings = $this->request->from('title', 'description', 'keywords', 'allowRegister', 'timezone', 'attachmentTypes');
      +        
      +        $attachmentTypes = array();
      +        if ($this->isEnableByCheckbox($settings['attachmentTypes'], '@image@')) {
      +            $attachmentTypes[] = '@image@';
      +        }
      +        
      +        if ($this->isEnableByCheckbox($settings['attachmentTypes'], '@media@')) {
      +            $attachmentTypes[] = '@media@';
      +        }
      +        
      +        if ($this->isEnableByCheckbox($settings['attachmentTypes'], '@doc@')) {
      +            $attachmentTypes[] = '@doc@';
      +        }
      +        
      +        $attachmentTypesOther = $this->request->filter('trim')->attachmentTypesOther;
      +        if ($this->isEnableByCheckbox($settings['attachmentTypes'], '@other@') && !empty($attachmentTypesOther)) {
      +            $attachmentTypes[] = implode(',', array_map('trim', explode(',', $attachmentTypesOther)));
      +        }
      +        
      +        $settings['attachmentTypes'] = implode(',', $attachmentTypes);
      +        foreach ($settings as $name => $value) {
      +            $this->update(array('value' => $value), $this->db->sql()->where('name = ?', $name));
      +        }
      +
      +        $this->widget('Widget_Notice')->set(_t("设置已经保存"), NULL, 'success');
      +        $this->response->goBack();
      +    }
      +
      +    /**
      +     * 绑定动作
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        $this->user->pass('administrator');
      +        $this->on($this->request->isPost())->updateGeneralSettings();
      +        $this->response->redirect($this->options->adminUrl);
      +    }
      +}
      diff --git a/var/Widget/Options/Permalink.php b/var/Widget/Options/Permalink.php
      new file mode 100644
      index 00000000..b4a26f2a
      --- /dev/null
      +++ b/var/Widget/Options/Permalink.php
      @@ -0,0 +1,321 @@
      +<?php
      +/**
      + * 基本设置
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 基本设置组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Options_Permalink extends Widget_Abstract_Options implements Widget_Interface_Do
      +{
      +    /**
      +     * 编码自定义的路径
      +     *
      +     * @access private
      +     * @param string $rule 待编码的路径
      +     * @return string
      +     */
      +    private function encodeRule($rule)
      +    {
      +        return str_replace(array('{cid}', '{slug}', '{category}', '{year}', '{month}', '{day}'),
      +            array('[cid:digital]', '[slug]', '[category]', '[year:digital:4]', '[month:digital:2]', '[day:digital:2]'), $rule);
      +    }
      +
      +    /**
      +     * 解析自定义的路径
      +     *
      +     * @access private
      +     * @param string $rule 待解码的路径
      +     * @return string
      +     */
      +    private function decodeRule($rule)
      +    {
      +        return preg_replace("/\[([_a-z0-9-]+)[^\]]*\]/i", "{\\1}", $rule);
      +    }
      +
      +    /**
      +     * 检验规则是否冲突
      +     *
      +     * @access public
      +     * @param string $value 路由规则
      +     * @return boolean
      +     */
      +    public function checkRule($value)
      +    {
      +        if ('custom' != $value) {
      +            return true;
      +        }
      +
      +        $routingTable = $this->options->routingTable;
      +        $currentTable = array('custom' => array('url' => $this->encodeRule($this->request->customPattern)));
      +        $parser = new Typecho_Router_Parser($currentTable);
      +        $currentTable = $parser->parse();
      +        $regx = $currentTable['custom']['regx'];
      +
      +        //echo $regx; die;
      +
      +        foreach ($routingTable as $key => $val) {
      +            if ('post' != $key && 'page' != $key) {
      +                $pathInfo = preg_replace("/\[([_a-z0-9-]+)[^\]]*\]/i", "{\\1}", $val['url']);
      +                $pathInfo = str_replace(array('{cid}', '{slug}', '{category}', '{year}', '{month}', '{day}', '{', '}'),
      +                    array('123', 'hello', 'default', '2008', '08', '08', '', ''), $pathInfo);
      +
      +                if (preg_match($regx, $pathInfo)) {
      +                    return false;
      +                }
      +            }
      +        }
      +
      +        return true;
      +    }
      +
      +    /**
      +     * 检测是否可以rewrite
      +     *
      +     * @access public
      +     * @param string $value 是否打开rewrite
      +     * @return void
      +     */
      +    public function checkRewrite($value)
      +    {
      +        if ($value) {
      +            $this->user->pass('administrator');
      +
      +            /** 首先直接请求远程地址验证 */
      +            $client = Typecho_Http_Client::get();
      +            $hasWrote = false;
      +
      +            if (!file_exists(__TYPECHO_ROOT_DIR__ . '/.htaccess')) {
      +                if (is_writeable(__TYPECHO_ROOT_DIR__)) {
      +                    $parsed = parse_url($this->options->siteUrl);
      +                    $basePath = empty($parsed['path']) ? '/' : $parsed['path'];
      +                    $basePath = rtrim($basePath, '/') . '/';
      +
      +                    $hasWrote = file_put_contents(__TYPECHO_ROOT_DIR__ . '/.htaccess', "<IfModule mod_rewrite.c>
      +RewriteEngine On
      +RewriteBase {$basePath}
      +RewriteCond %{REQUEST_FILENAME} !-f
      +RewriteCond %{REQUEST_FILENAME} !-d
      +RewriteRule ^(.*)$ {$basePath}index.php/$1 [L]
      +</IfModule>");
      +                }
      +            }
      +
      +            try {
      +                if ($client) {
      +                    /** 发送一个rewrite地址请求 */
      +                    $client->setData(array('do' => 'remoteCallback'))
      +                    ->setHeader('User-Agent', $this->options->generator)
      +                    ->send(Typecho_Common::url('/action/ajax', $this->options->siteUrl));
      +
      +                    if (200 == $client->getResponseStatus() && 'OK' == $client->getResponseBody()) {
      +                        return true;
      +                    }
      +                }
      +
      +                if (false !== $hasWrote) {
      +                    @unlink(__TYPECHO_ROOT_DIR__ . '/.htaccess');
      +
      +                    //增强兼容性,使用wordpress的redirect式rewrite规则,虽然效率有点地下,但是对fastcgi模式兼容性较好
      +                    $hasWrote = file_put_contents(__TYPECHO_ROOT_DIR__ . '/.htaccess', "<IfModule mod_rewrite.c>
      +RewriteEngine On
      +RewriteBase {$basePath}
      +RewriteCond %{REQUEST_FILENAME} !-f
      +RewriteCond %{REQUEST_FILENAME} !-d
      +RewriteRule . {$basePath}index.php [L]
      +</IfModule>");
      +
      +                    //再次进行验证
      +                    $client = Typecho_Http_Client::get();
      +
      +                    if ($client) {
      +                        /** 发送一个rewrite地址请求 */
      +                        $client->setData(array('do' => 'remoteCallback'))
      +                        ->setHeader('User-Agent', $this->options->generator)
      +                        ->send(Typecho_Common::url('/action/ajax', $this->options->siteUrl));
      +
      +                        if (200 == $client->getResponseStatus() && 'OK' == $client->getResponseBody()) {
      +                            return true;
      +                        }
      +                    }
      +
      +                    unlink(__TYPECHO_ROOT_DIR__ . '/.htaccess');
      +                }
      +            } catch (Typecho_Http_Client_Exception $e) {
      +                if (false !== $hasWrote) {
      +                    @unlink(__TYPECHO_ROOT_DIR__ . '/.htaccess');
      +                }
      +                return false;
      +            }
      +
      +            return false;
      +        } else if (file_exists(__TYPECHO_ROOT_DIR__ . '/.htaccess')) {
      +            @unlink(__TYPECHO_ROOT_DIR__ . '/.htaccess');
      +        }
      +
      +        return true;
      +    }
      +
      +    /**
      +     * 输出表单结构
      +     *
      +     * @access public
      +     * @return Typecho_Widget_Helper_Form
      +     */
      +    public function form()
      +    {
      +        /** 构建表格 */
      +        $form = new Typecho_Widget_Helper_Form(Typecho_Common::url('index.php/action/options-permalink', $this->options->siteUrl),
      +        Typecho_Widget_Helper_Form::POST_METHOD);
      +
      +        /** 是否使用地址重写功能 */
      +        $rewrite = new Typecho_Widget_Helper_Form_Element_Radio('rewrite', array('0' => _t('不启用'), '1' => _t('启用')),
      +        $this->options->rewrite, _t('是否使用地址重写功能'), _t('地址重写即rewrite功能是某些服务器软件提供的优化内部连接的功能.<br />
      +        打开此功能可以让你的链接看上去完全是静态地址.'));
      +
      +        $errorStr = _t('重写功能检测失败, 请检查你的服务器设置');
      +
      +        /** 如果是apache服务器, 可能存在无法写入.htaccess文件的现象 */
      +        if (((isset($_SERVER['SERVER_SOFTWARE']) && false !== strpos(strtolower($_SERVER['SERVER_SOFTWARE']), 'apache'))
      +        || function_exists('apache_get_version')) && !file_exists(__TYPECHO_ROOT_DIR__ . '/.htaccess')
      +        && !is_writeable(__TYPECHO_ROOT_DIR__)) {
      +            $errorStr .= '<br /><strong>' . _t('我们检测到你使用了apache服务器, 但是程序无法在根目录创建.htaccess文件, 这可能是产生这个错误的原因.
      +            请调整你的目录权限, 或者手动创建一个.htaccess文件.') . '</strong>';
      +        }
      +
      +        $errorStr .= _t('<br />如果你仍然想启用此功能, <a href="%s">请点击这里</a>', Typecho_Common::url('index.php/action/options-permalink?do=enableRewriteAnyway', $this->options->siteUrl));
      +
      +        $form->addInput($rewrite->addRule(array($this, 'checkRewrite'), $errorStr));
      +        $patterns = array('/archives/[cid:digital]/' => _t('默认风格') . ' <strong><small>/archives/{cid}/</small></strong>',
      +        '/archives/[slug].html' => _t('wordpress风格') . ' <strong><small>/archives/{slug}.html</small></strong>',
      +        '/[year:digital:4]/[month:digital:2]/[day:digital:2]/[slug].html' => _t('按日期归档') . ' <strong><small>/archives/{year}/{month}/{day}/{slug}.html</small></strong>',
      +        '/[category]/[slug].html' => _t('按分类归档') . ' <strong><small>/{category}/{slug}.html</small></strong>');
      +
      +        /** 自定义文章路径 */
      +        $postPatternValue = $this->options->routingTable['post']['url'];
      +
      +        /** 增加个性化路径 */
      +        $customPatternValue = NULL;
      +        if (isset($this->request->__typecho_form_item_postPattern)) {
      +            $customPatternValue = $this->request->__typecho_form_item_postPattern;
      +            Typecho_Cookie::delete('__typecho_form_item_postPattern');
      +        } else if (!isset($patterns[$postPatternValue])) {
      +            $customPatternValue = $this->decodeRule($postPatternValue);
      +        }
      +        $patterns['custom'] = _t('个性化定义') . ' <input type="text" style="width: 250px;" name="customPattern" value="' . $customPatternValue . '" />';
      +
      +        $postPattern = new Typecho_Widget_Helper_Form_Element_Radio('postPattern', $patterns,
      +        $postPatternValue, _t('自定义文章路径'), _t('可用参数:{cid} 日志ID、{slug} 日志缩略名、{category} 分类、{year} 年、{month} 月、{day} 日<br />选择一种合适的文章静态路径风格, 使得你的网站链接更加友好.<br />
      +        一旦你选择了某种链接风格请不要轻易修改它.'));
      +        if ($customPatternValue) {
      +            $postPattern->value('custom');
      +        }
      +        $form->addInput($postPattern->multiMode());
      +
      +        /** 独立页面后缀名 */
      +        $pageSuffixValue = false !== ($pos = strrpos($this->options->routingTable['page']['url'], '.')) ?
      +        substr($this->options->routingTable['page']['url'], $pos) : '/';
      +        $pageSuffix = new Typecho_Widget_Helper_Form_Element_Radio('pageSuffix',
      +        array('/' => '<strong>' . _t('无') . '</strong>', '.html' => '<strong>html</strong>',
      +        '.htm' => '<strong>htm</strong>', '.php' => '<strong>php</strong>'), $pageSuffixValue,
      +        _t('独立页面后缀名'), _t('给独立页面设置一种文件后缀名, 使得它看起来像
      +        <br /><strong>%s</strong>',
      +        Typecho_Common::url('example.html', $this->options->index)));
      +        $form->addInput($pageSuffix);
      +
      +        /** 提交按钮 */
      +        $submit = new Typecho_Widget_Helper_Form_Element_Submit('submit', NULL, _t('保存设置'));
      +        $form->addItem($submit);
      +
      +        return $form;
      +    }
      +
      +    /**
      +     * 执行更新动作
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function updatePermalinkSettings()
      +    {
      +        /** 验证格式 */
      +        if ($this->form()->validate()) {
      +            Typecho_Cookie::set('__typecho_form_item_postPattern', $this->request->customPattern);
      +            $this->response->goBack();
      +        }
      +
      +        $patternValid = $this->checkRule($this->request->postPattern);
      +
      +        /** 解析url pattern */
      +        if ('custom' == $this->request->postPattern) {
      +            $this->request->postPattern = '/' . ltrim($this->encodeRule($this->request->customPattern), '/');
      +        }
      +
      +        $settings = $this->request->from('rewrite');
      +        if (isset($this->request->postPattern) && isset($this->request->pageSuffix)) {
      +            $routingTable = $this->options->routingTable;
      +            $routingTable['post']['url'] = $this->request->postPattern;
      +
      +            $pageValue = false !== ($pos = strrpos($routingTable['page']['url'], '.')) ?
      +            substr($routingTable['page']['url'], 0, $pos) : rtrim($routingTable['page']['url'], '/');
      +            $routingTable['page']['url'] = $pageValue . $this->request->pageSuffix;
      +
      +            if (isset($routingTable[0])) {
      +                unset($routingTable[0]);
      +            }
      +
      +            $settings['routingTable'] = serialize($routingTable);
      +        }
      +
      +        foreach ($settings as $name => $value) {
      +            $this->update(array('value' => $value), $this->db->sql()->where('name = ?', $name));
      +        }
      +
      +        if ($patternValid) {
      +            $this->widget('Widget_Notice')->set(_t("设置已经保存"), NULL, 'success');
      +        } else {
      +            $this->widget('Widget_Notice')->set(_t("自定义链接与现有规则存在冲突! 它可能影响解析效率, 建议你重新分配一个规则."), NULL, 'notice');
      +        }
      +        $this->response->goBack();
      +    }
      +
      +    /**
      +     * 强行打开rewrite
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function enableRewriteAnyway()
      +    {
      +        $this->update(array('value' => 1), $this->db->sql()->where('name = ?', 'rewrite'));
      +
      +        $this->widget('Widget_Notice')->set(_t("设置已经保存"), NULL, 'success');
      +        $this->response->goBack();
      +    }
      +
      +    /**
      +     * 绑定动作
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        $this->user->pass('administrator');
      +        $this->on($this->request->isGet() && $this->request->is('do=enableRewriteAnyway'))->enableRewriteAnyway();
      +        $this->on($this->request->isPost())->updatePermalinkSettings();
      +        $this->response->redirect($this->options->adminUrl);
      +    }
      +}
      diff --git a/var/Widget/Options/Reading.php b/var/Widget/Options/Reading.php
      new file mode 100644
      index 00000000..40d4a13c
      --- /dev/null
      +++ b/var/Widget/Options/Reading.php
      @@ -0,0 +1,178 @@
      +<?php
      +/**
      + * 文章阅读设置
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 文章阅读设置组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Options_Reading extends Widget_Abstract_Options implements Widget_Interface_Do
      +{
      +    /**
      +     * 输出表单结构
      +     *
      +     * @access public
      +     * @return Typecho_Widget_Helper_Form
      +     */
      +    public function form()
      +    {
      +        /** 构建表格 */
      +        $form = new Typecho_Widget_Helper_Form(Typecho_Common::url('/action/options-reading', $this->options->index),
      +        Typecho_Widget_Helper_Form::POST_METHOD);
      +
      +        /** 文章日期格式 */
      +        $postDateFormat = new Typecho_Widget_Helper_Form_Element_Text('postDateFormat', NULL, $this->options->postDateFormat,
      +        _t('文章日期格式'), _t('此格式用于指定显示在文章归档中的日期默认显示格式.<br />
      +        在某些主题中这个格式可能不会生效, 因为主题作者可以自定义日期格式.<br />
      +        请参考<a href="http://cn.php.net/manual/zh/function.date.php">PHP日期格式写法</a>.'));
      +        $form->addInput($postDateFormat);
      +
      +        //首页显示
      +        $frontPageParts = explode(':', $this->options->frontPage);
      +        $frontPageType = $frontPageParts[0];
      +        $frontPageValue = count($frontPageParts) > 1 ? $frontPageParts[1] : '';
      +
      +        $frontPageOptions = array(
      +            'recent'   =>  _t('显示最新发布的文章')
      +        );
      +
      +        // 页面列表
      +        $pages = $this->db->fetchAll($this->db->select('cid', 'title')
      +        ->from('table.contents')->where('type = ?', 'page')
      +        ->where('status = ?', 'publish')->where('created < ?', $this->options->gmtTime));
      +        
      +        if (!empty($pages)) {
      +            $pagesSelect = '<select name="frontPagePage" id="frontPage-frontPagePage">';
      +            foreach ($pages as $page) {
      +                $selected = '';
      +                if ('page' == $frontPageType && $page['cid'] == $frontPageValue) {
      +                    $selected = ' selected="true"';
      +                }
      +
      +                $pagesSelect .= '<option value="' . $page['cid'] . '"' . $selected
      +                . '>' . $page['title'] . '</option>';
      +            }
      +            $pagesSelect .= '</select>';
      +            $frontPageOptions['page'] = _t('使用 %s 页面作为首页', '</label>' . $pagesSelect . '<label for="frontPage-frontPagePage">');
      +        }
      +
      +        // 自定义文件列表
      +        $files = glob(__TYPECHO_ROOT_DIR__ . '/' . __TYPECHO_THEME_DIR__ . '/' . $this->options->theme . '/*.php');
      +        $filesSelect = '';
      +
      +        foreach ($files as $file) {
      +            $info = Typecho_Plugin::parseInfo($file);
      +            $file = basename($file);
      +
      +            if ('index.php' != $file && 'index' == $info['title']) {
      +                $selected = '';
      +                if ('file' == $frontPageType && $file == $frontPageValue) {
      +                    $selected = ' selected="true"';
      +                }
      +
      +                $filesSelect .= '<option value="' . $file . '"' . $selected
      +                . '>' . $file . '</option>';
      +            }
      +        }
      +
      +        if (!empty($filesSelect)) {
      +            $frontPageOptions['file'] = _t('直接调用 %s 模板文件',
      +             '</label><select name="frontPageFile" id="frontPage-frontPageFile">'
      +            . $filesSelect . '</select><label for="frontPage-frontPageFile">');
      +        }
      +
      +        $frontPage = new Typecho_Widget_Helper_Form_Element_Radio('frontPage', $frontPageOptions,
      +        $frontPageType, _t('站点首页'));
      +        $form->addInput($frontPage->multiMode());
      +
      +        /** 文章列表数目 */
      +        $postsListSize = new Typecho_Widget_Helper_Form_Element_Text('postsListSize', NULL, $this->options->postsListSize,
      +        _t('文章列表数目'), _t('此数目用于指定显示在侧边栏中的文章列表数目.'));
      +        $postsListSize->input->setAttribute('class', 'mini');
      +        $form->addInput($postsListSize->addRule('isInteger', _t('请填入一个数字')));
      +
      +        /** 每页文章数目 */
      +        $pageSize = new Typecho_Widget_Helper_Form_Element_Text('pageSize', NULL, $this->options->pageSize,
      +        _t('每页文章数目'), _t('此数目用于指定文章归档输出时每页显示的文章数目.'));
      +        $pageSize->input->setAttribute('class', 'mini');
      +        $form->addInput($pageSize->addRule('isInteger', _t('请填入一个数字')));
      +
      +        /** FEED全文输出 */
      +        $feedFullText = new Typecho_Widget_Helper_Form_Element_Radio('feedFullText', array('0' => _t('仅输出摘要'), '1' => _t('全文输出')),
      +        $this->options->feedFullText, _t('聚合全文输出'), _t('如果你不希望在聚合中输出文章全文,请使用仅输出摘要选项.<br />
      +        摘要的文字取决于你在文章中使用分隔符的位置.'));
      +        $form->addInput($feedFullText);
      +
      +        /** 提交按钮 */
      +        $submit = new Typecho_Widget_Helper_Form_Element_Submit('submit', NULL, _t('保存设置'));
      +        $form->addItem($submit);
      +
      +        return $form;
      +    }
      +
      +    /**
      +     * 执行更新动作
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function updateReadingSettings()
      +    {
      +        /** 验证格式  */
      +        if ($this->form()->validate()) {
      +            $this->response->goBack();
      +        }
      +
      +        $settings = $this->request->from('postDateFormat', 'frontPage', 'pageSize', 'postsListSize', 'feedFullText');
      +
      +        if ('page' == $settings['frontPage'] && isset($this->request->frontPagePage) &&
      +        $this->db->fetchRow($this->db->select('cid')
      +        ->from('table.contents')->where('type = ?', 'page')
      +        ->where('status = ?', 'publish')->where('created < ?', $this->options->gmtTime)
      +        ->where('cid = ?', $pageId = intval($this->request->frontPagePage)))) {
      +
      +            $settings['frontPage'] = 'page:' . $pageId;
      +
      +        } else if ('file' == $settings['frontPage'] && isset($this->request->frontPageFile) &&
      +        file_exists(__TYPECHO_ROOT_DIR__ . '/' . __TYPECHO_THEME_DIR__ . '/' . $this->options->theme . '/' .
      +        ($file = trim($this->request->frontPageFile, " ./\\")))) {
      +
      +            $settings['frontPage'] = 'file:' . $file;
      +
      +        } else {
      +            $settings['frontPage'] = 'recent';
      +        }
      +
      +        foreach ($settings as $name => $value) {
      +            $this->update(array('value' => $value), $this->db->sql()->where('name = ?', $name));
      +        }
      +
      +        $this->widget('Widget_Notice')->set(_t("设置已经保存"), NULL, 'success');
      +        $this->response->goBack();
      +    }
      +
      +    /**
      +     * 绑定动作
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        $this->user->pass('administrator');
      +        $this->on($this->request->isPost())->updateReadingSettings();
      +        $this->response->redirect($this->options->adminUrl);
      +    }
      +}
      diff --git a/var/Widget/Plugins/Config.php b/var/Widget/Plugins/Config.php
      new file mode 100644
      index 00000000..636e45e3
      --- /dev/null
      +++ b/var/Widget/Plugins/Config.php
      @@ -0,0 +1,112 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/**
      + * 插件配置组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Plugins_Config extends Widget_Abstract_Options
      +{
      +    /**
      +     * 插件文件路径
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_pluginFileName;
      +
      +    /**
      +     * 插件类
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_className;
      +
      +    /**
      +     * 获取插件信息
      +     *
      +     * @access public
      +     * @var array
      +     */
      +    public $info;
      +
      +    /**
      +     * 绑定动作
      +     *
      +     * @access public
      +     * @return unknown
      +     */
      +    public function execute()
      +    {
      +        $this->user->pass('administrator');
      +        if (!isset($this->request->config)) {
      +            throw new Typecho_Widget_Exception(_t('插件不存在'), 404);
      +        }
      +
      +        /** 获取插件入口 */
      +        list($this->_pluginFileName, $this->_className) = Typecho_Plugin::portal($this->request->config,
      +        __TYPECHO_ROOT_DIR__ . '/' . __TYPECHO_PLUGIN_DIR__);
      +        $this->info = Typecho_Plugin::parseInfo($this->_pluginFileName);
      +    }
      +
      +    /**
      +     * 获取菜单标题
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function getMenuTitle()
      +    {
      +        return _t('设置插件 %s', $this->info['title']);
      +    }
      +
      +    /**
      +     * 配置插件
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function config()
      +    {
      +        /** 获取插件名称 */
      +        $pluginName = $this->request->config;
      +
      +        /** 获取已激活插件 */
      +        $plugins = Typecho_Plugin::export();
      +        $activatedPlugins = $plugins['activated'];
      +
      +        /** 判断实例化是否成功 */
      +        if (!$this->info['config'] || !isset($activatedPlugins[$pluginName])) {
      +            throw new Typecho_Widget_Exception(_t('无法配置插件'), 500);
      +        }
      +
      +        /** 载入插件 */
      +        require_once $this->_pluginFileName;
      +        $form = new Typecho_Widget_Helper_Form(Typecho_Common::url('/action/plugins-edit?config=' . $pluginName,
      +        $this->options->index), Typecho_Widget_Helper_Form::POST_METHOD);
      +        call_user_func(array($this->_className, 'config'), $form);
      +
      +        $options = $this->options->plugin($pluginName);
      +
      +        if (!empty($options)) {
      +            foreach ($options as $key => $val) {
      +                $form->getInput($key)->value($val);
      +            }
      +        }
      +
      +        $form->addItem(new Typecho_Widget_Helper_Form_Element_Submit(NULL, NULL, _t('保存设置')));
      +        return $form;
      +    }
      +}
      diff --git a/var/Widget/Plugins/Edit.php b/var/Widget/Plugins/Edit.php
      new file mode 100644
      index 00000000..6ce404e2
      --- /dev/null
      +++ b/var/Widget/Plugins/Edit.php
      @@ -0,0 +1,295 @@
      +<?php
      +/**
      + * 插件管理
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 插件管理组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Plugins_Edit extends Widget_Abstract_Options implements Widget_Interface_Do
      +{
      +    /**
      +     * 手动配置插件变量
      +     * 
      +     * @access public
      +     * @static
      +     * @param mixed $pluginName 插件名称
      +     * @param mixed array $settings 变量键值对
      +     * @param bool $isPersonal. (default: false) 是否为私人变量
      +     * @return void
      +     */
      +    public static function configPlugin($pluginName, array $settings, $isPersonal = false)
      +    {
      +        $db = Typecho_Db::get();
      +        $pluginName = ($isPersonal ? '_' : '') . 'plugin:' . $pluginName;
      +        
      +        $select = $db->select()->from('table.options')
      +            ->where('name = ?', $pluginName);
      +            
      +        $options = $db->fetchAll($select);
      +        
      +        if (empty($settings)) {
      +            if (!empty($options)) {
      +                $db->query($db->delete('table.options')->where('name = ?', $pluginName));
      +            }
      +        } else {
      +            if (empty($options)) {
      +                $db->query($db->insert('table.options')
      +                ->rows(array(
      +                    'name'  =>  $pluginName,
      +                    'value' =>  serialize($settings),
      +                    'user'  =>  0
      +                )));
      +            } else {
      +                foreach ($options as $option) {
      +                    $value = unserialize($option['value']);
      +                    $value = array_merge($value, $settings);
      +                    
      +                    $db->query($db->update('table.options')
      +                    ->rows(array('value' => serialize($value)))
      +                    ->where('name = ?', $pluginName)
      +                    ->where('user = ?', $option['user']));
      +                }
      +            }
      +        }
      +    }
      +
      +    /**
      +     * 激活插件
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function activate($pluginName)
      +    {
      +        /** 获取插件入口 */
      +        list($pluginFileName, $className) = Typecho_Plugin::portal($pluginName, __TYPECHO_ROOT_DIR__ . '/' . __TYPECHO_PLUGIN_DIR__);
      +        $info = Typecho_Plugin::parseInfo($pluginFileName);
      +
      +        /** 检测依赖信息 */
      +        list ($version, $build) = explode('/', Typecho_Common::VERSION);
      +        if (Typecho_Plugin::checkDependence($build, $info['dependence'])) {
      +
      +            /** 获取已激活插件 */
      +            $plugins = Typecho_Plugin::export();
      +            $activatedPlugins = $plugins['activated'];
      +
      +            /** 载入插件 */
      +            require_once $pluginFileName;
      +
      +            /** 判断实例化是否成功 */
      +            if (isset($activatedPlugins[$pluginName]) || !class_exists($className)
      +            || !method_exists($className, 'activate')) {
      +                throw new Typecho_Widget_Exception(_t('无法激活插件'), 500);
      +            }
      +
      +            try {
      +                $result = call_user_func(array($className, 'activate'));
      +                Typecho_Plugin::activate($pluginName);
      +                $this->update(array('value' => serialize(Typecho_Plugin::export())),
      +                $this->db->sql()->where('name = ?', 'plugins'));
      +            } catch (Typecho_Plugin_Exception $e) {
      +                /** 截获异常 */
      +                $this->widget('Widget_Notice')->set($e->getMessage(), NULL, 'error');
      +                $this->response->goBack();
      +            }
      +
      +            $form = new Typecho_Widget_Helper_Form();
      +            call_user_func(array($className, 'config'), $form);
      +
      +            $personalForm = new Typecho_Widget_Helper_Form();
      +            call_user_func(array($className, 'personalConfig'), $personalForm);
      +
      +            $options = $form->getValues();
      +            $personalOptions = $personalForm->getValues();
      +
      +            if ($options && !$this->configHandle($pluginName, $options, true)) {
      +                self::configPlugin($pluginName, $options);
      +            }
      +
      +            if ($personalOptions && !$this->personalConfigHandle($className, $personalOptions)) {
      +                self::configPlugin($pluginName, $personalOptions, true);
      +            }
      +
      +        } else {
      +
      +            $result = _t('<a href="%s">%s</a> 无法在此版本的typecho下正常工作', $info['link'], $info['title']);
      +
      +        }
      +
      +        /** 设置高亮 */
      +        $this->widget('Widget_Notice')->highlight('plugin-' . $pluginName);
      +
      +        if (isset($result) && is_string($result)) {
      +            $this->widget('Widget_Notice')->set($result, NULL, 'notice');
      +        } else {
      +            $this->widget('Widget_Notice')->set(_t('插件已经被激活'), NULL, 'success');
      +        }
      +        $this->response->goBack();
      +    }
      +
      +    /**
      +     * 禁用插件
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function deactivate($pluginName)
      +    {
      +        /** 获取已激活插件 */
      +        $plugins = Typecho_Plugin::export();
      +        $activatedPlugins = $plugins['activated'];
      +        $pluginFileExist = true;
      +
      +        try {
      +            /** 获取插件入口 */
      +            list($pluginFileName, $className) = Typecho_Plugin::portal($pluginName, __TYPECHO_ROOT_DIR__ . '/' . __TYPECHO_PLUGIN_DIR__);
      +        } catch (Typecho_Plugin_Exception $e) {
      +            $pluginFileExist = false;
      +
      +            if (!isset($activatedPlugins[$pluginName])) {
      +                throw $e;
      +            }
      +        }
      +
      +        /** 判断实例化是否成功 */
      +        if (!isset($activatedPlugins[$pluginName])) {
      +            throw new Typecho_Widget_Exception(_t('无法禁用插件'), 500);
      +        }
      +
      +        if ($pluginFileExist) {
      +
      +            /** 载入插件 */
      +            require_once $pluginFileName;
      +
      +            /** 判断实例化是否成功 */
      +            if (!isset($activatedPlugins[$pluginName]) || !class_exists($className)
      +            || !method_exists($className, 'deactivate')) {
      +                throw new Typecho_Widget_Exception(_t('无法禁用插件'), 500);
      +            }
      +
      +            try {
      +                $result = call_user_func(array($className, 'deactivate'));
      +            } catch (Typecho_Plugin_Exception $e) {
      +                /** 截获异常 */
      +                $this->widget('Widget_Notice')->set($e->getMessage(), NULL, 'error');
      +                $this->response->goBack();
      +            }
      +
      +            /** 设置高亮 */
      +            $this->widget('Widget_Notice')->highlight('plugin-' . $pluginName);
      +        }
      +
      +        Typecho_Plugin::deactivate($pluginName);
      +        $this->update(array('value' => serialize(Typecho_Plugin::export())),
      +        $this->db->sql()->where('name = ?', 'plugins'));
      +
      +        $this->delete($this->db->sql()->where('name = ?', 'plugin:' . $pluginName));
      +        $this->delete($this->db->sql()->where('name = ?', '_plugin:' . $pluginName));
      +
      +        if (isset($result) && is_string($result)) {
      +            $this->widget('Widget_Notice')->set($result, NULL, 'notice');
      +        } else {
      +            $this->widget('Widget_Notice')->set(_t('插件已经被禁用'), NULL, 'success');
      +        }
      +        $this->response->goBack();
      +    }
      +
      +    /**
      +     * 配置插件
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function config($pluginName)
      +    {
      +        $form = $this->widget('Widget_Plugins_Config')->config();
      +
      +        /** 验证表单 */
      +        if ($form->validate()) {
      +            $this->response->goBack();
      +        }
      +
      +        $settings = $form->getAllRequest();
      +
      +        if (!$this->configHandle($pluginName, $settings, false)) {
      +            self::configPlugin($pluginName, $settings);
      +        }
      +
      +        /** 设置高亮 */
      +        $this->widget('Widget_Notice')->highlight('plugin-' . $pluginName);
      +
      +        /** 提示信息 */
      +        $this->widget('Widget_Notice')->set(_t("插件设置已经保存"), NULL, 'success');
      +
      +        /** 转向原页 */
      +        $this->response->redirect(Typecho_Common::url('plugins.php', $this->options->adminUrl));
      +    }
      +
      +    /**
      +     * 用自有函数处理配置信息
      +     *
      +     * @access public
      +     * @param string $pluginName 插件名称
      +     * @param array $settings 配置值
      +     * @param boolean $isInit 是否为初始化
      +     * @return boolean
      +     */
      +    public function configHandle($pluginName, array $settings, $isInit)
      +    {
      +        /** 获取插件入口 */
      +        list($pluginFileName, $className) = Typecho_Plugin::portal($pluginName, __TYPECHO_ROOT_DIR__ . '/' . __TYPECHO_PLUGIN_DIR__);
      +
      +        if (method_exists($className, 'configHandle')) {
      +            call_user_func(array($className, 'configHandle'), $settings, $isInit);
      +            return true;
      +        }
      +
      +        return false;
      +    }
      +
      +    /**
      +     * 用自有函数处理自定义配置信息
      +     *
      +     * @access public
      +     * @param string $className 类名
      +     * @param array $settings 配置值
      +     * @return boolean
      +     */
      +    public function personalConfigHandle($className, array $settings)
      +    {
      +        if (method_exists($className, 'personalConfigHandle')) {
      +            call_user_func(array($className, 'personalConfigHandle'), $settings, true);
      +            return true;
      +        }
      +
      +        return false;
      +    }
      +
      +    /**
      +     * 绑定动作
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        $this->user->pass('administrator');
      +        $this->on($this->request->is('activate'))->activate($this->request->activate);
      +        $this->on($this->request->is('deactivate'))->deactivate($this->request->deactivate);
      +        $this->on($this->request->is('config'))->config($this->request->config);
      +        $this->response->redirect($this->options->adminUrl);
      +    }
      +}
      diff --git a/var/Widget/Plugins/List.php b/var/Widget/Plugins/List.php
      new file mode 100644
      index 00000000..8d95da20
      --- /dev/null
      +++ b/var/Widget/Plugins/List.php
      @@ -0,0 +1,90 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/**
      + * 插件列表组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Plugins_List extends Typecho_Widget
      +{
      +    /**
      +     * 已激活插件
      +     *
      +     * @access public
      +     * @var array
      +     */
      +    public $activatedPlugins = array();
      +
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        /** 列出插件目录 */
      +        $pluginDirs = glob(__TYPECHO_ROOT_DIR__ . '/' . __TYPECHO_PLUGIN_DIR__ . '/*');
      +        $this->parameter->setDefault(array('activated' => NULL));
      +
      +        /** 获取已激活插件 */
      +        $plugins = Typecho_Plugin::export();
      +        $this->activatedPlugins = $plugins['activated'];
      +
      +        if (!empty($pluginDirs)) {
      +            foreach ($pluginDirs as $pluginDir) {
      +                if (is_dir($pluginDir)) {
      +                    /** 获取插件名称 */
      +                    $pluginName = basename($pluginDir);
      +
      +                    /** 获取插件主文件 */
      +                    $pluginFileName = $pluginDir . '/Plugin.php';
      +                } else if (file_exists($pluginDir) && 'index.php' != basename($pluginDir)) {
      +                    $pluginFileName = $pluginDir;
      +                    $part = explode('.', basename($pluginDir));
      +                    if (2 == count($part) && 'php' == $part[1]) {
      +                        $pluginName = $part[0];
      +                    } else {
      +                        continue;
      +                    }
      +                } else {
      +                    continue;
      +                }
      +
      +                if (file_exists($pluginFileName)) {
      +                    $info = Typecho_Plugin::parseInfo($pluginFileName);
      +                    $info['name'] = $pluginName;
      +
      +                    list ($version, $build) = explode('/', Typecho_Common::VERSION);
      +                    $info['dependence'] = Typecho_Plugin::checkDependence($build, $info['dependence']);
      +
      +                    /** 默认即插即用 */
      +                    $info['activated'] = true;
      +
      +                    if ($info['activate'] || $info['deactivate'] || $info['config'] || $info['personalConfig']) {
      +                        $info['activated'] = isset($this->activatedPlugins[$pluginName]);
      +
      +                        if (isset($this->activatedPlugins[$pluginName])) {
      +                            unset($this->activatedPlugins[$pluginName]);
      +                        }
      +                    }
      +
      +                    if (!is_bool($this->parameter->activated) || $info['activated']  == $this->parameter->activated) {
      +                        $this->push($info);
      +                    }
      +                }
      +            }
      +        }
      +    }
      +}
      diff --git a/var/Widget/Plugins/List/Activated.php b/var/Widget/Plugins/List/Activated.php
      new file mode 100644
      index 00000000..30f04c13
      --- /dev/null
      +++ b/var/Widget/Plugins/List/Activated.php
      @@ -0,0 +1,32 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/**
      + * 激活插件列表组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Plugins_List_Activated extends Widget_Plugins_List
      +{
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        $this->parameter->activated = true;
      +        parent::execute();
      +    }
      +}
      diff --git a/var/Widget/Plugins/List/Deactivated.php b/var/Widget/Plugins/List/Deactivated.php
      new file mode 100644
      index 00000000..77f174b3
      --- /dev/null
      +++ b/var/Widget/Plugins/List/Deactivated.php
      @@ -0,0 +1,32 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/**
      + * 禁用插件列表组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Plugins_List_Deactivated extends Widget_Plugins_List
      +{
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        $this->parameter->activated = false;
      +        parent::execute();
      +    }
      +}
      diff --git a/var/Widget/Register.php b/var/Widget/Register.php
      new file mode 100644
      index 00000000..c2e6fce1
      --- /dev/null
      +++ b/var/Widget/Register.php
      @@ -0,0 +1,84 @@
      +<?php
      +/**
      + * 注册组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + */
      +class Widget_Register extends Widget_Abstract_Users implements Widget_Interface_Do
      +{
      +    /**
      +     * 初始化函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        /** 如果已经登录 */
      +        if ($this->user->hasLogin() || !$this->options->allowRegister) {
      +            /** 直接返回 */
      +            $this->response->redirect($this->options->index);
      +        }
      +
      +        /** 初始化验证类 */
      +        $validator = new Typecho_Validate();
      +        $validator->addRule('name', 'required', _t('必须填写用户名称'));
      +        $validator->addRule('name', 'minLength', _t('用户名至少包含2个字符'), 2);
      +        $validator->addRule('name', 'maxLength', _t('用户名最多包含32个字符'), 32);
      +        $validator->addRule('name', 'xssCheck', _t('请不要在用户名中使用特殊字符'));
      +        $validator->addRule('name', array($this, 'nameExists'), _t('用户名已经存在'));
      +        $validator->addRule('mail', 'required', _t('必须填写电子邮箱'));
      +        $validator->addRule('mail', array($this, 'mailExists'), _t('电子邮箱地址已经存在'));
      +        $validator->addRule('mail', 'email', _t('电子邮箱格式错误'));
      +        $validator->addRule('mail', 'maxLength', _t('电子邮箱最多包含200个字符'), 200);
      +
      +        /** 如果请求中有password */
      +        if (array_key_exists('password', $_REQUEST)) {
      +            $validator->addRule('password', 'required', _t('必须填写密码'));
      +            $validator->addRule('password', 'minLength', _t('为了保证账户安全, 请输入至少六位的密码'), 6);
      +            $validator->addRule('password', 'maxLength', _t('为了便于记忆, 密码长度请不要超过十八位'), 18);
      +            $validator->addRule('confirm', 'confirm', _t('两次输入的密码不一致'), 'password');
      +        }
      +
      +        /** 截获验证异常 */
      +        if ($error = $validator->run($this->request->from('name', 'password', 'mail', 'confirm'))) {
      +            Typecho_Cookie::set('__typecho_remember_name', $this->request->name);
      +            Typecho_Cookie::set('__typecho_remember_mail', $this->request->mail);
      +
      +            /** 设置提示信息 */
      +            $this->widget('Widget_Notice')->set($error);
      +            $this->response->goBack();
      +        }
      +
      +        $generatedPassword = Typecho_Common::randString(7);
      +
      +        $dataStruct = array(
      +            'name'      =>  $this->request->name,
      +            'mail'      =>  $this->request->mail,
      +            'screenName'=>  $this->request->name,
      +            'password'  =>  Typecho_Common::hash($generatedPassword),
      +            'created'   =>  $this->options->gmtTime,
      +            'group'     =>  'subscriber'
      +        );
      +
      +        $dataStruct = $this->pluginHandle()->register($dataStruct);
      +
      +        $insertId = $this->insert($dataStruct);
      +        $this->db->fetchRow($this->select()->where('uid = ?', $insertId)
      +        ->limit(1), array($this, 'push'));
      +
      +        $this->pluginHandle()->finishRegister($this);
      +
      +        $this->user->login($this->request->name, $generatedPassword);
      +
      +        Typecho_Cookie::delete('__typecho_first_run');
      +        Typecho_Cookie::delete('__typecho_remember_name');
      +        Typecho_Cookie::delete('__typecho_remember_mail');
      +
      +        $this->widget('Widget_Notice')->set('message',
      +        _t('用户 <strong>%s</strong> 已经成功注册, 密码为 <strong>%s</strong>', $this->screenName, $generatedPassword), 'success');
      +        $this->response->goBack();
      +    }
      +}
      diff --git a/var/Widget/Service.php b/var/Widget/Service.php
      new file mode 100644
      index 00000000..ab801aa3
      --- /dev/null
      +++ b/var/Widget/Service.php
      @@ -0,0 +1,161 @@
      +<?php
      +/**
      + * 通用异步服务
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 通用异步服务组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + */
      +class Widget_Service extends Widget_Abstract_Options implements Widget_Interface_Do
      +{
      +    /**
      +     * 发送pingback实现
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function sendPingHandle()
      +    {
      +        /** 验证权限 */
      +        $this->user->pass('contributor');
      +
      +        /** 忽略超时 */
      +        ignore_user_abort(true);
      +
      +        /** 获取post */
      +        $post = $this->widget('Widget_Archive', "type=post", "cid={$this->request->cid}");
      +
      +        if ($post->have() && preg_match_all("|<a[^>]*href=[\"'](.*?)[\"'][^>]*>(.*?)</a>|", $post->text, $matches)) {
      +            $links = array_unique($matches[1]);
      +            $permalinkPart = parse_url($post->permalink);
      +
      +            /** 发送pingback */
      +            foreach ($links as $url) {
      +                $urlPart = parse_url($url);
      +
      +                if (isset($urlPart['scheme'])) {
      +                    if ('http' != $urlPart['scheme'] || 'https' != $urlPart['scheme']) {
      +                        continue;
      +                    }
      +                } else {
      +                    $urlPart['scheme'] = 'http';
      +                    $url = Typecho_Common::buildUrl($urlPart);
      +                }
      +
      +                if ($permalinkPart['host'] == $urlPart['host'] && $permalinkPart['path'] == $urlPart['path']) {
      +                    continue;
      +                }
      +
      +                $spider = Typecho_Http_Client::get();
      +
      +                if ($spider) {
      +                    $spider->setTimeout(10)
      +                    ->send($url);
      +
      +                    if (!($xmlrpcUrl = $spider->getResponseHeader('x-pingback'))) {
      +                        if (preg_match("/<link[^>]*rel=[\"']pingback[\"'][^>]*href=[\"']([^\"']+)[\"'][^>]*>/i",
      +                        $spider->getResponseBody(), $out)) {
      +                            $xmlrpcUrl = $out[1];
      +                        }
      +                    }
      +
      +                    if (!empty($xmlrpcUrl)) {
      +                        try {
      +                            $xmlrpc = new IXR_Client($xmlrpcUrl);
      +                            $xmlrpc->pingback->ping($post->permalink, $url);
      +                            unset($xmlrpc);
      +                        } catch (Exception $e) {
      +                            continue;
      +                        }
      +                    }
      +                }
      +
      +                unset($spider);
      +            }
      +        }
      +
      +        /** 发送trackback */
      +        if ($post->have() && !empty($this->request->trackback)) {
      +            $links = $this->request->trackback;
      +            foreach ($links as $url) {
      +
      +                $client = Typecho_Http_Client::get();
      +
      +                if ($client) {
      +                    try {
      +                        $client->setTimeout(5)
      +                        ->setData(array(
      +                            'blog_name' => $this->options->title . ' &raquo ' . $post->title,
      +                            'url'       => $post->permalink,
      +                            'excerpt'   => $post->excerpt
      +                        ))
      +                        ->send($url);
      +
      +                        unset($client);
      +                    } catch (Typecho_Http_Client_Exception $e) {
      +                        continue;
      +                    }
      +                }
      +
      +            }
      +        }
      +    }
      +
      +    /**
      +     * 发送pingback
      +     * <code>
      +     * $this->sendPingbacks(365);
      +     * </code>
      +     *
      +     * @access public
      +     * @param integer $cid 内容id
      +     * @param array $trackback trackback的url
      +     * @return void
      +     */
      +    public function sendPing($cid, array $trackback = NULL)
      +    {
      +        $this->user->pass('contributor');
      +
      +        if ($client = Typecho_Http_Client::get()) {
      +            try {
      +
      +                $input = array('do' => 'ping', 'cid' => $cid);
      +                if (!empty($trackback)) {
      +                    $input['trackback'] = $trackback;
      +                }
      +
      +                $client->setCookie('__typecho_uid', Typecho_Cookie::get('__typecho_uid'), 0, $this->options->siteUrl)
      +                ->setCookie('__typecho_authCode', Typecho_Cookie::get('__typecho_authCode'), 0, $this->options->siteUrl)
      +                ->setHeader('User-Agent', $this->options->generator)
      +                ->setTimeout(3)
      +                ->setData($input)
      +                ->setIp('127.0.0.1')
      +                ->send(Typecho_Common::url('/action/service', $this->options->index));
      +
      +            } catch (Typecho_Http_Client_Exception $e) {
      +                return;
      +            }
      +        }
      +    }
      +
      +    /**
      +     * 异步请求入口
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        $this->on($this->request->is('do=ping'))->sendPingHandle();
      +    }
      +}
      diff --git a/var/Widget/Stat.php b/var/Widget/Stat.php
      new file mode 100644
      index 00000000..b4af58ba
      --- /dev/null
      +++ b/var/Widget/Stat.php
      @@ -0,0 +1,366 @@
      +<?php
      +/**
      + * 全局统计
      + *
      + * @link typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 全局统计组件
      + *
      + * @link typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Stat extends Typecho_Widget
      +{
      +    /**
      +     * 用户对象
      +     *
      +     * @access protected
      +     * @var Widget_User
      +     */
      +    protected $user;
      +
      +    /**
      +     * 数据库对象
      +     *
      +     * @access protected
      +     * @var Typecho_Db
      +     */
      +    protected $db;
      +
      +    /**
      +     * 构造函数,初始化组件
      +     *
      +     * @access public
      +     * @param mixed $request request对象
      +     * @param mixed $response response对象
      +     * @param mixed $params 参数列表
      +     * @return void
      +     */
      +    public function __construct($request, $response, $params = NULL)
      +    {
      +        parent::__construct($request, $response, $params);
      +
      +        /** 初始化数据库 */
      +        $this->db = Typecho_Db::get();
      +
      +        /** 初始化常用组件 */
      +        $this->user = $this->widget('Widget_User');
      +    }
      +
      +    /**
      +     * 获取已发布的文章数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___publishedPostsNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(cid)' => 'num'))
      +                    ->from('table.contents')
      +                    ->where('table.contents.type = ?', 'post')
      +                    ->where('table.contents.status = ?', 'publish'))->num;
      +    }
      +
      +    /**
      +     * 获取待审核的文章数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___waitingPostsNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(cid)' => 'num'))
      +                    ->from('table.contents')
      +                    ->where('table.contents.type = ?', 'post')
      +                    ->where('table.contents.status = ?', 'waiting'))->num;
      +    }
      +
      +    /**
      +     * 获取草稿文章数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___draftPostsNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(cid)' => 'num'))
      +                    ->from('table.contents')
      +                    ->where('table.contents.type = ?', 'post')
      +                    ->where('table.contents.status = ?', 'draft'))->num;
      +    }
      +
      +    /**
      +     * 获取当前用户已发布的文章数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___myPublishedPostsNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(cid)' => 'num'))
      +                    ->from('table.contents')
      +                    ->where('table.contents.type = ?', 'post')
      +                    ->where('table.contents.status = ?', 'publish')
      +                    ->where('table.contents.authorId = ?', $this->user->uid))->num;
      +    }
      +
      +    /**
      +     * 获取当前用户待审核文章数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___myWaitingPostsNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(cid)' => 'num'))
      +                    ->from('table.contents')
      +                    ->where('table.contents.type = ?', 'post')
      +                    ->where('table.contents.status = ?', 'waiting')
      +                    ->where('table.contents.authorId = ?', $this->user->uid))->num;
      +    }
      +
      +    /**
      +     * 获取当前用户草稿文章数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___myDraftPostsNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(cid)' => 'num'))
      +                    ->from('table.contents')
      +                    ->where('table.contents.type = ?', 'post')
      +                    ->where('table.contents.status = ?', 'draft')
      +                    ->where('table.contents.authorId = ?', $this->user->uid))->num;
      +    }
      +
      +    /**
      +     * 获取当前用户已发布的文章数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___currentPublishedPostsNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(cid)' => 'num'))
      +                    ->from('table.contents')
      +                    ->where('table.contents.type = ?', 'post')
      +                    ->where('table.contents.status = ?', 'publish')
      +                    ->where('table.contents.authorId = ?', $this->request->filter('int')->uid))->num;
      +    }
      +
      +    /**
      +     * 获取当前用户待审核文章数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___currentWaitingPostsNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(cid)' => 'num'))
      +                    ->from('table.contents')
      +                    ->where('table.contents.type = ?', 'post')
      +                    ->where('table.contents.status = ?', 'waiting')
      +                    ->where('table.contents.authorId = ?', $this->request->filter('int')->uid))->num;
      +    }
      +
      +    /**
      +     * 获取当前用户草稿文章数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___currentDraftPostsNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(cid)' => 'num'))
      +                    ->from('table.contents')
      +                    ->where('table.contents.type = ?', 'post')
      +                    ->where('table.contents.status = ?', 'draft')
      +                    ->where('table.contents.authorId = ?', $this->request->filter('int')->uid))->num;
      +    }
      +
      +    /**
      +     * 获取已发布页面数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___publishedPagesNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(cid)' => 'num'))
      +                    ->from('table.contents')
      +                    ->where('table.contents.type = ?', 'page')
      +                    ->where('table.contents.status = ?', 'publish'))->num;
      +    }
      +
      +    /**
      +     * 获取草稿页面数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___draftPagesNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(cid)' => 'num'))
      +                    ->from('table.contents')
      +                    ->where('table.contents.type = ?', 'page')
      +                    ->where('table.contents.status = ?', 'draft'))->num;
      +    }
      +
      +    /**
      +     * 获取当前显示的评论数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___publishedCommentsNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(coid)' => 'num'))
      +                    ->from('table.comments')
      +                    ->where('table.comments.status = ?', 'approved'))->num;
      +    }
      +
      +    /**
      +     * 获取当前待审核的评论数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___waitingCommentsNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(coid)' => 'num'))
      +                    ->from('table.comments')
      +                    ->where('table.comments.status = ?', 'waiting'))->num;
      +    }
      +
      +    /**
      +     * 获取当前垃圾评论数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___spamCommentsNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(coid)' => 'num'))
      +                    ->from('table.comments')
      +                    ->where('table.comments.status = ?', 'spam'))->num;
      +    }
      +
      +    /**
      +     * 获取当前用户显示的评论数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___myPublishedCommentsNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(coid)' => 'num'))
      +                    ->from('table.comments')
      +                    ->where('table.comments.status = ?', 'approved')
      +                    ->where('table.comments.ownerId = ?', $this->user->uid))->num;
      +    }
      +
      +    /**
      +     * 获取当前用户显示的评论数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___myWaitingCommentsNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(coid)' => 'num'))
      +                    ->from('table.comments')
      +                    ->where('table.comments.status = ?', 'waiting')
      +                    ->where('table.comments.ownerId = ?', $this->user->uid))->num;
      +    }
      +
      +    /**
      +     * 获取当前用户显示的评论数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___mySpamCommentsNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(coid)' => 'num'))
      +                    ->from('table.comments')
      +                    ->where('table.comments.status = ?', 'spam')
      +                    ->where('table.comments.ownerId = ?', $this->user->uid))->num;
      +    }
      +    
      +    /**
      +     * 获取当前文章的评论数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___currentCommentsNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(coid)' => 'num'))
      +                    ->from('table.comments')
      +                    ->where('table.comments.cid = ?', $this->request->filter('int')->cid))->num;
      +    }
      +
      +    /**
      +     * 获取当前文章显示的评论数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___currentPublishedCommentsNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(coid)' => 'num'))
      +                    ->from('table.comments')
      +                    ->where('table.comments.status = ?', 'approved')
      +                    ->where('table.comments.cid = ?', $this->request->filter('int')->cid))->num;
      +    }
      +
      +    /**
      +     * 获取当前文章显示的评论数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___currentWaitingCommentsNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(coid)' => 'num'))
      +                    ->from('table.comments')
      +                    ->where('table.comments.status = ?', 'waiting')
      +                    ->where('table.comments.cid = ?', $this->request->filter('int')->cid))->num;
      +    }
      +
      +    /**
      +     * 获取当前文章显示的评论数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___currentSpamCommentsNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(coid)' => 'num'))
      +                    ->from('table.comments')
      +                    ->where('table.comments.status = ?', 'spam')
      +                    ->where('table.comments.cid = ?', $this->request->filter('int')->cid))->num;
      +    }
      +
      +    /**
      +     * 获取分类数目
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___categoriesNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(mid)' => 'num'))
      +                    ->from('table.metas')
      +                    ->where('table.metas.type = ?', 'category'))->num;
      +    }
      +}
      diff --git a/var/Widget/Themes/Config.php b/var/Widget/Themes/Config.php
      new file mode 100644
      index 00000000..567b8231
      --- /dev/null
      +++ b/var/Widget/Themes/Config.php
      @@ -0,0 +1,90 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/**
      + * 皮肤配置组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Themes_Config extends Widget_Abstract_Options
      +{
      +    /**
      +     * 绑定动作
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        $this->user->pass('administrator');
      +        
      +        if (!self::isExists()) {
      +            throw new Typecho_Widget_Exception(_t('外观配置功能不存在'), 404);
      +        }
      +    }
      +    
      +    /**
      +     * 获取菜单标题
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function getMenuTitle()
      +    {
      +        return _t('设置外观 %s', $this->options->theme);
      +    }
      +    
      +    /**
      +     * 配置功能是否存在
      +     * 
      +     * @access public
      +     * @return boolean
      +     */
      +    public static function isExists()
      +    {
      +        $configFile = __TYPECHO_ROOT_DIR__ . __TYPECHO_THEME_DIR__ . '/' . Typecho_Widget::widget('Widget_Options')->theme . '/functions.php';
      +        
      +        if (file_exists($configFile)) {
      +            require_once $configFile;
      +            
      +            if (function_exists('themeConfig')) {
      +                return true;
      +            }
      +        }
      +        
      +        return false;
      +    }
      +
      +    /**
      +     * 配置外观
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function config()
      +    {
      +        $form = new Typecho_Widget_Helper_Form(Typecho_Common::url('/action/themes-edit?config',
      +        $this->options->index), Typecho_Widget_Helper_Form::POST_METHOD);
      +        themeConfig($form);
      +        $inputs = $form->getInputs();
      +        
      +        if (!empty($inputs)) {
      +            foreach ($inputs as $key => $val) {
      +                $form->getInput($key)->value($this->options->{$key});
      +            }
      +        }
      +
      +        $form->addItem(new Typecho_Widget_Helper_Form_Element_Submit(NULL, NULL, _t('保存设置')));
      +        return $form;
      +    }
      +}
      diff --git a/var/Widget/Themes/Edit.php b/var/Widget/Themes/Edit.php
      new file mode 100644
      index 00000000..6b534e85
      --- /dev/null
      +++ b/var/Widget/Themes/Edit.php
      @@ -0,0 +1,174 @@
      +<?php
      +/**
      + * 编辑风格
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 编辑风格组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Themes_Edit extends Widget_Abstract_Options implements Widget_Interface_Do
      +{
      +    /**
      +     * 更换外观
      +     *
      +     * @access public
      +     * @param string $theme 外观名称
      +     * @return void
      +     */
      +    public function changeTheme($theme)
      +    {
      +        $theme = trim($theme, './');
      +        if (is_dir(__TYPECHO_ROOT_DIR__ . __TYPECHO_THEME_DIR__ . '/' . $theme)) {
      +            /** 删除原外观设置信息 */
      +            $this->delete($this->db->sql()->where('name = ?', 'theme:' . $this->options->theme));
      +
      +            $this->update(array('value' => $theme), $this->db->sql()->where('name = ?', 'theme'));
      +
      +            /** 解除首页关联 */
      +            if (0 === strpos($this->options->frontPage, 'file:')) {
      +                $this->update(array('value' => 'recent'), $this->db->sql()->where('name = ?', 'frontPage'));
      +            }
      +            
      +            $configFile = __TYPECHO_ROOT_DIR__ . __TYPECHO_THEME_DIR__ . '/' . $theme . '/functions.php';
      +            
      +            if (file_exists($configFile)) {
      +                require_once $configFile;
      +                
      +                if (function_exists('themeConfig')) {
      +                    $form = new Typecho_Widget_Helper_Form();
      +                    themeConfig($form);
      +                    $options = $form->getValues();
      +
      +                    if ($options && !$this->configHandle($options, true)) {
      +                        $this->insert(array(
      +                            'name'  =>  'theme:' . $theme,
      +                            'value' =>  serialize($options),
      +                            'user'  =>  0
      +                        ));
      +                    }
      +                }
      +            }
      +
      +            $this->widget('Widget_Notice')->highlight('theme-' . $theme);
      +            $this->widget('Widget_Notice')->set(_t("外观已经改变"), NULL, 'success');
      +            $this->response->goBack();
      +        } else {
      +            throw new Typecho_Widget_Exception(_t('您选择的风格不存在'));
      +        }
      +    }
      +
      +    /**
      +     * 编辑外观文件
      +     *
      +     * @access public
      +     * @param string $theme 外观名称
      +     * @param string $file 文件名
      +     * @return void
      +     */
      +    public function editThemeFile($theme, $file)
      +    {
      +        $path = __TYPECHO_ROOT_DIR__ . __TYPECHO_THEME_DIR__ . '/' . trim($theme, './') . '/' . trim($file, './');
      +
      +        if (file_exists($path) && is_writeable($path)) {
      +            $handle = fopen($path, 'wb');
      +            if ($handle && fwrite($handle, $this->request->content)) {
      +                fclose($handle);
      +                $this->widget('Widget_Notice')->set(_t("文件 %s 的更改已经保存", $file), NULL, 'success');
      +            } else {
      +                $this->widget('Widget_Notice')->set(_t("文件 %s 无法被写入", $file), NULL, 'error');
      +            }
      +            $this->response->goBack();
      +        } else {
      +            throw new Typecho_Widget_Exception(_t('您编辑的文件不存在'));
      +        }
      +    }
      +    
      +    /**
      +     * 配置外观
      +     *
      +     * @access public
      +     * @param string $theme 外观名
      +     * @return void
      +     */
      +    public function config($theme)
      +    {
      +        // 已经载入了外观函数
      +        $form = $this->widget('Widget_Themes_Config')->config();
      +
      +        /** 验证表单 */
      +        if ($form->validate()) {
      +            $this->response->goBack();
      +        }
      +
      +        $settings = $form->getAllRequest();
      +
      +        if (!$this->configHandle($settings, false)) {
      +            if ($this->options->__get('theme:' . $theme)) {
      +                $this->update(array('value' => serialize($settings)),
      +                $this->db->sql()->where('name = ?', 'theme:' . $theme));
      +            } else {
      +                $this->insert(array(
      +                    'name'  =>  'theme:' . $theme,
      +                    'value' =>  serialize($settings),
      +                    'user'  =>  0
      +                ));
      +            }
      +        }
      +
      +        /** 设置高亮 */
      +        $this->widget('Widget_Notice')->highlight('theme-' . $theme);
      +
      +        /** 提示信息 */
      +        $this->widget('Widget_Notice')->set(_t("外观设置已经保存"), NULL, 'success');
      +
      +        /** 转向原页 */
      +        $this->response->redirect(Typecho_Common::url('themes.php', $this->options->adminUrl));
      +    }
      +
      +    /**
      +     * 用自有函数处理配置信息
      +     *
      +     * @access public
      +     * @param string $pluginName 插件名称
      +     * @param array $settings 配置值
      +     * @param boolean $isInit 是否为初始化
      +     * @return boolean
      +     */
      +    public function configHandle(array $settings, $isInit)
      +    {
      +        if (function_exists('themeConfigHandle')) {
      +            themeConfigHandle($settings, $isInit);
      +            return true;
      +        }
      +
      +        return false;
      +    }
      +
      +    /**
      +     * 绑定动作
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        /** 需要管理员权限 */
      +        $this->user->pass('administrator');
      +        $this->on($this->request->is('change'))->changeTheme($this->request->change);
      +        $this->on($this->request->is('edit&theme'))->editThemeFile($this->request->theme, $this->request->edit);
      +        $this->on($this->request->is('config'))->config($this->options->theme);
      +        $this->response->redirect($this->options->adminUrl);
      +    }
      +}
      diff --git a/var/Widget/Themes/Files.php b/var/Widget/Themes/Files.php
      new file mode 100644
      index 00000000..892a5bd3
      --- /dev/null
      +++ b/var/Widget/Themes/Files.php
      @@ -0,0 +1,132 @@
      +<?php
      +/**
      + * 风格文件列表
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 风格文件列表组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Themes_Files extends Typecho_Widget
      +{
      +    /**
      +     * 当前风格
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_currentTheme;
      +
      +    /**
      +     * 当前文件
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_currentFile;
      +
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        /** 管理员权限 */
      +        $this->widget('Widget_User')->pass('administrator');
      +        $this->_currentTheme = $this->request->get('theme', $this->widget('Widget_Options')->theme);
      +
      +        if (preg_match("/^([_0-9a-z-\.\ ])+$/i", $this->_currentTheme)
      +        && is_dir($dir = __TYPECHO_ROOT_DIR__ . __TYPECHO_THEME_DIR__ . '/' . $this->_currentTheme)) {
      +            $files = glob($dir . '/*.{php,PHP,js,JS,css,CSS,vbs,VBS}', GLOB_BRACE);
      +            $this->_currentFile = $this->request->get('file', 'index.php');
      +
      +            if (preg_match("/^([_0-9a-z-\.\ ])+$/i", $this->_currentFile)
      +            && file_exists($dir . '/' . $this->_currentFile)) {
      +                foreach ($files as $file) {
      +                    if (file_exists($file)) {
      +                        $file = basename($file);
      +                        $this->push(array(
      +                            'file'      =>  $file,
      +                            'theme'     =>  $this->_currentTheme,
      +                            'current'   =>  ($file == $this->_currentFile)
      +                        ));
      +                    }
      +                }
      +
      +                return;
      +            }
      +        }
      +
      +        throw new Typecho_Widget_Exception('风格文件不存在', 404);
      +    }
      +
      +    /**
      +     * 获取菜单标题
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function getMenuTitle()
      +    {
      +        return _t('编辑文件 %s', $this->_currentFile);
      +    }
      +
      +    /**
      +     * 获取文件内容
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function currentContent()
      +    {
      +        return htmlspecialchars(file_get_contents(__TYPECHO_ROOT_DIR__ . __TYPECHO_THEME_DIR__ . '/' .
      +        $this->_currentTheme . '/' . $this->_currentFile));
      +    }
      +
      +    /**
      +     * 获取文件是否可读
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function currentIsWriteable()
      +    {
      +        return is_writeable(__TYPECHO_ROOT_DIR__ . __TYPECHO_THEME_DIR__ . '/' .
      +        $this->_currentTheme . '/' . $this->_currentFile);
      +    }
      +
      +    /**
      +     * 获取当前文件
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function currentFile()
      +    {
      +        return $this->_currentFile;
      +    }
      +
      +    /**
      +     * 获取当前风格
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function currentTheme()
      +    {
      +        return $this->_currentTheme;
      +    }
      +}
      diff --git a/var/Widget/Themes/List.php b/var/Widget/Themes/List.php
      new file mode 100644
      index 00000000..7274b7b3
      --- /dev/null
      +++ b/var/Widget/Themes/List.php
      @@ -0,0 +1,68 @@
      +<?php
      +/**
      + * 风格列表
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 风格列表组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Themes_List extends Typecho_Widget
      +{
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        $themes = glob(__TYPECHO_ROOT_DIR__ . __TYPECHO_THEME_DIR__ . '/*');
      +
      +        if ($themes) {
      +            $options = $this->widget('Widget_Options');
      +            $siteUrl = $options->siteUrl;
      +            $adminUrl = $options->adminUrl;
      +            $activated  = 0;
      +            $result = array();
      +
      +            foreach ($themes as $key => $theme) {
      +                $themeFile = $theme . '/index.php';
      +                if (file_exists($themeFile)) {
      +                    $info = Typecho_Plugin::parseInfo($themeFile);
      +                    $info['name'] = basename($theme);
      +
      +                    if ($info['activated'] = ($options->theme == $info['name'])) {
      +                        $activated = $key;
      +                    }
      +
      +                    $screen = glob($theme . '/screen*.{jpg,png,gif,bmp,jpeg,JPG,PNG,GIF,BMG,JPEG}', GLOB_BRACE);
      +                    if ($screen) {
      +                        $info['screen'] = Typecho_Common::url(trim(__TYPECHO_THEME_DIR__, '/') .
      +                        '/' . $info['name'] . '/' . basename(current($screen)), $siteUrl);
      +                    } else {
      +                        $info['screen'] = Typecho_Common::url('/images/noscreen.gif', $adminUrl);
      +                    }
      +
      +                    $result[$key] = $info;
      +                }
      +            }
      +
      +            $clone = $result[$activated];
      +            unset($result[$activated]);
      +            array_unshift($result, $clone);
      +            array_filter($result, array($this, 'push'));
      +        }
      +    }
      +}
      diff --git a/var/Widget/Upgrade.php b/var/Widget/Upgrade.php
      new file mode 100644
      index 00000000..9cfcc57b
      --- /dev/null
      +++ b/var/Widget/Upgrade.php
      @@ -0,0 +1,126 @@
      +<?php
      +/**
      + * 升级动作
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 升级组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + */
      +class Widget_Upgrade extends Widget_Abstract_Options implements Widget_Interface_Do
      +{
      +    /**
      +     * 当前内部版本号
      +     *
      +     * @access private
      +     * @var string
      +     */
      +    private $_currentVersion;
      +
      +    /**
      +     * 对升级包按版本进行排序
      +     *
      +     * @access public
      +     * @param string $a a版本
      +     * @param string $b b版本
      +     * @return integer
      +     */
      +    public function sortPackage($a, $b)
      +    {
      +        list ($ver, $rev) = explode('r', $a);
      +        $a = str_replace('_', '.', $rev);
      +
      +        list ($ver, $rev) = explode('r', $b);
      +        $b = str_replace('_', '.', $rev);
      +
      +        return version_compare($a, $b, '>') ? 1 : -1;
      +    }
      +
      +    /**
      +     * 过滤低版本的升级包
      +     *
      +     * @access public
      +     * @param string $version 版本号
      +     * @return boolean
      +     */
      +    public function filterPackage($version)
      +    {
      +        list ($ver, $rev) = explode('r', $version);
      +        $rev = str_replace('_', '.', $rev);
      +        return version_compare($rev, $this->_currentVersion, '>');
      +    }
      +
      +    /**
      +     * 执行升级程序
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function upgrade()
      +    {
      +        list($prefix, $this->_currentVersion) = explode('/', $this->options->generator);
      +        $packages = get_class_methods('Upgrade');
      +        $packages = array_filter($packages, array($this, 'filterPackage'));
      +        usort($packages, array($this, 'sortPackage'));
      +
      +        $message = array();
      +
      +        foreach ($packages as $package) {
      +            $options = $this->widget('Widget_Options@' . $package);
      +
      +            /** 执行升级脚本 */
      +            try {
      +                $result = call_user_func(array('Upgrade', $package), $this->db, $options);
      +                if (!empty($result)) {
      +                    $message[] = $result;
      +                }
      +            } catch (Typecho_Exception $e) {
      +                $this->widget('Widget_Notice')->set($e->getMessage(), NULL, 'error');
      +                $this->response->goBack();
      +                return;
      +            }
      +
      +            list ($ver, $rev) = explode('r', $package);
      +            $ver = substr(str_replace('_', '.', $ver), 1);
      +            $rev = str_replace('_', '.', $rev);
      +
      +            /** 更新版本号 */
      +            $this->update(array('value' => 'Typecho ' . $ver . '/' . $rev),
      +            $this->db->sql()->where('name = ?', 'generator'));
      +
      +            $this->destory('Widget_Options@' . $package);
      +        }
      +
      +        /** 更新版本号 */
      +        $this->update(array('value' => 'Typecho ' . Typecho_Common::VERSION),
      +        $this->db->sql()->where('name = ?', 'generator'));
      +
      +        /** 删除更新cookie */
      +        Typecho_Cookie::delete('__typecho_check_version');
      +
      +        $this->widget('Widget_Notice')->set(empty($message) ? _t("升级已经完成") : $message,
      +        NULL, empty($message) ? 'success' : 'notice');
      +    }
      +
      +    /**
      +     * 初始化函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        $this->user->pass('administrator');
      +        $this->on($this->request->isPost())->upgrade();
      +        $this->response->redirect($this->options->adminUrl);
      +    }
      +}
      diff --git a/var/Widget/Upload.php b/var/Widget/Upload.php
      new file mode 100644
      index 00000000..ee8f37c5
      --- /dev/null
      +++ b/var/Widget/Upload.php
      @@ -0,0 +1,401 @@
      +<?php
      +/**
      + * 上传动作
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 上传组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + */
      +class Widget_Upload extends Widget_Abstract_Contents implements Widget_Interface_Do
      +{
      +    //上传文件目录
      +    const UPLOAD_PATH = '/usr/uploads';
      +
      +    /**
      +     * 创建上传路径
      +     *
      +     * @access private
      +     * @param string $path 路径
      +     * @return boolean
      +     */
      +    private static function makeUploadDir($path)
      +    {
      +        if (!@mkdir($path)) {
      +            return false;
      +        }
      +
      +        $stat = @stat($path);
      +        $perms = $stat['mode'] & 0007777;
      +        @chmod($path, $perms);
      +
      +        return true;
      +    }
      +
      +    /**
      +     * 上传文件处理函数,如果需要实现自己的文件哈希或者特殊的文件系统,请在options表里把uploadHandle改成自己的函数
      +     *
      +     * @access public
      +     * @param array $file 上传的文件
      +     * @return mixed
      +     */
      +    public static function uploadHandle($file)
      +    {
      +        if (empty($file['name'])) {
      +            return false;
      +        }
      +        
      +        $result = Typecho_Plugin::factory('Widget_Upload')->trigger($hasUploaded)->uploadHandle($file);
      +        if ($hasUploaded) {
      +            return $result;
      +        }
      +
      +        $fileName = preg_split("(\/|\\|:)", $file['name']);
      +        $file['name'] = array_pop($fileName);
      +        
      +        //获取扩展名
      +        $ext = '';
      +        $part = explode('.', $file['name']);
      +        if (($length = count($part)) > 1) {
      +            $ext = strtolower($part[$length - 1]);
      +        }
      +
      +        if (!self::checkFileType($ext)) {
      +            return false;
      +        }
      +
      +        $options = Typecho_Widget::widget('Widget_Options');
      +        $date = new Typecho_Date($options->gmtTime);
      +        $path = Typecho_Common::url(self::UPLOAD_PATH, __TYPECHO_ROOT_DIR__);
      +
      +        //创建上传目录
      +        if (!is_dir($path)) {
      +            if (!self::makeUploadDir($path)) {
      +                return false;
      +            }
      +        }
      +
      +        //创建年份目录
      +        if (!is_dir($path = $path . '/' . $date->year)) {
      +            if (!self::makeUploadDir($path)) {
      +                return false;
      +            }
      +        }
      +
      +        //创建月份目录
      +        if (!is_dir($path = $path . '/' . $date->month)) {
      +            if (!self::makeUploadDir($path)) {
      +                return false;
      +            }
      +        }
      +
      +        //获取文件名
      +        $fileName = sprintf('%u', crc32(uniqid())) . '.' . $ext;
      +        $path = $path . '/' . $fileName;
      +
      +        if (isset($file['tmp_name'])) {
      +
      +            //移动上传文件
      +            if (!move_uploaded_file($file['tmp_name'], $path)) {
      +                return false;
      +            }
      +        } else if (isset($file['bits'])) {
      +
      +            //直接写入文件
      +            if (!file_put_contents($path, $file['bits'])) {
      +                return false;
      +            }
      +        } else {
      +            return false;
      +        }
      +
      +        if (!isset($file['size'])) {
      +            $file['size'] = filesize($path);
      +        }
      +
      +        //返回相对存储路径
      +        return array(
      +            'name' => $file['name'],
      +            'path' => self::UPLOAD_PATH . '/' . $date->year . '/' . $date->month . '/' . $fileName,
      +            'size' => $file['size'],
      +            'type' => $ext,
      +            'mime' => Typecho_Common::mimeContentType($path)
      +        );
      +    }
      +
      +    /**
      +     * 修改文件处理函数,如果需要实现自己的文件哈希或者特殊的文件系统,请在options表里把modifyHandle改成自己的函数
      +     *
      +     * @access public
      +     * @param array $content 老文件
      +     * @param array $file 新上传的文件
      +     * @return mixed
      +     */
      +    public static function modifyHandle($content, $file)
      +    {
      +        if (empty($file['name'])) {
      +            return false;
      +        }
      +        
      +        $result = Typecho_Plugin::factory('Widget_Upload')->trigger($hasModified)->modifyHandle($content, $file);
      +        if ($hasModified) {
      +            return $result;
      +        }
      +
      +        $fileName = preg_split("(\/|\\|:)", $file['name']);
      +        $file['name'] = array_pop($fileName);
      +        
      +        //获取扩展名
      +        $ext = '';
      +        $part = explode('.', $file['name']);
      +        if (($length = count($part)) > 1) {
      +            $ext = strtolower($part[$length - 1]);
      +        }
      +
      +        if ($content['attachment']->type != $ext) {
      +            return false;
      +        }
      +
      +        $path = Typecho_Common::url($content['attachment']->path, __TYPECHO_ROOT_DIR__);
      +
      +        if (isset($file['tmp_name'])) {
      +
      +            //移动上传文件
      +            if (!move_uploaded_file($file['tmp_name'], $path)) {
      +                return false;
      +            }
      +        } else if (isset($file['bits'])) {
      +
      +            //直接写入文件
      +            if (!file_put_contents($path, $file['bits'])) {
      +                return false;
      +            }
      +        } else {
      +            return false;
      +        }
      +
      +        if (!isset($file['size'])) {
      +            $file['size'] = filesize($path);
      +        }
      +
      +        //返回相对存储路径
      +        return array(
      +            'name' => $content['attachment']->name,
      +            'path' => $content['attachment']->path,
      +            'size' => $file['size'],
      +            'type' => $content['attachment']->type,
      +            'mime' => $content['attachment']->mime
      +        );
      +    }
      +
      +    /**
      +     * 删除文件
      +     *
      +     * @access public
      +     * @param array $content 文件相关信息
      +     * @return string
      +     */
      +    public static function deleteHandle(array $content)
      +    {
      +        $result = Typecho_Plugin::factory('Widget_Upload')->trigger($hasDeleted)->deleteHandle($content);
      +        if ($hasDeleted) {
      +            return $result;
      +        }
      +
      +        return @unlink(__TYPECHO_ROOT_DIR__ . '/' . $content['attachment']->path);
      +    }
      +
      +    /**
      +     * 获取实际文件绝对访问路径
      +     *
      +     * @access public
      +     * @param array $content 文件相关信息
      +     * @return string
      +     */
      +    public static function attachmentHandle(array $content)
      +    {
      +        $result = Typecho_Plugin::factory('Widget_Upload')->trigger($hasPlugged)->attachmentHandle($content);
      +        if ($hasPlugged) {
      +            return $result;
      +        }
      +
      +        $options = Typecho_Widget::widget('Widget_Options');
      +        return Typecho_Common::url($content['attachment']->path, $options->siteUrl);
      +    }
      +
      +    /**
      +     * 获取实际文件数据
      +     *
      +     * @access public
      +     * @param array $content
      +     * @return string
      +     */
      +    public static function attachmentDataHandle(array $content)
      +    {
      +        $result = Typecho_Plugin::factory('Widget_Upload')->trigger($hasPlugged)->attachmentDataHandle($content);
      +        if ($hasPlugged) {
      +            return $result;
      +        }
      +
      +        return file_get_contents(Typecho_Common::url($content['attachment']->path, __TYPECHO_ROOT_DIR__));
      +    }
      +
      +    /**
      +     * 检查文件名
      +     *
      +     * @access private
      +     * @param string $ext 扩展名
      +     * @return boolean
      +     */
      +    public static function checkFileType($ext)
      +    {
      +        $options = Typecho_Widget::widget('Widget_Options');
      +        return in_array($ext, $options->allowedAttachmentTypes);
      +    }
      +
      +    /**
      +     * 执行升级程序
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function upload()
      +    {
      +        if (!empty($_FILES)) {
      +            $file = array_pop($_FILES);
      +            if (0 == $file['error'] && is_uploaded_file($file['tmp_name'])) {
      +                $result = self::uploadHandle($file);
      +
      +                if (false === $result) {
      +                    $this->response->setStatus(502);
      +                    exit;
      +                } else {
      +
      +                    $struct = array(
      +                        'title'     =>  $result['name'],
      +                        'slug'      =>  $result['name'],
      +                        'type'      =>  'attachment',
      +                        'status'    =>  'publish',
      +                        'text'      =>  serialize($result),
      +                        'allowComment'      =>  1,
      +                        'allowPing'         =>  0,
      +                        'allowFeed'         =>  1
      +                    );
      +
      +                    if (isset($this->request->cid)) {
      +                        $cid = $this->request->filter('int')->cid;
      +
      +                        if ($this->isWriteable($this->db->sql()->where('cid = ?', $cid))) {
      +                            $struct['parent'] = $cid;
      +                        }
      +                    }
      +
      +                    $insertId = $this->insert($struct);
      +
      +                    $this->db->fetchRow($this->select()->where('table.contents.cid = ?', $insertId)
      +                    ->where('table.contents.type = ?', 'attachment'), array($this, 'push'));
      +
      +                    /** 增加插件接口 */
      +                    $this->pluginHandle()->upload($this);
      +
      +                    $this->response->throwJson(array(
      +                        'cid'       =>  $insertId,
      +                        'title'     =>  $this->attachment->name,
      +                        'type'      =>  $this->attachment->type,
      +                        'size'      =>  $this->attachment->size,
      +                        'isImage'   =>  $this->attachment->isImage,
      +                        'url'       =>  $this->attachment->url,
      +                        'permalink' =>  $this->permalink
      +                    ));
      +                }
      +            }
      +        }
      +
      +        $this->response->setStatus(500);
      +    }
      +
      +    /**
      +     * 执行升级程序
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function modify()
      +    {
      +        if (!empty($_FILES)) {
      +            $file = array_pop($_FILES);
      +            if (0 == $file['error'] && is_uploaded_file($file['tmp_name'])) {
      +                $this->db->fetchRow($this->select()->where('table.contents.cid = ?', $this->request->filter('int')->cid)
      +                    ->where('table.contents.type = ?', 'attachment'), array($this, 'push'));
      +
      +                if (!$this->have()) {
      +                    $this->response->setStatus(404);
      +                    exit;
      +                }
      +
      +                if (!$this->allow('edit')) {
      +                    $this->response->setStatus(403);
      +                    exit;
      +                }
      +
      +                $result = self::modifyHandle($this->row, $file);
      +
      +                if (false === $result) {
      +                    $this->response->setStatus(502);
      +                    exit;
      +                } else {
      +
      +                    $this->update(array(
      +                        'text'      =>  serialize($result)
      +                    ), $this->db->sql()->where('cid = ?', $this->cid));
      +
      +                    $this->db->fetchRow($this->select()->where('table.contents.cid = ?', $this->cid)
      +                    ->where('table.contents.type = ?', 'attachment'), array($this, 'push'));
      +
      +                    /** 增加插件接口 */
      +                    $this->pluginHandle()->modify($this);
      +
      +                    $this->response->throwJson(array(
      +                        'cid'       =>  $this->cid,
      +                        'title'     =>  $this->attachment->name,
      +                        'type'      =>  $this->attachment->type,
      +                        'size'      =>  $this->attachment->size,
      +                        'isImage'   =>  $this->attachment->isImage,
      +                        'url'       =>  $this->attachment->url,
      +                        'permalink' =>  $this->permalink
      +                    ));
      +                }
      +            }
      +        }
      +
      +        $this->response->setStatus(500);
      +    }
      +
      +    /**
      +     * 初始化函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        if ($this->user->pass('contributor', true) && $this->request->isPost()) {
      +            if ($this->request->is('do=modify&cid')) {
      +                $this->modify();
      +            } else {
      +                $this->upload();
      +            }
      +        } else {
      +            $this->response->setStatus(403);
      +        }
      +    }
      +}
      diff --git a/var/Widget/User.php b/var/Widget/User.php
      new file mode 100644
      index 00000000..55c3541b
      --- /dev/null
      +++ b/var/Widget/User.php
      @@ -0,0 +1,268 @@
      +<?php
      +
      +/**
      + * 当前登录用户
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_User extends Typecho_Widget
      +{
      +    /**
      +     * 用户
      +     *
      +     * @access private
      +     * @var array
      +     */
      +    private $_user;
      +
      +    /**
      +     * 是否已经登录
      +     *
      +     * @access private
      +     * @var boolean
      +     */
      +    private $_hasLogin = NULL;
      +
      +    /**
      +     * 全局选项
      +     *
      +     * @access protected
      +     * @var Widget_Options
      +     */
      +    protected $options;
      +
      +    /**
      +     * 数据库对象
      +     *
      +     * @access protected
      +     * @var Typecho_Db
      +     */
      +    protected $db;
      +
      +    /**
      +     * 用户组
      +     *
      +     * @access public
      +     * @var array
      +     */
      +    public $groups = array(
      +            'administrator' => 0,
      +            'editor'		=> 1,
      +            'contributor'	=> 2,
      +            'subscriber'	=> 3,
      +            'visitor'		=> 4
      +            );
      +
      +    /**
      +     * 构造函数,初始化组件
      +     *
      +     * @access public
      +     * @param mixed $request request对象
      +     * @param mixed $response response对象
      +     * @param mixed $params 参数列表
      +     * @return void
      +     */
      +    public function __construct($request, $response, $params = NULL)
      +    {
      +        parent::__construct($request, $response, $params);
      +
      +        /** 初始化数据库 */
      +        $this->db = Typecho_Db::get();
      +        $this->options = $this->widget('Widget_Options');
      +    }
      +
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        if ($this->hasLogin()) {
      +            $rows = $this->db->fetchAll($this->db->select()
      +            ->from('table.options')->where('user = ?', $this->_user['uid']));
      +
      +            $this->push($this->_user);
      +
      +            foreach ($rows as $row) {
      +                $this->options->__set($row['name'], $row['value']);
      +            }
      +
      +            //更新最后活动时间
      +            $this->db->query($this->db
      +            ->update('table.users')
      +            ->rows(array('activated' => $this->options->gmtTime))
      +            ->where('uid = ?', $this->_user['uid']));
      +        }
      +    }
      +
      +    /**
      +     * 以用户名和密码登录
      +     *
      +     * @access public
      +     * @param string $name 用户名
      +     * @param string $password 密码
      +     * @param boolean $temporarily 是否为临时登录
      +     * @param integer $expire 过期时间
      +     * @return boolean
      +     */
      +    public function login($name, $password, $temporarily = false, $expire = 0)
      +    {
      +        //插件接口
      +        $result = $this->pluginHandle()->trigger($loginPluggable)->login($name, $password, $temporarily, $expire);
      +        if ($loginPluggable) {
      +            return $result;
      +        }
      +
      +        /** 开始验证用户 **/
      +        $user = $this->db->fetchRow($this->db->select()
      +        ->from('table.users')
      +        ->where('name = ?', $name)
      +        ->limit(1));
      +
      +        $hashValidate = $this->pluginHandle()->trigger($hashPluggable)->hashValidate($password, $user['password']);
      +        if (!$hashPluggable) {
      +            $hashValidate = Typecho_Common::hashValidate($password, $user['password']);
      +        }
      +
      +        if ($user && $hashValidate) {
      +
      +            if (!$temporarily) {
      +                $authCode = sha1(Typecho_Common::randString(20));
      +                $user['authCode'] = $authCode;
      +
      +                Typecho_Cookie::set('__typecho_uid', $user['uid'], $expire, $this->options->siteUrl);
      +                Typecho_Cookie::set('__typecho_authCode', Typecho_Common::hash($authCode),
      +                $expire, $this->options->siteUrl);
      +
      +                //更新最后登录时间以及验证码
      +                $this->db->query($this->db
      +                ->update('table.users')
      +                ->expression('logged', 'activated')
      +                ->rows(array('authCode' => $authCode))
      +                ->where('uid = ?', $user['uid']));
      +            }
      +
      +            /** 压入数据 */
      +            $this->push($user);
      +            $this->_hasLogin = true;
      +            $this->pluginHandle()->loginSucceed($this, $name, $password, $temporarily, $expire);
      +
      +            return true;
      +        }
      +
      +        $this->pluginHandle()->loginFail($this, $name, $password, $temporarily, $expire);
      +        return false;
      +    }
      +    
      +    /**
      +     * 只需要提供uid即可登录的方法, 多用于插件等特殊场合
      +     * 
      +     * @access public
      +     * @param integer $uid 用户id
      +     * @return boolean
      +     */
      +    public function simpleLogin($uid)
      +    {
      +        $user = $this->db->fetchRow($this->db->select()
      +        ->from('table.users')
      +        ->where('uid = ?', $uid)
      +        ->limit(1));
      +        
      +        if (empty($user)) {
      +            return false;
      +        }
      +        
      +        $this->push($user);
      +        $this->_hasLogin = true;
      +        
      +        return true;
      +    }
      +
      +    /**
      +     * 用户登出函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function logout()
      +    {
      +        $this->pluginHandle()->trigger($logoutPluggable)->logout();
      +        if ($logoutPluggable) {
      +            return;
      +        }
      +
      +        Typecho_Cookie::delete('__typecho_uid', $this->options->siteUrl);
      +        Typecho_Cookie::delete('__typecho_authCode', $this->options->siteUrl);
      +        Typecho_Cookie::delete('__typecho_feed');
      +        Typecho_Cookie::delete('__typecho_check_version');
      +    }
      +
      +    /**
      +     * 判断用户是否已经登录
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function hasLogin()
      +    {
      +        if (NULL !== $this->_hasLogin) {
      +            return $this->_hasLogin;
      +        } else {
      +            $cookieUid = Typecho_Cookie::get('__typecho_uid');
      +            if (NULL !== $cookieUid) {
      +                /** 验证登陆 */
      +                $user = $this->db->fetchRow($this->db->select()->from('table.users')
      +                ->where('uid = ?', intval($cookieUid))
      +                ->limit(1));
      +
      +                $cookieAuthCode = Typecho_Cookie::get('__typecho_authCode');
      +                if ($user && Typecho_Common::hashValidate($user['authCode'], $cookieAuthCode)) {
      +                    $this->_user = $user;
      +                    return ($this->_hasLogin = true);
      +                }
      +
      +                $this->logout();
      +            }
      +
      +            return ($this->_hasLogin = false);
      +        }
      +    }
      +
      +    /**
      +     * 判断用户权限
      +     *
      +     * @access public
      +     * @param string $group 用户组
      +     * @param boolean $return 是否为返回模式
      +     * @return boolean
      +     * @throws TypechoWidgetException
      +     */
      +    public function pass($group, $return = false)
      +    {
      +        if ($this->hasLogin()) {
      +            if (array_key_exists($group, $this->groups) && $this->groups[$this->group] <= $this->groups[$group]) {
      +                return true;
      +            }
      +        } else {
      +            if ($return) {
      +                return false;
      +            } else {
      +                //防止循环重定向
      +                $this->response->redirect($this->options->loginUrl .
      +                (0 === strpos($this->request->getReferer(), $this->options->loginUrl) ? '' :
      +                '?referer=' . urlencode($this->request->makeUriByRequest())), false);
      +            }
      +        }
      +
      +        if ($return) {
      +            return false;
      +        } else {
      +            throw new Typecho_Widget_Exception(_t('禁止访问'), 403);
      +        }
      +    }
      +}
      diff --git a/var/Widget/Users/Admin.php b/var/Widget/Users/Admin.php
      new file mode 100644
      index 00000000..905ff8db
      --- /dev/null
      +++ b/var/Widget/Users/Admin.php
      @@ -0,0 +1,122 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/**
      + * 后台成员列表组件
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Users_Admin extends Widget_Abstract_Users
      +{
      +    /**
      +     * 分页计算对象
      +     *
      +     * @access private
      +     * @var Typecho_Db_Query
      +     */
      +    private $_countSql;
      +
      +    /**
      +     * 所有文章个数
      +     *
      +     * @access private
      +     * @var integer
      +     */
      +    private $_total = false;
      +
      +    /**
      +     * 分页大小
      +     *
      +     * @access private
      +     * @var integer
      +     */
      +    private $_pageSize;
      +
      +    /**
      +     * 当前页
      +     *
      +     * @access private
      +     * @var integer
      +     */
      +    private $_currentPage;
      +
      +    /**
      +     * 仅仅输出域名和路径
      +     *
      +     * @access protected
      +     * @return string
      +     */
      +    protected function ___domainPath()
      +    {
      +        $parts = parse_url($this->url);
      +        return $parts['host'] . (isset($parts['path']) ? $parts['path'] : NULL);
      +    }
      +
      +    /**
      +     * 发布文章数
      +     *
      +     * @access protected
      +     * @return integer
      +     */
      +    protected function ___postsNum()
      +    {
      +        return $this->db->fetchObject($this->db->select(array('COUNT(cid)' => 'num'))
      +                    ->from('table.contents')
      +                    ->where('table.contents.type = ?', 'post')
      +                    ->where('table.contents.status = ?', 'publish')
      +                    ->where('table.contents.authorId = ?', $this->uid))->num;
      +    }
      +
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        $this->parameter->setDefault('pageSize=20');
      +        $select = $this->select();
      +        $this->_currentPage = $this->request->get('page', 1);
      +
      +        /** 过滤标题 */
      +        if (NULL != ($keywords = $this->request->keywords)) {
      +            $select->where('name LIKE ? OR screenName LIKE ?',
      +            '%' . Typecho_Common::filterSearchQuery($keywords) . '%',
      +            '%' . Typecho_Common::filterSearchQuery($keywords) . '%');
      +        }
      +
      +        $this->_countSql = clone $select;
      +
      +        $select->order('table.users.uid', Typecho_Db::SORT_ASC)
      +        ->page($this->_currentPage, $this->parameter->pageSize);
      +
      +        $this->db->fetchAll($select, array($this, 'push'));
      +    }
      +
      +    /**
      +     * 输出分页
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function pageNav()
      +    {
      +        $query = $this->request->makeUriByRequest('page={page}');;
      +
      +        /** 使用盒状分页 */
      +        $nav = new Typecho_Widget_Helper_PageNavigator_Box(false === $this->_total ? $this->_total = $this->size($this->_countSql) : $this->_total,
      +        $this->_currentPage, $this->parameter->pageSize, $query);
      +        $nav->render('&laquo;', '&raquo;');
      +    }
      +}
      diff --git a/var/Widget/Users/Author.php b/var/Widget/Users/Author.php
      new file mode 100644
      index 00000000..79d73b1b
      --- /dev/null
      +++ b/var/Widget/Users/Author.php
      @@ -0,0 +1,36 @@
      +<?php
      +/**
      + * 相关内容
      + *
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 相关内容组件(根据标签关联)
      + *
      + * @author qining
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Users_Author extends Widget_Abstract_Users
      +{
      +    /**
      +     * 执行函数,初始化数据
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        if ($this->parameter->uid) {
      +            $this->db->fetchRow($this->select()
      +            ->where('uid = ?', $this->parameter->uid), array($this, 'push'));
      +        }
      +    }
      +}
      diff --git a/var/Widget/Users/Edit.php b/var/Widget/Users/Edit.php
      new file mode 100644
      index 00000000..3f4b756b
      --- /dev/null
      +++ b/var/Widget/Users/Edit.php
      @@ -0,0 +1,303 @@
      +<?php
      +/**
      + * 编辑用户
      + *
      + * @link typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 编辑用户组件
      + *
      + * @link typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Users_Edit extends Widget_Abstract_Users implements Widget_Interface_Do
      +{
      +    /**
      +     * 获取页面偏移的URL Query
      +     *
      +     * @access protected
      +     * @param integer $uid 用户id
      +     * @return string
      +     */
      +    protected function getPageOffsetQuery($uid)
      +    {
      +        return 'page=' . $this->getPageOffset('uid', $uid);
      +    }
      +
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        /** 管理员以上权限 */
      +        $this->user->pass('administrator');
      +
      +        /** 更新模式 */
      +        if (($this->request->uid && 'delete' != $this->request->do) || 'update' == $this->request->do) {
      +            $this->db->fetchRow($this->select()
      +            ->where('uid = ?', $this->request->uid)->limit(1), array($this, 'push'));
      +
      +            if (!$this->have()) {
      +                throw new Typecho_Widget_Exception(_t('用户不存在'), 404);
      +            }
      +        }
      +    }
      +
      +    /**
      +     * 获取菜单标题
      +     *
      +     * @access public
      +     * @return string
      +     */
      +    public function getMenuTitle()
      +    {
      +        return _t('编辑用户 %s', $this->name);
      +    }
      +
      +    /**
      +     * 判断用户是否存在
      +     *
      +     * @access public
      +     * @param integer $uid 用户主键
      +     * @return boolean
      +     */
      +    public function userExists($uid)
      +    {
      +        $user = $this->db->fetchRow($this->db->select()
      +        ->from('table.users')
      +        ->where('uid = ?', $uid)->limit(1));
      +
      +        return $user ? true : false;
      +    }
      +
      +    /**
      +     * 生成表单
      +     *
      +     * @access public
      +     * @param string $action 表单动作
      +     * @return Typecho_Widget_Helper_Form
      +     */
      +    public function form($action = NULL)
      +    {
      +        /** 构建表格 */
      +        $form = new Typecho_Widget_Helper_Form(Typecho_Common::url('/action/users-edit', $this->options->index),
      +        Typecho_Widget_Helper_Form::POST_METHOD);
      +
      +        /** 用户名称 */
      +        $name = new Typecho_Widget_Helper_Form_Element_Text('name', NULL, NULL, _t('用户名*'), _t('此用户名将作为用户登录时所用的名称.<br />
      +        请不要与系统中现有的用户名重复.'));
      +        $form->addInput($name);
      +
      +        /** 电子邮箱地址 */
      +        $mail = new Typecho_Widget_Helper_Form_Element_Text('mail', NULL, NULL, _t('电子邮箱地址*'), _t('电子邮箱地址将作为此用户的主要联系方式.<br />
      +        请不要与系统中现有的电子邮箱地址重复.'));
      +        $form->addInput($mail);
      +
      +        /** 用户昵称 */
      +        $screenName = new Typecho_Widget_Helper_Form_Element_Text('screenName', NULL, NULL, _t('用户昵称'), _t('用户昵称可以与用户名不同, 用于前台显示.<br />
      +        如果你将此项留空,将默认使用用户名.'));
      +        $form->addInput($screenName);
      +
      +        /** 用户密码 */
      +        $password = new Typecho_Widget_Helper_Form_Element_Password('password', NULL, NULL, _t('用户密码'), _t('为此用户分配一个密码.<br />
      +        建议使用特殊字符与字母的混编样式,以增加系统安全性.'));
      +        $form->addInput($password);
      +
      +        /** 用户密码确认 */
      +        $confirm = new Typecho_Widget_Helper_Form_Element_Password('confirm', NULL, NULL, _t('用户密码确认'), _t('请确认你的密码, 与上面输入的密码保持一致.'));
      +        $form->addInput($confirm);
      +
      +        /** 个人主页地址 */
      +        $url = new Typecho_Widget_Helper_Form_Element_Text('url', NULL, NULL, _t('个人主页地址'), _t('此用户的个人主页地址, 请用<strong>http://</strong>开头.'));
      +        $form->addInput($url);
      +
      +        /** 用户组 */
      +        $group =  new Typecho_Widget_Helper_Form_Element_Select('group', array('visitor' => _t('访问者'),
      +        'subscriber' => _t('关注者'), 'contributor' => _t('贡献者'), 'editor' => _t('编辑'), 'administrator' => _t('管理员')),
      +        NULL, _t('用户组'), _t('不同的用户组拥有不同的权限.<br />
      +        具体的权限分配表请<a href="http://docs.typecho.org/develop/acl">参考这里</a>.'));
      +        $form->addInput($group);
      +
      +        /** 用户动作 */
      +        $do = new Typecho_Widget_Helper_Form_Element_Hidden('do');
      +        $form->addInput($do);
      +
      +        /** 用户主键 */
      +        $uid = new Typecho_Widget_Helper_Form_Element_Hidden('uid');
      +        $form->addInput($uid);
      +
      +        /** 提交按钮 */
      +        $submit = new Typecho_Widget_Helper_Form_Element_Submit();
      +        $form->addItem($submit);
      +
      +        if (NULL != $this->request->uid) {
      +            $submit->value(_t('编辑用户'));
      +            $name->value($this->name);
      +            $screenName->value($this->screenName);
      +            $url->value($this->url);
      +            $mail->value($this->mail);
      +            $group->value($this->group);
      +            $do->value('update');
      +            $uid->value($this->uid);
      +            $_action = 'update';
      +        } else {
      +            $submit->value(_t('增加用户'));
      +            $do->value('insert');
      +            $_action = 'insert';
      +        }
      +
      +        if (empty($action)) {
      +            $action = $_action;
      +        }
      +
      +        /** 给表单增加规则 */
      +        if ('insert' == $action || 'update' == $action) {
      +            $screenName->addRule(array($this, 'screenNameExists'), _t('昵称已经存在'));
      +            $url->addRule('url', _t('个人主页地址格式错误'));
      +            $mail->addRule('required', _t('必须填写电子邮箱'));
      +            $mail->addRule(array($this, 'mailExists'), _t('电子邮箱地址已经存在'));
      +            $mail->addRule('email', _t('电子邮箱格式错误'));
      +            $password->addRule('minLength', _t('为了保证账户安全, 请输入至少六位的密码'), 6);
      +            $confirm->addRule('confirm', _t('两次输入的密码不一致'), 'password');
      +        }
      +
      +        if ('insert' == $action) {
      +            $name->addRule('required', _t('必须填写用户名称'));
      +            $name->addRule('xssCheck', _t('请不要在用户名中使用特殊字符'));
      +            $name->addRule(array($this, 'nameExists'), _t('用户名已经存在'));
      +            $password->label(_t('用户密码*'));
      +            $confirm->label(_t('用户密码确认*'));
      +            $password->addRule('required', _t('必须填写密码'));
      +        }
      +
      +        if ('update' == $action) {
      +            $name->input->setAttribute('disabled', 'disabled');
      +            $uid->addRule('required', _t('用户主键不存在'));
      +            $uid->addRule(array($this, 'userExists'), _t('用户不存在'));
      +        }
      +
      +        return $form;
      +    }
      +
      +    /**
      +     * 增加用户
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function insertUser()
      +    {
      +        if ($this->form('insert')->validate()) {
      +            $this->response->goBack();
      +        }
      +
      +        /** 取出数据 */
      +        $user = $this->request->from('name', 'mail', 'screenName', 'password', 'url', 'group');
      +        $user['screenName'] = empty($user['screenName']) ? $user['name'] : $user['screenName'];
      +        $user['password'] = Typecho_Common::hash($user['password']);
      +        $user['created'] = $this->options->gmtTime;
      +
      +        /** 插入数据 */
      +        $user['uid'] = $this->insert($user);
      +
      +        /** 设置高亮 */
      +        $this->widget('Widget_Notice')->highlight('user-' . $user['uid']);
      +
      +        /** 提示信息 */
      +        $this->widget('Widget_Notice')->set(_t('用户 %s 已经被增加', $user['screenName']), NULL, 'success');
      +
      +        /** 转向原页 */
      +        $this->response->redirect(Typecho_Common::url('manage-users.php', $this->options->adminUrl));
      +    }
      +
      +    /**
      +     * 更新用户
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function updateUser()
      +    {
      +        if ($this->form('update')->validate()) {
      +            $this->response->goBack();
      +        }
      +
      +        /** 取出数据 */
      +        $user = $this->request->from('mail', 'screenName', 'password', 'url', 'group');
      +        $user['screenName'] = empty($user['screenName']) ? $user['name'] : $user['screenName'];
      +        if (empty($user['password'])) {
      +            unset($user['password']);
      +        } else {
      +            $user['password'] = Typecho_Common::hash($user['password']);
      +        }
      +
      +        /** 更新数据 */
      +        $this->update($user, $this->db->sql()->where('uid = ?', $this->request->uid));
      +
      +        /** 设置高亮 */
      +        $this->widget('Widget_Notice')->highlight('user-' . $this->request->uid);
      +
      +        /** 提示信息 */
      +        $this->widget('Widget_Notice')->set(_t('用户 %s 已经被更新', $user['screenName']), NULL, 'success');
      +
      +        /** 转向原页 */
      +        $this->response->redirect(Typecho_Common::url('manage-users.php?' .
      +        $this->getPageOffsetQuery($this->request->uid), $this->options->adminUrl));
      +    }
      +
      +    /**
      +     * 删除用户
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function deleteUser()
      +    {
      +        $users = $this->request->uid;
      +        $deleteCount = 0;
      +
      +        if ($users && is_array($users)) {
      +            foreach ($users as $user) {
      +                if (1 == $user) {
      +                    continue;
      +                }
      +
      +                if ($this->delete($this->db->sql()->where('uid = ?', $user))) {
      +                    $deleteCount ++;
      +                }
      +            }
      +        }
      +
      +        /** 提示信息 */
      +        $this->widget('Widget_Notice')->set($deleteCount > 0 ? _t('用户已经删除') : _t('没有用户被删除'), NULL,
      +        $deleteCount > 0 ? 'success' : 'notice');
      +
      +        /** 转向原页 */
      +        $this->response->redirect(Typecho_Common::url('manage-users.php', $this->options->adminUrl));
      +    }
      +
      +    /**
      +     * 入口函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        $this->user->pass('administrator');
      +        $this->on($this->request->is('do=insert'))->insertUser();
      +        $this->on($this->request->is('do=update'))->updateUser();
      +        $this->on($this->request->is('do=delete'))->deleteUser();
      +        $this->response->redirect($this->options->adminUrl);
      +    }
      +}
      diff --git a/var/Widget/Users/Profile.php b/var/Widget/Users/Profile.php
      new file mode 100644
      index 00000000..71212711
      --- /dev/null
      +++ b/var/Widget/Users/Profile.php
      @@ -0,0 +1,419 @@
      +<?php
      +/**
      + * 编辑用户
      + *
      + * @link typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + * @version $Id$
      + */
      +
      +/**
      + * 编辑用户组件
      + *
      + * @link typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_Users_Profile extends Widget_Users_Edit implements Widget_Interface_Do
      +{
      +    /**
      +     * 执行函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function execute()
      +    {
      +        /** 注册用户以上权限 */
      +        $this->user->pass('subscriber');
      +        $this->request->setParam('uid', $this->user->uid);
      +    }
      +
      +    /**
      +     * 生成表单
      +     *
      +     * @access public
      +     * @return Typecho_Widget_Helper_Form
      +     */
      +    public function profileForm()
      +    {
      +        /** 构建表格 */
      +        $form = new Typecho_Widget_Helper_Form(Typecho_Common::url('/action/users-profile', $this->options->index),
      +        Typecho_Widget_Helper_Form::POST_METHOD);
      +
      +        /** 用户昵称 */
      +        $screenName = new Typecho_Widget_Helper_Form_Element_Text('screenName', NULL, NULL, _t('昵称'), _t('用户昵称可以与用户名不同, 用于前台显示.<br />
      +        如果你将此项留空,将默认使用用户名.'));
      +        $form->addInput($screenName);
      +
      +        /** 个人主页地址 */
      +        $url = new Typecho_Widget_Helper_Form_Element_Text('url', NULL, NULL, _t('个人主页地址'), _t('此用户的个人主页地址, 请用<strong>http://</strong>开头.'));
      +        $form->addInput($url);
      +
      +        /** 电子邮箱地址 */
      +        $mail = new Typecho_Widget_Helper_Form_Element_Text('mail', NULL, NULL, _t('电子邮箱地址*'), _t('电子邮箱地址将作为此用户的主要联系方式.<br />
      +        请不要与系统中现有的电子邮箱地址重复.'));
      +        $form->addInput($mail);
      +
      +        /** 用户动作 */
      +        $do = new Typecho_Widget_Helper_Form_Element_Hidden('do', NULL, 'profile');
      +        $form->addInput($do);
      +
      +        /** 提交按钮 */
      +        $submit = new Typecho_Widget_Helper_Form_Element_Submit('submit', NULL, _t('更新我的档案'));
      +        $form->addItem($submit);
      +
      +        $screenName->value($this->user->screenName);
      +        $url->value($this->user->url);
      +        $mail->value($this->user->mail);
      +
      +        /** 给表单增加规则 */
      +        $screenName->addRule(array($this, 'screenNameExists'), _t('昵称已经存在'));
      +        $url->addRule('url', _t('个人主页地址格式错误'));
      +        $mail->addRule('required', _t('必须填写电子邮箱'));
      +        $mail->addRule(array($this, 'mailExists'), _t('电子邮箱地址已经存在'));
      +        $mail->addRule('email', _t('电子邮箱格式错误'));
      +
      +        return $form;
      +    }
      +
      +    /**
      +     * 输出表单结构
      +     *
      +     * @access public
      +     * @return Typecho_Widget_Helper_Form
      +     */
      +    public function optionsForm()
      +    {
      +        /** 构建表格 */
      +        $form = new Typecho_Widget_Helper_Form(Typecho_Common::url('/action/users-profile', $this->options->index),
      +        Typecho_Widget_Helper_Form::POST_METHOD);
      +
      +        /** 编辑器 */
      +        /*
      +        $useRichEditor = new Typecho_Widget_Helper_Form_Element_Radio('useRichEditor',
      +        array('0' => _t('文本编辑器'), '1' => _t('所见即所得编辑器')),
      +        $this->options->useRichEditor, _t('编辑器选择'), _t('根据你的个人偏好选择合适的编辑器.'));
      +        $form->addInput($useRichEditor);
      +        */
      +
      +        /** 自动保存 */
      +        $autoSave = new Typecho_Widget_Helper_Form_Element_Radio('autoSave',
      +        array('0' => _t('关闭'), '1' => _t('打开')),
      +        $this->options->autoSave, _t('自动保存'), _t('自动保存功能可以更好地保护你的文章不会丢失.'));
      +        $form->addInput($autoSave);
      +
      +        /** 默认允许 */
      +        $allow = array();
      +        if ($this->options->defaultAllowComment) {
      +            $allow[] = 'comment';
      +        }
      +
      +        if ($this->options->defaultAllowPing) {
      +            $allow[] = 'ping';
      +        }
      +
      +        if ($this->options->defaultAllowFeed) {
      +            $allow[] = 'feed';
      +        }
      +
      +        $defaultAllow = new Typecho_Widget_Helper_Form_Element_Checkbox('defaultAllow',
      +        array('comment' => _t('可以被评论'), 'ping' => _t('可以被引用'), 'feed' => _t('出现在聚合中')),
      +        $allow, _t('默认允许'), _t('设置你经常使用的默认允许权限'));
      +        $form->addInput($defaultAllow);
      +
      +        /** 用户动作 */
      +        $do = new Typecho_Widget_Helper_Form_Element_Hidden('do', NULL, 'options');
      +        $form->addInput($do);
      +
      +        /** 提交按钮 */
      +        $submit = new Typecho_Widget_Helper_Form_Element_Submit('submit', NULL, _t('保存设置'));
      +        $form->addItem($submit);
      +
      +        return $form;
      +    }
      +
      +    /**
      +     * 输出自定义设置选项
      +     *
      +     * @access public
      +     * @param string $pluginName 插件名称
      +     * @param string $className 类名称
      +     * @param string $pluginFileName 插件文件名
      +     * @param string $group 用户组
      +     * @return Typecho_Widget_Helper_Form
      +     */
      +    public function personalForm($pluginName, $className, $pluginFileName, &$group)
      +    {
      +        /** 构建表格 */
      +        $form = new Typecho_Widget_Helper_Form(Typecho_Common::url('/action/users-profile', $this->options->index),
      +        Typecho_Widget_Helper_Form::POST_METHOD);
      +        $form->setAttribute('name', $pluginName);
      +        $form->setAttribute('id', $pluginName);
      +
      +        require_once $pluginFileName;
      +        $group = call_user_func(array($className, 'personalConfig'), $form);
      +        $group = $group ? $group : 'subscriber';
      +
      +        $options = $this->options->personalPlugin($pluginName);
      +
      +        if (!empty($options)) {
      +            foreach ($options as $key => $val) {
      +                $form->getInput($key)->value($val);
      +            }
      +        }
      +
      +        $form->addItem(new Typecho_Widget_Helper_Form_Element_Hidden('do', NULL, 'personal'));
      +        $form->addItem(new Typecho_Widget_Helper_Form_Element_Hidden('plugin', NULL, $pluginName));
      +        $form->addItem(new Typecho_Widget_Helper_Form_Element_Submit(NULL, NULL, _t('保存设置')));
      +        return $form;
      +    }
      +
      +    /**
      +     * 自定义设置列表
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function personalFormList()
      +    {
      +        $this->widget('Widget_Plugins_List_Activated')->to($plugins);
      +        while ($plugins->next()) {
      +            if ($plugins->personalConfig) {
      +                echo '<h3>' . $plugins->title . '</h3>';
      +                list($pluginFileName, $className) = Typecho_Plugin::portal($plugins->name,
      +                __TYPECHO_ROOT_DIR__ . '/' . __TYPECHO_PLUGIN_DIR__);
      +
      +                $form = $this->personalForm($plugins->name, $className, $pluginFileName, $group);
      +                if ($this->user->pass($group, true)) {
      +                    $form->render();
      +                }
      +            }
      +        }
      +    }
      +
      +    /**
      +     * 生成表单
      +     *
      +     * @access public
      +     * @return Typecho_Widget_Helper_Form
      +     */
      +    public function passwordForm()
      +    {
      +        /** 构建表格 */
      +        $form = new Typecho_Widget_Helper_Form(Typecho_Common::url('/action/users-profile', $this->options->index),
      +        Typecho_Widget_Helper_Form::POST_METHOD);
      +
      +        /** 用户密码 */
      +        $password = new Typecho_Widget_Helper_Form_Element_Password('password', NULL, NULL, _t('用户密码'), _t('为此用户分配一个密码.<br />
      +        建议使用特殊字符与字母的混编样式,以增加系统安全性.'));
      +        $form->addInput($password);
      +
      +        /** 用户密码确认 */
      +        $confirm = new Typecho_Widget_Helper_Form_Element_Password('confirm', NULL, NULL, _t('用户密码确认'), _t('请确认你的密码, 与上面输入的密码保持一致.'));
      +        $form->addInput($confirm);
      +
      +        /** 用户动作 */
      +        $do = new Typecho_Widget_Helper_Form_Element_Hidden('do', NULL, 'password');
      +        $form->addInput($do);
      +
      +        /** 提交按钮 */
      +        $submit = new Typecho_Widget_Helper_Form_Element_Submit('submit', NULL, _t('更新密码'));
      +        $form->addItem($submit);
      +
      +        $password->addRule('required', _t('必须填写密码'));
      +        $password->addRule('minLength', _t('为了保证账户安全, 请输入至少六位的密码'), 6);
      +        $confirm->addRule('confirm', _t('两次输入的密码不一致'), 'password');
      +
      +        return $form;
      +    }
      +
      +    /**
      +     * 更新用户
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function updateProfile()
      +    {
      +        if ($this->profileForm()->validate()) {
      +            $this->response->goBack();
      +        }
      +
      +        /** 取出数据 */
      +        $user = $this->request->from('mail', 'screenName', 'url');
      +        $user['screenName'] = empty($user['screenName']) ? $user['name'] : $user['screenName'];
      +
      +        /** 更新数据 */
      +        $this->update($user, $this->db->sql()->where('uid = ?', $this->user->uid));
      +
      +        /** 设置高亮 */
      +        $this->widget('Widget_Notice')->highlight('user-' . $this->user->uid);
      +
      +        /** 提示信息 */
      +        $this->widget('Widget_Notice')->set(_t('您的档案已经更新'), NULL, 'success');
      +
      +        /** 转向原页 */
      +        $this->response->goBack();
      +    }
      +
      +    /**
      +     * 执行更新动作
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function updateOptions()
      +    {
      +        $settings['autoSave'] = $this->request->autoSave ? 1 : 0;
      +        //$settings['useRichEditor'] = $this->request->useRichEditor;
      +
      +        $settings['defaultAllowComment'] = is_array($this->request->defaultAllow)
      +        && in_array('comment', $this->request->defaultAllow) ? 1 : 0;
      +
      +        $settings['defaultAllowPing'] = is_array($this->request->defaultAllow)
      +        && in_array('ping', $this->request->defaultAllow) ? 1 : 0;
      +
      +        $settings['defaultAllowFeed'] = is_array($this->request->defaultAllow)
      +        && in_array('feed', $this->request->defaultAllow) ? 1 : 0;
      +
      +        foreach ($settings as $name => $value) {
      +            if ($this->db->fetchObject($this->db->select(array('COUNT(*)' => 'num'))
      +            ->from('table.options')->where('name = ? AND user = ?', $name, $this->user->uid))->num > 0) {
      +                $this->widget('Widget_Abstract_Options')
      +                ->update(array('value' => $value), $this->db->sql()->where('name = ? AND user = ?', $name, $this->user->uid));
      +            } else {
      +                $this->widget('Widget_Abstract_Options')->insert(array(
      +                    'name'  =>  $name,
      +                    'value' =>  $value,
      +                    'user'  =>  $this->user->uid
      +                ));
      +            }
      +        }
      +
      +        $this->widget('Widget_Notice')->set(_t("设置已经保存"), NULL, 'success');
      +        $this->response->goBack();
      +    }
      +
      +    /**
      +     * 更新密码
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function updatePassword()
      +    {
      +        /** 验证格式 */
      +        if ($this->passwordForm()->validate()) {
      +            $this->response->goBack();
      +        }
      +
      +        $password = Typecho_Common::hash($this->request->password);
      +
      +        /** 更新数据 */
      +        $this->update(array('password' => $password),
      +        $this->db->sql()->where('uid = ?', $this->user->uid));
      +
      +        /** 设置高亮 */
      +        $this->widget('Widget_Notice')->highlight('user-' . $this->user->uid);
      +
      +        /** 提示信息 */
      +        $this->widget('Widget_Notice')->set(_t('密码已经成功修改'), NULL, 'success');
      +
      +        /** 转向原页 */
      +        $this->response->goBack();
      +    }
      +
      +    /**
      +     * 更新个人设置
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function updatePersonal()
      +    {
      +        /** 获取插件名称 */
      +        $pluginName = $this->request->plugin;
      +
      +        /** 获取已激活插件 */
      +        $plugins = Typecho_Plugin::export();
      +        $activatedPlugins = $plugins['activated'];
      +
      +        /** 获取插件入口 */
      +        list($pluginFileName, $className) = Typecho_Plugin::portal($this->request->plugin,
      +        __TYPECHO_ROOT_DIR__ . '/' . __TYPECHO_PLUGIN_DIR__);
      +        $info = Typecho_Plugin::parseInfo($pluginFileName);
      +
      +        if (!$info['personalConfig'] || !isset($activatedPlugins[$pluginName])) {
      +            throw new Typecho_Widget_Exception(_t('无法配置插件'), 500);
      +        }
      +
      +        $form = $this->personalForm($pluginName, $className, $pluginFileName, $group);
      +        $this->user->pass($group);
      +
      +        /** 验证表单 */
      +        if ($form->validate()) {
      +            $this->response->goBack();
      +        }
      +
      +        $settings = $form->getAllRequest();
      +        unset($settings['do'], $settings['plugin']);
      +        $name = '_plugin:' . $pluginName;
      +
      +        if (!$this->personalConfigHandle($className, $settings)) {
      +            if ($this->db->fetchObject($this->db->select(array('COUNT(*)' => 'num'))
      +            ->from('table.options')->where('name = ? AND user = ?', $name, $this->user->uid))->num > 0) {
      +                $this->widget('Widget_Abstract_Options')
      +                ->update(array('value' => serialize($settings)), $this->db->sql()->where('name = ? AND user = ?', $name, $this->user->uid));
      +            } else {
      +                $this->widget('Widget_Abstract_Options')->insert(array(
      +                    'name'  =>  $name,
      +                    'value' =>  serialize($settings),
      +                    'user'  =>  $this->user->uid
      +                ));
      +            }
      +        }
      +
      +        /** 提示信息 */
      +        $this->widget('Widget_Notice')->set(_t("%s 设置已经保存", $info['title']), NULL, 'success');
      +
      +        /** 转向原页 */
      +        $this->response->redirect(Typecho_Common::url('profile.php', $this->options->adminUrl));
      +    }
      +
      +    /**
      +     * 用自有函数处理自定义配置信息
      +     *
      +     * @access public
      +     * @param string $className 类名
      +     * @param array $settings 配置值
      +     * @return boolean
      +     */
      +    public function personalConfigHandle($className, array $settings)
      +    {
      +        if (method_exists($className, 'personalConfigHandle')) {
      +            call_user_func(array($className, 'personalConfigHandle'), $settings, false);
      +            return true;
      +        }
      +
      +        return false;
      +    }
      +
      +    /**
      +     * 入口函数
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        $this->on($this->request->is('do=profile'))->updateProfile();
      +        $this->on($this->request->is('do=options'))->updateOptions();
      +        $this->on($this->request->is('do=password'))->updatePassword();
      +        $this->on($this->request->is('do=personal&plugin'))->updatePersonal();
      +        $this->response->redirect($this->options->siteUrl);
      +    }
      +}
      diff --git a/var/Widget/XmlRpc.php b/var/Widget/XmlRpc.php
      new file mode 100644
      index 00000000..6afd17e5
      --- /dev/null
      +++ b/var/Widget/XmlRpc.php
      @@ -0,0 +1,2093 @@
      +<?php
      +/**
      + * Typecho Blog Platform
      + *
      + * @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license    GNU General Public License 2.0
      + * @version    $Id$
      + */
      +
      +/**
      + * XmlRpc接口
      + *
      + * @author blankyao
      + * @category typecho
      + * @package Widget
      + * @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
      + * @license GNU General Public License 2.0
      + */
      +class Widget_XmlRpc extends Widget_Abstract_Contents implements Widget_Interface_Do
      +{
      +    /**
      +     * 当前错误
      +     *
      +     * @access private
      +     * @var IXR_Error
      +     */
      +    private $error;
      +    
      +    /**
      +     * wordpress风格的系统选项
      +     * 
      +     * @access private
      +     * @var array
      +     */
      +    private $_wpOptions;
      +    
      +    /**
      +     * 已经使用过的组件列表
      +     * 
      +     * @access private
      +     * @var array
      +     */
      +    private $_usedWidgetNameList = array();
      +    
      +    /**
      +     * 获取扩展字段
      +     * 
      +     * @access private
      +     * @param Widget_Abstract_Contents $content
      +     * @return array
      +     */
      +    private function getPostExtended(Widget_Abstract_Contents $content)
      +    {
      +        //根据客户端显示来判断是否显示html代码
      +        $agent = $this->request->getAgent();
      +        $text = '';
      +        
      +        switch (true) {
      +            case false !== strpos($agent, 'wp-iphone'):   // wordpress iphone客户端
      +            case false !== strpos($agent, 'wp-blackberry'):  // 黑莓
      +            case false !== strpos($agent, 'wp-andriod'):  // andriod
      +            case false !== strpos($agent, 'plain-text'):  // 这是预留给第三方开发者的接口, 用于强行调用非所见即所得数据
      +                $text = $content->text;
      +                break;
      +            default:
      +                $text = $content->content;
      +                break;
      +        }
      +    
      +        $post = explode('<!--more-->', $text, 2);
      +        return array(Typecho_Common::fixHtml($post[0]), isset($post[1]) ? Typecho_Common::fixHtml($post[1]) : NULL);
      +    }
      +    
      +    /**
      +     * 将typecho的状态类型转换为wordperss的风格
      +     * 
      +     * @access private
      +     * @param string $status typecho的状态
      +     * @param string $type 内容类型
      +     * @return string
      +     */
      +    private function typechoToWordpressStatus($status, $type = 'post')
      +    {
      +        if ('post' == $type) {
      +            /** 文章状态 */
      +            switch ($status) {
      +                case 'waiting':
      +                    return 'pending';
      +                case 'publish':
      +                case 'draft':
      +                case 'private':
      +                    return $status;
      +                default:
      +                    return 'publish';
      +            }
      +        } else if ('page' == $type) {
      +            switch ($status) {
      +                case 'publish':
      +                case 'draft':
      +                case 'private':
      +                    return $status;
      +                default:
      +                    return 'publish';
      +            }
      +        } else if ('comment' == $type) {
      +            switch ($status) {
      +                case 'publish':
      +                case 'approved':
      +                    return 'approve';
      +                case 'waiting':
      +                    return 'hold';
      +                case 'spam':
      +                    return $status;
      +                default:
      +                    return 'approve';
      +            }
      +        }
      +        
      +        return '';
      +    }
      +    
      +    /**
      +     * 将wordpress的状态类型转换为typecho的风格
      +     * 
      +     * @access private
      +     * @param string $status wordpress的状态
      +     * @param string $type 内容类型
      +     * @return string
      +     */
      +    private function wordpressToTypechoStatus($status, $type = 'post')
      +    {
      +        if ('post' == $type) {
      +            /** 文章状态 */
      +            switch ($status) {
      +                case 'pending':
      +                    return 'waiting';
      +                case 'publish':
      +                case 'draft':
      +                case 'private':
      +                case 'waiting':
      +                    return $status;
      +                default:
      +                    return 'publish';
      +            }
      +        } else if ('page' == $type) {
      +            switch ($status) {
      +                case 'publish':
      +                case 'draft':
      +                case 'private':
      +                    return $status;
      +                default:
      +                    return 'publish';
      +            }
      +        } else if ('comment' == $type) {
      +            switch ($status) {
      +                case 'approve':
      +                case 'publish':
      +                case 'approved':
      +                    return 'approved';
      +                case 'hold':
      +                case 'waiting':
      +                    return 'waiting';
      +                case 'spam':
      +                    return $status;
      +                default:
      +                    return 'approved';
      +            }
      +        }
      +        
      +        return '';
      +    }
      +    
      +    /**
      +     * 代理工厂方法,将类静态化放置到列表中
      +     *
      +     * @access public
      +     * @param string $alias 组件别名
      +     * @param mixed $params 传递的参数
      +     * @param mixed $request 前端参数
      +     * @param boolean $enableResponse 是否允许http回执
      +     * @return object
      +     * @throws Typecho_Exception
      +     */
      +    private function singletonWidget($alias, $params = NULL, $request = NULL, $enableResponse = true)
      +    {
      +        $this->_usedWidgetNameList[] = $alias;
      +        return Typecho_Widget::widget($alias, $params, $request, $enableResponse);
      +    }
      +
      +    /**
      +     * 如果这里没有重载, 每次都会被默认执行
      +     *
      +     * @access public
      +     * @param boolen $run 是否执行
      +     * @return void
      +     */
      +    public function execute($run = false)
      +    {
      +        if ($run) {
      +            parent::execute();
      +        }
      +        
      +        $this->_wpOptions = array(
      +			// Read only options
      +			'software_name'		=> array(
      +				'desc'			=> _t( '软件名称' ),
      +				'readonly'		=> true,
      +				'value'			=> $this->options->software
      +			),
      +			'software_version'	=> array(
      +				'desc'			=> _t( '软件版本' ),
      +				'readonly'		=> true,
      +				'value'			=> $this->options->version
      +			),
      +			'blog_url'			=> array(
      +				'desc'			=> _t( '博客地址' ),
      +				'readonly'		=> true,
      +				'option'		=> 'siteUrl'
      +			),
      +
      +			// Updatable options
      +			'time_zone'			=> array(
      +				'desc'			=> _t( '时区' ),
      +				'readonly'		=> false,
      +				'option'		=> 'timezone'
      +			),
      +			'blog_title'		=> array(
      +				'desc'			=> _t( '博客标题' ),
      +				'readonly'		=> false,
      +				'option'			=> 'title'
      +			),
      +			'blog_tagline'		=> array(
      +				'desc'			=> _t( '博客关键字' ),
      +				'readonly'		=> false,
      +				'option'		=> 'description'
      +			),
      +			'date_format'		=> array(
      +				'desc'			=> _t( '日期格式' ),
      +				'readonly'		=> false,
      +				'option'		=> 'postDateFormat'
      +			),
      +			'time_format'		=> array(
      +				'desc'			=> _t( '时间格式' ),
      +				'readonly'		=> false,
      +				'option'		=> 'postDateFormat'
      +			),
      +			'users_can_register'	=> array(
      +				'desc'			=> _t( '是否允许注册' ),
      +				'readonly'		=> false,
      +				'option'		=> 'allowRegister'
      +			)
      +		);
      +    }
      +
      +    /**
      +     * 检查权限
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function checkAccess($name, $password, $level = 'contributor')
      +    {
      +        if ($this->user->login($name, $password, true)) {
      +            /** 验证权限 */
      +            if ($this->user->pass($level, true)) {
      +                return true;
      +            } else {
      +                $this->error = new IXR_Error(403, _t('权限不足'));
      +                return false;
      +            }
      +        } else {
      +            $this->error = new IXR_Error(403, _t('无法登陆, 密码错误'));
      +            return false;
      +        }
      +    }
      +
      +    /** about wp xmlrpc api, you can see http://codex.wordpress.org/XML-RPC*/
      +
      +    /**
      +     * 获取pageId指定的page
      +     *
      +     * @param int $blogId
      +     * @param int $pageId
      +     * @param string $userName
      +     * @param string $password
      +     * @access public
      +     * @return struct $pageStruct
      +     */
      +    public function wpGetPage($blogId, $pageId, $userName, $password)
      +    {
      +        /** 检查权限 */
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +
      +        /** 获取页面 */
      +        try {
      +            /** 由于Widget_Contents_Page_Edit是从request中获取参数, 因此我们需要强行设置flush一下request */
      +            /** widget方法的第三个参数可以指定强行转换传入此widget的request参数 */
      +            /** 此组件会进行复杂的权限检测 */
      +            $page = $this->singletonWidget('Widget_Contents_Page_Edit', NULL, "cid={$pageId}");
      +        } catch (Typecho_Widget_Exception $e) {
      +            /** 截获可能会抛出的异常(参见 Widget_Contents_Page_Edit 的 execute 方法) */
      +            return new IXR_Error($e->getCode(), $e->getMessage());
      +        }
      +
      +        /** 对文章内容做截取处理,以获得description和text_more*/
      +        list($excerpt, $more) = $this->getPostExtended($page);
      +
      +        $pageStruct = array(
      +            'dateCreated'   => new IXR_Date($this->options->timezone + $page->created),
      +            'userid'        => $page->authorId,
      +            'page_id'       => $page->cid,
      +            'page_status'   => $this->typechoToWordpressStatus($page->status, 'page'),
      +            'description'   => $excerpt,
      +            'title'         => $page->title,
      +            'link'          => $page->permalink,
      +            'permalink'     => $page->permalink,
      +            'categories'    => $page->categories,
      +            'excerpt'       => $page->description,
      +            'text_more'     => $more,
      +            'mt_allow_comments' => intval($page->allowComment),
      +            'mt_allow_pings'    => intval($page->allowPing),
      +            'wp_slug'       => $page->slug,
      +            'wp_password'   => $page->password,
      +            'wp_author'     => $page->author->name,
      +            'wp_page_parent_id' => '0',
      +            'wp_page_parent_title' => '',
      +            'wp_page_order' => $page->order,     //meta是描述字段, 在page时表示顺序
      +            'wp_author_id'  => $page->authorId,
      +            'wp_author_display_name' => $page->author->screenName,
      +            'date_created_gmt'  => new IXR_Date($page->created),
      +            'custom_fields'     => array(),
      +            'wp_page_template'  =>  $page->template
      +        );
      +
      +        return $pageStruct;
      +    }
      +
      +    /**
      +     * 获取所有的page
      +     *
      +     * @param int $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @access public
      +     * @return array(contains $pageStruct)
      +     */
      +    public function wpGetPages($blogId, $userName, $password)
      +    {
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +
      +        /** 过滤type为page的contents */
      +        /** 同样需要flush一下, 需要取出所有status的页面 */
      +        $pages = $this->singletonWidget('Widget_Contents_Page_Admin', NULL, 'status=all');
      +
      +        /** 初始化要返回的数据结构 */
      +        $pageStructs = array();
      +
      +        while ($pages->next()) {
      +            /** 对文章内容做截取处理,以获得description和text_more*/
      +            list($excerpt, $more) = $this->getPostExtended($pages);
      +            $pageStructs[] = array(
      +                'dateCreated'   => new IXR_Date($this->options->timezone + $pages->created),
      +                'userid'        => $pages->authorId,
      +                'page_id'       => $pages->cid,
      +                /** todo:此处有疑问 */
      +                'page_status'   => $this->typechoToWordpressStatus($pages->status, 'page'),
      +                'description'   => $excerpt,
      +                'title'         => $pages->title,
      +                'link'          => $pages->permalink,
      +                'permalink'     => $pages->permalink,
      +                'categories'    => $pages->categories,
      +                'excerpt'       => $pages->description,
      +                'text_more'     => $more,
      +                'mt_allow_comments' => intval($pages->allowComment),
      +                'mt_allow_pings'    => intval($pages->allowPing),
      +                'wp_slug'       => $pages->slug,
      +                'wp_password'   => $pages->password,
      +                'wp_author'     => $pages->author->name,
      +                'wp_page_parent_id' => '0',
      +                'wp_page_parent_title' => '',
      +                'wp_page_order' => $pages->order,     //meta是描述字段, 在page时表示顺序
      +                'wp_author_id'  => $pages->authorId,
      +                'wp_author_display_name' => $pages->author->screenName,
      +                'date_created_gmt'  => new IXR_Date($pages->created),
      +                'custom_fields'     => array(),
      +                'wp_page_template'  =>  $pages->template
      +            );
      +        }
      +
      +        return $pageStructs;
      +    }
      +
      +    /**
      +     * 撰写一个新page
      +     *
      +     * @param int $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @param struct $content
      +     * @param bool $publish
      +     * @access public
      +     * @return void
      +     */
      +    public function wpNewPage($blogId, $userName, $password, $content, $publish)
      +    {
      +        if (!$this->checkAccess($userName, $password, 'editor')) {
      +            return $this->error;
      +        }
      +        $content['post_type'] = 'page';
      +        $this->mwNewPost($blogId, $userName, $password, $content, $publish);
      +    }
      +
      +    /**
      +     * 删除pageId指定的page
      +     *
      +     * @param int $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @param int $pageId
      +     * @access public
      +     * @return bool
      +     */
      +    public function wpDeletePage($blogId, $userName, $password, $pageId)
      +    {
      +        if (!$this->checkAccess($userName, $password, 'editor')) {
      +            return $this->error;
      +        }
      +
      +        /** 删除页面 */
      +        try {
      +            /** 此组件会进行复杂的权限检测 */
      +            $this->singletonWidget('Widget_Contents_Page_Edit', NULL, "cid={$pageId}", false)->deletePage();
      +        } catch (Typecho_Widget_Exception $e) {
      +            /** 截获可能会抛出的异常(参见 Widget_Contents_Page_Edit 的 execute 方法) */
      +            return new IXR_Error($e->getCode(), $e->getMessage());
      +        }
      +
      +        return true;
      +    }
      +
      +    /**
      +     * 编辑pageId指定的page
      +     *
      +     * @param int $blogId
      +     * @param int $pageId
      +     * @param string $userName
      +     * @param string $password
      +     * @param struct $content
      +     * @param bool $publish
      +     * @access public
      +     * @return bool
      +     */
      +    public function wpEditPage($blogId, $pageId, $userName, $password, $content, $publish)
      +    {
      +        $content['type'] = 'page';
      +        $this->mwEditPost($blogId, $pageId, $userName, $password, $content, $publish);
      +    }
      +
      +    /**
      +     * 获取page列表,没有wpGetPages获得的详细
      +     *
      +     * @param int $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @access public
      +     * @return array
      +     */
      +    public function wpGetPageList($blogId, $userName, $password)
      +    {
      +        if (!$this->checkAccess($userName, $password, 'editor')) {
      +            return ($this->error);
      +        }
      +        $pages = $this->singletonWidget('Widget_Contents_Page_Admin', NULL, 'status=all');
      +        /**初始化*/
      +        $pageStructs = array();
      +
      +        while ($pages->next()) {
      +            $pageStructs[] = array(
      +                'dateCreated'       => new IXR_Date($this->options->timezone + $pages->created),
      +                'date_created_gmt'  => new IXR_Date($this->options->timezone + $pages->created),
      +                'page_id'           => $pages->cid,
      +                'page_title'        => $pages->title,
      +                'page_parent_id'    => '0',
      +            );
      +        }
      +
      +        return $pageStructs;
      +    }
      +
      +    /**
      +     * 获得一个由blog所有作者的信息组成的数组
      +     *
      +     * @param int $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @access public
      +     * @return struct
      +     */
      +    public function wpGetAuthors($blogId, $userName, $password)
      +    {
      +        if (!$this->checkAccess($userName, $password, 'editor')) {
      +            return ($this->error);
      +        }
      +
      +        /** 构建查询*/
      +        $select = $this->db->select('table.users.uid', 'table.users.name', 'table.users.screenName')->from('table.users');
      +        $authors = $this->db->fetchAll($select);
      +
      +        $authorStructs = array();
      +        foreach ($authors as $author) {
      +            $authorStructs[] = array(
      +                'user_id'       => $author['uid'],
      +                'user_login'    => $author['name'],
      +                'display_name'  => $author['screenName']
      +            );
      +        }
      +
      +        return $authorStructs;
      +    }
      +
      +    /**
      +     * 添加一个新的分类
      +     *
      +     * @param int $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @param struct $category
      +     * @access public
      +     * @return void
      +     */
      +    public function wpNewCategory($blogId, $userName, $password, $category)
      +    {
      +        if (!$this->checkAccess($userName, $password)) {
      +            return ($this->error);
      +        }
      +
      +        /** 开始接受数据 */
      +        $input['name'] = $category['name'];
      +        $input['slug'] = Typecho_Common::slugName(empty($category['slug']) ? $category['name'] : $category['slug']);
      +        $input['type'] = 'category';
      +        $input['description'] = isset($category['description']) ? $category['description'] : $category['name'];
      +        $input['do'] = 'insert';
      +
      +        /** 调用已有组件 */
      +        try {
      +            /** 插入 */
      +            $this->singletonWidget('Widget_Metas_Category_Edit', NULL, $input, false)->action();
      +            return $this->singletonWidget('Widget_Notice')->getHighlightId() ? true : false;
      +        } catch (Typecho_Widget_Exception $e) {
      +            return new IXR_Error($e->getCode(), $e->getMessage());
      +        }
      +
      +        return true;
      +    }
      +
      +    /**
      +     * 获取由给定的string开头的链接组成的数组
      +     *
      +     * @param int $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @param string $category
      +     * @param int $max_results
      +     * @access public
      +     * @return array
      +     */
      +    public function wpSuggestCategories($blogId, $userName, $password, $category, $max_results)
      +    {
      +        if (!$this->checkAccess($userName, $password)) {
      +            return ($this->error);
      +        }
      +
      +        $meta = $this->singletonWidget('Widget_Abstract_Metas');
      +
      +        /** 构造出查询语句并且查询*/
      +        $key = Typecho_Common::filterSearchQuery($category);
      +        $key = '%' . $key . '%';
      +        $select = $meta->select()->where('table.metas.type = ? AND (table.metas.name LIKE ? OR slug LIKE ?)', 'category', $key, $key);
      +
      +        /** 不要category push到contents的容器中 */
      +        $categories = $this->db->fetchAll($select);
      +
      +        /** 初始化categorise数组*/
      +        $categoryStructs = array();
      +        foreach ($categories as $category) {
      +            $categoryStructs[] = array(
      +                'category_id'   => $category['mid'],
      +                'category_name' => $category['name'],
      +            );
      +        }
      +
      +        return $categoryStructs;
      +    }
      +    
      +    /**
      +     * 获取用户
      +     * 
      +     * @access public
      +     * @param string $userName 用户名
      +     * @param string $password 密码
      +     * @return array
      +     */
      +    public function wpGetUsersBlogs($userName, $password)
      +    {
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +
      +        $struct = array();
      +        $struct[] = array(
      +            'isAdmin'   => $this->user->pass('administrator', true),
      +            'url'	    => $this->options->siteUrl,
      +            'blogid'    => '1',
      +            'blogName'  => $this->options->title,
      +            'xmlrpc'    => $this->options->xmlRpcUrl
      +        );
      +        
      +        return $struct;
      +    }
      +    
      +    /**
      +     * 获取标签列表
      +     * 
      +     * @access public
      +     * @param integer $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @return array
      +     */
      +    public function wpGetTags($blogId, $userName, $password)
      +    {
      +        /** 检查权限*/
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +        
      +        $struct = array();
      +        $tags = $this->singletonWidget('Widget_Metas_Tag_Cloud');
      +        
      +        while ($tags->next()) {
      +            $struct[] = array(
      +                'tag_id'    =>  $tags->mid,
      +                'name'      =>  $tags->name,
      +                'count'     =>  $tags->count,
      +                'slug'      =>  $tags->slug,
      +                'html_url'  =>  $tags->permalink,
      +                'rss_url'   =>  $tags->feedUrl
      +            );
      +        }
      +        
      +        return $struct;
      +    }
      +    
      +    /**
      +     * 删除分类
      +     * 
      +     * @access public
      +     * @param integer $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @param integer $categoryId
      +     * @return array
      +     */
      +    public function wpDeleteCategory($blogId, $userName, $password, $categoryId)
      +    {
      +        /** 检查权限*/
      +        if (!$this->checkAccess($userName, $password, 'editor')) {
      +            return $this->error;
      +        }
      +        
      +        try {
      +            $this->singletonWidget('Widget_Metas_Category_Edit', NULL, 'do=delete&mid=' . intval($categoryId), false);
      +            return true;
      +        } catch (Typecho_Exception $e) {
      +            return false;
      +        }
      +    }
      +    
      +    /**
      +     * 获取评论数目
      +     * 
      +     * @access public
      +     * @param integer $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @param integer $postId
      +     * @return array
      +     */
      +    public function wpGetCommentCount($blogId, $userName, $password, $postId)
      +    {
      +        /** 检查权限*/
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +        
      +        $stat = $this->singletonWidget('Widget_Stat', NULL, 'cid=' . intval($postId), false);
      +        
      +        return array(
      +            'approved' => $stat->currentPublishedCommentsNum,
      +            'awaiting_moderation' => $stat->currentWaitingCommentsNum,
      +            'spam' => $stat->currentSpamCommentsNum,
      +            'total_comments' => $stat->currentCommentsNum
      +        );
      +    }
      +    
      +    /**
      +     * 获取文章状态列表
      +     * 
      +     * @access public
      +     * @param integer $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @return array
      +     */
      +    public function wpGetPostStatusList($blogId, $userName, $password)
      +    {
      +        /** 检查权限*/
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +        
      +        return array(
      +            'draft'     =>  _t('草稿'),
      +            'pending'   =>  _t('待审核'),
      +            'publish'   =>  _t('已发布')
      +        );
      +    }
      +    
      +    /**
      +     * 获取页面状态列表
      +     * 
      +     * @access public
      +     * @param integer $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @return array
      +     */
      +    public function wpGetPageStatusList($blogId, $userName, $password)
      +    {
      +        /** 检查权限*/
      +        if (!$this->checkAccess($userName, $password, 'editor')) {
      +            return $this->error;
      +        }
      +        
      +        return array(
      +            'draft'     =>  _t('草稿'),
      +            'publish'   =>  _t('已发布')
      +        );
      +    }
      +    
      +    /**
      +     * 获取评论状态列表
      +     * 
      +     * @access public
      +     * @param integer $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @return array
      +     */
      +    public function wpGetCommentStatusList($blogId, $userName, $password)
      +    {
      +        /** 检查权限*/
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +        
      +        return array(
      +            'hold'      =>  _t('待审核'),
      +            'approve'   =>  _t('显示'),
      +            'spam'      =>  _t('垃圾')
      +        );
      +    }
      +    
      +    /**
      +     * 获取页面模板
      +     * 
      +     * @access public
      +     * @param integer $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @return array
      +     */
      +    public function wpGetPageTemplates($blogId, $userName, $password)
      +    {
      +        /** 检查权限*/
      +        if (!$this->checkAccess($userName, $password, 'editor')) {
      +            return $this->error;
      +        }
      +        
      +        $templates = array_flip($this->getTemplates());
      +        $templates['Default'] = '';
      +        
      +        return $templates;
      +    }
      +    
      +    /**
      +     * 获取系统选项
      +     * 
      +     * @access public
      +     * @param integer $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @param array $options
      +     * @return array
      +     */
      +    public function wpGetOptions($blogId, $userName, $password, $options = array())
      +    {
      +        /** 检查权限*/
      +        if (!$this->checkAccess($userName, $password, 'administrator')) {
      +            return $this->error;
      +        }
      +        
      +        $struct = array();
      +        if (empty($options)) {
      +            $options = array_keys($this->_wpOptions);
      +        }
      +        
      +        foreach ($options as $option) {
      +            if (isset($this->_wpOptions[$option])) {
      +                $struct[$option] = $this->_wpOptions[$option];
      +                if (isset($struct[$option]['option'])) {
      +                    $struct[$option]['value'] = $this->options->{$struct[$option]['option']};
      +                    unset($struct[$option]['option']);
      +                }
      +            }
      +        }
      +        
      +        return $struct;
      +    }
      +    
      +    /**
      +     * 设置系统选项
      +     * 
      +     * @access public
      +     * @param integer $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @param array $options
      +     * @return array
      +     */
      +    public function wpSetOptions($blogId, $userName, $password, $options = array())
      +    {
      +        /** 检查权限*/
      +        if (!$this->checkAccess($userName, $password, 'administrator')) {
      +            return $this->error;
      +        }
      +        
      +        $struct = array();
      +        foreach ($options as $option => $value) {
      +            if (isset($this->_wpOptions[$option])) {
      +                $struct[$option] = $this->_wpOptions[$option];
      +                if (isset($struct[$option]['option'])) {
      +                    $struct[$option]['value'] = $this->options->{$struct[$option]['option']};
      +                    unset($struct[$option]['option']);
      +                }
      +            
      +                if (!$this->_wpOptions[$option]['readonly'] && isset($this->_wpOptions[$option]['option'])) {
      +                    if ($db->query($db->update('table.options')
      +                    ->rows(array('value' => $value))
      +                    ->where('name = ?', $this->_wpOptions[$option]['option'])) > 0) {
      +                        $struct[$option]['value'] = $value;
      +                    }
      +                }
      +            }
      +        }
      +        
      +        return $struct;
      +    }
      +    
      +    /**
      +     * 获取评论
      +     * 
      +     * @access public
      +     * @param integer $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @param integer $commentId
      +     * @return array
      +     */
      +    public function wpGetComment($blogId, $userName, $password, $commentId)
      +    {
      +        /** 检查权限*/
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +        
      +        $comment = $this->singletonWidget('Widget_Comments_Edit', NULL, 'do=get&coid=' . intval($commentId), false);
      +        
      +        if (!$comment->have()) {
      +            return new IXR_Error(404, _t('评论不存在'));
      +        }
      +        
      +        if (!$comment->commentIsWriteable()) {
      +            return new IXR_Error(403, _t('没有获取评论的权限'));
      +        }
      +        
      +        return array(
      +            'date_created_gmt'		=> new IXR_Date($this->options->timezone + $comment->created),
      +			'user_id'				=> $comment->authorId,
      +			'comment_id'			=> $comment->coid,
      +			'parent'				=> $comment->parent,
      +			'status'				=> $this->typechoToWordpressStatus($comment->status, 'comment'),
      +			'content'				=> $comment->text,
      +			'link'					=> $comment->permalink,
      +			'post_id'				=> $comment->cid,
      +			'post_title'			=> $comment->title,
      +			'author'				=> $comment->author,
      +			'author_url'			=> $comment->url,
      +			'author_email'			=> $comment->mail,
      +			'author_ip'				=> $comment->ip,
      +			'type'					=> $comment->type
      +        );
      +    }
      +    
      +    /**
      +     * 获取评论列表
      +     * 
      +     * @access public
      +     * @param integer $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @param array $struct
      +     * @return array
      +     */
      +    public function wpGetComments($blogId, $userName, $password, $struct)
      +    {
      +        /** 检查权限*/
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +        
      +        $input = array();
      +        if (!empty($struct['status'])) {
      +            $input['status'] = 'hold' == $input['status'] ? $input['status'] : 
      +                $this->wordpressToTypechoStatus($struct['status']);
      +        } else {
      +            $input['__typecho_all_comments'] = 'on';
      +        }
      +        
      +        if (!empty($struct['post_id'])) {
      +            $input['cid'] = $struct['post_id'];
      +        }
      +        
      +        $pageSize = 10;
      +        if (!empty($struct['number'])) {
      +            $pageSize = abs(intval($struct['number']));
      +        }
      +        
      +        if (!empty($struct['offset'])) {
      +            $offset = abs(intval($struct['offset']));
      +            $input['page'] = ceil($offset / $pageSize);
      +        }
      +        
      +        $comments = $this->singletonWidget('Widget_Comments_Admin', 'pageSize=' . $pageSize, $input, false);
      +        $commentsStruct = array();
      +        
      +        while ($comments->next()) {
      +            $commentsStruct[] = array(
      +                'date_created_gmt'		=> new IXR_Date($this->options->timezone + $comments->created),
      +                'user_id'				=> $comments->authorId,
      +                'comment_id'			=> $comments->coid,
      +                'parent'				=> $comments->parent,
      +                'status'				=> $this->typechoToWordpressStatus($comments->status, 'comment'),
      +                'content'				=> $comments->text,
      +                'link'					=> $comments->permalink,
      +                'post_id'				=> $comments->cid,
      +                'post_title'			=> $comments->title,
      +                'author'				=> $comments->author,
      +                'author_url'			=> $comments->url,
      +                'author_email'			=> $comments->mail,
      +                'author_ip'				=> $comments->ip,
      +                'type'					=> $comments->type
      +            );
      +        }
      +        
      +        return $commentsStruct;
      +    }
      +    
      +    /**
      +     * 获取评论
      +     * 
      +     * @access public
      +     * @param integer $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @param integer $commentId
      +     * @return boolean
      +     */
      +    public function wpDeleteComment($blogId, $userName, $password, $commentId)
      +    {
      +        /** 检查权限*/
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +        
      +        $commentId = abs(intval($commentId));
      +        return intval($this->singletonWidget('Widget_Abstract_Comments')->delete(
      +            $this->db->sql()->where('coid = ?', $commentId))) > 0;
      +    }
      +    
      +    /**
      +     * 编辑评论
      +     * 
      +     * @access public
      +     * @param integer $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @param integer $commentId
      +     * @param array $struct
      +     * @return boolean
      +     */
      +    public function wpEditComment($blogId, $userName, $password, $commentId, $struct)
      +    {
      +        /** 检查权限*/
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +        
      +        $commentId = abs(intval($commentId));
      +        $commentWidget = $this->singletonWidget('Widget_Abstract_Comments');
      +        $where = $this->db->sql()->where('coid = ?', $commentId);
      +        
      +        if (!$commentWidget->commentIsWriteable($where)) {
      +            return new IXR_Error(403, _t('无法编辑此评论'));
      +        }
      +        
      +        $input = array();
      +        
      +        if (isset($struct['date_created_gmt'])) {
      +            $input['created'] = $struct['date_created_gmt']->getTimestamp() - $this->options->timezone + $this->options->serverTimezone;
      +        }
      +        
      +        if (isset($struct['status'])) {
      +            $input['status'] = $this->wordpressToTypechoStatus($struct['status'], 'comment');
      +        }
      +        
      +        if (isset($struct['content'])) {
      +            $input['text'] = $struct['content'];
      +        }
      +        
      +        if (isset($struct['author'])) {
      +            $input['author'] = $struct['author'];
      +        }
      +        
      +        if (isset($struct['author_url'])) {
      +            $input['url'] = $struct['author_url'];
      +        }
      +        
      +        if (isset($struct['author_email'])) {
      +            $input['mail'] = $struct['author_email'];
      +        }
      +        
      +        $result = $commentWidget->update((array) $input, $where);
      +        
      +        if (!$result) {
      +            return new IXR_Error(404, _t('评论不存在'));
      +        }
      +        
      +        return true;
      +    }
      +    
      +    /**
      +     * 更新评论
      +     * 
      +     * @access public
      +     * @param integer $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @param mixed $post
      +     * @param array $struct
      +     * @return boolean
      +     */
      +    public function wpNewComment($blogId, $userName, $password, $path, $struct)
      +    {
      +        /** 检查权限*/
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +        
      +        if (is_numeric($path)) {
      +            $post = $this->singletonWidget('Widget_Archive', 'type=single', 'cid=' . $path, false);
      +        } else {
      +            /** 检查目标地址是否正确*/
      +            $pathInfo = Typecho_Common::url(substr($path, strlen($this->options->index)), '/');
      +            $post = Typecho_Router::match($pathInfo);
      +        }
      +        
      +        /** 这样可以得到cid或者slug*/
      +        if (!isset($post) || !($post instanceof Widget_Archive) || !$post->have() || !$post->is('single')) {
      +            return new IXR_Error(404, _t('这个目标地址不存在'));
      +        }
      +        
      +        $input = array();
      +        $input['permalink'] = $post->pathinfo;
      +        $input['type']  = 'comment';
      +        
      +        if (isset($struct['comment_author'])) {
      +            $input['author'] = $struct['author'];
      +        }
      +        
      +        if (isset($struct['comment_author_email'])) {
      +            $input['mail'] = $struct['author_email'];
      +        }
      +        
      +        if (isset($struct['comment_author_url'])) {
      +            $input['url'] = $struct['author_url'];
      +        }
      +        
      +        if (isset($struct['comment_parent'])) {
      +            $input['parent'] = $struct['comment_parent'];
      +        }
      +        
      +        if (isset($struct['content'])) {
      +            $input['text'] = $struct['content'];
      +        }
      +        
      +        try {
      +            $this->singletonWidget('Widget_Feedback', NULL, $input, false);
      +        } catch (Typecho_Exception $e) {
      +            return new IXR_Error(500, $e->getMessage());
      +        }
      +        
      +        return true;
      +    }
      +
      +    /**about MetaWeblog API, you can see http://www.xmlrpc.com/metaWeblogApi*/
      +    /**
      +     * MetaWeblog API
      +     *
      +     * @param int $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @param struct $content
      +     * @param bool $publish
      +     * @access public
      +     * @return int
      +     */
      +    public function mwNewPost($blogId, $userName, $password, $content, $publish)
      +    {
      +        /** 检查权限*/
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +
      +        /** 取得content内容 */
      +        $input = array();
      +        $type = isset($content['post_type']) && 'page' == $content['post_type'] ? 'page' : 'post';
      +        
      +        $input['title'] = trim($content['title']) == NULL ? _t('未命名文档') : $content['title'];
      +
      +        if (isset($content['slug'])) {
      +            $input['slug'] = $content['slug'];
      +        } else if (isset($content['wp_slug'])) {
      +            //fix issue 338, wlw只发送这个
      +            $input['slug'] = $content['wp_slug'];
      +        }
      +
      +        $input['text'] = !empty($content['mt_text_more']) ? $content['description'] 
      +            . "\n<!--more-->\n" . $content['mt_text_more'] : $content['description'];
      +        $input['text'] = $this->pluginHandle()->textFilter($input['text'], $this); 
      +        
      +        $input['password'] = isset($content["wp_password"]) ? $content["wp_password"] : NULL;
      +        $input['order'] = isset($content["wp_page_order"]) ? $content["wp_page_order"] : NULL;
      +
      +        $input['tags'] = isset($content['mt_keywords']) ? $content['mt_keywords'] : NULL;
      +        $input['category'] = array();
      +
      +        if (isset($content['postId'])) {
      +            $input['cid'] = $content['postId'];
      +        }
      +        
      +        if ('page' == $type && isset($content['wp_page_template'])) {
      +            $input['template'] = $content['wp_page_template'];
      +        }
      +
      +        if (isset($content['dateCreated'])) {
      +            /** 解决客户端与服务器端时间偏移 */
      +            $input['created'] = $content['dateCreated']->getTimestamp() - $this->options->timezone + $this->options->serverTimezone;
      +        }
      +
      +        if (!empty($content['categories']) && is_array($content['categories'])) {
      +            foreach ($content['categories'] as $category) {
      +                if (!$this->db->fetchRow($this->db->select('mid')
      +                ->from('table.metas')->where('type = ? AND name = ?', 'category', $category))) {
      +                    $result = $this->wpNewCategory($blogId, $userName, $password, array('name' => $category));
      +                    if (true !== $result) {
      +                        return $result;
      +                    }
      +                }
      +
      +                $input['category'][] = $this->db->fetchObject($this->db->select('mid')
      +                ->from('table.metas')->where('type = ? AND name = ?', 'category', $category)
      +                ->limit(1))->mid;
      +            }
      +        }
      +
      +        $input['allowComment'] = (isset($content['mt_allow_comments']) && (1 == $content['mt_allow_comments']
      +        || 'open' == $content['mt_allow_comments'])) ? 1 : ((isset($content['mt_allow_comments']) && (0 == $content['mt_allow_comments']
      +        || 'closed' == $content['mt_allow_comments'])) ? 0 : $this->options->defaultAllowComment);
      +
      +        $input['allowPing'] = (isset($content['mt_allow_pings']) && (1 == $content['mt_allow_pings']
      +        || 'open' == $content['mt_allow_pings'])) ? 1 : ((isset($content['mt_allow_pings']) && (0 == $content['mt_allow_pings']
      +        || 'closed' == $content['mt_allow_pings'])) ? 0 : $this->options->defaultAllowPing);
      +
      +        $input['allowFeed'] = $this->options->defaultAllowFeed;
      +        $input['do'] = $publish ? 'publish' : 'save';
      +        
      +        /** 调整状态 */
      +        if (isset($content["{$type}_status"])) {
      +            $status = $this->wordpressToTypechoStatus($content["{$type}_status"], $type);
      +            
      +            if ('publish' == $status || 'waiting' == $status || 'private' == $status) {
      +                $input['do'] = 'publish';
      +                
      +                if ('private' == $status) {
      +                    $input['private'] = 1;
      +                }
      +            } else {
      +                $input['do'] = 'save';
      +            }
      +        }
      +
      +        /** 对未归档附件进行归档 */
      +        $unattached = $this->db->fetchAll($this->select()->where('table.contents.type = ? AND
      +        (table.contents.parent = 0 OR table.contents.parent IS NULL)', 'attachment'), array($this, 'filter'));
      +
      +        if (!empty($unattached)) {
      +            foreach ($unattached as $attach) {
      +                if (false !== strpos($input['text'], $attach['attachment']->url)) {
      +                    if (!isset($input['attachment'])) {
      +                        $input['attachment'] = array();
      +                    }
      +
      +                    $input['attachment'][] = $attach['cid'];
      +                }
      +            }
      +        }
      +
      +        /** 调用已有组件 */
      +        try {
      +            /** 插入 */
      +            if ('page' == $type) {
      +                $this->singletonWidget('Widget_Contents_Page_Edit', NULL, $input, false)->action();
      +            } else {
      +                $this->singletonWidget('Widget_Contents_Post_Edit', NULL, $input, false)->action();
      +            }
      +
      +            return $this->singletonWidget('Widget_Notice')->getHighlightId();
      +        } catch (Typecho_Widget_Exception $e) {
      +            return new IXR_Error($e->getCode(), $e->getMessage());
      +        }
      +    }
      +
      +    /**
      +     * 编辑post
      +     *
      +     * @param int $postId
      +     * @param string $userName
      +     * @param string $password
      +     * @param struct $content
      +     * @param bool $publish
      +     * @access public
      +     * @return int
      +     */
      +    public function mwEditPost($postId, $userName, $password, $content, $publish = true)
      +    {
      +        $content['postId'] = $postId;
      +        return $this->mwNewPost(1, $userName, $password, $content, $publish);
      +    }
      +
      +    /**
      +     * 获取指定id的post
      +     *
      +     * @param int $postId
      +     * @param string $userName
      +     * @param string $password
      +     * @access public
      +     * @return void
      +     */
      +    public function mwGetPost($postId, $userName, $password)
      +    {
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +
      +        try {
      +            $post = $this->singletonWidget('Widget_Contents_Post_Edit', NULL, "cid={$postId}");
      +        } catch (Typecho_Widget_Exception $e) {
      +            return new IXR_Error($e->getCode(), $e->getMessage());
      +        }
      +
      +        /** 对文章内容做截取处理,以获得description和text_more*/
      +        list($excerpt, $more) = $this->getPostExtended($post);
      +        /** 只需要分类的name*/
      +        $categories = Typecho_Common::arrayFlatten($post->categories, 'name');
      +        $tags = Typecho_Common::arrayFlatten($post->tags, 'name');
      +
      +        $postStruct = array(
      +                'dateCreated'   => new IXR_Date($this->options->timezone + $post->created),
      +                'userid'        => $post->authorId,
      +                'postid'       => $post->cid,
      +                'description'   => $excerpt,
      +                'title'         => $post->title,
      +                'link'          => $post->permalink,
      +                'permalink'     => $post->permalink,
      +                'categories'    => $categories,
      +                'mt_excerpt'    => $post->description,
      +                'mt_text_more'  => $more,
      +                'mt_allow_comments' => intval($post->allowComment),
      +                'mt_allow_pings'    => intval($post->allowPing),
      +                'mt_keywords'	=> implode(', ', $tags),
      +                'wp_slug'       => $post->slug,
      +                'wp_password'   => $post->password,
      +                'wp_author'     => $post->author->name,
      +                'wp_author_id'  => $post->authorId,
      +                'wp_author_display_name' => $post->author->screenName,
      +                'date_created_gmt'  =>  new IXR_Date($post->created),
      +                'post_status'   => $this->typechoToWordpressStatus($post->status, 'post'),
      +                'custom_fields' => array(),
      +                'sticky'        => 0
      +        );
      +        
      +        return $postStruct;
      +    }
      +
      +    /**
      +     * 获取前$postsNum个post
      +     *
      +     * @param int $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @param int $postsNum
      +     * @access public
      +     * @return postStructs
      +     */
      +    public function mwGetRecentPosts($blogId, $userName, $password, $postsNum)
      +    {
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +
      +        $posts = $this->singletonWidget('Widget_Contents_Post_Admin', "pageSize={$postsNum}", 'status=all');
      +
      +        $postStructs = array();
      +        /** 如果这个post存在则输出,否则输出错误 */
      +        while ($posts->next()) {
      +            /** 对文章内容做截取处理,以获得description和text_more*/
      +            list($excerpt, $more) = $this->getPostExtended($posts);
      +
      +            /** 只需要分类的name*/
      +            /** 可以用flatten函数处理 */
      +            $categories = Typecho_Common::arrayFlatten($posts->categories, 'name');
      +            $tags = Typecho_Common::arrayFlatten($posts->tags, 'name');
      +
      +            $postStructs[] = array(
      +                    'dateCreated'   => new IXR_Date($this->options->timezone + $posts->created),
      +                    'userid'        => $posts->authorId,
      +                    'postid'        => $posts->cid,
      +                    'description'   => $excerpt,
      +                    'title'         => $posts->title,
      +                    'link'          => $posts->permalink,
      +                    'permalink'     => $posts->permalink,
      +                    'categories'    => $categories,
      +                    'mt_excerpt'    => $posts->description,
      +                    'mt_text_more'  => $more,
      +                    'mt_allow_comments' => intval($posts->allowComment),
      +                    'mt_allow_pings'    => intval($posts->allowPing),
      +                    'mt_keywords'	=> implode(', ', $tags),
      +                    'wp_slug'       => $posts->slug,
      +                    'wp_password'   => $posts->password,
      +                    'wp_author'     => $posts->author->name,
      +                    'wp_author_id'  => $posts->authorId,
      +                    'wp_author_display_name' => $posts->author->screenName,
      +                    'date_created_gmt'  =>  new IXR_Date($posts->created),
      +                    'post_status'   => $this->typechoToWordpressStatus($posts->status, 'post'),
      +                    'custom_fields' => array(),
      +                    'sticky'        => 0
      +            );
      +        }
      +
      +        return $postStructs;
      +    }
      +
      +    /**
      +     * 获取所有的分类
      +     *
      +     * @param int $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @access public
      +     * @return categoryStructs
      +     */
      +    public function mwGetCategories($blogId, $userName, $password)
      +    {
      +        if (!$this->checkAccess($userName, $password)) {
      +            return ($this->error);
      +        }
      +
      +        $categories = $this->singletonWidget('Widget_Metas_Category_List');
      +
      +        /** 初始化category数组*/
      +        $categoryStructs = array();
      +        while ($categories->next()) {
      +            $categoryStructs[] = array(
      +                'categoryId'            => $categories->mid,
      +                'parentId'              => '0',
      +                'categoryName'          => $categories->name,
      +                'categoryDescription'   => $categories->description,
      +                'description'           => $categories->name,
      +                'htmlUrl'               => $categories->permalink,
      +                'rssUrl'                => $categories->feedUrl,
      +            );
      +        }
      +
      +        return $categoryStructs;
      +    }
      +
      +    /**
      +     * mwNewMediaObject
      +     *
      +     * @param int $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @param mixed $data
      +     * @access public
      +     * @return void
      +     */
      +    public function mwNewMediaObject($blogId, $userName, $password, $data)
      +    {
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +
      +        $result = Widget_Upload::uploadHandle($data);
      +
      +        if (false === $result) {
      +            return IXR_Error(500, _t('上传失败'));
      +        } else {
      +
      +            $insertId = $this->insert(array(
      +                'title'     =>  $result['name'],
      +                'slug'      =>  $result['name'],
      +                'type'      =>  'attachment',
      +                'status'    =>  'publish',
      +                'text'      =>  serialize($result),
      +                'allowComment'      =>  1,
      +                'allowPing'         =>  0,
      +                'allowFeed'         =>  1
      +            ));
      +
      +            $this->db->fetchRow($this->select()->where('table.contents.cid = ?', $insertId)
      +                    ->where('table.contents.type = ?', 'attachment'), array($this, 'push'));
      +
      +            /** 增加插件接口 */
      +            $this->pluginHandle()->upload($this);
      +
      +            return array(
      +                'file' => $this->attachment->name,
      +                'url'  => $this->attachment->url
      +            );
      +        }
      +    }
      +
      +    /**
      +     * 获取 $postNum个post title
      +     *
      +     * @param int $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @param int $postNum
      +     * @access public
      +     * @return postTitleStructs
      +     */
      +    public function mtGetRecentPostTitles($blogId, $userName, $password, $postsNum)
      +    {
      +        if (!$this->checkAccess($userName, $password)) {
      +            return ($this->error);
      +        }
      +
      +        /** 读取数据*/
      +        $posts = $this->singletonWidget('Widget_Contents_Post_Admin', "pageSize=$postsNum", 'status=all');
      +
      +        /**初始化*/
      +        $postTitleStructs = array();
      +        while ($posts->next()) {
      +            $postTitleStructs[] = array(
      +                'dateCreated'       => new IXR_Date($this->options->timezone + $posts->created),
      +                'userid'            => $posts->authorId,
      +                'postid'            => $posts->cid,
      +                'title'             => $posts->title,
      +                'date_created_gmt'  => new IXR_Date($this->options->timezone + $posts->created)
      +            );
      +        }
      +
      +        return $postTitleStructs;
      +    }
      +
      +    /**
      +     * 获取分类列表
      +     *
      +     * @param int $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @access public
      +     * @return categories
      +     */
      +    public function mtGetCategoryList($blogId, $userName, $password)
      +    {
      +        if (!$this->checkAccess($userName, $password)) {
      +            return ($this->error);
      +        }
      +
      +        $categories = $this->singletonWidget('Widget_Metas_Category_List');
      +
      +        /** 初始化categorise数组*/
      +        $categoryStructs = array();
      +        while ($categories->next()) {
      +            $categoryStructs[] = array(
      +                'categoryId'   => $categories->mid,
      +                'categoryName' => $categories->name,
      +            );
      +        }
      +        return $categoryStructs;
      +    }
      +
      +    /**
      +     * 获取指定post的分类
      +     *
      +     * @param int $postId
      +     * @param string $userName
      +     * @param string $password
      +     * @access public
      +     * @return void
      +     */
      +    public function mtGetPostCategories($postId, $userName, $password)
      +    {
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +
      +        try {
      +            $post = $this->singletonWidget('Widget_Contents_Post_Edit', NULL, "cid={$postId}");
      +        } catch (Typecho_Widget_Exception $e) {
      +            return new IXR_Error($e->getCode(), $e->getMessage());
      +        }
      +
      +        /** 格式化categories*/
      +        $categories = array();
      +        foreach ($post->categories as $category) {
      +            $categories[] = array(
      +                'categoryName'      => $category['name'],
      +                'categoryId'        => $category['mid'],
      +                'isPrimary'         => true
      +            );
      +        }
      +        return $categories;
      +    }
      +
      +    /**
      +     * 修改post的分类
      +     *
      +     * @param int $postId
      +     * @param string $userName
      +     * @param string $password
      +     * @param string $categories
      +     * @access public
      +     * @return bool
      +     */
      +    public function mtSetPostCategories($postId, $userName, $password, $categories)
      +    {
      +        if (!$this->checkAccess($userName, $password, 'editor')) {
      +            return $this->error;
      +        }
      +
      +        try {
      +            $post = $this->singletonWidget('Widget_Contents_Post_Edit', NULL, "cid={$postId}");
      +        } catch (Typecho_Widget_Exception $e) {
      +            return new IXR_Error($e->getCode(), $e->getMessage());
      +        }
      +
      +        $post->setCategories($postId, Typecho_Common::arrayFlatten($categories, 'categoryId'),
      +        'publish' == $post->status);
      +        return true;
      +    }
      +
      +    /**
      +     * 发布(重建)数据
      +     *
      +     * @param int $postId
      +     * @param string $userName
      +     * @param string $password
      +     * @access public
      +     * @return bool
      +     */
      +    public function mtPublishPost($postId, $userName, $password)
      +    {
      +        if (!$this->checkAccess($userName, $password, 'editor')) {
      +            return $this->error;
      +        }
      +
      +        /** 过滤id为$postId的post */
      +        $select = $this->select()->where('table.contents.cid = ? AND table.contents.type = ?', $postId, 'post')->limit(1);
      +
      +        /** 提交查询 */
      +        $post = $this->$db->fetchRow($select, array($this, 'push'));
      +        if ($this->authorId != $this->user->uid && !$this->checkAccess($userName, $password, 'administrator')) {
      +            return new IXR_Error(403, '权限不足.');
      +        }
      +
      +        /** 暂时只做成发布*/
      +        $content = array();
      +        $this->update($content, $this->db->sql()->where('table.contents.cid = ?', $postId));
      +
      +
      +    }
      +
      +    /**
      +     * 取得当前用户的所有blog
      +     *
      +     * @param int $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @access public
      +     * @return void
      +     */
      +    public function bloggerGetUsersBlogs($blogId, $userName, $password)
      +    {
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +
      +        $struct = array();
      +        $struct[] = array(
      +            'isAdmin'  => $this->user->pass('administrator', true),
      +            'url'	  => $this->options->siteUrl,
      +            'blogid'   => '1',
      +            'blogName' => $this->options->title,
      +            'xmlrpc'   => $this->options->xmlRpcUrl
      +        );
      +        
      +        return $struct;
      +    }
      +
      +    /**
      +     * 返回当前用户的信息
      +     *
      +     * @param int $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @access public
      +     * @return void
      +     */
      +    public function bloggerGetUserInfo($blogId, $userName, $password)
      +    {
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +
      +        $struct = array(
      +            'nickname'  => $this->user->screenName,
      +            'userid'     => $this->user->uid,
      +            'url'       => $this->user->url,
      +            'email'     => $this->user->mail,
      +            'lastname'  => '',
      +            'firstname' => ''
      +        );
      +        
      +        return $struct;
      +    }
      +
      +    /**
      +     * 获取当前作者的一个指定id的post的详细信息
      +     *
      +     * @param int $blogId
      +     * @param int $postId
      +     * @param string $userName
      +     * @param string $password
      +     * @access public
      +     * @return void
      +     */
      +    public function bloggerGetPost($blogId, $postId, $userName, $password)
      +    {
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +
      +        try {
      +            $post = $this->singletonWidget('Widget_Contents_Post_Edit', NULL, "cid={$postId}");
      +        } catch (Typecho_Widget_Exception $e) {
      +            return new IXR_Error($e->getCode(), $e->getMessage());
      +        }
      +        
      +        $categories = Typecho_Common::arrayFlatten($post->categories, 'name');
      +
      +        $content = '<title>' . $post->title . '</title>';
      +        $content .= '<category>' . implode(',', $categories) . '</category>';
      +        $content .= stripslashes($post->text);
      +
      +        $struct = array(
      +            'userid'        => $post->authorId,
      +            'dateCreated'   => new IXR_Date($this->options->timezone + $post->created),
      +            'content'       => $content,
      +            'postid'        => $post->cid
      +        );
      +        return $struct;
      +    }
      +
      +    /**
      +     * bloggerDeletePost
      +     * 删除文章
      +     * @param mixed $blogId
      +     * @param mixed $userName
      +     * @param mixed $password
      +     * @param mixed $publish
      +     * @access public
      +     * @return bool
      +     */
      +    public function bloggerDeletePost($blogId, $postId, $userName, $password, $publish)
      +    {
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +        try {
      +            $this->singletonWidget('Widget_Contents_Post_Edit', NULL, "cid={$postId}", false)->deletePost();
      +        } catch (Typecho_Widget_Exception $e) {
      +            return new IXR_Error($e->getCode(), $e->getMessage());
      +        }
      +    }
      +
      +    /**
      +     * 获取当前作者前postsNum个post
      +     *
      +     * @param int $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @param int $postsNum
      +     * @access public
      +     * @return void
      +     */
      +    public function bloggerGetRecentPosts($blogId, $userName, $password, $postsNum)
      +    {
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +        //todo:限制数量
      +        $posts = $this->singletonWidget('Widget_Contents_Post_Admin', "pageSize=$postsNum", 'status=all');
      +
      +        $postStructs = array();
      +        while ($posts->next()) {
      +            $categories = Typecho_Common::arrayFlatten($posts->categories, 'name');
      +            
      +            $content = '<title>' . $posts->title . '</title>';
      +            $content .= '<category>' . implode(',', $categories) . '</category>';
      +            $content .= stripslashes($posts->text);
      +
      +            $struct = array(
      +                'userid'        => $posts->authorId,
      +                'dateCreated'   => new IXR_Date($this->options->timezone + $posts->created),
      +                'content'       => $content,
      +                'postid'        => $posts->cid,
      +            );
      +            $postStructs[] = $struct;
      +        }
      +        if (NULL == $postStructs) {
      +            return new IXR_Error('404', '没有任何文章');
      +        }
      +        return $postStructs;
      +    }
      +
      +    /**
      +     * bloggerGetTemplate
      +     *
      +     * @param int $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @param mixed $template
      +     * @access public
      +     * @return void
      +     */
      +    public function bloggerGetTemplate($blogId, $userName, $password, $template)
      +    {
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +        /** todo:暂时先返回true*/
      +        return true;
      +    }
      +
      +    /**
      +     * bloggerSetTemplate
      +     *
      +     * @param int $blogId
      +     * @param string $userName
      +     * @param string $password
      +     * @param mixed $content
      +     * @param mixed $template
      +     * @access public
      +     * @return void
      +     */
      +    public function bloggerSetTemplate($blogId, $userName, $password, $content, $template)
      +    {
      +        if (!$this->checkAccess($userName, $password)) {
      +            return $this->error;
      +        }
      +        /** todo:暂时先返回true*/
      +        return true;
      +    }
      +
      +    /**
      +     * pingbackPing
      +     *
      +     * @param string $source
      +     * @param string $target
      +     * @access public
      +     * @return void
      +     */
      +    public function pingbackPing($source, $target)
      +    {
      +        /** 检查源地址是否存在*/
      +        if (!($http = Typecho_Http_Client::get())) {
      +            return new IXR_Error(16, _t('源地址服务器错误'));
      +        }
      +
      +        try {
      +
      +            $http->setTimeout(5)->send($source);
      +            $response = $http->getResponseBody();
      +
      +            if (200 == $http->getResponseStatus()) {
      +
      +                if (!$http->getResponseHeader('x-pingback')) {
      +                    preg_match_all("/<link[^>]*rel=[\"']([^\"']*)[\"'][^>]*href=[\"']([^\"']*)[\"'][^>]*>/i", $response, $out);
      +                    if (!isset($out[1]['pingback'])) {
      +                        return new IXR_Error(50, _t('源地址不支持PingBack'));
      +                    }
      +                }
      +
      +            } else {
      +                return new IXR_Error(16, _t('源地址服务器错误'));
      +            }
      +
      +        } catch (Exception $e) {
      +            return new IXR_Error(16, _t('源地址服务器错误'));
      +        }
      +
      +        /** 检查目标地址是否正确*/
      +        $pathInfo = Typecho_Common::url(substr($target, strlen($this->options->index)), '/');
      +        $post = Typecho_Router::match($pathInfo);
      +
      +        /** 这样可以得到cid或者slug*/
      +        if (!($post instanceof Widget_Archive) || !$post->have() || !$post->is('single')) {
      +            return new IXR_Error(33, _t('这个目标地址不存在'));
      +        }
      +
      +        if ($post) {
      +            /** 检查是否可以ping*/
      +            if ($post->allowPing) {
      +
      +                /** 现在可以ping了,但是还得检查下这个pingback是否已经存在了*/
      +                $pingNum = $this->db->fetchObject($this->db->select(array('COUNT(coid)' => 'num'))
      +                ->from('table.comments')->where('table.comments.cid = ? AND table.comments.url = ? AND table.comments.type <> ?',
      +                $post->cid, $source, 'comment'))->num;
      +
      +                if ($pingNum <= 0) {
      +
      +                    /** 现在开始插入以及邮件提示了 $response就是第一行请求时返回的数组*/
      +                    preg_match("/\<title\>([^<]*?)\<\/title\\>/is", $response, $matchTitle);
      +                    $finalTitle = Typecho_Common::removeXSS(trim(strip_tags($matchTitle[1])));
      +
      +                    /** 干掉html tag,只留下<a>*/
      +                    $text = Typecho_Common::stripTags($response, '<a href="">');
      +
      +                    /** 此处将$target quote,留着后面用*/
      +                    $pregLink = preg_quote($target);
      +
      +                    /** 找出含有target链接的最长的一行作为$finalText*/
      +                    $finalText = '';
      +                    $lines = explode("\n", $text);
      +
      +                    foreach ($lines as $line) {
      +                        $line = trim($line);
      +                        if (NULL != $line) {
      +                            if (preg_match("|<a[^>]*href=[\"']{$pregLink}[\"'][^>]*>(.*?)</a>|",$line)) {
      +                                if (strlen($line) > strlen($finalText)) {
      +                                    /** <a>也要干掉,*/
      +                                    $finalText = Typecho_Common::stripTags($line);
      +                                }
      +                            }
      +                        }
      +                    }
      +
      +                    /** 截取一段字*/
      +                    if (NULL == trim($finalText)) {
      +                        return new IXR_Error('17', _t('源地址中不包括目标地址'));
      +                    }
      +
      +                    $finalText = '[...]' . Typecho_Common::subStr($finalText, 0, 200, '') . '[...]';
      +
      +                    $pingback = array(
      +                        'cid'       =>  $post->cid,
      +                        'created'   =>  $this->options->gmtTime,
      +                        'agent'     =>  $this->request->getAgent(),
      +                        'ip'        =>  $this->request->getIp(),
      +                        'author'    =>  $finalTitle,
      +                        'url'       =>  Typecho_Common::safeUrl($source),
      +                        'text'      =>  $finalText,
      +                        'ownerId'   =>  $post->author->uid,
      +                        'type'      =>  'pingback',
      +                        'status'    =>  $this->options->commentsRequireModeration ? 'waiting' : 'approved'
      +                    );
      +
      +                    /** 加入plugin */
      +                    $pingback = $this->pluginHandle()->pingback($pingback, $post);
      +
      +                    /** 执行插入*/
      +                    $insertId = $this->singletonWidget('Widget_Abstract_Comments')->insert($pingback);
      +
      +                    /** 评论完成接口 */
      +                    $this->pluginHandle()->finishPingback($this);
      +
      +                    return $insertId;
      +
      +                    /** todo:发送邮件提示*/
      +                } else {
      +                    return new IXR_Error(48, _t('PingBack已经存在'));
      +                }
      +            } else {
      +                return IXR_Error(49, _t('目标地址禁止Ping'));
      +            }
      +        } else {
      +            return new IXR_Error(33, _t('这个目标地址不存在'));
      +        }
      +    }
      +    
      +    /**
      +     * 回收变量
      +     * 
      +     * @access public
      +     * @param string $methodName 方法
      +     * @return void
      +     */
      +    public function hookAfterCall($methodName)
      +    {
      +        if (!empty($this->_usedWidgetNameList)) {
      +            foreach ($this->_usedWidgetNameList as $key => $widgetName) {
      +                $this->destory($widgetName);
      +                unset($this->_usedWidgetNameList[$key]);
      +            }
      +        }
      +    }
      +
      +
      +    /**
      +     * 入口执行方法
      +     *
      +     * @access public
      +     * @return void
      +     */
      +    public function action()
      +    {
      +        if (isset($this->request->rsd)) {
      +            echo
      +<<<EOF
      +<?xml version="1.0" encoding="{$this->options->charset}"?>
      +<rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd">
      +    <service>
      +        <engineName>Typecho</engineName>
      +        <engineLink>http://www.typecho.org/</engineLink>
      +        <homePageLink>{$this->options->siteUrl}</homePageLink>
      +        <apis>
      +            <api name="WordPress" blogID="1" preferred="true" apiLink="{$this->options->xmlRpcUrl}" />
      +            <api name="Movable Type" blogID="1" preferred="false" apiLink="{$this->options->xmlRpcUrl}" />
      +            <api name="MetaWeblog" blogID="1" preferred="false" apiLink="{$this->options->xmlRpcUrl}" />
      +            <api name="Blogger" blogID="1" preferred="false" apiLink="{$this->options->xmlRpcUrl}" />
      +        </apis>
      +    </service>
      +</rsd>
      +EOF;
      +        } else if (isset($this->request->wlw)) {
      +            echo
      +<<<EOF
      +<?xml version="1.0" encoding="{$this->options->charset}"?>
      +<manifest xmlns="http://schemas.microsoft.com/wlw/manifest/weblog">
      +    <options>
      +        <supportsKeywords>Yes</supportsKeywords>
      +        <supportsFileUpload>Yes</supportsFileUpload>
      +        <supportsExtendedEntries>Yes</supportsExtendedEntries>
      +        <supportsCustomDate>Yes</supportsCustomDate>
      +        <supportsCategories>Yes</supportsCategories>
      +
      +        <supportsCategoriesInline>Yes</supportsCategoriesInline>
      +        <supportsMultipleCategories>Yes</supportsMultipleCategories>
      +        <supportsHierarchicalCategories>No</supportsHierarchicalCategories>
      +        <supportsNewCategories>Yes</supportsNewCategories>
      +        <supportsNewCategoriesInline>Yes</supportsNewCategoriesInline>
      +        <supportsCommentPolicy>Yes</supportsCommentPolicy>
      +
      +        <supportsPingPolicy>Yes</supportsPingPolicy>
      +        <supportsAuthor>Yes</supportsAuthor>
      +        <supportsSlug>Yes</supportsSlug>
      +        <supportsPassword>Yes</supportsPassword>
      +        <supportsExcerpt>Yes</supportsExcerpt>
      +        <supportsTrackbacks>Yes</supportsTrackbacks>
      +
      +        <supportsPostAsDraft>Yes</supportsPostAsDraft>
      +
      +        <supportsPages>Yes</supportsPages>
      +        <supportsPageParent>No</supportsPageParent>
      +        <supportsPageOrder>Yes</supportsPageOrder>
      +        <requiresXHTML>True</requiresXHTML>
      +        <supportsAutoUpdate>No</supportsAutoUpdate>
      +
      +    </options>
      +</manifest>
      +EOF;
      +        } else {
      +            /** 直接把初始化放到这里 */
      +            new IXR_Server(array(
      +                /** WordPress API */
      +                'wp.getPage'                => array($this, 'wpGetPage'),
      +                'wp.getPages'               => array($this, 'wpGetPages'),
      +                'wp.newPage'                => array($this, 'wpNewPage'),
      +                'wp.deletePage'             => array($this, 'wpDeletePage'),
      +                'wp.editPage'               => array($this, 'wpEditPage'),
      +                'wp.getPageList'            => array($this, 'wpGetPageList'),
      +                'wp.getAuthors'             => array($this, 'wpGetAuthors'),
      +                'wp.getCategories'          => array($this, 'mwGetCategories'),
      +                'wp.newCategory'            => array($this, 'wpNewCategory'),
      +                'wp.suggestCategories'      => array($this, 'wpSuggestCategories'),
      +                'wp.uploadFile'             => array($this, 'mwNewMediaObject'),
      +                
      +                /** New Wordpress API since 2.9.2 */
      +                'wp.getUsersBlogs'          => array($this, 'wpGetUsersBlogs'),
      +                'wp.getTags'                => array($this, 'wpGetTags'),
      +                'wp.deleteCategory'         => array($this, 'wpDeleteCategory'),
      +                'wp.getCommentCount'        => array($this, 'wpGetCommentCount'),
      +                'wp.getPostStatusList'      => array($this, 'wpGetPostStatusList'),
      +                'wp.getPageStatusList'      => array($this, 'wpGetPageStatusList'),
      +                'wp.getPageTemplates'       => array($this, 'wpGetPageTemplates'),
      +                'wp.getOptions'             => array($this, 'wpGetOptions'),
      +                'wp.setOptions'             => array($this, 'wpSetOptions'),
      +                'wp.getComment'             => array($this, 'wpGetComment'),
      +                'wp.getComments'            => array($this, 'wpGetComments'),
      +                'wp.deleteComment'          => array($this, 'wpDeleteComment'),
      +                'wp.editComment'            => array($this, 'wpEditComment'),
      +                'wp.newComment'             => array($this, 'wpNewComment'),
      +                'wp.getCommentStatusList'   => array($this, 'wpGetCommentStatusList'),
      +                
      +
      +                /** Blogger API */
      +                'blogger.getUsersBlogs'     => array($this, 'bloggerGetUsersBlogs'),
      +                'blogger.getUserInfo'       => array($this, 'bloggerGetUserInfo'),
      +                'blogger.getPost'           => array($this, 'bloggerGetPost'),
      +                'blogger.getRecentPosts'    => array($this, 'bloggerGetRecentPosts'),
      +                'blogger.getTemplate'       => array($this, 'bloggerGetTemplate'),
      +                'blogger.setTemplate'       => array($this, 'bloggerSetTemplate'),
      +                'blogger.deletePost'        => array($this, 'bloggerDeletePost'),
      +
      +                /** MetaWeblog API (with MT extensions to structs) */
      +                'metaWeblog.newPost'        => array($this, 'mwNewPost'),
      +                'metaWeblog.editPost'       => array($this, 'mwEditPost'),
      +                'metaWeblog.getPost'        => array($this, 'mwGetPost'),
      +                'metaWeblog.getRecentPosts' => array($this, 'mwGetRecentPosts'),
      +                'metaWeblog.getCategories'  => array($this, 'mwGetCategories'),
      +                'metaWeblog.newMediaObject' => array($this, 'mwNewMediaObject'),
      +
      +                /** MetaWeblog API aliases for Blogger API */
      +                'metaWeblog.deletePost'     => array($this, 'bloggerDeletePost'),
      +                'metaWeblog.getTemplate'    => array($this, 'bloggerGetTemplate'),
      +                'metaWeblog.setTemplate'    => array($this, 'bloggerSetTemplate'),
      +                'metaWeblog.getUsersBlogs'  => array($this, 'bloggerGetUsersBlogs'),
      +
      +                /** MovableType API */
      +                'mt.getCategoryList'        => array($this, 'mtGetCategoryList'),
      +                'mt.getRecentPostTitles'    => array($this, 'mtGetRecentPostTitles'),
      +                'mt.getPostCategories'      => array($this, 'mtGetPostCategories'),
      +                'mt.setPostCategories'      => array($this, 'mtSetPostCategories'),
      +                'mt.publishPost'            => array($this, 'mtPublishPost'),
      +
      +                /** PingBack */
      +                'pingback.ping'             => array($this,'pingbackPing'),
      +                'pingback.extensions.getPingbacks' => array($this,'pingbackExtensionsGetPingbacks'),
      +                
      +                /** hook after */
      +                'hook.afterCall'       => array($this, 'hookAfterCall'),
      +            ));
      +        }
      +    }
      +}
      
  • d%tUL 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⪼p%+hT!h;AHH?uI8q}%0fcGOrY>W&4z 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 VKw+Ow2~>_fclwe=;h#4i{x=5nb;kez literal 0 HcmV?d00001 diff --git a/mockup/mockup/cat and tag.png b/mockup/mockup/cat and tag.png new file mode 100644 index 0000000000000000000000000000000000000000..94f2d087c8436fb233a1e1e11c2d821a3faba85d GIT binary patch literal 123208 zcmbq(1CwS;({0y2Mb!?M zmlcDD!GQq+0)m$i7ghuU0zCr)f}Deb_=hMAyRiMcfjJ3EC`0{g-cZJ2|K6eP#WkFO zfM8Mn6X1ny->-ilhO>yevyh{SfwP63Es?T?jR_DFJLCWQi4OF}KMlP9G?eU2o!tx^ zO@IW9?F>zbL@gXm-0U2!oQQ;!{y;P==KZriZttk7=AKoo)orCMhP2DGJ>HNwpkhym zyY&G^oGkkQ1IOAA;szZ8hMK92@Yfjv+Nch?$N~9^pC6dkA%7&Ai?T)$>>Ki(6hx8m z`1mIw!4QP*5#m+ z&o-cn)-tPGHPN6&@skj@*~1(KeWcQDcGjK1FGD!k;e-N>d&Y}EOw{N8vF~t5$)IYv z1&n|)eDq|amLyh^v2So1|H>CR^%UMu%G=%8Uk@IH8XmUrhKJG# zsb=fa!O5mj%c+wGLbr4E-K}j^yWT%3H+oyu&*Bj055IcinowqAszz-X{qkgU$#@@g zDkOm+zV@Nr;+h zq}gtLj8Jq8g?Z|9u%a(W_kKund%7=Ivx=qm0=_v9y@AmA?;#)00mGpTn4C0G>V9a< z@N1V3l{IgSFFv883aGJXen_C4-X+26NSH)Rg~4L&WpUAK=b9~gJ_EO(nXfmQ!u23w z?`W06!F?#8Cq&P#vv19usDIGtD2$fZU2M%qcVggU%)kp$C{& zN}o}}9e=p0rqdnpW7=wAG-Pq;47x~uUlNKIJJ@D})_V%RNOn~{6vd19Jy=QSCgf^P znsBkf<;&R-i!LO(N)3hs}t3G zcmY#>>>Q3<+hCSf^27ci>XXPrJ5?%q2%xFbPt4mO&#Ra+$eP4$v`UFx+Kcorc$gw=N%D>z`3gGgKuyi@2KwH3oq+iI~%8OLCIf~J+#1ao?8z-0|L1f zdQh)V3#UULvAb+TPM^L5hn6FO2>!p0%H8HEG~iWZ!^Dp5IMFV;IX;x{{(T#hE;SIV zUdRNGt%vSa@nV6evvlp+c7R+2dLQYr(y9};^$TxgKRpXCZrncNs}G~!{EZKdWn?i( zfIRbriPe_B5GrDbU+&wVq7TxK;Gw`L`l`nY88IYtS*A9=*p$0+3`Av5p_GF%^c-Xyd!&mz1dFY8d_S>(;xW4yPj0??R` zEs=@w9=WzXuR7x$%Fh6gYbU>-{TUr$ZWQ`!%IIR$0x&-UK^^sd1zLVgkdCjO(bl2% zNbTH?p7Q~7b7gdgEE3KwF&@@%hETB@xkx;{r=PrA^ee=T*$M9s6K@`h*AE(J2m

    \n"; + break; + + default: + return ''; + + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Delete.php b/usr/plugins/Creole/Render/Xhtml/Delete.php new file mode 100644 index 00000000..ae554239 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Delete.php @@ -0,0 +1,58 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Delete.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders underlined text in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Delete extends Text_Wiki_Render { + + var $conf = array( + 'css' => null + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + function token($options) + { + if ($options['type'] == 'start') { + //$css = $this->formatConf(' class="%s"', 'css'); + //return ""; + //return ""; + return ""; + } + + if ($options['type'] == 'end') { + return ''; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Delimiter.php b/usr/plugins/Creole/Render/Xhtml/Delimiter.php new file mode 100644 index 00000000..c9543ba0 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Delimiter.php @@ -0,0 +1,46 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Delimiter.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class set back the replaced delimiters in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Delimiter extends Text_Wiki_Render { + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + return $options['text']; + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Embed.php b/usr/plugins/Creole/Render/Xhtml/Embed.php new file mode 100644 index 00000000..cf5517a7 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Embed.php @@ -0,0 +1,46 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Embed.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class replaces the embedded php output in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Embed extends Text_Wiki_Render { + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + return $options['text']; + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Emphasis.php b/usr/plugins/Creole/Render/Xhtml/Emphasis.php new file mode 100644 index 00000000..be06c37f --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Emphasis.php @@ -0,0 +1,58 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Emphasis.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders emphasized text in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Emphasis extends Text_Wiki_Render { + + var $conf = array( + 'css' => null + ); + + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + if ($options['type'] == 'start') { + $css = $this->formatConf(' class="%s"', 'css'); + return ""; + } + + if ($options['type'] == 'end') { + return '
    GlJr0TrRc&X^X~FvE&@&{q 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

    EnyyVr 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

    %-d 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 WIJ8mhd?{BuT{?eFzwqqc`~M9|Wiqq? literal 0 HcmV?d00001 diff --git a/mockup/mockup/manage comments.png b/mockup/mockup/manage comments.png new file mode 100644 index 0000000000000000000000000000000000000000..d88a88c594f4b425538aebfef4f3595f948021da GIT binary patch literal 242704 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
    t3#AP& zOtiya`asNXhcI#}RbI4QsQIh9Pi;vWh$kt-lGoA57Pn`{Qb#b+j-@2fYw7Rx=_+)^ z5ljkKog)_9G1nJw+3-p12e#)euZ-#@tBvCYO--=%)8(gR(Fl*M+Vg+II5rOl1c&|R z9OKGw4WWWz$zKw)gmGs|&R9{+mvb*4*`=BB$kRF_5#^BF#X8^32$G)aTOOJ(m3XR2 zz{GN=>cD}_nj{$tv0n(T22{+okr(;f>Gq95ij^Et??IS(z{5mi=T6#9!GUBbET%ht ztpe9mR^tZN!1sA?R?s~4^*rj6VAsQ?o8=1DPkf#X@Idj-JZnP$Iq<2N*x_=XwQ>HX z*`y{60PXyKuNPI7gEu35&#$F0$$SpcjSsTllsXa`x{Y!X{`VIuz6x-OQOKI~TfLDQ z2P1tto&^7IGC)qG_zYFmU3YO5x1k3A22GT86dlY%T6@^+mQ$mv;VLwMxkJAuU>ZMk zt%AiB!7^hYWd`peVG`)2zjm#$E?UuEo=6GFxm3lBu^|H*X z=3|{!W0+M^`Z9q=&fz@`UFfz`(bC8rUnpFh3yHu0FPFF^n#X)SKLZ7Q<^Y;d?PA@m>NJT~y)Y{|n)GRK5fK1fMp*oB|_7XA-MtCA! z3w8{t1;M=U>z5f!2=uvxg!Nn+XsNpAxETFi{DO$ z>-0`e*G0fGdN21h zr`ueoXedXUKel^`raFoaH!y7Ft2VL#&+^%-&1KJN0UV| z>NIZsGEq7`C(Jbf-0&NaDG}I;j;T|keX*}zkk)n3AlL~yJ!Vl$w+E?rB0VZV;Qi-& z4hobyokBz^Q+QLZD^|NTR^caGvkV7QtT{l7e)01K@;g)>F*2nymvr`7%^+q+-%<6}39_0&nVnE-i1^qeFT>t5w}g!`v&ON8muFfSil? zKe;31avm!2QKyoAytt8Iq0VzdkV38x?haaDM;oMi>cp8OYg%=GJ87evybC4t0fny_ z05K|G8$U$HaxjImO)p7k&S74fCA{EC%CImC3jiv6J64%jhu4(ZNQD(aT{^7^mcmI= z4jwPz4Kj4~M73SKoRinSlOwuSMyp?wJK}T`hI6z<-^TMV8UvNOmseNct7zP~5>IRX z96#p`w;F{%bj&ZLN*&@3PaHZSJZ?MiH)ky|O1m%7)0LN)z+sO;pf<2el%X3KFUNbGa5(@Q^&{{OzBx&ZUf8`pUR|k z$XQEqw7!@MsF!?6%w^5_^X#kC^zlBPK5gpT6T#eLfhyV54^`{9M>ooA2YX4UjfxH4FTQQ)WsPT!30B`DnaQZ34B1vYV>m=m&#r!geg9O&G!qal zw#b{`x`AwFdE3?#fPbhKtYu|6nKW;~p)d_h%$Uc%m&-FwpYrCyi)@iqs7^Np8?#NO zUOxpkksdv@n(72`+cjP@r8YJkOVZdh!&PjBC>*;E_!z9j90+(A>uhicr)UVQ&p240 zc4eE;W^ws$@b4eYWjyy32IegW@<#G#nHwc57uf7o?^*Gij<)sr=&{CC+MQ;bZ>uPu< zW(Z_;X!m2_IvRcu$SPdiozKxQQWm*4yq~&PtbQNku;R=`uc~GAdjhUDv#vk@DL6F~ zVPB8#l)%vChR%k0cXW3NW)nQ)N6ge`FkT-t@2_NYCQg4(D|F_QkH*uc4&+k}t=4et zr9T=;+SGDj|&((`tAXFvf zvjq|h)H}QL9VxfSQ!23e_G@{27BS+!G1V(p11+44iv_NXq_w*tx9D z8J+)Vf#<)#*HlA0zJBiUy7>IAL%kf%>H6>xe+ z#Fp@8c4zI^4H>FS6=*^7B)Jg}-#u6Y+}e9-gM8;DJl8@ixbHolo9*%(7A%jk8*oO` zKN4vHw4gfL*yihFx3P1Y*VR5MyK(LZNX=hq3Y$E=j||GQO;mX6CwKC7ej3CEx zVoXuXV?YY}(os9vdB3v4q)5t}Vc)>LQ>qBvV;~d1)EjPncxtgxBbfQAv19{MBUWeS zTL!Gw>m3PNM!IXy6Vgjx_hh;zEa+(rDq09R|I+GMZg>9sxY4@Ws*6AX5z@72^K6){ zeKtC5R|*GgY-mJsAzzp&DStNBy3U@kG?uP7jBM>p9jDk(Jg=4D060BjbiF*)YB>1M z=({V-+mdH9C|MJDeU)FjznhNP)_R05WkPbF%m|eNq{}R% z(;p9T$W@uwHeSn2`XXm}@l00^79NkwPP#zuO(BPObmhZ^MKlS?_$1tEsA+mOlwh0u ztbg~i?uE(x!X(Y?&iaj;rIB(*Z!Drc!u*wayj`A@JTtfY&}OH+_YI>^sO^|7?vL)G ze(8u~zz=pp0anv9auYA5GBYL3ZQ<5W|9&wC_QJNhm|8|{ox3FOU%cD6E3O*==XbIb z(Kq-mx{v}0FkTBBgm?3$?_OA@0j`PK{M#_O@|J3?u^X*Ub| z7kU@*McJYhWxL>r8Bg)r|xz^XYQ-L z(~sL$wnz7AJo(zW%+Euz&jRCYj=z%$ii=xIM{-76tG$&T zSso}pn9E;hAl!upI0>2=4%@y&c(&G)`sJ?$)zeH{c08o?0)i8yH12Sb0|*9vtbf5i zwxEK;9n2%brL6~!z#R<#8>|=^;c8lLf;|zGfV4i0z{}An+OJGD80!zPlP6~JsyG*9 z%ocb(@d6kLe2$6E&FAVs?MB3_-BItEuuaM6>xJm| z_#<$k;gw~{hfMp1+^!L=J8oiNWGrl;nsEfk7y9yV-}jd818)TXPfAfNP1m@5HhZ1M z;_)?Y?wRGGOs7e7`K_M%Vky{d?$NstzeEb60i)uwUo%} zoobFnpxFL)DsO-|0m1o-*Ie8q_GN}cZ-s0n#5yc9ktE7k2HS>n~)ghx(_TJpc<2CZn}R<172B; zc<7fCru&L&TWIDHXH^y~N3UZZF!UlbWhM1A;N&T(I24useux+MqsMM6Hws-eG`3!t z$Q3@9E+}`?DS6G3Zpk@TH0Q5ecjIcS{LrA&Dv*<>hZ23^;*rn zGH*fi7L?4P9Ow&Pj(UFADiuz|d)^+~I(Y8sYL(u6hMGqnB2A49&1){agzN#vpSgN^ zMu5PVH)Cy+?N_!a0TJAU3mcP+0`^EC6Y>5$`)RbbW(d37S@WvP-+ahRVvq%mpmdIR zuJW)mgn>~dG3^}(g0w0-R#c^Tiw=Q53$$#~l>UPoyglz*`Y3YFy;!R_K^OxLNIYd$ zSBB^3XAgwg*%rS;Yk+8%cG`@)^u@z5jy>@xR_Vvt*olm-lo0wC)p+SjQ~X*p-tp{A;m8no;GfmUGnT_)_R{CA`>GdQtV? zz2^AJA|k7Yebzaz5Nl@`rWWJGt2sV7e>{vHOBKm)OO6Jzfmdt(uo+2-%q^&f(!qR% z8=?yK^B$9BeSi!4dQSV~u99w{gqKR1J5Qq27klfw_6jw^hw~?6>#L3owI@OkD<^B? zkH&0bsMBou0{{$T)6_h@U?aMK>O(g*0^B7R?{t5IK`{H93wxg3ol4EWxJXHc zCwl?qFN-fSs4sr$F|g&^4&4Y5J6rI~dt|mO_t4udpI?U6E|LyeUM1(v_D~y;5_uw4 zO4=@75WmNodcu9UqUlDffpX2T(oxj5Tw}wSoT(Ib9!Wf8L0dll3E;J``46V+p;E%G z4hdD#Zl)3mR`RYk(SBQF`m|!=?NU^K7r!B{HI;SR7>mX@u>mtky45btpccXcC5iQi ztP*!Ad8hmRJ{vW;CGwdXw=HF-`{>}6;7X&!N+$|_$?}sUBkrMcgh`aMnA#kKW9My) z3%=_(&fyRwDpSMRP<2h^;#?>=>BImBy?Jt!uU$XRkL0N=8k*~8l)YMwn$*5pJA;bS zzWVRI2{t<`ETHtECL;Ta&@^+L!vy-yG{JAaRx&)hXfhgm%jv5vN}R*f#iG!38SnpW z*m61A_SX11L~wF{vF#Y=fSMO}VSIlw)AgWkC1ujxj_$a1V@%Z{65%suu*RG(SsEu! z6pI0+h(gTvv31c94U+yP@ai@QnAUSrukSax^I&PkdfW#s<^||)y`3!YiUBBz+;6{*5N9|_pQ-&f}CdZojnl_N#`@eL7YB( zV27jT%%v?~JrO!G(QvIccyOflY`K4z9OS`+W5ctV5vQ9Z>VH4#U(b+&nxLXRUax;Y zE?I_};KE~2a*h6g*1?sK`<4GrNcpqm=vMU_0r}vCo5zN53-SCz zx(Zb!%Fz>HKJM&!Gbehv_ChbranDa<`~2ryn$du+=OIY%!*?)1<+N_~?oLQZvsXtk zj5dMC#~XJ1x6?#+LBe@@>V56u201JT`1y~VJqM_B+-vxXGvuv(3G=sk z4HL`K1}7Udq0d%`tv73kF|FA{tJLYmcg6h&z+8?QChKDrD(BLnZjc0ZE>@)aCY4H-mq}?d=0Y<@21k$u;aJr^7iMW zje4veyl`Knc@zs;8t3gQ^d78A8 z1*vlu5k0+hrXpv;Dvk7HybS;uo);jJ(0~CLHO3Z>V^7GN zp~I+vLK+bDlwX&+(O;nyL6ppKtjl?<^S$2tQ!B>Elh{?aMf_xpCw$Vm5O>T=WcQ3r zJ^nxVksE=a`;bcmMG8;4owFO8LD!_ImKL~_-QEVMI;2YmpT4)2s;E|PJWX18qe9-J z4i2BS!U3Toe^d-z!<}09sLIEBdqfh_Bop!w&lN;X8LD>`^*f*{7I=*$3}z}^<&<}RHb?&~zQ zS9K4n4@&JlmZ7O&v0Un+lJ4=HW@gKrWCHVS?!J?TnNt1y9f>1!nu{AaPdUxUn0F2U zoOd4hF9kQML^hI3i)~1$)N05Na+K9H=IHd3^;DHe>)ap9!+AL zreq#XX1RHnDe3iPCz;4bJEu+w6q~1e8J1U<_0S7+02_$PucOv(i+7&WhlxU&V?Y~L zK{AJ~+2BCEz!$ay+L2>#J;7rq`uDDvL4-1gfeWoO7{*FrnYYnm%3-4^DkYsNZ12dfWom8NBlk5utC}FETeB*#=+h_YQ!{d2ZbWQFBE|~SZG&_83 z>*5n3$yJWa3AM=m0Wu^%JT6Wx;9;H^M-MM<-`*2YKszxMKoIesT_{FFweWA&s552F z?>IBt7H+rGOLmY19xO;rfXM{VB`zPX*QORX%N1RKGQHr*0XhKD{}4Tk?C5{I#SiA) zms*%l9VKV+f9EDLTW!#qX>8;^3&-Ix;X*QOkW&!g18NZki9A!*-!-iXQSUry%}Cdq zt>v94hL`}qts-hG;FI_;rMMJCsC^puwff+IVSqlxWSVCnoP!M*vqRKQrEgKcV zgfsbA4KkE#f0JaFkiv8}tzj9o=D|cgCBA|zzPc)F16W~~(b}7E0TCNcbIGgjjqjt| z4R+!*E;S|uElOvCCtq76ruITIw1Qj;5jfTv&zv=>9}}?T>71#{G-nR#0Z7cz=@lvg(ooLhItZwa&ds;NSM4?nVu`GzOfLVsTs9TzjThJm>=VRAq? z$jykkV|y496;+cQb;Gfw_PlFuoawtTN%yDZA^i#bPGZX45rN8dbpSyE+M_bC(~Op> zsjF@>-sQ~tmR{rsGR$t~5+)w7G@}#pSpx&9vrqq+yPtuI@um(Ch3Qrgf*6!Xxj&Pn zn@VI$AyTYMq?WmAlh(>;gD>)!;UR9k4AD8kTrfvogrt}!IWFzD$v|00&L^S|sgNe0 z76x=rukfJ8Qv}Lus-5c8s)WHZQMz~-V(gr3^Iv5QT>}CtC@iiaRXN}c>fHONxkeThWtx`3+7#1?E(lU&vp3!?7M);0%BIi_?gTw%B#SXmvH=e zqTa0g&Y^55&Y^r3A!w_JDk8WH-xwq;VfnrT<*H(HyKuD8NB`)nN}9Vr$(-XEA|~_qWNW(k-!U+jb7>hyp$e``gJ{l)=V&izHl7{r~pt7{3H5?Ycq znIsVZRYMl~s*F`V8!AM^fx-IawMJ(%^#p90dR4`?K(8#46re%|uq?4tI=b!U{yM*oHzj@uIBthkxN+m?kAQFAqSUaHHG?oL5(UXe z`ZK5thcS%ghAWxn$?}we+_VDK@!!tN>l^Wxk_ePm-Bbw+UDAZ{s8SwfW3>MmgqVMb;) zL>5-dLQX;)5}%A3OBZgxnb?(?S2}sLv`*WY*Q1jD&9%?;xH7Bb^9 zuJ?sJVDfU+A9SJLDSM%G(d!<)lN43;(K>XgUf*|_=51-GJ?s^rBxipOqTGnFR--O^ zhuM5vwf^Ti@MGfACpS`1gyr*N85X9E?Gf1m8~;cXOC-SWaGwoaixHH`pqG*rl!#=aoE|Uw%Mlt4K#SFY zj}a8O{EI;jCbbWNDiwy2b@FqZ-a)^GoAD|Wg`SaG|2QbB6^4;EBdtbM2Az?zv$EEH zU<`(oHPdo>>~NBOEiW3zDGguXe%ftWD zJ2COk4s8TIZT1gi+`fb7Ib&rXHy7_o@W7tX^(TC*bAMzW z>)&`TFsTXhCUUv47#{dx;G9NJ34!y9VPH>3EglM4u#!67c#IQ*w+o`+$;sObLk*~}X zO+NoPY4^y9!vN!af>mS&UFZxhLLv)c>1}u-{LfV5%PZvDl)!x8F;!A z@QA#nP@Av40+VIJ4&u$Le?+`Se^xcz5LmFo&&0%S9|6=3SNHNcWy*cS)(+ES>htuf z--!?67suRrtP#3cM7cFa5^OrkF`V9$m2BH%^f{d=Yx56w}lr^0C4*$*^Q zPdx{d#p?K7KG!B`6*P^lA$ih$6|VIukTE=<=z|-qP=ossKqpnr$&$1ZG9Xs$G%RyU z>HtVOmJnR0#RHqWIHxXIig;c{+*;mVmt2XE$654jQC{2De-u?zSeK~jTNJ2JAD$dv zj%MkUpr|*1VS=o4!_VV>$xZ?HS>Amcow?mpebh2F>i(HNZ&tXA_PS4W0*WH;LMrWppL{ zO~k*ch-L$ROeKI{G3TnjtW3%(JvG=lzLjOo2yvr`cx8`6VQm7w7@?S9JTLKLcZ$M+ z?0};Hdc3uo1ky;;grWt?4%?UxY$eXL?gmS)4I*8%ZJLcp;LGJ{0|K;Da879YSTI8^=67Uk$8;SWj5~{(Z7A5RJj?NvgfH%}xzUdT4 z8}D*K$eT(vwIu9Q)fO?qrJ3Gs={ZKHcDai55{%+WYSrq2_hR|PG)$U$d5G65d7+nW zK5`V+I)q_ z$Xd_>>H#qBV|Km2ozL7d6Z)<~9}Xd*>rU)CQ|hvO4X1V0SRtZ}fLUfzr0BQdOwCc| z%F?8z-Z-X7A0qn31mQP7*-)RVc%1viW{i?Lj^&szgvFM`erg=?u%ElZ+m?Jd-4tYx zFsV`>!VqnzHQSC|4FJD#02zxKBuO8^%%u`=QcX$`l|$NoVc%obSw~!LNvy)LFG1R- zKkgKrIfr-$a=$m|0)3?(_}&mEokk;l`6{ljuWJ805VAhxMiU`CwBkwfF1_F2`+E>u zL_84^Mt?cdCj|bb`9&Wc3-OyER!}xMtPLJ&-=+Go&#_CAwAZoX)J|{1Y2|(KK7t{N zI}WB?oFnHa*wLoEw#l!M?n-X7v({gH0N0ltu`)y=l9ppg zYHpCmN?WERYmSias-!Rc{;?vu<^LA(_?Z*K+)=QcVH(LDBbJ8wM{`{Ub4|x{Rd?{i zd${V!@!_shTkf_9LDj zeyd~9oju{njRk8dnqE`3P>(MXQo$cN>PT`arwXy_A+53BpWHbMkIJ#%zuA1rS_xDq zu&ajvp4rp9ivl|C52;{Q!Lu>{P_NmJdk0$4k9fhJ@DDt(D@Nq|C-4ha65oHM1~ory}S+g?h8XuxYkqI5@oI^fB%tkmD6K*KKoGC2U8jVyd>CRGAnY33HRe z&SRxLsF6YMlpF38n~)V}kD|^%umv9`5Ebw7=((>zuJRrGJUMJlo=yBSc$zF;vWrC9 z*dUXiZko!F?0wy$9NL`-t~^&#Jx_FtFObf4@mNCl)Qy_f@k+`GaX_Qrs);;`v z7&u1%t7w+2$K2}ddSB?^v_l^>A%|kw-Wl-a zPB7I$d$%FF-dNs&LNdDVd!8P8-jF8h@7%1b{Rpv3<=s_X5&>iQ^a-arAXpv{Nr}#L z=_QP%BdJhg@L*@S3d;Dj`znKYJX3nBMdEBjgyOSSBosA!lCjPI^CL;EYD7#GdCgEp zcw6|9z4Ft5%NSqZsj?L(wSdEbFGL(~_b%`NHQR3@DCi1dilB<9NLHoSi8zY8pG%=r z;>Fhu7E?zGkE2PJl@ZR5S zGtQA;PBaiD(%;Z8TnqU#AZD^K#iPYn-!c{JC;lwV?yY^%+3k#EPBhJ>JX8a;mZ@%q zU6rC?HrVDQuWV8f)kl#MNb7UXlg;#nsg$te!OFB3j7mxesY6=m)R}CN67bo$n-U;n zDrv;JghL&Ty$Y{hF9of8$u}n=H{A2?D#w@nRS&71MrFNUEVVIU9m?k+?jNo1d^3Vn zh0@}tI9BclfPZJ?y0;z)5{i)yny07PZ5~MYRN-^F#+_Y`^Eyb4s^F!+RvtD^{okRXSBefG ztti!%wJpI5s8wNk=jP}4ZG4>6M7IA4Ya8w}Pw`{b3*lKE*!ZIMEZynzn7vrd>k2^K zz}?p~kTvY>u<8hj-?`S+v39BLX?}Sf;<><*O0#%~-sahD!+mta@8II~UKNp8-x%Dk zYm?BnSrw;Zmv=p3F41&_@5nmQ!*t2+emArhc4dTjT(HvkvVU zyE~-g+gjJj(6QXiFoRM=_fGh56`s&m^_Kro4`J-s!}3*T3VPw}%8DeZrR5_N)p_}* zzWQwsW-vb__7Z$!+iPHL)R`5oUwU*f+xn94WNTgg5(N!b1)KDQ z!~T6XKTpuA?sLHjTd%-qh47Za?gW+xMr3V$`-tnP6QDb1sR#?>U8<1iX!J(gR7Ff| zIM1y=&#gNzJZy=Ci6X5)TZNqbUk zqB6SfhkomwG;}a{tG|Pb3PvYvM6k-CZ7(@k!?y)!Vu%syPR{I3e35QqqK|6PCNVi!UD;P%^EXR!i0byOZ73}$e2P3@S;#U}c)!oq zo2*;>q{&iZQ;rUbrz=`t(?#$|Pb#YvKbaUV0{0`2+LL^Rd-D*Zs{lj4jYf;S|932h zLoU$jrQI3K7;0?kXT=r5TUu$0L(Ac54oi|Q6uY7S+q?Fmw_Dl1cO{gRXt!I11p+Xq`d?FqGKo(Ia(g#+ zy&Ko#St+u@j?qC>d=G6irqx{U^XK?fyJec!Dxg-F$O5O9y!D|zNYZBoFGb-P0woq* z)HIOq64jQw5($P-J8>x66Wq*UPP1uGp|Dx=yS8C8>;zqi8$O?5HP=Vcl_}<8J6U_2 z;Q(fnR_-Qe%obmRXu8ZQrNe!MJ*2=)fw*%ZD9vTAiWWU_j<26tgkIp$IRkP%M+#lf z3#Lafoqm`h&ES*e#_kpYGiH;C(($g@OMV6+;cqZKU1aI!XZ%})+nc3W#QN@RO;~-+ z@qT}cd_TyBrYK#K+Nlf7qMW#q%=;Ell8b>RYVDYasX`q>A-V>gFB!f0PkgY+TVVFY zyT(=W3Y>}&O8ac?oBezcc|}*#aL1IbTr#J*uC!#E<#w}9Y>AT&lxqHX5{9>>^?loP zI{eL%G%po7hR@}v3J9Gn(}&?hCd3vAmm??S;Jtd7@GMkh4z&HF$`fkMePoV``2M7G`C4@ud!Ktq>EDkh8nMCy2#L0C8Z- zdGPz}$0}~SH|#Y-S``F?5Y>zF>oxB&xJD5vH&ZHz>x`2yC?6OKeg0A-{Sn00~hIbR00(|(~I-{(u2>C&en&ej%RQXr=19sv*9^{;c2D?Z$5Z9s@$Wn-7U z1@4wQm@`iCO_ARB_f|=JzFEhjTT%QwFTr_pcdd#Aj&zo47euGxafHG^hk-Jh08(%AKvpDUZ)R!wFEVj0)2!y82qPT2IR${nYjn8UbhN4F? z$k;9~Q$l~E@ZakQ!_B^5x~$9zV@amm6lsNjI%94=&QuX3D%DN;SE0wLNV^!oCq)l?^Pt3k`h)o!sw)w4~MH&5F#jnCz~mEE&vDf1;J|X^^c0{FbqkK?)cG?zJqj0jR{# zURGMA&nM0`Jyzw;;M=ZIZS)0?N;*Cb5iwf>-(wF{UImO%7G-Q6S#q+rS4U#EF+B^r z|I|#@xBE5QI!{`;(|6U4fi_@fupw=(e!^MTy%_#9Fp6YfzF5W1eDNS`dgF>-nz=Xx zAa4lbj$Ccil(hX1=!|0#+KV}8c^+re8Pj3}+fKfn+O(mZV`D$t6Eq!xiJ2B7{jRi!Q67`4W zW>R-yz$TNcpLzL6h8idkWxLPN3GSTq?g)xNXcfu1EV>8d{}-VgrBlYyd<~V@O&}*R zM=1z)p5-^Io1g3V1xDy-moylhY`VA;N!!vfG;BEPMKBRak+}`zL>_G=M%*K zzw^l%_|F~xPd_ zcEe>8F?F+r^QJ}E^f2djKp{}YY8?sxt(eqMu>*@JEyAgr-e2wx!^t7PH8@VP7wEbP z0Vip`ra#3he}>>Kzor1(teI{ltf35|=Um0Zd$fv|=ZgRf{~|j5aTf#te(q0D*e7)_ zs**AZC}j6EZ3398YE0V;$buD-mEK|OyO0pc#o6bm7&-FbhFlCaka=y^@aY7O8S~pk z2DWBU<*?5Ih*GHb?Tuxpb>?<<30>u;xQZrHxAy4-cgskr<Zk3_NygOTc3@4_Tc37_QC5fE|vpEb$Nc;fGc83IFA9K zxZy_UtXndrTSTN&z8WNu`LX&21yoKd`%r=iGx+a@c)A@__ zz8iPs#Uv()K33Xc6yPj2W zj?pG$05I(Nb#N=HqZU-a$u3TBqO=j#(I9g6Z@5-^yr<8BMt=g)YaZVlCMzt$E7FR6 zwYp?g2@^HGL7hr^oD5gtNB_|m7f6dhhX8P;lh49ysQmvUoNS*H9fCZb!oWDPvNSoB zq-I>}tK_UJc{HIV7sZ?g+DJ?udM%GTMw9L%Q{FR~i^pyUQ+$EQt_3#XGxgRxI2|J= zIV?|6*O_xOkxlz^Dgl%G`@9tVTA$bZB4JI)Tj>BLG?tbg#{-KbW`Jpz4u(zYcO@haK3y`e80Tt&4i7RZE53t1)f}@BFkn|OFLZ=e`vj+5I+%<6J z^?NkoTkO=@`u-LUrj~!BQtiSZQmTTCflfqc=6>Q-^4%}rO^^o>k3U=4VAG!trePy0 zCeuvGpuf>V0A_u|Y?s3o=sscscZK?MC>8(coC0=NsMi#>G1CL>CO(qL#7^~Ao&d-_ zQWTT|GQx&yAEdC5Gnr=jjmM}b0oSK2eIXK72sQHEQHU%?J{-LJPS4p8XE)rN0h9_# z`onnQrwhlYP3BS9a&34SjYjm;NIkd>1;x72(j!9D#MfFF=PU*R?`786`c8c$L?Xq^ z?=izBwtcOFm+G64%FxeYuV>p$A`4QG9~z*y4c^ z^TQZc4CEj#)Qu{>w*jn=ege>qNS!^n2N4jnb6VwN(! zmaF;hdx~z|-dmaTA|Z|j?&m^bQbl5klKnV!uMp7!+A>bUUy zTv#DONMVZj#-@01?zBIfV}%J(7^x_{xG5@4g5swQP2>vH< zuYFlNq2zGIPemeFyaT$ZgXKwa8A0jRK4~7XvVespB+_EE zZ9e9^2m8UsuT{&lxWGuo3C+r@5yMJCLHp|1t|U{sm$@fM#>P9T(sIZQUK>>?de|yi zfgP-#??@F6_KIgEeiv%`PA=mGCc3Ulz1t1DqQBDjEOLqt7L|(o?fwvZ$ZeP`f>Grbb>+y1jc}gZA*QOOs5m7$ zyGrYDjL&qUm|93dZvbs!$*fQO>fv7`%L%?RgbF4sW~P~PVfA*jZ1X_xej{@##nHvP zE@+!@y;`g+c7Jc9R#AbN8CGE%^|IrAqzUvDjT9$(6kN`U;e#8>6_5*UOjJP@XFs5) z+1ZTFzJcgpL)M?T;FPoB_0>t6OHGLmB>wq08>E4&s4xQdVg3ue8b89NtJ}YNo;_ zRFri~G+E|o@%D+7s?+sAH%&6a3MiW5muEwYMYQV^k^dVn&dQoHDWPlu(;(%HI6y|w z!03&XE>n1({+-tOpcHmbQ8y4(C~{NxJ{aa_Pt<-RJ`C!aIcrSi$wK!$xNIVYoNzoj z9kl`d+69yS#`5tYg8Hm?b}OxH`N=x9NpPRMx&d{)73A@}{}#*M5Zkh=LyGCf46j`& z7}?<-epAz|A)CueDY3@+(3CN-F=e)1CDWmWc(rUWI(TW-XKgQQ)@31%d6wN~bUW!u z&9O_(VXEFJ6QM2bPVfq-%aMxxhZLRHuhXUCaNCpm!^lvf*-vzFa88kdt-1NI>9HI&)iG#X>B z!!(j)Cs&f;Z6-?1COE9z)EbR2v&u%oBAns_DRGFqWV$$XIEOm3_KUO58yAuc?ZLc) zYL?_l56`fj1hTi&YNkXwr$nSPrWnh;A}fN284J|i|Cd#^nAEV?{1ulIuB^{ZB^*C1 z!kkmP{`b6D_o!LNlrF1;B8Qh}*9VJRW4!6kY*O?KwtJN9e7YqN^v;3~NXGEi*9zMh zNnMVQr)>#8&mKWBYER%7Tp0D=6S1KUwn4bBz^@Xvk3kX$-{8y6N+1-XrZXdx{sB)8D1 zgMMkAzI6NfRZ=N|{stkjnseH9TRTSt-_xLr{6RmyX@_7lyp&m0yRN3Sc@MC&O!%DY zrJPPJWmd?z8LIdeh8U_~`a1(M%lrp!6J0-ty^q^W(R@BU(~1*+QHR#PS-OBtZ8 z-ix_PCz**%Tw)Oe{V6r6`ghMkP651Dir83_B~v9XER$fkyRYbc^9zjYO2{@-SA6he z`eDax)errGe2=9^MnO2UY8wy{dqU5D^k{NAUq{0;W8jlZILm61Ps_A4=Gsjus(=mV$|A`Pk9Qphyr?A77Nqn9^> z*GkaYpOT`&1+u0g%^cl@1u-`j^J(Z_czU^;&6Z2{ zladTfjoS-BB(gdQ=$AWS*)<3Ztr%f4tw~cShXWRmdr1_}KsxFFMU2N-!B>6};o+j9vc+F>WX66A<;3`ag&6w7tqJ#CN5Gx!2F zDS4)5c+2eu)5x+(&`bq!VUFT_!Lw0>>NB*x*B}e!i9k(3vC-4hw?XB$ITC@odeaqlOU|44XkS4>_7q2w+&J}@Qxdv@2sThJiZ zntZqRj9gz0d%Y2z!KRDb6lx4(d26!;p-{wzmnIW%5BhTvFT4ph43EzgqY=`k#9|8` zgDBA<6fXA2*tUeYeP^y6=i|*NiH&emgren)9mylsk12`+6+bGoe0n#;3O%xtfQD-f zg5b9eUAcv0kZS*&XF zj0%Wesw=l!*PXn)?#r!_;C>CizIZ?6*sE9fjjEWSujT(Y*Jji9UUF*8dSHxlVk`xO z)a5mQ>p$n$diAx)*Z{dCI7%fXs%R>I<{shV=l`P>iw}%aPK@eg85!Pjy(d$3*LnQM z5VK-^F*q<;vAG+utFP0!x8k(k-Tx;U-%U&nYYz-lP7Kcn&l%i6z6nzPzo}$K!Vefi z9XdjbcQZtYmH+hQlgUv-;s2CkPB4+~kEXW&-dg-;C#%FH{6`ZX{Xb~pl>ecL|C5-P z{=aPFXlu6i|3Ktl+PM99|J7E#1C_A0&_Cm?;@AmGJ{o<} zJtT}ygxQ+gL!eU&MUyAIMW}jg$+-(P%@?(~<%}Ix?8_pC^Y{p@7^Iav&7ak}?aano z%3ZiVE-h;u(EzvEN7pR|cD^4&nuw*R2M5`n$HkLtZgay7|IjWl##h}2#Z_4dG}jk2 zmaBOa&ryMe8WyO~l&dHd1&Y*IK1yU6CY~iV%&^o!(#9*hofYtYVdn69K63t8{t*H7 zK@-di!?i$r12HmG(AeOz5pl*4@iszxo8iIu{Wc5B*kTm;lh6~E!J)PyO=(Q$fbcWAjOhLdf0%BU$@6Tel4wch& zo7k4k<4s z{=)oQ&2u5Dn5s~)W=C;pe&6AKAA%q9H|lCrZ0pB!=o5bZ^So)2f=$fnQWG8anY_Lt ziuCDZum{N8um3H@G_)~>#@S2t&{v(`NIRL5B=;_{+rz57%$ip`zERXvnBz=J zv6ucg&MoQ9)OMQXNL*ItSX5>@itww2sH#6@q!qOmSLyLYReP(fCd}U8*6)-9$IX*A zT;)IaTqZQEmgCI-FUyPe@xKnPK}ToF?v{UYMSRi=!Ic$V-4uwO&mCZ)%ZkH-!Mp}2jf3fJ|WE7A@F(Hp+5P}nn0+k#5k zQ#T@n^o-QaUl*LIv+je-IHWBtt*({Mt+k`+>unfO={5iFRX9HMT6~GvrwKa4-rUC# z&{E!d{Ec{AK;Ttg;8kD4-rzl4f4u>^OC5U=L*p)v3W^F`Mz4;hsE%}ZLqlW3DcH{N1Q`c+SG%&N1_C*)aEN25k7-7gnCx2K0$v^UF^ zCn;-)d`Ts2<|~pEGtu*8I7Q2V1&;*~>-yL@Xoy%1CJPx_!;KkR-wP25Ush}Yw|{%2 z5=<8DUjMxsq-RvwMr(3Nv++5lG5Ls1qe>RFr}KR6zxsHcxSR;o$fCE@M%UCclb*un z=tj>9{>h6lu45c(xyezpM2dlJpM7=3Y^vW8Th3^kFMn#r)jM;oX|HF$LB-+z>KU%+ zd9V7WC3esj@oz7oEm%Ca!j-sT(7=4e$|Eu@*k**YP&0K>sY_16h$?To4DXb3_j%p& zXgaA%{MMa1uBt@w8&(G{nIm9Q4-|>G%`}7828Qvs=W+izgV#3n^z~Yjj~vKB;s9(L zaThdoX+diW$-U9RR18*|)&Bu&Gx06Os;`Jj|6-!xG}W7b091`5df4*VyS;6KMy*)i zBUA;o4v5>PzbH__EwBj+qoxz#iJ5bcUwxN4mas2*~-V!y2g> zdghqEIrR2&m0InfkG9}!)*5ws@KhKHKkTyk9-R5gfc);JxrgWIWb-L*K$pD+f2^ zZfAsj!{|{f(`s1%$l^c@yMQJwcWQ@!gZCB8|MKtv6^O8gRa^eU>m?@IhjGgroxLXX zU&A(FU*xoY^Ht2y>YuBrrN*x5QK0|k;sg;=4k>)B+Uw@n)gI}3{$8RYWdBy#P)69E z`z6iVU`2I4*PBFt8gs9BunCcEIX9f$ycVD;Ki6=+2ZG9ahN^)Mw1bYTQ8iyW{vt(-`nL(xzhgP*J(?0` z$LmkXMLxtTcj6fA(TZzv{jaR!xpu|%>TZ7L>!SmorFsCFZJSSR@~gS>^}2+?lJ!xv?3zZz1H;L>P! z4(7or6oUn^s7czB5$PKPrGk|oJBJ);9C&{YV%V7#bCwU6Zc)28i@WNn65?YB!FVsw}j6#d?S zpl4lU!nR6pSmWQp*DluVLj}dFD6lBOt*q=f?2oDIR}yUq8*0uF>Zvmdl?L8#24{+% z+|{B=5nc3%M>w+qb1&zXz7G@9Pxsv0OPK}G5KJsUA2JUhQyA|0iR_+`FJqt&K-~cn_iAal ztloqN*Ar9MK2sZPncMjcP1QJFtD8${n$bot+g`|Cn#()g_3NvB(XPMU7hC<39=N#8 zHU~x@a&W6xyI*#=yyuN?M`*Y>_aR-^hXl4ISKgR8&+Jd$F(&rCXLl3Z%dtglfeL90 zS%eI2w`)OwX<39&wAjzF^-xEsP&5nQ;vZ)qCzD|4#@HAd3jy0#C8#=Q*-|u`4(^hg zA6+eI@WY4SI0p7UHYWCaQD6h`e#vJ!jwqxITij))~@h;!s-uE>2`F|#qH`%ifIO&t-OohOJ+*q-o2lO@< zM6T&>f0qR3-f7wY6j_dSEvxVCdDS|EnNsA4N$>7#5V?(*Fzc7y26?3|77&#=9U{hT z^JW0;H|5LJ({!=nirjacqYD?2_e2FIq^#Bv65tGFhYu>S>u-SjA^r^1=@0X}A>o4B zCA|SH$YU3~Bi6-=-jPp z-tLvU-bH;#XJZL7bI(I{qfe?s2NB<@n!T?~9iR2rnNRT?iEQJ<1EMsm3l(9CWQUIm z&P%xs0?kHTIQ)tKW@t>%ru*etiJj1(u{f`}<7U(eWKjQp(V1!Nynu<@V8`+A4xb5Z zU=lgOj`(HFVhO`z51j#$-hQ@v=V5{l6z0UmW!a`At>0B5A#+B0gd+CRS{L*}nr+T- zL3!U{HxXjIKnyc1>lj?O-$v}b;olv!!-`akBGA0~B|K)&8rJM{tde~0$EV#&iuBIP zyf@);{1I1Au$zjRU@yLv9A4E;e6(NIw?-q@iS93qBG`zCx8r0PpcBK7lQzrD8Iiae zcB%zCbIAkgK{^2wA0t@7CAONV?UfYa#bmi=I~ybUMCexiBmF)<+A!5BvfYbMH^P**0QT%Vti#bPt>6Uf$%!77 zcL4M6OlqUZx}VWPcWCp;Dujfa(!O7Q-ep9F$?zacn%&ahm~J}={r^SUJqE|tgbxA_ zZg^wcwr$(Gv2EMAv2EYjwr$&)*mgGWZq?TR^X}B?o~b$0U2~?VYI+*K2lA-g_B&2q zRGeYJ*5&!NI5f4&#&@kxI(AA8@!b&uX>)TV{X%++UY-u8_37mjvBz1kymf6YXd>0~ zX3Ag3?bQZ<)TeCaZ^yJRx{@>88V*O-+D53^dl&m|{Q&)Y7jCQdGaSL%l`H(w&bieZ>qc1b1sKDC4RSpB#$kSb) zzf1qyXyFZo-pH5m!|;giVm;tGee^))w*TM9)__gxQ;P!MnOjd_y0GAwbH^w6QNxxP zr+!CQh`d|#jqUO7>5y*;e>a2Hbfe!Qzz^p-ocxmb2VQ>v^@oF(!*~rJ=Zav;;`xY> zCcWqRQ2npW4e>%3sCCrUHeXM#8GneF*wwt~TwO3Wu?{g3*&c43j;0N z>mcur-@(mx1Ls>lVsA$d?7sH*81FcI*H3msGuU&lYiQXUBRWZm@2el#g?u-kFL6G` zZF^~gy5A?ing^d_ucGLGCc`^GRj;0I3|dC;ukJc@e1G~yxV|f<>8=}`P~AN4r#?|D_UBCky&`G0m-Lit+3TnpLkwJrL5M-L|m20Yn3IvIC| z8Zwdrv|;aBm2n;7qkC1EkU3ru><9Voj*ER5U>`)|QYNNfDA+l&-YtWu*xNIWUdDfN zD4h(8ZNWX6XX%adv_wI>42?_pY4O*J!*L3x%OK$@N&5qQ?_h8y#eu2XaRdycZGb62 zBAb&4O1d?bOf0W?|d+ zk2GIqxdj=(eEnLm>v4u)8{Z21T5Ki!9;Rls^*-M5yNtZ3PL%${(;_7!BTD$42!CyH z)|Kt#7`SQjCNEUY>c}S#fB|o=jGPXg3%duBHP&C|$=u#NHREuCZCQsmJh=QFr$-kH zF|3i{{Pj_o?uL&9zT0?z+@$xW|L`)c_r6Z<7|^JTCU>q+F#!f9AUs3NLKJ>?WQiD| z&&h2bfkk2I5HVc7DuMcG@wXphZuB+BJM&)kwgBZ9g!;7N?)E!ESGuj@sr#?95?&1|@0_}Cs?hVMKwWmBLKm%S}} zNRU#@obF(+JoJPC8kpMpX@?seJ_l$gkkW^E=o0quj5Fh4_p<|oh1mG}SWna;qeF=J zm&(rY>#M=XC+~+XiD$n~3N~KAR8F)gC;MPZPlv|%ds-??#V2H0emLUw4#Sh<;_i7Y zu5KgMVt08+Ns>L9QvhK+XC*qR>3v ze=8aB^Wo#qC~VUu>~mYHW#X?e@sWoQpxX7U364GJJ0^S+PmWpLT|lv*(ASF zHiA;ap5?_Gn_zD03D16rW|g#(#O0m-cZktf1e1P+hwBcF)CCTDRQgB`54M2`gpE6t zE$zk4cw%1uKx0Y%5wY42tuF|px8GK8i2y)r!;5?Ys#^)C7W9-eW=)2ks<+HH`*4+F zeta-_8i5#J&fdI>h|q}}d+m;cb8GMSz{e}yzkT-<@An9I`W~?oX=Q6B7L`-1*STb^4H8sLe&pk${q!WXN==*s8M5%ojc$0<8dyWZDGlXnx!Ql+dz}jBh8cq zICcAXLNB$U#BerwGU%Mc)71OI(11kwIb6l9V|Vj?OW$6%9R|3lpO8`LKJm0`Os^Fi z$IXgJKSndZP$M?M@Q1uu4P0zbFw%$sN0`|7x^LoV)j$hRl~lL)>vGGtIGDKZ(n08} z{G^}$*K~I3$aja@Ws9OvA|T{XeyC4MM{UepvDsi~a0 ze&K%^*I!NPBua;v zPU4tNLD~@s2hgQFGCBfO5xehkwexT5wB;=?^5G{-jp6u>JWg&Xq$TAOV(gnVrwMOn z<_>0h1jaDmSoB(ikBrP{sj!@e#+2(Jusduag+K0>WDG47`^y~s-eW0;+_v^F0xW0PR{4ZL5-6=EUuMhQ%s4LPorzJ!=eCuh2>nWtCi!1_UCdZR+a81Na@PP>_PX7TG0JMvyxWY zUfpZ%LzzMxk4kYXm`vV8EUsYf3&X*^u+t(WZ_orU< z(M->WdQXpDr0_L-l^Ii_tdggER~tyM%o!KVbh5OVF@_SdumB1UHf8V zW!%!gGbxxg6|StKe1g^%Wz?RXK}--9)F6!!tsxhU-_<>?YFQoVRPSZlUj;aA4H8QimSM8@=iQTXnc3r-(dS{QP# zM^}J{L~VW_ys>8l6LH=V!&9O!UsnJpd2dhFyNK|0h95-VIcA1-sy^nwyx+hmeNJ6N z^A~lFt>f2i5Zz~9+|Qpri*Nmm=j=*uzpjTh+TU-#fWEBzuX;fqHC{?fPbK*{D2u$F zMn>h}6z^R-kKLk*XyZk_oZVZ8#8-_td+L`bS-QWMwi@b0*ftTZ1l$o)?3 zydoTJ>N?IVNgUbYPIbj5u62SSNJAdVHxrXYU(sL3O+oTd@+jRVW zC-ze0BI#PxX_VI2wzUSc%b8{jnMd>+3XpnqD>gGD`w10uOb{_ z@IZ9D@G7KT-i9}-i}4P+fIJuNI=|*?=sbugp)_2A%@gnNuScw~6Mkjetv#e3m(kBC z`Ly*xXA0L!&NUOe6ooaufVxDIAg)e>qX|a3wVo7(^tKNA_ z-WSp?SJpqQF!M-=Ef#ddr7B01AFWPAH&YwtsF4S=XrET(stXy1h@17 zSJj73);ol%Fi6958-%Q8ZzbhD_Ute*mbrU-FMW`YSUHJJA}xtRY32ehG&x z@TyG0$%m!mjkHNoFLN;%L2`?fd;&(*Z)BgWlv>TK)pS)KhD)sEq?i3h(*iYb+EU!O zhLY9T;oa}3qQA=*atxsAEzWNujXD0E-KuLH&#Y8CDgEQ3&BhJ+gDE4$5}tj1U&^{F zpz;ONk;rYn%juV}3ZgqROWt&%Z1Wa58p5nNsg$s1ri7DRoWeHXaqk6hQ>rIlMZT>S zxBm(=bRRMyVKz=7K2l&ZrL5an8GEo^Vf;Gy^zMDU2+QD?x=!zrzaFsjFs>Y1M*d+17QXi+~5PaQ_U4bZ`dWPjYbwL`L*Z(1M z=6FClk-m`YnORs&q;u+O=D-N2K_jkNpS-QON79-uZ_fkP3;)m)*GZ1!b3sFBeBKtr zFZq+r@w$hCW0eUf>6|Sp*Qh5Nge&tl)nt*4u}59R!|YN59c+elXTFWBszTmuU{&G| zs|xSOmQv2}!{p2cTgfA06&kE;5h zBKp_w)&%C3_RZ&+02&(0$Q83zj|b+QO>q`x3q1TBp6OwYA5T3n4|;Sl37Q;ImirXx zeTrM%@#4#WV!zky{*`@~{0PmI?x+nZ-KhB)^bO3@RBxf(A^!=@byAmvX}VP=>bv1x zo`Je}n~rJj3N+h>sdwrR|zMZZ5)ibfMfi_jDv@JOk_2;u(M4>wSXAe)fLytNA z^!sUc4MEL)VCQz^vl3l{ZeyPA#LRgoLCwhMz(fkck9tlot*I~u5cNb!kXA0@r+lO9 z$;m6;A$_>pDgItg^-Cp8pGn>DR&wFm8PTj?IY8+rqbyUC;!0%tbkqHJ2w0OD(|o0u z{2-O}DJ#hS>X1s2Jo0}Y$mxHTXZ9S}%{gXQ&UHBWKu3@L5wJ>oQ02Q+v3jXZ59wE&#__LBdwHLwW(yWdYg~e=l z;{oBGLo6Z=T_i4r4<=U-Gt6sNIHv|mGD4g+!&v^Gi5;>X<<}Bs3U2F@<^^qY!22!) zh21@*of+fS>@NA<7VAq47{zaX_Lk^HcWuls0H}4W#OU{!?y9pKvCLz$!=Mz~ForLW zBb^8`rLR2owpPS*3FetG+4lmBi_*)oR2SIvwzx=O9YwCNx9;wf!p(m?b6e0zU}i$c zZ1?qEM!0wvNJO(cvt+X1ku%lZaTSmm%1*y86bC_!4GO0t_FYV=e3Iqdpxy=R1Kt6m zBK{EN%&hOUJT(Wx>ePLZuJ6n$0(Ex@Gv%GnPw(1~LhW4vLVVCOhGCyP_D5&#P#1G( zzj)VqI<4_iq09aihX*M3lbv^ORijpdq z63OA~o};4@)7cSNd5!sBkGe1|k3$x(P?Qqwrdb>PRXakFsP)_R?v`N`C*afiHdx!# zTW-p|8QGQ4!mNLja@!O?6YSWbzL{G9y692 zxJq;;spgDvHAc9Z`pdhvKk~EMT3M5p@;E>pn%SEjEi; zZtMNv%%eFjymNP-)iQSrkJfFI$%BrrCATgX=_LryqT_FXOGv#aLM?QOOQ6vkQ%iRJ zId+jcquOmbJGyIfwu!g9FK_PNhS!9)6-?$B~Lt^rd(8NKHpHH@V>I>zLLYNZDIl2VR4)scTvXyGSpsP44~eKUCWi zR6}YpZ_6-DC90%aL>AYrS$C61DYUYN=exzL5kJ9Ni2E#<;tHpyR~I5U#4T)!rN~Vz z7NDZbU+^S9i-yE3!AW7aT&*!J&*h11WN&b`&N&COL>JE>LnEI!lVNRC+tfBLO?m&) zM}kII)zm$*Hg}sXExU0_B;@8snmsM07MsKElS&`88q0b9VWjTMA_1&F{5eVG=O;0n zEIJOGpj!wDd&(6DFcvt@?3Tnui{vJeQh(htE9{7gNWVcw?bl#Yoj0zVb_Lue%lXD* z%zQ4I$A22fosze+0)5~Py2Kr{aBb-b=Ky0vsl;7YrSe4&8;KkUA8z>s{0O^1MdES4>V0u7Yp@0Z&t9lgHQ}<&1PG@-K+FfU_vdr zcqbsM`-8`NHA zCl2~CgB;J%1?^V~EwmldCGKLC^VF7fX*JaXE+@&`?Z|Q-yF8l=t#SkBYASSWr#eP- zFOxQow8)^gq=RioQ$19`(#)X0uqU$vqiv-r9-Uay(o{d!YU?DY1_W#5U8WzJ+KlCd zot}&DamXueq0fZb6`;lLm8Vpsnz;}m_YeZbk0^=gCqbAG%YW`?s~WTs8@I8@brdWl~7fHU>`f4^$8p7;1D zaUcCYYvRgF*<)HKgrr(?Opotrx}s@L=e1mI)@5c&!!;a@|A%EJEs&;&k0DpsMlYR| zwtw0@SA7SW%0ckO>=t-?)J~y~^W{}P|E=N%LodJa@r7Rj&_Uoh>uO7y?`{O{te!4Ayf&OJy|0>>g#VY5hELqqEmR%UdtW%8xAO71Ugu&u zdhoeEn)R#BC@%52MowXr-z}d?-sdi5eM(=dt8bZ#9{-@syH!s%jWxXGf~0!m1&&kV zyp#uJj9zF$j{AKVW8lYSZm-Bo^3fM%r+0sD!=dl9V-+r-UJypUg>gdWiL#>$GV*X^ zc|FIwyJ9F4(&0;cw_raq{~hUn9q~>*1>nJ}w{)o&$ zUtl_^n`kv2uT)d+UsK0(+imooJnc0NIcSpK*qZUKP)~SgOA9-Og zv_#C=SGb$ro^?GwUZV*=jhENy_9BXsAa(ZjK)sbX2G;biWw2?-%gS-D;o|8jSNGxB z^=J5xBX2QN&h1T0o*v`z3yS*azezED`FC-h(#oB?FiefF2lrTB@&INV{5pQ^%x0OD zW?ZZGoi!w=)ukqoCjeSfsZVgKZwY+z1&)nizUW$q7EQ_1)7POP51wc|F4qEFkJAym@jB;r zpL|U0Ylqf{BMAC%=F`IOoLh)!Trp28&)JU82avXljI4=^2yHUcl&PRS$jlnQ`9E1d z6Z)GWN^b9+i{d^MkGF*HqmCb=c=ah9n0nTlKYBC7R~jDfwIHb+7sTpLbMs4x44qKx z{8-3TwK(rG|39ryofB)V&kf-s-%;pysK3#>V=s_q@K;mdN{79zL&G=5?OOqV-&*%8 z4l`|gM&95}whZydJ61*}utP`hwRlgu7B)sgXH8=44vM>Wf+oJM;JkkH=1*LjuT;;~ z{C2Mw#g>&L^trXwJb+2}=De|2O}q7oMx~yw$IH$;zTaEq&jO;*op0=K+mBszyw8Z+ zmaikXuftgmZ&|pZ2m@Ow63179*g*pFaX~!Ak*AUZWLRFmESMMDZ?!D>+c+H9LVbos z%mjMxNA~VpFGGa8p4=t_@x_6dDNMsv4`6(k<;IS!0K~=1+mbCjzjkWdpLtsGP1hHj zOp{F;w?7VE8*%Mh8zXd!Tc$=yT`BjFthj4XJi1}GX$H3j@SY{yHa$ZpjXUdq6PjDL z_oK5({{1IbX0JBy4~nomXkVxpHn1>Ccf-mAY?G%2ZrZPkjzwQF!d#wacJ#KP91FL7P&BczWxz#5`lf9-q|Rk80AeLTjnf zSmW9?P~lwL2ZI3zGgu=dh0%(@XG+Zl?e*VI1HR7G|#X)K3DmQ5Nh<5pd)QM3%nX;1wHlknK@ zt(953rr;V84sMbhaUUpP;Mx?wS_Z4pc+9nR_QK^aCAtDH-+-(Tc>@-T4Rz~Q8-s+iUO)+*xW+?@kNbbq`6c-Oy|d$orlE|Cp;6-- z+Ghs0*`NmcQGb7uoq*SrK;}F~X7(&~~m+o_jx|7+-U+3X;Q!+O) zGrwZ4&8L3FbFz@W#p?L6B>BOInXxhVIdLJg%{GrSEgQ;INu2$Ce6a zw#$L8pM$OIg07vzg2Ec}FT}~>TB*kQ+_z$*?;SBN8@qk`Bg$+7$%vcpfi?gXCLA~u zl#%R7o@F`!S^)r#epn!6>%QMkj3me3SR}c>#|B1k#c@WVLLE|BC)+_d_dw$-k>luV zWY)g4LEz|n$w+10^ZwaC7=SAG3M(9eGQ{-9Ypq<_?e`2{>6t&{Gnu=*FgX1jJk5ib z^#P)|{0Bh0_EuD#;$GzgQ)TWud(XHYdPktUW>KfQk-si-$=^ZJbDVF%giUrD(=@t# zKFH#B$@Jtgevsynlq!~G<95MfVnLY|3&j*z zjvANS9ID7``#ZUb050`+O2|8FDoYQVkZbwthnsDsl&>dY&`Bi zHEX39)!nJYW15UjKD|dg#LTCfyE?1I)g>F(C*R2gcFna^{8sHZoGDtx?vg_5FoBJc zFnUKTBRNQR;U@rn76immVgIg;Lky{4N2>=#9tEl}H)(($*9RH>A(~myP@H~<=3@FR z!?QAiLgz4M9UP(g1DzfvwdoRAh(_hiA=i{B*qa0xu&pQ8I~AaFnhM+F3Ai7kIo>Tl z|A%O1(SLV=_?JsgOjex1fOt5%2u9n4Zfpao+9700T?~K1Y&=i1oU3d8C+J+>RqfC7 zLayh;a9}siZW64FPyQfnP`HO^k?0{`$hTEA*ai<>E!?x215X85$P;cdwe2EgE@++gt?y3RIm);NTq~RgwRRcxZ1_e>D-fvR9xV~f1TI^tIBd(* z6@rFTLW2=$lyU1}&{Xh#3XKb=3}l@Ru*9|(^AJ5^^{F&E)-)!|M%%KaLdUDnP1vWY zP$M=$o|YnF67phV{#Glf0TMFwP?ju}@d0seOhJf}D`P^;Kv!dNO@5e$OfE;R%iYB) zNsue!Llm*C8!sbKDOV(^WbWk}fi8zCbBQR+SCGtCsYt_WOb&K_h@ioAl~*sElVXjO zIZ548Hp)tB;_F3looPQHUctr0ZFOV8s&e*L(39U{;pTG$O+iG$so>No!FUl)4T_h?hG_O={Qc^X-HBF_|IBWDRYp;`YqfzCU=H+udtK|Z1Ryo#y5L(n6 z;mT7hcdG<#;K~@`>eVavs$@n@w#2uZj4nPK;YxHleJLg6O)4ii4`VKt8hr(;95Nm; z6g385*#py(6fH0CO_$?RKSZN?Le3;I_u$&|ieNzV2A3=f!%WuE@?vB9!Ww0Z#4{Tu z=N6mW--sRqCl1!`~I+cSH4#YDLnu}Hn|88+w8KV#qVSsjT zpRjWqvI*UB9jvnbKv_w+w3U`Fr$$>-O9l^2`#);4A!|x_xT)cvGiS{PmMXc2Bo_Me z$*F3ogb9YCgg~j_3H#!NK+89|hJOkEmg_l*zo7@0FDvf}n!~d8sV+rvYSM#eT6Sgy zE;y0R`hYH4{aPGsQIUv_Rqn#SR^GzD zJ`ZdX{&fNSxvr5dMV-HH_1Y~>YXj{{fCS0qqUiP4zf3WX3+PIvT?*(xYF0f|fYO^> zwUS8r@7|lrxPK=edxV2_2{k(d2s_3xoNU7%Lo`aTkHCYyhknm=rO4k{=RehE0x_J3&w%(@;@KT#AYlMZOr znbcnv4cz*tE`M2cFl$;66Mvn=-$VXY3wr24)-t{Tf7v6Di^0O>`Veti*v=Fy4_gB5 z0GkbDYEXNmdheCO&BBxte}0)BsA@+Oye1OoFzkpEs>K!#=lA(CHG^Bhny;iWh-+mw z{MOtJ^k>ooSsrxLV7^MwJ*P~+cKy7ljP0h1DIIQ!k&>uf#| zB8(&&Da{!14}wvBL)8uzZupK&OyuFnt-0S8*xmQVh8wZWq*igSPIrW z7I=z30X^Od1)_N(kpkgtd5x}lji(T#c}XEfGz6^ni@kH+_97{e;=#Ydm#KVmNZhT4 zG^xQQ*$@c>JR(fYt3-h2!DEgB3k|{qsb26@>rgk<4C7N*G(9|;l3RXtEzQdpRQ3pa zxg0CdX`@}Hb>K6;4RhiN;9%JqweCi9XxvD_PiLV!@DD;$Fg`>7)|^_C$CkgTHR4!w z_g9Se`}+wI$7rBG058;26F$_Pxv-3=6f@+@fFVHx$7@IO4L2;vNjI>r8a`3$s=9yI zZ?yuR`a`P>K8(kCh`Ai2o?LaZs&BJ82{1$OxH$<_)>meL_Rq>5`2+X5Fhj67`KPYv zd3u2TYxxCh8Z-&Z#P2qWb8e$fmc2k^{7-bWvlgjE@W_Pt-c&!C&y!Q09v#e&^g#Bbq4>E@KWkuj2CqYIR5M&OV09bP! zWSSu0tf3gAmRS8P##pJOX04{BezvBk>kD!MSF*3h##oxRujeuy!rC9Rw`WHj+05SG zDY-}=j2XH30{(J|?eZGT8Gv$-Uq$Y{fc@18d!SR)+*c~YK&yal=zDW%B=RiofM<`U z6V}M_Swb|_@v_9N5!m6*-`9vtgZ=?_ycWI2n`DS`{Dm6-4mY1(+gKtdjl9JsnuZ+- z>D+MI`fy>w3K@!X1ykfWtsp zqEaG2%GWMJfvi36NO@b9sZO?AqIIY25X@{yV!?1X&XAxvQ>wJq2_o<}PD&kWjQQ0n z=&r|PpFXsaJ!%8n50S8T=I??JaHx2t`!m8v0Y(8Z3;sTVC(Zx~5OI!7`>lG?IZ}>N zAO+AX_sd}&#{vsW_mF^RVB;$l`0iT(#axgK9(aLJ;k+XD@8-E(IhW6F{JcgQ^*IUwu{C>a$q#zQ}3X`Fh>Bk+_6dLptkzQG19 z;!0`-Zs~hSi+f7*z-MnFti6S}Pd%^wI4NUk3?v(ATYfBRGPqn>_yLK)k6xI;qFv=& z7^9GS6S3RieJwTbU2_Qw67r;c>A$yvMa~Q{iUqKhIsMSBeKJE7f4=frNi@3&49MR%|E7^979#;>-WWVMDFi||u-E_kR#7SroOj4c$kK;yD39Y{B9 zR61B5{KZ(E?{t(L_f>@b1t!^3UN6|;R$S#*F4Sr*Z7eXdd&HtjPDx?*I$Xk{2)kXm zgmsEp6|z6sRP5a>^=RqZDlKM?ijo3Y-q_90?-A3sFD}S9$NRm5Afo?2*O_c`7+3^^ z_yGwA0xWP>A$>G*QgB~ujYevsITrI4p~j8i18fx^a6RKU7{0LwOm8Lh%do+UK7!I% z*V9Fnf6KBmKFo63*cbERQ}bEp`nY8{fYEtuN(8^yRS2Vc{#(?Gg;`L+)zF<>@_HXC`)F(?k1pn{H|8jOd zkBY~!ie*3V=~X7YdVG|#ve^w&Kds@8(r{Up<)I$DLYCPl7UH{LYdz15KL+U~e~j0{ zw_Pq~HKY;Xw6%)4r*>gA+LPTukIgD>{z?>T1hJn7vS&6QBmu!q^}_3VZh|s=Vs~Iqq!{GXLBVmvr?>ILECIhbygY7h3+6 zwV_UtG?JEWR+{+{PAXTjt3#IbeZhWkVI3EcPX=K!N)qtNg7(jQ2yA1qqJk<_u$7}L zbvAVIy42=k#0^T`l&)$q|X9HG0Th5OEvqKgqM?14KD~A(lN#kIXDZo|tC&LLh(_gDhPMj^- z{Go{=Y5iAu2+N^*os?drK)P%m8M?}@f!f)Evd11r!{7dcIFUBelRj5y6E#0|C(ez$ z9iEdG3op@|;}>1vui_nJV200s&8mye=mNdYXX}s{za8!g^to>D5D?B9FhDF7DMWiM zfvZ7)n;?@kMb8}!2!924E~5Y|@8y4>E%<9& zf%~4V#1Wuwb4AvHzFEP8+h8CE%=Irv1eq*=)CTk_QpCH&K zT43U9vD01G5(P(9JUgV$91K4DcC~&8f))-{qCfLZ|BE0ucTMDO`r)1J?<@E8NWb|E z8!>CHB76t~BVl)_UY{fnV1ttx54L&xx|j!t#ardCWfttEc@08ubufE94kLY5gqOs4 znQunw0LxfljtyI@k|AVR?uwSwl5>B$!x>Hx3$MtAlaQyVo=!ZGjz`H02Ce}tN$iGaZ#c~fYb3&YJ2~0U~k0Hj{oWFK+y5??s z&c1kW1B~Ju7M?(jV;glw;MNKid^FZoct-kd4KZ>u;El<;(bk|4YLYpmo@6@{ z!$qqKNSpA-Scld&Y>Np_%L8OKn^F6i=GufY{zO`z7_RdXMQAuIsQP7C>W`t-x)1Lz zKV>y_xUEI5Km>#OS8?Y~vsu1Wy7;HIU| z+B+O*M!`sxD8u6jAk#KdEvW7nrQrDOI>(BcJc4~{MWU!ng>VL6a0Ba^M92dZgdg5H zxDH+Thj$iC8$uk$f|D?o3IU1`(?0Gs+F1Yo9h>qRl#`5^X>KEw8F zGxq<)JSlhggn6@*O{%j|FNm5woGnE$0VnXKP!N+~%rx{FOwsYij$ON>L0%LIqY-jk zLt%`&pz3!lYhKk{cgbS<9zb&jTbXDjl-h@T7Bg1zh*XGWXfwY;C_jRp9j})b2mr3a z*T&SQZ8Bd+nq##nTM(s*l^9H*(-NdKge~lqMW|q-iIBlb52vawMGw*CP-(M{FTN1* zmeXne0DkdiLzAX@z@;(qilAF(QcBCSE0GZtK&tnCg@s!vF?9tpxYg2_KD){+3Ks?yxMiQ!M_XT zW#dRIT0H{o+B#l*=gk=dE*YWsf|Ly9=HPOTfqVdD6GI!j#?W*+L&7v=!~M5`&MFj4 z=!~g>TF8k7k_1hF!dM%z-#FEEqA@6CY&IL(&O=Ho=4M7_`-04lYmGhoP*#nInHdRF zR$4URq*sPv7dZc~5{YBqX^RTc9j_Z%-M>UnrKIX|3RJ<0zfy=KI$2U6M}}WpBm|E9 zF$y;@!GFa$Z;1Uah9E*=D;*Thuj9*jKK(uGWCXk?phPri_MvIx?V50ec#!PV{iWz} zofzZupdRb}C3e$+afc)6p+H4EYSS?7Fb^^Ghq=LCN7)Zx11nO0Z&D}yPDyTYeMphl z&$EVf^Fa@iwKH-klCG}i&ZQ**bwF@4hZ^gp=Lq$}=(ui!L#9UB8h3s>!aGm4yL#l% zy|mjh5WatsJse`JH`b$I*%`K9w-@OxJpJO6TZiEN*w@GY(+VmwdHTc$v%U4HksB!I zzcd}tOq$9{d#1IB(h*~`ffQl!!~?W|)#ARlk{4cWqckHl{ocFV)Ey`6lj=eV#d+6? z3TQ?M=V1BG!4k>NQu5;u!%8hrXSNM7gGqOrDU&VSsj}Ft?LME+EoEO&uC#b@3T|)!6rw(8D-x`-}K!9@n4>^XCh;^`(Po8&(aM{Lv=rfi8fM|sVbTUYgW%Xq_j#<2YQy?1PQ-Wf zLk~uKXzrR;#4lv1nJ9xEz9bLha>O_tM$CL>tc`&$s}})QYYq(81UM^?E0Gg>hZB30 zErnXnIQXD=Ftk|b4ONG2cJP&FmnWhr4p8zg*~&S}>im{5LRJ(&W2xlICPvX6MWi^f zp!+SQCZ0L=JZLqpPBmO(6>?Xq>G*lMG4V&>w3r0c=7=MAz0Mn8Wt-NBGxev=?=P}> z{!5S}l>_;*8MOVq%QmV*`qFdkTHTi!-K<@pX-JLUXY1D86LW5&Nn2=-G9y(mx295e zzQ2uGv1H`iiFSI2L5@z;bBl`!!oi->L{5Q%?ny2^MaiIJoTWJomk!(`eCG?g63~iI z_qhZ3{4n}pW`1Le92Kll+lVU{E{f{rl3YHO;eY^ie{;Z~#6PNJcO@ifiHzOjh7KP> zK3a!$Xz0}9;Knj8pe#TXS~4RxXGG*iV~lna!f1dd0~O9HyH@vB(R*n$KtE=v2X zG$Tyzn?D0Ns<=pu!im%i+?m?OEfQIYyC=$XG?Y~M($@x9;>gOg=UL3O*P+}j;Cbqf z(*?sg0u)6uL$@NGz%o;byoXuECzc+?RjaEp-mX!Mj%*AOdZFl^h?)^7oC1p{Tmngd zbM+;djX<%r>~LXm#NYTD?Gmum{E>IZtnahrOoECbl53q|XgSE?iLBkncIA};aKwfcSBFd8;_pdw!r5OcXd#QIsK72#ocTL|$3TvIvz;m{8(a{DLy;9F( z_{aA${_yy;wb|me=xG%0&e@v*MYAd1G_C}hquXo+y!(PdVu~%9a!ESYnlmd!o(G(p zYal<0mJa4OmbvWzcA>8a%D`O2g{n7RIJ&9imossp+vIS1ffg_nY{&c!BPm-ewEHGw zLN0Fp{hBbfKpCMI#+Hg#Z?sfo<3_9B9XS!epT#@?C51eX5(AX8vtuq&KvHIAS~C1i zkxgdB8mCHcwR*trP>Gnm9AvIn6#F-auk_#j@cd7x_8d8}qlHi$etB}*z%ycfIi3t@ z6g4}q1(%5=T$wCeA@kGbl>k<(GH)DjZUs)xT}Do5a)_^2q)wb7X4L}#Lu~56D6Sy~ z$mWuqbQTVd7GBaQ`fUtttmI*Z+ek_%37Z@oYZgv9@qCZ9H&~MaAsR80ZPMS#9%uY0 zbcfh=AC6aTx7;q$XK<&^Tk&Ez#C++4Dd)ntD3<0;vzz>ILY4ecry%{q3D8gxk!4wS z>}8sp;uNh519W*HU~9y+{yLhn#hkT9T}&~F@(l>%90DOp%dNz%ghsW5R@aX_mGvQb z*T{1vgLn)IS{n;f6(kCH9AgUw3MlNN#7+`(g{n7d8m7nhGi`&QQkG`x_92I$Ql5yZ z=mYRR;-pZTmi|elF7>pqu73QFS9-tev6c07o&Ml!B(_&NgM=MY8t(?vyR_|1gN29e{XTYI=f3C~6?AnG@QbuVr6n-;mJVf%fesLyY+6U7-JLs5LFNt6jz} zjzep$bTevIn@CCiO4$NuXNRe~HS{bz%LSiDKy|}MrH3JT!zup7E}Q7_c1p=L)bWo} zlt#rAnB5yVy+Y^dmQ~Nbs)z2{o^SPyA?ZTiw!v%Df0cw}m%7!9V=0@HIy-lr_?I@|zKVl;1|! zs5RGb@>%hG*!x@a>og<5kDYwb;R5ruMDlCJM(XSK3cYD$$#SU*bpNf50{XS&=efOx z>hqTJ@_ioP=Y#Zom)+uxf$u|nBmT1*lRv{9emGU%^X!e^%*`Xnk08@dYCYg!MxRl}C41dmWA*$>s(K zZ|-ce%4W3KM2*>hRg4mHras&|$gX57wRvSc7q?+nc$MkBZjw#QHZ?2`cT|7tOnz!# z(O-wokdKfYCm5`Gy?IBzmZ?QuYHTe@^bEgw%gqcl*wAd9yTv4Iq-?)$U`%*hbC8W_ z9Ls8Fj$CKlIZo$iI)84y$Sv`%)YLhRcyfi#JbvRI_Z*I!J$aLoAGx^78Yyk#13v6O zo*oZA+wd)FCYLnyj?VC^Z>g$vI=)ihzGLopcI?)WQJp+m56^6pCa%|ny?2J{*!WWG zRdG7t&*)c@j?bM8ZI8}u4YyJry((6EzEjs*2YG8ScfNTuG-B7Z=|;UCeXak#UpR58 z-+kEkFnmPssqjA?b%ZzPmU-nad+S!rT>TU(o$so_G`bD*`fS?4OeI?3Y<5Hc=6ia) z{s#S;;#i6G*=WMs(Ss!XX*x*4L45Iz=Kt|!_+RXOcU)6h+OX4fW-T~2lxi6ZDj*^t zEpcq92&jy7$Os}*LWD>SNyf3DqGY5>OGXh8Aw)_Dp(H9LQX?$^0*O)*A%sXm5>oFM z-FyDeHdicwdS0sH7TYv*e*F`aPSG+d#T&V+L4jm5VUEL9T-Z8d_4fpHgmnlckX4?sD zavq&U^x-|fvH??qp%=h?j_~bzUYH6xD;w$OW_5c!44WFUhQ4qO?{!SKT8M|9BHCp! z4LT%SB-@ycy7T_K?&&b}`SukL?E_CKukOXbCp81aaDSSEM5eWgMs8>-NtB2ZVB6#k*3QQti(6P@f;ZGP{ZOB?$EO&zo<9@9Y2)<8(Ep2X7^; zI%cYMA7w9wbV}UbsYHoi)3{2$Bhk^9g(&nZVtPaU8P1>}ThZM?zAnCku6$^|ySoWhI&U{;_sG;EDO+mWj}*Bq6=M zEwOe28c%?{6NY}*=?1;WF}yFKR#IG~3ca>5?^Qb!2$moePNyDQE4{w4scSvYw#-mA zG?E;KxHfm>EY$q+tRo(s0P2YNwuma90+7Ta>1aY!9xk%lsdiB{w8rTC*Wq81+( zXU06Tb=kiIavf_9iG$#&Xg7y4s?gVp7$q!4=YfU&3O_JU9e#w<_MzTE7K?OqJc&iy zIq*)l3FYLeV5CYltSG0& zw(dze00TG8O)M@bMsRtKic!#T{s#$G6bKcOh`K1mVQ&26PP(L7$;<~PTp#>b5=qpuL44wjO=OH@tI4N>yBd*qypF$e;@mHbF z^KPO%iW>9H{R8HL=96HSQ&X}rKU?OsUoVQ#x;-DvmCXSGd1)MYfM$a%rjY8=6aanQ zyd6wgdq9>xB`TAczf+#UYk~sUUl=_Z8*;tleh^q!f#(B*3O@G0l*F-HsZNc7Jl48M zXQJXASIMK$6A}^UXfC)rBm{mjOEFstOr4B$Ud-S9NWv82ObASBI~AnHJ<+x$E?^AE zYi!ImnyOsMqf~1`_}Ku8Ri7-i@}EhnScog1e3y|evxOJ=Y-l6%p;tCr@#uV z!F@Lss ziXRT!d3+D?ah?BYzHnA!sv~WG~AZ+2<=8xbt9Xz7DBHzmYJ_^7O8P-Yh<*chB~i^&q*3*9jPwB`O!E}^L~B58 zHbR@0XaYP06ZvKG^bpjONNQ%aG)mzO{Q5CJl!_VXhSXpNLK;H^+aw@BkZ&BiNf_Ug zm~e>?@(_v%!3siy~Fap4eIk34~4!K$1S=RcDtlLMZpsrl*Bs8p`J zQVO$49ids!>BLl+Re@MM%el-FiuX=L-bz3j#Z^U{=FsxUYj%M zCEqRNF5J-0L2mxm4+lv9UP1pD`r~(NC3Irnx+QPF|N6$^+v`5RdFJbD`@X)p`sq4OT>S;O=UCB#~&F^>UHm_aw8em49fFCHv30wW}QzfkyL~p|?YZ(Lm zUAT98#ae;euu%air8YucTe~Lta-M-OcPWqy)`FPVKN=JbQs~OF*|sIo=|Y;-TdR6 zbE9b63NhNgxTdzPYkN1c#zdS=APWbaTotEqmvxnA8ZnhrCr(gD=;dk^53SR3Pz2bH zbfCz`6Er>El-#+*3aQQjlZ}xWvWh?@kKJnS#7;T7l?u%S=b>?qHjg7YNR97Nzio`R zM-TH3I!&y2Se>v!ZVz`uCV&<)K}UKo)t?2eQ=5%R&skisv}Zv;u}ApkaccLBg7}-8S=(x9J~K z#Q$*jZH{KiOjqq*TiB{0EkP20Bghkb{s+|Gm8~Vn5!NaFv+I`rXgsVx|IMk~yi*Fj zBG0D1P1DP7uQ|FV;^nFN)hF*I|NL#N_u&g)!-pD1Zry;rq!~#s-h!aFzC5iU)}6S> zI%NV)TX;87;whGQG7l)M{bHOH=I;S3Uf_P`2_aY?jlM1u_RY;jjU@m*x&mkn<)bUTp5*1_Mfm#q9#f(bE_tuZ0oC*j+Bz>drRQ0_w2YUH;Rj?N z0fPGnfva}iYmk`+q_Gh1$XmYx+K2~WkefdQ0@(D%j78n~3+n!yb$8gBa+hZWf3`2h z%|xB;;t6Jzqd3lT9x!)}6R|-k+7qswl;l zv0!U*Bsj3Y+St%={hf+ud{ICQby{Nn=woGpxjD0y$;}bH@0_J9kR|uhUmmBUqr<$b z5tj($m_H1pzjM8|`KLm>Vj#bZr2Y!hY+_IpW&+XS$cO9jN2Wt#y72K=%kHCvi!fMI*LM*8&~`{Zon?5-Asb|X+Y)% zE##+1?7+`zuZPLf*9BqwHsT7RA`Mw_Qa^N6_rre<*?;8=K3Wl2 zMDZ|VOx9SXdaMlVHZ5JpFI}Ux?OX682EMjU2UWR|&F)PvmPgDi20F}x$UBX;whc+s zu=df&UgRaK3g;@zqHxSz@UU#J=oj@goTz$Vsg30@jpGd(1kj(z?%qFFp8os+4fXX@ z?!s=Fahf`Q4x8GfpqIAEz1W5B9p1GCLcn|Y;Bsoo0qONB6LqE{E4nw=c(^B}nUBN3 zUbWSY8{O^Ww;6yyRM}IsN{Qu$S0vyy9;uC$UdUC`qb3h{cZ^6((j?qjjX&t4@TDF3 zz&VNcn%GD?K%dN?F@&VhEm{v+4{-D`>pe^9mW^1Kpxk~pD@GOtF-YCu6b>}a;BYYs zhE4XU#3Ci1N{!ZZ)+QeS7Dhg-7k>h9oB?kPVnD|&x%ENnqA&@jk3R9T^yZ)ws9B7N zq!jag`M#pzTw^4RIsQRg15*jJl8XR=ucwAK_RaamH<`2b+NN7grv^C)fHccszjJGE z(>74Ob1QE46Q)1lV_=%#=Z@aP2#;5z3F6wASOeb$(M- zU^ksgxck|E5s!9#X~FV9#Udx%MS<4fwit>Tu!mWoW^UZ#{LHsh=X)G4z-oeN0qcI3 zC8Ri7lWKg+h~i3_{z*-&ugJ5?Q`xhVx{P^o_+aF$IX#o|ZXj^f2gp((ICWu?U2+04 zotQz5>5#e?Ho=EN=#N2j!wBz`N3}rJhM;z?kz6(|nt3P3#7>dIV5_>HQ7N3c-4ys@ z9eOmkVI;W+S*l@xjA2HZT);F#29dT6%`|L>5bGKf2UG||Rn3BCjldj&QLYgsX2}j` zwi&NiV;&*tkF9RWo}+|CF_GE`b!|iA2p7slzW_%EAn_iyT-pbrfHq~ct=%pwUGb7r z{S*`A&;11LiXqyxZQz89woiPlm9PM~-pkGftPn->3l2hOGU!GO!aO_*f4{O-mX(w_ zK2wU$K%rK+&KbRvG~PwQIv_Q1>uCvNT{O}gYDljyuxyH6MooPwI_n#P-)NebRjy)+ zrtr=mYtkeHg5vSs+E)z-M#x8w+!wkm(1o_lGo0%8gTS{6X@HMKe1bHvCPF$%%`i7N zBN*ZJ4lA`-VZOd3QKN$%G_{SG4(BB3?bht|wul!6`USa<1h7a&Mt@m2)DF7dgL}pD zFaMBq`lm>XO!-Q~Yp6XL_6M{JB%k&FCKlmG|0&YHk@0b$dF{^6XEwf=KYsbf@zs7W zzSVp5t=`MCAI~4t%Ep~ZI!9-NxBK-8b-)#Sbc|79F?sht&S6f9S%WcS+g+khnY9nZ zLK7($bl$&aC`yH!9_@jk*k>xNg>yoC`^X&S$4m?&951|9_Z zP`q;AsYnY#xL?ZP+juGbAWfWIM>Sr~i~+=%IT>8Y2y8uJDu(04XQ*z;hOJY>HIDQP z`gFr_FLSc6Ph~8S+1VM7453P6)aO_)qgZXkEJD$|^2%C*IZ@r@Ye>9xF9 zX?(?$C}dGHZ_@(?Q%-w@`BMjc2mn68ysugY^r>`=1LA~TR03oo^eWpZUk4_c6{AB} z36f>k<9IkQz!NT$^~!%``tW7%cQgDI)El2#LE8|2oAAXI{NLFHKMFKUvXWvHpb5(~ z?W*yT-@5ne%HLVUzXbd5^9b#S?x}Vjp`Ap0no3;%^TnB^O+HmtozY=CyCZjw$)328 zirdB25KSTsrWIE=R`bXAuV`L;9^5mw4e}a+c~#p#!I}6u$|vT2)IB_Z@3w&?GYX3~ z5<4vQAFUNW4eidwjay7CS3kS2T&o6d^Xoeq+am1ML2AOFcbf%PKY>826F9Q6r2I{B z-MQNR9EciY$U&h9N*5XE`ca*^Hra7zPD8TQRK5V{v*@T>-?WP6Zw$H%e_UQ-HD`vR z7RS94Gn+HUnmd#~7)|H9oWtWCk{8FU>RTm3!;r4FO}dkK0eX)VCZQSxb+kP!tKI-P zM(8J^O=n#A3`>%8B^QsF@B{jh)9Yy7X@xuK#Dm6dbwF-Z+gAyl>XLCdT>`Pcl(@gm zFTXm#I9V8ST;o?4;y9PXDr?#UmN}pk6=^)%6&yPGs<}OEpQ{^tL?cI5X@`xc<*8Y+ zQWB6*p^_uIxmSE`NsSdDbSCFLTA@5Q-*M0}AzaCm`>1ign4|)P(s*mr7k*U}&6e-B zaTk4TNk0C>#cn>D`MTk1KDLpl$ripv^A$Stn-EBI#*7~SAR*ruUx5u`EP(S1amy9P zfxA<`A!4l$(tWfwhYjlq$0dw<9hYONA7le{t9auX{!F=aK@%T;Au`yXIP@404jc5T zpJncB>U5p2^PMsX8}wl@I(+AF1hif8AP^!1;4wX|sHcGI2_mx%X-yK5x~jv$hUq}S zbZJ7Q(IcAjrtPXd7}kE+Gvu`R{lUFTDh>bGibNED`-xr-t3slvoX`FxRsNGq)GOmP z7q7IxG&Q7YMP1)-yzn#OpJ4o3xBpkv{XZ9VHP7lRzWAM;;8hJaCoJ4C{2_m-c7i(e zTkoc(|IQNrCD_N_{iL;B`c|v8-SzULUhMS*=+ElgH$QFvq`v*aJget+p?4mChkghZ zqR99uWY*G>vK(gjr>oP%-0Qo|*yIC#iG)Euxr zNWN;C9^}{Ruu5#36p1yE(NcKyUwp+VJex|^$nH(;%-@Ez>QRxqURLSx_H#qe7widw zdyJ%ZyX&(U(+6pFwIz&spC&RyUxF`_md(J|3T8A3d%Is#=1OB$O_y0nrZ*kDCs-Y{ zmruGQ%(B>7@(hVhc_gqNVXzpLIN9^NYJ+pQkQr0jP?4Hz&8mZCl#j>904hX9Y5pGB zfL-!}#Vwce;DAD;m8VNra2|zqjMGP1Fo$-kFKklMS#4YaLvpo@T}cVzoi61+Y_lY4 zN^0gXTFeZ&pC{k$i4i2HAwR~C6{GBnh2)IT2P|;-xJ?4-Hr_~OL*o&Hojo{(_mvql zSra0>;7D;r^A^eC$Q)hP>{9PEK<6ZJy2-Tytb}@Ah$#0A^^}>=vCtTQH$3pm4v?E8 zjGODkK)<%=_Fl`R(^`^d8#=3rHFQ?&v|k6jp1i+AHqek-pL^L?=G_t}Av+K?E{Yr+ zniN)W#K<489_!TE#`lL~Mw^qF(0$Hj;l{}zi*6lva;1M850t=KB% zmO&g->467)rDKbTzPPUWj)dMs|Bh0jm9yF{{-dVx~--0K8tUc?ECu5eJbUv<0Xpt zi#2f_hLgCKMSz)vWxe!ruPmlUc=yZ?uZI+Ar;fzG(N@ivtdQH#$w(=@{BRGLd6($p!}d z_`sil0>J?n{-Auujew+7B%EN3QFmcH(`0WOxC8OjHe2dbUV9;5ynJyVb=;%_ymRrDO$tmcuJYz2k@`=6WR^$_ztC(WWpcQl|=(0?Mg`S?U3 ztg;U7v~96fma=K8M3WZI&4ZziO_s!U4DVvF%)D(hL~S$%jHu}4p2_KpiSqT>1e1@%8%`B-A5{y-%mKmDgy1*BZ#~ z`98Y|Y)c({XQW-E{XT1)rJZJYcCL%;8MKETnK+9Eu8uizvxaWP7lm{dN9p`SGJLVz zo0<9dWAeWnqW_D(?dUO1!tfWcc473pzh#40X8-Vc|K`pAWrP1^ga03FV1CKp^Ka*+ z|AOfM@2qz8FlX(GYZ}ZDIZVq2$-jLKnsNUo#s5R_kK;A1hU?JkrEd;@{pFF5>BgZy zr-NVLTK)C4GfP3fx#yj-fQqn-B{I--X{Mk&HbfilAEWc_x8FX1Mn|xudaeaWLin}< z#~9DT#K*4c`3e1j=R$aYLTqF&;KUPuC5DB}NK!+$HQNi4uJ! z2MwFMZsj<>$W}sHLHJAD;T8?0Sh9eaa!Zn0_Du1e6?*v-qo%2jf%&Yvl~SxVBRkxS zRu6AdoE{AB%nveyGczco?l7Zi+3ucfiJ!ZvYpFGDv1!yZbx+#}qC;JNGJIEzo)rDe z%(uI#D|FgukS@-sFj3k=;M%x1Adh3vQ};W(BsOg$;T?(E;0DN2AYtP)y4}mawqr!Y zO9%+M?~;a#$v((wt0Zg8?-ON{5{DquDYA9Bz)uTf!aWez?L{{V<>=D1_6_R5Qouc^ zDXG(*j+%V4PZjLxgN>z;#K`-AWqP($9@eB5!bx8Qwo-l+O!bx6`oh z$#t5v)bo|3WVM412%JR9)8}V~Yf8H$`(#O_X1*n}*F+?5eKlbR*Bj%Rg*@gRTE8+|yI6w%jU;KE{{!mp%GQ$P@VltOeXDQ1`#6QT_9?ww zKYHe8=U>0fKJ<;*OR(Qh_HQ0_hDGAj4PLw~GZ6MTr2n+Npn2z^E5Nb4sZj5b#_K92i-3teck$CT%|wY+wNqQF zdKQx>A#QT3^yYMfJ)!Q$pocYsxbPrRuK5LnolJ!vu#b>xY3bi5 zeN=8~b`bdG0l`D`!7e7BS1vdQeKkZ^$ilF#gU8{;+2L*DRXy>?G=c?hAt?NzL18UQ z`K#3Mu{8y43bor*mZDJE9*B0miGbq{x^Z&Q`cru2O~l|hu`s4>k4TnqKMe?uPKBpb zEWcl~l2y1c&rdG97n3RQAlip80*UqJT}>LE2okMk3Lm_x-(tmm{ONHsWjhG~TqLtP zid>fSMdqvyF9RgxRRG5`$EsD?<-oJcj^oS+3fsUz#8Upf`yyk@38h-Q*d<+@U6PkOms>#VLtxyQU#*ElA92s_O{x z%!aJZICtGgzlDxIvJkPaq1+O+1t1Sz6af|Url+WY?Q6?WCk>9)=E!btPB5wkl2sBV z=L338nYMFRiohN6IpJs5RTaEuuAC}=_+Iw&F{Edq3Mr4_c-QoLAp}eWUA*)+KtFx1UV6ig`qQZ=t|nUD-Vc9eT=YKe5bHlbw2Yf~ zzjEAe#c|RN?bISC>I;)=e=*$F8p>+ZlP~RFk0*$Zz8}e2`<6Y15WP#ud~)hlj?qMo)q!CdBjKmq?GrRG|+9Ewh|+JJ%)O4bS)F%4bGV z&#XPC-Jz$u_+~-li`VsVGr>rMi@t^cG*Fks6*hr6ik7-gT$WB8GVMva0L z%aqG>`+<~vV};Sac1`$o;e}>0qVp zjXq)3Z*lH460$K^c{yoB6$qMlAb%5=8DxM+i*e#W%DXReW7dE@ZDR>7{k2Z#lh@Jb z$_8mY_$;RsWPL^P^YW9)cQNNGJg2sGH!YvSmY=UOZb6U6r9%lo`ocjdAHJ~L%9+wH z2X8WVT2IO*$F-HDdRCbZJ|=<^^RtsfaJA+gw7Pc&cdKOgO_KbnoL*p2zJnP)lYj@v zdI|9M;j2{y-M*MWo?tjDkkSYE8JSASf-Q^mCuF|~11ECNf)z0qWoqHn9u@JPYJ>9& z*q&#*H@trrb0LB|5~!@uFh!S%XiuQuCws2YW@nF&H$o}5C!if`)A@9^K4n5dnCcA! zQZ+g`wk(UN`?l0dz=x=D8kWRgNqkV<8y=t7<3fu-hu0Q8#7io9v8Fn75NWIrofmG$ z>({GEmxoc6&mGJI^tjVg_$dhop`pw1j?J?1pg(o`#68ot+b2Y|_A%#ZrfT|B;;K&0 zmPFGxu?-(o_tay0uMmL7IA30VpF{)&7~#&CF>5qP&sG0T_rn>STSf_=0e>)L?M%`f zH6R$zBc|u?&kN!-*xD`*S2bhb<+lp=A*a7A${|6$(I!czIpt7hDkj-deVX&tJCi8; zBg-05lRf?ZUMPSOZ7vL+-LjWz89Gl&m!0K(P$^pilD6Zl!FlkCTZL7G?nfET=cf=| zquau5vy!+OolPFV0ol2L(9?Kh;$kmnZ|s8xIC^8V2xYlHCmsQJK(RaLFXlz`+4n6N zDR%+v0u)Q&>xDw+&Niu_tEQ2mBFme+I6l$98RR%Be~>sP@D|O-fEbQ+6E!?K;{Mn4oo~FxF}D3UOgO2co-p)b5Y7P-kZ&H*wzh?R&b%O-iD4`T^c3X|#gpX*N19v< z7R-APU(>^*+S?*o>;W#Wnl9*vkEI1U&zed)BoHN}AMjsP0Lri#%ZZrA4QO^umVR|H z!-RI>*s6d4-{^=t>aeCpRLx=vOP8E{^@4otN;~RLonqSRtdO+=VR7``pan&YHP89k zHRSOK0k9bt<3K33UPkCKwdHD?GtU_xz?O_lnmbV0eK&)BP8rk5CVOSWh3z)- zhR%lvrN5?zD^p5KP^p8qjM}*I5RZ9jrpnoNXk$}pVRldtFISO0Gc`3O`QkSXu$q2= zZuy^!yuT^o1*Z#!_FL-n#3fv7?6dU9Z}QbK>u&)6;2*7g&1J=uomz1#?xXjM*~{&9 zA01)Lu6a_=YUS$-2ki*y$}-T~?O#EI&3;NxpPf`P6&|1eOg>>5*!6*@^A`d8i1X`& zBoTSKB|>slllI*EeDv6l?|00+YEoaMI;+KwnPf_ihI$9j`O$t8>tNK0nhRfVd2;Y{ zhC+2W)m@I!DWBM%8I!(WxOVIoXmT7^UAp_uSg*flr#u6|39^RHuPJk_z+d#sZ?S$D z^{{%dkDYEn+P~p3GEY_5g|g3^m@&SKw$HRY)xeubR3N_fARbGK%^(ltJ&Xx#xG4Im ziSi(R;T*QD#TzUQ<(|JRwP;i z0`iodAe`IcPPE;01fp-#d$EtW!0wbjKlz%3qLwFYp~PN z4OgFZpkC@#(2cYRb+ow?x7LKEq#I>(>8+FMAjJN2IS3zA%V8a9h8W#9MSvf@4RM{yrp&N$^nl&>0-3m8YYR7HwvQ-Z*iA;(tyoTVO>^; z3Btq)F`A$1F0%b$B8=y`SCe~WS!Ke&9KW*_9P7551{qZ`7dc%UpG#UgP}?=uB&A=O zct+6My?!>z&Am!?N{3?}oedZ;1u?{?XWr&CU-oHlJMJ;=A@;LKY& zobk;aqldau_=Z9^|B4g@+kE}!*N;ifuOdTT)re*NJp zvu`237$-q)gA>Vm*RY+f&549k1wK$5euaKYGId#m44TEagswK`bR{vwV$P7yR%+uQ zQUH6sKp}#fa;ox!dea!Yt^Bxj#Z_>_LPgmRAz}1${3>fiez;TV{X~je26{!OrfzIo ziah*84bsK%{+XGeJ;4PRljN|MGaodpO0PUd3r9*b3iq!!egZ|@P*L1VT_sTw?8Tws zAWmvjkqh;aT?f2vjx*#)Mg^jknag)x^0KBtM@`XTRdme@=s`@~OHJG4a6tA9S+}O2jcxj@gA_xAU&%j0gO} z?o8VAS<6iBTi@Y5<1i(Bd1vCK6E)L=i)FhlJ(&YjP=>KdUQ?Si0mez9EC`0&Y1qZM z9X6AU9$zt49XnM$LFj0;;OVQg_J{OW3B>c&<5W_r<2*A+UHjx@O+vT|TEHs+?H(LH zmQ;k8fnx_6y>Ct-TD_X2Bl&_z#p7VEB1>tyM$BZ`)h<}92MWoTR!qmwdIMueRC$#H z^9;LX=?x2c-}&z;*lNw!R~im()CAZ(iP#yUzaLpCp^3tFYY_a~k|-CIFq*&yIusmq zb|csRQ9ff5u-nV$WeEJq<9SC~u+`nqUMXO|)@bm;@1+BkMM;DVpu8580zQm8A7UoV zi0*?8dbR)`Udb|Tt#anE)#^(~kG&r~)o#4e8JL*=gA)B;qAg}G>KrvSy&kl=eYbYF z{_?lai6`=3BL2?IkDrsV2ZeU4kK25Cc=N}U{C2g$=UYB>`k<>zm;=FQhuB;oOM zMJ1k}ht3uh;1QH(?q3|&8gqTOG0zzM>Fu?rN3v3*TNe_e6CUG;^oitr)`X>1AisR< zLHAp?Y+E+KtgE*lS4Rul=9*_y?$$_ zl!3jA9>>D4)gDKv`!GJ9z;W*2cTD?`>P-H%;}v65J|QEJ*0%T3(hOtbP=hnLDXVII zI3F52PDmZ@;FW4X8p?A`;ef?}^g>t|T@s&RyPEq-`lKWO3u38KG3n!lZmP}I3upOA z*B9s_Tez3GFVda@$7cO*fW}i~6XR_GPas`cGIv&DUgw7>j6o5%RHGpGlx>m z)e07hFIHuF19|NT*!UhidTl7eSR^!YV%kjvonm9y-D~lPE{|u>-LLcl zUQYA8_tg@}ekOHJUGTl|GvPBduFm5eT5?{<3UA5wQa9Y7v$ap^(it<)zCe|gD5ySw zOW4qf`{A}!!vPMd;FcOY7c4_%&Up);0xlxoPVAZnfTkEmN<&U_7t=npvic?7WQ)Ms zb5M8jhj%Jx33CxjQ5(1na!b&~6&GBRm5Gb?$7Wz)YA&jt5+oHEcvy`Wc8f#!#!swt z5OeAm#bC&HaWfM;_*YXF^F@_5YL6|!dl=U1We1ZQ2_*_oZER}`TZ9ww4tJzHTseFM zD+^*$)6I?~30+Sz!w*&z8O3~$X3;^GPa;}JD0W$GXJ_In0<|iNC&##T6_`Txs?1Kb z&BEB#P12A~dc~ek-k~2)1^nHdm3#bODnAo$Y;fEZt_Pxcz8h>1*0|%Qp6=(QyM>?( zlSm>PxX&|Jl=0Uwbq_gzq6E(7a~{)YjH}Oz^htv*D5ui>GcgC+JSPVThG=&C!#H`9 z4Y9|Lmk0DL?qE6vP3(>eh2WCS`e=%$!mapXbO+Uw4{=`gDx|5j3{#dRKCfU@B|nKy z@&Nksi&dwm`YJ$QJKXXnop_`XV}IOg5(WNL?!O&NcnWMyfOa3O ztQ$F@#zgy_1M>6RR1TfNU8E6W=luDgxv9Db@)D|Hm@hJ}h1HOIa8~)%_i=Ze)f+9< zia~Cx0(>!bhFDmaG!{^b4s~t9*^=+cxw70f5K;o#=7b>rfD;2-d;dNZo|r+;2*3kK zHjWqBM)UGRKh}_KUF6=m+ASuwt5W69tO;UDTuYnVa6^~UXojX?Np!-34I_8ZL&yik zvN0`ePRGw;0bR!MMtt;r91MEe+^$Gh5yTktjp*09*aaB&j)r1FBAjBWZYx z`EXyP>&ezBcvQy3sDj5mz~!AaGZ#}JdwWR7djt|ch?O;R&Wp$480WQ++WiRkAkvZE z#43x?HJXA!YIG1Z(iJ+6=_ox{)w$NTRJnJW^La1lI7?i1`bOuN12PVN zR8i2^yPqcdz3|aA( z*uk0PCtt65yyO>!9KP|^g}j~ZZ1)F(c|T}gughU-B6JtRd$xl~Yeznx(wELoLiURm3GXNA7L$k3#1#+V#Pu@o zNt)GL5XJ5mXh}zqqs8oSJ5a81lg9~Hyib@6K$n?rW{%YERd;!{a}t-lS7u^kn%}@( zF^Ir4euN(=1e9pf?w%y6jNL zO|zPHC&Q<=70`cCd}8n?I3q>bB9ig=S=ONr4$9gX4mLsF z>Df!(tRF#{<>fCd9}4l>ylpo2E8baNjZV5Wgk(6fLUtINvq3aBJDd~H!HHRTI&rN6 z_#) zEDC)jOGQlwBRQZ$G^H2rMGxnpXs4-a$z*>!u&c@Q0hlgTo>+~+A^qg{-j%eN6x}IO+HiJtcjiVbq4!>k1PV4s^g@BDdGUMckqE4>EQG_ zXv+CUCe;FYyRjr@YCfKOI+0y$WOQEByl=(FbSB7mHc#aMqK5c6N`KlEL^ZBO&R4ro zQkFNZM>ngQLqbCOXH;()-@IQ%yTKcMv0!>QfG-Y*gn+w5zY>mXZTYIpHUpVs%-DTN zNkge`^oP)nw2~9lGi`IM5FUJ%G+|D=Y&`T}{^UxUHu3^Wmx*{F;wd5nN|4uTg+AOx zo%)2MSbnycK1&i?y}vyT@Vwg5MSy4QhlQdNH$#0B!B%Bu(7qmn&RFla=|io{R{%U8 zkuVAMmJHc$PXB6e&jR|2-%p+Ga(O=q26kbP&~yI;a^#mREH1Mfnvd?1kC?>apj!zA-h_ zygeUm7Tsf`%A19=Tn1j6&~uabC&MN%`{xH}402=bqp5s7FF7wx&|3RoB(@98nR?DC z{UAH~0l0>d`>@hKm`0grfjQOlj?@{4Z#%nCwfFLpx2ZY9Ts$z$Z2;Bw4<8Q)?y}g3Ggl1bd9~nu%#=pmZQ5a<4ktn_RN)up;v zPZ}LX^0QyZ0>^41Q?msPQeK*Ma94B@r&moCpAU3L#mY-Gg#l#Q`4w(9Zo8(F?Dxps z>C;XNssl;jp-Tee8sLqrb~l(7otiE4MA7%tVXdy3tYKV-RvNf#Yyl?fV(Nu5-b0>f zj*&dt&VjBwkzy^Kg}(3te1Wl3nw#ohP(5(7i8Ui%B;@x3zd)}a7_N026$sZS9X0~+ z7gbo1Y|)&zIK1qk=4GIjhSg4eouC<86rTSp%l}0t{#i2aYcy*)vmqO$^QEz7H>1bm zkdxmyjygH&-0^|EniK8p1w16e_oK%vcX5hDy!zBr{8`e5`hyv%_jZED)4UFiXEmao&Dp zp0xluP)#Mh6Pl2XMkD>*8kEs&!vOs*S#?-4>eg1$9K!etmpm@tZyWcMb%w#9`5Q9> zT%u{Lz)rbGO#=$WRW1m&XSR_VqdetJCiuwk9W%toKW-=8TPf&!5@CzE*|>(6DZtj| z7z`5V+uZ2q6ZgD-c^&}U&#BkS;iKm*h7$~G9TnM#GG=3&8%=zQ$IMQ3^ttJ2^3a|PnV1AbS97bS6PpSm0v2z5rv$7 z$p132z?`sWsL2lESZZFho z{a5|A8WE)Ri22VC?ErQtB}yA2s^?Acj-Jhua7h-on0zGjkcV z57Su}D?}JH>{32GFB4B(j&h>1-j_918_#db6KzT`OAg4>E0T?pdS%KMic;<9JR3-f zwV=#}q|a4T*sYIjNG@Sae^#4OHUT!Fpk2py8W4q%#$Ij0&Sg!sGflCfD;m6(m(}2K z`a-*aGG+T#?&9d^z3B!nsT!N?x@;$j;|~DR2SQwxcc2YEfpiP6zE7?{U=yUMkY|TI!1Tfz?#4DuUbzHy49bWeA?R$O_rGcM*Ms#Kr`ubBnHMhi zc-qw9>4<=opc$$;gnA^V7>lFW*GHL|kBUD*QZ*#5Yd89+I(dYlIwnWBb;yq}AtnlO zv_L_e=c+8o?jmK(d$cQ)2@6HMA9L!4bucYY__`{CWpPbd`b719Re^d_P=uOr--d^2 zFG$0M9~`K4kuyi;f>sV#UhKiqh-;t<9$?LGs7N^%z(X4c@j0zU^HMQwGPPSMWRan2 z$^kCCE*#vjg=(L^s-T&5ZC*9G(UM&WhtvH)^{eut?Y5cjDBm+bQh5TQ;buEdXczKY zI*-c|{)o5F2Oafi$&){uNFC?2CRv}m|Hc`?KmX@^v1EysGngx(Ge55T>B4uLAFVmD zZ{Ig34!!zr^Jm(h&(~CZ`CZrdu!ek??8#@f_WNC%vFQ%pK0ZTIDW>&R(rJ#2nku&$ zG+iJR%xq9FU1OH3!%OO0*GeIHCO`XS^oM?2jO+(e{3}h#BZM*Sg&UeN=00{97%7cB z`zr<%R1(>D*=8?pLed-c{1huckQ&uM8oHz+--k*=)wrQpV*)hLA1Af|8w04%2N%JXhf;f5WKR_0_O{b=W}pRPf~!&@^=4FOw1Zu z$w0^)??5zRi*+!CHj+JQ#f;qzO-qD~_j-%dPCAvb2#K%H5BYR}O8 zDF2?QhzQ=?eAh@eM*=dWB_v>r8F7Bb!lPwv4}B)?Teu2vm1c^$N?Ao`6w2742r*>^ zj!inDKFYSx#e1CtN*l3I-zrV=kVnvMgOavdXLyVWC#W0O@6!<5j|l9UIyYyCXs@=) zO<7bMbi~itO(_Q8Hn9e3gWdRz2;Fw1+ms}N)u+&jnllo%8J{=9SK=FJ@Cgqj7d0{b z#{6{=+Zc=QO}ov{R@G(=fEC^%%?3J?uW54CBC^6svdZiO^fR+qA6=)x!9A< zj)XBDP%m6A&JF7njtIA7#*Ug9->(hY22@tIR&SN&D-J4B{7M+DS6stk@x{mgY6`S? ztykvwN2vV89@Ww{b};sZg=TGNqR$`wCX``Xzo-BF_&8iy9;J;8^VOTf`@TG)ja#5K zo&6NU;P9?L+t7XiZA9iaUXGxtT^d;Mke&#=;WQ67O-)>!*2`%t;1pYwQEsoihoZs3 zvOUPLFkof{uM$UzQsL6XYciULHv+B+@*BuAf#4>Rx=g%L>-VY$lsv&7F_wT)S9G2N z)CWa&r^Ce?Ihd)mP{@ku#p#FcVTjwcYjAvWP&F=0xrNB%y+qo{GPr3x(t(l@&x$DK zLfozyaB!*SNI8EY!G{I{34>NDy~OTetfG)Ge5i2@IE&AN-q9O?i)0kD`cu_S|@ zQ$a0>PDlkq%U?Rppu=5fsE+WMr*!^>M;pQs#S!J-vjT*G|2;&60>*J-a0jH0Oq_zc zgK%D#`2*53mlDp5JRuvI9s+3t8&>+x;0PREw7LSdJ6qON;fJ*#aSzzUa%z~G0U!n+ zy=qF~*ibQOAxNpuI${@cFBjUhEIV56Sl%HFIZ}hMkUkt?Y7wMcvhTJTSQ$;=ngegcX)m5)2*I4Z2dp9cuaX={0qpGP8~Z6))MRE--tDK{eMoX zpGFYFz0m(d+F6 zYtA+2Gij$4HhxQfwo7-N#_bK4zaJw${jf>({w{_5pS$xL-4BZQVIaHLuXFguzGAWc z$~!reS`ESSfrAHGb=5Q>-b}bee0x7 z9PMtw(|dX3I$FS+Br41g5%Bt|?eYbh94g7lH+Z^1_fEcvzS_=ZxVG_d#Q6vkxvmeP`?pEf*>9d9oU_YyXRrw-e|;SiWKcM*V!L0k|;pGs3F@J-tEXwQZHJ>^R&zq!^lO#m7{ z!|P_g8s*viEp!oo$a>jn&)1Z-?UqhRO#ebFjPSSW`=>(Ep_O$1&k4x~E$M`0?Xm4r z*HQPM9#8-Aa=Kvon~Z61CC40{s$eLw6}b2v+LVB!U$vf?_;Yy>(GDYrkLDor+O?*` z%9y9^r)}LHWW=hKltgqdbH!qrLCF(m*D`eNMjvymNWH{w;U&z=1e$`GuIo-D-3w;8 zn%eUWi7`_nPNb~%>i{*(S_cK|cApZ(=6Z-~JKBz?ByqR~>bH)PzALn!3Y~cO&SHCd z18LZOmKV#wXTfrzxxgNBVPgl!q?J>aKxt=E6@cB|OEnaO=aKl0nG7MVi=9m$bx*E< zU5+l-<|f&f`wAp>UC_s-EMu0?mto`~AC7*FIwOI_5}_u0pu9`n7jsiVa?wdX%z%Jr zq=@ucof9)UWB^7lpSAy4QwkT@N!LSowq}*Ymk^o^Ym<~PtxREXG{|!K`8ecatPMMb z$O@gCaBZ!6FJryLUWlsTouuO`2C`DB1^^f>@T>2!c2ax~L_f=I)K%@I7*bJl7+t91R+%kLZsJX4 z&;ieArfqAfu*RSZr?E7JF!CX`A8R^`WJb;LLG7#LU_NejFA*7#canc%)-b%gK_~*7 zhkJHlNp!q|cluz>f;k~GQ=I+ez0;e9KA~Mh5uC>%l!D(jn0hwJFcy#<8cXB_z6T93 z3(sKJtyB~O{8&HPm##I{#AAIXQR>s%hNBm7hEgvt#e%1%=sj3KN(ulJN>c15*7LZa z+2@r$R)8D*1QoL2W(Bl6N1`c7>Pg*QhNF;|-pBh^D;0##4fQ9eL}~QvRa13g)DGDy z-gW^C+&V;uuOKN{oa~=;L?TYTXXQUZ_}|-=QWf9Q439{-pm19{>f8L)j}ZTEF!%p> zou5;bacMu=v+6zFFeNS!U zsfb*C>#UPi04Z_uvTm0R2r97s0y;#N+yt7QJ(si=0ZCc6AJ0*ybC*e98%K zcn4PBIcICh-i9`7bq2*5We$)@HFq*rkaFmyg7#5`;zZOoCfqa67Xwq~fa37mq58{$ zvu&VcT7*vIi?-w4kxvl8UfVM}PAC*?NP~0LDs4D7YAT70|9C^-uDcpBhTWD+h!{*X&1?FRlO_Do~K! z2o74Ty3RB(=*he8fzGq|j5o4xOzr>3oa+Le>M*{}D3(=8sZj zz1*5aKfUwP*8H984!qdB;lhFcdhPki>!q+V_`)JDIWR@okMBllsrvP|O!J3q&i34S z@Sko&^V;)!E@TC#CHLOZn_%h09?%r#bbGV~qy6873q-$G;5`8Sr^TPUf#t0_EhE|n z#@@m(6Z11GJbMnaFLs`?5*iie$=NO@1=b2g7*vAR9Q6%GY8!jo08VtFMtpf%un*ZR zAl4Cx9q5ZnHN`X3>j`=z4aaSc7g<%qY>=?<=MtOJ3QzTl?n}dq{Z;10&|q)17X++I zt7+FlHPK4YaGf9Zdg-Z#YiAW&ljndC8xjb!oebk<@bS zt^@F+mHLh(MDVtteh9W2Qhtd%!Lq&}VFEpk0zzZaOb7}c|?7KC!?+_u{ z#1U`+JF9J6KMf75^N%IZEosgH&-@COB(`jd5M6PIo+@8M<(aU-$x8~)e0y_o*WE); zbk8+Mf~$9fXHorybnJGR=}|&P2)MJ>FP84^rd}*h(>A|rQjN%*>Z|5R6S^zcd7`v! z#04t~&!~6(q~z{~%S!`>slEr84QGmt#?a4K8sD-DgJ`}?JATO50r1pr@SHqd+k9R$ zR0X~sEarJ}X%v=-GL@4)25M~MdQ8St^^ZW*MWNTLkC_MB_XJ|5KjgILuVR9> z8KvpH)0y~Mh-uRq$D*!@7enu12MW(N2ARt90%fxWdCIYl!g}YN1skN(%!=7cXyt;~g zdW2ekl$Git-WxOF8y*-m!l48}+RI~+-==DOVHGij60X~NVo|W(v6Z@gVfdAb46-?y z`K$_@SbPUoA^0k=r8VYWt(2rr3r#q6wd7JK8YQls*>9S2GHB5NV%I3~6uJ`{=dj$9 zwdCVDHN!K_Bt{k~fRC{R0kdt-OywVsN8#{bIu(0h3_a^QN~Te!pxxZ}eZun$G4XI~ zOnFO_1Mjy6$1vZZk+W9*a>8MGL53?$DQXE?m8-i1HHX!QZ)QTDsLXWF-se5-@IL&B!O1+8-JZ3d72-uu+z2nG5qK`Ob9%L+x9u8U|dPFFT zp_${Cfia)DUQpz45ULzFgC>U7B11eYmtDzn9l`9|V!F*N{xfY%O_g4~cvdygms*dn zV{sHs+Nv7qi`ae+xW`wW>0*rMWp4jgjO{Gt@4?CDOUzpXn)p<=;*Fz*m9rBjKJP1) zU)ctbA>`V#=Iv&oUmF=YLbDJ?6wz#K4cxViI3(=QN06wvG$JuRvulUT&$Bb{;%eWc zI>h{@7Thzzi93P6n^$-shwt&#NP-u#*tLT9jv#}|kp|w(p@7ehMO4dWm{U6UAw!Uy! zYCnJW(|o>8D)fZl92mxTU45Qte3M*0>Zg`jn(r;}LBg zZN0&8aSZ-QPh**b{1Oet}dQRtS; z(k6Iw+RPE^Cr9qAN*)x)D^L}Ly*(;XF^{||(4{*B^Ya4n5#tzbOx;#78D<6Q zM<$aU*jG@giy)!+F*&F!E}w=psBy{^+jggyNILnw`v_L3)FbBX*dp0pyOT_&7eURd zf~yC&2`>T2o%s3N{@p#ZxFKa$>`gI%au@QS>bo;$sZk&>SV(_jGfEqA2aFsg@ZlE4 zA1Fx^4dJ3a48@VyBD62dN=Kb#3ice;Udi^J)te3R1#sf;?Jol0v|REjcef5|#5iE^ zHNaOs0FRC)eWBRM`L>wjC&Dm$eujd}_$d4>)7tMAtLtpuO{kWc8P!UWVEY#m68;_u z??1uk=RDYIyA%nJdM$qn{@PFZZ~3k8Cl;=4KC$!n2fBxA?hfhX-QLd=ecctpPWL4{ z44D!|$Hd5iMmfRc-H__!~BsXP{yECxwry2JDSW8 ze;3yg&(W3N_5pdiSSBZB+Pm%rWo-rI9CF1M3Y5$k+?4)ElCI3$bfjAW>jUBI9Ry%| zUM~QunmJj?_YLac0{_eXUcKfvsg)EW1MO^YAZ7JZ2d6BE*YmT|>E6g6t?JZ`F2?1mI-^7w^7N=iz1w-@;4{l#Fa z(D)X6#`P&2HGr%-0heSlz+xs9h=Q3Fx!x-bav~)$WqtTJnv02*9nR*1wO50xh*bb| zgyEcYo)h5>&=o5)jp)cy{AiRl+-2ehmFw_=jywuIr}DY>1h2%gfOwr?rSF^D$-)n; zyu{phPUcIlFX>_K2l%-;jH>oWWGYtPH==`y=+L~#S%q3{PawRMk_9cbk3CDilj`4} z$qNNXmMod!ARIJLk^KG068l*#3{o!4GcAzNZ)N+ISzIR)(6bVT6173!slBnpw_}WC zEQvw$YwSn6`CUJr3Q`ihqp<^2-8NCosk`vAl|>m z)cUOAh=tf@FIV360W88Zp}{zX8I2fn3d+1U1}~@>M4HXn<9T{U5A5DTd5LJWBD6#^h3e)SHg^J5kOf61={ z0LuO)#Ep2I20)7SxpUS@e5v*D9EL0nhx;4bhg`%utJ)+>_N!0TQuMC>YhZYx`8TTj zmm*U1j#l~aIWHyMeDM2zFO6d-%YQl08n@GVXng>B|IK41hw}3Nh)dbOX`h$I+oX(r zM=}mxiQNp}*u+*|-S;WXIp#E_ay9f;*#qPq--uw}D$h!Jw|m0gvewTb3blN*RZv6$ z`@xTc&9d^7wuU5v6&V@`+6<}TbuPm9Ogv;xCQHT};&<177o%vb*V2z@^-vlZXZ^<>BG>@ z$AaS@xX`I6VWYtul+p}mpTsOJP%20gYC0dm2zDnFAv0as+Q3~~!iW;HhI<$rEg=Wy z*>1mRJ{{yr@2x8g1v}gG6aRl)*?Gm^>fIY6DtN=K{@~+~j-Z9FZt-uJrf!ZSvc>d(*cEsLafdH%}{U z+xXxgAKyVD0f#J+rFe2vd4?;~Khz<(mqiv=X&+5TeNKY!MZ<+Elf z#8Y^Y&jE2wkDD9heabw4lP7bcX|Mb=v~4X^S7Jm-#8RN0^3&@Z!PsIf zgkJUOWocYZBkH-JHOzRr!lrF@sL@S1?UZlXMG4HOZthUCOGU$Es3@1wjU3<$#NXI)QU;&xee7{RVgS@qOj9gTSafJ7tntGu9 z&HOFmzNuqaMB_R0jsqaxUWYs}{~589q6jc`RyOG2T?0lQ-Q$OlXX)Qf(@bp369-!hx)(|Z>_tul#V%2~q=FIlnTqk5a zvs-W!J}yq7on?fMix1&7YCtjH&SorJ=r8H^lmEixwu4yKqFKdm1I&SGy+vEF9sC=5 zZ8(QXgD6r|UaDm;xCzWqg|hbo3cn;u)6{+dp0_a%Xu`GEbK2r>H+~D#<$ndYUlhax z%<8uy)mpP8?WJIKPbs{(ZdyDh4Br`eBVy&?7Wf2TZw|1Nz z6iGHy9ST9m07vtRzEt+3o?`;FU#L;f;$m~xyDXIV-EZ65wZ;kdF^Yor` z5cIPkll{ldb`@;>Q1gj>fZZW!S-P<=y{6x#a6J|jc8BFF0Xo!P$_brvGohpooTJKc zFn@q^9PK!)&T!^y%pPA)`sis!V$!J3 zeJy;mlg*fx5{&16_026U_{aR*Kf?D1WI3EDwUUF5s!FJ8L(lbp4_0%T!<^u4qA zl2^CEqpOdvy=uG!%y$s=Zc|OZmKpnAF#2*mFX_t)GuFZhk)FvQM=F--meEaEcVbM> zx2HU(Jn>yz1TP?|fxGyE;!gSKZ{lQPp9Ix9Rl_o?%&U3mkUhvzjn*?m?N}E{>?H$9fZ#vwg!c}_!H|F$?SPyyviXeZOCn&F)bku} zgYKSfQn=p}$49MI6q(P4&pJg{+%E4Z$5i&+j#2qX=Q%z<<_>Z){9sY=qLZwyzLq$( z&ZSAH)-`DShq#aU>t5e7t~cJ-G;wPeS68dL{&&Xkpcv4kJ7M=$oyDO-gNM*CluX!s zIQ3v;y=mW#fR&z8*=j59ufpD>_8CWx|^6 z_@7Rsobb#Gy{xM3+$xMPY&=CO@s*n->%o`4)K9Imy~al_rffq5AD+JJATwccW=An~ z^(a^v2MvyOg5U5x66NVlUr9Z2c}W~s+s@zn?sIQN{SH>y3RY|S$yU>k9e{=wTzlFf z((pph^}AqV2Xm%3wn~8$B>JedKgWC6VHVZ$o z8Nc3j7|iZz15||t8iWWR5omHgqM^qI?9>M2)g(nZ8TYlxlY5kG7efk@D}V9YhYvo4*!Kfoj^EJ^ znU6`=Q&{fJ+8$&zy>-59I>Mo?N8;hx-9nse<#3%E$ z!nYljwQ`pg-Yvh@ze}@l?6~Jpel@|fao0c9u6Od_XY7qi);U#^&BVTvH3DBkf2%5)+Kv-D zibLBaYdOe{>0=RnN2zb8Uv)f(6Bh|?7PA|c`Kpm`bJ2|U#&xQrE7P!(Qx703IF&Jb z)!XEBa3_k{Lw?X9S=F5#P&M(paReQCoYE61h_A~|HQqR|v9Y+l-IrWZn`$qy&7YQm zb}df$r;O7YnTK7I+z{Z-%G(PhOx>I1YOTCn((+0}SER=zj$vYEaXr5Vl)GjjVzIJnAIZd&w{Io-kGlPk zeJO`*7&^+-_m9ntDTUV5omf=WzljMOX?N0<@ska3RJ?{ zkNKHlCC9a6dy+k$d34$}*nG>=2~DHhs{pv`RFJ?hgIw1 zf`=ypA;3`5P;q-~RZuM?r*@s@RH)Zt#nS8k#7;(7-c29mBF*Pc6|gsD{_K|1GH(N8 zUZA1pC&1OsWeV>YvVBnoRiwqbg5wMacoL)HI_5B2Q43d3xQLM}7ZFCm)XjAxXv7tF zu^pF;s0u)eHb$2aHNbU%KST!cYqZ0x><5fzsQ`6TA1FYDJZ+Sj-6sraV8lbPAmcYG zgPj=h*Ng2tunmmJ;jc1Cj0oLHHwX1wMG$9=&r2z*;FpZ+zVv|0f>pF&y^?U?v)N)L zn?M^2dsUOe3++zDchz{9n**JrHIgT^+opYKCH0g*WKc}dSxIl5; z6QAGfRxtczU*k9oxpBGnNgnE^6Pb5HuhVuKREB%L)*}=Di@TBV+Wl22k#D!#yMh2) zV3W{^@3&~-y%*7TYw|sQ{oi8&@Ono>@*6g8BrSkBl3`A)r<0ArPSVt zN!HQou_vop%y)sSS(n0LpXhyQV zT4cB31sRoeRw(8(1MmVNn0?@`OI8JR=6D@nu(BifMmDWM*vTj!-KwyVO*mgQ?!_$oge;K3WvFp<9hVU zYO;e3TKy&RAwnlMp(par>^&~C{t_XQ$fvlqUV}TlU|x5E=nwf(!HR@&1|JF3cE*#G$E)M5g&X*0WkF8!G}ag0 zaPS*$QaNBaRGBfmfcA%=Kusgc)d9$f&R+$q6iQV-7a7$2NGy(&88Bb@ykk)V^9o)v z+PRO+sk>xczGyp|Z);)-lmpN_QFLYwBYyy%vvwp0ACLe?2%a*k24k^TUp!)J8Y*7A zAuqw?mqWDPx;dc)e{^x5;#MCyWY3f^nReM6ahN8Thhw-?krkTM7x!{+xYQFPSDtjm zocfhrX!dr@DYpMBBGe3=k6#mAioe=4woDx!UfbQy%cz`bPYIB$y;scivNzM66UG+y zRS~1#+l+wWwv`MYGCytZIc_wC`(6Cwp7r-!`?KiKn-_tlE`OCf;`e$P8l4Mc@1#n= zpw3ocVd=M}N{I*WWhym6%yB=sfXpc#rjqxBB#-RJ4>UrYlUq{J$-&#E) zsQaEXO2@{dBKuG)Jso>>Ii0h;n2RD52as%H(ajYrF-G>mraWIcU7;Id13b~;B?lDrc}Hp-2dVyHl)dB z1QC0*Fzvc!MVXa@LpT#cT`h@`I=hISyU$On4#UbRaG>*%&ct)Spu+0FJmM}zN!-L| z#nrKFtwHZ&_PFWA?pd>V6txBFM)JK{Tc8)%ok7d%45MRllR^wnEA^zBcZr3ZS_)%Q zVAL$xWm*vXnf?eGy`7gdJMsc(ot(&V&lsH< zIlOXW7-&!{;hVqK54e!BU`7m~tUR4Zv<)(H+VL*93Pb zp9o)#?(|9IAxkW1vD=BrxQ4+4{e5Nu?MmF4-90_`wr2`#DwBq7?1;f(J;`65<@hc% z26eNN#p-B+<_zhm0cjO)h{~}z5)c~{Eb-t7n#~Sg3`P~wYxO%#h=AX%+!x|XIXKj1 zIsisQ`aRNTQyPO0yCe?*lk5d0PGCX6v~ZwL1ocj$vlZ23!K3q>k`tlCRaB8c!Y626 zT#!IK>Rz0%SOlCnF_gxu)!0FLWWVp3$`@jFno`X6${alJq|X%`2s_AP0x;dhVW5JZ z(aFLnA-FV}kkUcTro(9Ng#fABC!q|}0T?{*d{;P@ znB<;6<<`-}HEXuF`~}mD=YPZS@-IcCFwIGTrg0S8*BeC`4C@`(eBk$%0=4P86@xa~ zDaOVXHmc#SCKV24q+QnB3EsGdiz&U=wL(+r@LI16U$DLrH95C4H|*TGhaMNX_LsDS zm!4bhU@ftQL5tSFeSFtybC+gLw~!%?heS^cn+d#MY`Q8Q^9doZgI$r@lzlb>SLw{z z(N93&5&f+-FXCDa*5yEVCJvq-T7;keCVVp2{qAkfO-J^(GM$8Mi6=w3T_t?|+y;Y! z8{@wTE$kK;t){k`$8lzFe_YOIr{rfPYen=&i=q|WE?+A>bZb-6hcVN2c^VsYw7UfX z<%EfxNBV|a3QUsxpTtFDHu)(&IA-|hAWSL7ci&~^PD?Y~>3A8tzO>&@8t(8u9q;Az z2e(}(#jB`|oa7IY5A;_*@$roH%$_~gOrhP5H1>_8t<l&_Sk4g|a*R)^6N29p!d-S*TEZ&!xd`J?IX468yXBfqP(9Cv8ms>bs+rh7T>o$m943xylFjw z$f-qV>f4zgM!4%ozjq_o^V%tGiglp4kS?JPo;=#mvu$6vrpeyDO%oSA&ZxgnV@cVdP6~CEXsRt7;xe)C_D{ez55N& z)e>rLt0qsF`mo_$sCLMe&Ncp-;jbAOowRG+29MZ#WcK)?&MORTqgPf*jvU@m;Q9?e zlo|IClhTi*~1YJjC(V56J8`ba6>shWBUf)XX{_;{MoNV<+UuEEC-4 zwoB8ue)MMOGlRQV3Y?R^#Mn>d7P&sVE!HPdE{9Vts9jstzj)KE_2Le!75Q}}^~{d* z16;qydw_@aeytHV^uxUq%GSG?pZrbx9%}y*@7sCU(fwP{yGBDBz_Az(R{N_)tv!x; z-#lwSG5cJ@y#5w?C061vv58-EbVZ_KIj;Cpym5JYHZ+@Uf4z0HN`{09JAN)y}c~#UB1A3_x-xKsBsEkDZ}yCetQ3ai|;-E zWK*i)&-OSA26fG>or}>sEwHe&sBxQ4Ghf3)fMf)+>P)ie{-C(}~(gG?(ABNi&hSqd0!O>y|lS}oV# zWG&Q{a+e-2qBbUlq>ZM&Iul=sRPMrT8hmUz$lON5sXp%gVWB}7BgEIwSE+R1uI$l2 za&0Mjs;xc#jr`8qYXkQqOCIG;$13SFg0lt=M8g~0yKAJl*EWqx&|a&t0A|dee}LQW z(h>B$Np3*gY6{Q^mu_u;W2ZE+1*f~g&0gjd{GEL0?kK(4h@(6mPF#33!ucpbwU;%b zNZu?8y)N$wztHuJ!UNssPeib?%=WCGF&Q}evx$7(1SrlHILo}X+Zd|b&0SdkOLwx} z@`P=)vP#t67+={ZdpcZv6t-Tx=zI<#F_Gvye_L5cYaTxuK+BJ{`TVP%B(~kvUFmM- z1UQ#^dig*oh8ZdVIeu1|zZh5P^hppUHOto7KY{OF_srvYi^be+` z>-WW-xnXgr=-bgJxmTP^PMuhheKnbqa%&z}P|ZyY`1R98?$Ww_M#eX9w2YxM>0i!L zcK)pWAUX+uEA4Fot8vkk)}3iKrY)3IB`ErR$D`K0V5)tLvsB(UWO8)Jmub6-w;_cy z#;C8LP2Q(B=M<-g#s0!b3KCZG&{-bx*LJJFdg-5d{|?fuHFq%kl}lYe^MM9+1P?uufT%%q2pmH#Usz3;3qL6=#~a}T&}$Nxz#_2ceaF|Z~5S)SA)A% z^o;EWY#$SeVotaVR8Djnf0a^dQVUnNY&%cY9s_)~Jbl$AeWF(&v#WO<_L9i@T-&v~ zCU(Q#na&ooe8-o|w6TlMx0&Z36zp{pW4|-|gelYO_h1$tqX>yZmw(A$O41JPq;(s1 zQW7j-^0ZH%-)^q7DA71hw|2PJGPr-m=7|B)rYEnQP%Fq>t$n6W+29fK*egHf4D(W< z?wVA+Czg^eM*N*;E{s^yT{-@fjI~qj+az5QiLBn?Gb>WQlXOZ6uGW z#t-uk(iU;fzeO9P@13zn?j-XA@7F&~IS!HEXGHe8GOd)mFrRh;pK3m>aIR1NRZ{?0#9WHPSu`!J6M8#|+b5uTT&)%HN z8`7#b58b&>c-(!QZH`G={8+;CxhALdus8FW=c_-w-k6?|jzQ&w>^sO%B>u-V^cb?$ zG^&>knP!p5?}mDlw=$D&y3piADVJ?raL_`~bV#vDm)XHhGdXf69H7 zeno@}V?f7&dX_MRlW4MBK%FRdR=(dVP31n9 z`G)Y`NceM}B+mn0HtV=Z{Wa(%2C0$kH}4G3JY}m-Jbqaek$cJPW>w{Ss_C;|RdFPk zNhsIjfnj#+r>WUJpdS45fIIH|sIBR!@ z_`3X9!Y`95rK^I|qBZx@5qtA>vOevRx!2=G zG$w()#ai&seW{ASv9GgcE&yAeJUA|ZrEC3?sBsD{bMm_VQM_jS>+hSkb$g%r?0ah$ zF`{25{X7eL)z5j{XedqRMt%IO86w7^EA7|(Tg)DOvqMES`mlG3Yz?N{Jq5Uzv#FAfBn*n0@loIc!}(I5EU#nJN&nm^&H)QQO^Fx z0jWMWk|d2klSU#Wf7m1qJCm9j6#nD&XYkq0hr!=>f8FQgD7m}&hbK`}6&rVR5vKaW zQM?)za@`WyrpK-TJag&y}nkCt@~>JXTGTELu$c}1y&Tu{9OR*zuxhF>)b&x_zMN3_Ah+m}9t7K=v4 zKZQSGMly^jysaxVMKQC_>GNUQOI9?rw9S;-PF(@?h-IUdLXlW<1qY_`+)|psIXvEh z^5Rh~p9%1w(O{9=seEa|sUf2jXs!+k!g|`6A>I=(G!xz)6Rud=d3@X)Vo&sR)on7( ztn#)5+vFQie~67iU=nl_cIeSa;04(!Y-nIPWkxalYV^q<=Zhuw<3N66S_9${bjqcK zI+PiAHl?m5>BbRF3bst_*=>8_;yH>2X~yzs$(;03<1`8ZUlPL2K& z5cnXfVl*C#sUSr&otdb5l$EE|a6ouaJB?Ku$j)s`UZ4*fNoRy|+;CBI77h63Y*o(d zO`w-B*LwlQ(v!-MaBorA-n?yaw5GQh4F#5aO2~4&pz_um9-i4OMHQ+iCI?O~aWFTZ zu&QKFV1x~2o?yyoQWAFNrFwdmS{urCaCYz*?3E}uBMcy~X9vb4GfC3$3vE8VBnIBF zv34OM#o!D{ixvWz`)G(&3`RLaOYnp3-rssf#`oJB87PG+RbZDZ~O3$Z-C1&6n)$C`jwvS zh==(kG6x8f)bS~E|MQoBsq)`C;C^q-Ox~DzOZU<_DMzgTU$^xt{ogA8e>mxy|7Tc(+)x~Yp9kMt}lkvh5-N@=I)iqmJh$vtNBR5WQ$s|e0IqMOr<{UT5T zX{)n9*n!FhS5qe|vkStDTK6-A>yjUsfb~3Z?nU@*7>MH-Gy=Sdz)ySBdZuCI= z)i~oEnq&1O|7?mU0G+TJW7Xx#gqc%WlN`G;cwS=S*SJ8p-8spkm6qnsvjO8* zE7s~$V#Jw7OV&^2`tYmt@;{X;Ql`g%kTo#CE%PnEb}dNk=I1!$I7)I>ya z()yc3DaU82&$A9k7WhT#PzQ=dnZnV-ScsVg^&KWDj2TE>^3c2;>$d*7vhj|lwwV_QJX2-B!`*)Irubo#M3zVH*B~iKe(YCK>}Qp7aNou*xrfr9!6Ikos=MeD*4>LI=5sJaWfaFw53e3dFpnH8gnddt{jWNd4|&IzLsx&zFCSy8ULkPney3ccg?Cbv%mU zoz>(N>>X<~9*G~eFaPWaTR=IKTdC1@6a-2@JbQh{gINKZ8yN%dvFdQc_GOPdYdxM+ z_!4Bz%)@|DdP$vk${#rwM{Jyq^f?vKCidhODU1<#X3~(DiK2!QUn-M}r_)>B zv_em6&w824&sNH}g*LVAeUBr}nO(9IqlJfXIQR=dn0WB_Ss$%y+I8TUEXaPw2{7XJAd zm_*t}T*||C{n)jxk12VInoCs@fZ=OC%M2^qY zPrLgtN5y0yfTTAtgcYpPt{E)v>-9ML+_Mf5N(4S!m*D_!INBX$KKNf7$|6~vdKBxER z97blt)rfei{FS!vhkhsK8OiN*U8smST)}2ZL!VizE)fvz#8hBVvI}a;sWZ+k51t3O zZQRV;r4w#M^-&-ZKXx(sR!`k*V-IGLCwf$?kM`h|#1Nn&?S)RguIEu^Y#wKU;i>E#9V+6a|dIlquv+dO)ux%m@Xg47;VRQeXbg* zUV7oGet?fKei%CP$am2+aP%QPOrb%-fhl9CN5ovuoUM3OA6NwKA3=O_Sje2Ib(>TUX(Ds+f*1yS-@WO>M57aLCpeJuMp$;p3^@ltN@w zEu-V7XQ-okPl0dP#Z+Nrw-}^u$PK({-PRL*6(<%A#S8W8Tq3Bv2=}c|laSp9ISa)} z$nl5;ApsvikBwGcUBbSvBya-$;6W4sL9lbWP9in9kxfbQ7AK(tMjJD-Je=tow@t!Q zxL@gfb9*|F&)-d6r6*8m(JvXzBz)~eQCDw}B2SQuE_8*ORT22mB?!vG9xF*3pe_dA z#E%8+7+(UM4iN0g)1wTcKFjRRFkGa3?WZE~>&ybwRPFER5o;umz?WNN$9qy(hosp3 z?Jw-UKK;)){5$(Uv8xkSdT!0{w`9}lL$DpVjX2GB)lTI_*&M9fbk4GR55-L!&&))D^I!$Q&FziGoAy?oMUyUw`WuRIy0w?-8cAYx_o&X9Y-PHM?r^ces0IAft zw@BXD>SsQ(;Z$;KBb@?(1fVjhOMviBV9s*z9CIiJ43a+*)X#)Gz&!{ACixGbP4M5F zC~K)|pATEbw6O^YQrVo8={uDUBZ8KI_vpNGonf517&%N>N);x1>{|->jC+|Ng!T); zjP>5_B%nY{C|&{A|7?!A;NqVRUMZ#T`5T)EBw2_49P4-H!{~@KUO)Q3Ve0JPsP12i zNHO&?AxIjp|BJ`}iyZzj=!+v3PX_@@F`38X zN$B(d%Q(t|YPC#j;qC>ny#snY*kG2;h5`bC0E*}gFIICPopit>qoa+6q)x7t6)S*H zDAcwLFOLBg0DeN^cOcu`+#E5o2D&z=0HgIZ;$wK+;PchJJvf(_;a!F`?*%pCHi~_q zH%`~gJ9I3eZ=N{$IRaGCb1^vF>c=H@Ac0u_SUW7Yi(l~RF?i~wuT{E}2e}HB-F?YL zjpZHK!9L+uguapMqWoLa4ZQSnJ8E}Usa&pw2<52S zY0#Yc+>-}4Pxb3VHCCUbs;tgS(0+5kq6r*jZMphx(Rt}e`;CrkJU#J^3607X%3D=m z0Q19AU7f@a+_7KHXGW~aGp%X9NjhFrNO>A@K*{2EX2-sJT6WuW8#M*1>L1{9!YisPa!qq3kn9sNMIN zKH7Xz8hwA}yIXMOZhU}%Hvq482ORA* zqFIQhb(#oi6Z0_{S+0pSDAaGjdR+E31Fl(Q=~gB-ONGrc{5x&yoeJ7J39UD%HI4n@OkrQte2 z?tE^q_&H$VV{QSLfLZ}XBvn7pb7e07#X_~Qh*nXq-MF*k}=&ez#`5?LMZ zdd=l{H6UnSbV^4oruGMtVsQ+8t;kechopnh&FDpuAEB>ne^M}5OrXZaZX0pW3{X|2PmPLr=f?Tpx%daEsD z%8UA5AC|YO$2*#m{s0-Ud>}|Or~@_p1t`!(vrm0NxRH**Ehs&WUMaoKm&U9ssbul6 z@Z-ynPZ_lITLTXo-Utn-tX=~JB9D4Gnsa*O93|0OSq{WTr8n^YAL8Bvtf_5V8%9A< z5wId4MMVV*O?pdI1XQFeAXSPWy>~)jtDqntMUWa1=}n~9pa`Ld9(w2z0t5&lq^>XQ zbN;*cz2~0$+_S&){9m3tVKLXNV~sH~=gb`MTc!EJq3O0t^A7y)2Kl>HnrkUB0&f4! zuQ;Ve!HDD-$8n{YeZ)MqKb%nZ^gno%zmULiLgP(N2725rbH+cl`1urvV+#^g)u_xp zvzIsyoqc^t|BhbG#w8k*&->)SokNFCw&g^c4}YJRdy-{LZER+pnbS{wHh)1F)T$bv zmYzlJtLs!)m)06`NHMM-OJVb41mtN6w$j{Xo!K&E7V;-^Unrip2p3eL_8{!%-YZDx zi`_%w=8XIW#a_2s-STc7a90TC(AwkDPGJ_Zx~f>ZNERc~%u7m##)A~gK9IhCgqgdV z=UKRUO{0&PqIS}ebbJYRVTzv;_F6=0LCNjv$gy25mC*V)u*q z1x}zD?Uao!I2-r*${ydOKy4bEle{pQ^btiEt=q!YF_b>dXRsTM*eNqqAVL$oX6-)i zy~M-#x2ShYX@}N}jQZTs&yk*)H8n^QuGv304!`6Bg9!O3BoMc+LXjVWzSn&fUgOAX zEeS5G1bDR_!TKEPNMTJHKs0T}3%;gVJp$qk`odx&isqh(U|v3t-MeVUsXyq@z zH3C`i|E>)vkDPhzx0N%z-VAfN{)ai_T=>7M_iv^5=XnQQ7yy!oXYX*oy2AjFWW41W zeCtQTB#yk6*e70ZHo>ek-h5gw=2u#RdjK1)^}X7Jc4|^qd17*r#aGwq!-nY%$C5#a zlUm7>dbg7Ns)xjqvsH#G%~hXAuTR$)Iu9=?Vm9AUzIdZe%BPq6JK^S&E=kaC!&QHX z+YzW^BUvWxd>O2w95bF?OMkz-vtmJWj;0E>JZx+1y9U%0p~k1=XP(=br&2;7+D`K% ztB1tYL4rrDiY}wMF<1ON1`s77c$2z!U;^#W2ZISWoBu6Ed|43QN^z#vz6S;?vQ>F;ZhO<);xK5>R{Czs z$EAQ{P~nF_EaNB5!eTGLS4mt#fW=g3p(fZze#IG=Nw)>I}@(Q>T#0Q&9O1HPl z^TNZk={68kdOa0#b%|QOYabb6URq_D=GF&`R}zMosR9bqrRYK8*tABsWnvlbf+|T_ z9E&W0B#^}$Di-5x9BE~LYczp@CO_(TpM)X{SaVkTb)>^1t4~45MBrkG-{iR*Wg-Qr z+SSCbMdWSLl}VpszE6;F z)(6f{Ka;jGHb2UsP!=X8x+ko(l|sQR6LEq+C~cQ+9(Dz}K<&zd@57-DP!yEDnE9i7 z{plWNSB%OR1cjUfS!P5e`)v8u%Z8NtL%0N6QAPDGozIQo4}v_QW=kNFX9^6;1pb!Y=Gja%lEp+uGFplXc>wxpTUNpPa(;a&l z8(!I*NLjKMZF#)_UpDVw2#dq()L~!@ROJw!MHrcZVBrt{Xd{Od2fcEO=mGp0BqgyK zb5-YwK}%ED5#GGa2H4wa21G^>HFOezc$bz?gXy3)cu066J?VlMN?En4Ip=cu&%-@p zrI!yoJ-W7JW-kaw44XO6U{OETgXytU^k)^sk{~K;fbNX9ly$8q1@RjypqFvJ(a5q9 zQdt)SxJQ!1(#+wA=mI!VbLL!Ea4u@X*%KIp0eut>d}fIXgSq5N^@6VkJ$4ccO|ef! zDkP8G!k|a|QP+USY*Xj3P|5J!(RUh=Hh~!G`5q*lTpRIdeL$lJ7?7##w6$^VoyZhI z0cH^#I3x361wSvM6^?2-jp4Pr4Ak{8!PB7d(TuAAowV@OE&A=#NiSy_Y7LxClTs?ah}G)g4VZjX&qSs?JrX}v&!1-M)Yn0R+R_Bm z8XWkBz2K3A*|Bl@2R!hFbPnzIt$Er335d(~xzonKlp5wqkPocRpR%tSw8f03cTf8ixx1u&sXZ~D*FZ8PSy2MzyZo=bnBx_>Cb zm=&TtT;|>R7&v8*e_VdFk5lzKKp6wEOgI#L{lHPLey0kz1j|(Z$!|h#6(F~5+kWP6 z-4XiLljEv#$6E`>ZIU;NpuQ{3Wc&YrFDP#rtm4zL%a%1wV00!QcC333kNkB@Q5xwK zi$p?sq0OUP_!-d%j7OfSH@$<=eQAVWA zSIJhKm2SrL2dfidJK*7fsbo^acQ2K)G8E6MnVVn`o(9eE#i7@m$O-gr4HI!N*mHBp#Mn zeVl%Kkm=DzX#0oIPB}(MP1yCW*9yBA+HM_hayxSP@9SNWCc*D~T`7)!=L*d-B#N3O$fx>QtMxgY!xc8KNAh{}eD+EToKF;g`O$?f zt6rgZ3#lTK`!O-#u+`4hEI&0X@7Gq_mnA1v?h)WT&ttf+4|5l8L}%YyQB~kKT7L7{ zaOKA(l;Uv1s7-Uz*(al1kBc%S_I~@gw5E|Ibq8V4J8AP6@TRv&R5sr^bM0sV$4e!S zY@v880iz^xQZj3AwZKlM?}T?`N5q+j%4eWD2Yt>UA8MX|)aN@$5KD{?M{d1x4<{&4 zZ6@uH2p;?#5k{bdQv3wI<0h)D%4^tUc3r#TxL2uP1pBz{OkYaOBxFs!iSyMhyI3+X znO$cAZGL&mjW4J9z!?MNC@De2S6Hu*C{>kM2vA9xbu5lIVCd;z|4Z&zv_eT~$-XV#sD zj@NJ&YQlxLpSyzOQA=Tj(ICL6tupUJov_!Rw!Y}C-5*?&3$-kb>_~+r>hU2w0@>l5 z>686ob>3^%6vZ{ggXy1Yb@WT1syKi^Iw5ws%-s|#;;UurWLbGAPKotxx44Kj`2OxtyAL-*jo8TZ~o&~VAv{TcCh zq-dwF(cU!HH`U;4K|iBKRr}>Cvqpy^x&_|OClnNOyh+-$oGY{E#LYKhtXs*AO5$E1Jgx#)y;@oh9`NQ}Mwa*}5dcX`!p{m9UMBuy|B?6H#I zkXUCe^5V_su9H7Xbl4w?UvSRq597SAnlzEAT9wTf=%Z_4DP|zGKLR0T`QGPxzeMQI zM_q?aP2xUJa8)U3Ph0ljp?gM0uDTs;3*+w>c_|@Ry$~4@bRvt%Eqh`&51ifnRc|#S zZWSs!%|sB$Xb_L*A^8qJYEF)vjkm9#?doSf;Q_#!{&|%2>&=t>?q_^}2&&T7>k_Oa{Ty zD0}UX$*WCpd8Fk0>3L`RB9MaLJ zzV-!!cf=g|__uk(#)PFO976Ievix?wFUE9yOgm^J;?ZX1e$PEA?_7<_$+)Juh?G6} zgLDVCu%}0d(iQHO$Esp@I|yVv|2CB;QPH43NZslZyYVw@7>adWbuW!#q0Ho2{qyDQz;B<}L;i53&`n_g}N# zKz2ZED}p3YSfrn=3U*3WL|g@pHPL1+yb7)if*M;hufAQG>;uD5xht zG+``CPhVs^M{n>^-KU-TM>^*N(ZJOp_GgMw`E%vsp_3-J41>MIur*5VpN-hCLl9=4~Z+MIB>mX+tQ2Eu`$^{hENBNrQLwg?)D8 z%Ucl6%gx!1GTV%p$?~ecqiRv{VnpPa^0gNqMBX{d@5|?zui7*Hg)_18kr{g2)Wt16 z+9Gb!imgeU2zdoP4br~-}{NX@rKPL-+gK$sBQFHZ3D%;j+MGlmHxIs z@II$@moe<)+p3ZzvKb!d+ybF}>sDvrkUwNn4eb|g*%(wD#JoWcz8u7e}`U{@34J#=# z5*Z~Vel&9pyz(eM8Gd9Tl4G01EaIaV62Pjr+BpN{5IM4ce&0g+P&E@pMNZ-2;J2Re zk4rB_{8*M$vaY6XIr6_Wezv0CRCNeNlfvRoMQG32*p}@_(t@#;E9mD}w(DwnK|a`sa*bKGobqAknkLDIEV&_aq)%I{1s=7ZA)Hw~|ANDP z2$ONAEBjTWq1mHU%W+10Z__z-d)SoF;KVOTDsyGm{r#3c4Z}~rb}iI#=$?vKJ&sHBPY*g)^ z5c0IFn;MTwUFP<#)($}D51(6Qoj0+L`$2>*Dbf%1t*JnlpYQ~*YuKPe>oP%8UpJVi z_-VWtaO2UM+?a*sJ;}mp2{AJ~$EqOT_YdNY(QUf|W~86KH`#xBj8x#}b2nORuPDUe zVZr=z8nG=eos!^WrA$n5?;U4shi8mas z+Em1PBO+$bx$1P-I%0DY6K|X{6&0An-z^*6dd~wj!TM!4x$Zu5dNANux*)#m{z^Nl zNvYh=H0!d5DxjC{W675cRtXQP7DP;lGvTVUjlUJ1_S=EJX z1Hz=QlgMtRSt;+7Q*MB~0QkoP2HOH44?*|WGH*y0spFj$P92D3{~wFvts*%ApVYOo z+A|Wp?&PFGd@JL3ATck!r%$R^UAKD;`lx&|6?nNFpkIzN+7NsVx*c#EbJN?kXa5U? z5fJl5cu2n|sxu*KFWErg@gVNTx(9d3Ns{u5FkX#0h{Kt^@GKYJ93If2Z2#)Cn1anX znA4+{#rv(r?>Id4lF(r3unZI&pvyl~g0|rY{rpJ6-?uc*-2ahp#`K_=Wf-%GjKoqPqyG>Iqd^TsW zxA_t+Vs29jhs~_xPA0rUWDpXrUvg@AEO6ET@k)_@`q=!oEL=FT=4Q8Tr6+7#LsR)! z)QWuIsg_rd+P5!y#qlMDdg^|qSJbf#`Os?@Ttak0{mksAqc(rw>t}n2wRO}w3C%?R%Ux!GAtg723`C7yt_?33xL+}G;(03WJp1_gg zL8Q6}amz_K)*Y~yzT9?uzlD-a>C$gNi@Iz$JLG8xsP8NJb)t&)T)s6S?J&!;g&5(N z1lMM^PsoZZ21j9#H1ui3=dAj8NqMK^noPUZt5zcs=ceP1!BvFLW3Yk65JaVH^Z?oO<1sY^pMQRG9bP9GOf zs-t3k`$o}7@qyKSF|}z$AHxf;1m8UU;8UYwW3!Vklhi5p9VVi`=})QfGpEl#@H$#5 zwJ0_qyNX^WzM3CAd)iKwL-JgAlj3~Y7ENP<$4-5rLxAbnr%hBl)*8!oD2;_B)bg=E z{q@lM{ejmP2RdtI$$ZZCD|XQQwSE>cCVkw$GE;zw&l!T2ZRhGWzPcC6d!MPk#+Lq+ zzZnLn1z)Oz%xzDM7Bm9SZqTmskLcLylu@zYSfe`&(^=d21@xGbUhR1lb1pLmz@3CN ztiF-I>gi>goi>zto#yK~@OrV3bqqGxHM7F?+m{nbwYgOxg6y4}%+%x?^>v5D5O#*1 zF7KOv=pv0Z!%rqYyZ;PGxE9-@=Ib{%C%*ZG(+wYVkhCgbLGTKqL2mT1*Mg&cc*oC4 zdJElbZ1*}LG%cTq|D<+001|LCiWT)jQ?r9INzHVhje>5kGKA_xcbc`}?91Q)!YEH!2K)4|7>hi&Lg^Nv=&Yc-~9G z-mAxcJ@RRg{c_5U;~@-Hs1Hkqm~L`ThO+GVu6->LB?Ea(5*m-SiBb>wHapxDG`%lF z6zMJ}-+Ea>>1PY+zMK4Uv9<2Y(7qOdy#)=UT^H}z5SXD44Sbqr{M~hBsNdTX2Tbc5 zcAiViWUNt`?ZL_j%HpngrCOn%{mMtDD$^uuSv&3cYtrXbesb)~!%=dLI(>2AjsX?n z+cXA9RUBApz8zu1ej24S<0*TE_a4F+HG9(L=cNO90@Z`(dy`jBh3BskUB1Sr6nfXX zcck+dnZ-4OXJ?QOYXnYyzmRQ`*LR?SxLvREWwlNMX^~93)HLv^*B( zU%`Dp6wc7P^b*1nLBZNh0Smvm*z0CA;RPBEuHQ>;W&M8ZO7N$|ACAKX+eLU39&?sI z49tVuC?r2lj$vT}nG@nSKAJqQmA`%LHt4o|b$as*T{7dot4gC%DU{mU@9X%rR*wr; z17Gud2b@>4SGQcS_!@1|yTZ^#`EyV4DY>Z(953UGCqJ3@APU(Gl3D~H-UEfamy?Fd zMdQAy9erecPQM#PfeSxCFZ|dlhgt$n%XeD%+n*uN&eI=p(C&=scU)W_Z{S%y%nEy1w{zyor49P`}Um-96wmATIfXop|jJ#NN=lHL;~K+|fpXrI)z z2p}DP{BFyBhItrpB6W9YZ*JA70#466>>i#jeWCWYtR(#y@Ug`#fT+QIxbndHl0p^m zlju7^=eXD+Sll^*Hi8+-)}i5Ne6gIuiOB;5Z^5`vFl;#e@FJFM>HUJlS_`Z$n``VDs7On2L0?y@Zo#x+CYAdnA?Tps&(~ zyZ4z6y!&e4%RV2#FmHF#R)6H|WL4X`f(m>gbo7Lu57@Kx*V=CDUHRQ(A1C;@b}O$^ z*-xGhXLS9yc~9B3+57K$ME5jbFn!%YSHzh*oovMF9(lGEo~VHH$kC8CM!;s#**=;F z0y9tGmyrE2_k|J_ZVGzT%l`Oo#Q(FwN%CazB|=)v!~F^m`hJ`JO?!Cf3w>v^J$J?B zBk{^*Y%=~$_N9nxJw;ff$1JAmg~F8{*<%c^)j!YCKDA!bFyf40mEDrnWuDDB(a(BM zvqTX>WWBA{<9@8qtL+!V6lRz5*6ejuf(|7-u`>N}`+I1;(GkCm_xi(9!PaT29oNba ze4P^6WjryF`BK6?9y5#Tq)0T=S5MW@M5F1`Q!B%(;JVG{pxslKJw*pR^Y+`;9mC`7+p@Aa*dr`FX>U)CET~}Vf^wH3hA};~#R3lq zwa-5fgyy7gc`W&Vzia%pM_tBG=m0x@?B>48JVVdOyFD8%y-MdQl1pE!=vGvHh~TY` zwOv#&wO;-<|DGi!20k`FKfRxMu~rW?A#2_nJv+jwp|yLKmB}j=8m?Lze9`%!L3PLC zDaVkVZcoF`W;n2-KW56Qfa)&PpAgYguH=X$Gtn~Zsd1E?zOJg zvrjP}y>5MW`Yt^4&2a3J6Ro4lYbQsWL}dZK=}Qn^<&ByV1fLEQ+>{DeObT6Y^aLo} zXNvZhn4oQ9-1#Vj7y8;XT$-EdCE+q7GpL>!@wm`k&WJj9>y27?#y5+NvGSXdc{3(X zi2ei2K-zb~Q2lun1)Q<{97q_dc6X8@wW=_Cto}k zIdzD@kZ%5r5Uo1;17upp{sL|Bj>J!fdF3N6@eeXs@4VuE-)K=x$ks9vk#0(+P!c! z*W-7Le8YQXqQZ&ew@-y43W<0Y{6#dBKC;0vRwB9*IKF%p(iIqD7qfXaJ>uu*5Y2EtfWOWtl5^HjWhZHE+Cl#ASCNO6rTmO1ayW&$rC(uQ2$` z8?v%Np1W-F*-P8}AAl{lm-AoqB$ZhoEqoV!t~1B`=4B#txdDN%>j7gH@Zf zC#K19c4msDrI18{a-nFm03xK9so=*-J2+J;dXqp!epmapdZI$F4Beg)b7KEp_? z0+Jqc7efPPXbdMbdkf{pQBR%k3LE{5E>!g52=?F{wwGNyFf=0Kqa5>7VxI5Bkxj-N z$VO3E@oRC8+rek-?n6IOJlrZ))_!R(ewH)A`H}TJw8v#_H)kDwG0cQzVZG|mpdGT) zFh6kn`C)`3mL_nz(hp~Vep1LT{d$c#S!*wE_2#=ihO@q#H|&2t*l%L$vipN}PM=CA zlh`_VzAXEU-z`tg<8t>##WySkf!1qUs!hffygMabS*`{r&YQ;{FaWUqz<{qrm|*?( zk(%!%mKTB{bPbQ31!D=!-0GRJ685Va>9Hy~^G;kJuk>f{9p<>$zn-PHoj!y@!6_3J zl_j9y_7k~9dr|@hAv()D=dWw^lvuX3u$eRidrAshBD(>C(HQ_nI@ zXZaOnauA4G49)OFNL|$OPY|r}i;s}9HdD6Yy!oI7mT~HGm}{=NCm}W?dVUUz1<#Cs z{q67$Ct?!YgjGgn>S`NIJ75gebWvb?Q-i*E=Yn#rs&FBNc?h8mvy%z{1i`}?Hzfw zVcWL#O@;@ZU1|TmmiXHtAm&|*@es5!1!$T*&Kpt&Q;TGx42Z9Ze^c>i%sBQ64V1A$ zmX>Ebn9^4)i;s}M_U~!DAuJD>@WfatDl-_J7Zx7rJ&|LW2!X)W%r(zTcOg&Ha! zOCGsnczp8JvdQE&709Pxy>U|=}9uTMlvi0ECU(MUnmHRR^qQO=b$?djIP_$DYc)$jT_A`(~-wi%H&UZTfI9gDaNhF&3*Pbb49Off?Apj^Gm@y+#d}OJ4G>D zNwJ0GV4?2W?hBil!piCHGw!qJINY9~d`7HyD)R;A6({USK;Iwh(Ff|cRki;N(uus$Zf;7aK%BVc^JSR|Oc!5|=8Pa~Z6s z8r>NS=OD^7$j42pv`#Pqq;fmPJwqOAVo>6v&DyLd6-YsOAGFu52yQftj&WGQ=(gW8+Lo5J9*iga zSkB?{TJ%e_ud_Hm=_`7Y@cejm3^?=iRAl>bh~4k3r%80k?#T9_rR`^o zIx+;6cAd6I0g>f=y4MVV*|WQXjGgY;ZRny|+q=RkXJQjlwYIEGJ?*@jo}e%co))hM zA(u>JM;}x&&Qv8EL3e_NMg7J8gZA`D$sL*;9r7N%I#X6bQYo&6Z=L;2hn3|JptjJ9 zjzW~0Dl&4VqKb9M5t!W7^lo~No6H>F8J_U!UGH-s@jPfccLTL<;ZoGJCely`}SGo4?i=W*c6xdOmkPMju(V$nqEqmEAh)loG2LgnV;gt%P zfp=e2@bNiV!73toosUxDWi2}CG$KT(vDdnkR?m1mcKAiJGRDmjSyK?QyvY!BTV?ZHxLW2Oq(=96?j>_QCTq;MBS54Z8s|)3-bRK7x9P7pnB5}zCz?@Pk{t87;gPf2+7q&f8_e>R}5z~rln(Y zhdXqD4ye(DT?SK)i%JHns|(@_59L_A-@ayc;lx2_^bhl?S3lLJW9&U{bvnaHT|co+ zP5!w?C-3k^=5{Y_!&hL5-+(k?gic@sAi2v4ZX3WD(1t38fO#Vq#0V~Mcs05swM3q_ ztp)5TkHbA7=jEy>`SzRx&Q;k%>un^WAUV%I54uDaD=mb64op59)I7bS4wZN_=gyt{ zA(FmwjRIGa7waQa)NjzM8`SWfwx@nz#X1}JWr$1Nu zxfsW?Z~gJ*QWN`^>-1F@O8SVcm$^M_%1NaxCmb@L6Ta#ci9f#YIBdn_!<~J zw()SLbyut!OC3YdePbY%TpsC|y(VfI4zPO1Aw-;%&_>(>?`{P+TgEu7pTnG=l<96H zqOzi#It2#$%8`Z^Xpb+bp4_V)z_oTtza?>b4Ko?<(*&-tA4acHYH$D~*pDA>-p2de{OBbRYKAsq z@*!Z?aSSI9^hg!alpn9JtSi4jElmh<N=Yd1?n6+bx3;J<$a#=hOBqW^k%YygT;t&63G;wN*q;44M{!4=%Xc0bRRQ zPu~`+#fc+X5b>6-;MkoBEh?=Xu6&-4jIH_%lJhQaS{KJ*Ws*18ctqy|M|&l?B>i-@ zp-px76bt25i=!10LDw-eCH5VJa||9{nK`oMNHP5b zleEwE@i0N&dSLZxev2W@2%C~(8w z%`8XRBJP^J`0>y1Mxm)diy~xTReMMRE)=#->!y>BO2dg}jOQBnQn>@5;ZtzW5tci^2|j&Sy4v&@Ql zwL#)w83z5>r@EbnL%lg@(HCMg*E?P-er&0laMOM>^7L=ZgE%hfe?1GwpN#i^eHog^ zsXE=p*}?q&D5K2QA7W^D`oFH@f5^yiBBSL;LnY3r>1lXe7Cxon!J^^LO?-1w-}r5` zNHczRN6_137CA}9x` z*}SBbU5I=@0O#OL3EfV zw3(qlB_v~`imilO?QsEEJ<-@S=f3KVizayZQjRR(2eqYhzLrnY!3Ia-ck?}EefN@r z1{!Jclee5Byu2Gm&yI-+_$pm$h8tA~29GS`-1-vaTR_hQIsV6FG3yFB8lLR(17aCfg?zTU$G$EH$nJ=&NSf5Gl>j&T&W+c6^%(Zu z*vnwd?Nw@m{r2w^k5udif7yius1M+KvgFz;Di@!=*T_t-%)}ZuD>s*ztuB;cvJI+Z z7AYq=v)tV5b>5{CsX_6~*t&cf!vMpZNHaVdqY0}T?&?g3h&kbZZ7wNf#ttNCW+YSu zf?w~_-wZZ$Vbj;52L@Bgh>xrUNT-c*H8SSIuGO&Z(q;1Aae_)=UjNL(#5N=1PYOt0 zi;b5ZD8qo9dj*Q)lSbi-LMTvgNjwt%1!>WIn(vL$J0$mrzGBgO zLxW^g@SE*a1Qn?b{%olIaA7FuG3KBEx-1i@ll?w3NfN_@ua^=Ll^pN1!6rHB!^`ls zaR*Z1GBx&FX)jqZpZGLjw9DQcsH!Q@1L9*Z2E&o{B5s4o<~d~7+ubY#lw)0`R21!m zMc2#4##3g;Hl+9y_M@->R+6m^)>svs_?2iLT{mQ@b-JRi`sah_J4$tW>p<~Y!$ zbHhZYha}HM$teaF@QKZ7KLi3b2{%x>>kWo{yaZ@5W9ow}^G05qh7tM-Ok5ZIR3-DA zR`Yt0Ioz#R2mx!#;MbTSlx2$M4R902R3?28j;aJ%(-u-=gGA_nM@ag)(oPdvL>KuQ zv9E#xt}*Sy@V3)y0jV9r(|1eUo+__F+SlNkWnih~I_mIeqgJOvqtbw4K&*rmyF)YL z#s`_`kY*-psgG7i07x;c#>q1Y6-=iZKIL?Cm=@HBE%{qp2859KqJ2a#U_Z#ZnKjLn zRG?NCj@ZI^iH?F{=6TXMtTD3lefzKy!n(2#uqi~9e480vTuX0HM|RiRZ`YkCkh=(O z(U28FmDe>Kb}5g`OXeNSi({Lwt8t_~Si7z{1{;!B?U`s}wAN{~`$)isG*h&WtdkvG z!RU;uda)sB*@52hdvQ2?TRky(f^W3JQez!d9h1$P};ApzXZZ7DoJoWP08e)F$5y*y;$shP z29o8$OMl3yIq9Da`(H|C$Y^Z9CHr?IzS(^wzG{}_uUEeO_U4rSk0eII#Vd3%naVi&EG1!$`MM)D6P8FdM8i#LlZ<;IA)NF!Yd~J|z|3mGq6}^eLzx zhSwA;sLd$uE37FfSaFSHQkR_E+&-UvjUSVV_~5kDCewEw3yg#E8SVHE=84TjiisD% zYrKQCr;{L}LCZ~J!V6j$_@IXckhw@OSESeC8wUVj9Z*El1HE7z1r3rAy6307@-cCe zqCw!OTM3e~ss@aZk^G`{UqD>oDD9ZW$&!qOvZk64k==3C{Q>Q^CvCu~)5^tDd1PSO z*K^wc95xE~IvWX;&{cqiT^JhZqR@X)(8k_1C^!*bOT&nDqg{tEXq;zVSr8nkCR@%E zEvM*S0wf^M^eL*$3;}>WD8T4{C$6gZ3^^6Q9?q2fm!9PBnKuz`4L{yOc&;@YFtla) zPujBcuUGbuCHA#t%Vl2T4D0OQaN^(XbJJawm%OXdafF`%7@r084s~vsOMsDWmcO^fJdt2 zz632%ZAu9;2_L0gTn4A!22*%wfiBAiQ^40jDqiZs=tHIObr8P|VVde!wXQo^jRcGn z0zffOdL|oV9}#XKQ`W3-tZWSY2W95%hNnud)6qVZX{si{L7<8R&ov8I6vRC4K`W4O z=bfejMslM~NtF#Z?*4SgSUaWwzR*5{pIn$6hV2hH7D;O!&h7g^6epiWerrTCG!;?R zLdDYs76Py&L7eLrwZ}zvr2*dol8^)RNx1i>KKCIYtu;*-__o&ub*m0n5&(!-xwR|K z9GEx9>7=ri8!gM`R2TG?Oicv6g8ks{0xoiyp- z(miNc9S#C7{F^FZQ%HXajDe|zna1qK=_<|RXIjtD*FPbZwnqM={{HJJ42>U5FjpOF4iEqs37T^3<3@OyOG6!D&>pzD5-W7i_8_RnNj}0~$cuUN7e^_h#)qlOG z|5#$*TIb>>6d9}ziLZ^d_eOL47oaY~PMGn}AWI(^Jtk)VvwC+pmZ_W-b7 z1Y>R6=_Kc-!$!P4POOe!*M}Pw(9);(?uB@v94Kwu;sF+EjWd|_ZfDDN^iP$6PC#>s z=<* zQxU{I`;v#5Pm{-WmnPL_a!M<_5&-UX@qy(N_@G^$G*Yv(o3#>U#*rddv{)bIRQ(n^ zgCO+C;^I`Rkxo+x8A0oYK7fzpXC;UbD+g073+W_&jC_PxGoTN_8E14)kcyx13_;9@ zH652~G-nVUIsR_ju=&hi3wtsfuU$TDWjVkQxA1F00iG^fkNB;riO7cQY2;MPg>e{( zv2jjCa%b~|i38YDyBek3`_!opYExSY*R&u-#SjRW=O@hao*C{E;B*g?9 z8Q&O5aRwA2<%N==*b{*ia|*S?WCHH8oEp0b_XRmsMR}wxNP0c(T6lslLoq23lWD5& zva@($l)XlmMe>}~Hrx+HypGtLysHlA({uW^9+hAQwceH35E}Wl!N?k)=f15!l%Yk? z2AmM7ECbnOQoo#{S&H4Lg62?(d4j0tPf;C`P$DMK*{BLzw2(5b-@unfAQwk%1!3jx z6$I@UayJP{-l7>NZ0Ys_5CVyUP6@F9;QDk0)*9?G)qF%o!9u8}e8tETTR*J;ax1LM z3Nb{XfjBCvPZ<6DCJiPvq)82Oz9newBB7p^LjZ~vfg4pSD!Zlj1?J5*^bA~NGQCd- ze#om)oFAK4M(op8F{}%D8f0H!QL(M^(;gPVfY~FM78Ps$rF~9%D8S?u8UL&Io=h4O z)1{q1SzHste*RLOf3`b@#i@uUuHF20-`1HC2y*`Iy-PN6_b+q3y=NVF-_~|APDmq$ zKj1mM@X|_3Lj&5BpuL=)tVs0D3mTlhmJh%?#)4iv^7~CB*9E^D{7=bU@4wVwIR zj4rA7)SWwJN%N1MQf%$Wa(vr@$9$&|Q5@r8gd}ZahY9`$)okCIw$RvM3Wv z7yQ#Fq+k2)O-syLz}3@aF8Uxx846j7X}(^L+%gJ=I3pwjVeRmk%j&l!%TDQJ-)-|d zlH@qC8N`E0`qjHi=Z@PtA8m7hZhT1_QF6@!MnY<+P$K(i*S6JYDkd~Zr zA)QJlj*sDMbi#ec-$Z{M-k(gLA(6=D8xx0D-@j2NYASCI9vPPhi{7G;j3CBJ%!u=d zev~fhFCB36D+}g%f6aoc;A$0&e;0G%4Bt$3aDVj>Rje_0QAj|d0>R({*At1yW)O^K zx1Z_=|#nVZE!HYm=P#^QCFM+blk-@#a~dHKa;*h z2yeJcjo5q5%;A{x(?T>!sgmMq#rFx9&#-g4rR;2q!pd|Rhu2wA#Sv2YqIgNIk6)8I zxLSH!jG)`kW-l=z4c-cg%2 z$+=lU!D2RWGR3tC8K|X5D7-8(;C9#V*YIzulk#S@A6+?PDM7ljOF2&{@6o{JDU%(4 z`%#`vlkclq-!fYC_rSF`v!+yv1;5`!06RZ#ymMl>OjqF=LL{CWAPuoTIK7Gwrn(() zpt+%)Hslt@Ri+U^6w%O*Ic|GG=1nHcFr0Rw>*DJ30hQZM%p9lY4cBBGGh8mc&R9BY zB1=cWzVr=V-*BHvTe(J2BDS<Zb`uEf^3s>|GQ5!Xg64}w>P?P2CCYf3E|`H$dH3Q>L>&DJeZRD-n(v2)tWE4j z59<0wtBR{Di>9vjhi(13jCT(|7ZylEXt5Q4!}pcC5rz(7-sRcl6Eur~?60A&ZI2Sx z465O*L1Do^uNF0Z@22B=0TJf^S|#Y&qcmKdb!=nJ{p^F_B%S9?VlXJtpQDimex+s4 z>7!Akg30+?KUS%N#Ew`W{u)+!W*Fq!Vx1=a{#7$*QTmarF;!d8PqsUgRn^uDTxy-J zl94Wj*r#XdEx!dz?=(>+@9>P-roy7fuN=R(fEiPLEtQOE^E5E2-n{4Pm%?1qaWs$k z{v;Mqzp7|<$m*uD=jqZ^r>i|A*S=svrORw!YgJ4?&~o`#6hke`u*=trmOqX|*92~R zh#WN&`vMOxWO60G7p)0YwW~PcFyKpo)G$+5xAVAa(n_486Ptr?Vu>!NU&ZM7ZULTb4zj@8?PO1TC#hi6ZW2 zPIQCnOcW_Jlfj_ntOv$h3%8uug}WrpXjC7JF~wHBs-|c+(7C$c zGD?I^lv?cNUBO_x9$CK27XpNp4Im68cMHz!%Z=c4g-UTWRi~jxIaO5$rE#~<^I+b^(vGz3%Phbz zdYk!NxOit0t`p%olZdK*E2QM}6(^NT2m_0sk`voXSJBcpKk2kPbMfv-8td>@#l{t} zgIj|4^hf4`bEk%S{Va=qpB~F>$(UG4+@ZC5m`Y9`?ZUxg@l@*Zuf@npU01e?a^9_% zaPgI4F5#QR*9jlS4FiAFpOqFrdbLTP@nLmn`TS2MBxV;Upg4TN$B`<-J<6Vu+wA$7 z%o2=l8g!>WlH4hC85i5E`9 zLTE1*qbf71Q%i~@6yGy8^s%68x>(|b26SF}7DQ09^2RZUUtD+?n|>yUvceKf{mJDC zW%CW&sT0#_Ahi@+M2iS}zMAj-WE3w~FiTt3|7NYtd(yFEjc5Nbt8WyADr*E&C zt4+0ik1qbUxf-b}#_n>YQh~_f%euz>^6>|MH9wYOla=;%hWw9P5BN0C&|0OqnFyDu z>aFgbVc%ppcKKMXXwW@8X17zKOl&gW@E!|X&VXDKW9*N{i+!TWl<@3RW!E2HWsuc1 z#9e6Yl%!wnyQkS0wUInu?P&<$uaNkbT)1jQQbs5)$%L2j)pC}O^*v>%e596n9;TVX zdY-TB(<x>0YgwVPsCkhlm>SGGT@xlK)B0aD#!RpFqw}f95{S%TEGoykx ziIjVGW#`H)yQpmIVLaHY?qL@FX>C8-7{3|J;54o!Fud_?Kc1T5n*6}9_t+=kd)$<8 z>`=#=q#U)1Wzzk(Y^SMHG^48(+8?M?@Y3fW|Im4Eo6D#25b=$1Q$OfT9)FDZ624A&^_ls@EkVOxLxw7=oVml}bkkWQ8}2r#-(RLo%q*Cq zy*BVqe2(Ch)Oda%U_6hB^_Va_W3Q}nZkBh1x^n@YV{utEthxDtZUvkY^1W}HLDu`X znsv?E$?mn?S5IQbp=Qr*qH)Qi1$iyb)9lf?e%v<3sx!Scl4G9qEC?_v!;gg_c(tzzwv@@ym9=r z{vt>B*?FLf(L1Ml;fRH=H2F$7R0>mO~Y}{RXAoG@QnZtJ>A=g>g1&0romo z4I|GUJD?0JP0dGD*N&J>Y^yEpDR}cm5r0zByElt1RAC>>qLSGq0=TrBH7XE?OP5o_C2JWsawHDAulW`# zHgkR%XXKIIXZb>)laGx8`p#rXJN=63i3f|MfGIGDs%w+PVRaZZ-dfl>a^G4aZNxSxrW-vM2lZ(ocRidKwZg3GVvXkdr(Z`Jn zWZWfr`zoXKwZi~dgv*_QjW`))O4Kdy=2b_&X8nj+kvcV@J^H|F-{q!)_Xhc@KN4yZB_?e%Qqp|p|mdOnv`A&%GrSq~hh4O<)Y9LJWuDopPA*DL9V4g}B z9C-JvD8ryC~&Mt}!3kIc6GCse!ov;4meh>YLnW$u^N;R5_`Kk|FlTl;|3+241 zDxbg*{N>G`ot*3f%C<$Ho2XrSP3OT$91v?_rlDBL#eNT3(OH)Z zIp)7aOy6fQPrNsgQ~s8!Dx)Ad;WAoFX4NUyy=99=oTXeh@%wf~xkw_Tnfe~jx*I2opjonz)@p~+` zMUQJfz+Z%FTFM6Ow*y3i{C$}DssxKI+?&{|z^>u!gv$Z(CW>e`Ldv(sxOD#tUI+ft zwg8I7MzAG6*Ea2rLubLtd0j3#kWVd!Yq&b@u|RL(WAPkhcFj)WdmoCD`Q zJIM*O%#IN>;6U@Z@5pk1mOwA(go-Z~0jWv}j1v|mpQ&2XLs*K%#_9yjbS%$iXkWVF zef^=d0mGMis>N*?Dj>=a67l0WIhA0?UFq+t=|6`)XCUbsO~`G)ak3v&+*Lorw_*%s#Wb7`J=p zi4G#>@y>CH`#9@GX7OnZ9(d_)@J72ke&0SR2d^0Wc<4QW##8x(hK&OMW?lP9vwpiC zF429=kEYz!ag35b{?kl6=GuK4S;oT_)zb!xGLdpa>MHje+h;$3!j`m}T8|Gt`V~pT zzp~U^-It^-mFxh$;Y+&vw&er+#fQ#4@oei86!n*F!9 zu)Sl*?UiBe=5luX%gJ}TNqQNhykO?59xT>#rOhXT=1Y5z8Q#@98{Zl=Ol$J2YW5O{ z4*p0U9yDmu%Qm=u`YUgS`dC|I?bFi-v?NkefofT+^?MafE`}SDI^yYXnr~&4P1KvB zfc7)y4DGROI&ga9EE0Ragp=XtHTbj zBV^fxQa609U(?Wzj0#0xp^l@QpqRy5E3!|XYY2bCxAcx|`1a$?2)9hRm7>^HjLpCQ z&iba6A^98h>@+xquY4x*ep6fzx9CMP|I4x*A$+=~MjkPe(CUH?a()P5D}&|o9u7jb z6?@O&iCDb;{?Fwf+g>r!<_J^dV^0^}nTCAY7bkZQ;MD1*Fvog6;RjP+eI?YyDX*^y zV{TrNe!+sCZ$PSwgji)duEQ+=d{x<8?sxQN_>JX9qc6H(06d4;=G4 z1nmVoGkzM6t>&bNmXhA+Z^q>ZeCav9roPhjLGydyq66h?n4h8&$L2f8=+Q_)4* zfYQ#dZ;|(8@Dgx5qF>LEFhFnhRWz_tPhm;ceC!E>nDk2$AL!E~La5hbNcflDLlpZn zij4uGj+;Y%%#l2jrO|Nt@*p{lCoS4?+c!5;rRJLAy4gwPq+cQ)x@s3{w@pdwfRVf_ z)1*_N6iINHcY@pfYt`1ZS26*PyiZF${JsP;=jp2U-3}^l>ogmE*~J$kHW~OjDnwA_ z_2J-FyHXJn4Z0xZ{B_IWml5>jio4kr0sSqt@U}DYnHnPq_$n5v)!S|Uzj8Mw8yD*VHk3v|B5?FjtU z!kbA`2|;}+HFTt&i1u2vE6+9A2Fx4Px@e>4u5+?OcCI1KUAHgUIOq+w(3Ayh!*zYq zemd>Gxe$q^DvNc#_jp4fXF{NBgpi%7KU7;P!M|fG$QqK|yTqrziwSAddOPv5XVh6W z#Fc98J>WlpSFV&(I z25Hom)=&1BpJX`DWPEPpa(g#`E~@BLe`ikNH~sXSo8S95c||c322OkBJ45I8?tTf_ zOI;@Inpy0dpW~wM(8)HQ^_IuaMTdt`Xvz-luUul<&|#;)D!JMq?)*g~U11N>R)b|0 z3bvSaz9$j&5{DB29L_O6{iqX3F>>qbLjqcanZ&6kwAC=P+KWM*k^Qk00!Jr1!luo~ zet+dnjJ64egPwkxxDB zbhDS6m4np2str<`mRipx0iXg)XsC)Qd#%x}>W>VxFUFES;=XSqm!Ob#FWLx6Zv9?A ze2;kzH}B$*cN;3k>$w`AQ{(=!>#UW7(ouYr(Va$*{d~NS=P~S9kxhD!9C%7;9WT z@te@gMEdyq(%EhC9_EXNEw9wr?JA}5m%!|ApM!|t z%3sDsS~sho4THt!D%rcvU3l^EyU33gGk?_3N$oblz>4Uol3_Y$|wx4((ib<$3}ZTy}ven2s8ms~p({3ChEd zE~v81(NYJVA$+Yb!H5k(XqSP?EH{xLgMEYi#yh@m!X>zN#31meocO2^*cEx{S?8U* zz)2?riumAv^Zg5-`bWwe?BOor=cqP7M5>ce`!&ZUHGam6aWn6wX6xz>U#opu%!8xs zsU)&4Up>!Cd9%B~`GP+}Ya-6AZS4~xm)YZsTB5$hP*U`c*N+#?=~-R-mZ zyS0#+++zaI@eGGmMW#KRS@zzQMq_5LQhFM)rdVb}?ga9`*Lt@4>!kSYTkCS$oleGi z?AkiVyC0FQ;d(nNe*5a}M||iV)k|j*j;|aqoj<>Dm}`!WYP#;OfXvB%>3i^vvlvobnd|{I08oP+zZ}}QEgDK0Aj6t$9{_y z*PW!D-|y3LnW|I2I!jo=>W#1n**2XXw2k$%er%wLNoJ*x4N$IuxV$J0kaBuHpsuwl zJ(0I%XAsChN{RQk9MOZ>6b-cYAV8DVpweb8{jRg0(?&D3Y(Kd#%_GxzD=GFO!51P_ z8S$bXEOd8Lyms_P^(Yq1*wk^@yp!UT0Pl6kwYJUYdIeaW_LEQOshwZwB9StM{kNm?=s1rn||8D;nn_o3m!=)QVuX2 zGe-L06C>L~j?b-DR`~~RveQEskL1_j{+z3g_f5Ch(JsHbLM;Nb80E#Bo1z;s?-dyQ z4zL`p%=hi1T1j|Q$W+=uY7Qn|?fcDNNAnmmEsgQ`-tb{qWJGxKeDac6vvZsWBEj+GL{n405qnZCN_o38!o0_4%3*^}Z%JgsnTaL?E26 zMMJj=_9UBgIfZOnn%D&fex~SQOxxp{jbXnit~NQX+6Fl(6NzODH%2E@Bw_tR5ATbd zdyFrS4?sMJn%<#hMk>#!3AI>1z}pzaz9@)2VOs!-TOX+9i1aVAQ+`T_+qv}kA)v5I z)#?u!V)@aG8p9hYWb^wj-cL+6Q>S_vf9p(m%vuNmvR&NW{O)QRlSjob%&wS?KQ@h- z&3?wZ4m0+3{Jv|BgruE6rG~ox0c^EwY$KH`;)D#!* zdsFl8&Dp)k88~Tt|DtK#5bsz+yv5}e|1QealC3z}$6%FXD@C?Wug}6KVMO(y}PSu(Oucfijm5rTc2%HV#f=@Us&JAF^Co*FI65p>JLb3%fSOchO?1 zyI1L=&~{DH9geJIB!t)u4>=J$y_Uvuhtt1UIPM&atJl(iA4hvRCsXWTkl6Ey3`;?q zR5n_m#h8k)LUk;5l=uH<{f*Lh;Yr`y>dZ$zx;+qZiw)N zZ0jkv&%Ht#ghx-m;IBz$;WMA*UmyJDrkiM+s^lmv;UoCTt0ISjGw{LQ228xW^quswH{nDNFm2V%Bj0!Ljsdkq$ zdB$kI7ZUt4GB;f@IBV#LhXJ*yi;~e#>5$v`c8mL6t(rWaR9QrN54IT&DGXw2esZT< zgK%qx>TP(B)lyAWSpzG*%b4ZVRAME5}^92475Qt!`F1PXa~WhR;a&G zS=vQhzECi_D5iYe27Tt;8zZ5uw^SN9RuW|F*J%AUMR4x-C#Kwn>!DIHH2yf@+l7fe zQY&FAE^-zfY&WUSKD~EvtFP`Uy}YRTr4XiN&LNXnkCPk6Y{IQ-pF{_<-bpJy0UI*L zgv`t3Mg>r*+3-njZpBd*p}X$Xmwt3wliy+oiE3=c6`6J1A}N1%G1(1l4Mq5D2l(dg ztamW2&3mn3?nE9xzeB&H;qb;?H}kS#O|+pR!wDFk;IZgp$4#3+Ql%uia{?f!UlWvIzC7x!+PI z$h@OG$hLV0i9Y*elDM3a$0SCXq>yVRu3we(>F0Ao%>gj`uI+-%|7ZUImt(#Fl|opO zP%D^>4<-Bq|AHW||JQ$H{0nk8YWe{a#n7FW8^-j1@_0AfC<&1vXXI7tBr?AE*6;gQ z_0zOyp%R~%;*95?XtJ^TdwC(G2WHaA91Ocy#CQB|wE_l!-Ijh!B1Slzm|6PIFSSi= z7XjW}P#LjF{NP=zP>I?u`g>F$V|MuN90Lw;!9sul!!M_4lcnHI6K&WG!ceJ4PA&=U z*t;9i6<0T}=C*?CJ%;ggOX`f?@5KK^mnuUx%lZ^;!0z^GhBKn8+e?N(x{vCn6^Jbd z#*KqFD$jJB;4y~U($FqEsJG>;{7&Y8smv_ zXwYMRcWQD$PeH}dA*xM?X}U8t3>%ed_` zCoA-dg47`Y(YqHK2L5w-PE(^>JawyM9u7`5r%>EeNp`cCNU>`;yvvyE6?{3#X_?FL zMbTT?Y7ru;BM`g9$#Vpe+m*wS50`T>@ivOKvx?a^K~<$W7jNkT7~XykNM)zoaFV~} zsEHC|-bSr-lEdWV`NpJV#v?#i15q2OC*gA0H+pzqB?I-}Z@gg~P=K&oEn(-7He-@_ z)Zob!(GPOp6CQX6)zE9xn@x04-Hxln)aqzMp2JY+S>Jgz?-OTF?CI(O#L>x$=wewE zKE2`p>avuyz>*X0uxUM&2=YqC0)_fUFr?x%aFb-6RfYoUFewE>ILKVT(Y_+4L3gyc zD(VmfLF^m$p+|)LV7Hf2@nc{jsHXxC@LaWc&)$6b%{e>h=+Ctg`?{l32c8mk~T+ z=BtPKs_Ae-Dg{ahv4k@A0yF}Y@nyW|y;3nx4@Z|bK}1CUO1@v97=$ZxxtLtn{cR{4 zm~Rkg{F4q{9^xQJG4bE?3kO3mNG*Bv8Z6rr!T#(c8`h-8#3 z^FQ8I56AzdcQrW^MaHyK43X_r?gz5X5(*w9{y0NM$39D;71nz62PSJC?jaH>Lr-s+ zY(Nfx7-mW+D}{z1AODd<5@0)08gn?lv0+jsGL13;0?8rgP-bF^w_a#rU?03Bx{Q_N znNjK_J-of5AxHQj+un%u54_@Fx!<`9Z0|$Z*`XvqNL6vC2OGvu??5Qo$?D?tA}IjN z4-?BS!Z1PgIy@Dvt>lWy!}>>iFq9hn)L&Ec0IT&P<}_)Lkbg4hyIJVp*#qUMQ5)7h z;j=uC)H2fx@D9hgk;Eim>9^o4HfE+qPP>q|CWzw_IF=jvRuQVAXe9@};;{X?a_)*; z(qOO}(I|fOHL7QqBQ0U}DEDWcuuC=}V;hH#=T26=eE7xxdtlPIO~;Kn?1_~WtDM(* zwPq-(v_yUom7OuLD-)xZs^+WOpYP!O!u?cQ3ef1&CN^^Rl)3JH zdXLhb#Fh$ekALL2KNTTO)2z~?JtYRP0)eZGhr#B{?1cYG2E z4NgLu8m*M^2!V3(xL`dpZog>MAyC=D^rc#KS%z*Iy1@faM5p8qp6VUA*r7g6JE-ol z-(eda{(%EXcm9N~?iMe()%`tTZX9uWsgtk-2Xt%6mMr?8wBya+JK_I&)SoZ9i4)aB z7TTBBuTs)qXV(`ZXW9G`^x@ghGuN+vV}2*jlP2H&LFV*s^8Ee{!CrCv!5p!B+pA;5 z(CU>)A$}m&P#2e}QB|}ppKfn3=Pf;6UXOhfoj1B((eRhai8ue9n_+>~=AXA8wMv5bO@n83!cM=<79KLq!))WLbc3_n^=aBeg z7h^HZr<2g@YYGYOeU%!kCxbZL(y1j$th56kz&8lqFI`cB<5GZeLT@URD6=nSqkyYf z=Xn>F>dc7pj=?M)6z|-9I^=u%&#gHYy!Av)z3$zBRpcj)gKf0Q&+xBjKmF&nJ4Odm zXbuEfWidU>A^TeYM0?g}|IhXQ?(!dW|D4m}gFongvYYi+@RrZ#qqx6-{!|yP)_q8f zWuB#s$f+9{e-p;Cbw(|H|EU^P`tIQD?&Ru<%Hzk6J2BAYwmHMPCKzmcTUS2l%H26U z{-}AoyGs8^E+5dAOuWyh-aoj4x6CHNZ#KLF$_{`OCAB?*LXt#9?QG_D^*EOCtwJWJ zd-peC_z$8m9&%?Uqi4_W{HhmXz^c-Qh=IxfP-5oM65}-rR^Acykx#~ysyUXdpBBzd)`>y2029w>&<#&wa$~ZU$z46L8LChw zAFQC>_yzU+ZP9bPIhZTyP}=IEKJ(Td_=jg75N|UEQX0&RuG2FF`#$g8z!a6}I74T) z;=d^qag0Y(0)quW{I^jF+_OTlrL^ceCBdW)U*lI`L-)g%tBv}}*qO4Z!40@mWd!)h zPjkxvkc%28Y#xlR61%b;gtqZ{7{n|#d?=Q1ZUmNGU1Zy#oj_!D_bIwtYSWBV4&{=Wl4rI518U_Jz*s&3vFu!6wvZG(wy z7|7-cB7Zf{O#ug=7b_hl-YvCIkU6c4DOr&#zcI+J+k)^5!a4}qC?`!N3aTajj&@siK@2yTWnG_O)!%u6L!}mo;Q_zWM z@hGmIl*T-a>1Wv_zvS-&{CjA;YBBCcQwbtzB0md9iiU}OPf|Wbl}Rg4v(*8I_0v+T zT&4Sy+TB%2f~IC%NW(t4&M{L&3ZkUxQ*pgvnOUlGfOWy)s-Yobbt2z$-iDkN*b3)` z-LgLA!;EP9A2q(zQ?hXu>t6}C8OmSoc8`|WEuu%K`ik}ETyb{~tNQFvr-MzhG8)7e zbvdMh_Ek)ZJ$t~P@e69F@FbfOHQxbnw^s2X{K(VUxZnK=-nnERCe>?jaoyg0H}io)nbUV;`|IC;>*jW*n^rv$klW@M%5z6QHqNI zw>ByH?#+^f$#kv}d!I!)b^F471eh2liYfi)|+CdM-CL2#=O)&6%^b)#~&T;_n=3ITmacZ~PXuMBmC8aw( zEeJ@a!2;yU!p;Sp`I(ph0 z1Xz!y;r?or0*U7sUQ8w=nK0vi8OnDkZ>b#3D#++ZeJJ*bd>UnYr-4N%_CB zsx;%h9Y_DFS@5YSS<2Y6YIkp7|=I9uj4+v%zRcS?2lL8tG*;zitR zEHO&aSmRKa0!4&gQ3srTKYjvI&*%lLpK2;{M+A`N)+o|-t?%TUn`W}rQHe>K*y`;4 z)lTk_-5l`d$O%4m-(RuH-Y@}_!S}s1vs4t_krUTe{aH>1 zI$*#?-;~6790>Ab-+d6@gVtrNi!oYTk{w0dSm{P8B2M>t{p&@F@{{4LRlJrW+LaTK zC#a6P%srFVLsy~^a$@n)hFo5ngFEuGi9X7q$MyEcE%*60u(#5sv9$e+{d*ITJF63rlH58%)z8D1_`v?t!D96Ep$m@~+K=2S7=I1-6ll6lTB-jj zjC)^qctc>~bwnegal~}k2s@#0Xuq*is^TyoxUmn!t)dM#sga9voUBJLxg;mXBEGR# zj4NYKu;XLB@XFBj!NGfKC;0u(htO*zQv?c-!kG1X^CAHfx@%B%TMAA$-+CA$PS-XG z;0%g{I+ZprxZ~a#zpqPM-9vt#P#%!#*9t_!N{oRz98iTp`2(dZn;jn8HnKI+?RJ>IP9&^BoR~3d%6`ywE+EFlyIOs(;0$UuBb@k86Zj`37#+VKI9IR8|kvT;FrA za)@j&lG6-L4XB#koi){P*aMsx|6&Jt6voF~ie&gdiRu5-{)IaP+BH`5H|>lbf1;NM z|DhVAqZL&W%qnbH3*s?hw44Yk0=_e3mTG=(DIPmk!I zq-d7sUp&KqSnZD#J-k4U5N>Whkx^8L-T8)GX7O14KDTn2RC9t_g`@*c|H8t5c#VH= zr@}jm4-#Cm)s_onZeohwe@M~F|Fz)fe|j_~(}T2(kOAY$hJe=pH+6%;XN|(7!*=7_ zwyF95svMgW|6WV{XSS2y*u=vNt>P>}7T2G*{^`ZWiqk)NKu+ZyLhjR2(&c>c4x))a zqL?W!?e?}sTc zZOk|1N5(+lbs#0eJ%h)RwLXm_bA;z-~kvONJj z3pe3Wqy|}xB^(Kvx{U`-RBdXyNJg z;EPA3okp+4kp7gvNBh>SIZK)5Q!ZDZu1K~!)ZG7&phJ=WOq2e5b^r1{{t!k`yj1Nv z%R%-&-kec2|L})Ag6xd&|C{%rb{(?onoy18t(W&P^SezSO;((!b^Aa3Mn$?BNKc}U z|6v#jRYHV;M{s)6Vfe6mVx<=zQ&>-q)+S#D_RaD|GKRINm16 zE~NhfwVn8y?L(Qs)pAnr6x89e`x1)?CF5hUXx{{anF8-zCy0jMLXi@0QWKK`%?!% zyuw;d^hFLY`s3`qIU+7_S#I@Z`u4Cl4kejhFj$)_geyX*mTb+Qg7g4mEWb&``g{z~ z_8dCM?UbgLd{^z7p6B*=uh82v5^%(;LjJ=mPA}}ZRro?ZxVMhx@Wd`n3`o>i(wjJ2 zrx(_kr3%}a70HxON{i~Q8x3{FY~fQP~lr9DNn zZzL!087uT4A5;-7(5?{Ew0Qd7_;8Mh{aL>?TXh1_Is`7Gr)!{<`Ot3~VC3MiS4~sz z9RevrKQ9BlFX4U7W-uked0z$%>-2IzuBK*MeitDn#i^fO9yfvr~82_{@ zoXJu`H2H6NA{5Qg1BS3xZj<}RR%FXc`A>t;xY2)4_Wv{6|L92zed_}jmElBlp(Jzq zq}XTIbM)g?CK0l&W_@?hylwa9%^)^wJc@rS_iKU^@(6G|wHXDalcwyEXeT+()6jgU zCSoomYZ^ZfS%cb4HsL_nI$CRJYUzQQKVAnAZWHxKQCdSeh$lXfLEu4KBS2GdLSoR_ z2LxaD1E`m3()hl=ZAJVjH+U276N^UQk*OoE|4%CtBwX{KX@!5UF1dBmqsT+_OsX}1 z2DM^mAN(1cpZvpP@o(i770)~Uy|5{R7|0`Y-1fYnA`e5jV%DG+RVx1Y!C#{VXZa66 zwtSC%MS2gcAEtq~wzo7=rE>;HT+>+wZ#MD8z~#2SByyGVG_avH9cmE=sg2>>&*u%_ zfTJLTE_*14(No))h%7TK_qcz2=sf#@Y*QKE2)F*-PCdKlWm(&f+OUg4Vl&bDPR_U& zyoavZ7FilR4sXK&*8#IgoR;9yaLV+g$8sx||5Ir;tG9$4!a;k$^Z6MZXq4MFT&e&8 zXs5ZOE0KX|QgVVWqC%ghW&Mb_#^lHGK~p6+r!jI^V@JpGqxtm9%4&grmb{Nn z4867eAN1FdzZ1{pFE4deHh8bv2$kL^WdQLF--fntMrrYl*7F^nmbzP5WoalqJ6VtN zeTMLdVtgE6B2$3Vd1knAXzsmN_h+OaaX}AVs}6_kg8kT>U8eW#xv3{ zBCU=CvDl|DzNsUHCO=}$a-P)c+OFvSiS25qJR#YqQt?mY6`@5-d%+@hR< zJ?mS(arfaY7brGsR8oBoYr2KlbFB3&QuIu$=CjLNt-(1Wd*c*PJN=a9jHe}jG zBOrTe*NqKOq=8?2jea~B^J?z9vtE{BVA>>lrwL{*jaF|;*sk#;VwU_cx0(X|h@~sH zlHbPz*}J$Dx0~S2yK+TaniGQZ2sitDOeOf~*5^&n2}Yxt#S=m#Q0$p#3Q{B?-4YAO z9j1V#jCk;C`%KZ_u8>y+yLKF-EHGq|ezyerd=9J~Qp#w8s>=nm%B2k*K+r>YQnv9$ zLqf8{qO`&hbN-ix52XMCtwX9A6Y;}9_Ng&u4riS_6CH{nVrtr}`>a5X9WURw(!1AI zx5s^oS0IV)S0R}C4&w&=&f)YuJtZ7L{$us&Lrez?p-xvGua@0l&!IjN$c}62-#&J>M7Eqc$3&t@~MDlCy7dsIME==O(R|=oKUF z4qWVO%uW6$Y5!WNXT#jTXPExxc9Iu~;%Qje9o)IxY4X%S#Xs!j-M>$O{!jNpwwKe4 zPD_7ix*n3b%Gp0Wy7lM(;a}wenP~DBwVAuWu37Q*ev;iQ9Px)HvhXqjjlMqb!I+as zw>@JR=?|?D+0w;eCzQF}iq78(A}aN0!Ujw6ST#Z%qOG#9KADxCYuO}(SV^#dK9Gn6y#~@Git%N}cZ(zVc|bhw&zv-e zbr;(OK5pEmacZFt@0NT)6U-DH*{2iWr)LT;IPJ117VEb00~d z^TwnPwNd$1x!^IPehI4PhW*Pyu+xSFj~TWh&|_{asRv5WKtu_&2_25i(lcvXF4aWiF~voatlD zUz70UZ~b4zbYGP`HBYrip6z--XDpmK94)N;M7rDA4K4sS+!#Qw~u{+S*) ztN3VZ-6Kse>5JWsS&)C9C6AR)i>$2~aigU+zBl3(Zje_7GOVOL)8o0i-xc~C_d7Dn z^Tm5TUFZ2P1&k~O4zHcdT0OHRgg;g7lJI4mN1f_pn;D0X{M#BiS2Ta#(ed_D8rZA$ z-U=DGU7?h)@8gQM^Rn_Rxu~eQH6UM`?Ba!WS4rKmiHCf2umPV#BKAJST*9Wl4mj}H zI&qOhC5!Ayti-su__v^wYh&Osh*kjEH6f>7bofrK zB6^F*nb&$?)VEC?x-ZhX2%~=mCNxETDOAJ)$owI>Ds1^w)8$V;8$UO4>(tb`J9B;q zSD_)XzDk9BB)INT6e}QRyJFDV;Fui)Y&W0{Zf`Zo~DI`KDFpJCw%jeWO_=IyJUroF8mAGUh2?7kauUH+A%})fXN%=&Vt=`9(>v^OZREjLx zEMo4q-t+sTNP=d+P!&|^sSx0hd}qm>9S^-Rfz~4BW#Mc$TRZm3aF&k!xHUsqb|YXh zUo{X3?(OfP)&UuTT@-^@|4=PTKNjH=B<&IkMtR%Gz6q_=--gz`VqQ1U(>K@uf{;PC2| z`mbcNRvLr#*JY@LG0Puep0=^E*$tWCqaG{E^pIrkdGrT4h6{n+tNv!vzPu?pz zh+3pjgFnVBo{SU7#af_!u*�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 literal 0 HcmV?d00001 diff --git a/mockup/mockup/navigation.png b/mockup/mockup/navigation.png new file mode 100644 index 0000000000000000000000000000000000000000..8b9b5a5f25b0639aa7c3bdda2c62d94da0f09e82 GIT binary patch literal 144811 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
    xua5=#p#|h8)583x z;=m5lzhwOx#=;c;@Q;68|KEKJ!WgOJ!8rKwh6_Ai7M|&Id|yLf*8QE%J@2obe1i2$ zSHJSOp1BzOy&e57<}?$xFu`SBK~*I&zUi$^_aU? znb0uyQw>l}D!EiTYv%GQT5)<_OU?*27W=5Rk7`w)wYHV0&*JtarM8My<%A6L`j(!| zSynjKnJl|X&n)GX2D_SPF{#<7kbP}4FsE+OHcS+6hLE+^aPBjkCmxW`OO@-SioEUr z41Uc3(qH?kw+wNruIttx!TH&bcrA~F zg{t!|>h25al+ap?^)aFCc|z0Es!#Q|B`b2+5Q*s2$_T_ zm4P_M0ox|@yhMV10(qiqeoBD#m7vA2C_3X~LV)?r*Oo51428^Xe)slyNld5XxtRa@ zxbt_kKR;O(*t#Y?;aApZ83dxd-Sx7ipXK>;T8?l}1&8bKYfcJ*o;Saj)PV-xbZ~Tc z^4opQ$;H)6SB6nRklF2eU023J?flX6Hw~O_xSmG(IGG_$E;}OK9W}4ZK=n521Zsf> zJe~X;b_aTTc=>7t>dJg?R|~x7A6Asv{k@2vyROV}{t0(mp1-i$0Pf?oTU9|x-tnl4 z>TXqa1!WCoO$~Lq-DVDcyU#j!?N-*EPf7XmQGkkymeMinf2jYX(0{3Z9)8``Iq2`zm6YU_lrA4t(Na;>I;!$V^?xYz zM|B-VJ`n!^%y-oJWBM=0{~ci09sk7ZroWHJce7k~RCMxi@^td@^97hG{S~w8j#|!e zA5RBAJy%Z$7bnG=UM@O{e?Ryy`}d>QfEIw3ihuI*Z(aY>l>Z}d{*L?qNb^4$T{+25 zfx80N3S2*hz)uxkVb=;=KZU?g6<%T23S2*hz)uxkVb=;=KZU?g6<%T23S2*hz)uxk zVb=;=KZU?g6<%T23S2*hz)uxkVb=;=KZU?g6<%T23S2*hz)uxkVb=;=KZU?g6<%T2 z3S2*hz)uxkVb=;=KZU?g6<%T23S2*hz)uxkVb=;=KZU?g6<%T23S2*hz)uxkVb=;= zKZU?g6<%T23S2*hz)uxkVb=;=KZU?g6<%T23S2*hz)uzam+ad3_a{A^yujlf2=E-o zL)%Mj5Xf%GnUlva2c}GrVNtfkROtm6Gxn?3gIB|uPHGMD9$U;L`kzGXR{Qp_A?Ed$ zYPqA=Z`bI%f8JeiVAaQr^d8dMqAwqh-VH2y7EYNqFu(WP>fHeXLGish`|{2NtQ$$P zk8ObLRZcBDsM<8sFO!}5#(NBA>|y-0m!ofy&7PsWwdwA*%PNOT>t7(^Sp%ru>5iXp zt?Ak&Xx{Q&OMzq!xc&Y5Tx(xnUvB;{y04&e(aYfXZ{14rsXO@(u&nk2|DC=a#{a?7 z4ZpU72Re5P{GtUu?7M0}kOi+0t}^?P_%y5DK5`YSN{Ho|7OUMuMRxQ>3*NgnpBh_( z$d9TM%%@2DGUU<0!u%F2ebsYqBHAVc<(FNZ)TgSLb(1s=xtjbuMh(UjFU4E9QhBjx=C7bJpS8!*FH0Gr ztcu8GI}66TQ}vNkPmI#7laM61S5r{P9!wrFb~p~Mw+=Gfy08#vO9<66!ZZI41_fW^{SbJk$@qPC38VA>bfV65Qfq1e``7-?I)HWrT5NLy$TapZhd z91@(jy^n)?MDUgxjZo$Z&N&A%T&fLn+B<^t7a0Lxs>+%#8BP)3Ru;66TZ-N`a_?kBxAdK?NBf*QtFGyWKmd{s&JaWFzWvI_3eX@_c{3R>DHeQ<&o4mouFdRN~EFl1|b3C-E0XD7jIUdRM9IAeN!sZff_!!ySWzbrfJ#5<)_8XZM?= zYVC|W``X*?^`-l=7Wp-EbmCr_YuB#H@YzvaUF|(T(RVCp=K7FrF|fk3XU`(ezTU=U zGL=+RwjVS}iFowr5&z(-bz4uKlq)yFH}@60ID+ajGA3y{q6vzyn3qPeb)%y6ij0T|{L-B_jUy!W*w?ku?hSo#N7T9)(gs;m=qvj0 zgYe4*s_`WPzo9*r@vZF8hO?g?1eET0HAPeDHNrC{t?7WKVp89bqfP zkH(&(dk;6py}5kEdvRvCPK&AH(pm$?C{CQD;I$R(D|ZRuJ}hEANrSzGjzU7-v!fk+ z$N+qDVq$Lv0xqE!d<=l{!aS$8rskxCF0$kzAz)-= z1o-w5lXN}u`XPXc_tL^NXnrKo<%M;g`Y#L9L-mf#krp9u*-8cpr|9hBBL0Pw=#qAy zNo%W5sG5EKEIB!HY;5cpV#+o}F9g{!yMXMA6j7`bsrq(zm$-N&_@%piZ%_;@{&1oOp%7aKFuvx|RUsKC@7}$7R@tmAp~$N;VULUaxS!dvmtpve>L+O} zC$pJ%x@H>hO`3Z`6-!*kv>^q`eE2F5z!8!xa=PDiyIsub7E70nJDZ~Edq75JtEASB z`WQ*~sAuU~{zs%x6NRKH)M)#2P|$n)Q+7lIcr!iQWm*pcpTx17yQ`+7;i^+gy1J64 zI@2{TE>0sqV@z|>)6%?h(HP#dqkz=mTO}XR($OF~EYi|r4Z^p|C+%!M>$@xe@)0F% zZE=2JjELZJSVpfex&AiEMq?%rPm#}{0F;vh8|R9Pi=){VN8&!T+es^>1Hb@yxJq?; z%$x>XcPRS&>wNe;v9v{KlaTacw=UB2^D5-U1utypmlMyda;0`X$SfDRdtaIEvgXl@ zR$nTyQGx$D8M@uHg>K$wZle4SurMsmZklq+xvdopm8Y+d-?oTBIW zQPC3ICw=^7yTXyNKN60Mak&)E>va+(krRn;0&KEx8lj+xn+FN={=a5SU*s_;Jf?mm-ZrywF zFWv5lwv+ILvSw$mK00z|RrC?crCD}~Im694Xv3#F=V1b2C7+1TiAEX8S&vN5o#V$b zae5n_Hg5LWCcE3M3}c&jkp_;Fw)qfI{Ha}?d(0f&M|iMxNIx29-r2c8+(b6Z-=?+`yUgNO|RWam4^qrFCA?o{n9qb_Y} z(beIC_07%a9G?=FQzC4%E78-Du*ymNlt15`lO$YynJ?`c@a5@m)q)xUu6%NW@LIdf z<@mO-NND8P(DVY__5pRNCV9F+o;h8NYrH#Yik_GZyh*Yhh9Oj|9Tz_cehP)336jUek!)b~xyKJrQ+!o;nCCQytProUB{N3p_uPyr=X>#`b z8t&%NJN?qu4Rmp#MT~{JMXT~Q$Y~;2Uu_l?q+<1S-LGHY7cey-3IZ}NZ#xFAMVy?S zb$;if|NRxKf559GzEu@*E& z6jYO^zckzODB|6m7#6B`Q)zj0Vk*#oIp(`>L~^0gv4R80^d7L~wMAWEV z2i7Tc1YvtRY1w*$J*w?ZV<%7l-tv3_h7Lq8K`pdwOxo|?+C1vs;kI?3`=jLoRrV^# z`_qSElqc=pwLQYu4hawTWZvY>6DFewL7u*H za*nr!+t>Z3UsOISX#5fifwar+71#S-Gj<|SUaA+VtM0k5``V#FGK*Ln36H6P*;0gg z!*E>95{I6ES6EecW?*+^WAj?;SsN(l{=6XMea5@xW%k1IMExMASelNw5|tsiaqqpH z$RE9gGqz+)Tu0NJ5(`yVez444}Ec^`MM z5-|3b_v_maYS+!rR%~2#3T;WA1;xu9R!f3P+jeJw-(uAN<;NvW*gv_X`QuEvjbT;v zs&JdMrZl*}?yEN>@C#zL6tz?x45fZ%8C<|T@Ek>~dEhtWv|MYPWlYVQC{?uAva`fm z_}}sBCb?A1Upe4GBkv`NSjRP0U>9vQxN9Mho)_1_oO5IJz_)-)nVQdNccUsf-E9aP z=#8vH10#}c?m2x}t54>|x3oz4%tluZ09?Fb?QE`z(Wa)g_mGJ%9@V`-?KuCWP5k_C zuibV&jEuqAG+qQ1xNk-+`}z(UwhBNpQeLe>_LUCiWp)e4xhr((T#iP4oq<*!^((hGY}Ur1k6z z4z7YfMqe~Ur3GLZe_%0;lH1iWX%dj@rPgR)GKF1~y1n7BJ5FfeQsWNpjSKUd;ObF+ z)y{TO^pu*Z8U~iG@xfj-4>!8gW3p!+`}WCa6O2=W)9kggNKE6&h3SpJJZcvN@X11i zfTBHB&DP`qfs=Q<=hzHIppb+V0}gFChLHZpq$hmrk{$k>u(R^9*5Lg1)MP|HVN=*>l%|? zTN(l`LX*C(LgFgSL?+qx&Yud&CVhP_!k#hv3)*G#PTa)W&A%o4morfpMMHjpKpI7p z2;QC!`=w@Qx;M#A?_yuC?@bG}aL5=H%t;2<%laBUa}}T*Zk} z2>h>9e19+0VmCbxVLyi0`LVZXi~?G2>6Gr|J6(b8<4vQi*bprB%I={#oc%arXOA3r zk1l_(P5aBjrkWIkPou$!ORL4cU#kBLUjL;B4+l`~$&=-bFM-pYV;_8l9-;KWRE_eV zu^kOZq7)soJ#ix3tccJx5J>Igt)o^gu%)Kp4p?@Ee0%XgNnk36>UrUhhGC8|<{&2q%Hj8>?*P+z;@QByAF6GH$(nXdRo9vd!4?)q_ zjoOP}`kZpeu<||n(Y{L|rKDWFR0!3RZ<1Bw61%f>c!U$rReHPg2g`x~=s2AS$Y~jh zw>b!1|NiXZjZJwy4{_pa+BgEn$?G6tug~aZ(DK0V=ZSQrAGM#a|K--*;m-3M>v6Ad zLBq^`WPti6a9aB!0sOfIuTph9*^g>oVJ;FEew^6g$MoWaCGG>?rvlfuUzob?8JNZJ zo(kBawfS*eU^+5Ky5cu~2;@+_hkl#cEHcZUiX$%;Vcu>t9DQ9W{V2&L>8UFmFLoS0 zw^3s+phtV^t&OAEx$ZlUjV4TV#(I2KUj2`clYA=XzUAhiNzgxqMLxInov4@9Oqel zuFQmC=Z9Ygo{-wt&e-_0d&vnZ-U+MpE5BS8KvXzozsoA$<##~D`h1R*7pbms>DyDh z(L80cKcKIC^MgF}{9+)J#j_*i2teM8sU8);Ys&eFtw%~qJov?g=^G{0X`C8$$)(zt zTkgT}=vHhTcsa@*abI`%9R|fidMrbERzIrp?HluqNSM$_Z`vf;r%cuo+8`tx?hBLZAlG>Yy`($!d=hThBzZ^q$j9*~#QAc&NP9nC08wNv`~_Q$s-d=* z*jiu5SoR*^cI1H-L~`^H0_{ilBvvigCCgf=ff*|U%qDi~9vae$of2Y=0~KVp^{tfS z=Bl?T=li_kV_x+l)a{l-Jr;h~aAevcYB>yaJ7XL~!*T)qp<@Z6eN8bV!**uGNo%X; zsiCf3C@0cYjD3^2GZ{JGf0=VSq;iQX=!LBWQ@Q!sA^}~7aY%()X_M&cMh^*%2yF|M zXIicxrS22fpcER6BdxdxmvqJBoRBk?~_e#9II9~a&1tBvbxgu`E(4Ai| z?K zm#^E~9k$%qnO5w8U-acNDjl5|u3sg<*M=xj35VXhF*|+`#%&-9i%jf&6+UC<5q^6_3MvdnbFIi|9732L|*r(qHGZa}6B?Rw1;*q-GL``Z9K41!P0j=A!bg@gHVdA%wG)d@Pk)^51L*mi@6z_|sPVsgA@DLEPq^px&`mTj&DEk?Czu`ZozW#09zcS%3m$Co37yfT>ZsklrcjdKWr+#eI=*G{*gZz_S92uktr_iL=3j;C4L1u;hegDE=MeHkN5Ab|Uml_t=4K~Xn z>Ny(WgAHxV`$A{xG8fX@xYp;EhtmQVfz}2jTcEwZ`$Opz4WxB~^D4=9gihIoam$0l zO_Z!Bv|J~}%5NvY4VoP|i^*eK$n#G`>;s?ALcto5pQQbs#*H~|VnPw#mmWBHABa2P zK?I=kz!Eo?7Zw)w;!y|-CqZdF2^e?W0%e^JU78(!=gVzbz?8~QW0u`4Dz(r?Lj#P7 z+*)0b{sFH*OE960s4FavTbLF{)MiFY*FdShue1DJvE!NV2upL%d#Asis06PA%)HjZ z;39!9KXf)xKtyumjK9s~_#PecIyyIFG_WINX4K5s49;os)Wj%$EuCW*R?f80AYqhj z^BnJQpMO79AHbkUf>b^K1tjofUI>-b)5lti+w{cS^f(@EQ!GKKzdUweI&{Ex*8?<{ z$f}=X5pnX&x(e~3L}{{!8SnFn0hJjq2{BA!+VKW*L-XIrHNCXEx(>pAX`NU1?b}U$R%f^=VXq9x z0oP=kWeG=Tfc)$`pW(B7VUUc>fddByKmUG5Nk>P5pIrocAoW%?acSw;`}gkyRf7@~ zDy^cT;yqY%e-}tEgFleb)IVAC0`;jWMHhutvRnSz@Pw~@IEI|P5fu|t2hK4F4n@;| z_T}hSU?`9SyO?J#PE7Fr`tcDz+Y54EaxyYN?7^tz>khoU6l7%7;S>oV?kR**s{%Qb zILCkhbxJ5_vJRbq37yLUNqh3Mc|D+a;HMq4v$Oe<12~#P0uqSsKyx5p0mlscfCxe1 zz`=v?3TzY=&j3P%=?^(JL-1t7R?_0)z)jo0$^3=pQQIX77qfBH|9@ZDlMf?ES>)T^ z2citV$OX97yHGBYuSx*p9eC%(nj(8o57tJ!+u4fqBnbnN0uZ0@r7%E{k#fxYS_j_9 z$cQgr;j37HEW^;qXsE+T+H-)f&f)*?!^x91jScrx40<-CKVPTmn z-yl^z6)h3RWXj|l537GGTJoB=y3rjP>73p!9Tbw$ENBCH-)RTV100FGOATY51GEl6 z)S{*b=zGj}h~?bFT-HhjJpk{8YUJfRPzAe*?18o}UPpvUl8@ zVn-|j&;Wo{!=+Y;TtX0C6z*}vKctwD?-^qmvG5Ty)#1*USA31$h)sTw4DJJsQ%Kji~}*aUGRg@gT?m zIn&Srprd1GXlMtU8F9n*$pfH@8c??m9X?wo*+_p$<*O)x%ByxL7OHoYdYn>Grl7u+ z9A#&NsTXul);_}dj4gwa9fPW*1wk%tBelg`%XYm=WcMnAj?1hUF}BX!iHxOm{f+;v zOy)n9gH#~$Xk>V3Xcb*@gayaoThvOp0yluR4?b`TaV-L0M=wHXF2 z`Bjkd=9JvYN>vN5%;Q;Wl`}-n8!HxPV!OQO)cU9(>)Gv$M0<%cVKm z$$|ba+(_8cHJ~dSzPA7dR0lK%Ljz^Lg+a`bz=bd2;uR(7+6V=pskjE@KV?8i0maWw z2QFzS)WSmtTNb{?FD~@i41bus=Kfho*r_|YFz!H0G`ZAZt@t3$LCvo zA-x%tKZP-MpUZcSPte!xodvgy+iD|4_|XWrrWdGP1oaj^zZl{R1{KkZO?v$F zQiAp_f9pyZGIi10Sqk&=uyQ7SLrwRl$rdUI4|bBOrxS`1ipJ!7^9(9M=Kc(oM=49A z79WbhZ5&OlTvwi~MsHFpT8Lc^Mz=A_wk09F;aL;@EyS&ESFK`}+s`IS$2?$P;)3jD zuHS<6Cvb!!F4&J>^L#O>C|w|ISq#jmd~H@wmP>S0R81=o8ij@~WBmu`&eO_M(vdcJ<0LY;IfSrXGq6{_GbB@203)6+nt8;#JY({RxfRUz~i$<2v<6!KeZ z+84I_v|M@-u-mfjY`&k_K!TC_IYGAIMacWf#>x+JgFRxb7Z6J1Rr>^-LRHmTJ-EiA zGhg6FeBtj~mA=fBm5$CsR7%6x(Z7B_zu4eJ*sEDYBz+|jkTR-cI&Qjtb!>oE%ji4B6aC**1_ z$epZdqln!{bEpAz)Jkk+*X%mw3>+#wh(eoie>Ky(lUy;{U*vBS`5+)(0g3ZHn0m%? z%;ezSQKwdsIi>O^WZWL@$7#C6f%+MB`({oq5Y9V26@3nqr^>eC%hmY$=LrI>CGdK^ z`}F%BdZBCeIw1ogMioKNKG=8P^56`1K@nZCe}oDnOw5Uns*SogxY_zv#E<TI-YZ)oL>4s2?TTUem;z2e) zUbMJg(TP~G2YX|KL++;4o=sYwdQ#{!d1J0!+Wa6mb(oiDZ^3ly&XCV%qkD^$ zL4x3ZL`0mIQO@1v0-(DA8IoGi#+2oBcn_gQxi_iW3EJP`_8gkKmESYtQU@*)w$Dmy za=qTG@9FU^;ysw& z&QA^nV{pF+a_fgw{k8{cAMTQ9W}YylaK~vCdD10jJG_`Nw9;-5lAK#kpMI(*F=)61 zC^tr*ZaiRR;KT9j6^TbRT3k(4r4~xKz6F-mF>0C{8wmt+S;4_QwMUd=26DcsI|((TFqTIJ-1 znC?8ozQ`W3I@RFl9;Zq5+cswtUr29h1P=s2-Z^Fbf~@Gkk7SR`(V2$5k(qPC_}h8p zeu}yOwt=zIiJ~a`b7vS=64yiR1t9vkwMQ}#DuYB5^_m2$9FjuV`u%b^lMg|-TV*75 z+W-}ii@I6}^a93x9&ewp3~8Rr=6;?zGX=JdQ5gu18#Z9r#x5PFXNLxs^LZ>dddl6Z zDPIv@+J#K>GCUCdYtf}5%&{hgu^T-Nt&>4oA+;G;z&B$cpkV|c#$VV`o1(O^q{G^r z<`*r6tA&xTudHvyHrba}m>@zGkGwPmx9l~6ipYdW6qc0bl-)=TN_^CyOv|t#&)@aR zANyKv9|z1U^OM4u_5@Z20VqSDQk%~3*%=n0w|Z965oOMP^iYoPt8Z+k!@Npv`U@RR zFhpD0eU}%!P&69|xo;==TN4HN)jGaky)HTfvJ?M1Nt;{d_cTIffJjAFM?|QM#%wGt zw>a2#H}nk<;>Py}pgPd;IbI-nlC)p4y*P=mkg)iIaOt>BhD%u-ch3=26^TQeE1lrZ z{6m&g{el3#S%e$<+wh_|@i#y7%Zc+no^RUj(JLMMXg7f46!-z93UWPs>xLlOUhCLQ z4VcB{1B%~7qJ@QpE?IizvGwixzS+%dws4Q4a+5;=nRXbfXSl3_t6va_-YRVOR~<~k zhPggYfY_i7xorpd1*JoZePL-?=RPW^l;do*7LS8u`$bEy(tDL;LwFGMsw)$mU$tS~ zY^8re3r&W-y{>85a(6+2ZMiGVn7pOxhIL4e)xjU?GT?ZL-%@evx;9m#mN|Agk&V?E z^y}q8xRCefwgJyH0ls|0@m-O7wRT9XFV4N);bCqK=Til_T?oht%0czC7ewtjcGYBS zLdcc4qbC%Hxe=dqx?Y__(Yx0pb1dG8f?Q?T)aJ|jrcQP_?~fC%Cxl*Kg-FDSf90lT zy-5{`en=Pj-ru#eMU22H)-2OLdeA_2^2ANb)I^`}_lOFXJ*-6{7zZxlh3|-*L88Xsu7c{~55Io*Vrc>(IVTn z+kkY}0*4OvV+)m`I!=s7cti!(4yynh*nQRZ_T=glS+_EXzdt|pSruA8x(ENM;gG+& z4oDMX+swHynsp!K!>i110<+9K-ZI)J#AGLMM|^{x@3qNHcEQRXj41Bxzx%av=v0%z zjGjp8qDfi;!sPTH#ZTROb>*0snzf}LZ(=TJPv#B3qp?R%9Elej=T8kg3zE^jjX)t; zuNDG8e6SyX#`y_HcFsk6 zu|b+QR}F-q^2&>N<*xRoDNFJcU!X!9fNO1O3feoE+79TSk#arjortG$_tZ|ezOj-? zL-7hbS$9u)Zs)*!BldTDe0*MW`P@V)dp%!12$VdWOH{A(lRj&2744nBtu6cfNkC7- z)Fl2$4hWC>G=PDXv1mgMtgESo-1wXKp1Z@Bu-rIZ%9zRIq+d~?3HX?iFUp-X zaw`6fE$&P3VOE&e^{i-I|DKTS=M~ANBWyqdKls&OkOzN%6&gZ$y5Mn|ap3aTNozaj zgYKi|IoPz2Q&$yF_-L>`(v!higMfRED00DrMUwEjvMaw@HJ*O?=p-_`t8~P;EHk;t zm^=nVuw46w3TX5_4 z!Ol&iMpBwpmtt?<@?phufS?5V`G+P z8=tyYVNds=AP^oDg^*5l3Zg|WN6x*zy3Kk_YSq4S*14!Veug_tcb>)h+2Fhl%L6tI z8Wa0#J5Fdj(rw&bBaLl4vrD5dIcdG@exym?aj`@<>)oavty;5Dto>~R5q8tMbPHJ`U& zmN4Y4V}0R(L1 z!HnwTS6#jYkqRhWS|bbZNg}(yO#!QiDWUe~(tTFXC>8-(+p2PiYBj)?^C@9lxgRN; zy{XA`hTC%-#h!Q+kU0>(+V9xP!`N~#H{rZaBsW-vDz=gLVIJ6 z_S=V>K#u+!W&LQo;H>$5O7{agqZEnPV3JVU^}m8X^y>biHM>fC6PAPAx`@)WfB;{| zBTmCKfE|A*w=;HpSFaor_%3!m`y+v~?K=ZAR_i!#VfPXcmA%CCpgj08Tu(K4G@{B2 z=nO7w15H0Koy=jEZ}-eaX07>XCV$-Z?fT+;4xB?1wM+#hW5A#iwrf(29$FZLx2K2IaB3_O?ae^NjW*@a@cmG9(Bxots@!vl7-BCxkn zEbdz%X}O?x@0|e@TYO{z%L$k-E&zQAG367)h}ndoS%Q!_uo-BkAYuOjjNh%*KYt~J z46Xn&R)cdHRENim(hq=c?*{{vzN8B+c=zQO$a@t3)AsSLo4vr5(l>jnec-fw^Zth? z`qN(DVa6Mg5CP3oz&#)nXg=NeR&x0r39|?Db}wScP7A22qS^ZOHIYS z^aVrW8i9dkqApOa3Z|sq%hr3LTJ!TkP@I7BG5Mrx$++>3Jt9w!bS&rDXxbkG-1WJ5 zJUldG+gn^-D8qvnli$JRkTn6?y+GkKx(;jC>uDOEE#A+!DDYtcHqb}jLKemb;8cF-n8lcRiwU>a ztf~6-Kri{d$|_Q;EVYXn;Fo`uU&;ID{OMm=$Z8>n4*UtQ`2ObJN+)hll^3ujL}Ehj z`?D1Lf2amGd`~oA_~pBVf?N5d8C1^Y;}G zn8IPAGr!9(F0?18WX{J)nBg_U(HZpPE;baYhY9xFtD$Air$f7zzjz>-+}O779al+?a}Dqp{F7<)l{h` zu>9qZoSp-|?G@R1dFKrbs<*Nnx*o2<8Q-$se4y=}9X9+kegMLfRarBN10 z9$}JyfvkJQX0tboD!;179>248j*Y|N9C2y^6TRosbb`{cg&qgaJ$smwU+#u!l~niW z)#KUvvcDy$6gt>#ZRp8GmL0K>mwd#~TdcRjPE`ldQw7SVKGB#Rt6?Ln)4YgtMt-*V=0 zg1xQ`)t2%M9rF5!k<@&^vRh43NPqkk+f(24F@aM-XxeFE`$*GwK%>4@s0P}0CIA-a>3lV{3*;qbL1A>@J3oafK? zNb?rzadfkxx@gka>Fw;+0*7j!$x`A-IX%DWa8}A=Q#89v8-J!WZ@+Q82kZGYBkr{? zAMT?3JR!#(mSC}7B5wei3m&}%&yCjSNp$u1m%~Vij56*#Nd>46LIUunysWuw&857` zVt@USrKZB5$vnY{nG_4kF*%&B?>S1J)^4=wXmrX&fjUq+$0jD4J6{{4CUO9$fuKW6Te~=L zdeAQ*K$rs<)A{Ms)BgVcl9G}g7?_gVr#F0#6MYdqX%}A_z6R$3<2Ls6^eiOIAg^4x zq8kH!=Gk9zI4>_x6dD>V^lM$LbUNQNq;$2w?ieS<#Kl$oM%%$Y8QZh-^G(3cD%LhO zDh?lhyL{!!@KgnZeXM7qDXYE@w_=X<5fA9ej>^R~Ff=y~`Ypa}9(LP1| zY-i|l9*fY3@(07Pstoj==7Oys67Su+Cudi#dd31Rs^MijEtMx>Q&v~*PwxaA2YvR$ zprCu(3#bPhJxrhgsa64v-Ij@@iCse~JJ`w?p;4VL-n#ojX6u zO78+AFarY(esjaqvnBIbQ@3vBLj9)&`6)Jp|^z9ogx4P9DL zRaei%<8`~cyMusA30OD@G`W+DL!lrU&HV9$y&OIfi7sHbh%@EO@p?<&s&%~rG}P6d zTawg*0GA%`1M;a>u+a;@q#UeDhebib3o#YISwIBQeY_WK!wU(3TOtNMZbo}ThC zRLSiJ&VBrpZ5G)k%~w=7x29MHWAlN%z)o5wdW&BHIYwS5*dNi$QBzkR$$@d*gcWQp zH>2QQUaeqroCM(EnMxPj~Sh7}-(smD}_0yoVn9g%t2(jA67` z9Ef8BAuMw3(j+kIuo0AfkvjzqR{D8MFQPs6Gz#up|Dd|DkXt8t4xc3z3 zwzUKmP+^ftW3AWJb~AlE5X@{z)I|k|iHSWZxKw61{LVAHL!y~)KbfPKEi7nXpO`9~ zKy~iK$~pk4pc0N8V3U-b3|J5cxX2%QY$7u9?# zQYwSi)ecZVKb^Sjxl`$9%PIAAB8D+dNmX+5&hiAUt0aYvjL&R`Kl~ zXJKzu;sE+A3LNfjP7W*Zm>y&{j%bgPckjtPthc>~NTih#?VF06nvlUJI?D?~%mLrF z{bL(x(u*IBW?JB(Di*fhr|xYQ?W9*S`BZzGlYiFO*cf>*qh7q^0Q?+4hoguKG@#;eGMr(lbi?@TX25-l}6wQR)m;5 z_8=!M&5$qX&3@FF9~~ff16q=-ab9*YIx`>l+3lQTwm}K+j8#zc6X%jt4}e3}4WNk( z{;~;nC?*w9J@Z`RV^J07i4xtN#t91Y`Kf+)6Q?l5&dzIF*%kba$ZUg#;{b5Y)AiEn zVDl1X<9NA-H6peTfe*fTOd)&X$UTlW!1rRq>=(;W?-GwXoB+O_63p&OS9p8NEX$+? z^v@UUELYV=aH6{1xbYF}dd1ge4%QjIPNIa!-)mANR0hH<*e6+fT|GVKv!!7A816Jy zln8XUxAu=Xkf@pX^}G)QtbSh+Jk zb)qg`lc`J27nRUJp@foupXyyF+E?IUAQigsWnTlRFjFnPd=${K5d=+T!16({O(F`- zQKBly%eAt7&wYkM!Ia%s@Z9~_{CIbc8K7=_e0&OMCFt|5bq_-LE3DRILs3#Me+kIs zTZxDhuC5IY4H*qjCDSiRo3q(wilY6|7G>(6pRaHR`5Q<_#D$<`EhrbdLd}+j`gTto`7_aB`ZTdVbA?2?Hx3 z%H{cFM3p0deFK&|u+_5(_DKE;C{f+h8ca&_XFk8l&!19~IC$pb8XcgxQN0ePfisu> zpZ4B7s>!SC8%C|tR)u<7Ma$Gy6cq&(kr}j95fM-k5E-IXKx7EWOi1ETr4kqfdQH82NDnX_ zn$JLyURY*;K7tqJl%8=f!a3c`6%;mKVMMVWfn_|rfsT{P$}*SZZMg1N-VpsA6V^Px zO$R>PQHW-1FI3158*h+hbYZn}KKhZDWlf2n_Z zBeA&rrc1eu(T<1*n2#=aMFgk7_iN$A%KKFg{=3eL7QhDW|55%Z=}cO*d(qJ_^%G{$ zP}czN5Nl^dvY2 zk#$$eeR9*ydd0I`GkztevMfJ8zvU6lZOUw=s=Q7F47L~K3aI-v*vY}cqbJX*`4rXI z#|{l7z8ohJsWn|vSX%qC$|3DaPvbeTy!8uqbtNk~)&f?E(?oZudJkPP?=N56X1_MU zyg^Be;Uq0>pn?Q39XlACjg7;g-@A4q-RH*JwMt*^Dft}4y~5xG-?ERim5&Q3QB@+6A-2@}0J(%`Qg^Fq<< zUxXIsM-)|WO7qHz4uVH6+e7JCF<9sxV9g7i#smZZt|!Nue-Ls~_PeAYw#@P*p~ISB zlKdQ@H_amg)5<6z59qpK^XlMaYSA|1P+x?asoJuALFi`cK)TX-Oy7W9i>nhD^MV^KCQU4v{P&myuevIP<-Tu|j5OOcfW5 z0=G4tNTh%X>@Bpjb8&IG?&DJtJk|3D-PfaevM>i{^wqs%!yYK>mwme$0p{2}<@=8g zf(7kJ*DDDpBSBcq;n^3aP?e-SKDYz%lqzrqXq! z0=!Is>0biFRX`+~;lSrB*Lau)SO10FVl zW#x+xH#Qa$m(_C*tyIB%E<7kMf9~MHfOs<$^KFF3AewphTI1SBr$QQ_$wQ(oy-~Ct;%o-QQvHlmiB}!d5wS_2fZc zB4#HJj%lrhP_w%JR@W$`H4Z`Ku8Nx&?3WUQFS50SGv=6sdeM!^cv{r&MDZ7O*4>A0 zx!*~zeaa9nJ!bJrnJp~F5%uhQZwbtqT+~PWwq;NEi1C*l{=ztKAw!RAU9T{CvlByQ z+-`k4ag+`A%HeoO!yzn^mcTmhq$)1ChlGS2B!Ej&*SS|ySzXPYi(o^+x)^5Q;N;dn z{whHJSw*ank+#&$V69nGHL+N&*t$SaNn^am8^}al%L#Vr8eX9~POnfAW4KX0QqMB# zQ&xkd^XAGZI*x2k7^)CTF~1%4D*Pt#hVdhD|MRoCktQiG5u^H2EU_{VM5E=_N*b=x!Ai(0aBG@R#GRx+_Y)bhz9?iO)eaWN%F9TU1v z&8(&+LMN=OlhjbNJA*MYIR2Q!a?Fez5gHa36T=^-8aoLhN6Bda4&)2S7vD6=vnX+< z^#)vKXFqb+4JJ_mwx*m0_V60Hmxa&{5>3epi-^lH4;}tn7;Q{!bUG$^DxbQ`s?)@0 z#LQb+p2#59?2dcUVCt2_uUxs>{Gg%1J0#)iygh?*)*-~Oc>3`RtT1gKZW>ej#a@;) zW{HK2)5mPVOnan?Zr=3c!y8m#U&MWL^QBphMd3Vwl+cn*(%e{irDBQc#rxPs3tGgB zSsJawsX48s=CacXSC`MKliRaMlnH(PiP=PA3NnB&6O)}yaX+OYbNgIKO!d(;*Unob z$F=fa6KQGb#X-F^$S^X}Z74gknc_D+v+M1#@fJZxXVH}t9?iTIS1dE^kk3TsNO&*b zl-TJOrv1_TitWF;hW5u~i`<8YQ$0S7={fWJ1U#CO67zZS72XXmr<1b5Ko$!b0P;{| zXt)&_Zl{y18gJ_&F7FU8dI;eg%%Gf_omNiFdd!8g%=*%M!>_iR-?)BHeX;x3;Oa`9 z_PJkn1kF&)6LX8F7nr1F@4!;H-RT5Gk}E?8ZN3T(c>rHla!?B-Gj3^%CCPMG$;rPw z*Le(8;pt|p9^~%055L#ykf3wz)a2ysxZ~TmtiFS}hXQ#+&J_iwRySm~n+>rY5#9!# zQM(SiWjbil5;RI2tG3YUMgG=^aNq?~icw;|Yfbg&Z>tIp4xWHt^T!^~8+w01O_UjP zXWCJ53En=al&X;SLvwR)h3uFZ-VIi|2L9XTEo&6jGkYy<$-}8mp6qtY)#Ee(QbWPF ztmG?onA)Ha>LM+5aS%5h$Wn4x-pHkYYfxM#9ev7E6^`JE`7M=zTmv5zZWlmu&%H54 zz~E2UTM9}g`r=8_H*x_l_j;^FP*+e!JR%EdsZP{D)&6mcapYTtbE>LY5y3+Hq7vow zE$uG6#S;JB#WP`}5h(4ANKW~N7mOBKU$g=&KXM6TNvo;3%;A6j24}kp1z(K{BT_jTs6C> z;y$^)qO4x8pG#~>{PH1#81Lero|il#LX=Jq=;&Mr6u6ub2k z^XdxrhAdV#8|vvf02n)pll|Oi(@Qe$fVwMoDM6!k?&%Iu)i2_1JI9XQ#k8=M8>a?{ zE2k66YMIHWLc)@ZMQ?Uo51kR&Xksg=zi_r7Ur6{;QRq(6B(IYjEIeiSUeZzVVT;A( zdcy83jW|%KNwJZ!+pM5FXI zeU|11)6g1Xv*G8SNrgkzRXrbAf=&%73omc)XZTfIuEE#M-g^(P(GW5zzDH)=*(rouc#8Bcx zXNSC9s$V>h?IZc->f5z%Egvj%)?}1?CB6p)a-F3yEY3&ZSsgQxBaj9 zjd0j63)3+1AT4#*RI!44@O*8pjDEbCn6vLf(jKLpdN0|kCvi3=)q4=_>$Xe?D`C(c z_zv}Tr%k691G1POG77v}%Y_IU()5Bl6$p}Kt%3$+QS?MiYSau?VmfIqT^X!E<{Gv1 zdM3z~-4bKS+-T9VwdMRoylk0@YDMEo1~y#B_w{Olj)}%Np>SoX`8Z;Bkl)qfoMz0R zXoGb=dy9K0dpC zx%0st8I0MF%kjNST>N3VPdDw`Ze|DH<+sU8D@&+b9A+e?xw*QV)3vql5e1>SPcR`3 zj3p`dAR%`Gu)J6qHJ z^_z{1jAG*VcxCHp`%pPiwuj{7@DYJ$V~dO1=U}vWq2$@hQ2mx!jv7XqJyJKR>s&vU z=6d79$REx8ThWT0sj|<7;JVEa_g1YfI_=JJ%^JUMP8_XGCR8dr?y}-6Gg*lmJ}7tR zS#fJFRl`bK*f)aUh*hXn)>;~4me`V=gL*xaU`HmOb!hn#8(sLNT1UI>ZqD+t`KVw7 zFT;kDTL8al2Ethr5$8TfOp~nNT6pD(*H*J|uTAg6`cwW+q;$f2%s;*2+PyUOw$nRT zT?QySziQZ77-y&hHtNeO%bd=zjKadQvLjBY2n)5yIcoC~N!I;BqxHB_PKFNl@(JqP za@|wIkPb-T7c28#_1Yq)A&uvhC|a(5whuVR${%GBg8o6R(8@O>h;*#Y7VR22w4qw6 zE$)wKF~V+2_UBAu8L?Ymu8|vb$=@&uMh-@i|GdML|A~NTTLJ{pmQW1}FW#a(ZxkyE}^Ja9LfqxP=0>_|$Xj_|a;v=>$}W z#r#5xt?{eJEP%aE8w(sMg1u?y^Ug>&eFa8Z)=j^LN zS2X<14_=W>H2>n_kY~8Dd}du8{Z5FWADSN__JrQVJEI7-M31WLyspCbtErMa$#pN> zM)jORXo}KgY;yA`9i4nil6`)~zc#|(=t$^R{jCbY^1b6v+OFD(w@6~({MLYgJsxXK zha!^w@J^rV2z;UzAQoYmh>8p6Z>u*@_OFrKd&Cvb#~9&1>TNCi<_S7Ebc;ZG9SG8k z3-knh%{cAeJoM+jq@8j(#wF~^rkyvjL>O%-bgs(1%%~y~4`w)xWFITU?Tc|67?6`5v;@j<32|Fn1$@isMa^ho!C$lt! z@})lqyAxfCO0$SlOWR?NwN@yVTnm)6MObEryLX$(iR7W9_>#U~M4+>R@YAP;g|_L2 ziolRp*coNjA>QY5_Uec*f+?@DK{^Tyt`YQY!OdA-6TUKpK?rC7C9( zR*?0QcDpOySQp@%K$=6H{}S zY?mZO-0b=YjHFGY^%wPG3jFBAPOadHnTpv)mCF%t$q3Q^xR-p@HNk8GjaesnoSfv?=EOD!JKrG-W5Rb}lY)KS^vukHB7` zhezVpshs`#I&QqGq2|SMq|d0XRoy)jNp#6683RufL`o3(mlDFRUaG$7{@r*oAT$3V-UVvQc{3Ck%DRDRl2+E^tvo*Wy9j< za(7l38uta$EKoOyyb5db+P6-yV7!rKMV%Auur(pH97L1K>sl6L4dxrvEIzL?nEQ4z z;D^cZ5I2td>jcti(RFjj31LG7{w40Pu%%!sp#Lr6r2$8RF6wSN!cG0->fjV@VY^e3b&M)}HMd_gZDjttagq5&H zS-ISg@^saALGp{yOb@N!Em z83sVu7AXTr9h&458d*nHzmz3uKPllS#|6m0dCNgCw}xxxvjV?x4`iZiq?2mqVT5df zr&s^NejV+Zz{aLn)r@qRv{xl!;Dv8p*eQCrDBBklrdX3=lb{m#Sr~zBW(x%_Cp4`P z9YWrzml&_^60Gy3m*Zxn;Yk1eQcHW6US*W&;xF<48_j(7j%@ftoV`|DYv|LJMm2744#eh~Gl+yY=;N%otk6HCW3lM<&?r4;rp5k20Q~Ge zAvU&CO$^~njb$<#UFuw+4K@u!q25|Uj^n0fRWWp0k^jM~dkl0KVuGbr*saiLRoSzS zj|8>zAv{Y;D==*>Gd=@Mv7?EIzDCsVgwu3F39|%Iss?AWj6BcpvNbdI8F=jluHy8y zI)jZZ4=7eUWaXCEP?hETm28Rokawo8bhfj0p;CZpR?)(GK9V~2>r?i3X6Oak{uH}C z=iZeMtZ6OuAcF+km6A?DP|Bm1gf~vP4}rTuBlLPcoA8}{F-*v$Zl$QNf1}Ofr{dGK z%OkHPIID?K@tqDyi~P6fnA|d25>6{V&#J3` z>9WXyC~Ja$kcC8kwE;X2;YfY*va>Gh%d{5BenWB&%m<;tXQ%4n!{#}GSZQA;NaGM9 z1MqAc8O)pdGj%ROV_({Dh#oH>teSX(nbg0q+W0OlGtuS=SZgAQCAmD>`Lk;{ZM@$p$!s*#BER zklmnmau|?SVmuP}`8W~U_v@2w5<1c&d|=SWy@3xzG4IFhOKDz(e*awy^YuYZVD&nz zc%~o^hz=4ngQ%EKQ-jOV$_`D@>Taivi$?fA{SyS_!>X9q2+KbEkkgkk1KtG| zm6VVfvTKeIJAE3R(H@nNb^{Ls+ z)gXxNr+vfLrHFn0m9t-sh;#k^U1{!$mzJAO_ud2d0qt?e_Z_= z;2t(bT9b_q^GomNL}lYzTN<~-Rb5@4%N5k9B9VB7rwsZ}m{SG)I>zQ>Y8DW4(=(UGS|Iru*3Gu=DTKwD3YSg0VBT*$C=3E@?0x}p(s=G~h z*@Cu1&{9wCMZ%;G}p0?`Bn7dq~|(hY=?$|qaovtqQ(^iiUB4@|_f z3;4&@IPNo8v^`b{F8< zGCDomPC||IdgrX<_5R~Mccla|tk{nZbuRuyEpwtk9`m}3rlccuOvv*La2R;uo=Pds z4tfL~D(sNr)_y1YqdL)WX5{d56S1$0qpA2ePggPX4_U0EcXcG}ep-3^U)iQvqq~QK zZ~nAnQ78Mw_sH`T%_D7bQIuIzg|*3T4F|gG$1E)QA)6IWiR)18Qn1TkO%6oEpmw#B zpFs_=M@g&Y3~Knan?z$!%&+VEH!C}NJ@^jFF{ zm1;2(=0siSq;y&+O6xA%iX6KW_B{)69i6M(j(N$>PR%Hb`fu5My?>I(5Xr{|y!`hb zv;Wpe`{|~8v+88e{B#`<0@`!K@+v|Gu=iGkh!})U7Qxo0s(G%e&Qi!`=)O(sSsR>8 zh?Q-JC z;L1Y;>tK*^Vb@j&3xm0KUSJM%uS}!{QM1FJd|R8~b|I*hJ2G1%dq7v#5cMyd_0ctch;X$KdemGV5|u@U1%M~&CHBx)djRx>kT zM8=>?ES;Shf@gRimmAmanYKP280(a)ZtcQc`uVp=?KR&fe>k(vo^tNHOO?*uCm+<7 zKG}7yG`z34|4IMPOB#CHK3=cfd*8X`{o4zhAAbKp)AHn{Pi2Qp-45x-%#RouK1eLT zZ`FX`P|-AJ@m6l(O@q4+`Nk5R5=Y5qda?xzLLA91Wn{&R*}Y0tl~7nP!Qa=&ij>8I zBieS?RiiAVWr3NKr=KJ+UGn%THp`17KKJ2)k>_hT2QTKQ>4t?STpeoE(k&orml|hNsE#Aq>6<3{*T|hw zxw~O9`if8cQl_2cXsT||z-u}OXYJ$JneNUh;9@e*75y4Cp_f8A80zbmkaxN5&j&?Z zN#psS9L+e7MMmoxtK`n?*7QBfy~gdZC`ncA(xVOZq&HJX&T{7V*9zOB#)7PS==6x+ zRf)-pX4zgj5eMx|7cN~4Gs$^%#gcV@t-gkpe|<#6R`(!p~f>@mojr*DXbOLc;Pr21pQR zUY!evX?VMn_BidU`9-g?pLzWGr{4uIC}h3(^%?K-TD`7zjtn8lPlv}k+fN`m=RP!- z8zm$Vj0=Kl#nXm9Z7Y2bo_AKI3`BusxOJDVHYI(xU3Y0mZ8+yy(q64{K7pWP=QdR$ zDM69gkNY>u$yrY4t)JBOvZ46t>rgUlE85pvgoFuH=1t~deGrXEiEaW+A`*Pct8597 z?%(hy094Vu>V?U}T+iP_NODBb(H=U^%4pcAz1Je)>R5j&@{?4JDQpodp2ZiofFODA zM3(KU5-g=wh7;#36jdrhlj@Wy)x)K|uxE6%mkS$H&wQilb~FcOSXKFYV&ucxw8O#& zyp_QnSrv6(Cd{?M*dO|+`2ZQv4o~C(N-3mZX2c<_jV6B6a9KIADqs` zp|1L8x02jHAH5+c2CsVaiYn>tyrq3hl0-+DcI|{29)JVnSLfc--w^!WEK75gurV06 zxBmFxrox?@2fl@4h`bb#AoG8J=N7;Cn)I@UanLC2k)xj27 z+n-zf6pR8sPl7HX7B6k9F8!#j&XeQ35iRtT8ZYm_UmNIe5iH`b?mbB zIpNgtT5T zu7Y(JhjgIpJt7jmJd21CnaXB$b(k;qEZFPcIDzOs;wcj7M~Tbn#_cV2f4tr3TwA?{ zK02DHwRI$5Zeb(}?`XChuAN@J8*caI?|vV|i_|WrFsH7~?4u3|MDIm*6QDJVG?M?9 z2YnASedVYJP8x$s!kaDMYFmRdsIz4cyDPA)cu$KJ3t045 z$SFX(4+VAID*rF8Sh3{A$DOHUGH58KDRTVw;nQi4KtY+eYaiB1QpAWKZXd(BSo9l$*Ai56RL?I1VB?YG8YygIY` zjrU%f9jtpH`Y?{Tb;QrPSkIgl);E&a%`2jIRO`$8_g7}U%+2?{9HUTGQFY4uaV z>5q>^bcPeG0Q`Qk$M_o}INryv)LYa0eJU;I!^E&kMxYj^{+(48Uh+J-^O?M;0G_Gjt`^c^5gixjsOfdJlN~hJXaxqZgGK^Wnf{KETX( z>dS^!5y&8VC5lTDke?Ken<E*fO*DcSp02!+MMHox6 zD3~4h3$Gj30P`HA^Coxpc#pA^TvhjD{ z$_1P|@LqNIjPiBja!goWgrq>j3J^tVrd{`mPQ`O)Lb)Z4l2pp##{G=2vM>Q%0lOfw zDJm-MOvotf*tvef6C6mY&+{TfQ@a=LE_5&Eof4o^{H91n@M!H|0!Gj>4)(-ae*Yma z&a8&vBqp4IlioTzmAw!aAyzVPhhEu*21!hg2lcL<3O_n`ypNF<&sgCnM$DArDHNP^ zfk$ycOT??7(tVtD#3x|2@z!eR8JDZ<}dK+-|#JSp?Umey62ccX# zFYt%0+D7Njc^prXE-oU}kmgS`FCor{Bj^OgTm|4DZnWXj2torMi|QK6$1H_B6v~P7 z40RZN79^Y+C+ND;er~S=VyzHl?Q0Mv;6kWiSEAJpB+Vi8xBhYE?&I9r;0%A6cg9KTx9oF|2*<` zBy{1sgGLem=>?D=w4d~Jig}l*@QPwQl|d!q_hTs}>bTn9ZI%-aK1Wf*hj*lA*8WOz zGkUpomEKgkdbl)1$t195<0__d@7_MnI_hbJ03AL{6=0g$!XQ1J= zL|I6}d*M!;&+6vtt&%iO)rP%*_%QPk958b$>*K0M(E1Wblk8HLYR##}kc*6lxwi$S zGnNtlGuSje>F@@^N*t557V3y^j~|WRJovXt*A$vnCex?*)*5@o)s~M~L7hTwoe~7f zKfal3lRd6zaZQs+b>b%QA=N}N?8(gx{wDb5?QLg6P82+p`Z_i?{A?_%?uL`X?mWDy zaOP){TXB0~VU!+O##0pL5cCy;;ZPJ6%hg6l-)@k-dAw363-Zq%e5p~IHM6b`4ttB; zyh`=S&Fkg{W-R@Ygi2+u?Tqa&P`5Y$NrCT+%ObCP+AW`RA6eSiGz#Oog;Jkfee()I zT$r`SZMAq$BT4kKszljLuP|HW<1Ca=m_6ppk!DemO$W<1$lbj4>yxIR4_vP~<8;`3 z3dep~Et#9zSj$%=W-rS4XM_jkGqCz@Qcm+P zqOB+>gIir^EceFh;}2msH-C(_Lx0qvOCyNlT!O}w+ernvn~8T6jNW`#07I3|Jt!&v zfbCf&XS;Vby!Ra5(|#P~a%82qDS|D-ggj|qCHHAJ%*^&oNWZ-r zxngkZp{O*DnI4qE`&@S0o8Q1qoIB3j;=@DrjJCFO!dh}hbwPP~Qv41d`Im?2HjMpLB8gdI zxR``$hly@8^iKA&CMU|+Ity7{{;HjyiAy=lp@GDfV&8N;pu9# zlk|ugq)|tt%gw>u>CSc?eMr6yue8Uidr`|cD^p6uq`>hO&)$jDwgsA@ z2$|E?sLvS@(Up_TE{p~@0tRuoSW8k)oe#>ceY zU7AyFSIa=gf#VlQ$Vt&*2$MCeXt7JaLk)T;;0iG(|39m0!!Of)evOu8Z};Z4P8Q@%<# zgFwgr$-TFu8#hbde2d7|{7H?^fJ)at^WxuQvU-Is| ztR6H{b5O`rMYYy6T2M$!{phRhDSphk#)yT12kPcWylgWvVF(phEHP$6OZ;O}4M%68 zMG3zb+Iekyl&2N-s-s$Bmu^H$I=mAVYf6<{J|H?r$Py{nvWhBy-|+7V6ZQfOr~LMp%TJ*Cs71y)eh(l;igfvzoyV7t!@kn_fsV)0*31Y` z3&TuVHP_@uS5TBNmhfeY8>J6VCj&%STs0BxitNM5p87iR=Y{O{UINY#e}J>TsH7@D zMegX?%yMxlm7zBI>rKJLh2SnRf1{1MK5lkZ)*O*4`VEt#YCPOqm1~;ccCI!Nw;Q^T zZ3JbUJ8Jj?%T@v(Zk-Kz?qJL83K+j~&!z-d19tXOa2Dca}jSA+|X6|6R$;U+}&*7Y#f`FimO=2Io5iDY(MN*unM@8P`-dwIaO=9NlM7Ks40e!Ogazfrze|>_6&ykVG8ZZXMAXd(bJu)fsJ>_15`QhNj*M$)n?)`onW$r15 z<9Bh98D`@aJ?F+LkPXKo(XBWP;vKp+^m)(aR|zZ-!jOn`d~_ zS@-cPr(x{*m-%-s$Jwh@5;_g#-n{vVze;j)aqX-GkA7Z%fZ&Ti+@52m190JWV{gj< z3~L-wT;)2czfoNkKZ6E-|4plRmtr8Qw;|8uuw?Y~Pp0O`RT(IsHkdXK2BGWCU(sk> z|DoT(&c?|O(^*VvFgc6`Ie-i(OP#5S8pyIY%`B{rs@wi(w;d4BYZe@1 z9OJsgO9EWG0(=s#HV36@Ol@RfDLbvk-}_X2uBBW(Az?CEh@i`|s~Wm^M+f{HjP)EA zF~(fWfh~j(G2G^6;_yHDj$7KdEqq36wc9f~DYq+}RD+2ocU&Owj;?eQ*crzK?o=u2 z5tlGRGLVdd1*9f^Y<|LhqU6R6SU#r~8F=~n#SctaGL^{$gH;cI@}DO>6N2^v;gFMC zyW@!xtj}LyhcFXQ7PL04gTvgGHv|Hg8dC^ly}$YwaD`8YCZR(e2J|bq`fy7`M!Z4_ zC4FM&*Oj)iIV%6@(Gk)>(iVzaLVEAC{dj1coLo!N@y~Jwc@yloyn%x9T1S;n@D#wGnof%vscPI82 zj-1MQoBkTG2W@}^#ML~t*xTFRo088Eg4;+^HzJ zbXoga4f}c29@pLm4X{5RZ#9V#KNcHTrI=%J)A#Ib00fGd9FWYH*Z1R#fbJoR*8~l( zSXMhzXApbBDaV;!Uc*T5rz-Pw4JKX-0YE5NliL-fA#rWy;}PB<*8|j!mjN<> z$soGefMwtnmug3-9MjS5MtObQ1+b)p8>Vj(#f+*iu$!++2dNen{geuCYvaclcoOnC7+AQV7*;Ngou!kSL!(++ z>h0Rp#jt_kF*?c*(x#{K?~h;Dc)V}Xle@MSE0a8jXAN|Qcyosn@&v!p;_G;sniZeb z%@dh6tU?5cGAZ^Rl+EsRK2ey&BCcp4Yv!Du@9!k-8IEav+td1q*V1E$rr2+|QUPbp z(oBWypi5X;dzT;?ab?1GKk!LKhNWhz=+{>##iy7$d03X&U=X%)R#p?@g`VV;_{ikw z)!6=*o8(PM7(2l)#vNpu`W{6a$-IwEBlpV5J*CE&oRXrSsA%^o;;x6p0}nS7$nfm) zm8pe=F2${$^AQX!67FU9dbrNY(#d*jj=&Y1g$HO2Z|yCKU}kbSfoYeMQ}8fs(dGU0 znMFVcTeaLJqKhhDAHzb0e59&H^0mAl9~v`owAi#!_1vi*G53Rx<@?!5L2YENm*w=0 zt8Q~(k-xg6na&XB`4KPV@!%SK&Fh-i$o-gkGaIp6NqF-TX%O>Cb%F2$Z?5yH#i?2l zsJ*>jnaU9Xo5&Dq%KEsE6&q^~sG@yalUXLt3i0)V;8c`3X>6d+@nJi!V8PzuY(`o3 zQlEnz8NQH);J$T2xt&Hm-!D*OJxtk$HZpfQVm72~E5I}~Os&9j8(kt1=ZIh^`6W+X zXB4*HZua|lYnynbW#ELORj+HlvXjVLut~{KGj0k zc1gI=;>W=1gKJO}dj^52?2rTsngms3Sf6 z=dG@~aUqWjdBFzO8AuuC(r~M%m21Hpa#eY^M<0kNUJJ365tH)kb#tW)!ui-jFelkV zn@LG=vDZ7mlQCg}i5i6t4>}h1<1>JyIGWKB+f;SkH5)CY;ab=kbvG_Hf5gdRSIKSI zwK_6ktrwvU?49>;xD%o^>Z%d85x6Dr=j{kGU}zM${>$en0rRQ)zSCeU{nG_a=N%pl z(#}dfc4LXmTdz4$hA|YeJ7O<-OV;ax5e4r*MqiuK$qAFzjd`U|Dln8XlcA_9)5V1o zpBW@Vg9L7>GVrpSC=tEGEP&I?mGWMMb99;1gfDd@*(lHKp?ZCliSObiFlnVKH-R~Q z>_KO_DM&$h7)o+p)T>XIY)iJK<%L~8mP6Fxi8(Z5rNuXoNL(D8O0zBSO{$O>3H3cM zl#UEH&lf9fJN9M_Ni{FLpDt(+PT0Yb36@AL14)`_v|5yoz8mNlJXsA?Eu*BQA`~&8xlc zPBh9j35>uPNU#SS1b7@R{6tG!<|wxYC~KS2@1p}7<+i=}hM%XhPFd4E158fmQYXFt z?+oxcU_imVxkYwvD}M-oqkTTLEAPSy3*r+fRP zpH(BSv+sCAx*h6Vd+qc}Pm=$d&NQAWhvca^j0jnN=Wud4cj0?5%LB@CZ{&K8 zQFPF~1* zN_iD5iy;`#u+nODrw~Zib~mi2`!yjAI4X(3c+u!%jd(2}=qH`*#Fr_1fWvC&IgBF+ zZyL@Ur-eqoX|UV#-Jpv69`eoC^^>WjhJ#&ryI4DW;dpZDX&JHfWrX5 z-PA;H-yH_xfl%$=+Np_oQM8v98=X;ef1^DiybzPQv+I+*`tjO2ucNTs->ye9rl#xf zo@I!KoFGKPt-_#S=2Mf`TfwnUv|yC((_{_e&SQ2xXtQZpno-QbT%rk8Hj1#em;#;l zM6&+G-4ue?%EuulDIy2UdbL!#gfqApR%Q);d9`TMFhD^sjzG4z(K-YbeWWB!9`{M) zhYlbm-r5Rn>!R{sN9!ZYq0*ViSBSy?_hKy+WtWVzzK3FCseLGE5ea7Aw{lWdm+3!5 zv|k~m7T=GL)zPzZe) z(3a4lv~}dsPJOquQaDNqGWopEfwYSk+etabuw5@x&rM14ZQs}0CFF)wHi{HP^K+1= zK)?d7b5wbNrYqL??k~**#P!t$Wv$=AJ@)UKFjHIj_*JgGeNbdJbT%Me3`ivvN^pt0 za^l4tXQam91qpWM*N%Zx$y>b9GaYN|ppz-!q|syx;#1pVvh*Gh=N<{RO$<)E%}eGS zspgwh+7(1^4@2w7xuRzyTg)H-rwYY0?FVU|N)QB_FTS;f{i>G&HX-@mhBczMzEH6% zt=>n;PbJ#`=xF}V*_ZS0o2(3$-_mCPiJS_*K^q7dDItARf106Bq$4yVSRqXot~Z7X z*VXKW9Nzrolcw)pe5)E9s|tlcDAxAf(uT0=-{*S&@K0maKYv5#`%7mCpXmU^D&Xdwvbb-%)$ z*J-KpH6R;s4s6lURJi=j&qtmcPl|ss%DeHz`sS5_|COPQd}0m9BwqT4uK^j}bj=KO z$K&T40pMh? z!9~SiJI1zc0~!GK6Uf}g;O#J|4S%eTj8yt-Cej``zxvWAAmqqQ2M+64`LK*)nqZg* zo~)Dn8VEke^X*W{A>8@#qp1+pz4;3X_CcpZ zA(T>~xuo+Bry2?pN@SPwYHE0>yA~-M?$|tIo|YWl{SdaCy!}mH)nH#t8SyZnxY$Hq z0yUa8q&!mOrFQz?HP3r{HY24Vo*DL5R4duZ6M_MxpbJk!x{QztD4G)~5YB>>E_^%r z<}yNuZ?Yyjva+D*AzxH?Iz8$H^gf9jam}}t5dhw}rjxuE8W<8`vW+bzrrP;%F#dPP zj>^aWovh_pc)oa2Fakx}-fnstl#m}mdr<9s0lgEd{Ffl7`T!}@Dh-&YLu(W+h^z!v zSN99DYf%0|`aU*Xx(h7>`-~>vtg7;7<1;GZYWd(M1{r#d;P^j*YYyDlKFKsqPnqLq%Xl*7g z$~_C}lKG?UkYr#6tr)!N4W{>15bbDc!25q1CelFlib_N57Q@czMs*xb1;hkGv0cTf zvJyG-UF88p?tpQ*|E6gF9HPGZD^&kK`RG&9D7sO)bW{m&EO#gC|IjV*Panqrp+)0= zK0-QA&-}Y#<$t8{Khgj={Fip3|G~!pNaO#FaR^zza2${{X7&5A^Z!3KFEaC**yoY0 U)4RwpSvjlYw!fGCcIo#213Wcg4*&oF literal 0 HcmV?d00001 diff --git a/mockup/mockup/profile.png b/mockup/mockup/profile.png new file mode 100644 index 0000000000000000000000000000000000000000..d114719cb0e07eefd5286f7627b315664cff4f68 GIT binary patch literal 152828 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ëxyP#`p0(Hx;+NWxhIH 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

    rzMhd4mPqdpxLv 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 LY+v)krGNhy3(0fk literal 0 HcmV?d00001 diff --git a/mockup/mockup/themes.png b/mockup/mockup/themes.png new file mode 100644 index 0000000000000000000000000000000000000000..876da8f4eafac70afa0bbc04b95193ab08887d05 GIT binary patch literal 168723 zcmbq(gL7uh6K-rL8{4*R+qP{d@5af-cCyjNwr!gm+jjEa{eHLZUvQ_+)bw;cr%%^2 zb$WVgI!akl3K0$$4g>@QQAS!^6$AwQ^uG=R^-rTvv~>7yfN&F)QHS~0{9()^|IJ~Y zrFGmuK;Y5->!1sN13&*MG2JD!-NjrjOx$gp9EsI!94tVXxtad=92>xH{6paXhfs5} zboVlGwEz(@cQUmgmb7uT@N#msb0Zd0V~1*3{Qb`j5NB6SE$^HwJcURDtv5cl7Z2Z? zsrGR zFr*q>mPM#%1Np=yo+@076~+{FwL3d+LRYJ0I5qFI#RiFMd5Yd?$ZjHi6&g z8rt9`<&2e$jDe zdZV}S?mV9M*v4(3T)PSg5w#C2Oy9AU@$Yj%yx)idNOC@&uXU9OC9wtzVgzr|rPE?R zKJiv>xTQ<+g|NRRvBKLJ0WE5gPV#a2qny7)oth}irK9;evb_0+`9v~Ew=h|7n{g>h z7c93cAJw}Uf>FN>q8Z63hST<{TYSF!)TRJc=Q|s-D}U@-jPk3eFYPUL?YZH~d86!a zpG6?;#dF+MK3e4|zsz0L7Bz3xu%bt+&Z-CvDw^bjCR;Af21{$selmKl%LeR-OfUgX zH+{bIMZK~2z+o!$vil$d368+7^LQF31A6U$V5V1#6br0)px0ce>antVo=AL1y7}G%!d4TPLI^k6;$)y{T*b*7F z+fTgBib6&s+HbC{(0dA}&1v&LrCmJ4E6>5`zKq{IAPZrAr?Y+{X5i=wPJ?vmlEc(C z;^eNBX$=L9D<4xIW{Dk)NofAKVI2s70bmvdzix6A!$Mcv=xRbwKoWt*h6wPc=xjQJ z_Oi1Jz+LeL%5u0*I%Ktw0x>-7)$6$?V#oD3XW?!GMJ#2{M^w=nABm


    &Lww&Mf9 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 literal 0 HcmV?d00001 diff --git a/mockup/mockup/write-post.png b/mockup/mockup/write-post.png new file mode 100644 index 0000000000000000000000000000000000000000..50bbd3002e51bca5413c28cb94caaf5545058a14 GIT binary patch literal 177044 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

    Dq?|oP)lRry$n=H?F z7U~R5r~>xP?h#mDO50B>vk<#4BP6%E9){_K_G|y588j-t&3>Cas;GG7DMw6A^L@H%F`I*TG?2Q|eDlu4D=K)+ z)q%Y*W+FaU9&D1hUD|U7;MY)C_e%B`Zx-Lp_GmWZ9JXZg8VzK9FQBD^F;piS1#i3D;ZGcpV#xYWF?anYhvd|7?l@p@@Z8Hflq>C(>J3D6+Q zK!GH^A}=>xhCM9}D%0=EK!}|kY)V4=ue$v@+8iZtxiCEqN@%DR|8h{2NWP&RuL<(`$*;xT`3HQ7~Vs@&germU9BdZ_y;#mZqp+h5r`U?-@QYM z+{1p#OI`@8&$>TiF@8&dF%hyEm%Vwfc*4B;sXNz>b0H7+!*nd($y*JnxbMIyt*SaA z6mUECYjlc^Wf&GiDTK*ihgJPjI;6YS1J5RHW26)ChYB%Y4}x)n{V6E*LY2pa0WueL z6mQ#Q04e^mw?+mOaSB6H)>!)6sfwoqdGj-I?k6>hbD+rw-|c4tKqsOhr~9GBFd18& z3+OY*qJJQH(EI439jE2S@*fZjw!!os--j^Ih(hs#vRlxck*s5;ep<_o2KW?kzUZ>T z%6iiH**_5O1LiuGc=ElRKtpS>5BAUe<$MjJzQ;IfCAr8KC?Ywae#W8lPX!y)m9?$G z&Un(Ta#-;U5`AVrIR>%NwoX$Tnb=m8bED-u;jB(7`iA42ZI0gEykDYwU6>3P|7`KzEHm{28tGj++n+_88ix@wQoJx{i#V1^ zQrE2`Pj}zsqrF!uFT^!{mtd2oD5KgMg6n}=8hokCOV82GnCy1mUE@P6-Fd9 zf#y`!5`v}^Rm`zoE>yUYMC?$B3tH`A-I>FpcOEOV&*J_Rf||ftejvZQjW;lvjxSa1 zUfAjC1MQ!uM*rH;Ur)PB&MX^@!HDIBDpB8|Ol|+oe-0cWMz6&+w$^IZE$zGp%U{tH z!43Qylp|-z`;TMM=#UIJ2I6@qx}Wj}#rO#Oip@Jr4yPJVT8-C9g*yF8V?z-u?sD(J zEQxTjo??In`!fzs%n`kn?f>EZLZ!<0NFGYt6>FoYHzwLNAq0}shHq!EL~cvwoxfE^ z^Q9uL7*z%Ao8NcXI0~GE(rK5qO}sFipbDVUxRU}ss5G9K?UZ%uyi9`M7RKM%jaKyN*=i_d9Ua4 z8cX{><^Adw;qJy?5R7sDU3^TG>7IFcixUGXN|TmeCjyHDVrf>RBz%%!XndJFu_hm(_qG-O@yYo5eF1svNye+c%;W4Ku zQF>^|w0U&<*a*LskHRkQo1!>KMa1%u}qI_wt?%|lp1Pl;8Ty_BBbajTsH z3SR~+?7scm&PHQ8`zchRH%3FESbu>spD4zfvsI@s?ER?u z>fPG+7alG?#)}hrVWJ&G?nvZkj(iWAJZvqFWgEJF+V5U?f~1#aypWjlY*(f@m60G$ zZ60(!P+49JYTHA|+Y-o-mgB#>n8?b!-}r&cATo*SN>LGxQo*g7+_A>oN=4T;eL}-HO@ml*PV?$_+AwrD>q$^ zDCQfl+0Krtghd&h`NAF6g_9y6O=cn_=!I&6y}M7=P~TrDD-cc*ddiAZAIePbm8L#> z9r@1UT%MGe%@^Hg>4AmQ(QZqGc3MU$^!JHTcH~RMCSkn@(onB;!MsBDhTLD=XCdUo z22Ket#VC5*bU}}yhr{*Yug+_VM2OrD|H$%v5uv9m&4^O^Te3>6NGj}N9F|C-^v2@9 zx`~D*E6!MhtI7fmY$vX!HBf)zUeSB|r;fSBOu!Q?(dZO)`I(+Q5Lb{!qtX}IxDm9l z*fs5i&U3EK*<^0|OIwcsMplU0Z>$Ae%s1T$G(MvU_IKPF!fI6qMsaWZ{k z&51O9nkY4L3hGjF5ur1#Wk+%(W)FiEIZ>Zeo7A<^bRILx)me0lwVk)5H|fwXmEt1{ z`8dbMl@qX_axd<~piKCMc&r0i-)s@Sad_a+$ovnMPv4sOd|$-Dqary^S*8Up>qG77 z)}`{Vp6w)WK{m&qw44gwOvmqQ&M?B~TwC9~l^z5tc?-J1@oG%|yE?DHk08BIe)m?A z5%ls44i)|UbwULq>(XPz&hB7sk30CbA!-cvq^n7!?1Jv#tLRx3%p0Yaep)#^u%89d zdDszGSDKT`-w>cK$^I0j7k*djbS1?9%P>O;*VTK`MQ2G2DR;0+6~nJG+b;XzFxS4> zp#s^vh#NM$gA?(>-VNK2%iot>E0t)jwi5?=u-2{lZ!&O&EDdSwTA{GV2ZQoWD zPyJV|8K3Tee@9N#b?e>^F3LIX)OXrZgIyI(lE++GpT_LWSTyWeJ_oq;qU`zkf3YmBrk*OJ@QsAquP|{;>rIWuM&DaViDaij%Eczo zOcDz8Uz0`N2a^zE{vo3?|9aFF^~bx1=v|6Zts}D-ITUqdU=Z8)kWhOQ)f0>%d+vKB zi0sa!>m-djE&qn(of_`n+~7XrlnBoC|XvQQ3D?rks1!(CNhbZ}7h z3krJG#G||A1mGg_ZS|InR?&yZ29k@{JADCF>tp_s44;4@MbG?o+;{>f>@2PEJ93CYLyu3c!6v{bJ1 z`f{pzjC@br`s!_XMlywC$HmY}K7Q-g3vOa<$9$Vl@0GOn4=L~fMq%>?3kpyZ#jP@r zjIJ?-ToVdmQgo2wD}USOYJuY9J&rWrK_;V%TcAV9bokrHyeIyaE5K-CSTv8tZ`-Xh z|Dsu*9xRIDYw^_Q2D;C=^Y+@3qC$tN*Rvbp_p1NPERu`s5L0f6f5K9G13`O)*FXhN zE~cOV5}JY%9Kgo-;&4}I-Y@JE+zdP>8iOJ3+4X|J3tN9hYva)z!6s=uxy zcXn=V{q=HE*XQPUuXTmNcE*n6m+NJpgc@bs93c>|9q&!VglsOa)4LMOV3}(RBzEnf z^==m-jy?Jl;EmT zy1zK1U@ihvSZ8xCtpExd$}?=N9CY4(WO5ELZ56rrc=!hXJ&NpTy?u-28b z3ij+edn88{KDTfW6*`iRA4Yl@(4D8giZbK#=QToxl>njVf7d(l^fxzlClw>=L~G_c zG2h7tb7@6u^7Zan_B~DF2duXuUod%LnVq(GIP6IK`KAaHg$S47W9D&9?F#lLpzaYh zx$~9cs)4axiU$CD4uW)KOBOtiC{}SrO0w53G$$*mk{`l*uODMeQ(dMvPC)LJuw@x{ zfhNRgWuORu`Z$e9R@|?Xh`TeJrQfir{P=kRg+blA!YP~}eCIBre8ck<8!lmh)mQUM zY(P!KyWD{uscY}_c8;sxfFV5^Ox8douB}IEhKrcV5yjg;eFVHVzRj*ii3V@jr><1# zNF9w+KFG-V&&|<;*)|fu-PDRu(u4$AJE-B0n@#aWKl)_c2Ot7SKP_2E2k1S@tWLH7 zjzqW$;AK@USH`}yg*j+b75yrwL(St-aE>_3ik+yq@H=dP?dBd&^O5Rqn4F@Eyi9q_ zWhH`{BJ#U>uhsH6;q~K`C%9?MI^f&4>(MHt7N?IV@UsJfKXcE!4ge)jQEp>IQob1C z{NAcXxB;rt@<#kj4nuw(&lEB_=KuWSn7-y}H>VoFnarX1c>tvPCmDKDAWw&x zrI>8q0BI%eol?xcr+UM#2~3;kzJ?cOm%!PMefgpm>rw{pOtQ!~)cBWGjO@!Uk$WW| z&h#F7JL5j<&>`D>>_Y_RsTa@jB1b(3rzTCVM$XpE8%#AOzey&D3(OutST&1?RcP`H z0#;Db0+!HmkZ5U(=G;zP3DDT?il(`8M~pdF#Do&bK@kBpp6-1l3@w@##jEv}P7n#^ zkdh)dr8(dm!|`#n7{l+1{SJ?B|_ky4)*RZ zV1U9rLIfWL8W)3=iFa z+gmEI=LaWV%gHk=M!8I0mPkkUsulruu9v#!`3S=ud*XzGDUx7WvR1!aN zD!;Q8+eS6;5qhCifrU00j?9~!77nu56K<3zr(PBNaX-;iO!U4=c>Br^)Go=!anA~D z|6o;)guIg~?)>w;}0$gSjuH8I$WiBSDM9d zv6inoBcIwIy38~AsXT!d{!#&HPQJ`ryaR$9aw`G?PG!Fku(4q4h|XIf3TW&g^x573 zdl&I1t4TEz5MBND7-#G0Fp>l2^~VEWAO7BDIw{$i$vCDKr0&l5>8Hr8&Mvgi#Ws16 z@yEV;w1lV6;9{^-GgHrDs=~2Dt+OZ;xRTdl;emZc!XOUIvNYp~)TB}&Fdll{M3hlH zlzwK-#I&KtCINvw!mFL zDIHaz^cB?VR#q9si~tO9H{6jofNVJ$d!M2QaxR9AmcQsr(>f3SJ}st%Q+N8l1AcGl zWI?x`V;03wuZYz-BBjm-LvDT-(6X;4F&Nf6M?3%EoXnY=_9k5W2=1D(>l5_HdFf>b zO>89d%A>4R-kb5ur@yCC-zHzYecfMC&@%cV=ibl;TVW&T2sH?S%$KkS2OibId}D)` zk6FI0A8d>;bU2z-(GEFu@R%vW7yOQzm|+tXMD7xSfkh5)q#$> zkr$XNUp1PySMOZ|+Q5TwuL13`<|@)B-JMD_Lm?qooTiz`BgX;{BRgV_(2x3fNgqh2 zhbl0~<0U^Ty#hKIph*dmCwpeRlJ93_9l15Jk1odFN$%}jS1w0CFZ+1ILD^}?<^fS% zjiG=t$nc96bY7L8oegjHRw;uG?6mq!t<}!kRErMJP1+IlX!b4h6x!(N3NUUKbJieQC@~db{_H?oq7m^ z@?ELMo#t?Sdo-f%6{rGcro&+?Sr!JDh3FD&#_`mQ~27Yh_2kVpxjZXpCh-c zvjS?fO(WB_z@ipQ{Y5!UO?MyLf0|L0 z7z;CDB@wua@I3JfOv&6MNDTb?9i2LYZJ=X)$LRCWw&TdHSlWJoR##y$e51CTgx0(6 z9SWlS7U5!UFO~qrv8SkHkMOPhL4cY2uh0Ku=***`Y{M`iov~9=WNASXC8>}Q#=e!YBx~6!H7b2cmWj{5?>X=L$8*m6JokM+*LD3O zIX>wZ*4{`F=h)ObGaXN@O^*60e)gYHFudk=5`C2oIil9MRG?cG_0iDCsoUCocehYJ zgI{nm{I+E4&7O}F2}4OjdW9r)!o*le zxcME1`!Vx^ytef|)CyjezSN0^fZA;YkoRN_?+UZsr)iY9D+YJ5Z%FWrj9_=sTLN=Z z)s~Vlr*=|Ey19qDm6^%+1oZtBN)BI$$jO1@TTjA6JyP)FqC2H6qBG#J2^Ci>yPrU_ zUJEx}=arIVgQvm6;oPtj(p;H$=9Q%fNa#+jLL=)l&dtX34=n>7cUj*L7^Nj)?YD<6 zTC}76<90?>+H9B}t>>8zNvli?Zr_+c|6YbLiK|Sohh(=s>)@Q(+pt@d{R#^{^@%PbFQCgitK_yJJASGoQbFFUhS-+iW2I z8BM|eIu`jwqh3V2xo?9Go45OY`R>}EL$-dD$laL#^rfseHI=n89^C&8BfbXbN4-7` z27Wp#+k^YTO;zpLHqXEG+VB2Q!S0{E*XMYa=__!9RLp_wzCA*8Srn9GIl;5dS5uR` znrygJGm0T~uYxsr5tEV=t5=Uy#d(L2aQMpvWy;Nk!7p;FWpw+`9_Fw6 zj+ZgR=YV-GF(euaxdnU`9UA4k^EVA!^GY%MVfg{#zXlHBJ?`DEBeBE6+Fsw?3K)Nn zoFUQMpd2nfgTGQ6V(8!P1v-5gN(Qqnmn{nksot&g!Wy5-0(|Xpz7(arqNBJh^NPzT z@5~>=n@Upzb=i2|OlwlYgb0(^@^cG`%a?I~ zk(rC5poOneFW!f3ibo_NT)C{&qg%ImQ@e68_kd?WZV6z^7y{#p8fu;g`4yjqPTIKmfXC_01-HOc zpc|t4*FU&Xpoci;n~l9|g@`Z5UZ;l86>ALfOvbi3OazMSmQO$Zcrz$;_zp(eq5K>r zCv0;JEqbJN`obLVs_3*l#mdA*KIKm1?_!@O2RM*RP53RtXzmB)l)in_@$8qjRY6^Q ztgA$%cDbi;bot3nywh{yzKhK+=3MwKr|s@iWw&}=P8nDjLjv%Jo&y7nqLtZvGkAD9 z@QqJDsJ8s7fEMk!=m$@h&i4!CwqiiwqsDeB%Yv-VQxD|i6Y5sYz`(m#Vvk# zDD2YyHXilI;x%R>N4GcddD(4$Ha^?k@4jQUDMJo+{PvikXX%yYMf8twFs?JGE&6AP zYh@X1zy193tgm59zHwsHeL)v6zJ&8&TM8)0F@M8DxAnww9D8;U!K|dI|FYHdZS4Nc z0N`Z2H;jOqH7~r2S2c{XBRmEqn)PsVO7a1%Mul{Fx~}pGD}G{gcL+^pF1B^PETDZz z`Kp-WOhsaN9H)AqzCsp6a^I+1Fw3t|C^6gyV|mFA>Sx325CBBRXj)5*o1bkX)NwSM zg;_+yP=(hl~&soOvqu+g{r++qrMZaT(1i zIVL{j>C4d%nZtmS8eD*cwl#~26B3Wj^FE(g*7{*YNb|U7T zH5#OOIbYuEDCI|OpPeS{{$+iEIfHtnnpq{~d?K*Eu(ATEgeL$pizm3JOxV0#G2}(XvoZWR?bg=ORu#?eoWT~fhe!I|(%n7GZ{p&_ zvlTqz-I=v>mTf#Om!d=fe?>`;lP|Hi-ey7iGykCnOIizf^&_KjJAvtho6l)Ohj*5h zhXFvdLj4O8J#3pb_k5zGBF+Vmtfvi9dtY zp!UY;w}pfu3kqfD-!rlw>bA&>(xebS^@7*5pxFVQ^skHftEj)TIw^j6HuEY!&B${) z*V^M7oE>u=&OH0s$k#@Y#Yy(|Gwb`EiwQnpP{yp@m}gLM`zkn!lN|-DYS*8(ZDem~ z-<`V55yekl;;vo^nw}D%e%Tptd!#TV;&B1@ygVFXZ1I&#Kd5`^PHh_7wL4QMDoIJ$ zaPf_>Yh2YT>1@fCaU4`9s6MWn=Kq&JnOWEk|F2%KS6lDviL>Sl#Ms=yyJUa(i6ZeN z8Fjeo8|q^!5U%j=cXF3Mq$Tkr(8ZP58`pN$v^BmWMi`iWT6NmyA=+E?S zRl0P6zpIkqmJJJE2r1j=ecu?O`gz588AKwkyBL*SiB3kga zoRp?Vfvtg&!+iRZz>11(Pn^rmykmInGHYda>k@BQG7WIrjtNdyh%Vpl-v~_bMdn4t-%mRDVv2GM= z@{QF(`BB6p z&vp?|CjL)-cte0XbXf+Ga~8Zju2cf{2bKD|idLdW+8u8UpbH1R3&#c27;g)$8oc<` zN=l+179Vr5+s%EIp3Pe}VDD$dX^363oto)_`)3oya1XoR#J<6WVd}Z-)syv!w%cPR zZ(*USUQJ0Dcr{~yZckNrW*J{H@v}88qx|xnGeh8do$f3iLWGcQ*v?M>D z{&Vt*R9GdyS~ThqR^4~U-WgB6=<{sfEicM3T{WoQ{GuW&4%=~~@m`T~qMP8c=DT-HX-Xx8`<{=T`lV@IiI^|*@}06+c{4=*aGhLS2ws0B9@Gb_6|&9$e%6#7-Y$Ej`6?4z z=0MWSrgTP1ahX2NBB2n(o5RNyuPRop-6(E$20F*K$_xtkWbxND*++yZ;dPB0wT$| zp`m(A$4N=@_Ae~yExaG3S#}Dy7|7shB~>h*4ibKF6k!#^ps;mZ6tfVkX zAYp_M-{f-6SZ^tktyfFsa-5Hs$0fHpk#Ov54(<0XP1QrfO4& zT&Nn~z}8GYZh0m+88%~0WSAY5V;?xd`ev9-!JDNZ{^R(>9auF7B$jTOs)iV6KL(ZW zD*^e^Ga7&*Oc|aCbJ6dy3LFBrDY&Rs=o*`3t4@IX8yG>3zxH(6M;TYLvSrrumq2eS zFp_Z=Rhc3EjK<&~glHza>?r{iYUtQxr1`IrY{FGnOQA-yH5(oyTHx%Ot29`tqjcFXCUwdYD^APLN~TmUMH7 z`lxhs@tJ>JlZ?JI2W(qKo?#NnE7AF9v;o;(H@;Y`)F!})QfCU-@NzYOPU>*xrYoXi zHXcNMl!5~ovU2bH6rgv~ql5y2-m4NK9P%H9etqMdwtXCfb;%5STm4UlvxXn}L|P~f zD|)t>(8CnocnYWsQ*Uqf4$4xgnyqnTwIs z)<~b>?8AIxk-Hm?Vg#E{adRpF4#T-*qSh0Kw(mklHl9v%!ozXILCq2SCy_U>N>OKK zTj$M}i@%3eomc~Y8^GF{jF@F*u?Q-mwy zjkrDMGn+c)a}YSB{0ZZGZ6u@rWmGn0{SyzqRqv{6>Y5dfL&$DT?7G_}{*hK-h@GLr zgpNBJ*?rl}JP;ioq!8gt{)Yr!3B@`g)CrrGfllZw{f(kzTA`UR50_Nky7*Avr5m&Y zTIMvGVLFh3bfjyJ)AP}=EWwPn3O-r|+c}aaZtyGVONVgS=c!R=i$&{$tyIC_vE##p zp^)utJ__lM&Zhzoi^X^5>~M3-Mf}a`TVcL0fK<#~A4+p6hsqhT2RUi31!X*X5hfyI zJ^e11*4d(6-;aEH;Cw#P#RAW?3dYpW{ay7OJ`demh_8|jzOS|;9wnjv%r8#c$JK)1F`<=_kF?XP)m=;BPyMh9^GFHJq61$|XZaK!4I&R7)WTS7) zSDMSAp(t0oJCv@V0J21`c(BLDY^=NCPZ_DtP98x^Wgl;P&4hlbb|LDlUrkuPYrCTovnS|+$}>Z^@5clm$7S;GQ)nd@Zuink@ebJ zQ-X`chn>Dh9zM8pkZ0cacW(eat9vi6k%MN6!|xiQaF#{&KNXNmVs73?=hS?Lf9HWw z@*seWJoe;|aADX$z)#*}hnhRk%i|?}uQ}o9Yt|T-ob0VL^=(QP3ao$gCOGQ6?s5>>|wWG)doA&=?Oio^R{iI?FY{Z^} z{FKT*QTycd4_o{DIV%u<))P?Ph}c64g@RhHI5ippKe_W`<0+owIZpy6i1uE-&WY6Q znr$fR2m_+jQ=~d%egqhDtpmD$)~YMpoqHvP!nHm;wR-6V?%KB47UyPRnc}Kx?gv+j zL71O)=?qrUe0cH1Y)(`Db-4;}aI8%8q3f-xcrH_V8qH`Qj90373ZX-6qyAhtYy3R- z?q*`rrdwg?)&($|T{bw;`9lNe^Um&FIj`M(tD8X&e`a*%@XKSsUm$R3Sg6W;9!~NH zH_gLQ07OgKOx!SJH3;05LFu<}=TaDYb6_<4NPJ>yMVS%>G!uFN19RgEvlkq-0ZF^8 z_!P8Du6pJPIYe)ehMTq{$n?%yP{ooqF20vsPO>6o8M@RG7mc7tEvzo+_dZ#zAJ^1% z)Ds_A!qY?zreUsmG8KI1kHpK=cHL9DPpf0y;@3hn0=4MjHvk&kQ&?N_M|=-@hVa_C z4;jp`$ll2LBtMx}-StR{VGZghLsb{gs2f}Qo%)i%^Gor+4>sGdAIw$4x(z& z(22)UlnBbe5v26EhaN4k-Z%=gnKJ(yz?pi6c$pLLm&vh`ip{~kF&RzM?EIA$t<{FO z^gA%2G!gp0A!ZlhAuJu&pkCC?g0Z4rikQ>y{z=wuykMZrtD0h9U|@LH!qi~UU>eg= zWM+V4n69)hl+dE+N;)Ju0?Hu7w8wg6<@ZlBZ&xP7>{2Ds@sGZ*^}wH8!c(%GQc z+2WZZn}EUfAU-YzV?CNv8WZI2mRCxz3>0>`N%*x0n)o`*ENZ=PzQplrJ4n&sjHdqC zVG-W7zCKsssJmK9j_x0C1~Os(v#H&H88#XCTM2?1Cw3k;;G2xut*)&1kTN~xVqsYz zvM_D?IYx%XYTIOU^ex($h2sYzb zevT#R(77}~>t+LJDWy1d#s;;jg+X6`DAE)WOcZC6S}zjG0Ahh)pnQN6r?;C79VZW& z_$LYd%>Sm3C2Y$z)__xAoH|P2L#qqN`-62BJ=*_0(QS>)7ncx?US9&Q5*0F33!(lZQb*)OZl3%msDh2+V8xHkUmpJW;DB9yUXWz6JWd|Nr*EG4zL z7*!^=-)8YO`A-yd$u->WhD5Ctn%!Joki@5YT)n21q-Mcro*;rc2io=4mAIxYl98{I zfeMiRt$NKTl3QG$t$Us503DDpQkED~Ca0`VYDM)S&aw~xG(TH?V~Pa|MK~Ll2Y1aB zuya<*U8Qd>e^KTUGMvpY?!B%;^f884yWx|e!^_9-e^}2e$j$Qk=G@&3->WtN-5Ap8 z4MNR{Z$IKcE50=Qta=3@C@Wd*RBVBq?u5_5D>HS5CRI)Dxas~>G{0#kf$QS*;9D}; zHJzU|Ih)-e;rfj$+2y82d7q_6ay@@G4Lx^H(m>5eX`9Z+${qJta#&7|`@We-A;2iH zf(HO97vigX-Y;IgtG=?bLuYJSOXu)%=1_3K(jAOt6(>-#|JZZ|H+pcUYru*6+~c5M zVPS0Cmg{NkJY>mfBd0LsVn2CTertARmcH}7Q%h}WHcGdJspx2XG}rxMcwQ7T_hKu< zwA9?2FqYUr&JFg6QuWrC((EOl@MKVsht|q_N4DfyD%)a~F=H zP*XSux%k|${M#d>oua?HYQ3D}v3#M)x@f>iS zBt8G&Q0h0P^klq4u!Nzz78B!_#lBp9#ie+Z)A(COCsLk(M^``XsSjSuCxPvlPotgq z0}uzOxu60oUT<>i2>{AJqEf<0$xvK8tkJ^FX70zd(ZF>sy-Xg{C1pQuOFbpXPqkBDiFYCrk@9=-}@`z3xP10{Q8Fc?!!!WeJU7P=4+!L z8CVy+rMHXAK7AFQpr0!kV;)2PCdgFTiWiG|j^aOr=>3<7U7E$hwK}Adcu=#$^M^}w zOlT>d-aTon4yryuvxvHGu0|)Q%ADi8k}4RE`FzDV7R|fxZi)XF@)}kc?h+ei`G(Jj z$NGrJDDCLfGDIvh85VvO&68138(0o*t;tF4SjS`maUufZ@%GY-(&B7wDW5<5sKJFd zMcR3Xm!knEe0m+rC|niXEEwoZfw54@NOw!!%{8i4b8=~TolDP>lQYN7EJ2aBiwc|6 zIQ_ZhMXz0fi)h5hAU^BOA5oi2URw$gZ-Ol&ZK*fxW4WE*ZHLyiBqguUaT>B^ zWnt>|d>iCCTJoZW+#c0hty$QQueM#foffer2YyUQV{j~c&b^)*iVv^&fMP+}dz2mx zh-WKxS7niO2DmK#+;aAUBBtCys&n@AZ|Ivx%(EDAV*pxC92yC)h2V1}MN@(XYsDQe z3($(5?Ye~9Lr@k$PXUnoIoHF6AnDd{w4l_Q{U-L}GVNF0$b&TO{fhR-`bqWZlRaNY zEHU@B9#>)PA5OYoS^is7;gNnmZ4aLmNX;Ud%CRWCqeL~DnC&fl4PGI~gzw||76X(_ z7fU3EV0k`1BIRuHcFYZ#4+2J#(R14NLE)SZv^1;dN{^;`Y8yu-uajua-%l5G2daNu z{(aY*-4^-r67qNf^T_4C39<>E2~ddSmI^z1!32FOQU|xUxnu(0+-y?=vB6XiAGz%| zXMEmp396pk=gB8{y@cBWmsy4=+d~a6%BG-w zR()^*uTMb~e%0O&a;*LR2dRcCk;6y$^4I6%W z*yj{d&{}9G$e!SJcCWwrQAqwzY(hqnY+*0{fxFZ11ly6_WvA&#eU8Iqw1iGP0>5Id zImcuJo}2tI4aV7Q?e7ltOJ_aVJ=kv6t{`lm93@_U*5?1dZ5eRtT{e4&;%610Ph|@3 z&7`3Rg&sub@cEz`Rv?l3{zM1>r_iWuH_4;V2vJqXKJEv0T$c-~7cGE2AI4NmZCMHE z&e$6VPMOO-oli}3HD_7Z;q%@#ZOwh`Zp-R3Giyc1ui(eLinAi}%wYvSPgh1~Zf=5; z1IBjegq!~$l!bm>Q&@_bwG|c=FhB7U9U^q`6ZY8p$9-S%ROQPP4;4$&7>HXeNTk$M z=sy>u77bU7EGQQsr7*Z&GRa;X(OgsR3w>)@JAA8p2tJ9$aS4e&gxuRZ>^RzIj1i1_{~og z{BW_Y-Z*wB6(s7MBnS*?1LIb;dQ_>(VqlDKAqu%Bt(X|o{aZ!m(Bb#dQ(&%F$5z|5B3g_ zNQI^|^OL2an~uJVuBV|=Y!#ztd+#-}?@Eq4Bk4)IVZonu^YehQ)ge)W^c7pL+t3O_39{cB+;fL|0cWh%fXG@h36R=BQ#6{N-_T6r55|d-$}`!J;`0 zVnuMqm6O{?^OF02rzGc)AHiNjcb{^_|B=#wO6%remv_Ty2wu!v0Yz<(K=|LXt0D4_;kv*g(|_{3|FMOB;irFNXTkADtl-(%lH}lTg7h^uFy)o%;$KoO#wvJs z#CU(^BTI4~**mrjx3=DRHodVKn?lF%uQ&*O%z06Pl z%HF$2`Sp8t968FrA;Dd6K6OW$EGUr6;J?`G;A`XrH?`3Yl22ma+Po1_@(+XZE;$<^ zmM7gE>crB+l&m-cFx2-pPFqgTSXu&CjW5^azNdeymT=m>qMO-ejW^w;nnG?2$O-MQZS08`XC^hYlZ$qF(vfEE4i>BR{`c5wB>429o60 zpsF*eVrI_DT` zH8US1>9S_Qlr7eGjJwGiZX-F48em+(vhTTV^T{q(WfS^!txgykzVS|fgmtgy+g95~ z(1pid-8QGxi!O?=?cV>%5FCTKcNo1Oz*JQpS<>*_spfiv$wKdH4#x; zL$>B5U!Evan>~Iips4CK?R~=6s(lBI zuDRsu>wYrfqTX_Ou*@ztyrZkr@+%V&F-R>NiBVVI4cxtpI4z5D;D>`2hzF>2D<9C)qhaYEC}HQ#LxBB5$(xUl)60x~ zM{HIX9qmhQCK>2d++Z=0^e=pcds7UIJaT?(qu0$NKs=V~?;31-YhHIycf}xS<9gpt z;TY=L8vAx}DM_ND|nCcJ3r8{3APtUYDj zpR;y}wHG%ItmKB<%I&G8 z45cPg{tB<$TLi)mNP-&w>AsfUw>vFhvogm&I|}sXO{w`Ww_Bur^1VDaSAtH<#@y)f zVbb(tarO7O%eKJvsSM^aAN?ni4(vrM1YEWU)^N}IM52f_4Rue~*0UooxVbOKlB%r+kcI?enA<_-i7cDns#6OV1-Qj(C&?ip#!+M1n}m8Xi}gQO zj46NTRubh5iXlVPgZ=!FM!4Ye8Fm3VveftBDz3(s5ZRG31{pPt?J3Z8bT=#1{t$tJ zz;X1NU^E^#hyhtDb}zmkAWVzqxIIKyz8oRM)l&$2Xh-o}Wg#nuo#SDJzP;1L;5)!S z{S3T2K12rE1alHAHNYCR$%4tg3T9)R{dfcNl3dup+k$BUD#;@o1%W zb;!BwIzoZ(F4{u3MwQ`T7rp!5iyM(}#dP^4Blpu>}IJOo*T0wwe~!Wol3sSs>pH&t6ciK-J5AD}Ovb zr~Hcfck?qa^~8=b7)0ewBR+5Q#U{%#=;LEGi(=kK~wcV>)> zL5GfSCUOG`YcM-K#1M1%Jfq?QPcoJNRWuiU&%K+=`8Wa%Qhm!3-fIrCOo4U`vW`J!H7@;avH1qOD6szM z`8R3LnFX6%cF>c%*=Gzv@NqK~f2FbS-%Iealf=!-UPRjdMHfe_4#lh^>s;mZ?^GoC zXKuy*dxZ<&7A6&)uc-Z@N$Bmk(I(ZPZiEg0dz)6nLR5%Mdv7;J4oWrEvq9?bN$B*K zEn9a@GlxQw+|vB(;qmCurU?E4OxeTZZ1r0-MoDEwWiy7o!hpfkpy`I7vY0U7E&ldN3HR6=m#e8f^?Hu|i>5Wv7P4favL_h$M7Fdd9Iw=* zn*aKMD)Rs}_|lyhWD3t|b!1aYxk%YxcQb3-0FCWS*uG=E@0}j*=h*sYFp=OceQZgC zkPW_})s2D1tzL_4jhx*-qj;{C&Ghe-0G3CF50r)sMue#^;{ zLs*vWiZ=YLmH&5AIVakZ{QEAceJ`n`GB*#`Gk{4HJTK*DQb7qHM18mU^WJSi_?W$R zj-afFJxJ+(qj(}$$B1{oSi10)eekMt1k-_e(KJBEzQ~R6J^pxYa z^|Rw_E|6WOVYHm=u1X(-jI)NKsXV7sP{t~#C`B2{Shf)*GP|4G*t|K#Tz^p9Ay;h{ z(d&iP5CpovJij6s;I?d}{MG07&baAD-HqVz? z+OX!?8*ifHGahvKdW^Hbmd%K2xMFluZ>3d9&hehuk8iH(5CKIxRxxWWL%T~*^L3OV z_y=6aqmaYdW`Vao6ApTtp%iBrg}#QdaJya0mfDmF46XG0x=wojit-6DkNDRa{E9N3 zt_WYi-*4)SEeBgA9a!|%Mzq3vUuDjYpi!9X)RXo9No{<&b zqEx;|gIzTTbsC?Z+54Pp3v1x(auBnvpM;eRn(M29b!2ih!7luJNn4=EYzFSgEi%PX zEY$VW<=#gtPE@IYQ#K8&Bp1*%SO1DPjSt)P60o*XC>Y@-1FNjV;C%Ue3Fyc%MD*}# zFwNWb3kRopf^{&rqcOluiCnYcWR!r*23?`?Du7E+6>tN`Wy?qPRO0WShjUV$()tK? zCf!*PO8*Kl84d%&nzla$=B%+ovrZ zC_l70s0nODBS8O5vi^_Xo=%~n0MWqhtAL)iB=53AC z#NtMy{71kLtbCE5SNsdM=iB(Zgf=#{07Z%%oPo7C&w1n%D*tE5Pp?P+=$*A#skTIw z%aP2Vafqk9wuDy{?~5zf4hA~htnUct#{vJtFPFqMphSo=xDmB94wj)suGV+|74C5P zWP``vx2*H-{)~p-X#n!X$UFxl19}q9`DR0rH>hT(ICgvktL3k;xU_#>oR^TOz-vid6~! zwHDDM>RA=~N-HWh*^=22jq{I{R?bLbyR+uq1Qqf1h~%1{;5)v2;?+*Tq~RXvAMsc< zZt{!%VBrZBq_%23>K4ci+r1YsYzrk8j~050HEqtLb>*Q%RK;lHmj0sO=?$0WPr(-WyMO-M&aD-JinkAu{^za-P5g8}NFCNQ^BK*RK&?2AS)pp0;!p-Dx zx=Kjv8MhyZ z=u}jT4>(T@f>t2vDaL;dS|VWru|cE-bb7b7eni3*DDCYJaZY6^@Lyg#o@>gzlX9yJ z|4Ow59Ef!7Mz+@$M@4rY)mE=+oYRw)z)o4*o}y4hSyuN2#?Zp%SiM0Xs(HaLP@MvG z!NfRDR-8A;S`N)dS;ke=HOG2n+<4(JCMHVBb@q}-(}fTCyX*Ws@=|i4Sy)r*bbjsOC3`zUd==4YIoI zTs_a2aZP415M0%+SI44GETg|$t8MC~8Z;6(_ZG&E;uq5De1qIj%f{9xvaFTz=Ep`; z1v0xAU9h=2htKQn5Xu7BZkF7TdNHZ zu~;ljKky?6p=ydy%t0s;+Q<_NJl0YR=62C(~7E<|_fK+>2D-)8lEL zAZ9K)yB&iLkX_I(3JQ5Fkp+=2`w=3qg`P+WcseZ+A{|5T-5U5ElWna!1ck%l zvTyKeM{qdSTie%9^BfQt#cvR{Y*KnD&j1W#C`IMSk7(U8k#WPbTE#P2f~?^2}0DVrS1m zVdSIC{@tpM!3N{1?4$hGBuT9e*^xq5^j$jY%|xM+A>*tBgpLi(4)Um3`VMb3qKT|d>CwwIfcQ>pmbHUKty4aWF$Mp+Tf}{c* za5~O6$TYpcNyR>BbMaOs8ERD`T3q;nPZtIWT`gghLVA;u@)9O^bfaPSjv>j7poy(- zi)n=rh^eM2;O>i89D})xP-dL)I@j|3Fxg<4ps}?C*nB3AWOM#pJ#z%&8Bk$dPs83(LBV~8!*OC;kF2C8W zg58jnWR#Wl57eMdg=m=PCj>&5(oQciFXqmbSksMd6$b$wp|@HLIKaNmfOO#xl+;6o zIj-#Yu0g(wJKkeW|I`+)e_Q$jN(q$>q9#5(`}(0*aB4l(*&K$%7mwHGkPmD0#<}uR zzkzO4vs*J#gL|ZBe~aV_(_3)w%tb);bPLtkzfN3P1pQYlUk{r=vqMyI@GMg|U+?vS zgAQ1ElzBnb3OVnuC^w|go4IK}eGGh@Nd5eoGtJU?2A{TZB5mW%&81W!VwA>%4ZvN- zhi>Widw@CSi93^k65jlg9}4B204rF8DlbYOE{pNwuP{OJL#}aJxeaov{?h1-_=+~Z z@o1xUOS7M&vA*#SG&Sg^982A99nQ#(8glmRO{Y!Yz2IIu49GYW;31L+=zu))NpQUy zUk~tuUEt7<+G}#neq}D}X`gW~Q=F{sD{jW#l7^}4Lb8s< z$OJZV>n9q@K@uRd+(>%!B1rt#k*3Hb=xH)l80IE80A&ZuiZ#Blv3?l8s(8z6T>C|P zoW(HDJNQY;{oemPX33)jnbdOj9Ri)7MQNQjAN;=40&PwJoMQ;hg**aEN zZV=Oqub)T(DYCyUm?q6iY23kS_g#HU$XC?&UEIXibGKm(l9LD)?DAb(*flfoNi%Fi zhS}TPzjba8Vi9+G?@M(DOI?hW{3P@P2pZXyd9=AJXwX!&-v&vuaXwd1K!tU(k49n|r)qifqa zicKi*9v!e0Ib1M3y$Bi|QZJugThFQ98^C%cmuv7p<4yB+g= zN7*g}@Lp2zf}HR^?4|l_vFX4XOhOt&boON%C6Mmy4u93WwaYi`C5F05*UiB+-m`X< za`_;DcsEwvKkInwluy2K$o$D|&whnUZI^)iVa{}mKjxnNs7czdP=_)H@XlVQsj8y9 zv|IA!uTSrkPOB>6u;#Vl3M}tTNLe45T!!+kGsnddcM=usOZ`_+3_GlCq?Pusv}>Vt z6c$Z$Rpw^}O)M*AVrZJNy%C+yBNni+A#o7IJ;$b!{v*qTl4_qNMsbdz{4S2kiNurw zw1+<~x8*`TMM51Z%7E@p*9=@*bj_mviV~}<7=BUb4^4k6 zLr9I!HNtuBs_N@Imtl&0|8C9lpOt%C4$(*4l2v-nQPAAOhcUQa+(%Wt?SuXdvRx;* zDdUl3O_olGH~ZciLqkPuN6Ut!XyW~L@QP+9bqI@ z=t4^otjRup0I^A7D@W_-LRhI_n==QdQ}5L2EiSitwR3b&iTL!f*e&c1;KK`s9-Z|{ zDOCmXvg@}E7@9r5fL~-aT`v7r;g}ydxKCq}XP$p(g8c+p<-VH+amjT*BE3Pkhp_c9 znlk~a)uRgEKgj{az4uE&XE`Ed%~U4-aviHom~lKV0n8uZI1O1dAP_INzY+EjV($3g zqH4`Gx*4)uIc)7|KoArg{oW#drjpwb_kFn+H7c$5e7shPZ{QW8uzkaM;)}4w7z&(& z{r57vKq9Ky52p-?7CIxpJ}HqzOhWX(MzPAD3Sy2;gqW4^xC*VPOVN`11R$rYQ(i}% zG^-!s!>N4D+tp5rp9_g#@RXnGDtniZv7`6DqbQ2&(P4AE{yUcNjEc4L-NfO2UR`K$ z-h+k3u52d8IED%zR@nW^lw-prQK7@mE?Z1fDTI7hR@86`27a=h{E_cS_AC?m@7gG2 zivsm|*vI`71{(#Np?U-EiJpWWW@T=Wm_NAzAFzGJge7F~weohUx-V`A z8B!qld{@lDY>@B<-Pu!7{O0AqWXS6)80fORo>W&uuz--Ks}Ixel41!eQ*fJpv0#xf zB48?9e%Mg!SmeixqJDD}4KBQl*w*;f8dR(`Y6h9U+)AX6-?OPS%l=JF|Nf23!~v<> z=5wX14t!;u&p(pQTe{gzi|vX#Z_4ZBkMikaaTK;P@rr%_Bn4g?8+#sEGK!6LL3h1c zvaZjDsLC5{jIgo--pj2o)z`!8x}&-#SU{fCn75E&V*N5JvA9x;rz=|R7)L;wh1bA; z6_<1=+$KN*6??`?PvJk}g$*RbWeEsPaq((M>K(~^zSBX+2sd!}KfQY#BDcESuH<@RT)x)xoI z)C;AcF|V+1A1Uk&p=2_vUxH!|&6TxhBS*;Po>SBu^}DO(28$r=wwj~!N!L^oY7xTk+G6o+ z8NGNQ9hYa@^J8JcN~*9(&vH;~ZScV(P49!a^7PApOT3PfokmywIv<&E7M$K|$i5Sx zj;xzLus>W@j57j6#(k%9+8aSh0?<=>Ww(3!9?cnZU)7Fci_@4X_$1UeAr!oZd%GH( zT$R21>%REiXwIVGfUTWR*9(j}i^^*br_bd@FPvcMxpBV<2GkT%E??WtDdFGevhd8% z82AfHa-P0ok>LUTF~0M|i$@9zEuKm?S21hG8mh{>Ih?kICXiky@_uhL#S&@tHYBaM zHc8@rBg6|4QKtlE-O?ZV)q90{U_X@#_g)%u8fIVIqfrjtP|t?5BoE<8NOI4H-1h$I zv(RWYZ)q@9E|BhcsGWuAx1{c!g#gfXb_17$^PXOxdR%C)9a%~Pz}AlrmMOyc6afzB zEHrKCqmN%4?E07YI)Zm&*=)~z0!I@yCwlY%8&-GFST3bMf}*N7&)(^uFb#=sTHtbs zW$_Sg=bW$QNW0hAcrp}3ms*=f=4t;5Q*4w)YF6zey}*U-@yW9)GIxZ&-nzl&ABv3# zmAWNAB|G|j!^#kJ&twgxzH{yA#q_NGL;Q;Xz}jf!s$tmvD`tk*&M6t^k-N2unvE|b zy6+ht>nOeWwSH8gnS0!ri9&>CutgqE6lY>jrO07JrsDs7)&=}WIwIQ_d!G8Rf8P|& zJn;`U7r^fc6bNAu3^GthcJ7G1hf8T zA2S<_@YOxKOPTLw=v~UEi}=Pn=G}dqIS2#`i}r5K8a&?K-hE&>&dWWK^F|nG3@Dj^ zvre$bTZo?=3C?XMGgUc{C>(m8yk=pvJw)oum2I$bPPR!@rfiPqbt75Vhpj0WIWF@4 zG2LuZePFqKmT8RNR=p^si4)X^?hQ5EvtXi5x$!w;rMoP{o<+p71pfNjcfbWT6mu+a zi*VvM@Qx=8z#!{;wz~X%Zg5&-lKsb~Cyk_Fti99MDnjk2pqWNrR=fwS- zFm*QJq|M=bqoGXKt&s_tXETYj%Wt-KAB~(`@+UqOri=W@b%-QhAitFmKp+TD@?uWG zm@}>d$twpAE6#J6q(~aAjn&zeQfal4G8vRh<>sjj=Nb?(#~V-s$g+Csnn<3mwKTf% zN4BHBk>9eiA3q~nVH|Q)pl#*H zT&g$D<(B~WRSdo(TdKm%ZE##w4~W;~fhxPL+}x#*iqXGerm5TalkCLwn{ZowVONhof` zpR)VD@1=*u==xSQ0R43_#)B}o779>*a5J6#$dm8!O|dvOug^kV-Q%LAL7kxYwpj;x;20L)j(Do*mgD72=&Lw z>pmMrnZ?JhcyE8mfoW#IWEIS#ygJp_f9ve5-0Iqm`J|!0Y?Gr4$}3LbFsBdXyGD5` zMP4FEd)ZX zOk?x;4p(31AlwPVAKyo8@KQXkcZfcF$<+9jr2B%xV`2GB-A5T#l=`}~S%1Z9|1(X3 z42QRu{pcMm?;PFV;uu1_Ws0d-8RlEN>T`$wE9eYz85v@kaUbN4{@P61Ll-|pN+}IB z{ul$$wR0Grr#T24c1E|$#F(S{7J}{sboQvj>aXf{hYdcIDRKoV(bEymI*XW#`PhB) z?I3z>f=7XsoYxj-W{2pQ1U=q;R<*?adOI6X-w_V!AG*t+NQ<`VOPubcyM_Z5{Wt3E z7DO#j6Ak@UndOUqL&Y~YVxpqGiM4z1tvp1vgL)9bR;$|X$+cP_X1hAzCywyKu|of8 z!y~_n)~yXhKUMA%vjI9pfoaUsM6F+ueDBqXdasws(>=J|9zg4z3p7cV2Ewonus4DyJ5OPQM3FWX%fz&DU#Q^KyOK$xk7bq zpSZO*;kJ;YjWe+-J-RXc@H0>O5|`uAK@=TgAS5F0ZE zGX(hL9d~}Eih@X5XthHe!51o?@|pdGe%kPDiL{r76=xTGYc{COyM%c*|FOS3F?5is zWnW&Dwzt%L%KOkK?X!UE!YQ!J6~2zUm8$q zNx32-t;L`3(m5wx6)p2HnY(6hg_p-c$#Wa1)2(kO6!98J|2!G2VR6rAifplB1N}%t zaVSb`D$HBF13np=f?=JoZZ)(`SDrE29G6*gGtb1l_8fpIOHTEDG>~G1tID5gUK`;& z=}hT#J$S(MB{SP-{c$0pt@Dj*&_{)!~Hb$&JVKz9oB3HeKOGyAUc`K|M&7?Q{gL-R^pgH&Zg8J=vZ zv>679mJQVa_E=H2w*ZbBzG%(Qo}3xVPcDAO$|_&!Kg@`U7*s%!iL!22dKA8CmmoN< z&@m-nc@YElt*vW4zW5^>z#Nhc`3#Wl4Pq_W5tpX%{mR)9DdxFSj_&^B1jwA;2FYlZ1KqFD@rofYVK8& ziR5MMxl^AM@muF}EGwR=Zk>P2|A|^`22L@Yu1sN3$Lp%-^OodG2(p$~*wTaRvkyVH zP46WuN(v2e0lpD=5to9+kYA$NgOgZy&fKs3b}DFy>y1E)wzyGH1^u-b_ouzjrU~MG z$rgbwkgc{1S%RwJFIueZT$-=*h5v9yfH)p|TJ76W=xg!t=>#D!Ov@IJexXGZ46ZkdN-o(j-l&77C6}2Q2Y5v&2D;c4PyE=kk9dxi#!>{?$ja z0Mm87xhNjn7jBwM9dwBxT;D-LK#0piVFRs+&axhDaS>-&oNZ)N)r%`BUnaWRg)VK>RZ@^l zEEe0@xjq*ZQKPxdm{EE@dS`okQ8Iq+x1sn(fm!0(ff(T4!QoM6s{C~Rk)EDB-&QdM zJ>CrPo`gMV>7e0%L^ETA#4O~N%tx+b*ni2Rai^}OWK&sr&Bp|%wJXP>jy<-hO{SI4iFiFbBAP5W^;4RX;Wxy)cPfiJgtERwYQSiSZ1z^E9YA^}>u z|4v*%hJO`=qyhX*%W$Y} z=A5qJJE8hJ>1wXzxJ}Qw78X8nU4P9}i;u2aboF}%b)SBiiQ@EFjvSX5P2VA08Bov6 zWZox73yYbuFc&i`$9V;-$Qva*`%}@hxj2I#Lp2LmWs6oL{M=T8x6G4vF`0!s7cQkWP!ibj25`rEYdIF4kt)p=#l2_^BK5czl(68XzLm=B)5|?bw-1 zk2PiI`1Fr1WUWgFjI*&P%Nnbgs`cW(y)`N$3wz*FT5?SN78Od&O)-Y~<%-Gg8)Wy= zQ&f+&egp&Q64$<77-${+d~WXO!6Olwiei6mG@Yde1IQr$!PJEO6Duo1j%Zjo@k|(K1yA} z#ku=(lMaE>))> zCpJ%B}EaCK1*bI1f3V-2)g{BC2wL^2Mdkz2Y!MdN(T}Z)ggAa}PhE9_G$@ zKCI7-@@)Zc<+?y~D=hO#&WbcUdj~oOy5an7qU{@4+Xri&^Q{Ef|Bb21;hj7+?q&_m z>%0OzF&bSY+kbs79}LP({V4iQvqJ1c@HCKJOY)*C;xQwe8pFwROH|azUx%f4Xr^F2 z%u4}@3x7YY@Wqzjw(GqKvBWxDU3B$h_qOI1@o@0-;<@(o9f8LjzLgz5X>JR6e?1Hw zw_v5)CJ-{<>0bvQD^?k0VTA)sD-bk84qB|04czZHwhAMna+Y){f171{$fNYM@r_*R z8}HnD5!<1>lh5OIivl`4Be}z*E}jj)>p#CCfI25hbiU|>HpC(-ef?{+s`wN93oc6J z$mJ!+oGUhy4>iFcSd*Sq2S$+eDh(s{3quP-Z`u}MO|*AwS`*3XU+dkgh)T~?xG{cf zMvr8`Y*3IO*IiyXM%>|8^oOU!5ai|T`Xk1pX4|mbr-`|Ngu5*syG3ctPU?m% zoj#M5v{|$M{C2bC7VuIlzV$^jr3vc()P2tCv@(N+OTk8&Zz)&YfpZGHFD}A zonzg|GejgCIaT8s_^Z1fE8ZvcQmP7t!>FWtxB-I+3eweOTKrs?b~kSMt1>af?t`{w zsSb<^41nAuGVi~w&f{)psuNv@eWc(MyGLw!w)RAL(1t}t40+oCp}{j%#ibM6{NHyK zRp@%ET7FKtRBAMAk35=h;A23?t6`cePKi>4lJ7tG;$g z&LZK;om>bngieW9h!5qTMqwpd{Hr`068{N*!9c&j3`kzZ2{jjg2M+~7X`p3~@{2Y%nu#Q_a@Ty^BuvzMx2l9$G)P41d5@LHD}2hVkI-8SoX z<~Cqg!Z&{6viv39ZD(a8FSm^@@;Eb9w7rl2vahc?`-4qd{Br90x;w~oYVg6w#`xj;h!gTzc7>iKp zL?T4f)88C6KB{ZDVx*pXUdsjyMC1?Uoa(a>{PC~Y4WX6^*sZuyc3`YKm;ldbLXpvz zoS&y#?&wfqNk`7ZJRmbkbKwPcCWoouOLfvETmKZST88lFAblwVQ(dc0XQF7%S_E|S z?Qi{p{A4a!K!u_zfCY&DRHb%6#1*FVt3j&Q%!^l1uQR~^kR4V^Y%kG|xfC7h%2@T#yi+M+(|+m|Gf1-4 zm2CCNuV#69adjDDYP7qut92Qkx9z9#FAr?u-Y!{ynUq#PSV``t=X#^(#nvt7*L8ls z+@-ewd#JtON22 z>bIc$t%}oDqMl-7i(v{lB1M^99|h8>Cy7-8fmH8QM7AaYFVnDD!HZC1Y!*66Xr?G4 zb(k-2ZBlr%T+$rGXR5QX!pN%2%^bO|!TwSzITb+-+=tcn2}UtudS0q{`C_(@l-JRR z5@b-kjcSfz`HvWO7-!tKT(i?=9XUaML)l0*fYT{dqhHjqverF}E_)mxoIwzi=3u-0 zl8?_2$C=h)2lze?$yf#`LS`6W#s`*YDsf+%q(w_d>LXbQ=is77$&K0#Dfxvla)F2d zqu2Jr?`E;&1D2F918AXOmef%3EqU%;=rp8-tS`=Jjnx;N8bLs?H z;_YUYRZi!tp*iIy(#xddUI)i-w0&Rjy%eEr*WZL#(f-Ldl5Hw}=jnHlW@EFt)vLS< z^nm?#$clgfKFar`Ss5gqbTEl%K3mBXzgD}{FgRr{|C9a3^S%TrIb;s@~DTwyYnwVHPXbc;>;=tzIdU91s#Hnwu?f2oHb@ z6Feb|x1S+yuEtx(nkcw6aGi~x=^$MSv7j9w*itBLVmM~p4d&bZ)m)jIET!u-1@|E& zT@MJFbXbTMtjb<;GD-SuZ+oL~v{eS=M7LFnG^l?G=-iQ3tiToi{uGS4@;N90O6puv7657IIB z-SnC``fYAAYXl$6``W$7}-^DnfxkN%M-4^ec$N@?%pLnxYi)gY2 zY71uaPOB<<{X&7V3sr+oi0p*Z;h=Fd9U#Sl9wnotG0Z(4vMv|GRLNqePILZsA*>ol z^MwR0Ze*Jqs5c1%nDr?u!=ad|3a1rDw?_z{eG+zAE#}nb!SZ9*AA6!3*>#|X&nS?k zg7AyC9(aRXK%I$HFPfH>Z#XvKe|Vr7Z@9$-___%l_+lW^xl#<4PScKbuF6LD>&rwd zqaB0;foncpn(HaVR}lrzz#Lm6WEyc`HZ^p78=&F<^TUH2EZ>fKr{}!Dm>IqVfT$KI z6dDNG`tv{aJnY^ba#cHK2C?xK$DrylLEJ@=Uv2t8H%jCB_{C7{#W^p}CW$ua8!64D(e{@y64K`1U9yynJI3U2sP!Eu9nCLz|MpUCqa3kEE3x25HbN6^8 zC6qQ{elYP?OLi6ZawPb?cW<7?oYZ^R^$X__JCSbAxrGh4Mxq2_pGWJ^U%XjySy^mEuIXKM>}$5?+m>|tM>HRwmvytN zUKOwzR9!SD1+GTIjG>!aeCz@h7gjUc%F04XHIk4#>%59=UNuc%_`&X4=z$9G6jwPqBGfzMikafaliK9lnIs!|g9(X}spx@-j|MXXqy?q?XXG-2d6cJH!qb z#h5CUYR1~p7`0dsCCAjH_f+eOpQc#N36kz zH{Vl^&lj89h?w{m*247Yg0mw!2Ok;s>QJl__KX9!Im-`UcXnlx^z8~O(?&MkfZGPn z>i!JN%fvp+Sq~N@@xLl;>NmdA`Cq=tvL!V6_MUSPKzkltm7q2>E zV%kTNab=&Ke8o3Sl_B2u z%hRs;HN@oLu!kXH6)>=gGa_v*Ugy6gBQ;k#&yeX^`4b}hG} z8i`rRlX~`@CDi(2nb@RRX3ZHidH47}n+8vpY6$33zS{2jSd7Y@vW zC*D-XuThqO{R6ctetiUcaS3j48h_%`aELT690p{mHAM4uVSKnyM++yg-$UtN5{0uz z3q#?x{S$8x^saDh9enG`zaCC<(Gm+e9qF$@m$&tdJ9k`XUa>-oj({zRo6xmI2@Ag? z5M+F=U`5g&D@|zWK(^LdoHzuJIh~+N|8*F_<}Z)5gOdPC1!7=W)ZRaSSeySX^7g+Y z(Y1e@!8Ph@v#0+eci3k;ZCK`e#91A_OaE$)^r)!7tm0Yath3+HzWsK8t;f*sa9$1r zNOU(3+Nl`pV!<7mP=JMb?v&!^9J;Ok+rVx?W;^>WZ{PO_a9t@(p;npPUMcfJZ1mG9 z|9LSu)EpioMK8;a;3hENsJS7i=utNTfo|pksF1;-mqevWl9Bht9%#npiXzjW{kz@b zEoSGO#s4Uob5M}LZy`Dc4Q%;N zLypIWkM~%_{VL}J;m(Bq-jMxOr|Gh_v7z4k+5G~HaErTTBfGbCQ!j8MK`j$A&?o znQ7i~#Yutjf+a{H$bq;kz6J=1WGH3}bB8*%J}K8<2~`&dF4m!0Bx6Xm^%e#W|7~2i z!z+?7g$2fTA#N@*iUZkR(-G{|no(2WirTuRDxg~=!!=WOkRIdO;S7*fI^V@zsZYqi zx+<~#H(hup17?A>iDB#0#=F4;L7=l}2;nB-z(EAR?y&iwLC2!)$|Kjj}^>3W6uS$a)oDP z(>4r%RGUtDGeRkJ1l`+Sk!GNb;;46|jjrY&(3-?)FR*(fMYk)I63?5eRCVt~;FQW- zLYyS8l&TcUtJJc`TyEF#2AHZPzCT1>Gj%kNn0=LHq())gE7 zup*OnO%b5y9ocD?A18Cu@3QDfY#P@D5>MgJQ(iH)E`#rSJPr!r;5^HHou9U^Ss-{| zOl&m-xs6Gwte1NXa{snt)z1$+31k|KW(We1zI{PAgfOuher|z+evFo8UWEIN(ge+* z>l~kG*)is$Wx2Nxz5qlIA3yA#`}eks-2D6Jw)0N6q>fElGVR()a>3(0%GRy-@YRj< zKtt4%zpDix*N7vfZC=C!I8XZ%j#{rhV+wCNeT)tJ7Db zDw-bY%1obs!$&zn)6x;g?G08Do1;f~^Xxz_{ujc)B4LCgTL?Fc7h`GuZ^f?5hU=uq zHyv|?k2p)a*JX%N=U4ZafEB0{9=lmA3O!>v1#hGsv^f{u>R@tlK7$7DMCEcG6Ia{I zL)=8#Q^rfG?b-AHikqEk779Lo)4ah^z>1v9%Dni=LZ7Ran+yQipKQ@4U9<{(qGNC~A%ZPM{s&Cb(Sf-GlgEZ&?r-m-f2Yjnf`0m@0-T%@(uS|1pq&5^SUTF(s z+u9?w9fKJg3&f!u=LeE;Lcr_2irPba{K^plHq0@21! zx2bvOWLTjipKh&erBqAcMPF2Hg}2Czk&WpCpxsHpt}mOgyPHi%1fzY=;?lZ!O~kaZ>}N0 zs*3u_FUdgxtoT23eW(QdF$71vYSRrflwhsI<(ClZ8*g!$n=+Kp*y&)usfY=YOW114 zL|)` zA7m`Xq&-tXg5c3JD~@tU~JTP4rE~(ha~wm#oEw)3%NurjCg#2t(G*b*h@_ ztiA6NFyH^?PXbW(R`wmWrn?x<-R^JK@pMD zA&n87iF=Q%6Dr-Ti!=EusAqS-3WojqsM=e3o1HbZc28D7_ZxG3GZQ#m6{efnN0IRS z9)K;*-1w0VYB>yQ70V}We>Ds+_I%l)4hxLFvzkU?N;w?a%P8?YBA?6?Z5VbFR zlrq?Ieh5fw%!FMHL38PIA(87fkCtAygA9HLIA&S_84HGv4pw=FESR4+aZK?`i2{6# znvYXphiX5V-c<*g)&p)>_2v2DQY(Sstw(H*zL^J!SQ(Z1VJj=CC%9+2R&Lsro$50U zR#v*PI^!;yAM9FQvf^Y|Kl(mCRZy)dclXKq?|RWFpyw^b z3+>~i%1US1uQm%Jt+{)(6=*9i$HjBRO8KoE<<&f^suW=+@9Q|2lEql!u^XF6e@R;W zzQo@#wVxDsDz9D$OGGDAOC9xjM6*`<>5=VT`PmBWV+qt0Tfw)pZ1)5xnGda6VN|Q} z=i{rbqC3KIk53Eg&aoj&52RdW^K-tV)j`e_i+`;;pvLKi$_Z_RC za=KL0yU3L~iP80yp;&X4_zVqaGCsvGl|tBj5m8{ixeU5sl<0?ovyVK5-S55iQV z`zOzRD}hxe_@Q&-L<{^Pw$||ZIrQkyzwog56|=$v+sI?ZQhQxlDauc7*L`HY&+E$o zR(WM90*(V~D5>}#9$Ok4XPO#Q?0Dq@4-H8w;RUDTmy;xnM0iBN{z|#Byo$N696b+gBib~h%m5F`1mKOgWt9VPb4LGbyo!cSp z!qmteQ>-#15oEr!jjk+aw9?Q!cNCDT(<+ZI{aF>0!U(_bc=uWE8PK@Ul54*9A0T4% z)s&L5EE)Vz&N=w6X~y3zrg*-Vefm5KoCj8V9R*x(wnYtvE@e7=T3URD_7C7W0CC(! z&^UInni1~`0=Pf|l9sE5_G*$k%zMau%4Dg3ws4tTRf~afLp&nxJCBp6XLOpxWEni@ zK$HW6cD9)G+Z$OP8q3LL0RqN?RySswzntuTF)1{6H82o1)={ms@-e72`}zE;H&2ks z^S4tS8EZ+5zj3s4YC~TPW3&=wI#&1?qHh-5cBV$4Lcz%@s z9agsQ3#5vwJe5> zCeJbQ>2Z;LXgPqR1<}Rj=pYaBopnv01m}?b=Uqq9kHt2zzCud5z_AM;#I(Wqs-k)u z`@}lYOXKDbg@Gi!VX3fgvfrYBMMGtfNIytUJ|gDta4nBJz*wBD33-a;czXJ%a*yN&_|ZCD@rE21 zDE_ABDOuHC?*$7$6#O4OI@B$>IA}~G4*o%(>N4v_HATaI7sFbpD0DY>n>n%*0Ly_K zk4c*QuDCtHF|paH)@)a1h;BQSPSWek&9CD~9g^8D~( z<*~(+R6zv^+UIOLCEFIF8tayLJaCN+Qj*&V+8$@=wUGWUOA|GXB1l7Q=exo1ceg2( zZr?NZ*pHoFR%hSCU0T-wfl4L*4Fuyjh=XK-(o*I(b8gi07seNyf;k77d!u_H~c(Td__tg@8T_N#12>6Rd)D&pq`_L%sQg@-6LeHZPpG4x&bT&04krZLuOj2l;Aht)HC-2h4b0H?~@k z+NmGN#kY|(wxBlo_=Hql$ulH0%r;qDeT~OG!q;<$TQ=tJNLN@y=$SBbH3azZq4>Sc zwM|}>-owaDBq_I2zB?gPG{};}v7CDVAY{J^2BDSPXu&pc0bfCJJg}?ED}NShT4j&_ z{@-WnC+V}dmh-dSxuc_YoedX+6Q-Zcvlu-3?FqT}uUa~CMzIuKo(^367zbz%Qgk~Y zy~VrkeN--*;TBzg-V6>akKZd8jp#QJ^e!s4?l@30_HrD7=UyZl^m_Q!iNcZ&OY4bIJ9w`TwS>6U-he=bv>#rD7+gQ0JN)f1Nx za&ax|^1OlGfLZT-a+0MD_@fjA80(4K6@-@-Lr!RlO zlQ;50SiEkkmZTZ=SoejlJYn*4>sMSh&;@#<+ABa`|D6|}oj?d-c4BS1yJfps-!6oU zegDDTY3Yp!tvIc3V}fyaJB{gW%Z>mUVyqM9Q#T@npB&8b3S1cKCxWuCVpcPooH zvV~)^Km7S-vsarB!#gWq9(ZxYsuNZ8cq_B@?2@PtqKGcI>r8H{nw zy@%j%V=5Rt9i{_r8F;VUsxSZH#ZZ+eUX^Znoovt+1T@cp4%w4~s!jYAXcf`si{{dz zUw7XTvt6)8r+@@5sB!1vJ=qwH&R$@(-T=EtJ|M`Fw1X3dHq>C23Yxwd?q;XNO8I~6 z<*Rjq9K=c<$!T1D-VdFwTD_;YB~Q(Zg{9yu(mg-jJi&s z>^eHXaL?KR2V$|@@vVpzO;zBf7kLr9+7DD}poxUM?M+Dba0@lqQzOgo0SLE~~ zFal>J^A=rg`9r~!6+UJQXU4se03@61{z>HZzL-GjKuOvWi*@sMwj=)8aBM4#c}Y&w zr@kbrSP2R2rVDHl=O&U81QZHzTSn!`anO3;9q5@vB$PH=6+ z!xkyqAM#{mqqaCp5hrX`EOYF;fXuV49@~X%E!bl4D=K@_K=o;DrNs~7fBfK%j=KSl ztaeW>Z#zXhHd@2Y4Lp`a?3?Va-{1fra{ ziVH+&v(&S|w?ws*7P3opg$O15ekXep43jzo`F*37YXqP7jGdRr^4?6kZF@VWuA?)N zk4(5AQ;nbIvV`w0F&;0dO29vWJsj)91vTd2*kT1jz-{m%1jplCv(l^zoLSolKuD5R zvcU-+SMUov7m(9jbKCz65dsyTw*L*Dx1Xkwwl)ei*ENI$);3nepNRXz))rSnwjNI} zQUu6;+a24fDBgcy_U#<*>v$L5T~hgDE1dWa0nH~KjRQWleaZmoH>(>gZPh}X+ac*> z?+ygH+T}=G#1bjo$@CN8tw=3jsyG;zhACkSk2j$u zr-ci?Z8y1qf#hGKxhD8-=dj+z%s7F3&7`pxcXqkd{c@QH)8~=X+j}sODl(gb+|ZkvkvDGgS3gZ<-cDKa-bGsaUUr3KRp(wXVdy%pd<$O1KhNB~ zyzv59(=|B^m16BGm>--GpoQvcrR~}oW6!`q@i3@~M!ap2O|{Z4t1!M?vfu)}z96*h zeEucDGWnXTN=m=?V3t(jc{wO#Gtf_~wpKg{=f=_m)K{_M&d~_=+E$q+Cq|WCnY< z%rVTmB?Ra!RlE?E?zhWk*MFDTEV97L6{BT2cJ&sY?)b|Vkz}44*a~x;(KxOoj-9Sx zI%Bd{rgZnzShHbBM0S;1UM^9GZE>k#>?6LZwRc{4UU*|`ZKM3|gb-%#Mit%Mq=Exa zWY(7l3=?3(`k5SV2D%;17VVjtH)K5q{H{;JJRW#jiP9)AVR>*3{VG0xQPm%{x4+_W z1^>kocsQT8O4;52bY4wA9&%Pg&on__i8GVa!PTx;+2k);cpiCP^!N78*0h4i{Pxz( zy5<_>%)}+ibV>1$~B@FnJGWhudto2!WnpHsESWd`W<#lZ9BeVzgIYjU0&c!x{g zcgMvUnn1ej_9d*==I!D3X|gzH6vJUIU4*-wPn#iLkB=pJw3PpkqH~XD`upSf?q-Hz z7=~eUr@7zDT<1RbyGCfPp-l+Q{W63kO68U)L`jr1_bE!K+$u^%R4Qr3H$T7gIRBr= z<9$A#^Ej8+>-9vpx&U!i)R5$mcnMnSg2=9Mh9r#|B}8+yGY|B!Fp?bqsSqxxU;|J= zsm;T1l2RORZ3vL%G$?;e9hDf#MPy3aOD2D^0=-x&!Pn-nmJe_lB&PBz)tam(_c_kJ zntw#bfB5Hf`K5DHR+0WGNFYbX+x(}ZWYUi1;M_4F)q9Vj>3H6rnG$BCOp?Wo0WUrt zdTT7${qjit5wD^9`JGZzP<<3`nB(m1sLpiALxzBmFi)=l;8h`0%UpB0~q}1Tp_n_HN*M#SC{U5hsbMi-@Jz54pQh(WZ1ZxrStvc({#W#>q5 zM72;L;1(7IfT-T^fz&cxPkLTa)bi>1)i_WuLm47N4N~4u&Kg=piuk2SN7(V^^$2^T z(=M)+md`osB4@%f?_rJ5fAZrV=+f1*1b|@@{(sAIxjc07i0mz|Wg7bQyh3mE(gs*P z^5=)j0vH?k$HF27wcadvpz10<#ULEIOg>#jV$jT#N^fiTc*1}V$9}!@y8V5+s0qoN zM3uK5#%e?a+~urHP&IAy9~ZN_I`4ww%T?fca)6iFK!NibX3Z5xBIKaiXKs5LJITO# z$R3WZ0NJsRrNEys@hFji^vO_9?Dgf7T{}$-!0A=U>{JhvceP-aVaHBF9ylt0Lx*8| zoW91XDPU{IQ;Y;8R_|JmntkMoB3K;&0on6<^k)eqJsl?8;G*{dcdr7Do7;HN(~T&p z?Hbf9c)*!tD`8BAljGT;I0wF4X?)bU8fTWX}+ewd?T;k~rcw*9mRU(;?!w+os&klch;KW!(D1=G!5`F|JPS z(>9l)!)zqCD5Rc2T`o-zr||1@lU)`eQx{$|s|UQ8DXLp#xKqo6+%I;WFfD(%P|91` zD&I`y;hE$N>U6bcE9dho;KSZQqGm4#^&?L%PQz0Az7)AZJq-6=Q9wNgl7BJgKycSs z0Xo+(lI=%rjDAkq1lzD|@u@GQZ2fq6gX$TiySIE=2vJ8p3~BcE>;OlI@R%OV+ZJfk zL%Rg@$w_MZXi`$)N^ze5I`Q}7O9@Ec6l9H4$&`ugd)33emY?JMOO6I`xc4coK1za!3o3`8>?esH8U2So`|2 z)A>5)B359Qj%!P`S})_R-*&A%>u)5ch$xqillajg^fXaJ53H-!v26nO*6(s}ZlXp|VBNOPAk)g;O^$*5a<1QqqC}%29z;|m! zA8T2LElN-KB3T3m%A*x^doPHgk+e|CaTf2@xQt*2Hl*jWga@2{> z{CHdePH1I>m zvF!Efu6y<|$5nZYhb^7kmw_$=2uHPl!v=&ZH5&Y^*WJCjh&xty?MuWe@8F;H$bw!j zyWC?v2V9i#w!SU#1f5OL+02JHIyp_e*21yRfAzknQtT%77}#Y|yPGbUy^?j=S@dyX zPsS=<|22lL*3_lQK0*vw<>zByM1i421HF91VaUe4837_HSjcL}+cYa1%6eGLd(sg; zp){Nel@u}B?j?iWg(f+y7oe^FiLXX!nE(I?&`%FRa;da@K7=*9z6AOe2;HoG-mnR9 z8pd)NSq`9|9O;g7nCV!WT%|HzG^mC>B{!e=62Aqlv@!=ndBa0Wx6t|6WKr9vJAIl{ z44nK{8NjIEutrYCQU2BS@3{bf<_B}7vw+c@56YA+dE77ohuN|pd=*^`5o|BvYcJ5& zH;6+Z2&S*~al2smipqvOw&=jzAd!=bqfz4t5B6*l4y zG(K+b7RudNzF2#!B;e_gJ9xH;$Z_}0?pRbEB&7CD>GG-?TxGes8Yi9LwCX>eyRHeG zC3mdm#)0_-bJV}^wzUIKH<`@8RDcwW2xgfx=6j%c)d0!2*@$#JqvTMI06JhX-xikn zn&-Hq|2A$Tk1kQRaeS}yFHAnrNH!woz3$sLolZ`P_mYpS76LmU48s-%fsWu0Us^Ty502w*kJ=$fdV>1X|apgC7T2N_wbG!{7{;8!=HdKdtgO#*qy|1s; zN~!=eKhL<0o+;Z`*>}Qk;C%}C-aIfiNkbzGOl)^fL-c;ybebCE?<<;AfU3;J{;r;m z8sL7GnN}9^nu1yj#^#%sPNl2xFR!7rDOu8-vAZdFIE6)@8_QEXC4i3Rm#$JdjdoZ5 z8mSL}m_iO?G6NLO!Ee^V8}~I}x45#(G1=4fP^O_XAM@{NNTOIB!++=WH7sEcsLcylM$)UKx5w{IDIj+M(|Or6t} zz+(h?4f$fpJY3qck~2t!O=GX$h>oaiIn{wY(Ey#pvFR+Jt$MJ@XidX4Pw!6&t;Kht zRVj9rS=ReyrTOJpj8~qR@%QcRtoht9vaiH!e7l$ow(*-pVf=+WdN*=7-ev_F_MqOe!8Tc9pvK>XHQ^F{D;wE;RN zTZ%2-FRDy&3;pu+{+0!@p0taBBIumsH(Qjp5OyHLjO1p@+C0en7iA zexdD(6W=>-CgD7k)@NUa${1F_eA>h!+)vL3vZOFO9aFEOMbvhrv8xjbVUzuvyfNf> zUpTKp^w3@*c);2T%VI2P!&nmr&H}vD^9z?^n+mc8s^=vt+YV6Ul+jGeja|1NnU=Q0 zK?Q`4?7CoS<%+n-y1cK0eKPEuGYJ|`v+Zm1>ti8NfH&7W({gSkxvpnazQJ6^ zM6CYX*1Fk+Bn;130Z&+HiiFM~#wCqc8-vK(O2B7Rh!=9beu{mP4y)!rN}#{V-~3#V zfR3(fJnem!fW&yZd&ZJCmJAIm*~YBg#Xt9c87Fyf#@uK_MrG*`Kf2`M(xDP>u>l>( ze2Dj}xannrjPi`NldEaHSDY4?4LjGGSvl792)umCxDx4);bFHtck)C zN?iRe@V5ifp7YGGhcs}O1ol!BzTe|BfB|WkciGwZK0oWftg~1l#UMwHCLH`MQAmC`qzT5Uw z{6bC+eDIaJzOC>HF%~8}iY%_||2D!20C2gmg1vu>ut6A?`uX%Y>SmZblNO)|{*P0N z4VJTf3@m!8O*b6G-f1Q{E_8QHkK1^Ab0!L`lM1QVHwn9+v4)+PY)F)_a2${Pr@vs& zLijt~^6g*oI$Zb`15&nqAnq{+P71HEIFvx1sh_KYpo$f0h$A{UN|f`$6^wQpp+-=o zwiYifLD7m8Lq@mFW<{jp92*RkiQlCh0Sc*CYbAOqz*#f_!mEI&wu~{~iDG?>guo9j zu|?{iYvpE0!9PPDhGrK|NSNwvZIOW`z^;M08H8a%9aU(Iptd9C^T0@s8`_)3*GTd{(jR4NsmscQiw!J6P;HPV<8HyqoEK0wJ-OL(zgV9A zIX;YWz%GZf#~IZGY{nGwKV;|PyEMzjVQ%bkUS_Xqt=&00MYzd>>M@xW|B`YTDk-Rvp;+ z&g9D>TBuQWVnUO^`Oi*5yz7D!1AYp!l#i`ytAm!l9%K|)TZ3av2*Ff&=;mmy)cqK# z!@HuW(;}n_gjv^(Ohf(Sb%}7a$T~DVGAZjF&V*2V&T2Cn4}5qKHb3oAxw@H`v4u#Z z6Th-_I>5xk$98>~!H~IZZM2Wy@ihZ66g4h23+Z`3-aVtD@$c~Pb$q7LWP)oQ`5LnG zX@+vR-&b2SOfsgPhj>XwY2Nd1O`!(n&|9Gku65L!?+ z#h397l_ERJoRtT9YH%*g`^zzVjB@;OiL>5b=T0GHH3GVxb8m4Ykh=OA`|3p#jc*|I zw=rBV!^T2^?uaFOU%9>tC2xKG=l~IFA6jAxQyMuM+21a3n2NXU4Mj@pzQGNaWc`OO zdR;&9ySNa2|HS4k{CjvoeFS@wA1Lalh}p4c{Ade0|3Y|F%5tG)`s?KfIr-=Q)y|h%Q5Zc_Qci9Rwh&|LVdB&*sZ3n#iI&jIkbcDrpF8$YZyV(cEnqs~KKHmWJ zpY2Lfc#ielJMF(y%GQz8tcPsDia`sqda6SS`(2DDEa{eLFPElZ$Mhnd#Kf&aVVR42 z8H345(H(yw_fH&Vz6UD26qqY|{yFQf1R}XgVP2<0zU_>Kj!4$fem3V{k;Q{8#;CL0 z-)`{$KJP)DOodVS^R*TbCQ~nD=Q}PJyqGXG*v%b`<)6~wLkSfKicTF>y+?bF4U+Je znqmzO0!rp{P4;LXG9}9>X5M<%v9*`DCu+C1q2*W5SGKo(e|I%ZP8|hye(IGwO9{M1 z(;?H_=n+CnJu#wmbCm2H^!=*uh3?IFO$0wR>hYpP6-iMPCi72!ro)@@_h4cU#ombY zIVj?p7KSd*CT}igy!U$h<8D3Asj%!91CTsVz^>PSC10Vol#QcaLSbZ!i;tn_xO*7> z>eX;=5`cm+r-74Zhj22qVm6UIY~slj~Z>XmGYkeN#!;4t!Q`Vss6?*6hy zDUjS>!1s2L>pIR_Hwxh7v|E`m$BbMy_lu=jyUKc&ol=y`zu zbQBigOo-=S=506E7!Xbs`JrO+G>w2Ql6&V|%Sn^Y?NfYhDGBDJ8e(%!H0%PN2;+;C zINp=dmX=SjSv41tCc)VmP)_2tf((*|gq*!)uIOB0cal^oys`Ft-)&+g4^S)?Um&|v zYy589EXym`hgoq^mS5l>r1i+Zz2c)jFpHjoG79uk=QY?DZ17>Dq&aI~6KY9(xas7A zh>iC?Gez3XZbe6~=IOwq;>Z66*iV$kj8-Gjzz4wA@v=J^B!cT}8^FhO<^<6DQK@#Z zMs$4FtGr?R8K!HT#hZu_o51t0_AapihcEr%y0<>Kx9n{sVaKH(oeGo_3Y5){d6GCC zTq+a&@KRk^pGeA9Fa+4Q`Rd8=-M1*48{nT_4em`Ain+4e8G8#kssmH*H}KLvqE1#W zD8+KvIUq(3kbClyF_sOa^}3F3fdH*Jil#q~>cfP$0bXC_CeMCOEH)XU3#}a^&oq3s zLRV~J0%tM-WOq~TJ5pHUSu`3_`?`waANmthjJ2rIvpyPa;Wo?%;Fx^|R>?sQ!CShhGfNA}B6=K=7Xjm<`dC9Kq^*g>u?`)sOWalp%RNp<-r>WOu6 zC&!f0yai~)Ib+DteFN{FtD(VYcb387?_#=*Y#Mz?zSTyovj}%ch4{WAso!!r)?B9F z(pI*ZJT*Y@o+>k8smX?4yj4a$BUMhf!hpw|KvHY2UW7gS1mRIj%k~w3eN;PYn5jwq zg}7N&)%1sv85n+(OQjB(#NGq&sT%M3R@nF!J1c08#_{xc)~t;?Mp7zkrH~q2OCBj> zcXFG`mbEUJ?&#DvdZZndQ8=4V-cKQ=2S?Q20pbKR$+^17D9t??Zmf56UURp6c$HddL#7#q z)KQ2~G0VIrx`fF!Qvm>*pM59G7d71C_jl941t)9)1$;8=(y{J#XblwfFpuLbKqk-q z5b#hw1e~+~yuXV}D36xIjg@Y)caB#JEfNjc+9{94M|J~UI)M0qm zllpkFVHI!VKZP*l#X#3=w_zTb-MM>B1PY*XTW%YBbkKrprz%!|Wvj~T>LCq>$?u*< zPMa|Jmf-We?+dPB)5*mkqSdBwHki%#OXczd%tq6J3s&;6=tI|)*0Lwn`~q1vG|MaM zc+2h`RMu5VwSTkT&uwq=iMhA|mB>iEt2au9#;<++MVAcvwKUNGWg+I8V15g6#qS%J z+7$;Nc<4s~JK7SA)YB7%9W#4yt;l29CVmy+C+5>dnl^E{Cku%HDwBOgVRPc{gJ^$u z8%L|tVxo<+_kd;(Y$6Q;WTGRL~n-=CmoVvM%Yz z22gpAs;%Yga%wXHzpO=GzvmU=Atd4?uiB*uyK~~+x$#)(&lQ0?;pqr^9Q)_5;@N^d z>1{*ICIAWTI|gAk1pfnGyP5QqKn;^)ls*l|&BqW{wET6xoJ+IpeLzGSdjpuqO>TSh*^`|Hk^B4gg%I*1*+=JjMmGpGXF%n%}-+ zoyaFh{`?zMjFsFVnCS@C;Gz@svd@TC*5Ey?l@G$gO04c?uiq@SXmXQ+>F$HSlgocZd=z?89zABXb!txPOdw#noB#QYe^3y`a z8*_{y&K<)LV*j>~ARU_1T0KMCN`v=*lJctSv{3uko=j~dJpZ;v@%Vf$F!6>1lxKO_ zrR1G}d8kK-!ke7;XM3Gqn=Cy|lbE)n5ko3E{%z@R+rOb(S1Iwj=v#fc9$o7~S!zM% zxx-f?bZ}W3+OwPLAZ;5Qe^nXmPTVUQWohHe=S zKmtq_$>@Sf)*x+AaVR#*NDlV*#J+vT`{M^@m9R9QtTijTB{|UYsAZD~{nTd_*5BG* zc{m-ex#<=d$!0F|gr4-_{rDyj{4znP#~}C3MqxV6#9smxar?T?i&=!MXSl;dQwKoG zHM;Ztx)aUqhb?prC7`{R!)q^{LP_+6Z*@TGuC{C>2&Hr;xaSk#emiJ})quwdiE72R zGumP)X|6lERhIkuz2*b)d{vKBQOpLlL4jCItN3@pkRdgvS_5!#6jS zm%V=1(e{vuImtUBSvt_=CE%A6-)?F*r}P^{k-l^~v2Xi^Hb=Xt?Pyfgo_W z9%=TDGAN?yq%iYYrh;mnxHyesPiAKG(|0wwI@WK{z$t zF+5$?0rW;-f?<)wwAQgZlb&HRMaw<2KYgzte&cg~x;)+`znGNk`I2jqGi+ah(Xi$% zeAKjQW|xT*RxPyOFMc-&iFIWDN$T>M>3e_zjZRT5K>n7FoFW`O_-+X`pSkL}x}IJp z`Qdh%Ur65&7(lG^Y= z*~(A+#LLrc!E=@+%Z0Bk550aMUgvIO@ILH(hI1|8%n0us$q1~u*V%C87m$?=ltCw2hiJc3l9n&lUO=9nf`RP~=OaV@yr2jpsh%-7J6=BV~wQWa{T z6lsYe7e`q-vQt+oSR`GT_j2i1)996lJjQxoAbHb1yMMG8OB!1Rv1`8WUcL>uBvol! zcO7Rlj*uQ^%)~nfiRITc+>rEq=EhH4v4JZklzti%N5&n^${98`?=1M8D>%>6j*$Exrmt-04RRuM zRpSa}nY)@4o$6K_PXFV2OyI-CE9D7?gPf5Viumh)SvW~FW@C&s7Kt)`+!}FH9pHtu zK)DO;&I{K1xC1vtd^FIOLeKPPn!Fq>*uop-Vs%4MpB;$gMt1gOVXk1L`|@Ej#8gyR zKzMVSpH07JZElD**a>qp;a^DIIdRp>&H|l|u|OFLo#`}>=0c5Kf$1S6QqsG1pxf42 zVO|`dSmi~8XwieJ%N>v^FI+P@!WU^F={NMP$M;;Bg#~gJ zZ-e629{}-a7>xVMUl;@l1bvmo_`_&zEYaBVL0u^`^=KJhvmr>nVIi9mt}yK5v~a27 zjRskrA)2!%-hgAi>h^Lyog12;8N|OzsW7d!r^I0hE%yq{a5Q;9Y8Rei6bL|?Q$=0Td3GNNIHQE~Qu>JOLXCh1pbrSZapU{yz~bRr;T~fmefQShAd-~v7bAjA z{Wj!ZcXv516H<_GsWbhud|S8?`RVGzz~-phRs^8(+;lHqBC3#%?`JiZ#mG%NWRUbydPZAIY)o zB(>V10uPYqd*_QQG0u;ZA_M=f@(ODK)eN);gmLvkWz!Fdd|!Vi|H43d%2$kn{_vpc zbuC_JXmiYYP^jPam4~#;76Q8UD=;#HS!F3nZ_nNdrjCr*5G2lyU(1o>L8Df0WM^cc z+Ii(9P_ssqW={-==Ro5k_wf7hZx#mC;aXD%%XfW`xzH6KcU{ZZ(gf=Y=>J*lLg6*m zx(OalwxKp?J-uf#f)jh0Dch~3c6>C7Im71n>ksP~oXwI}ncAe-c3 zV-#Hd^S?YyZqF~{txEpySI<)Mi3qZrdvUUF&)oU%N;yC!Odx2g1uzeENoPa@Maig26F-c>82S zZ)=nf6?M$I`Y}(7?iGZ}XSoyZ@lwBIiScJn`KPbyJ1p%)2uV;VqmPd-1Y0Hak+#G5 z7E-VSV#<76Iu5TXya@?1WVm_3$T&gEkn=;)YctfO+M_0k3u<$y$bGoLYAdne_*Y6+ z9ql&28XibCw}tykstVn6Bl`$VFKEuEWZ$*PYT*kc_{loX{hr!lzCYvF?4uD&a^Kv_ z7!lZdhX+uLw6rSFN1sd~1RV6Xn#R)wn%JSWMmB#(YqUgs)@ynlj>&)ZJ$YC$&Kl}`Z) zjH+lJ8HkT}b@wvicz5pzw?ciij8cs!%~^-dO$h2&8FvLaOJCLH(4-YZDBe?T;NrQs z_d}UyFfiqHj78j@JsUqAA0>Fbt@5ImyS8xY%_e`8W`P$Aak+lt zSS790zT7Ioa8B^N^_6>77(!W!hhQIIZRN{=@4}yVGwr9=V(P z`sfC2rSk9kcVRkk>Kie#WTq#*>E2FQn zwo7?F*C+=twpwoA|M;P?i9LMCi-5tM7aYD0&oh9e_~q$Y+&3WSf*rB6^Bqi+J2MKC z*JS>{!e5)3d7<5AdHZ7=_=fIS0@{y<-87SrXh@8%wi7e5WU?H+e9RX@@P**$mdg!hRZPLkK>Rro9yEY7FW?!rL)cNq%J1tde-oLGLm3@rdu8hjCc08LBFt30vncd3x7d`x*HdFo7PUXn)^FOW~EzB`Azg{+v$$YuD9A3@nSa$eBwpk3v0A7g|{?=P8Y1`HC{H#_c@1A zubT6rN{3!|8pwg7OZ`sY1+Hc-msCS(OIW7k03)i5Y79{EDfOU6x7hc?Xsgo5fjgnU zy?tNV@l^#+u#y_IQfQ@WG%?7M1TiWYr~p3=W_W$^ZEoU&1`e@}0wrG(;s#O=U3#Ge zjhq`dU7OKU1Sm-^l5kaqXW-t}JQba{v+vp=g>Pidz##sb<;O~X6& z2t6VO$se)VY2>&Y45^JXQUjzC8!z>anNy+fj(xdE!1(*U0P=O12ZV+QoHpbIEg4M5 zx)!zJ=okmjh{R9Pa|w4;yvB4vTEM!*T~A5>kG@2@A>1%sM}|Mj7M0?cs%-b}N%5%# z7gG~k!!J}`wH;e^wf$2NsyJ=GK~SLTMeGZ2M>$GRnaM?L^LSzq#ceQwZV4Hkd9 zx`?GxR5uc+Z)=8<18bok&3<^Kg4FJb6b6raPgE>iOFpc}3o5(J!8@DTosjn&iEdn( zjy@3=(f@|Wn(a|`HY3Y*Qh(6Ic;x_Ah?8I00^3J zl%-tuTA6a9JQVnoj~2kDL@QWgCxYz3UXwgsWG~$DJP)i$gxaC|>+DezCF_^xk_wLC zV505lsO*slJFH=_b1WD9wu+x85n zwKUcxwtBC_8#4V9z$Yvfe*%C^`r)#eWL2NVle!3zY8Lx;o9IfVYaFFk{YAf*Iz$6t z-F-?Qdn{!~D9zKPpKgf*D?^n5mT4apW30|G+TACBzpgdPb@WbYt&?uix8J)bndx*j z1-@^=N~F}v@sQ#03JG}!;j>&(b072XClzgUw>A(7w?a(~!_xPp9;z<54TX%01q@}J zl`7`({qKQernn4cT6qu5uGA%#LSXjn%<4e>R>|QfpWX<|9M(~yx33z@;9(9Hn4Ra@ zsbuWBb}J37CYBnch|vUvmCm8 zo{k4qVtW!L)yWN%#f{NJypasGXWkJ6tmKe#QLyC050AD>zF>o1)HA)0KEgXyknqQY zC^!>qL%Gq^505q*6mOMYa>e(r^45bodX)2LLlM8+KV!QqA|4jKu7Whr5#!nM{ zh4tbz3S{k$1JolGXthJ~DK2O1z}JHzS7~CM_9Mz-wtvqldPyr0T*R`SR-1sAfj#wG ziTNfuTK*l%Hf}68W09~k^R%|du!lU~T$=&XInUMYf1=UK6jWN)8o54ptC&p0sZZgi z8BEIOU=xsC@OUzQIG-19hLDNc%9f}lo)Kor3rYSIk6-HYjX&z`Yd?;Tej%OG7Ls90 zg1wJ(s(Kee@6LHB_bC#V?HRFL_xuIeos}X8ytTu_gbAm(^K1zDdn(!q^b^ zH7>P(l1FS8wCDSxW8?J(2NTVa-ZxanjZ|C0B$^e+&&)o#p(bJ8O-#!x?QE{DoU-;v za~;t|fne*k-~L-c;_o z@;u?qzWtCgVHbpK(}6>->^JgxXRzl9XH6KXz(!t}=vX`!jRCf#Mr9U>KL6beZWNN^ z%VbBC>ZHf$KSjTcy@j!4W)1xk?ewnt2M^71%eu+p(UNCgKq=pqCBGa)z#_zb&4fFJ zi|tjSq^K{_x#^)VZRXZUd+Q1kg&22CE=-A}Z1F3IqZ&8#yZ*N%`7)aCASnQ5_X#SH z#br3?>`&UYf;tur<}~o?$KP^H;V}lh>;43$JqTs`J|5r<0Mo=uPdT9e*|CaOkG7d>Gm*Uw82nd1m7omLqUo4Q+Aq-s&DQ6{V$I5AS$ zpN}Zk80vlgb_)@%(`B;_AUDt zA7Q!0niqI78v-$o_W>l9=j*t?fQ(kqY?k8U+@F3!r|c+Sw)WFeryX;!Ve@M@uf{S7 zuGfa5TjI;zmTl&{S0Wo9Y1y9HY?xRe7|e0i=xtPP32HDh5Olxh;fl?BdNP--iX2Qn zxCnfK8@d2aUF%ATXjBGW;KiRdiu(dY9?E7vo5ES;#-8re?mN$W{p7K}UqFIj^e7G# zgaqe*Dgn+Qm34nq3;~n$$AVO6+Fr5iOfod*y~(9xv9jMV&NuKNN$%b#OoH;>5FtES z!V`fM7m5_QC2Gs*oOyRPL|1VOu(HwZbqq9GR9xT`!Y6W3D`0L5`4}a8A8oK)ARpz= zQz2@q`wH6jLAM`xQ<*()CE%a=O862l0Y)Hxay1`h{$11Z2~ z3n%W$HEcPSgkMuNUC0NEUVFxTyDL`gm}v-0@(_eB-MQ%CAxe6o_aaVM z($N7Z*%qCUX>7GORpuj-kU&$Qm%YG{XO*FCLt5f;58x^0vMbb+e#NFN6H8zVHz&%1 zr!<7|@GIHakSWjS#LHdMD?i+QXsmSfa_v|Ya{Xz+f1 zc*M+_BP^o%x%WRMxh2n2flao`7vfjlS-j)9-!<`Pg>r*2fo+YB4O)S>h)0nfvZVK? zH}qK_LCZl}A|npmf_Vk;ZL*o_4*Kw`Pl#fyBpMC*65mz) zN}>(|a_Leg!&~vP{z=koY>oA-m;iv(i6k&;w2XexmLXwl!oek;fm$ zLm@HHBH{q;8n%Vm9QDgudFxOJ^?|ohRH^7Z*1g@*X z;YfEz?gxNTXlQY{7pj91n#mj{_EKMTG&6ohXx_jvFlgNJA_9rpTA3cYqE_9Ug+^nl zS4%B1Sgi6N&>vU@&q3ej0fu6CA`J^|&{N$ukiMpk+s~ovt^Wj3bEyXB|HJGRIwN*j ztmhf86~Hx~e+7tDLWKFB`A%G4WhB2SL|6UKe5fcSAmF1{%=|hTFfWdFt)4o~e{(-F zKpN*wViR9c)<|Z>|3-s>e#djw1Qoj~21O~3k*to>tyYhp0ids71*07$%=8%QHh4-W z=RbS5ZwgOzFptx#lQaETPaL8EkE~<{Hb8t&>|rPzh2kZ8*FOrNFdyBe@YYM`Uyu}2 z%v1)9+aCA^621Hcka&tOUJ8a>pN`tw zR>>*|?l`d=k2IhXCdtdly@Btfj(y8jg}?pqjN8*-ry?WL)c|9>4*2uTn!+5>UiB&X z?-jVxd9fkz=GAR(v1504R*eR3RmYDPxxl{YhU#&sXv(~&ePvws;LY4;$kh4NaaKqD zHJxWI9SVj;l0eQ#oEajGmi0WI--vc`o+pWRiLXBTr16cZ(LrM?|FzP z)|04r`SW#0Iqud0(c6?)a_j5BIE7%`C0rB6;NTJ@}C!UV-Z%%@sawz zZeX8+)+2qa-@m|%KY90NbTvdzH7|4a0FwkKb{CxO?0r+)&-KnJ@=R)CWJBG?d@L8K zdjMNmoj?xv;3Rb~aEJ8^p3DT!*Wia6wriv_L=tyuP~WGHXALx$OjS^}b!#)S2H$*> zRi9DZ8v5z*AvdeLn6t+cU4k6h+de`>tH@N&mQI+d5ng9FPE1@zw)AAO4xmx0Q$_^a zgyE?v9SPN!#0>%b&F93`xnX;4g2?LXjI&S2jc;8SzlFkXdB0j9 z$NQP9Dd!HZE$s_T=qu7Khj+(k`GcHk_op6K86DsO5|C*~u3k3N8hm0}9yl}{SHAn_ zk3eI!id;`ehr4R8yptZC%2j2s3e?x+=eP@kShWnv-SsR0FEZdwPZ|9LXp9 zI{Mhx0h~Swj^p@@^12M09ib^gAxsSSsP>kFhlejdMNy}0Il_JB0-+Whj;6R&M+Sa& zqPm$yxC%)oqQb_v=SMc1Pi68(cY)GDa)3sAB+@(ILvxg4hMQ}fn zt?=tnFyenrdv#og`U4l2~>#w;pO;ZY`dUt&MBPTJlE;O z$G!NG>chXiz4UIiF=7wCw*MDzJ@fP6b)WBypVOhO>Z;a16EWclCT0nKIgu76_og2(_ zFRpaK#J%z_x#9voJOoI(GcZyA4mUDRwDEX$+$aBgrh?N)(ur;i4dF1iZC7NJc;3)o z%ujl?wpFCvrP}EwdA|Od_74radDb&Nrw*r+b_V0mI@*xPlL;Yq+dbEBm{4&}eOwF+-Z6Hh%UU%Ju!}rKDx|5u_J$8@7u_lZ`k5j;OaQU+yD3?2<3!X+U4I^j5 z5q5pI`dYc=kH_uyxP9Bl(4`-@;r3#7GPcP3pWedVFz;!v4*K!;{OnnY#GlTim)UvCfWr>+rhm z8tBm;pTIkw6y&c0Pr8l2_zisQ+RXXEwm=|hVWMBhdKog2Z%m1|R4>J||04QO2d9g} zAE0h6L*pvQI&=rPMa*VoUDCyV*RTg%lVSFGuH@$N)0%ohH;{iiRHlo%>bC1K@V$tO z=K=>xB5M1(wA++4;VTCt-zS`J>Oyj{p>HnFS6*zY9b7JN;vcMK_i(TJTsJ<>J+(0% zaJUCv_YGssz1UPu{j@X;?_2eL=fSP#vW5!M`pN|YL)Y5+a`pz;9WSrsESobOG@Ury zuDxGkd>`CT>Q}LQ9X)H_9sEO~_KJ-?!^3iu9{^LFJ_k8>Z4Rfd^y730;h^^I95$-=I5xAvVRmZyR1KQ=hrn6T;e zh`R@U2ioL`8Ca&UWz^S%4}k~7eGecl$l^W)X^*!9E99kW9s|y)X<#~!0}o>&?MmaBm=!^t5nLDE6LL{Adk(}?%3N^o?m;~Jax8z6xzsAf$z%h%@0J5+k``k9c5Gss-8EOmFh~YtX zsiwQ}We=Sjj!~=vQxupkz~n2(DC|VvR8556nN5-p9(beY*tLhKL3K1YXhRIkM4=1u zqkMcgm49pbR(f2U%pFWBEf978PBpG3RngCLFBoq0l0}}ETdq@4c>S7$;^j@m9P0M%?eLp7ir+(GbI*6)#Xuvs`55X6EgJlWyL{?^Chq6?H9AbOH>oiae_kcH6Ie1uXK#Y=*MQi_20DYh zec1cadqKeBbnpha3AnfT^6=l2|D)(k!=ZZLI6nJ~F&JYo7!1ZbXzV*zpps`CP-` zU*3C@JV|SBy1TcD#*WRtyAt@s&Xl5Rgw}`92^^H*F{3i*-4O@+hc3 zP91oYMh`n0`4nU_KsjYe0OZ2P*GK0!-Cs{4jFD{5^H2Bv?T(a#t>qIQec}EgBZhfT zAvrCb#XFjA;~KH+5E%*W9hb5`*mc}n^*vpCAb3mR?G&Yhms-h~nsTPyFg|Mel{C>n z9!%G!fu}P)q^UglIsDCJX~OwC>LhTsR*}x}hRZJmoc|dvpUcQ@CEQDMcYa}nw#P_? zrRy4}W~aa|r?u2vo_Vo?O61uJTOZ9Z@8N$^&1lb8;U*kH6Eu_!&C%6w8R~}il4lZW zjoL@ZHh=IYcuBmAJt@Ns{7dB%1bFzl3a3CW~FCzuL5yccd=H-7$`gZH73BF;8> zCga46bbPH($os13-%PW~V zsqsEI7V*(cd~tmqhd{tko3SFG<1|1>-)fONHn+kmvY~llHyegmn)9I1zt!Cg1?|{d zo}N2$fT4V;*g6XAtnhX-oK*E5*1i;dgcTBi1Hw$C!cC})?F*J-INO)p`yq)EpG>9P%gB|{XD1L228>+ z!Io>iM)Cw%z6F*nG;gltbGQw`D5BUawoQt9ha=!VVxiSvzA zc#%$tuOT>TN56smX-Cg<#C0e$*Qu(?S_b9*&P+#pDi$DxgF01Vre{o`D=o614)By< zuuVXn7cN;gK`+2{(PQ!ubyN8eWyD6<)bmX1i#XGywQ#uEPKSQEe<(H`mLq9xSPnq? zCOcdlBYRFUSf68}a}hiplsl(?g`EABWBhW&5~yS|GjvjaY=$&|AdRfYew-m5TRzYl zO8xF;J!H5EvR>p#_7;9#Tgg|_OV%io{wZ$DARBWcw00DwudPsc@3fHGg3vCO{Zh$y z=K{{DSC8|sl#^4i{3ub#Nn>Qvmn#M42hXP3UDhtE;a8F}2=MWNV~M&d&k6Ua{$~eE z@5$rtJPGP+o^4;V%^QlX^yz`Ten_XJjjyOc%6qCj{sordwI1&L^w&?(EIYQxGWnB| z9?rxZp2e~#bgQrv(&|jfCNoHMLl6Kx1;*{f-%*3IQmr#spppAJ_ z$Mma1pg*xNw@Th}u!$&lhyQ32+R5Z^GXFOM$Bn_4a$FA%dV0|!;a23S*16yE`vae) zJ;4o@U_A?}%Twc69AGQBP{)ZLPd4mQz^#a+6qdaYsnHpfpAww6XrQq$7Lfi4Dftfp zt)0Y)Z!7l9R1FT_56`wnKhz&Ob6N2_KH_XccxaXmIa|b;MUv0Eas~TcF*Kd-v!&RE z&U;m63;~*`q+31G+6OzqU?57GZn?2~KtAY!9ha5LNgkkhX<))yKR7szfB#QV=v#U` zZ`{o^`Gbvxkq8nB%t5iN{JEd=j`9c@R(uZ+R4@Z!JjnO!oaO4`=?<%M6yZ!ni3est zuDW3-w&&q9DICP=k`M%Af8+A5&))cm!h$CpkO)+d%40FS?co~#C9DAbx+n&MGUE(` z;2j?gG8Ulhao(AnD1PmMbK>uhD}%^Je;?XjkLAJ&$P~oZe0f-!zw}w&8Se+4qO{jJ z8SxNILfv`wx?FXTKV`9f|9f@>Rh6p^S+qoJ`sA!Y9EPRXEX6-S(xz*nqPGcUe!Klr zwSKX$oB^R9_@WbiN7Wf_^IhTbjZKqtZ?(p95npuR(K+oJFL{e&R{(FrXg|(Ii4-Sa zieNVYQQikXyqfuQ7c?MR1~Cu(He)5Mqj@=0UT^Ea=g`2n@?#E2oZL&e?uA>IeQlt0 zU+g7O>=^>6xI@RV}b6#wB{oDn2zYmvzM$*O1x*-@*czoNSE8NC!!^X%Q!FOJxr}0 z7L}*y<;KJf@ycZAv`F(g(f3XszAnOTAT&-Fi_FiT2L7t=5*Y@d&Du~mCH=QsK5ch# zfX$naB}tw(zu(298fx=?xL^@{DLXIfiQ!dSS5D+i1A8CIp3y#4ar{Xb=Z}>PQU@wx zj(Ms-NrwClA99D$c$qduGTCpUg!ecn6td-n!Q-?v=@$j7;w+_9&J=&=&K8CQ8uii* zeUD)&(7#kSP;}JZ71hA}gxbQ0r4_qfMV^+#U{gv%k?mRC;$s0FJMDUnF}FhU6az!S z8Gf9OD6NH&VnHLE*zk0**71f2q?m%Fm;=xlaT;!}0r`rnQtbf}^y4fC8lzXIR~u!z zI#8R=^aEw(tJ;qg6IW%Z56z`2HS;KShos2>7okm;xRYvjl37Krx@&I_uHVvJIibCo zCC9AR!v_m*UGkeH>e#L>okAG3APi>PX)~iY+b=;69cj!bhlRWJn>j4Yc+3dqOBmi5 zd19(`%>}5eq}AZfOh-$$3;DR3qahS{?_2`!y}kz`+JzmD>>ub~Mygf~^NG}lQsSIQ zYgQZNdffyI*H`IX*#iD0qt{3abJ#6HFcv(rXaf?uf=0Lri}ifs%i#mav#N90XJ=-U z)h`cK{DPXdlU&wmP=|D=gP82P9md@0cWv;ZzuJB<9oe)1G35 z)Be~^!I6SE+-SQ^6Gl%*LJ1ghp)~6=TXVnN-Mo!;Pj2F~L8CzrOOw?^_~n-dwzWIu z^J9ElYantU9(*^{iO0|H0AY(gICx|mXk8DWN;K<2=tmLq0mol<9iGqZhrC&3+^k6h zKj(GHZO6=gI?46src^6I~z?)WneAxmHVuQ#RV+Z5<`{i|e8}diyPJJfD zN|#RceLRk)}m?=#=_ms2au0Bz`1x1*D3CP_=4c z1tsruUv}&ihWf(_|whWI(CHL!VachJA2yhpd$i*E1G!0 zg=2P}+n24aorrsfj-vfyP21z5{-&P-Xb%_aP<&x8Z~Ob)g!$)t<{;b1T0bY?c|#mg zW-NBj7HD0y?8{^hT4Gr{B&ZHBR~lc3IQgy;+IMnQ_d(8~!0Z0Tp(E0gu~ih%ikg;bY``9sYC<&>!; z$y}l?F<|O5h;kJ18*JeAK#y9YZkflX+%1O zUI2=nY{@Y;y?5lUQL_Z4K=Sjz6{4~R!6;$MZZQ|2@~c&N&}D>_Q|64`YejH@bxe@U zV+YIYT|?y+2}U7!e;PQXo?qge(iV@X9W8!T_q z9^WwVSX8q1b_Y-Sc*Kw$=W#wv93*#lO#=5xdMJ z4+l<0&1+J;@K~l~I2|25 z<|X`CA0kq8EesUgXTrRfV5-cP!3Y~###=A}95!EG$s`NpwBzIA>qG=uSvv9Nr>MB= zl0U4r3dpHX8~{OTmQ(h@z9#X!l_D)0ab$Cfm+=5Sy&I^xJf zkcKVL4oL`8vks>S4|*Avj|cG6Ao(*iZwa+DZhgvfS`7B5sDcNr*!ylG(&H#kDYq=M znF#EBzt$pEaNr0uRmz@gsRDbn-FxmZ@z)KD2^Hz{)o~6g}p@> z4c>0&`@L7}O9HpsY7d`CgV3)qH45kl0WF6?e71R>deAGF5=A?8rCgcf9vyfit%MKp z;RWl{sU%9mKz!?w%Ka|NlXffy93ZvzUcC#brpHfTSM)dRYyD@1B|{0xYKjfOh3U%~ z4}|jbfB=(0^&`2Pgnzdo7KgJ8S!%iKfh@u&Ch){zvCoj+|00FWM&KwO27%xS$anPi z!g+{59vEpq?rjqN?c=f&Es1FqWnn?33W~u1fZOrUmM&hv;0#Y-JMKQy01D~5c{L8g>RI1filO93*5j8HbxDG zr_y)(jT>DG*_XR31hYEs6SP2QuLiP}wA#O;BH5iKibMEFI=cTQ=r_UfJWc7{eQ!5J zLUR>I=Pv9WRl#qlr%}hl-z^a7b+_yo9g>1nHl=7=#GSdGWbjfD8s_@gKZ!ToyT1^Jczr3nJBN99(6C0aA zhP*P8GmH|sdR6hu2UN1e?W}2dePuZfU^15pv^Ke%#4|xEy66cm#fiiIBl8ju%I5#v zWM3sl-_=M;%pECM;A{W_DX=NfEvcL}39hj2lP@D-_0M^lxWI4SQA#n_U0qpd2*eoA zRIVP5{j1D_9}AfoLM|uY>`xgXVg`!ZaqGn&r%coX%OMa<8MkEi4Or32FLL181 zG%K;(C%zX+XxTC@&C+~a=B^gl9Sy?igPZgh9t&MZ*&VK%wfY!x-ZpHy_$XH>O{Skp zRBnECjqXh~%>jS!79uZvpVLUU$0YsaflEA5DD!NbSXk0TUbJ4mWkwz~b_Wq`THO;3Q*UJzn4n8GlNyAulvqABp z&^W$|<>=E6h8(=LfuZqTGNm!{O)=c<27$u0mC{c_4a>_Kh~`g$|J(?|<{KR1fFUoY zE43_DB)m$UZtGOTZte>L$s|B$0`DCW2i0)DCC%Nb$RqN4Sb{4EKL2LMjy z0@7Nx(2nQ6Y$X1&z#NjzlrHmH^Dx#2tdq4Kn|wVfcD*u6(gM90VuKjiD7%&I2DO|H7h%++fW9eO$E5d4{MLE_WP64hnaF%qJ zYE88@S@d%yku(;=J^ey``HCA_xH% zAC=0s9D$kgOwIp~gyI%yZKoO(TWy3c$tZ-0zLr2T9-@GZ#W{UT0u?eNSWg`5I z%o0mFz(T)-suK_>lW%Y*x8|)>Rdk0~$)j`;C`NC&4|tF2>dz8kpY&D=y{Yy&qo8x2_BUro zMJf#AvWDXL`Ckz*TxT%g3%7Gm!Q77bDXi;ogVXZVrkuYda>8ZY5%ESaBw_EP6CVp= z<;q(%MGSJWxUvvB;Aqnym7g0$fB4wc*#h=35NRh5TIs#|T#3Tl5M%~B{Fk8KOesSC z{8ciUb=a|Lo&b@s7BJ1*4BphYoG1cit`8y`>^ROd@qYvvBl#Wl!R!Od4Tbk=0{PIs zvhj@cilZ8v(a7)aS4zP;mM1ZZz_yPfTeIBG^Yhtj4gfHa@9{z3C{Q26@8EDg1LS|r zHOQ%Ctw}R-cjksUlp|3x1PN~796cJFtj0wXcGIQA_{wO&VAJbS!>>@10&E+5iifmX zGkFmsNieVE52M3&U&AEN)RcGsm0Up zT@+YY65)V3R|4PkY+uIyt97I_^Z2#z%aTa8pn!T2gsT2;s^oDfuf5}BXFslV9N+!gFerj&I)<#;Qfcz8yN-fcZV*;jeNs*ni9u z;D--{i0OXo-Jt_>iyDCtHR6n-Wp#5O)3^RggTcU%a z5o^it?J3YICba#d0|d1A#PR(n8^yWO!yqS@!#}DU zWrXjQmsw@p(nMrL@;25@+6#3%t{^D7kZX;zi6oG1cJ_rpU7zaij)!M?+~RY0tT#^{ zbgHwnWo||~h%oR94KKE;C1-?jU%%PS_)hHsUj6`-Ne>GzeD=+LgDzB<+DtNBI3E5S zDoGaT_)%>q@S~Sx2{Vl-mII#KSI!`O=K$f)!iwi3*DExcpf*pzEB+%oC0OlZ@?Qyh z1U#uelA zIX4(@eKBR(c8tNU#gCHjgEm0ba$o&qj=&b}rq9QC-56Pr^xC4xsrSLEg>57Og<` z&RY2w zaTJWZM1*Jm7=*t1j;KRrs2`sI|Mwnrm*1t%zjsgSgtd9@M;8-l82S_#B$ebT_xae0 zQh;{4wT5DEzWTgv%*$D=2X;B~+Tk)q`OofQl>LsUA5e4oqbde(aUyuC6_%Rm*s7E_ zf@%&)n132*TK2@@3NoIntbv=0WbBFo+sfw_*8hPnIcMz!vWTyeceI1~blmR*ex3Xp z^PI-hipop4gXs%-am!@zc(+;2!g7Hrn_1(My`ooCy&u~$xV~tzRMmYbN5@w~ zQ`IT^*{;YxIoXW(CwyIxmLET)L#+SW3H9ODv=M~pmsfiMXVkiV?EXr^)vu|R&U;*q zH&?z+fEEE@1sxKO1>`5H`3|0j(9DEC3Qy&3s{T7t@SoiN9V>D7>Hal5@Nc|*0$54m z&$kGkQs9G#?+DG1XS=rwOW~jbaW=H`hGdu*@NidAYTEb4=VC2XB^fL*?t>T8EHYR$)Zn8= zmqy$v64DHyprJO~bCT!^5TrS<>;!Jf4k} z*Xb;9DDd&SG!!=k2ytz`R(8%nch?{Bc>cWQ#G7DdK(bPK0GzXU7aIYQVcdrjN4=r! z3DYGT9#vd zJ>b`Y=D%s~1<#V^{l^i*jGBW_RQ);OMzCwni*(Ff7#v>877`6QRh*Vq7{GIGwD?*3 z*i17w0RsMBcKL1U{%cE~LX}LC$m3D!=hRozrIc+ER2@lM^+VyjXL?ACYimOKYs-tE z{f%tlXPLz z9$zH2`A@z#j$eYHvX|G=QU0HXU6~LdcI7b6zXz287tmQ&{abcR>s2l>qv&!sCCqz{MIOya zeDq23@a%8&-LyX*y%aU(Uti7g$IxBsf6YnRo`(O_1qdhk_Xs|!jEaNc5LauTQY=M5 z1J~wXNfKZ}N~wF4=yFq_n_SR~OFL*kb09zz2vvOzXq*Otj#L&j)1jq!`Fz~%4 z8q%zlK>l{>O`mV;aqhQdEiTf^c$EEvfjh6^yvdN5bF|cz-2=4@P&L!sAs*nDU0XK? zb?s=pmCyk30?fI#r5kC7pocd!Yz71l&Gw%%m2=aYwVvhJe|(E91PHtaE1taKcousX z!G~-xg_Yjdz8X zG%bgvwb-{Ry40{UCfwwX`&M3>cLHbeSDN8V!2CaK9;uP$PdG#qJ9>COqb;o^FBdiF z;SM1^w7VjFBG)PR(<&~7wqJCRm{qrWFP~_khEjbF7kyVUtb(}+9(lp_$P>E|YYVSwi~FLEjrI3k=<%UtI+dmE!HWCC{Ve~} z6>;!TMj){Nvg=TfSOQ!u8S}btsslVygf%EaxMi}3iD+v}3v8qyWwG7?v?dhw_Cy*e z5GYg{4^rB$<@fT;KLrp}U@F6q@&1Oh%H0Ro0ghHQ`kCg!nhdyPXnx6g}bpcGuA(aJ|Afy$8bd+2E&*;vX}g`evMS zht!LTrKgH(8ft5xZAvy{3l1Y4yvZ)`FgQg(CHpb&j^%YM8_?=bOALj}r(USrP*Uoi z4Hfog^pH5C0ReKFh5_NtZ-A8UYCxW}xj^?xGcuEkpL~&!I=Ax0^Z<&|fgxvLrG_v)Mr7$WFD5p3e|8B(T%E6-T zVy_KDu4J@i81TJGRp3m|(9gMUSx8vr5b`D$rIWmY5Kl!=iS+F_^xGaz?%onkiL$@dKpZF;&!4pxHekp{BUVj#C zkDemr{3ATZvK+a2C_E|L(;PwEJHNy?!kvGK_9Ocl2l1zG#t~LkvPh0iRumJj-B+;X z$;M=45jI)G3V#Tb#5aUK<-8FcQ^iCw-vCwKV2eKzu z82Bv)g~#FZbnOYZi<1y*7Z*}k&Q8Y}hAfA0*^|c~ZKexkp;cuy&o<0l<#P z7}#7OBHb39@N_ZX6pV`?*!hw>A}K1)a%5nXW=gtEl%ZkR6HXUJMx9DHXa>GJ>x{k* zL%q_r_a4XM3H zVlh2~XLoyNDm8b1>;i@@LBQ_HD=W1p=X14b==S^xD^0rSFvN58U_%cy8`+C$haqb( zmp4>nHP5vb8A1`gc=vP!$ZCKT;!}K4L6UpFuSg(2P)Q{Mr?xgg@y#bt@&jScDiW>b z<2GbNO|WQ^p*m%MH!A{le>YDw&E2*!8xeZ1srv zn|_;E?|mry%U8tDM%)ax&5c`gn_T`O&JeC&0tY^^hgQ*@yUb2li2TqzL}@K~vI0{k zxVtGs2pfbWe5Xix{F>c-r95hhV@EC!7Z@KU(cE1D$+L>w6@#v6#5}z+8EL0y;3P}uh4{)8KfAo8L(VozC!`T|`%Oux>|UUvi+C(?2O$RF zClxjXOI!TiNy_{);RghSlE`~?SvQp2xSMhro3*HWUCq6jzkW9)>jJ)hI}>5l23g7 z6%*y~Av#xYQsW*@jBFJJIesutCx)eG7I1yu*cVnokR!e-)E65Y;mujTL9C)wy@9JI zUBt+sl7GpmYmlVNw;#YCz%3yof@V>n{Jwg>t}-sqn8Gz9)y><&`8|srAP9|K(4h6; zBj_VZ?;qp&?zVrpc3<9B5fvW)%i;9<(bVq3;BG=Wp896{s77oonl$vr0xF@(N_8lS}x^68EA1LiCGD4O(KsXy6fx zCn0qXcBFsK-k#v;a-4I(aGNFSq-UaDj_hRB`lR*&Ha~`p3w@Kj2QQH35C5!*US0$) z{0;I2$$SESw7N-O$~A>&z&Xc2t)%G1G=%TBJp;=)kOKBdqWrV|4voA{*C*zRr>bpk zd%CetG<}`L{Fxrm?zc8A5G>DL`JQ3)5C%KZ@WTmdS2FSwHuNiZDE-mgAWW!C>kStc z=y1J18-`Yp^ig<53F8g$=YIdP4!~c-{xNLbRt;63kt>F@Z*4Zaboh2eAGqTpiL;m) zYBmy37%5h|A#>`a8%4E%eLPZ9Gai#~tc*IKPCa5y@TSX;>R_LFL%{tvtWAS#mL+~F zj%2FFIMJ!1@lOCLF-+RQ{ZvVY+FZcO;xvXFx)*f#)_uOw@=~0+G5G6$vu$#J(6~yGz;IqiA+yb`iXgYK|T40`DMxve!!^(f-z^JC62=U@KVmpVI5nCX*Unw zqTEq9U~R)q6GR`g!;4icTE+I6I*h(X)QfIUuPk}kk3z)}qPo~Rlw5ovu^Ok&zm}4R zw2+Z0p3DLoo6^gz}bc@jTbs&Zu7oY%G$A2_FU(cIAQL`)&Obg!~_;Oea9s{QS{5f}mGm}06ph$L@@ zqtZpukEw~a0J_1s;c8oZ*Pu~p?X9v@kRKho^TjSi(rf+wdB6RLM6oY$^MAIvvFlK= zyslSUyeHa4%eiO$i-`8NcBS}YqMKE*0@CTm4KKB+{-6MU^CK`RieH;oi8QG5?Z7Iw zF31Q06o{WR$V7M@dPbA2>8W@)=`DeIfXPbxC-49LEDT{(W;c}yZi`Jddsbb3W*19F zOl{mOFKKTAnqq^&1LQ*NXT|80ookPTa`-||?Y>(Vd~3&*^e@62`Tq4(JL&lM|10^O zN88`OMxcT9PPsTI4uK1D^d6h-l(uTW7;s9d6Yxb_Itc)gV-U*e!XZxP`J;d&=TPUV z#tXt4C6uwo@fS(bOt6nCt;FD`pghzdZ&t*U2 zLgR`RmsIQ-vZwPNJh51e=3FgkRiW$V$yf!)ok?W?`yEGy{)BOj!@t+r`|d4SeNXa^ zHlq(%)Y!#S1-bl`lJ9voJy%^os4v_BCY@radX_;`SsC=(;o0C^?gL8Y(%{;Or0)~- zmycpM(7?BjtEh4S!+>2L>=CtURVLI+Y?c{V+&g;Z%G=P~b3Z=eh)~5PA{2KF%dP$m zcUw_7-R#;5!TFu;qAA!G{7OSJpGkyAyons}q3bWZD5?{WuphAc>BIW1+2-HAcHOk?*7O$Wlg&)M6wjZv)${(?^$qLj~U>$>6-8M!Tvy>!p6g5Eo z<59cUi|kKrF`tkfURcV#$LE8lsytBuw~>S7=XBi|R$E}@wZnAQ`;Wgne(F5u3D6C8 zq69+?FmB-vj5wmmeGyW1qK5dn(;@NdLa~JhqH*Xf6?&+Nf-@0StU`Z$ii*`I6?6@3 z#YOL4DOH#A`ugtFQu+%AZ+lkuh(r59@{;E{G*Mg0%4u9w(7Rj(P7N2m#h_ZtDd6XV zUk}|jstG*9CbQjsHh|EVokOr{`gu?9$}mI1?1Kq~s(0TW!G#z1sP@qcmOms*RCuy1 zv`{Aa6GD~l*DFtz-_QVM+x@gOipci&TkQC|&)TdtT*Ci1O8?w3e+FA(lUm<%64!wx z*xWA!<}noei$@MSpgQy>b%Rs7UN5PZ(hYaRqy=86^y%_vg8l45-DCS~+I^9NuOoT! zoiTc z;xiyPjeQ#q1|LwLI;49Ls9N0;XHwl36P%jOe&A}oqhAt&4V(bKq7HM>zsg%H2fb4w_5Qx?IF@GBv)S@H?{+ad2`o+k4#9K6w#yq)5s zHx<`_z~Z6fNVOm+$K!ZWu5^}QwIWP97ytXUvq`(*dD{U|^&q`!D6ZzVjy3SG1{FxAe zr&nn+7d3wH@sBOonF%x#*gqCPIeDgt)iY9Oe=|_8u9s~v4AZd!U0|7E-2Vxxqw>tDaRXg=5WMmYQgnO zLWFwi#m64LeT%1U#q+dH%@HL)pW}9wXd!*Aj~~2-zy5t(36mV(a&>sduI%aMx(3_v z&`%E;0HTwmQ-XX`yW;_sbR}h0hlT9&-Sts#s^|Cr0D`>7qZM%YbLu+aJU}SeW9<~c zm7G5cepgrl$Q9`WFxBh_&L*-B@p!@#=9|53o<_RzEKyeYQbjJEFFhSFlN7U)qQ;9B zlKrD}PrjACh@a7q`0$41w3@Qdyf?X5IEZet7&Z7_z!lv%^ zH|y4ZIyjK6cBX5-XFdBN3Hd!TSUdYj{R1zaNxRQp0=+m@#eDI?r(3spw-s|E1G8fe zY+R+UHEoiR&I%LqiSWjR)tcK;z|&koqu?B`4Fu)|=vn)zJa!kno_AG_eUiy!s-h8+ zAYX-}Lt%N{j~QyJ4=`m3K&ff{SGgm@-g?$g8%$Jw(fMD>Q-KG-=H6C$htMnDV4~cO zX|a@k{dHuVsUa;{(9_-|BbTy7PWsT{3w2zIZbUFXe4Xw7;q*Qv_btd-xX|#;oaYx3 zziC9HYqb3vl)JhD6!!h|iXu(+Db7qp-CB-?vSK`l1K&n~2Ru?^>4oA-mn~~tMk8zd z;s%gXy?R*~&d+RbG&02(g4(wEB>4o=V`wMe(t$zV zP7x@2^WRGUEi(3spiF`A+ULQtdI5TkkId-F>T?h(O0>(08r-+apoiAd0u_4>WOfNK z6Z(s}OlOU6E*K<2o<_7!BHDQNo*7|)j8LlKK~q=yx_s;&*fSv}o#iqgq__CH)^ul?9n1iyE!VBT9KBx~{HfRS2d7Ga};%*qw1Y zw-Op>56C+bRsN;77p*qXFFV-dYuGuhN|kaiMSMcMGttnsGzaJgxl2wxruO#kk((Pc zwC`2&26SFdDRL^9kxj2|5GJwRryE{6-uyZccQ7zaRgoIgG3xEVS78@Y zuSMRyyWGzg_Qs6PtecWj&rv^~Abi^-y{bEV&8uFq8Ap96?w={_1 zD-#!hCl_C;-^zUi@)-zFxy};gG%CLPL%A?}Z9cu+)Ojr{LfGke*nyki!q_Gy5>tL^kYH#dyWw4e7yQ#jF=k^wKXsd%3N8$)l|V(p0POe5s?Yy$~m`))dtS z8`Yi8#)n@nAqdtsgkv7udf+2~uRkv}$>eAm`h~^(2}*+`hD_pX%MCIZq`hYe7u0|= zKF?Q2AKA*)-to(Xz#CYg?x<0ICpvsR5JJWHiEm8$;|BtnA%$a};#sz7{d@wVu9t(!6KOEpd&Y;xrYBnu3uQ@X7`D#rz!**3T(9 z!X>vf!47SeFczV1+ZK(;73I(!ZWNAMmM{4Qo<|oK5H^^e$|p<_!u2AeJ>GXiZ$4;t z-VdybabhqWfvRYa*^1#me5B%>l_mTB}(;c?9EPn zSr`OY+uxExJO>vpaMe^irTA4PlAA+rHG{Kwo2Das)`$)n47HA=7qXu%En~-3zzd zUep#p5!$2xeNTnsXhM}4l4b%F*2eqKjfhWC4%OLL2e|UDhTp#woQJ!7FHkC*tr7NE z&Za;mM|ZueqeNyHR!%f?(9(@TL-5j3R1UKpS^n2zjAH~V~ zmtG%~eiFN?YS)ht!KoUEL~YM27)s*byg4Ebn9Jp^@(%Gq*S4rF*3b8Xu zMI`C=DuwDtw;%U9U#@T*URGegd?y>3!$lP5g%ml9i%>*C!O!6G#WrJ6_Q={c7C-Ut zCG-Q!oEiZ8uOI2xCsgI+AOFX77intIbmi(B-L3Y*X^r4!A_kYVCd6DRfBLU7%HgRam!uT zOTg(fn&+Li$u;eq*LoFjdz|+v=)A%^IEdplQeH1tgTBa-9TX@;ugJJZSUTPSiuuLd z(T0ePd{WgF<5N)34MJWytFNrwatKZUXin@#HReP9$IzL_GyTVLe3zM-8HQolnERUh z*4%TCVeUKTDlu14bKi0+r6@u_N<}FuS4Afha@3ScjT(s+<>$}uzn|~p@p-&I@AvEd zeBO~^@~VZ(IVwC)yjb(S?*Ukraq}pqLz$ird3U=~GMRr&1n-V44617KzNPEns8srl zQ)IH@{-zTE{#HMebcauO8-_AYgpj19V86iQ#9(9IBLSCB5?P}q$g3XUA(hq<0{Bo9 zPF?f?F`2kdL@;C<10zTpFJE1gReQ7Dwr)tA2mdq!fn=CQsYOB z#dL%xgd)0_hwQXU3IV9dFeRq0)vAT*E}ad^V4$qtO=ieMoX?aeXfhvvN*0Le2l3%39$zcS`to6AqI*NIn^q}{k`&%`fhYI_+D-AU{2lJEl&G=sO zAQiU}+2Xywll_3HXG@Bgn!6{#(D_QLK<4)9I46Uz1&FFl7JleR-`Enwd@#Rn9co#jZ%_ z%9c(fGoAM+?@BI4ixFuOK%d8a;wX8yhWc8w(a7l9d1x92;r9bGcjp?Amo)!9&K5=#S)D zE$7*2^(l+B8$WF`MKJpVs>ZyMWAMC2g(Atd5LJ_XaXw&d%aX91edWKJ?YH`UU$X!j z2TL82C(<<)AsxLt#BHY9bQF~w(suu6wp*Q?u%)HenvPUYXw`(G9 z?29sQmkIhwxcbWL?YmqGFzdY8{`md!Sq*^W=k=m-X2O}SQc#qo&M9_&t`tT_{-OXV z*BRn~VFF*n$nvRQ<{ZCPC3s7yN8E?!kT4O2(GY=-RqJ7ZY#ulb{OQ@uOvVZ}%hm<{ z_Kfo*&^l~>9!0)Zq&wbQmr3eecmmcr*L~!f){(^v!aLj7@D0N~NFm1;;L$vnZT z^0-C(zM*=lFNpo3Sp`gcpDBtpo2%2<_*g?t#-X=b^$@MeKb^LnUKo_ssa==)?r2ndRS<6A0jHDjk-#u#mF?G!#f9p?Xa(z{SIU=o5 z)Hk4Pt@m${Nvc(Qig4w#KO;|XxNwl{4>-BIf4Y#fz58Pwf7oqiwy9_{8@YO#uw(@f z{SMSFC6vuNoS*aOb4t_sq(6faYJ3BSVc3&wpFQU}@|{MT%w;1^9}wy34O0IDu^#xfya*2USRM5gI1TP|hZuh}5YlqGH5 zg6+QlmW5fud__sUg6{f*pk`U%GMACZirvY2{P47WE)#8C-=f(GQ(Pop_8M8VIqEvL zOu9S9y~8ydvktn>z0A$2=XUFThaW8y#^NX%A^WzztiZ6>SJjf>2jLF>XS1FL9EJjM zd03&Yl=J>8Y{7C7+;n5S)}NiPJIg!R6};e^ zo$;LqJ9pKLnQc3jzC*6DRjTiRHo3~Qig5j-_IbYJ73V8<9Ci!|_2&_aGQu}6!@lG| zSLIIbZ68moW;R0fFnoBYd43Opv_ak?O0xMV2cAG|?Av~ljxShg->%!v+dfiNjm_LX zwtZMEbR4Mg3J8lwn=CceHnwXYDZpm+orkwYb%spnmZ$RMK3s(=(_yH|CMSO6{T>9w z0w89>_uZ-#T9kv=s6hXFxoTbZqr{*{uVNnMZT2$iw^&#K_&oK)J2E`#_O1sb@eycVSUa|~7 zeLbX6Utos7o6&D2Of1+7{*IjRQ8Fv9BR4$BYYRho@el4!%gRtXA)W5k?ts3VusP^= zF`GyktDekcj{qP=;- zTvm0ojtz1VWVd<3hbD3EwF~cL()6p`u9sO2sHr%rGV*B(rD;c=5>l zqi`sR^u=)&wR(J;3G&Ba^h4vC)VoFtGYd#$l~}2t=LZc;(dVYEq)qF z>-4x*{AKUE?KT}`I7TlF{56IPzPbsc3wwBvx}Y%Nk-4Vc*I6CeLW)UG1b@3>Duo1Z zgMF=OFU5p%d4q*%EAE#zN(FdqTe|0zdk%$4+dy*vVUFx;QD6{!#Ho|iVi~(a39qtn zY2m?W;H;|Tx)r9$Ory{lLu&mSk!lu<#HxAvO1>ZGxxI@=VR>@?SPR--883#U@x>dQ ziAob8#z>8NDP&-aV@j(-q5k8J^(w#CrG@gZ0^+cute z?%@}x`I*tvY%ufp+0U5cEE$X8URz9>oriXZ$h$d-4#QN1K^x!1chD z{Nkm+b2L5|iO0n8CsivR+O)vwF5=Ps!qAtxIL38TlCFTJUV>TWor)%3J2~2YtaSz9 z71EzN1j@4<$3o|TRX7PedG z%Qr=iT|6fF*zIaokRg)=Onj59&Qm7d{V*9!V;giZV84R8;R#w90)xI{M*_2rea~Kh zQ;BFsI0aqE_5=^0acMv&VGEUnWsZ_^#tkMrQ-q=a!`epN1(EzF-a%qUJZgb$l*}-x zN5oUWNxWsir#X;d*HhWK9EA+Q*Zl&Ie#DRX1_xF!VMaV)fmY~!m^kQ~iYU3M+D95> z4Gxm?+2$G0c=xRb(!!758^}4_3Ge~NXc9)?5u=dEcJi>JUi+l$(e1Zo7@6+5I`=SC z-?haVxfR6V%EPgmrM&?G?+G6(D3NXM;T*>i)0>e0P^ zLFu)=9_z~IE)Hd18_6|LvgHUI;5RMlg`TcdUC6KDmrmlex^w*APE~1kBFNQ~x&A{2 zd504HpqYnu>A9!(;+Y9yAYVU4t&0I`D?S;)T4Mtq;)#hk@wAP^MEos)7UONgdYF>< ztZ^67 zx{edclOdAIeZb7)N`r$qHA(uS4yq9PSZ+i8w{r{$>n@dsC;SI;KxZkj!d(W2K+d<^ zT?8t4QG#*0?k-RHeBAL=SNvRtrQ`cHPx{1fK}l7Qd-ur(?R4ehQ;-OsFz?Qp<}WS= zhx>GuZ9w`c1EQYF>Lu$I6D?E(^?SjMBR|DOpZ!BKv%I4y*Ud`dr*&C#uj z%*VNk;ih9Fm+fT^Fh%mLJ*%_?LO3Ad15QDU&OzXSB!Q5_^?sC1N)~T17zYvrUATg~ z64En~7l`>TASY3H*qVEp@|QzgV!p=&x93>viSqN0#v8oVA>E0W z5RZIc^-ojS-_HBtzHA1Ga>YXF(VyX4Asd*Z6`F8hs5(J;-C8IoC_e)BW=pE9>_ZCk z6V2P08v7>(ytj;Imlc9#i41Z@7Gfp*P3|qnb9^6QZ6yxL_&S zBsnrmqco_x3hlqiO>iy9d1gc@J)HA~LR}irrZj=mulQi)-s)Y2Bp2w^GPSEaq37jS z?wo%V0P0aLh~DGFllV@W%ep8|wChRno;Ez5fDn~Wjz3LuCmRio>ZVl>Qy$zd8P=*& z7}|-W%1$`LP_Md1&2=DVj8l$i92YH4gK1z zvE}FY`U8Q*6Y70^7$aPw^qu+i2h_1IM?$kUv{MHC#j3PM0?D`gZMVp0b*%-sY8vW{ z$~0p)94l>NV7$&c3LHQew1Fg>L`s4@SK~#|N;Re0ms{?ot-`BRnZ3v~FLtS_y-`VW z`6Mj4=hT0s|DN2Sm+oo7S{C@CwdU{%V{JO(vM{t@U{RZlKBXy%1O3u1q8q59gF zw^H@|IZfO9XqFFCMb+KNL*Pyx$Yg5bhQO$m4<|f_7vMkim)B?eeC3ZvbjmavB@ZE& z35z@9Grl-Lh9J)eMU>JJbn>?4LrXdo9fl_ z&a8|NB3Jq4T%~A*7ovy)Gk;JfFxa=Zm5gmLlhO(sY94bJ8B5%jrfMA=j6#r(#QS+9 zjp6(89J%($4KbWR#Y7=Yq=qcTKF((i!u9aO>YugpLU|w_bF|}2U_NjT7(Q?*qdd@E z>yfiDP+%t&a;VS23=Dp{lLB^3DIs9rsWiw(=c7Ov@PTcSbjdZWx#4mk62YT_g7RD( zvbx*Bn*lo)eBW7tC0|98W2KVWlK7!BWB6#+aUOc^LW+Y6?u@iz<<<{BWeD@^}dKjD^_< z>Q_-3+PFJgUI>&l@R!7a8PS)GEz!v|bFqV9$p=ZZQ!dA=`#uTzq8kILGt+rV;Gv34 z|AzcujU@1(l4UI5I`eFhzqV-I%`7Y=il?N*;v4f5w0XX zSI>P}!SYo9`KELHG_hle16Lk)1G2W^J3Dp`gELyzrph_X$ebb6Q%v#Y75&!pkQYhJWQj#Y@GZ@$Vyvg(}yP>H3Su& zye8S&n&*A;*h8Gj2-FpIv)szyp|}gU5%{^*yDiYP@R+qsfTkNS{Y!4#MKpUxlcGAI zM;rX!@SqQQBWOj+$p?W-iucLxbHSQxgjW3bwVyM3w;M*?Gjf=DGm;`W{W4^4()buD zDB5LB3^y?NLx{fAev|QUCy!(vO%|zK(+2r(^0`ck(&zMP{Ht|0(4g6qp>|RmF$(T^ zG$YUltO8$p*z%a_{g?A4GvN~CgH#tBJCYHyhctiX*rfC9Gx7hz^l@*I~(t%mDbxO)SDx?*tyg3f#<6d%NFK zp)o=Zvj0}038->ebB+hf`a(g>4_C9o5t}nMR0Co1Ybg_sezsg*w;zxPFw}7Cm~_Sh zRWN)HQ8I^$9$1H1n36i}Bk~q*XEDa&pDaHYutp%Z+GV<*e2O&7Y&aCPHq#?^koqyb z9}RYEq{@@+mZ>YTS@&{bVhpM>Frf*H7?!`3C>WzY7cWxA94m@{Ky~k{V3NIAH9p-gib7wfoL#bkFpQifZF2>$w2udW5xd6w&stNw^o{tlyIuU?(2iG^ zD(F>T5pU3pe_vr?mGmFWiWh#Bz@g{4tL`~|aILXkV5uYz2LeW^6xz#vcMs(>mc4O(`N zFsZZGXZtaw4b87TAW%1_#%?plAm@5!l}-n?Lgm$)@&@CL5c-!)5 z29dN9vI=g>6=-iJtZr<9AyAE)t>X3 z_{t-GDU>H%r1Y&gq9jDuWgV98;zIQn+HQ#Il4r#NK^YK zn~;$vKDj$+L+Ub<1u^oLVlxDyitgBBsQp3fP@QR0g=_bq5mi|Ts)KFXO@TkKHXzyF z=VIt+!jQjdR)q+*B|L;1C4~iaugF0faNVH06%E~Gf!$ccr~t@p9q<@Jq9pH3ZkHCf z=5wsg211C7vbgb}`=)5JXH}fR(cDhw+^iF{syQRRnbbgVDXFK}Xxf;);aQyX^6+_W`hN2%?2_o1PdK-)VMKBU(V+Ipl70ScP0}iGW z$rs9r9A}iB$h)1QvGGs7e{ttvVaty3idk)OQDSFTm2?M(wg#xuhEjug+hG*DHR~z( zA@CK!;SG02Rp;5%_?rd3ku6vLmh0oA)eov}(+P&XsHZkDL*Rs_s?MJrT3*f+KxFhy zi?+}2YpGBWYiR5BTISN7q#>xgJq#<#h(IL(BuZri)YBiC));>4J}lpe@D8)%A0TK< zgyhr~HCs{M@Msm-wq`f{HTHN6NF#q{hkrJUi)$k6(HMt}7FMGIa_F@8}gI5~221qcDCDtHD#9n~ikE^q4 z{;=P$q!Yoq#(`YL!|I&^ivzI_*)ScV+$YA4*ozwzN5FUc?Uf;RX$9ZIwX?RYMx1n4 z#_?KZqTI+kT_w5QUz$ciat@8kNZN*Ujw3Eks`81RS5iNy-cDRBJF~?jS zXvvi5z=SWE{AZo`jU`@`?Pb@-0k^S6ug5wZ<=@MyobfDiT*W=H1aM;(HTI0s8{BA| z5L$9{gA6wCIMCahBifP#xcy&G?EPI#RyIA}{@Olj1 zgqZu^Rl5oMP>2Sqcll*Ex&peZjVeA)YGskrjdfeQ2hZe%Uj(-Kob%nn;ZqyWyu8C6 z*I%>$1k0r%f@wf<9xvVK6R5-5sP|&UGajzM5~fF_7JB{8`O9(uQ2vX-{>9)*L9nVmUjk?Yle9E#rf4th~=Xn~-u65&elH zuSkfK_U*Z};#`@0{KgstlKV*_(nVguA^4M5`}YRU>#dLT9vujWPTXNw=x7e0Z0jyu z{^YPOJ2qLhai}n9K|aB#<4&T~6lQ&?W$w1vUt;cgG;t4OAq?Py2`o6>h|twD**iBo zpN(|EjJztS*rN;^$iDaHqqQ`1`jc?7m3MoLs08y|)R^TUZVGnB%UJHw2a-@eF*XK3 zI{rcEiDBcXKu7gwIr=Nomd)n@#)u)ZOfCXt0z;44j!2_w6xCNu5`$nZzgzp+-22?U zp_W(ja8NKUb-ECB@zey4`+O^_5DtIxtN@?+G^r8NS`!<)X0vzH za^4-L_L_0x{<%NkCYob%@&}JH3Mzy&^aYB5c{FhIa~{h-uQ#{M&?>c%cb_ioqw@sn|BsC?0#Bfv%)sWtHTv(6iuGdNPTz3|K3tIu zBChlJp7DGpzjJq)O0@ev+uGYy5N>Ls;jB=Ow^jYUBFB`-EWSFGYo~Xgs0#ym37<4- zApbYv#w=5fy6T@DQT46B3@1f268RMqlI%YL%XB)56%~-zh1FEpw?Zt<`};!%C7Yv^ z&Js>biSPAWzzSgA8qKB_4n)8hVLUzA***(QP~uj7j)se~>{igc`9m1xYclKDwp1 zN;}1+Q;hGU*&aYOJnimYLz(ZBbGSE8tv#-5-9!I9C<8sB8<+D>cw61F{J6=Nd*Mel z3`#u>aiB^>hy7_{%bO+06OXAWevy7U2{VfP6g||+GsuSSt3*O7cx`H=9y>mm!gm|X z5d`I|?L2wzZaK8_TqIP6f&E_hY1wkqvu2;F145(%k1EtEwA4PsZVx4UeG7pa*N5Jz zJTM}_%oM^zJBt}uBaH(f6Gp|U6Q~X8Bm9Pzs~qTqvuO7YkE7su^6G6Y>)^0Qv%0^8 z28@fED8NSF=y7*oqdE&GgZlaSA#2J?G5V-H$0vJmvHWBjz*IoGWYCcT{^~38#*r5C z7u6>v$dGf~W)o(FFHZ=l3%L~$ z*x-EQrBiLbK9Aolm)|?@@w?hX^x%5Q9HXDYJz6|P9`5pIfzB?MjqIcp;L;mY`?Y8G zYI!}{u`N1nz{_U|mGUwSqxRY*al(Yg+oEOa;yq)C$ zbEc=^QDt_yy+!W^gDwRt#yRlgLQ*0qPJTXb(!iUV0yim0968}eBra6YEE)xlg>IvX z_Cf?%;eirS3KJbI(v1KQ4KdMJNU-S9kx>h-bF5ehoud@;THV)r1y4A3BMLJYD=~+NR<@#h1_{L#=i<$?v#s}>)1ucK z&mR>@ht0c+tlZ_u`Qs$vFx|>c>^91$?P!z3>)08^7J=zPs$7OO!)Fr;+)Nl?VgsBPUxBg%N_t1%!N{H) z#pKuu!|nn;KavAash$*%D2A7!-lo{QBH=@rgmSIZ0fki zA;)&E*u#3FLR_WrkkRNx2%Fal^IpdQLj9HdY`>|WVh8`rXTCmE!Pw9j@|JB^;bX@yUrB?XlTh0M~Q_XyQk|eI)}%*mDFB%pw?4W^oD1 zz;jQN80u8i8-3bUvty&kPk949X)iQogmC|LU7x?=#z&>G>Uq}q*(z_7`EHBV62GCO>DR*<5#TOpu?cJ zDHqHVi2t*ZNzRt;3A0}&t_qBx^`v)$g-79&`puffY4^TCaLcf#@KwJlFB8h)=Sm1kCe!#ffa z{kf2PNf{|xFqCG{z(Dagvw2msi11_Kv4tbUHc zX<626S8yRHejdC^B_#!8(DbqXB^V9|6IrtKle$ZX!fri z%RRnnA8=;G0zVcTU(#1HCz`9BUnFV5ryP>oET12t!FMb9J?>;nP|3fcfRsL79;3kO49A|nxpb2+LxaW!=??NSysQoS_x`*}02y-wxfv}vyZF4Ar^gKe z-iZz)YUSL)zj18>pIE2A&o}n%d%@yDPA|!;?i+}tKqO$Y(%l__2nCcHnof%=)W#TM z&4F|7=Wx~phbtlC-O6t2UPP$_N}j)7s8LjWc8aK3JSpincwWdRoqb|Ig)G`-EN9_- zs>si<>5@-Qf}D~639kq@*PMzorXoXYu}j+xbFZL}1!afC4}b~tTI*0lOV^-d=?5PL zO#=&mf10`dl>6?Oe0lmy`i0N1ABWO!ah5GJ;ggCnWJx6}hr-J$UIg*2hO@`A)vQhWYa9JEj;N z&fplCpnm&QAX+629@DP=NC9(3?`u3Ctu9MnF*-LRZ7&s&mM~O5Z5{OLX8@i>LG^A+Nj?t_#s?;qikLnH0(Oe$c=v;+WDGvkK8QhRti zGznI(4~zvJQVZ!&&f5&sanHgK!(DW<+(-kz7d!NBowaaZbXmkK+ClHO46d%OCOS}~ z(W|2?SEfo2sz>a~i?Ow;F^&U=gS*YLH1c_V+U108SOkl8BnIGn>y|ApQY>&>UH(O>>Pqc;jAEc@JV!q1SmbY~XX8nOt5=%!$ z#Bx>o`igL*{JpL3!$zLGKKok&Nj=O~yZYnG!sU==*CyS7KYr~p;r(iBE62(T@-+O6 z&A1(Tx27WS_g5%nf|c|Uszk5k6mPXes-!Y{Aob)?!TeA~NT>La;24iIpqG=(2ep&O zrRWx_L)qMM^_mvq6_uw~s6CWUrC<tca4;`E6%u6&rVfwd=qi=Ua?LZZP;__9L#8tK>b;j;QqHdU!{CM>xty zxV+wM4t4(+5sM%88nwX<^{rOmh^}mid^dc*S^)HD)SL}b{a~Z96TZE#7VXg4&oR$x zWv*GRjMioVtsx#U9cj6z{W5TzQ<8#-K=X>{Y*hK$)9uc2Pe+}26GUgqw zA~8JTTlVjLuG1he=J!UqY_t597{GsGOrQKFYapAEgzy-PGw7CV{u`cOwrrwobQwCV z;t^HfoRGaB_`L6-M_h2SS^K$$4FFcvjb}i4EPXkUHUdbGT01U=@F-yk(Kuk zO_cI?0JH6^Z4beHiZ=78O&q9>jdAXa{Ga2MKMGVp*v@{~lN$$hdcUU&tFi;5J8q9@ zZ~K<_=WJ`d4+k|#ghb(dj(u8^i^Zws<|mkHSkqK~_6(E;EWq{{!Yxd__Q3w2M}qcL z8Pk#1zqCINIq@GlzeChZvlKHb7q&lobXQDDn5nMiZdRXGae+)O+`IctXB9srlB{#| z*b5}2$3t6;bU9%#VYK*W{dH0M=nS@r_oq@kY=e((NvI!3gr6ulN>wH+e3aC7bUG@^K4^N2`Ltag{;kp_EHAsYd}**1 zw)O>A`xvj;RqpcIc~QjieD^Cc=v6o1*q*bYLdGO)>c693iaU-(pURIuL} za7@h_tA7$;GoPYT065!g zE{|Eou63=2bx8hUtJ6B{1#T$D20x-X_mC*wX_`MV!P5}IjAix5qc;zVKQ!<=i^@?L` zH$~)~ic2J2O|@9wy!8iMf*t>(S9?|h%sfin?kLB z=s3W0n5Qo|!i_D;4SP*M^J?H*J9jJTs zNl9|s3xX6CqSph*ASFM#%xn%$#M&QO?nAns$fAf124`1LvM=5^$HK|N1iZPkM66sc zjjC7y*1I)zndi>!haF^{iSf(wqHd`Fj4#P>TsQcI-ux5x4yI9UK+hy{%m>$&dwyJz zM~NYfJrc5(WF*=UUEbmE=W=&s>G^=~wt`WHRj^0;b7xU%F$r>239m!#9WS4j@4Hti zP>^fJrFon8u=0zjk%m26j)PU7fe%6#M}3!2wTn#=xoP8rCJ|xdORC__R|~kATeqW{ ztve|iUl$^!ybk!{`oBC6Yh?*3Tp0UWJMDcIbJ7A)8r7i-(VcUKACYBuS&y<{P*;eD z`^t=Yy4#CT(xhHue_chEmby~?qHA)J5+N9Sc4b__X^^TgcCZTBccQ|GcpC38Fk?Q1 z=4>V}Dw{71PW&)v4XsYvt59TX(Xspxw)e3G-D)fLlFS7$_evx2L;9YdJpFPtXhV7@5m+6}bLjXM5P? zMWj9mn0FHXj$vp=oeHkuD3(~PLje>Dq7W;N&iNO;vp))K7K%hFgAz`D3RZQ@h;O(+&Q?Ppu z!+b+J-Kt=vA+Q!oCTX$qun}h@Ch;%0Lx&&Z%Ic&#z;i|b3%F|h5>Wokq}wm333!yh z;Ysfqp)bha=k-?7Osy$M145)J&l+bon{l4}z07BmI`FD)Ye|I9yJ>Fb9G4wzXTDc( z$*fWm0%J|Mo_2*I<#Cwy3+v)dmIvw0DWOZ2p}U9l|M3bdI&rR0Lql} zOr`if(jooO_SQv#)u?kb_5-dU*dOmw2z`WUq8uD@OGgtXmi1d4(6@I#B|Qcvcq|4L zy={4d51txQ8f5L}J0(07I`j`iC^8P2zuckQXbB67L?ZeD-1I-lBtBve2ZR>kg~s7Z z?5^=T_^d;oD$h(mZ(vOf{~LzHVF-^XR(B-PuAWprjBn6k3*|nYS{A#qpkwsX1;3!( z!E0Ii;)W|LOktD+oo;uvM(h&rvA0G~1Ye!hO9#kQUaZ-+{3eJFpY~cX}>K0(}4UWYkd;E|X?xq8*Y@W^c1A&X-*zTa=0^3dTZkAJ0aXTk5Ej#YbL{ zlHlrekW8|n=HDxXaKL+A`)O&P27<)iZY|X_8^4;4eVJjOd ztG+t%a5j+X_-}kW`U8mh4V0B9fM{MGQ-uI?vdki+KD#<`vxa$!@zYQ5<#q>bM3_6k zuyOZs6W>umPCHj0-c;f@=Dj0L2J}d-g~Q8lCqf%IjYpA(~=CCBN!3y~MAzRr3F9>C!t8YQNP)ITrxlSPlmKmVQ{3?Z^r zkSM$rnv^fdk39`b=1F4E57waRTmmFk38ic0Bx zu5AD{)2@);Jdjd+3nGrU@>x9l?JGP$6P(X6$T{H0jNJI}efY39{NuPyfp7bk=Sf0+ z&XBq8>5q`2=Zv&^z=|isoq1if8u|>i4)L;_H;oUOHskNSX_?9!jc)26G!qHRR{VPV zM}H?KQsJfwy_k_PV|}o(vsv(ypGbhsFlIK53gO+d(6xH| zuVgw;EYR*hp-bQ0?tPQ#y!XSw1?g^~&v21>(1~SR7 za!}^2x@KwXeH`^Lm1+5IvWPcXS_VNU%@j~dJq2_GI{9#vb7J%O)Zpc3p&)S?@;8{u zbxT9th3?lEr26Wpi=2Fd>+3hd#(~7|3Ue&yC)*nvh(mI=7VGQZMGw=fbZcVv_6@OP zmsj#8P2^c^8r1U=gD)39;hnoIdV3w$kG>Ib>PV+n`P?9kr08h-7plHtIo;~cyFwgO z)U&?@`feBlqFr92T=wg)(_cZPo}p`dJ9LY z;6z_i=+uK*`eEZN_Izg9m>_Zd)dyE zdd*aLvbSYP{SbzF?jz0UPxd#xo3uR=T7J#djTXb+vC!C>Y&tURxrC-~u|_eH3y5S3 z@ms$euAgjzKF3Up-4M%_c(HRKGEkCwN-@zcT7>=gFI=)un3uMWaPy!_o0gA zQ2$>9N&BA4^|2i>9P)>xgp}eDsmdSG7Y`acGK<$VEu_yi-oKxtXc6@vR?r!1hz+tH zuKMhUwYG@@8NMQ}t0HYdp|zc`P(8t>?-0Hun}Fdn3hH~hd3unC#Ay>7y0SaHN{kyE#Pc|(_Mm`Vry^`7tyD%@}p@K}3o zM(Jr0$;ew8ZI|$bhvLnS;qR6-=>C&+p13Q#>3STR$daCwh-4>Sn{zBVMF?z~giHw5 z2opHesWRGUW1V~eboyq);8e1d@CJ7K1+zllNVvqTfHpgv)MP9`lj5-Fjff44rL`tq`3HF@^hhp`3^AaM+jpd403HF+L4JXvv0cn0L^@eNVVVw^2Rk^M%J= zSM(WFT2c)Xq9FcVpl>R{5-P=+N5Qn(Uv6AE*|9o?aHk7nY(l?MJ3o$g)EKn>68duG z+GKGnOhHVb$GZ)^Xe#d{d#Y=x1c_F^Rq;PXXa2~9|Htv2Y_rYGFf$BupSf>y&pqat zo03M#(MW~NE%#9<6}dwRiBh?e`gF_@5`|PW)hbC6U*Ess{ln|^e!U*A=cD$e)qJ7L z79=BeBaH_Ty%wVpypa{j?D)jEY8yy6eL^rA`>y;!$_aoIv&z!ZQ3c`r6kO!&>n#B% ztXxcyjAim2?s%kFKdB^fcT-9`!&&B#H}An6pb6I|gZm&T^3fDOYQUQv(aUcLeMJ;q z#MC#i7beY8F6wv{A0Jkk@)c0(7?k5XAdD&55;*Y}*&(onW1WQ&Ss}F4zm}xjh&;2u z(!Um?fe0b#8I5@sS&3cv&~O%@9pctZtCrgCcV=_KTvezYG&N;yI3wFHLEHtG5oC24!`6eZ>b1S|g5?zuumg?-F zVGrq0!M<@&T=K6p9C5<={bKzH!|UVcbEFU5A%=SLg`pP-SWkjbhl9Y0*jcU0Rx8`6 z$>RFZjKuY$=|$i??aZ}Oe`Gr1$Qz_KyY~9d-zHif-7Elh4p-Go~-}Ls|{VMJN82@F7Iw%wYHg!+U=M zSmG?gS3-hDg0fUR*?q11-A@7GArT&+fEt8o3qh(^DK7)X4C7x{3IJ0d9FBy`E>Rad z*XIx39xDIK^wy;ux8 zx?%+voYzS;z4R#!NXh`>84f*9ZTPM`0r>}C@iYSuf!2YRqmfSQW~yJ1OX)ucpkbnG zFP4$~G-W^^&v7teC<3=3$MP-t9y2WWf+7^T_w`n$Nr87=GUjnFc&p@`z##DBk4>r$ z1}vB*!PlGYS0O5LA0xr?Jk00!-^suJ14Csg7?zS?2&q336HK$Qm%i1g_dy-|0%vFp^--v< z7|bj!uo=z*Zz7Y?yA8Qg=V?ZS3#^NJS}i@5UaE@$X|PD zM8uqOobXv*%}Xq7mF1qE&kR)*xse)5?xJ{~T_J|_HlE-Mi-U^r-N~7DbQYj zVjwlK!x|Y^m)(oU+8wnOKJ>li#J{7>l-7t6G|NezVwnx=FoIyrD?)xFo%Ut*<~|Fg z8y}xZALN%u)0S1z6iIDgd%M)}QZo5V z^7#8RZYOARBeiVbAJ-+`tDD^8{@4{0Olu$Tlo(}YU#s{psXSs=-cs&Hidmt8X0~c9 z?@Pi#+Y)=FMj{x{zC^*JnP>HuPT-3oVe3?x<5m5IBfndm4JKR+>0GUoFeN1+NLqfBCTcjAC{g7wJjA3r>5{CvP;%(Ns zC#8?u;!O^)KNUM`|EPe4NIPcGQy~zq2J&U_z=HC!5m6lYH4PU7|6WpHPeG z$}*n>R z^oSApq?YWbg@*`RqNC}@P~C~=XY!KY?P(x}`2C-Ug865}&%j;S4-Q<5J=QxXZCUw8 zfTaV&X}kt#q6YkF$rj3BYTS1ZS`SeBJC#wgYM}rA!`-{O5q8%1!gcF@m=ncTT>Hp; zqM1T&1jRy-6VmJz2CgYgI6(Q>#;FlJCuo|J|jg2o@+$AaWj=M3{+gn&7R{o96hZCw%b8fm`bWL|v zb$BREyB5KTV6k8&cxm{+v$du9?#Yx_S89$pm~6V}wlywHJqAC;ZtYm_)9dHCch_LS zRtR|OXqb8QjFiQhlbg;%k$lUNq9X%Z zu17=fbLhJD$4_C=o-s(rkH0rRj+^F<#p}|hR9#jh-Sb>3O7$VUOPMp2`3257DdHKf zRkU@7-jSVS{~Wth*8q8#&mpPj6%L+(e!H4uv0(r<>wXWOk3ou`zh)G_BXfD^Mdl2> zE1+AZq>sDn+Rxq*m7n41k+CGV$C=6>`IXYLNm!bjYj(N`n9@Z<)m{oGu zziV7`{|3blTzx?@L|5;@1}OMRFv;79op};{jt3eza(4Hy(@hD+^diO-gEZyveI&!x zUEDIQBeCIz|M^eIdy~$Smai(CDdo8nzx(QPj>~){3f!Ma2X-eRQ_x4UwmYW}JPNC+E7O!SQ&`+ zlM0KRvGx$567Sjz3bff-v~%$^@M=4-;=CI_n35(kR5K{V^LcEi6)W!Zw3lag56PHG z1O0yEMFoCmsjRW&7P*L9jf+J5_>JQ5%lzr-=hH5E+7g(#dpo{iNZVBa2SX#|XQF9} z&@&XjK`_ZVTf)}{eAi%iDrAuAj6Dz~eRMXwR#2pJ#L_GY0{!HMpHvSy{HTi}+58nY~7@P<7Xl6sN zMN_7Px1mZJE9R!Kot+dCa9v4;Fg#8>CF;{;RD8(rT4?;?jtg;hA*aMe64a8fe9R0b zwp=t*(x*<|Ial>V>GYpf`!X&5w{~JA7Zm5gJ4 zM)~3~-GMI|Pt)K;EwD|!7Da23&v23E>Um|eC08&#MTFN+`K$ZWsdi5I z0~j9yi8jw?pFC^%2&T;N%|~lz$Y@F%9%D=CcpuKW}E6CV%YZT(b82`Z&lW4G&q?IrDVzkF-6w z;DHbhv4&s9nI4NlClzU%D+#}X>eYzsC)u?H529Xu_HJNm(5^6GkNIK>f4^7qp>IGc zQRO!I8kfHmk}$OTS^Fpbr9T_-qk5wG{J}~%wkkQ4Fg4}Kla1G}6lpLL4=(eMTiBaf=}wQg4&=DK0{k zxe;Rt`>x6mXgdwl3h+Jn7+r3VI^N>0pyn;ecAj$_#!-DJNmy%Ju(Qrdp4jU^wr4qB%*22Ji(d}{KAqiSxthT*wO@C%2+ELFbO=exRsiU2lj3ZF*Qt3Gt zeKV$wGKj0hG`wb1EDhxfGu4Fn26wGy*EAn>sXu3uEaM}cR|y51Qv8&{mSUF`I_}}K zfxlQLOp0z{oo8KiWYBgLX7VDb699~V9IF!8EDX4k?(T5ZQXJ#-s4%Z<{e;)k75~bj zgms_1*#d~fsERiPM5WX7bjphsqoz;$*jqyj4CBc%+?CS8$LpWh*N2pC%$qa4_hFDV$W<8X(&?F}y_Bsl@q!Vi1Id38w}^32 z$rowUKOy`OJ~6TAs}3dATP{&E>d5EYfx{7uV*YX1LbS_d#sFp+;$Wg)qZgqkJ?M(5 z-TuLkN#att>88)rK_XgQ6{WFs(=o0znTsQF;W8Zq`a~f!9NjVJyp87 zI0N0@pN7h8ct3{n!hlXmnFKQ=L)!4=MUJ++6b%5!Y1QW3FGy657}O2h6aSt3WHsJN zrj=%+Ft1`8N+qpW%(#b!ILgFMjd9yIqQ_0QdOCNu8lQJ|UN_ek)8U-Bg- z4!(AuCa!oCa&BOv!jRJ-LX3X*z35x~JfBFM+_37f36k`aIheh>aY84G+{Rf>HjZ&^?P`zMv-*iaR&>A9z3axB1y$T`esP z=Pc79Oxq*+>_a5JxV`Y{PJj5x zWe6rCzJ^3wAM}{rqTs%Si|`4AYe*E6aOY_FprK7#hX^Z>XPyLgqL>M!V++Um>5<1l-lX!To}{79~uhMkN8`Ah3v(@WdRXq>u@-w-Lt9BD%#`$#~Zr?4J*2Mqq| zs%x+F&qtZ-TU?OWV_Li$3CQ+$4#o7yxda$at2!IVQ9mfiE@>!jHpZToWM;sbY9qt= zwIY3a7%DB*W#LjdxvxLP%wUwg{|vX`3XGiZ#FNpwtA@9x)9qE8yb3)K)9)dFtufnt zzvHeonMqi8CFJP|3)jlux?XiRJ7O{D2#j@LpV0y)ghe=CyhmelUDZM$GQeN`#ZzDy z1plpZ^TFqxq&Hkr2+<4dYTXe^fqC!Gj2dZ9HrCgg1i}y|A=E%x)!D2Ugg{t|UM~6I zj|WORZ@K7vZQPJ-jG^EaFUReSRy8pDPUB))sDQVZ@Cc)KGL5AqJPWeXKEcv^d^=Mp zL(*cptfy2_W|=H*I>8WHx3bS@B*DH9gqYQT0srJzIF(h_2-@^=1g@nZ6p+?Bn~j0U zp5L?H?Z3*`WqY;)#^-zXz>M$qGG-qed#y zISv{vpm}9mu;*fy@rE3xWwnOS$h?DG!S}{U=P6*TIHtUcHF5jyylW!%2$5~T9ipHg z=m%>AlWh6i{xcXjk4bkT!AUZ84Ev5^sj#-8$UL7Dq2i%yv?Onqqv~56BaPHHE0{=v zdx~k`cO+#ihvwOK%(GkzQQ7<`G5crq?G_IqV9Vl@}Aa7}VUz-8lc0idq2R*rN>6iuR(r7OWXbeq{iweEws7=sN z@hgUFLdjk}Gol^?7bicSHF~SpG5knuS3@Gkn~Pe$LMMgfUm@VI~SKTUGWeD%S=VDbZYa} zb966$SdxJ74ucX^-? zkp29zu9r^k6tgJ%D^=lHH7(I~oA*uZ`a6&-E5J}#eiffDx-L@@NHzu4_2q~H0J!!P z{BfD_&>Jg<%Cr{6gBdZ`MxWm@y_hcoo9O_&VlU02%J5_WTH$+vA-Nm*nl{}LGIPv80 z!KR#GO=X7;z5`MRPKK~tWHe8mlp}>wS*=cXN0fs7YP81iH#qu>#fp_AE84!Q4Cq;D zS!0?F+Q#343;R3_U^EL1oL>3kn3z#!s!yY96bL>ET%AU6b40A}`u8a`mf6RXfTH~T z4sdB%ZUEEnhSJW4cZ3@9Q3zVX0RNGYeroJR?TS(|C`g{+H0mtiM`h;YJ9ek zl?Agt&Eda#eQfA#*So5vzv+Wecb%pcW7FTxM zj3MI$v^yMWL!w)wNQbZL?-41mO|kc9!&g0XoaYHR2b1x>`koSd*vQkbK9M9InC`~sSK6n z&_kJ!wSEgX{C*5#{?(3j!Ih*ybhqmCj$Od(D-l^3Z=iAa5%=saYkiodjjpTg+-i7z z9OnI!F#o>_(C6Z(R;C9Yf;ynxE>?H%X5E_P_hjIOTLCDnAz$0<0mT%c9k;SPFzRrD z@DEk#6#ag(8g&45k;CQ3ZQV~r3 z(V#V|UfZxX3P>_RzI49+t{=bz!f^&UKE8(6WX~Y5CObmbMfAWUXR(=@+*;rDHag2D zve)wTNN>hQty%C36VO;!qjh%8c-T{(lKe3pv+ndihyC_TqcUWXWinlpHx-9g$9Z>O zds~Gjj1j3)9tf!BA8&@%sf$y?2U-jLLq$m$wP%DQEd?AzGG~(Agf~WQe*uY%OAgr# z3|Czt{;k>u#5hFgxbZI*<}H$@?5mw%jV+_X1-34G*@Z|5FEB;8q`Ol_IH8SwKj9QOJVF;`8Kws%y&}kC}Mr^Te7G(cy+iuRLTqeHazYu+&xpH=T-y zYoILq>$g8Z0g@R?@fQhM#cc5jv5@=o<%0r)Zu7bZdmlzkz7Lvg&3w>sGTQ=9UmL28X1Sn@ zP(p9W6=I0=&rY^OfS%Hfg$!apm2b{Bjk4lm-TD4GqUQ_0c41`^51NTeuMLxFg z;m(l-(XNNpA1f*)J{=>9q~Er;G8S^?(^pTmbVHgi9!O}Ifll$`u=Y0idPHhcj^Hp=J~g@3gV}%e#(cU3L5O@gA}G;0lOpv@~rDUBGA3C zc5q!-v4cW+ZfdozSe&=d>g;;8Ctu$VkGCNn5ZSWPTi;-%13j8mTn}shDF!P~E6yv3 zpWV}8f^uEkgHm#jLSPk);ejsW;6p-PW-A=lNU#SB6w%(c0xU$mK0G% zsUQ7(lYK}e^m{5sUw~p3YdP>zSDFg#{clW_(XHrHq777Z}z~U zcXz+v3t|b%OknK#;<}^Y5;uY$uN^Ln|LEmie%hPeKw)KsQ+H3Q9`%j*n1GqE>@fCw zH2b8G%~th^Wk%gP%#?Q$WvR#yJxfMi?>a=l z`WuE%kgt%$qT*ztl(#J-ZVndS_-iox;~{g;Utyqi*ZuOffZ>%iE%$q7l@bC)OeLCh zAm-XuQYf@&Y}k%Y(Sksv&@Qs;ukO*D2etHj@5_Vt$b72x2ftX#P1D7kNmhK3l}aYA zkYsF$rx&hFxw5|t(Hf@Yns(eW=e+x|HW;*tC@JwZve-*#Hd`H)O}Bib&^=gua6vD& zEsJkK?-w0D%`ekCO+9QV7{ZN+3nOEjL>OYcvALly2?LAi^ec2 zz@783;Unx<98%k}3VY*lh#W}GE6taNpy@I`CgW;7?s84YwzAJg@6){0zM7P&x6)Mj z>=^|Ln+kt=X#dYRbdPblFRi6Ef>3^-9Z8M!qjUEXKSZ2R@b&!tZfrXCTxPyu6yQ0|PN-)w5sw7r&(y>q{>dlJ z3v1G##o9J}<+ZgRBFrZ5D|`){`3K#rg-7D*AjtVU-#*%+#Bw18fJHMS-Apmv+`oL# zuYZ4Bkbf8$oQKQ>)=Df&VZT8RVOX9AL+_oG3DgTQ%FP)N9ZiG;Dk&t)u1PM-F_4xR zt!^O0$birB@YM>uM~9H8?6G`~i5|f%n3Uy#p%+%Mfg%pm9I{o_Plr5Lfi{n-ZTakJevK4RF?^X8&C4v3A$SafR z7DC;-zwsClrU(&2h7RIyXh3s6Yra1&M~dI`HW_?$6J8TnWSwGI;8Kh|H0-nZY5?^_ zqOsKRw{ktTyI6hiY-vx*lrPLK-s%a2yQ}*$Mf(9HneT+;wq9|jp4pkCNyU6n(?_At zckUlD;|q0)7nbaAz6va5diqvK$inYwMMkNzEJQ@=wJ(}JBs^3pi8z6Lr$Oc#cWD$d%kAIs5unaFi7Sq7Mox`L^R(3!(rY1U7@Y z3P{L59{rray*5q!d6eQa5QOqKhfB(*>Z0KiWUfa0A@*nTo1oX!YIfcqbD%2av*AZ| z`X&kxOgM)VYeepo%)OrHsr1 z24jncGhNRnC7v|9umBhhnGnvihD?u|@d)m^q9?>slZr#%tsj-4IT)KIUMaOiOGE|N zArTYG`86$av;j*`kP!g9YOZT#Y3k;O-s zLafCw{^oDvI__B$Xer~z59J_8Paw#99kCJK(-25%CP3OHGCMyM(oucDnGGj>mi;Aa zieVsBu(69I)Zy-1S-f+&sBY(js^H*Z|6Xoh%z2Ic-hM^);E~nt0ltBHV>B~VY`GVb zXWbYNFhM$w%qoP)`v~Uhy=o8CmR{Ly%P~ZEvsPH2Y2o^*Mc-AC`j-Nd=7qXR5lpQKDF~KRaD0j zqlsx1(YK21@Y$5aP>?#1-zXYW@D2>i{}l6XJ`Be$BPDve$|$N+YPDBarGtp|VgQC- zG!^hP4`|?_Nm9+cRg;R2fu}~p(&h-J_i&*vuH=JcjeSJw$8!Xdg;Q^}9p*bIrcbHE zQB1~7)vBc{$%fcmuf+)5AzsZY-~5WvF|aGcN!2ScOS~THH+wkpGwccI#-Jw2sBn@R zFUpn5Eg0Dihp@rkqu^h9dT%gN$pL-l9EVXs58L3==w%d`^7f4lBXrIDzq?bW8U<6W=yz7MeGZ#u@E|Ah~v;qq)j7?1O%T6f+3qT+dWiMi$sYk#fTCL%=tR1Q$yj_MQ8 z;3z&fOx0$}R&z=`!i&24P%Wo>8os=BhR9IWN6SMsK5HTU#J1ji9vv&amU<%8Dd~4w zO{6?Vj$^mu`(y?_pvxb?^X2~wS$~Oj8^dysJIrpOUXY)Cc0-gZa(WpZrm%Sa!Lc)z zrU$tF7po6C2JA=?7@!$pf0k&dhVki5f^7jNPn z-;f67=v}DH`b=t|7Uc!Ec&<%m`LIBX&yW=%a?g5JMGbbg2h8h- zE6yZ6zb(hETPZ;_F4`#4jMwxMDUuttDo4Jsl0NCM=Onj;Rx${V>8t0rOaqt8{;Rt| zjkuWObln<d6%eOeeBT=BV4k0TOlM&4_N3s*<4Vpx;gRaUa+`RTzRzRN?q zl9^rK5@mv&e+uxUUSP{bxQbg8vWq#lK}q`$}UYPJY_f@eJP-5{;?k z8+RRq{_^=lQe}w>VZ1NEWF^fc^6%Q{>xHd=(rsP2KR&$2$QnHPa4^9AaG%}5>w|}Z zNna9XCLrxB`zusRDC`35ri5G?x@Aq6_Za9BcWT+w)mm{J^jSdmr$KXXlED|d5Ck!d zOO{{+C>)oEEu@c9lO&qlLq%rK)H)a*ze5*$8idF@oL*>>rw3mhrOfhNegk7Q4#Vj$ zbNP#Dm?Ej`8wsj*-L03N*wH1qZj1j3<=Q>Q#LX6`C2Df^3X)};Ggrx|u%qAr3+=v@ z!c>HGaj`L68}d?1YkR)s#GamgTS}ok>1siQy$>RDzz@4c@=sAbCg879t@%D+CMCKu z!{@5!%wJ=ddJjFvG*d+$#9}9#ti{wQz#R!hDGFr3W`X^t7{jQTG#BNfx&VFQf&}5G zA!Uvp@)0)aK6X=n6FIu%Gs@TO;wp1$PEW_Y&d}P|7Hwd5EPsdOYi~_z^7^w&26|&M z70gF-l&YE{D^|wtjn6zC$kWUPP6Unar%wM!gPO4FT917_cL7VXe^x9EeP?zgIB(Dh zVlvys-Ho;^T(Qj08&D^obdOH%Ecro|l26M=`fZ7hc^Q<}G9Z^DUIHFJ{_Q9=yE)7M z_-#rE!zeDJfBYY~h!T5aPAtuq=qzG*CrvK$$0w@r7#eY6Z{5(kGFa2ACK~$`O zIz)|?fHC}>r2cgp9B_IMbo7|n8chG=_Gxh6tq&>zo0KE+8*F0|C~Xe}HB^0~3FJ>H7F9fHxh$W`Oorj1&w!G)T*9166ed>6!wM;TEAEJ8z>)S>fXJC{07 z!c>2ld{2hPh_8ek^MTogsHX(fm(>3g%JYE)ATLhGEA@x@N8NMN_Zbh>Pv`3>44|eL zlq$F(g%qrqN|Kg;h$zs<6$O2DP$2AnnUL@)>iooD!5yZ0pta^b)i%Y`!mq@7IW{py zzeT>FdBw>?T5vrj9}fFb(;u{y-h2Qba@bEIWWAex8{d2F1+2(%>VZCO?qT&V8Z;Uu?52X>!N9@{I@hY^QM|RF-WrR|f2`ik?5zBp^flspdty8m zh8HDC9<)E1obTg$uGU6)I*_E8*srzFcU1X6vjyN>_86R*B6z)dNT68{D4zYxg}Jag zbX>O$(>eY+>O9Pq8V)rRYW|zB;21ObHeN#}>sYFphzQy-vn%@`$!+vDSd7417)k&iQYYjZ&`kk+};;g#8=wX58a5@qPq92dxYfy}#t54X6<3&#&x zAA4US8;MXQS8=_B#}20%Z5oDAt0)>0)y*oGfylYD6H>NA%C2N#B-h z7il2~2AUvUE(95h&5~Bu(S_+Ic6sYbgvsgk=pvMHBCka6dSkp}98`zp}m^{qJv)Lt|7K17v0Q>4lHMfM`Q>~@@R3QMDao8OF0}v>3=S> zH%di%;q8m)aMr` z=DHsE#Ko;ZWs~fW>;~_$<<8dvU!D)>Lm)mK-ymBBXF%S_CvHoPU*D}1c z{9iLDk|NlL*3h`zrdbSRXF*6t#Zf8$LjDzg(Eefh&j=EiWc;8;Y^hS@JRn<<-pqIV zr1#)6n}2*6w876jlY2$a#^cfKtsUd&8xN_X-6FagGukUVktd6ZqdQHfytdLy56-w$ z-|=zJVE$OjOicHfKK?7pF�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�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\('([^']+)'\)/is"); + +function replaceCallback($matches) +{ + return 'isset($request->' . $matches[1] . ')'; +} + + +//获取一个目录下的文件 +function mgGetFile($inpath,$trim = false,$stamp = NULL) +{ + $files = array(); + if(!is_dir($inpath)) + { + return $files; + } + + $it = new DirectoryIterator($inpath); + $stamp = (NULL === $stamp) ? NULL : explode("|",$stamp); + + foreach($it as $file) + { + if($file->isFile()) + { + $file = $file->__toString(); + $fileExt = (false === ($pos = strrpos($file,'.'))) ? NULL : substr($file,$pos + 1); + $fileName = (false === $pos) ? $file : substr($file,0,$pos); + + if(NULL !== $stamp && in_array($fileExt,$stamp)) + { + $files[] = $trim ? $file : $fileName; + } + else if(NULL === $stamp) + { + $files[] = $trim ? $file : $fileName; + } + } + } + return $files; +} + +//获取一个目录下的目录 +function mgGetDir($inpath) +{ + $dirs = array(); + + if(!is_dir($inpath)) + { + return $dirs; + } + $it = new DirectoryIterator($inpath); + + foreach($it as $dir) + { + if($dir->isDir() && !$dir->isDot()) + { + $dirs[] = $dir->__toString(); + } + } + return $dirs; +} + +function replace($dir = ROOT_DIR) +{ + if($files = mgGetFile($dir, true, 'php')) + { + foreach($files as $file) + { + if($contents = file_get_contents($dir . '/' . $file)) + { + $contents = preg_replace_callback(REPLACE, 'replaceCallback', $contents); + + //echo $contents; + + file_put_contents($dir . '/' . $file, $contents); + } + } + } + + + if($dirs = mgGetDir($dir)) + { + foreach($dirs as $indir) + { + replace($dir . '/' . $indir); + } + } +} + +replace(); diff --git a/tools/tabsize.php b/tools/tabsize.php new file mode 100644 index 00000000..927244ba --- /dev/null +++ b/tools/tabsize.php @@ -0,0 +1,106 @@ +isFile()) + { + $file = $file->__toString(); + $fileExt = (false === ($pos = strrpos($file,'.'))) ? NULL : substr($file,$pos + 1); + $fileName = (false === $pos) ? $file : substr($file,0,$pos); + + if(NULL !== $stamp && in_array($fileExt,$stamp)) + { + $files[] = $trim ? $file : $fileName; + } + else if(NULL === $stamp) + { + $files[] = $trim ? $file : $fileName; + } + } + } + return $files; +} + +//获取一个目录下的目录 +function mgGetDir($inpath) +{ + $dirs = array(); + + if(!is_dir($inpath)) + { + return $dirs; + } + $it = new DirectoryIterator($inpath); + + foreach($it as $dir) + { + if($dir->isDir() && !$dir->isDot()) + { + $dirs[] = $dir->__toString(); + } + } + return $dirs; +} + +function tabsize($dir = ROOT_DIR) +{ + if($files = mgGetFile($dir, true, 'php')) + { + foreach($files as $file) + { + if($contents = file_get_contents($dir . '/' . $file)) + { + $lines = preg_split("(\r\n|\r|\n)", $contents); + $result = array(); + foreach($lines as $line) + { + preg_match("/^(\s+)(.*)$/", $line, $out); + if($out && strlen($out[1]) > 0) + { + $line = str_replace("\t", ' ', $out[1]) . $out[2]; + } + + $result[] = rtrim($line, "\r\n") . "\n"; + } + + file_put_contents($dir . '/' . $file, trim(implode('', $result)) . "\n"); + } + } + } + + + if($dirs = mgGetDir($dir)) + { + foreach($dirs as $indir) + { + tabsize($dir . '/' . $indir); + } + } +} + +tabsize(); diff --git a/tools/tc.php b/tools/tc.php new file mode 100644 index 00000000..885bd1c4 --- /dev/null +++ b/tools/tc.php @@ -0,0 +1,28 @@ +G=$IYbZ*1F6zTW5Dd;Wd*_|CrP|JE3* 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
    vQWQ81PSRYsyy%}BasMgW*@C!F^ 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

    mDlI*-YYr4^5Gs;u7l7((%~7noXQa; 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 XH3K=u5BCppxNtlQhqw|l4gU3i%C&)! literal 0 HcmV?d00001 diff --git a/usr/plugins/Akismet/Plugin.php b/usr/plugins/Akismet/Plugin.php new file mode 100644 index 00000000..3b6adf93 --- /dev/null +++ b/usr/plugins/Akismet/Plugin.php @@ -0,0 +1,213 @@ +comment = array('Akismet_Plugin', 'filter'); + Typecho_Plugin::factory('Widget_Feedback')->trackback = array('Akismet_Plugin', 'filter'); + Typecho_Plugin::factory('Widget_XmlRpc')->pingback = array('Akismet_Plugin', 'filter'); + Typecho_Plugin::factory('Widget_Comments_Edit')->mark = array('Akismet_Plugin', 'mark'); + + return _t('请配置此插件的API KEY, 以使您的反垃圾策略生效'); + } + + /** + * 禁用插件方法,如果禁用失败,直接抛出异常 + * + * @static + * @access public + * @return void + * @throws Typecho_Plugin_Exception + */ + public static function deactivate(){} + + /** + * 获取插件配置面板 + * + * @access public + * @param Typecho_Widget_Helper_Form $form 配置面板 + * @return void + */ + public static function config(Typecho_Widget_Helper_Form $form) + { + $key = new Typecho_Widget_Helper_Form_Element_Textarea('key', NULL, NULL, _t('服务密钥'), _t('此密钥需要向服务提供商注册
    + 它是一个用于表明您合法用户身份的字符串')); + $form->addInput($key->addRule('required', _t('您必须填写一个服务密钥')) + ->addRule(array('Akismet_Plugin', 'validate'), _t('您使用的服务密钥错误'))); + + $url = new Typecho_Widget_Helper_Form_Element_Text('url', NULL, 'http://rest.akismet.com', + _t('服务地址'), _t('这是反垃圾评论服务提供商的服务器地址
    + 我们推荐您使用
    Akismet 或者 Typepad 的反垃圾服务')); + $form->addInput($url->addRule('url', _t('您使用的地址格式错误'))); + } + + /** + * 个人用户的配置面板 + * + * @access public + * @param Typecho_Widget_Helper_Form $form + * @return void + */ + public static function personalConfig(Typecho_Widget_Helper_Form $form){} + + /** + * 验证api的key值 + * + * @access public + * @param string $key 服务密钥 + * @return boolean + */ + public static function validate($key) + { + $options = Typecho_Widget::widget('Widget_Options'); + $url = Typecho_Request::getInstance()->url; + + $data = array( + 'key' => $key, + 'blog' => $options->siteUrl + ); + + $client = Typecho_Http_Client::get('Curl', 'Socket'); + if (false != $client) { + $client->setData($data) + ->setHeader('User-Agent', $options->generator . ' | Akismet/1.1') + ->send(Typecho_Common::url('/1.1/verify-key', $url)); + + if ('valid' == $client->getResponseBody()) { + return true; + } + } + + return false; + } + + /** + * 标记评论状态时的插件接口 + * + * @access public + * @param array $comment 评论数据的结构体 + * @param Typecho_Widget $commentWidget 评论组件 + * @param string $status 评论状态 + * @return void + */ + public static function mark($comment, $commentWidget, $status) + { + if ('spam' == $comment['status'] && $status != 'spam') { + self::filter($comment, $commentWidget, NULL, 'submit-ham'); + } else if ('spam' != $comment['status'] && $status == 'spam') { + self::filter($comment, $commentWidget, NULL, 'submit-spam'); + } + } + + /** + * 评论过滤器 + * + * @access public + * @param array $comment 评论结构 + * @param Typecho_Widget $post 被评论的文章 + * @param array $result 返回的结果上下文 + * @param string $api api地址 + * @return void + */ + public static function filter($comment, $post, $result, $api = 'comment-check') + { + $comment = empty($result) ? $comment : $result; + + $options = Typecho_Widget::widget('Widget_Options'); + $url = $options->plugin('Akismet')->url; + $key = $options->plugin('Akismet')->key; + + $allowedServerVars = 'comment-check' == $api ? array( + 'SCRIPT_URI', + 'HTTP_HOST', + 'HTTP_USER_AGENT', + 'HTTP_ACCEPT', + 'HTTP_ACCEPT_LANGUAGE', + 'HTTP_ACCEPT_ENCODING', + 'HTTP_ACCEPT_CHARSET', + 'HTTP_KEEP_ALIVE', + 'HTTP_CONNECTION', + 'HTTP_CACHE_CONTROL', + 'HTTP_PRAGMA', + 'HTTP_DATE', + 'HTTP_EXPECT', + 'HTTP_MAX_FORWARDS', + 'HTTP_RANGE', + 'CONTENT_TYPE', + 'CONTENT_LENGTH', + 'SERVER_SIGNATURE', + 'SERVER_SOFTWARE', + 'SERVER_NAME', + 'SERVER_ADDR', + 'SERVER_PORT', + 'REMOTE_PORT', + 'GATEWAY_INTERFACE', + 'SERVER_PROTOCOL', + 'REQUEST_METHOD', + 'QUERY_STRING', + 'REQUEST_URI', + 'SCRIPT_NAME', + 'REQUEST_TIME' + ) : array(); + + $data = array( + 'blog' => $options->siteUrl, + 'user_ip' => $comment['ip'], + 'user_agent' => $comment['agent'], + 'referrer' => Typecho_Request::getInstance()->getReferer(), + 'permalink' => $post->permalink, + 'comment_type' => $comment['type'], + 'comment_author' => $comment['author'], + 'comment_author_email' => $comment['mail'], + 'comment_author_url' => $comment['url'], + 'comment_content' => $comment['text'] + ); + + foreach ($allowedServerVars as $val) { + if (array_key_exists($val, $_SERVER)) { + $data[$val] = $_SERVER[$val]; + } + } + + try { + $client = Typecho_Http_Client::get(); + if (false != $client && $key) { + $params = parse_url($url); + $url = $params['scheme'] . '://' . $key . '.' . $params['host'] . (isset($params['path']) ? $params['path'] : NULL); + + $client->setHeader('User-Agent', $options->generator . ' | Akismet/1.1') + ->setTimeout(5) + ->setData($data) + ->send(Typecho_Common::url('/1.1/' . $api, $url)); + + if ('true' == $client->getResponseBody()) { + $comment['status'] = 'spam'; + } + } + } catch (Typecho_Http_Client_Exception $e) { + //do nothing + error_log($e->getMessage()); + } + + return $comment; + } +} diff --git a/usr/plugins/BlockComment/Plugin.php b/usr/plugins/BlockComment/Plugin.php new file mode 100644 index 00000000..b80ecd80 --- /dev/null +++ b/usr/plugins/BlockComment/Plugin.php @@ -0,0 +1,124 @@ +comment = array('BlockComment_Plugin', 'filter'); + Typecho_Plugin::factory('Widget_Feedback')->trackback = array('BlockComment_Plugin', 'filter'); + Typecho_Plugin::factory('Widget_XmlRpc')->pingback = array('BlockComment_Plugin', 'filter'); + } + + /** + * 禁用插件方法,如果禁用失败,直接抛出异常 + * + * @static + * @access public + * @return void + * @throws Typecho_Plugin_Exception + */ + public static function deactivate(){} + + /** + * 获取插件配置面板 + * + * @access public + * @param Typecho_Widget_Helper_Form $form 配置面板 + * @return void + */ + public static function config(Typecho_Widget_Helper_Form $form) + { + $hosts = new Typecho_Widget_Helper_Form_Element_Textarea('hosts', NULL, NULL, + _t('地址列表'), _t('每行单个地址,请仔细匹配以免误封杀')); + + $form->addInput($hosts); + } + + /** + * 个人用户的配置面板 + * + * @access public + * @param Typecho_Widget_Helper_Form $form + * @return void + */ + public static function personalConfig(Typecho_Widget_Helper_Form $form){} + + + /** + * 标记评论状态时的插件接口 + * + * @access public + * @param array $comment 评论数据的结构体 + * @param Typecho_Widget $commentWidget 评论组件 + * @param string $status 评论状态 + * @return void + */ + public static function mark($comment, $commentWidget, $status) + { + if ('spam' == $comment['status'] && $status != 'spam') { + self::filter($comment, $commentWidget, NULL, 'submit-ham'); + } else if ('spam' != $comment['status'] && $status == 'spam') { + self::filter($comment, $commentWidget, NULL, 'submit-spam'); + } + } + + /** + * 评论过滤器 + * + * @access public + * @param array $comment 评论结构 + * @param Typecho_Widget $post 被评论的文章 + * @param array $result 返回的结果上下文 + * @param string $api api地址 + * @return void + */ + public static function filter($comment, $post, $result, $api = 'comment-check') + { + $comment = empty($result) ? $comment : $result; + + $options = Typecho_Widget::widget('Widget_Options'); + $hosts = $options->plugin('BlockComment')->hosts; + + $data = array( + 'blog' => $options->siteUrl, + 'user_ip' => $comment['ip'], + 'user_agent' => $comment['agent'], + 'referrer' => Typecho_Request::getInstance()->getReferer(), + 'permalink' => $post->permalink, + 'comment_type' => $comment['type'], + 'comment_author' => $comment['author'], + 'comment_author_email' => $comment['mail'], + 'comment_author_url' => $comment['url'], + 'comment_content' => $comment['text'] + ); + + foreach(split("\n", $hosts) as $key => $value){ + $value = trim($value); + if (strlen($value)) { + $regex = sprintf("/^%s/i", preg_quote($value)); + + // 如果提交者符合指定的 IP,则扔进垃圾评论中 + if (preg_match($regex, $data['user_ip'])) { + $comment['status'] = 'spam'; + break; + } + } + } + + return $comment; + } +} diff --git a/usr/plugins/ConnectToTwitter/OAuth.php b/usr/plugins/ConnectToTwitter/OAuth.php new file mode 100644 index 00000000..b36520e8 --- /dev/null +++ b/usr/plugins/ConnectToTwitter/OAuth.php @@ -0,0 +1,768 @@ +key = $key; + $this->secret = $secret; + $this->callback_url = $callback_url; + }/*}}}*/ + + function __toString() {/*{{{*/ + return "OAuthConsumer[key=$this->key,secret=$this->secret]"; + }/*}}}*/ +}/*}}}*/ + +class OAuthToken {/*{{{*/ + // access tokens and request tokens + public $key; + public $secret; + + /** + * key = the token + * secret = the token secret + */ + function __construct($key, $secret) {/*{{{*/ + $this->key = $key; + $this->secret = $secret; + }/*}}}*/ + + /** + * generates the basic string serialization of a token that a server + * would respond to request_token and access_token calls with + */ + function to_string() {/*{{{*/ + return "oauth_token=" . OAuthUtil::urlencode_rfc3986($this->key) . + "&oauth_token_secret=" . OAuthUtil::urlencode_rfc3986($this->secret); + }/*}}}*/ + + function __toString() {/*{{{*/ + return $this->to_string(); + }/*}}}*/ +}/*}}}*/ + +class OAuthSignatureMethod {/*{{{*/ + public function check_signature(&$request, $consumer, $token, $signature) { + $built = $this->build_signature($request, $consumer, $token); + return $built == $signature; + } +}/*}}}*/ + +class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod {/*{{{*/ + function get_name() {/*{{{*/ + return "HMAC-SHA1"; + }/*}}}*/ + + public function build_signature($request, $consumer, $token) {/*{{{*/ + $base_string = $request->get_signature_base_string(); + $request->base_string = $base_string; + + $key_parts = array( + $consumer->secret, + ($token) ? $token->secret : "" + ); + + $key_parts = OAuthUtil::urlencode_rfc3986($key_parts); + $key = implode('&', $key_parts); + + return base64_encode( hash_hmac('sha1', $base_string, $key, true)); + }/*}}}*/ +}/*}}}*/ + +class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {/*{{{*/ + public function get_name() {/*{{{*/ + return "PLAINTEXT"; + }/*}}}*/ + + public function build_signature($request, $consumer, $token) {/*{{{*/ + $sig = array( + OAuthUtil::urlencode_rfc3986($consumer->secret) + ); + + if ($token) { + array_push($sig, OAuthUtil::urlencode_rfc3986($token->secret)); + } else { + array_push($sig, ''); + } + + $raw = implode("&", $sig); + // for debug purposes + $request->base_string = $raw; + + return OAuthUtil::urlencode_rfc3986($raw); + }/*}}}*/ +}/*}}}*/ + +class OAuthSignatureMethod_RSA_SHA1 extends OAuthSignatureMethod {/*{{{*/ + public function get_name() {/*{{{*/ + return "RSA-SHA1"; + }/*}}}*/ + + protected function fetch_public_cert(&$request) {/*{{{*/ + // not implemented yet, ideas are: + // (1) do a lookup in a table of trusted certs keyed off of consumer + // (2) fetch via http using a url provided by the requester + // (3) some sort of specific discovery code based on request + // + // either way should return a string representation of the certificate + throw Exception("fetch_public_cert not implemented"); + }/*}}}*/ + + protected function fetch_private_cert(&$request) {/*{{{*/ + // not implemented yet, ideas are: + // (1) do a lookup in a table of trusted certs keyed off of consumer + // + // either way should return a string representation of the certificate + throw Exception("fetch_private_cert not implemented"); + }/*}}}*/ + + public function build_signature(&$request, $consumer, $token) {/*{{{*/ + $base_string = $request->get_signature_base_string(); + $request->base_string = $base_string; + + // Fetch the private key cert based on the request + $cert = $this->fetch_private_cert($request); + + // Pull the private key ID from the certificate + $privatekeyid = openssl_get_privatekey($cert); + + // Sign using the key + $ok = openssl_sign($base_string, $signature, $privatekeyid); + + // Release the key resource + openssl_free_key($privatekeyid); + + return base64_encode($signature); + } /*}}}*/ + + public function check_signature(&$request, $consumer, $token, $signature) {/*{{{*/ + $decoded_sig = base64_decode($signature); + + $base_string = $request->get_signature_base_string(); + + // Fetch the public key cert based on the request + $cert = $this->fetch_public_cert($request); + + // Pull the public key ID from the certificate + $publickeyid = openssl_get_publickey($cert); + + // Check the computed signature against the one passed in the query + $ok = openssl_verify($base_string, $decoded_sig, $publickeyid); + + // Release the key resource + openssl_free_key($publickeyid); + + return $ok == 1; + } /*}}}*/ +}/*}}}*/ + +class OAuthRequest {/*{{{*/ + private $parameters; + private $http_method; + private $http_url; + // for debug purposes + public $base_string; + public static $version = '1.0'; + + function __construct($http_method, $http_url, $parameters=NULL) {/*{{{*/ + @$parameters or $parameters = array(); + $this->parameters = $parameters; + $this->http_method = $http_method; + $this->http_url = $http_url; + }/*}}}*/ + + + /** + * attempt to build up a request from what was passed to the server + */ + public static function from_request($http_method=NULL, $http_url=NULL, $parameters=NULL) {/*{{{*/ + $scheme = (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on") ? 'http' : 'https'; + @$http_url or $http_url = $scheme . '://' . $_SERVER['HTTP_HOST'] . ':' . $_SERVER['SERVER_PORT'] . $_SERVER['REQUEST_URI']; + @$http_method or $http_method = $_SERVER['REQUEST_METHOD']; + + $request_headers = OAuthRequest::get_headers(); + + // let the library user override things however they'd like, if they know + // which parameters to use then go for it, for example XMLRPC might want to + // do this + if ($parameters) { + $req = new OAuthRequest($http_method, $http_url, $parameters); + } else { + // collect request parameters from query string (GET) and post-data (POST) if appropriate (note: POST vars have priority) + $req_parameters = $_GET; + if ($http_method == "POST" && @strstr($request_headers["Content-Type"], "application/x-www-form-urlencoded") ) { + $req_parameters = array_merge($req_parameters, $_POST); + } + + // next check for the auth header, we need to do some extra stuff + // if that is the case, namely suck in the parameters from GET or POST + // so that we can include them in the signature + if (@substr($request_headers['Authorization'], 0, 6) == "OAuth ") { + $header_parameters = OAuthRequest::split_header($request_headers['Authorization']); + $parameters = array_merge($req_parameters, $header_parameters); + $req = new OAuthRequest($http_method, $http_url, $parameters); + } else $req = new OAuthRequest($http_method, $http_url, $req_parameters); + } + + return $req; + }/*}}}*/ + + /** + * pretty much a helper function to set up the request + */ + public static function from_consumer_and_token($consumer, $token, $http_method, $http_url, $parameters=NULL) {/*{{{*/ + @$parameters or $parameters = array(); + $defaults = array("oauth_version" => OAuthRequest::$version, + "oauth_nonce" => OAuthRequest::generate_nonce(), + "oauth_timestamp" => OAuthRequest::generate_timestamp(), + "oauth_consumer_key" => $consumer->key); + $parameters = array_merge($defaults, $parameters); + + if ($token) { + $parameters['oauth_token'] = $token->key; + } + return new OAuthRequest($http_method, $http_url, $parameters); + }/*}}}*/ + + public function set_parameter($name, $value) {/*{{{*/ + $this->parameters[$name] = $value; + }/*}}}*/ + + public function get_parameter($name) {/*{{{*/ + return isset($this->parameters[$name]) ? $this->parameters[$name] : null; + }/*}}}*/ + + public function get_parameters() {/*{{{*/ + return $this->parameters; + }/*}}}*/ + + /** + * Returns the normalized parameters of the request + * + * This will be all (except oauth_signature) parameters, + * sorted first by key, and if duplicate keys, then by + * value. + * + * The returned string will be all the key=value pairs + * concated by &. + * + * @return string + */ + public function get_signable_parameters() {/*{{{*/ + // Grab all parameters + $params = $this->parameters; + + // Remove oauth_signature if present + if (isset($params['oauth_signature'])) { + unset($params['oauth_signature']); + } + + // Urlencode both keys and values + $keys = OAuthUtil::urlencode_rfc3986(array_keys($params)); + $values = OAuthUtil::urlencode_rfc3986(array_values($params)); + $params = array_combine($keys, $values); + + // Sort by keys (natsort) + uksort($params, 'strcmp'); + + // Generate key=value pairs + $pairs = array(); + foreach ($params as $key=>$value ) { + if (is_array($value)) { + // If the value is an array, it's because there are multiple + // with the same key, sort them, then add all the pairs + natsort($value); + foreach ($value as $v2) { + $pairs[] = $key . '=' . $v2; + } + } else { + $pairs[] = $key . '=' . $value; + } + } + + // Return the pairs, concated with & + return implode('&', $pairs); + }/*}}}*/ + + /** + * Returns the base string of this request + * + * The base string defined as the method, the url + * and the parameters (normalized), each urlencoded + * and the concated with &. + */ + public function get_signature_base_string() {/*{{{*/ + $parts = array( + $this->get_normalized_http_method(), + $this->get_normalized_http_url(), + $this->get_signable_parameters() + ); + + $parts = OAuthUtil::urlencode_rfc3986($parts); + + return implode('&', $parts); + }/*}}}*/ + + /** + * just uppercases the http method + */ + public function get_normalized_http_method() {/*{{{*/ + return strtoupper($this->http_method); + }/*}}}*/ + + /** + * parses the url and rebuilds it to be + * scheme://host/path + */ + public function get_normalized_http_url() {/*{{{*/ + $parts = parse_url($this->http_url); + + $port = @$parts['port']; + $scheme = $parts['scheme']; + $host = $parts['host']; + $path = @$parts['path']; + + $port or $port = ($scheme == 'https') ? '443' : '80'; + + if (($scheme == 'https' && $port != '443') + || ($scheme == 'http' && $port != '80')) { + $host = "$host:$port"; + } + return "$scheme://$host$path"; + }/*}}}*/ + + /** + * builds a url usable for a GET request + */ + public function to_url() {/*{{{*/ + $out = $this->get_normalized_http_url() . "?"; + $out .= $this->to_postdata(); + return $out; + }/*}}}*/ + + /** + * builds the data one would send in a POST request + * + * TODO(morten.fangel): + * this function might be easily replaced with http_build_query() + * and corrections for rfc3986 compatibility.. but not sure + */ + public function to_postdata() {/*{{{*/ + $total = array(); + foreach ($this->parameters as $k => $v) { + if (is_array($v)) { + foreach ($v as $va) { + $total[] = OAuthUtil::urlencode_rfc3986($k) . "[]=" . OAuthUtil::urlencode_rfc3986($va); + } + } else { + $total[] = OAuthUtil::urlencode_rfc3986($k) . "=" . OAuthUtil::urlencode_rfc3986($v); + } + } + $out = implode("&", $total); + return $out; + }/*}}}*/ + + /** + * builds the Authorization: header + */ + public function to_header() {/*{{{*/ + $out ='Authorization: OAuth realm=""'; + $total = array(); + foreach ($this->parameters as $k => $v) { + if (substr($k, 0, 5) != "oauth") continue; + if (is_array($v)) throw new OAuthException('Arrays not supported in headers'); + $out .= ',' . OAuthUtil::urlencode_rfc3986($k) . '="' . OAuthUtil::urlencode_rfc3986($v) . '"'; + } + return $out; + }/*}}}*/ + + public function __toString() {/*{{{*/ + return $this->to_url(); + }/*}}}*/ + + + public function sign_request($signature_method, $consumer, $token) {/*{{{*/ + $this->set_parameter("oauth_signature_method", $signature_method->get_name()); + $signature = $this->build_signature($signature_method, $consumer, $token); + $this->set_parameter("oauth_signature", $signature); + }/*}}}*/ + + public function build_signature($signature_method, $consumer, $token) {/*{{{*/ + $signature = $signature_method->build_signature($this, $consumer, $token); + return $signature; + }/*}}}*/ + + /** + * util function: current timestamp + */ + private static function generate_timestamp() {/*{{{*/ + return time(); + }/*}}}*/ + + /** + * util function: current nonce + */ + private static function generate_nonce() {/*{{{*/ + $mt = microtime(); + $rand = mt_rand(); + + return md5($mt . $rand); // md5s look nicer than numbers + }/*}}}*/ + + /** + * util function for turning the Authorization: header into + * parameters, has to do some unescaping + */ + private static function split_header($header) {/*{{{*/ + $pattern = '/(([-_a-z]*)=("([^"]*)"|([^,]*)),?)/'; + $offset = 0; + $params = array(); + while (preg_match($pattern, $header, $matches, PREG_OFFSET_CAPTURE, $offset) > 0) { + $match = $matches[0]; + $header_name = $matches[2][0]; + $header_content = (isset($matches[5])) ? $matches[5][0] : $matches[4][0]; + $params[$header_name] = OAuthUtil::urldecode_rfc3986( $header_content ); + $offset = $match[1] + strlen($match[0]); + } + + if (isset($params['realm'])) { + unset($params['realm']); + } + + return $params; + }/*}}}*/ + + /** + * helper to try to sort out headers for people who aren't running apache + */ + private static function get_headers() {/*{{{*/ + if (function_exists('apache_request_headers')) { + // we need this to get the actual Authorization: header + // because apache tends to tell us it doesn't exist + return apache_request_headers(); + } + // otherwise we don't have apache and are just going to have to hope + // that $_SERVER actually contains what we need + $out = array(); + foreach ($_SERVER as $key => $value) { + if (substr($key, 0, 5) == "HTTP_") { + // this is chaos, basically it is just there to capitalize the first + // letter of every word that is not an initial HTTP and strip HTTP + // code from przemek + $key = str_replace(" ", "-", ucwords(strtolower(str_replace("_", " ", substr($key, 5))))); + $out[$key] = $value; + } + } + return $out; + }/*}}}*/ +}/*}}}*/ + +class OAuthServer {/*{{{*/ + protected $timestamp_threshold = 300; // in seconds, five minutes + protected $version = 1.0; // hi blaine + protected $signature_methods = array(); + + protected $data_store; + + function __construct($data_store) {/*{{{*/ + $this->data_store = $data_store; + }/*}}}*/ + + public function add_signature_method($signature_method) {/*{{{*/ + $this->signature_methods[$signature_method->get_name()] = + $signature_method; + }/*}}}*/ + + // high level functions + + /** + * process a request_token request + * returns the request token on success + */ + public function fetch_request_token(&$request) {/*{{{*/ + $this->get_version($request); + + $consumer = $this->get_consumer($request); + + // no token required for the initial token request + $token = NULL; + + $this->check_signature($request, $consumer, $token); + + $new_token = $this->data_store->new_request_token($consumer); + + return $new_token; + }/*}}}*/ + + /** + * process an access_token request + * returns the access token on success + */ + public function fetch_access_token(&$request) {/*{{{*/ + $this->get_version($request); + + $consumer = $this->get_consumer($request); + + // requires authorized request token + $token = $this->get_token($request, $consumer, "request"); + + + $this->check_signature($request, $consumer, $token); + + $new_token = $this->data_store->new_access_token($token, $consumer); + + return $new_token; + }/*}}}*/ + + /** + * verify an api call, checks all the parameters + */ + public function verify_request(&$request) {/*{{{*/ + $this->get_version($request); + $consumer = $this->get_consumer($request); + $token = $this->get_token($request, $consumer, "access"); + $this->check_signature($request, $consumer, $token); + return array($consumer, $token); + }/*}}}*/ + + // Internals from here + /** + * version 1 + */ + private function get_version(&$request) {/*{{{*/ + $version = $request->get_parameter("oauth_version"); + if (!$version) { + $version = 1.0; + } + if ($version && $version != $this->version) { + throw new OAuthException("OAuth version '$version' not supported"); + } + return $version; + }/*}}}*/ + + /** + * figure out the signature with some defaults + */ + private function get_signature_method(&$request) {/*{{{*/ + $signature_method = + @$request->get_parameter("oauth_signature_method"); + if (!$signature_method) { + $signature_method = "PLAINTEXT"; + } + if (!in_array($signature_method, + array_keys($this->signature_methods))) { + throw new OAuthException( + "Signature method '$signature_method' not supported try one of the following: " . implode(", ", array_keys($this->signature_methods)) + ); + } + return $this->signature_methods[$signature_method]; + }/*}}}*/ + + /** + * try to find the consumer for the provided request's consumer key + */ + private function get_consumer(&$request) {/*{{{*/ + $consumer_key = @$request->get_parameter("oauth_consumer_key"); + if (!$consumer_key) { + throw new OAuthException("Invalid consumer key"); + } + + $consumer = $this->data_store->lookup_consumer($consumer_key); + if (!$consumer) { + throw new OAuthException("Invalid consumer"); + } + + return $consumer; + }/*}}}*/ + + /** + * try to find the token for the provided request's token key + */ + private function get_token(&$request, $consumer, $token_type="access") {/*{{{*/ + $token_field = @$request->get_parameter('oauth_token'); + $token = $this->data_store->lookup_token( + $consumer, $token_type, $token_field + ); + if (!$token) { + throw new OAuthException("Invalid $token_type token: $token_field"); + } + return $token; + }/*}}}*/ + + /** + * all-in-one function to check the signature on a request + * should guess the signature method appropriately + */ + private function check_signature(&$request, $consumer, $token) {/*{{{*/ + // this should probably be in a different method + $timestamp = @$request->get_parameter('oauth_timestamp'); + $nonce = @$request->get_parameter('oauth_nonce'); + + $this->check_timestamp($timestamp); + $this->check_nonce($consumer, $token, $nonce, $timestamp); + + $signature_method = $this->get_signature_method($request); + + $signature = $request->get_parameter('oauth_signature'); + $valid_sig = $signature_method->check_signature( + $request, + $consumer, + $token, + $signature + ); + + if (!$valid_sig) { + throw new OAuthException("Invalid signature"); + } + }/*}}}*/ + + /** + * check that the timestamp is new enough + */ + private function check_timestamp($timestamp) {/*{{{*/ + // verify that timestamp is recentish + $now = time(); + if ($now - $timestamp > $this->timestamp_threshold) { + throw new OAuthException("Expired timestamp, yours $timestamp, ours $now"); + } + }/*}}}*/ + + /** + * check that the nonce is not repeated + */ + private function check_nonce($consumer, $token, $nonce, $timestamp) {/*{{{*/ + // verify that the nonce is uniqueish + $found = $this->data_store->lookup_nonce($consumer, $token, $nonce, $timestamp); + if ($found) { + throw new OAuthException("Nonce already used: $nonce"); + } + }/*}}}*/ + + + +}/*}}}*/ + +class OAuthDataStore {/*{{{*/ + function lookup_consumer($consumer_key) {/*{{{*/ + // implement me + }/*}}}*/ + + function lookup_token($consumer, $token_type, $token) {/*{{{*/ + // implement me + }/*}}}*/ + + function lookup_nonce($consumer, $token, $nonce, $timestamp) {/*{{{*/ + // implement me + }/*}}}*/ + + function new_request_token($consumer) {/*{{{*/ + // return a new token attached to this consumer + }/*}}}*/ + + function new_access_token($token, $consumer) {/*{{{*/ + // return a new access token attached to this consumer + // for the user associated with this token if the request token + // is authorized + // should also invalidate the request token + }/*}}}*/ + +}/*}}}*/ + + +/* A very naive dbm-based oauth storage + */ +class SimpleOAuthDataStore extends OAuthDataStore {/*{{{*/ + private $dbh; + + function __construct($path = "oauth.gdbm") {/*{{{*/ + $this->dbh = dba_popen($path, 'c', 'gdbm'); + }/*}}}*/ + + function __destruct() {/*{{{*/ + dba_close($this->dbh); + }/*}}}*/ + + function lookup_consumer($consumer_key) {/*{{{*/ + $rv = dba_fetch("consumer_$consumer_key", $this->dbh); + if ($rv === FALSE) { + return NULL; + } + $obj = unserialize($rv); + if (!($obj instanceof OAuthConsumer)) { + return NULL; + } + return $obj; + }/*}}}*/ + + function lookup_token($consumer, $token_type, $token) {/*{{{*/ + $rv = dba_fetch("${token_type}_${token}", $this->dbh); + if ($rv === FALSE) { + return NULL; + } + $obj = unserialize($rv); + if (!($obj instanceof OAuthToken)) { + return NULL; + } + return $obj; + }/*}}}*/ + + function lookup_nonce($consumer, $token, $nonce, $timestamp) {/*{{{*/ + if (dba_exists("nonce_$nonce", $this->dbh)) { + return TRUE; + } else { + dba_insert("nonce_$nonce", "1", $this->dbh); + return FALSE; + } + }/*}}}*/ + + function new_token($consumer, $type="request") {/*{{{*/ + $key = md5(time()); + $secret = time() + time(); + $token = new OAuthToken($key, md5(md5($secret))); + if (!dba_insert("${type}_$key", serialize($token), $this->dbh)) { + throw new OAuthException("doooom!"); + } + return $token; + }/*}}}*/ + + function new_request_token($consumer) {/*{{{*/ + return $this->new_token($consumer, "request"); + }/*}}}*/ + + function new_access_token($token, $consumer) {/*{{{*/ + + $token = $this->new_token($consumer, 'access'); + dba_delete("request_" . $token->key, $this->dbh); + return $token; + }/*}}}*/ +}/*}}}*/ + +class OAuthUtil {/*{{{*/ + public static function urlencode_rfc3986($input) {/*{{{*/ + if (is_array($input)) { + return array_map(array('OAuthUtil','urlencode_rfc3986'), $input); + } else if (is_scalar($input)) { + return str_replace('+', ' ', + str_replace('%7E', '~', rawurlencode($input))); + } else { + return ''; + } + }/*}}}*/ + + + // This decode function isn't taking into consideration the above + // modifications to the encoding process. However, this method doesn't + // seem to be used anywhere so leaving it as is. + public static function urldecode_rfc3986($string) {/*{{{*/ + return rawurldecode($string); + }/*}}}*/ +}/*}}}*/ \ No newline at end of file diff --git a/usr/plugins/ConnectToTwitter/Plugin.php b/usr/plugins/ConnectToTwitter/Plugin.php new file mode 100644 index 00000000..4e6865de --- /dev/null +++ b/usr/plugins/ConnectToTwitter/Plugin.php @@ -0,0 +1,144 @@ +finishComment = array('ConnectToTwitter_Plugin', 'postToTwitter'); + Typecho_Plugin::factory('Widget_Archive')->beforeRender = array('ConnectToTwitter_Plugin', 'initComment'); + } + + /** + * 禁用插件方法,如果禁用失败,直接抛出异常 + * + * @static + * @access public + * @return void + * @throws Typecho_Plugin_Exception + */ + public static function deactivate() { + + } + + /** + * 获取插件配置面板 + * + * @access public + * @param Typecho_Widget_Helper_Form $form 配置面板 + * @return void + */ + public static function config(Typecho_Widget_Helper_Form $form) + { + $consumerKey = new Typecho_Widget_Helper_Form_Element_Text('consumerKey', NULL, '', + _t('Consumer Key'), _t('Your application consumer key from Twitter.com. ')); + $form->addInput($consumerKey->addRule('required', _t('You must give the Consumer Key from Twitter.com'))); + + $consumerSecret = new Typecho_Widget_Helper_Form_Element_Text('consumerSecret', NULL, '', + _t('Consumer Secret'), _t('Your application consumer secret from Twitter.com. ')); + $form->addInput($consumerSecret->addRule('required', _t('You must give the Consumer Key from Twitter.com'))); + } + + /** + * 个人用户的配置面板 + * + * @access public + * @param Typecho_Widget_Helper_Form $form + * @return void + */ + public static function personalConfig(Typecho_Widget_Helper_Form $form){} + + public static function initComment($api) + { + session_start(); + $options = Typecho_Widget::widget('Widget_Options'); + $config = $options->plugin('ConnectToTwitter'); + + //发送请求到twitter + if(isset($api->request->connect_to_twitter)) + { + $to = new TwitterOAuth($config->consumerKey, $config->consumerSecret); + + $tok = $to->getRequestToken(); + + Typecho_Cookie::set('oauth_request_token', $tok['oauth_token']); + Typecho_Cookie::set('oauth_request_token_secret', $tok['oauth_token_secret']); + + /* Build the authorization URL */ + $request_link = $to->getAuthorizeURL($tok['oauth_token']); + header('Location:'.$request_link); + } + + //从twitter返回 + if(isset($api->request->oauth_token)) { + if(Typecho_Cookie::get('oauth_request_token') && Typecho_Cookie::get('oauth_request_token_secret')) + { + $to = new TwitterOAuth($config->consumerKey, $config->consumerSecret, Typecho_Cookie::get('oauth_request_token'), Typecho_Cookie::get('oauth_request_token_secret')); + + $tok = $to->getAccessToken(); + + Typecho_Cookie::set('oauth_access_token', $tok['oauth_token'], time()+60*60*24*30); + Typecho_Cookie::set('oauth_access_token_secret', $tok['oauth_token_secret'], time()+60*60*24*30); + + $info_json = $to->OAuthRequest('https://twitter.com/account/verify_credentials.json', array(), 'GET'); + $info = Typecho_Json::decode($info_json, true); + + self::twitterLogin($info, $api); + } + } + } + + //登录,暂时做为setcookie,以后要和用户帐号相关联 + public static function twitterLogin($info, $api) + { + if (!empty($info['screen_name'])) { + Typecho_Cookie::set('__typecho_remember_author', $info['screen_name'], time()+60*60*24*30); + } + + if (!empty($info['url'])) { + Typecho_Cookie::set('__typecho_remember_url', $info['url'], time()+60*60*24*30); + } + } + + //发送信息到twitter + public static function postToTwitter($api) + { + if(Typecho_Cookie::get('oauth_access_token') && Typecho_Cookie::get('oauth_access_token_secret') && $api->request->post_to_twitter) { + $options = Typecho_Widget::widget('Widget_Options'); + $config = $options->plugin('ConnectToTwitter'); + $to = new TwitterOAuth($config->consumerKey, $config->consumerSecret, Typecho_Cookie::get('oauth_access_token'), Typecho_Cookie::get('oauth_access_token_secret')); + + $url_array = array(); + $url_array = explode('?', $api->request->getReferer()); + $url = $url_array[0] . '#comment-' . $api->coid; + $post = $api->text . ' ( from ' . $url . ' ) '; + $twitter = $to->OAuthRequest('https://twitter.com/statuses/update.xml', array('status' => $post), 'POST'); + } + return $comment; + } + + function showButton() + { + if(Typecho_Cookie::get('oauth_access_token') && Typecho_Cookie::get('oauth_access_token_secret')) { + echo '

    '; + } else { + echo '

    '; + } + } +} diff --git a/usr/plugins/ConnectToTwitter/twitterOAuth.php b/usr/plugins/ConnectToTwitter/twitterOAuth.php new file mode 100644 index 00000000..a8ff5fa1 --- /dev/null +++ b/usr/plugins/ConnectToTwitter/twitterOAuth.php @@ -0,0 +1,146 @@ +http_status; } + function lastAPICall() { return $this->last_api_call; } + + /** + * construct TwitterOAuth object + */ + function __construct($consumer_key, $consumer_secret, $oauth_token = NULL, $oauth_token_secret = NULL) {/*{{{*/ + $this->sha1_method = new OAuthSignatureMethod_HMAC_SHA1(); + $this->consumer = new OAuthConsumer($consumer_key, $consumer_secret); + if (!empty($oauth_token) && !empty($oauth_token_secret)) { + $this->token = new OAuthConsumer($oauth_token, $oauth_token_secret); + } else { + $this->token = NULL; + } + }/*}}}*/ + + + /** + * Get a request_token from Twitter + * + * @returns a key/value array containing oauth_token and oauth_token_secret + */ + function getRequestToken() {/*{{{*/ + $r = $this->oAuthRequest($this->requestTokenURL()); + $token = $this->oAuthParseResponse($r); + $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']); + return $token; + }/*}}}*/ + + /** + * Parse a URL-encoded OAuth response + * + * @return a key/value array + */ + function oAuthParseResponse($responseString) { + $r = array(); + foreach (explode('&', $responseString) as $param) { + $pair = explode('=', $param, 2); + if (count($pair) != 2) continue; + $r[urldecode($pair[0])] = urldecode($pair[1]); + } + return $r; + } + + /** + * Get the authorize URL + * + * @returns a string + */ + function getAuthorizeURL($token) {/*{{{*/ + if (is_array($token)) $token = $token['oauth_token']; + return $this->authorizeURL() . '?oauth_token=' . $token; + }/*}}}*/ + + /** + * Exchange the request token and secret for an access token and + * secret, to sign API calls. + * + * @returns array("oauth_token" => the access token, + * "oauth_token_secret" => the access secret) + */ + function getAccessToken($token = NULL) {/*{{{*/ + $r = $this->oAuthRequest($this->accessTokenURL()); + $token = $this->oAuthParseResponse($r); + $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']); + return $token; + }/*}}}*/ + + /** + * Format and sign an OAuth / API request + */ + function oAuthRequest($url, $args = array(), $method = NULL) {/*{{{*/ + if (empty($method)) $method = empty($args) ? "GET" : "POST"; + $req = OAuthRequest::from_consumer_and_token($this->consumer, $this->token, $method, $url, $args); + $req->sign_request($this->sha1_method, $this->consumer, $this->token); + switch ($method) { + case 'GET': return $this->http($req->to_url()); + case 'POST': return $this->http($req->get_normalized_http_url(), $req->to_postdata()); + } + }/*}}}*/ + + /** + * Make an HTTP request + * + * @return API results + */ + function http($url, $post_data = null) {/*{{{*/ + $ch = curl_init(); + if (defined("CURL_CA_BUNDLE_PATH")) curl_setopt($ch, CURLOPT_CAINFO, CURL_CA_BUNDLE_PATH); + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); + curl_setopt($ch, CURLOPT_TIMEOUT, 30); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + ////////////////////////////////////////////////// + ///// Set to 1 to verify Twitter's SSL Cert ////// + ////////////////////////////////////////////////// + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); + if (isset($post_data)) { + curl_setopt($ch, CURLOPT_POST, 1); + curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); + } + $response = curl_exec($ch); + $this->http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE); + $this->last_api_call = $url; + curl_close ($ch); + return $response; + }/*}}}*/ +}/*}}}*/ \ No newline at end of file diff --git a/usr/plugins/Creole/Creole_Wiki.php b/usr/plugins/Creole/Creole_Wiki.php new file mode 100644 index 00000000..905609c3 --- /dev/null +++ b/usr/plugins/Creole/Creole_Wiki.php @@ -0,0 +1,1599 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Creole_Wiki.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * The baseline abstract parser class. + */ +require_once 'Parse.inc.php'; + +/** + * The baseline abstract render class. + */ +require_once 'Render.inc.php'; + +/** + * Parse structured wiki text and render into arbitrary formats such as XHTML. + * + * This is the "master" class for handling the management and convenience + * functions to transform Wiki-formatted text. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: 1.2.0 + * @link http://pear.php.net/package/Text_Wiki + */ +class Creole_Wiki { + // *single newlines* are handled as in most wikis (ignored) + // if Newline is removed from rules, they will be handled as in word-processors (meaning a paragraph break) + protected $rules = array( + 'Prefilter', + 'Delimiter', + 'Preformatted', + 'Tt', + //'Trim', + 'Break', + 'Raw', + 'Box', + //'Footnote', + 'Table', + 'Newline', + 'Blockquote', + 'Newline', + //'Wikilink', + 'Heading', + 'Center', + 'Horiz', + 'List', + 'Address', + 'Paragraph', + 'Superscript', + 'Subscript', + 'Underline', + 'Strong', + 'Tighten', + 'Image', + 'Url', + 'Emphasis' + ); + + + /** + * + * The list of rules to not-apply to the source text. + * + * @access public + * + * @var array + * + */ + public $disable = array( + 'Html', + 'Include', + 'Embed' + ); + + + /** + * + * Custom configuration for rules at the parsing stage. + * + * In this array, the key is the parsing rule name, and the value is + * an array of key-value configuration pairs corresponding to the $conf + * property in the target parsing rule. + * + * For example: + * + * + * $parseConf = array( + * 'Include' => array( + * 'base' => '/path/to/scripts/' + * ) + * ); + * + * + * Note that most default rules do not need any parsing configuration. + * + * @access public + * + * @var array + * + */ + public $parseConf = array(); + + + /** + * + * Custom configuration for rules at the rendering stage. + * + * Because rendering may be different for each target format, the + * first-level element in this array is always a format name (e.g., + * 'Xhtml'). + * + * Within that first level element, the subsequent elements match the + * $parseConf format. That is, the sub-key is the rendering rule name, + * and the sub-value is an array of key-value configuration pairs + * corresponding to the $conf property in the target rendering rule. + * + * @access public + * + * @var array + * + */ + public $renderConf = array( + 'Docbook' => array(), + 'Latex' => array(), + 'Pdf' => array(), + 'Plain' => array(), + 'Rtf' => array(), + 'Xhtml' => array() + ); + + + /** + * + * Custom configuration for the output format itself. + * + * Even though Text_Wiki will render the tokens from parsed text, + * the format itself may require some configuration. For example, + * RTF needs to know font names and sizes, PDF requires page layout + * information, and DocBook needs a section hierarchy. This array + * matches the $conf property of the the format-level renderer + * (e.g., Text_Wiki_Render_Xhtml). + * + * In this array, the key is the rendering format name, and the value is + * an array of key-value configuration pairs corresponding to the $conf + * property in the rendering format rule. + * + * @access public + * + * @var array + * + */ + public $formatConf = array( + 'Docbook' => array(), + 'Latex' => array(), + 'Pdf' => array(), + 'Plain' => array(), + 'Rtf' => array(), + 'Xhtml' => array() + ); + + + /** + * + * The delimiter for token numbers of parsed elements in source text. + * + * @access public + * + * @var string + * + */ + public $delim = "\xFF"; + + + /** + * + * The tokens generated by rules as the source text is parsed. + * + * As Text_Wiki applies rule classes to the source text, it will + * replace portions of the text with a delimited token number. This + * is the array of those tokens, representing the replaced text and + * any options set by the parser for that replaced text. + * + * The tokens array is sequential; each element is itself a sequential + * array where element 0 is the name of the rule that generated the + * token, and element 1 is an associative array where the key is an + * option name and the value is an option value. + * + * @access private + * + * @var array + * + */ + public $tokens = array(); + + /** + * How many tokens generated pro rules. + * + * Intended to load only necessary render objects + * + * @access private + * @var array + */ + private $_countRulesTokens = array(); + + + /** + * + * The source text to which rules will be applied. + * + * This text will be transformed in-place, which means that it will + * change as the rules are applied. + * + * @access public + * + * @var string + * + */ + public $source = ''; + + /** + * The output text + * + * @var string + */ + protected $output = ''; + + + /** + * + * Array of rule parsers. + * + * Text_Wiki creates one instance of every rule that is applied to + * the source text; this array holds those instances. The array key + * is the rule name, and the array value is an instance of the rule + * class. + * + * @access private + * + * @var array + * + */ + + protected $parseObj = array(); + + + /** + * + * Array of rule renderers. + * + * Text_Wiki creates one instance of every rule that is applied to + * the source text; this array holds those instances. The array key + * is the rule name, and the array value is an instance of the rule + * class. + * + * @access private + * + * @var array + * + */ + protected $renderObj = array(); + + + /** + * + * Array of format renderers. + * + * @access private + * + * @var array + * + */ + protected $formatObj = array(); + + + /** + * + * Array of paths to search, in order, for parsing and rendering rules. + * + * @access private + * + * @var array + * + */ + protected $path = array( + 'parse' => array(), + 'render' => array() + ); + + + + /** + * + * The directory separator character. + * + * @access private + * + * @var string + * + */ + private $_dirSep = DIRECTORY_SEPARATOR; + + /** + * Temporary configuration variable + * + * @var string + */ + protected $renderingType = 'preg'; + + /** + * Stack of rendering callbacks + * + * @var Array + */ + private $_renderCallbacks = array(); + + /** + * Current output block + * + * @var string + */ + private $_block; + + /** + * A stack of blocks + * + * @param Array + */ + private $_blocks; + + /** + * + * Constructor. + * + * **DEPRECATED** + * Please use the singleton() or factory() methods. + * + * @access public + * + * @param array $rules The set of rules to load for this object. Defaults + * to null, which will load the default ruleset for this parser. + */ + + function __construct($rules = null) + { + if (is_array($rules)) { + $this->rules = array(); + foreach ($rules as $rule) { + $this->rules[] = ucfirst($rule); + } + } + + /* + $this->addPath( + 'parse', + $this->fixPath(dirname(__FILE__)) . 'Wiki/Parse/Default/' + ); + */ + + $this->addPath( + 'parse', $this->fixPath(dirname(__FILE__) . '/Parse/') + ); + + $this->addPath( + 'render', + $this->fixPath(dirname(__FILE__) . '/Render/' ) + ); + + $this->renderingType = 'char'; + $this->setRenderConf('xhtml', 'center', 'css', 'center'); + $this->setRenderConf('xhtml', 'url', 'target', null); + } + + + /** + * Singleton. + * + * This avoids instantiating multiple Text_Wiki instances where a number + * of objects are required in one call, e.g. to save memory in a + * CMS invironment where several parsers are required in a single page. + * + * $single = & singleton(); + * + * or + * + * $single = & singleton('Parser', array('Prefilter', 'Delimiter', 'Code', 'Function', + * 'Html', 'Raw', 'Include', 'Embed', 'Anchor', 'Heading', 'Toc', 'Horiz', + * 'Break', 'Blockquote', 'List', 'Deflist', 'Table', 'Image', 'Phplookup', + * 'Center', 'Newline', 'Paragraph', 'Url', 'Freelink', 'Interwiki', 'Wikilink', + * 'Colortext', 'Strong', 'Bold', 'Emphasis', 'Italic', 'Underline', 'Tt', + * 'Superscript', 'Subscript', 'Revise', 'Tighten')); + * + * Call using a subset of this list. The order of passing rulesets in the + * $rules array is important! + * + * After calling this, call $single->setParseConf(), setRenderConf() or setFormatConf() + * as usual for a constructed object of this class. + * + * The internal static array of singleton objects has no index on the parser + * rules, the only index is on the parser name. So if you call this multiple + * times with different rules but the same parser name, you will get the same + * static parser object each time. + * + * @access public + * @static + * @since Method available since Release 1.1.0 + * @param string $parser The parser to be used (defaults to 'Default'). + * @param array $rules The set of rules to instantiate the object. This + * will only be used when the first call to singleton is made, if included + * in further calls it will be effectively ignored. + * @return &object a reference to the Text_Wiki unique instantiation. + */ + /* + public function &singleton($parser = 'Default', $rules = null) + { + static $only = array(); + if (!isset($only[$parser])) { + $ret = & Text_Wiki::factory($parser, $rules); + if (Text_Wiki::isError($ret)) { + return $ret; + } + $only[$parser] =& $ret; + } + return $only[$parser]; + } + */ + + /** + * Returns a Text_Wiki Parser class for the specified parser. + * + * @access public + * @static + * @param string $parser The name of the parse to instantiate + * you need to have Text_Wiki_XXX installed to use $parser = 'XXX', it's E_FATAL + * @param array $rules The rules to pass into the constructor + * {@see Text_Wiki::singleton} for a list of rules + * @return Text_Wiki a Parser object extended from Text_Wiki + */ + /* + public function &factory($parser = 'Default', $rules = null) + { + $class = 'Text_Wiki_' . ucfirst(strtolower($parser)); + $file = str_replace('_', '/', $class).'.php'; + if (!class_exists($class)) { + require_once $file; + if (!class_exists($class)) { + return Text_Wiki::error( + 'Class ' . $class . ' does not exist after requiring '. $file . + ', install package ' . $class . "\n"); + } + } + + $obj =& new $class($rules); + return $obj; + } + */ + + /** + * + * Set parser configuration for a specific rule and key. + * + * @access public + * + * @param string $rule The parse rule to set config for. + * + * @param array|string $arg1 The full config array to use for the + * parse rule, or a conf key in that array. + * + * @param string $arg2 The config value for the key. + * + * @return void + * + */ + public function setParseConf($rule, $arg1, $arg2 = null) + { + $rule = ucwords(strtolower($rule)); + + if (! isset($this->parseConf[$rule])) { + $this->parseConf[$rule] = array(); + } + + // if first arg is an array, use it as the entire + // conf array for the rule. otherwise, treat arg1 + // as a key and arg2 as a value for the rule conf. + if (is_array($arg1)) { + $this->parseConf[$rule] = $arg1; + } else { + $this->parseConf[$rule][$arg1] = $arg2; + } + } + + + /** + * + * Get parser configuration for a specific rule and key. + * + * @access public + * + * @param string $rule The parse rule to get config for. + * + * @param string $key A key in the conf array; if null, + * returns the entire conf array. + * + * @return mixed The whole conf array if no key is specified, + * or the specific conf key value. + * + */ + public function getParseConf($rule, $key = null) + { + $rule = ucwords(strtolower($rule)); + + // the rule does not exist + if (! isset($this->parseConf[$rule])) { + return null; + } + + // no key requested, return the whole array + if (is_null($key)) { + return $this->parseConf[$rule]; + } + + // does the requested key exist? + if (isset($this->parseConf[$rule][$key])) { + // yes, return that value + return $this->parseConf[$rule][$key]; + } else { + // no + return null; + } + } + + + /** + * + * Set renderer configuration for a specific format, rule, and key. + * + * @access public + * + * @param string $format The render format to set config for. + * + * @param string $rule The render rule to set config for in the format. + * + * @param array|string $arg1 The config array, or the config key + * within the render rule. + * + * @param string $arg2 The config value for the key. + * + * @return void + * + */ + + function setRenderConf($format, $rule, $arg1, $arg2 = null) + { + $format = ucwords(strtolower($format)); + $rule = ucwords(strtolower($rule)); + + if (! isset($this->renderConf[$format])) { + $this->renderConf[$format] = array(); + } + + if (! isset($this->renderConf[$format][$rule])) { + $this->renderConf[$format][$rule] = array(); + } + + // if first arg is an array, use it as the entire + // conf array for the render rule. otherwise, treat arg1 + // as a key and arg2 as a value for the render rule conf. + if (is_array($arg1)) { + $this->renderConf[$format][$rule] = $arg1; + } else { + $this->renderConf[$format][$rule][$arg1] = $arg2; + } + } + + + /** + * + * Get renderer configuration for a specific format, rule, and key. + * + * @access public + * + * @param string $format The render format to get config for. + * + * @param string $rule The render format rule to get config for. + * + * @param string $key A key in the conf array; if null, + * returns the entire conf array. + * + * @return mixed The whole conf array if no key is specified, + * or the specific conf key value. + * + */ + + function getRenderConf($format, $rule, $key = null) + { + $format = ucwords(strtolower($format)); + $rule = ucwords(strtolower($rule)); + + if (! isset($this->renderConf[$format]) || + ! isset($this->renderConf[$format][$rule])) { + return null; + } + + // no key requested, return the whole array + if (is_null($key)) { + return $this->renderConf[$format][$rule]; + } + + // does the requested key exist? + if (isset($this->renderConf[$format][$rule][$key])) { + // yes, return that value + return $this->renderConf[$format][$rule][$key]; + } else { + // no + return null; + } + + } + + /** + * + * Set format configuration for a specific rule and key. + * + * @access public + * + * @param string $format The format to set config for. + * + * @param string $key The config key within the format. + * + * @param string $val The config value for the key. + * + * @return void + * + */ + + function setFormatConf($format, $arg1, $arg2 = null) + { + if (! is_array($this->formatConf[$format])) { + $this->formatConf[$format] = array(); + } + + // if first arg is an array, use it as the entire + // conf array for the format. otherwise, treat arg1 + // as a key and arg2 as a value for the format conf. + if (is_array($arg1)) { + $this->formatConf[$format] = $arg1; + } else { + $this->formatConf[$format][$arg1] = $arg2; + } + } + + + + /** + * + * Get configuration for a specific format and key. + * + * @access public + * + * @param string $format The format to get config for. + * + * @param mixed $key A key in the conf array; if null, + * returns the entire conf array. + * + * @return mixed The whole conf array if no key is specified, + * or the specific conf key value. + * + */ + + function getFormatConf($format, $key = null) + { + // the format does not exist + if (! isset($this->formatConf[$format])) { + return null; + } + + // no key requested, return the whole array + if (is_null($key)) { + return $this->formatConf[$format]; + } + + // does the requested key exist? + if (isset($this->formatConf[$format][$key])) { + // yes, return that value + return $this->formatConf[$format][$key]; + } else { + // no + return null; + } + } + + + /** + * + * Inserts a rule into to the rule set. + * + * @access public + * + * @param string $name The name of the rule. Should be different from + * all other keys in the rule set. + * + * @param string $tgt The rule after which to insert this new rule. By + * default (null) the rule is inserted at the end; if set to '', inserts + * at the beginning. + * + * @return void + * + */ + + function insertRule($name, $tgt = null) + { + $name = ucwords(strtolower($name)); + if (! is_null($tgt)) { + $tgt = ucwords(strtolower($tgt)); + } + + // does the rule name to be inserted already exist? + if (in_array($name, $this->rules)) { + // yes, return + return null; + } + + // the target name is not null, and not '', but does not exist + // in the list of rules. this means we're trying to insert after + // a target key, but the target key isn't there. + if (! is_null($tgt) && $tgt != '' && + ! in_array($tgt, $this->rules)) { + return false; + } + + // if $tgt is null, insert at the end. We know this is at the + // end (instead of resetting an existing rule) becuase we exited + // at the top of this method if the rule was already in place. + if (is_null($tgt)) { + $this->rules[] = $name; + return true; + } + + // save a copy of the current rules, then reset the rule set + // so we can insert in the proper place later. + // where to insert the rule? + if ($tgt == '') { + // insert at the beginning + array_unshift($this->rules, $name); + return true; + } + + // insert after the named rule + $tmp = $this->rules; + $this->rules = array(); + + foreach ($tmp as $val) { + $this->rules[] = $val; + if ($val == $tgt) { + $this->rules[] = $name; + } + } + + return true; + + } + + + /** + * + * Delete (remove or unset) a rule from the $rules property. + * + * @access public + * + * @param string $rule The name of the rule to remove. + * + * @return void + * + */ + + function deleteRule($name) + { + $name = ucwords(strtolower($name)); + $key = array_search($name, $this->rules); + if ($key !== false) { + unset($this->rules[$key]); + } + } + + + /** + * + * Change from one rule to another in-place. + * + * @access public + * + * @param string $old The name of the rule to change from. + * + * @param string $new The name of the rule to change to. + * + * @return void + * + */ + + function changeRule($old, $new) + { + $old = ucwords(strtolower($old)); + $new = ucwords(strtolower($new)); + $key = array_search($old, $this->rules); + if ($key !== false) { + // delete the new name , case it was already there + $this->deleteRule($new); + $this->rules[$key] = $new; + } + } + + + /** + * + * Enables a rule so that it is applied when parsing. + * + * @access public + * + * @param string $rule The name of the rule to enable. + * + * @return void + * + */ + + function enableRule($name) + { + $name = ucwords(strtolower($name)); + $key = array_search($name, $this->disable); + if ($key !== false) { + unset($this->disable[$key]); + } + } + + + /** + * + * Disables a rule so that it is not applied when parsing. + * + * @access public + * + * @param string $rule The name of the rule to disable. + * + * @return void + * + */ + + function disableRule($name) + { + $name = ucwords(strtolower($name)); + $key = array_search($name, $this->disable); + if ($key === false) { + $this->disable[] = $name; + } + } + + + /** + * + * Parses and renders the text passed to it, and returns the results. + * + * First, the method parses the source text, applying rules to the + * text as it goes. These rules will modify the source text + * in-place, replacing some text with delimited tokens (and + * populating the $this->tokens array as it goes). + * + * Next, the method renders the in-place tokens into the requested + * output format. + * + * Finally, the method returns the transformed text. Note that the + * source text is transformed in place; once it is transformed, it is + * no longer the same as the original source text. + * + * @access public + * + * @param string $text The source text to which wiki rules should be + * applied, both for parsing and for rendering. + * + * @param string $format The target output format, typically 'xhtml'. + * If a rule does not support a given format, the output from that + * rule is rule-specific. + * + * @return string The transformed wiki text. + * + */ + function transform($text, $format = 'Xhtml') + { + $this->parse($text); + return $this->render($format); + } + + + /** + * + * Sets the $_source text property, then parses it in place and + * retains tokens in the $_tokens array property. + * + * @access public + * + * @param string $text The source text to which wiki rules should be + * applied, both for parsing and for rendering. + * + * @return void + * + */ + + function parse($text) + { + // set the object property for the source text + $this->source = $text; + + // reset the tokens. + $this->tokens = array(); + $this->_countRulesTokens = array(); + + // apply the parse() method of each requested rule to the source + // text. + foreach ($this->rules as $name) { + // do not parse the rules listed in $disable + if (! in_array($name, $this->disable)) { + + // load the parsing object + $this->loadParseObj($name); + + // load may have failed; only parse if + // an object is in the array now + if (is_object($this->parseObj[$name])) { + $this->parseObj[$name]->parse(); + } + } + } + } + + + /** + * + * Renders tokens back into the source text, based on the requested format. + * + * @access public + * + * @param string $format The target output format, typically 'xhtml'. + * If a rule does not support a given format, the output from that + * rule is rule-specific. + * + * @return string The transformed wiki text. + * + */ + + function render($format = 'Xhtml') + { + // the rendering method we're going to use from each rule + $format = ucwords(strtolower($format)); + + // the eventual output text + $this->output = ''; + + // when passing through the parsed source text, keep track of when + // we are in a delimited section + $in_delim = false; + + // when in a delimited section, capture the token key number + $key = ''; + + // load the format object, or crap out if we can't find it + $result = $this->loadFormatObj($format); + if ($this->isError($result)) { + return $result; + } + + /* + * hunked by feelinglucky.. + // pre-rendering activity + if (is_object($this->formatObj[$format])) { + $this->output .= $this->formatObj[$format]->pre(); + } + */ + // load the render objects + foreach (array_keys($this->_countRulesTokens) as $rule) { + $this->loadRenderObj($format, $rule); + } + + + if ($this->renderingType == 'preg') { + $this->output = preg_replace_callback('/'.$this->delim.'(\d+)'.$this->delim.'/', + array(&$this, '_renderToken'), + $this->source); + + /* + //Damn strtok()! Why does it "skip" empty parts of the string. It's useless now! + } elseif ($this->renderingType == 'strtok') { + echo '
    '.htmlentities($this->source).'
    '; + $t = strtok($this->source, $this->delim); + $inToken = true; + $i = 0; + while ($t !== false) { + echo 'Token: '.$i.'
    "'.htmlentities($t).'"


    '; + if ($inToken) { + //$this->output .= $this->renderObj[$this->tokens[$t][0]]->token($this->tokens[$t][1]); + } else { + $this->output .= $t; + } + $inToken = !$inToken; + $t = strtok($this->delim); + ++$i; + } + */ + } else { + // pass through the parsed source text character by character + $this->_block = ''; + $tokenStack = array(); + $k = strlen($this->source); + + for ($i = 0; $i < $k; $i++) { + + // the current character + $char = $this->source{$i}; + + // are alredy in a delimited section? + if ($in_delim) { + + // yes; are we ending the section? + if ($char == $this->delim) { + + if (count($this->_renderCallbacks) == 0) { + $this->output .= $this->_block; + $this->_block = ''; + } + + if (isset($opts['type'])) { + if ($opts['type'] == 'start') { + array_push($tokenStack, $rule); + } elseif ($opts['type'] == 'end') { + if ($tokenStack[count($tokenStack) - 1] != $rule) { + return Text_Wiki::error('Unbalanced tokens, check your syntax'); + } else { + array_pop($tokenStack); + } + } + } + + // yes, get the replacement text for the delimited + // token number and unset the flag. + $key = (int)$key; + $rule = $this->tokens[$key][0]; + $opts = $this->tokens[$key][1]; + $this->_block .= $this->renderObj[$rule]->token($opts); + $in_delim = false; + + } else { + + // no, add to the delimited token key number + $key .= $char; + + } + + } else { + + // not currently in a delimited section. + // are we starting into a delimited section? + if ($char == $this->delim) { + // yes, reset the previous key and + // set the flag. + $key = ''; + $in_delim = true; + + } else { + // no, add to the output as-is + $this->_block .= $char; + } + } + } + } + + if (count($this->_renderCallbacks)) { + return $this->error('Render callbacks left over after processing finished'); + } + /* + while (count($this->_renderCallbacks)) { + $this->popRenderCallback(); + } + */ + if (strlen($this->_block)) { + $this->output .= $this->_block; + $this->_block = ''; + } + +/* tunk by feelinglucky + // post-rendering activity + if (is_object($this->formatObj[$format])) { + $this->output .= $this->formatObj[$format]->post(); + } + */ + + // return the rendered source text. + return $this->output; + } + + /** + * Renders a token, for use only as an internal callback + * + * @param array Matches from preg_rpelace_callback, [1] is the token number + * @return string The rendered text for the token + * @access private + */ + function _renderToken($matches) { + return $this->renderObj[$this->tokens[$matches[1]][0]]->token($this->tokens[$matches[1]][1]); + } + + function registerRenderCallback($callback) { + $this->_blocks[] = $this->_block; + $this->_block = ''; + $this->_renderCallbacks[] = $callback; + } + + function popRenderCallback() { + if (count($this->_renderCallbacks) == 0) { + return Text_Wiki::error('Render callback popped when no render callbacks in stack'); + } else { + $callback = array_pop($this->_renderCallbacks); + $this->_block = call_user_func($callback, $this->_block); + if (count($this->_blocks)) { + $parentBlock = array_pop($this->_blocks); + $this->_block = $parentBlock.$this->_block; + } + if (count($this->_renderCallbacks) == 0) { + $this->output .= $this->_block; + $this->_block = ''; + } + } + } + + /** + * + * Returns the parsed source text with delimited token placeholders. + * + * @access public + * + * @return string The parsed source text. + * + */ + + function getSource() + { + return $this->source; + } + + + /** + * + * Returns tokens that have been parsed out of the source text. + * + * @access public + * + * @param array $rules If an array of rule names is passed, only return + * tokens matching these rule names. If no array is passed, return all + * tokens. + * + * @return array An array of tokens. + * + */ + + function getTokens($rules = null) + { + if (is_null($rules)) { + return $this->tokens; + } else { + settype($rules, 'array'); + $result = array(); + foreach ($this->tokens as $key => $val) { + if (in_array($val[0], $rules)) { + $result[$key] = $val; + } + } + return $result; + } + } + + + /** + * + * Add a token to the Text_Wiki tokens array, and return a delimited + * token number. + * + * @access public + * + * @param array $options An associative array of options for the new + * token array element. The keys and values are specific to the + * rule, and may or may not be common to other rule options. Typical + * options keys are 'text' and 'type' but may include others. + * + * @param boolean $id_only If true, return only the token number, not + * a delimited token string. + * + * @return string|int By default, return the number of the + * newly-created token array element with a delimiter prefix and + * suffix; however, if $id_only is set to true, return only the token + * number (no delimiters). + * + */ + + function addToken($rule, $options = array(), $id_only = false) + { + // increment the token ID number. note that if you parse + // multiple times with the same Text_Wiki object, the ID number + // will not reset to zero. + static $id; + if (! isset($id)) { + $id = 0; + } else { + $id ++; + } + + // force the options to be an array + settype($options, 'array'); + + // add the token + $this->tokens[$id] = array( + 0 => $rule, + 1 => $options + ); + if (!isset($this->_countRulesTokens[$rule])) { + $this->_countRulesTokens[$rule] = 1; + } else { + ++$this->_countRulesTokens[$rule]; + } + + // return a value + if ($id_only) { + // return the last token number + return $id; + } else { + // return the token number with delimiters + return $this->delim . $id . $this->delim; + } + } + + + /** + * + * Set or re-set a token with specific information, overwriting any + * previous rule name and rule options. + * + * @access public + * + * @param int $id The token number to reset. + * + * @param int $rule The rule name to use. + * + * @param array $options An associative array of options for the + * token array element. The keys and values are specific to the + * rule, and may or may not be common to other rule options. Typical + * options keys are 'text' and 'type' but may include others. + * + * @return void + * + */ + + function setToken($id, $rule, $options = array()) + { + $oldRule = $this->tokens[$id][0]; + // reset the token + $this->tokens[$id] = array( + 0 => $rule, + 1 => $options + ); + if ($rule != $oldRule) { + if (!($this->_countRulesTokens[$oldRule]--)) { + unset($this->_countRulesTokens[$oldRule]); + } + if (!isset($this->_countRulesTokens[$rule])) { + $this->_countRulesTokens[$rule] = 1; + } else { + ++$this->_countRulesTokens[$rule]; + } + } + } + + + /** + * + * Load a rule parser class file. + * + * @access public + * + * @return bool True if loaded, false if not. + * + */ + + function loadParseObj($rule) + { + $rule = ucwords(strtolower($rule)); + $file = $rule . '.php'; + $class = "Text_Wiki_Parse_$rule"; + + if (!Typecho_Common::isAvailableClass($class)) { + $loc = $this->findFile('parse', $file); + + if ($loc) { + // found the class + include_once $loc; + } else { + // can't find the class + $this->parseObj[$rule] = null; + // can't find the class + return $this->error( + "Parse rule '$rule' not found" + ); + } + } + + $this->parseObj[$rule] = new $class($this); + } + + + /** + * + * Load a rule-render class file. + * + * @access public + * + * @return bool True if loaded, false if not. + * + */ + + function loadRenderObj($format, $rule) + { + $format = ucwords(strtolower($format)); + $rule = ucwords(strtolower($rule)); + $file = "$format/$rule.php"; + $class = "Text_Wiki_Render_$format" . "_$rule"; + + if (! Typecho_Common::isAvailableClass($class)) { + // load the class + $loc = $this->findFile('render', $file); + if ($loc) { + // found the class + include_once $loc; + } else { + // can't find the class + return $this->error( + "Render rule '$rule' in format '$format' not found" + ); + } + } + + $this->renderObj[$rule] = new $class($this); + } + + + /** + * + * Load a format-render class file. + * + * @access public + * + * @return bool True if loaded, false if not. + * + */ + + function loadFormatObj($format) + { + $format = ucwords(strtolower($format)); + $file = $format . '.php'; + $class = "Text_Wiki_Render_$format"; + + if (! Typecho_Common::isAvailableClass($class)) { + $loc = $this->findFile('render', $file); + if ($loc) { + // found the class + include_once $loc; + } else { + // can't find the class + return $this->error( + "Rendering format class '$class' not found" + ); + } + } + + $this->formatObj[$format] = new $class($this); + } + + + /** + * + * Add a path to a path array. + * + * @access public + * + * @param string $type The path-type to add (parse or render). + * + * @param string $dir The directory to add to the path-type. + * + * @return void + * + */ + + function addPath($type, $dir) + { + $dir = $this->fixPath($dir); + if (! isset($this->path[$type])) { + $this->path[$type] = array($dir); + } else { + array_unshift($this->path[$type], $dir); + } + } + + + /** + * + * Get the current path array for a path-type. + * + * @access public + * + * @param string $type The path-type to look up (plugin, filter, or + * template). If not set, returns all path types. + * + * @return array The array of paths for the requested type. + * + */ + + function getPath($type = null) + { + if (is_null($type)) { + return $this->path; + } elseif (! isset($this->path[$type])) { + return array(); + } else { + return $this->path[$type]; + } + } + + + /** + * + * Searches a series of paths for a given file. + * + * @param array $type The type of paths to search (template, plugin, + * or filter). + * + * @param string $file The file name to look for. + * + * @return string|bool The full path and file name for the target file, + * or boolean false if the file is not found in any of the paths. + * + */ + + function findFile($type, $file) + { + // get the set of paths + $set = $this->getPath($type); + + // start looping through them + foreach ($set as $path) { + $fullname = $path . $this->_dirSep . $file; + if (file_exists($fullname) && is_readable($fullname)) { + return realpath($fullname); + } + } + + // could not find the file in the set of paths + return false; + } + + + /** + * + * Append a trailing '/' to paths, unless the path is empty. + * + * @access private + * + * @param string $path The file path to fix + * + * @return string The fixed file path + * + */ + function fixPath($path) + { + if (realpath($path)){ + return realpath($path); // . (is_dir($path) ? $this->_dirSep : ''); + } else { + return ''; + } + + /* + $len = strlen($this->_dirSep); + if (! empty($path) && + substr($path, -1 * $len, $len) != $this->_dirSep) { + return realpath($path) . $this->_dirSep; + } else { + return realpath($path); + } + */ + } + + + /** + * + * Simple error-object generator. + * + * @access public + * + * @param string $message The error message. + * + * @return object PEAR_Error + * + */ + + function &error($message) + { + /* + if (! class_exists('PEAR_Error')) { + include_once 'PEAR.php'; + } + */ + throw new Exception($message); + return false; + //return PEAR::throwError($message); + } + + + /** + * + * Simple error checker. + * + * @access public + * + * @param mixed $obj Check if this is a PEAR_Error object or not. + * + * @return bool True if a PEAR_Error, false if not. + * + */ + + function isError(&$obj) + { + return is_a($obj, 'PEAR_Error'); + } + + + /** + * Constructor: just adds the path to Creole rules + * + * @access public + * @param array $rules The set of rules to load for this object. + */ + function checkInnerTags(&$text) { + $started = array(); + $i = false; + while (($i = strpos($text, $this->delim, $i)) !== false) { + $j = strpos($text, $this->delim, $i + 1); + $t = substr($text, $i + 1, $j - $i - 1); + $i = $j + 1; + $rule = strtolower($this->tokens[$t][0]); + $type = $this->tokens[$t][1]['type']; + + if ($type == 'start') { + if (empty($started[$rule])) { + $started[$rule] = 0; + } + $started[$rule] += 1; + } + else if ($type == 'end') { + if (! $started[$rule]) return false; + + $started[$rule] -= 1; + if (! $started[$rule]) unset($started[$rule]); + } + } + return ! (count($started) > 0); + } + + function restoreRaw($text) { + $i = false; + while (($i = strpos($text, $this->delim, $i)) !== false) { + $j = strpos($text, $this->delim, $i + 1); + $t = substr($text, $i + 1, $j - $i - 1); + $rule = strtolower($this->tokens[$t][0]); + + if ($rule == 'raw') { + $text = str_replace($this->delim. $t. $this->delim, $this->tokens[$t][1]['text'], $text); + } else { + $i = $j + 1; + } + } + return $text; + } +} +?> diff --git a/usr/plugins/Creole/Parse.inc.php b/usr/plugins/Creole/Parse.inc.php new file mode 100644 index 00000000..ece122b7 --- /dev/null +++ b/usr/plugins/Creole/Parse.inc.php @@ -0,0 +1,262 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Parse.inc.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * Baseline rule class for extension into a "real" parser component. + * + * Text_Wiki_Rule classes do not stand on their own; they are called by a + * Text_Wiki object, typcially in the transform() method. Each rule class + * performs three main activities: parse, process, and render. + * + * The parse() method takes a regex and applies it to the whole block of + * source text at one time. Each match is sent as $matches to the + * process() method. + * + * The process() method acts on the matched text from the source, and + * then processes the source text is some way. This may mean the + * creation of a delimited token using addToken(). In every case, the + * process() method returns the text that should replace the matched text + * from parse(). + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Parse { + + + /** + * + * Configuration options for this parser rule. + * + * @access public + * + * @var string + * + */ + + var $conf = array(); + + + /** + * + * Regular expression to find matching text for this rule. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + var $regex = null; + + + /** + * + * The name of this rule for new token array elements. + * + * @access public + * + * @var string + * + */ + + var $rule = null; + + + /** + * + * A reference to the calling Text_Wiki object. + * + * This is needed so that each rule has access to the same source + * text, token set, URLs, interwiki maps, page names, etc. + * + * @access public + * + * @var object + */ + + var $wiki = null; + + + /** + * + * Constructor for this parser rule. + * + * @access public + * + * @param object &$obj The calling "parent" Text_Wiki object. + * + */ + + function Text_Wiki_Parse(&$obj) + { + // set the reference to the calling Text_Wiki object; + // this allows us access to the shared source text, token + // array, etc. + $this->wiki =& $obj; + + // set the name of this rule; generally used when adding + // to the tokens array. strip off the Text_Wiki_Parse_ portion. + // text_wiki_parse_ + // 0123456789012345 + $tmp = substr(get_class($this), 16); + $this->rule = ucwords(strtolower($tmp)); + + // override config options for the rule if specified + if (isset($this->wiki->parseConf[$this->rule]) && + is_array($this->wiki->parseConf[$this->rule])) { + + $this->conf = array_merge( + $this->conf, + $this->wiki->parseConf[$this->rule] + ); + } + } + + + /** + * + * Abstrct method to parse source text for matches. + * + * Applies the rule's regular expression to the source text, passes + * every match to the process() method, and replaces the matched text + * with the results of the processing. + * + * @access public + * + * @see Text_Wiki_Parse::process() + * + */ + + function parse() + { + $this->wiki->source = preg_replace_callback( + $this->regex, + array(&$this, 'process'), + $this->wiki->source + ); + } + + + /** + * + * Abstract method to generate replacements for matched text. + * + * @access public + * + * @param array $matches An array of matches from the parse() method + * as generated by preg_replace_callback. $matches[0] is the full + * matched string, $matches[1] is the first matched pattern, + * $matches[2] is the second matched pattern, and so on. + * + * @return string The processed text replacement; defaults to the + * full matched string (i.e., no changes to the text). + * + * @see Text_Wiki_Parse::parse() + * + */ + + function process(&$matches) + { + return $matches[0]; + } + + + /** + * + * Simple method to safely get configuration key values. + * + * @access public + * + * @param string $key The configuration key. + * + * @param mixed $default If the key does not exist, return this value + * instead. + * + * @return mixed The configuration key value (if it exists) or the + * default value (if not). + * + */ + + function getConf($key, $default = null) + { + if (isset($this->conf[$key])) { + return $this->conf[$key]; + } else { + return $default; + } + } + + + /** + * + * Extract 'attribute="value"' portions of wiki markup. + * + * This kind of markup is typically used only in macros, but is useful + * anywhere. + * + * The syntax is pretty strict; there can be no spaces between the + * option name, the equals, and the first double-quote; the value + * must be surrounded by double-quotes. You can escape characters in + * the value with a backslash, and the backslash will be stripped for + * you. + * + * @access public + * + * @param string $text The "attributes" portion of markup. + * + * @return array An associative array of key-value pairs where the + * key is the option name and the value is the option value. + * + */ + + function getAttrs($text) + { + // find the =" sections; + $tmp = explode('="', trim($text)); + + // basic setup + $k = count($tmp) - 1; + $attrs = array(); + $key = null; + + // loop through the sections + foreach ($tmp as $i => $val) { + + // first element is always the first key + if ($i == 0) { + $key = trim($val); + continue; + } + + // find the last double-quote in the value. + // the part to the left is the value for the last key, + // the part to the right is the next key name + $pos = strrpos($val, '"'); + $attrs[$key] = stripslashes(substr($val, 0, $pos)); + $key = trim(substr($val, $pos+1)); + + } + + return $attrs; + } +} +?> diff --git a/usr/plugins/Creole/Parse/Address.php b/usr/plugins/Creole/Parse/Address.php new file mode 100644 index 00000000..936b8809 --- /dev/null +++ b/usr/plugins/Creole/Parse/Address.php @@ -0,0 +1,67 @@ + + * + * @license LGPL + * + * @version $Id: Address.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * + */ + +class Text_Wiki_Parse_Address extends Text_Wiki_Parse { + + /** + * + * The regular expression used to find source text matching this + * rule. + * + * @access public + * + * @var string + * + */ + + var $regex = '/^--([^-].*)$/m'; + + /** + * + * Generates a token entry for the matched text. Token options are: + * + * 'start' => The starting point of the signature. + * + * 'end' => The ending point of the signature. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return A delimited token number to be used as a placeholder in + * the source text. + * + */ + + function process(&$matches) + { + $start = $this->wiki->addToken( + $this->rule, array('type' => 'start') + ); + + $end = $this->wiki->addToken( + $this->rule, array('type' => 'end') + ); + + return "\n" . $start . trim($matches[1]) . $end; + } +} +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Parse/Blockquote.php b/usr/plugins/Creole/Parse/Blockquote.php new file mode 100644 index 00000000..971b3c6a --- /dev/null +++ b/usr/plugins/Creole/Parse/Blockquote.php @@ -0,0 +1,176 @@ +' at the start of the line, followed by an + * optional space, and then the quote text; each '>' indicates an + * additional level of quoting. + * + * @category Text + * + * @package Text_Wiki + * + * @author Paul M. Jones + * @author Michele Tomaiuolo + * + * @license LGPL + * + * @version $Id: Blockquote.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * + */ + +class Text_Wiki_Parse_Blockquote extends Text_Wiki_Parse { + + + /** + * + * Regex for parsing the source text. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + var $regex = '/\n(([>:]).*\n)(?!([>:]))/Us'; + + + /** + * + * Generates a replacement for the matched text. + * + * Token options are: + * + * 'type' => + * 'start' : the start of a blockquote + * 'end' : the end of a blockquote + * + * 'level' => the indent level (0 for the first level, 1 for the + * second, etc) + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return A series of text and delimited tokens marking the different + * list text and list elements. + * + */ + + function process(&$matches) + { + // the replacement text we will return to parse() + $return = ''; + + // the list of post-processing matches + $list = array(); + + // $matches[1] is the text matched as a list set by parse(); + // create an array called $list that contains a new set of + // matches for the various list-item elements. + preg_match_all( + '=^([>:]+)(.*?\n)=ms', + $matches[1], + $list, + PREG_SET_ORDER + ); + + // a stack of starts and ends; we keep this so that we know what + // indent level we're at. + $stack = array(); + + // loop through each list-item element. + foreach ($list as $key => $val) { + + // $val[0] is the full matched list-item line + // $val[1] is the number of initial '>' chars (indent level) + // $val[2] is the quote text + + // we number levels starting at 1, not zero + $level = strlen($val[1]); + + // get the text of the line + $text = trim($val[2]); + + // add a level to the list? + while ($level > count($stack)) { + + $css = ($val[1][count($stack)] == ':') ? 'remark' : ''; + + // the current indent level is greater than the number + // of stack elements, so we must be starting a new + // level. push the new level onto the stack with a + // dummy value (boolean true)... + array_push($stack, true); + + $return .= "\n\n"; + + // ...and add a start token to the return. + $return .= $this->wiki->addToken( + $this->rule, + array( + 'type' => 'start', + 'level' => $level - 1, + 'css' => $css + ) + ); + + $return .= "\n\n"; + } + + // remove a level? + while (count($stack) > $level) { + + // as long as the stack count is greater than the + // current indent level, we need to end list types. + // continue adding end-list tokens until the stack count + // and the indent level are the same. + array_pop($stack); + + $return .= "\n\n"; + + $return .= $this->wiki->addToken( + $this->rule, + array ( + 'type' => 'end', + 'level' => count($stack) + ) + ); + + $return .= "\n\n"; + } + + // add the line text. + $return .= $text . "\n"; + } + + // the last line may have been indented. go through the stack + // and create end-tokens until the stack is empty. + $return .= "\n\n"; + + while (count($stack) > 0) { + array_pop($stack); + + $return .= "\n\n"; + + $return .= $this->wiki->addToken( + $this->rule, + array ( + 'type' => 'end', + 'level' => count($stack) + ) + ); + + $return .= "\n\n"; + } + + // we're done! send back the replacement text. + return "\n\n$return\n\n"; + } +} +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Parse/Box.php b/usr/plugins/Creole/Parse/Box.php new file mode 100644 index 00000000..7d8df8de --- /dev/null +++ b/usr/plugins/Creole/Parse/Box.php @@ -0,0 +1,81 @@ + +* @author Paul M. Jones +* +* @license LGPL +* +* @version $Id: Box.php 182 2008-09-14 15:56:00Z i.feelinglucky $ +* +*/ + +/** +* +* Parses for bold text. +* +* This class implements a Text_Wiki_Rule to find source text marked for +* strong emphasis (bold) as defined by text surrounded by three +* single-quotes. On parsing, the text itself is left in place, but the +* starting and ending instances of three single-quotes are replaced with +* tokens. +* +* @category Text +* +* @package Text_Wiki +* +* @author Justin Patrin +* @author Paul M. Jones +* +*/ + +class Text_Wiki_Parse_Box extends Text_Wiki_Parse { + + + /** + * + * The regular expression used to parse the source text and find + * matches conforming to this rule. Used by the parse() method. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + var $regex = '/\n\[\d+\].*/s'; + + + /** + * + * Generates a replacement for the matched text. Token options are: + * + * 'type' => ['start'|'end'] The starting or ending point of the + * emphasized text. The text itself is left in the source. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return A pair of delimited tokens to be used as a placeholder in + * the source text surrounding the text to be emphasized. + * + */ + + function process(&$matches) + { + $start = $this->wiki->addToken($this->rule, array('type' => 'start', 'css' => 'footnotes')); + $end = $this->wiki->addToken($this->rule, array('type' => 'end')); + return $start . $matches[0] . "\n" . $end . "\n\n"; + } +} +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Parse/Break.php b/usr/plugins/Creole/Parse/Break.php new file mode 100644 index 00000000..6f6f41d6 --- /dev/null +++ b/usr/plugins/Creole/Parse/Break.php @@ -0,0 +1,73 @@ + +* +* @license LGPL +* +* @version $Id: Break.php 182 2008-09-14 15:56:00Z i.feelinglucky $ +* +*/ + +/** +* +* Parses for explicit line breaks. +* +* This class implements a Text_Wiki_Parse to mark forced line breaks in the +* source text. +* +* @category Text +* +* @package Text_Wiki +* +* @author Paul M. Jones +* +*/ + +class Text_Wiki_Parse_Break extends Text_Wiki_Parse { + + + /** + * + * The regular expression used to parse the source text and find + * matches conforming to this rule. Used by the parse() method. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + //var $regex = "/[ \n]*([\\\][\\\]|\%\%\%)[ \n]*/"; + var $regex = "/ *([\\\][\\\]|\%\%\%)\n?/"; + + + /** + * + * Generates a replacement token for the matched text. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return string A delimited token to be used as a placeholder in + * the source text. + * + */ + + function process(&$matches) + { + return $this->wiki->addToken($this->rule); + } +} + +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Parse/Center.php b/usr/plugins/Creole/Parse/Center.php new file mode 100644 index 00000000..57c1d9fe --- /dev/null +++ b/usr/plugins/Creole/Parse/Center.php @@ -0,0 +1,78 @@ + + * + * @license LGPL + * + * @version $Id: Center.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * + */ + +class Text_Wiki_Parse_Center extends Text_Wiki_Parse { + + + /** + * + * The regular expression used to parse the source text and find + * matches conforming to this rule. Used by the parse() method. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + var $regex = '/^! *(.*?)$/m'; + + /** + * + * Generates a replacement for the matched text. Token options are: + * + * 'type' => ['start'|'end'] The starting or ending point of the + * centered text. The text itself is left in the source. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return string A pair of delimited tokens to be used as a + * placeholder in the source text surrounding the centered text. + * + */ + + function process(&$matches) + { + $start = $this->wiki->addToken( + $this->rule, + array( + 'type' => 'start' + ) + ); + + $end = $this->wiki->addToken( + $this->rule, + array( + 'type' => 'end' + ) + ); + + return $start . trim($matches[1]) . $end . "\n\n"; + } +} +?> diff --git a/usr/plugins/Creole/Parse/Delete.php b/usr/plugins/Creole/Parse/Delete.php new file mode 100644 index 00000000..f3e99ff5 --- /dev/null +++ b/usr/plugins/Creole/Parse/Delete.php @@ -0,0 +1,78 @@ + + * @author Michele Tomaiuolo + * + */ + +class Text_Wiki_Parse_Delete extends Text_Wiki_Parse { + + + /** + * + * The regular expression used to parse the source text and find + * matches conforming to this rule. Used by the parse() method. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + //var $regex = "/__(.*?)__/"; + var $regex = "/(?:\-\-(.+?)\-\-|(?:(?<=[\W-\xFF])\-(?![ \-]))(.+?)(?:(? ['start'|'end'] The starting or ending point of the + * superscript text. The text itself is left in the source. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return string A pair of delimited tokens to be used as a + * placeholder in the source text surrounding the text to be + * superscripted. + * + */ + + function process(&$matches) + { + $text = $matches[1] ? $matches[1] : $matches[2]; + + if (! $this->wiki->checkInnerTags($text)) { + return $matches[0]; + } + + $start = $this->wiki->addToken( + 'Delete', // $this->rule, + array('type' => 'start') + ); + + $end = $this->wiki->addToken( + 'Delete', // $this->rule, + array('type' => 'end') + ); + + return $start . $text . $end; + } +} +?> diff --git a/usr/plugins/Creole/Parse/Delimiter.php b/usr/plugins/Creole/Parse/Delimiter.php new file mode 100644 index 00000000..b10bfe2c --- /dev/null +++ b/usr/plugins/Creole/Parse/Delimiter.php @@ -0,0 +1,68 @@ + + * + * @license LGPL + * + * @version $Id: Delimiter.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * + */ + +class Text_Wiki_Parse_Delimiter extends Text_Wiki_Parse { + + /** + * + * Constructor. Overrides the Text_Wiki_Parse constructor so that we + * can set the $regex property dynamically (we need to include the + * Text_Wiki $delim character. + * + * @param object &$obj The calling "parent" Text_Wiki object. + * + * @param string $name The token name to use for this rule. + * + */ + + function Text_Wiki_Parse_Delimiter(&$obj) + { + parent::Text_Wiki_Parse($obj); + $this->regex = '/' . $this->wiki->delim . '/'; + } + + + /** + * + * Generates a token entry for the matched text. Token options are: + * + * 'text' => The full matched text. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return A delimited token number to be used as a placeholder in + * the source text. + * + */ + + function process(&$matches) + { + return $this->wiki->addToken( + $this->rule, + array('text' => $this->wiki->delim) + ); + } +} +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Parse/Emphasis.php b/usr/plugins/Creole/Parse/Emphasis.php new file mode 100644 index 00000000..0fa03ada --- /dev/null +++ b/usr/plugins/Creole/Parse/Emphasis.php @@ -0,0 +1,78 @@ + + * @author Michele Tomaiuolo + * + */ + +class Text_Wiki_Parse_Emphasis extends Text_Wiki_Parse { + + + /** + * + * The regular expression used to parse the source text and find + * matches conforming to this rule. Used by the parse() method. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + //var $regex = "/\/\/(.*?)\/\//"; + var $regex = "/(?:\/\/(.+?)\/\/|(?:(?<=[\W_\xFF])\/(?![ \/]))(.+?)(?:(? ['start'|'end'] The starting or ending point of the + * emphasized text. The text itself is left in the source. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return string A pair of delimited tokens to be used as a + * placeholder in the source text surrounding the text to be + * emphasized. + * + */ + + function process(&$matches) + { + $text = $matches[1] ? $matches[1] : $matches[2]; + + if (! $this->wiki->checkInnerTags($text)) { + return $matches[0]; + } + + $start = $this->wiki->addToken( + $this->rule, + array('type' => 'start') + ); + + $end = $this->wiki->addToken( + $this->rule, + array('type' => 'end') + ); + + return $start . $text . $end; + } +} +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Parse/Footnote.php b/usr/plugins/Creole/Parse/Footnote.php new file mode 100644 index 00000000..9a89a802 --- /dev/null +++ b/usr/plugins/Creole/Parse/Footnote.php @@ -0,0 +1,83 @@ + + * @author Michele Tomaiuolo + * + * @license LGPL + * + * @version $Id: Footnote.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * + */ + +class Text_Wiki_Parse_Footnote extends Text_Wiki_Parse { + + + /** + * + * The regular expression used to parse the source text and find + * matches conforming to this rule. Used by the parse() method. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + var $regex = "/(\n)*\[([0-9]+)\]/"; + + + /** + * + * Generates a replacement for the matched text. Token options are: + * + * 'type' => ['start'|'end'] The starting or ending point of the + * emphasized text. The text itself is left in the source. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return A pair of delimited tokens to be used as a placeholder in + * the source text surrounding the text to be emphasized. + * + */ + + function process(&$matches) + { + $id = $matches[2]; + + if ($matches[1] == "\n") { + $matches[1] = "\n\n"; + $name = "fn$id"; + $href = "#ref$id"; + } + else { + $name = "ref$id"; + $href = "#fn$id"; + } + + $token = $this->wiki->addToken( + 'Url', + array('text' => "[$id]", 'href' => $href, 'name' => $name, 'type' => 'inline') + ); + + return $matches[1] . $token; + } +} +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Parse/Heading.php b/usr/plugins/Creole/Parse/Heading.php new file mode 100644 index 00000000..7f014c1c --- /dev/null +++ b/usr/plugins/Creole/Parse/Heading.php @@ -0,0 +1,97 @@ + + * @author Tomaiuolo Michele + * + * @license LGPL + * + * @version $Id: Heading.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * + */ + +class Text_Wiki_Parse_Heading extends Text_Wiki_Parse { + + + /** + * + * The regular expression used to parse the source text and find + * matches conforming to this rule. Used by the parse() method. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + var $regex = '/^(={1,6}) *(.*?) *=*$/m'; + + var $conf = array( + 'id_prefix' => 'toc' + ); + + /** + * + * Generates a replacement for the matched text. Token options are: + * + * 'type' => ['start'|'end'] The starting or ending point of the + * heading text. The text itself is left in the source. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return string A pair of delimited tokens to be used as a + * placeholder in the source text surrounding the heading text. + * + */ + + function process(&$matches) + { + // keep a running count for header IDs. we use this later + // when constructing TOC entries, etc. + static $id; + if (! isset($id)) { + $id = 0; + } + + $prefix = htmlspecialchars($this->getConf('id_prefix')); + + $start = $this->wiki->addToken( + $this->rule, + array( + 'type' => 'start', + 'level' => strlen($matches[1]), + 'text' => trim($matches[2]), + 'id' => $prefix . $id ++ + ) + ); + + $end = $this->wiki->addToken( + $this->rule, + array( + 'type' => 'end', + 'level' => strlen($matches[1]) + ) + ); + + return $start . trim($matches[2]) . $end . "\n\n"; + } +} +?> diff --git a/usr/plugins/Creole/Parse/Horiz.php b/usr/plugins/Creole/Parse/Horiz.php new file mode 100644 index 00000000..2f9ca47a --- /dev/null +++ b/usr/plugins/Creole/Parse/Horiz.php @@ -0,0 +1,58 @@ + + * + * @license LGPL + * + * @version $Id: Horiz.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * + */ + +class Text_Wiki_Parse_Horiz extends Text_Wiki_Parse { + + + /** + * + * The regular expression used to parse the source text and find + * matches conforming to this rule. Used by the parse() method. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + var $regex = '/^([-]{4,})$/m'; + + + /** + * + * Generates a replacement token for the matched text. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return string A token marking the horizontal rule. + * + */ + + function process(&$matches) + { + return "\n" . $this->wiki->addToken($this->rule) . "\n"; + } +} +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Parse/Image.php b/usr/plugins/Creole/Parse/Image.php new file mode 100644 index 00000000..baf5d175 --- /dev/null +++ b/usr/plugins/Creole/Parse/Image.php @@ -0,0 +1,66 @@ + + * + * @license LGPL + * + * @version $Id: Image.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * + */ + + +class Text_Wiki_Parse_Image extends Text_Wiki_Parse { + + /** + * + * The regular expression used to parse the source text and find + * matches conforming to this rule. Used by the parse() method. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + var $regex = '/{{(.*)(\|(.*))?}}/U'; + + + /** + * + * Generates a replacement token for the matched text. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return string A token marking the horizontal rule. + * + */ + + function process(&$matches) + { + $src = trim($matches[1]); + $src = ltrim($src, '/'); + $alt = isset($matches[3]) ? trim($matches[3]) : null; + if (!$alt) $alt = $src; + + return $this->wiki->addToken( + $this->rule, + array( + 'src' => $src, + 'attr' => array('alt' => $alt, 'title' => $alt) + ) + ); + } +} +?> diff --git a/usr/plugins/Creole/Parse/List.php b/usr/plugins/Creole/Parse/List.php new file mode 100644 index 00000000..4b48a01f --- /dev/null +++ b/usr/plugins/Creole/Parse/List.php @@ -0,0 +1,244 @@ + + * @author Paul M. Jones + * @author Michele Tomaiuolo + * + * @license LGPL + * + * @version $Id: List.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * + */ + +class Text_Wiki_Parse_List extends Text_Wiki_Parse { + + + /** + * + * The regular expression used to parse the source text and find + * matches conforming to this rule. Used by the parse() method. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + var $regex = '/\n((\*[^\#\-\*]|\-[^\-\d\*\#]|\#[^\#\-\*]).*?)\n(?![\*\-#])/s'; + + /** + * + * Generates a replacement for the matched text. Token options are: + * + * 'type' => + * 'bullet_start' : the start of a bullet list + * 'bullet_end' : the end of a bullet list + * 'number_start' : the start of a number list + * 'number_end' : the end of a number list + * 'item_start' : the start of item text (bullet or number) + * 'item_end' : the end of item text (bullet or number) + * 'unknown' : unknown type of list or item + * + * 'level' => the indent level (0 for the first level, 1 for the + * second, etc) + * + * 'count' => the list item number at this level. not needed for + * xhtml, but very useful for PDF and RTF. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return A series of text and delimited tokens marking the different + * list text and list elements. + * + */ + + function process(&$matches) + { + // the replacement text we will return + $return = ''; + + // the list of post-processing matches + $list = array(); + + // a stack of list-start and list-end types; we keep this + // so that we know what kind of list we're working with + // (bullet or number) and what indent level we're at. + $stack = array(); + + // the item count is the number of list items for any + // given list-type on the stack + $itemcount = array(); + + // have we processed the very first list item? + $pastFirst = false; + + // populate $list with this set of matches. $matches[1] is the + // text matched as a list set by parse(). + preg_match_all( + '/^((\*|\-|#)+) *(.*?)$/ms', + $matches[1], + $list, + PREG_SET_ORDER + ); + + if (count($list) === 1 && $matches[0][0] === '*' && $matches[0][1] !== ' ' && strpos($matches[0], '*', 1)) { + return $matches[0]; + } + + // loop through each list-item element. + foreach ($list as $key => $val) { + // $val[0] is the full matched list-item line + // $val[1] is the level (number) + // $val[2] is the type (* or #) + // $val[3] is the list item text + + // how many levels are we indented? (1 means the "root" + // list level, no indenting.) + $stars = $val[1]; + $level = strlen($stars); + $last = $stars[strlen($stars) - 1]; + + // get the list item type + if ($last == '*' || $last == '-') { + $type = 'bullet'; + } elseif ($last == '#') { + $type = 'number'; + } else { + $type = 'unknown'; + } + + // get the text of the list item + $text = $val[3]; + + // remove a level from the list? + while (count($stack) > $level || (count($stack) == $level && $type != $stack[$level - 1])) { + + // so we don't keep counting the stack, we set up a temp + // var for the count. -1 becuase we're going to pop the + // stack in the next command. $tmp will then equal the + // current level of indent. + $tmp = count($stack) - 1; + + // as long as the stack count is greater than the + // current indent level, we need to end list types. + // continue adding end-list tokens until the stack count + // and the indent level are the same. + $return .= $this->wiki->addToken( + $this->rule, + array ( + 'type' => array_pop($stack) . '_list_end', + 'level' => $tmp + ) + ); + + // reset to the current (previous) list type so that + // the new list item matches the proper list type. + if ($tmp) { + $oldtype = $stack[$tmp - 1]; + } + + // reset the item count for the popped indent level + unset($itemcount[$tmp + 1]); + } + + // add a level to the list? + if ($level > count($stack)) { + + // the current indent level is greater than the + // number of stack elements, so we must be starting + // a new list. push the new list type onto the + // stack... + array_push($stack, $type); + + // ...and add a list-start token to the return. + $return .= $this->wiki->addToken( + $this->rule, + array( + 'type' => $type . '_list_start', + 'level' => $level - 1 + ) + ); + } + + // add to the item count for this list (taking into account + // which level we are at). + if (! isset($itemcount[$level])) { + // first count + $itemcount[$level] = 0; + } else { + // increment count + $itemcount[$level]++; + } + + // is this the very first item in the list? + if (! $pastFirst) { + $first = true; + $pastFirst = true; + } else { + $first = false; + } + + // create a list-item starting token. + $start = $this->wiki->addToken( + $this->rule, + array( + 'type' => $type . '_item_start', + 'level' => $level, + 'count' => $itemcount[$level], + 'first' => $first + ) + ); + + // create a list-item ending token. + $end = $this->wiki->addToken( + $this->rule, + array( + 'type' => $type . '_item_end', + 'level' => $level, + 'count' => $itemcount[$level] + ) + ); + + // add the starting token, list-item text, and ending token + // to the return. + $return .= "\n" . $start . $text . $end; + } + + // the last list-item may have been indented. go through the + // list-type stack and create end-list tokens until the stack + // is empty. + while (count($stack) > 0) { + $return .= $this->wiki->addToken( + $this->rule, + array ( + 'type' => array_pop($stack) . '_list_end', + 'level' => count($stack) + ) + ); + } + + // we're done! send back the replacement text. + return "\n\n" . $return . "\n\n"; + } +} +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Parse/Newline.php b/usr/plugins/Creole/Parse/Newline.php new file mode 100644 index 00000000..1f810a48 --- /dev/null +++ b/usr/plugins/Creole/Parse/Newline.php @@ -0,0 +1,60 @@ + + * + * @license LGPL + * + * @version $Id: Newline.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * + */ + +class Text_Wiki_Parse_Newline extends Text_Wiki_Parse { + + + /** + * + * The regular expression used to parse the source text and find + * matches conforming to this rule. Used by the parse() method. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + //var $regex = '/(?\:]|\*[^\*\#]|\*+ )/m'; + var $regex = '/(?|\:|\!|\-\D)/m'; + + + /** + * + * Generates a replacement token for the matched text. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return string A delimited token to be used as a placeholder in + * the source text. + * + */ + + function process(&$matches) + { + return ' '; // $this->wiki->addToken($this->rule); + } +} + +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Parse/Paragraph.php b/usr/plugins/Creole/Parse/Paragraph.php new file mode 100644 index 00000000..01a357f6 --- /dev/null +++ b/usr/plugins/Creole/Parse/Paragraph.php @@ -0,0 +1,139 @@ + + * @author Michele Tomaiuolo + * + * @license LGPL + * + * @version $Id: Paragraph.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * + */ + +class Text_Wiki_Parse_Paragraph extends Text_Wiki_Parse { + + /** + * + * The regular expression used to find source text matching this + * rule. + * + * @access public + * + * @var string + * + */ + + var $regex = "/^.+?\n/m"; // (?=[\n\-\|#{=]) + + var $conf = array( + 'skip' => array( + 'address', + 'box', + 'blockquote', + 'code', + 'heading', + 'center', + 'horiz', + 'deflist', + 'table', + 'list', + 'paragraph', + 'preformatted', + 'toc' + ) + ); + + + /** + * + * Generates a token entry for the matched text. Token options are: + * + * 'start' => The starting point of the paragraph. + * + * 'end' => The ending point of the paragraph. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return A delimited token number to be used as a placeholder in + * the source text. + * + */ + + function process(&$matches) + { + $delim = $this->wiki->delim; + + // was anything there? + if (trim($matches[0]) == '') { + return ''; + } + + // does the match start with a delimiter? + if (substr($matches[0], 0, 1) != $delim) { + // no. + + $start = $this->wiki->addToken( + $this->rule, array('type' => 'start') + ); + + $end = $this->wiki->addToken( + $this->rule, array('type' => 'end') + ); + + return $start . trim($matches[0]) . $end; + } + + // the line starts with a delimiter. read in the delimited + // token number, check the token, and see if we should + // skip it. + + // loop starting at the second character (we already know + // the first is a delimiter) until we find another + // delimiter; the text between them is a token key number. + $key = ''; + $len = strlen($matches[0]); + for ($i = 1; $i < $len; $i++) { + $char = $matches[0]{$i}; + if ($char == $delim) { + break; + } else { + $key .= $char; + } + } + + // look at the token and see if it's skippable (if we skip, + // it will not be marked as a paragraph) + $token_type = strtolower($this->wiki->tokens[$key][0]); + $skip = $this->getConf('skip', array()); + + if (in_array($token_type, $skip)) { + // this type of token should not have paragraphs applied to it. + // return the entire matched text. + return $matches[0]; + } else { + + $start = $this->wiki->addToken( + $this->rule, array('type' => 'start') + ); + + $end = $this->wiki->addToken( + $this->rule, array('type' => 'end') + ); + + return $start . trim($matches[0]) . $end; + } + } +} +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Parse/Prefilter.php b/usr/plugins/Creole/Parse/Prefilter.php new file mode 100644 index 00000000..eba8b239 --- /dev/null +++ b/usr/plugins/Creole/Parse/Prefilter.php @@ -0,0 +1,54 @@ + + * @author Michele Tomaiuolo + * + * @license LGPL + * + * @version $Id: Prefilter.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * + */ + +class Text_Wiki_Parse_Prefilter extends Text_Wiki_Parse { + + + /** + * + * Simple parsing method. + * + * @access public + * + */ + + function parse() + { + // convert DOS line endings + $this->wiki->source = str_replace("\r\n", "\n", + $this->wiki->source); + + // convert Macintosh line endings + $this->wiki->source = str_replace("\r", "\n", + $this->wiki->source); + + // convert tabs to four-spaces + $this->wiki->source = str_replace("\t", " ", + $this->wiki->source); + + // add extra newlines at the top and end; this + // seems to help many rules. + $this->wiki->source = "\n\n" . $this->wiki->source . "\n\n"; + } + +} +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Parse/Preformatted.php b/usr/plugins/Creole/Parse/Preformatted.php new file mode 100644 index 00000000..7704efad --- /dev/null +++ b/usr/plugins/Creole/Parse/Preformatted.php @@ -0,0 +1,68 @@ + + * + * @license LGPL + * + * @version $Id: Preformatted.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * + */ + +class Text_Wiki_Parse_Preformatted extends Text_Wiki_Parse { + + + /** + * + * The regular expression used to parse the source text and find + * matches conforming to this rule. Used by the parse() method. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + var $regex = '/\n{{{\n(.*)\n}}}\n/Us'; + + /** + * + * Generates a replacement for the matched text. Token options are: + * + * 'text' => The preformatted text. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return string A token to be used as a placeholder + * in the source text for the preformatted text. + * + */ + + function process(&$matches) + { + // > any line consisting of only indented three closing curly braces + // > will have one space removed from the indentation + // > -- http://www.wikicreole.org/wiki/AddNoWikiEscapeProposal + $find = "/\n( *) }}}/"; + $replace = "\n$1}}}"; + $matches[1] = preg_replace($find, $replace, $matches[1]); + + $token = $this->wiki->addToken( + $this->rule, + array('text' => $matches[1]) + ); + return "\n\n" . $token . "\n\n"; + } +} +?> diff --git a/usr/plugins/Creole/Parse/Raw.php b/usr/plugins/Creole/Parse/Raw.php new file mode 100644 index 00000000..8d61824a --- /dev/null +++ b/usr/plugins/Creole/Parse/Raw.php @@ -0,0 +1,61 @@ + + * + * @license LGPL + * + * @version $Id: Raw.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * + */ + +class Text_Wiki_Parse_Raw extends Text_Wiki_Parse { + + + /** + * + * The regular expression used to parse the source text and find + * matches conforming to this rule. Used by the parse() method. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + var $regex = '/~~([^ \n])/'; + + /** + * + * Generates a replacement for the matched text. Token options are: + * + * 'type' => ['start'|'end'] The starting or ending point of the + * monospaced text. The text itself is encapsulated into a Raw token. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return string A token to be used as a placeholder + * in the source text for the preformatted text. + * + */ + + function process(&$matches) + { + return $this->wiki->addToken( + $this->rule, + array('text' => $matches[1], 'type' => 'escape') + ); + } +} +?> diff --git a/usr/plugins/Creole/Parse/Strong.php b/usr/plugins/Creole/Parse/Strong.php new file mode 100644 index 00000000..5575a08e --- /dev/null +++ b/usr/plugins/Creole/Parse/Strong.php @@ -0,0 +1,83 @@ + + * @author Michele Tomaiuolo + * + * @license LGPL + * + * @version $Id: Strong.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * + */ + +class Text_Wiki_Parse_Strong extends Text_Wiki_Parse { + + + /** + * + * The regular expression used to parse the source text and find + * matches conforming to this rule. Used by the parse() method. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + //var $regex = "/\*\*(.*?)\*\*/"; + var $regex = "/(?:\*\*(.+?)\*\*|(?:(?<=[\W_\xFF])\*(?![ \*]))(.+?)(?:(? ['start'|'end'] The starting or ending point of the + * emphasized text. The text itself is left in the source. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return A pair of delimited tokens to be used as a placeholder in + * the source text surrounding the text to be emphasized. + * + */ + + function process(&$matches) + { + $text = $matches[1] ? $matches[1] : $matches[2]; + + if (! $this->wiki->checkInnerTags($text)) { + return $matches[0]; + } + + $start = $this->wiki->addToken( + $this->rule, + array('type' => 'start') + ); + + $end = $this->wiki->addToken( + $this->rule, + array('type' => 'end') + ); + + return $start . $text . $end; + } +} +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Parse/Subscript.php b/usr/plugins/Creole/Parse/Subscript.php new file mode 100644 index 00000000..596f652c --- /dev/null +++ b/usr/plugins/Creole/Parse/Subscript.php @@ -0,0 +1,75 @@ + + * @author Michele Tomaiuolo + * + */ + +class Text_Wiki_Parse_Subscript extends Text_Wiki_Parse { + + + /** + * + * The regular expression used to parse the source text and find + * matches conforming to this rule. Used by the parse() method. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + var $regex = "/\,\,(.*?)\,\,/"; + + /** + * + * Generates a replacement for the matched text. Token options are: + * + * 'type' => ['start'|'end'] The starting or ending point of the + * superscript text. The text itself is left in the source. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return string A pair of delimited tokens to be used as a + * placeholder in the source text surrounding the text to be + * superscripted. + * + */ + + function process(&$matches) + { + if (! $this->wiki->checkInnerTags($matches[1])) { + return $matches[0]; + } + + $start = $this->wiki->addToken( + $this->rule, + array('type' => 'start') + ); + + $end = $this->wiki->addToken( + $this->rule, + array('type' => 'end') + ); + + return $start . $matches[1] . $end; + } +} +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Parse/Superscript.php b/usr/plugins/Creole/Parse/Superscript.php new file mode 100644 index 00000000..6b0ee9ed --- /dev/null +++ b/usr/plugins/Creole/Parse/Superscript.php @@ -0,0 +1,75 @@ + + * @author Michele Tomaiuolo + * + */ + +class Text_Wiki_Parse_Superscript extends Text_Wiki_Parse { + + + /** + * + * The regular expression used to parse the source text and find + * matches conforming to this rule. Used by the parse() method. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + var $regex = "/\^\^(.*?)\^\^/"; + + /** + * + * Generates a replacement for the matched text. Token options are: + * + * 'type' => ['start'|'end'] The starting or ending point of the + * superscript text. The text itself is left in the source. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return string A pair of delimited tokens to be used as a + * placeholder in the source text surrounding the text to be + * superscripted. + * + */ + + function process(&$matches) + { + if (! $this->wiki->checkInnerTags($matches[1])) { + return $matches[0]; + } + + $start = $this->wiki->addToken( + $this->rule, + array('type' => 'start') + ); + + $end = $this->wiki->addToken( + $this->rule, + array('type' => 'end') + ); + + return $start . $matches[1] . $end; + } +} +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Parse/Table.php b/usr/plugins/Creole/Parse/Table.php new file mode 100644 index 00000000..66252749 --- /dev/null +++ b/usr/plugins/Creole/Parse/Table.php @@ -0,0 +1,207 @@ + + * @author Paul M. Jones + * + * @license LGPL + * + * @version $Id: Table.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * + */ + + +class Text_Wiki_Parse_Table extends Text_Wiki_Parse { + + + /** + * + * The regular expression used to parse the source text and find + * matches conforming to this rule. Used by the parse() method. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + var $regex = '/\n((\|).*)(\n)(?!(\|))/Us'; + + + /** + * + * Generates a replacement for the matched text. + * + * Token options are: + * + * 'type' => + * 'table_start' : the start of a bullet list + * 'table_end' : the end of a bullet list + * 'row_start' : the start of a number list + * 'row_end' : the end of a number list + * 'cell_start' : the start of item text (bullet or number) + * 'cell_end' : the end of item text (bullet or number) + * + * 'cols' => the number of columns in the table (for 'table_start') + * + * 'rows' => the number of rows in the table (for 'table_start') + * + * 'span' => column span (for 'cell_start') + * + * 'attr' => column attribute flag (for 'cell_start') + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return A series of text and delimited tokens marking the different + * table elements and cell text. + * + */ + + function process(&$matches) + { + // our eventual return value + $return = ''; + + // the number of columns in the table + $num_cols = 0; + + // the number of rows in the table + $num_rows = 0; + + // rows are separated by newlines in the matched text + $rows = explode("\n", $matches[1]); + + // loop through each row + foreach ($rows as $row) { + + // increase the row count + $num_rows ++; + + // remove first and last (optional) pipe + $row = substr($row, 1); + if ($row[strlen($row) - 1] == '|') { + $row = substr($row, 0, -1); + } + + // cells are separated by pipes + $cells = explode("|", $row); + + if (count($cells) == 1 && $cells[0][0] == '=' && ($num_rows == 1 || $num_rows == count($rows)) && ! $caption) { + $caption = trim(trim($cells[0], '=')); + + // start the caption... + $return .= $this->wiki->addToken( + $this->rule, + array ('type' => 'caption_start') + ); + + // ...add the content... + $return .= $caption; + + // ...and end the caption. + $return .= $this->wiki->addToken( + $this->rule, + array ('type' => 'caption_end') + ); + } + else { + + // update the column count + if (count($cells) > $num_cols) { + $num_cols = count($cells); + } + + // start a new row + $return .= $this->wiki->addToken( + $this->rule, + array('type' => 'row_start') + ); + + for ($i = 0; $i < count($cells); $i++) { + $cell = $cells[$i]; + + // by default, cells span only one column (their own) + $span = 1; + $attr = ''; + + while ($i + 1 < count($cells) && ! strlen($cells[$i + 1])) { + $i++; + $span++; + } + + if ($cell[0] == '=') { + $attr = 'header'; + $cell = trim($cell, '='); + } + + // start a new cell... + $return .= $this->wiki->addToken( + $this->rule, + array ( + 'type' => 'cell_start', + 'attr' => $attr, + 'span' => $span + ) + ); + + // ...add the content... + $return .= trim($cell); + + // ...and end the cell. + $return .= $this->wiki->addToken( + $this->rule, + array ( + 'type' => 'cell_end', + 'attr' => $attr, + 'span' => $span + ) + ); + } + + // end the row + $return .= $this->wiki->addToken( + $this->rule, + array('type' => 'row_end') + ); + } + } + + // we're done! + return + "\n\n". + $this->wiki->addToken( + $this->rule, + array( + 'type' => 'table_start', + 'rows' => $num_rows, + 'cols' => $num_cols + ) + ). + $return. + $this->wiki->addToken( + $this->rule, + array( + 'type' => 'table_end' + ) + ). + "\n\n"; + } +} +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Parse/Tighten.php b/usr/plugins/Creole/Parse/Tighten.php new file mode 100644 index 00000000..cfe0cf2a --- /dev/null +++ b/usr/plugins/Creole/Parse/Tighten.php @@ -0,0 +1,37 @@ + + * + * @license LGPL + * + * @version $Id: Tighten.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * + */ + + +class Text_Wiki_Parse_Tighten extends Text_Wiki_Parse { + + + /** + * + * Apply tightening directly to the source text. + * + * @access public + * + */ + + function parse() + { + $this->wiki->source = str_replace("\n", '', + $this->wiki->source); + } +} +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Parse/Trim.php b/usr/plugins/Creole/Parse/Trim.php new file mode 100644 index 00000000..58c90b45 --- /dev/null +++ b/usr/plugins/Creole/Parse/Trim.php @@ -0,0 +1,69 @@ + + * @author Michele Tomaiuolo + * + */ + +class Text_Wiki_Parse_Trim extends Text_Wiki_Parse { + + + /** + * + * Simple parsing method. + * + * @access public + * + */ + + function parse() + { + // trim lines + $find = "/ *\n */"; + $replace = "\n"; + $this->wiki->source = preg_replace($find, $replace, $this->wiki->source); + + // trim lines with only one dash or star + $find = "/\n[\-\*]\n/"; + $replace = "\n\n"; + $this->wiki->source = preg_replace($find, $replace, $this->wiki->source); + + // finally, compress all instances of 3 or more newlines + // down to two newlines. + $find = "/\n{3,}/m"; + $replace = "\n\n"; + $this->wiki->source = preg_replace($find, $replace, $this->wiki->source); + + // numbered lists + $find = "/(\n[\*\#]*)([\d]+[\.\)]|[\w]\))/s"; + $replace = "$1#"; + $this->wiki->source = preg_replace($find, $replace, $this->wiki->source); + + // make ordinal numbers superscripted + $find = "/([\d])(st|nd|rd|th|er|e|re|ers|res|nds|de|des|re|me|res|mes|o|a)([\W])/"; + $replace = "$1^^$2^^$3"; + $this->wiki->source = preg_replace($find, $replace, $this->wiki->source); + + // numbers in parentesis are footnotes and references + $find = "/\(([\d][\d]?)\)/"; + $replace = "[$1]"; + $this->wiki->source = preg_replace($find, $replace, $this->wiki->source); + + // add hr before footnotes + $find = "/(\n+\-\-\-\-+\n*)?(\n\[[\d]+\].*)/s"; + $replace = "\n\n----\n\n$2"; + $this->wiki->source = preg_replace($find, $replace, $this->wiki->source); + + } + +} +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Parse/Tt.php b/usr/plugins/Creole/Parse/Tt.php new file mode 100644 index 00000000..f00bf081 --- /dev/null +++ b/usr/plugins/Creole/Parse/Tt.php @@ -0,0 +1,78 @@ + + * + * @license LGPL + * + * @version $Id: Tt.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * + */ + +class Text_Wiki_Parse_Tt extends Text_Wiki_Parse { + + + /** + * + * The regular expression used to parse the source text and find + * matches conforming to this rule. Used by the parse() method. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + var $regex = '/{{{(.*?)}}}(?!}|{{{)/'; + + /** + * + * Generates a replacement for the matched text. Token options are: + * + * 'type' => ['start'|'end'] The starting or ending point of the + * monospaced text. The text itself is encapsulated into a Raw token. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return string A token to be used as a placeholder + * in the source text for the preformatted text. + * + */ + + function process(&$matches) + { + // remove the sequence }}}{{{ + $find = "/}}}{{{/"; + $replace = ""; + $matches[1] = preg_replace($find, $replace, $matches[1]); + + $start = $this->wiki->addToken( + $this->rule, + array('type' => 'start') + ); + + $raw = $this->wiki->addToken( + 'Raw', + array('text' => $matches[1]) + ); + + $end = $this->wiki->addToken( + $this->rule, + array('type' => 'end') + ); + + return $start . $raw . $end; + } +} +?> diff --git a/usr/plugins/Creole/Parse/Underline.php b/usr/plugins/Creole/Parse/Underline.php new file mode 100644 index 00000000..16099ed0 --- /dev/null +++ b/usr/plugins/Creole/Parse/Underline.php @@ -0,0 +1,78 @@ + + * @author Michele Tomaiuolo + * + */ + +class Text_Wiki_Parse_Underline extends Text_Wiki_Parse { + + + /** + * + * The regular expression used to parse the source text and find + * matches conforming to this rule. Used by the parse() method. + * + * @access public + * + * @var string + * + * @see parse() + * + */ + + //var $regex = "/__(.*?)__/"; + var $regex = "/(?:\_\_(.+?)\_\_|(?:(?<=[\W_\xFF])\_(?![ \_]))(.+?)(?:(? ['start'|'end'] The starting or ending point of the + * superscript text. The text itself is left in the source. + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return string A pair of delimited tokens to be used as a + * placeholder in the source text surrounding the text to be + * superscripted. + * + */ + + function process(&$matches) + { + $text = $matches[1] ? $matches[1] : $matches[2]; + + if (! $this->wiki->checkInnerTags($text)) { + return $matches[0]; + } + + $start = $this->wiki->addToken( + 'Underline', // $this->rule, + array('type' => 'start') + ); + + $end = $this->wiki->addToken( + 'Underline', // $this->rule, + array('type' => 'end') + ); + + return $start . $text . $end; + } +} +?> diff --git a/usr/plugins/Creole/Parse/Url.php b/usr/plugins/Creole/Parse/Url.php new file mode 100644 index 00000000..345101d0 --- /dev/null +++ b/usr/plugins/Creole/Parse/Url.php @@ -0,0 +1,109 @@ + tag (for the 'xhtml' + * format). + * + * @category Text + * + * @package Text_Wiki + * + * @author Michele Tomaiuolo + * + * @license LGPL + * + * @version $Id: Url.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * + */ + +class Text_Wiki_Parse_Url extends Text_Wiki_Parse { + + /** + * + * Constructor. Overrides the Text_Wiki_Parse constructor so that we + * can set the $regex property dynamically (we need to include the + * Text_Wiki $delim character). + * + * @param object &$obj The calling "parent" Text_Wiki object. + * + * @param string $name The token name to use for this rule. + * + */ + + function Text_Wiki_Parse_Url(&$obj) + { + parent::Text_Wiki_Parse($obj); + $this->regex = '/((?:\[\[ *((?:http:\/\/|https:\/\/|ftp:\/\/|mailto:|\/)[^\|\]\n ]*)( *\| *([^\]\n]*))? *\]\])|((http:\/\/|https:\/\/|ftp:\/\/|mailto:)[^\'\"\n ' . $this->wiki->delim . ']*[A-Za-z0-9\/\?\=\&\~\_]))/'; + } + + + /** + * + * Generates a replacement for the matched text. + * + * Token options are: + * + * 'href' => the URL link href portion + * + * 'text' => the displayed text of the URL link + * + * @access public + * + * @param array &$matches The array of matches from parse(). + * + * @return string A token to be used as a placeholder + * in the source text for the preformatted text. + * + */ + + function process(&$matches) + { + if (isset($matches[2])) $href = trim($matches[2]); + if (isset($matches[4])) $text = trim($matches[4]); + if (isset($matches[5])) $rawurl = $matches[5]; + if (empty($href)) $href = $rawurl; + + if (empty($text)) { + $text = $href; + if (strpos($text, '/') === FALSE) { + $text = str_replace('http://', '', $text); + $text = str_replace('mailto:', '', $text); + } + return $this->wiki->addToken( + $this->rule, + array( + 'type' => 'inline', + 'href' => $href, + 'text' => $text + ) + ); + } else { + return $this->wiki->addToken( + $this->rule, + array( + 'type' => 'start', + 'href' => $href, + 'text' => $text + ) + ) . $text . + $this->wiki->addToken( + $this->rule, + array( + 'type' => 'end', + 'href' => $href, + 'text' => $text + ) + ); + } + } + +} +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Plugin.php b/usr/plugins/Creole/Plugin.php new file mode 100644 index 00000000..c08ac190 --- /dev/null +++ b/usr/plugins/Creole/Plugin.php @@ -0,0 +1,72 @@ +Creole 语法发布文章。改进版本支持中文(utf-8 编码)、并除去不必要的标签。 + * + * @package Creole 解析器(改进版) + * @author 明城 + * @version 0.2 + * @link http://www.gracecode.com/ + */ + +require_once 'Creole/Creole_Wiki.php'; + +class Creole_Plugin implements Typecho_Plugin_Interface +{ + /** + * 激活插件方法,如果激活失败,直接抛出异常 + * + * @access public + * @return void + * @throws Typecho_Plugin_Exception + */ + public static function activate() { + Typecho_Plugin::factory('Widget_Abstract_Contents')->excerpt = array('Creole_Plugin', 'parse'); + Typecho_Plugin::factory('Widget_Abstract_Contents')->content = array('Creole_Plugin', 'parse'); + } + + /** + * 禁用插件方法,如果禁用失败,直接抛出异常 + * + * @static + * @access public + * @return void + * @throws Typecho_Plugin_Exception + */ + public static function deactivate() { + + } + + /** + * 获取插件配置面板 + * + * @access public + * @param Typecho_Widget_Helper_Form $form 配置面板 + * @return void + */ + public static function config(Typecho_Widget_Helper_Form $form) + { + + } + + /** + * 个人用户的配置面板 + * + * @access public + * @param Typecho_Widget_Helper_Form $form + * @return void + */ + public static function personalConfig(Typecho_Widget_Helper_Form $form){} + + + /** + * 插件实现方法 + * + * @access public + * @return void + */ + public static function parse($text, $widget, $lastResult) { + $text = empty($lastResult) ? $text : $lastResult; + $creole_parse = new Creole_Wiki; + return $creole_parse->transform(trim($text)); + } +} diff --git a/usr/plugins/Creole/Render.inc.php b/usr/plugins/Creole/Render.inc.php new file mode 100644 index 00000000..7dd7ef47 --- /dev/null +++ b/usr/plugins/Creole/Render.inc.php @@ -0,0 +1,218 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Render.inc.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * Base rendering class for parsed and tokenized text. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render { + + + /** + * + * Configuration options for this render rule. + * + * @access public + * + * @var string + * + */ + + var $conf = array(); + + + /** + * + * The name of this rule's format. + * + * @access public + * + * @var string + * + */ + + var $format = null; + + + /** + * + * The name of this rule's token array elements. + * + * @access public + * + * @var string + * + */ + + var $rule = null; + + + /** + * + * A reference to the calling Text_Wiki object. + * + * This is needed so that each rule has access to the same source + * text, token set, URLs, interwiki maps, page names, etc. + * + * @access public + * + * @var object + */ + + var $wiki = null; + + + /** + * + * Constructor for this render format or rule. + * + * @access public + * + * @param object &$obj The calling "parent" Text_Wiki object. + * + */ + + function Text_Wiki_Render(&$obj) + { + // keep a reference to the calling Text_Wiki object + $this->wiki =& $obj; + + // get the config-key-name for this object, + // strip the Text_Wiki_Render_ part + // 01234567890123456 + $tmp = get_class($this); + $tmp = substr($tmp, 17); + + // split into pieces at the _ mark. + // first part is format, second part is rule. + $part = explode('_', $tmp); + $this->format = isset($part[0]) ? ucwords(strtolower($part[0])) : null; + $this->rule = isset($part[1]) ? ucwords(strtolower($part[1])) : null; + + // is there a format but no rule? + // then this is the "main" render object, with + // pre() and post() methods. + if ($this->format && ! $this->rule && + isset($this->wiki->formatConf[$this->format]) && + is_array($this->wiki->formatConf[$this->format])) { + + // this is a format render object + $this->conf = array_merge( + $this->conf, + $this->wiki->formatConf[$this->format] + ); + + } + + // is there a format and a rule? + if ($this->format && $this->rule && + isset($this->wiki->renderConf[$this->format][$this->rule]) && + is_array($this->wiki->renderConf[$this->format][$this->rule])) { + + // this is a rule render object + $this->conf = array_merge( + $this->conf, + $this->wiki->renderConf[$this->format][$this->rule] + ); + } + } + + + /** + * + * Simple method to safely get configuration key values. + * + * @access public + * + * @param string $key The configuration key. + * + * @param mixed $default If the key does not exist, return this value + * instead. + * + * @return mixed The configuration key value (if it exists) or the + * default value (if not). + * + */ + + function getConf($key, $default = null) + { + if (isset($this->conf[$key])) { + return $this->conf[$key]; + } else { + return $default; + } + } + + + /** + * + * Simple method to wrap a configuration in an sprintf() format. + * + * @access public + * + * @param string $key The configuration key. + * + * @param string $format The sprintf() format string. + * + * @return mixed The formatted configuration key value (if it exists) + * or null (if it does not). + * + */ + + function formatConf($format, $key) + { + if (isset($this->conf[$key])) { + //$this->conf[$key] needs a textEncode....at least for Xhtml output... + return sprintf($format, $this->conf[$key]); + } else { + return null; + } + } + + /** + * Default method to render url + * + * @access public + * @param string $urlChunk a part of an url to render + * @return rendered url + * + */ + + function urlEncode($urlChunk) + { + return rawurlencode($urlChunk); + } + + /** + * Default method to render text (htmlspecialchars) + * + * @access public + * @param string $text the text to render + * @return rendered text + * + */ + + function textEncode($text) + { + return htmlspecialchars($text); + } +} +?> diff --git a/usr/plugins/Creole/Render/Plain.php b/usr/plugins/Creole/Render/Plain.php new file mode 100644 index 00000000..e1b02a8a --- /dev/null +++ b/usr/plugins/Creole/Render/Plain.php @@ -0,0 +1,16 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Anchor.php b/usr/plugins/Creole/Render/Plain/Anchor.php new file mode 100644 index 00000000..f24f467f --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Anchor.php @@ -0,0 +1,23 @@ + +* +* @author Paul M. Jones +* +* @package Text_Wiki +* +*/ + +class Text_Wiki_Render_Plain_Anchor extends Text_Wiki_Render { + + function token($options) + { + return $options['name']; + } +} + +?> diff --git a/usr/plugins/Creole/Render/Plain/Blockquote.php b/usr/plugins/Creole/Render/Plain/Blockquote.php new file mode 100644 index 00000000..08da94a1 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Blockquote.php @@ -0,0 +1,39 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Bold.php b/usr/plugins/Creole/Render/Plain/Bold.php new file mode 100644 index 00000000..628fb514 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Bold.php @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Box.php b/usr/plugins/Creole/Render/Plain/Box.php new file mode 100644 index 00000000..8d767351 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Box.php @@ -0,0 +1,48 @@ + + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Box.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders a box drawn in Plain. + * + * @category Text + * @package Text_Wiki + * @author Bertrand Gugger + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Plain_Box extends Text_Wiki_Render { + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + return ''; + } +} +?> diff --git a/usr/plugins/Creole/Render/Plain/Break.php b/usr/plugins/Creole/Render/Plain/Break.php new file mode 100644 index 00000000..5705bed6 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Break.php @@ -0,0 +1,24 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Center.php b/usr/plugins/Creole/Render/Plain/Center.php new file mode 100644 index 00000000..7b363675 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Center.php @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Code.php b/usr/plugins/Creole/Render/Plain/Code.php new file mode 100644 index 00000000..5f523a3b --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Code.php @@ -0,0 +1,24 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Colortext.php b/usr/plugins/Creole/Render/Plain/Colortext.php new file mode 100644 index 00000000..d577fe08 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Colortext.php @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Deflist.php b/usr/plugins/Creole/Render/Plain/Deflist.php new file mode 100644 index 00000000..d05593b6 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Deflist.php @@ -0,0 +1,59 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Delete.php b/usr/plugins/Creole/Render/Plain/Delete.php new file mode 100644 index 00000000..8c00c7e3 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Delete.php @@ -0,0 +1,23 @@ + diff --git a/usr/plugins/Creole/Render/Plain/Delimiter.php b/usr/plugins/Creole/Render/Plain/Delimiter.php new file mode 100644 index 00000000..0e436aa1 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Delimiter.php @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Embed.php b/usr/plugins/Creole/Render/Plain/Embed.php new file mode 100644 index 00000000..3a4304ff --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Embed.php @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Emphasis.php b/usr/plugins/Creole/Render/Plain/Emphasis.php new file mode 100644 index 00000000..8d329959 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Emphasis.php @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Font.php b/usr/plugins/Creole/Render/Plain/Font.php new file mode 100644 index 00000000..e879d7a2 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Font.php @@ -0,0 +1,44 @@ + + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Font.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * Font rule render class (used for BBCode) + * + * @category Text + * @package Text_Wiki + * @author Bertrand Gugger + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + * @see Text_Wiki::Text_Wiki_Render() + */ +class Text_Wiki_Render_Plain_Font extends Text_Wiki_Render { + + /** + * Renders a token into text matching the requested format. + * process the font size option + * + * @access public + * @param array $options The "options" portion of the token (second element). + * @return string The text rendered from the token options. + */ + function token($options) + { + return; + } +} +?> diff --git a/usr/plugins/Creole/Render/Plain/Freelink.php b/usr/plugins/Creole/Render/Plain/Freelink.php new file mode 100644 index 00000000..61de2943 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Freelink.php @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Function.php b/usr/plugins/Creole/Render/Plain/Function.php new file mode 100644 index 00000000..01dd3b08 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Function.php @@ -0,0 +1,39 @@ + $val) { + $output .= "{$val['type']} {$val['descr']} {$val['default']} "; + } + + $output .= ') '; + + foreach ($throws as $key => $val) { + $output .= "{$val['type']} {$val['descr']} "; + } + + return $output; + } +} +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Heading.php b/usr/plugins/Creole/Render/Plain/Heading.php new file mode 100644 index 00000000..306f2bf9 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Heading.php @@ -0,0 +1,14 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Horiz.php b/usr/plugins/Creole/Render/Plain/Horiz.php new file mode 100644 index 00000000..9d937643 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Horiz.php @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Html.php b/usr/plugins/Creole/Render/Plain/Html.php new file mode 100644 index 00000000..e64e94b4 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Html.php @@ -0,0 +1,24 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Image.php b/usr/plugins/Creole/Render/Plain/Image.php new file mode 100644 index 00000000..c5ddd6f7 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Image.php @@ -0,0 +1,22 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Include.php b/usr/plugins/Creole/Render/Plain/Include.php new file mode 100644 index 00000000..445990af --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Include.php @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Interwiki.php b/usr/plugins/Creole/Render/Plain/Interwiki.php new file mode 100644 index 00000000..762a2a0b --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Interwiki.php @@ -0,0 +1,29 @@ + diff --git a/usr/plugins/Creole/Render/Plain/Italic.php b/usr/plugins/Creole/Render/Plain/Italic.php new file mode 100644 index 00000000..e2a596c5 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Italic.php @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/List.php b/usr/plugins/Creole/Render/Plain/List.php new file mode 100644 index 00000000..9983689a --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/List.php @@ -0,0 +1,68 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Newline.php b/usr/plugins/Creole/Render/Plain/Newline.php new file mode 100644 index 00000000..7c7903ee --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Newline.php @@ -0,0 +1,12 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Page.php b/usr/plugins/Creole/Render/Plain/Page.php new file mode 100644 index 00000000..7faa7bb7 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Page.php @@ -0,0 +1,48 @@ + + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Page.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders page markers in Plain. + * + * @category Text + * @package Text_Wiki + * @author Bertrand Gugger + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Plain_Page extends Text_Wiki_Render { + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + return "\x0C"; + } +} +?> diff --git a/usr/plugins/Creole/Render/Plain/Paragraph.php b/usr/plugins/Creole/Render/Plain/Paragraph.php new file mode 100644 index 00000000..16e536f7 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Paragraph.php @@ -0,0 +1,31 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Phplookup.php b/usr/plugins/Creole/Render/Plain/Phplookup.php new file mode 100644 index 00000000..a4268d16 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Phplookup.php @@ -0,0 +1,25 @@ + '_blank'); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + return trim($options['text']); + } +} +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Plugin.php b/usr/plugins/Creole/Render/Plain/Plugin.php new file mode 100644 index 00000000..be7e457b --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Plugin.php @@ -0,0 +1,49 @@ + + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Plugin.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders wiki plugins in Plain. (empty) + * + * @category Text + * @package Text_Wiki + * @author Bertrand Gugger + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Plain_Plugin extends Text_Wiki_Render { + + /** + * + * Renders a token into text matching the requested format. + * Plugins produce wiki markup so are processed by parsing, no tokens produced + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + return ''; + } +} +?> diff --git a/usr/plugins/Creole/Render/Plain/Prefilter.php b/usr/plugins/Creole/Render/Plain/Prefilter.php new file mode 100644 index 00000000..8452bdc0 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Prefilter.php @@ -0,0 +1,40 @@ + | +// +----------------------------------------------------------------------+ +// +// $Id: Prefilter.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + + +/** +* +* This class implements a Text_Wiki_Render_Xhtml to "pre-filter" source text so +* that line endings are consistently \n, lines ending in a backslash \ +* are concatenated with the next line, and tabs are converted to spaces. +* +* @author Paul M. Jones +* +* @package Text_Wiki +* +*/ + +class Text_Wiki_Render_Plain_Prefilter extends Text_Wiki_Render { + function token() + { + return ''; + } +} +?> \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Preformatted.php b/usr/plugins/Creole/Render/Plain/Preformatted.php new file mode 100644 index 00000000..ab3e821a --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Preformatted.php @@ -0,0 +1,48 @@ + + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Preformatted.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders preformated text in Plain. + * + * @category Text + * @package Text_Wiki + * @author Bertrand Gugger + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Plain_Preformatted extends Text_Wiki_Render { + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + return $options['text']; + } +} +?> diff --git a/usr/plugins/Creole/Render/Plain/Raw.php b/usr/plugins/Creole/Render/Plain/Raw.php new file mode 100644 index 00000000..e7fa8a84 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Raw.php @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Revise.php b/usr/plugins/Creole/Render/Plain/Revise.php new file mode 100644 index 00000000..32bbcad9 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Revise.php @@ -0,0 +1,24 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Smiley.php b/usr/plugins/Creole/Render/Plain/Smiley.php new file mode 100644 index 00000000..0b87bab3 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Smiley.php @@ -0,0 +1,44 @@ + + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Smiley.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * Smiley rule Plain render class + * + * @category Text + * @package Text_Wiki + * @author Bertrand Gugger + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + * @see Text_Wiki::Text_Wiki_Render() + */ +class Text_Wiki_Render_Plain_Smiley extends Text_Wiki_Render { + + /** + * Renders a token into text matching the requested format. + * process the Smileys + * + * @access public + * @param array $options The "options" portion of the token (second element). + * @return string The text rendered from the token options. + */ + function token($options) + { + return $options['symbol']; + } +} +?> diff --git a/usr/plugins/Creole/Render/Plain/Specialchar.php b/usr/plugins/Creole/Render/Plain/Specialchar.php new file mode 100644 index 00000000..528f5645 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Specialchar.php @@ -0,0 +1,54 @@ + + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Specialchar.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders special characters in Plain. + * + * @category Text + * @package Text_Wiki + * @author Bertrand Gugger + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Plain_SpecialChar extends Text_Wiki_Render { + + var $types = array('~bs~' => '\\', + '~hs~' => ' ', + '~amp~' => '&', + '~ldq~' => '"', + '~rdq~' => '"', + '~lsq~' => "'", + '~rsq~' => "'", + '~c~' => '©', + '~--~' => '-', + '" -- "' => '-', + '" -- "' => '-', + '~lt~' => '<', + '~gt~' => '>'); + + function token($options) + { + if (isset($this->types[$options['char']])) { + return $this->types[$options['char']]; + } else { + return $options['char']; + } + } +} + +?> diff --git a/usr/plugins/Creole/Render/Plain/Strong.php b/usr/plugins/Creole/Render/Plain/Strong.php new file mode 100644 index 00000000..7ff55a3d --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Strong.php @@ -0,0 +1,24 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Subscript.php b/usr/plugins/Creole/Render/Plain/Subscript.php new file mode 100644 index 00000000..25b4052c --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Subscript.php @@ -0,0 +1,48 @@ + + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Subscript.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders subscript text in Plain. + * + * @category Text + * @package Text_Wiki + * @author Bertrand Gugger + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Plain_Subscript extends Text_Wiki_Render { + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + return ''; + } +} +?> diff --git a/usr/plugins/Creole/Render/Plain/Superscript.php b/usr/plugins/Creole/Render/Plain/Superscript.php new file mode 100644 index 00000000..d239ee3f --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Superscript.php @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Table.php b/usr/plugins/Creole/Render/Plain/Table.php new file mode 100644 index 00000000..86f09aa5 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Table.php @@ -0,0 +1,65 @@ + diff --git a/usr/plugins/Creole/Render/Plain/Tighten.php b/usr/plugins/Creole/Render/Plain/Tighten.php new file mode 100644 index 00000000..e2babf43 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Tighten.php @@ -0,0 +1,10 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Titlebar.php b/usr/plugins/Creole/Render/Plain/Titlebar.php new file mode 100644 index 00000000..ed5a7948 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Titlebar.php @@ -0,0 +1,54 @@ + + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Titlebar.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders a title bar in Plain. + * + * @category Text + * @package Text_Wiki + * @author Bertrand Gugger + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Plain_Titlebar extends Text_Wiki_Render { + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + if ($options['type'] == 'start') { + return '***** '; + } + + if ($options['type'] == 'end') { + return " *****\n"; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Plain/Toc.php b/usr/plugins/Creole/Render/Plain/Toc.php new file mode 100644 index 00000000..34f30612 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Toc.php @@ -0,0 +1,39 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Tt.php b/usr/plugins/Creole/Render/Plain/Tt.php new file mode 100644 index 00000000..c59ccf4d --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Tt.php @@ -0,0 +1,24 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Underline.php b/usr/plugins/Creole/Render/Plain/Underline.php new file mode 100644 index 00000000..8e4d18b5 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Underline.php @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Url.php b/usr/plugins/Creole/Render/Plain/Url.php new file mode 100644 index 00000000..5c758e27 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Url.php @@ -0,0 +1,29 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Plain/Wikilink.php b/usr/plugins/Creole/Render/Plain/Wikilink.php new file mode 100644 index 00000000..8337dda5 --- /dev/null +++ b/usr/plugins/Creole/Render/Plain/Wikilink.php @@ -0,0 +1,24 @@ + \ No newline at end of file diff --git a/usr/plugins/Creole/Render/Xhtml.php b/usr/plugins/Creole/Render/Xhtml.php new file mode 100644 index 00000000..3658cc38 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml.php @@ -0,0 +1,109 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Xhtml.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * Format class for the Xhtml rendering + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml extends Text_Wiki_Render { + + var $conf = array( + 'translate' => HTML_ENTITIES, + 'quotes' => ENT_COMPAT, + //'charset' => 'ISO-8859-1' + 'charset' => 'UTF-8' + ); + + function pre() + { + $this->wiki->source = $this->textEncode($this->wiki->source); + } + + function post() + { + return; + } + + + /** + * Method to render text + * + * @access public + * @param string $text the text to render + * @return rendered text + * + */ + + function textEncode($text) + { + // attempt to translate HTML entities in the source. + // get the config options. + $type = $this->getConf('translate', HTML_ENTITIES); + $quotes = $this->getConf('quotes', ENT_COMPAT); + //$charset = $this->getConf('charset', 'ISO-8859-1'); + $charset = $this->getConf('charset', 'UTF-8'); + + // have to check null and false because HTML_ENTITIES is a zero + if ($type === HTML_ENTITIES) { + + // keep a copy of the translated version of the delimiter + // so we can convert it back. + $new_delim = htmlentities($this->wiki->delim, $quotes, $charset); + + // convert the entities. we silence the call here so that + // errors about charsets don't pop up, per counsel from + // Jan at Horde. (http://pear.php.net/bugs/bug.php?id=4474) + $text = @htmlentities( + $text, + $quotes, + $charset + ); + + // re-convert the delimiter + $text = str_replace( + $new_delim, $this->wiki->delim, $text + ); + + } elseif ($type === HTML_SPECIALCHARS) { + + // keep a copy of the translated version of the delimiter + // so we can convert it back. + $new_delim = htmlspecialchars($this->wiki->delim, $quotes, + $charset); + + // convert the entities. we silence the call here so that + // errors about charsets don't pop up, per counsel from + // Jan at Horde. (http://pear.php.net/bugs/bug.php?id=4474) + $text = @htmlspecialchars( + $text, + $quotes, + $charset + ); + + // re-convert the delimiter + $text = str_replace( + $new_delim, $this->wiki->delim, $text + ); + } + return $text; + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Address.php b/usr/plugins/Creole/Render/Xhtml/Address.php new file mode 100644 index 00000000..f0b9f7c5 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Address.php @@ -0,0 +1,54 @@ + + * + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * + * @version CVS: $Id: Address.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * + * @link http://pear.php.net/package/Text_Wiki + * + */ + +class Text_Wiki_Render_Xhtml_Address extends Text_Wiki_Render { + + var $conf = array( + 'css' => null + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + if ($options['type'] == 'start') { + $css = $this->formatConf(' class="%s"', 'css'); + return ""; + } + + if ($options['type'] == 'end') { + return ''; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Anchor.php b/usr/plugins/Creole/Render/Xhtml/Anchor.php new file mode 100644 index 00000000..2bbf6b85 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Anchor.php @@ -0,0 +1,48 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Anchor.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders an anchor target name in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Anchor extends Text_Wiki_Render { + + var $conf = array( + 'css' => null + ); + + function token($options) + { + extract($options); // $type, $name + + if ($type == 'start') { + $css = $this->formatConf(' class="%s"', 'css'); + $format = ""; + return sprintf($format, $this->textEncode($name)); + } + + if ($type == 'end') { + return ''; + } + } +} + +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Blockquote.php b/usr/plugins/Creole/Render/Xhtml/Blockquote.php new file mode 100644 index 00000000..2c41d9d7 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Blockquote.php @@ -0,0 +1,72 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Blockquote.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders a blockquote in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Blockquote extends Text_Wiki_Render { + + var $conf = array( + 'css' => null + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + $type = $options['type']; + $level = $options['level']; + + // set up indenting so that the results look nice; we do this + // in two steps to avoid str_pad mathematics. ;-) + $pad = str_pad('', $level, "\t"); + $pad = str_replace("\t", ' ', $pad); + + // pick the css type + $css = $this->formatConf(' class="%s"', 'css'); + + if (isset($options['css'])) { + $css = ' class="' . $options['css']. '"'; + } + // starting + if ($type == 'start') { + return "$pad"; + } + + // ending + if ($type == 'end') { + return $pad . "\n"; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Bold.php b/usr/plugins/Creole/Render/Xhtml/Bold.php new file mode 100644 index 00000000..8bc59e81 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Bold.php @@ -0,0 +1,57 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Bold.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders bold text in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Bold extends Text_Wiki_Render { + + var $conf = array( + 'css' => null + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + if ($options['type'] == 'start') { + $css = $this->formatConf(' class="%s"', 'css'); + return ""; + } + + if ($options['type'] == 'end') { + return '
    '; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Box.php b/usr/plugins/Creole/Render/Xhtml/Box.php new file mode 100644 index 00000000..3ff35b31 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Box.php @@ -0,0 +1,62 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Box.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders a box drawn in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Box extends Text_Wiki_Render { + + var $conf = array( + 'css' => 'simplebox' + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + if ($options['type'] == 'start') { + if ($options['css']) { + $css = ' class="' . $options['css']. '"'; + } + else { + $css = $this->formatConf(' class="%s"', 'css'); + } + return "
    "; + } + + if ($options['type'] == 'end') { + return '
    '; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Break.php b/usr/plugins/Creole/Render/Xhtml/Break.php new file mode 100644 index 00000000..7bada1ec --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Break.php @@ -0,0 +1,52 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Break.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders line breaks in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Break extends Text_Wiki_Render { + + var $conf = array( + 'css' => null + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + $css = $this->formatConf(' class="%s"', 'css'); + return "\n"; + } +} + +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Center.php b/usr/plugins/Creole/Render/Xhtml/Center.php new file mode 100644 index 00000000..1f8a96b1 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Center.php @@ -0,0 +1,62 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Center.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders centered content in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Center extends Text_Wiki_Render { + + var $conf = array( + 'css' => null + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + if ($options['type'] == 'start') { + $css = $this->getConf('css'); + if ($css) { + return "
    "; + } + else { + return '
    '; + } + } + + if ($options['type'] == 'end') { + return '
    '; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Code.php b/usr/plugins/Creole/Render/Xhtml/Code.php new file mode 100644 index 00000000..479a55ed --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Code.php @@ -0,0 +1,133 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Code.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders code blocks in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Code extends Text_Wiki_Render { + + var $conf = array( + 'css' => null, // class for
    +        'css_code' => null, // class for generic 
    +        'css_php'  => null, // class for PHP 
    +        'css_html' => null, // class for HTML 
    +        'css_filename' => null // class for optional filename 
    + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + $text = $options['text']; + $attr = $options['attr']; + $type = strtolower($attr['type']); + + $css = $this->formatConf(' class="%s"', 'css'); + $css_code = $this->formatConf(' class="%s"', 'css_code'); + $css_php = $this->formatConf(' class="%s"', 'css_php'); + $css_html = $this->formatConf(' class="%s"', 'css_html'); + $css_filename = $this->formatConf(' class="%s"', 'css_filename'); + + if ($type == 'php') { + if (substr($options['text'], 0, 5) != '"; // ... tags) + ob_start(); + highlight_string($text); + $text = ob_get_contents(); + ob_end_clean(); + + // replace
    tags with simple newlines. + // replace non-breaking space with simple spaces. + // translate HTML and color to XHTML and style. + // courtesy of research by A. Kalin :-). + $map = array( + '
    ' => "\n", + ' ' => ' ', + ' '' => '
    ', + 'color="' => 'style="color:' + ); + $text = strtr($text, $map); + + // get rid of the last newline inside the code block + // (becuase higlight_string puts one there) + if (substr($text, -8) == "\n
    ") { + $text = substr($text, 0, -8) . "
    "; + } + + // replace all tags with classed tags + if ($css_php) { + $text = str_replace('', "", $text); + } + + // done + $text = "$text
    "; + + } elseif ($type == 'html' || $type == 'xhtml') { + + // HTML code example: + // add opening and closing tags, + // convert tabs to four spaces, + // convert entities. + $text = str_replace("\t", " ", $text); + $text = "\n$text\n"; + $text = $this->textEncode($text); + $text = "$text"; + + } else { + // generic code example: + // convert tabs to four spaces, + // convert entities. + $text = str_replace("\t", " ", $text); + $text = $this->textEncode($text); + $text = "$text"; + } + + if ($css_filename && isset($attr['filename'])) { + $text = "" . + $attr['filename'] . '
    ' . $text; + } + + return "\n$text\n\n"; + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Colortext.php b/usr/plugins/Creole/Render/Xhtml/Colortext.php new file mode 100644 index 00000000..8b6d5343 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Colortext.php @@ -0,0 +1,79 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Colortext.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders colored text in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Colortext extends Text_Wiki_Render { + + var $colors = array( + 'aqua', + 'black', + 'blue', + 'fuchsia', + 'gray', + 'green', + 'lime', + 'maroon', + 'navy', + 'olive', + 'purple', + 'red', + 'silver', + 'teal', + 'white', + 'yellow' + ); + + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + $type = $options['type']; + $color = $options['color']; + + if (! in_array($color, $this->colors) && $color{0} != '#') { + $color = '#' . $color; + } + + if ($type == 'start') { + return ""; + } + + if ($options['type'] == 'end') { + return ''; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Deflist.php b/usr/plugins/Creole/Render/Xhtml/Deflist.php new file mode 100644 index 00000000..0a80c9ca --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Deflist.php @@ -0,0 +1,87 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Deflist.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders definition lists in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Deflist extends Text_Wiki_Render { + + var $conf = array( + 'css_dl' => null, + 'css_dt' => null, + 'css_dd' => null + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + $type = $options['type']; + $pad = " "; + + switch ($type) { + + case 'list_start': + $css = $this->formatConf(' class="%s"', 'css_dl'); + return "\n"; + break; + + case 'list_end': + return "\n\n"; + break; + + case 'term_start': + $css = $this->formatConf(' class="%s"', 'css_dt'); + return $pad . ""; + break; + + case 'term_end': + return "

    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�y9sA{K37k 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 z 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

    \n"; + break; + + case 'narr_start': + $css = $this->formatConf(' class="%s"', 'css_dd'); + return $pad . $pad . ""; + break; + + case 'narr_end': + return "

    JJD~?yy2> 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 literal 0 HcmV?d00001 diff --git a/mockup/mockup/table-list.png b/mockup/mockup/table-list.png new file mode 100644 index 0000000000000000000000000000000000000000..0144b509aee1d31d5a579821a7f82fee568cea82 GIT binary patch literal 220590 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 z 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

    '; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Font.php b/usr/plugins/Creole/Render/Xhtml/Font.php new file mode 100644 index 00000000..1127f159 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Font.php @@ -0,0 +1,83 @@ + + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Font.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * Font rule render class (used for BBCode) + * + * @category Text + * @package Text_Wiki + * @author Bertrand Gugger + * @copyright 2005 bertrand Gugger + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + * @see Text_Wiki::Text_Wiki_Render() + */ +class Text_Wiki_Render_Xhtml_Font extends Text_Wiki_Render { + +/* var $size = array( + 'xx-small', + 'x-small', + 'small', + 'medium', + 'large', + 'x-large', + 'xx-large', + 'larger', + 'smaller' + ); + var $units = array( + 'em', + 'ex', + 'px', + 'in', + 'cm', + 'mm', + 'pt', + 'pc' + ); +*/ + + /** + * Renders a token into text matching the requested format. + * process the font size option + * + * @access public + * @param array $options The "options" portion of the token (second element). + * @return string The text rendered from the token options. + */ + function token($options) + { + if ($options['type'] == 'end') { + return ''; + } + if ($options['type'] != 'start') { + return ''; + } + + $ret = ''; + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Freelink.php b/usr/plugins/Creole/Render/Xhtml/Freelink.php new file mode 100644 index 00000000..0fade11e --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Freelink.php @@ -0,0 +1,35 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Freelink.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * The wikilink render class. + */ +require_once 'Text/Wiki/Render/Xhtml/Wikilink.php'; + +/** + * This class renders free links in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Freelink extends Text_Wiki_Render_Xhtml_Wikilink { + // renders identically to wikilinks, only the parsing is different :-) +} + +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Function.php b/usr/plugins/Creole/Render/Xhtml/Function.php new file mode 100644 index 00000000..a4e7e820 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Function.php @@ -0,0 +1,108 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Function.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders a function description in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Function extends Text_Wiki_Render { + + var $conf = array( + // list separator for params and throws + 'list_sep' => ', ', + + // the "main" format string + 'format_main' => '%access %return %name ( %params ) %throws', + + // the looped format string for required params + 'format_param' => '%type %descr', + + // the looped format string for params with default values + 'format_paramd' => '[%type %descr default %default]', + + // the looped format string for throws + 'format_throws' => 'throws %type %descr' + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + extract($options); // name, access, return, params, throws + + // build the baseline output + $output = $this->conf['format_main']; + $output = str_replace('%access', $this->textEncode($access), $output); + $output = str_replace('%return', $this->textEncode($return), $output); + $output = str_replace('%name', $this->textEncode($name), $output); + + // build the set of params + $list = array(); + foreach ($params as $key => $val) { + + // is there a default value? + if ($val['default']) { + $tmp = $this->conf['format_paramd']; + } else { + $tmp = $this->conf['format_param']; + } + + // add the param elements + $tmp = str_replace('%type', $this->textEncode($val['type']), $tmp); + $tmp = str_replace('%descr', $this->textEncode($val['descr']), $tmp); + $tmp = str_replace('%default', $this->textEncode($val['default']), $tmp); + $list[] = $tmp; + } + + // insert params into output + $tmp = implode($this->conf['list_sep'], $list); + $output = str_replace('%params', $tmp, $output); + + // build the set of throws + $list = array(); + foreach ($throws as $key => $val) { + $tmp = $this->conf['format_throws']; + $tmp = str_replace('%type', $this->textEncode($val['type']), $tmp); + $tmp = str_replace('%descr', $this->textEncode($val['descr']), $tmp); + $list[] = $tmp; + } + + // insert throws into output + $tmp = implode($this->conf['list_sep'], $list); + $output = str_replace('%throws', $tmp, $output); + + // close the div and return the output + $output .= ''; + return "\n$output\n\n"; + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Heading.php b/usr/plugins/Creole/Render/Xhtml/Heading.php new file mode 100644 index 00000000..ce3c50d7 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Heading.php @@ -0,0 +1,54 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Heading.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders headings in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Heading extends Text_Wiki_Render { + + var $conf = array( + 'css_h1' => null, + 'css_h2' => null, + 'css_h3' => null, + 'css_h4' => null, + 'css_h5' => null, + 'css_h6' => null + ); + + function token($options) + { + $collapse = null; + static $jsOutput = false; + // get nice variable names (id, type, level) + extract($options); + + switch($type) { + case 'start': + //$css = $this->formatConf(' class="%s"', "css_h$level"); + return ''; + //return ''; + case 'end': + return ''; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Horiz.php b/usr/plugins/Creole/Render/Xhtml/Horiz.php new file mode 100644 index 00000000..f8738e70 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Horiz.php @@ -0,0 +1,51 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Horiz.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders an horizontal bar in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Horiz extends Text_Wiki_Render { + + var $conf = array( + 'css' => null + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + $css = $this->formatConf(' class="%s"', 'css'); + return "\n"; + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Html.php b/usr/plugins/Creole/Render/Xhtml/Html.php new file mode 100644 index 00000000..bce7f871 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Html.php @@ -0,0 +1,47 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Html.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders preformated html in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Html extends Text_Wiki_Render { + + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + return $options['text']; + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Image.php b/usr/plugins/Creole/Render/Xhtml/Image.php new file mode 100644 index 00000000..58edba65 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Image.php @@ -0,0 +1,183 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Image.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class inserts an image in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Image extends Text_Wiki_Render { + + var $conf = array( + 'base' => null, + 'url_base' => null, + 'css' => null, + 'css_link' => null + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + // note the image source + $src = $options['src']; + + // is the source a local file or URL? + if (strpos($src, '://') === false) { + // the source refers to a local file. + // add the URL base to it. + $src = $this->getConf('base', '/') . $src; + } + + // stephane@metacites.net + // is the image clickable? + if (isset($options['attr']['link'])) { + // yes, the image is clickable. + // are we linked to a URL or a wiki page? + if (strpos($options['attr']['link'], '://')) { + // it's a URL, prefix the URL base + $href = $this->getConf('url_base') . $options['attr']['link']; + } else { + // it's a WikiPage; assume it exists. + /** @todo This needs to honor sprintf wikilinks (pmjones) */ + /** @todo This needs to honor interwiki (pmjones) */ + /** @todo This needs to honor freelinks (pmjones) */ + $href = $this->wiki->getRenderConf('xhtml', 'wikilink', 'view_url') . + $options['attr']['link']; + } + } else { + // image is not clickable. + $href = null; + } + // unset so it won't show up as an attribute + unset($options['attr']['link']); + + // stephane@metacites.net -- 25/07/2004 + // use CSS for all alignment + if (isset($options['attr']['align'])) { + // make sure we have a style attribute + if (!isset($options['attr']['style'])) { + // no style, set up a blank one + $options['attr']['style'] = ''; + } else { + // style exists, add a space + $options['attr']['style'] .= ' '; + } + + if ($options['attr']['align'] == 'center') { + // add a "center" style to the existing style. + $options['attr']['style'] .= + 'display: block; margin-left: auto; margin-right: auto;'; + } else { + // add a float style to the existing style + $options['attr']['style'] .= + 'float: '.$options['attr']['align']; + } + + // unset so it won't show up as an attribute + unset($options['attr']['align']); + } + + // stephane@metacites.net -- 25/07/2004 + // try to guess width and height + if (! isset($options['attr']['width']) && + ! isset($options['attr']['height'])) { + + // does the source refer to a local file or a URL? + if (strpos($src,'://')) { + // is a URL link + $imageFile = $src; + } elseif ($src[0] == '.') { + // reg at dav-muz dot net -- 2005-03-07 + // is a local file on relative path. + $imageFile = $src; # ...don't do anything because it's perfect! + } else { + // is a local file on absolute path. + $imageFile = $_SERVER['DOCUMENT_ROOT'] . $src; + } + + // attempt to get the image size + $imageSize = @getimagesize($imageFile); + + if (is_array($imageSize)) { + $options['attr']['width'] = $imageSize[0]; + $options['attr']['height'] = $imageSize[1]; + } + + } + + // start the HTML output + $output = 'formatConf(' class="%s"', 'css'); + + // add the attributes to the output, and be sure to + // track whether or not we find an "alt" attribute + $alt = false; + foreach ($options['attr'] as $key => $val) { + + // track the 'alt' attribute + if (strtolower($key) == 'alt') { + $alt = true; + } + + // the 'class' attribute overrides the CSS class conf + if (strtolower($key) == 'class') { + $css = null; + } + + $key = $this->textEncode($key); + $val = $this->textEncode($val); + $output .= " $key=\"$val\""; + } + + // always add an "alt" attribute per Stephane Solliec + if (! $alt) { + $alt = $this->textEncode(basename($options['src'])); + $output .= " alt=\"$alt\""; + } + + // end the image tag with the automatic CSS class (if any) + $output .= "$css />"; + + // was the image clickable? + if ($href) { + // yes, add the href and return + $href = $this->textEncode($href); + $css = $this->formatConf(' class="%s"', 'css_link'); + $output = "$output"; + } + + return $output; + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Include.php b/usr/plugins/Creole/Render/Xhtml/Include.php new file mode 100644 index 00000000..30727709 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Include.php @@ -0,0 +1,32 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Include.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders included maekup in XHTML. (empty) + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Include extends Text_Wiki_Render { + function token() + { + return ''; + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Interwiki.php b/usr/plugins/Creole/Render/Xhtml/Interwiki.php new file mode 100644 index 00000000..a71268cb --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Interwiki.php @@ -0,0 +1,103 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Interwiki.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders inter wikis links in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Interwiki extends Text_Wiki_Render { + + var $conf = array( + 'sites' => array( + 'MeatBall' => 'http://www.usemod.com/cgi-bin/mb.pl?%s', + 'Advogato' => 'http://advogato.org/%s', + 'Wiki' => 'http://c2.com/cgi/wiki?%s' + ), + 'target' => '_blank', + 'css' => null + ); + + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + $text = $options['text']; + if (isset($options['url'])) { + // calculated by the parser (e.g. Mediawiki) + $href = $options['url']; + } else { + $site = $options['site']; + // toggg 2006/02/05 page name must be url encoded (e.g. may contain spaces) + $page = $this->urlEncode($options['page']); + + if (isset($this->conf['sites'][$site])) { + $href = $this->conf['sites'][$site]; + } else { + return $text; + } + + // old form where page is at end, + // or new form with %s placeholder for sprintf()? + if (strpos($href, '%s') === false) { + // use the old form + $href = $href . $page; + } else { + // use the new form + $href = sprintf($href, $page); + } + } + + // allow for alternative targets + $target = $this->getConf('target'); + + // build base link + $css = $this->formatConf(' class="%s"', 'css'); + $text = $this->textEncode($text); + $output = "textEncode($target); + $output .= " onclick=\"window.open(this.href, '$target');"; + $output .= " return false;\""; + } + + $output .= ">$text"; + + return $output; + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/Italic.php b/usr/plugins/Creole/Render/Xhtml/Italic.php new file mode 100644 index 00000000..fbee3d87 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/Italic.php @@ -0,0 +1,57 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: Italic.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders italic text in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_Italic extends Text_Wiki_Render { + + var $conf = array( + 'css' => null + ); + + /** + * + * Renders a token into text matching the requested format. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + if ($options['type'] == 'start') { + $css = $this->formatConf(' class="%s"', 'css'); + return ""; + } + + if ($options['type'] == 'end') { + return ''; + } + } +} +?> diff --git a/usr/plugins/Creole/Render/Xhtml/List.php b/usr/plugins/Creole/Render/Xhtml/List.php new file mode 100644 index 00000000..cee17b73 --- /dev/null +++ b/usr/plugins/Creole/Render/Xhtml/List.php @@ -0,0 +1,172 @@ + + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version CVS: $Id: List.php 182 2008-09-14 15:56:00Z i.feelinglucky $ + * @link http://pear.php.net/package/Text_Wiki + */ + +/** + * This class renders bullet and ordered lists in XHTML. + * + * @category Text + * @package Text_Wiki + * @author Paul M. Jones + * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 + * @version Release: @package_version@ + * @link http://pear.php.net/package/Text_Wiki + */ +class Text_Wiki_Render_Xhtml_List extends Text_Wiki_Render { + + var $conf = array( + 'css_ol' => null, + 'css_ol_li' => null, + 'css_ul' => null, + 'css_ul_li' => null + ); + + /** + * + * Renders a token into text matching the requested format. + * + * This rendering method is syntactically and semantically compliant + * with XHTML 1.1 in that sub-lists are part of the previous list item. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + // make nice variables (type, level, count) + extract($options); + + // set up indenting so that the results look nice; we do this + // in two steps to avoid str_pad mathematics. ;-) + $pad = str_pad('', $level, "\t"); + $pad = str_replace("\t", ' ', $pad); + + switch ($type) { + + case 'bullet_list_start': + + // build the base HTML + $css = $this->formatConf(' class="%s"', 'css_ul'); + $html = ""; + + /* + // if this is the opening block for the list, + // put an extra newline in front of it so the + // output looks nice. + if ($level == 0) { + $html = "\n$html"; + } + */ + + // done! + return $html; + break; + + case 'bullet_list_end': + + // build the base HTML + $html = "
  • WpZk84X3Py5EhU}Mg&@>ecqkTt7WMtp)Mg7#f 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�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 literal 0 HcmV?d00001 diff --git a/mockup/mockup/012.png b/mockup/mockup/012.png new file mode 100644 index 0000000000000000000000000000000000000000..280a429a892f488f729691d44e53b85ea79c087f GIT binary patch literal 187188 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 literal 0 HcmV?d00001 diff --git a/mockup/mockup/013.png b/mockup/mockup/013.png new file mode 100644 index 0000000000000000000000000000000000000000..35697295fc71425bb639dc6052e1592050340e59 GIT binary patch literal 192734 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