#extension GL_ARB_shader_texture_lod : enable
varying vec2 xlv_TEXCOORD0;
uniform vec4 _MainTex_TexelSize;
uniform sampler2D _MainTex;
vec4 xll_tex2Dlod (
  in sampler2D s,
  in vec4 coord
)
{
  vec4 tmpvar_1;
  tmpvar_1 = texture2DLod (s, coord.xy, coord.w);
  return tmpvar_1;
}

vec4 xll_tex2Dgrad (
  in sampler2D s,
  in vec2 coord,
  in vec2 ddx,
  in vec2 ddy
)
{
  vec4 tmpvar_1;
  tmpvar_1 = texture2DGradARB (s, coord, ddx, ddy);
  return tmpvar_1;
}

vec4 FxaaTexOff (
  in sampler2D tex,
  in vec2 pos,
  in vec2 off,
  in vec2 rcpFrame
)
{
  vec4 tmpvar_1;
  tmpvar_1.zw = vec2(0.0, 0.0);
  tmpvar_1.xy = (pos.xy + (off * rcpFrame)).xy;
  vec4 tmpvar_2;
  tmpvar_2 = xll_tex2Dlod (tex, tmpvar_1);
  return tmpvar_2;
}

vec4 FxaaTexLod0 (
  in sampler2D tex,
  in vec2 pos
)
{
  vec4 tmpvar_1;
  tmpvar_1.zw = vec2(0.0, 0.0);
  tmpvar_1.xy = pos.xy.xy;
  vec4 tmpvar_2;
  tmpvar_2 = xll_tex2Dlod (tex, tmpvar_1);
  return tmpvar_2;
}

vec4 FxaaTexGrad (
  in sampler2D tex,
  in vec2 pos,
  in vec2 grad
)
{
  vec4 tmpvar_1;
  tmpvar_1 = xll_tex2Dgrad (tex, pos.xy, grad, grad);
  return tmpvar_1;
}

float FxaaLuma (
  in vec3 rgb
)
{
  return ((rgb.y * 1.96321) + rgb.x);
}

vec3 FxaaLerp3 (
  in vec3 a,
  in vec3 b,
  in float amountOfA
)
{
  vec3 tmpvar_1;
  tmpvar_1.x = -(amountOfA);
  tmpvar_1.y = -(amountOfA);
  tmpvar_1.z = -(amountOfA);
  vec3 tmpvar_2;
  tmpvar_2.x = amountOfA;
  tmpvar_2.y = amountOfA;
  tmpvar_2.z = amountOfA;
  return ((tmpvar_1 * b) + ((a * tmpvar_2) + b));
}

vec3 FxaaFilterReturn (
  in vec3 rgb
)
{
  return rgb;
}

vec3 FxaaPixelShader (
  in vec2 pos,
  in sampler2D tex,
  in vec2 rcpFrame
)
{
  vec3 rgbF;
  float subPixelOffset;
  float spanLength;
  bool directionN;
  float dstP;
  float dstN;
  int i;
  bool doneP;
  bool doneN;
  float lumaEndP;
  float lumaEndN;
  vec2 offNP;
  vec2 posP;
  vec2 posN;
  bool pairN;
  float gradientS;
  float gradientN;
  float lengthSign;
  bool horzSpan;
  float edgeHorz;
  float edgeVert;
  float lumaSE;
  float lumaSW;
  float lumaNE;
  float lumaNW;
  vec3 rgbSE;
  vec3 rgbSW;
  vec3 rgbNE;
  vec3 rgbNW;
  float blendL;
  float rangeL;
  float lumaL;
  vec3 rgbL;
  float range;
  float rangeMax;
  float rangeMin;
  float lumaS;
  float lumaE;
  float lumaM;
  float lumaW;
  float lumaN;
  vec3 rgbS;
  vec3 rgbE;
  vec3 rgbM;
  vec3 rgbW;
  vec3 rgbN;
  bool tmpvar_1;
  tmpvar_1 = bool(0);
  doneN = tmpvar_1;
  bool tmpvar_2;
  tmpvar_2 = bool(0);
  doneP = tmpvar_2;
  int tmpvar_3;
  tmpvar_3 = 0;
  i = tmpvar_3;
  vec4 tmpvar_4;
  tmpvar_4 = FxaaTexOff (tex, pos.xy, vec2(0.0, -1.0), rcpFrame);
  vec3 tmpvar_5;
  tmpvar_5 = tmpvar_4.xyz;
  rgbN = tmpvar_5;
  vec4 tmpvar_6;
  tmpvar_6 = FxaaTexOff (tex, pos.xy, vec2(-1.0, 0.0), rcpFrame);
  vec3 tmpvar_7;
  tmpvar_7 = tmpvar_6.xyz;
  rgbW = tmpvar_7;
  vec4 tmpvar_8;
  tmpvar_8 = FxaaTexOff (tex, pos.xy, vec2(0.0, 0.0), rcpFrame);
  vec3 tmpvar_9;
  tmpvar_9 = tmpvar_8.xyz;
  rgbM = tmpvar_9;
  vec4 tmpvar_10;
  tmpvar_10 = FxaaTexOff (tex, pos.xy, vec2(1.0, 0.0), rcpFrame);
  vec3 tmpvar_11;
  tmpvar_11 = tmpvar_10.xyz;
  rgbE = tmpvar_11;
  vec4 tmpvar_12;
  tmpvar_12 = FxaaTexOff (tex, pos.xy, vec2(0.0, 1.0), rcpFrame);
  vec3 tmpvar_13;
  tmpvar_13 = tmpvar_12.xyz;
  rgbS = tmpvar_13;
  float tmpvar_14;
  tmpvar_14 = FxaaLuma (rgbN);
  float tmpvar_15;
  tmpvar_15 = tmpvar_14;
  lumaN = tmpvar_15;
  float tmpvar_16;
  tmpvar_16 = FxaaLuma (rgbW);
  float tmpvar_17;
  tmpvar_17 = tmpvar_16;
  lumaW = tmpvar_17;
  float tmpvar_18;
  tmpvar_18 = FxaaLuma (rgbM);
  float tmpvar_19;
  tmpvar_19 = tmpvar_18;
  lumaM = tmpvar_19;
  float tmpvar_20;
  tmpvar_20 = FxaaLuma (rgbE);
  float tmpvar_21;
  tmpvar_21 = tmpvar_20;
  lumaE = tmpvar_21;
  float tmpvar_22;
  tmpvar_22 = FxaaLuma (rgbS);
  float tmpvar_23;
  tmpvar_23 = tmpvar_22;
  lumaS = tmpvar_23;
  float tmpvar_24;
  tmpvar_24 = min (lumaN, lumaW);
  float tmpvar_25;
  tmpvar_25 = min (lumaS, lumaE);
  float tmpvar_26;
  tmpvar_26 = min (tmpvar_24, tmpvar_25);
  float tmpvar_27;
  tmpvar_27 = min (lumaM, tmpvar_26);
  float tmpvar_28;
  tmpvar_28 = tmpvar_27;
  rangeMin = tmpvar_28;
  float tmpvar_29;
  tmpvar_29 = max (lumaN, lumaW);
  float tmpvar_30;
  tmpvar_30 = max (lumaS, lumaE);
  float tmpvar_31;
  tmpvar_31 = max (tmpvar_29, tmpvar_30);
  float tmpvar_32;
  tmpvar_32 = max (lumaM, tmpvar_31);
  float tmpvar_33;
  tmpvar_33 = tmpvar_32;
  rangeMax = tmpvar_33;
  float tmpvar_34;
  tmpvar_34 = (rangeMax - rangeMin);
  range = tmpvar_34;
  float tmpvar_35;
  tmpvar_35 = max (0.0625, (rangeMax * 0.125));
  if ((range < tmpvar_35)) {
    vec3 tmpvar_36;
    tmpvar_36 = FxaaFilterReturn (rgbM);
    return tmpvar_36;
  };
  vec3 tmpvar_37;
  tmpvar_37 = ((((rgbN + rgbW) + rgbM) + rgbE) + rgbS);
  rgbL = tmpvar_37;
  float tmpvar_38;
  tmpvar_38 = ((((lumaN + lumaW) + lumaE) + lumaS) * 0.25);
  lumaL = tmpvar_38;
  float tmpvar_39;
  tmpvar_39 = abs ((lumaL - lumaM));
  float tmpvar_40;
  tmpvar_40 = tmpvar_39;
  rangeL = tmpvar_40;
  float tmpvar_41;
  tmpvar_41 = max (0.0, ((rangeL / range) - 0.25));
  float tmpvar_42;
  tmpvar_42 = (tmpvar_41 * 1.33333);
  blendL = tmpvar_42;
  float tmpvar_43;
  tmpvar_43 = min (0.75, blendL);
  float tmpvar_44;
  tmpvar_44 = tmpvar_43;
  blendL = tmpvar_44;
  vec4 tmpvar_45;
  tmpvar_45 = FxaaTexOff (tex, pos.xy, vec2(-1.0, -1.0), rcpFrame);
  vec3 tmpvar_46;
  tmpvar_46 = tmpvar_45.xyz;
  rgbNW = tmpvar_46;
  vec4 tmpvar_47;
  tmpvar_47 = FxaaTexOff (tex, pos.xy, vec2(1.0, -1.0), rcpFrame);
  vec3 tmpvar_48;
  tmpvar_48 = tmpvar_47.xyz;
  rgbNE = tmpvar_48;
  vec4 tmpvar_49;
  tmpvar_49 = FxaaTexOff (tex, pos.xy, vec2(-1.0, 1.0), rcpFrame);
  vec3 tmpvar_50;
  tmpvar_50 = tmpvar_49.xyz;
  rgbSW = tmpvar_50;
  vec4 tmpvar_51;
  tmpvar_51 = FxaaTexOff (tex, pos.xy, vec2(1.0, 1.0), rcpFrame);
  vec3 tmpvar_52;
  tmpvar_52 = tmpvar_51.xyz;
  rgbSE = tmpvar_52;
  vec3 tmpvar_53;
  tmpvar_53 = (rgbL + (((rgbNW + rgbNE) + rgbSW) + rgbSE));
  rgbL = tmpvar_53;
  vec3 tmpvar_54;
  tmpvar_54 = (rgbL * vec3(0.111111, 0.111111, 0.111111));
  rgbL = tmpvar_54;
  float tmpvar_55;
  tmpvar_55 = FxaaLuma (rgbNW);
  float tmpvar_56;
  tmpvar_56 = tmpvar_55;
  lumaNW = tmpvar_56;
  float tmpvar_57;
  tmpvar_57 = FxaaLuma (rgbNE);
  float tmpvar_58;
  tmpvar_58 = tmpvar_57;
  lumaNE = tmpvar_58;
  float tmpvar_59;
  tmpvar_59 = FxaaLuma (rgbSW);
  float tmpvar_60;
  tmpvar_60 = tmpvar_59;
  lumaSW = tmpvar_60;
  float tmpvar_61;
  tmpvar_61 = FxaaLuma (rgbSE);
  float tmpvar_62;
  tmpvar_62 = tmpvar_61;
  lumaSE = tmpvar_62;
  float tmpvar_63;
  tmpvar_63 = abs ((((0.25 * lumaNW) + (-(0.5) * lumaN)) + (0.25 * lumaNE)));
  float tmpvar_64;
  tmpvar_64 = abs ((((0.5 * lumaW) + (-(1.0) * lumaM)) + (0.5 * lumaE)));
  float tmpvar_65;
  tmpvar_65 = abs ((((0.25 * lumaSW) + (-(0.5) * lumaS)) + (0.25 * lumaSE)));
  float tmpvar_66;
  tmpvar_66 = ((tmpvar_63 + tmpvar_64) + tmpvar_65);
  edgeVert = tmpvar_66;
  float tmpvar_67;
  tmpvar_67 = abs ((((0.25 * lumaNW) + (-(0.5) * lumaW)) + (0.25 * lumaSW)));
  float tmpvar_68;
  tmpvar_68 = abs ((((0.5 * lumaN) + (-(1.0) * lumaM)) + (0.5 * lumaS)));
  float tmpvar_69;
  tmpvar_69 = abs ((((0.25 * lumaNE) + (-(0.5) * lumaE)) + (0.25 * lumaSE)));
  float tmpvar_70;
  tmpvar_70 = ((tmpvar_67 + tmpvar_68) + tmpvar_69);
  edgeHorz = tmpvar_70;
  bool tmpvar_71;
  tmpvar_71 = (edgeHorz >= edgeVert);
  horzSpan = tmpvar_71;
  float tmpvar_72;
  if (horzSpan) {
    tmpvar_72 = -(rcpFrame.y);
  } else {
    tmpvar_72 = -(rcpFrame.x);
  };
  float tmpvar_73;
  tmpvar_73 = tmpvar_72;
  lengthSign = tmpvar_73;
  if (!(horzSpan)) {
    float tmpvar_74;
    tmpvar_74 = lumaW;
    lumaN = tmpvar_74;
  };
  if (!(horzSpan)) {
    float tmpvar_75;
    tmpvar_75 = lumaE;
    lumaS = tmpvar_75;
  };
  float tmpvar_76;
  tmpvar_76 = abs ((lumaN - lumaM));
  float tmpvar_77;
  tmpvar_77 = tmpvar_76;
  gradientN = tmpvar_77;
  float tmpvar_78;
  tmpvar_78 = abs ((lumaS - lumaM));
  float tmpvar_79;
  tmpvar_79 = tmpvar_78;
  gradientS = tmpvar_79;
  float tmpvar_80;
  tmpvar_80 = ((lumaN + lumaM) * 0.5);
  lumaN = tmpvar_80;
  float tmpvar_81;
  tmpvar_81 = ((lumaS + lumaM) * 0.5);
  lumaS = tmpvar_81;
  bool tmpvar_82;
  tmpvar_82 = (gradientN >= gradientS);
  pairN = tmpvar_82;
  if (!(pairN)) {
    float tmpvar_83;
    tmpvar_83 = lumaS;
    lumaN = tmpvar_83;
  };
  if (!(pairN)) {
    float tmpvar_84;
    tmpvar_84 = gradientS;
    gradientN = tmpvar_84;
  };
  if (!(pairN)) {
    float tmpvar_85;
    tmpvar_85 = (lengthSign * -(1.0));
    lengthSign = tmpvar_85;
  };
  float tmpvar_86;
  if (horzSpan) {
    tmpvar_86 = 0.0;
  } else {
    tmpvar_86 = (lengthSign * 0.5);
  };
  float tmpvar_87;
  tmpvar_87 = (pos.x + tmpvar_86);
  posN.x = tmpvar_87;
  float tmpvar_88;
  if (horzSpan) {
    tmpvar_88 = (lengthSign * 0.5);
  } else {
    tmpvar_88 = 0.0;
  };
  float tmpvar_89;
  tmpvar_89 = (pos.y + tmpvar_88);
  posN.y = vec2(tmpvar_89).y;
  float tmpvar_90;
  tmpvar_90 = (gradientN * 0.25);
  gradientN = tmpvar_90;
  vec2 tmpvar_91;
  tmpvar_91 = posN;
  posP = tmpvar_91;
  vec2 tmpvar_92;
  if (horzSpan) {
    vec2 tmpvar_93;
    tmpvar_93.y = 0.0;
    tmpvar_93.x = rcpFrame.x;
    tmpvar_92 = tmpvar_93;
  } else {
    vec2 tmpvar_94;
    tmpvar_94.x = 0.0;
    tmpvar_94.y = rcpFrame.y;
    tmpvar_92 = tmpvar_94;
  };
  vec2 tmpvar_95;
  tmpvar_95 = tmpvar_92;
  offNP = tmpvar_95;
  float tmpvar_96;
  tmpvar_96 = lumaN;
  lumaEndN = tmpvar_96;
  float tmpvar_97;
  tmpvar_97 = lumaN;
  lumaEndP = tmpvar_97;
  vec2 tmpvar_98;
  tmpvar_98 = (posN + (offNP * vec2(-2.0, -2.0)));
  posN = tmpvar_98;
  vec2 tmpvar_99;
  tmpvar_99 = (posP + (offNP * vec2(2.0, 2.0)));
  posP = tmpvar_99;
  vec2 tmpvar_100;
  tmpvar_100 = (offNP * vec2(3.0, 3.0));
  offNP = tmpvar_100;
  while (true) {
    if (!((i < 4))) {
      break;
    };
    if (!(doneN)) {
      vec4 tmpvar_101;
      tmpvar_101 = FxaaTexGrad (tex, posN.xy, offNP);
      float tmpvar_102;
      tmpvar_102 = FxaaLuma (tmpvar_101.xyz);
      float tmpvar_103;
      tmpvar_103 = tmpvar_102;
      lumaEndN = tmpvar_103;
    };
    if (!(doneP)) {
      vec4 tmpvar_104;
      tmpvar_104 = FxaaTexGrad (tex, posP.xy, offNP);
      float tmpvar_105;
      tmpvar_105 = FxaaLuma (tmpvar_104.xyz);
      float tmpvar_106;
      tmpvar_106 = tmpvar_105;
      lumaEndP = tmpvar_106;
    };
    bool tmpvar_107;
    if (doneN) {
      tmpvar_107 = bool(1);
    } else {
      float tmpvar_108;
      tmpvar_108 = abs ((lumaEndN - lumaN));
      tmpvar_107 = (tmpvar_108 >= gradientN);
    };
    bool tmpvar_109;
    tmpvar_109 = tmpvar_107;
    doneN = tmpvar_109;
    bool tmpvar_110;
    if (doneP) {
      tmpvar_110 = bool(1);
    } else {
      float tmpvar_111;
      tmpvar_111 = abs ((lumaEndP - lumaN));
      tmpvar_110 = (tmpvar_111 >= gradientN);
    };
    bool tmpvar_112;
    tmpvar_112 = tmpvar_110;
    doneP = tmpvar_112;
    bool tmpvar_113;
    if (doneN) {
      tmpvar_113 = doneP;
    } else {
      tmpvar_113 = bool(0);
    };
    if (tmpvar_113) {
      break;
    };
    if (!(doneN)) {
      vec2 tmpvar_114;
      tmpvar_114 = (posN - offNP);
      posN = tmpvar_114;
    };
    if (!(doneP)) {
      vec2 tmpvar_115;
      tmpvar_115 = (posP + offNP);
      posP = tmpvar_115;
    };
    int _post_incdec_tmp;
    _post_incdec_tmp = i;
    int tmpvar_116;
    tmpvar_116 = (i + 1);
    i = tmpvar_116;
  };
  float tmpvar_117;
  if (horzSpan) {
    tmpvar_117 = (pos.x - posN.x);
  } else {
    tmpvar_117 = (pos.y - posN.y);
  };
  float tmpvar_118;
  tmpvar_118 = tmpvar_117;
  dstN = tmpvar_118;
  float tmpvar_119;
  if (horzSpan) {
    tmpvar_119 = (posP.x - pos.x);
  } else {
    tmpvar_119 = (posP.y - pos.y);
  };
  float tmpvar_120;
  tmpvar_120 = tmpvar_119;
  dstP = tmpvar_120;
  bool tmpvar_121;
  tmpvar_121 = (dstN < dstP);
  directionN = tmpvar_121;
  float tmpvar_122;
  if (directionN) {
    tmpvar_122 = lumaEndN;
  } else {
    tmpvar_122 = lumaEndP;
  };
  float tmpvar_123;
  tmpvar_123 = tmpvar_122;
  lumaEndN = tmpvar_123;
  if ((((lumaM - lumaN) < 0.0) == ((lumaEndN - lumaN) < 0.0))) {
    float tmpvar_124;
    tmpvar_124 = 0.0;
    lengthSign = tmpvar_124;
  };
  float tmpvar_125;
  tmpvar_125 = (dstP + dstN);
  spanLength = tmpvar_125;
  float tmpvar_126;
  if (directionN) {
    tmpvar_126 = dstN;
  } else {
    tmpvar_126 = dstP;
  };
  float tmpvar_127;
  tmpvar_127 = tmpvar_126;
  dstN = tmpvar_127;
  float tmpvar_128;
  tmpvar_128 = ((0.5 + (dstN * (-(1.0) / spanLength))) * lengthSign);
  subPixelOffset = tmpvar_128;
  float tmpvar_129;
  if (horzSpan) {
    tmpvar_129 = 0.0;
  } else {
    tmpvar_129 = subPixelOffset;
  };
  float tmpvar_130;
  if (horzSpan) {
    tmpvar_130 = subPixelOffset;
  } else {
    tmpvar_130 = 0.0;
  };
  vec2 tmpvar_131;
  tmpvar_131.x = (pos.x + tmpvar_129);
  tmpvar_131.y = (pos.y + tmpvar_130);
  vec4 tmpvar_132;
  tmpvar_132 = FxaaTexLod0 (tex, tmpvar_131);
  vec3 tmpvar_133;
  tmpvar_133 = tmpvar_132.xyz;
  rgbF = tmpvar_133;
  vec3 tmpvar_134;
  tmpvar_134 = FxaaLerp3 (rgbL, rgbF, blendL);
  vec3 tmpvar_135;
  tmpvar_135 = FxaaFilterReturn (tmpvar_134);
  return tmpvar_135;
}

vec4 xlat_main (
  in vec2 uv
)
{
  vec3 tmpvar_1;
  tmpvar_1 = FxaaPixelShader (uv.xy, _MainTex, _MainTex_TexelSize.xy);
  vec4 tmpvar_2;
  tmpvar_2.w = 0.0;
  tmpvar_2.xyz = tmpvar_1.xyz.xyz;
  return tmpvar_2;
}

void main ()
{
  vec4 xl_retval;
  vec2 tmpvar_1;
  tmpvar_1 = xlv_TEXCOORD0.xy;
  vec4 tmpvar_2;
  tmpvar_2 = xlat_main (tmpvar_1);
  vec4 tmpvar_3;
  tmpvar_3 = tmpvar_2;
  xl_retval = tmpvar_3;
  vec4 tmpvar_4;
  tmpvar_4 = xl_retval.xyzw;
  vec4 tmpvar_5;
  tmpvar_5 = tmpvar_4;
  gl_FragData[0] = tmpvar_5;
}

