5种wordpress主题加密方式对比:源码下载太难用?选错就白搭
模板网站太丑不够用,源码下载后又担心被别人复制,这种焦虑我懂。做网站这些年,我见过太多老板花了几万块买主题,结果被别人扒下来改一改就上线,自己反而被套牢。今天咱们不讲花里胡哨的SEO技巧,就来掰扯清楚【wordpress主题加密】到底怎么玩,源码下载之后怎么防被扒。
各自定位:5种加密方案的初心与目标
在讲对比之前,咱们先说清楚每种加密方案的初心,这决定你该选哪个。下面是5种主流的wordpress主题加密方式及其适用场景:
| 加密方式 | 初心 | 适用场景 |
|---|---|---|
| WordPress官方加密 | 通过官方机制限制主题修改 | 适用于希望控制主题修改权限的大型企业 |
| 第三方插件加密(如Theme Authenticator) | 通过插件限制主题下载与使用 | 适用于需要对主题进行版本控制的团队 |
| 文件加密(如AES加密) | 对主题文件进行加密,运行时自动解密 | 适用于对安全性要求极高的项目 |
| 代码混淆(如JS/CSS混淆) | 对前端代码进行混淆处理,防止被逆向 | 适用于前端展示类主题,如展示类官网 |
| 账号绑定加密(如ThemeForest授权机制) | 通过账号绑定限制主题使用 | 适用于通过主题市场购买的主题,如ThemeForest等 |
核心差异:5种加密方式对比分析
| 对比维度 | WordPress官方加密 | 第三方插件加密 | 文件加密 | 代码混淆 | 账号绑定加密 |
|---|---|---|---|---|---|
| 实现方式 | 内置权限控制 | 通过插件机制控制 | 加密文件后运行时解密 | 混淆前端代码 | 通过账号绑定授权 |
| 安全性 | 中等 | 中等 | 高 | 中等 | 中等 |
| 代码复杂度 | 低 | 中等 | 高 | 中等 | 低 |
| 使用门槛 | 低 | 中等 | 高 | 中等 | 低 |
| 可维护性 | 高 | 中等 | 低 | 高 | 中等 |
| 防逆向能力 | 一般 | 一般 | 强 | 一般 | 一般 |
从表中可以看到,文件加密在安全性上是绝对领先的,但对开发和维护的门槛要求很高,适合有较强技术实力的团队。而账号绑定加密和WordPress官方加密则更适合中小型团队使用,维护成本较低。
代码/配置写法对比:各加密方式的实现方式
WordPress官方加密
这种方式是通过WordPress自带的权限控制机制来限制主题的修改。你可以在后台设置特定用户权限,例如禁止某些用户编辑主题文件。这种方式虽然不能完全防止源码下载,但能有效控制谁可以修改主题代码。
// 禁止特定用户组编辑主题
function restrict_theme_editing($user_can_edit_theme) {if (current_user_can('editor')) { // 如果是编辑用户return false; // 禁止编辑}return $user_can_edit_theme;
}
add_filter('user_can_edit_theme', 'restrict_theme_editing');
第三方插件加密(Theme Authenticator)
通过安装插件(如Theme Authenticator),你可以设置主题的使用权限。比如,只有拥有特定授权码的用户才能使用主题。这种方式对代码改动不大,但需要额外安装插件。
文件加密(AES加密)
这是最安全但也最难维护的一种方式。你将主题文件加密,然后通过自定义的解密脚本运行时自动解密。下面是一个简单的加密脚本示例,使用PHP+AES进行加密:
// 加密函数
function encrypt_file($input, $key, $output) {$data = file_get_contents($input);$encrypted = openssl_encrypt($data, 'AES-128-ECB', $key, 0, '');file_put_contents($output, $encrypted);
}// 解密函数
function decrypt_file($input, $key, $output) {$data = file_get_contents($input);$decrypted = openssl_decrypt($data, 'AES-128-ECB', $key, 0, '');file_put_contents($output, $decrypted);
}
代码混淆(JS/CSS混淆)
这种方式是通过混淆前端代码,让代码难以被逆向分析。例如,使用JavaScript混淆工具对前端代码进行压缩和混淆处理,这样即使用户下载了代码,也难以看懂。
// 混淆后的代码(示例)
(function(n,t){function r(n){return n.replace(/(function)([^\{]*)\{([\s\S]*?)\}/g,function(n,r,e,a){return e=e.replace(/\s+/g," "),a=a.replace(/\s+/g," "),a=a.replace(/\n/g,""),a=a.replace(/\r/g,""),a=a.replace(/\t/g," "),a=a.replace(/\/\*(?:[\s\S]*?)\*\//g,""),a=a.replace(/\/\/.*$/g,""),a=a.replace(/"/g,"'"),a=a.replace(/'/g,"\""),a=a.replace(/\n/g,""),a=a.replace(/\r/g,""),a=a.replace(/\t/g," "),a=a.replace(/[\s]{2,}/g," "),a=a.replace(/(.*?)(?=\.)/g,function(n){return n+"."}),a=a.replace(/(.*?)(?=\()/g,function(n){return n+"("}),a=a.replace(/(.*?)(?=\+)/g,function(n){return n+"+"}),a=a.replace(/(.*?)(?=\-)/g,function(n){return n+"-"}),a=a.replace(/(.*?)(?=\*)/g,function(n){return n+"*"}),a=a.replace(/(.*?)(?=\//g,function(n){return n+"/"+}),a=a.replace(/(.*?)(?=\{)/g,function(n){return n+"{"}),a=a.replace(/(.*?)(?=\})/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*?)(?=\))/g,function(n){return n+"}"}),a=a.replace(/(.*