--// Local auxiliary functions - - - - - - - - - - - - - - - - - - - - - - - -

--// 1.	rename:					" -> '
--// 2. comment root compositions routine:
--//	"createComposition15_InsideTemple_01 = function()"
--// 3. add auxiliaru routines for managing animations: 
--		auxPlayInsideTempleAnimation(), 
--		auxGetInsideTempleAnimation(), 
--		auxCreateInsideTempleAnimations()
--// 4. replace CreateCompositionElement() with auxCreateCompositionElement() for some corrections ...

------------------------------------------------------------------------------
--
function auxPlayInsideTempleAnimation(compositionName)
    local composition = auxGetInsideTempleAnimation(compositionName);
    composition:SetVisible(true);
    composition:Play();
end

------------------------------------------------------------------------------
--
function auxHideInsideTempleAnimation(compositionName)
    local composition = auxGetInsideTempleAnimation(compositionName);
    composition:Stop();
    composition:SetVisible(false);
end

------------------------------------------------------------------------------
--
function auxGetInsideTempleAnimation(compositionName)
    assert(insideTempleCompositions ~= nil and compositionName ~= nil);
	assert(insideTempleCompositions[compositionName] ~= nil and 'Composition with specified name not exists !');

    return insideTempleCompositions[compositionName];
end

-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--

function CreateComposition(parent, compositionRoutine, name, x,y,z, hotSpotX,hotSpotY, duration, isCyclic)
    assert(parent ~= nil and compositionRoutine ~= nil and name ~= nil and z ~= nil and duration ~= nil);

    local element = compositionRoutine();
    element:SetName(name);
    element:SetHotSpot(hotSpotX,hotSpotY);
    element:SetXY(x, y);
    assert(z - parent:GetZ());
    element:SetZ(z - parent:GetZ());
    element:AttachTo(parent);

    element:SetScaleX(1);
    element:SetScaleY(1);
    element:SetAngle(0);
    element:SetOpacity(1);
    
    if (isCyclic == true) then
        element:SetDuration(duration);
        element:SetCyclic(true);
	else
		element:SetDestroysOnEnd(false);
    end
	element:Stop();
    element:SetVisible(false);
    element:AssignClippingRect(parent);
	element:SetConsiderParentOpacity(true);

	return element;
end

-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function auxCreateCompositionElement(resourceName)
	local element = CreateCompositionElement(resourceName);
    local texName = string.sub(resourceName, string.len('data/Texture/Scenes/15_InsideTemple/Animations/') + 1);

	--// set up flies animation
	if (texName == 'Env/Bug_fly[01-02].png') then
		local anim = element:GetTexture();
		anim:Stop();
		anim:SetTextureRect(0,0, 19,18);
		anim:SetFrames(2);
		anim:SetFrame(0);
		anim:SetSpeed(30.0);
		anim:SetMode(HGEANIM_FWD + HGEANIM_LOOP);
		anim:Play();
    end

    --// set additive alpha blending mode for light & flare objects without alpha chanel (*.jpg)
    if (texName == 'Env/EF_Dust_01.jpg' or
		texName == 'Env/EF_light_003.jpg') then

        element:GetTexture():SetBlendMode(0);
    end
	return element;
end

------------------------------------------------------------------------------
--
function auxCreateInsideTempleAnimations(parent)
    assert(parent ~= nil);

    insideTempleCompositions = {};
    local CreateAndRegisterComposition = function (parent, compositionRoutine, name, x,y,z, hotSpotX,hotSpotY, duration, isCyclic)
        local element = CreateComposition(parent, compositionRoutine, name, x,y,z, hotSpotX,hotSpotY, duration, isCyclic);
        insideTempleCompositions[element:GetName()] = element;
    end

	--//
    CreateAndRegisterComposition(parent, createCompositionEnvTop,	'EnvTop',	0,0,108.3, 512,384, 10, true);
    CreateAndRegisterComposition(parent, createCompositionFly1,		'Fly1',		0,0,108.2, 512,384, 10, false);
    CreateAndRegisterComposition(parent, createCompositionFly2,		'Fly2',		0,0,108.1, 512,384, 10, false);
end

------------------------------------------------------------------------------
--createComposition15_InsideTemple_01 = function()
--
--    local composition15_InsideTemple_01 = CreateCompositionSequence();
--    local compositionDuration = 10;
--    composition15_InsideTemple_01:SetDuration(compositionDuration);
--
--
--    -- Layer Layer_1
--    local element = createCompositionEnvTop();
--    element:SetName('Layer_1');
--    composition15_InsideTemple_01:AddElement(element);
--    element:SetHotSpot(512, 384);
--    element:SetParentElement(composition15_InsideTemple_01);
--    element:SetXY(512, 384);
--
--    element:SetScaleX(1);
--    element:SetScaleY(1);
--    element:SetAngle(0);
--    element:SetOpacity(1);
--
--    effector = element:GetEffector();
--    effector:SetLifeTime(0, 10);
--
--
--    effector:Play();
--
--
--    -- Layer Layer_2
--    local element = createCompositionFly1();
--    element:SetName('Layer_2');
--    composition15_InsideTemple_01:AddElement(element);
--    element:SetHotSpot(512, 384);
--    element:SetParentElement(composition15_InsideTemple_01);
--    element:SetXY(512, 384);
--
--    element:SetScaleX(1);
--    element:SetScaleY(1);
--    element:SetAngle(0);
--    element:SetOpacity(1);
--
--    effector = element:GetEffector();
--    effector:SetLifeTime(0, 10);
--
--
--    effector:Play();
--
--
--    -- Layer Layer_3
--    local element = createCompositionFly2();
--    element:SetName('Layer_3');
--    composition15_InsideTemple_01:AddElement(element);
--    element:SetHotSpot(512, 384);
--    element:SetParentElement(composition15_InsideTemple_01);
--    element:SetXY(512, 384);
--
--    element:SetScaleX(1);
--    element:SetScaleY(1);
--    element:SetAngle(0);
--    element:SetOpacity(1);
--
--    effector = element:GetEffector();
--    effector:SetLifeTime(0, 10);
--
--
--    effector:Play();
--
--
--    -- Layer Layer_4
--    local element = auxCreateCompositionElement('data/Texture/Scenes/15_InsideTemple/Animations/Env/15_InsideTemple_01.jpg');
--    element:SetName('Layer_4');
--    composition15_InsideTemple_01:AddElement(element);
--    element:SetHotSpot(512, 384);
--    element:SetParentElement(composition15_InsideTemple_01);
--    element:SetXY(512, 384);
--
--    element:SetScaleX(1);
--    element:SetScaleY(1);
--    element:SetAngle(0);
--    element:SetOpacity(1);
--
--    effector = element:GetEffector();
--    effector:SetLifeTime(0, 10);
--
--
--    effector:Play();
--
--    composition15_InsideTemple_01:Play();
--
--    return composition15_InsideTemple_01;
--end

createCompositionEnvTop = function()

    local compositionEnvTop = CreateCompositionSequence();
    local compositionDuration = 10;
    compositionEnvTop:SetDuration(compositionDuration);


    -- Layer Layer_1
    local element = auxCreateCompositionElement('data/Texture/Scenes/15_InsideTemple/Animations/Env/EF_light_003.jpg');
    element:SetName('Layer_1');
    compositionEnvTop:AddElement(element);
    element:SetHotSpot(106, 177.5);
    element:SetParentElement(compositionEnvTop);
    element:SetXY(581.183395385742, 354.491348266602);

    element:SetScaleX(2.67813540510544);
    element:SetScaleY(2.75790243189239);
    element:SetAngle(0);

    effector = element:GetEffector();
    effector:SetLifeTime(0, 10);

    effector:SetKey(_TRACK_O, 0, 0.6);
    effector:SetKey(_TRACK_O, 1.16666666666667, 0.8);
    effector:SetKey(_TRACK_O, 2.36666666666667, 0.4);
    effector:SetKey(_TRACK_O, 3.6, 0.6);
    effector:SetKey(_TRACK_O, 4.83333333333333, 0.4);
    effector:SetKey(_TRACK_O, 6, 0.8);
    effector:SetKey(_TRACK_O, 7.03333333333333, 0.6);
    effector:SetKey(_TRACK_O, 7.93333333333333, 0.8);
    effector:SetKey(_TRACK_O, 8.86666666666667, 0.4);
    effector:SetKey(_TRACK_O, 9.96666666666667, 0.6);

    effector:Play();


    -- Layer Layer_2
    local element = auxCreateCompositionElement('data/Texture/Scenes/15_InsideTemple/Animations/Env/EF_Dust_01.jpg');
    element:SetName('Layer_2');
    compositionEnvTop:AddElement(element);
    element:SetHotSpot(130.5, 131);
    element:SetParentElement(compositionEnvTop);
    element:SetScaleX(1.2);
    element:SetScaleY(1.2);

    effector = element:GetEffector();
    effector:SetLifeTime(0, 10);

    effector:SetKey(_TRACK_X, 0, 510.228378295898);
    effector:SetKey(_TRACK_Y, 0, 285.674728393555);
    effector:SetKey(_TRACK_X, 9.96666666666667, 465.05192565918);
    effector:SetKey(_TRACK_Y, 9.96666666666667, 146.159149169922);
    effector:SetKey(_TRACK_A, 0, 0);
    effector:SetKey(_TRACK_A, 9.96666666666667, 0.7853981625);
    effector:SetKey(_TRACK_O, 0, 0);
    effector:SetKey(_TRACK_O, 1.26666666666667, 0.62836731731346);
    effector:SetKey(_TRACK_O, 1.75930989583333, 0);
    effector:SetKey(_TRACK_O, 2.3, 0.85448979305981);
    effector:SetKey(_TRACK_O, 2.75930989583333, 0);
    effector:SetKey(_TRACK_O, 3.36666666666667, 0.99999998131577);
    effector:SetKey(_TRACK_O, 3.89264322916667, 0);
    effector:SetKey(_TRACK_O, 4.49264322916667, 0.47448979093591);
    effector:SetKey(_TRACK_O, 5.09264322916667, 0);
    effector:SetKey(_TRACK_O, 5.6259765625, 0.79999999501754);
    effector:SetKey(_TRACK_O, 6.25930989583333, 0);
    effector:SetKey(_TRACK_O, 6.79264322916667, 0.9053061162209);
    effector:SetKey(_TRACK_O, 7.39264322916667, 0);
    effector:SetKey(_TRACK_O, 7.93333333333333, 0.99999998754385);
    effector:SetKey(_TRACK_O, 8.69264322916667, 0);
    effector:SetKey(_TRACK_O, 8.96666666666667, 0.62836732122699);
    effector:SetKey(_TRACK_O, 9.96666666666667, 0);

    effector:Play();


    -- Layer Layer_3
    local element = auxCreateCompositionElement('data/Texture/Scenes/15_InsideTemple/Animations/Env/EF_Dust_01.jpg');
    element:SetName('Layer_3');
    compositionEnvTop:AddElement(element);
    element:SetHotSpot(130.5, 131);
    element:SetParentElement(compositionEnvTop);
    element:SetScaleX(1.2);
    element:SetScaleY(1.2);

    effector = element:GetEffector();
    effector:SetLifeTime(0, 10);

    effector:SetKey(_TRACK_X, 0, 609.882354736328);
    effector:SetKey(_TRACK_Y, 0, 458.408294677734);
    effector:SetKey(_TRACK_X, 9.96666666666667, 564.705902099609);
    effector:SetKey(_TRACK_Y, 9.96666666666667, 318.892715454102);
    effector:SetKey(_TRACK_A, 0, 0);
    effector:SetKey(_TRACK_A, 9.96666666666667, -0.7853981625);
    effector:SetKey(_TRACK_O, 0, 0);
    effector:SetKey(_TRACK_O, 0.83333333333333, 0.8);
    effector:SetKey(_TRACK_O, 1.53333333333333, 0);
    effector:SetKey(_TRACK_O, 2.06666666666667, 0.6);
    effector:SetKey(_TRACK_O, 2.53333333333333, 0);
    effector:SetKey(_TRACK_O, 3.26666666666667, 1);
    effector:SetKey(_TRACK_O, 3.66666666666667, 0);
    effector:SetKey(_TRACK_O, 4.26666666666667, 0.8);
    effector:SetKey(_TRACK_O, 4.86666666666667, 0);
    effector:SetKey(_TRACK_O, 5.5, 0.6);
    effector:SetKey(_TRACK_O, 6.03333333333333, 0);
    effector:SetKey(_TRACK_O, 6.76666666666667, 0.8);
    effector:SetKey(_TRACK_O, 7.16666666666667, 0);
    effector:SetKey(_TRACK_O, 7.76666666666667, 0.8);
    effector:SetKey(_TRACK_O, 8.46666666666667, 0);
    effector:SetKey(_TRACK_O, 9.2, 0.8);
    effector:SetKey(_TRACK_O, 9.96666666666667, 0);

    effector:Play();

    compositionEnvTop:Play();

    return compositionEnvTop;
end

createCompositionFly1 = function()

    local compositionFly1 = CreateCompositionSequence();
    local compositionDuration = 10;
    compositionFly1:SetDuration(compositionDuration);


    -- Layer Layer_1
    local element = auxCreateCompositionElement('data/Texture/Scenes/15_InsideTemple/Animations/Env/Bug_fly[01-02].png');
    element:SetName('Layer_1');
    compositionFly1:AddElement(element);
    element:SetHotSpot(9.5, 9);
    element:SetParentElement(compositionFly1);
    element:SetAngle(0);

    effector = element:GetEffector();
    effector:SetLifeTime(0, 10);

    effector:SetKey(_TRACK_X, 0, 1052.34602355957);
    effector:SetKey(_TRACK_Y, 0, 86.3667907714844);
    effector:SetKey(_TRACK_X, 0.26666666666667, 972.622833251953);
    effector:SetKey(_TRACK_Y, 0.26666666666667, 81.0519104003906);
    effector:SetKey(_TRACK_X, 0.53333333333333, 918.145324707031);
    effector:SetKey(_TRACK_Y, 0.53333333333333, 94.339111328125);
    effector:SetKey(_TRACK_X, 0.8, 882.269897460938);
    effector:SetKey(_TRACK_Y, 0.8, 134.200698852539);
    effector:SetKey(_TRACK_X, 1.06666666666667, 838.422149658203);
    effector:SetKey(_TRACK_Y, 1.06666666666667, 172.73356628418);
    effector:SetKey(_TRACK_X, 1.3, 798.560562133789);
    effector:SetKey(_TRACK_Y, 1.3, 182.034606933594);
    effector:SetKey(_TRACK_X, 1.56666666666667, 771.98616027832);
    effector:SetKey(_TRACK_Y, 1.56666666666667, 203.294128417969);
    effector:SetKey(_TRACK_X, 1.8, 764.48616027832);
    effector:SetKey(_TRACK_Y, 1.8, 244.794128417969);
    effector:SetKey(_TRACK_X, 1.96666666666667, 784.48616027832);
    effector:SetKey(_TRACK_Y, 1.96666666666667, 273.294128417969);
    effector:SetKey(_TRACK_X, 2.16666666666667, 816.98616027832);
    effector:SetKey(_TRACK_Y, 2.16666666666667, 288.794128417969);
    effector:SetKey(_TRACK_X, 2.36666666666667, 867.48616027832);
    effector:SetKey(_TRACK_Y, 2.36666666666667, 303.294128417969);
    effector:SetKey(_TRACK_X, 2.53333333333333, 904.98616027832);
    effector:SetKey(_TRACK_Y, 2.53333333333333, 319.794128417969);
    effector:SetKey(_TRACK_X, 2.7, 917.48616027832);
    effector:SetKey(_TRACK_Y, 2.7, 351.294128417969);
    effector:SetKey(_TRACK_X, 2.9, 898.98616027832);
    effector:SetKey(_TRACK_Y, 2.9, 378.794128417969);
    effector:SetKey(_TRACK_X, 3.06666666666667, 869.98616027832);
    effector:SetKey(_TRACK_Y, 3.06666666666667, 391.294128417969);
    effector:SetKey(_TRACK_X, 3.23333333333333, 833.98616027832);
    effector:SetKey(_TRACK_Y, 3.23333333333333, 400.294128417969);
    effector:SetKey(_TRACK_X, 3.5, 794.98616027832);
    effector:SetKey(_TRACK_Y, 3.5, 407.294128417969);
    effector:SetKey(_TRACK_X, 3.73333333333333, 771.98616027832);
    effector:SetKey(_TRACK_Y, 3.73333333333333, 430.794128417969);
    effector:SetKey(_TRACK_X, 3.96666666666667, 775.98616027832);
    effector:SetKey(_TRACK_Y, 3.96666666666667, 461.794128417969);
    effector:SetKey(_TRACK_X, 4.16666666666667, 793.98616027832);
    effector:SetKey(_TRACK_Y, 4.16666666666667, 479.294128417969);
    effector:SetKey(_TRACK_X, 4.36666666666667, 834.48616027832);
    effector:SetKey(_TRACK_Y, 4.36666666666667, 496.294128417969);
    effector:SetKey(_TRACK_X, 4.56666666666667, 883.48616027832);
    effector:SetKey(_TRACK_Y, 4.56666666666667, 507.294128417969);
    effector:SetKey(_TRACK_X, 5.73333333333333, 883.48616027832);
    effector:SetKey(_TRACK_Y, 5.73333333333333, 507.294128417969);
    effector:SetKey(_TRACK_X, 5.9, 933.98616027832);
    effector:SetKey(_TRACK_Y, 5.9, 507.794128417969);
    effector:SetKey(_TRACK_X, 6.16666666666667, 992.48616027832);
    effector:SetKey(_TRACK_Y, 6.16666666666667, 491.294128417969);
    effector:SetKey(_TRACK_X, 6.36666666666667, 1036.98616027832);
    effector:SetKey(_TRACK_Y, 6.36666666666667, 455.794128417969);
    effector:SetKey(_TRACK_X, 6.56666666666667, 1045.98616027832);
    effector:SetKey(_TRACK_Y, 6.56666666666667, 398.794128417969);
    effector:SetKey(_TRACK_X, 6.8, 1028.98616027832);
    effector:SetKey(_TRACK_Y, 6.8, 347.794128417969);
    effector:SetKey(_TRACK_X, 6.93333333333333, 1000.48616027832);
    effector:SetKey(_TRACK_Y, 6.93333333333333, 330.294128417969);
    effector:SetKey(_TRACK_X, 7.13333333333333, 954.48616027832);
    effector:SetKey(_TRACK_Y, 7.13333333333333, 325.794128417969);
    effector:SetKey(_TRACK_X, 7.33333333333333, 915.98616027832);
    effector:SetKey(_TRACK_Y, 7.33333333333333, 339.294128417969);
    effector:SetKey(_TRACK_X, 7.43333333333333, 898.48616027832);
    effector:SetKey(_TRACK_Y, 7.43333333333333, 362.294128417969);
    effector:SetKey(_TRACK_X, 7.66666666666667, 902.48616027832);
    effector:SetKey(_TRACK_Y, 7.66666666666667, 393.294128417969);
    effector:SetKey(_TRACK_X, 7.9, 923.48616027832);
    effector:SetKey(_TRACK_Y, 7.9, 419.294128417969);
    effector:SetKey(_TRACK_X, 8.1, 960.48616027832);
    effector:SetKey(_TRACK_Y, 8.1, 427.294128417969);
    effector:SetKey(_TRACK_X, 8.3, 995.48616027832);
    effector:SetKey(_TRACK_Y, 8.3, 407.794128417969);
    effector:SetKey(_TRACK_X, 8.53333333333333, 1009.48616027832);
    effector:SetKey(_TRACK_Y, 8.53333333333333, 374.294128417969);
    effector:SetKey(_TRACK_X, 8.73333333333333, 1012.98616027832);
    effector:SetKey(_TRACK_Y, 8.73333333333333, 327.294128417969);
    effector:SetKey(_TRACK_X, 8.93333333333333, 993.48616027832);
    effector:SetKey(_TRACK_Y, 8.93333333333333, 299.294128417969);
    effector:SetKey(_TRACK_X, 9.16666666666667, 916.98616027832);
    effector:SetKey(_TRACK_Y, 9.16666666666667, 319.794128417969);
    effector:SetKey(_TRACK_X, 9.4, 910.48616027832);
    effector:SetKey(_TRACK_Y, 9.4, 370.794128417969);
    effector:SetKey(_TRACK_X, 9.56666666666667, 940.48616027832);
    effector:SetKey(_TRACK_Y, 9.56666666666667, 411.294128417969);
    effector:SetKey(_TRACK_X, 9.8, 1007.98616027832);
    effector:SetKey(_TRACK_Y, 9.8, 433.294128417969);
    effector:SetKey(_TRACK_X, 9.96666666666667, 1073.98616027832);
    effector:SetKey(_TRACK_Y, 9.96666666666667, 437.294128417969);
    effector:SetKey(_TRACK_SX, 0, 2);
    effector:SetKey(_TRACK_SY, 0, 2);
    effector:SetKey(_TRACK_SX, 0.93333333333333, 0.8);
    effector:SetKey(_TRACK_SY, 0.93333333333333, 0.8);
    effector:SetKey(_TRACK_SX, 1.93333333333333, 0.8);
    effector:SetKey(_TRACK_SY, 1.93333333333333, 0.8);
    effector:SetKey(_TRACK_SX, 3.16666666666667, 0.8);
    effector:SetKey(_TRACK_SY, 3.16666666666667, 0.8);
    effector:SetKey(_TRACK_SX, 4.56666666666667, 1.2);
    effector:SetKey(_TRACK_SY, 4.56666666666667, 1.2);
    effector:SetKey(_TRACK_SX, 5.2, 1);
    effector:SetKey(_TRACK_SY, 5.2, 1);
    effector:SetKey(_TRACK_SX, 5.7, 1.2);
    effector:SetKey(_TRACK_SY, 5.7, 1.2);
    effector:SetKey(_TRACK_SX, 6.56666666666667, 1.6);
    effector:SetKey(_TRACK_SY, 6.56666666666667, 1.6);
    effector:SetKey(_TRACK_SX, 7.3, 0.9);
    effector:SetKey(_TRACK_SY, 7.3, 0.9);
    effector:SetKey(_TRACK_SX, 8.13333333333333, 1.4);
    effector:SetKey(_TRACK_SY, 8.13333333333333, 1.4);
    effector:SetKey(_TRACK_SX, 9.06666666666667, 0.9);
    effector:SetKey(_TRACK_SY, 9.06666666666667, 0.9);
    effector:SetKey(_TRACK_SX, 9.96666666666667, 1.6);
    effector:SetKey(_TRACK_SY, 9.96666666666667, 1.6);
    effector:SetKey(_TRACK_O, 0, 1);
    effector:SetKey(_TRACK_O, 0.73333333333333, 1);
    effector:SetKey(_TRACK_O, 0.8, 0);
    effector:SetKey(_TRACK_O, 1.23333333333333, 0);
    effector:SetKey(_TRACK_O, 1.26666666666667, 1);
    effector:SetKey(_TRACK_O, 2.93333333333333, 1);
    effector:SetKey(_TRACK_O, 2.96666666666667, 0);
    effector:SetKey(_TRACK_O, 3.33333333333333, 0);
    effector:SetKey(_TRACK_O, 3.4, 1);
    effector:SetKey(_TRACK_O, 6.86666666666667, 1);
    effector:SetKey(_TRACK_O, 6.93333333333333, 0);
    effector:SetKey(_TRACK_O, 7.23333333333333, 0);
    effector:SetKey(_TRACK_O, 7.3, 1);
    effector:SetKey(_TRACK_O, 8.86666666666667, 1);
    effector:SetKey(_TRACK_O, 8.9, 0);
    effector:SetKey(_TRACK_O, 9.13333333333333, 0);
    effector:SetKey(_TRACK_O, 9.16666666666667, 1);
    effector:SetKey(_TRACK_O, 9.96666666666667, 1);

    effector:Play();

    compositionFly1:Play();

    return compositionFly1;
end

createCompositionFly2 = function()

    local compositionFly2 = CreateCompositionSequence();
    local compositionDuration = 10;
    compositionFly2:SetDuration(compositionDuration);


    -- Layer Layer_1
    local element = auxCreateCompositionElement('data/Texture/Scenes/15_InsideTemple/Animations/Env/Bug_fly[01-02].png');
    element:SetName('Layer_1');
    compositionFly2:AddElement(element);
    element:SetHotSpot(9.5, 9);
    element:SetParentElement(compositionFly2);
    element:SetAngle(0);
    element:SetOpacity(1);

    effector = element:GetEffector();
    effector:SetLifeTime(0, 10);

    effector:SetKey(_TRACK_X, 0, 310.896194458008);
    effector:SetKey(_TRACK_Y, 0, 796.159164428711);
    effector:SetKey(_TRACK_X, 0.33333333333333, 342.896194458008);
    effector:SetKey(_TRACK_Y, 0.33333333333333, 717.159164428711);
    effector:SetKey(_TRACK_X, 0.63333333333333, 394.896194458008);
    effector:SetKey(_TRACK_Y, 0.63333333333333, 664.159164428711);
    effector:SetKey(_TRACK_X, 1.06666666666667, 469.896194458008);
    effector:SetKey(_TRACK_Y, 1.06666666666667, 629.159164428711);
    effector:SetKey(_TRACK_X, 1.4, 505.896194458008);
    effector:SetKey(_TRACK_Y, 1.4, 600.159164428711);
    effector:SetKey(_TRACK_X, 1.66666666666667, 525.896194458008);
    effector:SetKey(_TRACK_Y, 1.66666666666667, 563.159164428711);
    effector:SetKey(_TRACK_X, 1.96666666666667, 527.896194458008);
    effector:SetKey(_TRACK_Y, 1.96666666666667, 527.159164428711);
    effector:SetKey(_TRACK_X, 2.23333333333333, 500.896194458008);
    effector:SetKey(_TRACK_Y, 2.23333333333333, 500.159164428711);
    effector:SetKey(_TRACK_X, 2.5, 455.896194458008);
    effector:SetKey(_TRACK_Y, 2.5, 492.159164428711);
    effector:SetKey(_TRACK_X, 2.8, 404.896194458008);
    effector:SetKey(_TRACK_Y, 2.8, 504.159164428711);
    effector:SetKey(_TRACK_X, 3.06666666666667, 384.896194458008);
    effector:SetKey(_TRACK_Y, 3.06666666666667, 529.159164428711);
    effector:SetKey(_TRACK_X, 3.33333333333333, 388.896194458008);
    effector:SetKey(_TRACK_Y, 3.33333333333333, 564.159164428711);
    effector:SetKey(_TRACK_X, 3.56666666666667, 420.896194458008);
    effector:SetKey(_TRACK_Y, 3.56666666666667, 573.159164428711);
    effector:SetKey(_TRACK_X, 3.83333333333333, 474.896194458008);
    effector:SetKey(_TRACK_Y, 3.83333333333333, 569.159164428711);
    effector:SetKey(_TRACK_X, 4.16666666666667, 534.896194458008);
    effector:SetKey(_TRACK_Y, 4.16666666666667, 551.159164428711);
    effector:SetKey(_TRACK_X, 4.56666666666667, 591.896194458008);
    effector:SetKey(_TRACK_Y, 4.56666666666667, 511.159164428711);
    effector:SetKey(_TRACK_X, 5, 632.896194458008);
    effector:SetKey(_TRACK_Y, 5, 447.159164428711);
    effector:SetKey(_TRACK_X, 5.4, 651.896194458008);
    effector:SetKey(_TRACK_Y, 5.4, 364.159164428711);
    effector:SetKey(_TRACK_X, 5.83333333333333, 642.896194458008);
    effector:SetKey(_TRACK_Y, 5.83333333333333, 287.159164428711);
    effector:SetKey(_TRACK_X, 6.23333333333333, 605.896194458008);
    effector:SetKey(_TRACK_Y, 6.23333333333333, 211.159164428711);
    effector:SetKey(_TRACK_X, 6.56666666666667, 548.896194458008);
    effector:SetKey(_TRACK_Y, 6.56666666666667, 175.159164428711);
    effector:SetKey(_TRACK_X, 6.86666666666667, 469.896194458008);
    effector:SetKey(_TRACK_Y, 6.86666666666667, 161.159164428711);
    effector:SetKey(_TRACK_X, 7.16666666666667, 410.896194458008);
    effector:SetKey(_TRACK_Y, 7.16666666666667, 178.159164428711);
    effector:SetKey(_TRACK_X, 7.43333333333333, 373.896194458008);
    effector:SetKey(_TRACK_Y, 7.43333333333333, 222.159164428711);
    effector:SetKey(_TRACK_X, 7.73333333333333, 388.896194458008);
    effector:SetKey(_TRACK_Y, 7.73333333333333, 272.159164428711);
    effector:SetKey(_TRACK_X, 8.03333333333333, 441.896194458008);
    effector:SetKey(_TRACK_Y, 8.03333333333333, 297.159164428711);
    effector:SetKey(_TRACK_X, 8.33333333333333, 502.896194458008);
    effector:SetKey(_TRACK_Y, 8.33333333333333, 281.159164428711);
    effector:SetKey(_TRACK_X, 8.6, 521.896194458008);
    effector:SetKey(_TRACK_Y, 8.6, 244.159164428711);
    effector:SetKey(_TRACK_X, 8.86666666666667, 513.896194458008);
    effector:SetKey(_TRACK_Y, 8.86666666666667, 203.159164428711);
    effector:SetKey(_TRACK_X, 9.13333333333333, 488.896194458008);
    effector:SetKey(_TRACK_Y, 9.13333333333333, 169.159164428711);
    effector:SetKey(_TRACK_X, 9.4, 450.896194458008);
    effector:SetKey(_TRACK_Y, 9.4, 136.159164428711);
    effector:SetKey(_TRACK_X, 9.66666666666667, 404.896194458008);
    effector:SetKey(_TRACK_Y, 9.66666666666667, 107.159164428711);
    effector:SetKey(_TRACK_X, 9.96666666666667, 349.646194458008);
    effector:SetKey(_TRACK_Y, 9.96666666666667, 65.6591644287109);
    effector:SetKey(_TRACK_SX, 0, 2);
    effector:SetKey(_TRACK_SY, 0, 2);
    effector:SetKey(_TRACK_SX, 2.73333333333333, 1);
    effector:SetKey(_TRACK_SY, 2.73333333333333, 1);
    effector:SetKey(_TRACK_SX, 6.6, 0.8);
    effector:SetKey(_TRACK_SY, 6.6, 0.8);
    effector:SetKey(_TRACK_SX, 9.96666666666667, 0.4);
    effector:SetKey(_TRACK_SY, 9.96666666666667, 0.4);

    effector:Play();

    compositionFly2:Play();

    return compositionFly2;
end

