in flex/flex-shared/src/com/intellij/flex/FlexCommonUtils.java [1067:1106]
public static String getSwfVersionForAirVersion(final String airVersion) {
if (StringUtil.compareVersionNumbers(airVersion, "51") >= 0) return "51";
if (StringUtil.compareVersionNumbers(airVersion, "50") >= 0) return "50";
if (StringUtil.compareVersionNumbers(airVersion, "33") >= 0) return "44";
if (StringUtil.compareVersionNumbers(airVersion, "32") >= 0) return "43";
if (StringUtil.compareVersionNumbers(airVersion, "31") >= 0) return "42";
if (StringUtil.compareVersionNumbers(airVersion, "30") >= 0) return "41";
if (StringUtil.compareVersionNumbers(airVersion, "29") >= 0) return "40";
if (StringUtil.compareVersionNumbers(airVersion, "28") >= 0) return "39";
if (StringUtil.compareVersionNumbers(airVersion, "27") >= 0) return "38";
if (StringUtil.compareVersionNumbers(airVersion, "26") >= 0) return "37";
if (StringUtil.compareVersionNumbers(airVersion, "25") >= 0) return "36";
if (StringUtil.compareVersionNumbers(airVersion, "24") >= 0) return "35";
if (StringUtil.compareVersionNumbers(airVersion, "23") >= 0) return "34";
if (StringUtil.compareVersionNumbers(airVersion, "22") >= 0) return "33";
if (StringUtil.compareVersionNumbers(airVersion, "21") >= 0) return "32";
if (StringUtil.compareVersionNumbers(airVersion, "20") >= 0) return "31";
if (StringUtil.compareVersionNumbers(airVersion, "19") >= 0) return "30";
if (StringUtil.compareVersionNumbers(airVersion, "18") >= 0) return "29";
if (StringUtil.compareVersionNumbers(airVersion, "17") >= 0) return "28";
if (StringUtil.compareVersionNumbers(airVersion, "16") >= 0) return "27";
if (StringUtil.compareVersionNumbers(airVersion, "15") >= 0) return "26";
if (StringUtil.compareVersionNumbers(airVersion, "14") >= 0) return "25";
if (StringUtil.compareVersionNumbers(airVersion, "13") >= 0) return "24"; // yes, they are going to release 13 after 4
if (StringUtil.compareVersionNumbers(airVersion, "4") >= 0) return "23";
if (StringUtil.compareVersionNumbers(airVersion, "3.9") >= 0) return "22";
if (StringUtil.compareVersionNumbers(airVersion, "3.8") >= 0) return "21";
if (StringUtil.compareVersionNumbers(airVersion, "3.7") >= 0) return "20";
if (StringUtil.compareVersionNumbers(airVersion, "3.6") >= 0) return "19";
if (StringUtil.compareVersionNumbers(airVersion, "3.5") >= 0) return "18";
if (StringUtil.compareVersionNumbers(airVersion, "3.4") >= 0) return "17";
if (StringUtil.compareVersionNumbers(airVersion, "3.3") >= 0) return "16";
if (StringUtil.compareVersionNumbers(airVersion, "3.2") >= 0) return "15";
if (StringUtil.compareVersionNumbers(airVersion, "3.1") >= 0) return "14";
if (StringUtil.compareVersionNumbers(airVersion, "3") >= 0) return "13";
if (StringUtil.compareVersionNumbers(airVersion, "2.7") >= 0) return "12";
if (StringUtil.compareVersionNumbers(airVersion, "2.6") >= 0) return "11";
if (StringUtil.compareVersionNumbers(airVersion, "1.5") >= 0) return "10";
return "9";
}