ht.lib = ht.lib || {};
if (!ht.lib['pt2']) {
    ht.lib['pt2'] = function (x, y, width, height, angle, localVarObj, localDynamicVar, nodename) {
        _ratio = GD.getRatioWithRotation(0, ratio);
        ht.lib['pt2'].superClass.constructor.apply(this);
        this.localVarObj = localVarObj;
        this.localDynamicVar = localDynamicVar;
        this.childNodes = [];
        
        this._styleObject = {};
        this._originWidth = 36*_ratio.ratioX;
        this._originHeight = 30*_ratio.ratioY;
        this._baseClass = "ht.lib.pt2";

        this._background = new ht.Node();
        this._background.setWidth(this._originWidth);
        this._background.setHeight(this._originHeight);
        this._background.setPosition(this._originWidth/2, this._originHeight/2);
        this._background.setImage({
            width: width,
            height: height,
            clip: true,
            comps: [
                {
                    type: 'rect',
                    background: 'rgba(0,255,0,0)',
                    rect: [0,0,width, height]
                }
            ]
        });
        this._background.__parentLib = nodename;
        this._background.isLibBackground = true;
        this.childNodes.push(this._background);
        dataModel.add(this._background);
        /*@PageBackgroundInit@*/ 
        /*@PageBeforeInit@*/
        _ratio = GD.getRatioWithRotation(0*Math.PI/180, ratio);
var Lib_pt2Node0type = 'oval';
var Lib_pt2Node0 = new ht.Node(),
    Lib_pt2Node0BorderWidth = 2*2;

if (Lib_pt2Node0type === 'arc') {
    Lib_pt2Node0BorderWidth *= 2;
}

Lib_pt2Node0.setImage(GD.getRectJSON(19.99998*_ratio.ratioX, 16.36363*_ratio.ratioY, Lib_pt2Node0type, '@arcFrom@', '@arcTo@', '@arcClose@'));

Lib_pt2Node0.setPosition(25*ratio.ratioX, 8*ratio.ratioY);
Lib_pt2Node0.setSize(19.99998*_ratio.ratioX, 16.36363*_ratio.ratioY);
Lib_pt2Node0.s({
    'pixelPerfect':true
/*@AddPara@*/
});  
Lib_pt2Node0.a('node.width', 19.99998*_ratio.ratioX);
Lib_pt2Node0.a('node.height', 16.36363*_ratio.ratioY);
Lib_pt2Node0.a('node.type', Lib_pt2Node0type);
Lib_pt2Node0.a('node.rect', [0, 0, 19.99998*_ratio.ratioX, 16.36363*_ratio.ratioY]);
Lib_pt2Node0.a('node.background', 'rgba(255,255,255,0.003921569)');
Lib_pt2Node0.a('node.gradientcolor', '');
Lib_pt2Node0.a('node.gradient', '');
Lib_pt2Node0.a('node.borderwidth', Lib_pt2Node0BorderWidth);
Lib_pt2Node0.a('node.color', 'rgba(255,0,255,1)');
Lib_pt2Node0.a('node.fillrect', [0,0,0,0]);
Lib_pt2Node0.a('node.fillbackcolor', 'rgba(0,0,0,0)');
Lib_pt2Node0.a('node.fillgradientcolor', 'rgba(0,0,0,0)');
Lib_pt2Node0.a('node.fillgradient', '');

if (Lib_pt2Node0type !== 'rect') {
    Lib_pt2Node0.a('node.arcFrom', parseFloat('@arcFrom@'));
    Lib_pt2Node0.a('node.arcTo', parseFloat('@arcTo@'));
    Lib_pt2Node0.a('node.arcClose', '@arcClose@' === 'true' ? true : false);
}
if (Lib_pt2Node0type === 'arc') {
    Lib_pt2Node0.a('node.arcOval', true);
}

Lib_pt2Node0.setRotation(0*Math.PI/180);
Lib_pt2Node0.borderWidth = Lib_pt2Node0BorderWidth;
Lib_pt2Node0.borderFillwidth = Lib_pt2Node0BorderWidth;

dataModel.add(Lib_pt2Node0);
Lib_pt2Node0._nodename = 'Lib_pt2Node0'
Lib_pt2Node0._nodeType = 'rect';
zoomNodeList.push({
    node: Lib_pt2Node0,
    attr: 'node.borderwidth'
});
(function (node, _img) {
    var setWidth = node.setWidth,
        setHeight = node.setHeight;

    node.setWidth = function (width) {
        if (width === this.getWidth()) return ; 
        var height = this.getHeight();

        this.a('node.width', width);
        this.a('node.rect', [0,0,width, height]);
        setWidth.apply(this, arguments);
    }
    node.setHeight = function (height) {
        if (height === this.getHeight()) return ;
        var width = this.getWidth();

        this.a('node.height', height);
        this.a('node.rect', [0,0,width, height]);
        setHeight.apply(this, arguments);
    }
})(Lib_pt2Node0, Lib_pt2Node0.getImage());_ratio = GD.getRatioWithRotation(0*Math.PI/180, ratio);
var Lib_pt2Node1type = 'oval';
var Lib_pt2Node1 = new ht.Node(),
    Lib_pt2Node1BorderWidth = 2*2;

if (Lib_pt2Node1type === 'arc') {
    Lib_pt2Node1BorderWidth *= 2;
}

Lib_pt2Node1.setImage(GD.getRectJSON(19.99998*_ratio.ratioX, 16.36363*_ratio.ratioY, Lib_pt2Node1type, '@arcFrom@', '@arcTo@', '@arcClose@'));

Lib_pt2Node1.setPosition(25*ratio.ratioX, 21*ratio.ratioY);
Lib_pt2Node1.setSize(19.99998*_ratio.ratioX, 16.36363*_ratio.ratioY);
Lib_pt2Node1.s({
    'pixelPerfect':true
/*@AddPara@*/
});  
Lib_pt2Node1.a('node.width', 19.99998*_ratio.ratioX);
Lib_pt2Node1.a('node.height', 16.36363*_ratio.ratioY);
Lib_pt2Node1.a('node.type', Lib_pt2Node1type);
Lib_pt2Node1.a('node.rect', [0, 0, 19.99998*_ratio.ratioX, 16.36363*_ratio.ratioY]);
Lib_pt2Node1.a('node.background', 'rgba(255,255,255,0.003921569)');
Lib_pt2Node1.a('node.gradientcolor', '');
Lib_pt2Node1.a('node.gradient', '');
Lib_pt2Node1.a('node.borderwidth', Lib_pt2Node1BorderWidth);
Lib_pt2Node1.a('node.color', 'rgba(255,0,255,1)');
Lib_pt2Node1.a('node.fillrect', [0,0,0,0]);
Lib_pt2Node1.a('node.fillbackcolor', 'rgba(0,0,0,0)');
Lib_pt2Node1.a('node.fillgradientcolor', 'rgba(0,0,0,0)');
Lib_pt2Node1.a('node.fillgradient', '');

if (Lib_pt2Node1type !== 'rect') {
    Lib_pt2Node1.a('node.arcFrom', parseFloat('@arcFrom@'));
    Lib_pt2Node1.a('node.arcTo', parseFloat('@arcTo@'));
    Lib_pt2Node1.a('node.arcClose', '@arcClose@' === 'true' ? true : false);
}
if (Lib_pt2Node1type === 'arc') {
    Lib_pt2Node1.a('node.arcOval', true);
}

Lib_pt2Node1.setRotation(0*Math.PI/180);
Lib_pt2Node1.borderWidth = Lib_pt2Node1BorderWidth;
Lib_pt2Node1.borderFillwidth = Lib_pt2Node1BorderWidth;

dataModel.add(Lib_pt2Node1);
Lib_pt2Node1._nodename = 'Lib_pt2Node1'
Lib_pt2Node1._nodeType = 'rect';
zoomNodeList.push({
    node: Lib_pt2Node1,
    attr: 'node.borderwidth'
});
(function (node, _img) {
    var setWidth = node.setWidth,
        setHeight = node.setHeight;

    node.setWidth = function (width) {
        if (width === this.getWidth()) return ; 
        var height = this.getHeight();

        this.a('node.width', width);
        this.a('node.rect', [0,0,width, height]);
        setWidth.apply(this, arguments);
    }
    node.setHeight = function (height) {
        if (height === this.getHeight()) return ;
        var width = this.getWidth();

        this.a('node.height', height);
        this.a('node.rect', [0,0,width, height]);
        setHeight.apply(this, arguments);
    }
})(Lib_pt2Node1, Lib_pt2Node1.getImage());_ratio = GD.getRatioWithRotation(0*Math.PI/180, ratio);
var Lib_pt2Node2type = 'oval';
var Lib_pt2Node2 = new ht.Node(),
    Lib_pt2Node2BorderWidth = 2*2;

if (Lib_pt2Node2type === 'arc') {
    Lib_pt2Node2BorderWidth *= 2;
}

Lib_pt2Node2.setImage(GD.getRectJSON(20*_ratio.ratioX, 16.36365*_ratio.ratioY, Lib_pt2Node2type, '@arcFrom@', '@arcTo@', '@arcClose@'));

Lib_pt2Node2.setPosition(10*ratio.ratioX, 15*ratio.ratioY);
Lib_pt2Node2.setSize(20*_ratio.ratioX, 16.36365*_ratio.ratioY);
Lib_pt2Node2.s({
    'pixelPerfect':true
/*@AddPara@*/
});  
Lib_pt2Node2.a('node.width', 20*_ratio.ratioX);
Lib_pt2Node2.a('node.height', 16.36365*_ratio.ratioY);
Lib_pt2Node2.a('node.type', Lib_pt2Node2type);
Lib_pt2Node2.a('node.rect', [0, 0, 20*_ratio.ratioX, 16.36365*_ratio.ratioY]);
Lib_pt2Node2.a('node.background', 'rgba(255,255,255,0.003921569)');
Lib_pt2Node2.a('node.gradientcolor', '');
Lib_pt2Node2.a('node.gradient', '');
Lib_pt2Node2.a('node.borderwidth', Lib_pt2Node2BorderWidth);
Lib_pt2Node2.a('node.color', 'rgba(255,0,255,1)');
Lib_pt2Node2.a('node.fillrect', [0,0,0,0]);
Lib_pt2Node2.a('node.fillbackcolor', 'rgba(0,0,0,0)');
Lib_pt2Node2.a('node.fillgradientcolor', 'rgba(0,0,0,0)');
Lib_pt2Node2.a('node.fillgradient', '');

if (Lib_pt2Node2type !== 'rect') {
    Lib_pt2Node2.a('node.arcFrom', parseFloat('@arcFrom@'));
    Lib_pt2Node2.a('node.arcTo', parseFloat('@arcTo@'));
    Lib_pt2Node2.a('node.arcClose', '@arcClose@' === 'true' ? true : false);
}
if (Lib_pt2Node2type === 'arc') {
    Lib_pt2Node2.a('node.arcOval', true);
}

Lib_pt2Node2.setRotation(0*Math.PI/180);
Lib_pt2Node2.borderWidth = Lib_pt2Node2BorderWidth;
Lib_pt2Node2.borderFillwidth = Lib_pt2Node2BorderWidth;

dataModel.add(Lib_pt2Node2);
Lib_pt2Node2._nodename = 'Lib_pt2Node2'
Lib_pt2Node2._nodeType = 'rect';
zoomNodeList.push({
    node: Lib_pt2Node2,
    attr: 'node.borderwidth'
});
(function (node, _img) {
    var setWidth = node.setWidth,
        setHeight = node.setHeight;

    node.setWidth = function (width) {
        if (width === this.getWidth()) return ; 
        var height = this.getHeight();

        this.a('node.width', width);
        this.a('node.rect', [0,0,width, height]);
        setWidth.apply(this, arguments);
    }
    node.setHeight = function (height) {
        if (height === this.getHeight()) return ;
        var width = this.getWidth();

        this.a('node.height', height);
        this.a('node.rect', [0,0,width, height]);
        setHeight.apply(this, arguments);
    }
})(Lib_pt2Node2, Lib_pt2Node2.getImage());var Lib_pt2Node3points=[25, 3,25, 8],
Lib_pt2Node3rect=ht.Default.unionPoint([{x:25,y:3},{x:25,y:8}]),
Lib_pt2Node3compspts=[];
_ratio = GD.getRatioWithRotation(0, ratio);
var _startratio = GD.getRatioWithRotation(4.71238898038469, ratio),
    _endratio = GD.getRatioWithRotation(7.85398163397448, ratio);
for(var i=0;i<Lib_pt2Node3points.length;i++){
    if(i%2==0){
        Lib_pt2Node3compspts.push(Lib_pt2Node3points[i]-Lib_pt2Node3rect.x);
    }else{
        Lib_pt2Node3compspts.push(Lib_pt2Node3points[i]-Lib_pt2Node3rect.y);
    } 
}

var Lib_pt2Node3ptslength=Lib_pt2Node3compspts.length;
if (Lib_pt2Node3rect.height === 0) {
    Lib_pt2Node3compspts[0] -= 0;
    Lib_pt2Node3compspts[Lib_pt2Node3ptslength-2] += 0;
} else if (Lib_pt2Node3rect.width === 0){
    Lib_pt2Node3compspts[1] -= 0;
    Lib_pt2Node3compspts[Lib_pt2Node3ptslength-1] += 0;
} else {
    Lib_pt2Node3compspts[0] -= 0;
    Lib_pt2Node3compspts[1] -= 0;
    Lib_pt2Node3compspts[Lib_pt2Node3ptslength-2] += 0;
    Lib_pt2Node3compspts[Lib_pt2Node3ptslength-1] += 0;
}

Lib_pt2Node3 = new ht.Node();
Lib_pt2Node3.borderWidth = 2;
Lib_pt2Node3rect.width = Lib_pt2Node3rect.width === 0 ? 0.0001 : Lib_pt2Node3rect.width;
Lib_pt2Node3rect.height = Lib_pt2Node3rect.height === 0 ? 0.0001 : Lib_pt2Node3rect.height;
var Lib_pt2Node3endCompspts = [Lib_pt2Node3compspts[Lib_pt2Node3ptslength-2],Lib_pt2Node3compspts[Lib_pt2Node3ptslength-1],0,0];
var Lib_pt2Node3startCompspts = [Lib_pt2Node3compspts[0],Lib_pt2Node3compspts[1],0,0];
Lib_pt2Node3.setImage(GD.getPolyLineJSON());
Lib_pt2Node3.setPosition(Lib_pt2Node3rect.x+Lib_pt2Node3rect.width/2,Lib_pt2Node3rect.y+Lib_pt2Node3rect.height/2);
Lib_pt2Node3.setSize(Lib_pt2Node3rect.width,Lib_pt2Node3rect.height);
Lib_pt2Node3.setStyle("opacity",1);
Lib_pt2Node3.s({'pixelPerfect':true});
Lib_pt2Node3borderwidth=2;
Lib_pt2Node3.setRotation(0);
dataModel.add(Lib_pt2Node3);

Lib_pt2Node3.a('node.points',Lib_pt2Node3compspts);
Lib_pt2Node3.a('node.segments',[1,2]);
Lib_pt2Node3.a('node.color','rgba(255,0,255,1)');
Lib_pt2Node3.a('node.borderPattern',getDashStyle("@borderPattern@"));
Lib_pt2Node3.a('node.borderColor','rgba(255,0,255,1)');

Lib_pt2Node3.a('node.background','rgba(255,0,255,1)');
Lib_pt2Node3.a('node.gradient','');
Lib_pt2Node3.a('node.gradientcolor','rgba(255,0,255,1)');
Lib_pt2Node3.a('node.endCompspts',Lib_pt2Node3endCompspts);
Lib_pt2Node3.a('node.startCompspts',Lib_pt2Node3startCompspts);

(function (node, img, compspts, endCompspts, startCompspts) {
    var position = node.getPosition(),
        w = node.getWidth()*_ratio.ratioX,
        h = node.getHeight()*_ratio.ratioY;
    function resetPoints(rx, ry) {
        for (var i = 0, len = compspts.length; i < len; i++) {
            if (i%2 === 0) {
                compspts[i]*=rx;
            } else {
                compspts[i]*=ry;
            }
        }
        endCompspts[0] = compspts[compspts.length-2];
        endCompspts[1] = compspts[compspts.length-1];
        endCompspts[2] *= rx;
        endCompspts[3] *= ry;
        node.a('node.offsetEndY', -(endCompspts[3]*0.5));
        node.a('node.offsetEndX', -(endCompspts[2]*0.5));
        
        startCompspts[0] = compspts[0];
        startCompspts[1] = compspts[1];
        startCompspts[2] *= rx;
        startCompspts[3] *= ry;
        node.a('node.offsetStartY', -(startCompspts[3]*0.5));
        node.a('node.offsetStartX', -(startCompspts[2]*0.5));
        node.a('node.endRotation', GD.calcRotationByStartAndEnd(compspts[i-4], compspts[i-3], compspts[i-2], compspts[i-1]));
        node.a('node.startRotation', GD.calcRotationByStartAndEnd(compspts[0], compspts[1], compspts[2], compspts[3]) + Math.PI);
    }
    node.setSize(w, h);
    node.setPosition(position.x * ratio.ratioX, position.y * ratio.ratioY);
    node.a('node.width', w);
    node.a('node.height', h);
    resetPoints(_ratio.ratioX, _ratio.ratioY);
    node.borderWidth = 2;
    node.a('node.borderwidth',node.borderWidth);
    node._nodename = 'Lib_pt2Node3';
    node._nodeType = 'line';
    zoomNodeList.push({
        node: node,
        attr: 'node.borderwidth'
    });
    var setWidth = node.setWidth,
        setHeight = node.setHeight,
        timer, rx = 1, ry = 1;
   
    node.setWidth = function (width) {
        var _width = this.getWidth();
        rx = width / _width;
        node.a('node.width', width);
        setWidth.apply(this, arguments);
            resetPoints(rx, 1); 
    }
    node.setHeight = function (height) {
        var _height = this.getHeight();
        ry = height / _height;
        node.a('node.height', height);
        setHeight.apply(this, arguments);
            resetPoints(1, ry);  
    }
})(Lib_pt2Node3, Lib_pt2Node3.getImage(), Lib_pt2Node3compspts, Lib_pt2Node3endCompspts, Lib_pt2Node3startCompspts);
var Lib_pt2Node4points=[25, 8,30, 11],
Lib_pt2Node4rect=ht.Default.unionPoint([{x:25,y:8},{x:30,y:11}]),
Lib_pt2Node4compspts=[];
_ratio = GD.getRatioWithRotation(0, ratio);
var _startratio = GD.getRatioWithRotation(3.68201217139115, ratio),
    _endratio = GD.getRatioWithRotation(0.540419517801362, ratio);
for(var i=0;i<Lib_pt2Node4points.length;i++){
    if(i%2==0){
        Lib_pt2Node4compspts.push(Lib_pt2Node4points[i]-Lib_pt2Node4rect.x);
    }else{
        Lib_pt2Node4compspts.push(Lib_pt2Node4points[i]-Lib_pt2Node4rect.y);
    } 
}

var Lib_pt2Node4ptslength=Lib_pt2Node4compspts.length;
if (Lib_pt2Node4rect.height === 0) {
    Lib_pt2Node4compspts[0] -= 0;
    Lib_pt2Node4compspts[Lib_pt2Node4ptslength-2] += 0;
} else if (Lib_pt2Node4rect.width === 0){
    Lib_pt2Node4compspts[1] -= 0;
    Lib_pt2Node4compspts[Lib_pt2Node4ptslength-1] += 0;
} else {
    Lib_pt2Node4compspts[0] -= 0;
    Lib_pt2Node4compspts[1] -= 0;
    Lib_pt2Node4compspts[Lib_pt2Node4ptslength-2] += 0;
    Lib_pt2Node4compspts[Lib_pt2Node4ptslength-1] += 0;
}

Lib_pt2Node4 = new ht.Node();
Lib_pt2Node4.borderWidth = 2;
Lib_pt2Node4rect.width = Lib_pt2Node4rect.width === 0 ? 0.0001 : Lib_pt2Node4rect.width;
Lib_pt2Node4rect.height = Lib_pt2Node4rect.height === 0 ? 0.0001 : Lib_pt2Node4rect.height;
var Lib_pt2Node4endCompspts = [Lib_pt2Node4compspts[Lib_pt2Node4ptslength-2],Lib_pt2Node4compspts[Lib_pt2Node4ptslength-1],0,0];
var Lib_pt2Node4startCompspts = [Lib_pt2Node4compspts[0],Lib_pt2Node4compspts[1],0,0];
Lib_pt2Node4.setImage(GD.getPolyLineJSON());
Lib_pt2Node4.setPosition(Lib_pt2Node4rect.x+Lib_pt2Node4rect.width/2,Lib_pt2Node4rect.y+Lib_pt2Node4rect.height/2);
Lib_pt2Node4.setSize(Lib_pt2Node4rect.width,Lib_pt2Node4rect.height);
Lib_pt2Node4.setStyle("opacity",1);
Lib_pt2Node4.s({'pixelPerfect':true});
Lib_pt2Node4borderwidth=2;
Lib_pt2Node4.setRotation(0);
dataModel.add(Lib_pt2Node4);

Lib_pt2Node4.a('node.points',Lib_pt2Node4compspts);
Lib_pt2Node4.a('node.segments',[1,2]);
Lib_pt2Node4.a('node.color','rgba(255,0,255,1)');
Lib_pt2Node4.a('node.borderPattern',getDashStyle("@borderPattern@"));
Lib_pt2Node4.a('node.borderColor','rgba(255,0,255,1)');

Lib_pt2Node4.a('node.background','rgba(255,0,255,1)');
Lib_pt2Node4.a('node.gradient','');
Lib_pt2Node4.a('node.gradientcolor','rgba(255,0,255,1)');
Lib_pt2Node4.a('node.endCompspts',Lib_pt2Node4endCompspts);
Lib_pt2Node4.a('node.startCompspts',Lib_pt2Node4startCompspts);

(function (node, img, compspts, endCompspts, startCompspts) {
    var position = node.getPosition(),
        w = node.getWidth()*_ratio.ratioX,
        h = node.getHeight()*_ratio.ratioY;
    function resetPoints(rx, ry) {
        for (var i = 0, len = compspts.length; i < len; i++) {
            if (i%2 === 0) {
                compspts[i]*=rx;
            } else {
                compspts[i]*=ry;
            }
        }
        endCompspts[0] = compspts[compspts.length-2];
        endCompspts[1] = compspts[compspts.length-1];
        endCompspts[2] *= rx;
        endCompspts[3] *= ry;
        node.a('node.offsetEndY', -(endCompspts[3]*0.5));
        node.a('node.offsetEndX', -(endCompspts[2]*0.5));
        
        startCompspts[0] = compspts[0];
        startCompspts[1] = compspts[1];
        startCompspts[2] *= rx;
        startCompspts[3] *= ry;
        node.a('node.offsetStartY', -(startCompspts[3]*0.5));
        node.a('node.offsetStartX', -(startCompspts[2]*0.5));
        node.a('node.endRotation', GD.calcRotationByStartAndEnd(compspts[i-4], compspts[i-3], compspts[i-2], compspts[i-1]));
        node.a('node.startRotation', GD.calcRotationByStartAndEnd(compspts[0], compspts[1], compspts[2], compspts[3]) + Math.PI);
    }
    node.setSize(w, h);
    node.setPosition(position.x * ratio.ratioX, position.y * ratio.ratioY);
    node.a('node.width', w);
    node.a('node.height', h);
    resetPoints(_ratio.ratioX, _ratio.ratioY);
    node.borderWidth = 2;
    node.a('node.borderwidth',node.borderWidth);
    node._nodename = 'Lib_pt2Node4';
    node._nodeType = 'line';
    zoomNodeList.push({
        node: node,
        attr: 'node.borderwidth'
    });
    var setWidth = node.setWidth,
        setHeight = node.setHeight,
        timer, rx = 1, ry = 1;
   
    node.setWidth = function (width) {
        var _width = this.getWidth();
        rx = width / _width;
        node.a('node.width', width);
        setWidth.apply(this, arguments);
            resetPoints(rx, 1); 
    }
    node.setHeight = function (height) {
        var _height = this.getHeight();
        ry = height / _height;
        node.a('node.height', height);
        setHeight.apply(this, arguments);
            resetPoints(1, ry);  
    }
})(Lib_pt2Node4, Lib_pt2Node4.getImage(), Lib_pt2Node4compspts, Lib_pt2Node4endCompspts, Lib_pt2Node4startCompspts);
var Lib_pt2Node5points=[25, 8,20, 11],
Lib_pt2Node5rect=ht.Default.unionPoint([{x:25,y:8},{x:20,y:11}]),
Lib_pt2Node5compspts=[];
_ratio = GD.getRatioWithRotation(0, ratio);
var _startratio = GD.getRatioWithRotation(-0.540419517801362, ratio),
    _endratio = GD.getRatioWithRotation(2.60117313578843, ratio);
for(var i=0;i<Lib_pt2Node5points.length;i++){
    if(i%2==0){
        Lib_pt2Node5compspts.push(Lib_pt2Node5points[i]-Lib_pt2Node5rect.x);
    }else{
        Lib_pt2Node5compspts.push(Lib_pt2Node5points[i]-Lib_pt2Node5rect.y);
    } 
}

var Lib_pt2Node5ptslength=Lib_pt2Node5compspts.length;
if (Lib_pt2Node5rect.height === 0) {
    Lib_pt2Node5compspts[0] -= 0;
    Lib_pt2Node5compspts[Lib_pt2Node5ptslength-2] += 0;
} else if (Lib_pt2Node5rect.width === 0){
    Lib_pt2Node5compspts[1] -= 0;
    Lib_pt2Node5compspts[Lib_pt2Node5ptslength-1] += 0;
} else {
    Lib_pt2Node5compspts[0] -= 0;
    Lib_pt2Node5compspts[1] -= 0;
    Lib_pt2Node5compspts[Lib_pt2Node5ptslength-2] += 0;
    Lib_pt2Node5compspts[Lib_pt2Node5ptslength-1] += 0;
}

Lib_pt2Node5 = new ht.Node();
Lib_pt2Node5.borderWidth = 2;
Lib_pt2Node5rect.width = Lib_pt2Node5rect.width === 0 ? 0.0001 : Lib_pt2Node5rect.width;
Lib_pt2Node5rect.height = Lib_pt2Node5rect.height === 0 ? 0.0001 : Lib_pt2Node5rect.height;
var Lib_pt2Node5endCompspts = [Lib_pt2Node5compspts[Lib_pt2Node5ptslength-2],Lib_pt2Node5compspts[Lib_pt2Node5ptslength-1],0,0];
var Lib_pt2Node5startCompspts = [Lib_pt2Node5compspts[0],Lib_pt2Node5compspts[1],0,0];
Lib_pt2Node5.setImage(GD.getPolyLineJSON());
Lib_pt2Node5.setPosition(Lib_pt2Node5rect.x+Lib_pt2Node5rect.width/2,Lib_pt2Node5rect.y+Lib_pt2Node5rect.height/2);
Lib_pt2Node5.setSize(Lib_pt2Node5rect.width,Lib_pt2Node5rect.height);
Lib_pt2Node5.setStyle("opacity",1);
Lib_pt2Node5.s({'pixelPerfect':true});
Lib_pt2Node5borderwidth=2;
Lib_pt2Node5.setRotation(0);
dataModel.add(Lib_pt2Node5);

Lib_pt2Node5.a('node.points',Lib_pt2Node5compspts);
Lib_pt2Node5.a('node.segments',[1,2]);
Lib_pt2Node5.a('node.color','rgba(255,0,255,1)');
Lib_pt2Node5.a('node.borderPattern',getDashStyle("@borderPattern@"));
Lib_pt2Node5.a('node.borderColor','rgba(255,0,255,1)');

Lib_pt2Node5.a('node.background','rgba(255,0,255,1)');
Lib_pt2Node5.a('node.gradient','');
Lib_pt2Node5.a('node.gradientcolor','rgba(255,0,255,1)');
Lib_pt2Node5.a('node.endCompspts',Lib_pt2Node5endCompspts);
Lib_pt2Node5.a('node.startCompspts',Lib_pt2Node5startCompspts);

(function (node, img, compspts, endCompspts, startCompspts) {
    var position = node.getPosition(),
        w = node.getWidth()*_ratio.ratioX,
        h = node.getHeight()*_ratio.ratioY;
    function resetPoints(rx, ry) {
        for (var i = 0, len = compspts.length; i < len; i++) {
            if (i%2 === 0) {
                compspts[i]*=rx;
            } else {
                compspts[i]*=ry;
            }
        }
        endCompspts[0] = compspts[compspts.length-2];
        endCompspts[1] = compspts[compspts.length-1];
        endCompspts[2] *= rx;
        endCompspts[3] *= ry;
        node.a('node.offsetEndY', -(endCompspts[3]*0.5));
        node.a('node.offsetEndX', -(endCompspts[2]*0.5));
        
        startCompspts[0] = compspts[0];
        startCompspts[1] = compspts[1];
        startCompspts[2] *= rx;
        startCompspts[3] *= ry;
        node.a('node.offsetStartY', -(startCompspts[3]*0.5));
        node.a('node.offsetStartX', -(startCompspts[2]*0.5));
        node.a('node.endRotation', GD.calcRotationByStartAndEnd(compspts[i-4], compspts[i-3], compspts[i-2], compspts[i-1]));
        node.a('node.startRotation', GD.calcRotationByStartAndEnd(compspts[0], compspts[1], compspts[2], compspts[3]) + Math.PI);
    }
    node.setSize(w, h);
    node.setPosition(position.x * ratio.ratioX, position.y * ratio.ratioY);
    node.a('node.width', w);
    node.a('node.height', h);
    resetPoints(_ratio.ratioX, _ratio.ratioY);
    node.borderWidth = 2;
    node.a('node.borderwidth',node.borderWidth);
    node._nodename = 'Lib_pt2Node5';
    node._nodeType = 'line';
    zoomNodeList.push({
        node: node,
        attr: 'node.borderwidth'
    });
    var setWidth = node.setWidth,
        setHeight = node.setHeight,
        timer, rx = 1, ry = 1;
   
    node.setWidth = function (width) {
        var _width = this.getWidth();
        rx = width / _width;
        node.a('node.width', width);
        setWidth.apply(this, arguments);
            resetPoints(rx, 1); 
    }
    node.setHeight = function (height) {
        var _height = this.getHeight();
        ry = height / _height;
        node.a('node.height', height);
        setHeight.apply(this, arguments);
            resetPoints(1, ry);  
    }
})(Lib_pt2Node5, Lib_pt2Node5.getImage(), Lib_pt2Node5compspts, Lib_pt2Node5endCompspts, Lib_pt2Node5startCompspts);
var Lib_pt2Node6points=[25, 17,25, 22],
Lib_pt2Node6rect=ht.Default.unionPoint([{x:25,y:17},{x:25,y:22}]),
Lib_pt2Node6compspts=[];
_ratio = GD.getRatioWithRotation(0, ratio);
var _startratio = GD.getRatioWithRotation(4.71238898038469, ratio),
    _endratio = GD.getRatioWithRotation(7.85398163397448, ratio);
for(var i=0;i<Lib_pt2Node6points.length;i++){
    if(i%2==0){
        Lib_pt2Node6compspts.push(Lib_pt2Node6points[i]-Lib_pt2Node6rect.x);
    }else{
        Lib_pt2Node6compspts.push(Lib_pt2Node6points[i]-Lib_pt2Node6rect.y);
    } 
}

var Lib_pt2Node6ptslength=Lib_pt2Node6compspts.length;
if (Lib_pt2Node6rect.height === 0) {
    Lib_pt2Node6compspts[0] -= 0;
    Lib_pt2Node6compspts[Lib_pt2Node6ptslength-2] += 0;
} else if (Lib_pt2Node6rect.width === 0){
    Lib_pt2Node6compspts[1] -= 0;
    Lib_pt2Node6compspts[Lib_pt2Node6ptslength-1] += 0;
} else {
    Lib_pt2Node6compspts[0] -= 0;
    Lib_pt2Node6compspts[1] -= 0;
    Lib_pt2Node6compspts[Lib_pt2Node6ptslength-2] += 0;
    Lib_pt2Node6compspts[Lib_pt2Node6ptslength-1] += 0;
}

Lib_pt2Node6 = new ht.Node();
Lib_pt2Node6.borderWidth = 2;
Lib_pt2Node6rect.width = Lib_pt2Node6rect.width === 0 ? 0.0001 : Lib_pt2Node6rect.width;
Lib_pt2Node6rect.height = Lib_pt2Node6rect.height === 0 ? 0.0001 : Lib_pt2Node6rect.height;
var Lib_pt2Node6endCompspts = [Lib_pt2Node6compspts[Lib_pt2Node6ptslength-2],Lib_pt2Node6compspts[Lib_pt2Node6ptslength-1],0,0];
var Lib_pt2Node6startCompspts = [Lib_pt2Node6compspts[0],Lib_pt2Node6compspts[1],0,0];
Lib_pt2Node6.setImage(GD.getPolyLineJSON());
Lib_pt2Node6.setPosition(Lib_pt2Node6rect.x+Lib_pt2Node6rect.width/2,Lib_pt2Node6rect.y+Lib_pt2Node6rect.height/2);
Lib_pt2Node6.setSize(Lib_pt2Node6rect.width,Lib_pt2Node6rect.height);
Lib_pt2Node6.setStyle("opacity",1);
Lib_pt2Node6.s({'pixelPerfect':true});
Lib_pt2Node6borderwidth=2;
Lib_pt2Node6.setRotation(0);
dataModel.add(Lib_pt2Node6);

Lib_pt2Node6.a('node.points',Lib_pt2Node6compspts);
Lib_pt2Node6.a('node.segments',[1,2]);
Lib_pt2Node6.a('node.color','rgba(255,0,255,1)');
Lib_pt2Node6.a('node.borderPattern',getDashStyle("@borderPattern@"));
Lib_pt2Node6.a('node.borderColor','rgba(255,0,255,1)');

Lib_pt2Node6.a('node.background','rgba(255,0,255,1)');
Lib_pt2Node6.a('node.gradient','');
Lib_pt2Node6.a('node.gradientcolor','rgba(255,0,255,1)');
Lib_pt2Node6.a('node.endCompspts',Lib_pt2Node6endCompspts);
Lib_pt2Node6.a('node.startCompspts',Lib_pt2Node6startCompspts);

(function (node, img, compspts, endCompspts, startCompspts) {
    var position = node.getPosition(),
        w = node.getWidth()*_ratio.ratioX,
        h = node.getHeight()*_ratio.ratioY;
    function resetPoints(rx, ry) {
        for (var i = 0, len = compspts.length; i < len; i++) {
            if (i%2 === 0) {
                compspts[i]*=rx;
            } else {
                compspts[i]*=ry;
            }
        }
        endCompspts[0] = compspts[compspts.length-2];
        endCompspts[1] = compspts[compspts.length-1];
        endCompspts[2] *= rx;
        endCompspts[3] *= ry;
        node.a('node.offsetEndY', -(endCompspts[3]*0.5));
        node.a('node.offsetEndX', -(endCompspts[2]*0.5));
        
        startCompspts[0] = compspts[0];
        startCompspts[1] = compspts[1];
        startCompspts[2] *= rx;
        startCompspts[3] *= ry;
        node.a('node.offsetStartY', -(startCompspts[3]*0.5));
        node.a('node.offsetStartX', -(startCompspts[2]*0.5));
        node.a('node.endRotation', GD.calcRotationByStartAndEnd(compspts[i-4], compspts[i-3], compspts[i-2], compspts[i-1]));
        node.a('node.startRotation', GD.calcRotationByStartAndEnd(compspts[0], compspts[1], compspts[2], compspts[3]) + Math.PI);
    }
    node.setSize(w, h);
    node.setPosition(position.x * ratio.ratioX, position.y * ratio.ratioY);
    node.a('node.width', w);
    node.a('node.height', h);
    resetPoints(_ratio.ratioX, _ratio.ratioY);
    node.borderWidth = 2;
    node.a('node.borderwidth',node.borderWidth);
    node._nodename = 'Lib_pt2Node6';
    node._nodeType = 'line';
    zoomNodeList.push({
        node: node,
        attr: 'node.borderwidth'
    });
    var setWidth = node.setWidth,
        setHeight = node.setHeight,
        timer, rx = 1, ry = 1;
   
    node.setWidth = function (width) {
        var _width = this.getWidth();
        rx = width / _width;
        node.a('node.width', width);
        setWidth.apply(this, arguments);
            resetPoints(rx, 1); 
    }
    node.setHeight = function (height) {
        var _height = this.getHeight();
        ry = height / _height;
        node.a('node.height', height);
        setHeight.apply(this, arguments);
            resetPoints(1, ry);  
    }
})(Lib_pt2Node6, Lib_pt2Node6.getImage(), Lib_pt2Node6compspts, Lib_pt2Node6endCompspts, Lib_pt2Node6startCompspts);
var Lib_pt2Node7points=[25, 22,30, 25],
Lib_pt2Node7rect=ht.Default.unionPoint([{x:25,y:22},{x:30,y:25}]),
Lib_pt2Node7compspts=[];
_ratio = GD.getRatioWithRotation(0, ratio);
var _startratio = GD.getRatioWithRotation(3.68201217139115, ratio),
    _endratio = GD.getRatioWithRotation(0.540419517801362, ratio);
for(var i=0;i<Lib_pt2Node7points.length;i++){
    if(i%2==0){
        Lib_pt2Node7compspts.push(Lib_pt2Node7points[i]-Lib_pt2Node7rect.x);
    }else{
        Lib_pt2Node7compspts.push(Lib_pt2Node7points[i]-Lib_pt2Node7rect.y);
    } 
}

var Lib_pt2Node7ptslength=Lib_pt2Node7compspts.length;
if (Lib_pt2Node7rect.height === 0) {
    Lib_pt2Node7compspts[0] -= 0;
    Lib_pt2Node7compspts[Lib_pt2Node7ptslength-2] += 0;
} else if (Lib_pt2Node7rect.width === 0){
    Lib_pt2Node7compspts[1] -= 0;
    Lib_pt2Node7compspts[Lib_pt2Node7ptslength-1] += 0;
} else {
    Lib_pt2Node7compspts[0] -= 0;
    Lib_pt2Node7compspts[1] -= 0;
    Lib_pt2Node7compspts[Lib_pt2Node7ptslength-2] += 0;
    Lib_pt2Node7compspts[Lib_pt2Node7ptslength-1] += 0;
}

Lib_pt2Node7 = new ht.Node();
Lib_pt2Node7.borderWidth = 2;
Lib_pt2Node7rect.width = Lib_pt2Node7rect.width === 0 ? 0.0001 : Lib_pt2Node7rect.width;
Lib_pt2Node7rect.height = Lib_pt2Node7rect.height === 0 ? 0.0001 : Lib_pt2Node7rect.height;
var Lib_pt2Node7endCompspts = [Lib_pt2Node7compspts[Lib_pt2Node7ptslength-2],Lib_pt2Node7compspts[Lib_pt2Node7ptslength-1],0,0];
var Lib_pt2Node7startCompspts = [Lib_pt2Node7compspts[0],Lib_pt2Node7compspts[1],0,0];
Lib_pt2Node7.setImage(GD.getPolyLineJSON());
Lib_pt2Node7.setPosition(Lib_pt2Node7rect.x+Lib_pt2Node7rect.width/2,Lib_pt2Node7rect.y+Lib_pt2Node7rect.height/2);
Lib_pt2Node7.setSize(Lib_pt2Node7rect.width,Lib_pt2Node7rect.height);
Lib_pt2Node7.setStyle("opacity",1);
Lib_pt2Node7.s({'pixelPerfect':true});
Lib_pt2Node7borderwidth=2;
Lib_pt2Node7.setRotation(0);
dataModel.add(Lib_pt2Node7);

Lib_pt2Node7.a('node.points',Lib_pt2Node7compspts);
Lib_pt2Node7.a('node.segments',[1,2]);
Lib_pt2Node7.a('node.color','rgba(255,0,255,1)');
Lib_pt2Node7.a('node.borderPattern',getDashStyle("@borderPattern@"));
Lib_pt2Node7.a('node.borderColor','rgba(255,0,255,1)');

Lib_pt2Node7.a('node.background','rgba(255,0,255,1)');
Lib_pt2Node7.a('node.gradient','');
Lib_pt2Node7.a('node.gradientcolor','rgba(255,0,255,1)');
Lib_pt2Node7.a('node.endCompspts',Lib_pt2Node7endCompspts);
Lib_pt2Node7.a('node.startCompspts',Lib_pt2Node7startCompspts);

(function (node, img, compspts, endCompspts, startCompspts) {
    var position = node.getPosition(),
        w = node.getWidth()*_ratio.ratioX,
        h = node.getHeight()*_ratio.ratioY;
    function resetPoints(rx, ry) {
        for (var i = 0, len = compspts.length; i < len; i++) {
            if (i%2 === 0) {
                compspts[i]*=rx;
            } else {
                compspts[i]*=ry;
            }
        }
        endCompspts[0] = compspts[compspts.length-2];
        endCompspts[1] = compspts[compspts.length-1];
        endCompspts[2] *= rx;
        endCompspts[3] *= ry;
        node.a('node.offsetEndY', -(endCompspts[3]*0.5));
        node.a('node.offsetEndX', -(endCompspts[2]*0.5));
        
        startCompspts[0] = compspts[0];
        startCompspts[1] = compspts[1];
        startCompspts[2] *= rx;
        startCompspts[3] *= ry;
        node.a('node.offsetStartY', -(startCompspts[3]*0.5));
        node.a('node.offsetStartX', -(startCompspts[2]*0.5));
        node.a('node.endRotation', GD.calcRotationByStartAndEnd(compspts[i-4], compspts[i-3], compspts[i-2], compspts[i-1]));
        node.a('node.startRotation', GD.calcRotationByStartAndEnd(compspts[0], compspts[1], compspts[2], compspts[3]) + Math.PI);
    }
    node.setSize(w, h);
    node.setPosition(position.x * ratio.ratioX, position.y * ratio.ratioY);
    node.a('node.width', w);
    node.a('node.height', h);
    resetPoints(_ratio.ratioX, _ratio.ratioY);
    node.borderWidth = 2;
    node.a('node.borderwidth',node.borderWidth);
    node._nodename = 'Lib_pt2Node7';
    node._nodeType = 'line';
    zoomNodeList.push({
        node: node,
        attr: 'node.borderwidth'
    });
    var setWidth = node.setWidth,
        setHeight = node.setHeight,
        timer, rx = 1, ry = 1;
   
    node.setWidth = function (width) {
        var _width = this.getWidth();
        rx = width / _width;
        node.a('node.width', width);
        setWidth.apply(this, arguments);
            resetPoints(rx, 1); 
    }
    node.setHeight = function (height) {
        var _height = this.getHeight();
        ry = height / _height;
        node.a('node.height', height);
        setHeight.apply(this, arguments);
            resetPoints(1, ry);  
    }
})(Lib_pt2Node7, Lib_pt2Node7.getImage(), Lib_pt2Node7compspts, Lib_pt2Node7endCompspts, Lib_pt2Node7startCompspts);
var Lib_pt2Node8points=[25, 22,20, 25],
Lib_pt2Node8rect=ht.Default.unionPoint([{x:25,y:22},{x:20,y:25}]),
Lib_pt2Node8compspts=[];
_ratio = GD.getRatioWithRotation(0, ratio);
var _startratio = GD.getRatioWithRotation(-0.540419517801362, ratio),
    _endratio = GD.getRatioWithRotation(2.60117313578843, ratio);
for(var i=0;i<Lib_pt2Node8points.length;i++){
    if(i%2==0){
        Lib_pt2Node8compspts.push(Lib_pt2Node8points[i]-Lib_pt2Node8rect.x);
    }else{
        Lib_pt2Node8compspts.push(Lib_pt2Node8points[i]-Lib_pt2Node8rect.y);
    } 
}

var Lib_pt2Node8ptslength=Lib_pt2Node8compspts.length;
if (Lib_pt2Node8rect.height === 0) {
    Lib_pt2Node8compspts[0] -= 0;
    Lib_pt2Node8compspts[Lib_pt2Node8ptslength-2] += 0;
} else if (Lib_pt2Node8rect.width === 0){
    Lib_pt2Node8compspts[1] -= 0;
    Lib_pt2Node8compspts[Lib_pt2Node8ptslength-1] += 0;
} else {
    Lib_pt2Node8compspts[0] -= 0;
    Lib_pt2Node8compspts[1] -= 0;
    Lib_pt2Node8compspts[Lib_pt2Node8ptslength-2] += 0;
    Lib_pt2Node8compspts[Lib_pt2Node8ptslength-1] += 0;
}

Lib_pt2Node8 = new ht.Node();
Lib_pt2Node8.borderWidth = 2;
Lib_pt2Node8rect.width = Lib_pt2Node8rect.width === 0 ? 0.0001 : Lib_pt2Node8rect.width;
Lib_pt2Node8rect.height = Lib_pt2Node8rect.height === 0 ? 0.0001 : Lib_pt2Node8rect.height;
var Lib_pt2Node8endCompspts = [Lib_pt2Node8compspts[Lib_pt2Node8ptslength-2],Lib_pt2Node8compspts[Lib_pt2Node8ptslength-1],0,0];
var Lib_pt2Node8startCompspts = [Lib_pt2Node8compspts[0],Lib_pt2Node8compspts[1],0,0];
Lib_pt2Node8.setImage(GD.getPolyLineJSON());
Lib_pt2Node8.setPosition(Lib_pt2Node8rect.x+Lib_pt2Node8rect.width/2,Lib_pt2Node8rect.y+Lib_pt2Node8rect.height/2);
Lib_pt2Node8.setSize(Lib_pt2Node8rect.width,Lib_pt2Node8rect.height);
Lib_pt2Node8.setStyle("opacity",1);
Lib_pt2Node8.s({'pixelPerfect':true});
Lib_pt2Node8borderwidth=2;
Lib_pt2Node8.setRotation(0);
dataModel.add(Lib_pt2Node8);

Lib_pt2Node8.a('node.points',Lib_pt2Node8compspts);
Lib_pt2Node8.a('node.segments',[1,2]);
Lib_pt2Node8.a('node.color','rgba(255,0,255,1)');
Lib_pt2Node8.a('node.borderPattern',getDashStyle("@borderPattern@"));
Lib_pt2Node8.a('node.borderColor','rgba(255,0,255,1)');

Lib_pt2Node8.a('node.background','rgba(255,0,255,1)');
Lib_pt2Node8.a('node.gradient','');
Lib_pt2Node8.a('node.gradientcolor','rgba(255,0,255,1)');
Lib_pt2Node8.a('node.endCompspts',Lib_pt2Node8endCompspts);
Lib_pt2Node8.a('node.startCompspts',Lib_pt2Node8startCompspts);

(function (node, img, compspts, endCompspts, startCompspts) {
    var position = node.getPosition(),
        w = node.getWidth()*_ratio.ratioX,
        h = node.getHeight()*_ratio.ratioY;
    function resetPoints(rx, ry) {
        for (var i = 0, len = compspts.length; i < len; i++) {
            if (i%2 === 0) {
                compspts[i]*=rx;
            } else {
                compspts[i]*=ry;
            }
        }
        endCompspts[0] = compspts[compspts.length-2];
        endCompspts[1] = compspts[compspts.length-1];
        endCompspts[2] *= rx;
        endCompspts[3] *= ry;
        node.a('node.offsetEndY', -(endCompspts[3]*0.5));
        node.a('node.offsetEndX', -(endCompspts[2]*0.5));
        
        startCompspts[0] = compspts[0];
        startCompspts[1] = compspts[1];
        startCompspts[2] *= rx;
        startCompspts[3] *= ry;
        node.a('node.offsetStartY', -(startCompspts[3]*0.5));
        node.a('node.offsetStartX', -(startCompspts[2]*0.5));
        node.a('node.endRotation', GD.calcRotationByStartAndEnd(compspts[i-4], compspts[i-3], compspts[i-2], compspts[i-1]));
        node.a('node.startRotation', GD.calcRotationByStartAndEnd(compspts[0], compspts[1], compspts[2], compspts[3]) + Math.PI);
    }
    node.setSize(w, h);
    node.setPosition(position.x * ratio.ratioX, position.y * ratio.ratioY);
    node.a('node.width', w);
    node.a('node.height', h);
    resetPoints(_ratio.ratioX, _ratio.ratioY);
    node.borderWidth = 2;
    node.a('node.borderwidth',node.borderWidth);
    node._nodename = 'Lib_pt2Node8';
    node._nodeType = 'line';
    zoomNodeList.push({
        node: node,
        attr: 'node.borderwidth'
    });
    var setWidth = node.setWidth,
        setHeight = node.setHeight,
        timer, rx = 1, ry = 1;
   
    node.setWidth = function (width) {
        var _width = this.getWidth();
        rx = width / _width;
        node.a('node.width', width);
        setWidth.apply(this, arguments);
            resetPoints(rx, 1); 
    }
    node.setHeight = function (height) {
        var _height = this.getHeight();
        ry = height / _height;
        node.a('node.height', height);
        setHeight.apply(this, arguments);
            resetPoints(1, ry);  
    }
})(Lib_pt2Node8, Lib_pt2Node8.getImage(), Lib_pt2Node8compspts, Lib_pt2Node8endCompspts, Lib_pt2Node8startCompspts);
var Lib_pt2Node9points=[6, 20,15, 15],
Lib_pt2Node9rect=ht.Default.unionPoint([{x:6,y:20},{x:15,y:15}]),
Lib_pt2Node9compspts=[];
_ratio = GD.getRatioWithRotation(0, ratio);
var _startratio = GD.getRatioWithRotation(2.63449412895437, ratio),
    _endratio = GD.getRatioWithRotation(-0.507098524635424, ratio);
for(var i=0;i<Lib_pt2Node9points.length;i++){
    if(i%2==0){
        Lib_pt2Node9compspts.push(Lib_pt2Node9points[i]-Lib_pt2Node9rect.x);
    }else{
        Lib_pt2Node9compspts.push(Lib_pt2Node9points[i]-Lib_pt2Node9rect.y);
    } 
}

var Lib_pt2Node9ptslength=Lib_pt2Node9compspts.length;
if (Lib_pt2Node9rect.height === 0) {
    Lib_pt2Node9compspts[0] -= 0;
    Lib_pt2Node9compspts[Lib_pt2Node9ptslength-2] += 0;
} else if (Lib_pt2Node9rect.width === 0){
    Lib_pt2Node9compspts[1] -= 0;
    Lib_pt2Node9compspts[Lib_pt2Node9ptslength-1] += 0;
} else {
    Lib_pt2Node9compspts[0] -= 0;
    Lib_pt2Node9compspts[1] -= 0;
    Lib_pt2Node9compspts[Lib_pt2Node9ptslength-2] += 0;
    Lib_pt2Node9compspts[Lib_pt2Node9ptslength-1] += 0;
}

Lib_pt2Node9 = new ht.Node();
Lib_pt2Node9.borderWidth = 2;
Lib_pt2Node9rect.width = Lib_pt2Node9rect.width === 0 ? 0.0001 : Lib_pt2Node9rect.width;
Lib_pt2Node9rect.height = Lib_pt2Node9rect.height === 0 ? 0.0001 : Lib_pt2Node9rect.height;
var Lib_pt2Node9endCompspts = [Lib_pt2Node9compspts[Lib_pt2Node9ptslength-2],Lib_pt2Node9compspts[Lib_pt2Node9ptslength-1],0,0];
var Lib_pt2Node9startCompspts = [Lib_pt2Node9compspts[0],Lib_pt2Node9compspts[1],0,0];
Lib_pt2Node9.setImage(GD.getPolyLineJSON());
Lib_pt2Node9.setPosition(Lib_pt2Node9rect.x+Lib_pt2Node9rect.width/2,Lib_pt2Node9rect.y+Lib_pt2Node9rect.height/2);
Lib_pt2Node9.setSize(Lib_pt2Node9rect.width,Lib_pt2Node9rect.height);
Lib_pt2Node9.setStyle("opacity",1);
Lib_pt2Node9.s({'pixelPerfect':true});
Lib_pt2Node9borderwidth=2;
Lib_pt2Node9.setRotation(0);
dataModel.add(Lib_pt2Node9);

Lib_pt2Node9.a('node.points',Lib_pt2Node9compspts);
Lib_pt2Node9.a('node.segments',[1,2]);
Lib_pt2Node9.a('node.color','rgba(255,0,255,1)');
Lib_pt2Node9.a('node.borderPattern',getDashStyle("@borderPattern@"));
Lib_pt2Node9.a('node.borderColor','rgba(255,0,255,1)');

Lib_pt2Node9.a('node.background','rgba(255,0,255,1)');
Lib_pt2Node9.a('node.gradient','');
Lib_pt2Node9.a('node.gradientcolor','rgba(255,0,255,1)');
Lib_pt2Node9.a('node.endCompspts',Lib_pt2Node9endCompspts);
Lib_pt2Node9.a('node.startCompspts',Lib_pt2Node9startCompspts);

(function (node, img, compspts, endCompspts, startCompspts) {
    var position = node.getPosition(),
        w = node.getWidth()*_ratio.ratioX,
        h = node.getHeight()*_ratio.ratioY;
    function resetPoints(rx, ry) {
        for (var i = 0, len = compspts.length; i < len; i++) {
            if (i%2 === 0) {
                compspts[i]*=rx;
            } else {
                compspts[i]*=ry;
            }
        }
        endCompspts[0] = compspts[compspts.length-2];
        endCompspts[1] = compspts[compspts.length-1];
        endCompspts[2] *= rx;
        endCompspts[3] *= ry;
        node.a('node.offsetEndY', -(endCompspts[3]*0.5));
        node.a('node.offsetEndX', -(endCompspts[2]*0.5));
        
        startCompspts[0] = compspts[0];
        startCompspts[1] = compspts[1];
        startCompspts[2] *= rx;
        startCompspts[3] *= ry;
        node.a('node.offsetStartY', -(startCompspts[3]*0.5));
        node.a('node.offsetStartX', -(startCompspts[2]*0.5));
        node.a('node.endRotation', GD.calcRotationByStartAndEnd(compspts[i-4], compspts[i-3], compspts[i-2], compspts[i-1]));
        node.a('node.startRotation', GD.calcRotationByStartAndEnd(compspts[0], compspts[1], compspts[2], compspts[3]) + Math.PI);
    }
    node.setSize(w, h);
    node.setPosition(position.x * ratio.ratioX, position.y * ratio.ratioY);
    node.a('node.width', w);
    node.a('node.height', h);
    resetPoints(_ratio.ratioX, _ratio.ratioY);
    node.borderWidth = 2;
    node.a('node.borderwidth',node.borderWidth);
    node._nodename = 'Lib_pt2Node9';
    node._nodeType = 'line';
    zoomNodeList.push({
        node: node,
        attr: 'node.borderwidth'
    });
    var setWidth = node.setWidth,
        setHeight = node.setHeight,
        timer, rx = 1, ry = 1;
   
    node.setWidth = function (width) {
        var _width = this.getWidth();
        rx = width / _width;
        node.a('node.width', width);
        setWidth.apply(this, arguments);
            resetPoints(rx, 1); 
    }
    node.setHeight = function (height) {
        var _height = this.getHeight();
        ry = height / _height;
        node.a('node.height', height);
        setHeight.apply(this, arguments);
            resetPoints(1, ry);  
    }
})(Lib_pt2Node9, Lib_pt2Node9.getImage(), Lib_pt2Node9compspts, Lib_pt2Node9endCompspts, Lib_pt2Node9startCompspts);
var Lib_pt2Node10points=[6, 10,6, 20],
Lib_pt2Node10rect=ht.Default.unionPoint([{x:6,y:10},{x:6,y:20}]),
Lib_pt2Node10compspts=[];
_ratio = GD.getRatioWithRotation(0, ratio);
var _startratio = GD.getRatioWithRotation(4.71238898038469, ratio),
    _endratio = GD.getRatioWithRotation(7.85398163397448, ratio);
for(var i=0;i<Lib_pt2Node10points.length;i++){
    if(i%2==0){
        Lib_pt2Node10compspts.push(Lib_pt2Node10points[i]-Lib_pt2Node10rect.x);
    }else{
        Lib_pt2Node10compspts.push(Lib_pt2Node10points[i]-Lib_pt2Node10rect.y);
    } 
}

var Lib_pt2Node10ptslength=Lib_pt2Node10compspts.length;
if (Lib_pt2Node10rect.height === 0) {
    Lib_pt2Node10compspts[0] -= 0;
    Lib_pt2Node10compspts[Lib_pt2Node10ptslength-2] += 0;
} else if (Lib_pt2Node10rect.width === 0){
    Lib_pt2Node10compspts[1] -= 0;
    Lib_pt2Node10compspts[Lib_pt2Node10ptslength-1] += 0;
} else {
    Lib_pt2Node10compspts[0] -= 0;
    Lib_pt2Node10compspts[1] -= 0;
    Lib_pt2Node10compspts[Lib_pt2Node10ptslength-2] += 0;
    Lib_pt2Node10compspts[Lib_pt2Node10ptslength-1] += 0;
}

Lib_pt2Node10 = new ht.Node();
Lib_pt2Node10.borderWidth = 2;
Lib_pt2Node10rect.width = Lib_pt2Node10rect.width === 0 ? 0.0001 : Lib_pt2Node10rect.width;
Lib_pt2Node10rect.height = Lib_pt2Node10rect.height === 0 ? 0.0001 : Lib_pt2Node10rect.height;
var Lib_pt2Node10endCompspts = [Lib_pt2Node10compspts[Lib_pt2Node10ptslength-2],Lib_pt2Node10compspts[Lib_pt2Node10ptslength-1],0,0];
var Lib_pt2Node10startCompspts = [Lib_pt2Node10compspts[0],Lib_pt2Node10compspts[1],0,0];
Lib_pt2Node10.setImage(GD.getPolyLineJSON());
Lib_pt2Node10.setPosition(Lib_pt2Node10rect.x+Lib_pt2Node10rect.width/2,Lib_pt2Node10rect.y+Lib_pt2Node10rect.height/2);
Lib_pt2Node10.setSize(Lib_pt2Node10rect.width,Lib_pt2Node10rect.height);
Lib_pt2Node10.setStyle("opacity",1);
Lib_pt2Node10.s({'pixelPerfect':true});
Lib_pt2Node10borderwidth=2;
Lib_pt2Node10.setRotation(0);
dataModel.add(Lib_pt2Node10);

Lib_pt2Node10.a('node.points',Lib_pt2Node10compspts);
Lib_pt2Node10.a('node.segments',[1,2]);
Lib_pt2Node10.a('node.color','rgba(255,0,255,1)');
Lib_pt2Node10.a('node.borderPattern',getDashStyle("@borderPattern@"));
Lib_pt2Node10.a('node.borderColor','rgba(255,0,255,1)');

Lib_pt2Node10.a('node.background','rgba(255,0,255,1)');
Lib_pt2Node10.a('node.gradient','');
Lib_pt2Node10.a('node.gradientcolor','rgba(255,0,255,1)');
Lib_pt2Node10.a('node.endCompspts',Lib_pt2Node10endCompspts);
Lib_pt2Node10.a('node.startCompspts',Lib_pt2Node10startCompspts);

(function (node, img, compspts, endCompspts, startCompspts) {
    var position = node.getPosition(),
        w = node.getWidth()*_ratio.ratioX,
        h = node.getHeight()*_ratio.ratioY;
    function resetPoints(rx, ry) {
        for (var i = 0, len = compspts.length; i < len; i++) {
            if (i%2 === 0) {
                compspts[i]*=rx;
            } else {
                compspts[i]*=ry;
            }
        }
        endCompspts[0] = compspts[compspts.length-2];
        endCompspts[1] = compspts[compspts.length-1];
        endCompspts[2] *= rx;
        endCompspts[3] *= ry;
        node.a('node.offsetEndY', -(endCompspts[3]*0.5));
        node.a('node.offsetEndX', -(endCompspts[2]*0.5));
        
        startCompspts[0] = compspts[0];
        startCompspts[1] = compspts[1];
        startCompspts[2] *= rx;
        startCompspts[3] *= ry;
        node.a('node.offsetStartY', -(startCompspts[3]*0.5));
        node.a('node.offsetStartX', -(startCompspts[2]*0.5));
        node.a('node.endRotation', GD.calcRotationByStartAndEnd(compspts[i-4], compspts[i-3], compspts[i-2], compspts[i-1]));
        node.a('node.startRotation', GD.calcRotationByStartAndEnd(compspts[0], compspts[1], compspts[2], compspts[3]) + Math.PI);
    }
    node.setSize(w, h);
    node.setPosition(position.x * ratio.ratioX, position.y * ratio.ratioY);
    node.a('node.width', w);
    node.a('node.height', h);
    resetPoints(_ratio.ratioX, _ratio.ratioY);
    node.borderWidth = 2;
    node.a('node.borderwidth',node.borderWidth);
    node._nodename = 'Lib_pt2Node10';
    node._nodeType = 'line';
    zoomNodeList.push({
        node: node,
        attr: 'node.borderwidth'
    });
    var setWidth = node.setWidth,
        setHeight = node.setHeight,
        timer, rx = 1, ry = 1;
   
    node.setWidth = function (width) {
        var _width = this.getWidth();
        rx = width / _width;
        node.a('node.width', width);
        setWidth.apply(this, arguments);
            resetPoints(rx, 1); 
    }
    node.setHeight = function (height) {
        var _height = this.getHeight();
        ry = height / _height;
        node.a('node.height', height);
        setHeight.apply(this, arguments);
            resetPoints(1, ry);  
    }
})(Lib_pt2Node10, Lib_pt2Node10.getImage(), Lib_pt2Node10compspts, Lib_pt2Node10endCompspts, Lib_pt2Node10startCompspts);
var Lib_pt2Node11points=[7, 10,14, 15],
Lib_pt2Node11rect=ht.Default.unionPoint([{x:7,y:10},{x:14,y:15}]),
Lib_pt2Node11compspts=[];
_ratio = GD.getRatioWithRotation(0, ratio);
var _startratio = GD.getRatioWithRotation(3.76184215084917, ratio),
    _endratio = GD.getRatioWithRotation(0.620249497259376, ratio);
for(var i=0;i<Lib_pt2Node11points.length;i++){
    if(i%2==0){
        Lib_pt2Node11compspts.push(Lib_pt2Node11points[i]-Lib_pt2Node11rect.x);
    }else{
        Lib_pt2Node11compspts.push(Lib_pt2Node11points[i]-Lib_pt2Node11rect.y);
    } 
}

var Lib_pt2Node11ptslength=Lib_pt2Node11compspts.length;
if (Lib_pt2Node11rect.height === 0) {
    Lib_pt2Node11compspts[0] -= 0;
    Lib_pt2Node11compspts[Lib_pt2Node11ptslength-2] += 0;
} else if (Lib_pt2Node11rect.width === 0){
    Lib_pt2Node11compspts[1] -= 0;
    Lib_pt2Node11compspts[Lib_pt2Node11ptslength-1] += 0;
} else {
    Lib_pt2Node11compspts[0] -= 0;
    Lib_pt2Node11compspts[1] -= 0;
    Lib_pt2Node11compspts[Lib_pt2Node11ptslength-2] += 0;
    Lib_pt2Node11compspts[Lib_pt2Node11ptslength-1] += 0;
}

Lib_pt2Node11 = new ht.Node();
Lib_pt2Node11.borderWidth = 2;
Lib_pt2Node11rect.width = Lib_pt2Node11rect.width === 0 ? 0.0001 : Lib_pt2Node11rect.width;
Lib_pt2Node11rect.height = Lib_pt2Node11rect.height === 0 ? 0.0001 : Lib_pt2Node11rect.height;
var Lib_pt2Node11endCompspts = [Lib_pt2Node11compspts[Lib_pt2Node11ptslength-2],Lib_pt2Node11compspts[Lib_pt2Node11ptslength-1],0,0];
var Lib_pt2Node11startCompspts = [Lib_pt2Node11compspts[0],Lib_pt2Node11compspts[1],0,0];
Lib_pt2Node11.setImage(GD.getPolyLineJSON());
Lib_pt2Node11.setPosition(Lib_pt2Node11rect.x+Lib_pt2Node11rect.width/2,Lib_pt2Node11rect.y+Lib_pt2Node11rect.height/2);
Lib_pt2Node11.setSize(Lib_pt2Node11rect.width,Lib_pt2Node11rect.height);
Lib_pt2Node11.setStyle("opacity",1);
Lib_pt2Node11.s({'pixelPerfect':true});
Lib_pt2Node11borderwidth=2;
Lib_pt2Node11.setRotation(0);
dataModel.add(Lib_pt2Node11);

Lib_pt2Node11.a('node.points',Lib_pt2Node11compspts);
Lib_pt2Node11.a('node.segments',[1,2]);
Lib_pt2Node11.a('node.color','rgba(255,0,255,1)');
Lib_pt2Node11.a('node.borderPattern',getDashStyle("@borderPattern@"));
Lib_pt2Node11.a('node.borderColor','rgba(255,0,255,1)');

Lib_pt2Node11.a('node.background','rgba(255,0,255,1)');
Lib_pt2Node11.a('node.gradient','');
Lib_pt2Node11.a('node.gradientcolor','rgba(255,0,255,1)');
Lib_pt2Node11.a('node.endCompspts',Lib_pt2Node11endCompspts);
Lib_pt2Node11.a('node.startCompspts',Lib_pt2Node11startCompspts);

(function (node, img, compspts, endCompspts, startCompspts) {
    var position = node.getPosition(),
        w = node.getWidth()*_ratio.ratioX,
        h = node.getHeight()*_ratio.ratioY;
    function resetPoints(rx, ry) {
        for (var i = 0, len = compspts.length; i < len; i++) {
            if (i%2 === 0) {
                compspts[i]*=rx;
            } else {
                compspts[i]*=ry;
            }
        }
        endCompspts[0] = compspts[compspts.length-2];
        endCompspts[1] = compspts[compspts.length-1];
        endCompspts[2] *= rx;
        endCompspts[3] *= ry;
        node.a('node.offsetEndY', -(endCompspts[3]*0.5));
        node.a('node.offsetEndX', -(endCompspts[2]*0.5));
        
        startCompspts[0] = compspts[0];
        startCompspts[1] = compspts[1];
        startCompspts[2] *= rx;
        startCompspts[3] *= ry;
        node.a('node.offsetStartY', -(startCompspts[3]*0.5));
        node.a('node.offsetStartX', -(startCompspts[2]*0.5));
        node.a('node.endRotation', GD.calcRotationByStartAndEnd(compspts[i-4], compspts[i-3], compspts[i-2], compspts[i-1]));
        node.a('node.startRotation', GD.calcRotationByStartAndEnd(compspts[0], compspts[1], compspts[2], compspts[3]) + Math.PI);
    }
    node.setSize(w, h);
    node.setPosition(position.x * ratio.ratioX, position.y * ratio.ratioY);
    node.a('node.width', w);
    node.a('node.height', h);
    resetPoints(_ratio.ratioX, _ratio.ratioY);
    node.borderWidth = 2;
    node.a('node.borderwidth',node.borderWidth);
    node._nodename = 'Lib_pt2Node11';
    node._nodeType = 'line';
    zoomNodeList.push({
        node: node,
        attr: 'node.borderwidth'
    });
    var setWidth = node.setWidth,
        setHeight = node.setHeight,
        timer, rx = 1, ry = 1;
   
    node.setWidth = function (width) {
        var _width = this.getWidth();
        rx = width / _width;
        node.a('node.width', width);
        setWidth.apply(this, arguments);
            resetPoints(rx, 1); 
    }
    node.setHeight = function (height) {
        var _height = this.getHeight();
        ry = height / _height;
        node.a('node.height', height);
        setHeight.apply(this, arguments);
            resetPoints(1, ry);  
    }
})(Lib_pt2Node11, Lib_pt2Node11.getImage(), Lib_pt2Node11compspts, Lib_pt2Node11endCompspts, Lib_pt2Node11startCompspts);

/*@GraphList@*/
        /*@PageInit@*/
        
 var localVarObj = this.localVarObj; 
 var localDynamicVarObj = this.localDynamicVar(); 

        this['Lib_pt2Node0'] = Lib_pt2Node0; 
 Lib_pt2Node0.__parentLib = nodename; 
 Lib_pt2Node0.__parent = this; 
  this.childNodes.push(Lib_pt2Node0); 
this['Lib_pt2Node1'] = Lib_pt2Node1; 
 Lib_pt2Node1.__parentLib = nodename; 
 Lib_pt2Node1.__parent = this; 
  this.childNodes.push(Lib_pt2Node1); 
this['Lib_pt2Node2'] = Lib_pt2Node2; 
 Lib_pt2Node2.__parentLib = nodename; 
 Lib_pt2Node2.__parent = this; 
  this.childNodes.push(Lib_pt2Node2); 
this['Lib_pt2Node3'] = Lib_pt2Node3; 
 Lib_pt2Node3.__parentLib = nodename; 
 Lib_pt2Node3.__parent = this; 
  this.childNodes.push(Lib_pt2Node3); 
this['Lib_pt2Node4'] = Lib_pt2Node4; 
 Lib_pt2Node4.__parentLib = nodename; 
 Lib_pt2Node4.__parent = this; 
  this.childNodes.push(Lib_pt2Node4); 
this['Lib_pt2Node5'] = Lib_pt2Node5; 
 Lib_pt2Node5.__parentLib = nodename; 
 Lib_pt2Node5.__parent = this; 
  this.childNodes.push(Lib_pt2Node5); 
this['Lib_pt2Node6'] = Lib_pt2Node6; 
 Lib_pt2Node6.__parentLib = nodename; 
 Lib_pt2Node6.__parent = this; 
  this.childNodes.push(Lib_pt2Node6); 
this['Lib_pt2Node7'] = Lib_pt2Node7; 
 Lib_pt2Node7.__parentLib = nodename; 
 Lib_pt2Node7.__parent = this; 
  this.childNodes.push(Lib_pt2Node7); 
this['Lib_pt2Node8'] = Lib_pt2Node8; 
 Lib_pt2Node8.__parentLib = nodename; 
 Lib_pt2Node8.__parent = this; 
  this.childNodes.push(Lib_pt2Node8); 
this['Lib_pt2Node9'] = Lib_pt2Node9; 
 Lib_pt2Node9.__parentLib = nodename; 
 Lib_pt2Node9.__parent = this; 
  this.childNodes.push(Lib_pt2Node9); 
this['Lib_pt2Node10'] = Lib_pt2Node10; 
 Lib_pt2Node10.__parentLib = nodename; 
 Lib_pt2Node10.__parent = this; 
  this.childNodes.push(Lib_pt2Node10); 
this['Lib_pt2Node11'] = Lib_pt2Node11; 
 Lib_pt2Node11.__parentLib = nodename; 
 Lib_pt2Node11.__parent = this; 
  this.childNodes.push(Lib_pt2Node11); 

        /*@ControlContextMenu@*/
        /*@Declare@*/
        this.init(x, y, width, height, angle);
    };
    ht.Default.def('ht.lib.pt2', Object, {
        refresh10ms: function () {
    
 var localVarObj = this.localVarObj; 
 var localDynamicVarObj = this.localDynamicVar(); 

    var Lib_pt2Node0= this.Lib_pt2Node0; 
var Lib_pt2Node1= this.Lib_pt2Node1; 
var Lib_pt2Node2= this.Lib_pt2Node2; 
var Lib_pt2Node3= this.Lib_pt2Node3; 
var Lib_pt2Node4= this.Lib_pt2Node4; 
var Lib_pt2Node5= this.Lib_pt2Node5; 
var Lib_pt2Node6= this.Lib_pt2Node6; 
var Lib_pt2Node7= this.Lib_pt2Node7; 
var Lib_pt2Node8= this.Lib_pt2Node8; 
var Lib_pt2Node9= this.Lib_pt2Node9; 
var Lib_pt2Node10= this.Lib_pt2Node10; 
var Lib_pt2Node11= this.Lib_pt2Node11; 

    /*@refresh10ms@*/
},
refresh100ms: function () {
    
 var localVarObj = this.localVarObj; 
 var localDynamicVarObj = this.localDynamicVar(); 

    var Lib_pt2Node0= this.Lib_pt2Node0; 
var Lib_pt2Node1= this.Lib_pt2Node1; 
var Lib_pt2Node2= this.Lib_pt2Node2; 
var Lib_pt2Node3= this.Lib_pt2Node3; 
var Lib_pt2Node4= this.Lib_pt2Node4; 
var Lib_pt2Node5= this.Lib_pt2Node5; 
var Lib_pt2Node6= this.Lib_pt2Node6; 
var Lib_pt2Node7= this.Lib_pt2Node7; 
var Lib_pt2Node8= this.Lib_pt2Node8; 
var Lib_pt2Node9= this.Lib_pt2Node9; 
var Lib_pt2Node10= this.Lib_pt2Node10; 
var Lib_pt2Node11= this.Lib_pt2Node11; 

    /*@refresh100ms@*/
},
refresh500ms: function () {
    
 var localVarObj = this.localVarObj; 
 var localDynamicVarObj = this.localDynamicVar(); 

    var Lib_pt2Node0= this.Lib_pt2Node0; 
var Lib_pt2Node1= this.Lib_pt2Node1; 
var Lib_pt2Node2= this.Lib_pt2Node2; 
var Lib_pt2Node3= this.Lib_pt2Node3; 
var Lib_pt2Node4= this.Lib_pt2Node4; 
var Lib_pt2Node5= this.Lib_pt2Node5; 
var Lib_pt2Node6= this.Lib_pt2Node6; 
var Lib_pt2Node7= this.Lib_pt2Node7; 
var Lib_pt2Node8= this.Lib_pt2Node8; 
var Lib_pt2Node9= this.Lib_pt2Node9; 
var Lib_pt2Node10= this.Lib_pt2Node10; 
var Lib_pt2Node11= this.Lib_pt2Node11; 

    /*@refresh500ms@*/
},
refresh1s: function () {
    var Counter1s = arguments[0] || 0;
    
 var localVarObj = this.localVarObj; 
 var localDynamicVarObj = this.localDynamicVar(); 

    var Lib_pt2Node0= this.Lib_pt2Node0; 
var Lib_pt2Node1= this.Lib_pt2Node1; 
var Lib_pt2Node2= this.Lib_pt2Node2; 
var Lib_pt2Node3= this.Lib_pt2Node3; 
var Lib_pt2Node4= this.Lib_pt2Node4; 
var Lib_pt2Node5= this.Lib_pt2Node5; 
var Lib_pt2Node6= this.Lib_pt2Node6; 
var Lib_pt2Node7= this.Lib_pt2Node7; 
var Lib_pt2Node8= this.Lib_pt2Node8; 
var Lib_pt2Node9= this.Lib_pt2Node9; 
var Lib_pt2Node10= this.Lib_pt2Node10; 
var Lib_pt2Node11= this.Lib_pt2Node11; 

    /*@refresh1s@*/
},
refresh5s: function () {
    
 var localVarObj = this.localVarObj; 
 var localDynamicVarObj = this.localDynamicVar(); 

    var Lib_pt2Node0= this.Lib_pt2Node0; 
var Lib_pt2Node1= this.Lib_pt2Node1; 
var Lib_pt2Node2= this.Lib_pt2Node2; 
var Lib_pt2Node3= this.Lib_pt2Node3; 
var Lib_pt2Node4= this.Lib_pt2Node4; 
var Lib_pt2Node5= this.Lib_pt2Node5; 
var Lib_pt2Node6= this.Lib_pt2Node6; 
var Lib_pt2Node7= this.Lib_pt2Node7; 
var Lib_pt2Node8= this.Lib_pt2Node8; 
var Lib_pt2Node9= this.Lib_pt2Node9; 
var Lib_pt2Node10= this.Lib_pt2Node10; 
var Lib_pt2Node11= this.Lib_pt2Node11; 

    /*@refresh5s@*/
},

/*@PageDynamic@*/
        onEvent: function (e, data, type, origin, offset, objMouseOn, ctm) {
            
 var localVarObj = this.localVarObj; 
 var localDynamicVarObj = this.localDynamicVar(); 

            var Lib_pt2Node0= this.Lib_pt2Node0; 
var Lib_pt2Node1= this.Lib_pt2Node1; 
var Lib_pt2Node2= this.Lib_pt2Node2; 
var Lib_pt2Node3= this.Lib_pt2Node3; 
var Lib_pt2Node4= this.Lib_pt2Node4; 
var Lib_pt2Node5= this.Lib_pt2Node5; 
var Lib_pt2Node6= this.Lib_pt2Node6; 
var Lib_pt2Node7= this.Lib_pt2Node7; 
var Lib_pt2Node8= this.Lib_pt2Node8; 
var Lib_pt2Node9= this.Lib_pt2Node9; 
var Lib_pt2Node10= this.Lib_pt2Node10; 
var Lib_pt2Node11= this.Lib_pt2Node11; 

            
if (type === 'click') {
    /*@EvnentClicked@*/
} else if (type === 'mousedown') {
    mouseX=e.clientX;
    mouseY=e.clientY;
    /*@EvnentMouseDown@*/
} else if (type === 'mouseup') {
    /*@EvnentMouseUp@*/
} else if (type === 'mousemove') {
    var mouseX, mouseY, position, zoom;
    position=origin.getLogicalPoint(e);
    zoom = graphView.getZoom();
    if (origin === graphView) {
        mouseX= position.x + origin.tx();
        mouseY = position.y + origin.ty();
    } else {
        offset = offset || {x: 0, y: 0};
        mouseX = position.x / zoom + offset.x + origin.tx();
        mouseY = position.y / zoom + offset.y + origin.ty();
    }
    /*@EvnentMouseLeave@*/

    /*@EvnentMouseOver@*/
} else if (type === 'keydown') {
    /*@EvnentKeyDown@*/ 
} else if (type === 'contextmenu') {
    /*@Declare@*/
    /*@SetNodeContextMenu@*/
    /*@SetPageContextMenu@*/
}
/*@LibEvent@*/
        },
        getBaseClass: function () {
            return this._baseClass;
        },
        getWidth: function () {
            return this._width;
        },
        getHeight: function () {
            return this._height;
        },
        getSize: function () {
            return {
                width: this._width,
                height: this._height
            }
        },
        setWidth: function (width) {
            if (width === undefined || width === null || width != width) {
                return ;
            }
            var originWidth = this._width;
            var ratio = width / originWidth;
            var childNodes = this.childNodes, childNode, p, op = this.getPosition(), w, cw, ox, rotation = this.getRotation();
            for (var i = 0, len = childNodes.length; i < len; i++) {
                childNode = childNodes[i];
                p = childNode.getPosition();
                cw = childNode.getWidth();
                    w = cw >=2 ? cw * ratio : cw;
                    childNode.setWidth(w);
                ox = op.x + (p.x - op.x) * ratio;
                childNode.setPosition(ox, p.y);

                rotation = GD.calcRotation(rotation);
                if (rotation === 0 || rotation === Math.PI) {
                    // 图元未旋转
                    ox = op.x + (p.x - op.x)*ratio;
                    childNode.setPosition(ox, p.y);
                } else if (rotation === 90 * Math.PI / 180) {
                    // 图元旋转以后
                    ox = op.y + (p.y - op.y)*ratio;
                    childNode.setPosition(p.x, ox);
                }
            }
            this._width = width;
            this._originWidth = width;
            this._ratioX = ratio;
            return this;
        },
        setHeight: function (height) {
            if (height === undefined || height === null || height != height) {
                return ;
            }
            var originHeight = this._height;
            var ratio = height / originHeight;
            var childNodes = this.childNodes, childNode, p, op = this.getPosition(), h, ch, oy, rotation = this.getRotation();
            for (var i = 0, len = childNodes.length; i < len; i++) {
                childNode = childNodes[i];
                p = childNode.getPosition();
                ch = childNode.getHeight();

                h = ch >=2 ? ch * ratio : ch;
                childNode.setHeight(h);
                
                rotation = GD.calcRotation(rotation);

                if (rotation === 0 || rotation === Math.PI) {
                    // 图元未旋转
                    oy = op.y + (p.y - op.y)*ratio;
                    childNode.setPosition(p.x, oy);
                } else if (rotation === 90 * Math.PI / 180) {
                    // 图元旋转以后
                    oy = op.x + (p.x - op.x)*ratio;
                    childNode.setPosition(oy, p.y);
                }
            }
            this._height = height;
            this._originHeight = height;
            this._ratioY = ratio;
            return this;
        },
        setSize: function (size) {
            // var args = Array.prototype.slice.call(arguments, 0);
            // var height, width;
            // if (args.length === 0) {
            //     return ;
            // }else if (args.length === 1) {
            //     height = args[0].height;
            //     width = args[0].width;
            // } else {
            //     width = args[0];
            //     height = args[1];
            // }
            // var wh = GD.getRatioWithRotation(angle, wid)
            // this.setHeight(height);
            // this.setWidth(width);
            // return this;

            var args = Array.prototype.slice.call(arguments, 0);
            var height, width;
            if (args.length === 0) {
                return ;
            }else if (args.length === 1) {
                height = args[0].height;
                width = args[0].width;
                angle = 0;
            } else if (args.length === 2) {
                if (typeof args[0] === 'object') {
                    width = args[0].width;
                    height = args[0].height;
                    angle = args[1] || 0;
                } else {
                    width = args[0];
                    height = args[1];
                    angle = 0;
                }
            } else if (args.length === 3) {
                width = args[0];
                height = args[1];
                angle = args[2] || 0;
            }
            var wh = GD.getRatioWithRotation(0, width, height);
            this.setHeight(wh.ratioY);
            this.setWidth(wh.ratioX);
            return this;
        },
        getPosition: function () {
            return {
                x: this._x,
                y: this._y
            }
        },
        setPosition: function () {
            var args = Array.prototype.slice.call(arguments, 0), x, y;
            if (args.length === 0) {
                return this;
            } else if (args.length === 1) {
                if (typeof args[0] != 'object') {
                    return this;
                }
                x = args[0].x;
                y = args[0].y;
            } else {
                x = args[0];
                y = args[1];
            }
            if ((x !== 0 && !x) || (y !== 0 && !y)) {
                return this;
            }
            // var childNodes = this.childNodes, offset, childNode, p;
            // for (var i = 0, len = childNodes.length; i < len; i++) {
            //     childNode = childNodes[i];
            //     p = childNode.getPosition();
            //     childNode.setPosition(x - (this._x-p.x)*this._ratioX, y - (this._y-p.y)*this._ratioY);
            // }
            // this._x = x;
            // this._y = y;
            // return this;

            var childNodes, childNode, background, offset = {}, op, cp;

            childNodes = this.childNodes;
            background = this._background;
            op = background.getPosition();
            offset.x = x - op.x;
            offset.y = y - op.y;
            for (var i = 0, len = childNodes.length; i < len; i++) {
                childNode = childNodes[i];
                cp = childNode.getPosition();
                childNode.setPosition(cp.x + offset.x, cp.y + offset.y);
            }
            this._x = x;
            this._y = y;
            this._position = {x: x, y: y};
            return this;
        },
        getStyle: function (key) {
            if (!key) {
                return undefined;
            }
            return this._styleObject[key];
        },
        setStyle: function (key, value, force) {
            var childNodes = this.childNodes, childNode;
            
            for (var i = 0, len = childNodes.length; i < len; i++) {
                childNode = childNodes[i];
                if (key === '2d.visible') {
                    if (value === graphView.isVisible(childNode)) {
                        continue;
                    }
                    if (!value) {
                        childNode._savedIsVisible = graphView.isVisible(childNode);
                        childNode.s({
                            '2d.visible': false
                        })
                    } else {
                        childNode.s({
                            '2d.visible': childNode._savedIsVisible
                        })
                    }
                    continue;
                }
                childNode.s({
                    key: value
                });
            }
            this._styleObject[key] = value;
            return this;
        },
        calcSize: function () {
            var background = this._background;
            var position = background.getPosition(),
                width = background.getWidth(),
                height = background.getHeight();
            this._width = width;
            this._height = height;
            this._x = position.x;
            this._y = position.y;
            this._position = {
                x: this._x,
                y: this._y
            }
            return this;
            return this;
        },
        s: function (styleObj, force) {
            var args = Array.prototype.slice.call(arguments, 0);
            var styleObj;
            if (args.length === 0) {
                return this;
            } else if (args.length === 1) {
                styleObj = args[0];
            } else {
                this.setStyle(args[0], args[1]);
                return this;
            }
            for (var key in styleObj) {
                if (!styleObj.hasOwnProperty(key)) {
                    continue;
                }
                this.setStyle(key, styleObj[key], force);
            }
            return this;
        }, 
        init: function (x, y, width, height, angle) {
            var that = this;
            this.calcSize();
            (function (width, height, angle) {
                // that.setSize(width, height, angle);
                // var wh = GD.getRatioWithRotation(angle, width, height);
                // width = wh.ratioX;
                // height = wh.ratioY;
                var originHeight = that._height;
                var originWidth = that._width;
                var ratioY = height / originHeight;
                var ratioX = width / originWidth;
                var childNodes = that.childNodes,
                    childNode,p, op = that.getPosition(), h, ch, oy, w, cw, ox, name, borderRatio, borderWidth;
                for (var i = 0, len = childNodes.length; i < len; i++) {
                    childNode = childNodes[i];
                    p = childNode.getPosition();
                    childNode.originHeight = childNode.originHeight || childNode.getHeight();
                    ch = childNode.getHeight();
                    cw = childNode.getWidth();
                    
                    if (ch > 2) {
                        h = ch * ratioY;
                        childNode.setHeight(h);
                    } 
                    if (cw > 2) {
                        w = cw * ratioX;
                        childNode.setWidth(w);
                    }

                    borderRatio = (ratioX + ratioY)*0.5;
                    if (childNode._nodeType === 'line') { // 如果是线,
                        if (childNode.getWidth() > childNode.getHeight()) {
                            borderRatio = ratioX;
                        } else {
                            borderRatio = ratioY;
                        }
                    }

                    name = childNode._nodename;
                    // if (childNode.borderWidth && name && ch > 2 && cw > 2) {
                    //     borderWidth = childNode.borderWidth / borderRatio;
                    //     if (borderWidth > ch*0.5 || borderWidth > cw *0.5) {
                    //         // borderWidth = childNode.borderWidth;
                    //     }
                    //     childNode.borderWidth = borderWidth;
                    //     childNode.a(name + '.borderwidth', borderWidth);
                    // }
                }
                that._height = height;
                that._originHeight = height;
                that._ratioY = ratioY;
                that._width = width;
                that._originWidth = width;
                that._ratioX = ratioX;
            })(width, height, angle);
            that._x = width / 2;
            that._y = height / 2;
            that._rotation = 0;
            // that.setPosition(x, y);
            (function (x, y) {
                var childNodes = that.childNodes, offset, childNode;
                var w2 = that.getWidth() / 2, h2 = that.getHeight()/2;
                for (var i = 0, len = childNodes.length; i < len; i++) {
                    childNode = childNodes[i];
                    offset = childNode.getPosition();
                    childNode.setPosition(x + offset.x * that._ratioX - w2, y + offset.y * that._ratioY - h2);
                }
                that._x = x;
                that._y = y;
            })(x, y);
            // setTimeout(that.addEVent, 1000);
        },
        setRotation: function (angle) {
            var that = this, _angle = that.getRotation();
            if (angle!==0 && !angle || angle === _angle) {
                return this;
            }
            var childNodes = this.childNodes, childNode, p = this.getPosition(), px = p.x, py = p.y;
            for (var i = 0, len = childNodes.length; i < len; i++) {
                childNode = childNodes[i];
                var x = childNode.getPosition().x - px;
                var y = childNode.getPosition().y - py;
                childNode.setPosition(Math.cos(angle-_angle) * x - Math.sin(angle-_angle) * y + px, Math.cos(angle-_angle) * y + Math.sin(angle-_angle) * x + py);
                childNode.setRotation(angle);
            }
            this._rotation = angle;
            return this;
        },
        getRotation: function () {
            return this._rotation;
        },
        setScale: function (sx, sy) {
            var that = this,
                childNodes = this.childNodes,
                childNode;
            if (sx === undefined || sx === null) return ;
            if (sy === undefined || sy === null) {
                sy = sx;
            }
            for (var i = 0, len = childNodes.length; i < len; i++) {
                childNode = childNodes[i];
                if (typeof childNode.setScale === 'function') {
                    childNode.setScale(sx, sy);
                }
            }
        },
        getScale: function () {
            return this._background.getScale();
        },
        setScaleX: function (sx) {
            if (sx === undefined || sx === null) return;
            var that = this,
                childNodes = this.childNodes,
                childNode;
            for (var i = 0, len = childNodes.length; i < len; i++) {
                childNode = childNodes[i];
                if (typeof childNode.setScaleX === 'function') {
                    childNode.setScaleX(sx);
                }
            }
        },
        setScaleY: function (sy) {
            if (sy === undefined || sy === null) return;
            var that = this,
                childNodes = this.childNodes,
                childNode;
            for (var i = 0, len = childNodes.length; i < len; i++) {
                childNode = childNodes[i];
                if (typeof childNode.setScaleY === 'function') {
                    childNode.setScaleY(sy);
                }
            }
        },
        getScaleX: function () {
            return this._background.getScaleX();
        },
        getScaleY: function () {
            return this._background.getScaleY();
        },
        evert: function () {
            var that = this,
                childNodes = this.childNodes,
                background = this._background,
                bp = background.getPosition(),
                bx = bp.x,
                by = bp.y,
                childNode, distanceX, distanceY, x, y, p, nx, ny;
            
            for (var i = 0, len = childNodes.length; i < len; i++) {
                childNode = childNodes[i];
                p = childNode.getPosition();
                x = p.x;
                y = p.y;
                distanceX = bx - x;
                distanceY = by - y;
                nx = bx + distanceX;
                ny = by + distanceY;
                childNode.setPosition(nx, ny);
                if (typeof childNode.setScale === 'function') {
                    if (!(childNode._disallowEvert === true))
                        childNode.setScale(-1, -1);
                }
            }
        },
        evertX: function () {
            var that = this,
                childNodes = this.childNodes,
                background = this._background,
                bx = background.getPosition().x,
                childNode, distance, x, p, nx;
            
            for (var i = 0, len = childNodes.length; i < len; i++) {
                childNode = childNodes[i];
                p = childNode.getPosition();
                x = p.x;
                distance = bx - x;
                nx = bx + distance;
                childNode.setPosition(nx, p.y);
                if (typeof childNode.setScaleX === 'function') {
                    if (!(childNode._disallowEvert === true))
                        childNode.setScaleX(-1);
                }
            }
        },
        evertY: function () {
            var that = this,
                childNodes = this.childNodes,
                background = this._background,
                by = background.getPosition().y,
                childNode, distance, y, p, ny;
            
            for (var i = 0, len = childNodes.length; i < len; i++) {
                childNode = childNodes[i];
                p = childNode.getPosition();
                y = p.y;
                distance = by - y;
                ny = by + distance;
                childNode.setPosition(p.x, ny);
                if (typeof childNode.setScaleY === 'function') {
                    if (!(childNode._disallowEvert === true))
                        childNode.setScaleY(-1);
                }
            }
        },
        attr: function (key, value) {
            var _attrObj = this._attrObj || {};
            if (arguments.length === 1) {
                return _attrObj[key];
            }
            var childNodes = this.childNodes, childNode;
            _attrObj[key] = value;
            for (var i = 0; childNode = childNodes[i++];) {
                if (typeof childNode.a === 'function') {
                    childNode.a(key, value);
                }
            }
        },
        a: function () {
            return this.attr.apply(this, arguments);
        }
    });
}