//////////////////////////////////////////////////////////////// // // Assignment for week 8. // //////////////////////////////////////////////////////////////// import java.util.Comparator; import java.util.Vector; public class Week8 { public static void main (String[] args) { new TestLists().go(); // Add new tests here. } // Students may add help methods etc here. // One possibly helpful method is given. // Prints the generated elements to System.out. static void printIRange (IRange ir) { for ( ; ir.hasMore(); ir.next()) System.out.println (ir.current()); System.out.println(); } } //////////////////////////////////////////////////////////////// // // ISelector // //////////////////////////////////////////////////////////////// interface ISelector { boolean select (Object x); // do we want the given object? } //////////////////////////////////////////////////////////////// // // IRange // //////////////////////////////////////////////////////////////// interface IRange { // Do any elements remain to be generated? boolean hasMore(); // Return the current element being generated. Object current(); // Skip the current element and go on to the remaining ones, if any. void next(); } //////////////////////////////////////////////////////////////// // // AList - reusable classes for representing lists of objects // // We have been developing these classes throughout the semester. // //////////////////////////////////////////////////////////////// abstract class AList { // Is this list empty? public abstract boolean isEmpty (); // Assuming this list is not empty, what is its first element? public abstract Object first (); // Assuming this list is not empty, what are its remaining elements? public abstract AList rest (); // Returns an IRange that generates the elements of this list in order. public IRange iterator () { return new ListRanger (this); } // How many elements are in this list? public int length () { if (this.isEmpty()) return 0; else return 1 + this.rest().length(); } // Return the elements of this list as a list in reverse order. public AList reverse () { IRange ir = this.iterator(); AList result = new MTList(); for ( ; ir.hasMore(); ir.next()) { result = new ConsList (ir.current(), result); } return result; } // Does this list contain the given object? public boolean contains (Object x) { boolean result = false; for (IRange ir = this.iterator(); ir.hasMore(); ir.next()) { if (ir.current().equals (x)) result = true; } return result; } // Is this list equal to that one? public boolean equals (Object that) { IRange ir1 = this.iterator(); IRange ir2 = ((AList) that).iterator(); boolean equalSoFar = true; for ( ; equalSoFar && ir1.hasMore() && ir2.hasMore(); ) { if (ir1.current() != ir2.current()) equalSoFar = false; ir1.next(); ir2.next(); } // The loop terminated because at least one of these is true: // -- equalSoFar is false (we found unequal elements) // -- ir1 has no more elements to generate // -- ir2 has no more elements to generaet if (ir1.hasMore() != ir2.hasMore()) return false; else return equalSoFar; } // Return the selected elements of this list. public abstract AList filter (ISelector is); // Return the elements of this list in the specified order. public abstract AList sort (Comparator ic); // Insert the given object in front of the first element of // this list that is larger than it according to the Comparator. abstract AList insert (Object x, Comparator ic); } class MTList extends AList { public MTList () { } public boolean isEmpty () { return true; } public Object first () { throw new RuntimeException (ERRORMSG); } public AList rest () { throw new RuntimeException (ERRORMSG); } // This is how constants are declared in Java. static final String ERRORMSG = "The first and rest methods aren't defined on empty lists."; public AList filter (ISelector is) { return this; } public AList sort (Comparator ic) { return this; } AList insert (Object x, Comparator ic) { return new ConsList (x, this); } } class ConsList extends AList { Object fst; // the first element of this list AList rst; // the rest of this list public ConsList (Object fst, AList rst) { this.fst = fst; this.rst = rst; } public boolean isEmpty () { return false; } public Object first () { return this.fst; } public AList rest () { return this.rst; } public AList filter (ISelector is) { if (is.select (this.fst)) return new ConsList (this.fst, this.rst.filter (is)); else return this.rst.filter(is); } public AList sort (Comparator ic) { return this.rst.sort (ic).insert (this.fst, ic); } AList insert (Object x, Comparator ic) { if (ic.compare (x, this.fst) <= 0) return new ConsList (x, this); else return new ConsList (this.fst, this.rst.insert (x, ic)); } } class ListRanger implements IRange { AList contents; // the list of elements that remain to be generated ListRanger (AList contents) { this.contents = contents; } public boolean hasMore () { return ! this.contents.isEmpty(); } public Object current () { return this.contents.first(); } public void next () { this.contents = this.contents.rest(); } } //////////////////////////////////////////////////////////////// // // tests for AList and ListRanger // //////////////////////////////////////////////////////////////// class TestLists implements Testable { String s1 = "one"; String s2 = "two"; String s3 = "three"; String s4 = "four"; String s5 = "five"; TestLists () { } void go () { Tester tester = new Tester (); tester.runTests (this); } public void tests (Tester t) { AList mt1 = new MTList(); AList mt2 = new MTList(); AList l1 = new ConsList (s1, mt1); AList l2 = new ConsList (s2, mt2); AList lst5 = new ConsList (s5, mt2); AList lst4 = new ConsList (s4, lst5); AList lst3 = new ConsList (s3, lst4); AList lst2 = new ConsList (s2, lst3); AList lst1 = new ConsList (s1, lst2); AList list5 = new ConsList (s5, mt1); AList list4 = new ConsList (s4, list5); AList list3 = new ConsList (s4, list4); // note difference! AList list2 = new ConsList (s2, list3); AList list1 = new ConsList (s1, list2); // s1 through s5 in alphabetical order AList alpha = new ConsList (s2, mt1); alpha = new ConsList (s3, alpha); alpha = new ConsList (s1, alpha); alpha = new ConsList (s4, alpha); alpha = new ConsList (s5, alpha); t.test (mt1.isEmpty(), true); t.test (mt2.isEmpty(), true); t.test (l1.isEmpty(), false); t.test (lst1.isEmpty(), false); t.test (l1.first(), s1); t.test (lst2.first(), s2); t.test (l1.rest().isEmpty(), true); t.test (lst4.rest().isEmpty(), false); t.test (lst4.rest().first(), s5); IRange ir0 = mt2.iterator(); t.test (ir0.hasMore(), false); IRange ir1 = lst1.iterator(); t.test (ir1.hasMore(), true); t.test (ir1.current(), s1); t.test (ir1.current(), s1); ir1.next(); t.test (ir1.hasMore(), true); t.test (ir1.current(), s2); ir1.next(); t.test (ir1.hasMore(), true); t.test (ir1.current(), s3); ir1.next(); t.test (ir1.hasMore(), true); t.test (ir1.current(), s4); ir1.next(); t.test (ir1.hasMore(), true); t.test (ir1.current(), s5); t.test (ir1.current(), s5); ir1.next(); t.test (ir1.hasMore(), false); t.test (mt1.length(), 0); t.test (lst5.length(), 1); t.test (lst4.length(), 2); t.test (lst1.length(), 5); t.test (mt1.equals (mt2), true); t.test (l1.equals (l1), true); t.test (l1.equals (l2), false); t.test (lst4.equals (list4), true); t.test (lst3.equals (list3), false); t.test (lst1.equals (list1), false); t.test (list1.equals (list1), true); t.test (list1.rest().equals (list2), true); t.test (list3.rest().equals (lst4), true); t.test (mt1.reverse().equals (mt2), true); t.test (l1.reverse().first(), s1); t.test (l1.reverse().length(), 1); t.test (lst1.reverse().first(), s5); t.test (lst1.reverse().reverse().equals (lst1), true); t.test (mt1.contains (s1), false); t.test (l1.contains (s1), true); t.test (l2.contains (s1), false); t.test (lst1.contains (s1), true); t.test (lst1.contains (s5), true); t.test (list1.contains (s3), false); ISelector is1 = new ISelector () { public boolean select (Object x) { return true; } }; ISelector is2 = new ISelector () { public boolean select (Object x) { return false; } }; ISelector is3 = new ISelector () { public boolean select (Object x) { return ((String) x).charAt (0) == 'f'; } }; t.test (mt1.filter (is1).isEmpty(), true); t.test (lst1.filter (is1).equals (lst1), true); t.test (lst1.filter (is2).equals (mt1), true); t.test (lst1.filter (is3).length(), 2); t.test (lst1.filter (is3).first(), s4); t.test (lst1.filter (is3).rest().first(), s5); Comparator ic1 = new Comparator () { public int compare (Object x, Object y) { return ((String) x).compareTo (y); } }; Comparator ic2 = new Comparator () { public int compare (Object x, Object y) { return ((String) y).compareTo (x); } }; t.test (mt1.sort (ic1).isEmpty(), true); t.test (lst1.sort (ic1).length(), 5); t.test (lst1.sort (ic1).equals (alpha), true); t.test (lst1.sort (ic2).equals (alpha.reverse()), true); } } //////////////////////////////////////////////////////////////// // // Tester // //////////////////////////////////////////////////////////////// interface Testable { void tests (Tester t); } class Tester { int n; int errors; Tester () { this.n = 1; this.errors = 0; } void runTests (Testable f) { n = 1; try { f.tests (this); } catch (Throwable e) { System.out.println ("Threw exception during test " + n); System.out.println (e); } finally { done(); } } void test (boolean b1, boolean b2) { test (b1 == b2); } void test (int i, int j) { test (i == j); } void test (Object s1, String s2) { test (s2.equals (s1)); } void test (boolean b) { if (! b) { System.out.println ("***** Failed test " + n + " *****"); errors = errors + 1; } n = n + 1; } void done () { if (errors > 0) System.out.print ("Failed " + errors + " out of "); else System.out.print ("Passed all "); System.out.println (n + " tests."); } } //////////////////////////////////////////////////////////////// // // SortAlgorithm // //////////////////////////////////////////////////////////////// interface SortAlgorithm { // Stores the objects generated by the given IRange into // some local data structure, but does not sort them. // // This method must be called before any of the others. // This method may be called more than once, in which // case the objects that were generated for a previous // call are discarded. void initializeDataSet(IRange ir); // Sorts the objects into some internal data structure without // changing the local data structure that holds the unsorted // objects. // // (Thus a destructive sort algorithm must first perform a // shallow copy of the objects to be sorted into the data // structure that will be destroyed by the sort() method.) // // Repeated calls to this method should repeat all the steps // of the first call, because this method will be timed to // measure the performance of different sort algorithms. // // This method shall not be called until after this object's // initializeDataSet(IRange) method has been called. This // method shall be called before this object's // isSorted(Comparator) method is called. void sort(Comparator cmp); // Returns true if the sorted objects are in order according // to the given Comparator, which is not necessarily the one // that was used to perform the sort. // // This method shall not be called until after this object's // sort(Comparator) has been called. boolean isSorted(Comparator cmp); // Returns an IRange that generates the sorted objects, in // sorted order. // // This method shall not be called until after this object's // sort(Comparator) has been called. // If this method is called more than once, it shall return // a freshly created IRange for each call. IRange result(); } //////////////////////////////////////////////////////////////// // // generators of test data // //////////////////////////////////////////////////////////////// class CityData { // It was easier to write this adapter method than it would // have been to rearrange the order of the arguments. static City mkCity (double lat, double lng, String name, String state) { return new City (name, state, lat, lng); } // This data was collected from // http://www.realestate3d.com/gps/uslatlongdegmin.htm // It appears to be for airports, not cities, but it will do. static final City cANB = mkCity (33.58, 85.85, "Anniston", "AL"); static final City cAUO = mkCity (32.67, 85.44, "Auburn", "AL"); static final City cBHM = mkCity (33.57, 86.75, "Birmingham", "AL"); static final City cCKL = mkCity (32.90, 87.25, "Centreville", "AL"); static final City cDHN = mkCity (31.32, 85.45, "Dothan", "AL"); static final City cOZR = mkCity (31.28, 85.72, "FortRucker", "AL"); static final City cGAD = mkCity (33.97, 86.09, "Gadsden", "AL"); static final City cHSV = mkCity (34.65, 86.77, "Huntsville", "AL"); static final City cMXF = mkCity (32.38, 86.37, "MaxwellAFB", "AL"); static final City cMOB = mkCity (30.68, 88.25, "Mobile", "AL"); static final City cBFM = mkCity (30.63, 88.07, "MobileAeros", "AL"); static final City cMGM = mkCity (32.30, 86.40, "Montgomery", "AL"); static final City cMSL = mkCity (34.75, 87.62, "MuscleShoal", "AL"); static final City cSEM = mkCity (32.34, 86.99, "Selma", "AL"); static final City cTOI = mkCity (31.87, 86.02, "Troy", "AL"); static final City cTCL = mkCity (33.23, 87.62, "Tuscaloosa", "AL"); static final City cADK = mkCity (51.88, 176.65, "Adak", "AK"); static final City cZ60 = mkCity (67.10, 157.85, "Ambler", "AK"); static final City cANC = mkCity (61.17, 150.02, "Anchorage", "AK"); static final City cMRI = mkCity (61.22, 149.85, "Anchorage", "AK"); static final City cAGN = mkCity (57.83, 134.97, "Angoon", "AK"); static final City cANI = mkCity (61.58, 159.53, "Aniak", "AK"); static final City cANN = mkCity (55.03, 131.57, "AnnetteIsl", "AK"); static final City cATU = mkCity (53.50, 173.30, "Attu", "AK"); static final City cBRW = mkCity (71.30, 156.78, "Barrow", "AK"); static final City cBTI = mkCity (70.13, 143.63, "BarterIslan", "AK"); static final City cBET = mkCity (60.78, 161.80, "BethelArpt", "AK"); static final City cBTT = mkCity (66.92, 151.52, "Bettles", "AK"); static final City cBIG = mkCity (64.00, 145.73, "BigDelta", "AK"); static final City c5BI = mkCity (60.82, 152.30, "BigRiverLk", "AK"); static final City cZ68 = mkCity (63.38, 148.95, "Cantwell", "AK"); static final City cCDE = mkCity (56.00, 134.22, "CapeDecis", "AK"); static final City c5HN = mkCity (60.38, 147.08, "CapeHinchi", "AK"); static final City cCSP = mkCity (58.33, 137.05, "CapeSpence", "AK"); static final City c5CE = mkCity (60.33, 145.00, "CapeStEli", "AK"); static final City cWCR = mkCity (67.50, 148.48, "ChandalarLk", "AK"); static final City cZ00 = mkCity (62.88, 149.83, "Chulitna", "AK"); static final City cCRC = mkCity (65.83, 144.07, "CircleCity", "AK"); static final City cCDB = mkCity (55.20, 162.72, "ColdBay", "AK"); static final City cCDV = mkCity (60.50, 145.50, "Cordova", "AK"); static final City cCGA = mkCity (55.80, 133.25, "Craig", "AK"); static final City cSCC = mkCity (70.20, 148.47, "Deadhorse", "AK"); static final City cDLG = mkCity (59.05, 158.52, "Dillingham", "AK"); static final City c5SZ = mkCity (62.73, 143.92, "DuffysTavern", "AK"); static final City cDUT = mkCity (53.88, 166.53, "DutchHarbor", "AK"); static final City cEAA = mkCity (64.77, 141.15, "EagleArpt", "AK"); static final City cERO = mkCity (59.62, 135.37, "EldredRock", "AK"); static final City cELV = mkCity (58.20, 136.35, "ElfinCove", "AK"); static final City cFAI = mkCity (64.82, 147.87, "Fairbanks", "AK"); static final City cFWL = mkCity (62.85, 154.47, "Farewell", "AK"); static final City cFIV = mkCity (57.45, 134.03, "FiveFinger", "AK"); static final City cFVM = mkCity (65.93, 149.83, "FiveMile", "AK"); static final City cFYU = mkCity (66.57, 145.27, "FortYukon", "AK"); static final City cFNR = mkCity (58.25, 134.90, "FunterBay", "AK"); static final City cGBH = mkCity (68.48, 149.48, "GalbraithLk", "AK"); static final City cGAM = mkCity (63.77, 171.73, "Gambell", "AK"); static final City cGKN = mkCity (62.15, 145.45, "GulkanaArpt", "AK"); static final City cGST = mkCity (58.42, 135.73, "Gustavus", "AK"); static final City cZ26 = mkCity (59.23, 135.43, "HainesHrbor", "AK"); static final City c5HR = mkCity (61.98, 152.08, "HayesRiver", "AK"); static final City c5EA = mkCity (63.83, 149.00, "HealyRiver", "AK"); static final City cHOM = mkCity (59.63, 151.50, "Homer", "AK"); static final City cZ49 = mkCity (58.10, 135.45, "HoonahSeapl", "AK"); static final City cILI = mkCity (59.75, 154.92, "IliamnaArpt", "AK"); static final City cJNU = mkCity (58.37, 134.58, "Juneau", "AK"); static final City cKAE = mkCity (56.97, 133.95, "KakeSeaplan", "AK"); static final City cENA = mkCity (60.57, 151.25, "Kenai", "AK"); static final City cKTN = mkCity (55.35, 131.70, "Ketchikan", "AK"); static final City cAKN = mkCity (58.68, 156.65, "KingSalmon", "AK"); static final City cADQ = mkCity (57.75, 152.50, "Kodiak", "AK"); static final City cOTZ = mkCity (66.87, 162.63, "Kotzebue", "AK"); static final City c5WO = mkCity (61.63, 149.03, "LazyMtn", "AK"); static final City cLNI = mkCity (70.92, 153.23, "Lonely(dew)", "AK"); static final City cMLY = mkCity (65.00, 150.65, "ManleyHtSp", "AK"); static final City cMXY = mkCity (61.43, 142.92, "Mccarthy", "AK"); static final City cMCG = mkCity (62.97, 155.62, "Mcgrath", "AK"); static final City cMYU = mkCity (60.37, 166.27, "Mekoryuk", "AK"); static final City cMDO = mkCity (59.43, 146.33, "MiddletonIs", "AK"); static final City cMHM = mkCity (63.90, 152.27, "Minchumina", "AK"); static final City cENN = mkCity (64.55, 149.08, "Nenana", "AK"); static final City cKSM = mkCity (62.07, 163.30, "NewAndreafs", "AK"); static final City cIKO = mkCity (53.58, 169.42, "Nikolski", "AK"); static final City cOME = mkCity (64.50, 165.43, "Nome", "AK"); static final City cORT = mkCity (62.97, 141.93, "Northway", "AK"); static final City cOLI = mkCity (70.50, 149.88, "OliktokDew", "AK"); static final City cPAQ = mkCity (61.60, 149.08, "Palmer", "AK"); static final City c5PX = mkCity (63.03, 145.50, "Paxson", "AK"); static final City cPSG = mkCity (56.82, 132.97, "Petersburg", "AK"); static final City cPIZ = mkCity (69.82, 162.92, "PointLay", "AK"); static final City cZ76 = mkCity (56.25, 134.65, "PortAlexndr", "AK"); static final City cKPC = mkCity (65.25, 166.87, "PortClarnce", "AK"); static final City cPTH = mkCity (56.95, 158.62, "PortHeiden", "AK"); static final City cPPC = mkCity (66.82, 150.65, "ProspectCrk", "AK"); static final City cPUO = mkCity (70.25, 148.33, "PrudhoeBay", "AK"); static final City cZ30 = mkCity (60.20, 154.30, "PtAlsworth", "AK"); static final City cPTI = mkCity (62.17, 153.25, "Puntilla", "AK"); static final City cSDP = mkCity (55.33, 160.50, "SandPoint", "AK"); static final City c5WD = mkCity (60.18, 149.75, "Seward", "AK"); static final City cSYA = mkCity (53.20, 174.13, "Shemy", "AK"); static final City cSHH = mkCity (66.27, 166.03, "Shishmaref", "AK"); static final City cSIT = mkCity (57.07, 135.35, "Sitka", "AK"); static final City cSKJ = mkCity (56.88, 154.20, "Sitkinak", "AK"); static final City cSGY = mkCity (59.75, 135.53, "Skagway", "AK"); static final City cSKW = mkCity (61.97, 151.20, "Skwentna", "AK"); static final City c5SO = mkCity (62.03, 146.67, "SnowshoeLk", "AK"); static final City cSNP = mkCity (57.15, 170.22, "StPaulIs", "AK"); static final City c5GN = mkCity (61.90, 147.30, "TahnetaPass", "AK"); static final City cTKA = mkCity (62.30, 150.10, "Talkeetna", "AK"); static final City cTAL = mkCity (65.17, 152.10, "Tanana", "AK"); static final City cUMT = mkCity (69.37, 152.13, "Umiat", "AK"); static final City cUNK = mkCity (63.88, 160.80, "Unalakleet", "AK"); static final City cVWS = mkCity (61.13, 146.35, "Valdez", "AK"); static final City cVDZ = mkCity (61.13, 146.25, "Valdez2", "AK"); static final City cAIN = mkCity (70.62, 159.85, "Wainwright", "AK"); static final City cWAA = mkCity (66.03, 168.08, "Wales", "AK"); static final City c5WT = mkCity (60.78, 148.72, "Whittier", "AK"); static final City cZ22 = mkCity (61.75, 150.05, "WillowArpt", "AK"); static final City cWRG = mkCity (56.48, 132.37, "Wrangell", "AK"); static final City cYAK = mkCity (59.52, 139.67, "Yakutat", "AK"); static final City cDMA = mkCity (32.17, 110.88, "Davis-MAFB", "AZ"); static final City cDVT = mkCity (33.68, 112.08, "DeerValley", "AZ"); static final City cDUG = mkCity (31.45, 109.60, "Douglas", "AZ"); static final City cFFZ = mkCity (33.47, 111.73, "FalconFld", "AZ"); static final City cFLG = mkCity (35.13, 111.67, "Flagstaff", "AZ"); static final City cFHU = mkCity (31.60, 110.35, "FortHuachuc", "AZ"); static final City cGBN = mkCity (33.55, 113.17, "GilaBend", "AZ"); static final City cGYR = mkCity (33.42, 112.38, "Goodyear", "AZ"); static final City cGCN = mkCity (35.95, 112.15, "GrandCanyon", "AZ"); static final City cIGM = mkCity (35.27, 113.95, "Kingman", "AZ"); static final City cLUF = mkCity (33.53, 112.38, "Luke", "AZ"); static final City cPGA = mkCity (36.93, 111.45, "Page", "AZ"); static final City c0E4 = mkCity (34.23, 111.33, "Payson", "AZ"); static final City cPHX = mkCity (33.43, 112.02, "Phoenix", "AZ"); static final City cPRC = mkCity (34.65, 112.43, "Prescott", "AZ"); static final City cE74 = mkCity (32.82, 109.68, "SaffordAwrs", "AZ"); static final City cSDL = mkCity (33.62, 111.92, "Scottsdale", "AZ"); static final City cE03 = mkCity (34.27, 110.00, "ShowLow", "AZ"); static final City cSOW = mkCity (34.27, 110.00, "ShowLow", "AZ"); static final City cTUS = mkCity (32.12, 110.93, "Tucson", "AZ"); static final City cCHD = mkCity (33.30, 111.67, "WilliamsAFB", "AZ"); static final City cINW = mkCity (35.02, 110.73, "Winslow", "AZ"); static final City cYUM = mkCity (33.10, 115.00, "Yuma", "AZ"); static final City cNYL = mkCity (32.65, 114.62, "YumaMcas", "AZ"); static final City c1Y7 = mkCity (32.85, 114.40, "YumaPrvGd", "AZ"); static final City cBYH = mkCity (35.97, 89.95, "Blytheville", "AR"); static final City cCDH = mkCity (33.52, 92.40, "Camden", "AR"); static final City cELD = mkCity (33.22, 92.80, "ElDorado", "AR"); static final City cFYV = mkCity (36.00, 94.17, "Fayetteville", "AR"); static final City cFSM = mkCity (35.33, 94.37, "FtSmith", "AR"); static final City cHRO = mkCity (36.27, 93.15, "Harrison", "AR"); static final City cHOT = mkCity (34.48, 93.10, "HotSprings", "AR"); static final City cJBR = mkCity (35.83, 90.65, "Jonesboro", "AR"); static final City cLIT = mkCity (35.22, 92.38, "LittleRock", "AR"); static final City cLRF = mkCity (34.92, 92.15, "LittleRock", "AR"); static final City cLZK = mkCity (34.83, 92.25, "LittleRock", "AR"); static final City cPBF = mkCity (34.17, 91.93, "PineBluff", "AR"); static final City cASG = mkCity (36.18, 94.13, "Springdale", "AR"); static final City cTXK = mkCity (33.45, 94.00, "Texarkana", "AR"); static final City cARG = mkCity (36.13, 90.93, "WalnutRidge", "AR"); static final City cNGZ = mkCity (37.78, 122.32, "AlamedaNAS", "CA"); static final City cS11 = mkCity (41.48, 120.53, "Alturas", "CA"); static final City cACV = mkCity (40.98, 124.10, "Arcata", "CA"); static final City cBFL = mkCity (35.43, 119.05, "Bakersfield", "CA"); static final City cBAB = mkCity (39.13, 121.45, "BealeAFB", "CA"); static final City cBUO = mkCity (33.93, 116.95, "Beaumont", "CA"); static final City cBYS = mkCity (35.28, 116.62, "BicycleLk", "CA"); static final City cL35 = mkCity (34.27, 116.68, "BigBearApt", "CA"); static final City cBIH = mkCity (37.60, 118.60, "Bishop", "CA"); static final City cBLU = mkCity (39.28, 120.70, "BlueCanyon", "CA"); static final City cBLH = mkCity (33.62, 114.72, "Blythe", "CA"); static final City cBUR = mkCity (34.20, 118.37, "Burbank", "CA"); static final City cNFG = mkCity (33.30, 117.35, "CampPendleton", "CA"); static final City cCZZ = mkCity (32.62, 116.47, "Campo", "CA"); static final City cCRQ = mkCity (33.13, 117.28, "Carlsbad", "CA"); static final City cMER = mkCity (37.38, 120.57, "CastleAFB", "CA"); static final City cCIC = mkCity (39.78, 121.85, "Chico", "CA"); static final City cNID = mkCity (35.68, 117.68, "ChinaLake", "CA"); static final City cCNO = mkCity (33.97, 117.63, "Chino", "CA"); static final City cCCR = mkCity (37.98, 122.05, "Concord", "CA"); static final City cCEC = mkCity (41.78, 124.23, "CrescentCity", "CA"); static final City cDAG = mkCity (34.87, 116.78, "Daggett", "CA"); static final City cEDW = mkCity (34.90, 117.88, "EdwardsAFB", "CA"); static final City cNJK = mkCity (32.82, 115.68, "ElCentro", "CA"); static final City cEMT = mkCity (34.08, 118.03, "ElMonte", "CA"); static final City cNZJ = mkCity (33.67, 117.73, "ElToro", "CA"); static final City cEKA = mkCity (41.33, 124.28, "Eureka", "CA"); static final City cHGT = mkCity (36.00, 121.32, "FortHunter", "CA"); static final City cOAR = mkCity (36.68, 121.77, "FortOrd", "CA"); static final City cFAT = mkCity (36.77, 119.72, "Fresno", "CA"); static final City cFUL = mkCity (33.87, 117.97, "Fullerton", "CA"); static final City cVCV = mkCity (34.58, 117.38, "GeorgeAFB", "CA"); static final City cHHR = mkCity (33.92, 118.33, "Hawthorne", "CA"); static final City cHWD = mkCity (37.65, 122.12, "Hayward", "CA"); static final City cIPL = mkCity (32.83, 115.57, "Imperial", "CA"); static final City cNRS = mkCity (32.57, 117.12, "ImperialBeach", "CA"); static final City cPOC = mkCity (34.10, 117.78, "LaVerne", "CA"); static final City cTVL = mkCity (38.90, 120.00, "LakeTahoe", "CA"); static final City cWJF = mkCity (34.73, 118.22, "Lancaster", "CA"); static final City cNLC = mkCity (36.33, 119.95, "LemooreNAS", "CA"); static final City cLVK = mkCity (37.70, 121.82, "Livermore", "CA"); static final City cLGB = mkCity (33.82, 118.15, "LongBeach", "CA"); static final City cSLI = mkCity (33.78, 118.05, "LosAlamitos", "CA"); static final City cLAX = mkCity (33.93, 118.40, "LosAngeles", "CA"); static final City cMMH = mkCity (37.63, 118.92, "MammothLakes", "CA"); static final City cRIV = mkCity (33.88, 117.27, "MarchAFB", "CA"); static final City cMYV = mkCity (39.10, 121.57, "Marysville", "CA"); static final City cMHR = mkCity (38.57, 121.30, "MatherAFB", "CA"); static final City cMCC = mkCity (38.67, 121.40, "Mcclellan", "CA"); static final City cMCE = mkCity (37.28, 120.52, "Merced", "CA"); static final City cNKX = mkCity (32.87, 117.15, "MiramarNAS", "CA"); static final City cMOD = mkCity (37.63, 120.95, "Modesto", "CA"); static final City cNUQ = mkCity (37.42, 122.05, "MoffetNAS", "CA"); static final City cMHV = mkCity (35.05, 118.15, "Mojave", "CA"); static final City c1O5 = mkCity (41.73, 122.53, "Montague", "CA"); static final City cMRY = mkCity (36.58, 121.85, "Monterey", "CA"); static final City cMHS = mkCity (41.32, 122.32, "MountShasta", "CA"); static final City cMWS = mkCity (34.23, 118.07, "MountWilson", "CA"); static final City cAPC = mkCity (38.22, 122.28, "Napa", "CA"); static final City cEED = mkCity (34.77, 114.62, "Needles", "CA"); static final City cNZY = mkCity (32.70, 117.20, "NorthIsland", "CA"); static final City cSBD = mkCity (34.10, 117.23, "NortonAFB", "CA"); static final City cOAK = mkCity (37.73, 122.22, "Oakland", "CA"); static final City cONT = mkCity (34.05, 117.62, "OntarioIntl", "CA"); static final City cOXR = mkCity (34.20, 119.20, "Oxnard", "CA"); static final City cPSP = mkCity (33.83, 116.50, "PalmSprings", "CA"); static final City cPMD = mkCity (35.05, 118.13, "Palmdale", "CA"); static final City cPAO = mkCity (37.47, 122.12, "PaloAlto", "CA"); static final City cPRB = mkCity (35.67, 120.63, "PasoRobles", "CA"); static final City c53Q = mkCity (37.83, 122.83, "PillaroPt", "CA"); static final City cNTD = mkCity (34.12, 119.12, "PointMugu", "CA"); static final City cPAA = mkCity (39.58, 124.22, "PtArena", "CA"); static final City cPGU = mkCity (34.95, 121.12, "PtArguello", "CA"); static final City c87Q = mkCity (35.67, 121.28, "PtPiedras", "CA"); static final City cPPD = mkCity (36.12, 121.47, "PtPiedras", "CA"); static final City cRBL = mkCity (40.15, 122.25, "RedBluff", "CA"); static final City cRDD = mkCity (40.50, 122.30, "Redding", "CA"); static final City cRAL = mkCity (33.95, 117.45, "Riverside", "CA"); static final City cSAC = mkCity (38.52, 121.50, "Sacramento", "CA"); static final City cSMF = mkCity (38.70, 121.60, "Sacramento", "CA"); static final City cSNS = mkCity (36.67, 121.60, "Salinas", "CA"); static final City cSQL = mkCity (37.52, 122.25, "SanCarlos", "CA"); static final City cL10 = mkCity (33.42, 117.62, "SanClemente", "CA"); static final City cNUC = mkCity (33.02, 118.58, "SanClemente", "CA"); static final City cMYF = mkCity (32.82, 117.13, "SanDiego", "CA"); static final City cSAN = mkCity (32.73, 117.17, "SanDiego", "CA"); static final City cSDM = mkCity (32.57, 116.98, "SanDiego", "CA"); static final City cSEE = mkCity (32.82, 116.97, "SanDiego", "CA"); static final City c51Q = mkCity (37.75, 122.68, "SanFrancisco", "CA"); static final City cSFO = mkCity (37.62, 122.38, "SanFrancisco", "CA"); static final City cSJC = mkCity (37.37, 121.92, "SanJose", "CA"); static final City cRHV = mkCity (37.33, 121.82, "SanJose/Rei", "CA"); static final City cSBP = mkCity (35.23, 120.65, "SanLuisObispo", "CA"); static final City cL98 = mkCity (33.38, 117.58, "SanMateo", "CA"); static final City cN5G = mkCity (34.03, 120.40, "SanMiguel", "CA"); static final City cNSI = mkCity (33.25, 119.45, "SanNicIsl", "CA"); static final City cSDB = mkCity (34.75, 118.73, "Sandburg", "CA"); static final City cSNA = mkCity (33.67, 117.88, "SantaAna", "CA"); static final City cSBA = mkCity (34.43, 119.83, "SantaBarb", "CA"); static final City cSMX = mkCity (34.90, 120.45, "SantaMaria", "CA"); static final City cSMO = mkCity (34.02, 118.45, "SantaMonica", "CA"); static final City cSTS = mkCity (38.52, 122.82, "SantaRosa", "CA"); static final City cO87 = mkCity (40.03, 124.07, "ShelterCove", "CA"); static final City cSIY = mkCity (41.78, 122.47, "Siskiyou", "CA"); static final City cSCK = mkCity (37.90, 121.25, "Stockton", "CA"); static final City c4SU = mkCity (35.33, 117.10, "SuperiorVal", "CA"); static final City cSVE = mkCity (40.63, 120.95, "Susanville", "CA"); static final City cTRM = mkCity (33.63, 116.17, "Thermal", "CA"); static final City cTOA = mkCity (33.80, 118.33, "Torrance", "CA"); static final City cSUU = mkCity (38.27, 121.93, "TravisAFB", "CA"); static final City cTRK = mkCity (39.32, 120.13, "Truckee-Tahoe", "CA"); static final City cNTK = mkCity (33.70, 117.83, "TustinMcas", "CA"); static final City cNXP = mkCity (34.28, 116.15, "Twenty9Palm", "CA"); static final City cUKI = mkCity (39.13, 123.20, "Ukiah", "CA"); static final City cVNY = mkCity (34.22, 118.48, "VanNuys", "CA"); static final City cVBG = mkCity (35.20, 120.95, "Vandenberg", "CA"); static final City cVIS = mkCity (36.32, 119.40, "Visalia", "CA"); static final City cAFF = mkCity (39.52, 105.35, "AirForceA", "CO"); static final City cAKO = mkCity (40.17, 103.22, "Akron", "CO"); static final City cALS = mkCity (37.45, 105.87, "Alamosa", "CO"); static final City cASE = mkCity (39.22, 106.87, "Aspen", "CO"); static final City cBJC = mkCity (39.90, 105.12, "Brmfield/Jef", "CO"); static final City cBKF = mkCity (39.72, 104.75, "Buckley", "CO"); static final City cCOS = mkCity (38.82, 104.72, "ColoradoSprings", "CO"); static final City cCEZ = mkCity (37.30, 108.63, "Cortez", "CO"); static final City cCAG = mkCity (40.50, 107.53, "Craig-Moffat", "CO"); static final City cDEN = mkCity (39.75, 104.87, "Denver", "CO"); static final City cDRO = mkCity (37.15, 107.75, "Durango", "CO"); static final City cEGE = mkCity (39.65, 106.92, "Eagle", "CO"); static final City cAPA = mkCity (39.57, 104.83, "Englewood", "CO"); static final City cFCS = mkCity (38.68, 104.77, "FortCarson", "CO"); static final City cFSR = mkCity (39.57, 105.50, "Fraser", "CO"); static final City cFNL = mkCity (40.45, 105.02, "FtCol/Lovel", "CO"); static final City cFCL = mkCity (40.58, 105.08, "FtCollins", "CO"); static final City cGJT = mkCity (39.12, 108.53, "GrandJct", "CO"); static final City cGXY = mkCity (40.43, 104.63, "Greeley-Wld", "CO"); static final City c2V9 = mkCity (38.55, 106.93, "Gunnison", "CO"); static final City cGUC = mkCity (38.55, 106.92, "Gunnison", "CO"); static final City cLHX = mkCity (38.05, 103.52, "LaJunta", "CO"); static final City c4LJ = mkCity (38.12, 102.60, "Lamar", "CO"); static final City cLXV = mkCity (39.25, 106.30, "Leadville", "CO"); static final City cLIC = mkCity (39.18, 103.70, "Limon", "CO"); static final City c6V8 = mkCity (38.50, 107.88, "Montrose", "CO"); static final City cMTJ = mkCity (38.50, 107.88, "Montrose", "CO"); static final City cPUB = mkCity (38.28, 104.52, "Pueblo", "CO"); static final City c1V1 = mkCity (39.53, 107.80, "Rifle", "CO"); static final City cS29 = mkCity (38.53, 106.05, "Salida", "CO"); static final City cSBS = mkCity (40.48, 106.82, "SteamboatSp", "CO"); static final City cTAD = mkCity (37.25, 104.33, "Trinidad", "CO"); static final City cC96 = mkCity (40.00, 105.87, "WinterPark", "CO"); static final City cBDR = mkCity (41.17, 73.13, "Bridgeport", "CT"); static final City cDXR = mkCity (41.37, 73.48, "Danbury", "CT"); static final City cGON = mkCity (41.33, 72.05, "Groton", "CT"); static final City cHFD = mkCity (41.73, 72.65, "Hartford", "CT"); static final City c30N = mkCity (41.22, 72.67, "NewHaven", "CT"); static final City cHVN = mkCity (41.27, 72.88, "NewHaven", "CT"); static final City cN11 = mkCity (41.27, 72.90, "NewHaven", "CT"); static final City c18N = mkCity (41.30, 72.08, "NewLondon", "CT"); static final City cBDL = mkCity (41.93, 72.68, "WindsorLoc", "CT"); static final City cDOV = mkCity (39.13, 75.47, "Dover", "DE"); static final City cILG = mkCity (39.67, 75.60, "Wilmington", "DE"); static final City cIAD = mkCity (38.95, 77.46, "Washington/Dulles", "DC"); static final City cDCA = mkCity (38.85, 77.04, "Washington/Natl", "DC"); static final City cAQQ = mkCity (29.73, 85.03, "Apalachicola", "FL"); static final City c90J = mkCity (29.12, 81.57, "AstorNAS", "FL"); static final City cAGR = mkCity (28.08, 81.55, "AvonParkG", "FL"); static final City cXMR = mkCity (28.47, 80.55, "CapeCanaveral", "FL"); static final City cNZC = mkCity (30.22, 81.88, "Cecil", "FL"); static final City cCEW = mkCity (30.78, 86.52, "Crestview", "FL"); static final City cCTY = mkCity (29.62, 83.10, "CrossCity", "FL"); static final City cDAB = mkCity (29.18, 81.05, "DaytonaBeach", "FL"); static final City cEGI = mkCity (30.65, 86.52, "DukeFld", "FL"); static final City cVPS = mkCity (30.48, 86.53, "EglinAFB", "FL"); static final City cX91 = mkCity (27.60, 82.77, "EgmontKey", "FL"); static final City cFXE = mkCity (26.13, 80.13, "FortLauderd", "FL"); static final City cFMY = mkCity (26.58, 81.87, "FortMyers", "FL"); static final City cFLL = mkCity (26.07, 80.15, "FtLauderdale", "FL"); static final City cRSW = mkCity (26.65, 81.87, "FtMyers", "FL"); static final City cGNV = mkCity (29.68, 82.27, "Gainesville", "FL"); static final City cHST = mkCity (25.48, 80.38, "Homestead", "FL"); static final City cHRT = mkCity (30.43, 86.68, "HurlburtFld", "FL"); static final City cCRG = mkCity (30.33, 81.52, "Jacksonville", "FL"); static final City cJAX = mkCity (30.50, 81.70, "Jacksonville", "FL"); static final City cNIP = mkCity (30.23, 81.68, "Jacksonville", "FL"); static final City cEYW = mkCity (24.55, 81.75, "KeyWest", "FL"); static final City cNQX = mkCity (24.57, 81.68, "KeyWestNAS", "FL"); static final City cLAL = mkCity (28.03, 81.95, "Lakeland", "FL"); static final City cMCF = mkCity (27.85, 82.52, "MacdillAFB", "FL"); static final City cMAI = mkCity (30.84, 85.18, "Marianna", "FL"); static final City cNRB = mkCity (30.40, 81.42, "MayportNAS", "FL"); static final City cMLB = mkCity (28.10, 80.63, "Melbourne", "FL"); static final City cMIA = mkCity (25.82, 80.28, "MiamiIntl", "FL"); static final City cOPF = mkCity (25.92, 80.28, "Miami/Opa", "FL"); static final City cTMB = mkCity (25.65, 80.43, "Miami/Tamiami", "FL"); static final City cAPF = mkCity (26.13, 81.80, "Naples", "FL"); static final City cX68 = mkCity (28.62, 80.68, "NasaShuttle", "FL"); static final City cMCO = mkCity (28.43, 81.32, "Orlando", "FL"); static final City cORL = mkCity (28.55, 81.33, "Orlando", "FL"); static final City cPFN = mkCity (30.20, 85.68, "PanamaCity", "FL"); static final City cCOF = mkCity (28.23, 80.60, "PatrickAFB", "FL"); static final City cNPA = mkCity (30.35, 87.32, "Pensacola", "FL"); static final City cPNS = mkCity (30.47, 87.20, "Pensacola", "FL"); static final City cTBW = mkCity (27.97, 82.60, "Ruskin", "FL"); static final City cPIE = mkCity (27.92, 82.68, "SaintPeters", "FL"); static final City cSFB = mkCity (28.78, 81.25, "Sanford", "FL"); static final City cSRQ = mkCity (27.40, 82.55, "Sarasota", "FL"); static final City cTLH = mkCity (30.38, 84.37, "Tallahassee", "FL"); static final City cTPA = mkCity (27.97, 82.53, "TampaIntl", "FL"); static final City cTIX = mkCity (28.52, 80.80, "Titusville", "FL"); static final City cPAM = mkCity (30.07, 85.58, "TyndallAFB", "FL"); static final City cVRB = mkCity (27.65, 80.42, "VeroBeach", "FL"); static final City cPBI = mkCity (26.68, 80.12, "WPalmBeach", "FL"); static final City cNSE = mkCity (30.72, 87.02, "WhitingFld", "FL"); static final City cABY = mkCity (31.53, 84.18, "Albany", "GA"); static final City cAMG = mkCity (31.53, 82.52, "Alma", "GA"); static final City cAHN = mkCity (33.95, 83.32, "Athens", "GA"); static final City cATL = mkCity (33.65, 84.42, "Atlanta", "GA"); static final City cPDK = mkCity (33.88, 84.30, "Atlanta/Dklb", "GA"); static final City cFTY = mkCity (33.78, 84.52, "Atlanta/Fltn", "GA"); static final City cAGS = mkCity (33.37, 81.97, "Augusta/Bush", "GA"); static final City cSSI = mkCity (31.15, 81.38, "Brunswick", "GA"); static final City cCSG = mkCity (32.52, 84.93, "Columbus", "GA"); static final City cMGE = mkCity (33.92, 84.52, "DobbinsAFB", "GA"); static final City cMGF = mkCity (34.53, 84.87, "DobbinsAFB", "GA"); static final City cLSF = mkCity (32.33, 85.00, "FortBenning", "GA"); static final City cLHW = mkCity (31.88, 81.57, "FtStewart", "GA"); static final City cSVN = mkCity (32.02, 81.15, "HunterAaf", "GA"); static final City cLGC = mkCity (33.01, 85.07, "LaGrange", "GA"); static final City cMCN = mkCity (32.70, 83.65, "Macon/Lewis", "GA"); static final City cVAD = mkCity (30.97, 83.20, "MoodyAFB", "GA"); static final City cWRB = mkCity (32.63, 83.60, "RobinsAFB", "GA"); static final City cRMG = mkCity (34.35, 85.17, "Rome/Russell", "GA"); static final City cSAV = mkCity (32.13, 81.20, "SavannahMun", "GA"); static final City cVLD = mkCity (30.78, 83.28, "Valdosta", "GA"); static final City cAYS = mkCity (31.25, 82.40, "Waycross", "GA"); static final City cHNA = mkCity (21.53, 158.12, "BarbersPt", "HI"); static final City cBKH = mkCity (22.05, 160.30, "BarkingSan", "HI"); static final City c1Z6 = mkCity (24.45, 166.47, "FrFrigate", "HI"); static final City cITO = mkCity (19.72, 155.07, "Hilo", "HI"); static final City cHNL = mkCity (21.35, 157.93, "HonoluluInt", "HI"); static final City cOGG = mkCity (20.90, 156.43, "KahuluiMaui", "HI"); static final City cHNG = mkCity (21.75, 158.28, "KaneoheMca", "HI"); static final City cKOA = mkCity (19.75, 156.05, "Ke-Ahole/Kon", "HI"); static final City c0Z5 = mkCity (22.38, 159.67, "KilaueaPt", "HI"); static final City cLNY = mkCity (20.80, 156.95, "Lanai-Lanai", "HI"); static final City cLIH = mkCity (21.98, 159.35, "Lihue-Kauai", "HI"); static final City cJHM = mkCity (20.97, 156.83, "Maui", "HI"); static final City cMKK = mkCity (21.15, 157.10, "Molokai", "HI"); static final City c1Z2 = mkCity (20.42, 156.47, "UpoloPt", "HI"); static final City cMUE = mkCity (20.00, 156.12, "Waimea-Koha", "HI"); static final City cBOI = mkCity (43.57, 116.22, "Boise", "ID"); static final City cBYI = mkCity (42.53, 113.77, "Burley", "ID"); static final City cU15 = mkCity (44.52, 114.22, "Challis", "ID"); static final City cCOE = mkCity (47.77, 116.82, "CoeurD'Alene", "ID"); static final City cP69 = mkCity (45.82, 115.43, "ElkCity", "ID"); static final City cGNG = mkCity (43.00, 115.17, "Gooding", "ID"); static final City cS80 = mkCity (45.92, 116.13, "Grangeville", "ID"); static final City cIDA = mkCity (43.52, 112.07, "IdahoFalls", "ID"); static final City cLWS = mkCity (46.38, 117.02, "Lewiston", "ID"); static final City cMLD = mkCity (42.17, 112.32, "MaladCity", "ID"); static final City c77M = mkCity (42.30, 113.37, "Malta", "ID"); static final City cMYL = mkCity (44.88, 116.10, "Mccall", "ID"); static final City cMUO = mkCity (43.05, 115.87, "MountnHome", "ID"); static final City cS06 = mkCity (47.47, 115.80, "Mullan", "ID"); static final City cPIH = mkCity (42.92, 112.60, "Pocatello", "ID"); static final City c27U = mkCity (45.18, 113.90, "Salmon", "ID"); static final City cSMN = mkCity (45.17, 114.47, "Salmon", "ID"); static final City cU78 = mkCity (42.65, 111.58, "SodaSprings", "ID"); static final City cSUN = mkCity (43.50, 114.30, "SunValley", "ID"); static final City cTWF = mkCity (42.48, 114.48, "TwinFalls", "ID"); static final City cALN = mkCity (38.88, 90.05, "Alton", "IL"); static final City cARR = mkCity (41.77, 88.32, "Aurora", "IL"); static final City cCPS = mkCity (38.57, 90.15, "BistatePark", "IL"); static final City cBMI = mkCity (40.48, 88.93, "Bloomington", "IL"); static final City cBDF = mkCity (41.16, 89.60, "Bradford", "IL"); static final City cCTR = mkCity (37.07, 89.22, "Cairo", "IL"); static final City cMDH = mkCity (37.78, 89.25, "Carbondale", "IL"); static final City cENL = mkCity (38.51, 89.09, "Centralia", "IL"); static final City cCMI = mkCity (40.03, 88.28, "Champaign/Urbana", "IL"); static final City cCHI = mkCity (41.90, 87.65, "Chicago", "IL"); static final City cCGX = mkCity (41.87, 87.62, "Chicago/Meigs", "IL"); static final City cMDW = mkCity (41.78, 87.75, "Chicago/Midway", "IL"); static final City cORD = mkCity (41.98, 87.90, "Chicago/O'hare", "IL"); static final City cDNV = mkCity (40.20, 87.60, "Danville", "IL"); static final City cDKB = mkCity (41.93, 88.72, "DeKalb", "IL"); static final City cDEC = mkCity (39.83, 88.87, "Decatur", "IL"); static final City cDPA = mkCity (41.92, 88.25, "DuPage", "IL"); static final City cGBG = mkCity (40.93, 90.43, "Galesburg", "IL"); static final City cNBU = mkCity (42.08, 87.82, "GlenviewNAS", "IL"); static final City cIKK = mkCity (41.07, 87.85, "Kankakee", "IL"); static final City cMQB = mkCity (40.52, 90.66, "Macomb", "IL"); static final City cMWA = mkCity (37.75, 89.00, "Marion", "IL"); static final City cMMO = mkCity (41.37, 88.68, "Marseilles", "IL"); static final City cMTO = mkCity (39.48, 88.28, "Mattoon", "IL"); static final City cMLI = mkCity (41.45, 90.52, "Moline/Quad", "IL"); static final City cMVN = mkCity (38.32, 88.86, "MountVernon", "IL"); static final City cPIA = mkCity (40.67, 89.68, "Peoria", "IL"); static final City cUIN = mkCity (39.93, 91.20, "Quincy", "IL"); static final City cRFD = mkCity (42.20, 89.10, "Rockford", "IL"); static final City cSLO = mkCity (38.63, 88.96, "Salem", "IL"); static final City cBLV = mkCity (38.55, 89.85, "ScottAFB", "IL"); static final City cSPI = mkCity (39.85, 89.67, "Springfield", "IL"); static final City cSQI = mkCity (41.74, 89.67, "Sterling", "IL"); static final City cTAZ = mkCity (39.53, 89.33, "Taylorville", "IL"); static final City cVLA = mkCity (38.99, 89.17, "Vandalia", "IL"); static final City cBAK = mkCity (39.38, 86.50, "BakalarAf", "IN"); static final City cBMG = mkCity (39.13, 86.62, "Bloomington", "IN"); static final City cEKM = mkCity (41.72, 86.00, "Elkhart", "IN"); static final City cEVV = mkCity (38.05, 87.53, "Evansville", "IN"); static final City cFWA = mkCity (41.00, 85.20, "FortWayne", "IN"); static final City cGYY = mkCity (41.62, 87.42, "Gary", "IN"); static final City cGUS = mkCity (40.65, 86.15, "GrissomAFB", "IN"); static final City cIND = mkCity (39.73, 86.27, "Indianapolis", "IN"); static final City cMIE = mkCity (40.23, 85.38, "Muncie", "IN"); static final City cSBN = mkCity (41.70, 86.32, "SouthBend", "IN"); static final City cHUF = mkCity (39.45, 87.30, "TerreHaute", "IN"); static final City cLAF = mkCity (40.42, 86.93, "WLafayette", "IN"); static final City cBRL = mkCity (40.78, 91.12, "Burlington", "IA"); static final City cCID = mkCity (41.88, 91.70, "CedarRapids", "IA"); static final City cDSM = mkCity (41.53, 93.65, "DesMoines", "IA"); static final City cDBQ = mkCity (42.40, 90.70, "Dubuque", "IA"); static final City cEST = mkCity (43.40, 94.75, "Estherville", "IA"); static final City cFOD = mkCity (42.55, 94.18, "FortDodge", "IA"); static final City c3OI = mkCity (40.62, 93.93, "Lamoni", "IA"); static final City cMCW = mkCity (43.15, 93.33, "MasonCity", "IA"); static final City cOTM = mkCity (41.10, 92.45, "Ottumwa", "IA"); static final City cSUX = mkCity (42.40, 96.38, "SiouxCity", "IA"); static final City c3SE = mkCity (43.17, 95.15, "Spencer", "IA"); static final City cALO = mkCity (42.55, 92.40, "WaterlooMun", "IA"); static final City cCNU = mkCity (37.67, 95.48, "Chanute", "KS"); static final City c3KM = mkCity (37.75, 97.22, "Col.JJabar", "KS"); static final City cCNK = mkCity (39.55, 97.65, "Concordia", "KS"); static final City cDDC = mkCity (37.77, 99.97, "DodgeCity", "KS"); static final City c1K5 = mkCity (37.00, 101.88, "Elkhart", "KS"); static final City cEMP = mkCity (38.33, 96.20, "Emporia", "KS"); static final City cFLV = mkCity (39.37, 94.92, "FtLeavnwrth", "KS"); static final City cFRI = mkCity (39.05, 96.77, "FtRiley", "KS"); static final City cGCK = mkCity (37.93, 100.72, "GardenCity", "KS"); static final City cGLD = mkCity (39.37, 101.70, "Goodland", "KS"); static final City cHYS = mkCity (38.85, 99.27, "Hays", "KS"); static final City cHLC = mkCity (39.38, 99.83, "HillCity", "KS"); static final City cHUT = mkCity (38.07, 97.87, "Hutchinson", "KS"); static final City cIXD = mkCity (38.82, 94.88, "JohnsonCnty", "KS"); static final City cLBL = mkCity (37.05, 100.97, "Liberal", "KS"); static final City cMHK = mkCity (39.15, 96.67, "Manhatten", "KS"); static final City cIAB = mkCity (37.62, 97.27, "McconnellAf", "KS"); static final City cP28 = mkCity (37.30, 98.58, "MedicineLdg", "KS"); static final City cOJC = mkCity (38.85, 94.90, "Olathe", "KS"); static final City cRSL = mkCity (38.87, 98.82, "Russell", "KS"); static final City cSLN = mkCity (38.80, 97.65, "Salina", "KS"); static final City cTOP = mkCity (39.07, 95.62, "Topeka", "KS"); static final City cFOE = mkCity (38.95, 95.67, "Topeka/Forbe", "KS"); static final City cICT = mkCity (37.65, 97.43, "Wichita", "KS"); static final City cBWG = mkCity (36.97, 86.43, "BowlingGreen", "KY"); static final City cHOP = mkCity (36.67, 87.50, "FtCampbell", "KY"); static final City cFTK = mkCity (37.90, 85.97, "FtKnox", "KY"); static final City cJKL = mkCity (37.60, 83.32, "Jackson", "KY"); static final City cLEX = mkCity (38.05, 85.00, "Lexington", "KY"); static final City cLOZ = mkCity (37.08, 84.07, "London", "KY"); static final City cLOU = mkCity (38.23, 85.67, "Louisville", "KY"); static final City cSDF = mkCity (38.18, 85.73, "Louisville", "KY"); static final City cOWB = mkCity (37.75, 87.17, "Owensboro", "KY"); static final City cPAH = mkCity (37.07, 88.77, "Paducah", "KY"); static final City c5I3 = mkCity (37.48, 82.52, "Pikeville", "KY"); static final City cESF = mkCity (31.38, 92.30, "Alexandria", "LA"); static final City cBAD = mkCity (32.50, 93.67, "Barksdale", "LA"); static final City cBTR = mkCity (30.53, 91.15, "BatonRouge", "LA"); static final City cBVE = mkCity (29.55, 89.67, "Boothville", "LA"); static final City c7R5 = mkCity (29.78, 93.30, "CameronHeli", "LA"); static final City c01R = mkCity (31.22, 92.95, "Claiborne", "LA"); static final City cAEX = mkCity (31.33, 92.55, "EnglandAFB", "LA"); static final City c41I = mkCity (28.47, 91.78, "EugeneIsland", "LA"); static final City cPOE = mkCity (31.05, 93.20, "FortPolk", "LA"); static final City cAXO = mkCity (29.18, 90.07, "GrandIsle", "LA"); static final City c5R0 = mkCity (28.22, 93.75, "HighIs", "LA"); static final City c01T = mkCity (28.13, 94.40, "HighIsland", "LA"); static final City cHUM = mkCity (29.57, 90.65, "Houma", "LA"); static final City c7R4 = mkCity (29.73, 92.12, "Intercoastal", "LA"); static final City cLFT = mkCity (30.20, 92.00, "Lafayette", "LA"); static final City cLCH = mkCity (30.12, 93.22, "LakeCharles", "LA"); static final City c7R3 = mkCity (29.70, 91.10, "LkPalourde", "LA"); static final City c1G7 = mkCity (28.78, 89.05, "MissippiCan", "LA"); static final City cMLU = mkCity (32.52, 92.05, "Monroe", "LA"); static final City cPTN = mkCity (29.70, 91.20, "MorganCity", "LA"); static final City cARA = mkCity (30.03, 91.88, "NewIberia", "LA"); static final City cMSY = mkCity (29.98, 90.25, "NewOrleans", "LA"); static final City cNBG = mkCity (29.83, 90.02, "NewOrleans", "LA"); static final City cNEW = mkCity (30.03, 90.03, "NewOrleans", "LA"); static final City c7R8 = mkCity (28.30, 91.98, "SMarshIsl", "LA"); static final City cDTN = mkCity (32.52, 93.75, "Shreveport", "LA"); static final City cSHV = mkCity (32.47, 93.82, "Shreveport", "LA"); static final City cSIL = mkCity (30.35, 89.82, "Slidel", "LA"); static final City cAUG = mkCity (44.32, 69.80, "Augusta", "ME"); static final City cBGR = mkCity (44.80, 68.82, "Bangor", "ME"); static final City cBHB = mkCity (44.45, 68.37, "BarHarbor", "ME"); static final City cNHZ = mkCity (43.88, 69.93, "Brunswick", "ME"); static final City cCAR = mkCity (46.87, 68.02, "CaribouMun", "ME"); static final City c3B1 = mkCity (45.45, 69.55, "Greenville", "ME"); static final City c6B2 = mkCity (45.78, 69.63, "Greenville", "ME"); static final City cHUL = mkCity (46.13, 67.78, "Houlton", "ME"); static final City cLIZ = mkCity (46.95, 67.88, "LoringAFB", "ME"); static final City cPWM = mkCity (43.65, 70.32, "Portland", "ME"); static final City cPQI = mkCity (46.68, 68.05, "PresqueIsle", "ME"); static final City cRKD = mkCity (44.07, 69.12, "Rockland", "ME"); static final City cRUM = mkCity (44.88, 70.88, "Rumford", "ME"); static final City cADW = mkCity (38.82, 76.87, "AndrewsAFB", "MD"); static final City cBAL = mkCity (39.18, 76.67, "Baltimore", "MD"); static final City cBWI = mkCity (39.18, 76.67, "Baltimore", "MD"); static final City cMTN = mkCity (39.33, 76.42, "Baltimore", "MD"); static final City cFME = mkCity (39.08, 76.77, "FortMeade", "MD"); static final City cHGR = mkCity (39.70, 77.72, "Hagerstown", "MD"); static final City cN80 = mkCity (38.55, 75.13, "OceanCity", "MD"); static final City cNHK = mkCity (38.28, 76.40, "Patuxent", "MD"); static final City cAPG = mkCity (39.47, 76.17, "Phillips", "MD"); static final City cSBY = mkCity (38.33, 75.50, "Salisbury", "MD"); static final City cBED = mkCity (42.47, 71.28, "Bedford", "MA"); static final City cBVY = mkCity (42.58, 70.92, "Beverly", "MA"); static final City cBOS = mkCity (42.37, 71.03, "Boston", "MA"); static final City c30B = mkCity (41.78, 70.50, "CapeCodCan", "MA"); static final City cCHH = mkCity (41.67, 69.97, "Chatham", "MA"); static final City cAYE = mkCity (42.57, 71.60, "FortDevens", "MA"); static final City cHYA = mkCity (41.67, 70.28, "Hyannis", "MA"); static final City cLWM = mkCity (42.72, 71.12, "Lawrence", "MA"); static final City cMVY = mkCity (41.40, 70.62, "MarthasVine", "MA"); static final City cACK = mkCity (41.25, 70.07, "Nantucket", "MA"); static final City cEWB = mkCity (41.68, 70.97, "NewBedford", "MA"); static final City cOWD = mkCity (42.18, 71.18, "Norwood", "MA"); static final City cFMH = mkCity (41.65, 70.52, "OtisANGB", "MA"); static final City cPSF = mkCity (42.26, 73.18, "Pittsfield", "MA"); static final City cNZW = mkCity (42.15, 70.93, "SWeymouth", "MA"); static final City cBAF = mkCity (42.17, 72.72, "Westfield", "MA"); static final City cCEF = mkCity (42.20, 72.53, "Westover", "MA"); static final City cORH = mkCity (42.27, 71.87, "Worcester", "MA"); static final City cAPN = mkCity (45.07, 83.57, "Alpena", "MI"); static final City cARB = mkCity (42.22, 83.75, "AnnArbor", "MI"); static final City cBTL = mkCity (42.30, 85.23, "BattleCreek", "MI"); static final City cBEH = mkCity (42.13, 86.43, "BentonHarbor", "MI"); static final City cCIU = mkCity (46.25, 84.47, "Chippewa", "MI"); static final City cC10 = mkCity (43.07, 85.95, "Coopersville", "MI"); static final City cP59 = mkCity (47.47, 87.85, "CopperHarb", "MI"); static final City cDET = mkCity (42.42, 83.02, "Detroit", "MI"); static final City cDTW = mkCity (42.23, 83.33, "Detroit", "MI"); static final City cESC = mkCity (45.73, 87.08, "Escanaba", "MI"); static final City cFNT = mkCity (42.97, 83.75, "Flint/Bishop", "MI"); static final City cGRR = mkCity (42.88, 85.52, "GrandRapids", "MI"); static final City cCMX = mkCity (47.17, 88.50, "Hancock", "MI"); static final City cP58 = mkCity (43.83, 82.53, "HarborBeach", "MI"); static final City cHTL = mkCity (44.37, 84.68, "HoughtonLake", "MI"); static final City cIMT = mkCity (45.82, 88.12, "IronMtn", "MI"); static final City cIWD = mkCity (46.53, 90.13, "Ironwood", "MI"); static final City cJXN = mkCity (42.27, 84.47, "Jackson", "MI"); static final City cAZO = mkCity (42.23, 85.55, "Kalamazoo", "MI"); static final City cLAN = mkCity (42.77, 84.60, "Lansing", "MI"); static final City cMBL = mkCity (44.27, 86.25, "Manistee", "MI"); static final City cMQT = mkCity (46.88, 87.95, "Marquette", "MI"); static final City cMNM = mkCity (45.12, 87.63, "Menominee", "MI"); static final City cMKG = mkCity (43.17, 86.25, "Muskegon", "MI"); static final City cPLN = mkCity (45.57, 84.80, "Pellston", "MI"); static final City cPTK = mkCity (42.67, 83.42, "Pontiac", "MI"); static final City cMBS = mkCity (43.53, 84.08, "Saginaw", "MI"); static final City cSSM = mkCity (46.47, 84.37, "SaultSteM", "MI"); static final City cSAW = mkCity (46.35, 87.40, "SawyerAFB", "MI"); static final City cMTC = mkCity (42.62, 82.83, "Selfridge", "MI"); static final City cP75 = mkCity (45.92, 85.92, "SeulChoix", "MI"); static final City cTVC = mkCity (44.73, 85.58, "TraverseCty", "MI"); static final City cOSC = mkCity (44.45, 83.40, "Wurtsmith", "MI"); static final City cYIP = mkCity (42.23, 83.53, "Ypsilanti", "MI"); static final City cAEL = mkCity (43.68, 93.37, "AlbertLea", "MN"); static final City cAXN = mkCity (45.87, 95.38, "Alexandria", "MN"); static final City cBJI = mkCity (47.50, 94.93, "BemidjiMuni", "MN"); static final City cBRD = mkCity (46.40, 94.13, "Brainerd-Crw", "MN"); static final City cDTL = mkCity (46.82, 95.88, "DetroitLaks", "MN"); static final City cDLH = mkCity (46.83, 92.18, "Duluth", "MN"); static final City cELO = mkCity (47.90, 91.82, "Ely", "MN"); static final City cFRM = mkCity (43.65, 94.42, "Fairmont", "MN"); static final City cFFM = mkCity (46.30, 96.07, "FergusFalls", "MN"); static final City cGPZ = mkCity (47.22, 93.52, "GrandRapids", "MN"); static final City cHIB = mkCity (47.38, 92.85, "Hibbing", "MN"); static final City cINL = mkCity (48.57, 93.38, "IntlFalls", "MN"); static final City cY69 = mkCity (45.13, 94.52, "Litchfield", "MN"); static final City cMKT = mkCity (44.22, 93.92, "Mankato", "MN"); static final City cMML = mkCity (44.45, 95.82, "MarshallArpt", "MN"); static final City cFCM = mkCity (44.83, 93.47, "Minneapolis", "MN"); static final City cMIC = mkCity (45.07, 93.38, "Minneapolis", "MN"); static final City cMSP = mkCity (44.88, 93.22, "Minneapolis", "MN"); static final City cPKD = mkCity (46.90, 95.07, "ParkRapids", "MN"); static final City cP39 = mkCity (46.60, 94.32, "PequotLake", "MN"); static final City cRWF = mkCity (44.55, 95.08, "RedwoodFalls", "MN"); static final City cRST = mkCity (43.92, 92.50, "Rochester", "MN"); static final City cSTP = mkCity (44.93, 93.05, "SaintPaul", "MN"); static final City cSTC = mkCity (45.55, 94.07, "StCloud", "MN"); static final City cTVF = mkCity (48.07, 96.18, "ThiefRiver", "MN"); static final City cP61 = mkCity (47.58, 90.83, "Tofte", "MN"); static final City cD45 = mkCity (48.93, 95.35, "Warroad", "MN"); static final City cOTG = mkCity (43.65, 95.58, "Worthington", "MN"); static final City cCBM = mkCity (33.65, 88.45, "ColumbusAFB", "MS"); static final City cGTR = mkCity (33.45, 88.58, "GoldenTrian", "MS"); static final City cGLH = mkCity (33.48, 90.98, "Greenville", "MS"); static final City cGWO = mkCity (33.50, 90.08, "Greenwood", "MS"); static final City cGPT = mkCity (30.40, 89.07, "Gulfport", "MS"); static final City cPIB = mkCity (31.47, 89.33, "Hattiesburg", "MS"); static final City cJAN = mkCity (32.32, 90.08, "Jackson", "MS"); static final City cBIX = mkCity (30.42, 88.92, "KeeslerAFB", "MS"); static final City cLUL = mkCity (31.67, 89.17, "Laurel", "MS"); static final City cMCB = mkCity (31.18, 90.47, "Mccomb", "MS"); static final City cNMM = mkCity (32.55, 88.57, "MeridianNAS", "MS"); static final City cMEI = mkCity (32.33, 88.75, "Meridian/Key", "MS"); static final City cHEZ = mkCity (31.62, 91.25, "Natchez", "MS"); static final City cUOX = mkCity (34.39, 89.54, "Oxford", "MS"); static final City cTUP = mkCity (34.27, 88.77, "Tupelo", "MS"); static final City cCOU = mkCity (38.82, 92.22, "Columbia", "MO"); static final City cCGI = mkCity (37.23, 89.58, "CpGirardeau", "MO"); static final City cTBN = mkCity (37.75, 92.13, "FtLeonard", "MO"); static final City cJEF = mkCity (38.60, 92.17, "Jefferson Cty", "MO"); static final City cJLN = mkCity (37.17, 94.50, "Joplin", "MO"); static final City cMCI = mkCity (39.32, 94.72, "KansasCity", "MO"); static final City cMKC = mkCity (39.12, 94.60, "KansasCity", "MO"); static final City cIRK = mkCity (40.10, 92.55, "Kirksville", "MO"); static final City cUMN = mkCity (37.33, 94.35, "Monett", "MO"); static final City cMKO = mkCity (35.66, 95.36, "Muskogee", "MO"); static final City cP02 = mkCity (36.77, 90.47, "PoplarBluff", "MO"); static final City cGVW = mkCity (38.85, 94.55, "Richards-Geb", "MO"); static final City cP35 = mkCity (40.25, 93.72, "Spickard", "MO"); static final City cSGF = mkCity (37.23, 93.38, "Springfield", "MO"); static final City cSTJ = mkCity (40.28, 95.53, "StJoseph", "MO"); static final City cSTL = mkCity (38.75, 90.37, "StLouis", "MO"); static final City cSUS = mkCity (38.65, 90.63, "StLouis/Spirit", "MO"); static final City cVIH = mkCity (38.13, 91.77, "Vichy/Rolla", "MO"); static final City cH63 = mkCity (37.22, 92.42, "WestPlains", "MO"); static final City cUNO = mkCity (36.88, 91.90, "WestPlains", "MO"); static final City cSZL = mkCity (38.73, 93.55, "WhitemanAFB", "MO"); static final City cBIL = mkCity (45.80, 108.53, "Billings", "MT"); static final City cBZN = mkCity (45.78, 111.15, "Bozeman", "MT"); static final City c4BQ = mkCity (45.67, 105.67, "Broadus", "MT"); static final City cBTM = mkCity (45.95, 112.50, "Butte", "MT"); static final City cCTB = mkCity (48.60, 112.37, "CutBank", "MT"); static final City cDLN = mkCity (45.25, 112.55, "Dillon", "MT"); static final City c3DU = mkCity (46.67, 113.15, "Drummond", "MT"); static final City cGGW = mkCity (48.22, 106.62, "Glasgow", "MT"); static final City cGDV = mkCity (47.13, 104.80, "Glendive", "MT"); static final City cGTF = mkCity (47.48, 111.37, "GreatFalls", "MT"); static final City c3HT = mkCity (46.43, 109.83, "Harlowton", "MT"); static final City cHVR = mkCity (48.55, 109.77, "Havre", "MT"); static final City cHLN = mkCity (46.60, 112.00, "Helena", "MT"); static final City cJDN = mkCity (47.33, 106.93, "Jordan", "MT"); static final City cFCA = mkCity (48.30, 114.27, "Kalispell", "MT"); static final City cLWT = mkCity (47.05, 109.45, "Lewiston", "MT"); static final City cLVM = mkCity (45.70, 110.43, "Livingston", "MT"); static final City cGFA = mkCity (47.50, 111.18, "Malmstrom", "MT"); static final City cMLS = mkCity (46.43, 105.87, "MilesCity", "MT"); static final City cMSO = mkCity (46.92, 114.08, "Missoula", "MT"); static final City cMQM = mkCity (44.57, 112.32, "Monida", "MT"); static final City cSDY = mkCity (47.72, 104.18, "Sidney", "MT"); static final City c3TH = mkCity (47.60, 115.37, "ThompsonFal", "MT"); static final City cWEY = mkCity (44.65, 111.10, "WYellowston", "MT"); static final City cWYS = mkCity (44.68, 111.12, "WYellowston", "MT"); static final City cOLF = mkCity (48.10, 105.58, "WolfPoint", "MT"); static final City cANW = mkCity (42.58, 99.98, "Ainsworth", "NE"); static final City cAIA = mkCity (42.05, 102.80, "Alliance", "NE"); static final City cBIE = mkCity (40.32, 96.75, "Beatrice", "NE"); static final City cBBW = mkCity (41.43, 99.65, "BrokenBow", "NE"); static final City cBUB = mkCity (41.78, 99.15, "Burwell", "NE"); static final City cCDR = mkCity (42.83, 103.08, "Chadron", "NE"); static final City cOLU = mkCity (41.45, 97.35, "Columbus", "NE"); static final City cCZD = mkCity (40.87, 100.00, "Cozad", "NE"); static final City cFNB = mkCity (40.07, 95.58, "FallsCity", "NE"); static final City cGRI = mkCity (40.97, 98.32, "GrandIsland", "NE"); static final City cHSI = mkCity (40.60, 98.43, "Hastings", "NE"); static final City c6V1 = mkCity (40.33, 101.39, "Imperial", "NE"); static final City cIML = mkCity (40.53, 101.63, "Imperial", "NE"); static final City cEAR = mkCity (40.73, 99.00, "Kearney", "NE"); static final City cLNK = mkCity (40.85, 96.75, "LincolnMuni", "NE"); static final City cMCK = mkCity (40.22, 100.58, "Mccook", "NE"); static final City cMHN = mkCity (42.05, 101.05, "Mullen", "NE"); static final City cOFK = mkCity (41.98, 97.43, "Norfolk", "NE"); static final City cOVN = mkCity (41.37, 96.02, "NorthOmaha", "NE"); static final City cLBF = mkCity (41.13, 100.68, "NorthPlatte", "NE"); static final City cONL = mkCity (42.47, 98.68, "O'Neill", "NE"); static final City cOFF = mkCity (41.12, 95.92, "OffuttAFB", "NE"); static final City cOMA = mkCity (41.30, 95.90, "Omaha/Eppley", "NE"); static final City cODX = mkCity (41.62, 98.95, "Ord/Sharp", "NE"); static final City cBFF = mkCity (41.87, 103.60, "Scottsbluff", "NE"); static final City cSNY = mkCity (41.10, 102.98, "SidneyMuni", "NE"); static final City cVTN = mkCity (42.87, 100.55, "Valentine", "NE"); static final City cAUI = mkCity (39.83, 117.13, "Austin", "NV"); static final City cU31 = mkCity (39.50, 117.08, "Austin", "NV"); static final City cBAM = mkCity (40.62, 116.87, "BattleMtn", "NV"); static final City cP38 = mkCity (37.62, 114.52, "Caliente", "NV"); static final City cEKO = mkCity (40.83, 115.78, "Elko", "NV"); static final City cELY = mkCity (39.28, 114.85, "Ely/Yelland", "NV"); static final City cP68 = mkCity (39.50, 115.97, "Eureka", "NV"); static final City cNFL = mkCity (39.42, 118.70, "FallonNAS", "NV"); static final City cHTH = mkCity (38.55, 118.63, "Hawthorne", "NV"); static final City cL63 = mkCity (36.53, 115.57, "IndSprngRn", "NV"); static final City cL76 = mkCity (36.57, 115.67, "IndSprngRn", "NV"); static final City cLAS = mkCity (36.08, 115.17, "LasVegas", "NV"); static final City cLOL = mkCity (40.10, 118.92, "Lovelock", "NV"); static final City cDRA = mkCity (36.62, 116.02, "Mercury", "NV"); static final City cLSV = mkCity (36.23, 115.03, "NellisAFB", "NV"); static final City cOWY = mkCity (42.58, 116.17, "Owyhee", "NV"); static final City cRNO = mkCity (39.50, 119.78, "Reno", "NV"); static final City cTPH = mkCity (38.07, 117.08, "Tonopah", "NV"); static final City cAWH = mkCity (41.33, 116.25, "Wildhorse", "NV"); static final City cWMC = mkCity (40.90, 117.80, "Winnemucca", "NV"); static final City cUCC = mkCity (37.58, 116.08, "YuccaFlat", "NV"); static final City cBML = mkCity (44.58, 71.18, "Berlin", "NH"); static final City cCON = mkCity (43.20, 71.50, "Concord", "NH"); static final City cAFN = mkCity (42.80, 72.00, "Jaffrey", "NH"); static final City cEEN = mkCity (42.90, 72.27, "Keene", "NH"); static final City cLCI = mkCity (43.57, 71.43, "Laconia", "NH"); static final City cLEB = mkCity (43.63, 72.30, "Lebanon", "NH"); static final City cMHT = mkCity (42.93, 71.43, "Manchester", "NH"); static final City cMWN = mkCity (44.27, 71.30, "MtWashingtn", "NH"); static final City cASH = mkCity (42.78, 71.52, "Nashua", "NH"); static final City cPSM = mkCity (43.08, 70.82, "PeaseAFB", "NH"); static final City c8B8 = mkCity (44.00, 71.38, "Wolfeboro", "NH"); static final City cACY = mkCity (39.45, 74.57, "AtlanticCity", "NJ"); static final City cN78 = mkCity (40.28, 74.28, "BarnegatLs", "NJ"); static final City cCDW = mkCity (40.87, 74.28, "Fairfield", "NJ"); static final City cNEL = mkCity (40.03, 74.35, "Lakehurst", "NJ"); static final City cWRI = mkCity (40.02, 74.60, "McguireAFB", "NJ"); static final City cMIV = mkCity (39.37, 75.07, "Millville", "NJ"); static final City cMMU = mkCity (40.80, 74.42, "Morristown", "NJ"); static final City cEWR = mkCity (40.70, 74.17, "NewarkIntl", "NJ"); static final City cTEB = mkCity (40.85, 74.05, "Teterboro", "NJ"); static final City cTTN = mkCity (40.28, 74.82, "Trenton", "NJ"); static final City cABQ = mkCity (35.05, 106.60, "Albuquerque", "NM"); static final City cCVS = mkCity (34.38, 103.32, "Cannon", "NM"); static final City cCNM = mkCity (32.33, 104.27, "Carlsbad", "NM"); static final City cCAO = mkCity (36.45, 103.15, "Clayton", "NM"); static final City c4CR = mkCity (34.10, 105.68, "Corona", "NM"); static final City c4SL = mkCity (36.02, 106.95, "CubaAwrs", "NM"); static final City cDMN = mkCity (32.25, 107.70, "Deming", "NM"); static final City cFMN = mkCity (36.75, 108.23, "Farmington", "NM"); static final City cGUP = mkCity (35.52, 108.78, "Gallup/Clark", "NM"); static final City cGNT = mkCity (35.17, 107.90, "Grants", "NM"); static final City cHOB = mkCity (32.68, 103.20, "Hobbs", "NM"); static final City cHMN = mkCity (32.85, 106.10, "HollomanAFB", "NM"); static final City cLRU = mkCity (32.30, 106.77, "LasCruces", "NM"); static final City cLVS = mkCity (35.65, 105.15, "LasVegas", "NM"); static final City cLAM = mkCity (35.88, 106.28, "LosAlamos", "NM"); static final City c4MY = mkCity (34.98, 106.05, "Moriarity", "NM"); static final City cE28 = mkCity (32.90, 106.40, "NorthrupStr", "NM"); static final City cRTN = mkCity (36.74, 104.50, "Raton", "NM"); static final City cROW = mkCity (33.30, 104.53, "Roswell", "NM"); static final City cSAF = mkCity (35.62, 106.08, "SantaFe", "NM"); static final City cSVC = mkCity (32.63, 108.17, "SilverCity", "NM"); static final City cONM = mkCity (34.07, 106.90, "Socorro", "NM"); static final City cE23 = mkCity (36.42, 105.57, "Taos", "NM"); static final City cTCS = mkCity (33.23, 107.27, "TruthOrCon", "NM"); static final City cTCC = mkCity (35.18, 103.60, "Tucumcari", "NM"); static final City c2C2 = mkCity (32.63, 106.40, "WhiteSands", "NM"); static final City cALB = mkCity (42.75, 73.80, "Albany", "NY"); static final City cN28 = mkCity (40.75, 74.37, "Ambrose", "NY"); static final City cBGM = mkCity (42.22, 75.98, "Binghamton", "NY"); static final City cBUF = mkCity (42.93, 78.73, "Buffalo", "NY"); static final City cDSV = mkCity (42.97, 78.20, "Dansville", "NY"); static final City cELM = mkCity (42.17, 76.90, "Elmira", "NY"); static final City cFRG = mkCity (40.73, 73.43, "Farmingdale", "NY"); static final City cGTB = mkCity (44.05, 75.73, "FortDrum", "NY"); static final City cGFL = mkCity (43.35, 73.62, "GlensFalls", "NY"); static final City cRME = mkCity (43.23, 75.40, "GriffissAFB", "NY"); static final City cISP = mkCity (40.78, 73.10, "Islip", "NY"); static final City cITH = mkCity (42.48, 76.47, "Ithaca", "NY"); static final City cJHW = mkCity (42.15, 79.25, "Jamestown", "NY"); static final City cMSS = mkCity (44.93, 74.85, "Massena", "NY"); static final City cMSV = mkCity (41.70, 74.80, "Monticello", "NY"); static final City cNYC = mkCity (40.77, 73.98, "NewYork", "NY"); static final City cJFK = mkCity (40.65, 73.78, "NewYork/JFK", "NY"); static final City cLGA = mkCity (40.77, 73.90, "NewYork/LGA", "NY"); static final City cSWF = mkCity (41.50, 74.10, "Newburgh", "NY"); static final City cIAG = mkCity (43.10, 78.95, "NiagaraFalls", "NY"); static final City cOGS = mkCity (44.68, 75.40, "Ogdensburg", "NY"); static final City cN66 = mkCity (42.87, 75.12, "Oneonta", "NY"); static final City cPBG = mkCity (44.65, 73.47, "Plattsburgh", "NY"); static final City cPOU = mkCity (41.63, 73.88, "Poughkeepsie", "NY"); static final City cROC = mkCity (43.12, 77.67, "Rochester", "NY"); static final City cSLK = mkCity (44.38, 74.20, "SaranacLake", "NY"); static final City cSCH = mkCity (42.85, 73.93, "Schenectady", "NY"); static final City cSYR = mkCity (43.12, 76.12, "Syracuse", "NY"); static final City cUCA = mkCity (43.15, 75.38, "Utica", "NY"); static final City cART = mkCity (44.00, 76.02, "Watertown", "NY"); static final City cFOK = mkCity (40.85, 72.63, "Westhampton", "NY"); static final City cHPN = mkCity (41.07, 73.72, "WhitePlains", "NY"); static final City cAVL = mkCity (35.43, 82.55, "Asheville", "NC"); static final City cHAT = mkCity (35.27, 75.55, "CapeHattera", "NC"); static final City cCLT = mkCity (35.22, 80.93, "Charlotte", "NC"); static final City cNKT = mkCity (34.90, 76.88, "CherryPoint", "NC"); static final City c2DP = mkCity (36.13, 76.50, "DareCoGr", "NC"); static final City c44W = mkCity (35.25, 75.50, "DiamondSho", "NC"); static final City cECG = mkCity (36.27, 76.18, "Elizabeth", "NC"); static final City cFAY = mkCity (35.00, 78.88, "Fayetteville", "NC"); static final City cFBG = mkCity (35.13, 78.93, "FortBragg", "NC"); static final City cGSO = mkCity (36.08, 79.95, "Greensboro", "NC"); static final City cHKY = mkCity (35.75, 81.38, "Hickory", "NC"); static final City cHSS = mkCity (35.90, 82.82, "HotSprings", "NC"); static final City cOAJ = mkCity (34.82, 77.62, "Jacksonville", "NC"); static final City cISO = mkCity (35.32, 77.63, "Kinston", "NC"); static final City cHFF = mkCity (35.03, 79.50, "MackallAaf", "NC"); static final City cMQI = mkCity (35.92, 75.68, "ManteoArpt", "NC"); static final City cEWN = mkCity (35.08, 77.05, "NewBern", "NC"); static final City cNCA = mkCity (34.70, 77.43, "NewRiver", "NC"); static final City cPOB = mkCity (35.17, 79.02, "PopeAFB", "NC"); static final City cRDU = mkCity (35.87, 78.78, "Raleigh-Durh", "NC"); static final City cRWI = mkCity (35.85, 77.88, "RockyMt", "NC"); static final City cGSB = mkCity (35.33, 77.97, "Seymour-John", "NC"); static final City cILM = mkCity (34.27, 77.92, "Wilmington", "NC"); static final City cINT = mkCity (36.13, 80.23, "Winston-Salem", "NC"); static final City cBIS = mkCity (46.77, 100.75, "Bismarck", "ND"); static final City cDVL = mkCity (48.12, 98.90, "Devil'sLake", "ND"); static final City cP11 = mkCity (48.10, 98.87, "Devil'sLake", "ND"); static final City cDIK = mkCity (46.78, 102.80, "Dickenson", "ND"); static final City cFAR = mkCity (46.90, 96.80, "Fargo", "ND"); static final City cGFK = mkCity (47.95, 97.18, "GrandForks", "ND"); static final City cRDR = mkCity (47.97, 97.40, "GrandForks", "ND"); static final City cJMS = mkCity (46.92, 98.68, "Jamestown", "ND"); static final City cP67 = mkCity (46.10, 97.15, "Lidgerwood", "ND"); static final City cMIB = mkCity (48.42, 101.35, "MinotAFB", "ND"); static final City cMOT = mkCity (48.27, 101.28, "MinotIntl", "ND"); static final City cP24 = mkCity (47.75, 101.83, "Roseglen", "ND"); static final City cISN = mkCity (48.18, 103.63, "Williston", "ND"); static final City cUNI = mkCity (39.21, 82.23, "Athens/Albany", "OH"); static final City cCAK = mkCity (40.92, 81.43, "Canton", "OH"); static final City cCVG = mkCity (39.05, 84.67, "Cincinnati", "OH"); static final City cLUK = mkCity (39.10, 84.43, "Cincinnati", "OH"); static final City cBKL = mkCity (41.52, 81.68, "Cleveland", "OH"); static final City cCGF = mkCity (41.57, 81.48, "Cleveland", "OH"); static final City cCLE = mkCity (41.42, 81.87, "Cleveland", "OH"); static final City cCMH = mkCity (40.00, 82.88, "Columbus", "OH"); static final City cOSU = mkCity (40.08, 83.07, "ColumbusOsu", "OH"); static final City cDAY = mkCity (39.90, 84.20, "Dayton", "OH"); static final City cFDY = mkCity (41.02, 83.67, "Findlay", "OH"); static final City cMFD = mkCity (40.82, 82.52, "Mansfield", "OH"); static final City cLCK = mkCity (39.82, 82.93, "Rickenbacker", "OH"); static final City cTOL = mkCity (41.60, 83.80, "Toledo", "OH"); static final City cLNN = mkCity (41.63, 81.40, "Willoughby", "OH"); static final City cFFO = mkCity (39.83, 84.05, "Wright-PatAFB", "OH"); static final City cYNG = mkCity (41.27, 80.67, "Youngstown", "OH"); static final City cZZV = mkCity (39.95, 81.90, "Zanesville", "OH"); static final City cLTS = mkCity (34.67, 99.27, "AltusAFB", "OK"); static final City cADM = mkCity (34.30, 97.02, "Ardmore", "OK"); static final City cBVO = mkCity (36.75, 96.00, "Bartlesville", "OK"); static final City cCSM = mkCity (35.35, 99.20, "Clinton", "OK"); static final City cWDG = mkCity (36.38, 97.80, "Enid", "OK"); static final City cFSI = mkCity (34.65, 98.40, "FortSill", "OK"); static final City cGAG = mkCity (36.30, 99.77, "Gage", "OK"); static final City cHBR = mkCity (35.00, 99.05, "Hobart", "OK"); static final City cLAW = mkCity (34.57, 98.42, "Lawton", "OK"); static final City cMLC = mkCity (34.88, 95.78, "Mcalester", "OK"); static final City cOUN = mkCity (35.23, 97.47, "Norman", "OK"); static final City cOKC = mkCity (35.40, 97.60, "OklahomaCty", "OK"); static final City cPWA = mkCity (35.53, 97.65, "OklahomaCty", "OK"); static final City cPGO = mkCity (34.68, 94.62, "Page", "OK"); static final City cPNC = mkCity (36.73, 97.10, "PoncaCity", "OK"); static final City cSWO = mkCity (36.16, 97.09, "Stillwater", "OK"); static final City cTIK = mkCity (35.42, 97.38, "TinkerAFB", "OK"); static final City cTUL = mkCity (36.20, 95.90, "Tulsa", "OK"); static final City cEND = mkCity (36.33, 97.92, "VanceAFB", "OK"); static final City cAST = mkCity (46.15, 123.88, "Astoria", "OR"); static final City c3S2 = mkCity (45.25, 122.75, "Aurora", "OR"); static final City cBKE = mkCity (44.83, 117.82, "Baker", "OR"); static final City c4BK = mkCity (42.08, 124.47, "Brookings", "OR"); static final City cBNO = mkCity (43.60, 118.95, "BurnsArpt", "OR"); static final City c92S = mkCity (43.38, 124.95, "CapeBlanco", "OR"); static final City cCZK = mkCity (45.68, 121.88, "Cascade", "OR"); static final City cCVO = mkCity (44.50, 123.28, "Corvallis", "OR"); static final City cEUG = mkCity (44.12, 123.22, "Eugene", "OR"); static final City cHIO = mkCity (45.53, 122.95, "Hillsboro", "OR"); static final City cLMT = mkCity (42.15, 121.73, "KlamathFall", "OR"); static final City cLGD = mkCity (45.28, 118.00, "LaGrande", "OR"); static final City c4LW = mkCity (42.18, 120.35, "LakeView", "OR"); static final City cMEH = mkCity (45.50, 118.40, "Meacham", "OR"); static final City cMFR = mkCity (42.37, 122.87, "Medford", "OR"); static final City cONP = mkCity (44.63, 124.05, "Newport", "OR"); static final City cOTH = mkCity (43.42, 124.25, "NorthBend", "OR"); static final City cONO = mkCity (44.02, 117.02, "Ontario", "OR"); static final City cPDT = mkCity (45.68, 118.85, "Pendleton", "OR"); static final City cPDX = mkCity (45.60, 122.60, "Portland", "OR"); static final City cRDM = mkCity (44.27, 121.15, "Redmond", "OR"); static final City cRBG = mkCity (43.23, 123.37, "Roseburg", "OR"); static final City cSLE = mkCity (44.92, 123.00, "Salem", "OR"); static final City cSXT = mkCity (42.62, 123.37, "Sexton", "OR"); static final City cDLS = mkCity (45.62, 121.15, "TheDalles", "OR"); static final City cTTD = mkCity (45.55, 122.40, "Troutdale", "OR"); static final City cABE = mkCity (40.65, 75.43, "Allentown", "PA"); static final City cAOO = mkCity (40.30, 78.32, "Altoona", "PA"); static final City cBVI = mkCity (40.75, 80.33, "BeaverFalls", "PA"); static final City cBSI = mkCity (40.27, 79.09, "Blairsville", "PA"); static final City cBFD = mkCity (41.80, 78.63, "Bradford", "PA"); static final City cDUJ = mkCity (41.18, 78.90, "Dubois", "PA"); static final City cERI = mkCity (42.08, 80.18, "Erie", "PA"); static final City cFKL = mkCity (41.38, 79.87, "Franklin", "PA"); static final City cCXY = mkCity (40.22, 76.85, "Harrisburg", "PA"); static final City cHAR = mkCity (40.37, 77.42, "Harrisburg", "PA"); static final City cJST = mkCity (40.32, 78.83, "Johnstown", "PA"); static final City cLNS = mkCity (40.13, 76.30, "Lancaster", "PA"); static final City cLBE = mkCity (40.28, 79.40, "Latrobe", "PA"); static final City cMDT = mkCity (40.20, 76.77, "Middletown", "PA"); static final City cMUI = mkCity (40.43, 76.57, "Muir", "PA"); static final City cPNE = mkCity (40.08, 75.02, "NorthPhiladelphia", "PA"); static final City cPHL = mkCity (39.88, 75.25, "Philadelphia", "PA"); static final City cPSB = mkCity (41.47, 78.13, "Philipsburg", "PA"); static final City cAGC = mkCity (40.35, 79.93, "Pittsburgh", "PA"); static final City cPIT = mkCity (40.50, 80.22, "Pittsburgh", "PA"); static final City cRDG = mkCity (40.38, 75.97, "Reading", "PA"); static final City c43M = mkCity (39.73, 77.43, "SiteR", "PA"); static final City cUNV = mkCity (40.85, 77.83, "StateCollege", "PA"); static final City cAVP = mkCity (41.33, 75.73, "Wilkes-Barre", "PA"); static final City cIPT = mkCity (41.25, 76.92, "Williamsport", "PA"); static final City cNXX = mkCity (40.20, 75.15, "WillowGrove", "PA"); static final City cBID = mkCity (41.17, 71.58, "BlockIsland", "RI"); static final City cOQU = mkCity (41.60, 71.42, "NorthKingston", "RI"); static final City cPVD = mkCity (41.73, 71.43, "Providence", "RI"); static final City cNCO = mkCity (41.36, 71.25, "QuonsetPtNAS", "RI"); static final City cAND = mkCity (34.50, 82.72, "Anderson", "SC"); static final City cNBC = mkCity (32.48, 80.72, "BeauFortMca", "SC"); static final City cCHS = mkCity (32.90, 80.03, "Charleston", "SC"); static final City cCAE = mkCity (33.95, 81.12, "Columbia", "SC"); static final City cFLO = mkCity (34.18, 79.72, "Florence", "SC"); static final City cGMU = mkCity (34.85, 82.35, "Greenville", "SC"); static final City cGSP = mkCity (34.90, 82.22, "Greenville", "SC"); static final City cMMT = mkCity (33.92, 80.80, "Mcentire", "SC"); static final City cMYR = mkCity (33.68, 78.93, "MyrtleBeach", "SC"); static final City cCRE = mkCity (33.82, 78.72, "NorthMyrtleBeach", "SC"); static final City cSSC = mkCity (33.97, 80.47, "ShawAFB", "SC"); static final City cSPA = mkCity (34.92, 81.96, "Spartanburg", "SC"); static final City cABR = mkCity (45.45, 98.43, "Aberdeen", "SD"); static final City cBKX = mkCity (44.30, 96.80, "Brookings", "SD"); static final City c9V9 = mkCity (43.80, 99.32, "Chamberlain", "SD"); static final City cCHB = mkCity (43.75, 99.32, "Chamberlain", "SD"); static final City c0V1 = mkCity (43.77, 103.60, "Custer", "SD"); static final City cRCA = mkCity (44.15, 103.10, "Ellsworth", "SD"); static final City cHON = mkCity (44.38, 98.22, "Huron", "SD"); static final City cY22 = mkCity (45.93, 102.17, "Lemmon", "SD"); static final City cMHE = mkCity (43.77, 98.03, "Mitchell", "SD"); static final City cY26 = mkCity (45.53, 100.43, "Mobridge", "SD"); static final City cP05 = mkCity (44.05, 101.60, "Philip", "SD"); static final City cPHP = mkCity (44.05, 101.60, "Philip", "SD"); static final City cPIR = mkCity (44.38, 100.28, "Pierre", "SD"); static final City cRAP = mkCity (44.05, 103.07, "RapidCity", "SD"); static final City cREJ = mkCity (45.16, 103.32, "Redig", "SD"); static final City cFSD = mkCity (43.58, 96.73, "SiouxFalls", "SD"); static final City cATY = mkCity (44.92, 97.15, "Watertown", "SD"); static final City cYKN = mkCity (42.92, 97.38, "Yankton", "SD"); static final City cTRI = mkCity (36.48, 82.40, "Bristol", "TN"); static final City cCHA = mkCity (35.03, 85.20, "Chattanooga", "TN"); static final City cCKV = mkCity (36.62, 87.42, "Clarksville", "TN"); static final City cCSV = mkCity (35.95, 85.08, "Crossville", "TN"); static final City cDYR = mkCity (36.02, 89.40, "Dyersburg", "TN"); static final City cMKL = mkCity (35.60, 88.92, "Jackson", "TN"); static final City cTYS = mkCity (35.82, 83.98, "Knoxville", "TN"); static final City cMEM = mkCity (35.05, 90.00, "MemphisIntl", "TN"); static final City cNQA = mkCity (35.35, 89.87, "MemphisNAS", "TN"); static final City cMGL = mkCity (35.15, 85.51, "Monteagle", "TN"); static final City cBNA = mkCity (36.12, 86.68, "Nashville", "TN"); static final City cMQY = mkCity (36.00, 86.50, "Smyrna", "TN"); static final City cABI = mkCity (32.42, 99.68, "Abilene", "TX"); static final City cALI = mkCity (27.73, 98.03, "Alice", "TX"); static final City cAMA = mkCity (35.23, 101.70, "Amarillo", "TX"); static final City cAUS = mkCity (30.30, 97.70, "Austin", "TX"); static final City cBSM = mkCity (30.20, 97.68, "BergstromAf", "TX"); static final City cBGS = mkCity (32.39, 101.48, "BigSky", "TX"); static final City cHCA = mkCity (32.30, 101.45, "BigSpring", "TX"); static final City cBRO = mkCity (25.90, 97.43, "Brownsville", "TX"); static final City cBWD = mkCity (31.79, 98.96, "Brownwood", "TX"); static final City cFWH = mkCity (32.78, 97.43, "CarswellAFB", "TX"); static final City cNIR = mkCity (28.37, 97.67, "ChaseNAS", "TX"); static final City cCDS = mkCity (34.43, 100.28, "Childress", "TX"); static final City cCLL = mkCity (30.58, 96.37, "CollegeStation", "TX"); static final City cCRP = mkCity (27.77, 97.50, "CorpusChristi", "TX"); static final City cNGP = mkCity (27.70, 97.28, "CorpusChristi", "TX"); static final City cCOT = mkCity (28.45, 99.22, "Cotulla", "TX"); static final City cDWH = mkCity (30.07, 95.55, "D.W.Hooks", "TX"); static final City cDHT = mkCity (36.02, 102.55, "Dalhart", "TX"); static final City cNBE = mkCity (32.73, 96.97, "DallasNAS", "TX"); static final City cADS = mkCity (32.97, 96.83, "Dallas/Addis", "TX"); static final City cDFW = mkCity (32.90, 97.03, "Dallas/FW", "TX"); static final City cDAL = mkCity (32.85, 96.85, "Dallas/Love", "TX"); static final City cRBD = mkCity (32.68, 96.87, "Dallas/Redbr", "TX"); static final City cDRT = mkCity (29.37, 100.92, "DelRio", "TX"); static final City cDYS = mkCity (32.43, 99.85, "DyessAFB", "TX"); static final City cELP = mkCity (31.80, 106.40, "ElPaso", "TX"); static final City cEFD = mkCity (29.62, 95.17, "EllingtonAf", "TX"); static final City cFTW = mkCity (32.82, 97.35, "FortWorth", "TX"); static final City cHLR = mkCity (31.15, 97.72, "FtHoodAaf", "TX"); static final City cGLS = mkCity (29.27, 94.87, "Galveston", "TX"); static final City cGRK = mkCity (31.07, 97.83, "GrayAFB", "TX"); static final City cGVT = mkCity (33.07, 96.07, "Greenville", "TX"); static final City cGDP = mkCity (31.83, 104.80, "Guadalupe", "TX"); static final City cHRL = mkCity (26.23, 97.67, "Harlingen", "TX"); static final City cHDO = mkCity (29.35, 99.17, "Hondo", "TX"); static final City cIAH = mkCity (29.97, 95.35, "Houston", "TX"); static final City cHOU = mkCity (29.65, 95.28, "Houston/Hobby", "TX"); static final City cJCT = mkCity (30.50, 99.77, "Junction", "TX"); static final City cSKF = mkCity (29.38, 98.58, "KellyAFB", "TX"); static final City cERV = mkCity (29.98, 99.08, "Kerrville", "TX"); static final City cILE = mkCity (31.08, 97.68, "Killeen", "TX"); static final City cNQI = mkCity (27.50, 97.82, "Kingsville", "TX"); static final City cLRD = mkCity (27.53, 99.47, "LaredoIntl", "TX"); static final City cDLF = mkCity (29.37, 100.78, "LaughlinAFB", "TX"); static final City cGGG = mkCity (32.38, 94.72, "Longview", "TX"); static final City cLBB = mkCity (33.65, 101.82, "Lubbock", "TX"); static final City cLFK = mkCity (31.23, 94.75, "Lufkin", "TX"); static final City cMRF = mkCity (30.37, 104.02, "Marfa", "TX"); static final City cMFE = mkCity (26.18, 98.23, "Mcallen", "TX"); static final City cMAF = mkCity (31.95, 102.18, "Midland", "TX"); static final City cMWL = mkCity (32.78, 98.07, "MineralWlls", "TX"); static final City cPSX = mkCity (28.72, 96.25, "Palacios", "TX"); static final City cPRX = mkCity (33.63, 95.45, "Paris/Cox", "TX"); static final City cPVW = mkCity (34.17, 101.71, "Plainview", "TX"); static final City cBPT = mkCity (30.58, 94.02, "PortArthur", "TX"); static final City cRND = mkCity (29.53, 98.28, "RandolphAFB", "TX"); static final City cREE = mkCity (33.60, 102.05, "ReeseAFB", "TX"); static final City cRKP = mkCity (28.08, 97.03, "Rockport", "TX"); static final City cSJT = mkCity (31.37, 100.50, "SanAngelo", "TX"); static final City cSAT = mkCity (29.53, 98.47, "SanAntonio", "TX"); static final City cSSF = mkCity (29.33, 98.47, "SanAntonio", "TX"); static final City cP07 = mkCity (30.17, 102.42, "Sanderson", "TX"); static final City cF39 = mkCity (33.72, 96.67, "Sherman-Deni", "TX"); static final City cT46 = mkCity (28.03, 95.87, "SouthBrazos", "TX"); static final City cSEP = mkCity (32.22, 98.18, "Stephenville", "TX"); static final City cTPL = mkCity (31.15, 97.42, "Temple", "TX"); static final City cTYR = mkCity (32.37, 95.40, "Tyler/Pounds", "TX"); static final City cVCT = mkCity (28.85, 96.92, "Victoria", "TX"); static final City cACT = mkCity (31.62, 97.22, "Waco-Madison", "TX"); static final City cSPS = mkCity (33.98, 98.50, "Wichita Falls", "TX"); static final City cINK = mkCity (31.78, 103.20, "Wink", "TX"); static final City c4BL = mkCity (38.03, 109.78, "Blanding", "UT"); static final City cU17 = mkCity (37.50, 110.70, "BullfrogMar", "UT"); static final City cCDC = mkCity (37.70, 113.10, "CedarCity", "UT"); static final City cU24 = mkCity (39.33, 112.58, "Delta", "UT"); static final City cDPG = mkCity (40.20, 112.93, "DugwayPrvgr", "UT"); static final City cU16 = mkCity (41.05, 113.07, "EagleRange", "UT"); static final City cU28 = mkCity (39.00, 110.15, "GreenRiver", "UT"); static final City c4HV = mkCity (38.37, 110.72, "Hanksville", "UT"); static final City cHIF = mkCity (41.12, 111.97, "HillAFB", "UT"); static final City cLGU = mkCity (41.78, 111.85, "Logan", "UT"); static final City cMLF = mkCity (38.72, 113.03, "Milford", "UT"); static final City cCNY = mkCity (38.77, 109.75, "Moab", "UT"); static final City cOGD = mkCity (41.18, 112.02, "Ogden", "UT"); static final City cPUC = mkCity (39.62, 110.75, "Price/Carbon", "UT"); static final City cPVU = mkCity (40.22, 111.72, "Provo", "UT"); static final City cU67 = mkCity (40.50, 110.63, "Roosevelt", "UT"); static final City cSGU = mkCity (37.08, 113.60, "SaintGeorge", "UT"); static final City cSLC = mkCity (40.78, 111.97, "SaltLakeCt", "UT"); static final City cT62 = mkCity (40.17, 112.20, "Tooele", "UT"); static final City cVEL = mkCity (40.45, 109.52, "Vernal", "UT"); static final City cENV = mkCity (41.22, 114.05, "Wendover", "UT"); static final City cBTV = mkCity (44.47, 73.15, "Burlington", "VT"); static final City cMPV = mkCity (44.20, 72.57, "Montpelier", "VT"); static final City cEFK = mkCity (45.55, 72.33, "Newport", "VT"); static final City cRUT = mkCity (43.53, 73.95, "Rutland", "VT"); static final City c9B2 = mkCity (44.42, 72.02, "StJohnsbury", "VT"); static final City cMNW = mkCity (42.88, 72.88, "Wilmington", "VT"); static final City cCHO = mkCity (38.13, 78.45, "Charlottesvi", "VA"); static final City cW39 = mkCity (37.50, 76.20, "Chesapeake", "VA"); static final City cDAN = mkCity (36.57, 79.33, "Danville", "VA"); static final City cDAA = mkCity (38.72, 77.18, "FortBelvoir", "VA"); static final City cFAF = mkCity (37.13, 76.62, "FortEustis", "VA"); static final City cHSP = mkCity (37.95, 79.82, "HotSprings", "VA"); static final City cLFI = mkCity (37.08, 76.37, "LangleyAFB", "VA"); static final City cLYH = mkCity (37.33, 79.20, "Lynchburg", "VA"); static final City cPHF = mkCity (37.13, 76.50, "NewportNews", "VA"); static final City cNGU = mkCity (36.93, 76.28, "NorfolkNAS", "VA"); static final City cORF = mkCity (36.90, 76.20, "NorfolkRgnl", "VA"); static final City cNTU = mkCity (36.82, 76.03, "OceanaNAS", "VA"); static final City cNYG = mkCity (38.50, 77.30, "QuanticoMca", "VA"); static final City cRIC = mkCity (37.50, 77.33, "Richmond", "VA"); static final City cROA = mkCity (37.32, 79.97, "RoanokeMuni", "VA"); static final City cSHD = mkCity (38.27, 78.85, "Staunton", "VA"); static final City cVQN = mkCity (36.95, 78.98, "Volens", "VA"); static final City cWAL = mkCity (37.85, 75.48, "WallopsSta", "VA"); static final City cBLI = mkCity (48.80, 122.53, "Bellingham", "WA"); static final City cPWT = mkCity (47.48, 122.77, "Bremerton", "WA"); static final City c75S = mkCity (48.50, 122.33, "Burlington", "WA"); static final City c63S = mkCity (48.88, 118.47, "Colville", "WA"); static final City cEPH = mkCity (47.32, 119.52, "Ephrata", "WA"); static final City cPAE = mkCity (47.92, 122.28, "Everet/Paine", "WA"); static final City cSKA = mkCity (47.62, 117.65, "Fairchild", "WA"); static final City cGRF = mkCity (47.08, 122.58, "FortLewis", "WA"); static final City cHMS = mkCity (46.57, 119.60, "Hanford", "WA"); static final City cHQM = mkCity (46.97, 123.97, "Hoquiam", "WA"); static final City cTCM = mkCity (47.15, 122.48, "McchordAFB", "WA"); static final City cMWH = mkCity (47.20, 119.32, "MosesLake", "WA"); static final City c76S = mkCity (48.25, 122.68, "OakHarbor", "WA"); static final City cOLM = mkCity (46.97, 122.90, "Olympia", "WA"); static final City c4OM = mkCity (48.42, 119.53, "Omak", "WA"); static final City cPSC = mkCity (46.27, 119.12, "Pasco", "WA"); static final City cCLM = mkCity (48.12, 123.50, "PortAngeles", "WA"); static final City cNOW = mkCity (48.22, 123.67, "PortAngeles", "WA"); static final City cPUW = mkCity (46.75, 117.12, "Pullman", "WA"); static final City cUIL = mkCity (47.95, 124.55, "Quillayute", "WA"); static final City cRNT = mkCity (47.50, 122.22, "Renton", "WA"); static final City cSEA = mkCity (47.45, 122.30, "Seattle", "WA"); static final City cBFI = mkCity (47.53, 122.30, "Seattle/Boeing", "WA"); static final City cSHN = mkCity (47.25, 123.15, "Shelton", "WA"); static final City cGEG = mkCity (47.63, 117.53, "Spokane", "WA"); static final City cSFF = mkCity (47.67, 117.33, "Spokane", "WA"); static final City cTIW = mkCity (47.27, 122.58, "Tacoma", "WA"); static final City cTDO = mkCity (46.48, 122.80, "Toledo", "WA"); static final City cALW = mkCity (46.10, 118.28, "WallaWalla", "WA"); static final City cEAT = mkCity (47.40, 120.20, "Wenatchee", "WA"); static final City cNUW = mkCity (48.35, 122.65, "WhidbeyIs", "WA"); static final City cYKM = mkCity (46.57, 120.53, "Yakima", "WA"); static final City cBKW = mkCity (37.78, 81.12, "Beckley", "WV"); static final City cBLF = mkCity (37.30, 81.22, "Bluefield", "WV"); static final City cCRW = mkCity (38.37, 81.60, "Charleston", "WV"); static final City cCKB = mkCity (39.28, 80.23, "Clarksburg", "WV"); static final City cEKN = mkCity (38.88, 79.85, "Elkins", "WV"); static final City cHTS = mkCity (38.37, 82.55, "Huntington", "WV"); static final City cLWB = mkCity (37.87, 80.40, "Lewisburg", "WV"); static final City cMRB = mkCity (39.40, 77.98, "Martinsburg", "WV"); static final City cMGW = mkCity (39.65, 79.92, "Morgantown", "WV"); static final City cPKB = mkCity (39.35, 81.43, "Parkersburg", "WV"); static final City cHLG = mkCity (40.18, 80.65, "Wheeling", "WV"); static final City cSSU = mkCity (37.46, 80.20, "WhiteSulph", "WV"); static final City cATW = mkCity (44.25, 88.52, "Appleton", "WI"); static final City cEAU = mkCity (44.87, 91.48, "EauClaire", "WI"); static final City cGRB = mkCity (44.48, 88.13, "GreenBay", "WI"); static final City cJVL = mkCity (42.62, 89.03, "Janesville", "WI"); static final City cLSE = mkCity (43.87, 91.25, "LaCrosse", "WI"); static final City cLNR = mkCity (43.20, 90.18, "LoneRock", "WI"); static final City cMSN = mkCity (43.13, 89.33, "Madison", "WI"); static final City cMTW = mkCity (44.13, 87.67, "Manitowac", "WI"); static final City cMKE = mkCity (42.95, 87.90, "Milwaukee", "WI"); static final City cMWC = mkCity (43.12, 88.05, "Milwaukee", "WI"); static final City cCWA = mkCity (44.78, 89.67, "Mosinee", "WI"); static final City cEEW = mkCity (44.22, 88.53, "Neenah", "WI"); static final City cOSH = mkCity (44.00, 88.57, "Oshkosh", "WI"); static final City cRHI = mkCity (45.63, 89.45, "Rhinelander", "WI"); static final City cRIE = mkCity (45.48, 91.72, "RiceLake", "WI"); static final City cVOK = mkCity (43.93, 90.27, "VolkFld", "WI"); static final City cAUW = mkCity (44.92, 89.62, "Wausau", "WI"); static final City cBPI = mkCity (42.57, 110.10, "BigPiney", "WY"); static final City cCPR = mkCity (42.92, 106.47, "Casper", "WY"); static final City cCYS = mkCity (41.15, 104.82, "Cheyenne", "WY"); static final City cCOD = mkCity (44.52, 109.02, "Cody", "WY"); static final City c4DG = mkCity (42.75, 105.38, "Douglas", "WY"); static final City cEVW = mkCity (41.33, 111.00, "Evanston", "WY"); static final City cGCC = mkCity (44.35, 105.53, "Gillette", "WY"); static final City cJAC = mkCity (43.60, 110.73, "Jackson", "WY"); static final City cLND = mkCity (42.82, 108.73, "Lander", "WY"); static final City cLAR = mkCity (41.32, 105.68, "Laramie", "WY"); static final City c4MC = mkCity (44.35, 104.81, "Moorcroft", "WY"); static final City cRWL = mkCity (41.80, 107.20, "Rawlins", "WY"); static final City cRIW = mkCity (43.05, 108.45, "Riverton", "WY"); static final City cRKS = mkCity (41.60, 109.07, "RockSprings", "WY"); static final City cSHR = mkCity (44.77, 106.97, "Sheridan", "WY"); static final City cWRL = mkCity (43.97, 107.97, "Worland", "WY"); static final City cP60 = mkCity (44.55, 110.42, "Yellowstone", "WY"); Vector cities; CityData () { this.cities = new Vector(); this.cities.add (cANB); this.cities.add (cAUO); this.cities.add (cBHM); this.cities.add (cCKL); this.cities.add (cDHN); this.cities.add (cOZR); this.cities.add (cGAD); this.cities.add (cHSV); this.cities.add (cMXF); this.cities.add (cMOB); this.cities.add (cBFM); this.cities.add (cMGM); this.cities.add (cMSL); this.cities.add (cSEM); this.cities.add (cTOI); this.cities.add (cTCL); this.cities.add (cADK); this.cities.add (cZ60); this.cities.add (cANC); this.cities.add (cMRI); this.cities.add (cAGN); this.cities.add (cANI); this.cities.add (cANN); this.cities.add (cATU); this.cities.add (cBRW); this.cities.add (cBTI); this.cities.add (cBET); this.cities.add (cBTT); this.cities.add (cBIG); this.cities.add (c5BI); this.cities.add (cZ68); this.cities.add (cCDE); this.cities.add (c5HN); this.cities.add (cCSP); this.cities.add (c5CE); this.cities.add (cWCR); this.cities.add (cZ00); this.cities.add (cCRC); this.cities.add (cCDB); this.cities.add (cCDV); this.cities.add (cCGA); this.cities.add (cSCC); this.cities.add (cDLG); this.cities.add (c5SZ); this.cities.add (cDUT); this.cities.add (cEAA); this.cities.add (cERO); this.cities.add (cELV); this.cities.add (cFAI); this.cities.add (cFWL); this.cities.add (cFIV); this.cities.add (cFVM); this.cities.add (cFYU); this.cities.add (cFNR); this.cities.add (cGBH); this.cities.add (cGAM); this.cities.add (cGKN); this.cities.add (cGST); this.cities.add (cZ26); this.cities.add (c5HR); this.cities.add (c5EA); this.cities.add (cHOM); this.cities.add (cZ49); this.cities.add (cILI); this.cities.add (cJNU); this.cities.add (cKAE); this.cities.add (cENA); this.cities.add (cKTN); this.cities.add (cAKN); this.cities.add (cADQ); this.cities.add (cOTZ); this.cities.add (c5WO); this.cities.add (cLNI); this.cities.add (cMLY); this.cities.add (cMXY); this.cities.add (cMCG); this.cities.add (cMYU); this.cities.add (cMDO); this.cities.add (cMHM); this.cities.add (cENN); this.cities.add (cKSM); this.cities.add (cIKO); this.cities.add (cOME); this.cities.add (cORT); this.cities.add (cOLI); this.cities.add (cPAQ); this.cities.add (c5PX); this.cities.add (cPSG); this.cities.add (cPIZ); this.cities.add (cZ76); this.cities.add (cKPC); this.cities.add (cPTH); this.cities.add (cPPC); this.cities.add (cPUO); this.cities.add (cZ30); this.cities.add (cPTI); this.cities.add (cSDP); this.cities.add (c5WD); this.cities.add (cSYA); this.cities.add (cSHH); this.cities.add (cSIT); this.cities.add (cSKJ); this.cities.add (cSGY); this.cities.add (cSKW); this.cities.add (c5SO); this.cities.add (cSNP); this.cities.add (c5GN); this.cities.add (cTKA); this.cities.add (cTAL); this.cities.add (cUMT); this.cities.add (cUNK); this.cities.add (cVWS); this.cities.add (cVDZ); this.cities.add (cAIN); this.cities.add (cWAA); this.cities.add (c5WT); this.cities.add (cZ22); this.cities.add (cWRG); this.cities.add (cYAK); this.cities.add (cDMA); this.cities.add (cDVT); this.cities.add (cDUG); this.cities.add (cFFZ); this.cities.add (cFLG); this.cities.add (cFHU); this.cities.add (cGBN); this.cities.add (cGYR); this.cities.add (cGCN); this.cities.add (cIGM); this.cities.add (cLUF); this.cities.add (cPGA); this.cities.add (c0E4); this.cities.add (cPHX); this.cities.add (cPRC); this.cities.add (cE74); this.cities.add (cSDL); this.cities.add (cE03); this.cities.add (cSOW); this.cities.add (cTUS); this.cities.add (cCHD); this.cities.add (cINW); this.cities.add (cYUM); this.cities.add (cNYL); this.cities.add (c1Y7); this.cities.add (cBYH); this.cities.add (cCDH); this.cities.add (cELD); this.cities.add (cFYV); this.cities.add (cFSM); this.cities.add (cHRO); this.cities.add (cHOT); this.cities.add (cJBR); this.cities.add (cLIT); this.cities.add (cLRF); this.cities.add (cLZK); this.cities.add (cPBF); this.cities.add (cASG); this.cities.add (cTXK); this.cities.add (cARG); this.cities.add (cNGZ); this.cities.add (cS11); this.cities.add (cACV); this.cities.add (cBFL); this.cities.add (cBAB); this.cities.add (cBUO); this.cities.add (cBYS); this.cities.add (cL35); this.cities.add (cBIH); this.cities.add (cBLU); this.cities.add (cBLH); this.cities.add (cBUR); this.cities.add (cNFG); this.cities.add (cCZZ); this.cities.add (cCRQ); this.cities.add (cMER); this.cities.add (cCIC); this.cities.add (cNID); this.cities.add (cCNO); this.cities.add (cCCR); this.cities.add (cCEC); this.cities.add (cDAG); this.cities.add (cEDW); this.cities.add (cNJK); this.cities.add (cEMT); this.cities.add (cNZJ); this.cities.add (cEKA); this.cities.add (cHGT); this.cities.add (cOAR); this.cities.add (cFAT); this.cities.add (cFUL); this.cities.add (cVCV); this.cities.add (cHHR); this.cities.add (cHWD); this.cities.add (cIPL); this.cities.add (cNRS); this.cities.add (cPOC); this.cities.add (cTVL); this.cities.add (cWJF); this.cities.add (cNLC); this.cities.add (cLVK); this.cities.add (cLGB); this.cities.add (cSLI); this.cities.add (cLAX); this.cities.add (cMMH); this.cities.add (cRIV); this.cities.add (cMYV); this.cities.add (cMHR); this.cities.add (cMCC); this.cities.add (cMCE); this.cities.add (cNKX); this.cities.add (cMOD); this.cities.add (cNUQ); this.cities.add (cMHV); this.cities.add (c1O5); this.cities.add (cMRY); this.cities.add (cMHS); this.cities.add (cMWS); this.cities.add (cAPC); this.cities.add (cEED); this.cities.add (cNZY); this.cities.add (cSBD); this.cities.add (cOAK); this.cities.add (cONT); this.cities.add (cOXR); this.cities.add (cPSP); this.cities.add (cPMD); this.cities.add (cPAO); this.cities.add (cPRB); this.cities.add (c53Q); this.cities.add (cNTD); this.cities.add (cPAA); this.cities.add (cPGU); this.cities.add (c87Q); this.cities.add (cPPD); this.cities.add (cRBL); this.cities.add (cRDD); this.cities.add (cRAL); this.cities.add (cSAC); this.cities.add (cSMF); this.cities.add (cSNS); this.cities.add (cSQL); this.cities.add (cL10); this.cities.add (cNUC); this.cities.add (cMYF); this.cities.add (cSAN); this.cities.add (cSDM); this.cities.add (cSEE); this.cities.add (c51Q); this.cities.add (cSFO); this.cities.add (cSJC); this.cities.add (cRHV); this.cities.add (cSBP); this.cities.add (cL98); this.cities.add (cN5G); this.cities.add (cNSI); this.cities.add (cSDB); this.cities.add (cSNA); this.cities.add (cSBA); this.cities.add (cSMX); this.cities.add (cSMO); this.cities.add (cSTS); this.cities.add (cO87); this.cities.add (cSIY); this.cities.add (cSCK); this.cities.add (c4SU); this.cities.add (cSVE); this.cities.add (cTRM); this.cities.add (cTOA); this.cities.add (cSUU); this.cities.add (cTRK); this.cities.add (cNTK); this.cities.add (cNXP); this.cities.add (cUKI); this.cities.add (cVNY); this.cities.add (cVBG); this.cities.add (cVIS); this.cities.add (cAFF); this.cities.add (cAKO); this.cities.add (cALS); this.cities.add (cASE); this.cities.add (cBJC); this.cities.add (cBKF); this.cities.add (cCOS); this.cities.add (cCEZ); this.cities.add (cCAG); this.cities.add (cDEN); this.cities.add (cDRO); this.cities.add (cEGE); this.cities.add (cAPA); this.cities.add (cFCS); this.cities.add (cFSR); this.cities.add (cFNL); this.cities.add (cFCL); this.cities.add (cGJT); this.cities.add (cGXY); this.cities.add (c2V9); this.cities.add (cGUC); this.cities.add (cLHX); this.cities.add (c4LJ); this.cities.add (cLXV); this.cities.add (cLIC); this.cities.add (c6V8); this.cities.add (cMTJ); this.cities.add (cPUB); this.cities.add (c1V1); this.cities.add (cS29); this.cities.add (cSBS); this.cities.add (cTAD); this.cities.add (cC96); this.cities.add (cBDR); this.cities.add (cDXR); this.cities.add (cGON); this.cities.add (cHFD); this.cities.add (c30N); this.cities.add (cHVN); this.cities.add (cN11); this.cities.add (c18N); this.cities.add (cBDL); this.cities.add (cDOV); this.cities.add (cILG); this.cities.add (cIAD); this.cities.add (cDCA); this.cities.add (cAQQ); this.cities.add (c90J); this.cities.add (cAGR); this.cities.add (cXMR); this.cities.add (cNZC); this.cities.add (cCEW); this.cities.add (cCTY); this.cities.add (cDAB); this.cities.add (cEGI); this.cities.add (cVPS); this.cities.add (cX91); this.cities.add (cFXE); this.cities.add (cFMY); this.cities.add (cFLL); this.cities.add (cRSW); this.cities.add (cGNV); this.cities.add (cHST); this.cities.add (cHRT); this.cities.add (cCRG); this.cities.add (cJAX); this.cities.add (cNIP); this.cities.add (cEYW); this.cities.add (cNQX); this.cities.add (cLAL); this.cities.add (cMCF); this.cities.add (cMAI); this.cities.add (cNRB); this.cities.add (cMLB); this.cities.add (cMIA); this.cities.add (cOPF); this.cities.add (cTMB); this.cities.add (cAPF); this.cities.add (cX68); this.cities.add (cMCO); this.cities.add (cORL); this.cities.add (cPFN); this.cities.add (cCOF); this.cities.add (cNPA); this.cities.add (cPNS); this.cities.add (cTBW); this.cities.add (cPIE); this.cities.add (cSFB); this.cities.add (cSRQ); this.cities.add (cTLH); this.cities.add (cTPA); this.cities.add (cTIX); this.cities.add (cPAM); this.cities.add (cVRB); this.cities.add (cPBI); this.cities.add (cNSE); this.cities.add (cABY); this.cities.add (cAMG); this.cities.add (cAHN); this.cities.add (cATL); this.cities.add (cPDK); this.cities.add (cFTY); this.cities.add (cAGS); this.cities.add (cSSI); this.cities.add (cCSG); this.cities.add (cMGE); this.cities.add (cMGF); this.cities.add (cLSF); this.cities.add (cLHW); this.cities.add (cSVN); this.cities.add (cLGC); this.cities.add (cMCN); this.cities.add (cVAD); this.cities.add (cWRB); this.cities.add (cRMG); this.cities.add (cSAV); this.cities.add (cVLD); this.cities.add (cAYS); this.cities.add (cHNA); this.cities.add (cBKH); this.cities.add (c1Z6); this.cities.add (cITO); this.cities.add (cHNL); this.cities.add (cOGG); this.cities.add (cHNG); this.cities.add (cKOA); this.cities.add (c0Z5); this.cities.add (cLNY); this.cities.add (cLIH); this.cities.add (cJHM); this.cities.add (cMKK); this.cities.add (c1Z2); this.cities.add (cMUE); this.cities.add (cBOI); this.cities.add (cBYI); this.cities.add (cU15); this.cities.add (cCOE); this.cities.add (cP69); this.cities.add (cGNG); this.cities.add (cS80); this.cities.add (cIDA); this.cities.add (cLWS); this.cities.add (cMLD); this.cities.add (c77M); this.cities.add (cMYL); this.cities.add (cMUO); this.cities.add (cS06); this.cities.add (cPIH); this.cities.add (c27U); this.cities.add (cSMN); this.cities.add (cU78); this.cities.add (cSUN); this.cities.add (cTWF); this.cities.add (cALN); this.cities.add (cARR); this.cities.add (cCPS); this.cities.add (cBMI); this.cities.add (cBDF); this.cities.add (cCTR); this.cities.add (cMDH); this.cities.add (cENL); this.cities.add (cCMI); this.cities.add (cCHI); this.cities.add (cCGX); this.cities.add (cMDW); this.cities.add (cORD); this.cities.add (cDNV); this.cities.add (cDKB); this.cities.add (cDEC); this.cities.add (cDPA); this.cities.add (cGBG); this.cities.add (cNBU); this.cities.add (cIKK); this.cities.add (cMQB); this.cities.add (cMWA); this.cities.add (cMMO); this.cities.add (cMTO); this.cities.add (cMLI); this.cities.add (cMVN); this.cities.add (cPIA); this.cities.add (cUIN); this.cities.add (cRFD); this.cities.add (cSLO); this.cities.add (cBLV); this.cities.add (cSPI); this.cities.add (cSQI); this.cities.add (cTAZ); this.cities.add (cVLA); this.cities.add (cBAK); this.cities.add (cBMG); this.cities.add (cEKM); this.cities.add (cEVV); this.cities.add (cFWA); this.cities.add (cGYY); this.cities.add (cGUS); this.cities.add (cIND); this.cities.add (cMIE); this.cities.add (cSBN); this.cities.add (cHUF); this.cities.add (cLAF); this.cities.add (cBRL); this.cities.add (cCID); this.cities.add (cDSM); this.cities.add (cDBQ); this.cities.add (cEST); this.cities.add (cFOD); this.cities.add (c3OI); this.cities.add (cMCW); this.cities.add (cOTM); this.cities.add (cSUX); this.cities.add (c3SE); this.cities.add (cALO); this.cities.add (cCNU); this.cities.add (c3KM); this.cities.add (cCNK); this.cities.add (cDDC); this.cities.add (c1K5); this.cities.add (cEMP); this.cities.add (cFLV); this.cities.add (cFRI); this.cities.add (cGCK); this.cities.add (cGLD); this.cities.add (cHYS); this.cities.add (cHLC); this.cities.add (cHUT); this.cities.add (cIXD); this.cities.add (cLBL); this.cities.add (cMHK); this.cities.add (cIAB); this.cities.add (cP28); this.cities.add (cOJC); this.cities.add (cRSL); this.cities.add (cSLN); this.cities.add (cTOP); this.cities.add (cFOE); this.cities.add (cICT); this.cities.add (cBWG); this.cities.add (cHOP); this.cities.add (cFTK); this.cities.add (cJKL); this.cities.add (cLEX); this.cities.add (cLOZ); this.cities.add (cLOU); this.cities.add (cSDF); this.cities.add (cOWB); this.cities.add (cPAH); this.cities.add (c5I3); this.cities.add (cESF); this.cities.add (cBAD); this.cities.add (cBTR); this.cities.add (cBVE); this.cities.add (c7R5); this.cities.add (c01R); this.cities.add (cAEX); this.cities.add (c41I); this.cities.add (cPOE); this.cities.add (cAXO); this.cities.add (c5R0); this.cities.add (c01T); this.cities.add (cHUM); this.cities.add (c7R4); this.cities.add (cLFT); this.cities.add (cLCH); this.cities.add (c7R3); this.cities.add (c1G7); this.cities.add (cMLU); this.cities.add (cPTN); this.cities.add (cARA); this.cities.add (cMSY); this.cities.add (cNBG); this.cities.add (cNEW); this.cities.add (c7R8); this.cities.add (cDTN); this.cities.add (cSHV); this.cities.add (cSIL); this.cities.add (cAUG); this.cities.add (cBGR); this.cities.add (cBHB); this.cities.add (cNHZ); this.cities.add (cCAR); this.cities.add (c3B1); this.cities.add (c6B2); this.cities.add (cHUL); this.cities.add (cLIZ); this.cities.add (cPWM); this.cities.add (cPQI); this.cities.add (cRKD); this.cities.add (cRUM); this.cities.add (cADW); this.cities.add (cBAL); this.cities.add (cBWI); this.cities.add (cMTN); this.cities.add (cFME); this.cities.add (cHGR); this.cities.add (cN80); this.cities.add (cNHK); this.cities.add (cAPG); this.cities.add (cSBY); this.cities.add (cBED); this.cities.add (cBVY); this.cities.add (cBOS); this.cities.add (c30B); this.cities.add (cCHH); this.cities.add (cAYE); this.cities.add (cHYA); this.cities.add (cLWM); this.cities.add (cMVY); this.cities.add (cACK); this.cities.add (cEWB); this.cities.add (cOWD); this.cities.add (cFMH); this.cities.add (cPSF); this.cities.add (cNZW); this.cities.add (cBAF); this.cities.add (cCEF); this.cities.add (cORH); this.cities.add (cAPN); this.cities.add (cARB); this.cities.add (cBTL); this.cities.add (cBEH); this.cities.add (cCIU); this.cities.add (cC10); this.cities.add (cP59); this.cities.add (cDET); this.cities.add (cDTW); this.cities.add (cESC); this.cities.add (cFNT); this.cities.add (cGRR); this.cities.add (cCMX); this.cities.add (cP58); this.cities.add (cHTL); this.cities.add (cIMT); this.cities.add (cIWD); this.cities.add (cJXN); this.cities.add (cAZO); this.cities.add (cLAN); this.cities.add (cMBL); this.cities.add (cMQT); this.cities.add (cMNM); this.cities.add (cMKG); this.cities.add (cPLN); this.cities.add (cPTK); this.cities.add (cMBS); this.cities.add (cSSM); this.cities.add (cSAW); this.cities.add (cMTC); this.cities.add (cP75); this.cities.add (cTVC); this.cities.add (cOSC); this.cities.add (cYIP); this.cities.add (cAEL); this.cities.add (cAXN); this.cities.add (cBJI); this.cities.add (cBRD); this.cities.add (cDTL); this.cities.add (cDLH); this.cities.add (cELO); this.cities.add (cFRM); this.cities.add (cFFM); this.cities.add (cGPZ); this.cities.add (cHIB); this.cities.add (cINL); this.cities.add (cY69); this.cities.add (cMKT); this.cities.add (cMML); this.cities.add (cFCM); this.cities.add (cMIC); this.cities.add (cMSP); this.cities.add (cPKD); this.cities.add (cP39); this.cities.add (cRWF); this.cities.add (cRST); this.cities.add (cSTP); this.cities.add (cSTC); this.cities.add (cTVF); this.cities.add (cP61); this.cities.add (cD45); this.cities.add (cOTG); this.cities.add (cCBM); this.cities.add (cGTR); this.cities.add (cGLH); this.cities.add (cGWO); this.cities.add (cGPT); this.cities.add (cPIB); this.cities.add (cJAN); this.cities.add (cBIX); this.cities.add (cLUL); this.cities.add (cMCB); this.cities.add (cNMM); this.cities.add (cMEI); this.cities.add (cHEZ); this.cities.add (cUOX); this.cities.add (cTUP); this.cities.add (cCOU); this.cities.add (cCGI); this.cities.add (cTBN); this.cities.add (cJEF); this.cities.add (cJLN); this.cities.add (cMCI); this.cities.add (cMKC); this.cities.add (cIRK); this.cities.add (cUMN); this.cities.add (cMKO); this.cities.add (cP02); this.cities.add (cGVW); this.cities.add (cP35); this.cities.add (cSGF); this.cities.add (cSTJ); this.cities.add (cSTL); this.cities.add (cSUS); this.cities.add (cVIH); this.cities.add (cH63); this.cities.add (cUNO); this.cities.add (cSZL); this.cities.add (cBIL); this.cities.add (cBZN); this.cities.add (c4BQ); this.cities.add (cBTM); this.cities.add (cCTB); this.cities.add (cDLN); this.cities.add (c3DU); this.cities.add (cGGW); this.cities.add (cGDV); this.cities.add (cGTF); this.cities.add (c3HT); this.cities.add (cHVR); this.cities.add (cHLN); this.cities.add (cJDN); this.cities.add (cFCA); this.cities.add (cLWT); this.cities.add (cLVM); this.cities.add (cGFA); this.cities.add (cMLS); this.cities.add (cMSO); this.cities.add (cMQM); this.cities.add (cSDY); this.cities.add (c3TH); this.cities.add (cWEY); this.cities.add (cWYS); this.cities.add (cOLF); this.cities.add (cANW); this.cities.add (cAIA); this.cities.add (cBIE); this.cities.add (cBBW); this.cities.add (cBUB); this.cities.add (cCDR); this.cities.add (cOLU); this.cities.add (cCZD); this.cities.add (cFNB); this.cities.add (cGRI); this.cities.add (cHSI); this.cities.add (c6V1); this.cities.add (cIML); this.cities.add (cEAR); this.cities.add (cLNK); this.cities.add (cMCK); this.cities.add (cMHN); this.cities.add (cOFK); this.cities.add (cOVN); this.cities.add (cLBF); this.cities.add (cONL); this.cities.add (cOFF); this.cities.add (cOMA); this.cities.add (cODX); this.cities.add (cBFF); this.cities.add (cSNY); this.cities.add (cVTN); this.cities.add (cAUI); this.cities.add (cU31); this.cities.add (cBAM); this.cities.add (cP38); this.cities.add (cEKO); this.cities.add (cELY); this.cities.add (cP68); this.cities.add (cNFL); this.cities.add (cHTH); this.cities.add (cL63); this.cities.add (cL76); this.cities.add (cLAS); this.cities.add (cLOL); this.cities.add (cDRA); this.cities.add (cLSV); this.cities.add (cOWY); this.cities.add (cRNO); this.cities.add (cTPH); this.cities.add (cAWH); this.cities.add (cWMC); this.cities.add (cUCC); this.cities.add (cBML); this.cities.add (cCON); this.cities.add (cAFN); this.cities.add (cEEN); this.cities.add (cLCI); this.cities.add (cLEB); this.cities.add (cMHT); this.cities.add (cMWN); this.cities.add (cASH); this.cities.add (cPSM); this.cities.add (c8B8); this.cities.add (cACY); this.cities.add (cN78); this.cities.add (cCDW); this.cities.add (cNEL); this.cities.add (cWRI); this.cities.add (cMIV); this.cities.add (cMMU); this.cities.add (cEWR); this.cities.add (cTEB); this.cities.add (cTTN); this.cities.add (cABQ); this.cities.add (cCVS); this.cities.add (cCNM); this.cities.add (cCAO); this.cities.add (c4CR); this.cities.add (c4SL); this.cities.add (cDMN); this.cities.add (cFMN); this.cities.add (cGUP); this.cities.add (cGNT); this.cities.add (cHOB); this.cities.add (cHMN); this.cities.add (cLRU); this.cities.add (cLVS); this.cities.add (cLAM); this.cities.add (c4MY); this.cities.add (cE28); this.cities.add (cRTN); this.cities.add (cROW); this.cities.add (cSAF); this.cities.add (cSVC); this.cities.add (cONM); this.cities.add (cE23); this.cities.add (cTCS); this.cities.add (cTCC); this.cities.add (c2C2); this.cities.add (cALB); this.cities.add (cN28); this.cities.add (cBGM); this.cities.add (cBUF); this.cities.add (cDSV); this.cities.add (cELM); this.cities.add (cFRG); this.cities.add (cGTB); this.cities.add (cGFL); this.cities.add (cRME); this.cities.add (cISP); this.cities.add (cITH); this.cities.add (cJHW); this.cities.add (cMSS); this.cities.add (cMSV); this.cities.add (cNYC); this.cities.add (cJFK); this.cities.add (cLGA); this.cities.add (cSWF); this.cities.add (cIAG); this.cities.add (cOGS); this.cities.add (cN66); this.cities.add (cPBG); this.cities.add (cPOU); this.cities.add (cROC); this.cities.add (cSLK); this.cities.add (cSCH); this.cities.add (cSYR); this.cities.add (cUCA); this.cities.add (cART); this.cities.add (cFOK); this.cities.add (cHPN); this.cities.add (cAVL); this.cities.add (cHAT); this.cities.add (cCLT); this.cities.add (cNKT); this.cities.add (c2DP); this.cities.add (c44W); this.cities.add (cECG); this.cities.add (cFAY); this.cities.add (cFBG); this.cities.add (cGSO); this.cities.add (cHKY); this.cities.add (cHSS); this.cities.add (cOAJ); this.cities.add (cISO); this.cities.add (cHFF); this.cities.add (cMQI); this.cities.add (cEWN); this.cities.add (cNCA); this.cities.add (cPOB); this.cities.add (cRDU); this.cities.add (cRWI); this.cities.add (cGSB); this.cities.add (cILM); this.cities.add (cINT); this.cities.add (cBIS); this.cities.add (cDVL); this.cities.add (cP11); this.cities.add (cDIK); this.cities.add (cFAR); this.cities.add (cGFK); this.cities.add (cRDR); this.cities.add (cJMS); this.cities.add (cP67); this.cities.add (cMIB); this.cities.add (cMOT); this.cities.add (cP24); this.cities.add (cISN); this.cities.add (cUNI); this.cities.add (cCAK); this.cities.add (cCVG); this.cities.add (cLUK); this.cities.add (cBKL); this.cities.add (cCGF); this.cities.add (cCLE); this.cities.add (cCMH); this.cities.add (cOSU); this.cities.add (cDAY); this.cities.add (cFDY); this.cities.add (cMFD); this.cities.add (cLCK); this.cities.add (cTOL); this.cities.add (cLNN); this.cities.add (cFFO); this.cities.add (cYNG); this.cities.add (cZZV); this.cities.add (cLTS); this.cities.add (cADM); this.cities.add (cBVO); this.cities.add (cCSM); this.cities.add (cWDG); this.cities.add (cFSI); this.cities.add (cGAG); this.cities.add (cHBR); this.cities.add (cLAW); this.cities.add (cMLC); this.cities.add (cOUN); this.cities.add (cOKC); this.cities.add (cPWA); this.cities.add (cPGO); this.cities.add (cPNC); this.cities.add (cSWO); this.cities.add (cTIK); this.cities.add (cTUL); this.cities.add (cEND); this.cities.add (cAST); this.cities.add (c3S2); this.cities.add (cBKE); this.cities.add (c4BK); this.cities.add (cBNO); this.cities.add (c92S); this.cities.add (cCZK); this.cities.add (cCVO); this.cities.add (cEUG); this.cities.add (cHIO); this.cities.add (cLMT); this.cities.add (cLGD); this.cities.add (c4LW); this.cities.add (cMEH); this.cities.add (cMFR); this.cities.add (cONP); this.cities.add (cOTH); this.cities.add (cONO); this.cities.add (cPDT); this.cities.add (cPDX); this.cities.add (cRDM); this.cities.add (cRBG); this.cities.add (cSLE); this.cities.add (cSXT); this.cities.add (cDLS); this.cities.add (cTTD); this.cities.add (cABE); this.cities.add (cAOO); this.cities.add (cBVI); this.cities.add (cBSI); this.cities.add (cBFD); this.cities.add (cDUJ); this.cities.add (cERI); this.cities.add (cFKL); this.cities.add (cCXY); this.cities.add (cHAR); this.cities.add (cJST); this.cities.add (cLNS); this.cities.add (cLBE); this.cities.add (cMDT); this.cities.add (cMUI); this.cities.add (cPNE); this.cities.add (cPHL); this.cities.add (cPSB); this.cities.add (cAGC); this.cities.add (cPIT); this.cities.add (cRDG); this.cities.add (c43M); this.cities.add (cUNV); this.cities.add (cAVP); this.cities.add (cIPT); this.cities.add (cNXX); this.cities.add (cBID); this.cities.add (cOQU); this.cities.add (cPVD); this.cities.add (cNCO); this.cities.add (cAND); this.cities.add (cNBC); this.cities.add (cCHS); this.cities.add (cCAE); this.cities.add (cFLO); this.cities.add (cGMU); this.cities.add (cGSP); this.cities.add (cMMT); this.cities.add (cMYR); this.cities.add (cCRE); this.cities.add (cSSC); this.cities.add (cSPA); this.cities.add (cABR); this.cities.add (cBKX); this.cities.add (c9V9); this.cities.add (cCHB); this.cities.add (c0V1); this.cities.add (cRCA); this.cities.add (cHON); this.cities.add (cY22); this.cities.add (cMHE); this.cities.add (cY26); this.cities.add (cP05); this.cities.add (cPHP); this.cities.add (cPIR); this.cities.add (cRAP); this.cities.add (cREJ); this.cities.add (cFSD); this.cities.add (cATY); this.cities.add (cYKN); this.cities.add (cTRI); this.cities.add (cCHA); this.cities.add (cCKV); this.cities.add (cCSV); this.cities.add (cDYR); this.cities.add (cMKL); this.cities.add (cTYS); this.cities.add (cMEM); this.cities.add (cNQA); this.cities.add (cMGL); this.cities.add (cBNA); this.cities.add (cMQY); this.cities.add (cABI); this.cities.add (cALI); this.cities.add (cAMA); this.cities.add (cAUS); this.cities.add (cBSM); this.cities.add (cBGS); this.cities.add (cHCA); this.cities.add (cBRO); this.cities.add (cBWD); this.cities.add (cFWH); this.cities.add (cNIR); this.cities.add (cCDS); this.cities.add (cCLL); this.cities.add (cCRP); this.cities.add (cNGP); this.cities.add (cCOT); this.cities.add (cDWH); this.cities.add (cDHT); this.cities.add (cNBE); this.cities.add (cADS); this.cities.add (cDFW); this.cities.add (cDAL); this.cities.add (cRBD); this.cities.add (cDRT); this.cities.add (cDYS); this.cities.add (cELP); this.cities.add (cEFD); this.cities.add (cFTW); this.cities.add (cHLR); this.cities.add (cGLS); this.cities.add (cGRK); this.cities.add (cGVT); this.cities.add (cGDP); this.cities.add (cHRL); this.cities.add (cHDO); this.cities.add (cIAH); this.cities.add (cHOU); this.cities.add (cJCT); this.cities.add (cSKF); this.cities.add (cERV); this.cities.add (cILE); this.cities.add (cNQI); this.cities.add (cLRD); this.cities.add (cDLF); this.cities.add (cGGG); this.cities.add (cLBB); this.cities.add (cLFK); this.cities.add (cMRF); this.cities.add (cMFE); this.cities.add (cMAF); this.cities.add (cMWL); this.cities.add (cPSX); this.cities.add (cPRX); this.cities.add (cPVW); this.cities.add (cBPT); this.cities.add (cRND); this.cities.add (cREE); this.cities.add (cRKP); this.cities.add (cSJT); this.cities.add (cSAT); this.cities.add (cSSF); this.cities.add (cP07); this.cities.add (cF39); this.cities.add (cT46); this.cities.add (cSEP); this.cities.add (cTPL); this.cities.add (cTYR); this.cities.add (cVCT); this.cities.add (cACT); this.cities.add (cSPS); this.cities.add (cINK); this.cities.add (c4BL); this.cities.add (cU17); this.cities.add (cCDC); this.cities.add (cU24); this.cities.add (cDPG); this.cities.add (cU16); this.cities.add (cU28); this.cities.add (c4HV); this.cities.add (cHIF); this.cities.add (cLGU); this.cities.add (cMLF); this.cities.add (cCNY); this.cities.add (cOGD); this.cities.add (cPUC); this.cities.add (cPVU); this.cities.add (cU67); this.cities.add (cSGU); this.cities.add (cSLC); this.cities.add (cT62); this.cities.add (cVEL); this.cities.add (cENV); this.cities.add (cBTV); this.cities.add (cMPV); this.cities.add (cEFK); this.cities.add (cRUT); this.cities.add (c9B2); this.cities.add (cMNW); this.cities.add (cCHO); this.cities.add (cW39); this.cities.add (cDAN); this.cities.add (cDAA); this.cities.add (cFAF); this.cities.add (cHSP); this.cities.add (cLFI); this.cities.add (cLYH); this.cities.add (cPHF); this.cities.add (cNGU); this.cities.add (cORF); this.cities.add (cNTU); this.cities.add (cNYG); this.cities.add (cRIC); this.cities.add (cROA); this.cities.add (cSHD); this.cities.add (cVQN); this.cities.add (cWAL); this.cities.add (cBLI); this.cities.add (cPWT); this.cities.add (c75S); this.cities.add (c63S); this.cities.add (cEPH); this.cities.add (cPAE); this.cities.add (cSKA); this.cities.add (cGRF); this.cities.add (cHMS); this.cities.add (cHQM); this.cities.add (cTCM); this.cities.add (cMWH); this.cities.add (c76S); this.cities.add (cOLM); this.cities.add (c4OM); this.cities.add (cPSC); this.cities.add (cCLM); this.cities.add (cNOW); this.cities.add (cPUW); this.cities.add (cUIL); this.cities.add (cRNT); this.cities.add (cSEA); this.cities.add (cBFI); this.cities.add (cSHN); this.cities.add (cGEG); this.cities.add (cSFF); this.cities.add (cTIW); this.cities.add (cTDO); this.cities.add (cALW); this.cities.add (cEAT); this.cities.add (cNUW); this.cities.add (cYKM); this.cities.add (cBKW); this.cities.add (cBLF); this.cities.add (cCRW); this.cities.add (cCKB); this.cities.add (cEKN); this.cities.add (cHTS); this.cities.add (cLWB); this.cities.add (cMRB); this.cities.add (cMGW); this.cities.add (cPKB); this.cities.add (cHLG); this.cities.add (cSSU); this.cities.add (cATW); this.cities.add (cEAU); this.cities.add (cGRB); this.cities.add (cJVL); this.cities.add (cLSE); this.cities.add (cLNR); this.cities.add (cMSN); this.cities.add (cMTW); this.cities.add (cMKE); this.cities.add (cMWC); this.cities.add (cCWA); this.cities.add (cEEW); this.cities.add (cOSH); this.cities.add (cRHI); this.cities.add (cRIE); this.cities.add (cVOK); this.cities.add (cAUW); this.cities.add (cBPI); this.cities.add (cCPR); this.cities.add (cCYS); this.cities.add (cCOD); this.cities.add (c4DG); this.cities.add (cEVW); this.cities.add (cGCC); this.cities.add (cJAC); this.cities.add (cLND); this.cities.add (cLAR); this.cities.add (c4MC); this.cities.add (cRWL); this.cities.add (cRIW); this.cities.add (cRKS); this.cities.add (cSHR); this.cities.add (cWRL); this.cities.add (cP60); } // Returns an IRange that generates the given number of cities. // Some cities may be generated more than once. IRange randomCities (int n) { AList result = new MTList(); for ( ; n > 0; n = n - 1) result = new ConsList (this.randomCity(), result); return new ListRanger (result); } Object randomCity () { return this.cities.elementAt (random (this.cities.size())); } // Random number generation. private java.util.Random rg = new java.util.Random(seed); private static final long seed = 5593005790707376012L; int random (int n) { int r = (int) (n * java.lang.Math.random()); // int r = (int) (n * rg.nextDouble()); if ((0 <= r) && (r < n)) return r; return random (n); } }