diff --git a/data/.ipynb_checkpoints/beers-checkpoint.csv b/data/.ipynb_checkpoints/beers-checkpoint.csv deleted file mode 100644 index b041f48..0000000 --- a/data/.ipynb_checkpoints/beers-checkpoint.csv +++ /dev/null @@ -1,2408 +0,0 @@ -,abv,ibu,id,name,style,brewery_id,ounces -0,0.05,,1436,Pub Beer,American Pale Lager,408,12.0 -1,0.066,,2265,Devil's Cup,American Pale Ale (APA),177,12.0 -2,0.071,,2264,Rise of the Phoenix,American IPA,177,12.0 -3,0.09,,2263,Sinister,American Double / Imperial IPA,177,12.0 -4,0.075,,2262,Sex and Candy,American IPA,177,12.0 -5,0.077,,2261,Black Exodus,Oatmeal Stout,177,12.0 -6,0.045,,2260,Lake Street Express,American Pale Ale (APA),177,12.0 -7,0.065,,2259,Foreman,American Porter,177,12.0 -8,0.055,,2258,Jade,American Pale Ale (APA),177,12.0 -9,0.086,,2131,Cone Crusher,American Double / Imperial IPA,177,12.0 -10,0.07200000000000001,,2099,Sophomoric Saison,Saison / Farmhouse Ale,177,12.0 -11,0.073,,2098,Regional Ring Of Fire,Saison / Farmhouse Ale,177,12.0 -12,0.069,,2097,Garce Selé,Saison / Farmhouse Ale,177,12.0 -13,0.085,,1980,Troll Destroyer,Belgian IPA,177,12.0 -14,0.061,60.0,1979,Bitter Bitch,American Pale Ale (APA),177,12.0 -15,0.06,,2318,Ginja Ninja,Cider,154,12.0 -16,0.06,,2170,Cherried Away,Cider,154,12.0 -17,0.06,,2169,Rhubarbarian,Cider,154,12.0 -18,0.06,,1502,BrightCider,Cider,154,12.0 -19,0.08199999999999999,,1593,He Said Baltic-Style Porter,Baltic Porter,368,12.0 -20,0.08199999999999999,,1592,He Said Belgian-Style Tripel,Tripel,368,12.0 -21,0.099,92.0,1036,Lower De Boom,American Barleywine,368,8.4 -22,0.079,45.0,1024,Fireside Chat,Winter Warmer,368,12.0 -23,0.079,,976,Marooned On Hog Island,American Stout,368,12.0 -24,0.044000000000000004,42.0,876,Bitter American,American Pale Ale (APA),368,12.0 -25,0.049,17.0,802,Hell or High Watermelon Wheat (2009),Fruit / Vegetable Beer,368,12.0 -26,0.049,17.0,801,Hell or High Watermelon Wheat (2009),Fruit / Vegetable Beer,368,12.0 -27,0.049,17.0,800,21st Amendment Watermelon Wheat Beer (2006),Fruit / Vegetable Beer,368,12.0 -28,0.07,70.0,799,21st Amendment IPA (2006),American IPA,368,12.0 -29,0.07,70.0,797,Brew Free! or Die IPA (2008),American IPA,368,12.0 -30,0.07,70.0,796,Brew Free! or Die IPA (2009),American IPA,368,12.0 -31,0.085,52.0,531,Special Edition: Allies Win The War!,English Strong Ale,368,12.0 -32,0.09699999999999999,94.0,432,Hop Crisis,American Double / Imperial IPA,368,12.0 -33,0.044000000000000004,42.0,353,Bitter American (2011),American Pale Ale (APA),368,12.0 -34,0.079,45.0,321,Fireside Chat (2010),Winter Warmer,368,12.0 -35,0.068,65.0,173,Back in Black,American Black Ale,368,12.0 -36,0.083,35.0,11,Monk's Blood,Belgian Dark Ale,368,12.0 -37,0.07,65.0,10,Brew Free! or Die IPA,American IPA,368,12.0 -38,0.049,17.0,9,Hell or High Watermelon Wheat,Fruit / Vegetable Beer,368,12.0 -39,0.07,82.0,2519,Bimini Twist,American IPA,67,12.0 -40,0.05,,2518,Beach Blonde,American Blonde Ale,67,12.0 -41,0.059000000000000004,,2517,Rod Bender Red,American Amber / Red Ale,67,12.0 -42,0.035,11.0,2545,Passion Fruit Prussia,Berliner Weissbier,60,12.0 -43,0.045,18.0,2544,Send Help,American Blonde Ale,60,12.0 -44,0.055,,2324,Cast Iron Oatmeal Brown,American Brown Ale,60,12.0 -45,0.06,,2288,Reprise Centennial Red,American Amber / Red Ale,60,12.0 -46,0.055,,2287,Alter Ego,American Black Ale,60,12.0 -47,0.065,,2286,Divided Sky,American IPA,60,12.0 -48,0.065,,2285,Resurrected,American IPA,60,12.0 -49,0.05,28.0,1870,Contact High,American Pale Wheat Ale,60,12.0 -50,0.065,,2603,Galaxyfest,American IPA,27,16.0 -51,0.05,45.0,2602,Citrafest,American IPA,27,16.0 -52,0.09,,2220,Barn Yeti,Belgian Strong Dark Ale,27,16.0 -53,0.069,65.0,2219,Scarecrow,American IPA,27,16.0 -54,0.09,50.0,2218,Ironman,English Strong Ale,27,16.0 -55,0.046,15.0,2217,Honey Kolsch,Kölsch,27,16.0 -56,0.052000000000000005,18.0,2216,Copperhead Amber,Belgian Dark Ale,27,16.0 -57,0.059000000000000004,75.0,972,Rude Parrot IPA,American IPA,481,16.0 -58,0.054000000000000006,30.0,866,British Pale Ale (2010),English Pale Ale,481,16.0 -59,0.054000000000000006,30.0,48,British Pale Ale,English Pale Ale,481,16.0 -60,0.084,82.0,47,Ballz Deep Double IPA,American Double / Imperial IPA,481,16.0 -61,0.038,,1583,Wolfman's Berliner,Berliner Weissbier,373,12.0 -62,0.055,26.0,1165,Colorado Native,American Amber / Red Lager,462,12.0 -63,0.055,26.0,431,Colorado Native (2011),American Amber / Red Lager,462,12.0 -64,0.065,52.0,516,Jockamo IPA,American IPA,533,12.0 -65,0.042,13.0,515,Purple Haze,Fruit / Vegetable Beer,533,12.0 -66,0.045,17.0,514,Abita Amber,American Amber / Red Lager,533,12.0 -67,0.08199999999999999,68.0,2540,Citra Ass Down,American IPA,62,16.0 -68,0.05,20.0,2539,The Brown Note,American Brown Ale,62,16.0 -69,0.08,68.0,2686,Citra Ass Down,American Double / Imperial IPA,1,16.0 -70,0.125,80.0,2685,London Balling,English Barleywine,1,16.0 -71,0.077,25.0,2684,35 K,Milk / Sweet Stout,1,16.0 -72,0.042,42.0,2683,A Beer,American Pale Ale (APA),1,16.0 -73,0.05,25.0,2682,Rules are Rules,German Pilsener,1,16.0 -74,0.066,21.0,2681,Flesh Gourd'n,Pumpkin Ale,1,16.0 -75,0.04,13.0,2680,Sho'nuff,Belgian Pale Ale,1,16.0 -76,0.055,17.0,2679,Bloody Show,American Pilsner,1,16.0 -77,0.076,68.0,2678,Rico Sauvin,American Double / Imperial IPA,1,16.0 -78,0.051,38.0,2677,Coq de la Marche,Saison / Farmhouse Ale,1,16.0 -79,0.065,,2676,Kamen Knuddeln,American Wild Ale,1,16.0 -80,0.06,65.0,2675,Pile of Face,American IPA,1,16.0 -81,0.05,20.0,2674,The Brown Note,English Brown Ale,1,16.0 -82,0.053,35.0,1594,Maylani's Coconut Stout,American Stout,367,16.0 -83,0.05,35.0,1162,Oatmeal PSA,American Pale Ale (APA),367,16.0 -84,0.052000000000000005,33.0,1137,Pre Flight Pilsner,American Pilsner,367,16.0 -85,0.04,20.0,2403,P-Town Pilsner,American Pilsner,117,12.0 -86,0.053,36.0,2402,Klickitat Pale Ale,American Pale Ale (APA),117,12.0 -87,0.08199999999999999,103.0,2401,Yellow Wolf Imperial IPA,American Double / Imperial IPA,117,12.0 -88,0.053,40.0,1921,Freeride APA,American Pale Ale (APA),270,12.0 -89,0.053,18.0,1920,Alaskan Amber,Altbier,270,12.0 -90,0.057,,2501,Hopalicious,American Pale Ale (APA),73,12.0 -91,0.043,,1535,Kentucky Kölsch,Kölsch,388,16.0 -92,0.065,,1149,Kentucky IPA,American IPA,388,16.0 -93,0.054000000000000006,,1474,Dusty Trail Pale Ale,American Pale Ale (APA),401,16.0 -94,0.062,,1473,Damnesia,American IPA,401,16.0 -95,0.062,43.0,837,Desolation IPA,American IPA,401,16.0 -96,0.059000000000000004,,2592,Liberty Ale,American IPA,35,12.0 -97,0.065,,2578,IPA,American IPA,35,12.0 -98,0.045,,2577,Summer Wheat,American Pale Wheat Ale,35,12.0 -99,0.049,,2103,California Lager,American Amber / Red Lager,35,12.0 -100,0.055999999999999994,,2102,Brotherhood Steam,California Common / Steam Beer,35,12.0 -101,0.042,,2291,Blood Orange Gose,Gose,171,12.0 -102,0.042,,1818,Keebarlin' Pale Ale,American Pale Ale (APA),171,12.0 -103,0.048,,1738,"the Kimmie, the Yink and the Holy Gose",Gose,171,12.0 -104,0.06,,1563,Fall Hornin',Pumpkin Ale,171,12.0 -105,0.057,13.0,1520,Barney Flats Oatmeal Stout,Oatmeal Stout,171,12.0 -106,0.055999999999999994,4.0,1350,Summer Solstice,Cream Ale,171,12.0 -107,0.07,80.0,1327,Hop Ottin' IPA,American IPA,171,12.0 -108,0.057999999999999996,15.0,1326,Boont Amber Ale,American Amber / Red Ale,171,12.0 -109,0.057,13.0,1221,Barney Flats Oatmeal Stout,Oatmeal Stout,171,12.0 -110,0.055,25.0,1217,El Steinber Dark Lager,Vienna Lager,171,16.0 -111,0.057999999999999996,15.0,811,Boont Amber Ale (2010),American Amber / Red Ale,171,12.0 -112,0.055999999999999994,4.0,753,Summer Solstice Cerveza Crema (2009),Cream Ale,171,12.0 -113,0.057,13.0,572,Barney Flats Oatmeal Stout (2012),Oatmeal Stout,171,12.0 -114,0.069,6.0,523,Winter Solstice,Winter Warmer,171,12.0 -115,0.07,80.0,367,Hop Ottin' IPA (2011),American IPA,171,12.0 -116,0.057999999999999996,15.0,78,Boont Amber Ale (2011),American Amber / Red Ale,171,12.0 -117,0.055999999999999994,4.0,77,Summer Solstice (2011),Cream Ale,171,12.0 -118,0.055,28.0,76,Poleeko Gold Pale Ale (2009),American Pale Ale (APA),171,12.0 -119,0.06,,2337,Charlie's Rye IPA,American IPA,146,16.0 -120,0.054000000000000006,,410,River Pig Pale Ale,American Pale Ale (APA),542,16.0 -121,0.047,,409,Oaky's Oatmeal Stout,Oatmeal Stout,542,16.0 -122,0.05,,1294,Angry Orchard Apple Ginger,Cider,434,16.0 -123,0.05,,1293,Angry Orchard Crisp Apple,Cider,434,16.0 -124,0.05,,1292,Angry Orchard Crisp Apple,Cider,434,12.0 -125,0.068,,2207,Golden One,Belgian Pale Ale,193,12.0 -126,0.06,,2040,Arjuna,Witbier,193,12.0 -127,0.085,,2039,Uroboros,American Stout,193,12.0 -128,0.071,75.0,2511,Long Leaf,American IPA,69,16.0 -129,0.047,19.0,2510,Honey Badger Blonde,American Blonde Ale,69,16.0 -130,0.06,23.0,2509,Porter (a/k/a Black Gold Porter),American Porter,69,16.0 -131,0.06,55.0,413,Sky High Rye,American Pale Ale (APA),541,12.0 -132,0.062,17.0,390,Whitsun,American Pale Wheat Ale,541,12.0 -133,0.052000000000000005,,735,On-On Ale (2008),American Pale Ale (APA),513,12.0 -134,0.092,50.0,1333,Quakertown Stout,American Double / Imperial Stout,426,12.0 -135,0.051,20.0,1332,Greenbelt Farmhouse Ale,Saison / Farmhouse Ale,426,12.0 -136,0.052000000000000005,10.0,1172,Mo's Gose,Gose,461,16.0 -137,0.07,45.0,1322,Green Bullet Organic India Pale Ale,American IPA,429,16.0 -138,0.032,27.0,550,Rocket Girl,Kölsch,528,12.0 -139,0.053,26.0,429,Ninja Porter,American Porter,528,12.0 -140,0.06,69.0,428,Shiva IPA,American IPA,528,12.0 -141,0.048,,1640,Aslan Kölsch,Kölsch,353,16.0 -142,0.077,,1639,Aslan IPA,American IPA,353,16.0 -143,0.077,,1638,Aslan Amber,American Amber / Red Ale,353,16.0 -144,0.055999999999999994,27.0,597,This Season's Blonde,American Blonde Ale,523,12.0 -145,0.07,67.0,596,Independence Pass Ale,American IPA,523,12.0 -146,0.057,40.0,1580,Trolley Stop Stout,American Stout,374,12.0 -147,0.08199999999999999,138.0,980,Bitter Bitch Imperial IPA,American Double / Imperial IPA,374,12.0 -148,0.062,35.0,979,Poop Deck Porter,American Porter,374,12.0 -149,0.06,35.0,978,Old Red Beard Amber Ale,American Amber / Red Ale,374,12.0 -150,0.075,115.0,2503,Hop A-Peel,American Double / Imperial IPA,72,16.0 -151,0.055,12.0,2502,Vanilla Java Porter,American Porter,72,16.0 -152,0.052000000000000005,,2495,Michelada,Fruit / Vegetable Beer,72,16.0 -153,0.045,8.0,534,Dirty Blonde Ale,American Blonde Ale,72,12.0 -154,0.05,62.0,528,Grand Circus IPA,American IPA,72,12.0 -155,0.05,12.0,527,Atwater's Lager,Munich Helles Lager,72,12.0 -156,0.07,,1409,Heavy Machinery IPA Series #1: Heavy Fist,American Black Ale,413,16.0 -157,0.062,,343,Fire Eagle IPA,American IPA,413,12.0 -158,0.051,,342,Peacemaker,American Pale Ale (APA),413,12.0 -159,0.053,,341,Pearl-Snap,German Pilsener,413,12.0 -160,0.052000000000000005,,340,Black Thunder,Schwarzbier,413,12.0 -161,0.08,,2589,Raja,American Double / Imperial IPA,37,12.0 -162,0.064,,2546,Perzik Saison,Saison / Farmhouse Ale,37,12.0 -163,0.047,42.0,146,Avery Joe’s Premium American Pilsner,German Pilsener,37,12.0 -164,0.055999999999999994,10.0,108,White Rascal,Witbier,37,12.0 -165,0.063,69.0,107,Avery India Pale Ale,American IPA,37,12.0 -166,0.055,17.0,106,Ellie’s Brown Ale,American Brown Ale,37,12.0 -167,0.062,17.0,1620,Pumpkin Beast,Pumpkin Ale,360,12.0 -168,0.07200000000000001,22.0,1579,OktoberBeast,Märzen / Oktoberfest,360,12.0 -169,0.048,23.0,1228,Mad Beach,American Pale Wheat Ale,360,12.0 -170,0.067,,705,Hog Wild India Pale Ale,American IPA,360,12.0 -171,0.092,5.0,704,Devils Tramping Ground Tripel,Tripel,360,12.0 -172,0.061,41.0,702,Hot Rod Red,American Amber / Red Ale,360,12.0 -173,0.086,,2058,Palate Mallet,American Double / Imperial IPA,235,12.0 -174,0.06,,1483,Back East Porter,American Porter,235,12.0 -175,0.049,,1426,Back East Golden Ale,American Blonde Ale,235,12.0 -176,0.07,,1132,Misty Mountain IPA,American IPA,235,12.0 -177,0.05,,1131,Back East Ale,American Amber / Red Ale,235,12.0 -178,0.06,,1876,Truck Stop Honey Brown Ale,English Brown Ale,286,12.0 -179,0.06,43.0,1875,Naked Pig Pale Ale,American Pale Ale (APA),286,12.0 -180,0.068,70.0,966,Topcutter India Pale Ale,American IPA,483,12.0 -181,0.044000000000000004,38.0,965,Field 41 Pale Ale,American Pale Ale (APA),483,12.0 -182,0.07,,2593,Grapefruit Sculpin,American IPA,34,12.0 -183,0.038,40.0,2105,Even Keel,American IPA,34,12.0 -184,0.052000000000000005,23.0,1401,Ballast Point Pale Ale,Kölsch,34,12.0 -185,0.07,75.0,1400,Big Eye India Pale Ale,American IPA,34,12.0 -186,0.046,,1019,Longfin Lager,Munich Helles Lager,34,12.0 -187,0.07,70.0,1018,Sculpin IPA,American IPA,34,12.0 -188,0.045,,1776,All Nighter Ale,Extra Special / Strong Bitter (ESB),318,12.0 -189,0.045,20.0,1644,Banner American Rye,Rye Beer,318,12.0 -190,0.035,45.0,1643,Banner American Ale,American Amber / Red Ale,318,12.0 -191,0.07,46.0,2618,Thai.p.a,American IPA,20,16.0 -192,0.06,60.0,2005,Barrio Blanco,American IPA,251,12.0 -193,0.045,,1343,Barrio Tucson Blonde,American Blonde Ale,251,12.0 -194,0.049,22.0,2404,Hop in the ‘Pool Helles,American Pilsner,116,12.0 -195,0.067,60.0,2323,Ultra Gnar Gnar IPA,American IPA,116,12.0 -196,0.068,62.0,2189,In-Tents India Pale Lager,American Pale Lager,116,12.0 -197,0.05,20.0,2188,Lost Meridian Wit,Witbier,116,12.0 -198,0.051,45.0,2187,Celestial Meridian Cascadian Dark Lager,Euro Dark Lager,116,12.0 -199,0.054000000000000006,55.0,1966,Wagon Party,California Common / Steam Beer,258,12.0 -200,0.067,70.0,1965,Sky-Five,American IPA,258,12.0 -201,0.05,28.0,1964,Stargrazer,Schwarzbier,258,12.0 -202,0.054000000000000006,48.0,1963,Wonderstuff,German Pilsener,258,12.0 -203,0.053,,1855,Tarnation California-Style Lager,California Common / Steam Beer,292,12.0 -204,0.07,42.0,1778,On the Count of 3 (2015),Hefeweizen,292,16.0 -205,0.047,,1209,Summer Swelter,American Pale Wheat Ale,292,12.0 -206,0.068,,954,Phantom Punch Winter Stout,Foreign / Export Stout,292,12.0 -207,0.066,,910,Hayride Autumn Ale,Rye Beer,292,12.0 -208,0.047,,707,Celsius Summer Ale (2012),American Pale Wheat Ale,292,12.0 -209,0.055,35.0,533,Amber Road,American Amber / Red Ale,292,12.0 -210,0.049,28.0,183,Pamola Xtra Pale Ale,American Pale Ale (APA),292,12.0 -211,0.069,69.0,182,Stowaway IPA,American IPA,292,12.0 -212,0.08800000000000001,108.0,1806,Hoptopus Double IPA,American Double / Imperial IPA,306,16.0 -213,0.05,10.0,2435,Watermelon Ale,Fruit / Vegetable Beer,103,12.0 -214,0.057999999999999996,45.0,2423,Fenway American Pale Ale,American Pale Ale (APA),103,12.0 -215,0.068,85.0,2420,Back Bay IPA,American IPA,103,12.0 -216,0.048,16.0,2419,Bunker Hill Blueberry Ale ,Other,103,12.0 -217,0.057999999999999996,,2494,Oberon,American Pale Wheat Ale,76,12.0 -218,0.06,,2325,Smitten,Rye Beer,76,16.0 -219,0.05,,2022,Winter White,Witbier,76,16.0 -220,0.057999999999999996,,1989,Oberon,American Pale Wheat Ale,76,16.0 -221,0.07,,1988,Two Hearted,American IPA,76,16.0 -222,0.057999999999999996,,1955,Best Brown,American Brown Ale,76,16.0 -223,0.044000000000000004,44.0,2558,Moar,English India Pale Ale (IPA),53,12.0 -224,0.083,,2557,Uber Lupin Schwarz IPA,American Double / Imperial IPA,53,16.0 -225,0.057,27.0,2556,Nordic Blonde,American Blonde Ale,53,12.0 -226,0.06,,2496,Cold Press,American Black Ale,75,12.0 -227,0.07200000000000001,87.0,2410,Harness the Winter,American IPA,75,12.0 -228,0.055999999999999994,32.0,1902,14° ESB ,Extra Special / Strong Bitter (ESB),75,12.0 -229,0.062,68.0,1901,Bent Hop Golden IPA,American IPA,75,12.0 -230,0.06,34.0,1261,Bent Paddle Black Ale,American Black Ale,75,12.0 -231,0.05,38.0,1253,Venture Pils,German Pilsener,75,12.0 -232,0.055,40.0,1900,Lost Sailor IPA,English India Pale Ale (IPA),278,12.0 -233,0.053,20.0,1317,Steel Rail Extra Pale Ale,American Pale Ale (APA),278,12.0 -234,0.078,,1158,La Frontera Premium IPA,American IPA,463,12.0 -235,0.047,,1157,Tejas Lager,Czech Pilsener,463,12.0 -236,0.064,,1156,Number 22 Porter,American Porter,463,12.0 -237,0.055999999999999994,,1155,Big Bend Hefeweizen,Hefeweizen,463,12.0 -238,0.06,,1154,Terlingua Gold,American Blonde Ale,463,12.0 -239,0.081,17.0,2104,Aprè Shred,American Strong Ale,220,16.0 -240,0.095,104.0,1762,Hemlock Double IPA,American Double / Imperial IPA,220,12.0 -241,0.040999999999999995,,1422,West Portal Colorado Common Summer Ale,California Common / Steam Beer,220,16.0 -242,0.067,85.0,1067,Disconnected Red,American Amber / Red Ale,220,16.0 -243,0.07,,1003,Big Elm IPA,American IPA,477,12.0 -244,0.065,,1002,Gerry Dog Stout,American Stout,477,12.0 -245,0.06,,1001,413 Farmhouse Ale,Saison / Farmhouse Ale,477,12.0 -246,0.08,54.0,2639,Dark Star,American Stout,8,16.0 -247,0.062,,2469,Ryecoe,American IPA,8,16.0 -248,0.06,,2586,Blueberry Blonde,Fruit / Vegetable Beer,40,12.0 -249,0.075,60.0,2585,Galaxy IPA,American IPA,40,16.0 -250,0.05,32.0,643,Big River Pilsner,Czech Pilsener,519,12.0 -251,0.06,55.0,632,House Brand IPA,American IPA,519,12.0 -252,0.062,65.0,1714,Big Sky IPA,American IPA,336,12.0 -253,0.05,40.0,1713,Scape Goat Pale Ale,English Pale Ale,336,12.0 -254,0.05,35.0,1712,Montana Trout Slayer Ale,American Pale Wheat Ale,336,12.0 -255,0.051,26.0,1711,Moose Drool Brown Ale,American Brown Ale,336,12.0 -256,0.07200000000000001,60.0,1456,Powder Hound Winter Ale,English Strong Ale,336,12.0 -257,0.051,26.0,767,Moose Drool Brown Ale (2011),American Brown Ale,336,12.0 -258,0.05,35.0,766,Montana Trout Slayer Ale (2012),American Pale Wheat Ale,336,12.0 -259,0.062,65.0,579,Big Sky IPA (2012),American IPA,336,12.0 -260,0.047,,168,Summer Honey,American Blonde Ale,336,12.0 -261,0.05,40.0,159,Scape Goat Pale Ale (2010),English Pale Ale,336,12.0 -262,0.05,35.0,35,Montana Trout Slayer Ale (2009),American Pale Wheat Ale,336,12.0 -263,0.051,26.0,34,Moose Drool Brown Ale (2009),American Brown Ale,336,12.0 -264,0.069,81.0,2096,Arcus IPA,American IPA,221,12.0 -265,0.057999999999999996,38.0,2095,Wavemaker,American Amber / Red Ale,221,12.0 -266,0.053,43.0,1257,Jack Pine Savage,American Pale Ale (APA),444,16.0 -267,0.099,85.0,1256,Forest Fire Imperial Smoked Rye,Rye Beer,444,16.0 -268,0.098,76.0,1255,Bad Axe Imperial IPA,American Double / Imperial IPA,444,16.0 -269,0.055,35.0,986,Morning Wood,Oatmeal Stout,444,16.0 -270,0.066,50.0,985,Bark Bite IPA,American IPA,444,16.0 -271,0.055,45.0,2508,Jalapeno Pale Ale,American Pale Ale (APA),70,16.0 -272,0.052000000000000005,,1441,Blown Out Brown,American Brown Ale,407,12.0 -273,0.063,,1413,Single Hop Ale,American Pale Ale (APA),407,12.0 -274,0.054000000000000006,,1411,Sawtooth Ale,American Blonde Ale,407,12.0 -275,0.07200000000000001,75.0,2620,Saucy Intruder,Rye Beer,18,16.0 -276,0.045,16.0,2412,Deception,American Blonde Ale,112,12.0 -277,0.075,35.0,1898,Blackmarket Rye IPA,American IPA,112,12.0 -278,0.05,8.0,1897,Black Market Hefeweizen,Hefeweizen,112,12.0 -279,0.057999999999999996,44.0,1896,Aftermath Pale Ale,American Pale Ale (APA),112,12.0 -280,0.071,83.0,1850,American India Red Ale,American Strong Ale,294,12.0 -281,0.071,45.0,1849,American Red Porter,American Porter,294,12.0 -282,0.078,34.0,1848,American Red Saison,Saison / Farmhouse Ale,294,12.0 -283,0.066,44.0,1847,Colorado Red Ale,American Amber / Red Ale,294,12.0 -284,0.048,16.0,2485,Saddle Bronc Brown Ale,American Brown Ale,79,12.0 -285,0.046,20.0,2484,Bomber Mountain Amber Ale,American Amber / Red Ale,79,12.0 -286,0.073,,2449,Flying Sailor,Rye Beer,95,12.0 -287,0.048,47.0,2634,Nordskye ,American IPA,12,12.0 -288,0.06,30.0,2153,North Third Stout,Foreign / Export Stout,12,12.0 -289,0.052000000000000005,,1953,Honey Lav,American Pale Wheat Ale,12,12.0 -290,0.068,,1496,Coconut Brown Ale,American Brown Ale,12,12.0 -291,0.07,51.0,1481,51K IPA,American IPA,12,12.0 -292,0.055,,1480,Grand Rabbits,Cream Ale,12,12.0 -293,0.05,,1564,1800 Big Log Wheat (2012),American Pale Wheat Ale,380,12.0 -294,,,1541,Double Play Pilsner,American Pilsner,380,12.0 -295,0.055,,1321,Brewerhood Brown Ale,American Brown Ale,380,12.0 -296,0.08,,1320,Last Call Imperial Amber Ale,American Amber / Red Ale,380,12.0 -297,0.096,,1319,Pernicious Double IPA,American Double / Imperial IPA,380,12.0 -298,0.052000000000000005,,1303,6-4-3 Double Play Pilsner,German Pilsener,380,12.0 -299,,,1025,N Street Drive-In 50th Anniversary IPA,American Double / Imperial IPA,380,12.0 -300,0.05,,1012,467 Ethan's Stout,American Stout,380,12.0 -301,0.064,,942,1335 Wicked Snout,Saison / Farmhouse Ale,380,12.0 -302,0.045,,937,543 Skull Creek Fresh Hopped Pale Ale,American Pale Ale (APA),380,12.0 -303,0.055999999999999994,37.0,888,1327 Pod's ESB,Extra Special / Strong Bitter (ESB),380,12.0 -304,0.055999999999999994,37.0,886,1327 Pod's ESB,Extra Special / Strong Bitter (ESB),380,12.0 -305,0.055999999999999994,37.0,612,1327 Pod's ESB,Extra Special / Strong Bitter (ESB),380,12.0 -306,0.046,35.0,611,834 Happy As Ale,American Pale Ale (APA),380,12.0 -307,0.059000000000000004,,1372,Yellow Collar,Mead,422,12.0 -308,0.059000000000000004,,1371,Green Collar,Mead,422,12.0 -309,0.08,80.0,1812,Quarter Mile Double IPA,American Double / Imperial IPA,304,12.0 -310,0.059000000000000004,60.0,1547,Full Nelson Pale Ale,American Pale Ale (APA),382,12.0 -311,0.065,30.0,1546,Steel Wheels ESB,Extra Special / Strong Bitter (ESB),382,12.0 -312,0.053,22.0,1545,Blue Mountain Classic Lager,Euro Pale Lager,382,12.0 -313,0.059000000000000004,60.0,119,Full Nelson Pale Ale (2010),American Pale Ale (APA),382,12.0 -314,0.049,16.0,1408,Kölsch 151,Kölsch,414,12.0 -315,,,2490,Professor Black,American Stout,77,12.0 -316,,,2489,Little Boss,American Pale Wheat Ale,77,12.0 -317,,,2488,Van Dayum!,American Amber / Red Ale,77,12.0 -318,,,2487,Spirit Animal,American Pale Ale (APA),77,12.0 -319,0.07,,939,Toxic Sludge,American Black Ale,489,16.0 -320,0.06,40.0,692,Blue Point White IPA,American White IPA,489,12.0 -321,0.044000000000000004,16.0,667,Blue Point Summer Ale,American Blonde Ale,489,12.0 -322,0.055,28.0,665,Toasted Lager,Vienna Lager,489,12.0 -323,0.06,,1607,Bohemian Export Lager,Dortmunder / Export Lager,364,12.0 -324,0.053,,1597,Altus Bohemes Altbier,Altbier,364,12.0 -325,0.04,,344,Cherny Bock,Schwarzbier,364,12.0 -326,0.05,,89,Czech Pilsner,Czech Pilsener,364,12.0 -327,0.05,,88,Viennese Lager,Vienna Lager,364,12.0 -328,0.065,,1569,Mad Manatee IPA,American IPA,378,12.0 -329,0.055,,1568,Killer Whale Cream Ale,Cream Ale,378,12.0 -330,0.06,,1188,Duke's Cold Nose Brown Ale,American Brown Ale,378,12.0 -331,0.042,30.0,1891,Longhop IPA,American IPA,281,16.0 -332,0.04,34.0,1890,Lucky Buck,Irish Dry Stout,281,16.0 -333,0.051,,577,Bomb Lager (New Recipe),Munich Helles Lager,525,12.0 -334,0.045,27.0,513,Bomb Lager (Old Recipe),Munich Helles Lager,525,12.0 -335,0.066,72.0,2422,Firestarter India Pale Ale,American IPA,107,12.0 -336,0.075,22.0,1727,Kilt Dropper Scotch Ale,Scotch Ale / Wee Heavy,107,16.0 -337,0.048,30.0,1614,Wood Splitter Pilsner,Czech Pilsener,107,16.0 -338,0.055999999999999994,26.0,1613,Gyptoberfest,Märzen / Oktoberfest,107,12.0 -339,0.07,94.0,1549,Farmer Wirtz India Pale Ale,English India Pale Ale (IPA),107,16.0 -340,0.047,,1548,Slow & Steady Golden Ale,American Blonde Ale,107,12.0 -341,0.068,,1517,Pink-I Raspberry IPA,American IPA,107,16.0 -342,0.047,,1500,Moe's Original Bar B Que 'Bama Brew Golden Ale,American Blonde Ale,107,12.0 -343,0.047,,1421,Live Local Golden Ale,American Blonde Ale,107,12.0 -344,0.048,38.0,1360,Screaming Eagle Special Ale ESB,Extra Special / Strong Bitter (ESB),107,12.0 -345,0.049,,1184,Dirtbag Dunkel,Munich Dunkel Lager,107,16.0 -346,0.053,45.0,1183,Kindler Pale Ale,American Pale Ale (APA),107,12.0 -347,0.064,,1023,Mistress Winter Wheat,Winter Warmer,107,12.0 -348,0.061,,998,Tent Pole Vanilla Porter,American Porter,107,16.0 -349,0.057999999999999996,,997,Awry Rye Pale Ale,American Pale Ale (APA),107,12.0 -350,0.057999999999999996,,996,Demshitz Brown Ale,American Brown Ale,107,12.0 -351,0.048,,931,Wood Splitter Pilsner (2012),Czech Pilsener,107,12.0 -352,0.048,,798,Brush Creek Blonde,American Blonde Ale,107,16.0 -353,0.066,72.0,633,Firestarter India Pale Ale,American IPA,107,16.0 -354,0.071,16.0,2062,Noche Dulce,American Porter,231,16.0 -355,0.045,8.0,1830,Porch Rocker,Radler,300,12.0 -356,0.065,45.0,1629,Rebel IPA,American IPA,300,16.0 -357,0.055,,1601,Cold Snap,Witbier,300,12.0 -358,0.055999999999999994,,1427,Samuel Adams Winter Lager,Bock,300,12.0 -359,0.049,30.0,1349,Boston Lager,Vienna Lager,300,16.0 -360,0.049,30.0,1310,Boston Lager,Vienna Lager,300,12.0 -361,0.053,15.0,1281,Samuel Adams Octoberfest,Märzen / Oktoberfest,300,12.0 -362,0.053,7.0,1144,Samuel Adams Summer Ale,American Pale Wheat Ale,300,12.0 -363,0.049,30.0,1143,Boston Lager,Vienna Lager,300,12.0 -364,0.049,35.0,1395,Hazed & Infused,American Pale Ale (APA),417,12.0 -365,0.057,35.0,808,Hoopla Pale Ale,American Pale Ale (APA),417,12.0 -366,0.049,35.0,81,Hazed & Infused (2010),American Pale Ale (APA),417,12.0 -367,0.062,80.0,2596,Heavy Lifting,American IPA,31,12.0 -368,0.065,,2300,1492,American Pale Ale (APA),167,12.0 -369,0.057999999999999996,,2299,Mango Ginger,American IPA,167,12.0 -370,0.047,,2298,Passenger,English Dark Mild Ale,167,12.0 -371,0.06,52.0,2107,Plum St. Porter,American Porter,219,12.0 -372,0.057,52.0,1573,Plum St. Porter,American Porter,219,12.0 -373,0.07,80.0,1289,Bozone HopZone IPA,American IPA,219,12.0 -374,0.06,25.0,1288,Bozone Hefe Weizen,Hefeweizen,219,12.0 -375,0.055,,470,Bozone Select Amber Ale,American Amber / Red Ale,219,12.0 -376,0.052000000000000005,40.0,2167,Evil Owl,American Amber / Red Ale,207,12.0 -377,0.05,,2204,Post Time Kölsch,Kölsch,195,16.0 -378,0.042,9.0,1522,Agave Wheat,American Pale Wheat Ale,391,12.0 -379,0.045,15.0,397,SummerBright Ale,American Pale Wheat Ale,391,12.0 -380,0.062,68.0,193,Lucky U IPA,American IPA,391,12.0 -381,0.054000000000000006,19.0,83,Avalanche Ale,American Amber / Red Ale,391,12.0 -382,0.05,,1802,"You're My Boy, Blue",Fruit / Vegetable Beer,308,12.0 -383,0.07200000000000001,60.0,1801,Last Stop IPA,American IPA,308,12.0 -384,0.05,21.0,1800,Rollin Dirty Red Ale,Irish Red Ale,308,12.0 -385,0.055,28.0,1799,Are Wheat There Yet?,American Pale Wheat Ale,308,12.0 -386,0.057999999999999996,,2619,Insert Hop Reference,American Pale Ale (APA),19,16.0 -387,0.053,,2468,Manitou Amber,American Amber / Red Ale,85,16.0 -388,0.067,,2637,Belfort,Saison / Farmhouse Ale,10,16.0 -389,0.06,,2636,Star Runner,Belgian Pale Ale,10,16.0 -390,0.098,,2598,Tart Side of the Barrel,American Double / Imperial Stout,10,16.0 -391,0.06,,2597,Linnaeus Mango IPA,American IPA,10,16.0 -392,0.07,,2548,Beasts A'Burnin',Rauchbier,10,16.0 -393,0.077,,2542,Verdun,Bière de Garde,10,16.0 -394,0.065,,2541,Barrel Aged Triomphe,Belgian IPA,10,16.0 -395,0.065,,2504,Cherry Doppelbock,Doppelbock,10,16.0 -396,0.065,,2500,Tropical Saison,Saison / Farmhouse Ale,10,16.0 -397,0.065,,2499,Beach Patrol,Witbier,10,16.0 -398,0.05,,2498,Nuit Serpent,Belgian IPA,10,16.0 -399,0.09,,2481,Paris,Saison / Farmhouse Ale,10,16.0 -400,0.055,,2476,The Grand Army,Belgian IPA,10,16.0 -401,0.059000000000000004,,2467,Acidulated Trip,Saison / Farmhouse Ale,10,16.0 -402,0.066,,2466,Root Stock,Rye Beer,10,16.0 -403,0.040999999999999995,,2465,Mind Games,Dunkelweizen,10,16.0 -404,0.08199999999999999,,2433,Sous Chef,Belgian Strong Pale Ale,10,16.0 -405,0.065,,2418,Dubbelicious,Dubbel,10,16.0 -406,0.062,,2416,Psychopomp,Belgian Dark Ale,10,16.0 -407,,,2382,Fat Paczki,Belgian Dark Ale,10,16.0 -408,,,2381,Earth-Like Planets,Belgian Pale Ale,10,16.0 -409,0.061,,2290,Ski Patrol,Witbier,10,16.0 -410,0.063,,2241,Viking Ice Hole,Oatmeal Stout,10,16.0 -411,0.055999999999999994,,2240,Rye Porter,American Porter,10,16.0 -412,0.099,,2137,Wizard Burial Ground,Quadrupel (Quad),10,16.0 -413,0.051,,2101,Smoky Wheat,Rauchbier,10,16.0 -414,0.062,,2092,BRIPA,Belgian IPA,10,16.0 -415,0.062,,2091,Mela,Belgian Dark Ale,10,16.0 -416,0.053,,2086,W.I.P.A Snappa,Belgian IPA,10,16.0 -417,0.063,,2023,Pepper in the Rye,Rye Beer,10,16.0 -418,0.064,,2006,Moe Lasses',American Stout,10,16.0 -419,0.07,,1997,Pumpkin Tart,Fruit / Vegetable Beer,10,16.0 -420,0.067,,1977,Undertaker,Belgian Dark Ale,10,16.0 -421,0.067,,1976,Undertaker (2014),Belgian Dark Ale,10,16.0 -422,0.05,,1974,Coq D'Or,Belgian Pale Ale,10,16.0 -423,0.06,,1973,North French,Bière de Garde,10,16.0 -424,0.065,,1959,Agent a Deux,Belgian Dark Ale,10,16.0 -425,0.045,,1958,Belgian Wit,Witbier,10,16.0 -426,0.063,,1949,Pothole Stout,American Stout,10,16.0 -427,0.09300000000000001,,1947,Tree Bucket,Belgian IPA,10,16.0 -428,0.073,,1785,Le Flaneur Ale,American Wild Ale,10,16.0 -429,0.055999999999999994,,1651,Maize & Blueberry,Fruit / Vegetable Beer,10,16.0 -430,0.09300000000000001,,1443,Trebuchet Double IPA,American Double / Imperial IPA,10,16.0 -431,0.065,,1352,Contemplation,Bière de Garde,10,16.0 -432,0.05,,1267,Black Rabbit,American Black Ale,10,16.0 -433,0.09,,1266,Zaison,Saison / Farmhouse Ale,10,16.0 -434,0.08199999999999999,,1178,Vivant Tripel,Tripel,10,16.0 -435,0.098,,1136,Tart Side of the Moon,Belgian Dark Ale,10,16.0 -436,0.06,,1044,Big Red Coq,American Amber / Red Ale,10,16.0 -437,0.099,,1033,Hubris Quadrupel Anniversary Ale,Quadrupel (Quad),10,16.0 -438,0.095,,1031,Plow Horse Belgian Style Imperial Stout,American Double / Imperial Stout,10,16.0 -439,0.092,,909,Escoffier Bretta Ale,American Wild Ale,10,16.0 -440,0.065,,873,Contemplation (2012),Bière de Garde,10,16.0 -441,0.099,,860,Vivant Belgian Style Imperial Stout (2012),Russian Imperial Stout,10,16.0 -442,0.062,,677,Big Red Coq (2012),American Amber / Red Ale,10,16.0 -443,0.09,,671,Zaison (2012),Saison / Farmhouse Ale,10,16.0 -444,0.092,,670,Vivant Tripel (2012),Tripel,10,16.0 -445,0.09699999999999999,,669,Trebuchet Double IPA (2012),Belgian IPA,10,16.0 -446,0.085,,627,Kludde,Belgian Strong Dark Ale,10,16.0 -447,0.055,,387,Farm Hand,Saison / Farmhouse Ale,10,16.0 -448,0.06,,385,Solitude,Belgian Pale Ale,10,16.0 -449,0.065,,384,Triomphe,Belgian IPA,10,16.0 -450,,,1096,Tampa Pale Ale,American Pale Ale (APA),467,12.0 -451,,,1095,Orange Grove Wheat Ale,American Pale Wheat Ale,467,12.0 -452,0.061,,2456,Broad Brook Ale,American Amber / Red Ale,89,16.0 -453,0.05,15.0,921,Northern Lights Amber Ale,American Amber / Red Ale,493,12.0 -454,0.052000000000000005,17.0,920,Polar Pale Ale,American Pale Ale (APA),493,12.0 -455,0.048,,919,Chugach Session Ale,Cream Ale,493,12.0 -456,0.061,64.0,648,Fairweather IPA,American IPA,493,12.0 -457,0.068,47.0,1279,East India Pale Ale,English India Pale Ale (IPA),437,16.0 -458,0.045,,756,Brooklyn Summer Ale,English Pale Mild Ale,437,12.0 -459,0.068,47.0,566,East India Pale Ale,English India Pale Ale (IPA),437,12.0 -460,0.045,,328,Brooklyn Summer Ale (2011),English Pale Mild Ale,437,12.0 -461,0.052000000000000005,,66,Brooklyn Lager (16 oz.),American Amber / Red Lager,437,16.0 -462,0.052000000000000005,,65,Brooklyn Lager (12 oz.),American Amber / Red Lager,437,12.0 -463,0.08,,538,Tour de Nez Belgian IPA (Current),Belgian IPA,530,16.0 -464,,,504,Roler Bock (Current),Maibock / Helles Bock,530,16.0 -465,0.073,85.0,383,Black Adder IBA (Current),American Black Ale,530,16.0 -466,0.099,,29,Very Noddy Lager (Current),Schwarzbier,530,16.0 -467,0.062,42.0,28,Tule Duck Red Ale (Current),American Amber / Red Ale,530,16.0 -468,0.057999999999999996,35.0,27,Original Orange Blossom Ale (Current),Herbed / Spiced Beer,530,16.0 -469,0.052000000000000005,40.0,26,Black Noddy Lager (Current),Schwarzbier,530,16.0 -470,0.053,,1627,Cleveland Beer Week 2013,Munich Helles Lager,357,16.0 -471,0.045,,2552,Painted Turtle,American Pale Ale (APA),56,12.0 -472,0.06,40.0,2125,1836,American Blonde Ale,214,12.0 -473,0.06,20.0,2124,Summer's Wit,Witbier,214,12.0 -474,0.09,118.0,2123,More Cowbell,American Double / Imperial IPA,214,16.0 -475,0.065,,2608,Wrath of Pele,American Brown Ale,24,16.0 -476,0.068,,2607,Black Beer'd,American Black Ale,24,16.0 -477,0.078,,2606,Mr. Tea,Fruit / Vegetable Beer,24,24.0 -478,0.055,40.0,2478,Pale Alement,American Pale Ale (APA),24,12.0 -479,0.099,115.0,2471,Hopkick Dropkick,American Double / Imperial IPA,24,12.0 -480,0.06,,2470,Kreamed Corn,Cream Ale,24,12.0 -481,0.065,,2464,Coconoats,American Pale Wheat Ale,24,16.0 -482,0.068,16.0,2160,Joey Wheat,American Pale Wheat Ale,24,16.0 -483,0.07200000000000001,86.0,2158,3:33 Black IPA,American IPA,24,16.0 -484,0.068,,2072,MCA,American IPA,24,16.0 -485,0.055,40.0,2054,Pale Alement,American Pale Ale (APA),24,16.0 -486,0.05,14.0,2196,Couch Select Lager,American Pale Lager,197,12.0 -487,0.055999999999999994,36.0,668,Mucho Aloha Hawaiian Pale Ale,American Pale Ale (APA),517,12.0 -488,0.049,,52,Heinnieweisse Weissebier,Hefeweizen,556,12.0 -489,0.068,,51,Snapperhead IPA,American IPA,556,12.0 -490,0.049,,50,Moo Thunder Stout,Milk / Sweet Stout,556,12.0 -491,0.043,,49,Porkslap Pale Ale,American Pale Ale (APA),556,12.0 -492,0.09300000000000001,,2657,Blackbeard,American Double / Imperial Stout,5,12.0 -493,0.062,,2656,Rye Knot,American Brown Ale,5,12.0 -494,0.06,,2655,Dead Arm,American Pale Ale (APA),5,12.0 -495,0.048,,2654,32°/50° Kölsch ,Kölsch,5,16.0 -496,0.077,,2653,HopArt,American IPA,5,16.0 -497,0.09699999999999999,,2652,Boy King,American Double / Imperial IPA,5,16.0 -498,0.052000000000000005,,2252,Gran Sport,American Porter,182,16.0 -499,0.053,25.0,2214,Horny Toad Cerveza,American Blonde Ale,182,16.0 -500,0.063,35.0,2213,Native Amber,American Amber / Red Ale,182,16.0 -501,0.068,100.0,1442,F5 IPA,American IPA,182,16.0 -502,0.063,35.0,170,Native Amber (2013),American Amber / Red Ale,182,16.0 -503,0.053,25.0,169,Horny Toad Cerveza (2013),American Blonde Ale,182,16.0 -504,0.068,100.0,2315,Hopportunity Knocks IPA,American IPA,155,12.0 -505,0.06,,1808,Pilot Rock Porter,American Porter,155,12.0 -506,0.055999999999999994,55.0,1419,Caldera Pale Ale,American Pale Ale (APA),155,12.0 -507,0.039,16.0,878,Lawnmower Lager,American Adjunct Lager,155,12.0 -508,0.054000000000000006,24.0,794,Ashland Amber Ale (2009),American Amber / Red Ale,155,12.0 -509,0.061,94.0,793,Caldera IPA (2009),American IPA,155,12.0 -510,0.061,94.0,792,Caldera IPA (2007),American IPA,155,12.0 -511,0.055999999999999994,55.0,791,Caldera Pale Ale (2010),American Pale Ale (APA),155,12.0 -512,0.055999999999999994,55.0,790,Caldera Pale Ale (2009),American Pale Ale (APA),155,12.0 -513,0.055999999999999994,55.0,789,Caldera Pale Ale (2005),American Pale Ale (APA),155,12.0 -514,0.055999999999999994,55.0,788,Caldera Pale Ale (2007),American Pale Ale (APA),155,12.0 -515,0.055999999999999994,55.0,38,Caldera Pale Ale (2011),American Pale Ale (APA),155,12.0 -516,0.054000000000000006,24.0,37,Ashland Amber Ale,American Amber / Red Ale,155,12.0 -517,0.061,94.0,36,Caldera IPA,American IPA,155,12.0 -518,0.05,,2257,Remain in Light,American Pilsner,178,12.0 -519,0.065,,2256,Flower Child (2014),American IPA,178,12.0 -520,,,870,THP White (2006),Witbier,497,12.0 -521,,,869,THP Amber (2006),American Amber / Red Ale,497,12.0 -522,,,868,THP Light (2006),American Blonde Ale,497,12.0 -523,,,867,THP Dark (2006),English Dark Mild Ale,497,12.0 -524,0.099,43.0,2068,Imperial Pumpkin Stout,Pumpkin Ale,230,16.0 -525,0.09,130.0,2067,Dead-Eye DIPA,American Double / Imperial IPA,230,16.0 -526,0.055,64.0,2066,Fisherman's IPA,American IPA,230,12.0 -527,0.054000000000000006,35.0,2065,Fisherman's Pils,German Pilsener,230,12.0 -528,0.055,30.0,2064,Fisherman's Brew,American Amber / Red Ale,230,12.0 -529,0.055,35.0,1928,Cape Cod Red,American Amber / Red Ale,267,16.0 -530,0.049,10.0,1927,Beach Blonde,American Blonde Ale,267,16.0 -531,0.065,80.0,2227,Dark Voyage Black IPA (2013),American Black Ale,192,12.0 -532,0.052000000000000005,28.0,2226,Wisconsin Amber,Vienna Lager,192,12.0 -533,0.046,18.0,2225,Lake House,Munich Helles Lager,192,12.0 -534,0.055999999999999994,55.0,1954,Ghost Ship White IPA,American IPA,192,12.0 -535,0.046,18.0,1910,Lake House,Munich Helles Lager,192,16.0 -536,0.062,70.0,1177,Mutiny IPA,American IPA,192,12.0 -537,0.052000000000000005,,840,Wisconsin Amber (1998),Vienna Lager,192,12.0 -538,0.042,,180,Island Wheat,American Pale Wheat Ale,192,12.0 -539,0.052000000000000005,,63,Wisconsin Amber (2013),Vienna Lager,192,12.0 -540,0.05,,62,U.S. Pale Ale,American Pale Ale (APA),192,12.0 -541,,,61,Supper Club Lager,American Pale Lager,192,12.0 -542,0.04,,784,Carolina Lighthouse (2007),American Blonde Ale,504,12.0 -543,0.05,,783,Carolina Blonde (2006),American Blonde Ale,504,12.0 -544,0.035,,782,Carolina Blonde Light (2005),American Blonde Ale,504,12.0 -545,0.059000000000000004,22.0,2255,Santa's Secret,Winter Warmer,179,16.0 -546,0.057,,530,Flagship IPA,English India Pale Ale (IPA),179,12.0 -547,0.051,,427,Sky Blue Golden Ale,Kölsch,179,12.0 -548,0.099,100.0,2094,Epitome,American Black Ale,222,16.0 -549,0.039,9.0,1941,Monkey Chased the Weasel,Berliner Weissbier,222,16.0 -550,0.078,80.0,1940,077XX,American Double / Imperial IPA,222,16.0 -551,0.042,35.0,1439,Boat Beer,American IPA,222,12.0 -552,0.069,,1465,Granny Smith Hard Apple Cider,Cider,404,16.0 -553,0.069,,1464,Dry Hard Apple Cider,Cider,404,16.0 -554,0.055999999999999994,,1744,Farmer Ted's Cream Ale,Cream Ale,331,12.0 -555,0.052000000000000005,,1743,Firewater India Pale Ale,American IPA,331,12.0 -556,0.047,,1742,White Zombie Ale,Witbier,331,12.0 -557,0.07,,1719,King Winterbolt Winter Ale,Winter Warmer,331,12.0 -558,0.047,,638,White Zombie Ale,Witbier,331,12.0 -559,0.052000000000000005,,507,Firewater India Pale Ale,American IPA,331,12.0 -560,0.055999999999999994,,480,Farmer Ted's Farmhouse Cream Ale,Cream Ale,331,12.0 -561,0.048,16.0,1882,Whitecap Wit,Witbier,285,16.0 -562,0.078,16.0,1881,Seiche Scottish Ale,Scottish Ale,285,16.0 -563,0.057999999999999996,,2446,Peanut Butter Jelly Time,American Brown Ale,96,12.0 -564,0.054000000000000006,,2106,King Coconut,American Porter,96,12.0 -565,0.085,90.0,2600,Gone A-Rye,American Double / Imperial IPA,29,16.0 -567,0.068,70.0,2052,Dankosaurus,American IPA,29,16.0 -568,0.051,35.0,1584,Scruffy's Smoked Alt,Smoked Beer,29,16.0 -569,0.051,36.0,1182,Elliott's Phoned Home Pale Ale,American Pale Ale (APA),29,16.0 -570,0.05,18.0,1050,The Lawn Ranger,Cream Ale,29,16.0 -571,0.05,,1219,All American Blonde Ale,American Blonde Ale,452,12.0 -572,0.05,,1218,All American Red Ale,American Amber / Red Ale,452,12.0 -573,0.05,40.0,2377,Main St. Virginia Ale,Altbier,122,12.0 -574,0.045,24.0,1839,Chin Music Amber Lager,American Amber / Red Lager,122,12.0 -575,0.05,40.0,1248,Main St. Virginia Ale,Altbier,122,12.0 -576,0.052000000000000005,42.0,1247,Ray Ray’s Pale Ale,American Pale Ale (APA),122,12.0 -577,0.051,15.0,1649,Chai Ale,Herbed / Spiced Beer,350,16.0 -578,0.07200000000000001,85.0,1648,Lucky Day IPA,American IPA,350,16.0 -579,0.095,99.0,1647,Terrace Hill Double IPA,American Double / Imperial IPA,350,16.0 -580,0.075,77.0,1646,Catch 23,American Black Ale,350,16.0 -581,0.07,,2057,Stickin' In My Rye,Rye Beer,236,24.0 -582,0.06,45.0,2056,Black Me Stout,American Stout,236,12.0 -583,0.05,22.0,2055,Killer Kolsch,Kölsch,236,12.0 -584,0.07,65.0,1933,Missile IPA,American IPA,236,12.0 -585,0.045,,2019,Enlighten,Kölsch,250,16.0 -586,0.065,8.0,2018,Ale Cider,Fruit / Vegetable Beer,250,16.0 -587,0.055,30.0,2017,Pail Ale,American Pale Ale (APA),250,16.0 -588,0.045,,2016,Englishman,English Brown Ale,250,16.0 -589,0.08,69.0,2080,8 Barrel,American Strong Ale,226,16.0 -590,0.055,40.0,2079,Oktoberfest,Märzen / Oktoberfest,226,16.0 -591,0.057,58.0,2380,IPA #11,American IPA,121,16.0 -592,0.057,10.0,2379,Blood Orange Honey,Fruit / Vegetable Beer,121,16.0 -593,0.052000000000000005,,2354,Lighthouse Amber,Altbier,121,16.0 -594,0.08900000000000001,126.0,2440,Bay of Bengal Double IPA (2014),American Double / Imperial IPA,99,12.0 -595,0.049,29.0,567,Churchkey Pilsner Style Beer,American Pilsner,526,12.0 -596,0.05,,1342,First Press,Cider,425,12.0 -597,0.05,,1341,Magic Apple,Cider,425,12.0 -598,0.055,25.0,2349,Cubano Espresso,Bock,141,12.0 -599,0.062,65.0,2014,Operation Homefront,American IPA,141,12.0 -600,0.08199999999999999,65.0,2013,Wandering Pelican,American Black Ale,141,12.0 -601,0.055,,2012,Sugar Plum,American Brown Ale,141,12.0 -602,0.055,,2011,Oktoberfest,Märzen / Oktoberfest,141,12.0 -603,0.06,,2010,Puppy's Breath Porter,American Porter,141,12.0 -604,0.045,,2009,Happening Now,American IPA,141,12.0 -605,0.07,60.0,1726,Hopped on the High Seas (Hop #529),American IPA,141,12.0 -606,0.07,60.0,1725,Hopped on the High Seas (Calypso),American IPA,141,12.0 -607,0.063,,1695,Wiregrass Post-Prohibition Ale,American Pale Ale (APA),141,12.0 -608,0.07,60.0,1694,Dry-Hopped On The High Seas Caribbean-Style IPA,American IPA,141,12.0 -609,0.07,60.0,1693,Hopped on the High Seas (Citra),American IPA,141,12.0 -610,0.07,60.0,1692,Hopped on the High Seas (Ahtanum),American IPA,141,12.0 -611,0.055,,1369,Gwar Beer,American Pale Ale (APA),141,12.0 -612,0.052000000000000005,,1243,Tropical Heatwave,American Pale Wheat Ale,141,16.0 -613,0.075,70.0,1142,Humidor Series India Pale Ale,American IPA,141,12.0 -614,0.075,70.0,1141,Jai Alai IPA Aged on White Oak,American IPA,141,12.0 -615,0.08,65.0,1140,José Martí American Porter,American Porter,141,12.0 -616,0.05,,1139,Invasion Pale Ale,American Pale Ale (APA),141,12.0 -617,0.055,25.0,1138,Maduro Brown Ale,English Brown Ale,141,12.0 -618,0.055,25.0,571,Maduro Brown Ale,American Brown Ale,141,12.0 -619,0.05,,570,Hotter Than Helles Lager,Munich Helles Lager,141,12.0 -620,0.07200000000000001,75.0,569,Tocobaga Red Ale,American Amber / Red Ale,141,12.0 -621,0.075,70.0,546,Jai Alai IPA,American IPA,141,12.0 -622,0.05,18.0,545,Florida Cracker Belgian Wit,Witbier,141,12.0 -623,0.048,,2338,Shark Tracker Light lager,Light Lager,145,12.0 -624,0.06,,1365,Pumple Drumkin,Pumpkin Ale,145,12.0 -625,0.045,,1094,Grey Lady,Witbier,145,12.0 -626,0.062,,657,Summer of Lager,Munich Helles Lager,145,12.0 -627,0.065,,656,Indie Pale Ale,American IPA,145,12.0 -628,0.038,,359,Sankaty Light Lager,Light Lager,145,12.0 -629,0.055999999999999994,,56,Whale's Tale Pale Ale,English Pale Ale,145,12.0 -630,0.067,60.0,1772,Jacaranada Rye IPA,American IPA,320,16.0 -631,0.06,75.0,1393,Cascadian Dark Ale,American Black Ale,418,12.0 -632,0.044000000000000004,13.0,893,Wheat the People,American Pale Wheat Ale,418,16.0 -633,0.047,17.0,1407,Tybee Island Blonde,American Blonde Ale,415,12.0 -634,0.062,55.0,1406,Savannah Brown Ale,American Brown Ale,415,12.0 -635,0.046,11.0,2438,Rhode Island Blueberry,Kölsch,101,12.0 -636,0.065,75.0,2437,Newport Storm IPA,American IPA,101,12.0 -637,0.052000000000000005,24.0,751,Hurricane Amber Ale (2004),American Amber / Red Ale,101,12.0 -638,0.052000000000000005,24.0,120,Hurricane Amber Ale,American Amber / Red Ale,101,12.0 -639,0.057999999999999996,,2061,Big Blue Van,Fruit / Vegetable Beer,232,16.0 -640,0.068,75.0,970,Des Moines IPA,American IPA,482,16.0 -641,0.048,22.0,969,Capital Gold Golden Lager,German Pilsener,482,16.0 -642,0.055999999999999994,21.0,968,Farmer John's Multi-Grain Ale,American Blonde Ale,482,16.0 -643,0.05,,2351,Behemoth,American Pilsner,139,12.0 -644,0.052000000000000005,,1650,Arkansas Red,American Amber / Red Ale,139,12.0 -645,0.057,,1337,Core Oatmeal Stout,Oatmeal Stout,139,12.0 -646,0.061,,1336,Core ESB,Extra Special / Strong Bitter (ESB),139,12.0 -647,0.038,,737,Chester's Beer (2005),American Pale Lager,512,12.0 -648,0.05,,129,Heiner Brau Kölsch,Kölsch,553,12.0 -649,0.048,,716,Trigger Blonde Ale,American Blonde Ale,515,16.0 -650,0.075,29.0,659,Crabtree Oatmeal Stout,Oatmeal Stout,515,16.0 -651,0.077,71.0,556,Eclipse Black IPA,American Black Ale,515,16.0 -652,0.06,46.0,2538,Neomexicanus Native,American Pale Ale (APA),63,12.0 -653,0.075,25.0,2355,Old Soul,Belgian Strong Pale Ale,63,12.0 -654,0.059000000000000004,,1689,Snowcat Coffee Stout,American Stout,63,12.0 -655,,,1163,WinterWonderGrass Festival Ale,American Amber / Red Ale,63,12.0 -656,,,940,Boohai Red Ale,American Amber / Red Ale,63,12.0 -657,0.052000000000000005,15.0,685,Lava Lake Wit,Witbier,63,12.0 -658,0.06,,613,Mountain Livin' Pale Ale,American Pale Ale (APA),63,12.0 -659,0.052000000000000005,25.0,356,Crazy Mountain Amber Ale,American Amber / Red Ale,63,12.0 -660,0.065,65.0,2029,Tropicalia,American IPA,247,12.0 -661,0.045,,2028,Athena,Berliner Weissbier,247,12.0 -662,0.049,25.0,2293,Aviator Raspberry Blonde,American Blonde Ale,169,12.0 -663,0.055,,1105,3 Picket Porter,American Porter,169,12.0 -664,0.055999999999999994,,1104,Rusty Nail Pale Ale,American Pale Ale (APA),169,12.0 -665,0.065,,2145,Red Water Irish Style Red,American Amber / Red Ale,212,12.0 -666,0.066,,1804,Mjöllnir,Herbed / Spiced Beer,212,12.0 -667,0.055,,1602,Bear Butte Nut Brown Ale,American Brown Ale,212,12.0 -668,0.045,,1301,Easy Livin' Summer Ale,American Blonde Ale,212,12.0 -669,0.055,,542,Canyon Cream Ale,Cream Ale,212,12.0 -670,0.069,,272,Pile O'Dirt Porter,American Porter,212,12.0 -671,0.06,,271,11th Hour IPA,American IPA,212,12.0 -672,0.06,31.0,1057,South Ridge Amber Ale,American Amber / Red Ale,472,16.0 -673,0.052000000000000005,23.0,681,Summertime Ale,Kölsch,472,16.0 -674,0.049,,1789,Lost River Blonde Ale,American Blonde Ale,315,16.0 -675,0.054000000000000006,,1788,Monon Wheat,Witbier,315,16.0 -676,0.08,,1787,Floyd's Folly,Scottish Ale,315,16.0 -677,0.063,,1786,Half Court IPA,American IPA,315,16.0 -678,0.045,,1763,Geary's Pale Ale,English Pale Ale,323,12.0 -679,0.06,,1311,Geary's Summer Ale,Kölsch,323,12.0 -680,0.08,,2078,Stone of Arbroath,Scotch Ale / Wee Heavy,227,12.0 -681,0.05,15.0,1809,The Tradition,American Blonde Ale,227,12.0 -682,0.053,11.0,1263,El Hefe Speaks,Hefeweizen,227,12.0 -683,0.055,,1092,Penn Quarter Porter,American Porter,227,12.0 -684,0.092,115.0,851,On the Wings of Armageddon,American Double / Imperial IPA,227,12.0 -685,0.065,80.0,186,The Corruption,American IPA,227,12.0 -686,0.07,,185,The Citizen,Belgian Pale Ale,227,12.0 -687,0.06,,184,The Public,American Pale Ale (APA),227,12.0 -688,0.065,,1224,Dank IPA,American IPA,451,16.0 -689,0.065,,964,Dank IPA (2012),American IPA,451,16.0 -690,0.07200000000000001,,1623,Lift Off IPA,American IPA,358,16.0 -691,0.055,,110,BrewFarm Select Golden Lager,American Pale Lager,554,12.0 -692,0.05,,1735,Sprocket Blonde Ale (2006),American Blonde Ale,333,12.0 -693,0.05,,1734,Sprocket Pale Ale (2006),American Pale Ale (APA),333,12.0 -694,0.063,37.0,1746,Dead Armadillo Amber Ale,American Amber / Red Ale,330,12.0 -695,0.06,,2371,Neato Bandito,Euro Pale Lager,127,12.0 -696,0.075,33.0,2251,Oak Cliff Coffee Ale,American Brown Ale,127,12.0 -697,0.085,100.0,2166,Dream Crusher Double IPA,American Double / Imperial IPA,127,12.0 -698,0.06,,1827,Deep Ellum Pale Ale,American Pale Ale (APA),127,12.0 -699,0.07,,1203,Double Brown Stout,Baltic Porter,127,12.0 -700,0.048,25.0,1202,Farmhouse Wit,Saison / Farmhouse Ale,127,16.0 -701,0.046,,1161,Rye Pils Session Lager,German Pilsener,127,12.0 -702,0.052000000000000005,23.0,946,Dallas Blonde,American Blonde Ale,127,12.0 -703,0.07,70.0,943,Deep Ellum IPA,American IPA,127,12.0 -704,0.045,44.0,1886,Thrasher Session India Pale Ale,American IPA,283,12.0 -705,0.05,16.0,1885,Gutch English Style Mild Ale,English Pale Mild Ale,283,12.0 -706,0.059000000000000004,55.0,1213,Chuli Stout,Irish Dry Stout,453,12.0 -707,0.055999999999999994,46.0,1159,Mother Ale,American Blonde Ale,453,12.0 -708,0.065,71.0,947,Twister Creek India Pale Ale,American IPA,453,12.0 -709,0.057999999999999996,46.0,929,Single Engine Red,Irish Red Ale,453,12.0 -710,0.07,,1944,Incredible Pedal IPA,American IPA,263,12.0 -711,0.05,,1943,Graham Cracker Porter,American Porter,263,12.0 -712,0.05,40.0,1210,Mirror Pond Pale Ale,American Pale Ale (APA),454,12.0 -713,0.052000000000000005,16.0,2550,Weissenheimer,Hefeweizen,57,12.0 -714,0.049,22.0,2505,Abbey's Single (2015- ),Abbey Single Ale,57,12.0 -715,0.063,76.0,2025,Vertex IPA,American IPA,57,12.0 -716,0.05,12.0,2021,Here Gose Nothin',Gose,57,12.0 -717,0.05,,2015,Strawberry Blonde,Fruit / Vegetable Beer,57,12.0 -718,0.096,85.0,1888,Hoperation Overload,American Double / Imperial IPA,57,12.0 -719,0.049,22.0,1887,Abbey's Single Ale (Current),Abbey Single Ale,57,12.0 -720,0.044000000000000004,45.0,2051,Bravo Four Point,American Pale Ale (APA),237,12.0 -721,0.052000000000000005,26.0,1201,Striped Bass Pale Ale,American Pale Ale (APA),237,12.0 -722,0.054000000000000006,27.0,924,Deadicated Amber,American Amber / Red Ale,491,16.0 -723,,,731,Kaleidoscope Collaboration 2012,American Black Ale,491,16.0 -724,0.071,85.0,730,California Sunshine Rye IPA,American IPA,491,16.0 -725,0.07400000000000001,12.0,647,Full Boar Scotch Ale,Scotch Ale / Wee Heavy,491,16.0 -726,0.045,,1773,12 Man Pale Ale,American Pale Ale (APA),319,12.0 -727,0.065,72.0,1795,Filthy Hoppin' IPA,American IPA,311,16.0 -728,,,944,Dock Street Amber Beer (1992),American Amber / Red Ale,488,12.0 -729,,,524,Dolores River Hefeweizen,Hefeweizen,531,16.0 -730,,,450,Dolores River ESB,Extra Special / Strong Bitter (ESB),531,16.0 -731,,,449,Snaggletooth Double Pale Ale,American Double / Imperial IPA,531,16.0 -732,,,448,Dolores River Pale Ale,American Pale Ale (APA),531,16.0 -733,,,447,Dolores River Dry Stout,Irish Dry Stout,531,16.0 -734,,,446,Dolores River Mild,English Dark Mild Ale,531,16.0 -735,0.049,,1246,Cranberry Blend,Cider,446,12.0 -736,0.051,,977,Orignal Blend,Cider,446,12.0 -737,0.066,100.0,881,Hop Abomination,American IPA,496,12.0 -738,0.051,17.0,880,Apricot Blonde,Fruit / Vegetable Beer,496,12.0 -739,0.043,12.0,872,Dry Dock Hefeweizen,Hefeweizen,496,12.0 -740,0.057999999999999996,49.0,871,Dry Dock Amber Ale,American Amber / Red Ale,496,12.0 -741,0.061,64.0,1685,Category 3 IPA,American IPA,340,12.0 -742,0.045,18.0,457,Dundee Summer Wheat Beer,American Pale Wheat Ale,538,12.0 -743,0.05,,1590,Pumpkin Patch Ale,Pumpkin Ale,369,16.0 -744,0.078,74.0,1382,Crank Yanker IPA,American IPA,369,16.0 -745,0.06,,1110,River Runners Pale Ale,American Pale Ale (APA),369,16.0 -746,0.05,,1014,Pumpkin Patch Ale (2012),Pumpkin Ale,369,16.0 -747,0.055,,911,Mountain Fairy Raspberry Wheat,Fruit / Vegetable Beer,369,16.0 -748,0.045,,680,Boater Beer,German Pilsener,369,16.0 -749,0.078,74.0,395,Crank Yanker IPA (2011),American IPA,369,16.0 -750,0.057,,1642,Bleeding Buckeye Red Ale,Extra Special / Strong Bitter (ESB),352,16.0 -751,0.049,25.0,673,Dottie Seattle Lager,American Amber / Red Lager,516,16.0 -752,0.07,,1107,Nut Sack Imperial Brown Ale,American Brown Ale,465,12.0 -753,0.05,,1039,Underachiever,American Adjunct Lager,473,16.0 -754,0.052000000000000005,,2477,Lil' Brainless Raspberries,Fruit / Vegetable Beer,81,12.0 -755,0.052000000000000005,,2008,Element 29,American Pale Ale (APA),81,12.0 -756,0.05,,2004,Hop Syndrome,American Pale Lager,81,12.0 -757,0.062,,2003,Escape to Colorado,American IPA,81,12.0 -758,0.043,60.0,2292,Little Sister India Style Session Ale,American IPA,170,12.0 -759,0.062,80.0,1504,Country Boy IPA,American IPA,170,12.0 -760,0.049,23.0,2604,Blonde Czich,American Blonde Ale,26,16.0 -761,0.07,61.0,2432,White Reaper,Belgian IPA,26,16.0 -762,0.051,,2431,Bobblehead,American Pale Wheat Ale,26,16.0 -763,0.052000000000000005,,2430,Lucky Dog,American Pale Ale (APA),26,16.0 -764,0.048,,2429,Voodoo,American Porter,26,16.0 -765,0.054000000000000006,48.0,1967,General George Patton Pilsner,Czech Pilsener,26,16.0 -766,0.04,,2283,Nomader Weiss,Berliner Weissbier,173,12.0 -767,0.085,,2248,Molotov Lite,American Double / Imperial IPA,173,16.0 -768,0.055,,1287,Hipster Ale (Two Roads Brewing),American Pale Ale (APA),173,12.0 -769,0.027000000000000003,,1286,Bikini Beer,American IPA,173,12.0 -770,0.055,,640,Hipster Ale (Westbrook Brewing),American Pale Ale (APA),173,12.0 -771,0.05,32.0,1722,Iron Horse Pale Ale,American Pale Ale (APA),335,12.0 -772,0.045,19.0,1435,Stone's Throw IPA,Scottish Ale,335,12.0 -773,0.067,70.0,1434,Wood Chipper India Pale Ale,American IPA,335,12.0 -774,0.063,55.0,2089,Trail Head,American Pale Ale (APA),224,12.0 -775,0.07,80.0,2088,Hop Stalker Fresh Hop IPA,American IPA,224,16.0 -776,0.07,58.0,1455,Sudice American Stout,American Stout,405,16.0 -777,0.05,20.0,1454,Parcae Belgian Style Pale Ale,Belgian Pale Ale,405,16.0 -778,0.05,20.0,1453,Norns Roggenbier,Roggenbier,405,16.0 -779,0.05,20.0,1452,Laimas Kölsch Style Ale,Kölsch,405,16.0 -780,0.07,70.0,1451,Moirai India Pale Ale,American IPA,405,16.0 -781,0.075,53.0,2191,Loki Red Ale,American Amber / Red Ale,201,16.0 -782,0.046,,1731,Peaches & Cream,Fruit / Vegetable Beer,201,16.0 -783,0.051,,1022,Quaff India Style Session Ale,American IPA,201,16.0 -784,0.075,53.0,895,Loki Red Ale (2013),American Amber / Red Ale,201,16.0 -785,0.069,,682,Mjolnir Imperial IPA,American Double / Imperial IPA,201,16.0 -786,0.05,,112,Fearless Scottish Ale,Scottish Ale,201,16.0 -787,0.081,,2289,Mastermind,American Double / Imperial IPA,172,12.0 -788,0.08199999999999999,,2027,Hyzer Flip,American Double / Imperial IPA,172,16.0 -789,0.08199999999999999,80.0,1929,Second Fiddle,American Double / Imperial IPA,172,16.0 -790,0.055,30.0,1858,Hodad Porter,American Porter,172,16.0 -791,0.045,,2591,Weiss Weiss Baby,Kristalweizen,36,12.0 -792,0.055,45.0,2590,Czech Yo Self,Czech Pilsener,36,12.0 -793,0.048,20.0,1968,FMB 101,Kölsch,36,12.0 -794,0.09,,1981,Hardcore Chimera,American Double / Imperial IPA,256,16.0 -795,0.08,80.0,1664,Sobek & Set,American Black Ale,256,16.0 -796,0.086,,1663,Nuclear Winter,Belgian Strong Dark Ale,256,16.0 -797,0.05,22.0,1662,Wet Hot American Wheat Ale,American Pale Wheat Ale,256,16.0 -798,0.053,,941,Secret Stache Stout,American Stout,256,16.0 -799,0.08,72.0,935,Fascist Pig Ale,American Amber / Red Ale,256,16.0 -800,0.055,,809,Cut Throat Pale Ale,American Pale Ale (APA),256,16.0 -801,0.075,,481,Threadless IPA,American IPA,256,16.0 -802,0.055,,351,Cut Throat Pale Ale (2011),American Pale Ale (APA),256,16.0 -803,0.047,,350,Golden Wing Blonde Ale,American Blonde Ale,256,16.0 -804,0.045,47.0,2569,Easy Jack,American IPA,48,12.0 -805,0.075,75.0,2463,Union Jack,American IPA,48,12.0 -806,0.053,,2462,Pivo Pils,German Pilsener,48,12.0 -807,0.047,,1957,805 Blonde Ale,American Blonde Ale,48,12.0 -808,0.047,20.0,1733,805,American Blonde Ale,48,12.0 -809,0.065,,2624,Deflator,Doppelbock,16,16.0 -810,0.05,27.0,2284,Hinchtown Hammer Down,American Blonde Ale,16,16.0 -811,0.06,104.0,1610,Half Cycle IPA,American IPA,16,16.0 -812,,,520,Inclined Plane Ale,American IPA,532,12.0 -813,0.055,,2554,Moped Traveler,American Pale Ale (APA),54,16.0 -814,0.071,60.0,608,Snake Dog IPA,American IPA,521,12.0 -815,0.047,28.0,607,Underdog Atlantic Lager,American Pale Lager,521,12.0 -816,0.04,,2567,Flying Mouse 8,American Porter,50,12.0 -817,0.07,70.0,2566,Flying Mouse 4,American IPA,50,12.0 -818,0.078,,1899,La Ferme Urbaine Farmhouse Ale,Saison / Farmhouse Ale,279,12.0 -819,0.06,,983,Backyahd IPA,American IPA,279,12.0 -820,0.065,,982,Raincloud Robust Porter,American Porter,279,12.0 -821,0.045,,981,Barstool American Golden Ale,American Blonde Ale,279,12.0 -822,0.05,18.0,2111,What the Butler Saw,Witbier,217,12.0 -823,0.069,65.0,2110,1916 Shore Shiver,American IPA,217,12.0 -824,0.052000000000000005,,2172,Quick WIT,Belgian Pale Ale,206,12.0 -825,0.062,,2171,The Optimist,American IPA,206,12.0 -826,0.045,,1911,Suicide Squeeze IPA,American IPA,206,16.0 -827,0.065,,1803,Java the Hop,American IPA,206,16.0 -828,0.062,,1566,Next Adventure Black IPA,American Black Ale,206,16.0 -829,0.067,,1515,3-Way IPA (2013),American IPA,206,16.0 -830,0.057999999999999996,,1214,Tender Loving Empire NWPA,American Pale Ale (APA),206,16.0 -831,0.052000000000000005,,674,Quick Wit Belgianesque Ale,Witbier,206,16.0 -832,0.055,,562,Sunrise Oatmeal Pale Ale,American Pale Ale (APA),206,16.0 -833,0.08800000000000001,,552,Cavatica Stout,American Double / Imperial Stout,206,16.0 -834,0.051,,319,1811 Lager,American Amber / Red Lager,206,16.0 -835,0.07400000000000001,97.0,318,Vortex IPA,American IPA,206,16.0 -836,,,2322,Fort Pitt Ale,American Amber / Red Ale,151,12.0 -837,0.047,19.0,2661,Park,American Pale Wheat Ale,4,12.0 -838,0.055999999999999994,16.0,2660,Westfalia,American Amber / Red Ale,4,12.0 -839,0.046,17.0,2659,KSA,Kölsch,4,12.0 -840,0.063,42.0,2658,Villager,American IPA,4,12.0 -841,0.085,50.0,2625,Dirty Bastard,Scotch Ale / Wee Heavy,15,12.0 -842,0.07200000000000001,65.0,1565,Centennial IPA,American IPA,15,12.0 -843,0.047,42.0,1223,All Day IPA,American IPA,15,12.0 -844,0.076,73.0,1874,El Chingon IPA,American IPA,287,12.0 -845,0.057,40.0,1873,Block Party Robust Porter,American Porter,287,12.0 -846,0.052000000000000005,20.0,1872,Local Buzz,American Blonde Ale,287,12.0 -847,0.055,,2613,Feel Like Maplin' Love,Oatmeal Stout,22,16.0 -848,0.05,,2612,Father's Beer,Belgian Pale Ale,22,16.0 -849,0.06,,2611,The 26th,American IPA,22,16.0 -850,0.064,90.0,2610,The Gadget,American IPA,22,16.0 -851,0.04,,1657,Leprechaun Lager,American Pale Lager,348,12.0 -852,0.052000000000000005,17.0,2309,Sunbru Kölsch,Kölsch,160,12.0 -853,0.06,21.0,1635,Kilt Lifter Scottish-Style Ale,Scottish Ale,160,12.0 -854,0.051,,1616,Pumpkin Porter,American Porter,160,12.0 -855,0.042,9.0,1585,Four Peaks Peach Ale,Fruit / Vegetable Beer,160,12.0 -856,0.067,47.0,358,Hop Knot IPA,American IPA,160,12.0 -857,0.06,21.0,179,Kilt Lifter Scottish-Style Ale (2009),Scottish Ale,160,12.0 -858,0.052000000000000005,,178,Sunbru Kölsch,Kölsch,160,12.0 -859,0.06,,2428,Four String Vanilla Porter,American Porter,105,12.0 -860,0.05,28.0,2427,Suncaster Summer Wheat,American Pale Wheat Ale,105,12.0 -861,0.057,36.0,2425,Brass Knuckle Pale Ale,American Pale Ale (APA),105,12.0 -862,0.07,70.0,2424,Big Star White IPA,American White IPA,105,12.0 -863,0.055999999999999994,,1998,Old Detroit,American Amber / Red Ale,253,12.0 -864,0.069,69.0,1556,Batch 69 IPA,American IPA,253,12.0 -865,0.055,18.0,1208,Twisted Helles Summer Lager,Munich Helles Lager,253,12.0 -866,0.053,27.0,2527,OktoberFiesta,Märzen / Oktoberfest,66,12.0 -867,0.065,33.0,2526,Texicali ,American Brown Ale,66,12.0 -868,0.06,,2525,Pinata Protest,Witbier,66,12.0 -869,0.042,20.0,2524,Bat Outta Helles,Munich Helles Lager,66,12.0 -870,0.068,,2523,Original,American Amber / Red Ale,66,12.0 -871,0.042,10.0,2522,Rye Wit,Witbier,66,12.0 -872,0.059000000000000004,70.0,2521,Soul Doubt,American IPA,66,12.0 -873,0.044000000000000004,5.0,2520,Yo Soy Un Berliner,Berliner Weissbier,66,12.0 -874,0.04,,1174,77 Fremont Select Spring Session IPA,American IPA,460,12.0 -875,0.045,,1116,Fremont Organic Pale Ale,American Pale Ale (APA),460,12.0 -876,0.08,,994,Abominable Ale,English Strong Ale,460,12.0 -877,0.065,35.0,901,Harvest Ale,Saison / Farmhouse Ale,460,12.0 -878,0.065,45.0,875,Fremont Summer Ale,American Pale Ale (APA),460,12.0 -879,0.055999999999999994,30.0,858,Universale Pale Ale,American Pale Ale (APA),460,12.0 -880,0.065,80.0,857,Interurban IPA,American IPA,460,12.0 -881,0.053,32.0,1300,Gateway Kolsch Style Ale,Kölsch,433,12.0 -882,0.07,24.0,1260,Wee-Heavy-Er Scotch Ale,Scotch Ale / Wee Heavy,433,12.0 -883,0.052000000000000005,42.0,1259,13 Rebels ESB,Extra Special / Strong Bitter (ESB),433,12.0 -884,0.07,73.0,2254,Salamander Slam,American IPA,180,16.0 -885,0.05,,1658,Cack-A-Lacky,American Pale Ale (APA),347,12.0 -886,0.07200000000000001,50.0,2077,No Wake IPA,American IPA,228,12.0 -887,0.049,15.0,2076,Boathouse Blonde,American Blonde Ale,228,12.0 -888,0.05,26.0,2075,Cedar Point,American Amber / Red Ale,228,12.0 -889,0.067,70.0,2426,Clean Shave IPA,American IPA,106,12.0 -890,0.07200000000000001,75.0,2045,Might As Well IPL,American Pale Lager,240,16.0 -891,0.057999999999999996,35.0,1960,Saison Pamplemousse,Saison / Farmhouse Ale,240,12.0 -892,0.07400000000000001,74.0,1777,2020 IPA,American IPA,240,16.0 -893,0.08,70.0,1698,Wolf Among Weeds IPA,American IPA,240,16.0 -894,0.094,92.0,1641,Better Weather IPA,American IPA,240,16.0 -895,0.059000000000000004,60.0,1490,Point the Way IPA,American IPA,240,16.0 -896,0.046,15.0,1489,Golden Road Hefeweizen,Hefeweizen,240,16.0 -897,0.068,65.0,1399,Heal the Bay IPA,American IPA,240,16.0 -898,0.059000000000000004,60.0,1296,Point the Way IPA,American IPA,240,12.0 -899,0.05,,1034,Cabrillo Kölsch,Kölsch,240,16.0 -900,0.055,20.0,991,Get Up Offa That Brown,American Brown Ale,240,16.0 -901,0.08,70.0,750,Burning Bush Smoked IPA,American IPA,240,16.0 -902,0.08,70.0,749,Wolf Among Weeds IPA (2012),American IPA,240,16.0 -903,0.059000000000000004,60.0,549,Point the Way IPA (2012),American IPA,240,16.0 -904,0.046,15.0,548,Golden Road Hefeweizen (2012),Hefeweizen,240,16.0 -905,0.07,11.0,2587,Vanilla Porter,American Porter,39,16.0 -906,0.07,70.0,1109,Descender IPA,American IPA,464,12.0 -907,0.06,18.0,1108,Sweet As Pacific Ale,American Pale Wheat Ale,464,12.0 -908,0.055999999999999994,36.0,1000,Good People Pale Ale,American Pale Ale (APA),478,12.0 -909,0.09300000000000001,103.0,312,Snake Handler Double IPA,American Double / Imperial IPA,478,12.0 -910,0.06,54.0,311,Coffee Oatmeal Stout,Oatmeal Stout,478,12.0 -911,0.06,64.0,309,Good People IPA,American IPA,478,12.0 -912,0.057999999999999996,36.0,308,Good People American Brown Ale,American Brown Ale,478,12.0 -913,0.055,40.0,2205,Mountain Rescue Pale Ale,American Pale Ale (APA),194,12.0 -914,0.059000000000000004,55.0,2198,Goose Island India Pale Ale,American IPA,196,12.0 -915,0.054000000000000006,30.0,2457,312 Urban Pale Ale,American Pale Ale (APA),88,16.0 -916,0.054000000000000006,30.0,2202,312 Urban Pale Ale,American Pale Ale (APA),88,12.0 -917,0.042,18.0,2201,312 Urban Wheat Ale,American Pale Wheat Ale,88,16.0 -918,0.042,18.0,1829,312 Urban Wheat Ale,American Pale Wheat Ale,88,12.0 -919,0.042,20.0,581,312 Urban Wheat Ale (2012),American Pale Wheat Ale,88,12.0 -920,0.052000000000000005,19.0,1383,Beaver Logger,American Pale Lager,420,12.0 -921,0.05,,477,White Water Wheat,American Pale Wheat Ale,536,12.0 -922,0.052000000000000005,,476,Grand Canyon American Pilsner,American Pilsner,536,12.0 -923,0.054000000000000006,,143,Grand Canyon Sunset Amber Ale,American Amber / Red Ale,536,12.0 -924,,,142,Black Iron India Pale Ale,American IPA,536,12.0 -925,0.043,21.0,2129,Monarch Classic American Wheat,American Pale Wheat Ale,213,12.0 -926,0.049,21.0,2127,Sir William's English Brown Ale,English Brown Ale,213,12.0 -927,0.055,35.0,2126,Lakefire Rye Pale Ale,American Pale Ale (APA),213,12.0 -928,0.053,22.0,2303,Beer Agent Re-Ignition,American Blonde Ale,165,16.0 -929,0.057,18.0,1990,Cherry Ale,Fruit / Vegetable Beer,165,16.0 -930,0.055999999999999994,33.0,1702,Bourbon Barrel Aged Coconut Porter,American Porter,165,16.0 -931,0.062,60.0,1701,Great Crescent IPA,American IPA,165,16.0 -932,0.057,27.0,1700,Aurora Lager,Dortmunder / Export Lager,165,16.0 -933,0.053,22.0,1699,Great Crescent Blonde Ale,American Blonde Ale,165,16.0 -934,0.055999999999999994,33.0,1269,Great Crescent Coconut Porter,American Porter,165,16.0 -935,0.057,25.0,930,Great Crescent Oktoberfest Lager,Märzen / Oktoberfest,165,16.0 -936,0.045,36.0,649,Great Crescent Brown Ale,American Brown Ale,165,16.0 -937,0.057,18.0,639,Cherry Ale (1),Fruit / Vegetable Beer,165,16.0 -938,0.057,27.0,626,Aurora Lager (2011),Dortmunder / Export Lager,165,16.0 -939,0.06,25.0,615,Frosted Fields Winter Wheat,American Dark Wheat Ale,165,16.0 -940,0.051,13.0,478,Great Crescent Belgian Style Wit,Witbier,165,16.0 -941,0.075,65.0,455,Bourbon's Barrel Stout,American Stout,165,16.0 -942,0.08,66.0,442,Great Crescent Stout,English Stout,165,16.0 -943,0.055999999999999994,33.0,441,Great Crescent Coconut Porter (2012),American Porter,165,16.0 -944,0.057,23.0,440,Great Crescent Dark Lager,Euro Dark Lager,165,16.0 -945,0.042,26.0,439,Great Crescent Mild Ale,English Dark Mild Ale,165,16.0 -946,0.062,60.0,436,Great Crescent IPA (2011),American IPA,165,16.0 -947,0.053,22.0,389,Great Crescent Blonde Ale (2011),American Blonde Ale,165,16.0 -948,0.05,,2650,Denver Pale Ale (Artist Series No. 1),American Pale Ale (APA),6,12.0 -949,0.087,,2649,Hibernation Ale,Old Ale,6,12.0 -950,0.061,,2648,Whitewater,American Pale Wheat Ale,6,12.0 -951,0.071,,2647,Rumble,American IPA,6,12.0 -952,0.083,,2646,Orabelle,Tripel,6,12.0 -953,0.05,,2645,Lasso,American IPA,6,12.0 -954,0.095,75.0,2644,Yeti Imperial Stout,Russian Imperial Stout,6,12.0 -955,0.073,,2643,Colette,Saison / Farmhouse Ale,6,12.0 -956,0.071,,2642,Titan IPA,American IPA,6,12.0 -957,0.045,15.0,404,Black Star Double Hopped Golden Lager (24 oz.),American Pale Lager,543,24.0 -958,0.045,15.0,164,Black Star Double Hopped Golden Lager (12 oz.),American Pale Lager,543,12.0 -959,0.052000000000000005,49.0,1923,Commotion APA,American Pale Ale (APA),269,12.0 -960,0.052000000000000005,,1922,Southern Drawl Pale Lager,American Pale Lager,269,12.0 -961,0.05,5.0,1604,Chickawawa Lemonale,Fruit / Vegetable Beer,365,12.0 -962,0.07,22.0,1574,Barrel Aged Farmer,American Brown Ale,365,16.0 -963,0.048,,1446,Great River Golden Ale,American Blonde Ale,365,12.0 -964,0.048,,1275,Dirty Blonde Chocolate Ale,American Blonde Ale,365,12.0 -965,0.048,20.0,1244,Dos Pistolas,Vienna Lager,365,12.0 -966,0.05,30.0,1064,Owney Irish Style Red Ale,Irish Red Ale,365,16.0 -967,0.06,,1028,Aaah Bock Lager,Vienna Lager,365,16.0 -968,0.055,10.0,865,Widespread Wit,Witbier,365,16.0 -969,0.054000000000000006,30.0,864,Roller Dam Red Ale,Irish Red Ale,365,16.0 -970,0.053,48.0,863,483 Pale Ale,American Pale Ale (APA),365,16.0 -971,0.09,99.0,672,Hop A Potamus Double Dark Rye Pale Ale,Rye Beer,365,16.0 -972,0.07,22.0,655,Farmer Brown Ale,American Brown Ale,365,16.0 -973,0.07,70.0,540,Big Cock IPA,American IPA,365,16.0 -974,0.059000000000000004,25.0,539,Oktoberfest,Märzen / Oktoberfest,365,16.0 -975,0.048,25.0,517,40th Annual Bix Street Fest Copper Ale (Current),American Amber / Red Ale,365,16.0 -976,0.06,36.0,371,Redband Stout,American Stout,365,16.0 -977,0.053,48.0,190,483 Pale Ale (2010),American Pale Ale (APA),365,16.0 -978,0.054000000000000006,30.0,189,Roller Dam Red Ale (2010),Irish Red Ale,365,16.0 -979,0.05,30.0,1106,Pablo Beach Pale Ale,American Pale Ale (APA),466,12.0 -980,0.057,44.0,2314,Wild Trail Pale Ale,American Pale Ale (APA),156,12.0 -981,0.067,71.0,2313,Mothman Black IPA,American Black Ale,156,12.0 -982,0.057999999999999996,,2461,Autumn Winds Fest Beer,Märzen / Oktoberfest,86,16.0 -983,0.085,69.0,2044,Captain's Daughter,American Double / Imperial IPA,86,12.0 -984,0.057999999999999996,,1567,Autumn Winds,Märzen / Oktoberfest,379,16.0 -985,0.06,54.0,1505,Flying Jenny Extra Pale Ale,American Pale Ale (APA),379,12.0 -986,0.04,20.0,1186,Hazy Day Belgian-Style Wit,Witbier,379,16.0 -987,0.055,,1185,Bring Back the Beach Blonde Ale,American Blonde Ale,379,16.0 -988,0.06,34.0,984,Leaning Chimney Smoked Porter,American Porter,379,16.0 -989,0.06,54.0,693,Flying Jenny Extra Pale Ale (2012),American Pale Ale (APA),379,12.0 -990,0.049,22.0,631,Flagship Ale,Cream Ale,379,12.0 -991,0.045,6.0,2375,Mr. Blue Sky,American Pale Wheat Ale,124,16.0 -992,0.065,,2143,3 Scrooges,Winter Warmer,124,16.0 -993,0.05,25.0,2142,Screamin’ Pumpkin,Pumpkin Ale,124,16.0 -994,0.05,35.0,2141,Grand Trunk Bohemian Pils,Czech Pilsener,124,16.0 -995,0.065,25.0,2140,El Rojo,American Amber / Red Ale,124,16.0 -996,0.075,,2139,Norm's Raggedy Ass IPA,American IPA,124,16.0 -997,0.05,35.0,2138,Grind Line,American Pale Ale (APA),124,16.0 -998,0.04,55.0,2007,Norm's Gateway IPA,American IPA,124,12.0 -999,0.09,,1570,Lemon Shandy Tripel,Tripel,124,16.0 -1000,0.063,43.0,2339,Little Red Cap,Altbier,144,12.0 -1001,0.069,67.0,1857,Supergoose IPA,American IPA,290,12.0 -1002,0.047,,1440,Hale's Pale American Ale,American Pale Ale (APA),290,12.0 -1003,0.07,,1753,Heyoka IPA,American IPA,327,16.0 -1004,0.08,,1448,Guest Lager,American Double / Imperial Pilsner,327,16.0 -1005,0.057,,1134,Pony Pilsner,German Pilsener,327,16.0 -1006,0.055,,1066,Akari Shogun American Wheat Ale,American Pale Wheat Ale,327,16.0 -1007,0.06,,849,Meat Wave,English India Pale Ale (IPA),327,16.0 -1008,0.06,,352,Over Ale,American Brown Ale,327,16.0 -1009,0.042,,149,Gossamer Golden Ale,American Blonde Ale,327,16.0 -1010,0.052000000000000005,,148,Daisy Cutter Pale Ale,American Pale Ale (APA),327,16.0 -1011,0.07,40.0,2026,Pursuit,American IPA,248,12.0 -1012,0.052000000000000005,18.0,1361,Half Full Bright Ale,American Blonde Ale,248,12.0 -1013,0.046,17.0,1016,Orange Wheat,Fruit / Vegetable Beer,476,12.0 -1014,0.043,14.0,1015,Hangar 24 Helles Lager,Munich Helles Lager,476,12.0 -1015,0.075,70.0,1677,The Great Return,American IPA,343,16.0 -1016,0.044000000000000004,18.0,1331,Hardywood Cream Ale,Cream Ale,343,12.0 -1017,0.055999999999999994,55.0,1270,Capital Trail Pale Ale,American Pale Ale (APA),343,12.0 -1018,0.052000000000000005,15.0,2059,UFO Gingerland,Herbed / Spiced Beer,234,12.0 -1019,0.062,45.0,1653,The Long Thaw White IPA,American White IPA,234,12.0 -1020,0.048,,1558,Honey Cider,Cider,234,12.0 -1021,0.05,28.0,1380,Harpoon Summer Beer,Kölsch,234,12.0 -1022,0.059000000000000004,42.0,1379,Harpoon IPA,American IPA,234,12.0 -1023,0.059000000000000004,20.0,1340,UFO Pumpkin,Pumpkin Ale,234,12.0 -1024,0.055,30.0,1313,Harpoon Octoberfest,Märzen / Oktoberfest,234,12.0 -1025,0.059000000000000004,42.0,770,Harpoon IPA (2012),American IPA,234,12.0 -1026,0.05,28.0,769,Harpoon Summer Beer (2012),Kölsch,234,12.0 -1027,0.048,10.0,610,UFO White,American Pale Wheat Ale,234,12.0 -1028,0.05,28.0,192,Harpoon Summer Beer (2010),Kölsch,234,12.0 -1029,0.059000000000000004,42.0,126,Harpoon IPA (2010),American IPA,234,12.0 -1030,,,506,Great Falls Select Pale Ale,American Blonde Ale,535,12.0 -1031,0.048,,181,Beltian White,Witbier,535,12.0 -1032,0.049,,2183,Kaua'i Golden Ale,American Blonde Ale,204,12.0 -1033,0.054000000000000006,,2182,Sunset Amber,American Pale Ale (APA),204,12.0 -1034,0.064,,2181,Hapa Brown Ale,American Brown Ale,204,19.2 -1035,0.064,,2180,Hapa Brown Ale,American Brown Ale,204,12.0 -1036,0.083,,2179,Southern Cross,Flanders Red Ale,204,19.2 -1037,0.076,65.0,1895,Groupe G,Belgian IPA,280,16.0 -1038,0.062,40.0,1894,Pt. Bonita Rustic Lager,American Pale Lager,280,16.0 -1039,0.08800000000000001,77.0,1893,Hill 88 Double IPA,American Double / Imperial IPA,280,16.0 -1040,0.07200000000000001,45.0,990,Loose Cannon,American IPA,479,12.0 -1041,0.06,30.0,989,AARGHtoberfest!,Märzen / Oktoberfest,479,12.0 -1042,0.06,,988,Davy Jones Lager,Cream Ale,479,12.0 -1043,0.063,30.0,1351,Grazias,Cream Ale,423,16.0 -1044,0.08,86.0,1346,Habitus IPA,American IPA,423,16.0 -1045,0.099,85.0,904,Ex Umbris Rye Imperial Stout,American Double / Imperial Stout,423,16.0 -1046,0.063,21.0,2295,The Golden One,American Pilsner,168,12.0 -1047,0.07,68.0,2294,The Power of Zeus,American Pale Ale (APA),168,12.0 -1048,0.044000000000000004,22.0,824,Tonganoxie Honey Wheat,American Pale Wheat Ale,500,12.0 -1049,0.045,,616,Oregon Trail Unfiltered Raspberry Wheat,Fruit / Vegetable Beer,500,12.0 -1050,0.055,,96,Annie's Amber Ale,American Amber / Red Ale,500,12.0 -1051,0.045,32.0,1615,The 12th Can™,American Pale Ale (APA),362,16.0 -1052,0.055,34.0,889,Hilliard's Pils,Czech Pilsener,362,16.0 -1053,0.049,20.0,724,Hilliard's Blonde,American Blonde Ale,362,16.0 -1054,0.055,60.0,497,Hilliard's Amber Ale,American Amber / Red Ale,362,16.0 -1055,0.066,30.0,496,Hilliard's Saison,Saison / Farmhouse Ale,362,16.0 -1056,0.042,,1652,White Cap White IPA,American White IPA,349,16.0 -1057,0.042,25.0,1835,Provision,Saison / Farmhouse Ale,297,12.0 -1058,0.047,28.0,1834,One Nut Brown,American Brown Ale,297,12.0 -1059,0.057999999999999996,45.0,1833,Hop Farm IPA,American IPA,297,12.0 -1060,0.049,20.0,2195,Double D Blonde,American Blonde Ale,198,12.0 -1061,0.078,60.0,1605,Festeroo Winter Ale,American Strong Ale,198,12.0 -1062,0.063,70.0,1543,Proxima IPA,American IPA,198,12.0 -1063,0.049,20.0,1390,Double D Blonde (2013),American Blonde Ale,198,12.0 -1064,0.048,13.0,1354,541 American Lager,American Pale Lager,198,12.0 -1065,0.065,90.0,1353,Alphadelic IPA,American IPA,198,12.0 -1066,0.065,90.0,499,Alphadelic IPA (2011),American IPA,198,12.0 -1067,0.049,20.0,498,Double D Blonde (2011),American Blonde Ale,198,12.0 -1068,0.07,,1501,Green House India Pale Ale,American IPA,395,12.0 -1069,0.051,,1004,The One They Call Zoe,American Pale Lager,395,12.0 -1070,0.051,40.0,502,Alteration,Altbier,395,12.0 -1071,0.06,50.0,501,Pale Dog,American Pale Ale (APA),395,12.0 -1072,0.065,,2357,Porter Culture,American Porter,136,12.0 -1073,0.068,,2483,Hard Cider,Cider,80,16.0 -1074,0.027000000000000003,21.0,2482,Totally Radler,Radler,80,16.0 -1075,0.039,20.0,2400,Nonstop Hef Hop,American Pale Wheat Ale,80,16.0 -1076,0.039,20.0,2399,Nonstop Hef Hop,American Pale Wheat Ale,80,16.0 -1077,0.039,20.0,2398,Nonstop Hef Hop,American Pale Wheat Ale,80,16.0 -1078,0.039,20.0,2397,Nonstop Hef Hop,American Pale Wheat Ale,80,16.0 -1079,0.039,20.0,2396,Nonstop Hef Hop,American Pale Wheat Ale,80,16.0 -1080,0.039,20.0,2395,Nonstop Hef Hop,American Pale Wheat Ale,80,16.0 -1081,0.039,20.0,2394,Nonstop Hef Hop,American Pale Wheat Ale,80,16.0 -1082,0.039,20.0,2393,Nonstop Hef Hop,American Pale Wheat Ale,80,16.0 -1083,0.039,20.0,2392,Nonstop Hef Hop,American Pale Wheat Ale,80,16.0 -1084,0.039,20.0,2391,Nonstop Hef Hop,American Pale Wheat Ale,80,16.0 -1085,0.039,20.0,2390,Nonstop Hef Hop,American Pale Wheat Ale,80,16.0 -1086,0.039,20.0,2389,Nonstop Hef Hop,American Pale Wheat Ale,80,16.0 -1087,0.057999999999999996,60.0,2388,Rise Up Red,American Amber / Red Ale,80,16.0 -1088,0.057999999999999996,35.0,2200,Survival Stout,American Stout,80,16.0 -1089,0.066,75.0,2199,Hopworks IPA,American IPA,80,16.0 -1090,0.073,70.0,2193,Abominable Winter Ale,American Strong Ale,80,16.0 -1091,0.06,60.0,1398,Pigwar White India Pale Ale,American White IPA,80,16.0 -1092,0.057999999999999996,60.0,1085,Rise-Up Red (2014),American Amber / Red Ale,80,16.0 -1093,0.073,70.0,916,Abominable Winter Ale (2012),American Strong Ale,80,16.0 -1094,0.051,32.0,658,HUB Lager,Czech Pilsener,80,16.0 -1095,0.066,75.0,653,Hopworks IPA (2012),American IPA,80,16.0 -1096,0.055999999999999994,,2385,Watermelon Wheat,American Pale Wheat Ale,120,12.0 -1097,0.051,17.0,2384,Laka Laka Pineapple,Hefeweizen,120,12.0 -1098,0.06,,2383,Oktoberfest,Märzen / Oktoberfest,120,16.0 -1099,0.065,,1251,Trail Maker Pale Ale,American Pale Ale (APA),445,12.0 -1100,0.055,,1250,Action Man Lager,Vienna Lager,445,12.0 -1101,0.068,90.0,1903,Let It Ride IPA,American IPA,277,12.0 -1102,0.065,22.0,1691,Stir Crazy Winter Ale,Winter Warmer,277,12.0 -1103,0.05,10.0,1555,Sweet Yamma Jamma Ale,Fruit / Vegetable Beer,277,12.0 -1104,0.046,27.0,1115,Shenanigans Summer Ale,American Pale Wheat Ale,277,12.0 -1105,0.065,80.0,729,Midnight Ryder,American Black Ale,277,12.0 -1106,0.054000000000000006,45.0,728,Day Tripper Pale Ale,American Pale Ale (APA),277,12.0 -1107,0.048,32.0,2350,Oklahoma Suks,American Amber / Red Ale,140,12.0 -1108,0.055,42.0,2301,Power & Light,American Pale Ale (APA),140,12.0 -1109,0.059000000000000004,27.0,1904,White Rabbit ,Witbier,140,12.0 -1110,0.057999999999999996,58.0,2609,Tribute,American Pale Ale (APA),23,12.0 -1111,0.07,75.0,2038,Infamous IPA,American IPA,242,12.0 -1112,0.055,20.0,1774,Hijack,Cream Ale,242,12.0 -1113,0.045,20.0,559,Jon Boat Coastal Ale,American Blonde Ale,527,12.0 -1114,0.068,55.0,558,I-10 IPA,American IPA,527,12.0 -1115,0.053,28.0,553,People's Pale Ale,American Pale Ale (APA),527,12.0 -1116,0.049,,2376,Summer Ale,American Blonde Ale,123,12.0 -1117,,,1784,Appreciation Ale,American IPA,316,16.0 -1118,0.052000000000000005,18.0,2673,House Lager,Keller Bier / Zwickel Bier,2,16.0 -1119,0.048,15.0,2672,Leisure Time,American Pale Lager,2,12.0 -1120,0.07200000000000001,80.0,2671,Excess IPL,American India Pale Lager,2,16.0 -1121,0.067,65.0,2670,Hoponius Union,American India Pale Lager,2,12.0 -1122,0.049,45.0,2669,Calyptra,American India Pale Lager,2,12.0 -1123,0.05,,1405,Helen's Blend,Cider,416,12.0 -1124,0.051,,823,Jack's Hard Cider,Cider,416,12.0 -1125,0.055,37.0,1793,Thunder Ann,American Pale Ale (APA),312,12.0 -1126,0.055,,2453,Razz Wheat,Fruit / Vegetable Beer,92,12.0 -1127,0.065,,2363,Hop Ryot,American IPA,92,12.0 -1128,0.07,,689,Mystic Mama IPA,American IPA,92,12.0 -1129,0.05,,688,Firefly Amber Ale,American Amber / Red Ale,92,12.0 -1130,0.067,,687,Chomolungma Honey Nut Brown Ale,English Brown Ale,92,12.0 -1131,0.069,,2408,Welcome to Scoville,American IPA,114,12.0 -1132,,,2595,Bastian,American Strong Ale,32,12.0 -1133,0.045,,2480,Healani,Hefeweizen,32,12.0 -1134,0.055,,1525,Yabba Dhaba Chai Tea Porter,American Porter,32,12.0 -1135,0.055,,1524,A Capella Gluten Free Pale Ale,American Pale Ale (APA),32,12.0 -1136,0.06,,1523,Casper White Stout,American Blonde Ale,32,12.0 -1137,0.06,,1254,JP's Ould Sod Irish Red IPA,American IPA,32,12.0 -1138,0.05,15.0,2060,Weize Guy,Hefeweizen,233,12.0 -1139,0.05,50.0,469,Fox Tail Gluten Free Ale,American Pale Ale (APA),233,12.0 -1140,0.09300000000000001,90.0,468,Hop Box Imperial IPA,American Double / Imperial IPA,233,12.0 -1141,0.052000000000000005,15.0,467,Joseph James American Lager,American Adjunct Lager,233,12.0 -1142,0.071,,2163,Sucha Much IPA,American IPA,208,12.0 -1143,0.075,24.0,2162,Lewbricator Wheat Dopplebock ,Doppelbock,208,12.0 -1144,0.052000000000000005,16.0,2374,Weisse Versa (2012),Hefeweizen,125,12.0 -1145,0.057999999999999996,25.0,1560,Mother in Lager,Munich Dunkel Lager,125,12.0 -1146,0.055,40.0,1557,Weekend Warrior Pale Ale,American Pale Ale (APA),125,12.0 -1147,0.055,25.0,1458,Karbachtoberfest,Märzen / Oktoberfest,125,12.0 -1148,0.047,20.0,1235,Love Street Summer Seasonal (2014),Kölsch,125,12.0 -1149,0.066,20.0,1068,Barn Burner Saison,Saison / Farmhouse Ale,125,12.0 -1150,0.095,85.0,666,Rodeo Clown Double IPA,American Double / Imperial IPA,125,12.0 -1151,0.049,45.0,465,Sympathy for the Lager,American Amber / Red Lager,125,12.0 -1152,0.052000000000000005,15.0,464,Weisse Versa,Hefeweizen,125,12.0 -1153,0.066,70.0,463,Hopadillo India Pale Ale,American IPA,125,12.0 -1154,0.057,19.0,1678,KelSo Nut Brown Lager,Euro Dark Lager,342,12.0 -1155,0.06,64.0,1572,KelSo India Pale Ale,American IPA,342,12.0 -1156,0.055,23.0,1348,KelSo Pilsner,Czech Pilsener,342,12.0 -1157,0.057999999999999996,,1193,Skilak Scottish Ale,Scottish Ale,458,12.0 -1158,0.05,15.0,1187,Peninsula Brewers Reserve (PBR),American Blonde Ale,458,12.0 -1159,0.068,,349,Sunken Island IPA,American IPA,458,12.0 -1160,0.057999999999999996,,348,Skilak Scottish Ale (2011),Scottish Ale,458,12.0 -1161,0.065,11.0,760,Cold Smoke Scotch Ale (2007),Scotch Ale / Wee Heavy,510,16.0 -1162,0.065,65.0,759,Double Haul IPA (2009),American IPA,510,16.0 -1163,0.065,65.0,758,Double Haul IPA (2006),American IPA,510,16.0 -1164,0.055,50.0,87,Eddy Out Pale Ale,American Pale Ale (APA),510,16.0 -1165,0.065,65.0,86,Double Haul IPA,American IPA,510,16.0 -1166,0.065,11.0,85,Cold Smoke Scotch Ale,Scotch Ale / Wee Heavy,510,16.0 -1167,,,2472,U. P. Witbier,Witbier,84,12.0 -1168,,,779,November Gale Pale Ale,American Pale Ale (APA),84,12.0 -1169,,,364,Olde Ore Dock Scottish Ale,Scottish Ale,84,12.0 -1170,,,60,Widow Maker Black Ale,American Brown Ale,84,12.0 -1171,,,59,Lift Bridge Brown Ale,American Brown Ale,84,12.0 -1172,,,58,Pick Axe Blonde Ale,American Blonde Ale,84,12.0 -1173,,,57,Red Jacket Amber Ale,American Amber / Red Ale,84,12.0 -1174,0.051,,2436,Amber Ale,American Amber / Red Ale,102,12.0 -1175,0.055,,1706,King Street Pilsner,Czech Pilsener,102,12.0 -1176,0.06,70.0,1667,King Street IPA,American IPA,102,12.0 -1177,0.057,10.0,1666,King Street Hefeweizen,Hefeweizen,102,12.0 -1178,0.049,,1665,King Street Blonde Ale,American Blonde Ale,102,12.0 -1179,0.063,65.0,2460,India Pale Ale,American IPA,87,16.0 -1180,0.048,11.0,2459,Blackberry Wheat,American Pale Wheat Ale,87,16.0 -1181,0.046,18.0,1274,Longboard Island Lager,American Amber / Red Lager,439,24.0 -1182,0.046,18.0,1220,Longboard Island Lager,American Amber / Red Lager,439,16.0 -1183,0.046,18.0,1070,Longboard Island Lager,American Amber / Red Lager,439,12.0 -1184,0.046,18.0,590,Longboard Island Lager,American Amber / Red Lager,439,12.0 -1185,0.04,9.0,781,Choc Beer (2003),American Dark Wheat Ale,505,12.0 -1186,0.08,,1637,Bellingham Beer Week 2013 Collaboration,Belgian Strong Dark Ale,354,16.0 -1187,0.054000000000000006,15.0,1741,A Slice of Hefen,Hefeweizen,332,16.0 -1188,0.07200000000000001,100.0,664,Elevated IPA,American IPA,332,16.0 -1189,0.066,30.0,392,Rumspringa Golden Bock,Maibock / Helles Bock,545,12.0 -1190,0.048,28.0,195,Lancaster German Style Kölsch,Kölsch,545,12.0 -1191,0.045,,2547,Beach Cruiser,Hefeweizen,59,12.0 -1192,0.068,,2493,I.P. Eh!,American IPA,59,12.0 -1193,0.05,,2492,Schoolhouse Honey,American Amber / Red Ale,59,12.0 -1194,0.055,,2491,10 Degrees of Separation,English Brown Ale,59,12.0 -1195,0.05,12.0,2108,Laughing Dog Cream Ale,Cream Ale,218,12.0 -1196,0.048,9.0,1397,Two-One Niner,American Pilsner,218,12.0 -1197,0.064,66.0,1396,Laughing Dog IPA,American IPA,218,12.0 -1198,0.064,95.0,1675,Madra Allta,American IPA,345,12.0 -1199,0.055999999999999994,70.0,1249,Duluchan India Pale Ale,American IPA,345,12.0 -1200,0.05,,1445,Lazy Monk Bohemian Pilsner,Czech Pilsener,406,16.0 -1201,0.051,,475,Yellowstone Golden Ale,Kölsch,537,12.0 -1202,0.057,,474,Tumbleweed IPA,American IPA,537,12.0 -1203,0.05,,473,Lewis & Clark Amber Ale,American Amber / Red Ale,537,12.0 -1204,0.05,,472,Miner's Gold Hefeweizen,Hefeweizen,537,12.0 -1205,0.057,,471,Back Country Scottish Ale,Scottish Ale,537,12.0 -1206,0.052000000000000005,30.0,2036,Getaway,German Pilsener,244,16.0 -1207,0.06,30.0,1168,Farm Girl Saison,Saison / Farmhouse Ale,244,16.0 -1208,0.057999999999999996,40.0,1832,Adam's Stout,American Stout,298,12.0 -1209,0.057,42.0,1688,American Hero,American Amber / Red Ale,298,12.0 -1210,0.052000000000000005,20.0,1687,Schweet Ale,Fruit / Vegetable Beer,298,12.0 -1211,0.065,75.0,1686,Irregardless IPA,American IPA,298,12.0 -1212,0.057,40.0,2434,Peach Pale Ale,American Pale Ale (APA),104,12.0 -1213,0.06,,2332,Deadeye Jack,American Porter,149,12.0 -1214,0.075,,2330,Pistols at Dawn,American Stout,149,16.0 -1215,0.057,47.0,2329,Peacemaker Pale Ale,American Pale Ale (APA),149,12.0 -1216,0.057999999999999996,11.0,2327,Shotgun Betty,Hefeweizen,149,12.0 -1217,0.061,30.0,2326,Sweet Josie,American Brown Ale,149,12.0 -1218,0.059000000000000004,42.0,1926,Long Trail IPA,English India Pale Ale (IPA),268,12.0 -1219,0.046,30.0,1924,Long Trail Ale,American Amber / Red Ale,268,12.0 -1220,0.07200000000000001,33.0,1090,Double Bag,Altbier,268,16.0 -1221,0.04,8.0,574,Blackbeary Wheat,Fruit / Vegetable Beer,268,12.0 -1222,0.046,30.0,573,Long Trail Ale (1),Altbier,268,12.0 -1223,0.046,8.0,2584,Gose,Gose,41,16.0 -1224,0.048,20.0,2583,Vermont Pilsner,German Pilsener,41,16.0 -1225,0.055,,2582,Mosaic Single Hop IPA,American IPA,41,16.0 -1226,0.045,,2581,Lost Galaxy,American IPA,41,16.0 -1227,0.062,65.0,1309,Face Plant IPA,American IPA,430,12.0 -1228,0.055999999999999994,55.0,1308,Rhino Chasers Pilsner,Czech Pilsener,430,12.0 -1229,0.052000000000000005,29.0,1571,Slow Hand Stout,American Stout,377,16.0 -1230,0.062,,1204,Hips Don't Lie,Hefeweizen,456,16.0 -1231,0.052000000000000005,,1122,Ride Again Pale Ale,American Pale Ale (APA),456,16.0 -1232,0.048,,700,The Farmer's Daughter,American Blonde Ale,456,16.0 -1233,0.038,18.0,2033,Pub Ale,English Dark Mild Ale,245,12.0 -1234,0.051,31.0,2032,Ballistic Blonde,Belgian Pale Ale,245,12.0 -1235,0.054000000000000006,,2311,Knotty Pine,American Pale Ale (APA),158,12.0 -1236,0.053,20.0,1153,Lumberyard Pilsner,American Pilsner,158,12.0 -1237,0.061,,355,Lumberyard IPA,American IPA,158,12.0 -1238,0.057999999999999996,,125,Lumberyard Red Ale,American Amber / Red Ale,158,12.0 -1239,0.05,,962,Mac's Highlander Pale Ale (2000),American Pale Ale (APA),485,12.0 -1240,0.051,32.0,961,Mac's Scottish Style Amber Ale (2000),American Amber / Red Ale,485,12.0 -1241,0.05,,1475,Macon Progress Ale,American Pale Ale (APA),400,12.0 -1242,0.055,,1008,Macon History Ale,American Brown Ale,400,12.0 -1243,0.099,,2454,Galaxy High,American Double / Imperial IPA,91,12.0 -1244,0.043,18.0,2209,Sol Drifter,American Blonde Ale,91,12.0 -1245,0.085,,2133,Thunder Snow,Winter Warmer,91,12.0 -1246,0.079,18.0,1994,The Great Pumpcan,Fruit / Vegetable Beer,91,16.0 -1247,0.047,11.0,1816,LIFT,Kölsch,91,12.0 -1248,0.05,40.0,1815,SPRYE,American Pale Ale (APA),91,12.0 -1249,0.069,70.0,1126,Psychopathy,American IPA,91,12.0 -1250,0.07,32.0,1125,Gnarly Brown,American Brown Ale,91,12.0 -1251,0.06,30.0,1124,Happy Amber,American Amber / Red Ale,91,12.0 -1252,0.051,20.0,1813,#9,Fruit / Vegetable Beer,303,16.0 -1253,0.055,13.0,1113,Elder Betty,Hefeweizen,303,12.0 -1254,0.051,20.0,360,#9,Fruit / Vegetable Beer,303,12.0 -1255,0.042,,511,High Country Pilsner (Current),German Pilsener,534,12.0 -1256,0.065,,75,Epic IPA,American IPA,534,12.0 -1257,0.042,,74,Golden Trout Pilsner,German Pilsener,534,12.0 -1258,0.045,,73,Real McCoy Amber Ale (Current),American Amber / Red Ale,534,12.0 -1259,0.07200000000000001,,1628,Festivus (1),Winter Warmer,356,12.0 -1260,0.067,,1626,Manayunk Oktoberfest,Märzen / Oktoberfest,356,12.0 -1261,0.045,21.0,1625,Belgian Style Session Ale,Belgian Pale Ale,356,12.0 -1262,0.055,,1624,Manayunk IPA,American IPA,356,12.0 -1263,0.055,,1600,Yunkin' Punkin',Pumpkin Ale,356,12.0 -1264,0.05,18.0,1484,Summer Paradise,American Pale Wheat Ale,356,12.0 -1265,0.09,30.0,1356,Monk from the 'Yunk,Tripel,356,12.0 -1266,0.06,14.0,1355,Schuylkill Punch,Fruit / Vegetable Beer,356,12.0 -1267,0.085,85.0,1334,Dreamin' Double IPA,American Double / Imperial IPA,356,12.0 -1268,0.099,93.0,1674,Chaotic Double IPA,American Double / Imperial IPA,346,12.0 -1269,0.08,88.0,1673,Manzanita IPA,American IPA,346,12.0 -1270,0.06,25.0,1672,Riverwalk Blonde Ale,American Blonde Ale,346,12.0 -1271,0.095,49.0,1671,Gillespie Brown Ale,American Brown Ale,346,12.0 -1272,0.066,44.0,1670,Manzanita Pale Ale,American Pale Ale (APA),346,12.0 -1273,0.047,,1262,Marble Pilsner,German Pilsener,443,12.0 -1274,0.062,,845,Marble India Pale Ale,American IPA,443,12.0 -1275,0.07200000000000001,,1783,Toughcats IPA,American IPA,317,16.0 -1276,0.05,,1717,Tug Pale Ale,American Pale Ale (APA),317,16.0 -1277,0.099,,1716,Sexy Chaos,Russian Imperial Stout,317,16.0 -1278,0.063,,1516,Ace Hole American Pale Ale,American Pale Ale (APA),317,16.0 -1279,0.09699999999999999,,725,Cant Dog Imperial Pale Ale,American Double / Imperial IPA,317,16.0 -1280,0.05,20.0,2308,River House,Saison / Farmhouse Ale,161,16.0 -1281,0.065,47.0,2268,Pretzel Stout,American Stout,161,16.0 -1282,0.05,35.0,2197,Rubberneck Red,American Amber / Red Ale,161,16.0 -1283,0.08,,2120,The Imperial Texan,American Double / Imperial IPA,161,16.0 -1284,0.08,,1234,The Imperial Texan,American Double / Imperial IPA,161,12.0 -1285,0.05,,1233,Day Break 4-Grain Breakfast Beer,Rye Beer,161,16.0 -1286,0.05,,1232,River House Saison,Saison / Farmhouse Ale,161,12.0 -1287,0.065,,1231,There Will Be Stout,American Stout,161,12.0 -1288,0.065,60.0,1831,Our Legacy IPA,American IPA,299,12.0 -1289,0.042,,1359,Saranac Shandy,Shandy,299,12.0 -1290,0.065,60.0,1135,Our Legacy IPA,American IPA,299,16.0 -1291,0.051,,960,Saranac Golden Pilsener (2003),German Pilsener,299,12.0 -1292,0.045,,959,Saranac Adirondack Light (2002),Light Lager,299,12.0 -1293,0.045,,958,DAX Light (1998),Light Lager,299,12.0 -1294,0.048,,957,Saranac Traditional Lager (2000),American Pale Lager,299,12.0 -1295,0.047,,956,Pomegranate Wheat (2008),Fruit / Vegetable Beer,299,12.0 -1296,0.05,12.0,773,Blueberry Blonde Ale,American Blonde Ale,299,12.0 -1297,0.06,,686,Saranac White IPA,American IPA,299,12.0 -1298,0.047,,453,Saranac Summer Ale (2011),American Pale Wheat Ale,299,12.0 -1299,0.055,,150,Saranac Pale Ale (12 oz.),English Pale Ale,299,12.0 -1300,0.055,,133,Saranac Pale Ale (16 oz.),English Pale Ale,299,16.0 -1301,0.051,20.0,1578,Lahaina Town Brown,American Brown Ale,375,12.0 -1302,0.055,,1429,Pau Hana Pilsner,Czech Pilsener,375,12.0 -1303,0.05,,1271,Lemongrass Saison,Saison / Farmhouse Ale,375,12.0 -1304,0.07,,713,Aloha B’ak’tun,Belgian Strong Dark Ale,375,12.0 -1305,0.08199999999999999,,712,Liquid Breadfruit,Fruit / Vegetable Beer,375,12.0 -1306,0.06,24.0,690,Sobrehumano Palena'ole,American Amber / Red Ale,375,12.0 -1307,0.05,12.0,547,La Perouse White,Witbier,375,12.0 -1308,0.068,68.0,435,Flyin' HI.P.Hay,American IPA,375,12.0 -1309,0.055,15.0,313,Mana Wheat,American Pale Wheat Ale,375,12.0 -1310,0.045,18.0,33,Bikini Blonde Lager,Munich Helles Lager,375,12.0 -1311,0.057,30.0,32,CoCoNut Porter,American Porter,375,12.0 -1312,0.062,65.0,31,Big Swell IPA,American IPA,375,12.0 -1313,0.037000000000000005,34.0,1237,Pit Stop Chocolate Porter,American Porter,448,12.0 -1314,0.037000000000000005,21.0,1236,Pace Setter Belgian Style Wit,Witbier,448,12.0 -1315,0.037000000000000005,53.0,1047,Back in the Saddle Rye Pale Ale,American Pale Ale (APA),448,12.0 -1316,0.069,,1986,Bushwhacker Cider,Cider,254,16.0 -1317,0.069,,1985,Weim-R-Iner,Cider,254,16.0 -1318,0.069,,1984,Cherry Bomb,Cider,254,16.0 -1319,0.07200000000000001,75.0,2186,Tsunami IPA,American IPA,203,19.2 -1320,0.07200000000000001,75.0,2185,Tsunami IPA,American IPA,203,12.0 -1321,0.042,22.0,2184,Humpback Blonde Ale,American Blonde Ale,203,12.0 -1322,0.052000000000000005,27.0,2178,Hawaiian Crow Porter,American Porter,203,12.0 -1323,0.052000000000000005,23.0,2177,Volcano Red Ale,American Amber / Red Ale,203,12.0 -1324,0.054000000000000006,42.0,2176,Mauna Kea Pale Ale,American Pale Ale (APA),203,12.0 -1325,0.053,11.0,1508,Shark Bait,Fruit / Vegetable Beer,393,12.0 -1326,0.053,30.0,1507,Gator Tail Brown Ale,American Brown Ale,393,12.0 -1327,0.071,62.0,1506,Miami Vice IPA,American IPA,393,12.0 -1328,0.053,16.0,1325,Big Rod Coconut Ale,American Blonde Ale,393,12.0 -1329,0.055999999999999994,,174,Mickey Finn's Amber Ale,American Amber / Red Ale,552,12.0 -1330,0.063,61.0,2093,Pleasure Town,American IPA,223,12.0 -1331,0.063,61.0,1814,Pleasure Town IPA,American IPA,223,12.0 -1332,0.048,12.0,587,Snowshoe White Ale,Witbier,223,12.0 -1333,0.05,24.0,586,Kodiak Brown Ale,American Brown Ale,223,12.0 -1334,0.057,70.0,434,Sockeye Red IPA,American IPA,223,12.0 -1335,0.08,100.0,2668,Habitus (2014),American Double / Imperial IPA,3,16.0 -1336,0.075,85.0,2667,Solis,American IPA,3,16.0 -1337,0.06,24.0,2666,Jucundus,Wheat Ale,3,16.0 -1338,0.08,100.0,2664,Habitus,American Double / Imperial IPA,3,16.0 -1339,0.063,30.0,2663,Grazias,Cream Ale,3,16.0 -1340,0.057999999999999996,28.0,2662,Claritas,Kölsch,3,16.0 -1341,0.083,,2535,Vinyl Frontier,American Double / Imperial IPA,65,24.0 -1342,0.08,,2534,Disco Superfly,American IPA,65,24.0 -1343,0.075,,2533,Misty Mountain Hop,American IPA,65,24.0 -1344,0.075,,2532,One-Hit Wonderful,Belgian IPA,65,24.0 -1345,0.065,,2531,En Parfaite Harmonie,Saison / Farmhouse Ale,65,24.0 -1346,0.043,8.0,2530,Daft Funk,Berliner Weissbier,65,24.0 -1347,0.075,,2529,Love In An Ellavator,American IPA,65,24.0 -1348,0.053,,2528,Spin Doctor,American Pale Ale (APA),65,24.0 -1349,0.05,,1612,Keeper (Current),American Pilsner,363,12.0 -1350,0.068,,1611,Better Half,American IPA,363,12.0 -1351,0.048,,1273,SNO White Ale,Witbier,440,16.0 -1352,0.048,,365,BRIK Irish Red Ale,Irish Red Ale,440,16.0 -1353,,,273,AXL Pale Ale,American Pale Ale (APA),440,16.0 -1354,0.087,80.0,1884,Hop Freak,American Double / Imperial IPA,284,16.0 -1355,0.051,24.0,1272,Louie's Demise Amber Ale,American Amber / Red Ale,284,16.0 -1356,0.075,51.0,1080,Hop Happy,American IPA,284,16.0 -1357,0.065,20.0,932,Booyah Farmhouse Ale,Saison / Farmhouse Ale,284,16.0 -1358,0.092,,776,O-Gii,Witbier,284,16.0 -1359,0.048,18.0,172,Flaming Damsel Lager (2010),Vienna Lager,284,16.0 -1360,0.051,24.0,171,Louie’s Demise Immort-Ale (2010),American Amber / Red Ale,284,16.0 -1361,0.099,,2361,Axe Head Malt Liquor,American Malt Liquor,134,24.0 -1362,0.054000000000000006,,2359,Huber Bock (2014),Bock,134,16.0 -1363,0.04,,2358,Minhas Light (2012),Light Lager,134,12.0 -1364,0.05,,2282,Huber,American Pale Lager,134,12.0 -1365,0.062,,2281,Clear Creek Ice,American Pale Lager,134,16.0 -1366,0.062,,2280,Clear Creek Ice,American Pale Lager,134,12.0 -1367,0.055,,2279,Mountain Crest,American Pale Lager,134,16.0 -1368,0.055,,2278,Mountain Crest,American Pale Lager,134,12.0 -1369,0.055,,2277,Mountain Creek (2013),American Pale Lager,134,12.0 -1370,0.05,,2276,Boxer,American Adjunct Lager,134,24.0 -1371,0.042,,2275,Boxer Light,Light Lager,134,12.0 -1372,0.055,,2274,Boxer Ice,American Adjunct Lager,134,12.0 -1373,0.05,,2273,Boxer,American Adjunct Lager,134,12.0 -1374,0.05,,2442,Cortez Gold,Belgian Pale Ale,98,32.0 -1375,0.068,66.0,2441,Mission IPA,American IPA,98,32.0 -1376,0.048,44.0,1460,El Conquistador Extra Pale Ale,American Pale Ale (APA),98,32.0 -1377,0.092,75.0,1459,Shipwrecked Double IPA,American Double / Imperial IPA,98,32.0 -1378,0.04,,1476,Squeaky Bike Nut Brown Ale,American Brown Ale,399,16.0 -1379,0.04,,902,Dead Horse Amber,American Pale Wheat Ale,399,16.0 -1380,0.04,,645,Rocket Bike American Lager,California Common / Steam Beer,399,16.0 -1381,0.04,,644,Johnny's American IPA,American IPA,399,16.0 -1382,0.055,,337,Boneshaker Brown Ale,English Brown Ale,547,24.0 -1383,0.055999999999999994,,336,Iron Mike Pale Ale,American Pale Ale (APA),547,24.0 -1384,0.042,,2236,Monkadelic,American Pale Ale (APA),189,12.0 -1385,0.075,85.0,2159,City of the Sun,American IPA,209,16.0 -1386,0.068,75.0,2157,Booming Rollers,American IPA,209,16.0 -1387,0.052000000000000005,50.0,2156,Oneida,American Pale Ale (APA),209,16.0 -1388,0.067,75.0,2154,Aurora ,American Amber / Red Ale,209,16.0 -1389,0.055,30.0,1495,Lomaland,Saison / Farmhouse Ale,209,16.0 -1390,0.047,46.0,1494,Fortunate Islands,American Pale Wheat Ale,209,16.0 -1391,0.057999999999999996,40.0,1493,Black House,American Stout,209,16.0 -1392,0.065,115.0,1492,Blazing World,American Amber / Red Ale,209,16.0 -1393,0.05,,327,Wapiti Amber Ale,American Amber / Red Ale,549,12.0 -1394,0.054000000000000006,,719,Sweet Georgia Brown,American Brown Ale,514,16.0 -1395,0.087,,718,Rich Man's IIPA,American Double / Imperial IPA,514,16.0 -1396,0.057999999999999996,,717,Monkey Paw Oatmeal Pale Ale,American Pale Ale (APA),514,16.0 -1397,0.055999999999999994,28.0,1907,Montauk Summer Ale,American Blonde Ale,276,12.0 -1398,0.06,49.0,1906,Driftwood Ale,Extra Special / Strong Bitter (ESB),276,12.0 -1399,0.055999999999999994,18.0,1756,When Helles Freezes Over,Munich Helles Lager,326,12.0 -1400,0.049,24.0,1617,Morgan Street Oktoberfest,Märzen / Oktoberfest,326,12.0 -1401,0.047,14.0,1052,Honey Wheat,American Pale Wheat Ale,326,12.0 -1402,0.046,24.0,1051,Black Bear Dark Lager,Schwarzbier,326,12.0 -1403,0.05,35.0,1046,Golden Pilsner,German Pilsener,326,12.0 -1404,0.052000000000000005,21.0,2413,Cali Creamin',Cream Ale,111,12.0 -1405,0.05,,419,Second Wind Pale Ale,American Pale Ale (APA),540,12.0 -1406,0.05,,408,Sunny Haze,Hefeweizen,540,12.0 -1407,0.052000000000000005,21.0,2237,Towhead,American Blonde Ale,188,12.0 -1408,0.07,70.0,2208,Lil' Helper,American IPA,188,12.0 -1409,0.08199999999999999,,1952,Train Wreck,American Amber / Red Ale,260,16.0 -1410,0.085,,768,Full Moon Belgian White Ale,Witbier,507,12.0 -1411,0.07200000000000001,,625,Desert Magic IPA,American IPA,507,12.0 -1412,0.042,,326,Up River Light,Light Lager,507,12.0 -1413,0.085,,132,Full Moon Belgian White Ale (2007),Witbier,507,12.0 -1414,0.055,,131,Dry Heat Hefeweizen (2006),Hefeweizen,507,12.0 -1415,0.05,,1598,Mustang Sixty-Six,American Amber / Red Lager,366,12.0 -1416,0.04,,862,Mustang '33,American Pale Lager,366,12.0 -1417,0.04,,699,Session '33 (2011),American Pale Lager,366,12.0 -1418,0.053,10.0,421,Mustang Golden Ale,American Blonde Ale,366,12.0 -1419,0.053,14.0,420,Washita Wheat,American Pale Wheat Ale,366,12.0 -1420,0.037000000000000005,10.0,2345,Gansett Light,Light Lager,143,16.0 -1421,0.052000000000000005,30.0,2224,Bohemian Pils,American Pilsner,143,16.0 -1422,0.053,30.0,1775,Autocrat Coffee Milk Stout,Milk / Sweet Stout,143,16.0 -1423,0.086,35.0,1291,Narragansett Bohemian Pilsner,German Pilsener,143,16.0 -1424,0.042,24.0,1093,Narragansett Summer Ale,American Pale Wheat Ale,143,12.0 -1425,0.05,22.0,580,Narragansett Cream Ale,Cream Ale,143,16.0 -1426,0.042,24.0,403,Narragansett Summer Ale,American Pale Wheat Ale,143,16.0 -1427,0.07,22.0,316,Narragansett Porter,American Porter,143,16.0 -1428,0.065,32.0,315,Narragansett Bock,Bock,143,16.0 -1429,0.055,15.0,314,Narragansett Fest Lager,Märzen / Oktoberfest,143,16.0 -1430,0.053,,1537,Undun Blonde Ale,American Blonde Ale,387,16.0 -1431,0.07400000000000001,,1536,CuDa Cascadian Dark Ale,American Black Ale,387,16.0 -1432,0.085,86.0,1265,Old Grogham Imperial India Pale Ale,American Double / Imperial IPA,387,16.0 -1433,0.085,86.0,747,Old Grogham Imperial India Pale Ale (2012),American Double / Imperial IPA,387,16.0 -1434,0.07400000000000001,,746,CuDa Cascadian Dark Ale (2012),American Black Ale,387,16.0 -1435,0.053,,654,Undun Blonde Ale (2012),American Blonde Ale,387,16.0 -1436,0.061,11.0,1705,Wick For Brains,Pumpkin Ale,337,12.0 -1437,0.065,65.0,1148,Nebraska India Pale Ale,American IPA,337,12.0 -1438,0.048,10.0,1147,EOS Hefeweizen,Hefeweizen,337,12.0 -1439,0.048,15.0,1146,Brunette Nut Brown Ale,English Brown Ale,337,12.0 -1440,0.057,29.0,1145,Cardinal Pale Ale,American Pale Ale (APA),337,12.0 -1441,0.066,,1758,County Line IPA,American IPA,325,12.0 -1442,0.048,,1757,Trauger Pilsner,German Pilsener,325,12.0 -1443,0.045,40.0,2475,Slow Ride,American IPA,82,12.0 -1444,0.065,70.0,2230,Ranger IPA,American IPA,82,12.0 -1445,0.05,29.0,1987,Shift,American Pale Lager,82,12.0 -1446,0.055999999999999994,21.0,1978,1554 Black Lager,Euro Dark Lager,82,12.0 -1447,0.048,,1975,Blue Paddle,Czech Pilsener,82,12.0 -1448,0.055,,1737,California Route,American Amber / Red Lager,82,12.0 -1449,0.052000000000000005,,1707,Snapshot,American Pale Wheat Ale,82,16.0 -1450,0.048,,1690,Sunshine Wheat Beer,American Pale Wheat Ale,82,12.0 -1451,0.052000000000000005,18.0,1586,Fat Tire Amber Ale,American Amber / Red Ale,82,12.0 -1452,0.05,29.0,952,Shift (1),American Pale Lager,82,12.0 -1453,0.052000000000000005,18.0,748,Fat Tire Amber Ale (2011),American Amber / Red Ale,82,12.0 -1454,0.05,29.0,578,Shift,American Pale Lager,82,16.0 -1455,0.065,70.0,564,Ranger IPA,American IPA,82,16.0 -1456,0.052000000000000005,18.0,563,Fat Tire Amber Ale,American Amber / Red Ale,82,16.0 -1457,0.065,70.0,115,Ranger IPA (Current),American IPA,82,12.0 -1458,0.048,,72,Sunshine Wheat Beer (2009),American Pale Wheat Ale,82,12.0 -1459,0.052000000000000005,18.0,71,Fat Tire Amber Ale (2008),American Amber / Red Ale,82,12.0 -1460,0.034,6.0,1417,Weiss Trash Culture,Berliner Weissbier,410,12.0 -1461,0.062,,885,Sea Hag IPA,American IPA,410,12.0 -1462,0.05,,884,Elm City Pilsner,American Pilsner,410,12.0 -1463,0.05,,757,Atlantic Amber Ale (2004),American Amber / Red Ale,410,12.0 -1464,0.09,,568,668 Neighbor of the Beast12 oz.,Belgian Pale Ale,410,12.0 -1465,0.08800000000000001,85.0,320,Gandhi-Bot Double IPA (12 oz.),American Double / Imperial IPA,410,12.0 -1466,0.09,,43,668 Neighbor of the Beast (16 oz.) (2010),Belgian Pale Ale,410,16.0 -1467,0.08800000000000001,85.0,42,Gandhi-Bot Double IPA (16 oz.) (2010),American Double / Imperial IPA,410,16.0 -1468,0.05,,41,Elm City Lager (2007),American Pilsner,410,12.0 -1469,0.05,,40,Atlantic Amber Ale (2007),American Amber / Red Ale,410,12.0 -1470,0.062,,39,Sea Hag IPA (Current),American IPA,410,12.0 -1471,0.05,,2272,Rebirth Pale Ale,American Pale Ale (APA),174,12.0 -1472,0.068,,1582,Irish Channel Stout,American Stout,174,16.0 -1473,0.08800000000000001,,1114,MechaHopzilla,American Double / Imperial IPA,174,16.0 -1474,0.065,,486,Hopitoulas IPA,American IPA,174,16.0 -1475,0.039,,485,NOLA Brown Ale,English Dark Mild Ale,174,12.0 -1476,0.049,,484,NOLA Blonde Ale,American Blonde Ale,174,12.0 -1477,0.055999999999999994,20.0,2043,Skylight,Dunkelweizen,241,12.0 -1478,0.055999999999999994,30.0,2042,Kadigan,American Blonde Ale,241,12.0 -1479,0.052000000000000005,50.0,2041,Dammit Jim!,American Amber / Red Ale,241,12.0 -1480,0.054000000000000006,,646,Nut Brown Ale,English Brown Ale,518,12.0 -1481,0.046,,165,White Ale,Witbier,518,12.0 -1482,0.042,35.0,2050,Cream Ale,Cream Ale,238,12.0 -1483,0.07200000000000001,,915,Green Head IPA,American IPA,495,12.0 -1484,0.054000000000000006,,914,Plum Island Belgian White,Witbier,495,12.0 -1485,0.055,,913,Newburyport Pale Ale,American Pale Ale (APA),495,12.0 -1486,0.055,,1811,Marblehead,American Amber / Red Ale,305,16.0 -1487,0.051,31.0,1622,Jam Session,American Pale Ale (APA),359,16.0 -1488,0.07200000000000001,80.0,1621,Hop Drop 'N Roll IPA,American IPA,359,16.0 -1489,0.06,,1307,Paleo IPA,English India Pale Ale (IPA),431,12.0 -1490,0.061,,1306,Buck Snort Stout,American Stout,431,12.0 -1491,0.055,,1305,Station 33 Firehouse Red,Irish Red Ale,431,12.0 -1492,0.045,,1304,Slimy Pebble Pils,German Pilsener,431,12.0 -1493,0.045,50.0,2692,Get Together,American IPA,0,16.0 -1494,0.049,26.0,2691,Maggie's Leap,Milk / Sweet Stout,0,16.0 -1495,0.048,19.0,2690,Wall's End,English Brown Ale,0,16.0 -1496,0.06,38.0,2689,Pumpion,Pumpkin Ale,0,16.0 -1497,0.06,25.0,2688,Stronghold,American Porter,0,16.0 -1498,0.055999999999999994,47.0,2687,Parapet ESB,Extra Special / Strong Bitter (ESB),0,16.0 -1499,0.069,,1854,Blue Boots IPA,American IPA,293,16.0 -1500,0.063,,1227,Hoppy Bitch IPA,American IPA,450,16.0 -1501,0.063,42.0,1226,Three Skulls Ale Pale Ale,American Pale Ale (APA),450,16.0 -1502,0.045,,541,Walter's Premium Pilsener Beer,German Pilsener,529,12.0 -1503,0.045,,109,Floppin' Crappie,American Pale Wheat Ale,529,12.0 -1504,0.043,,1917,Left of the Dial IPA,American IPA,271,12.0 -1505,0.04,,1190,Notch Session Pils,Czech Pilsener,271,12.0 -1506,0.055,,1264,O'Fallon Pumpkin Beer,Pumpkin Ale,442,12.0 -1507,0.061,66.0,1258,5 Day IPA,American IPA,442,12.0 -1508,0.051,7.0,128,O'Fallon Wheach,Fruit / Vegetable Beer,442,12.0 -1509,0.067,70.0,2331,Watershed IPA,American IPA,150,12.0 -1510,0.054000000000000006,24.0,1669,Oakshire Amber Ale,American Amber / Red Ale,150,12.0 -1511,0.057999999999999996,27.0,1668,Overcast Espresso Stout,American Stout,150,12.0 -1512,0.067,70.0,999,Watershed IPA (2013),American IPA,150,12.0 -1513,0.08199999999999999,25.0,2247,Lake Monster,Baltic Porter,184,16.0 -1514,0.049,27.0,2071,London Homesick Ale,English Bitter,184,12.0 -1515,0.048,35.0,2070,Luchesa Lager,Keller Bier / Zwickel Bier,184,12.0 -1516,0.048,35.0,2069,Slow Ride,American Pale Ale (APA),184,12.0 -1517,0.047,,2192,Occidental Hefeweizen,American Pale Wheat Ale,200,16.0 -1518,0.051,,1130,Occidental Dunkel,Dunkelweizen,200,16.0 -1519,0.05,,1129,Occidental Altbier,Altbier,200,16.0 -1520,0.045,,1081,Occidental Kölsch,Kölsch,200,16.0 -1521,0.092,72.0,2335,Perpetual Darkness,Belgian Strong Dark Ale,148,12.0 -1522,0.087,29.0,2334,Clan Warrior,Scotch Ale / Wee Heavy,148,12.0 -1523,0.054000000000000006,36.0,2333,Psycho Penguin Vanilla Porter,American Porter,148,12.0 -1524,0.047,,1721,Heliocentric Hefeweizen,Hefeweizen,148,12.0 -1525,0.051,,1720,Ghose Drifter Pale Ale,American Pale Ale (APA),148,12.0 -1526,0.051,,1431,Ghost Rider Pale Ale (2013),American Pale Ale (APA),148,12.0 -1527,0.047,,1430,Helios Hefeweizen (2013),Hefeweizen,148,12.0 -1528,0.095,19.0,1059,The Hole in Hadrian's Wall,Scottish Ale,471,16.0 -1529,0.065,26.0,1058,33 Select Brown Ale,American Brown Ale,471,16.0 -1530,0.06,29.0,603,Midwest Charm Farmhouse Ale,Saison / Farmhouse Ale,471,16.0 -1531,0.05,45.0,602,Boji Blue Pale Ale,American Pale Ale (APA),471,16.0 -1532,0.057,26.0,601,Winter Games Select #32 Stout,American Stout,471,16.0 -1533,0.05,23.0,600,Boji Beach Golden Rye Ale,Rye Beer,471,16.0 -1534,0.06,,1828,Hopsmith Pale Lager,American Pale Lager,301,16.0 -1535,0.065,65.0,1487,Falling Down Brown Ale,American Brown Ale,301,16.0 -1536,0.068,,1486,Resolution Rye Stout,American Stout,301,16.0 -1537,0.055,,1485,Plowshare Porter,American Porter,301,16.0 -1538,0.046,20.0,1394,Old Forge Pumpkin Ale,Pumpkin Ale,301,16.0 -1539,0.045,,1381,Endless Sun Ale,American Pale Wheat Ale,301,16.0 -1540,0.065,,900,Celestial Blonde Ale,American Blonde Ale,301,16.0 -1541,0.075,,891,Overbite IPA,American IPA,301,16.0 -1542,0.055,,509,T-Rail Pale Ale,American Pale Ale (APA),301,16.0 -1543,0.048,,508,Endless Summer Ale (2011),American Pale Wheat Ale,301,16.0 -1544,0.053,,1530,Clem's Gold,American Pale Lager,390,16.0 -1545,0.055,,1529,Lizzy's Red,American Amber / Red Lager,390,16.0 -1546,0.067,,1528,Orlison India Pale Lager,American Pale Lager,390,16.0 -1547,0.042,,1527,Brünette,Euro Dark Lager,390,16.0 -1548,0.040999999999999995,,1526,Havanüther,Light Lager,390,16.0 -1549,0.065,,2113,Lyric Ale,Saison / Farmhouse Ale,216,12.0 -1550,0.053,,2112,Atalanta,Saison / Farmhouse Ale,216,12.0 -1551,0.049,35.0,2302,Pinner Throwback IPA,American IPA,166,12.0 -1552,0.052000000000000005,,1883,Centennial State Pale Ale,American Pale Ale (APA),166,19.2 -1553,0.08,,1859,Old Chub NITRO,Scotch Ale / Wee Heavy,166,16.0 -1556,,,1752,Icey.P.A.,American IPA,166,16.0 -1557,0.05,,1751,One Nut Brown,English Brown Ale,166,12.0 -1558,,,1750,Birth IPA,American IPA,166,12.0 -1559,0.065,65.0,1444,Dale's Pale Ale,American Pale Ale (APA),166,12.0 -1560,0.065,65.0,1252,Dale's Pale Ale,American Pale Ale (APA),166,12.0 -1561,0.053,35.0,1167,Mama's Little Yella Pils,Czech Pilsener,166,19.2 -1562,0.085,,993,oSKAr the G'Rauch,American IPA,166,19.2 -1563,0.085,,992,oSKAr the G'Rauch,American IPA,166,16.0 -1564,0.065,65.0,955,Dale's Pale Ale,American Pale Ale (APA),166,19.2 -1565,0.07,,933,The Deuce,American Brown Ale,166,16.0 -1566,0.065,65.0,892,Dale's Pale Ale (10 Year Anniversary),American Pale Ale (APA),166,12.0 -1567,0.065,65.0,828,Dale's Pale Ale (2012),American Pale Ale (APA),166,12.0 -1568,0.087,85.0,806,Gordon Imperial Red (2010),American Double / Imperial IPA,166,12.0 -1569,0.065,65.0,755,Dale's Pale Ale (2011),American Pale Ale (APA),166,12.0 -1570,0.065,65.0,754,Dale's Pale Ale (2010),American Pale Ale (APA),166,12.0 -1571,0.087,85.0,726,G'KNIGHT (16 oz.),American Double / Imperial IPA,166,16.0 -1572,0.09,,720,15th Anniversary Abbey Ale (2012),Belgian Dark Ale,166,16.0 -1573,0.08,,661,Chaka,Belgian Strong Pale Ale,166,16.0 -1574,0.08,70.0,585,HGH (Home Grown Hops): Part Duh,American Strong Ale,166,12.0 -1575,0.08,,565,Deviant Dale's IPA,American Double / Imperial IPA,166,16.0 -1576,0.09,60.0,391,One Hit Wonder,American Double / Imperial IPA,166,12.0 -1577,0.087,85.0,388,G'KNIGHT (12 oz.),American Double / Imperial IPA,166,12.0 -1578,0.099,98.0,8,Ten Fidy Imperial Stout,Russian Imperial Stout,166,12.0 -1579,0.053,35.0,7,Mama's Little Yella Pils,Czech Pilsener,166,12.0 -1580,0.099,100.0,6,GUBNA Imperial IPA,American Double / Imperial IPA,166,12.0 -1581,0.08,35.0,5,Old Chub,Scottish Ale,166,12.0 -1582,0.087,85.0,4,Gordon Ale (2009),American Double / Imperial IPA,166,12.0 -1583,0.065,65.0,1,Dale's Pale Ale,American Pale Ale (APA),166,12.0 -1584,0.092,85.0,805,Gordon (2005),American Double / Imperial IPA,503,12.0 -1585,0.095,98.0,804,Ten Fidy Imperial Stout (2008),Russian Imperial Stout,503,12.0 -1586,0.099,98.0,803,Ten Fidy Imperial Stout (2007),Russian Imperial Stout,503,12.0 -1587,0.08,35.0,787,Old Chub (2008),Scottish Ale,503,12.0 -1588,0.08,35.0,786,Old Chub (2004),Scottish Ale,503,12.0 -1589,0.08,35.0,785,Old Chub (2003),Scottish Ale,503,12.0 -1590,0.065,65.0,745,Dale's Pale Ale (2008),American Pale Ale (APA),503,12.0 -1591,0.065,65.0,744,Dale's Pale Ale (2006),American Pale Ale (APA),503,12.0 -1592,0.065,65.0,743,Dale's Pale Ale (2004),American Pale Ale (APA),503,12.0 -1593,0.065,65.0,742,Dale's Pale Ale (2003),American Pale Ale (APA),503,12.0 -1594,0.065,65.0,741,Dale's Pale Ale (2002),American Pale Ale (APA),503,12.0 -1595,0.052000000000000005,,734,Leroy (2005),American Brown Ale,503,12.0 -1596,0.087,60.0,733,Gordon Beer (2006),American Double / Imperial IPA,503,12.0 -1597,0.087,85.0,1533,G'KNIGHT,American Double / Imperial IPA,389,12.0 -1598,0.099,98.0,1532,Ten Fidy,Russian Imperial Stout,389,12.0 -1599,0.08,85.0,1328,Deviant Dale's IPA,American Double / Imperial IPA,389,16.0 -1600,0.08,35.0,1175,Old Chub,Scottish Ale,389,12.0 -1601,0.065,65.0,1166,Dale's Pale Ale,American Pale Ale (APA),389,19.2 -1602,0.065,65.0,1065,Dale's Pale Ale,American Pale Ale (APA),389,12.0 -1603,0.055,45.0,1908,Fresh Slice White IPA,American White IPA,275,12.0 -1604,0.055,55.0,1946,Overgrown American Pale Ale,American Pale Ale (APA),261,12.0 -1605,0.04,39.0,1961,Ozark American Pale Ale,American Pale Ale (APA),259,12.0 -1606,0.048,,1684,Hula Hoppie Session IPA,American IPA,341,12.0 -1607,0.053,,927,Dirty Hippie Dark Wheat,American Dark Wheat Ale,341,12.0 -1608,0.052000000000000005,23.0,1268,Rustic Red,Irish Red Ale,441,16.0 -1609,0.053,48.0,697,Stimulator Pale Ale,American Pale Ale (APA),441,16.0 -1610,0.045,22.0,696,Old Town Ale,Kölsch,441,16.0 -1611,0.044000000000000004,28.0,695,Car 21,English Bitter,441,16.0 -1612,0.05,24.0,694,Cache La Porter,American Porter,441,16.0 -1613,0.042,35.0,1805,Rodeo Rye Pale Ale,American Pale Ale (APA),307,12.0 -1614,0.062,65.0,1048,Outlaw IPA,American IPA,307,12.0 -1615,0.044000000000000004,,1043,North Fork Lager,American Pale Lager,307,12.0 -1616,0.048,35.0,890,Payette Pale Ale,American Pale Ale (APA),307,12.0 -1617,0.055,25.0,775,Mutton Buster,American Brown Ale,307,12.0 -1618,0.05,,1087,Side Kick Kölsch,Kölsch,468,12.0 -1619,0.046,,1931,Fresh Cut Pilsner,American Pilsner,266,12.0 -1620,0.05,61.0,1930,Summer Session Ale,American Pale Wheat Ale,266,12.0 -1621,0.04,12.0,2238,Lobo Lito,Light Lager,187,12.0 -1622,0.05,17.0,2144,Robert Earl Keen Honey Pils,American Pilsner,187,12.0 -1623,0.065,77.0,2175,Mound Builder IPA,American IPA,205,12.0 -1624,0.062,62.0,2168,Amazon Princess IPA,American IPA,205,12.0 -1625,0.042,,1956,Farmer's Daughter Wheat,American Pale Wheat Ale,205,12.0 -1626,0.045,,1794,People's Pilsner,German Pilsener,205,12.0 -1627,0.055,10.0,2633,Hotbox Brown,American Brown Ale,13,12.0 -1628,0.048,15.0,2632,Gold,American Blonde Ale,13,12.0 -1629,0.057999999999999996,,2631,Black,American Black Ale,13,12.0 -1630,0.065,65.0,2630,98 Problems (Cuz A Hop Ain't One),American IPA,13,12.0 -1631,0.05,40.0,2629,Veteran’s Pale Ale (VPA),American Pale Ale (APA),13,12.0 -1632,0.05,35.0,2628,Grapefruit IPA,American IPA,13,12.0 -1633,0.051,,1062,Pete's ESP Lager (1998),American Pale Lager,470,12.0 -1634,0.047,,1061,Pete's Wicked Summer Brew (1995),American Pale Wheat Ale,470,12.0 -1635,0.049,,1060,Pete's Wicked Bohemian Pilsner (1997),Czech Pilsener,470,12.0 -1636,,,1056,Pete's Wicked Pale Ale (1997),American Pale Ale (APA),470,12.0 -1637,0.047,,1055,Pete's Wicked Summer Brew (2002),American Pale Wheat Ale,470,12.0 -1638,0.047,,1054,Pete's Wicked Summer Brew (1997),American Pale Wheat Ale,470,12.0 -1639,0.047,,1053,Pete's Wicked Summer Brew (1996),American Pale Wheat Ale,470,12.0 -1640,0.040999999999999995,12.0,2635,Sparkle,American Pale Lager,11,16.0 -1641,0.059000000000000004,25.0,1404,North 45 Amber Ale,American Amber / Red Ale,11,16.0 -1642,0.069,20.0,1403,Horny Monk,Dubbel,11,16.0 -1643,0.067,74.0,1402,Mind's Eye PA,American IPA,11,16.0 -1644,0.061,60.0,2312,Camelback,American IPA,157,12.0 -1645,0.055999999999999994,,1636,Local 5 Pale Ale,American Pale Ale (APA),355,16.0 -1646,0.073,,1518,Devils Head Red Ale,American Amber / Red Ale,355,16.0 -1647,0.07,75.0,1384,Elephant Rock IPA,American IPA,355,12.0 -1648,0.05,,1797,Black Bay Milk Stout,Milk / Sweet Stout,310,12.0 -1649,0.05,,1437,Atom Splitter Pale Ale,American Pale Ale (APA),310,12.0 -1650,0.06,20.0,1791,Hot Date Ale,Chile Beer,314,16.0 -1651,0.07,,1540,Masked Bandit IPA,American Black Ale,314,16.0 -1652,0.06,24.0,1491,Sweet Potato Ale,Fruit / Vegetable Beer,314,16.0 -1653,0.045,18.0,1335,Float Trip Ale,American Blonde Ale,314,16.0 -1654,0.055,25.0,847,Old Tom Porter,American Porter,314,16.0 -1655,0.045,18.0,846,Black Walnut Wheat,American Dark Wheat Ale,314,16.0 -1656,0.055,20.0,521,McKinney Eddy Amber Ale,American Amber / Red Ale,314,16.0 -1657,0.07,70.0,479,Missouri Mule India Pale Ale,American IPA,314,16.0 -1658,0.065,,2559,Blood of the Unicorn,American Amber / Red Ale,52,16.0 -1659,0.069,51.0,1760,GreyBeard™ IPA,American IPA,324,12.0 -1660,0.057,31.0,1759,Pisgah Pale Ale,American Pale Ale (APA),324,12.0 -1661,0.045,,1589,PONTO S.I.P.A.,American IPA,370,16.0 -1662,0.049,,1457,Chronic Ale,American Amber / Red Ale,370,16.0 -1663,0.068,,1191,Swami's India Pale Ale,American IPA,370,16.0 -1664,0.05,,2336,New Cleveland Palesner,American Pilsner,147,12.0 -1665,0.054000000000000006,45.0,2553,Mazzie,American Pale Ale (APA),55,12.0 -1666,0.099,,1909,Big Chuck Barleywine,American Barleywine,274,12.0 -1667,,,335,Ponderosa IPA,American IPA,548,12.0 -1668,,,64,Liquid Amber Ale,American Amber / Red Ale,548,12.0 -1669,0.059000000000000004,14.0,2360,Morning Wood Wheat (Current),American Pale Wheat Ale,135,12.0 -1670,0.069,17.0,1463,Hideout Helles,Munich Helles Lager,135,12.0 -1671,0.06,15.0,1462,Dead Eye Dunkel,Munich Dunkel Lager,135,12.0 -1672,0.057999999999999996,21.0,1461,Peacemaker Pilsner,Czech Pilsener,135,12.0 -1673,0.057,68.0,711,Over the Rail Pale Ale,American Pale Ale (APA),135,12.0 -1674,0.057999999999999996,21.0,188,Pallavicini Pilsner (2009),Czech Pilsener,135,12.0 -1675,0.059000000000000004,14.0,130,Morning Wood Wheat (Current),American Pale Wheat Ale,135,12.0 -1676,0.052000000000000005,18.0,399,Pyramid Hefeweizen (2011),Hefeweizen,544,12.0 -1677,0.052000000000000005,18.0,82,Haywire Hefeweizen (2010),Hefeweizen,544,16.0 -1678,0.045,35.0,2031,Golden Fleece,Belgian Pale Ale,246,12.0 -1679,0.055,30.0,2030,Smoking Mirror,American Porter,246,12.0 -1680,0.046,,2269,Rahr's Blonde,Munich Helles Lager,176,12.0 -1681,0.057999999999999996,60.0,2229,Pride of Texas Pale Ale,American Pale Ale (APA),176,12.0 -1682,0.044000000000000004,5.0,2370,18th Anniversary Gose,Gose,128,12.0 -1683,0.046,25.0,2211,White (2015),Witbier,128,12.0 -1684,0.099,85.0,1861,BLAKKR,American Black Ale,128,12.0 -1685,0.051,21.0,1718,Firemans #4 Blonde Ale (2013),American Blonde Ale,128,12.0 -1686,0.059000000000000004,,1290,The Sword Iron Swan Ale,English Pale Ale,128,12.0 -1687,0.053,52.0,1091,Hans' Pils (2015),German Pilsener,128,12.0 -1688,0.06,50.0,1086,Four Squared (2015),American Blonde Ale,128,12.0 -1689,0.051,21.0,830,Firemans #4 Blonde Ale (2015),American Blonde Ale,128,12.0 -1690,0.07200000000000001,55.0,1021,Watership Brown Ale,American Brown Ale,475,12.0 -1691,0.062,55.0,938,Gangway IPA,American IPA,475,12.0 -1692,0.049,,715,Long Day Lager,Czech Pilsener,475,12.0 -1693,0.051,17.0,2516,Farmer's Daughter Blonde,American Blonde Ale,68,16.0 -1694,0.055,45.0,2515,Pump House IPA,American IPA,68,16.0 -1695,0.07,,2514,Suicide Blonde IPA,Belgian IPA,68,16.0 -1696,0.047,25.0,2513,Vanilla Porter,American Porter,68,16.0 -1697,0.057999999999999996,18.0,2512,Honey Rye,Rye Beer,68,16.0 -1698,0.055,,1467,Happy Cider,Cider,403,16.0 -1699,0.065,44.0,945,Long Hammer IPA,American IPA,487,16.0 -1700,0.065,44.0,583,Long Hammer IPA,American IPA,487,12.0 -1701,0.057999999999999996,27.0,339,Copper Hook (2011),American Amber / Red Ale,487,12.0 -1702,0.08,,1375,Nectar of the Hops,Mead,421,16.0 -1703,0.08,,1374,Sunshine Nectar,Mead,421,16.0 -1704,0.08,,1373,Black Raspberry Nectar,Mead,421,16.0 -1705,0.05,16.0,2087,Blood Orange Wit,Witbier,225,16.0 -1706,0.05,40.0,2414,Consilium,American Pale Ale (APA),110,12.0 -1707,0.09,60.0,1581,Hammer & Sickle,Russian Imperial Stout,110,12.0 -1708,0.07,100.0,1176,Redacted Rye IPA,American IPA,110,16.0 -1709,0.099,100.0,1006,Elevation Triple India Pale Ale,American Double / Imperial IPA,110,12.0 -1710,0.05,25.0,1005,5:00 O'Clock Afternoon Ale,American Blonde Ale,110,16.0 -1711,0.07,100.0,636,Ryeteous Rye IPA (2012),American IPA,110,16.0 -1712,0.064,,1538,Stout Ol' Friend,American Stout,386,16.0 -1713,0.064,,1075,Stout Ol' Friend (2012),American Stout,386,16.0 -1714,,,710,Rye Porter,American Porter,386,16.0 -1715,0.05,,709,Miner's Gold,American Blonde Ale,386,16.0 -1716,0.046,,708,Vienna Lager,Vienna Lager,386,16.0 -1717,0.055999999999999994,,706,Jessie's Garage,American Pale Ale (APA),386,16.0 -1718,0.062,,220,Colorado Red Ale,American Amber / Red Ale,386,12.0 -1719,,,219,Miner's Gold,American Blonde Ale,386,12.0 -1720,0.055,40.0,2576,Fist City,American Pale Ale (APA),44,12.0 -1721,0.068,,1133,A Little Crazy,Belgian Pale Ale,44,12.0 -1722,0.057999999999999996,15.0,609,Rosa Hibiscus Ale,Herbed / Spiced Beer,44,12.0 -1723,0.061,31.0,418,Fistmas Ale,Herbed / Spiced Beer,44,12.0 -1724,0.057,25.0,417,Oktoberfest Revolution,Märzen / Oktoberfest,44,12.0 -1725,0.068,28.0,416,Eugene Porter,American Porter,44,12.0 -1726,0.065,70.0,415,Anti-Hero IPA,American IPA,44,12.0 -1727,0.05,14.0,414,Bottom Up Belgian Wit,Witbier,44,12.0 -1728,0.057,42.0,2452,Hustle,American Amber / Red Ale,93,12.0 -1729,0.055,42.0,2451,Pure Fury,American Pale Ale (APA),93,12.0 -1730,0.06,60.0,2132,Dad,American Amber / Red Ale,93,12.0 -1731,0.057999999999999996,35.0,1993,Panther,American Porter,93,12.0 -1732,0.052000000000000005,21.0,1992,Franz,Märzen / Oktoberfest,93,12.0 -1733,0.043,45.0,1935,Zen,American Pale Ale (APA),93,12.0 -1734,0.07200000000000001,75.0,1852,Truth,American IPA,93,12.0 -1735,0.048,25.0,1851,Cougar,American Blonde Ale,93,12.0 -1736,0.038,,2307,Smooth Operator,Cream Ale,162,16.0 -1737,0.035,,2580,Gose,Gose,42,16.0 -1738,0.043,,1807,Maine Island Trail Ale,American Pale Ale (APA),42,16.0 -1739,0.05,,1180,River North White Ale,Witbier,459,16.0 -1740,0.05,,1179,River North Ale,American Amber / Red Ale,459,16.0 -1741,0.05,55.0,1771,Lil SIPA,American IPA,321,16.0 -1742,0.055,60.0,1654,Hop Bomber Rye Pale Ale,American Pale Ale (APA),321,16.0 -1743,0.05,100.0,2579,Jah Mon,American IPA,43,12.0 -1744,0.062,,2373,Oktoberfest,Märzen / Oktoberfest,43,12.0 -1745,0.08,,2049,Headless Wylie,Pumpkin Ale,43,12.0 -1746,0.05,,2048,Dayman IPA,American IPA,43,12.0 -1747,0.071,,1880,All Aboard! Anniversary Stout,Oatmeal Stout,43,12.0 -1748,0.062,,1879,Hop Lace,American White IPA,43,12.0 -1749,0.048,,1878,OH-PA Session Pale Ale,American Pale Ale (APA),43,12.0 -1750,0.08,,1877,Patrick's Poison,American Amber / Red Ale,43,12.0 -1751,0.081,,1764,Rudolph's Red,American Amber / Red Ale,43,12.0 -1752,0.053,,1103,Babbling Blonde,American Blonde Ale,43,12.0 -1753,0.051,,1102,Maxwell's Scottish Ale,Scottish Ale,43,12.0 -1754,0.061,,1101,Grateful White,Witbier,43,12.0 -1755,0.055,,1100,RT Lager,American Amber / Red Lager,43,12.0 -1756,0.062,,1099,Old Wylie's IPA,American IPA,43,12.0 -1757,0.048,,1098,Hala Kahiki Pineapple Beer,Fruit / Vegetable Beer,43,12.0 -1758,0.045,,1330,Track 1 Amber Lager,American Amber / Red Lager,427,16.0 -1759,0.053,,2074,Pine Knob Pilsner,Czech Pilsener,229,16.0 -1760,,,1724,Cal and Co. Black Cherry Porter,American Porter,229,16.0 -1761,0.055,,1280,Lazy Daze Lager,American Adjunct Lager,229,16.0 -1762,0.059000000000000004,,899,Rochester Red Ale,American Amber / Red Ale,229,16.0 -1763,0.05,,363,Milkshake Stout,Milk / Sweet Stout,229,16.0 -1764,0.07,,158,Cornerstone IPA,American IPA,229,16.0 -1765,0.055,,97,Lazy Daze Lager,American Adjunct Lager,229,12.0 -1766,0.051,,1860,Rogue American Amber Ale,American Amber / Red Ale,289,16.0 -1767,0.076,78.0,1577,12th Round,American Strong Ale,376,16.0 -1768,0.07,80.0,1576,RoughTail IPA,American IPA,376,16.0 -1769,0.08,,1575,Polar Night Stout,American Stout,376,16.0 -1770,0.071,36.0,2304,Sundown,Saison / Farmhouse Ale,164,12.0 -1771,0.099,,2249,Sanctified,Belgian Strong Pale Ale,164,12.0 -1772,0.051,,2053,Fear of a Brett Planet,American Pale Ale (APA),164,12.0 -1773,0.055999999999999994,40.0,1842,Original Slacker Ale,English Brown Ale,164,12.0 -1774,0.07200000000000001,,1841,Alpha Blackback,American Black Ale,164,12.0 -1775,0.063,,1782,Kiss Off IPA,American IPA,164,12.0 -1776,0.045,28.0,1552,Dog Days Summer Ale,Kölsch,164,12.0 -1777,0.055999999999999994,35.0,1479,1881 California Red,American Amber / Red Ale,397,12.0 -1778,0.073,55.0,1478,CAPT Black IPA,American Black Ale,397,12.0 -1779,0.048,42.0,1370,Ruhstaller's Gilt Edge Lager Beer,American Amber / Red Lager,397,12.0 -1780,0.073,55.0,883,CAPT Black IPA,American Black Ale,397,16.0 -1781,0.055999999999999994,35.0,882,1881 California Red Ale,American Amber / Red Ale,397,16.0 -1782,0.05,15.0,1868,Saint Archer White Ale,Witbier,288,12.0 -1783,0.068,66.0,1867,Saint Archer IPA,American IPA,288,12.0 -1784,0.052000000000000005,40.0,1865,Saint Archer Pale Ale,American Pale Ale (APA),288,12.0 -1785,0.048,22.0,1864,Saint Archer Blonde,Kölsch,288,12.0 -1786,0.069,20.0,2599,Sex Panther,American Porter,30,12.0 -1787,0.095,25.0,2073,Winter Warmer (Vault Series),Winter Warmer,30,16.0 -1788,0.091,99.0,2063,Count Hopula (Vault Series),American Double / Imperial IPA,30,16.0 -1789,0.055,,1995,Oktoberfest,Märzen / Oktoberfest,30,12.0 -1790,0.05,15.0,1934,SunSpot Golden Ale,American Blonde Ale,30,12.0 -1791,0.06,,1329,I.W.A. (2011),American Pale Wheat Ale,30,12.0 -1792,0.065,,1299,Supermonk I.P.A.,Belgian IPA,30,12.0 -1793,0.055,20.0,1073,Epicenter Amber Ale,American Amber / Red Ale,30,12.0 -1794,0.05,15.0,1072,SanTan HefeWeizen,Hefeweizen,30,12.0 -1795,0.07,85.0,1071,Hop Shock IPA,American IPA,30,12.0 -1796,0.069,20.0,852,Sex Panther (2014),American Porter,30,12.0 -1797,0.055,45.0,850,Devil’s Ale,American Pale Ale (APA),30,12.0 -1798,0.081,,839,Rail Slide Imperial Spiced Ale,Herbed / Spiced Beer,30,12.0 -1799,0.05,20.0,777,Mr. Pineapple,Fruit / Vegetable Beer,30,12.0 -1800,0.055,45.0,764,American Idiot Ale (2012),American Pale Ale (APA),30,12.0 -1801,0.07,85.0,317,Hop Shock IPA (2010),American IPA,30,12.0 -1802,0.05,15.0,286,SanTan HefeWeizen (2010),Hefeweizen,30,12.0 -1803,0.055,45.0,285,Devil’s Ale (2010),American Pale Ale (APA),30,12.0 -1804,0.055,20.0,124,Epicenter Amber Ale (2010),American Amber / Red Ale,30,12.0 -1805,0.057999999999999996,20.0,1392,Sanitas Saison Ale,Saison / Farmhouse Ale,419,12.0 -1806,0.068,65.0,1391,Sanitas Black IPA,American Black Ale,419,12.0 -1807,0.08900000000000001,88.0,2002,Giant DIPA,American Double / Imperial IPA,252,16.0 -1808,0.054000000000000006,,1683,Dread Brown Ale,American Brown Ale,252,12.0 -1809,0.07,,1362,Casinos IPA,English India Pale Ale (IPA),252,16.0 -1810,0.055,30.0,1519,Saison 88,Saison / Farmhouse Ale,392,12.0 -1811,0.071,95.0,967,Black IPA,American Black Ale,392,12.0 -1812,0.045,,599,Santa Fe Irish Red Ale,Irish Red Ale,392,12.0 -1813,,,307,Santa Fe Oktoberfest,Märzen / Oktoberfest,392,12.0 -1814,0.08,,305,Imperial Java Stout,Russian Imperial Stout,392,12.0 -1815,0.055,,304,Freestyle Pilsner,German Pilsener,392,12.0 -1816,0.066,,217,Happy Camper IPA,American IPA,392,12.0 -1817,0.05,11.0,1477,Oval Beach Blonde Ale,American Blonde Ale,398,16.0 -1818,0.065,,1503,Oak Aged Cider,Cider,394,12.0 -1819,0.065,,1466,Ginger Cider,Cider,394,12.0 -1820,0.065,,1245,Schilling Hard Cider,Cider,394,12.0 -1821,0.05,45.0,1324,Schlafly Yakima Wheat Ale,American Pale Wheat Ale,428,12.0 -1822,0.05,,1323,Schlafly Black Lager,Schwarzbier,428,12.0 -1823,0.045,30.0,1078,Schlafly IPA,American IPA,428,12.0 -1824,0.05,30.0,1077,Schlafly American Brown Ale,American Brown Ale,428,12.0 -1825,0.040999999999999995,16.0,588,Schlafly Hefeweizen,Hefeweizen,428,12.0 -1826,0.045,17.0,53,Schlafly Summer Lager,Munich Helles Lager,428,12.0 -1827,0.047,,815,Sea Dog Wild Blueberry Wheat Ale,Fruit / Vegetable Beer,502,12.0 -1828,0.07400000000000001,60.0,1302,Blur India Pale Ale,American IPA,432,12.0 -1829,0.065,,1416,Dry Cider,Cider,411,16.0 -1830,0.065,,1415,Dry Hard Cider,Cider,411,16.0 -1831,0.07,105.0,918,Frankenlou's IPA,American IPA,494,16.0 -1832,0.07,55.0,917,Becky's Black Cat Porter,American Porter,494,16.0 -1833,0.077,40.0,2250,Seventh Son of a Seventh Son,American Strong Ale,183,16.0 -1834,0.053,20.0,1768,Stone Fort Brown Ale,English Brown Ale,183,16.0 -1835,0.077,40.0,1767,Seventh Son Hopped Red Ale,American Amber / Red Ale,183,16.0 -1836,0.06,53.0,1766,Humulus Nimbus Super Pale Ale,American Pale Ale (APA),183,16.0 -1837,0.07,68.0,1765,Golden Ratio IPA,American IPA,183,16.0 -1838,0.068,,2368,Black Hop IPA,American Black Ale,130,12.0 -1839,0.05,,738,Archer's Ale (2004),English Pale Ale,511,12.0 -1840,0.069,65.0,1539,Monkey Fist IPA,American IPA,385,12.0 -1841,0.051,,975,Shipyard Summer Ale,American Pale Wheat Ale,385,12.0 -1842,0.047,,814,Pumpkinhead Ale,Pumpkin Ale,385,12.0 -1843,0.051,,727,Shipyard Export,American Blonde Ale,385,12.0 -1844,0.052000000000000005,,2474,Nooner,German Pilsener,83,12.0 -1845,0.07200000000000001,65.0,2239,Torpedo,American IPA,83,12.0 -1846,0.06,,1919,Yonder Bock,Maibock / Helles Bock,83,12.0 -1847,0.06,,1918,CANfusion Rye Bock,Rye Beer,83,12.0 -1848,0.055999999999999994,37.0,1905,Sierra Nevada Pale Ale,American Pale Ale (APA),83,16.0 -1849,0.048,26.0,1338,Old Chico Crystal Wheat,American Pale Wheat Ale,83,12.0 -1850,0.05,28.0,1295,Summerfest,Czech Pilsener,83,12.0 -1851,0.07200000000000001,65.0,426,Torpedo,American IPA,83,16.0 -1852,0.055999999999999994,37.0,400,Sierra Nevada Pale Ale,American Pale Ale (APA),83,12.0 -1853,0.069,,2353,Sietsema Red Label,Cider,137,16.0 -1854,0.042,,212,Bear Ass Brown,American Brown Ale,551,12.0 -1855,0.06,,161,Red Mountain Ale,American Amber / Red Ale,551,12.0 -1856,0.068,,160,Ice Pick Ale,American IPA,551,12.0 -1857,0.1,52.0,2574,4Beans,Baltic Porter,46,12.0 -1858,0.042,16.0,2479,Jammer,Gose,46,12.0 -1859,0.08,,2443,Abigale,Belgian Pale Ale,46,12.0 -1860,0.032,7.0,2266,Rad,Fruit / Vegetable Beer,46,16.0 -1861,0.065,62.0,2090,Bengali,American IPA,46,24.0 -1862,0.047,50.0,1962,Sensi Harvest,American Pale Ale (APA),46,12.0 -1863,0.099,111.0,1696,Hi-Res,American Double / Imperial IPA,46,12.0 -1864,0.07,70.0,1608,Global Warmer,American Strong Ale,46,12.0 -1865,0.067,74.0,1591,Autumnation (2013),American IPA,46,16.0 -1866,0.054000000000000006,42.0,1388,The Crisp,German Pilsener,46,16.0 -1867,0.052000000000000005,34.0,1387,Sweet Action,Cream Ale,46,16.0 -1868,0.063,57.0,1386,Righteous Ale,Rye Beer,46,16.0 -1869,0.064,62.0,1385,Bengali Tiger,American IPA,46,16.0 -1870,0.099,85.0,1020,3Beans,Baltic Porter,46,12.0 -1871,0.059000000000000004,47.0,778,Brownstone,American Brown Ale,46,16.0 -1872,0.052000000000000005,11.0,630,Apollo,American Pale Wheat Ale,46,16.0 -1873,0.049,35.0,629,Harbinger,Saison / Farmhouse Ale,46,16.0 -1874,0.091,103.0,628,Resin,American Double / Imperial IPA,46,12.0 -1875,0.063,69.0,525,Diesel,American Stout,46,16.0 -1876,0.06,48.0,512,Autumnation (2011-12) (2011),Pumpkin Ale,46,16.0 -1877,0.054000000000000006,42.0,425,The Crisp (2011),German Pilsener,46,16.0 -1878,0.052000000000000005,34.0,424,Sweet Action (2011),Cream Ale,46,16.0 -1879,0.063,57.0,423,Righteous Ale (2011),Rye Beer,46,16.0 -1880,0.064,62.0,422,Bengali Tiger (2011),American IPA,46,16.0 -1881,0.045,,1942,Rudie Session IPA,American IPA,264,12.0 -1882,0.07400000000000001,,1708,Taster's Choice,Doppelbock,264,12.0 -1883,0.068,65.0,1521,Modus Hoperandi,American IPA,264,12.0 -1884,0.057999999999999996,15.0,1297,Estival Cream Stout,American Stout,264,12.0 -1885,0.057999999999999996,,1192,Vernal Minthe Stout,American Stout,264,12.0 -1886,0.08,,1013,Hibernal Vinifera Stout,Foreign / Export Stout,264,12.0 -1887,,,774,Autumnal Molé Stout,American Stout,264,12.0 -1888,0.042,18.0,386,Mexican Logger,American Pale Lager,264,12.0 -1889,0.053,,70,True Blonde Ale,American Blonde Ale,264,12.0 -1890,0.061,,69,Euphoria Pale Ale,American Pale Ale (APA),264,12.0 -1891,0.057,58.0,68,ESB Special Ale,Extra Special / Strong Bitter (ESB),264,12.0 -1892,0.068,65.0,67,Modus Hoperandi,American IPA,264,12.0 -1893,0.057999999999999996,39.0,1792,Iron Butt Red Ale,American Amber / Red Ale,313,12.0 -1894,0.071,92.0,1609,Initial Point India Pale Ale,American IPA,313,12.0 -1895,0.085,,2537,Monkey Dancing On A Razor Blade,Belgian IPA,64,24.0 -1896,0.08199999999999999,,2536,Tripel Deke,Tripel,64,24.0 -1897,0.049,,30,Urban Wilderness Pale Ale,English Pale Ale,557,12.0 -1898,0.06,70.0,2305,Homefront IPA,American IPA,163,12.0 -1899,0.055,16.0,1588,Sly Fox Christmas Ale 2013,Winter Warmer,371,12.0 -1900,0.055999999999999994,25.0,1363,Grisette,Grisette,371,12.0 -1901,0.062,,1211,360° India Pale Ale,American IPA,371,12.0 -1902,0.049,18.0,1123,Helles Golden Lager,Munich Helles Lager,371,12.0 -1903,0.055,16.0,926,Sly Fox Christmas Ale 2012 (2012),Winter Warmer,371,12.0 -1904,0.084,90.0,894,Odyssey Imperial IPA,American Double / Imperial IPA,371,12.0 -1905,0.057999999999999996,25.0,166,Oktoberfest Lager,Märzen / Oktoberfest,371,12.0 -1906,0.07,113.0,24,113 IPA,American IPA,371,12.0 -1907,0.053,21.0,23,Dunkel Lager,Munich Dunkel Lager,371,12.0 -1908,0.055999999999999994,11.0,22,Royal Weisse Ale,Hefeweizen,371,12.0 -1909,0.049,44.0,21,Pikeland Pils,German Pilsener,371,12.0 -1910,0.051,40.0,20,Phoenix Pale Ale,American Pale Ale (APA),371,12.0 -1911,0.07,88.0,2407,Rule G IPA,American IPA,115,12.0 -1912,0.057999999999999996,35.0,2406,Murphy's Law,American Amber / Red Ale,115,12.0 -1913,0.062,33.0,2405,Alter Ego ,Saison / Farmhouse Ale,115,12.0 -1914,0.05,,2234,Monarch Pilsner,American Pilsner,191,12.0 -1915,0.06,55.0,1606,Snow King Pale Ale,American Pale Ale (APA),191,12.0 -1916,0.054000000000000006,36.0,617,Zonker Stout,Foreign / Export Stout,191,12.0 -1917,0.05,22.0,407,OB-1 Organic Ale,English Brown Ale,191,12.0 -1918,0.05,18.0,406,Snake River Lager,Vienna Lager,191,12.0 -1919,0.052000000000000005,32.0,402,Snake River Pale Ale,American Pale Ale (APA),191,12.0 -1920,0.068,60.0,393,Pako’s EyePA,American IPA,191,12.0 -1921,0.05,,1798,Thanksgiving Ale,Kölsch,309,12.0 -1922,0.092,,1655,Double Dagger Imperial IPA,American Double / Imperial IPA,309,12.0 -1923,0.063,100.0,1596,Dagger Falls IPA,American IPA,309,12.0 -1924,0.063,100.0,1595,Dagger Falls IPA,American IPA,309,12.0 -1925,0.06,,1482,Socktoberfest,Märzen / Oktoberfest,309,16.0 -1926,0.079,,1447,Hopnoxious Imperial IPA,American Double / Imperial IPA,309,12.0 -1927,0.099,,1425,Barrel Aged Seven Devils Imperial Stout,American Double / Imperial Stout,309,12.0 -1928,0.055,,1424,Boise Co-Op Two Score Ale,Saison / Farmhouse Ale,309,16.0 -1929,0.05,,1298,Sockeye Belgian Style Summer Ale,Witbier,309,16.0 -1930,0.064,,1181,Sockeye Maibock,Maibock / Helles Bock,309,12.0 -1931,0.099,100.0,1160,Old Devil's Tooth,American Barleywine,309,12.0 -1932,0.043,,1152,Galena Golden,American Blonde Ale,309,12.0 -1933,0.052000000000000005,32.0,1151,Hell-Diver Pale Ale,American Pale Ale (APA),309,12.0 -1934,0.046,12.0,1150,Woolybugger Wheat,American Pale Wheat Ale,309,12.0 -1935,0.057,,1076,Power House Porter,American Porter,309,12.0 -1936,0.084,90.0,995,Winterfest,American Strong Ale,309,16.0 -1937,0.063,100.0,879,Dagger Falls IPA,American IPA,309,12.0 -1938,0.07,18.0,1972,LuckenBock,Bock,257,16.0 -1939,0.055,40.0,1971,Texas Pale Ale (TPA),American IPA,257,16.0 -1940,0.08,,1970,6 String Saison,Saison / Farmhouse Ale,257,16.0 -1941,0.05,22.0,1969,Kol' Beer,Kölsch,257,16.0 -1942,0.035,,2024,Montauk Light,Light Lager,249,12.0 -1943,0.048,32.0,1283,Na Zdraví Pilsner,Czech Pilsener,436,16.0 -1944,0.055,65.0,1282,Nice Rack IPA,American IPA,436,16.0 -1945,0.075,72.0,2362,2014 IPA Cicada Series,American IPA,133,16.0 -1946,0.077,65.0,2346,Sinister Minister Black IPA,American IPA,133,16.0 -1947,0.053,45.0,2320,Jack the Sipper,Extra Special / Strong Bitter (ESB),133,12.0 -1948,0.057999999999999996,60.0,2297,Devil's Harvest Extra Pale Ale,American Pale Ale (APA),133,12.0 -1949,0.05,20.0,2296,Suzy B Dirty Blonde Ale,American Blonde Ale,133,12.0 -1950,0.08,80.0,1745,Mississippi Fire Ant,American Amber / Red Ale,133,16.0 -1951,0.057999999999999996,40.0,1120,Hipster Breakfast,Oatmeal Stout,133,16.0 -1952,0.05,20.0,1118,Suzy B Dirty Blonde Ale,American Blonde Ale,133,16.0 -1953,0.057999999999999996,60.0,1117,Devil's Harvest Extra Pale Ale,American Pale Ale (APA),133,16.0 -1954,0.065,45.0,2387,Pine Belt Pale Ale,American Pale Ale (APA),118,12.0 -1955,0.055,,2267,Walloon,Saison / Farmhouse Ale,118,12.0 -1956,0.069,23.0,1740,Le Mort Vivant,Bière de Garde,118,12.0 -1957,0.085,110.0,1728,Red Cockaded Ale,American Double / Imperial IPA,118,12.0 -1958,0.092,100.0,1497,Valkyrie Double IPA,American Double / Imperial IPA,118,12.0 -1959,0.085,110.0,1011,Red Cockaded Ale (2013),American Double / Imperial IPA,118,12.0 -1960,0.07200000000000001,40.0,1010,Old Potentate,Old Ale,118,12.0 -1961,0.05,20.0,856,Bombshell Blonde,American Blonde Ale,118,16.0 -1962,0.099,100.0,853,PRO-AM (2012) (2012),American Double / Imperial IPA,118,12.0 -1963,0.055,,691,Walloon (2014),Saison / Farmhouse Ale,118,12.0 -1964,0.069,23.0,555,Le Mort Vivant (2011),Bière de Garde,118,12.0 -1965,0.083,50.0,46,Buried Hatchet Stout,Foreign / Export Stout,118,12.0 -1966,0.065,45.0,45,Pine Belt Pale Ale,American Pale Ale (APA),118,16.0 -1967,0.05,20.0,44,Bombshell Blonde,American Blonde Ale,118,12.0 -1968,0.047,35.0,2486,Baby Daddy Session IPA,American IPA,78,12.0 -1969,,,763,Hopluia (2004),English India Pale Ale (IPA),508,16.0 -1970,0.057999999999999996,,2271,Ball & Chain (2014),American Pale Ale (APA),175,16.0 -1971,0.096,,2206,Bitter Biker Double IPA,American Double / Imperial IPA,175,16.0 -1972,0.08199999999999999,,2136,God Damn Pigeon Porter,American Porter,175,16.0 -1973,0.079,,2135,Working for the Weekend,American Double / Imperial IPA,175,16.0 -1974,0.06,,2134,Angry Adam,American Amber / Red Ale,175,16.0 -1975,0.055,,2109,Freedom Fries,American Stout,175,16.0 -1976,0.096,,1821,Bitter Biker Double IPA,American Double / Imperial IPA,175,12.0 -1977,0.073,,1820,Ghost Bike Pale Ale,American Pale Ale (APA),175,16.0 -1978,0.062,,1819,Spiteful IPA,American IPA,175,12.0 -1979,0.06,,1634,Alley Time,American Pale Ale (APA),175,12.0 -1980,0.057999999999999996,,1633,Fat Badger,Irish Red Ale,175,12.0 -1981,0.055,,1632,In the Weeds,American Pale Wheat Ale,175,12.0 -1982,0.05,22.0,855,Special Amber,Vienna Lager,498,12.0 -1983,0.05,22.0,445,Special Amber,Vienna Lager,498,12.0 -1984,0.055999999999999994,,1587,Seven Gates Pale Ale,American Pale Ale (APA),372,12.0 -1985,0.052000000000000005,,2242,Gunga Din,Cider,186,16.0 -1986,0.042,20.0,1544,Starr Pils,German Pilsener,383,12.0 -1987,0.065,52.0,1205,Northern Lights India Pale Ale,American IPA,383,16.0 -1988,0.048,12.0,369,Festie,Märzen / Oktoberfest,383,12.0 -1989,0.065,52.0,368,Northern Lights India Pale Ale,American IPA,383,12.0 -1990,0.065,65.0,2386,Third Eye Enlightened Pale Ale,American Pale Ale (APA),119,12.0 -1991,0.049,17.0,92,Colorado Kölsch,Kölsch,119,12.0 -1992,0.057,25.0,91,Steam Engine Lager,American Amber / Red Lager,119,12.0 -1993,0.065,65.0,90,Third Eye Pale Ale,American IPA,119,12.0 -1994,0.047,9.0,2366,Point Special (Current),American Adjunct Lager,131,12.0 -1995,0.047,9.0,2365,Point Special,American Adjunct Lager,131,12.0 -1996,0.054000000000000006,33.0,2270,Point Cascade Pale Ale (2013),American Pale Ale (APA),131,12.0 -1997,0.047,9.0,2228,Point Special,American Adjunct Lager,131,12.0 -1998,0.052000000000000005,9.0,2151,Onyx Black Ale,American Black Ale,131,12.0 -1999,0.063,64.0,2150,Beyond The Pale IPA,American IPA,131,12.0 -2000,0.047,9.0,2122,Point Special (2013),American Adjunct Lager,131,12.0 -2001,0.047,9.0,2121,Point Special (2012),American Adjunct Lager,131,12.0 -2002,0.047,9.0,2115,Point Special Lager,American Adjunct Lager,131,16.0 -2003,0.062,,1450,St. Benedict's Winter Ale,Winter Warmer,131,12.0 -2004,0.057,15.0,1357,Point Oktoberfest,Märzen / Oktoberfest,131,16.0 -2005,0.052000000000000005,7.0,1225,Point Nude Beach Summer Wheat,American Pale Wheat Ale,131,16.0 -2006,0.05,7.0,816,Point Nude Beach Summer Wheat,American Pale Wheat Ale,131,12.0 -2007,0.05,7.0,772,Point Nude Beach Summer Wheat (2011),American Pale Wheat Ale,131,12.0 -2008,0.035,,684,Drop Dead Blonde,American Blonde Ale,131,12.0 -2009,0.049,13.0,650,Three Kings Ale,Kölsch,131,12.0 -2010,0.057,15.0,456,Point Oktoberfest,Märzen / Oktoberfest,131,12.0 -2011,0.054000000000000006,32.0,357,2012 Black Ale,American Brown Ale,131,12.0 -2012,0.05,7.0,141,Point Nude Beach Summer Wheat (2010),American Pale Wheat Ale,131,12.0 -2013,0.054000000000000006,33.0,140,Point Cascade Pale Ale,American Pale Ale (APA),131,12.0 -2014,0.047,14.0,139,Point Amber Classic,American Amber / Red Lager,131,12.0 -2015,0.047,9.0,138,Point Special Lager,American Adjunct Lager,131,12.0 -2016,0.051,31.0,953,Wisco Disco,American Amber / Red Ale,486,16.0 -2017,0.05,,1983,Brontide,American Black Ale,255,12.0 -2018,0.05,,1631,Brontide,American Black Ale,255,12.0 -2019,0.045,,1344,Classique,Saison / Farmhouse Ale,255,12.0 -2020,0.045,,922,Sunsplash Golden Ale (2004),American Blonde Ale,492,12.0 -2021,0.051,25.0,1410,Sand Island Lighthouse,Kölsch,412,12.0 -2022,0.05,30.0,925,Lily Flagg Milk Stout,Milk / Sweet Stout,412,12.0 -2023,0.07200000000000001,70.0,637,Monkeynaut IPA,American IPA,412,12.0 -2024,0.05,,2369,Straub Beer (Current),American Adjunct Lager,129,12.0 -2025,0.040999999999999995,8.0,2233,American Lager,American Adjunct Lager,129,12.0 -2026,0.040999999999999995,8.0,2232,American Amber,American Amber / Red Lager,129,12.0 -2027,0.032,13.0,2231,American Light,Light Lager,129,12.0 -2028,0.053,49.0,2352,Extra Pale Ale,American Pale Ale (APA),138,12.0 -2029,0.053,40.0,2549,Make It So,Extra Special / Strong Bitter (ESB),58,12.0 -2030,0.047,55.0,2473,Hopvale Organic Ale,American Pale Ale (APA),58,16.0 -2031,0.083,100.0,2415,Unchained #18 Hop Silo,American Double / Imperial IPA,58,16.0 -2032,0.052000000000000005,29.0,2605,Tip Off,Altbier,25,16.0 -2033,0.054000000000000006,,2215,Java Mac,Scottish Ale,25,16.0 -2034,0.054000000000000006,23.0,2164,Cowbell,American Porter,25,16.0 -2035,0.057999999999999996,20.0,2085,Hop Up Offa That Brett (2014),Belgian Pale Ale,25,16.0 -2036,0.083,23.0,2084,PV Muckle (2013),Scotch Ale / Wee Heavy,25,16.0 -2037,0.099,36.0,2083,Bourbon Barrel Batch 666: Sympathy for the Devil,Belgian Dark Ale,25,16.0 -2038,0.09,30.0,2082,Whip Fight,Scotch Ale / Wee Heavy,25,16.0 -2039,0.053,23.0,2081,Port Barrel Wee Mac ,Scotch Ale / Wee Heavy,25,16.0 -2040,0.064,75.0,2001,Fistful Of Hops Red,American IPA,25,16.0 -2041,0.063,75.0,2000,Fistful of Hops Orange,American IPA,25,16.0 -2042,0.064,75.0,1999,Fistful Of Hops Blue,American IPA,25,16.0 -2043,0.064,75.0,1996,Fistful of Hops Green,American IPA,25,16.0 -2044,,,1948,30 Min Coma,Belgian IPA,25,16.0 -2045,0.09,30.0,1656,Wee Muckle,Scotch Ale / Wee Heavy,25,16.0 -2046,0.065,55.0,1599,Royal Brat,Extra Special / Strong Bitter (ESB),25,16.0 -2047,0.075,77.0,1420,Grapefruit Jungle (GFJ),American IPA,25,16.0 -2048,0.055999999999999994,50.0,1389,Osiris Pale Ale,American Pale Ale (APA),25,16.0 -2049,0.099,75.0,1367,Bourbon Barrel Aged Timmie,Russian Imperial Stout,25,16.0 -2050,0.063,23.0,1366,Stupid Sexy Flanders,Flanders Oud Bruin,25,16.0 -2051,,,1347,Bourbon Barrel Cowbell,American Porter,25,16.0 -2052,0.054000000000000006,,1314,Popcorn Pilsner,German Pilsener,25,16.0 -2053,0.071,27.0,1128,Ring of Dingle,Irish Dry Stout,25,16.0 -2054,0.054000000000000006,23.0,1127,Bourbon Barrel Wee Mac,Scottish Ale,25,16.0 -2055,0.099,60.0,1049,Bourbon Barrel Johan,English Barleywine,25,16.0 -2056,0.07,,934,The Deuce,American Brown Ale,25,16.0 -2057,0.09,24.0,923,The Velvet Fog,Quadrupel (Quad),25,16.0 -2058,0.055,23.0,874,Sun King Oktoberfest,Märzen / Oktoberfest,25,16.0 -2059,0.052000000000000005,24.0,739,Indianapolis Indians Lager,Dortmunder / Export Lager,25,16.0 -2060,0.052000000000000005,24.0,698,Indians Victory Lager (2012),Dortmunder / Export Lager,25,16.0 -2061,0.08,,660,Chaka,Belgian Strong Pale Ale,25,16.0 -2062,0.091,91.0,651,Isis,American Double / Imperial IPA,25,16.0 -2063,0.09,30.0,584,Wee Muckle (2011),Scotch Ale / Wee Heavy,25,16.0 -2064,0.075,77.0,532,Grapefruit Jungle (GFJ) (2011),American IPA,25,16.0 -2065,0.055,23.0,526,Sun King Oktoberfest (2011),Märzen / Oktoberfest,25,16.0 -2066,0.099,60.0,394,Johan the Barleywine,English Barleywine,25,16.0 -2067,0.054000000000000006,23.0,213,Wee Mac Scottish-Style Ale,Scottish Ale,25,16.0 -2068,0.053,20.0,55,Sunlight Cream Ale,Cream Ale,25,16.0 -2069,0.055999999999999994,50.0,54,Osiris Pale Ale (2010),American Pale Ale (APA),25,16.0 -2070,0.045,,1207,Dam Lager,American Amber / Red Lager,455,12.0 -2071,0.07,,1206,Red Clay IPA,American IPA,455,12.0 -2072,0.07200000000000001,,2543,Todd the Axe Man,American IPA,61,16.0 -2073,0.057,,2409,Doomtree,Extra Special / Strong Bitter (ESB),61,16.0 -2074,0.099,85.0,1739,BLAKKR,American Black Ale,61,16.0 -2075,0.073,69.0,1112,Overrated! West Coast Style IPA,American IPA,61,16.0 -2076,0.075,90.0,329,WET,American IPA,61,16.0 -2077,0.04,37.0,19,Bitter Brewer,English Bitter,61,16.0 -2078,0.055,34.0,18,SurlyFest,Rye Beer,61,16.0 -2079,0.051,45.0,17,Coffee Bender,American Brown Ale,61,16.0 -2080,0.051,45.0,16,Bender,American Brown Ale,61,16.0 -2081,0.09699999999999999,120.0,15,Abrasive Ale,American Double / Imperial IPA,61,16.0 -2082,0.051,20.0,14,Hell,Keller Bier / Zwickel Bier,61,16.0 -2083,0.067,33.0,13,CynicAle,Saison / Farmhouse Ale,61,16.0 -2084,0.062,99.0,12,Furious,American IPA,61,16.0 -2085,0.073,50.0,1242,Big Nose,American IPA,447,12.0 -2086,0.05,10.0,1241,Cotton Mouth,Witbier,447,12.0 -2087,0.055999999999999994,35.0,1240,Stump Knocker Pale Ale,American Pale Ale (APA),447,12.0 -2088,0.05,38.0,1239,Midnight Oil,Oatmeal Stout,447,12.0 -2089,0.059000000000000004,18.0,1238,Wild Night,Cream Ale,447,12.0 -2090,0.045,,1554,Bermuda Triangle Ginger Beer,Herbed / Spiced Beer,381,12.0 -2091,0.055,35.0,2568,Take Two Pils,German Pilsener,49,12.0 -2092,0.057,,2551,Waterkeeper,Hefeweizen,49,12.0 -2093,0.064,,1710,SweetWater IPA,American IPA,49,12.0 -2094,0.054000000000000006,,1709,420 Extra Pale Ale,American Pale Ale (APA),49,12.0 -2095,0.08,95.0,1229,Dodgy Knight Imperial IPA,American Double / Imperial IPA,449,12.0 -2096,0.05,,1164,TailGate Saison,Saison / Farmhouse Ale,449,12.0 -2097,0.05,44.0,663,TailGate IPA,American IPA,449,24.0 -2098,0.05,44.0,662,TailGate IPA,American IPA,449,12.0 -2099,0.049,28.0,623,TailGate Hefeweizen,Hefeweizen,449,24.0 -2100,0.05,19.0,622,Blacktop Blonde,American Blonde Ale,449,24.0 -2101,0.05,19.0,362,Blacktop Blonde,American Blonde Ale,449,12.0 -2102,0.049,28.0,361,TailGate Hefeweizen,Hefeweizen,449,12.0 -2103,0.085,34.0,2575,Wooden Rooster,Tripel,45,16.9 -2104,0.048,20.0,2555,Ginger Peach Saison,Saison / Farmhouse Ale,45,16.0 -2105,0.062,35.0,1736,Zombie Monkie,American Porter,45,16.0 -2106,0.055999999999999994,20.0,1196,Wild Plum Farmhouse Ale,Saison / Farmhouse Ale,45,16.0 -2107,0.05,20.0,1063,Vanilla Bean Buffalo Sweat,Oatmeal Stout,45,16.0 -2108,0.068,110.0,1017,Ethos IPA,American IPA,45,16.0 -2109,0.044000000000000004,12.0,1009,Tallgrass Pub Ale,American Brown Ale,45,16.0 -2110,0.07200000000000001,93.0,912,Oasis,Extra Special / Strong Bitter (ESB),45,16.0 -2111,0.05,20.0,765,Buffalo Sweat,Milk / Sweet Stout,45,16.0 -2112,0.05,20.0,676,Halcyon Unfiltered Wheat,American Pale Wheat Ale,45,16.0 -2113,0.052000000000000005,,595,8-Bit Pale Ale,American Pale Ale (APA),45,16.0 -2114,0.085,,537,Velvet Rooster,Tripel,45,16.0 -2115,0.05,20.0,412,Halcyon Unfiltered Wheat,American Pale Wheat Ale,45,12.0 -2116,0.05,16.0,105,Köld Lager (2010),German Pilsener,45,16.0 -2117,0.07200000000000001,93.0,104,Oasis (2010),American Double / Imperial IPA,45,16.0 -2118,0.044000000000000004,22.0,103,Tallgrass Ale,American Brown Ale,45,16.0 -2119,0.05,20.0,102,Buffalo Sweat (2010),Milk / Sweet Stout,45,16.0 -2120,0.063,60.0,101,Tallgrass IPA,American IPA,45,16.0 -2121,0.068,,1433,Hat Trick Hop IPA,American IPA,409,16.0 -2122,0.055999999999999994,,1432,Yard Sale Amber Ale,American Amber / Red Ale,409,16.0 -2123,0.055,,936,Loafin Bräu,Altbier,490,16.0 -2124,0.07,80.0,544,Old Elephant Foot IPA,American IPA,490,16.0 -2125,0.065,35.0,2640,Peck's Porter,American Porter,7,16.0 -2126,0.07,,2448,Reactor,American IPA,7,16.0 -2127,0.057,,2447,Mr. Orange,Witbier,7,16.0 -2128,0.08,22.0,2601,Deduction,Dubbel,28,12.0 -2129,0.057,,973,Face Down Brown Ale,American Brown Ale,480,12.0 -2130,0.064,,827,Tempter IPA,American IPA,480,12.0 -2131,0.055,,589,Bridal Veil Rye Pale Ale,American Pale Ale (APA),480,12.0 -2132,0.048,,2155,Smittytown,Extra Special / Strong Bitter (ESB),210,12.0 -2133,0.04,,1982,Greenwood Beach,Fruit / Vegetable Beer,210,12.0 -2134,0.066,,1939,Gatecrasher,English India Pale Ale (IPA),210,12.0 -2135,0.047,42.0,1082,RecreationAle,American Pale Ale (APA),469,12.0 -2136,0.055,35.0,2119,First Stand,Saison / Farmhouse Ale,215,12.0 -2137,0.063,23.0,2118,Battle LIne,American Brown Ale,215,12.0 -2138,0.055999999999999994,12.0,2117,Broken Bridge,Dunkelweizen,215,12.0 -2139,0.071,69.0,2116,Brutus,English India Pale Ale (IPA),215,12.0 -2140,0.06,,1916,Petit Mutant,American Wild Ale,272,16.0 -2141,0.096,,1915,The Crusher,American Double / Imperial IPA,272,16.0 -2142,0.08,,1914,Beelzebub,American Double / Imperial Stout,272,16.0 -2143,0.07,,1810,Focal Banger,American IPA,272,16.0 -2144,0.08,120.0,1111,Heady Topper,American Double / Imperial IPA,272,16.0 -2145,0.08,120.0,379,Heady Topper,American Double / Imperial IPA,272,16.0 -2146,0.046,20.0,1200,Bomber Mountain Amber Ale (2013),American Amber / Red Ale,457,12.0 -2147,0.07,75.0,1199,Indian Paintbrush IPA,American IPA,457,12.0 -2148,0.048,16.0,1198,Saddle Bronc Brown Ale (2013),English Brown Ale,457,12.0 -2149,0.059000000000000004,15.0,1197,Wagon Box Wheat Beer,American Pale Wheat Ale,457,12.0 -2150,0.05,,1945,Birdhouse Pale Ale,Belgian Pale Ale,262,12.0 -2151,0.073,,1079,Ozzy,Belgian Pale Ale,262,12.0 -2152,0.07,,94,Resurrection,Dubbel,262,12.0 -2153,0.052000000000000005,16.0,1748,Bronx Summer Pale Ale,American Pale Ale (APA),329,16.0 -2154,0.057,46.0,1747,Bronx Black Pale Ale,American Black Ale,329,16.0 -2155,0.063,50.0,1037,Bronx Pale Ale,American Pale Ale (APA),329,16.0 -2156,0.052000000000000005,35.0,2594,Surfrider,American Pale Ale (APA),33,16.0 -2157,0.055,,2035,Kolschtal Eddy,Kölsch,33,16.0 -2158,0.05,,2034,South Bay Session IPA,American IPA,33,16.0 -2159,0.069,34.0,1562,Grandma's Pecan,English Brown Ale,33,16.0 -2160,0.099,101.0,1561,Double Trunk,American Double / Imperial IPA,33,16.0 -2161,0.046,45.0,1749,Just IPA,American IPA,328,12.0 -2162,0.045,,2455,Lionshead,American Pilsner,90,12.0 -2163,,,963,Manhattan Gold Lager (1990),American Amber / Red Lager,484,12.0 -2164,0.052000000000000005,,2638,G. B. Russo’s Italian Pistachio Pale Ale,American Pale Ale (APA),9,16.0 -2165,0.057999999999999996,,1278,Northern Hawk Owl Amber,American Amber / Red Ale,438,12.0 -2166,0.059000000000000004,,1277,CEO Stout,American Stout,438,16.0 -2167,0.047,,1276,Will Power Pale Ale,American Pale Ale (APA),438,16.0 -2168,0.044000000000000004,,1732,Curious Traveler Shandy,Shandy,334,12.0 -2169,0.048,18.0,2347,Hunny Do Wheat,American Pale Wheat Ale,142,12.0 -2170,0.052000000000000005,,1781,Three Way Pale Ale,American Pale Ale (APA),142,12.0 -2171,0.040999999999999995,,1780,Rise to the Top,Cream Ale,142,12.0 -2172,0.049,,1779,Lost Trout Brown Ale,American Brown Ale,142,12.0 -2173,0.051,11.0,2421,Watermelon Ale,Fruit / Vegetable Beer,108,12.0 -2174,0.04,18.0,2319,Knotty Blonde Ale,American Blonde Ale,153,12.0 -2175,0.062,40.0,2317,Fivepine Chocolate Porter,American Porter,153,12.0 -2176,0.062,82.0,2316,Hoodoo Voodoo IPA,American IPA,153,12.0 -2177,0.053,22.0,1913,Hydraulion Red,Irish Red Ale,273,12.0 -2178,0.06,50.0,1912,40 Mile IPA,American IPA,273,12.0 -2179,0.055,64.0,2617,Citra Faced,American Pale Wheat Ale,21,16.0 -2180,0.055,31.0,2616,Pole Barn Stout,Oatmeal Stout,21,16.0 -2181,0.054000000000000006,37.0,2615,Pale,American Pale Ale (APA),21,16.0 -2182,0.053,27.0,2614,Yoshi's Nectar,California Common / Steam Beer,21,16.0 -2183,0.052000000000000005,,1889,Leatherhead Red,American Amber / Red Ale,282,12.0 -2184,0.065,,1222,Cropduster Mid-American IPA,American IPA,282,12.0 -2185,0.075,,122,Golden Frau Honey Wheat,Braggot,282,12.0 -2186,,,121,Cornstalker Dark Wheat,American Dark Wheat Ale,282,12.0 -2187,0.057999999999999996,20.0,2623,Cafe Leche,American Porter,17,16.0 -2188,0.052000000000000005,12.0,2622,Damascene Apricot Sour,Fruit / Vegetable Beer,17,16.0 -2189,0.12,90.0,2621,Csar,Russian Imperial Stout,17,16.0 -2190,0.055,,1817,Klingon Warnog Roggen Dunkel,Roggenbier,17,16.0 -2191,0.085,115.0,1449,Overlord Imperial IPA,American Double / Imperial IPA,17,16.0 -2192,0.057999999999999996,36.0,951,Alloy,American IPA,17,16.0 -2193,0.051,22.0,950,Rivet Irish Red Ale,Irish Red Ale,17,16.0 -2194,0.052000000000000005,50.0,949,3 Gear Robust Porter,American Porter,17,16.0 -2195,0.045,35.0,948,Circuit Bohemian Pilsner,Czech Pilsener,17,16.0 -2196,0.055,,2321,Turnrow Harvest Ale,American Blonde Ale,152,12.0 -2197,0.07,60.0,1755,Juke Joint IPA,American IPA,152,12.0 -2198,0.07,35.0,1754,Parade Ground Coffee Porter,American Porter,152,12.0 -2199,0.05,21.0,1428,Tin Roof Watermelon Wheat,Fruit / Vegetable Beer,152,12.0 -2200,0.045,18.0,529,Tin Roof Blonde Ale,American Blonde Ale,152,12.0 -2201,0.055,37.0,495,Voodoo Bengal Pale Ale,American Pale Ale (APA),152,12.0 -2202,0.045,28.0,494,Perfect Tin Amber,American Amber / Red Ale,152,12.0 -2203,0.073,87.0,1856,IPA & a Half,American IPA,291,12.0 -2204,0.055,33.0,736,Ornery Amber Lager (2003),Vienna Lager,291,12.0 -2205,0.05,,1027,Big Island Shandy,Shandy,474,16.0 -2206,0.068,,1026,Preservation IPA,American IPA,474,16.0 -2207,0.062,72.0,1938,Almanac IPA,American IPA,265,12.0 -2208,0.065,,1937,Milk Mustachio Stout,Milk / Sweet Stout,265,12.0 -2209,0.06,30.0,1936,Farmer's Tan Red Ale,American Amber / Red Ale,265,12.0 -2210,0.057,,594,Triangle India Pale Ale,American IPA,524,12.0 -2211,0.05,,114,Triangle White Ale,Witbier,524,12.0 -2212,0.08,,113,Triangle Belgian Golden Ale,Belgian Strong Pale Ale,524,12.0 -2213,0.08199999999999999,,2445,Troegenator,Doppelbock,97,16.0 -2214,0.075,93.0,2444,Nugget Nectar,American Amber / Red Ale,97,16.0 -2215,0.045,45.0,2203,Sunshine Pils,American Pilsner,97,12.0 -2216,0.08199999999999999,25.0,1510,Troegenator Doublebock,Doppelbock,97,16.0 -2217,0.075,85.0,1509,Perpetual IPA,American IPA,97,12.0 -2218,0.055,52.0,433,Greenville Pale Ale,American Pale Ale (APA),539,12.0 -2219,0.062,65.0,641,Hoppy Boy,American IPA,520,16.0 -2220,0.054000000000000006,26.0,2588,Cow Creek,American Amber / Red Lager,38,12.0 -2221,0.075,63.0,2458,Chupahopra,American IPA,38,12.0 -2222,0.051,19.0,2212,Twisted X,American Adjunct Lager,38,12.0 -2223,0.040999999999999995,41.0,2235,Day Hike Session,American IPA,190,12.0 -2224,0.048,48.0,1661,Trailhead ISA,American IPA,190,12.0 -2225,0.052000000000000005,27.0,1660,Immersion Amber,American Amber / Red Ale,190,12.0 -2226,0.062,70.0,1659,Evo IPA,American IPA,190,12.0 -2227,0.048,,1438,Presidential Pils,Czech Pilsener,190,12.0 -2228,0.062,70.0,1173,Evolutionary IPA (2012),American IPA,190,12.0 -2229,0.057,36.0,560,Persnickety Pale,American Pale Ale (APA),190,12.0 -2230,0.054000000000000006,20.0,519,SoDo Brown Ale,American Brown Ale,190,12.0 -2231,0.052000000000000005,27.0,518,Immersion Amber Ale (2011),American Amber / Red Ale,190,12.0 -2232,0.062,70.0,505,Evolutionary IPA (2011),American IPA,190,12.0 -2233,0.048,48.0,482,Trailhead India Style Session Ale (2011),American IPA,190,12.0 -2234,0.046,,451,Panorama Wheat Ale,American Pale Wheat Ale,190,12.0 -2235,0.063,69.0,2497,Wobble,American IPA,74,16.0 -2236,0.057999999999999996,43.0,2246,Night Cat,American Dark Wheat Ale,74,12.0 -2237,0.057999999999999996,43.0,1630,Night Cat (2014),American Dark Wheat Ale,74,12.0 -2238,0.051,17.0,1284,Dog Days Lager,Dortmunder / Export Lager,74,12.0 -2239,0.051,36.0,1121,Sidekick Extra Pale Ale,American Pale Ale (APA),74,12.0 -2240,0.077,23.0,1042,Atom Smasher,Märzen / Oktoberfest,74,12.0 -2241,0.045,,1041,Testudo,Bière de Garde,74,12.0 -2242,0.065,,1040,Hobnob B & B Pale Ale,American Pale Ale (APA),74,12.0 -2243,0.07,68.0,861,Cane and Ebel,American Strong Ale,74,12.0 -2244,0.065,,642,Outlaw IPA (2015),American IPA,74,12.0 -2245,0.045,,2037,The Gilded Age,Munich Helles Lager,243,12.0 -2246,0.05,,1285,No Limits Hefeweizen,Hefeweizen,435,16.0 -2247,0.06,,1189,Honeyspot Road White IPA,American White IPA,435,12.0 -2248,0.07200000000000001,,1171,Road 2 Ruin Double IPA,American Double / Imperial IPA,435,12.0 -2249,0.048,,1170,Workers Comp Saison,Saison / Farmhouse Ale,435,12.0 -2250,0.05,,1169,Ol' Factory Pils,German Pilsener,435,12.0 -2251,0.05,10.0,2310,PUNK'N,Pumpkin Ale,159,12.0 -2252,0.04,22.0,2100,Yard Sale Winter Lager,American Amber / Red Lager,159,12.0 -2253,0.04,42.0,1925,Trader Session IPA,American IPA,159,12.0 -2254,0.073,83.0,1723,Hop Nosh IPA,American IPA,159,12.0 -2255,0.04,17.0,1212,SUM'R,American Blonde Ale,159,12.0 -2256,0.04,32.0,1097,Organic Baba Black Lager,Schwarzbier,159,12.0 -2257,0.073,82.0,1089,Hop Notch IPA (2013),American IPA,159,12.0 -2258,0.04,34.0,1088,Cutthroat Pale Ale,American Pale Ale (APA),159,12.0 -2259,0.04,29.0,974,WYLD Extra Pale Ale,American Pale Ale (APA),159,12.0 -2260,0.055,,98,Pilsner Ukiah,German Pilsener,555,12.0 -2261,0.06,75.0,2372,The Green Room,American IPA,126,16.0 -2262,0.047,25.0,2367,Humbucker Helles,Maibock / Helles Bock,126,16.0 -2263,0.065,,1704,Uncle John's Apple Cherry Cider,Cider,338,16.0 -2264,0.065,,1703,Uncle John's Apricot Apple Cider,Cider,338,16.0 -2265,0.065,,877,Draught Hard Apple Cider,Cider,338,16.0 -2266,0.001,,606,Scotty K NA,Low Alcohol Beer,522,16.0 -2267,0.068,,543,Bacon Brown Ale,American Brown Ale,522,16.0 -2268,0.064,,347,Golden State Ale,Belgian Pale Ale,522,16.0 -2269,0.078,,346,Baltic Porter,Baltic Porter,522,16.0 -2270,0.085,,25,Siamese twin,Dubbel,522,16.0 -2271,0.085,90.0,2507,Double Duckpin,American Double / Imperial IPA,71,12.0 -2272,0.042,10.0,2506,Old Pro,Gose,71,12.0 -2273,0.055,,829,Duckpin Pale Ale,American Pale Ale (APA),71,12.0 -2274,0.06,,582,Balt Altbier,Altbier,71,12.0 -2275,0.045,50.0,2190,Campside Session IPA,American IPA,202,16.0 -2276,0.045,15.0,1951,Upland Wheat Ale,Witbier,202,16.0 -2277,0.06,,1950,Dragonfly IPA,American IPA,202,16.0 -2278,0.128,,2565,Lee Hill Series Vol. 5 - Belgian Style Quadrupel Ale,Quadrupel (Quad),51,19.2 -2279,0.10400000000000001,,2564,Lee Hill Series Vol. 4 - Manhattan Style Rye Ale,Rye Beer,51,19.2 -2280,0.068,24.0,2563,Lee Hill Series Vol. 2 - Wild Saison,American Wild Ale,51,19.2 -2281,0.099,51.0,2562,Lee Hill Series Vol. 3 - Barrel Aged Imperial Stout,American Double / Imperial Stout,51,19.2 -2282,0.076,,2561,Lee Hill Series Vol. 1 - Barrel Aged Brown Ale,American Brown Ale,51,19.2 -2283,0.06,,2560,Blood Orange Saison,Saison / Farmhouse Ale,51,12.0 -2284,0.065,33.0,1932,Thai Style White IPA,American White IPA,51,12.0 -2285,0.075,30.0,1853,Ferus Fluxus Wild Belgian Pale Ale,American Wild Ale,51,19.2 -2286,0.099,90.0,1315,Upslope Imperial India Pale Ale,American Double / Imperial IPA,51,19.2 -2287,0.08199999999999999,,907,Upslope Christmas Ale,Winter Warmer,51,16.0 -2288,0.077,,906,Upslope Pumpkin Ale,Pumpkin Ale,51,16.0 -2289,0.075,30.0,683,Upslope Belgian Style Pale Ale,Belgian Pale Ale,51,12.0 -2290,0.069,,614,Upslope Foreign Style Stout,Foreign / Export Stout,51,12.0 -2291,0.048,15.0,466,Top Rope Mexican-style Craft Lager,Vienna Lager,51,12.0 -2292,0.048,22.0,444,Upslope Craft Lager,Vienna Lager,51,12.0 -2293,0.067,,345,Upslope Brown Ale,English Brown Ale,51,12.0 -2294,0.057999999999999996,,80,Upslope Pale Ale,American Pale Ale (APA),51,12.0 -2295,0.07200000000000001,,79,Upslope India Pale Ale,American IPA,51,12.0 -2296,0.053,22.0,382,Common Sense Kentucky Common Ale,American Brown Ale,546,16.0 -2297,0.065,70.0,381,Upstate I.P.W.,American IPA,546,12.0 -2298,0.04,,1826,Squatters Full Suspension Pale Ale,American Pale Ale (APA),302,12.0 -2299,0.09,75.0,1825,Squatters Hop Rising Double IPA,American Double / Imperial IPA,302,12.0 -2300,0.08,,1824,Devastator Double Bock,Doppelbock,302,12.0 -2301,0.06,,1823,Wasatch Ghostrider White IPA,American White IPA,302,12.0 -2302,0.06,,1682,Wasatch Ghostrider White IPA (2014),American White IPA,302,12.0 -2303,0.04,,1681,Wasatch Apricot Hefeweizen,Fruit / Vegetable Beer,302,12.0 -2304,0.09,75.0,1680,Squatters Hop Rising Double IPA (2014),American Double / Imperial IPA,302,12.0 -2305,0.04,,1679,Squatters Full Suspension Pale Ale,American Pale Ale (APA),302,12.0 -2306,0.068,,2245,Nunica Pine,Cider,185,16.0 -2307,0.069,,2244,Ginger Peach,Cider,185,16.0 -2308,0.068,,1378,Totally Roasted,Cider,185,16.0 -2309,0.068,,1377,Blue Gold,Cider,185,16.0 -2310,0.068,,1376,Hard Apple,Cider,185,16.0 -2311,0.052000000000000005,,2411,Nitro Can Coffee Stout,American Stout,113,12.0 -2312,0.092,25.0,1770,Voodoo Love Child,Tripel,322,12.0 -2313,0.079,23.0,1769,White Magick of the Sun,Witbier,322,12.0 -2314,0.075,31.0,1730,Wynona's Big Brown Ale,American Brown Ale,322,12.0 -2315,0.092,25.0,1729,Gran Met,Belgian Strong Pale Ale,322,12.0 -2316,0.073,85.0,1603,Good Vibes IPA,American IPA,322,12.0 -2317,0.075,85.0,1488,Pilzilla,American Double / Imperial Pilsner,322,12.0 -2318,0.04,37.0,1846,Wachusett Light IPA,American IPA,295,12.0 -2319,0.06,55.0,1845,Green Monsta IPA,American IPA,295,12.0 -2320,0.055999999999999994,50.0,1844,Wachusett IPA,American IPA,295,12.0 -2321,0.047,,1843,Strawberry White,Witbier,295,12.0 -2322,0.085,85.0,1418,Larry Imperial IPA,American Double / Imperial IPA,295,12.0 -2323,0.047,,1038,Wachusett Summer,American Pale Wheat Ale,295,12.0 -2324,0.051,17.0,1030,Country Pale Ale,English Pale Ale,295,12.0 -2325,0.04,37.0,1029,Wachusett Light IPA (2013),American IPA,295,12.0 -2326,0.052000000000000005,20.0,908,Pumpkan,Pumpkin Ale,295,12.0 -2327,0.045,10.0,619,Wachusett Blueberry Ale,Fruit / Vegetable Beer,295,12.0 -2328,0.06,55.0,618,Green Monsta IPA,American IPA,295,12.0 -2329,0.047,,780,T-6 Red Ale (2004),American Amber / Red Ale,506,12.0 -2330,0.052000000000000005,67.0,2450,Self Starter,American IPA,94,16.0 -2331,0.054000000000000006,20.0,2223,Ermal's,Cream Ale,94,16.0 -2332,0.07,,2222,10 Ton,Oatmeal Stout,94,16.0 -2333,0.07,,2221,Flyin' Rye,American IPA,94,16.0 -2334,0.09,,2439,Christmas Ale,Herbed / Spiced Beer,100,12.0 -2335,0.07,,2356,Pay It Forward Cocoa Porter,American Porter,100,12.0 -2336,0.055,,1069,West Sixth Amber Ale,American Amber / Red Ale,100,12.0 -2337,,,652,West Sixth IPA,American IPA,100,12.0 -2338,0.055,,1542,One Claw,American Pale Ale (APA),384,12.0 -2339,0.04,5.0,1312,Westbrook Gose,Gose,384,12.0 -2340,0.05,16.0,576,White Thai,Witbier,384,12.0 -2341,0.068,65.0,575,Westbrook IPA,American IPA,384,12.0 -2342,0.057,22.0,1645,Westfield Octoberfest,Märzen / Oktoberfest,351,12.0 -2343,0.052000000000000005,,1551,Pop's Old Fashioned Lager,American Amber / Red Lager,351,12.0 -2344,0.057999999999999996,55.0,1550,Charlie in the Rye,American IPA,351,12.0 -2345,,,2364,Royal Lager,American Pale Lager,132,16.0 -2346,0.08,,2348,Rip Van Winkle (Current),Bock,132,12.0 -2347,,,2344,O’Malley’s Stout,English Stout,132,12.0 -2348,0.075,89.0,2343,O’Malley’s IPA,American IPA,132,12.0 -2349,,,2342,O’Malley’s Irish Style Cream Ale,Cream Ale,132,12.0 -2350,0.049,28.0,2341,L'il Lucy's Hot Pepper Ale,Chile Beer,132,12.0 -2351,0.052000000000000005,,2340,Drop Kick Ale,American Amber / Red Ale,132,12.0 -2352,0.055,,2573,Raspberry Berliner Weisse,Berliner Weissbier,47,12.0 -2353,0.05,,2572,Hop Session,American IPA,47,12.0 -2354,0.055,,2571,Blueberry Berliner Weisse,Berliner Weissbier,47,12.0 -2355,0.055,,2570,Berliner Weisse,Berliner Weissbier,47,12.0 -2356,0.06,,1498,Super G IPA,American IPA,396,16.0 -2357,0.049,30.0,1838,Hefe Lemon,Radler,296,12.0 -2358,0.049,30.0,1837,Hefe Black,Hefeweizen,296,12.0 -2359,0.049,30.0,1836,Widmer Brothers Hefeweizen,Hefeweizen,296,12.0 -2360,0.08199999999999999,100.0,1619,Hop Slayer Double IPA,American Double / Imperial IPA,361,12.0 -2361,0.045,,1618,Pumpkin Ale,Pumpkin Ale,361,12.0 -2362,0.05,,1364,Big Bowl Blonde Ale,American Brown Ale,361,12.0 -2363,0.052000000000000005,27.0,971,Phat Chance,American Blonde Ale,361,12.0 -2364,0.08199999999999999,100.0,740,Hop Slayer Double IPA (2011),American Double / Imperial IPA,361,12.0 -2365,0.08199999999999999,100.0,430,Hop Slayer Double IPA (2011),American Double / Imperial IPA,361,12.0 -2366,0.042,13.0,398,Wild Onion Summer Wit,Witbier,361,12.0 -2367,0.06,23.0,366,Jack Stout,Oatmeal Stout,361,12.0 -2368,0.045,,334,Wild Onion Pumpkin Ale (2010),Pumpkin Ale,361,12.0 -2369,0.055999999999999994,41.0,162,Paddy Pale Ale,American Pale Ale (APA),361,12.0 -2370,0.068,21.0,2253,Blonde Hunny,Belgian Pale Ale,181,12.0 -2371,0.057,20.0,1318,Wild Wolf Wee Heavy Scottish Style Ale,Scotch Ale / Wee Heavy,181,12.0 -2372,0.045,25.0,1195,Wild Wolf American Pilsner,American Pilsner,181,12.0 -2373,0.051,45.0,1194,Alpha Ale,American Pale Ale (APA),181,12.0 -2374,0.054000000000000006,,826,Mystical Stout,Irish Dry Stout,499,16.0 -2375,0.075,,825,Bodacious Bock,Bock,499,16.0 -2376,0.05,,813,Ambitious Lager,Munich Helles Lager,499,16.0 -2377,0.07200000000000001,,324,Wyoming Pale Ale,American Pale Ale (APA),550,16.0 -2378,0.05,,323,Wind River Blonde Ale,American Blonde Ale,550,16.0 -2379,0.07400000000000001,83.0,762,Ace IPA,American IPA,509,16.0 -2380,0.08,31.0,761,P-51 Porter,American Porter,509,16.0 -2381,0.055,,2149,#001 Golden Amber Lager,American Amber / Red Lager,211,12.0 -2382,0.071,60.0,2148,#002 American I.P.A.,American IPA,211,12.0 -2383,0.052000000000000005,,2147,#003 Brown & Robust Porter,American Porter,211,12.0 -2384,0.048,38.0,2146,#004 Session I.P.A.,American IPA,211,12.0 -2385,0.059000000000000004,,2047,Tarasque,Saison / Farmhouse Ale,239,12.0 -2386,0.062,61.0,1470,Ananda India Pale Ale,American IPA,239,12.0 -2387,0.045,23.0,1469,Tiny Bomb,American Pilsner,239,12.0 -2388,0.057999999999999996,72.0,2627,Train Hopper,American IPA,14,12.0 -2389,0.045,,2626,Edward’s Portly Brown,American Brown Ale,14,12.0 -2390,0.059000000000000004,135.0,1676,Troopers Alley IPA,American IPA,344,12.0 -2391,0.047,15.0,1468,Wolverine Premium Lager,American Pale Lager,402,12.0 -2392,0.05,,822,Woodchuck Amber Hard Cider,Cider,501,12.0 -2393,0.065,82.0,2417,4000 Footer IPA,American IPA,109,12.0 -2394,0.027999999999999997,15.0,2306,Summer Brew,American Pilsner,109,12.0 -2395,0.065,69.0,1697,Be Hoppy IPA,American IPA,339,16.0 -2396,0.069,69.0,2194,Worthy IPA,American IPA,199,12.0 -2397,0.045,25.0,1514,Easy Day Kolsch,Kölsch,199,12.0 -2398,0.077,30.0,1513,Lights Out Vanilla Cream Extra Stout,American Double / Imperial IPA,199,12.0 -2399,0.069,69.0,1512,Worthy IPA (2013),American IPA,199,12.0 -2400,0.06,50.0,1511,Worthy Pale,American Pale Ale (APA),199,12.0 -2401,0.042,,1345,Patty's Chile Beer,Chile Beer,424,12.0 -2402,0.08199999999999999,,1316,Colorojo Imperial Red Ale,American Strong Ale,424,12.0 -2403,0.055,,1045,Wynkoop Pumpkin Ale,Pumpkin Ale,424,12.0 -2404,0.075,,1035,Rocky Mountain Oyster Stout,American Stout,424,12.0 -2405,0.067,45.0,928,Belgorado,Belgian IPA,424,12.0 -2406,0.052000000000000005,,807,Rail Yard Ale,American Amber / Red Ale,424,12.0 -2407,0.055,,620,B3K Black Lager,Schwarzbier,424,12.0 -2408,0.055,40.0,145,Silverback Pale Ale,American Pale Ale (APA),424,12.0 -2409,0.052000000000000005,,84,Rail Yard Ale (2009),American Amber / Red Ale,424,12.0 diff --git a/data/.ipynb_checkpoints/experiment-checkpoint.csv b/data/.ipynb_checkpoints/experiment-checkpoint.csv deleted file mode 100644 index 11e2115..0000000 --- a/data/.ipynb_checkpoints/experiment-checkpoint.csv +++ /dev/null @@ -1,101 +0,0 @@ -h,p1,p2,p3 -0.049932,0.196199,0.187707,0.192456 -0.141180,0.560334,0.530930,0.577945 -0.913031,3.547039,3.874131,3.566819 -1.093637,4.670684,3.950131,4.645236 -1.661272,6.277652,7.273146,7.171237 -3.624861,15.775701,14.068987,15.426168 -4.032482,16.767783,16.947008,17.658178 -4.250714,18.042570,17.118080,16.678498 -4.875576,18.136630,19.329691,18.401925 -6.088597,24.744785,22.746466,22.445222 -9.602248,37.417542,35.088121,34.748649 -10.035888,39.297119,41.240388,40.338300 -10.452520,39.626886,44.377888,40.713840 -10.481946,39.795751,39.427448,42.345483 -10.822528,44.939463,45.371759,41.828790 -11.569609,48.602001,49.421002,42.908949 -12.334063,53.390793,47.746862,46.949651 -12.959138,47.845502,54.245413,54.064298 -14.422266,56.994099,59.480047,60.958941 -17.492100,69.014920,74.581125,68.034573 -17.981319,78.336610,68.189151,75.391291 -18.755133,78.381981,69.517353,78.555133 -19.047697,72.103361,77.393672,81.748728 -20.366922,76.840793,84.787783,86.341778 -23.067483,95.663609,99.634741,87.847719 -23.240658,99.171921,92.543822,101.103875 -24.655419,95.109064,93.691074,100.208127 -25.043780,108.285545,94.775678,90.218298 -26.374133,98.941293,100.845653,100.237459 -26.769737,111.373057,99.324055,109.743478 -26.772322,99.746607,100.613252,98.530511 -27.067196,109.890066,119.048087,116.510935 -28.247690,114.368918,119.289241,102.304873 -28.642185,124.212106,116.537663,113.620222 -31.496408,120.900830,131.293339,116.107435 -31.982666,127.879163,130.572299,131.147564 -33.111762,121.279171,120.113602,131.114341 -34.355644,125.286768,136.671883,144.349496 -34.790331,126.059745,147.824782,132.356239 -35.785156,140.373228,151.040668,131.705751 -37.458429,160.217563,151.163621,160.654964 -37.928632,156.627204,147.679349,150.296704 -39.721063,173.782204,171.659043,172.123590 -41.643937,179.195933,172.347010,181.489268 -42.300531,156.605007,165.630186,178.604017 -43.430193,170.765540,158.619790,157.279655 -47.398594,186.404993,200.238183,206.501188 -47.724599,203.733090,185.366594,179.715886 -47.817127,204.484496,202.495723,172.331808 -48.027619,192.412101,206.279699,201.373067 -48.826644,177.512226,190.514951,201.130324 -49.299424,211.827328,203.276358,187.960828 -52.104066,210.758777,218.292594,191.446215 -52.142947,213.806118,218.867125,202.662066 -53.212175,197.239640,215.992361,221.640417 -54.504915,224.322887,220.146996,227.662649 -55.278452,238.696786,226.316743,234.092386 -55.305488,225.883993,224.599702,205.332899 -56.091869,207.254009,215.746382,202.673678 -56.167207,204.729897,216.242605,223.984548 -56.348567,232.585118,240.237360,246.246572 -56.379584,220.521441,228.468731,231.747763 -57.392164,230.836225,207.971598,209.124592 -60.277349,226.054012,258.425060,255.061088 -61.931665,242.885050,265.902696,226.184565 -63.205597,248.028617,237.769008,229.041938 -63.652389,277.614744,236.659121,271.875765 -66.299178,282.031280,289.222494,267.309998 -67.249607,289.398388,266.576907,251.954574 -67.298164,263.458986,246.531934,258.722055 -69.744554,298.690795,294.848200,273.055922 -69.760584,273.324355,299.990792,296.395633 -71.668698,279.904239,260.280781,276.410599 -71.686355,291.423302,301.449044,290.537597 -75.690269,288.668723,293.882926,309.836905 -79.459812,314.371188,333.854133,347.408133 -79.629445,308.280816,314.401765,321.353537 -80.010133,335.289807,347.881948,348.799072 -80.410612,324.765207,328.408955,320.749797 -81.834847,341.517372,358.659400,295.042067 -83.037712,362.599102,344.889181,301.405945 -84.658452,341.689789,306.863638,318.253142 -85.709400,329.388281,370.191938,329.439166 -85.970707,350.996065,315.850234,371.911395 -87.153608,369.587232,322.949477,382.816501 -88.351375,340.660590,379.037444,369.511053 -89.467319,384.559285,348.019397,357.951639 -90.523925,358.760503,347.363928,386.906841 -92.629099,355.066098,357.572391,363.760323 -93.740193,407.631276,345.691189,408.661460 -94.468092,381.967904,410.552443,340.129353 -96.145283,415.519141,409.792458,418.384232 -96.573020,354.554374,378.851115,364.829722 -97.089370,404.316874,413.689272,355.404488 -97.169532,362.355950,393.974083,422.498388 -97.252983,417.474419,387.274184,418.045115 -97.960874,395.805214,382.839222,374.246981 -98.476252,375.103335,406.672300,369.685730 -98.915110,392.460265,358.656764,414.427542 -99.267371,404.420831,402.143805,418.501915 diff --git a/data/.ipynb_checkpoints/land_global_temperature_anomaly-1880-2016-checkpoint.csv b/data/.ipynb_checkpoints/land_global_temperature_anomaly-1880-2016-checkpoint.csv deleted file mode 100644 index 749296e..0000000 --- a/data/.ipynb_checkpoints/land_global_temperature_anomaly-1880-2016-checkpoint.csv +++ /dev/null @@ -1,142 +0,0 @@ -Global Land Temperature Anomalies, January-December -Units: Degrees Celsius -Base Period: 1901-2000 -Missing: -999.0000 -Year,Value -1880,-0.47 -1881,-0.45 -1882,-0.41 -1883,-0.60 -1884,-0.60 -1885,-0.52 -1886,-0.48 -1887,-0.47 -1888,-0.46 -1889,-0.31 -1890,-0.49 -1891,-0.55 -1892,-0.52 -1893,-0.56 -1894,-0.35 -1895,-0.40 -1896,-0.27 -1897,-0.29 -1898,-0.37 -1899,-0.18 -1900,-0.13 -1901,-0.09 -1902,-0.33 -1903,-0.39 -1904,-0.46 -1905,-0.42 -1906,-0.20 -1907,-0.60 -1908,-0.49 -1909,-0.39 -1910,-0.33 -1911,-0.44 -1912,-0.51 -1913,-0.34 -1914,-0.07 -1915,-0.07 -1916,-0.36 -1917,-0.51 -1918,-0.37 -1919,-0.32 -1920,-0.28 -1921,-0.06 -1922,-0.24 -1923,-0.21 -1924,-0.26 -1925,-0.10 -1926,0.01 -1927,-0.15 -1928,-0.10 -1929,-0.40 -1930,-0.08 -1931,-0.03 -1932,-0.02 -1933,-0.34 -1934,-0.02 -1935,-0.14 -1936,-0.12 -1937,-0.03 -1938,0.17 -1939,0.09 -1940,0.04 -1941,0.11 -1942,0.07 -1943,0.09 -1944,0.21 -1945,-0.08 -1946,-0.01 -1947,0.06 -1948,0.06 -1949,-0.05 -1950,-0.33 -1951,-0.07 -1952,-0.08 -1953,0.17 -1954,-0.16 -1955,-0.13 -1956,-0.42 -1957,-0.05 -1958,0.13 -1959,0.05 -1960,-0.04 -1961,0.10 -1962,0.16 -1963,0.21 -1964,-0.24 -1965,-0.13 -1966,-0.07 -1967,-0.00 -1968,-0.11 -1969,-0.10 -1970,0.02 -1971,-0.04 -1972,-0.18 -1973,0.29 -1974,-0.21 -1975,0.12 -1976,-0.25 -1977,0.21 -1978,0.08 -1979,0.15 -1980,0.27 -1981,0.49 -1982,0.09 -1983,0.49 -1984,0.05 -1985,0.07 -1986,0.28 -1987,0.41 -1988,0.55 -1989,0.39 -1990,0.59 -1991,0.53 -1992,0.26 -1993,0.35 -1994,0.45 -1995,0.77 -1996,0.35 -1997,0.68 -1998,0.96 -1999,0.80 -2000,0.64 -2001,0.83 -2002,0.94 -2003,0.89 -2004,0.81 -2005,1.05 -2006,0.92 -2007,1.10 -2008,0.87 -2009,0.88 -2010,1.09 -2011,0.91 -2012,0.92 -2013,1.01 -2014,1.02 -2015,1.35 -2016,1.45 diff --git a/data/.ipynb_checkpoints/primary-energy-consumption-by-region-checkpoint.csv b/data/.ipynb_checkpoints/primary-energy-consumption-by-region-checkpoint.csv deleted file mode 100644 index facd19c..0000000 --- a/data/.ipynb_checkpoints/primary-energy-consumption-by-region-checkpoint.csv +++ /dev/null @@ -1,5066 +0,0 @@ -Entity,Code,Year,Primary Energy Consumption (terawatt-hours) -Africa,,1965,710.9496218370446 -Africa,,1966,742.3557894211085 -Africa,,1967,750.4345544205105 -Africa,,1968,791.0998844157018 -Africa,,1969,807.9623052554762 -Africa,,1970,875.8575993480164 -Africa,,1971,951.3538360556091 -Africa,,1972,1011.5591171299385 -Africa,,1973,1087.611638468385 -Africa,,1974,1142.4470925130538 -Africa,,1975,1209.361200720239 -Africa,,1976,1316.082352326862 -Africa,,1977,1384.1726687059763 -Africa,,1978,1437.690751907023 -Africa,,1979,1567.8167111229407 -Africa,,1980,1688.4608236158724 -Africa,,1981,1882.3847187089277 -Africa,,1982,2010.4197830152507 -Africa,,1983,2065.874518832706 -Africa,,1984,2136.94122794506 -Africa,,1985,2217.8016016972447 -Africa,,1986,2269.3208429987676 -Africa,,1987,2340.164150562731 -Africa,,1988,2508.9537976665138 -Africa,,1989,2516.310250001407 -Africa,,1990,2597.4525020354927 -Africa,,1991,2594.732004911744 -Africa,,1992,2638.661744244721 -Africa,,1993,2649.1260676244697 -Africa,,1994,2727.1853143504954 -Africa,,1995,2837.7403384537865 -Africa,,1996,2914.1053605107545 -Africa,,1997,2969.5663494548953 -Africa,,1998,3015.0363850147273 -Africa,,1999,3106.265531917238 -Africa,,2000,3179.78678924349 -Africa,,2001,3306.5696263568316 -Africa,,2002,3344.0058205715295 -Africa,,2003,3504.9254473059495 -Africa,,2004,3757.6515298153213 -Africa,,2005,3786.0332515163486 -Africa,,2006,3855.000009214428 -Africa,,2007,3994.037595619741 -Africa,,2008,4249.897933458425 -Africa,,2009,4326.0884858189065 -Africa,,2010,4464.043502961286 -Africa,,2011,4481.371714602618 -Africa,,2012,4643.128590988004 -Africa,,2013,4765.0683798958 -Africa,,2014,4914.695261020759 -Africa,,2015,5001.8845992674505 -Africa,,2016,5110.664038390359 -Africa,,2017,5217.289746039103 -Africa,,2018,5367.396523588756 -Algeria,DZA,1965,24.684921944444447 -Algeria,DZA,1966,29.736455277777825 -Algeria,DZA,1967,28.10500111111115 -Algeria,DZA,1968,30.145581388888942 -Algeria,DZA,1969,33.425377499999996 -Algeria,DZA,1970,36.57900583333339 -Algeria,DZA,1971,39.617660277777766 -Algeria,DZA,1972,44.49832916666663 -Algeria,DZA,1973,53.01575250000003 -Algeria,DZA,1974,58.753500833333355 -Algeria,DZA,1975,70.26040750000004 -Algeria,DZA,1976,81.96365250000001 -Algeria,DZA,1977,90.12660361111114 -Algeria,DZA,1978,113.29676472222219 -Algeria,DZA,1979,148.44730722222283 -Algeria,DZA,1980,177.05753999999953 -Algeria,DZA,1981,215.05758277777784 -Algeria,DZA,1982,247.95175777777746 -Algeria,DZA,1983,270.8881611111113 -Algeria,DZA,1984,260.05752638888856 -Algeria,DZA,1985,262.08636305555564 -Algeria,DZA,1986,277.40919890350864 -Algeria,DZA,1987,285.00572178362546 -Algeria,DZA,1988,305.36227755848006 -Algeria,DZA,1989,296.99472795321674 -Algeria,DZA,1990,314.92979899122815 -Algeria,DZA,1991,311.99973874268983 -Algeria,DZA,1992,320.1621297660822 -Algeria,DZA,1993,297.88011403508824 -Algeria,DZA,1994,301.8670879385967 -Algeria,DZA,1995,313.08202751461937 -Algeria,DZA,1996,309.8808028801176 -Algeria,DZA,1997,297.8353478654977 -Algeria,DZA,1998,308.2790275292403 -Algeria,DZA,1999,311.36811635964966 -Algeria,DZA,2000,299.9280724853802 -Algeria,DZA,2001,310.7918378362579 -Algeria,DZA,2002,321.9341547222222 -Algeria,DZA,2003,336.8509539766079 -Algeria,DZA,2004,349.71503409356706 -Algeria,DZA,2005,366.14279568947325 -Algeria,DZA,2006,379.17351232894794 -Algeria,DZA,2007,399.5954578470893 -Algeria,DZA,2008,423.5064182373826 -Algeria,DZA,2009,448.8042344444447 -Algeria,DZA,2010,437.40561552631607 -Algeria,DZA,2011,464.43794581871373 -Algeria,DZA,2012,507.6259857085637 -Algeria,DZA,2013,536.9648394736848 -Algeria,DZA,2014,585.59359383041 -Algeria,DZA,2015,617.5044838040936 -Algeria,DZA,2016,616.8577568181724 -Algeria,DZA,2017,617.8796480716378 -Algeria,DZA,2018,659.5842167982457 -Argentina,ARG,1965,313.01496299896394 -Argentina,ARG,1966,323.4269603163651 -Argentina,ARG,1967,333.0293933353713 -Argentina,ARG,1968,344.52213755060313 -Argentina,ARG,1969,356.3979989293926 -Argentina,ARG,1970,336.54109831353884 -Argentina,ARG,1971,357.59899969629384 -Argentina,ARG,1972,364.0100019653057 -Argentina,ARG,1973,379.4433612945737 -Argentina,ARG,1974,395.4679586146552 -Argentina,ARG,1975,384.6591402250331 -Argentina,ARG,1976,405.72852087430164 -Argentina,ARG,1977,424.5512826046247 -Argentina,ARG,1978,432.563602482013 -Argentina,ARG,1979,458.3900799019945 -Argentina,ARG,1980,457.2440729921701 -Argentina,ARG,1981,440.661998142562 -Argentina,ARG,1982,451.3141576524524 -Argentina,ARG,1983,470.90888597572246 -Argentina,ARG,1984,469.5989507919085 -Argentina,ARG,1985,458.60820974669116 -Argentina,ARG,1986,506.52557818621466 -Argentina,ARG,1987,529.2651176665332 -Argentina,ARG,1988,538.938859470584 -Argentina,ARG,1989,515.97354409023 -Argentina,ARG,1990,509.5785992202937 -Argentina,ARG,1991,515.5174180442012 -Argentina,ARG,1992,554.4296666921838 -Argentina,ARG,1993,571.780050744056 -Argentina,ARG,1994,581.7401100449149 -Argentina,ARG,1995,605.5834418661485 -Argentina,ARG,1996,649.2325236711686 -Argentina,ARG,1997,644.4973381871645 -Argentina,ARG,1998,668.4856838458692 -Argentina,ARG,1999,654.4723212369857 -Argentina,ARG,2000,680.1464031073946 -Argentina,ARG,2001,672.1997575838614 -Argentina,ARG,2002,640.7068305958256 -Argentina,ARG,2003,688.6550791353284 -Argentina,ARG,2004,726.7201435437893 -Argentina,ARG,2005,775.7798291472524 -Argentina,ARG,2006,815.8156553211016 -Argentina,ARG,2007,852.9581254886125 -Argentina,ARG,2008,868.2759225062638 -Argentina,ARG,2009,852.3020688601055 -Argentina,ARG,2010,897.632885972413 -Argentina,ARG,2011,915.5681227302288 -Argentina,ARG,2012,942.2604514311959 -Argentina,ARG,2013,982.6040098322283 -Argentina,ARG,2014,978.4022981521706 -Argentina,ARG,2015,1001.3302034887311 -Argentina,ARG,2016,999.2181065296804 -Argentina,ARG,2017,1001.3857253097067 -Argentina,ARG,2018,989.1598669446079 -Asia Pacific,,1965,5135.237611123247 -Asia Pacific,,1966,5615.9561930005175 -Asia Pacific,,1967,5885.708835984587 -Asia Pacific,,1968,6327.74005936363 -Asia Pacific,,1969,7208.321129955075 -Asia Pacific,,1970,8197.82993761301 -Asia Pacific,,1971,8971.673288008604 -Asia Pacific,,1972,9512.956347692863 -Asia Pacific,,1973,10293.739388263812 -Asia Pacific,,1974,10492.027434247144 -Asia Pacific,,1975,10885.766862062637 -Asia Pacific,,1976,11435.314403207325 -Asia Pacific,,1977,12063.522072120442 -Asia Pacific,,1978,12865.552992497078 -Asia Pacific,,1979,13462.980033905915 -Asia Pacific,,1980,13584.492010882585 -Asia Pacific,,1981,13665.634540948055 -Asia Pacific,,1982,13802.453601851526 -Asia Pacific,,1983,14428.214034161843 -Asia Pacific,,1984,15429.01462438926 -Asia Pacific,,1985,16233.678880555452 -Asia Pacific,,1986,16929.323097351637 -Asia Pacific,,1987,17883.154329458797 -Asia Pacific,,1988,19186.860997557258 -Asia Pacific,,1989,20232.268375288753 -Asia Pacific,,1990,21068.683227376583 -Asia Pacific,,1991,22050.251168867693 -Asia Pacific,,1992,23070.765742916952 -Asia Pacific,,1993,24287.226124183893 -Asia Pacific,,1994,25629.83661682342 -Asia Pacific,,1995,26815.562505780734 -Asia Pacific,,1996,28063.274272156727 -Asia Pacific,,1997,28926.13341439491 -Asia Pacific,,1998,28853.823401517922 -Asia Pacific,,1999,30020.041731266392 -Asia Pacific,,2000,31113.842695311683 -Asia Pacific,,2001,32137.063623390717 -Asia Pacific,,2002,33796.87585845572 -Asia Pacific,,2003,36633.17648037434 -Asia Pacific,,2004,40130.70734848111 -Asia Pacific,,2005,43369.73939462064 -Asia Pacific,,2006,45937.13277422703 -Asia Pacific,,2007,48849.62466112426 -Asia Pacific,,2008,50197.43811765898 -Asia Pacific,,2009,51388.901659926516 -Asia Pacific,,2010,54678.99138665818 -Asia Pacific,,2011,57620.864304346745 -Asia Pacific,,2012,59564.68647930671 -Asia Pacific,,2013,61341.002858802836 -Asia Pacific,,2014,62681.384756379775 -Asia Pacific,,2015,63682.05659089313 -Asia Pacific,,2016,64976.325083947915 -Asia Pacific,,2017,66849.68780629005 -Asia Pacific,,2018,69615.32381130465 -Australia,AUS,1965,404.18988403508786 -Australia,AUS,1966,443.55216925438623 -Australia,AUS,1967,470.45545456140405 -Australia,AUS,1968,498.94848248538057 -Australia,AUS,1969,519.4448253508773 -Australia,AUS,1970,566.6456486258483 -Australia,AUS,1971,594.9155380013505 -Australia,AUS,1972,622.1784750277434 -Australia,AUS,1973,665.1684946804619 -Australia,AUS,1974,707.1458616619885 -Australia,AUS,1975,718.7814240665318 -Australia,AUS,1976,744.211050388576 -Australia,AUS,1977,781.3206722945035 -Australia,AUS,1978,800.5856379382421 -Australia,AUS,1979,832.3140349254406 -Australia,AUS,1980,838.0664375920799 -Australia,AUS,1981,844.9801408354093 -Australia,AUS,1982,844.6022310607432 -Australia,AUS,1983,846.4926323535063 -Australia,AUS,1984,883.3886700358529 -Australia,AUS,1985,890.0499014105027 -Australia,AUS,1986,920.2190229875002 -Australia,AUS,1987,944.9230590070846 -Australia,AUS,1988,988.8308342894527 -Australia,AUS,1989,1036.6497927934327 -Australia,AUS,1990,1054.887549222008 -Australia,AUS,1991,1048.0126908611594 -Australia,AUS,1992,1058.6286546616063 -Australia,AUS,1993,1088.7986048901844 -Australia,AUS,1994,1132.365856903358 -Australia,AUS,1995,1162.524552947921 -Australia,AUS,1996,1191.8377881175572 -Australia,AUS,1997,1222.0023680410543 -Australia,AUS,1998,1250.5693214796543 -Australia,AUS,1999,1305.306180870178 -Australia,AUS,2000,1310.941737996227 -Australia,AUS,2001,1323.3788124058483 -Australia,AUS,2002,1343.2900607535892 -Australia,AUS,2003,1363.8118525643285 -Australia,AUS,2004,1409.4186713153786 -Australia,AUS,2005,1405.7260394606017 -Australia,AUS,2006,1489.9859885349738 -Australia,AUS,2007,1510.4798947573152 -Australia,AUS,2008,1538.3304902012983 -Australia,AUS,2009,1527.8442325717697 -Australia,AUS,2010,1534.1029636243104 -Australia,AUS,2011,1585.8081676820823 -Australia,AUS,2012,1565.6027545844947 -Australia,AUS,2013,1573.5473710456451 -Australia,AUS,2014,1598.6109661483608 -Australia,AUS,2015,1619.2295892568532 -Australia,AUS,2016,1653.0123656870128 -Australia,AUS,2017,1634.0995887188105 -Australia,AUS,2018,1678.5216783644187 -Austria,AUT,1965,184.26470558555454 -Austria,AUT,1966,192.68538368589222 -Austria,AUT,1967,194.60438173184707 -Austria,AUT,1968,208.32398470244428 -Austria,AUT,1969,216.4862862842099 -Austria,AUT,1970,247.221341493147 -Austria,AUT,1971,247.61070498572187 -Austria,AUT,1972,256.2001997358727 -Austria,AUT,1973,275.25925870277274 -Austria,AUT,1974,275.57137406586224 -Austria,AUT,1975,273.3203797592352 -Austria,AUT,1976,284.20144344044274 -Austria,AUT,1977,283.48820874199816 -Austria,AUT,1978,296.0738418974789 -Austria,AUT,1979,313.07418562991086 -Austria,AUT,1980,311.40114760658315 -Austria,AUT,1981,301.48208899283486 -Austria,AUT,1982,291.26766437950624 -Austria,AUT,1983,290.53557187260543 -Austria,AUT,1984,288.731489856568 -Austria,AUT,1985,302.77975503858397 -Austria,AUT,1986,305.65634841254945 -Austria,AUT,1987,321.9955860932325 -Austria,AUT,1988,317.05754248493054 -Austria,AUT,1989,318.9387122910032 -Austria,AUT,1990,324.7771530429641 -Austria,AUT,1991,341.15957327807547 -Austria,AUT,1992,334.478222111393 -Austria,AUT,1993,339.9943112892047 -Austria,AUT,1994,338.1912951284402 -Austria,AUT,1995,354.51748702835175 -Austria,AUT,1996,356.06712881623355 -Austria,AUT,1997,363.14729964849334 -Austria,AUT,1998,368.7275547066838 -Austria,AUT,1999,376.35103765204354 -Austria,AUT,2000,377.37849566745973 -Austria,AUT,2001,392.60805102441816 -Austria,AUT,2002,394.27700044478337 -Austria,AUT,2003,400.82299616835684 -Austria,AUT,2004,407.8726918456341 -Austria,AUT,2005,415.61009258325055 -Austria,AUT,2006,412.019809690755 -Austria,AUT,2007,403.1952774140121 -Austria,AUT,2008,412.16756107432354 -Austria,AUT,2009,399.3929250165941 -Austria,AUT,2010,413.5406345743519 -Austria,AUT,2011,386.94648631665393 -Austria,AUT,2012,406.6191793731444 -Austria,AUT,2013,402.988473315234 -Austria,AUT,2014,387.780423025891 -Austria,AUT,2015,388.73357131081985 -Austria,AUT,2016,401.96892575875705 -Austria,AUT,2017,413.13350381086474 -Austria,AUT,2018,407.0015428771737 -Azerbaijan,AZE,1985,234.30933747653486 -Azerbaijan,AZE,1986,252.33484620205385 -Azerbaijan,AZE,1987,244.52614642874866 -Azerbaijan,AZE,1988,244.74513137425663 -Azerbaijan,AZE,1989,249.5809204407419 -Azerbaijan,AZE,1990,259.7631595415488 -Azerbaijan,AZE,1991,249.5409301849855 -Azerbaijan,AZE,1992,213.64027007205814 -Azerbaijan,AZE,1993,185.05423505429906 -Azerbaijan,AZE,1994,170.14147352498122 -Azerbaijan,AZE,1995,160.01541053123984 -Azerbaijan,AZE,1996,131.14806528711676 -Azerbaijan,AZE,1997,125.5094601815615 -Azerbaijan,AZE,1998,125.92810223653031 -Azerbaijan,AZE,1999,125.51847281587396 -Azerbaijan,AZE,2000,131.04665769096354 -Azerbaijan,AZE,2001,126.38319234354567 -Azerbaijan,AZE,2002,124.7272766467425 -Azerbaijan,AZE,2003,134.93369921091386 -Azerbaijan,AZE,2004,153.06171848888943 -Azerbaijan,AZE,2005,165.9875936730996 -Azerbaijan,AZE,2006,163.39234936725117 -Azerbaijan,AZE,2007,147.84133547055725 -Azerbaijan,AZE,2008,149.318129321704 -Azerbaijan,AZE,2009,131.9547731857396 -Azerbaijan,AZE,2010,130.22023198255624 -Azerbaijan,AZE,2011,144.88177414190224 -Azerbaijan,AZE,2012,149.2597687910025 -Azerbaijan,AZE,2013,153.46907910970506 -Azerbaijan,AZE,2014,156.52301409472153 -Azerbaijan,AZE,2015,171.17589233914003 -Azerbaijan,AZE,2016,169.59433924995312 -Azerbaijan,AZE,2017,166.37837289701721 -Azerbaijan,AZE,2018,167.43452350295271 -Bangladesh,BGD,1971,8.135291666666673 -Bangladesh,BGD,1972,15.862670413567232 -Bangladesh,BGD,1973,19.574157651578947 -Bangladesh,BGD,1974,20.241851298654993 -Bangladesh,BGD,1975,22.954495181052653 -Bangladesh,BGD,1976,26.335063667777813 -Bangladesh,BGD,1977,27.046376241111076 -Bangladesh,BGD,1978,29.142202096257346 -Bangladesh,BGD,1979,32.27539645877189 -Bangladesh,BGD,1980,36.38836300409356 -Bangladesh,BGD,1981,36.636313649431635 -Bangladesh,BGD,1982,40.47115710298066 -Bangladesh,BGD,1983,39.9747705143801 -Bangladesh,BGD,1984,43.15062931487976 -Bangladesh,BGD,1985,48.033625221542714 -Bangladesh,BGD,1986,52.390141110662974 -Bangladesh,BGD,1987,57.81630957559498 -Bangladesh,BGD,1988,64.35672046051529 -Bangladesh,BGD,1989,69.31486952222478 -Bangladesh,BGD,1990,73.56874053143896 -Bangladesh,BGD,1991,70.98191547847806 -Bangladesh,BGD,1992,77.451526381883 -Bangladesh,BGD,1993,85.23790524568055 -Bangladesh,BGD,1994,90.41445194825441 -Bangladesh,BGD,1995,106.98757285937943 -Bangladesh,BGD,1996,111.96198627857058 -Bangladesh,BGD,1997,117.6568435825957 -Bangladesh,BGD,1998,125.27770154893153 -Bangladesh,BGD,1999,126.7143010805749 -Bangladesh,BGD,2000,135.87709770390524 -Bangladesh,BGD,2001,155.2809235709591 -Bangladesh,BGD,2002,160.29624226289724 -Bangladesh,BGD,2003,169.91727084912523 -Bangladesh,BGD,2004,175.77673589586414 -Bangladesh,BGD,2005,186.82833421377728 -Bangladesh,BGD,2006,198.2275683076827 -Bangladesh,BGD,2007,207.11252016418462 -Bangladesh,BGD,2008,219.0422604351003 -Bangladesh,BGD,2009,239.98236912244283 -Bangladesh,BGD,2010,251.15692439929762 -Bangladesh,BGD,2011,267.71447934799454 -Bangladesh,BGD,2012,291.20121866214816 -Bangladesh,BGD,2013,296.9778933490554 -Bangladesh,BGD,2014,314.44112358918017 -Bangladesh,BGD,2015,363.5425430294553 -Bangladesh,BGD,2016,369.3937845083417 -Bangladesh,BGD,2017,383.4701689206792 -Bangladesh,BGD,2018,416.2945268606732 -Belarus,BLR,1985,408.037199970314 -Belarus,BLR,1986,465.83185347326037 -Belarus,BLR,1987,472.6128569267391 -Belarus,BLR,1988,479.3984611674617 -Belarus,BLR,1989,463.65414797226043 -Belarus,BLR,1990,444.5658542409557 -Belarus,BLR,1991,439.76228918824324 -Belarus,BLR,1992,416.0652609698734 -Belarus,BLR,1993,333.2197535706494 -Belarus,BLR,1994,277.6779385154472 -Belarus,BLR,1995,251.94189394778672 -Belarus,BLR,1996,258.32810942947987 -Belarus,BLR,1997,260.91304747130675 -Belarus,BLR,1998,255.32173864690577 -Belarus,BLR,1999,248.52772323826406 -Belarus,BLR,2000,255.39478963963896 -Belarus,BLR,2001,248.96256083083523 -Belarus,BLR,2002,256.3733323678601 -Belarus,BLR,2003,255.22859689791986 -Belarus,BLR,2004,287.4751576782586 -Belarus,BLR,2005,286.4489534487054 -Belarus,BLR,2006,304.2683040116021 -Belarus,BLR,2007,297.1229055507751 -Belarus,BLR,2008,300.64097073427587 -Belarus,BLR,2009,285.0448400422239 -Belarus,BLR,2010,302.68163436114173 -Belarus,BLR,2011,300.96740773656745 -Belarus,BLR,2012,325.2096252576194 -Belarus,BLR,2013,286.79779119215823 -Belarus,BLR,2014,296.4909435919084 -Belarus,BLR,2015,269.32993896509066 -Belarus,BLR,2016,267.9265123425894 -Belarus,BLR,2017,271.9675213862284 -Belarus,BLR,2018,285.57803084463785 -Belgium,BEL,1965,412.85270352362915 -Belgium,BEL,1966,397.76044266779144 -Belgium,BEL,1967,417.5580761736155 -Belgium,BEL,1968,465.3250248278481 -Belgium,BEL,1969,510.6954684281036 -Belgium,BEL,1970,539.4992597651636 -Belgium,BEL,1971,529.2907747855801 -Belgium,BEL,1972,562.6720479414919 -Belgium,BEL,1973,570.1896298480837 -Belgium,BEL,1974,550.613468504472 -Belgium,BEL,1975,516.5160790330075 -Belgium,BEL,1976,547.4451223116387 -Belgium,BEL,1977,547.9323958433348 -Belgium,BEL,1978,571.9190795343764 -Belgium,BEL,1979,588.7210740397693 -Belgium,BEL,1980,563.2634238734606 -Belgium,BEL,1981,535.3619130101306 -Belgium,BEL,1982,511.520075253443 -Belgium,BEL,1983,493.88332992525 -Belgium,BEL,1984,515.6358553372157 -Belgium,BEL,1985,537.1195667241776 -Belgium,BEL,1986,553.4328851007593 -Belgium,BEL,1987,569.8159390213996 -Belgium,BEL,1988,581.1073808772649 -Belgium,BEL,1989,585.8738004803114 -Belgium,BEL,1990,620.9789157032749 -Belgium,BEL,1991,642.6063545748979 -Belgium,BEL,1992,640.1358469766091 -Belgium,BEL,1993,630.0894207860823 -Belgium,BEL,1994,665.6455692561741 -Belgium,BEL,1995,671.4257695398745 -Belgium,BEL,1996,713.9240413746098 -Belgium,BEL,1997,719.9759591222365 -Belgium,BEL,1998,734.7463985886237 -Belgium,BEL,1999,728.2137117882752 -Belgium,BEL,2000,744.9712180160611 -Belgium,BEL,2001,739.9832471924465 -Belgium,BEL,2002,737.6530115309762 -Belgium,BEL,2003,766.5745833993001 -Belgium,BEL,2004,770.0134937579037 -Belgium,BEL,2005,764.8428494802939 -Belgium,BEL,2006,768.219667426064 -Belgium,BEL,2007,774.5840855548596 -Belgium,BEL,2008,787.5451074240613 -Belgium,BEL,2009,737.2324337478682 -Belgium,BEL,2010,785.3585401867929 -Belgium,BEL,2011,732.838474538727 -Belgium,BEL,2012,705.9889529672669 -Belgium,BEL,2013,723.7792544992056 -Belgium,BEL,2014,676.460477428669 -Belgium,BEL,2015,687.508589845155 -Belgium,BEL,2016,742.7717944925382 -Belgium,BEL,2017,745.5780920771971 -Belgium,BEL,2018,723.2607195112448 -Brazil,BRA,1965,261.51479764186286 -Brazil,BRA,1966,285.2748217761801 -Brazil,BRA,1967,295.454949604474 -Brazil,BRA,1968,338.69848588124336 -Brazil,BRA,1969,369.99385686789617 -Brazil,BRA,1970,434.6105153410556 -Brazil,BRA,1971,475.33039355124566 -Brazil,BRA,1972,547.4523320155774 -Brazil,BRA,1973,653.0940451986457 -Brazil,BRA,1974,713.0998087602139 -Brazil,BRA,1975,752.9844078516196 -Brazil,BRA,1976,826.441771749295 -Brazil,BRA,1977,882.444767355194 -Brazil,BRA,1978,972.5682808886409 -Brazil,BRA,1979,1052.1027374224632 -Brazil,BRA,1980,1071.9762148056002 -Brazil,BRA,1981,1044.3060812375602 -Brazil,BRA,1982,1095.5049563750608 -Brazil,BRA,1983,1115.959788788999 -Brazil,BRA,1984,1197.3837767715781 -Brazil,BRA,1985,1274.6334345506793 -Brazil,BRA,1986,1360.7300459393641 -Brazil,BRA,1987,1401.572742543804 -Brazil,BRA,1988,1454.2765968896606 -Brazil,BRA,1989,1483.1371407550616 -Brazil,BRA,1990,1457.751470547842 -Brazil,BRA,1991,1513.3950898854682 -Brazil,BRA,1992,1584.6346030225648 -Brazil,BRA,1993,1655.4390732629515 -Brazil,BRA,1994,1740.3799623800544 -Brazil,BRA,1995,1827.1587307527816 -Brazil,BRA,1996,1929.5170284260741 -Brazil,BRA,1997,2039.9119373557044 -Brazil,BRA,1998,2114.0681614018154 -Brazil,BRA,1999,2152.2346529146366 -Brazil,BRA,2000,2187.356426241153 -Brazil,BRA,2001,2152.734857246015 -Brazil,BRA,2002,2207.4904111327564 -Brazil,BRA,2003,2250.675324593775 -Brazil,BRA,2004,2366.859625876358 -Brazil,BRA,2005,2439.5132484288524 -Brazil,BRA,2006,2506.1597839878405 -Brazil,BRA,2007,2666.1386738128467 -Brazil,BRA,2008,2790.341078318875 -Brazil,BRA,2009,2774.6645906914523 -Brazil,BRA,2010,3060.2523908526136 -Brazil,BRA,2011,3207.830637319477 -Brazil,BRA,2012,3271.8608746030745 -Brazil,BRA,2013,3400.6485512068475 -Brazil,BRA,2014,3481.861583259032 -Brazil,BRA,2015,3441.894407421213 -Brazil,BRA,2016,3366.178994170926 -Brazil,BRA,2017,3417.9262139677394 -Brazil,BRA,2018,3461.031515112969 -Bulgaria,BGR,1965,119.2800672222225 -Bulgaria,BGR,1966,127.91352333333377 -Bulgaria,BGR,1967,148.6881350000005 -Bulgaria,BGR,1968,166.50957833333385 -Bulgaria,BGR,1969,185.46788388888947 -Bulgaria,BGR,1970,208.6588330555554 -Bulgaria,BGR,1971,217.30229249999957 -Bulgaria,BGR,1972,223.63599611111172 -Bulgaria,BGR,1973,232.24279111111102 -Bulgaria,BGR,1974,239.1668380555553 -Bulgaria,BGR,1975,263.98906694444474 -Bulgaria,BGR,1976,279.0116638888885 -Bulgaria,BGR,1977,293.75567250000006 -Bulgaria,BGR,1978,304.4640208333329 -Bulgaria,BGR,1979,315.90853972222163 -Bulgaria,BGR,1980,333.51243083333384 -Bulgaria,BGR,1981,327.97831861111143 -Bulgaria,BGR,1982,335.91224499999964 -Bulgaria,BGR,1983,337.8003397222224 -Bulgaria,BGR,1984,335.7621872222223 -Bulgaria,BGR,1985,333.44197527777783 -Bulgaria,BGR,1986,340.39818833333356 -Bulgaria,BGR,1987,342.9078944444442 -Bulgaria,BGR,1988,350.2272772222226 -Bulgaria,BGR,1989,347.40305944444447 -Bulgaria,BGR,1990,320.3711162236235 -Bulgaria,BGR,1991,259.82891158714517 -Bulgaria,BGR,1992,244.02604693923504 -Bulgaria,BGR,1993,259.16669909368426 -Bulgaria,BGR,1994,249.18662922488764 -Bulgaria,BGR,1995,267.26183609022 -Bulgaria,BGR,1996,266.9610319021535 -Bulgaria,BGR,1997,252.34085534402334 -Bulgaria,BGR,1998,242.11820892538026 -Bulgaria,BGR,1999,211.74649750462927 -Bulgaria,BGR,2000,212.68176826670978 -Bulgaria,BGR,2001,222.15051066827633 -Bulgaria,BGR,2002,216.04645015149833 -Bulgaria,BGR,2003,223.16354070273252 -Bulgaria,BGR,2004,216.55160473504188 -Bulgaria,BGR,2005,234.3406412940347 -Bulgaria,BGR,2006,240.41774627834582 -Bulgaria,BGR,2007,233.40858291742364 -Bulgaria,BGR,2008,229.91188171325518 -Bulgaria,BGR,2009,202.05253152213854 -Bulgaria,BGR,2010,210.46564307858873 -Bulgaria,BGR,2011,224.1610367864634 -Bulgaria,BGR,2012,213.42368090166207 -Bulgaria,BGR,2013,197.76656927446714 -Bulgaria,BGR,2014,210.87488117817227 -Bulgaria,BGR,2015,224.73845166286068 -Bulgaria,BGR,2016,213.1092028447886 -Bulgaria,BGR,2017,217.9627580507302 -Bulgaria,BGR,2018,216.01844259993587 -CIS,,1965,6900.2211236797875 -CIS,,1966,7337.457098910874 -CIS,,1967,7712.827002860533 -CIS,,1968,7998.801732830085 -CIS,,1969,8361.934967824714 -CIS,,1970,8778.396558836379 -CIS,,1971,9209.745801496534 -CIS,,1972,9680.010832686523 -CIS,,1973,10177.22135540317 -CIS,,1974,10737.970806439833 -CIS,,1975,11269.304362428395 -CIS,,1976,11705.678169876024 -CIS,,1977,12227.220069669815 -CIS,,1978,12724.987091396535 -CIS,,1979,13108.235679323503 -CIS,,1980,13375.669192556437 -CIS,,1981,13659.171705131965 -CIS,,1982,14002.626645411206 -CIS,,1983,14293.511008493257 -CIS,,1984,14823.698121847994 -CIS,,1985,11944.863797017435 -CIS,,1986,12220.178071910548 -CIS,,1987,12579.382770283022 -CIS,,1988,12845.823456809194 -CIS,,1989,12858.238524180191 -CIS,,1990,12636.670927815228 -CIS,,1991,12428.012184721496 -CIS,,1992,11800.65187170192 -CIS,,1993,10976.753402953495 -CIS,,1994,10008.706932546427 -CIS,,1995,9408.11381988839 -CIS,,1996,9102.138395339045 -CIS,,1997,8583.938487518293 -CIS,,1998,8569.008675261504 -CIS,,1999,8672.775460342833 -CIS,,2000,8750.42222019891 -CIS,,2001,8939.395951283499 -CIS,,2002,8921.651760936671 -CIS,,2003,9140.673878902773 -CIS,,2004,9312.232596502265 -CIS,,2005,9341.10737260246 -CIS,,2006,9685.650232652717 -CIS,,2007,9821.11247972684 -CIS,,2008,9823.513781421707 -CIS,,2009,9422.139992300696 -CIS,,2010,9806.723760104664 -CIS,,2011,10211.674294331591 -CIS,,2012,10312.542687371966 -CIS,,2013,10142.767991279588 -CIS,,2014,10237.615544461001 -CIS,,2015,10093.401649075637 -CIS,,2016,10251.522558849783 -CIS,,2017,10365.16120241614 -CIS,,2018,10822.08825091469 -Canada,CAN,1965,1348.043170994157 -Canada,CAN,1966,1430.3929718567285 -Canada,CAN,1967,1500.5786688011642 -Canada,CAN,1968,1601.3981697514644 -Canada,CAN,1969,1689.8741524853785 -Canada,CAN,1970,1809.48834709064 -Canada,CAN,1971,1858.4046527777814 -Canada,CAN,1972,1985.220533888891 -Canada,CAN,1973,2107.8347291666723 -Canada,CAN,1974,2181.284614166671 -Canada,CAN,1975,2157.006520277774 -Canada,CAN,1976,2280.773381593568 -Canada,CAN,1977,2390.4098278947395 -Canada,CAN,1978,2432.4370357017547 -Canada,CAN,1979,2461.247513128656 -Canada,CAN,1980,2520.0166006871405 -Canada,CAN,1981,2450.176331286554 -Canada,CAN,1982,2481.8902076461986 -Canada,CAN,1983,2462.0009687719266 -Canada,CAN,1984,2621.471183888894 -Canada,CAN,1985,2702.529752997078 -Canada,CAN,1986,2706.9277948099475 -Canada,CAN,1987,2800.185833464912 -Canada,CAN,1988,2917.285548947374 -Canada,CAN,1989,2949.7079414612067 -Canada,CAN,1990,2895.3974790842517 -Canada,CAN,1991,2897.9259504578304 -Canada,CAN,1992,2970.9928271682675 -Canada,CAN,1993,3035.4867620154987 -Canada,CAN,1994,3147.3368235080566 -Canada,CAN,1995,3216.175210272886 -Canada,CAN,1996,3304.784668732433 -Canada,CAN,1997,3333.0247059764406 -Canada,CAN,1998,3290.2481468419724 -Canada,CAN,1999,3394.62660495875 -Canada,CAN,2000,3493.812749150524 -Canada,CAN,2001,3417.9234290078975 -Canada,CAN,2002,3530.276415110186 -Canada,CAN,2003,3555.054151083193 -Canada,CAN,2004,3603.5847876988378 -Canada,CAN,2005,3646.97084080329 -Canada,CAN,2006,3609.884124687282 -Canada,CAN,2007,3745.5474805396225 -Canada,CAN,2008,3739.518659739619 -Canada,CAN,2009,3545.817586317525 -Canada,CAN,2010,3628.1428301336123 -Canada,CAN,2011,3805.378810097547 -Canada,CAN,2012,3776.551554692874 -Canada,CAN,2013,3919.5404566545235 -Canada,CAN,2014,3975.2952274734203 -Canada,CAN,2015,3943.070620536991 -Canada,CAN,2016,3933.5391132316045 -Canada,CAN,2017,3997.1930792746493 -Canada,CAN,2018,4005.6529471730537 -Central America,,1965,50.1307920453292 -Central America,,1966,50.921257095351514 -Central America,,1967,53.92517067763239 -Central America,,1968,55.2046321934029 -Central America,,1969,58.988199653913185 -Central America,,1970,61.51682463720886 -Central America,,1971,64.76266275301941 -Central America,,1972,70.24893912006165 -Central America,,1973,73.77818184606231 -Central America,,1974,75.73044128956067 -Central America,,1975,83.19231428299842 -Central America,,1976,86.49689589276808 -Central America,,1977,88.14420483234098 -Central America,,1978,92.00838031497051 -Central America,,1979,93.59081937865494 -Central America,,1980,90.59678660586108 -Central America,,1981,91.72087105824862 -Central America,,1982,91.54077529229423 -Central America,,1983,92.2028833030254 -Central America,,1984,93.23923252753657 -Central America,,1985,95.37411403724015 -Central America,,1986,98.65892148459473 -Central America,,1987,105.11243707224901 -Central America,,1988,104.21577261882268 -Central America,,1989,110.75166136057 -Central America,,1990,114.62824264579469 -Central America,,1991,121.51274388980161 -Central America,,1992,133.3868024510761 -Central America,,1993,143.19517035589877 -Central America,,1994,152.12007689851848 -Central America,,1995,164.33343850792113 -Central America,,1996,166.62998453563935 -Central America,,1997,175.95109187220805 -Central America,,1998,195.56507802126288 -Central America,,1999,201.77512267709096 -Central America,,2000,210.7314467063103 -Central America,,2001,218.5799644813857 -Central America,,2002,221.96820187134279 -Central America,,2003,232.30357805616876 -Central America,,2004,239.32716259722574 -Central America,,2005,241.84086278154018 -Central America,,2006,255.00876497541717 -Central America,,2007,267.60879459558015 -Central America,,2008,274.66594046040683 -Central America,,2009,269.8881560948143 -Central America,,2010,280.93804168293804 -Central America,,2011,295.69703977278874 -Central America,,2012,306.30799529986916 -Central America,,2013,309.4423543108085 -Central America,,2014,319.69295047122296 -Central America,,2015,348.15909454216046 -Central America,,2016,364.05534583229803 -Central America,,2017,373.71259590544815 -Central America,,2018,391.54985600634427 -Chile,CHL,1965,71.74195762971097 -Chile,CHL,1966,76.91124830588326 -Chile,CHL,1967,78.42455336897528 -Chile,CHL,1968,78.34606145265221 -Chile,CHL,1969,84.33722260880837 -Chile,CHL,1970,88.9932722539104 -Chile,CHL,1971,95.09389587719295 -Chile,CHL,1972,97.85985666666674 -Chile,CHL,1973,94.64475858187132 -Chile,CHL,1974,93.38378818713451 -Chile,CHL,1975,84.0978121929825 -Chile,CHL,1976,88.16961387426902 -Chile,CHL,1977,91.17974964912287 -Chile,CHL,1978,96.74526035087725 -Chile,CHL,1979,99.8043595321637 -Chile,CHL,1980,103.00522745614035 -Chile,CHL,1981,105.64603451754382 -Chile,CHL,1982,96.58909770467841 -Chile,CHL,1983,98.59920314327479 -Chile,CHL,1984,103.37846459064326 -Chile,CHL,1985,106.38922906432742 -Chile,CHL,1986,111.10760105263154 -Chile,CHL,1987,116.51286945906388 -Chile,CHL,1988,130.34012307017522 -Chile,CHL,1989,144.28977812865523 -Chile,CHL,1990,152.23109082163774 -Chile,CHL,1991,170.1105996900585 -Chile,CHL,1992,187.7693884766076 -Chile,CHL,1993,198.64430043207702 -Chile,CHL,1994,208.9527299707598 -Chile,CHL,1995,225.1901198479526 -Chile,CHL,1996,239.37982290397622 -Chile,CHL,1997,273.917238490058 -Chile,CHL,1998,275.63879595029175 -Chile,CHL,1999,287.8842225643275 -Chile,CHL,2000,303.70482650292365 -Chile,CHL,2001,305.76062438888914 -Chile,CHL,2002,316.80235921052616 -Chile,CHL,2003,315.46768181578904 -Chile,CHL,2004,332.156366410029 -Chile,CHL,2005,345.35860908829005 -Chile,CHL,2006,369.25425227510163 -Chile,CHL,2007,377.8982604747691 -Chile,CHL,2008,374.18477984536366 -Chile,CHL,2009,366.8952917444191 -Chile,CHL,2010,368.8495662643175 -Chile,CHL,2011,401.26402163280613 -Chile,CHL,2012,410.71511645845857 -Chile,CHL,2013,415.23175642777045 -Chile,CHL,2014,407.9148437146516 -Chile,CHL,2015,417.68823759853814 -Chile,CHL,2016,438.0693707781038 -Chile,CHL,2017,445.52743717217083 -Chile,CHL,2018,466.3308833239992 -China,CHN,1965,1529.0036653957704 -China,CHN,1966,1661.9907588962687 -China,CHN,1967,1494.7608728687312 -China,CHN,1968,1509.2536533824978 -China,CHN,1969,1837.6173492354965 -China,CHN,1970,2353.8764803785607 -China,CHN,1971,2790.6628000122882 -China,CHN,1972,3008.113956796953 -China,CHN,1973,3174.9092337020666 -China,CHN,1974,3273.2002484390355 -China,CHN,1975,3666.250184913959 -China,CHN,1976,3860.4453888864277 -China,CHN,1977,4210.139776497045 -China,CHN,1978,4617.966547109139 -China,CHN,1979,4756.025128485739 -China,CHN,1980,4847.776402951134 -China,CHN,1981,4781.406686645237 -China,CHN,1982,4991.821064334859 -China,CHN,1983,5311.389161962301 -China,CHN,1984,5699.800239165316 -China,CHN,1985,6164.965980173284 -China,CHN,1986,6461.492551096853 -China,CHN,1987,6968.511809871976 -China,CHN,1988,7484.8323002399575 -China,CHN,1989,7853.3489854894415 -China,CHN,1990,7953.984521296604 -China,CHN,1991,8357.540454548287 -China,CHN,1992,8801.081973802606 -China,CHN,1993,9474.6884945488 -China,CHN,1994,10054.439064588985 -China,CHN,1995,10360.687129821961 -China,CHN,1996,10902.323546245718 -China,CHN,1997,10964.571439562 -China,CHN,1998,10979.25961402515 -China,CHN,1999,11365.4160436996 -China,CHN,2000,11757.131164599345 -China,CHN,2001,12417.892187629963 -China,CHN,2002,13533.031574637238 -China,CHN,2003,15766.562426930066 -China,CHN,2004,18448.787100887243 -China,CHN,2005,20966.89843534381 -China,CHN,2006,22993.818864764424 -China,CHN,2007,25000.357048089147 -China,CHN,2008,25939.73477852968 -China,CHN,2009,27099.593206744343 -China,CHN,2010,28977.748561833254 -China,CHN,2011,31290.67441082402 -China,CHN,2012,32558.223499705215 -China,CHN,2013,33814.393499852195 -China,CHN,2014,34595.64895008942 -China,CHN,2015,35001.97848552344 -China,CHN,2016,35437.84338213813 -China,CHN,2017,36506.93409416597 -China,CHN,2018,38070.39795085376 -Colombia,COL,1965,87.74424500022185 -Colombia,COL,1966,95.59766124415552 -Colombia,COL,1967,101.74233546812714 -Colombia,COL,1968,107.14650837852034 -Colombia,COL,1969,108.92763084257344 -Colombia,COL,1970,118.81909661540301 -Colombia,COL,1971,116.71254618832424 -Colombia,COL,1972,131.11380987890527 -Colombia,COL,1973,130.8316020608283 -Colombia,COL,1974,146.59161540447786 -Colombia,COL,1975,149.4731026112317 -Colombia,COL,1976,155.69765066093808 -Colombia,COL,1977,159.2360235248635 -Colombia,COL,1978,170.20218733522356 -Colombia,COL,1979,180.7437327428065 -Colombia,COL,1980,183.69124257053406 -Colombia,COL,1981,188.13443594990062 -Colombia,COL,1982,196.68345394674478 -Colombia,COL,1983,206.81452603554936 -Colombia,COL,1984,212.12134099716164 -Colombia,COL,1985,220.4331012960315 -Colombia,COL,1986,227.2895955710615 -Colombia,COL,1987,247.12226381582695 -Colombia,COL,1988,247.1133616662714 -Colombia,COL,1989,259.87360228377753 -Colombia,COL,1990,242.66750569762382 -Colombia,COL,1991,252.1673611722019 -Colombia,COL,1992,264.72959868333044 -Colombia,COL,1993,290.97077083277617 -Colombia,COL,1994,312.0852292328772 -Colombia,COL,1995,317.0072824396621 -Colombia,COL,1996,324.7771248777511 -Colombia,COL,1997,334.9864687541524 -Colombia,COL,1998,337.0596345066491 -Colombia,COL,1999,311.011044460626 -Colombia,COL,2000,303.37026278003214 -Colombia,COL,2001,298.8824790018371 -Colombia,COL,2002,298.07285975555084 -Colombia,COL,2003,309.1104348099541 -Colombia,COL,2004,315.09513222643375 -Colombia,COL,2005,316.3542579305035 -Colombia,COL,2006,355.49018646672346 -Colombia,COL,2007,357.42428141908124 -Colombia,COL,2008,386.8747873025133 -Colombia,COL,2009,369.73846771305864 -Colombia,COL,2010,396.3990972009803 -Colombia,COL,2011,415.46968177164473 -Colombia,COL,2012,445.19624832902747 -Colombia,COL,2013,451.84044230334337 -Colombia,COL,2014,476.96303585987425 -Colombia,COL,2015,480.3972457520065 -Colombia,COL,2016,514.5463281471378 -Colombia,COL,2017,529.2868378211598 -Colombia,COL,2018,546.0092198286926 -Croatia,HRV,1990,99.2149488758479 -Croatia,HRV,1991,82.89568397836246 -Croatia,HRV,1992,79.10460494467826 -Croatia,HRV,1993,82.51533743608178 -Croatia,HRV,1994,83.09161904152039 -Croatia,HRV,1995,85.98536037152037 -Croatia,HRV,1996,91.68080371707586 -Croatia,HRV,1997,91.45494770350867 -Croatia,HRV,1998,96.75791964023377 -Croatia,HRV,1999,99.70612226304084 -Croatia,HRV,2000,94.4496812852046 -Croatia,HRV,2001,99.31882687105256 -Croatia,HRV,2002,99.94021325660812 -Croatia,HRV,2003,104.85446513140342 -Croatia,HRV,2004,108.63217191192975 -Croatia,HRV,2005,107.64498461842103 -Croatia,HRV,2006,106.5246892642689 -Croatia,HRV,2007,107.52882415508763 -Croatia,HRV,2008,106.82362746163744 -Croatia,HRV,2009,105.31963381643261 -Croatia,HRV,2010,106.91032148116953 -Croatia,HRV,2011,93.75822551672508 -Croatia,HRV,2012,86.97272409660815 -Croatia,HRV,2013,95.14286551871338 -Croatia,HRV,2014,95.16215125777771 -Croatia,HRV,2015,90.42819541140338 -Croatia,HRV,2016,94.13001691134491 -Croatia,HRV,2017,94.29306123578941 -Croatia,HRV,2018,100.46296928331114 -Cyprus,CYP,1965,4.680250555555556 -Cyprus,CYP,1966,5.338632500000006 -Cyprus,CYP,1967,5.787254722222228 -Cyprus,CYP,1968,6.427251666666663 -Cyprus,CYP,1969,7.589793611111107 -Cyprus,CYP,1970,8.004829166666665 -Cyprus,CYP,1971,9.54851444444445 -Cyprus,CYP,1972,10.737023888888894 -Cyprus,CYP,1973,11.519170277777773 -Cyprus,CYP,1974,10.213084166666672 -Cyprus,CYP,1975,8.530229999999996 -Cyprus,CYP,1976,8.673059444444446 -Cyprus,CYP,1977,9.796983611111113 -Cyprus,CYP,1978,10.044485277777781 -Cyprus,CYP,1979,10.192833333333331 -Cyprus,CYP,1980,10.278665000000004 -Cyprus,CYP,1981,9.856193611111113 -Cyprus,CYP,1982,11.81379194444447 -Cyprus,CYP,1983,12.430679722222182 -Cyprus,CYP,1984,12.612488888888903 -Cyprus,CYP,1985,13.565379722222193 -Cyprus,CYP,1986,14.143438333333325 -Cyprus,CYP,1987,17.280825277777723 -Cyprus,CYP,1988,17.845005833333307 -Cyprus,CYP,1989,18.312032499999948 -Cyprus,CYP,1990,19.27453583333336 -Cyprus,CYP,1991,19.512156666666645 -Cyprus,CYP,1992,22.79668000000003 -Cyprus,CYP,1993,23.690177777777773 -Cyprus,CYP,1994,23.73236027777782 -Cyprus,CYP,1995,25.230673055555524 -Cyprus,CYP,1996,25.604817777777743 -Cyprus,CYP,1997,25.851622777777816 -Cyprus,CYP,1998,27.4466055555556 -Cyprus,CYP,1999,28.880678888888944 -Cyprus,CYP,2000,30.2611052777778 -Cyprus,CYP,2001,30.60965277777783 -Cyprus,CYP,2002,30.185936388888887 -Cyprus,CYP,2003,32.08830055555559 -Cyprus,CYP,2004,31.228174897660807 -Cyprus,CYP,2005,34.99257257309936 -Cyprus,CYP,2006,34.41155459202506 -Cyprus,CYP,2007,34.98717750136215 -Cyprus,CYP,2008,35.876319226473036 -Cyprus,CYP,2009,35.01785282288957 -Cyprus,CYP,2010,34.059295907704524 -Cyprus,CYP,2011,33.67997669712318 -Cyprus,CYP,2012,31.55409143391814 -Cyprus,CYP,2013,28.224896404678336 -Cyprus,CYP,2014,28.245348216389946 -Cyprus,CYP,2015,29.134354845725298 -Cyprus,CYP,2016,31.690833871988268 -Cyprus,CYP,2017,32.55528090862158 -Cyprus,CYP,2018,32.378477635266286 -Czech Republic,CZE,1965,468.0519172222227 -Czech Republic,CZE,1966,471.599968333333 -Czech Republic,CZE,1967,464.3232108333332 -Czech Republic,CZE,1968,484.41472916666646 -Czech Republic,CZE,1969,505.14327305555577 -Czech Republic,CZE,1970,526.3149638888885 -Czech Republic,CZE,1971,553.2226794444448 -Czech Republic,CZE,1972,556.4107016666668 -Czech Republic,CZE,1973,559.8174469444441 -Czech Republic,CZE,1974,565.3516666666666 -Czech Republic,CZE,1975,588.7155350000006 -Czech Republic,CZE,1976,605.2442419444448 -Czech Republic,CZE,1977,625.0074638888887 -Czech Republic,CZE,1978,633.794500555555 -Czech Republic,CZE,1979,640.3533347222219 -Czech Republic,CZE,1980,620.0453725000001 -Czech Republic,CZE,1981,615.5504899999999 -Czech Republic,CZE,1982,608.4741538888888 -Czech Republic,CZE,1983,608.8657899999998 -Czech Republic,CZE,1984,626.3791222222223 -Czech Republic,CZE,1985,630.4784130555561 -Czech Republic,CZE,1986,636.6666122222223 -Czech Republic,CZE,1987,650.259283055556 -Czech Republic,CZE,1988,653.024909166667 -Czech Republic,CZE,1989,632.9004886111111 -Czech Republic,CZE,1990,543.7783515723387 -Czech Republic,CZE,1991,494.7959469403504 -Czech Republic,CZE,1992,480.01704335421095 -Czech Republic,CZE,1993,475.9680087907605 -Czech Republic,CZE,1994,463.1773067201168 -Czech Republic,CZE,1995,482.85621814742666 -Czech Republic,CZE,1996,499.5194635900004 -Czech Republic,CZE,1997,478.9807875438012 -Czech Republic,CZE,1998,464.84493156152047 -Czech Republic,CZE,1999,445.42194335713407 -Czech Republic,CZE,2000,470.94895047192927 -Czech Republic,CZE,2001,481.65227494549634 -Czech Republic,CZE,2002,482.68541926918124 -Czech Republic,CZE,2003,510.1063153347366 -Czech Republic,CZE,2004,523.1120090683628 -Czech Republic,CZE,2005,515.5789924628066 -Czech Republic,CZE,2006,525.8392568709936 -Czech Republic,CZE,2007,520.4497892216366 -Czech Republic,CZE,2008,511.11431952824495 -Czech Republic,CZE,2009,490.78499853543866 -Czech Republic,CZE,2010,511.76489034795264 -Czech Republic,CZE,2011,500.55858590652446 -Czech Republic,CZE,2012,498.1012861784756 -Czech Republic,CZE,2013,489.12539899788555 -Czech Republic,CZE,2014,478.8425021618853 -Czech Republic,CZE,2015,470.93532852303133 -Czech Republic,CZE,2016,463.97841911960666 -Czech Republic,CZE,2017,485.7048211096713 -Czech Republic,CZE,2018,489.83957808922395 -Denmark,DNK,1965,166.19249883333373 -Denmark,DNK,1966,189.0406739999998 -Denmark,DNK,1967,190.1077036666673 -Denmark,DNK,1968,198.6629109999996 -Denmark,DNK,1969,228.03969261111135 -Denmark,DNK,1970,242.97660583333294 -Denmark,DNK,1971,229.62233722222172 -Denmark,DNK,1972,242.3294566111112 -Denmark,DNK,1973,234.45674477777743 -Denmark,DNK,1974,213.30108566666672 -Denmark,DNK,1975,210.2326429356725 -Denmark,DNK,1976,231.43699438888902 -Denmark,DNK,1977,236.18080683040898 -Denmark,DNK,1978,239.60882481286546 -Denmark,DNK,1979,239.12723881871383 -Denmark,DNK,1980,232.9463888654969 -Denmark,DNK,1981,209.23240263157902 -Denmark,DNK,1982,199.97849433040977 -Denmark,DNK,1983,190.0753730672509 -Denmark,DNK,1984,193.2535599883036 -Denmark,DNK,1985,217.76914222807042 -Denmark,DNK,1986,222.5647291111115 -Denmark,DNK,1987,214.54040721345066 -Denmark,DNK,1988,212.15579640643313 -Denmark,DNK,1989,195.59703385964949 -Denmark,DNK,1990,201.6355658654973 -Denmark,DNK,1991,232.40559046414873 -Denmark,DNK,1992,217.53781491793666 -Denmark,DNK,1993,230.55011445754394 -Denmark,DNK,1994,247.35386862639834 -Denmark,DNK,1995,242.86406921762017 -Denmark,DNK,1996,289.0167833011415 -Denmark,DNK,1997,261.81522206782637 -Denmark,DNK,1998,252.16024482638903 -Denmark,DNK,1999,244.31359338008423 -Denmark,DNK,2000,234.4004599525601 -Denmark,DNK,2001,235.04171671955632 -Denmark,DNK,2002,234.29153478322326 -Denmark,DNK,2003,252.33530080138678 -Denmark,DNK,2004,238.36656476700963 -Denmark,DNK,2005,230.02639748754538 -Denmark,DNK,2006,253.83308631727056 -Denmark,DNK,2007,240.61252464339884 -Denmark,DNK,2008,231.6397261555746 -Denmark,DNK,2009,217.91260196686568 -Denmark,DNK,2010,229.17319135900323 -Denmark,DNK,2011,216.79594831023522 -Denmark,DNK,2012,200.97904417572693 -Denmark,DNK,2013,210.16819873209297 -Denmark,DNK,2014,203.52611124340763 -Denmark,DNK,2015,196.7666075284923 -Denmark,DNK,2016,198.71517809766428 -Denmark,DNK,2017,199.96855182591594 -Denmark,DNK,2018,197.3507684509082 -Eastern Africa,,1965,111.6068478747138 -Eastern Africa,,1966,118.46435512586135 -Eastern Africa,,1967,124.11684275612483 -Eastern Africa,,1968,129.57590015400086 -Eastern Africa,,1969,133.75742253736593 -Eastern Africa,,1970,146.50253676842294 -Eastern Africa,,1971,156.32043647658932 -Eastern Africa,,1972,166.38247146170633 -Eastern Africa,,1973,172.81186393448124 -Eastern Africa,,1974,179.48777992406258 -Eastern Africa,,1975,176.61564705521562 -Eastern Africa,,1976,182.5841485757598 -Eastern Africa,,1977,185.58262493116945 -Eastern Africa,,1978,179.67780121675946 -Eastern Africa,,1979,183.58090298799752 -Eastern Africa,,1980,186.35400830519194 -Eastern Africa,,1981,183.52449341692764 -Eastern Africa,,1982,182.26097079005183 -Eastern Africa,,1983,178.33202083804719 -Eastern Africa,,1984,179.13107043333977 -Eastern Africa,,1985,186.3439960416344 -Eastern Africa,,1986,196.24173123120124 -Eastern Africa,,1987,197.26798745779942 -Eastern Africa,,1988,213.42856514907072 -Eastern Africa,,1989,216.32532460324714 -Eastern Africa,,1990,243.33811075689454 -Eastern Africa,,1991,231.5208790743406 -Eastern Africa,,1992,227.49110100961752 -Eastern Africa,,1993,242.43442575155723 -Eastern Africa,,1994,243.97599999846042 -Eastern Africa,,1995,248.50260818743595 -Eastern Africa,,1996,249.86350976010468 -Eastern Africa,,1997,259.65858920140994 -Eastern Africa,,1998,275.74562711897164 -Eastern Africa,,1999,281.4265931626468 -Eastern Africa,,2000,284.9423792713391 -Eastern Africa,,2001,306.9656397344554 -Eastern Africa,,2002,314.9317290935945 -Eastern Africa,,2003,311.5809016135721 -Eastern Africa,,2004,337.5903059249893 -Eastern Africa,,2005,349.87579191426136 -Eastern Africa,,2006,362.8434064369178 -Eastern Africa,,2007,380.0265484493778 -Eastern Africa,,2008,377.7146055895042 -Eastern Africa,,2009,398.6336669761924 -Eastern Africa,,2010,433.4146225702026 -Eastern Africa,,2011,456.8645342058124 -Eastern Africa,,2012,465.0880786241501 -Eastern Africa,,2013,506.03311207735874 -Eastern Africa,,2014,559.45297569285 -Eastern Africa,,2015,584.880380844766 -Eastern Africa,,2016,576.1773141796415 -Eastern Africa,,2017,605.0603323873368 -Eastern Africa,,2018,629.1256565759878 -Ecuador,ECU,1965,8.827777499999996 -Ecuador,ECU,1966,9.304819444444444 -Ecuador,ECU,1967,10.082515277777784 -Ecuador,ECU,1968,11.870032222222262 -Ecuador,ECU,1969,12.630500833333329 -Ecuador,ECU,1970,15.04082472222219 -Ecuador,ECU,1971,16.53522027777772 -Ecuador,ECU,1972,18.469451388888867 -Ecuador,ECU,1973,18.389198611111144 -Ecuador,ECU,1974,21.232815555555582 -Ecuador,ECU,1975,21.19462277777781 -Ecuador,ECU,1976,23.498849166666638 -Ecuador,ECU,1977,28.94387555555558 -Ecuador,ECU,1978,29.89433222222225 -Ecuador,ECU,1979,31.071763611111155 -Ecuador,ECU,1980,39.26167666666666 -Ecuador,ECU,1981,43.51862333333338 -Ecuador,ECU,1982,47.77021388888885 -Ecuador,ECU,1983,47.27327027777775 -Ecuador,ECU,1984,53.08167722222224 -Ecuador,ECU,1985,59.88875459064326 -Ecuador,ECU,1986,62.550256681286484 -Ecuador,ECU,1987,64.37828134502921 -Ecuador,ECU,1988,63.57714583333329 -Ecuador,ECU,1989,65.19382960526309 -Ecuador,ECU,1990,66.13750986842106 -Ecuador,ECU,1991,73.5233401754386 -Ecuador,ECU,1992,71.51066551169585 -Ecuador,ECU,1993,76.68322891812858 -Ecuador,ECU,1994,83.47287466374263 -Ecuador,ECU,1995,77.75419399122801 -Ecuador,ECU,1996,88.42049374269004 -Ecuador,ECU,1997,98.50996261695896 -Ecuador,ECU,1998,99.977559239766 -Ecuador,ECU,1999,94.07927922001743 -Ecuador,ECU,2000,100.12601082737862 -Ecuador,ECU,2001,101.31818421318475 -Ecuador,ECU,2002,99.90198725728015 -Ecuador,ECU,2003,101.58569634238613 -Ecuador,ECU,2004,112.17966797023531 -Ecuador,ECU,2005,119.04698357485955 -Ecuador,ECU,2006,126.01662568541602 -Ecuador,ECU,2007,132.33282391252146 -Ecuador,ECU,2008,140.86265202750383 -Ecuador,ECU,2009,138.12748173733075 -Ecuador,ECU,2010,153.71951746908422 -Ecuador,ECU,2011,162.9775950860208 -Ecuador,ECU,2012,172.30397808254557 -Ecuador,ECU,2013,178.173456906333 -Ecuador,ECU,2014,187.3367175089564 -Ecuador,ECU,2015,186.90956427804701 -Ecuador,ECU,2016,186.39292702638124 -Ecuador,ECU,2017,193.76648721487572 -Ecuador,ECU,2018,204.99919173270902 -Egypt,EGY,1965,91.11126722222227 -Egypt,EGY,1966,95.86880388888895 -Egypt,EGY,1967,81.94484611111109 -Egypt,EGY,1968,88.14109833333329 -Egypt,EGY,1969,72.07654888888894 -Egypt,EGY,1970,89.90578611111107 -Egypt,EGY,1971,92.34805252333334 -Egypt,EGY,1972,102.6102891266667 -Egypt,EGY,1973,96.89589294888889 -Egypt,EGY,1974,110.18552725666669 -Egypt,EGY,1975,122.0778356200004 -Egypt,EGY,1976,145.85794683333302 -Egypt,EGY,1977,158.0649004711107 -Egypt,EGY,1978,167.12235692222242 -Egypt,EGY,1979,182.95523598555505 -Egypt,EGY,1980,208.82948573333363 -Egypt,EGY,1981,237.77184412444439 -Egypt,EGY,1982,265.5845228966664 -Egypt,EGY,1983,288.4257367333337 -Egypt,EGY,1984,313.97868683333274 -Egypt,EGY,1985,325.87259017163706 -Egypt,EGY,1986,333.77051933801107 -Egypt,EGY,1987,349.67689958508737 -Egypt,EGY,1988,360.32816104520447 -Egypt,EGY,1989,380.61423021368466 -Egypt,EGY,1990,393.2307160620461 -Egypt,EGY,1991,398.34344488321597 -Egypt,EGY,1992,397.8378767419885 -Egypt,EGY,1993,402.0223320952048 -Egypt,EGY,1994,409.72445707292354 -Egypt,EGY,1995,434.16657097116996 -Egypt,EGY,1996,457.5357694649127 -Egypt,EGY,1997,476.6699774372516 -Egypt,EGY,1998,496.36834655619936 -Egypt,EGY,1999,531.414729310585 -Egypt,EGY,2000,563.3528366479532 -Egypt,EGY,2001,593.757336952748 -Egypt,EGY,2002,603.1571157119884 -Egypt,EGY,2003,639.9878109301173 -Egypt,EGY,2004,670.1930273062736 -Egypt,EGY,2005,703.5859343521901 -Egypt,EGY,2006,738.6924546550155 -Egypt,EGY,2007,782.3884893150693 -Egypt,EGY,2008,833.8446316785423 -Egypt,EGY,2009,867.1074905268323 -Egypt,EGY,2010,912.20127343712 -Egypt,EGY,2011,926.5947788247171 -Egypt,EGY,2012,974.05618923292 -Egypt,EGY,2013,967.1968604425679 -Egypt,EGY,2014,964.9701345722011 -Egypt,EGY,2015,991.8807551982165 -Egypt,EGY,2016,1045.9911631403218 -Egypt,EGY,2017,1077.1767312649874 -Egypt,EGY,2018,1099.4382378338594 -Estonia,EST,1985,118.45261205190006 -Estonia,EST,1986,117.882853020886 -Estonia,EST,1987,119.6663498067 -Estonia,EST,1988,117.63286485314885 -Estonia,EST,1989,121.22505717199202 -Estonia,EST,1990,120.41714569817276 -Estonia,EST,1991,108.65108604159956 -Estonia,EST,1992,78.74392711999995 -Estonia,EST,1993,62.46318975000001 -Estonia,EST,1994,63.097360692222225 -Estonia,EST,1995,58.900524783684254 -Estonia,EST,1996,62.101068631403585 -Estonia,EST,1997,61.41402712491227 -Estonia,EST,1998,57.46405559736836 -Estonia,EST,1999,52.69280610426898 -Estonia,EST,2000,54.21076392883036 -Estonia,EST,2001,56.043659753274895 -Estonia,EST,2002,55.410277938011724 -Estonia,EST,2003,60.52196355163745 -Estonia,EST,2004,63.28019559754391 -Estonia,EST,2005,62.29225575959064 -Estonia,EST,2006,61.340332093391794 -Estonia,EST,2007,69.5468526298246 -Estonia,EST,2008,66.4607877283041 -Estonia,EST,2009,58.98453185067113 -Estonia,EST,2010,71.42736923754272 -Estonia,EST,2011,73.58394983575057 -Estonia,EST,2012,74.32398537396648 -Estonia,EST,2013,76.92463275645743 -Estonia,EST,2014,75.1298461884665 -Estonia,EST,2015,70.0848846323606 -Estonia,EST,2016,70.6543875775189 -Estonia,EST,2017,77.08570195450467 -Estonia,EST,2018,80.3017131644243 -Europe,,1965,12310.926523398723 -Europe,,1966,12679.435420607215 -Europe,,1967,13056.049452039284 -Europe,,1968,13928.488438425597 -Europe,,1969,14947.71854336528 -Europe,,1970,15917.563472453103 -Europe,,1971,16351.063356974331 -Europe,,1972,17123.215621941235 -Europe,,1973,18111.628430656714 -Europe,,1974,17849.298108672312 -Europe,,1975,17661.574689108285 -Europe,,1976,18677.720726135532 -Europe,,1977,18975.435827072724 -Europe,,1978,19701.52934955674 -Europe,,1979,20434.855928299592 -Europe,,1980,19924.44165938226 -Europe,,1981,19393.02883508112 -Europe,,1982,19021.73446693542 -Europe,,1983,19184.762071688016 -Europe,,1984,19659.604984303864 -Europe,,1985,23420.808997235577 -Europe,,1986,23819.962811568766 -Europe,,1987,24297.838380413446 -Europe,,1988,24541.71937515404 -Europe,,1989,24464.72972962895 -Europe,,1990,24682.728669336902 -Europe,,1991,24277.591027880073 -Europe,,1992,23582.605673888083 -Europe,,1993,23102.18164691593 -Europe,,1994,22639.22119684086 -Europe,,1995,23039.763235195795 -Europe,,1996,23719.761556241185 -Europe,,1997,23661.49460013229 -Europe,,1998,23867.633678955634 -Europe,,1999,23776.78602204416 -Europe,,2000,24051.76092898297 -Europe,,2001,24382.721362478533 -Europe,,2002,24300.0166836734 -Europe,,2003,24776.081126499885 -Europe,,2004,25172.203789606017 -Europe,,2005,25300.780128405717 -Europe,,2006,25552.681922767504 -Europe,,2007,25324.400832588224 -Europe,,2008,25275.06551869153 -Europe,,2009,23823.35912415268 -Europe,,2010,24709.308908306783 -Europe,,2011,24163.74879067206 -Europe,,2012,24101.24489485302 -Europe,,2013,23895.956427342622 -Europe,,2014,23007.946491736486 -Europe,,2015,23222.441856001795 -Europe,,2016,23579.27775129843 -Europe,,2017,23841.770900567517 -Europe,,2018,23849.822682945185 -Europe (other),,1965,182.2286398314534 -Europe (other),,1966,191.66197307434516 -Europe (other),,1967,194.23408895448316 -Europe (other),,1968,213.73132268534872 -Europe (other),,1969,227.71355633345908 -Europe (other),,1970,251.48631320475184 -Europe (other),,1971,294.2179078033437 -Europe (other),,1972,306.35587152693677 -Europe (other),,1973,321.7405136568661 -Europe (other),,1974,356.1483655967875 -Europe (other),,1975,359.3204525074744 -Europe (other),,1976,382.8373652806917 -Europe (other),,1977,410.1432724717724 -Europe (other),,1978,446.52397522582686 -Europe (other),,1979,484.2290446770118 -Europe (other),,1980,469.70515265708883 -Europe (other),,1981,468.6458588895209 -Europe (other),,1982,487.9858741844575 -Europe (other),,1983,526.5349639674469 -Europe (other),,1984,549.5804452646016 -Europe (other),,1985,701.5006583272587 -Europe (other),,1986,735.5733814787324 -Europe (other),,1987,744.5572634457029 -Europe (other),,1988,767.6805558309411 -Europe (other),,1989,745.6056660658007 -Europe (other),,1990,527.2498400623746 -Europe (other),,1991,463.6087731986804 -Europe (other),,1992,405.4784259664222 -Europe (other),,1993,349.6283484690639 -Europe (other),,1994,297.87587006920376 -Europe (other),,1995,305.5412807375734 -Europe (other),,1996,333.4324180780786 -Europe (other),,1997,359.6899726038086 -Europe (other),,1998,365.294631237473 -Europe (other),,1999,331.47502692736447 -Europe (other),,2000,356.6869438919862 -Europe (other),,2001,373.1481546937461 -Europe (other),,2002,391.75599478777406 -Europe (other),,2003,414.6158597256562 -Europe (other),,2004,450.6281359895972 -Europe (other),,2005,444.9084799906067 -Europe (other),,2006,456.8086442553458 -Europe (other),,2007,444.19645672737767 -Europe (other),,2008,455.1751376433717 -Europe (other),,2009,462.3616541276145 -Europe (other),,2010,494.4369430306088 -Europe (other),,2011,485.83729918197344 -Europe (other),,2012,455.93664919001304 -Europe (other),,2013,482.85265569166404 -Europe (other),,2014,443.8097223738383 -Europe (other),,2015,473.6014052423464 -Europe (other),,2016,503.6877515485082 -Europe (other),,2017,497.2654703152644 -Europe (other),,2018,520.3034705406511 -Finland,FIN,1965,112.35986974982966 -Finland,FIN,1966,127.98711803879323 -Finland,FIN,1967,134.4678929355074 -Finland,FIN,1968,146.61766337906366 -Finland,FIN,1969,162.07461579587425 -Finland,FIN,1970,178.60923640882442 -Finland,FIN,1971,183.1057346863366 -Finland,FIN,1972,193.332962563795 -Finland,FIN,1973,213.33576751993616 -Finland,FIN,1974,203.80562322434798 -Finland,FIN,1975,207.27833771398133 -Finland,FIN,1976,220.95439783226988 -Finland,FIN,1977,232.43390346631148 -Finland,FIN,1978,242.06505556290034 -Finland,FIN,1979,260.93017934658235 -Finland,FIN,1980,259.90184982435113 -Finland,FIN,1981,259.7879310215035 -Finland,FIN,1982,256.2035787911664 -Finland,FIN,1983,253.3233220247485 -Finland,FIN,1984,264.1708286814124 -Finland,FIN,1985,277.8298043609228 -Finland,FIN,1986,281.09330274273185 -Finland,FIN,1987,295.7927926086346 -Finland,FIN,1988,293.96145894596964 -Finland,FIN,1989,295.4693275304989 -Finland,FIN,1990,314.7105303251643 -Finland,FIN,1991,320.8562093619579 -Finland,FIN,1992,318.6555047016509 -Finland,FIN,1993,322.5850280809632 -Finland,FIN,1994,339.7037186778668 -Finland,FIN,1995,323.42047461303355 -Finland,FIN,1996,339.4754721744191 -Finland,FIN,1997,342.3289999055009 -Finland,FIN,1998,353.5948596673297 -Finland,FIN,1999,347.2573492377914 -Finland,FIN,2000,349.4859944843581 -Finland,FIN,2001,358.531288828359 -Finland,FIN,2002,363.1956856757376 -Finland,FIN,2003,390.6389047575383 -Finland,FIN,2004,387.2165385165774 -Finland,FIN,2005,352.5421323368635 -Finland,FIN,2006,378.52277645007325 -Finland,FIN,2007,378.24284050567155 -Finland,FIN,2008,365.6907845924764 -Finland,FIN,2009,340.2016745252233 -Finland,FIN,2010,370.68513287929073 -Finland,FIN,2011,345.5164320092009 -Finland,FIN,2012,335.52370477931845 -Finland,FIN,2013,338.5862468264482 -Finland,FIN,2014,327.08647772175226 -Finland,FIN,2015,325.50409934609166 -Finland,FIN,2016,334.3839942967085 -Finland,FIN,2017,326.6696024838126 -Finland,FIN,2018,340.36972921216596 -France,FRA,1965,1294.6347369990551 -France,FRA,1966,1324.3723245635736 -France,FRA,1967,1413.8662358310557 -France,FRA,1968,1490.1925479221813 -France,FRA,1969,1645.2991146294894 -France,FRA,1970,1782.8278888883997 -France,FRA,1971,1856.1922684846722 -France,FRA,1972,1984.3460757418682 -France,FRA,1973,2156.5179509981194 -France,FRA,1974,2114.788694600764 -France,FRA,1975,1989.1130378169105 -France,FRA,1976,2123.198350435972 -France,FRA,1977,2142.209298062922 -France,FRA,1978,2239.3802736882612 -France,FRA,1979,2304.9669568961244 -France,FRA,1980,2271.117554703823 -France,FRA,1981,2238.8338550638537 -France,FRA,1982,2154.275317457893 -France,FRA,1983,2202.0911961666047 -France,FRA,1984,2269.545007654388 -France,FRA,1985,2340.7251822490043 -France,FRA,1986,2394.1633839385363 -France,FRA,1987,2434.919462969293 -France,FRA,1988,2464.4530787688273 -France,FRA,1989,2499.6564724620976 -France,FRA,1990,2574.571417349114 -France,FRA,1991,2737.0048985485305 -France,FRA,1992,2755.5492489871363 -France,FRA,1993,2751.523814801162 -France,FRA,1994,2713.5180513450214 -France,FRA,1995,2778.6274105263133 -France,FRA,1996,2883.9965209795246 -France,FRA,1997,2844.616888274843 -France,FRA,1998,2914.1972661695863 -France,FRA,1999,2962.679747564327 -France,FRA,2000,2999.4921739492893 -France,FRA,2001,3042.7607876555476 -France,FRA,2002,3020.7443428697607 -France,FRA,2003,3061.273128044847 -France,FRA,2004,3094.870363517366 -France,FRA,2005,3087.3479857629227 -France,FRA,2006,3070.169683571168 -France,FRA,2007,3026.2913609961342 -France,FRA,2008,3045.5445841637406 -France,FRA,2009,2884.2920754314027 -France,FRA,2010,2977.841691510346 -France,FRA,2011,2871.1708924267555 -France,FRA,2012,2875.737065464869 -France,FRA,2013,2908.9359688265695 -France,FRA,2014,2795.3349209398684 -France,FRA,2015,2813.065865423403 -France,FRA,2016,2772.5818137222655 -France,FRA,2017,2761.865759496654 -France,FRA,2018,2821.394758583132 -Germany,DEU,1965,2964.0462269208338 -Germany,DEU,1966,2971.439111753024 -Germany,DEU,1967,2964.5140342005598 -Germany,DEU,1968,3165.182550275998 -Germany,DEU,1969,3415.332465550675 -Germany,DEU,1970,3603.4528101255214 -Germany,DEU,1971,3637.3426119800233 -Germany,DEU,1972,3763.3979988416636 -Germany,DEU,1973,3979.311668857911 -Germany,DEU,1974,3908.7102027681376 -Germany,DEU,1975,3753.428851910217 -Germany,DEU,1976,4005.8727397825564 -Germany,DEU,1977,3992.297829627895 -Germany,DEU,1978,4136.446879278162 -Germany,DEU,1979,4365.42115181131 -Germany,DEU,1980,4220.507259623035 -Germany,DEU,1981,4086.2751105474354 -Germany,DEU,1982,3939.770237676304 -Germany,DEU,1983,3995.5096591465363 -Germany,DEU,1984,4138.628279218882 -Germany,DEU,1985,4255.2516178891365 -Germany,DEU,1986,4220.918720780843 -Germany,DEU,1987,4254.620915923713 -Germany,DEU,1988,4266.091794003178 -Germany,DEU,1989,4220.061693543714 -Germany,DEU,1990,4154.76736222222 -Germany,DEU,1991,4054.1447974853722 -Germany,DEU,1992,3969.608689663744 -Germany,DEU,1993,3952.552179725149 -Germany,DEU,1994,3915.0730044152 -Germany,DEU,1995,3934.371872792395 -Germany,DEU,1996,4064.5703177193 -Germany,DEU,1997,4009.8013056286577 -Germany,DEU,1998,3978.824870652051 -Germany,DEU,1999,3920.3223593450275 -Germany,DEU,2000,3944.2012513333275 -Germany,DEU,2001,4018.138146461989 -Germany,DEU,2002,3968.630186359649 -Germany,DEU,2003,3968.8915731286493 -Germany,DEU,2004,3968.3874872953193 -Germany,DEU,2005,3926.0493689006094 -Germany,DEU,2006,4028.728900531701 -Germany,DEU,2007,3860.4339098884175 -Germany,DEU,2008,3902.2476411293105 -Germany,DEU,2009,3664.2119963078376 -Germany,DEU,2010,3813.225907149119 -Germany,DEU,2011,3676.5745326608144 -Germany,DEU,2012,3727.1254038304082 -Germany,DEU,2013,3836.129989473676 -Germany,DEU,2014,3679.803671149125 -Germany,DEU,2015,3750.7497293918123 -Germany,DEU,2016,3815.2914241491167 -Germany,DEU,2017,3883.3049521123157 -Germany,DEU,2018,3766.8311497316217 -Greece,GRC,1965,78.9640777777778 -Greece,GRC,1966,86.5121144444445 -Greece,GRC,1967,95.26906222222219 -Greece,GRC,1968,99.04735527777777 -Greece,GRC,1969,104.58818527777777 -Greece,GRC,1970,116.25548444444438 -Greece,GRC,1971,138.53634999999983 -Greece,GRC,1972,155.4043480555553 -Greece,GRC,1973,178.8381483333333 -Greece,GRC,1974,173.8710974999996 -Greece,GRC,1975,198.1928561111106 -Greece,GRC,1976,218.9837658333331 -Greece,GRC,1977,227.11245694444466 -Greece,GRC,1978,231.0580050000005 -Greece,GRC,1979,202.889108055555 -Greece,GRC,1980,200.97123916666652 -Greece,GRC,1981,195.24712333333284 -Greece,GRC,1982,197.87591666666714 -Greece,GRC,1983,199.53169666666673 -Greece,GRC,1984,208.19933472222186 -Greece,GRC,1985,219.98960249999988 -Greece,GRC,1986,220.33241991228113 -Greece,GRC,1987,241.1790432748541 -Greece,GRC,1988,254.83344926900642 -Greece,GRC,1989,276.4649113011692 -Greece,GRC,1990,291.14980093584165 -Greece,GRC,1991,293.230824346667 -Greece,GRC,1992,297.74334138960086 -Greece,GRC,1993,302.3907476705698 -Greece,GRC,1994,307.6347258299176 -Greece,GRC,1995,318.6034486952433 -Greece,GRC,1996,327.15289027077483 -Greece,GRC,1997,336.2197178725517 -Greece,GRC,1998,357.2611808665827 -Greece,GRC,1999,356.5266285898658 -Greece,GRC,2000,376.1103003613775 -Greece,GRC,2001,379.9882162431806 -Greece,GRC,2002,381.53862868975364 -Greece,GRC,2003,400.9064455150813 -Greece,GRC,2004,401.6523403420689 -Greece,GRC,2005,403.98661397649704 -Greece,GRC,2006,417.624884053015 -Greece,GRC,2007,425.91227928806376 -Greece,GRC,2008,410.8502856629146 -Greece,GRC,2009,397.5521689282861 -Greece,GRC,2010,378.53866222209996 -Greece,GRC,2011,368.94335332854394 -Greece,GRC,2012,349.26905639175226 -Greece,GRC,2013,331.15888791485537 -Greece,GRC,2014,311.8326513983421 -Greece,GRC,2015,314.36523148295953 -Greece,GRC,2016,309.4887127161593 -Greece,GRC,2017,326.0371316976013 -Greece,GRC,2018,329.4428594356359 -Hong Kong,HKG,1965,26.302011922550054 -Hong Kong,HKG,1966,28.5258219887778 -Hong Kong,HKG,1967,33.69280394221747 -Hong Kong,HKG,1968,36.42808939303167 -Hong Kong,HKG,1969,42.799939781776075 -Hong Kong,HKG,1970,45.981675623598385 -Hong Kong,HKG,1971,48.559657500000014 -Hong Kong,HKG,1972,55.15408916666667 -Hong Kong,HKG,1973,57.202078611111084 -Hong Kong,HKG,1974,58.557523055555606 -Hong Kong,HKG,1975,55.12709333333327 -Hong Kong,HKG,1976,65.09097388888885 -Hong Kong,HKG,1977,70.28380055555562 -Hong Kong,HKG,1978,73.0168536111111 -Hong Kong,HKG,1979,74.76295916666665 -Hong Kong,HKG,1980,76.39582444444447 -Hong Kong,HKG,1981,81.40918861111118 -Hong Kong,HKG,1982,89.35029888888889 -Hong Kong,HKG,1983,94.74299000000003 -Hong Kong,HKG,1984,97.06277305555562 -Hong Kong,HKG,1985,100.76824777777775 -Hong Kong,HKG,1986,105.59091638888884 -Hong Kong,HKG,1987,116.01950027777772 -Hong Kong,HKG,1988,133.64908166666652 -Hong Kong,HKG,1989,142.85945777777727 -Hong Kong,HKG,1990,139.35774305555543 -Hong Kong,HKG,1991,144.38941472222257 -Hong Kong,HKG,1992,169.92891805555556 -Hong Kong,HKG,1993,185.502305 -Hong Kong,HKG,1994,168.09289527777733 -Hong Kong,HKG,1995,180.6806400277779 -Hong Kong,HKG,1996,180.59102169444498 -Hong Kong,HKG,1997,182.69311075000047 -Hong Kong,HKG,1998,186.23376619444434 -Hong Kong,HKG,1999,188.6217544999999 -Hong Kong,HKG,2000,197.4753193583333 -Hong Kong,HKG,2001,249.420225108333 -Hong Kong,HKG,2002,243.4325278027775 -Hong Kong,HKG,2003,251.40544247499952 -Hong Kong,HKG,2004,281.5269350833327 -Hong Kong,HKG,2005,270.0904768083329 -Hong Kong,HKG,2006,285.75232543295834 -Hong Kong,HKG,2007,304.014291805309 -Hong Kong,HKG,2008,282.853142919626 -Hong Kong,HKG,2009,308.85816153251193 -Hong Kong,HKG,2010,321.29604806015215 -Hong Kong,HKG,2011,329.4264489372359 -Hong Kong,HKG,2012,316.59260712511644 -Hong Kong,HKG,2013,325.19380736902355 -Hong Kong,HKG,2014,317.7111633650294 -Hong Kong,HKG,2015,326.57995390332337 -Hong Kong,HKG,2016,335.1557905777956 -Hong Kong,HKG,2017,359.14217457954226 -Hong Kong,HKG,2018,361.395227782055 -Hungary,HUN,1965,184.9397216666663 -Hungary,HUN,1966,187.44627388888838 -Hungary,HUN,1967,178.85929444444483 -Hungary,HUN,1968,185.58694444444424 -Hungary,HUN,1969,198.7257616666662 -Hungary,HUN,1970,214.12369888888838 -Hungary,HUN,1971,221.0573702777779 -Hungary,HUN,1972,228.23184361111095 -Hungary,HUN,1973,247.13962499999977 -Hungary,HUN,1974,254.73125694444494 -Hungary,HUN,1975,269.66724916666635 -Hungary,HUN,1976,288.09713972222215 -Hungary,HUN,1977,302.93448527777747 -Hungary,HUN,1978,324.00176888888893 -Hungary,HUN,1979,320.8121541666662 -Hungary,HUN,1980,321.80998277777724 -Hungary,HUN,1981,318.5145597222216 -Hungary,HUN,1982,319.9655077777775 -Hungary,HUN,1983,313.91279111111066 -Hungary,HUN,1984,322.20481444444397 -Hungary,HUN,1985,331.9924077777772 -Hungary,HUN,1986,330.2371400000004 -Hungary,HUN,1987,344.34679555555545 -Hungary,HUN,1988,335.84983277777724 -Hungary,HUN,1989,327.0170686111108 -Hungary,HUN,1990,323.37120526660766 -Hungary,HUN,1991,302.16611561543823 -Hungary,HUN,1992,284.73998709187174 -Hungary,HUN,1993,280.6985632309942 -Hungary,HUN,1994,284.38663298362536 -Hungary,HUN,1995,286.2400600452632 -Hungary,HUN,1996,291.80553854537976 -Hungary,HUN,1997,283.5187898959059 -Hungary,HUN,1998,286.43456161941447 -Hungary,HUN,1999,286.9612855342691 -Hungary,HUN,2000,277.7362305678946 -Hungary,HUN,2001,286.00482813000025 -Hungary,HUN,2002,282.054533797602 -Hungary,HUN,2003,284.5227841581286 -Hungary,HUN,2004,286.6557767115208 -Hungary,HUN,2005,306.36494054836226 -Hungary,HUN,2006,302.1679149256139 -Hungary,HUN,2007,298.2320028339764 -Hungary,HUN,2008,294.43051356216404 -Hungary,HUN,2009,270.35285001695877 -Hungary,HUN,2010,276.3992685156722 -Hungary,HUN,2011,274.5403696738446 -Hungary,HUN,2012,255.1789360322402 -Hungary,HUN,2013,242.82579590216324 -Hungary,HUN,2014,243.7904713357193 -Hungary,HUN,2015,256.2667001732181 -Hungary,HUN,2016,260.8361411095762 -Hungary,HUN,2017,273.6937798527537 -Hungary,HUN,2018,275.8502153911482 -Iceland,ISL,1965,7.374539304912277 -Iceland,ISL,1966,7.748978031929811 -Iceland,ISL,1967,7.663248150526307 -Iceland,ISL,1968,8.110921794502916 -Iceland,ISL,1969,8.041886698947353 -Iceland,ISL,1970,9.641622135789442 -Iceland,ISL,1971,10.493944259064307 -Iceland,ISL,1972,11.402406697660787 -Iceland,ISL,1973,13.747893636958993 -Iceland,ISL,1974,13.371825716140304 -Iceland,ISL,1975,12.815609049707593 -Iceland,ISL,1976,13.228757149122714 -Iceland,ISL,1977,13.989382982456126 -Iceland,ISL,1978,14.612109356725094 -Iceland,ISL,1979,15.204856213450205 -Iceland,ISL,1980,15.358885847953125 -Iceland,ISL,1981,15.651951084795291 -Iceland,ISL,1982,15.981963029239713 -Iceland,ISL,1983,16.481387830409307 -Iceland,ISL,1984,17.353916707602238 -Iceland,ISL,1985,17.182899739766007 -Iceland,ISL,1986,17.95554056432746 -Iceland,ISL,1987,18.53452525730984 -Iceland,ISL,1988,19.54118085672506 -Iceland,ISL,1989,20.25406666374256 -Iceland,ISL,1990,20.27816602923965 -Iceland,ISL,1991,19.781031786549633 -Iceland,ISL,1992,20.486188374268973 -Iceland,ISL,1993,21.281386374268962 -Iceland,ISL,1994,21.519420850877193 -Iceland,ISL,1995,22.20074842397652 -Iceland,ISL,1996,23.547592398245605 -Iceland,ISL,1997,24.633887792397612 -Iceland,ISL,1998,26.608290419005804 -Iceland,ISL,1999,29.100395625730894 -Iceland,ISL,2000,30.890718242690003 -Iceland,ISL,2001,31.315190324561296 -Iceland,ISL,2002,32.66679208705197 -Iceland,ISL,2003,32.88182697098102 -Iceland,ISL,2004,33.69511368105808 -Iceland,ISL,2005,33.9258159336256 -Iceland,ISL,2006,37.737100801473645 -Iceland,ISL,2007,43.07862799427506 -Iceland,ISL,2008,53.97260647228356 -Iceland,ISL,2009,54.16082449999987 -Iceland,ISL,2010,54.43586686461968 -Iceland,ISL,2011,54.70351321052618 -Iceland,ISL,2012,55.518197054678176 -Iceland,ISL,2013,57.57722617719283 -Iceland,ISL,2014,57.74787645321618 -Iceland,ISL,2015,60.63060613070159 -Iceland,ISL,2016,61.17937998918113 -Iceland,ISL,2017,63.679200994028776 -Iceland,ISL,2018,65.33794538511181 -India,IND,1965,613.2143136265637 -India,IND,1966,631.9005829346329 -India,IND,1967,651.1450994637607 -India,IND,1968,695.5736826023951 -India,IND,1969,770.9476209357296 -India,IND,1970,753.567080186645 -India,IND,1971,783.3225039192332 -India,IND,1972,825.1240803706823 -India,IND,1973,841.6926387040157 -India,IND,1974,892.8126319705116 -India,IND,1975,958.6612792022244 -India,IND,1976,1005.403199477863 -India,IND,1977,1063.205148024275 -India,IND,1978,1102.2269310056415 -India,IND,1979,1164.84864086461 -India,IND,1980,1200.0535605963323 -India,IND,1981,1329.5504926995607 -India,IND,1982,1319.3800327777733 -India,IND,1983,1388.7829559254922 -India,IND,1984,1482.6178850345855 -India,IND,1985,1566.4738757987802 -India,IND,1986,1677.4502887769765 -India,IND,1987,1785.8249116313843 -India,IND,1988,1943.2778172394192 -India,IND,1989,2121.9642413942524 -India,IND,1990,2277.225653104912 -India,IND,1991,2401.1006436241228 -India,IND,1992,2526.1990681589514 -India,IND,1993,2589.3613779690454 -India,IND,1994,2726.528284822615 -India,IND,1995,2932.8536002733804 -India,IND,1996,3053.1633945306503 -India,IND,1997,3223.1801585751846 -India,IND,1998,3415.948237002321 -India,IND,1999,3508.587813982718 -India,IND,2000,3692.9536483832303 -India,IND,2001,3713.9983535456668 -India,IND,2002,3887.975859394072 -India,IND,2003,4039.445342740753 -India,IND,2004,4277.1378390098935 -India,IND,2005,4595.238906122796 -India,IND,2006,4831.539013571356 -India,IND,2007,5255.521398580334 -India,IND,2008,5557.569026965163 -India,IND,2009,5981.098967633153 -India,IND,2010,6270.344194978145 -India,IND,2011,6645.068668136439 -India,IND,2012,6990.1373176543375 -India,IND,2013,7263.192453171964 -India,IND,2014,7763.241664316582 -India,IND,2015,8022.116727920627 -India,IND,2016,8364.9046616827 -India,IND,2017,8723.521461901299 -India,IND,2018,9410.449460885711 -Indonesia,IDN,1965,83.92208222222226 -Indonesia,IDN,1966,83.12381500000006 -Indonesia,IDN,1967,82.03006888888885 -Indonesia,IDN,1968,87.35389527777781 -Indonesia,IDN,1969,98.66580138888894 -Indonesia,IDN,1970,105.59393666666672 -Indonesia,IDN,1971,101.4533355555556 -Indonesia,IDN,1972,107.66580888888886 -Indonesia,IDN,1973,121.36752638888939 -Indonesia,IDN,1974,130.04348416666684 -Indonesia,IDN,1975,159.33612500000027 -Indonesia,IDN,1976,167.62192833333393 -Indonesia,IDN,1977,221.5112208333339 -Indonesia,IDN,1978,245.5821713888894 -Indonesia,IDN,1979,280.300625 -Indonesia,IDN,1980,299.8280483333335 -Indonesia,IDN,1981,325.77949666666717 -Indonesia,IDN,1982,332.11030277777786 -Indonesia,IDN,1983,352.076859722222 -Indonesia,IDN,1984,381.3421619444445 -Indonesia,IDN,1985,405.3520463888887 -Indonesia,IDN,1986,449.21103527777836 -Indonesia,IDN,1987,474.95644638888876 -Indonesia,IDN,1988,501.23128527777783 -Indonesia,IDN,1989,554.4147008333338 -Indonesia,IDN,1990,610.63116149062 -Indonesia,IDN,1991,662.3265350372391 -Indonesia,IDN,1992,726.7549579471727 -Indonesia,IDN,1993,768.0884111926802 -Indonesia,IDN,1994,821.2877566732819 -Indonesia,IDN,1995,874.8867337405981 -Indonesia,IDN,1996,933.1756689060377 -Indonesia,IDN,1997,1013.8909304854878 -Indonesia,IDN,1998,995.2767279329537 -Indonesia,IDN,1999,1086.2940725529913 -Indonesia,IDN,2000,1181.54639458587 -Indonesia,IDN,2001,1250.6584409085087 -Indonesia,IDN,2002,1306.8277610201517 -Indonesia,IDN,2003,1407.5104226132771 -Indonesia,IDN,2004,1400.6949593978425 -Indonesia,IDN,2005,1435.578113080634 -Indonesia,IDN,2006,1456.37822378006 -Indonesia,IDN,2007,1563.2347976793085 -Indonesia,IDN,2008,1543.7952987512629 -Indonesia,IDN,2009,1599.8001667664607 -Indonesia,IDN,2010,1756.922931503938 -Indonesia,IDN,2011,1914.6366122636805 -Indonesia,IDN,2012,2016.9222256461783 -Indonesia,IDN,2013,2072.136524797509 -Indonesia,IDN,2014,1944.4667287744933 -Indonesia,IDN,2015,1926.992226623864 -Indonesia,IDN,2016,1979.00131516515 -Indonesia,IDN,2017,2056.9560598631724 -Indonesia,IDN,2018,2157.7135639898665 -Iran,IRN,1965,98.93851704304113 -Iran,IRN,1966,107.70246851882247 -Iran,IRN,1967,118.3322771240147 -Iran,IRN,1968,129.9456964780402 -Iran,IRN,1969,142.46213595390594 -Iran,IRN,1970,167.75677721649944 -Iran,IRN,1971,183.60362635401847 -Iran,IRN,1972,207.7915750337637 -Iran,IRN,1973,248.65441451471654 -Iran,IRN,1974,281.40811132718835 -Iran,IRN,1975,327.67009933543795 -Iran,IRN,1976,368.3132874222552 -Iran,IRN,1977,417.47901864898137 -Iran,IRN,1978,407.6032597811487 -Iran,IRN,1979,440.06887859664226 -Iran,IRN,1980,406.8961618370235 -Iran,IRN,1981,407.6190239088508 -Iran,IRN,1982,460.05566210501036 -Iran,IRN,1983,546.4655312842448 -Iran,IRN,1984,590.6608926051351 -Iran,IRN,1985,644.7124579065908 -Iran,IRN,1986,603.3685702151561 -Iran,IRN,1987,647.0076417207977 -Iran,IRN,1988,683.4911090004239 -Iran,IRN,1989,748.2581603895701 -Iran,IRN,1990,842.0969823607139 -Iran,IRN,1991,914.4932291205388 -Iran,IRN,1992,1003.0892140328647 -Iran,IRN,1993,925.3996441643937 -Iran,IRN,1994,1040.074730546294 -Iran,IRN,1995,1101.6728369301063 -Iran,IRN,1996,1191.231160753085 -Iran,IRN,1997,1232.3819848777646 -Iran,IRN,1998,1274.2081132018006 -Iran,IRN,1999,1360.3793117326848 -Iran,IRN,2000,1429.5233290701867 -Iran,IRN,2001,1508.2740112058734 -Iran,IRN,2002,1639.5206758714562 -Iran,IRN,2003,1675.2875311685748 -Iran,IRN,2004,1837.0027840311448 -Iran,IRN,2005,1970.267326839984 -Iran,IRN,2006,2153.066614856045 -Iran,IRN,2007,2304.8928612504596 -Iran,IRN,2008,2393.023767458324 -Iran,IRN,2009,2473.720581911133 -Iran,IRN,2010,2481.984431974258 -Iran,IRN,2011,2616.1183868275666 -Iran,IRN,2012,2630.9302038733294 -Iran,IRN,2013,2767.2041865574865 -Iran,IRN,2014,2895.3333042144586 -Iran,IRN,2015,2898.5200627414933 -Iran,IRN,2016,2990.711950647721 -Iran,IRN,2017,3163.5334995877824 -Iran,IRN,2018,3322.9064854738817 -Iraq,IRQ,1965,20.34517113333432 -Iraq,IRQ,1966,22.705020996065283 -Iraq,IRQ,1967,22.949337985930992 -Iraq,IRQ,1968,24.532959075821033 -Iraq,IRQ,1969,28.784638021634233 -Iraq,IRQ,1970,36.49548554866888 -Iraq,IRQ,1971,40.00563536647956 -Iraq,IRQ,1972,47.42097939664713 -Iraq,IRQ,1973,46.27611055688886 -Iraq,IRQ,1974,45.612977404405505 -Iraq,IRQ,1975,50.13877045651464 -Iraq,IRQ,1976,64.0674312972944 -Iraq,IRQ,1977,66.03989719409746 -Iraq,IRQ,1978,63.54644796076286 -Iraq,IRQ,1979,79.71990607891304 -Iraq,IRQ,1980,94.956847643555 -Iraq,IRQ,1981,94.2673265199121 -Iraq,IRQ,1982,98.5015815439786 -Iraq,IRQ,1983,108.99430403746801 -Iraq,IRQ,1984,119.57040341806047 -Iraq,IRQ,1985,141.43276309250984 -Iraq,IRQ,1986,156.94185850679176 -Iraq,IRQ,1987,188.1774926503038 -Iraq,IRQ,1988,219.44467398738757 -Iraq,IRQ,1989,245.96413913568472 -Iraq,IRQ,1990,227.51957659787536 -Iraq,IRQ,1991,153.05734059298322 -Iraq,IRQ,1992,240.65412256807542 -Iraq,IRQ,1993,326.64970607359396 -Iraq,IRQ,1994,374.11741913895816 -Iraq,IRQ,1995,367.27865620874815 -Iraq,IRQ,1996,381.15159232533296 -Iraq,IRQ,1997,446.64780858655166 -Iraq,IRQ,1998,313.18928146316733 -Iraq,IRQ,1999,235.22164652763848 -Iraq,IRQ,2000,299.6873109849408 -Iraq,IRQ,2001,337.20549330273883 -Iraq,IRQ,2002,318.59640806820033 -Iraq,IRQ,2003,294.87355530468034 -Iraq,IRQ,2004,314.7748855204612 -Iraq,IRQ,2005,301.9090055363773 -Iraq,IRQ,2006,308.4766382395411 -Iraq,IRQ,2007,327.23124399757603 -Iraq,IRQ,2008,339.40914130488335 -Iraq,IRQ,2009,378.9432821021187 -Iraq,IRQ,2010,403.8416646590956 -Iraq,IRQ,2011,426.828899510442 -Iraq,IRQ,2012,453.94276600495317 -Iraq,IRQ,2013,489.01280535750675 -Iraq,IRQ,2014,467.835796418272 -Iraq,IRQ,2015,466.24405521150516 -Iraq,IRQ,2016,537.8685010593771 -Iraq,IRQ,2017,547.7119598472697 -Iraq,IRQ,2018,625.0964740479629 -Ireland,IRL,1965,67.35657020467835 -Ireland,IRL,1966,75.5301650438597 -Ireland,IRL,1967,81.90841426900585 -Ireland,IRL,1968,95.5824943128655 -Ireland,IRL,1969,95.9603681578947 -Ireland,IRL,1970,75.54264176900593 -Ireland,IRL,1971,78.58215580409355 -Ireland,IRL,1972,82.90348497076023 -Ireland,IRL,1973,87.16129530701754 -Ireland,IRL,1974,88.64314289473685 -Ireland,IRL,1975,82.97501461988307 -Ireland,IRL,1976,84.68422314327483 -Ireland,IRL,1977,90.22116684210523 -Ireland,IRL,1978,93.88465912280707 -Ireland,IRL,1979,103.51764229532166 -Ireland,IRL,1980,100.15193839181286 -Ireland,IRL,1981,97.71093891812875 -Ireland,IRL,1982,97.02648399122809 -Ireland,IRL,1983,95.62378985380117 -Ireland,IRL,1984,94.63376330409356 -Ireland,IRL,1985,99.26536394736841 -Ireland,IRL,1986,107.20378078947365 -Ireland,IRL,1987,108.49592247076018 -Ireland,IRL,1988,107.9151141812866 -Ireland,IRL,1989,111.2454102339181 -Ireland,IRL,1990,116.80488679746934 -Ireland,IRL,1991,121.00459344190187 -Ireland,IRL,1992,121.82738615224652 -Ireland,IRL,1993,124.46751507033512 -Ireland,IRL,1994,129.38869518432185 -Ireland,IRL,1995,131.98127775364046 -Ireland,IRL,1996,139.4662476745615 -Ireland,IRL,1997,145.62920017449682 -Ireland,IRL,1998,156.60219304621089 -Ireland,IRL,1999,165.68754890549718 -Ireland,IRL,2000,171.5233654593572 -Ireland,IRL,2001,182.7274825412862 -Ireland,IRL,2002,181.44129616865524 -Ireland,IRL,2003,176.68163707602352 -Ireland,IRL,2004,179.14558740247978 -Ireland,IRL,2005,186.9773748300113 -Ireland,IRL,2006,190.89543295839758 -Ireland,IRL,2007,196.89311416278724 -Ireland,IRL,2008,196.18559295807597 -Ireland,IRL,2009,179.23219939772625 -Ireland,IRL,2010,178.8926654165655 -Ireland,IRL,2011,168.8945439657829 -Ireland,IRL,2012,166.92028469239492 -Ireland,IRL,2013,163.89589248331413 -Ireland,IRL,2014,163.760282456543 -Ireland,IRL,2015,173.75147276034832 -Ireland,IRL,2016,181.14481115936957 -Ireland,IRL,2017,182.2882521130725 -Ireland,IRL,2018,187.22601432654068 -Israel,ISR,1965,46.47141230362245 -Israel,ISR,1966,48.658479633814125 -Israel,ISR,1967,50.79462031501603 -Israel,ISR,1968,53.22445291270539 -Israel,ISR,1969,55.488019611668555 -Israel,ISR,1970,57.670440311030696 -Israel,ISR,1971,60.008409170821 -Israel,ISR,1972,62.61393995615591 -Israel,ISR,1973,65.5135206092849 -Israel,ISR,1974,66.92459302358151 -Israel,ISR,1975,68.94644706643724 -Israel,ISR,1976,72.79051584923691 -Israel,ISR,1977,76.07279055377764 -Israel,ISR,1978,81.0816809148767 -Israel,ISR,1979,88.7297527783014 -Israel,ISR,1980,94.54403821214612 -Israel,ISR,1981,96.19610340539583 -Israel,ISR,1982,100.00993736807767 -Israel,ISR,1983,100.80486624897087 -Israel,ISR,1984,102.25437406013594 -Israel,ISR,1985,99.39835028989116 -Israel,ISR,1986,104.52813349187325 -Israel,ISR,1987,115.7174592395523 -Israel,ISR,1988,123.8661187622314 -Israel,ISR,1989,128.31971081561665 -Israel,ISR,1990,133.04656915858064 -Israel,ISR,1991,138.03668373131123 -Israel,ISR,1992,150.4070783607868 -Israel,ISR,1993,159.31721930687283 -Israel,ISR,1994,174.40630935374435 -Israel,ISR,1995,194.6197163708772 -Israel,ISR,1996,204.87073592514233 -Israel,ISR,1997,201.03129689977808 -Israel,ISR,1998,214.88902439047612 -Israel,ISR,1999,223.38610046719094 -Israel,ISR,2000,233.7002078872329 -Israel,ISR,2001,232.6157657643001 -Israel,ISR,2002,235.9641922353675 -Israel,ISR,2003,242.5420498360828 -Israel,ISR,2004,245.48430078825058 -Israel,ISR,2005,253.44871062741535 -Israel,ISR,2006,253.20702444173932 -Israel,ISR,2007,267.15869779061245 -Israel,ISR,2008,271.3894798259971 -Israel,ISR,2009,259.89264182380583 -Israel,ISR,2010,275.47884530787974 -Israel,ISR,2011,281.9719099095415 -Israel,ISR,2012,294.4670473265593 -Israel,ISR,2013,273.54993702753507 -Israel,ISR,2014,269.043084527525 -Israel,ISR,2015,283.8058254511087 -Israel,ISR,2016,288.77846023311884 -Israel,ISR,2017,297.52317680993997 -Israel,ISR,2018,298.2089169057165 -Italy,ITA,1965,913.4511737719291 -Italy,ITA,1966,992.5104167982456 -Italy,ITA,1967,1076.6618416959059 -Italy,ITA,1968,1164.611598567245 -Italy,ITA,1969,1255.2176345614075 -Italy,ITA,1970,1387.0834906871394 -Italy,ITA,1971,1461.5892305847924 -Italy,ITA,1972,1533.3262834795328 -Italy,ITA,1973,1601.433751505853 -Italy,ITA,1974,1600.4366531140358 -Italy,ITA,1975,1564.6369789619823 -Italy,ITA,1976,1654.1057277339141 -Italy,ITA,1977,1655.7816210964882 -Italy,ITA,1978,1698.557299707607 -Italy,ITA,1979,1757.7448993128653 -Italy,ITA,1980,1714.4066385818755 -Italy,ITA,1981,1678.6415163450242 -Italy,ITA,1982,1644.6319047660836 -Italy,ITA,1983,1610.1714373976588 -Italy,ITA,1984,1627.8446727192977 -Italy,ITA,1985,1622.1884039619888 -Italy,ITA,1986,1666.3691038157888 -Italy,ITA,1987,1718.6033951461998 -Italy,ITA,1988,1760.902320570177 -Italy,ITA,1989,1812.7562471398228 -Italy,ITA,1990,1821.1689209560416 -Italy,ITA,1991,1860.9283328816105 -Italy,ITA,1992,1859.6488376946925 -Italy,ITA,1993,1829.864373342266 -Italy,ITA,1994,1826.0441126883231 -Italy,ITA,1995,1902.4222835566397 -Italy,ITA,1996,1904.3340995933854 -Italy,ITA,1997,1931.1523035476575 -Italy,ITA,1998,1982.6521498046193 -Italy,ITA,1999,2044.689317133096 -Italy,ITA,2000,2073.8647400787754 -Italy,ITA,2001,2085.033863610406 -Italy,ITA,2002,2069.9036541099426 -Italy,ITA,2003,2138.853507632922 -Italy,ITA,2004,2178.511625550351 -Italy,ITA,2005,2181.9247044904732 -Italy,ITA,2006,2172.418808005553 -Italy,ITA,2007,2132.60316941782 -Italy,ITA,2008,2105.0271680380943 -Italy,ITA,2009,1967.2191199411493 -Italy,ITA,2010,2028.5332609154668 -Italy,ITA,2011,1982.8771343648193 -Italy,ITA,2012,1927.753084356411 -Italy,ITA,2013,1839.600423888473 -Italy,ITA,2014,1741.233859301769 -Italy,ITA,2015,1780.0218999759795 -Italy,ITA,2016,1798.6734670300216 -Italy,ITA,2017,1817.3046648964091 -Italy,ITA,2018,1796.6773401949704 -Japan,JPN,1965,1782.9521738362575 -Japan,JPN,1966,1988.576436462573 -Japan,JPN,1967,2284.370324388309 -Japan,JPN,1968,2533.5607962491235 -Japan,JPN,1969,2905.236462028421 -Japan,JPN,1970,3237.2527177228576 -Japan,JPN,1971,3439.573853434423 -Japan,JPN,1972,3614.8173843132295 -Japan,JPN,1973,4033.011744365189 -Japan,JPN,1974,4024.649244352909 -Japan,JPN,1975,3838.1030723374543 -Japan,JPN,1976,4001.171623955868 -Japan,JPN,1977,3993.692977875024 -Japan,JPN,1978,4139.35312501461 -Japan,JPN,1979,4300.553684097739 -Japan,JPN,1980,4174.106644035572 -Japan,JPN,1981,4106.955604365523 -Japan,JPN,1982,3968.8192956110606 -Japan,JPN,1983,4010.1551052503382 -Japan,JPN,1984,4337.335509785952 -Japan,JPN,1985,4385.401269030519 -Japan,JPN,1986,4390.533561747312 -Japan,JPN,1987,4474.844248536365 -Japan,JPN,1988,4761.360695271244 -Japan,JPN,1989,4923.228478793787 -Japan,JPN,1990,5132.065364981251 -Japan,JPN,1991,5258.028806106323 -Japan,JPN,1992,5323.094463096938 -Japan,JPN,1993,5393.549097802692 -Japan,JPN,1994,5605.010393060399 -Japan,JPN,1995,5821.64364685166 -Japan,JPN,1996,5931.983492821544 -Japan,JPN,1997,6037.062249194426 -Japan,JPN,1998,5902.524418345417 -Japan,JPN,1999,6007.425552221155 -Japan,JPN,2000,6074.773601296689 -Japan,JPN,2001,6022.423236172708 -Japan,JPN,2002,6010.258355534742 -Japan,JPN,2003,5998.041890282436 -Japan,JPN,2004,6072.871123038999 -Japan,JPN,2005,6174.323976074262 -Japan,JPN,2006,6163.023029452268 -Japan,JPN,2007,6108.776690561208 -Japan,JPN,2008,6021.5452956655545 -Japan,JPN,2009,5502.5327463388185 -Japan,JPN,2010,5869.744758917834 -Japan,JPN,2011,5572.214068236492 -Japan,JPN,2012,5532.129712904391 -Japan,JPN,2013,5492.926050216078 -Japan,JPN,2014,5353.511820335408 -Japan,JPN,2015,5272.180919605133 -Japan,JPN,2016,5242.730863621088 -Japan,JPN,2017,5294.092862799763 -Japan,JPN,2018,5281.663479999475 -Kazakhstan,KAZ,1985,794.3318231052455 -Kazakhstan,KAZ,1986,812.6945322196182 -Kazakhstan,KAZ,1987,830.7295840479923 -Kazakhstan,KAZ,1988,860.6823170803942 -Kazakhstan,KAZ,1989,847.10219806645 -Kazakhstan,KAZ,1990,857.0198271911748 -Kazakhstan,KAZ,1991,856.0813299645538 -Kazakhstan,KAZ,1992,845.1385635771114 -Kazakhstan,KAZ,1993,745.5762629011115 -Kazakhstan,KAZ,1994,663.3445742755362 -Kazakhstan,KAZ,1995,595.9758460723077 -Kazakhstan,KAZ,1996,518.7888032563226 -Kazakhstan,KAZ,1997,457.4066651496554 -Kazakhstan,KAZ,1998,430.9799418286409 -Kazakhstan,KAZ,1999,404.9710268078104 -Kazakhstan,KAZ,2000,364.29574229119294 -Kazakhstan,KAZ,2001,418.219268766082 -Kazakhstan,KAZ,2002,425.55186505847894 -Kazakhstan,KAZ,2003,466.2127763362569 -Kazakhstan,KAZ,2004,502.34867129254286 -Kazakhstan,KAZ,2005,528.0817076880251 -Kazakhstan,KAZ,2006,565.9482906388811 -Kazakhstan,KAZ,2007,628.8063604309623 -Kazakhstan,KAZ,2008,656.319337417026 -Kazakhstan,KAZ,2009,591.1484165807391 -Kazakhstan,KAZ,2010,638.6184779616833 -Kazakhstan,KAZ,2011,703.4606594465444 -Kazakhstan,KAZ,2012,729.146219408681 -Kazakhstan,KAZ,2013,738.2657908971116 -Kazakhstan,KAZ,2014,749.3304243450411 -Kazakhstan,KAZ,2015,740.2884524971539 -Kazakhstan,KAZ,2016,752.4589762915318 -Kazakhstan,KAZ,2017,786.1747977743038 -Kazakhstan,KAZ,2018,888.329395984152 -Kuwait,KWT,1965,81.0872982841355 -Kuwait,KWT,1966,84.94587082416932 -Kuwait,KWT,1967,86.62526694077138 -Kuwait,KWT,1968,91.24988199247362 -Kuwait,KWT,1969,93.62173290407637 -Kuwait,KWT,1970,76.31032076728007 -Kuwait,KWT,1971,76.28291416666664 -Kuwait,KWT,1972,84.83244361111116 -Kuwait,KWT,1973,84.64995749999997 -Kuwait,KWT,1974,81.28639666666672 -Kuwait,KWT,1975,73.05962833333335 -Kuwait,KWT,1976,86.19494499999999 -Kuwait,KWT,1977,87.90178055555556 -Kuwait,KWT,1978,96.23138972222223 -Kuwait,KWT,1979,116.79118750000004 -Kuwait,KWT,1980,88.10697722222223 -Kuwait,KWT,1981,111.58926305555553 -Kuwait,KWT,1982,111.61166027777779 -Kuwait,KWT,1983,123.18041666666696 -Kuwait,KWT,1984,131.30873611111144 -Kuwait,KWT,1985,128.0242863888887 -Kuwait,KWT,1986,145.22731444444463 -Kuwait,KWT,1987,135.21986916666702 -Kuwait,KWT,1988,153.5171572222218 -Kuwait,KWT,1989,166.9518716666666 -Kuwait,KWT,1990,79.17798166666671 -Kuwait,KWT,1991,45.13820194444441 -Kuwait,KWT,1992,82.31165527777779 -Kuwait,KWT,1993,111.00268527777781 -Kuwait,KWT,1994,136.41693999999939 -Kuwait,KWT,1995,170.3336475000005 -Kuwait,KWT,1996,168.6700119444449 -Kuwait,KWT,1997,175.6019116056715 -Kuwait,KWT,1998,213.34964207220608 -Kuwait,KWT,1999,220.01777271678216 -Kuwait,KWT,2000,229.62708702566968 -Kuwait,KWT,2001,233.2057480468234 -Kuwait,KWT,2002,237.5319346208763 -Kuwait,KWT,2003,279.2429693190114 -Kuwait,KWT,2004,312.83098122909365 -Kuwait,KWT,2005,346.34786823619277 -Kuwait,KWT,2006,327.26211138402664 -Kuwait,KWT,2007,317.93403591501516 -Kuwait,KWT,2008,345.8391059455183 -Kuwait,KWT,2009,361.26922201743065 -Kuwait,KWT,2010,389.28833305999734 -Kuwait,KWT,2011,390.62984913600116 -Kuwait,KWT,2012,434.25153927957115 -Kuwait,KWT,2013,450.1273726245749 -Kuwait,KWT,2014,412.2353396558784 -Kuwait,KWT,2015,447.3204230693582 -Kuwait,KWT,2016,452.7878023648353 -Kuwait,KWT,2017,450.02930380480603 -Kuwait,KWT,2018,453.0435978161302 -Latvia,LVA,1985,105.31935366207391 -Latvia,LVA,1986,97.79209236300935 -Latvia,LVA,1987,88.91916024657907 -Latvia,LVA,1988,84.08033746088239 -Latvia,LVA,1989,83.86337715968212 -Latvia,LVA,1990,85.0032158579024 -Latvia,LVA,1991,78.61382677093418 -Latvia,LVA,1992,56.21432350370018 -Latvia,LVA,1993,48.219676975870925 -Latvia,LVA,1994,46.54758559507013 -Latvia,LVA,1995,43.61248148657807 -Latvia,LVA,1996,40.8596243409421 -Latvia,LVA,1997,40.81070272710278 -Latvia,LVA,1998,44.0568889227563 -Latvia,LVA,1999,37.69645735223776 -Latvia,LVA,2000,36.83521235867312 -Latvia,LVA,2001,39.794358357543025 -Latvia,LVA,2002,40.30586892282412 -Latvia,LVA,2003,39.73478429477867 -Latvia,LVA,2004,44.78189402958785 -Latvia,LVA,2005,46.13263413714588 -Latvia,LVA,2006,43.94710958242544 -Latvia,LVA,2007,45.22189193591181 -Latvia,LVA,2008,45.64896922309694 -Latvia,LVA,2009,43.153765486922275 -Latvia,LVA,2010,49.13569215098145 -Latvia,LVA,2011,43.914209995856424 -Latvia,LVA,2012,45.357488419432116 -Latvia,LVA,2013,43.69898245181678 -Latvia,LVA,2014,40.21173424636828 -Latvia,LVA,2015,41.17893144790604 -Latvia,LVA,2016,43.909156938037384 -Latvia,LVA,2017,48.20708314834994 -Latvia,LVA,2018,42.795251540675366 -Lithuania,LTU,1985,178.6129505608561 -Lithuania,LTU,1986,164.56887559930217 -Lithuania,LTU,1987,172.65890151227012 -Lithuania,LTU,1988,180.55607718565957 -Lithuania,LTU,1989,195.0180862003358 -Lithuania,LTU,1990,198.24517126866982 -Lithuania,LTU,1991,209.81786584934494 -Lithuania,LTU,1992,127.61723340311997 -Lithuania,LTU,1993,99.58308291066409 -Lithuania,LTU,1994,86.50802911345657 -Lithuania,LTU,1995,96.03703207405815 -Lithuania,LTU,1996,104.31006459253693 -Lithuania,LTU,1997,96.37212455263145 -Lithuania,LTU,1998,103.23055341812854 -Lithuania,LTU,1999,86.11006715204668 -Lithuania,LTU,2000,76.19018672807013 -Lithuania,LTU,2001,89.01248016081863 -Lithuania,LTU,2002,94.88088030701742 -Lithuania,LTU,2003,99.67708145614019 -Lithuania,LTU,2004,100.85045691959053 -Lithuania,LTU,2005,92.18102060818703 -Lithuania,LTU,2006,88.63375375584786 -Lithuania,LTU,2007,97.19619466520456 -Lithuania,LTU,2008,96.5381891856724 -Lithuania,LTU,2009,88.72402379532156 -Lithuania,LTU,2010,65.53977200438597 -Lithuania,LTU,2011,68.04156812280705 -Lithuania,LTU,2012,68.33005530994149 -Lithuania,LTU,2013,63.045383694444396 -Lithuania,LTU,2014,60.82967606286544 -Lithuania,LTU,2015,63.55586201900583 -Lithuania,LTU,2016,64.72135048391809 -Lithuania,LTU,2017,68.38020304532168 -Lithuania,LTU,2018,67.9979407721522 -Luxembourg,LUX,1965,41.775936611111156 -Luxembourg,LUX,1966,40.031913725146225 -Luxembourg,LUX,1967,39.422882362573056 -Luxembourg,LUX,1968,42.63966112865503 -Luxembourg,LUX,1969,45.89454509649126 -Luxembourg,LUX,1970,47.65317728070173 -Luxembourg,LUX,1971,45.82867811988301 -Luxembourg,LUX,1972,47.25600990058479 -Luxembourg,LUX,1973,50.09929117251463 -Luxembourg,LUX,1974,50.86954183918126 -Luxembourg,LUX,1975,42.25505430116963 -Luxembourg,LUX,1976,42.32959168713453 -Luxembourg,LUX,1977,39.489149198830404 -Luxembourg,LUX,1978,41.08481944736845 -Luxembourg,LUX,1979,42.22882641812868 -Luxembourg,LUX,1980,38.92473426023394 -Luxembourg,LUX,1981,33.28254992982461 -Luxembourg,LUX,1982,31.183622122807026 -Luxembourg,LUX,1983,29.149076160818733 -Luxembourg,LUX,1984,31.40542129532168 -Luxembourg,LUX,1985,32.25536848538012 -Luxembourg,LUX,1986,31.52657316081867 -Luxembourg,LUX,1987,29.786514900584802 -Luxembourg,LUX,1988,30.52907374269006 -Luxembourg,LUX,1989,35.08353439181289 -Luxembourg,LUX,1990,37.121465260899804 -Luxembourg,LUX,1991,39.89356749846913 -Luxembourg,LUX,1992,40.01345100460892 -Luxembourg,LUX,1993,40.538802847324014 -Luxembourg,LUX,1994,38.97384849795362 -Luxembourg,LUX,1995,33.89503870843033 -Luxembourg,LUX,1996,34.87109628726885 -Luxembourg,LUX,1997,34.12111192254018 -Luxembourg,LUX,1998,32.93717168168668 -Luxembourg,LUX,1999,34.815567393936625 -Luxembourg,LUX,2000,37.14341503736678 -Luxembourg,LUX,2001,39.8087612636991 -Luxembourg,LUX,2002,43.531307772540494 -Luxembourg,LUX,2003,45.65602424493431 -Luxembourg,LUX,2004,51.71773574743833 -Luxembourg,LUX,2005,52.48932637727131 -Luxembourg,LUX,2006,51.55496772017162 -Luxembourg,LUX,2007,50.05177954260768 -Luxembourg,LUX,2008,49.684336078008236 -Luxembourg,LUX,2009,47.51904540719249 -Luxembourg,LUX,2010,50.042550475761594 -Luxembourg,LUX,2011,48.75372141672244 -Luxembourg,LUX,2012,47.87144226552906 -Luxembourg,LUX,2013,45.609471008495845 -Luxembourg,LUX,2014,44.185796806264236 -Luxembourg,LUX,2015,42.953448936883056 -Luxembourg,LUX,2016,42.396296979496874 -Luxembourg,LUX,2017,44.238365545839905 -Luxembourg,LUX,2018,46.37452962364919 -Macedonia,MKD,1990,29.499792333224303 -Macedonia,MKD,1991,29.171477204289964 -Macedonia,MKD,1992,29.960999439338217 -Macedonia,MKD,1993,30.10960690962455 -Macedonia,MKD,1994,28.21565314498416 -Macedonia,MKD,1995,28.39048204072591 -Macedonia,MKD,1996,33.00371929703541 -Macedonia,MKD,1997,29.72075121520854 -Macedonia,MKD,1998,33.57156976166213 -Macedonia,MKD,1999,32.05196899169684 -Macedonia,MKD,2000,30.46698617964638 -Macedonia,MKD,2001,28.832879559033568 -Macedonia,MKD,2002,28.144042697570946 -Macedonia,MKD,2003,31.606624531222845 -Macedonia,MKD,2004,31.20646641521417 -Macedonia,MKD,2005,32.20094540719113 -Macedonia,MKD,2006,32.73651696195275 -Macedonia,MKD,2007,32.642620239328224 -Macedonia,MKD,2008,31.58118874680562 -Macedonia,MKD,2009,31.05549981401511 -Macedonia,MKD,2010,33.54062807056507 -Macedonia,MKD,2011,33.625340491814846 -Macedonia,MKD,2012,31.255142042995246 -Macedonia,MKD,2013,29.973642748411606 -Macedonia,MKD,2014,27.864222870128625 -Macedonia,MKD,2015,29.348505042391153 -Macedonia,MKD,2016,30.477574345740027 -Macedonia,MKD,2017,29.434250920355122 -Macedonia,MKD,2018,30.771172812656104 -Malaysia,MYS,1965,28.862792764416643 -Malaysia,MYS,1966,33.68862531063892 -Malaysia,MYS,1967,34.04625538655559 -Malaysia,MYS,1968,34.69531059394441 -Malaysia,MYS,1969,36.32006723611108 -Malaysia,MYS,1970,40.59018792555945 -Malaysia,MYS,1971,45.163013976082276 -Malaysia,MYS,1972,50.52907517978705 -Malaysia,MYS,1973,54.62254246660874 -Malaysia,MYS,1974,55.67450202020593 -Malaysia,MYS,1975,57.798909520208554 -Malaysia,MYS,1976,64.01057242756126 -Malaysia,MYS,1977,71.05672762607452 -Malaysia,MYS,1978,97.1387363178295 -Malaysia,MYS,1979,118.77162599483258 -Malaysia,MYS,1980,127.86659753875969 -Malaysia,MYS,1981,131.17310458656326 -Malaysia,MYS,1982,141.3343394250648 -Malaysia,MYS,1983,162.39697420542683 -Malaysia,MYS,1984,175.12017760335877 -Malaysia,MYS,1985,173.32591039269627 -Malaysia,MYS,1986,194.33983176832587 -Malaysia,MYS,1987,200.30663841833308 -Malaysia,MYS,1988,212.53144014517932 -Malaysia,MYS,1989,237.51883216034275 -Malaysia,MYS,1990,256.6939615605875 -Malaysia,MYS,1991,310.90723965116257 -Malaysia,MYS,1992,336.29143100537163 -Malaysia,MYS,1993,350.662295318917 -Malaysia,MYS,1994,382.6091271426624 -Malaysia,MYS,1995,398.8024485839119 -Malaysia,MYS,1996,445.56367814429507 -Malaysia,MYS,1997,518.5980843903851 -Malaysia,MYS,1998,482.15469546919655 -Malaysia,MYS,1999,545.5129566911469 -Malaysia,MYS,2000,607.1999922664223 -Malaysia,MYS,2001,611.6920861699305 -Malaysia,MYS,2002,655.0230435012915 -Malaysia,MYS,2003,712.6396689222082 -Malaysia,MYS,2004,759.4088336773345 -Malaysia,MYS,2005,810.3648299660173 -Malaysia,MYS,2006,842.2156532966138 -Malaysia,MYS,2007,897.9963204847741 -Malaysia,MYS,2008,929.8794932686718 -Malaysia,MYS,2009,903.8923465821782 -Malaysia,MYS,2010,931.4359840046412 -Malaysia,MYS,2011,963.9932235668257 -Malaysia,MYS,2012,1035.1011339844063 -Malaysia,MYS,2013,1082.4110992877754 -Malaysia,MYS,2014,1089.0104203438173 -Malaysia,MYS,2015,1106.317906558808 -Malaysia,MYS,2016,1123.1014731811208 -Malaysia,MYS,2017,1124.9293269297432 -Malaysia,MYS,2018,1154.850234383959 -Mexico,MEX,1965,290.4355701705385 -Mexico,MEX,1966,307.41332887674497 -Mexico,MEX,1967,313.1054467467597 -Mexico,MEX,1968,340.65580595855266 -Mexico,MEX,1969,374.44350626811297 -Mexico,MEX,1970,399.14609191798235 -Mexico,MEX,1971,419.78162184762084 -Mexico,MEX,1972,464.23150254614137 -Mexico,MEX,1973,500.84938070782795 -Mexico,MEX,1974,552.3392530852819 -Mexico,MEX,1975,590.5203443229158 -Mexico,MEX,1976,628.1318341060734 -Mexico,MEX,1977,662.3619838272543 -Mexico,MEX,1978,747.0919993271067 -Mexico,MEX,1979,825.9854796390056 -Mexico,MEX,1980,900.663750873957 -Mexico,MEX,1981,993.8785816123067 -Mexico,MEX,1982,1036.5280683763121 -Mexico,MEX,1983,1025.663333156251 -Mexico,MEX,1984,1072.866603659469 -Mexico,MEX,1985,1124.8076437961722 -Mexico,MEX,1986,1093.0450077680205 -Mexico,MEX,1987,1129.7138755775431 -Mexico,MEX,1988,1137.4049917581306 -Mexico,MEX,1989,1200.5375408940263 -Mexico,MEX,1990,1263.0642091390553 -Mexico,MEX,1991,1312.2814881076956 -Mexico,MEX,1992,1334.4386333860602 -Mexico,MEX,1993,1341.115738368181 -Mexico,MEX,1994,1419.729949287179 -Mexico,MEX,1995,1395.5166237384856 -Mexico,MEX,1996,1439.235915025888 -Mexico,MEX,1997,1464.465419605726 -Mexico,MEX,1998,1530.3521170529218 -Mexico,MEX,1999,1548.4250748707427 -Mexico,MEX,2000,1621.2166351400456 -Mexico,MEX,2001,1602.6966226562274 -Mexico,MEX,2002,1655.147249889814 -Mexico,MEX,2003,1670.05298635881 -Mexico,MEX,2004,1760.5618220507297 -Mexico,MEX,2005,1874.1794489925887 -Mexico,MEX,2006,1934.2899369937925 -Mexico,MEX,2007,1945.290340190903 -Mexico,MEX,2008,1986.8254189796837 -Mexico,MEX,2009,1971.7857960385757 -Mexico,MEX,2010,2030.3438329458265 -Mexico,MEX,2011,2128.925878492728 -Mexico,MEX,2012,2142.0360154622135 -Mexico,MEX,2013,2151.944519176614 -Mexico,MEX,2014,2141.568717637382 -Mexico,MEX,2015,2139.575795967157 -Mexico,MEX,2016,2167.347883580739 -Mexico,MEX,2017,2201.566076383148 -Mexico,MEX,2018,2173.807726627447 -Middle Africa,,1965,33.790227759222404 -Middle Africa,,1966,34.93225668977215 -Middle Africa,,1967,36.53054884543308 -Middle Africa,,1968,38.75861356202762 -Middle Africa,,1969,40.64730999384807 -Middle Africa,,1970,42.48835133881569 -Middle Africa,,1971,49.103223222381686 -Middle Africa,,1972,50.959357468582255 -Middle Africa,,1973,56.86375282726559 -Middle Africa,,1974,58.909051198040885 -Middle Africa,,1975,55.25487055031554 -Middle Africa,,1976,54.63627221543679 -Middle Africa,,1977,57.63519134487213 -Middle Africa,,1978,64.20950996162577 -Middle Africa,,1979,65.1744561626046 -Middle Africa,,1980,67.80875566685862 -Middle Africa,,1981,72.1070998627927 -Middle Africa,,1982,69.68877989123042 -Middle Africa,,1983,77.16380690070415 -Middle Africa,,1984,73.05504431759216 -Middle Africa,,1985,81.88093240029055 -Middle Africa,,1986,81.39081430031207 -Middle Africa,,1987,83.26875457956315 -Middle Africa,,1988,87.53381262820005 -Middle Africa,,1989,91.85944917844951 -Middle Africa,,1990,85.0418490752833 -Middle Africa,,1991,79.88120662492939 -Middle Africa,,1992,81.80592570943818 -Middle Africa,,1993,81.89321653015354 -Middle Africa,,1994,79.58075236012911 -Middle Africa,,1995,81.69136750454848 -Middle Africa,,1996,82.18224221856343 -Middle Africa,,1997,82.02290730711694 -Middle Africa,,1998,79.00580957848379 -Middle Africa,,1999,82.50644566336852 -Middle Africa,,2000,90.05890712488984 -Middle Africa,,2001,101.52126294652004 -Middle Africa,,2002,107.59237027090636 -Middle Africa,,2003,117.07960821899908 -Middle Africa,,2004,131.4342790427874 -Middle Africa,,2005,131.92797973833703 -Middle Africa,,2006,145.3938256187248 -Middle Africa,,2007,149.1697090400252 -Middle Africa,,2008,169.01424774833723 -Middle Africa,,2009,179.6430088240256 -Middle Africa,,2010,193.55408764521977 -Middle Africa,,2011,210.39465044919658 -Middle Africa,,2012,214.59404169763084 -Middle Africa,,2013,228.9487855432747 -Middle Africa,,2014,240.82475422147698 -Middle Africa,,2015,234.47001329047058 -Middle Africa,,2016,244.84730364292847 -Middle Africa,,2017,254.17568254966983 -Middle Africa,,2018,266.2348522785487 -Middle East,,1965,561.4094753361031 -Middle East,,1966,585.3364189259314 -Middle East,,1967,612.4623033901796 -Middle East,,1968,646.450219491899 -Middle East,,1969,680.0805547768631 -Middle East,,1970,714.978789822836 -Middle East,,1971,757.0964813800279 -Middle East,,1972,823.5227715107023 -Middle East,,1973,902.4664005286799 -Middle East,,1974,961.0591368334901 -Middle East,,1975,959.0271123362097 -Middle East,,1976,1085.1335366143264 -Middle East,,1977,1233.7959964641839 -Middle East,,1978,1293.2584952353407 -Middle East,,1979,1518.9456521825502 -Middle East,,1980,1469.7778320185669 -Middle East,,1981,1601.1805385576204 -Middle East,,1982,1773.6107063121424 -Middle East,,1983,1940.440666330837 -Middle East,,1984,2192.492620350803 -Middle East,,1985,2331.5712581869857 -Middle East,,1986,2435.5800171494147 -Middle East,,1987,2605.496637827771 -Middle East,,1988,2767.9652147348124 -Middle East,,1989,2917.693649152668 -Middle East,,1990,3014.4537823019145 -Middle East,,1991,3148.9934558451077 -Middle East,,1992,3433.7478927027887 -Middle East,,1993,3536.005252344063 -Middle East,,1994,3947.067109223678 -Middle East,,1995,4084.6679654680456 -Middle East,,1996,4215.5973808406725 -Middle East,,1997,4417.01265299148 -Middle East,,1998,4489.485602990267 -Middle East,,1999,4570.561476078293 -Middle East,,2000,4801.8999492805215 -Middle East,,2001,5035.957261668717 -Middle East,,2002,5312.897354669109 -Middle East,,2003,5546.521126299047 -Middle East,,2004,5976.944614139297 -Middle East,,2005,6387.858689541813 -Middle East,,2006,6713.692583636376 -Middle East,,2007,7091.871787080568 -Middle East,,2008,7602.660559885327 -Middle East,,2009,7836.487404295822 -Middle East,,2010,8255.216254636349 -Middle East,,2011,8587.724653378496 -Middle East,,2012,8924.21372776715 -Middle East,,2013,9216.91672070288 -Middle East,,2014,9503.66488902628 -Middle East,,2015,9811.90528801844 -Middle East,,2016,10058.873425512096 -Middle East,,2017,10250.507226853251 -Middle East,,2018,10493.619931743013 -Morocco,MAR,1965,17.957445137686413 -Morocco,MAR,1966,22.62252289383678 -Morocco,MAR,1967,24.04677351243769 -Morocco,MAR,1968,26.261629954859128 -Morocco,MAR,1969,28.835760213381178 -Morocco,MAR,1970,29.923720998863743 -Morocco,MAR,1971,31.83256782333327 -Morocco,MAR,1972,34.46996039333333 -Morocco,MAR,1973,38.425873614152 -Morocco,MAR,1974,41.04761629040932 -Morocco,MAR,1975,42.03476286052636 -Morocco,MAR,1976,45.48806896836251 -Morocco,MAR,1977,51.10455708315787 -Morocco,MAR,1978,54.40436018725141 -Morocco,MAR,1979,59.400129681403534 -Morocco,MAR,1980,60.25999619304096 -Morocco,MAR,1981,58.73599557877193 -Morocco,MAR,1982,60.005169381228114 -Morocco,MAR,1983,62.07001819590639 -Morocco,MAR,1984,63.77012949251458 -Morocco,MAR,1985,65.14462286175443 -Morocco,MAR,1986,67.32590904760227 -Morocco,MAR,1987,69.29659430824559 -Morocco,MAR,1988,73.18225631362576 -Morocco,MAR,1989,80.47056559543856 -Morocco,MAR,1990,82.3587607346784 -Morocco,MAR,1991,83.40485619725148 -Morocco,MAR,1992,93.46561942081874 -Morocco,MAR,1993,94.6217378603509 -Morocco,MAR,1994,104.18108164356721 -Morocco,MAR,1995,102.25300851573101 -Morocco,MAR,1996,106.47673592222226 -Morocco,MAR,1997,110.67596227625727 -Morocco,MAR,1998,113.63344277169587 -Morocco,MAR,1999,118.22355533046846 -Morocco,MAR,2000,117.2089010679538 -Morocco,MAR,2001,126.57838743146156 -Morocco,MAR,2002,129.7637491143006 -Morocco,MAR,2003,129.97915365974092 -Morocco,MAR,2004,148.07765633374558 -Morocco,MAR,2005,160.81603978008985 -Morocco,MAR,2006,164.10974999778085 -Morocco,MAR,2007,162.57379965666948 -Morocco,MAR,2008,179.47305925260463 -Morocco,MAR,2009,174.83820455028652 -Morocco,MAR,2010,193.86873708955483 -Morocco,MAR,2011,203.79267807759905 -Morocco,MAR,2012,207.37692279593276 -Morocco,MAR,2013,212.84003230037646 -Morocco,MAR,2014,216.00568215897917 -Morocco,MAR,2015,219.82534236450002 -Morocco,MAR,2016,222.2724897871349 -Morocco,MAR,2017,232.82498091120502 -Morocco,MAR,2018,244.18719264091908 -Netherlands,NLD,1965,413.9600936111114 -Netherlands,NLD,1966,443.3774338888891 -Netherlands,NLD,1967,468.8000280555557 -Netherlands,NLD,1968,524.3718247222222 -Netherlands,NLD,1969,584.7302955555562 -Netherlands,NLD,1970,659.742096666667 -Netherlands,NLD,1971,695.7157786111109 -Netherlands,NLD,1972,808.0853933333335 -Netherlands,NLD,1973,859.4568991666672 -Netherlands,NLD,1974,814.6718530555555 -Netherlands,NLD,1975,821.09644872807 -Netherlands,NLD,1976,895.4260657309949 -Netherlands,NLD,1977,880.0585811695906 -Netherlands,NLD,1978,896.3202823657658 -Netherlands,NLD,1979,926.8887576249512 -Netherlands,NLD,1980,869.9844546159737 -Netherlands,NLD,1981,825.1718659389552 -Netherlands,NLD,1982,762.7461183503299 -Netherlands,NLD,1983,766.5225215962098 -Netherlands,NLD,1984,795.9240555176867 -Netherlands,NLD,1985,821.7862835483805 -Netherlands,NLD,1986,862.4530561862507 -Netherlands,NLD,1987,880.2974413814818 -Netherlands,NLD,1988,883.139387104297 -Netherlands,NLD,1989,887.1087630407333 -Netherlands,NLD,1990,909.5920298005944 -Netherlands,NLD,1991,926.8947869794921 -Netherlands,NLD,1992,937.8260547150554 -Netherlands,NLD,1993,945.5824242898933 -Netherlands,NLD,1994,935.3554542211506 -Netherlands,NLD,1995,973.4321176857287 -Netherlands,NLD,1996,1015.3472964592738 -Netherlands,NLD,1997,997.3492917715522 -Netherlands,NLD,1998,1004.0202074300104 -Netherlands,NLD,1999,991.7449041785895 -Netherlands,NLD,2000,1004.5650916514284 -Netherlands,NLD,2001,1043.1978210086538 -Netherlands,NLD,2002,1043.4607252663445 -Netherlands,NLD,2003,1050.6582681483953 -Netherlands,NLD,2004,1085.8703402323886 -Netherlands,NLD,2005,1108.3119029379357 -Netherlands,NLD,2006,1085.7179820212089 -Netherlands,NLD,2007,1104.2764813093365 -Netherlands,NLD,2008,1090.5515648650455 -Netherlands,NLD,2009,1074.9872943725181 -Netherlands,NLD,2010,1137.983017611443 -Netherlands,NLD,2011,1089.5114335110518 -Netherlands,NLD,2012,1054.1184275573546 -Netherlands,NLD,2013,1022.8494110669366 -Netherlands,NLD,2014,966.4267227609052 -Netherlands,NLD,2015,978.6599893847855 -Netherlands,NLD,2016,996.3340068845852 -Netherlands,NLD,2017,982.7806657443687 -Netherlands,NLD,2018,986.0880219385213 -New Zealand,NZL,1965,81.6801067543859 -New Zealand,NZL,1966,86.75314634502928 -New Zealand,NZL,1967,87.4560188596491 -New Zealand,NZL,1968,89.37743723684216 -New Zealand,NZL,1969,91.01730387426896 -New Zealand,NZL,1970,101.42340472222214 -New Zealand,NZL,1971,105.85871260233921 -New Zealand,NZL,1972,113.01244695906438 -New Zealand,NZL,1973,117.80760040935715 -New Zealand,NZL,1974,118.24964573937245 -New Zealand,NZL,1975,119.26908461599288 -New Zealand,NZL,1976,123.85148766051404 -New Zealand,NZL,1977,126.91877444591739 -New Zealand,NZL,1978,124.99185386159483 -New Zealand,NZL,1979,125.92940736958407 -New Zealand,NZL,1980,126.37513974628786 -New Zealand,NZL,1981,126.71436651753282 -New Zealand,NZL,1982,131.37930761018936 -New Zealand,NZL,1983,136.32389808318348 -New Zealand,NZL,1984,143.94292030458655 -New Zealand,NZL,1985,145.64772133170163 -New Zealand,NZL,1986,152.33767077175295 -New Zealand,NZL,1987,156.9769735375028 -New Zealand,NZL,1988,160.99128588016558 -New Zealand,NZL,1989,164.80481876242487 -New Zealand,NZL,1990,171.21474143104368 -New Zealand,NZL,1991,176.83992854295172 -New Zealand,NZL,1992,178.06717217652232 -New Zealand,NZL,1993,183.4141998276277 -New Zealand,NZL,1994,194.84495237163193 -New Zealand,NZL,1995,201.1000650841631 -New Zealand,NZL,1996,206.67980073814968 -New Zealand,NZL,1997,208.6874181340691 -New Zealand,NZL,1998,208.46733006315753 -New Zealand,NZL,1999,210.66135167770486 -New Zealand,NZL,2000,219.85435785092557 -New Zealand,NZL,2001,219.02409964683858 -New Zealand,NZL,2002,226.98107801958827 -New Zealand,NZL,2003,220.41750365145145 -New Zealand,NZL,2004,228.0788157104949 -New Zealand,NZL,2005,221.2624763145691 -New Zealand,NZL,2006,223.87016286123526 -New Zealand,NZL,2007,223.6653218874445 -New Zealand,NZL,2008,224.7211211171855 -New Zealand,NZL,2009,223.80972223171128 -New Zealand,NZL,2010,231.21717282797204 -New Zealand,NZL,2011,229.66897799727707 -New Zealand,NZL,2012,232.34783238220453 -New Zealand,NZL,2013,235.07851912340848 -New Zealand,NZL,2014,246.54853562733615 -New Zealand,NZL,2015,248.3235525069312 -New Zealand,NZL,2016,250.76116376577716 -New Zealand,NZL,2017,257.80862996936906 -New Zealand,NZL,2018,252.82263129953392 -North America,,1965,16171.820137905172 -North America,,1966,17089.84765381383 -North America,,1967,17697.166772199103 -North America,,1968,18793.134462156027 -North America,,1969,19813.92978079766 -North America,,1970,20559.041491230822 -North America,,1971,21005.634290985683 -North America,,1972,22137.74157152797 -North America,,1973,23103.594598187672 -North America,,1974,22701.772223877928 -North America,,1975,22218.213705152404 -North America,,1976,23443.196883157714 -North America,,1977,24128.849572941657 -North America,,1978,24338.487390029084 -North America,,1979,24699.941461076938 -North America,,1980,24054.38704846231 -North America,,1981,23468.93998842471 -North America,,1982,22696.473668779883 -North America,,1983,22574.869186512005 -North America,,1984,23797.656316393164 -North America,,1985,23877.679354744065 -North America,,1986,23966.241563561936 -North America,,1987,24781.550577697064 -North America,,1988,25859.028995304376 -North America,,1989,26468.39718578985 -North America,,1990,26516.228994800884 -North America,,1991,26531.2317765977 -North America,,1992,26966.84520908619 -North America,,1993,27510.936253056283 -North America,,1994,28133.04487597688 -North America,,1995,28675.043928329622 -North America,,1996,29614.752411788944 -North America,,1997,29864.136533743233 -North America,,1998,30051.03736476611 -North America,,1999,30615.017665030256 -North America,,2000,31375.938859108104 -North America,,2001,30684.4794707478 -North America,,2002,31234.67918099587 -North America,,2003,31377.478792113838 -North America,,2004,32052.04391386819 -North America,,2005,32240.452576358286 -North America,,2006,32065.669940409127 -North America,,2007,32604.651650203537 -North America,,2008,31994.260700870298 -North America,,2009,30506.749864037854 -North America,,2010,31515.213161112883 -North America,,2011,31568.552927292316 -North America,,2012,30905.102744064276 -North America,,2013,31750.8202889215 -North America,,2014,32085.85645773006 -North America,,2015,31822.278028924884 -North America,,2016,31834.14723837123 -North America,,2017,32046.209621687736 -North America,,2018,32935.90731321991 -Norway,NOR,1965,199.10104350777783 -Norway,NOR,1966,204.3975330777774 -Norway,NOR,1967,219.3991582411114 -Norway,NOR,1968,245.63467979666697 -Norway,NOR,1969,246.95988048222208 -Norway,NOR,1970,259.212358175555 -Norway,NOR,1971,273.6116725688885 -Norway,NOR,1972,290.013375638889 -Norway,NOR,1973,306.9035789088893 -Norway,NOR,1974,306.7773764866671 -Norway,NOR,1975,311.5040987422223 -Norway,NOR,1976,333.46135581222177 -Norway,NOR,1977,308.4265118422227 -Norway,NOR,1978,346.03209941333375 -Norway,NOR,1979,370.1233946800003 -Norway,NOR,1980,352.6639100022217 -Norway,NOR,1981,371.14839029555606 -Norway,NOR,1982,366.4330825622218 -Norway,NOR,1983,401.36573559555586 -Norway,NOR,1984,406.9502880400006 -Norway,NOR,1985,402.1257656809345 -Norway,NOR,1986,393.5235154384198 -Norway,NOR,1987,412.7327468772501 -Norway,NOR,1988,424.6586813241512 -Norway,NOR,1989,451.64293560011623 -Norway,NOR,1990,455.8564492532515 -Norway,NOR,1991,420.83581370274703 -Norway,NOR,1992,442.9710760932576 -Norway,NOR,1993,457.4949924435046 -Norway,NOR,1994,442.9942428416684 -Norway,NOR,1995,469.0815064154271 -Norway,NOR,1996,432.74288868653474 -Norway,NOR,1997,454.7943567504043 -Norway,NOR,1998,472.4635223518637 -Norway,NOR,1999,484.1186567332834 -Norway,NOR,2000,534.2051965135344 -Norway,NOR,2001,487.961097330873 -Norway,NOR,2002,508.8442802409884 -Norway,NOR,2003,453.4604904205348 -Norway,NOR,2004,463.4798195627405 -Norway,NOR,2005,529.0139161638015 -Norway,NOR,2006,487.41674381874907 -Norway,NOR,2007,524.7253246566137 -Norway,NOR,2008,539.4345480742497 -Norway,NOR,2009,500.709409408148 -Norway,NOR,2010,483.2746864413113 -Norway,NOR,2011,492.9949293540692 -Norway,NOR,2012,549.8535535804514 -Norway,NOR,2013,515.348866714301 -Norway,NOR,2014,531.6483842264718 -Norway,NOR,2015,541.1740171729516 -Norway,NOR,2016,549.2282559471997 -Norway,NOR,2017,553.9895192407646 -Norway,NOR,2018,551.0421487509285 -Oman,OMN,1965,5.291939166666668 -Oman,OMN,1966,5.5202780555555515 -Oman,OMN,1967,5.759781666666671 -Oman,OMN,1968,6.022882500000005 -Oman,OMN,1969,6.273933333333329 -Oman,OMN,1970,6.561514722222218 -Oman,OMN,1971,15.471502777777827 -Oman,OMN,1972,17.677216666666723 -Oman,OMN,1973,15.375913888888883 -Oman,OMN,1974,14.127883333333378 -Oman,OMN,1975,12.904697222222245 -Oman,OMN,1976,14.856397222222265 -Oman,OMN,1977,14.312168888888948 -Oman,OMN,1978,16.64237638888893 -Oman,OMN,1979,19.17322694444448 -Oman,OMN,1980,17.058377777777796 -Oman,OMN,1981,18.02799749999998 -Oman,OMN,1982,23.881949444444444 -Oman,OMN,1983,22.350086388888922 -Oman,OMN,1984,32.493594722222234 -Oman,OMN,1985,33.571021111111065 -Oman,OMN,1986,31.459568611111095 -Oman,OMN,1987,35.43523500000001 -Oman,OMN,1988,34.38907666666665 -Oman,OMN,1989,39.01986250000003 -Oman,OMN,1990,48.86399166666672 -Oman,OMN,1991,64.8682466666667 -Oman,OMN,1992,62.49089861111113 -Oman,OMN,1993,59.8380080555556 -Oman,OMN,1994,56.84055124294433 -Oman,OMN,1995,65.89965408803272 -Oman,OMN,1996,67.78353564329402 -Oman,OMN,1997,69.71264101147702 -Oman,OMN,1998,71.64712888664364 -Oman,OMN,1999,82.48155384588505 -Oman,OMN,2000,114.5245906918614 -Oman,OMN,2001,126.48572001099987 -Oman,OMN,2002,137.64600530157867 -Oman,OMN,2003,142.57997596349733 -Oman,OMN,2004,132.4522922100182 -Oman,OMN,2005,159.32631457482643 -Oman,OMN,2006,174.04108614090063 -Oman,OMN,2007,173.57794460405268 -Oman,OMN,2008,203.93386142209616 -Oman,OMN,2009,204.33816844106354 -Oman,OMN,2010,240.05752498042315 -Oman,OMN,2011,262.2162777782752 -Oman,OMN,2012,285.0694841427613 -Oman,OMN,2013,318.43206949563324 -Oman,OMN,2014,317.11862984619177 -Oman,OMN,2015,334.98185126917673 -Oman,OMN,2016,336.89659542485634 -Oman,OMN,2017,341.14854042153496 -Oman,OMN,2018,356.9154646492128 -Other Asia & Pacific,,1965,189.65560049091442 -Other Asia & Pacific,,1966,201.37595585646952 -Other Asia & Pacific,,1967,219.0271624127035 -Other Asia & Pacific,,1968,235.77727495706478 -Other Asia & Pacific,,1969,250.31298698420736 -Other Asia & Pacific,,1970,266.9858778409897 -Other Asia & Pacific,,1971,292.71679539165433 -Other Asia & Pacific,,1972,303.64218754906204 -Other Asia & Pacific,,1973,314.4226221561983 -Other Asia & Pacific,,1974,336.21620585199133 -Other Asia & Pacific,,1975,345.40419068170957 -Other Asia & Pacific,,1976,363.3750439774996 -Other Asia & Pacific,,1977,383.96716173056785 -Other Asia & Pacific,,1978,405.64026608648606 -Other Asia & Pacific,,1979,437.24820958676816 -Other Asia & Pacific,,1980,468.78926721806863 -Other Asia & Pacific,,1981,481.3380428565706 -Other Asia & Pacific,,1982,502.10748443663806 -Other Asia & Pacific,,1983,522.142047995243 -Other Asia & Pacific,,1984,531.1286827253125 -Other Asia & Pacific,,1985,566.7546925045198 -Other Asia & Pacific,,1986,572.7170693312663 -Other Asia & Pacific,,1987,557.1205766939619 -Other Asia & Pacific,,1988,565.2513997494997 -Other Asia & Pacific,,1989,558.852138883567 -Other Asia & Pacific,,1990,546.2839804402416 -Other Asia & Pacific,,1991,537.9321534034708 -Other Asia & Pacific,,1992,487.9751851632183 -Other Asia & Pacific,,1993,467.13742763130074 -Other Asia & Pacific,,1994,448.3002103880559 -Other Asia & Pacific,,1995,443.0440141433426 -Other Asia & Pacific,,1996,409.74834171887795 -Other Asia & Pacific,,1997,406.12339773103946 -Other Asia & Pacific,,1998,390.3157871027124 -Other Asia & Pacific,,1999,411.27522757080976 -Other Asia & Pacific,,2000,438.4082159082215 -Other Asia & Pacific,,2001,455.2166495005974 -Other Asia & Pacific,,2002,448.38792013365486 -Other Asia & Pacific,,2003,472.70454205201366 -Other Asia & Pacific,,2004,479.92215337775076 -Other Asia & Pacific,,2005,504.80631647906773 -Other Asia & Pacific,,2006,523.5724886533841 -Other Asia & Pacific,,2007,512.6124021761541 -Other Asia & Pacific,,2008,536.8284504636149 -Other Asia & Pacific,,2009,490.92214143546335 -Other Asia & Pacific,,2010,527.761178859239 -Other Asia & Pacific,,2011,526.1304463994712 -Other Asia & Pacific,,2012,561.4522195345568 -Other Asia & Pacific,,2013,567.137483816757 -Other Asia & Pacific,,2014,613.1754122385938 -Other Asia & Pacific,,2015,627.3375126310706 -Other Asia & Pacific,,2016,704.1099874184868 -Other Asia & Pacific,,2017,725.3637294597162 -Other Asia & Pacific,,2018,760.40987591313 -Other CIS,,1985,385.2375784561139 -Other CIS,,1986,367.76880343078767 -Other CIS,,1987,378.339014421497 -Other CIS,,1988,417.44445062205057 -Other CIS,,1989,400.49582949962917 -Other CIS,,1990,400.6403081877884 -Other CIS,,1991,335.4694223791902 -Other CIS,,1992,282.99198109671664 -Other CIS,,1993,223.82496733989038 -Other CIS,,1994,186.2302125770409 -Other CIS,,1995,162.72859092426006 -Other CIS,,1996,175.1036657634392 -Other CIS,,1997,165.89044600243798 -Other CIS,,1998,165.13590500028872 -Other CIS,,1999,157.38625498457006 -Other CIS,,2000,151.7752372668114 -Other CIS,,2001,149.5869698270477 -Other CIS,,2002,149.9821358231864 -Other CIS,,2003,158.0506996124266 -Other CIS,,2004,171.16261193450555 -Other CIS,,2005,177.91907744688 -Other CIS,,2006,179.43241183646205 -Other CIS,,2007,194.61445470283346 -Other CIS,,2008,188.35049694863014 -Other CIS,,2009,181.27925038791636 -Other CIS,,2010,184.9036243194829 -Other CIS,,2011,197.59388272702566 -Other CIS,,2012,208.76547570221672 -Other CIS,,2013,198.83692828948503 -Other CIS,,2014,203.9076700994507 -Other CIS,,2015,202.88833369076886 -Other CIS,,2016,204.05905314774196 -Other CIS,,2017,209.02108785631597 -Other CIS,,2018,221.358680276232 -Other Caribbean,,1965,174.78273780820115 -Other Caribbean,,1966,182.8118200283623 -Other Caribbean,,1967,190.37164727381054 -Other Caribbean,,1968,195.81217162738665 -Other Caribbean,,1969,207.8317221419787 -Other Caribbean,,1970,224.76100659738105 -Other Caribbean,,1971,321.9597700757386 -Other Caribbean,,1972,332.07845026976054 -Other Caribbean,,1973,361.6224053664168 -Other Caribbean,,1974,359.90317345260956 -Other Caribbean,,1975,347.6347710679376 -Other Caribbean,,1976,361.24300351258046 -Other Caribbean,,1977,372.56884728772457 -Other Caribbean,,1978,385.1228006650773 -Other Caribbean,,1979,405.5341225763542 -Other Caribbean,,1980,448.0614600971784 -Other Caribbean,,1981,454.05952803548274 -Other Caribbean,,1982,411.2543873759835 -Other Caribbean,,1983,407.69619359391174 -Other Caribbean,,1984,412.97796334190383 -Other Caribbean,,1985,384.59958153480983 -Other Caribbean,,1986,383.50839601131486 -Other Caribbean,,1987,395.67039454609886 -Other Caribbean,,1988,396.49246553635027 -Other Caribbean,,1989,411.6457642351271 -Other Caribbean,,1990,411.24634871956255 -Other Caribbean,,1991,399.81818842116115 -Other Caribbean,,1992,379.0731455220565 -Other Caribbean,,1993,377.512725539307 -Other Caribbean,,1994,395.25252971989323 -Other Caribbean,,1995,397.67640476215826 -Other Caribbean,,1996,412.6834163940832 -Other Caribbean,,1997,448.4834658717484 -Other Caribbean,,1998,465.67340569539425 -Other Caribbean,,1999,446.84874662901456 -Other Caribbean,,2000,495.3950693089652 -Other Caribbean,,2001,504.3058654253304 -Other Caribbean,,2002,512.7008029304377 -Other Caribbean,,2003,524.5774402870933 -Other Caribbean,,2004,530.6073697447844 -Other Caribbean,,2005,532.6671888213943 -Other Caribbean,,2006,545.1137263464536 -Other Caribbean,,2007,530.6495080387995 -Other Caribbean,,2008,506.5529505013749 -Other Caribbean,,2009,479.4761296639808 -Other Caribbean,,2010,478.3555936942854 -Other Caribbean,,2011,485.5109394410783 -Other Caribbean,,2012,471.5027219926814 -Other Caribbean,,2013,458.119628909192 -Other Caribbean,,2014,459.56183612965515 -Other Caribbean,,2015,468.3665797248601 -Other Caribbean,,2016,483.7653612148162 -Other Caribbean,,2017,484.63584166553954 -Other Caribbean,,2018,493.24398091148635 -Other Middle East,,1965,71.85889595505549 -Other Middle East,,1966,75.1344438269019 -Other Middle East,,1967,78.77254032977035 -Other Middle East,,1968,82.54602232520618 -Other Middle East,,1969,86.67432620155724 -Other Middle East,,1970,86.18015072640581 -Other Middle East,,1971,92.33321735394959 -Other Middle East,,1972,92.66646372333746 -Other Middle East,,1973,102.68200307415543 -Other Middle East,,1974,114.33771486725584 -Other Middle East,,1975,125.74206078241266 -Other Middle East,,1976,140.86627841641078 -Other Middle East,,1977,155.61312453658897 -Other Middle East,,1978,165.37813876793155 -Other Middle East,,1979,189.8827640497265 -Other Middle East,,1980,182.40141666962916 -Other Middle East,,1981,191.6301996468435 -Other Middle East,,1982,225.15526489379573 -Other Middle East,,1983,240.47320069564455 -Other Middle East,,1984,259.3347079750229 -Other Middle East,,1985,272.4894249571401 -Other Middle East,,1986,276.7917929066761 -Other Middle East,,1987,291.1998977710073 -Other Middle East,,1988,299.9876565897481 -Other Middle East,,1989,305.9102411439141 -Other Middle East,,1990,322.08505330050014 -Other Middle East,,1991,340.66488610247745 -Other Middle East,,1992,354.47954433110004 -Other Middle East,,1993,366.23480336143643 -Other Middle East,,1994,378.24962401790026 -Other Middle East,,1995,406.1777383705827 -Other Middle East,,1996,411.0477494484644 -Other Middle East,,1997,448.9024678022901 -Other Middle East,,1998,475.9120838192482 -Other Middle East,,1999,479.52570078095516 -Other Middle East,,2000,486.6537440464917 -Other Middle East,,2001,499.9978361789408 -Other Middle East,,2002,518.8729808158157 -Other Middle East,,2003,541.5997492065741 -Other Middle East,,2004,558.0941232192957 -Other Middle East,,2005,609.4227944104629 -Other Middle East,,2006,632.2802522662064 -Other Middle East,,2007,654.9117797164843 -Other Middle East,,2008,677.6749511774474 -Other Middle East,,2009,680.1982890419774 -Other Middle East,,2010,677.1531861097455 -Other Middle East,,2011,636.6319395206988 -Other Middle East,,2012,594.4343210704194 -Other Middle East,,2013,584.5051914063176 -Other Middle East,,2014,582.189656841593 -Other Middle East,,2015,562.453819001195 -Other Middle East,,2016,557.7991071437206 -Other Middle East,,2017,558.3064935393877 -Other Middle East,,2018,556.9315343789482 -Other Northern Africa,,1965,17.52508856223459 -Other Northern Africa,,1966,19.19670840500067 -Other Northern Africa,,1967,20.445144929460685 -Other Northern Africa,,1968,23.315377282860506 -Other Northern Africa,,1969,25.994050932137572 -Other Northern Africa,,1970,30.81143310962559 -Other Northern Africa,,1971,28.474137620539047 -Other Northern Africa,,1972,36.067692626828276 -Other Northern Africa,,1973,49.04354032146429 -Other Northern Africa,,1974,53.89957027579855 -Other Northern Africa,,1975,60.192831583046676 -Other Northern Africa,,1976,70.56340968234282 -Other Northern Africa,,1977,80.07725094713565 -Other Northern Africa,,1978,89.16209554033085 -Other Northern Africa,,1979,116.09863267199886 -Other Northern Africa,,1980,120.73186703719423 -Other Northern Africa,,1981,128.71391033232615 -Other Northern Africa,,1982,131.82913162516482 -Other Northern Africa,,1983,138.79324606960878 -Other Northern Africa,,1984,137.5357245961311 -Other Northern Africa,,1985,154.79124701397754 -Other Northern Africa,,1986,158.52014819220196 -Other Northern Africa,,1987,175.55713819581044 -Other Northern Africa,,1988,178.42607841368832 -Other Northern Africa,,1989,192.2446538771723 -Other Northern Africa,,1990,187.9342373293598 -Other Northern Africa,,1991,186.40498301718998 -Other Northern Africa,,1992,186.77345839819301 -Other Northern Africa,,1993,198.25764146737143 -Other Northern Africa,,1994,215.72434690596816 -Other Northern Africa,,1995,227.4880880729179 -Other Northern Africa,,1996,233.19386140018884 -Other Northern Africa,,1997,243.0175773565438 -Other Northern Africa,,1998,253.03127981268406 -Other Northern Africa,,1999,250.2574812996915 -Other Northern Africa,,2000,269.4186178231078 -Other Northern Africa,,2001,275.3139725668877 -Other Northern Africa,,2002,272.6566324353091 -Other Northern Africa,,2003,281.79324611951904 -Other Northern Africa,,2004,304.20521359701655 -Other Northern Africa,,2005,312.29824484991343 -Other Northern Africa,,2006,313.19025536769095 -Other Northern Africa,,2007,304.23793209403266 -Other Northern Africa,,2008,319.09355704596277 -Other Northern Africa,,2009,339.5943014838559 -Other Northern Africa,,2010,348.1911268649572 -Other Northern Africa,,2011,251.06134452075872 -Other Northern Africa,,2012,299.5037873907529 -Other Northern Africa,,2013,323.6818590629265 -Other Northern Africa,,2014,318.5356825956313 -Other Northern Africa,,2015,279.1054036235332 -Other Northern Africa,,2016,268.7972896745987 -Other Northern Africa,,2017,284.35081398743034 -Other Northern Africa,,2018,295.93588485562 -Other South America,,1965,30.776313201852314 -Other South America,,1966,34.95816974089913 -Other South America,,1967,37.25547127561004 -Other South America,,1968,38.65972315658486 -Other South America,,1969,41.21441454467098 -Other South America,,1970,43.7575904737845 -Other South America,,1971,48.2298730352148 -Other South America,,1972,53.91031326952279 -Other South America,,1973,55.71849468412672 -Other South America,,1974,50.802129624658036 -Other South America,,1975,56.75488900471012 -Other South America,,1976,57.59399602419227 -Other South America,,1977,61.400976070602255 -Other South America,,1978,68.10682673955849 -Other South America,,1979,71.24198810831693 -Other South America,,1980,75.27514539709442 -Other South America,,1981,71.21202581960708 -Other South America,,1982,68.92780569790176 -Other South America,,1983,66.1130348909097 -Other South America,,1984,66.88378118258265 -Other South America,,1985,77.17712871266735 -Other South America,,1986,100.34448290849494 -Other South America,,1987,118.04486817829854 -Other South America,,1988,125.4566261511615 -Other South America,,1989,137.41034287027392 -Other South America,,1990,148.20091253980476 -Other South America,,1991,156.5048514860845 -Other South America,,1992,158.75715737565284 -Other South America,,1993,171.7890008635691 -Other South America,,1994,192.23786448071718 -Other South America,,1995,215.78625796434267 -Other South America,,1996,225.797811972918 -Other South America,,1997,244.81898338999451 -Other South America,,1998,254.53446274922177 -Other South America,,1999,254.82511860540453 -Other South America,,2000,249.71100889011845 -Other South America,,2001,232.28031866297331 -Other South America,,2002,241.12185669765992 -Other South America,,2003,253.5424883998591 -Other South America,,2004,250.55225981802917 -Other South America,,2005,253.95914089148027 -Other South America,,2006,254.86443417845615 -Other South America,,2007,275.23061720539033 -Other South America,,2008,284.0454022722826 -Other South America,,2009,292.7662724393725 -Other South America,,2010,308.4551515926872 -Other South America,,2011,318.6458859386119 -Other South America,,2012,328.3297858247919 -Other South America,,2013,338.50617970648125 -Other South America,,2014,333.86128248044935 -Other South America,,2015,340.2577568763926 -Other South America,,2016,369.0155369608513 -Other South America,,2017,363.9987553967819 -Other South America,,2018,368.7916307830972 -Other Southern Africa,,1965,4.368125637560205 -Other Southern Africa,,1966,4.893960434366463 -Other Southern Africa,,1967,5.181055682466851 -Other Southern Africa,,1968,5.766111653954747 -Other Southern Africa,,1969,5.949465211135069 -Other Southern Africa,,1970,6.3601406412973 -Other Southern Africa,,1971,6.56710496497595 -Other Southern Africa,,1972,7.062212809755694 -Other Southern Africa,,1973,7.25614631686588 -Other Southern Africa,,1974,7.632523261771835 -Other Southern Africa,,1975,7.798623815038955 -Other Southern Africa,,1976,8.457215039164968 -Other Southern Africa,,1977,8.199357640156457 -Other Southern Africa,,1978,8.46699200777131 -Other Southern Africa,,1979,8.563322066480566 -Other Southern Africa,,1980,9.125240772629702 -Other Southern Africa,,1981,10.830063195755676 -Other Southern Africa,,1982,10.99136498259778 -Other Southern Africa,,1983,10.433658623542234 -Other Southern Africa,,1984,10.802150162235105 -Other Southern Africa,,1985,12.28367012161679 -Other Southern Africa,,1986,12.817631352700808 -Other Southern Africa,,1987,13.251287403578898 -Other Southern Africa,,1988,14.32614654071802 -Other Southern Africa,,1989,15.410181750834072 -Other Southern Africa,,1990,20.25459562973814 -Other Southern Africa,,1991,24.736556475887795 -Other Southern Africa,,1992,26.565917418378675 -Other Southern Africa,,1993,26.930455111708653 -Other Southern Africa,,1994,27.638063087158834 -Other Southern Africa,,1995,29.904716430840978 -Other Southern Africa,,1996,28.84678621129746 -Other Southern Africa,,1997,29.603615498708734 -Other Southern Africa,,1998,32.815362198013325 -Other Southern Africa,,1999,35.00839405506917 -Other Southern Africa,,2000,36.23226932871573 -Other Southern Africa,,2001,37.21287600301907 -Other Southern Africa,,2002,37.16648128470967 -Other Southern Africa,,2003,37.179727407697946 -Other Southern Africa,,2004,37.37436406444525 -Other Southern Africa,,2005,40.155721824409014 -Other Southern Africa,,2006,39.59362959495739 -Other Southern Africa,,2007,41.206113985741354 -Other Southern Africa,,2008,42.914170768679 -Other Southern Africa,,2009,44.2906637446784 -Other Southern Africa,,2010,40.54692395182359 -Other Southern Africa,,2011,43.64555300007127 -Other Southern Africa,,2012,48.486861392841924 -Other Southern Africa,,2013,50.4407600183525 -Other Southern Africa,,2014,54.63140495736441 -Other Southern Africa,,2015,55.93716340492369 -Other Southern Africa,,2016,56.69334881954999 -Other Southern Africa,,2017,60.05946960684948 -Other Southern Africa,,2018,58.45864391200311 -Pakistan,PAK,1965,81.50971138888889 -Pakistan,PAK,1966,82.12597250000005 -Pakistan,PAK,1967,90.87251166666667 -Pakistan,PAK,1968,103.11285027777782 -Pakistan,PAK,1969,103.55751333333332 -Pakistan,PAK,1970,102.00093777777776 -Pakistan,PAK,1971,98.91317416666668 -Pakistan,PAK,1972,87.0857538888889 -Pakistan,PAK,1973,92.88082083333335 -Pakistan,PAK,1974,99.37520777777773 -Pakistan,PAK,1975,107.0604188888889 -Pakistan,PAK,1976,108.62916444444441 -Pakistan,PAK,1977,117.42874027777727 -Pakistan,PAK,1978,125.42269638888946 -Pakistan,PAK,1979,136.77495916666678 -Pakistan,PAK,1980,151.8402319444444 -Pakistan,PAK,1981,163.32450472222212 -Pakistan,PAK,1982,180.0507463888894 -Pakistan,PAK,1983,192.16013083333343 -Pakistan,PAK,1984,203.44179888888942 -Pakistan,PAK,1985,213.84556444444482 -Pakistan,PAK,1986,227.07887222222212 -Pakistan,PAK,1987,253.995507222222 -Pakistan,PAK,1988,269.9352233333332 -Pakistan,PAK,1989,286.5440113888891 -Pakistan,PAK,1990,299.85172583333275 -Pakistan,PAK,1991,317.6647211111107 -Pakistan,PAK,1992,333.4245966666664 -Pakistan,PAK,1993,369.0924908333334 -Pakistan,PAK,1994,382.25578972222274 -Pakistan,PAK,1995,403.17014583333355 -Pakistan,PAK,1996,429.28986694444404 -Pakistan,PAK,1997,416.788996111111 -Pakistan,PAK,1998,445.92294055555504 -Pakistan,PAK,1999,466.70780805555586 -Pakistan,PAK,2000,477.32636476608207 -Pakistan,PAK,2001,488.6689483333336 -Pakistan,PAK,2002,507.3845904970757 -Pakistan,PAK,2003,552.0908177758171 -Pakistan,PAK,2004,615.2535032141433 -Pakistan,PAK,2005,641.4896436343477 -Pakistan,PAK,2006,677.4650598557517 -Pakistan,PAK,2007,721.2290148484326 -Pakistan,PAK,2008,725.8460326523204 -Pakistan,PAK,2009,734.5198691571189 -Pakistan,PAK,2010,737.8021424161349 -Pakistan,PAK,2011,739.0478083074825 -Pakistan,PAK,2012,745.9788321538374 -Pakistan,PAK,2013,754.394666551063 -Pakistan,PAK,2014,777.4800861684739 -Pakistan,PAK,2015,818.5028169652619 -Pakistan,PAK,2016,891.3705949334167 -Pakistan,PAK,2017,941.8986698253368 -Pakistan,PAK,2018,988.9306144800513 -Peru,PER,1965,55.64911037379443 -Peru,PER,1966,67.74417456268738 -Peru,PER,1967,68.89841367126908 -Peru,PER,1968,70.12456241890801 -Peru,PER,1969,70.59141273556679 -Peru,PER,1970,73.66181898992001 -Peru,PER,1971,76.02742258771934 -Peru,PER,1972,68.03415786549706 -Peru,PER,1973,78.17805621345026 -Peru,PER,1974,90.66974027777783 -Peru,PER,1975,93.33479333333334 -Peru,PER,1976,94.81543517543867 -Peru,PER,1977,95.3300612719298 -Peru,PER,1978,94.84345391812865 -Peru,PER,1979,98.63031709064335 -Peru,PER,1980,105.43572893274857 -Peru,PER,1981,110.61801361111114 -Peru,PER,1982,110.42992036549703 -Peru,PER,1983,97.53522755847952 -Peru,PER,1984,102.41490282163747 -Peru,PER,1985,101.7848035818713 -Peru,PER,1986,108.93302320175434 -Peru,PER,1987,117.05238608187182 -Peru,PER,1988,114.27108321637415 -Peru,PER,1989,104.78937311403494 -Peru,PER,1990,103.64565918128646 -Peru,PER,1991,102.5584216520467 -Peru,PER,1992,100.36182925438588 -Peru,PER,1993,109.05330293859643 -Peru,PER,1994,118.68581445906385 -Peru,PER,1995,129.59051722222173 -Peru,PER,1996,134.01868587719324 -Peru,PER,1997,135.2160021052631 -Peru,PER,1998,135.60758409356743 -Peru,PER,1999,139.4869469298243 -Peru,PER,2000,143.4020381140346 -Peru,PER,2001,141.65097627192958 -Peru,PER,2002,145.45171478070216 -Peru,PER,2003,143.59144682748476 -Peru,PER,2004,153.4863157249328 -Peru,PER,2005,160.81911336455408 -Peru,PER,2006,162.392392007789 -Peru,PER,2007,178.47878130835556 -Peru,PER,2008,192.98584073963582 -Peru,PER,2009,198.24617337987087 -Peru,PER,2010,218.14695688041422 -Peru,PER,2011,243.51379020485535 -Peru,PER,2012,248.11340920873334 -Peru,PER,2013,255.16648623712337 -Peru,PER,2014,262.5408741145902 -Peru,PER,2015,281.5746577965368 -Peru,PER,2016,296.63026889337954 -Peru,PER,2017,295.39458372350236 -Peru,PER,2018,314.0540634993502 -Philippines,PHL,1965,52.202767454444434 -Philippines,PHL,1966,56.78875327555559 -Philippines,PHL,1967,64.33969767111117 -Philippines,PHL,1968,71.83840763377775 -Philippines,PHL,1969,77.1553287693334 -Philippines,PHL,1970,89.36354876933338 -Philippines,PHL,1971,103.44811610022217 -Philippines,PHL,1972,100.88745148666663 -Philippines,PHL,1973,118.79554231999984 -Philippines,PHL,1974,112.47292641466673 -Philippines,PHL,1975,121.11309125911173 -Philippines,PHL,1976,125.45400075244456 -Philippines,PHL,1977,135.47402306139196 -Philippines,PHL,1978,141.6660809890649 -Philippines,PHL,1979,147.30162167007072 -Philippines,PHL,1980,144.50163744385966 -Philippines,PHL,1981,143.56752755766078 -Philippines,PHL,1982,139.66858574526313 -Philippines,PHL,1983,148.0339263883511 -Philippines,PHL,1984,136.47978332898262 -Philippines,PHL,1985,131.67699336709978 -Philippines,PHL,1986,133.71368769257344 -Philippines,PHL,1987,145.53066455023338 -Philippines,PHL,1988,160.38955545498274 -Philippines,PHL,1989,173.58099868962518 -Philippines,PHL,1990,180.451155687462 -Philippines,PHL,1991,174.9526822218241 -Philippines,PHL,1992,203.40394374075996 -Philippines,PHL,1993,210.3197168146663 -Philippines,PHL,1994,223.23669130673207 -Philippines,PHL,1995,248.85938418579076 -Philippines,PHL,1996,267.5454176579391 -Philippines,PHL,1997,288.16050076300695 -Philippines,PHL,1998,292.53392530026997 -Philippines,PHL,1999,297.36536976965914 -Philippines,PHL,2000,296.49226878466754 -Philippines,PHL,2001,292.6770447552891 -Philippines,PHL,2002,291.09556181854714 -Philippines,PHL,2003,301.7916291469074 -Philippines,PHL,2004,312.10520668917223 -Philippines,PHL,2005,311.1657462704264 -Philippines,PHL,2006,301.9606246421186 -Philippines,PHL,2007,314.6128348178494 -Philippines,PHL,2008,325.40431165427924 -Philippines,PHL,2009,329.70667464927476 -Philippines,PHL,2010,340.2437875873777 -Philippines,PHL,2011,347.27000800670976 -Philippines,PHL,2012,359.18271986025144 -Philippines,PHL,2013,385.51481372041206 -Philippines,PHL,2014,405.8598027285071 -Philippines,PHL,2015,445.21539173019744 -Philippines,PHL,2016,486.50578306129114 -Philippines,PHL,2017,531.574890258251 -Philippines,PHL,2018,546.9703627670884 -Poland,POL,1965,775.7649199122814 -Poland,POL,1966,790.8742598830413 -Poland,POL,1967,813.9547182456138 -Poland,POL,1968,876.0247563450295 -Poland,POL,1969,935.7557877777782 -Poland,POL,1970,987.3066814327483 -Poland,POL,1971,1018.5762063742687 -Poland,POL,1972,1074.3169619298246 -Poland,POL,1973,1094.4629182309939 -Poland,POL,1974,1130.4312702339187 -Poland,POL,1975,1219.4970078362603 -Poland,POL,1976,1284.871762441526 -Poland,POL,1977,1339.63471679824 -Poland,POL,1978,1406.5731228216428 -Poland,POL,1979,1427.521900935678 -Poland,POL,1980,1494.7284434795267 -Poland,POL,1981,1347.621556213445 -Poland,POL,1982,1372.4031160964926 -Poland,POL,1983,1378.6397531725192 -Poland,POL,1984,1433.2585368859668 -Poland,POL,1985,1465.6225046783586 -Poland,POL,1986,1507.0944150000012 -Poland,POL,1987,1555.9960274122823 -Poland,POL,1988,1526.2596941812824 -Poland,POL,1989,1468.9459230994103 -Poland,POL,1990,1209.837816988309 -Poland,POL,1991,1183.6537266637392 -Poland,POL,1992,1131.843997236842 -Poland,POL,1993,1131.3291238450288 -Poland,POL,1994,1082.587481230994 -Poland,POL,1995,1108.070615675439 -Poland,POL,1996,1163.2469668319948 -Poland,POL,1997,1151.8071260208164 -Poland,POL,1998,1103.3234384315194 -Poland,POL,1999,1081.9110303399002 -Poland,POL,2000,1016.7137011938241 -Poland,POL,2001,1009.491272205594 -Poland,POL,2002,998.6676904291696 -Poland,POL,2003,1033.688926905748 -Poland,POL,2004,1040.29042426566 -Poland,POL,2005,1063.2520857512036 -Poland,POL,2006,1115.871463446458 -Poland,POL,2007,1112.4265526771599 -Poland,POL,2008,1132.3579670048073 -Poland,POL,2009,1092.3501021891482 -Poland,POL,2010,1163.0304893675054 -Poland,POL,2011,1169.105519542944 -Poland,POL,2012,1134.15189913931 -Poland,POL,2013,1137.5935669844696 -Poland,POL,2014,1095.8020384318374 -Poland,POL,2015,1107.6892180955808 -Poland,POL,2016,1156.2003750311228 -Poland,POL,2017,1202.7127334795305 -Poland,POL,2018,1222.9049117756313 -Portugal,PRT,1965,48.419736491228036 -Portugal,PRT,1966,52.7275796491228 -Portugal,PRT,1967,56.44267931286541 -Portugal,PRT,1968,57.581289078947364 -Portugal,PRT,1969,62.14465489766073 -Portugal,PRT,1970,74.88947074529233 -Portugal,PRT,1971,82.56312567529235 -Portugal,PRT,1972,89.65790087849412 -Portugal,PRT,1973,99.2277917858917 -Portugal,PRT,1974,103.83400000997065 -Portugal,PRT,1975,103.60893457921043 -Portugal,PRT,1976,103.0435678620029 -Portugal,PRT,1977,115.34856361593559 -Portugal,PRT,1978,121.38978875690027 -Portugal,PRT,1979,128.8149829269295 -Portugal,PRT,1980,126.01749224964858 -Portugal,PRT,1981,124.65449994864088 -Portugal,PRT,1982,134.40946107454667 -Portugal,PRT,1983,138.87781998693004 -Portugal,PRT,1984,144.2408471986985 -Portugal,PRT,1985,146.84850886820155 -Portugal,PRT,1986,156.32569990361128 -Portugal,PRT,1987,159.8398091670025 -Portugal,PRT,1988,176.69478951495623 -Portugal,PRT,1989,193.20713323316954 -Portugal,PRT,1990,195.09703745278046 -Portugal,PRT,1991,202.5556766861365 -Portugal,PRT,1992,206.11341403094818 -Portugal,PRT,1993,210.8808690690359 -Portugal,PRT,1994,217.91310308412147 -Portugal,PRT,1995,239.9243258720427 -Portugal,PRT,1996,245.43158024745293 -Portugal,PRT,1997,249.53315544944076 -Portugal,PRT,1998,272.6728259069618 -Portugal,PRT,1999,280.74961658062466 -Portugal,PRT,2000,288.8393543261958 -Portugal,PRT,2001,292.5147520298675 -Portugal,PRT,2002,292.2268388289855 -Portugal,PRT,2003,298.21400557190225 -Portugal,PRT,2004,293.97316102715934 -Portugal,PRT,2005,294.5152052069608 -Portugal,PRT,2006,290.86257976531897 -Portugal,PRT,2007,293.23496538587807 -Portugal,PRT,2008,283.4491483082075 -Portugal,PRT,2009,285.46623092296903 -Portugal,PRT,2010,299.9375947248062 -Portugal,PRT,2011,286.72756370045914 -Portugal,PRT,2012,262.3290422625283 -Portugal,PRT,2013,287.62673854780945 -Portugal,PRT,2014,290.14829730531824 -Portugal,PRT,2015,288.2480972026796 -Portugal,PRT,2016,304.589599676552 -Portugal,PRT,2017,299.55875577927867 -Portugal,PRT,2018,302.03474131233224 -Qatar,QAT,1965,1.4110830555555556 -Qatar,QAT,1966,1.4206977777777807 -Qatar,QAT,1967,2.0353772222222277 -Qatar,QAT,1968,6.4395641666666705 -Qatar,QAT,1969,10.118639999999996 -Qatar,QAT,1970,11.52568722222222 -Qatar,QAT,1971,11.481247222222223 -Qatar,QAT,1972,12.70093583333339 -Qatar,QAT,1973,18.021015833333355 -Qatar,QAT,1974,15.712179444444446 -Qatar,QAT,1975,23.44534777777779 -Qatar,QAT,1976,15.060140277777759 -Qatar,QAT,1977,20.983208611111163 -Qatar,QAT,1978,20.128460555555595 -Qatar,QAT,1979,50.366066111111174 -Qatar,QAT,1980,57.59345305555562 -Qatar,QAT,1981,54.04643805555555 -Qatar,QAT,1982,65.34616944444446 -Qatar,QAT,1983,68.47765166666663 -Qatar,QAT,1984,77.44816999999996 -Qatar,QAT,1985,78.76559666666662 -Qatar,QAT,1986,86.18324833333331 -Qatar,QAT,1987,85.93523611111118 -Qatar,QAT,1988,79.16833500000001 -Qatar,QAT,1989,84.59311638888884 -Qatar,QAT,1990,86.29591250000004 -Qatar,QAT,1991,97.28904805555551 -Qatar,QAT,1992,149.68493166666707 -Qatar,QAT,1993,159.1087041666662 -Qatar,QAT,1994,160.40702777777787 -Qatar,QAT,1995,161.397269444444 -Qatar,QAT,1996,120.00891049955447 -Qatar,QAT,1997,128.0749964300569 -Qatar,QAT,1998,136.9990861156409 -Qatar,QAT,1999,153.0242333628694 -Qatar,QAT,2000,134.40784610513356 -Qatar,QAT,2001,130.99409289135008 -Qatar,QAT,2002,147.97374870333346 -Qatar,QAT,2003,166.32390047730556 -Qatar,QAT,2004,194.9699380430714 -Qatar,QAT,2005,224.38952329276776 -Qatar,QAT,2006,236.40234471971297 -Qatar,QAT,2007,258.51683059136155 -Qatar,QAT,2008,285.8869930084897 -Qatar,QAT,2009,288.84139558367457 -Qatar,QAT,2010,336.2061845909785 -Qatar,QAT,2011,388.8741522460516 -Qatar,QAT,2012,441.3505057592387 -Qatar,QAT,2013,474.94342199671075 -Qatar,QAT,2014,510.1648662815231 -Qatar,QAT,2015,560.9858985699799 -Qatar,QAT,2016,553.2538415258134 -Qatar,QAT,2017,568.2392129526874 -Qatar,QAT,2018,561.2283498485921 -Romania,ROU,1965,278.37751221973326 -Romania,ROU,1966,296.93081184458305 -Romania,ROU,1967,331.25340764004983 -Romania,ROU,1968,352.4663252044331 -Romania,ROU,1969,405.10609735853524 -Romania,ROU,1970,431.0914693800548 -Romania,ROU,1971,457.11317288888836 -Romania,ROU,1972,480.8801030277778 -Romania,ROU,1973,523.371410361111 -Romania,ROU,1974,526.7381805833338 -Romania,ROU,1975,572.7531966944447 -Romania,ROU,1976,619.6996700833337 -Romania,ROU,1977,656.8816414861117 -Romania,ROU,1978,707.3153209166671 -Romania,ROU,1979,721.1296463333339 -Romania,ROU,1980,727.752537666667 -Romania,ROU,1981,729.4416629999997 -Romania,ROU,1982,723.4132189722228 -Romania,ROU,1983,718.9331633055561 -Romania,ROU,1984,713.3153116111112 -Romania,ROU,1985,708.6197360833336 -Romania,ROU,1986,726.576386611111 -Romania,ROU,1987,753.4773968888892 -Romania,ROU,1988,763.2865441111114 -Romania,ROU,1989,765.2701127222216 -Romania,ROU,1990,731.5014722098539 -Romania,ROU,1991,619.6971213930984 -Romania,ROU,1992,546.8654389932161 -Romania,ROU,1993,531.0664623178361 -Romania,ROU,1994,500.6055538840343 -Romania,ROU,1995,549.370584360643 -Romania,ROU,1996,545.9892945446195 -Romania,ROU,1997,516.5094712270164 -Romania,ROU,1998,471.6026767850282 -Romania,ROU,1999,414.148746920233 -Romania,ROU,2000,414.3994194599407 -Romania,ROU,2001,419.51431514450263 -Romania,ROU,2002,435.76235590315787 -Romania,ROU,2003,436.93956168690033 -Romania,ROU,2004,452.45135678034984 -Romania,ROU,2005,452.96265789690045 -Romania,ROU,2006,463.13843397976535 -Romania,ROU,2007,447.49393136783596 -Romania,ROU,2008,448.84862112818666 -Romania,ROU,2009,392.5586151862246 -Romania,ROU,2010,395.623395144614 -Romania,ROU,2011,406.3637397934495 -Romania,ROU,2012,391.26095454251396 -Romania,ROU,2013,364.85278858695904 -Romania,ROU,2014,380.351285555321 -Romania,ROU,2015,381.1859331074264 -Romania,ROU,2016,381.8310966226898 -Romania,ROU,2017,387.929549543859 -Romania,ROU,2018,388.41059585273365 -Russia,RUS,1985,9482.709308825404 -Russia,RUS,1986,9649.311777403102 -Russia,RUS,1987,9964.055736769034 -Russia,RUS,1988,10137.93200181171 -Russia,RUS,1989,10175.776004228186 -Russia,RUS,1990,9997.415997277714 -Russia,RUS,1991,9859.208439820572 -Russia,RUS,1992,9485.795540232313 -Russia,RUS,1993,8837.846676048362 -Russia,RUS,1994,8061.008233551562 -Russia,RUS,1995,7624.158266414346 -Russia,RUS,1996,7340.514066576643 -Russia,RUS,1997,6937.409411566539 -Russia,RUS,1998,6924.988945725306 -Russia,RUS,1999,7009.1909052737665 -Russia,RUS,2000,7133.754796805692 -Russia,RUS,2001,7249.310533008121 -Russia,RUS,2002,7227.856592311627 -Russia,RUS,2003,7383.830940116607 -Russia,RUS,2004,7450.070540512971 -Russia,RUS,2005,7447.247301792633 -Russia,RUS,2006,7775.485210693858 -Russia,RUS,2007,7827.583853045998 -Russia,RUS,2008,7868.457846048519 -Russia,RUS,2009,7480.342188394686 -Russia,RUS,2010,7784.319848864072 -Russia,RUS,2011,8045.620475215919 -Russia,RUS,2012,8069.162721730974 -Russia,RUS,2013,7971.7897787654865 -Russia,RUS,2014,8004.99258784359 -Russia,RUS,2015,7854.540776324906 -Russia,RUS,2016,8030.935623270191 -Russia,RUS,2017,8074.469365061114 -Russia,RUS,2018,8382.311937807206 -Saudi Arabia,SAU,1965,235.13954944444387 -Saudi Arabia,SAU,1966,238.32159444444443 -Saudi Arabia,SAU,1967,241.76488944444475 -Saudi Arabia,SAU,1968,245.51804750000036 -Saudi Arabia,SAU,1969,249.66276916666695 -Saudi Arabia,SAU,1970,262.8554524751127 -Saudi Arabia,SAU,1971,263.2718984125364 -Saudi Arabia,SAU,1972,282.16906728968667 -Saudi Arabia,SAU,1973,301.0003534403013 -Saudi Arabia,SAU,1974,319.35376965550313 -Saudi Arabia,SAU,1975,253.26085302874122 -Saudi Arabia,SAU,1976,292.79430501801806 -Saudi Arabia,SAU,1977,345.76250747517855 -Saudi Arabia,SAU,1978,385.33573003284147 -Saudi Arabia,SAU,1979,466.8432867900824 -Saudi Arabia,SAU,1980,419.9413315451032 -Saudi Arabia,SAU,1981,501.26175702106616 -Saudi Arabia,SAU,1982,552.178152623506 -Saudi Arabia,SAU,1983,598.0070396200707 -Saudi Arabia,SAU,1984,715.3230597924538 -Saudi Arabia,SAU,1985,729.7463049964115 -Saudi Arabia,SAU,1986,784.6714873066925 -Saudi Arabia,SAU,1987,831.7505614461143 -Saudi Arabia,SAU,1988,870.2870766728013 -Saudi Arabia,SAU,1989,856.5577729456577 -Saudi Arabia,SAU,1990,928.3495433842471 -Saudi Arabia,SAU,1991,972.4647546311309 -Saudi Arabia,SAU,1992,981.7688147988545 -Saudi Arabia,SAU,1993,1002.8628299933246 -Saudi Arabia,SAU,1994,1159.5804396460567 -Saudi Arabia,SAU,1995,1130.0058626663663 -Saudi Arabia,SAU,1996,1168.577875412465 -Saudi Arabia,SAU,1997,1190.3003152223341 -Saudi Arabia,SAU,1998,1252.5769866521975 -Saudi Arabia,SAU,1999,1275.4559744220596 -Saudi Arabia,SAU,2000,1334.904620135673 -Saudi Arabia,SAU,2001,1422.357438791023 -Saudi Arabia,SAU,2002,1481.4077113369176 -Saudi Arabia,SAU,2003,1569.2160298677643 -Saudi Arabia,SAU,2004,1702.4726706501806 -Saudi Arabia,SAU,2005,1814.5097936615546 -Saudi Arabia,SAU,2006,1883.8568018793046 -Saudi Arabia,SAU,2007,1965.8059863005572 -Saudi Arabia,SAU,2008,2143.6693667292398 -Saudi Arabia,SAU,2009,2259.358613345962 -Saudi Arabia,SAU,2010,2476.7870285328063 -Saudi Arabia,SAU,2011,2556.738332643404 -Saudi Arabia,SAU,2012,2710.5110061882347 -Saudi Arabia,SAU,2013,2721.6951855160833 -Saudi Arabia,SAU,2014,2917.3702970364943 -Saudi Arabia,SAU,2015,3011.761565652851 -Saudi Arabia,SAU,2016,3049.0403900257143 -Saudi Arabia,SAU,2017,3056.86728194925 -Saudi Arabia,SAU,2018,3014.361651674049 -Singapore,SGP,1965,47.88800608208307 -Singapore,SGP,1966,54.74372472593634 -Singapore,SGP,1967,65.75601814345518 -Singapore,SGP,1968,81.7345380347316 -Singapore,SGP,1969,80.31851645440473 -Singapore,SGP,1970,87.20537276735871 -Singapore,SGP,1971,75.69787498888894 -Singapore,SGP,1972,94.78758629444442 -Singapore,SGP,1973,89.32662162666671 -Singapore,SGP,1974,88.05851921000001 -Singapore,SGP,1975,85.98596349111108 -Singapore,SGP,1976,101.99188484 -Singapore,SGP,1977,102.37463218222226 -Singapore,SGP,1978,105.37364183666672 -Singapore,SGP,1979,112.3333172311111 -Singapore,SGP,1980,111.57115580666672 -Singapore,SGP,1981,128.35980489222254 -Singapore,SGP,1982,124.89365019666637 -Singapore,SGP,1983,132.3115753933333 -Singapore,SGP,1984,139.1025353144444 -Singapore,SGP,1985,141.8936481833334 -Singapore,SGP,1986,164.70839629163737 -Singapore,SGP,1987,173.1890489638598 -Singapore,SGP,1988,200.3819526383041 -Singapore,SGP,1989,228.48990230608158 -Singapore,SGP,1990,273.05594639497133 -Singapore,SGP,1991,278.17759507988353 -Singapore,SGP,1992,298.45011321988267 -Singapore,SGP,1993,326.07458554210564 -Singapore,SGP,1994,372.94617344654944 -Singapore,SGP,1995,388.81507784210515 -Singapore,SGP,1996,392.36287781766106 -Singapore,SGP,1997,412.6979379532167 -Singapore,SGP,1998,418.4181154532163 -Singapore,SGP,1999,414.2465807309939 -Singapore,SGP,2000,442.9463664163383 -Singapore,SGP,2001,502.9030971812112 -Singapore,SGP,2002,494.058255517105 -Singapore,SGP,2003,466.80531672005907 -Singapore,SGP,2004,522.5090069602345 -Singapore,SGP,2005,548.9698220386481 -Singapore,SGP,2006,604.0759049013675 -Singapore,SGP,2007,648.5768508341746 -Singapore,SGP,2008,690.0319429948963 -Singapore,SGP,2009,742.1131711935765 -Singapore,SGP,2010,797.5503177816918 -Singapore,SGP,2011,829.2264222156921 -Singapore,SGP,2012,832.7355053274854 -Singapore,SGP,2013,855.9832544809799 -Singapore,SGP,2014,881.6477824965602 -Singapore,SGP,2015,937.4602697941107 -Singapore,SGP,2016,974.9751933972503 -Singapore,SGP,2017,1005.8378576206902 -Singapore,SGP,2018,1018.3978038199266 -Slovakia,SVK,1965,106.11284396353824 -Slovakia,SVK,1966,109.89042001357255 -Slovakia,SVK,1967,110.56981283386952 -Slovakia,SVK,1968,122.14001976528564 -Slovakia,SVK,1969,127.69210873049988 -Slovakia,SVK,1970,141.0935421923959 -Slovakia,SVK,1971,151.4397955263156 -Slovakia,SVK,1972,159.26610077485347 -Slovakia,SVK,1973,165.7440582017539 -Slovakia,SVK,1974,174.1265241666671 -Slovakia,SVK,1975,182.39190188596467 -Slovakia,SVK,1976,189.1896031725148 -Slovakia,SVK,1977,198.8233715497076 -Slovakia,SVK,1978,208.70799656432692 -Slovakia,SVK,1979,214.4380975146203 -Slovakia,SVK,1980,217.39169757309907 -Slovakia,SVK,1981,215.640265321637 -Slovakia,SVK,1982,213.26003748537963 -Slovakia,SVK,1983,213.78152179824545 -Slovakia,SVK,1984,230.3121438742687 -Slovakia,SVK,1985,237.05884540935637 -Slovakia,SVK,1986,234.6468477923979 -Slovakia,SVK,1987,239.9563530263162 -Slovakia,SVK,1988,241.23400299707606 -Slovakia,SVK,1989,244.54764678362534 -Slovakia,SVK,1990,245.2633335149122 -Slovakia,SVK,1991,219.3230719047949 -Slovakia,SVK,1992,210.8363483261397 -Slovakia,SVK,1993,206.48253457333263 -Slovakia,SVK,1994,202.83233573233872 -Slovakia,SVK,1995,205.80599208643238 -Slovakia,SVK,1996,207.51034088836278 -Slovakia,SVK,1997,203.71859161853754 -Slovakia,SVK,1998,205.7859553369584 -Slovakia,SVK,1999,207.13620785204643 -Slovakia,SVK,2000,213.34873628555547 -Slovakia,SVK,2001,219.81463008508794 -Slovakia,SVK,2002,221.7937961168416 -Slovakia,SVK,2003,215.69620518485374 -Slovakia,SVK,2004,210.3109949373679 -Slovakia,SVK,2005,222.07759222216353 -Slovakia,SVK,2006,214.5615002872509 -Slovakia,SVK,2007,201.73634616543782 -Slovakia,SVK,2008,209.1280457906433 -Slovakia,SVK,2009,190.83470008625727 -Slovakia,SVK,2010,203.52642987608138 -Slovakia,SVK,2011,195.69533345537963 -Slovakia,SVK,2012,188.3129936529239 -Slovakia,SVK,2013,196.32114612918124 -Slovakia,SVK,2014,180.5336911070755 -Slovakia,SVK,2015,182.49823236736847 -Slovakia,SVK,2016,183.56220191029422 -Slovakia,SVK,2017,194.34416435502902 -Slovakia,SVK,2018,189.77262077769967 -Slovenia,SVN,1990,67.37831896948532 -Slovenia,SVN,1991,67.21557120857148 -Slovenia,SVN,1992,62.94952527274258 -Slovenia,SVN,1993,64.85571848226574 -Slovenia,SVN,1994,68.8945399484989 -Slovenia,SVN,1995,72.45526663662318 -Slovenia,SVN,1996,76.02518220283181 -Slovenia,SVN,1997,77.89276950995176 -Slovenia,SVN,1998,77.99963929602514 -Slovenia,SVN,1999,77.12634948962157 -Slovenia,SVN,2000,76.35893936103223 -Slovenia,SVN,2001,80.00493825072839 -Slovenia,SVN,2002,79.83062749324043 -Slovenia,SVN,2003,78.5622754311731 -Slovenia,SVN,2004,83.35880323018228 -Slovenia,SVN,2005,83.63951630717278 -Slovenia,SVN,2006,84.58243317349836 -Slovenia,SVN,2007,84.29229414342514 -Slovenia,SVN,2008,92.34217801735721 -Slovenia,SVN,2009,85.3552331337556 -Slovenia,SVN,2010,85.70565171932716 -Slovenia,SVN,2011,83.43816412470467 -Slovenia,SVN,2012,81.16618246805251 -Slovenia,SVN,2013,80.37153765703188 -Slovenia,SVN,2014,82.54102895160895 -Slovenia,SVN,2015,74.69818676441669 -Slovenia,SVN,2016,79.96326776318249 -Slovenia,SVN,2017,80.06013886012956 -Slovenia,SVN,2018,81.71976185988274 -South & Central America,,1965,1279.7271009268313 -South & Central America,,1966,1356.6058341186042 -South & Central America,,1967,1411.6974386344446 -South & Central America,,1968,1499.929633234299 -South & Central America,,1969,1574.1134419435575 -South & Central America,,1970,1665.5268029973338 -South & Central America,,1971,1843.86526286781 -South & Central America,,1972,1984.6942085243288 -South & Central America,,1973,2181.405520002014 -South & Central America,,1974,2289.36082010341 -South & Central America,,1975,2315.2719568566326 -South & Central America,,1976,2474.81423443973 -South & Central America,,1977,2617.749352410968 -South & Central America,,1978,2764.2448197643184 -South & Central America,,1979,2943.9986759424073 -South & Central America,,1980,3073.952522806584 -South & Central America,,1981,3068.8928483982922 -South & Central America,,1982,3107.004639982422 -South & Central America,,1983,3136.1974050774397 -South & Central America,,1984,3252.103830091413 -South & Central America,,1985,3334.38406172387 -South & Central America,,1986,3554.1439826231685 -South & Central America,,1987,3683.508122575658 -South & Central America,,1988,3790.615078882327 -South & Central America,,1989,3852.5525490383798 -South & Central America,,1990,3867.1900456742783 -South & Central America,,1991,3967.629743259811 -South & Central America,,1992,4150.314644160769 -South & Central America,,1993,4307.676915373711 -South & Central America,,1994,4556.5925512720605 -South & Central America,,1995,4759.688661577169 -South & Central America,,1996,4962.58888309277 -South & Central America,,1997,5227.777552859563 -South & Central America,,1998,5424.772730212119 -South & Central America,,1999,5403.935612765469 -South & Central America,,2000,5548.407361049222 -South & Central America,,2001,5562.61624186774 -South & Central America,,2002,5628.0820478358955 -South & Central America,,2003,5688.2130767633935 -South & Central America,,2004,5994.004763458445 -South & Central America,,2005,6200.749646839556 -South & Central America,,2006,6513.504184201333 -South & Central America,,2007,6779.571489716914 -South & Central America,,2008,6987.503962545049 -South & Central America,,2009,6910.029101538498 -South & Central America,,2010,7292.796799065763 -South & Central America,,2011,7621.154225214953 -South & Central America,,2012,7802.063609242715 -South & Central America,,2013,7977.3971357195 -South & Central America,,2014,8058.338746333165 -South & Central America,,2015,8086.0951451537485 -South & Central America,,2016,8037.623259487872 -South & Central America,,2017,8138.996739731163 -South & Central America,,2018,8164.427125066203 -South Africa,ZAF,1965,354.1191002777781 -South Africa,ZAF,1966,356.3224891666663 -South Africa,ZAF,1967,371.07797055555494 -South Africa,ZAF,1968,391.63696749999934 -South Africa,ZAF,1969,403.2526730555555 -South Africa,ZAF,1970,421.40396333333274 -South Africa,ZAF,1971,453.9394615733765 -South Africa,ZAF,1972,468.73799219244603 -South Africa,ZAF,1973,502.19227180421416 -South Africa,ZAF,1974,518.7013038010691 -South Africa,ZAF,1975,553.0149645977243 -South Africa,ZAF,1976,576.9856878031536 -South Africa,ZAF,1977,591.1289190649284 -South Africa,ZAF,1978,585.3805786136517 -South Africa,ZAF,1979,604.7622409483878 -South Africa,ZAF,1980,645.570898643501 -South Africa,ZAF,1981,751.3882964429765 -South Africa,ZAF,1982,808.3848727661544 -South Africa,ZAF,1983,819.2595350887319 -South Africa,ZAF,1984,894.5310999076569 -South Africa,ZAF,1985,913.2585405418553 -South Africa,ZAF,1986,929.3601288822613 -South Africa,ZAF,1987,944.6547446694094 -South Africa,ZAF,1988,1039.109813810494 -South Africa,ZAF,1989,992.5381639092616 -South Africa,ZAF,1990,1027.6002733517591 -South Africa,ZAF,1991,1019.7207382846435 -South Africa,ZAF,1992,1024.8807478247077 -South Africa,ZAF,1993,1023.7164381500145 -South Africa,ZAF,1994,1066.9625368686227 -South Africa,ZAF,1995,1115.0169767844927 -South Africa,ZAF,1996,1136.8748782056846 -South Africa,ZAF,1997,1162.175644117263 -South Africa,ZAF,1998,1141.575945955568 -South Africa,ZAF,1999,1180.7544129427135 -South Africa,ZAF,2000,1182.0749654223932 -South Africa,ZAF,2001,1188.7589638241645 -South Africa,ZAF,2002,1157.743247554719 -South Africa,ZAF,2003,1255.0428003188144 -South Africa,ZAF,2004,1369.8906232034292 -South Africa,ZAF,2005,1298.0345228528288 -South Africa,ZAF,2006,1324.293744075201 -South Africa,ZAF,2007,1359.9630045728006 -South Africa,ZAF,2008,1458.3589577111545 -South Africa,ZAF,2009,1454.5601040016638 -South Africa,ZAF,2010,1469.3775456782482 -South Africa,ZAF,2011,1449.199406606195 -South Africa,ZAF,2012,1427.4534128781859 -South Africa,ZAF,2013,1432.8988996405174 -South Africa,ZAF,2014,1451.3316880445013 -South Africa,ZAF,2015,1417.2115870912733 -South Africa,ZAF,2016,1440.720113116093 -South Africa,ZAF,2017,1416.6440067603744 -South Africa,ZAF,2018,1413.2006437960856 -South Korea,KOR,1965,74.58588945906426 -South Korea,KOR,1966,90.44770513157893 -South Korea,KOR,1967,103.97435779239761 -South Korea,KOR,1968,119.21718678362588 -South Korea,KOR,1969,143.86669821637403 -South Korea,KOR,1970,167.06857353801132 -South Korea,KOR,1971,180.76065244152045 -South Korea,KOR,1972,187.40769611111133 -South Korea,KOR,1973,231.91933271929844 -South Korea,KOR,1974,240.94950856725163 -South Korea,KOR,1975,265.04951501461943 -South Korea,KOR,1976,296.54853207602343 -South Korea,KOR,1977,341.1812586257309 -South Korea,KOR,1978,381.63854994151995 -South Korea,KOR,1979,439.75539269005856 -South Korea,KOR,1980,452.69093646198854 -South Korea,KOR,1981,473.89479334795374 -South Korea,KOR,1982,474.20624168128666 -South Korea,KOR,1983,514.45100124269 -South Korea,KOR,1984,561.6335399853805 -South Korea,KOR,1985,619.6834888157889 -South Korea,KOR,1986,693.6392939239762 -South Korea,KOR,1987,767.1020035847948 -South Korea,KOR,1988,857.7951333830404 -South Korea,KOR,1989,931.5088478947358 -South Korea,KOR,1990,1053.6208362543857 -South Korea,KOR,1991,1192.8837871637454 -South Korea,KOR,1992,1347.0660483801116 -South Korea,KOR,1993,1477.7308705146197 -South Korea,KOR,1994,1595.1322356052628 -South Korea,KOR,1995,1742.096823307021 -South Korea,KOR,1996,1924.1948554035118 -South Korea,KOR,1997,2114.287416131576 -South Korea,KOR,1998,1948.6998621725156 -South Korea,KOR,1999,2121.7919692309947 -South Korea,KOR,2000,2250.5891694795287 -South Korea,KOR,2001,2303.974427417831 -South Korea,KOR,2002,2412.371252201751 -South Korea,KOR,2003,2491.5472859871297 -South Korea,KOR,2004,2539.6827563967972 -South Korea,KOR,2005,2622.410391496292 -South Korea,KOR,2006,2667.567088417482 -South Korea,KOR,2007,2754.386833963878 -South Korea,KOR,2008,2807.999292179777 -South Korea,KOR,2009,2821.274024512864 -South Korea,KOR,2010,3038.6196506050155 -South Korea,KOR,2011,3179.7044888530163 -South Korea,KOR,2012,3213.602521472998 -South Korea,KOR,2013,3217.7942198929973 -South Korea,KOR,2014,3250.91395551793 -South Korea,KOR,2015,3317.514921253245 -South Korea,KOR,2016,3398.790004175518 -South Korea,KOR,2017,3455.4880061924287 -South Korea,KOR,2018,3500.882556620662 -Spain,ESP,1965,331.9111558333337 -Spain,ESP,1966,374.2080717543865 -Spain,ESP,1967,405.2286703508776 -Spain,ESP,1968,426.1915873976605 -Spain,ESP,1969,481.54221133040875 -Spain,ESP,1970,520.8526739473687 -Spain,ESP,1971,572.9185021052637 -Spain,ESP,1972,615.082326403509 -Spain,ESP,1973,677.5371523830411 -Spain,ESP,1974,706.7947635818715 -Spain,ESP,1975,726.7123025730999 -Spain,ESP,1976,778.3986565643271 -Spain,ESP,1977,801.8580620029245 -Spain,ESP,1978,805.075184912281 -Spain,ESP,1979,866.5519423684206 -Spain,ESP,1980,876.1373226754388 -Spain,ESP,1981,884.8853573391814 -Spain,ESP,1982,883.1727844152044 -Spain,ESP,1983,903.6773203508768 -Spain,ESP,1984,914.3013579678365 -Spain,ESP,1985,906.0048892836259 -Spain,ESP,1986,925.0857547953219 -Spain,ESP,1987,958.6584368859658 -Spain,ESP,1988,997.5828200438601 -Spain,ESP,1989,1050.250815571504 -Spain,ESP,1990,1049.1435284447884 -Spain,ESP,1991,1086.0181039316956 -Spain,ESP,1992,1141.7617360123736 -Spain,ESP,1993,1102.5184272823624 -Spain,ESP,1994,1154.337383733031 -Spain,ESP,1995,1200.6912937487455 -Spain,ESP,1996,1243.5081663124413 -Spain,ESP,1997,1314.6392036966836 -Spain,ESP,1998,1377.3807106531397 -Spain,ESP,1999,1423.2617010123022 -Spain,ESP,2000,1503.5571002124857 -Spain,ESP,2001,1572.8057575422968 -Spain,ESP,2002,1596.1325010748774 -Spain,ESP,2003,1689.7494516841462 -Spain,ESP,2004,1760.3006912610185 -Spain,ESP,2005,1778.871256657398 -Spain,ESP,2006,1804.8998344255479 -Spain,ESP,2007,1845.0234661257261 -Spain,ESP,2008,1796.8429905706835 -Spain,ESP,2009,1667.6175933539967 -Spain,ESP,2010,1703.4489246741873 -Spain,ESP,2011,1673.4844075850076 -Spain,ESP,2012,1665.2822640259965 -Spain,ESP,2013,1580.4892319678515 -Spain,ESP,2014,1553.1131828203756 -Spain,ESP,2015,1574.7866971812025 -Spain,ESP,2016,1592.66319573843 -Spain,ESP,2017,1614.2450000259842 -Spain,ESP,2018,1643.9903646863836 -Sri Lanka,LKA,1965,6.444912959828844 -Sri Lanka,LKA,1966,6.666719102852222 -Sri Lanka,LKA,1967,6.831678476680383 -Sri Lanka,LKA,1968,7.1377182223792985 -Sri Lanka,LKA,1969,7.4715411415720006 -Sri Lanka,LKA,1970,13.999938105847923 -Sri Lanka,LKA,1971,13.147849929385941 -Sri Lanka,LKA,1972,14.21931064576023 -Sri Lanka,LKA,1973,14.324967020906383 -Sri Lanka,LKA,1974,12.522781413450256 -Sri Lanka,LKA,1975,12.410445005847908 -Sri Lanka,LKA,1976,12.428538666549656 -Sri Lanka,LKA,1977,13.308670923099452 -Sri Lanka,LKA,1978,15.357307686456108 -Sri Lanka,LKA,1979,15.93603507970764 -Sri Lanka,LKA,1980,16.08906218544449 -Sri Lanka,LKA,1981,18.513120536684216 -Sri Lanka,LKA,1982,20.535428426456182 -Sri Lanka,LKA,1983,21.024402588070128 -Sri Lanka,LKA,1984,20.748119634239792 -Sri Lanka,LKA,1985,20.1821055890935 -Sri Lanka,LKA,1986,20.718546626461965 -Sri Lanka,LKA,1987,21.38799712897659 -Sri Lanka,LKA,1988,21.999153938742687 -Sri Lanka,LKA,1989,21.78863312459067 -Sri Lanka,LKA,1990,23.671965107017485 -Sri Lanka,LKA,1991,24.465860496257292 -Sri Lanka,LKA,1992,26.764126468918118 -Sri Lanka,LKA,1993,28.586070929321544 -Sri Lanka,LKA,1994,31.359571238128638 -Sri Lanka,LKA,1995,34.19573912231574 -Sri Lanka,LKA,1996,35.787402567058436 -Sri Lanka,LKA,1997,38.59882776900577 -Sri Lanka,LKA,1998,41.83763788622215 -Sri Lanka,LKA,1999,45.414854850374255 -Sri Lanka,LKA,2000,49.204552605163684 -Sri Lanka,LKA,2001,48.278018021046705 -Sri Lanka,LKA,2002,49.45829272175438 -Sri Lanka,LKA,2003,51.39618828282457 -Sri Lanka,LKA,2004,49.749424922964856 -Sri Lanka,LKA,2005,57.192657653999916 -Sri Lanka,LKA,2006,62.19658141680404 -Sri Lanka,LKA,2007,63.43179509946482 -Sri Lanka,LKA,2008,59.310650810286496 -Sri Lanka,LKA,2009,61.27915251909064 -Sri Lanka,LKA,2010,65.75653072100138 -Sri Lanka,LKA,2011,69.11883894517045 -Sri Lanka,LKA,2012,69.65344334884576 -Sri Lanka,LKA,2013,71.12746275521577 -Sri Lanka,LKA,2014,63.99787140711844 -Sri Lanka,LKA,2015,81.46134805135017 -Sri Lanka,LKA,2016,86.64604956589253 -Sri Lanka,LKA,2017,91.27854777835996 -Sri Lanka,LKA,2018,94.26677639746917 -Sweden,SWE,1965,377.91974683041354 -Sweden,SWE,1966,404.34891266591893 -Sweden,SWE,1967,413.23263275310387 -Sweden,SWE,1968,442.60619598704216 -Sweden,SWE,1969,444.77469872820967 -Sweden,SWE,1970,473.075897847598 -Sweden,SWE,1971,478.34171961085906 -Sweden,SWE,1972,492.39446555434955 -Sweden,SWE,1973,519.790814406547 -Sweden,SWE,1974,480.39051804560125 -Sweden,SWE,1975,508.1877751323416 -Sweden,SWE,1976,541.5161350546063 -Sweden,SWE,1977,533.7704392768397 -Sweden,SWE,1978,622.0772440808533 -Sweden,SWE,1979,657.1103063629519 -Sweden,SWE,1980,617.0493973079618 -Sweden,SWE,1981,609.6061458668622 -Sweden,SWE,1982,579.8406647596735 -Sweden,SWE,1983,572.8587315537983 -Sweden,SWE,1984,604.5952002831918 -Sweden,SWE,1985,655.7647170491053 -Sweden,SWE,1986,681.9574577882508 -Sweden,SWE,1987,664.2609781030494 -Sweden,SWE,1988,649.1705971965871 -Sweden,SWE,1989,635.729418381636 -Sweden,SWE,1990,644.2835624514374 -Sweden,SWE,1991,610.4042458843104 -Sweden,SWE,1992,614.3886756664571 -Sweden,SWE,1993,607.7101260691628 -Sweden,SWE,1994,610.3836325073494 -Sweden,SWE,1995,615.4367611496201 -Sweden,SWE,1996,601.6070385549915 -Sweden,SWE,1997,618.8341020454086 -Sweden,SWE,1998,670.1602113304598 -Sweden,SWE,1999,650.6046897045998 -Sweden,SWE,2000,600.5894375812852 -Sweden,SWE,2001,646.954833767115 -Sweden,SWE,2002,609.981866941631 -Sweden,SWE,2003,588.9647270762136 -Sweden,SWE,2004,633.9334718030173 -Sweden,SWE,2005,651.8258378524001 -Sweden,SWE,2006,614.6945211641356 -Sweden,SWE,2007,626.2307478755488 -Sweden,SWE,2008,616.9333097537533 -Sweden,SWE,2009,566.0047426102143 -Sweden,SWE,2010,602.3222860700382 -Sweden,SWE,2011,597.9484593988275 -Sweden,SWE,2012,636.192095812711 -Sweden,SWE,2013,599.1411130989887 -Sweden,SWE,2014,598.8164910171449 -Sweden,SWE,2015,619.3669397328397 -Sweden,SWE,2016,611.2853737218267 -Sweden,SWE,2017,632.4463129746255 -Sweden,SWE,2018,623.4503771084262 -Switzerland,CHE,1965,174.62680250000054 -Switzerland,CHE,1966,187.14934669590653 -Switzerland,CHE,1967,199.7300963596496 -Switzerland,CHE,1968,210.38237738304107 -Switzerland,CHE,1969,218.25464815789513 -Switzerland,CHE,1970,241.1208745760238 -Switzerland,CHE,1971,248.71091511695857 -Switzerland,CHE,1972,241.72293624269025 -Switzerland,CHE,1973,267.5977064327491 -Switzerland,CHE,1974,252.52462937134504 -Switzerland,CHE,1975,262.42674887426955 -Switzerland,CHE,1976,252.98123782163745 -Switzerland,CHE,1977,279.2532520321632 -Switzerland,CHE,1978,274.89388055555514 -Switzerland,CHE,1979,268.3628291374272 -Switzerland,CHE,1980,291.4517058040938 -Switzerland,CHE,1981,289.8311546783632 -Switzerland,CHE,1982,283.45430482456106 -Switzerland,CHE,1983,295.49484178362513 -Switzerland,CHE,1984,286.5782852046784 -Switzerland,CHE,1985,308.52871181223566 -Switzerland,CHE,1986,324.28097859397246 -Switzerland,CHE,1987,321.5869266900292 -Switzerland,CHE,1988,323.84084830654115 -Switzerland,CHE,1989,303.50727818237766 -Switzerland,CHE,1990,316.849335260219 -Switzerland,CHE,1991,325.1938584620442 -Switzerland,CHE,1992,330.34487240115783 -Switzerland,CHE,1993,328.77850666561653 -Switzerland,CHE,1994,344.9686395744836 -Switzerland,CHE,1995,327.1352231513191 -Switzerland,CHE,1996,317.44759412903176 -Switzerland,CHE,1997,338.6690471109986 -Switzerland,CHE,1998,340.7601506914709 -Switzerland,CHE,1999,352.0376471258982 -Switzerland,CHE,2000,343.6391540697126 -Switzerland,CHE,2001,368.0389306075289 -Switzerland,CHE,2002,344.1554070681881 -Switzerland,CHE,2003,341.3076010471752 -Switzerland,CHE,2004,337.439417671801 -Switzerland,CHE,2005,325.03893182455073 -Switzerland,CHE,2006,339.39438637002075 -Switzerland,CHE,2007,335.68050203988327 -Switzerland,CHE,2008,348.01569974031923 -Switzerland,CHE,2009,348.25093864734976 -Switzerland,CHE,2010,339.5255802576776 -Switzerland,CHE,2011,323.6070739775186 -Switzerland,CHE,2012,342.39821871383947 -Switzerland,CHE,2013,352.3434575144884 -Switzerland,CHE,2014,337.5544083862522 -Switzerland,CHE,2015,330.57025933381965 -Switzerland,CHE,2016,311.3757138318392 -Switzerland,CHE,2017,312.6848992229194 -Switzerland,CHE,2018,323.4946040971533 -Taiwan,TWN,1965,72.37542833333337 -Taiwan,TWN,1966,77.54421194444446 -Taiwan,TWN,1967,83.93414527777777 -Taiwan,TWN,1968,96.85181416666666 -Taiwan,TWN,1969,100.38811722222222 -Taiwan,TWN,1970,108.56853120698608 -Taiwan,TWN,1971,134.22208253338854 -Taiwan,TWN,1972,143.30193835887482 -Taiwan,TWN,1973,167.7154378759445 -Taiwan,TWN,1974,160.1684053811113 -Taiwan,TWN,1975,176.39175958672277 -Taiwan,TWN,1976,215.4805213666673 -Taiwan,TWN,1977,236.68954425555606 -Taiwan,TWN,1978,279.00232293333306 -Taiwan,TWN,1979,295.68643971111175 -Taiwan,TWN,1980,312.0369475555556 -Taiwan,TWN,1981,290.9143051888894 -Taiwan,TWN,1982,293.84095353567267 -Taiwan,TWN,1983,329.065829255731 -Taiwan,TWN,1984,348.0357670001748 -Taiwan,TWN,1985,406.37230749220424 -Taiwan,TWN,1986,441.62634490030194 -Taiwan,TWN,1987,474.0482626334722 -Taiwan,TWN,1988,521.0454487128143 -Taiwan,TWN,1989,553.3325035686493 -Taiwan,TWN,1990,587.0940534130566 -Taiwan,TWN,1991,620.3058045376746 -Taiwan,TWN,1992,654.1256405686923 -Taiwan,TWN,1993,694.042176089886 -Taiwan,TWN,1994,734.5329251221256 -Taiwan,TWN,1995,777.9564493611532 -Taiwan,TWN,1996,811.3795232246058 -Taiwan,TWN,1997,865.5435186578187 -Taiwan,TWN,1998,914.9529650721591 -Taiwan,TWN,1999,1011.0289157729976 -Taiwan,TWN,2000,1031.63097009665 -Taiwan,TWN,2001,1065.2037043045348 -Taiwan,TWN,2002,1109.9839399989494 -Taiwan,TWN,2003,1157.7316362664574 -Taiwan,TWN,2004,1219.1193665116366 -Taiwan,TWN,2005,1225.8938999940685 -Taiwan,TWN,2006,1252.8494235628532 -Taiwan,TWN,2007,1309.082067942732 -Taiwan,TWN,2008,1239.3516457518292 -Taiwan,TWN,2009,1217.8812387211378 -Taiwan,TWN,2010,1290.3289848507425 -Taiwan,TWN,2011,1271.3528903297577 -Taiwan,TWN,2012,1268.3423897146579 -Taiwan,TWN,2013,1291.6366583143842 -Taiwan,TWN,2014,1323.0408060031916 -Taiwan,TWN,2015,1313.110270218907 -Taiwan,TWN,2016,1337.3265182863615 -Taiwan,TWN,2017,1361.1787852404482 -Taiwan,TWN,2018,1377.2109363312381 -Thailand,THA,1965,31.10393972222221 -Thailand,THA,1966,36.796854999999944 -Thailand,THA,1967,42.21545194444447 -Thailand,THA,1968,53.469035833333386 -Thailand,THA,1969,56.486598055555575 -Thailand,THA,1970,67.25780000000005 -Thailand,THA,1971,74.49707166666671 -Thailand,THA,1972,90.9693080933333 -Thailand,THA,1973,96.45767683222225 -Thailand,THA,1974,100.3353860833333 -Thailand,THA,1975,107.8818439477778 -Thailand,THA,1976,113.88008929444447 -Thailand,THA,1977,125.79274529333274 -Thailand,THA,1978,137.8032276833329 -Thailand,THA,1979,145.17106713999956 -Thailand,THA,1980,146.45013967333387 -Thailand,THA,1981,147.33300462777834 -Thailand,THA,1982,150.41879322333375 -Thailand,THA,1983,166.48583410888912 -Thailand,THA,1984,184.06604817999994 -Thailand,THA,1985,192.9748406577774 -Thailand,THA,1986,205.49161370210376 -Thailand,THA,1987,236.11232134900013 -Thailand,THA,1988,264.6552951319808 -Thailand,THA,1989,304.03447146521853 -Thailand,THA,1990,359.9651555960608 -Thailand,THA,1991,397.6519872818865 -Thailand,THA,1992,439.0356419016045 -Thailand,THA,1993,500.10805882830414 -Thailand,THA,1994,560.6388285503566 -Thailand,THA,1995,614.3886110627328 -Thailand,THA,1996,694.674562101187 -Thailand,THA,1997,732.2589330734825 -Thailand,THA,1998,678.519878937449 -Thailand,THA,1999,725.5313333101228 -Thailand,THA,2000,741.9738468022564 -Thailand,THA,2001,781.9540745029093 -Thailand,THA,2002,859.7331476510608 -Thailand,THA,2003,931.2313554627605 -Thailand,THA,2004,997.598418634358 -Thailand,THA,2005,1031.035510287184 -Thailand,THA,2006,1033.2407020584792 -Thailand,THA,2007,1094.454311679204 -Thailand,THA,2008,1107.7215776150508 -Thailand,THA,2009,1146.021930027329 -Thailand,THA,2010,1218.6103024712513 -Thailand,THA,2011,1266.467837238018 -Thailand,THA,2012,1354.967457618664 -Thailand,THA,2013,1376.2144435712057 -Thailand,THA,2014,1414.3377210263734 -Thailand,THA,2015,1450.6447927181287 -Thailand,THA,2016,1480.8888108781794 -Thailand,THA,2017,1514.1208435017254 -Thailand,THA,2018,1546.4419471160816 -Trinidad and Tobago,TTO,1965,34.432663786830844 -Trinidad and Tobago,TTO,1966,36.70505356495641 -Trinidad and Tobago,TTO,1967,39.161894375111196 -Trinidad and Tobago,TTO,1968,40.38805762636588 -Trinidad and Tobago,TTO,1969,41.63059653202265 -Trinidad and Tobago,TTO,1970,44.680581821396714 -Trinidad and Tobago,TTO,1971,45.14053665204673 -Trinidad and Tobago,TTO,1972,62.22451387426898 -Trinidad and Tobago,TTO,1973,61.72050884502926 -Trinidad and Tobago,TTO,1974,59.45070225146196 -Trinidad and Tobago,TTO,1975,47.90182964912281 -Trinidad and Tobago,TTO,1976,53.862846666666684 -Trinidad and Tobago,TTO,1977,56.037333538011666 -Trinidad and Tobago,TTO,1978,56.41931801169588 -Trinidad and Tobago,TTO,1979,49.847361067251406 -Trinidad and Tobago,TTO,1980,47.935675774853785 -Trinidad and Tobago,TTO,1981,50.620115555555515 -Trinidad and Tobago,TTO,1982,59.45352369883039 -Trinidad and Tobago,TTO,1983,58.00834248538009 -Trinidad and Tobago,TTO,1984,57.179501081871265 -Trinidad and Tobago,TTO,1985,59.09269184210525 -Trinidad and Tobago,TTO,1986,61.43678077485381 -Trinidad and Tobago,TTO,1987,57.99638839181282 -Trinidad and Tobago,TTO,1988,63.73887790935663 -Trinidad and Tobago,TTO,1989,62.706841052631496 -Trinidad and Tobago,TTO,1990,69.5825728362573 -Trinidad and Tobago,TTO,1991,69.37485020104533 -Trinidad and Tobago,TTO,1992,73.42962831079637 -Trinidad and Tobago,TTO,1993,77.40183427524853 -Trinidad and Tobago,TTO,1994,82.02533671828249 -Trinidad and Tobago,TTO,1995,88.95346379269101 -Trinidad and Tobago,TTO,1996,100.79172063827515 -Trinidad and Tobago,TTO,1997,100.76508895896815 -Trinidad and Tobago,TTO,1998,102.28092979230155 -Trinidad and Tobago,TTO,1999,113.6789657112011 -Trinidad and Tobago,TTO,2000,112.1454045287837 -Trinidad and Tobago,TTO,2001,124.87479187699716 -Trinidad and Tobago,TTO,2002,134.44520385040707 -Trinidad and Tobago,TTO,2003,141.61772213924084 -Trinidad and Tobago,TTO,2004,155.7403892608923 -Trinidad and Tobago,TTO,2005,167.84876787553344 -Trinidad and Tobago,TTO,2006,179.53401356191037 -Trinidad and Tobago,TTO,2007,189.9588344047587 -Trinidad and Tobago,TTO,2008,184.52342709455442 -Trinidad and Tobago,TTO,2009,186.57911888055207 -Trinidad and Tobago,TTO,2010,203.54977423739277 -Trinidad and Tobago,TTO,2011,204.53121808974197 -Trinidad and Tobago,TTO,2012,194.4609676031927 -Trinidad and Tobago,TTO,2013,200.1966251513879 -Trinidad and Tobago,TTO,2014,194.83427124084184 -Trinidad and Tobago,TTO,2015,196.88343797245503 -Trinidad and Tobago,TTO,2016,179.33154243440353 -Trinidad and Tobago,TTO,2017,177.29634671489669 -Trinidad and Tobago,TTO,2018,177.48809398554621 -Turkey,TUR,1965,90.66821286549705 -Turkey,TUR,1966,104.08697875730991 -Turkey,TUR,1967,107.67156178362563 -Turkey,TUR,1968,125.29316169590601 -Turkey,TUR,1969,136.8060665350877 -Turkey,TUR,1970,145.60287890350907 -Turkey,TUR,1971,161.44336649122846 -Turkey,TUR,1972,180.28510769005842 -Turkey,TUR,1973,204.64516451754383 -Turkey,TUR,1974,208.4683611403506 -Turkey,TUR,1975,231.6415793421056 -Turkey,TUR,1976,260.3794051900586 -Turkey,TUR,1977,285.1719439766077 -Turkey,TUR,1978,301.40925225146117 -Turkey,TUR,1979,283.8324946345025 -Turkey,TUR,1980,294.728678114035 -Turkey,TUR,1981,297.02235684210547 -Turkey,TUR,1982,324.0712611403512 -Turkey,TUR,1983,336.0213869152042 -Turkey,TUR,1984,353.33030020467794 -Turkey,TUR,1985,382.1717922368417 -Turkey,TUR,1986,416.83041494152036 -Turkey,TUR,1987,473.52319755847935 -Turkey,TUR,1988,517.9500598391814 -Turkey,TUR,1989,511.7619819152046 -Turkey,TUR,1990,554.4491449269001 -Turkey,TUR,1991,566.3009075146193 -Turkey,TUR,1992,594.6136475146202 -Turkey,TUR,1993,644.5794405409356 -Turkey,TUR,1994,624.9498124561402 -Turkey,TUR,1995,698.8679116666664 -Turkey,TUR,1996,761.820003260233 -Turkey,TUR,1997,797.6455047514617 -Turkey,TUR,1998,817.570797178362 -Turkey,TUR,1999,798.2283096637422 -Turkey,TUR,2000,854.511031023391 -Turkey,TUR,2001,778.1394040058476 -Turkey,TUR,2002,849.8527403801173 -Turkey,TUR,2003,900.7267305555549 -Turkey,TUR,2004,963.1854627777772 -Turkey,TUR,2005,987.5364868421053 -Turkey,TUR,2006,1096.342191929824 -Turkey,TUR,2007,1167.217492616956 -Turkey,TUR,2008,1172.2326980116961 -Turkey,TUR,2009,1188.1175374415197 -Turkey,TUR,2010,1251.7463901023414 -Turkey,TUR,2011,1338.5759503731394 -Turkey,TUR,2012,1422.2023625685126 -Turkey,TUR,2013,1413.2590151618429 -Turkey,TUR,2014,1458.2839030116934 -Turkey,TUR,2015,1595.5374228740898 -Turkey,TUR,2016,1681.5051976927841 -Turkey,TUR,2017,1776.0132139016812 -Turkey,TUR,2018,1785.673547929368 -Turkmenistan,TKM,1985,144.68851076071007 -Turkmenistan,TKM,1986,178.37765740865387 -Turkmenistan,TKM,1987,179.29100880982347 -Turkmenistan,TKM,1988,181.00252738878143 -Turkmenistan,TKM,1989,183.56072227329355 -Turkmenistan,TKM,1990,153.72036641917356 -Turkmenistan,TKM,1991,157.81951905769589 -Turkmenistan,TKM,1992,60.67867631578946 -Turkmenistan,TKM,1993,122.29147933278975 -Turkmenistan,TKM,1994,130.45238865108954 -Turkmenistan,TKM,1995,107.37873970566162 -Turkmenistan,TKM,1996,156.40808039473683 -Turkmenistan,TKM,1997,119.76777178362617 -Turkmenistan,TKM,1998,149.1335350292402 -Turkmenistan,TKM,1999,142.35531706140398 -Turkmenistan,TKM,2000,119.82421428362568 -Turkmenistan,TKM,2001,151.23569223684225 -Turkmenistan,TKM,2002,127.5640214035082 -Turkmenistan,TKM,2003,176.11756890350873 -Turkmenistan,TKM,2004,174.40547334795318 -Turkmenistan,TKM,2005,176.5994800146197 -Turkmenistan,TKM,2006,178.46175001461975 -Turkmenistan,TKM,2007,173.17142862573135 -Turkmenistan,TKM,2008,142.05468751461953 -Turkmenistan,TKM,2009,231.60031918128647 -Turkmenistan,TKM,2010,249.56539828190847 -Turkmenistan,TKM,2011,276.9895773290709 -Turkmenistan,TKM,2012,301.9568132657501 -Turkmenistan,TKM,2013,268.2365938198523 -Turkmenistan,TKM,2014,278.0297032652082 -Turkmenistan,TKM,2015,332.8145965641595 -Turkmenistan,TKM,2016,319.4448284695503 -Turkmenistan,TKM,2017,333.64617909222613 -Turkmenistan,TKM,2018,366.3974046494184 -USSR,OWID_USS,1965,6900.2211236797875 -USSR,OWID_USS,1966,7337.457098910874 -USSR,OWID_USS,1967,7712.827002860533 -USSR,OWID_USS,1968,7998.801732830085 -USSR,OWID_USS,1969,8361.934967824714 -USSR,OWID_USS,1970,8778.396558836379 -USSR,OWID_USS,1971,9209.745801496534 -USSR,OWID_USS,1972,9680.010832686523 -USSR,OWID_USS,1973,10177.22135540317 -USSR,OWID_USS,1974,10737.970806439833 -USSR,OWID_USS,1975,11269.304362428395 -USSR,OWID_USS,1976,11705.678169876024 -USSR,OWID_USS,1977,12227.220069669815 -USSR,OWID_USS,1978,12724.987091396535 -USSR,OWID_USS,1979,13108.235679323503 -USSR,OWID_USS,1980,13375.669192556437 -USSR,OWID_USS,1981,13659.171705131965 -USSR,OWID_USS,1982,14002.626645411206 -USSR,OWID_USS,1983,14293.511008493257 -USSR,OWID_USS,1984,14823.698121847994 -Ukraine,UKR,1985,2673.6673415578534 -Ukraine,UKR,1986,2689.349751282574 -Ukraine,UKR,1987,2748.406640684055 -Ukraine,UKR,1988,2751.3983550221637 -Ukraine,UKR,1989,2637.6187119425904 -Ukraine,UKR,1990,3066.205070347672 -Ukraine,UKR,1991,2792.562158527828 -Ukraine,UKR,1992,2450.443339400482 -Ukraine,UKR,1993,2058.7987139686734 -Ukraine,UKR,1994,1761.473194795905 -Ukraine,UKR,1995,1653.400477292913 -Ukraine,UKR,1996,1628.822844158086 -Ukraine,UKR,1997,1599.502323450533 -Ukraine,UKR,1998,1540.1271722265237 -Ukraine,UKR,1999,1571.7015983066 -Ukraine,UKR,2000,1575.8267658729912 -Ukraine,UKR,2001,1575.9959817903748 -Ukraine,UKR,2002,1552.7775449606781 -Ukraine,UKR,2003,1595.29792285952 -Ukraine,UKR,2004,1606.544749177449 -Ukraine,UKR,2005,1589.5801951229575 -Ukraine,UKR,2006,1607.0661111205584 -Ukraine,UKR,2007,1568.7704602919068 -Ukraine,UKR,2008,1552.6225760056236 -Ukraine,UKR,2009,1319.352538140513 -Ukraine,UKR,2010,1413.0171636791663 -Ukraine,UKR,2011,1469.2054287433452 -Ukraine,UKR,2012,1432.002677393057 -Ukraine,UKR,2013,1364.4749981032994 -Ukraine,UKR,2014,1200.1818741549534 -Ukraine,UKR,2015,996.1977018758467 -Ukraine,UKR,2016,1044.665111126826 -Ukraine,UKR,2017,969.441886505495 -Ukraine,UKR,2018,976.9823728796677 -United Arab Emirates,ARE,1965,0.8656089502471281 -United Arab Emirates,ARE,1966,0.9275648483811441 -United Arab Emirates,ARE,1967,5.4282123613432995 -United Arab Emirates,ARE,1968,6.970712540986252 -United Arab Emirates,ARE,1969,6.994359584019796 -United Arab Emirates,ARE,1970,9.6229608333939 -United Arab Emirates,ARE,1971,14.638030555555606 -United Arab Emirates,ARE,1972,15.65015 -United Arab Emirates,ARE,1973,20.293111111111063 -United Arab Emirates,ARE,1974,22.295511111111143 -United Arab Emirates,ARE,1975,23.859208333333328 -United Arab Emirates,ARE,1976,30.19023611111111 -United Arab Emirates,ARE,1977,49.63149999999997 -United Arab Emirates,ARE,1978,57.31101111111114 -United Arab Emirates,ARE,1979,67.37058333333337 -United Arab Emirates,ARE,1980,108.27922805555555 -United Arab Emirates,ARE,1981,126.54242944444455 -United Arab Emirates,ARE,1982,136.87032861111106 -United Arab Emirates,ARE,1983,131.687569722222 -United Arab Emirates,ARE,1984,164.09868166666655 -United Arab Emirates,ARE,1985,203.43105277777826 -United Arab Emirates,ARE,1986,246.40804333333367 -United Arab Emirates,ARE,1987,275.05324472222173 -United Arab Emirates,ARE,1988,303.81401083333367 -United Arab Emirates,ARE,1989,342.11877416666636 -United Arab Emirates,ARE,1990,347.0181716666661 -United Arab Emirates,ARE,1991,422.98106499999966 -United Arab Emirates,ARE,1992,408.8616330555555 -United Arab Emirates,ARE,1993,425.59165194444466 -United Arab Emirates,ARE,1994,466.97406750000033 -United Arab Emirates,ARE,1995,487.2825838888891 -United Arab Emirates,ARE,1996,502.25580888888925 -United Arab Emirates,ARE,1997,524.3592305555557 -United Arab Emirates,ARE,1998,536.7142563888889 -United Arab Emirates,ARE,1999,541.0691822222216 -United Arab Emirates,ARE,2000,538.8712133333335 -United Arab Emirates,ARE,2001,544.8211554766665 -United Arab Emirates,ARE,2002,595.3836977155555 -United Arab Emirates,ARE,2003,634.8553651555555 -United Arab Emirates,ARE,2004,678.8626384477773 -United Arab Emirates,ARE,2005,708.2373523622217 -United Arab Emirates,ARE,2006,745.0997097088883 -United Arab Emirates,ARE,2007,821.842406914444 -United Arab Emirates,ARE,2008,941.8338930133336 -United Arab Emirates,ARE,2009,929.9252100286542 -United Arab Emirates,ARE,2010,974.4190554211698 -United Arab Emirates,ARE,2011,1027.714905806525 -United Arab Emirates,ARE,2012,1079.2568541220758 -United Arab Emirates,ARE,2013,1137.4465507210427 -United Arab Emirates,ARE,2014,1132.3739142043414 -United Arab Emirates,ARE,2015,1245.8317870517747 -United Arab Emirates,ARE,2016,1291.7367770869387 -United Arab Emirates,ARE,2017,1267.1477579405912 -United Arab Emirates,ARE,2018,1304.9274569485126 -United Kingdom,GBR,1965,2311.6108198830416 -United Kingdom,GBR,1966,2321.8650584941515 -United Kingdom,GBR,1967,2321.8309292690083 -United Kingdom,GBR,1968,2404.829681564327 -United Kingdom,GBR,1969,2491.6815621637475 -United Kingdom,GBR,1970,2544.223331549702 -United Kingdom,GBR,1971,2497.0855466228113 -United Kingdom,GBR,1972,2533.5682391228092 -United Kingdom,GBR,1973,2660.0799886111135 -United Kingdom,GBR,1974,2524.94671067251 -United Kingdom,GBR,1975,2380.767318888886 -United Kingdom,GBR,1976,2428.4486823830425 -United Kingdom,GBR,1977,2473.4346459356757 -United Kingdom,GBR,1978,2488.215578728065 -United Kingdom,GBR,1979,2604.7595503216417 -United Kingdom,GBR,1980,2372.2333553801145 -United Kingdom,GBR,1981,2305.9527779239747 -United Kingdom,GBR,1982,2274.663585994154 -United Kingdom,GBR,1983,2282.6688709941527 -United Kingdom,GBR,1984,2280.857469988034 -United Kingdom,GBR,1985,2376.8894434675703 -United Kingdom,GBR,1986,2443.3591635552925 -United Kingdom,GBR,1987,2440.2214475146184 -United Kingdom,GBR,1988,2471.0585450757603 -United Kingdom,GBR,1989,2472.3929634941505 -United Kingdom,GBR,1990,2492.8820622368366 -United Kingdom,GBR,1991,2544.8583674999963 -United Kingdom,GBR,1992,2527.263744488306 -United Kingdom,GBR,1993,2554.223921578946 -United Kingdom,GBR,1994,2523.0604654678373 -United Kingdom,GBR,1995,2531.705329766077 -United Kingdom,GBR,1996,2654.5616189035036 -United Kingdom,GBR,1997,2607.0031792836276 -United Kingdom,GBR,1998,2634.2342646690317 -United Kingdom,GBR,1999,2621.3164534454845 -United Kingdom,GBR,2000,2645.2770398922453 -United Kingdom,GBR,2001,2675.7832509275895 -United Kingdom,GBR,2002,2617.247250960158 -United Kingdom,GBR,2003,2656.407312745803 -United Kingdom,GBR,2004,2672.6886681798833 -United Kingdom,GBR,2005,2701.794414061309 -United Kingdom,GBR,2006,2673.5811051593396 -United Kingdom,GBR,2007,2597.982905697296 -United Kingdom,GBR,2008,2558.189843653028 -United Kingdom,GBR,2009,2435.01978170145 -United Kingdom,GBR,2010,2496.2193712596536 -United Kingdom,GBR,2011,2351.375192354488 -United Kingdom,GBR,2012,2382.2347688050436 -United Kingdom,GBR,2013,2373.273699223224 -United Kingdom,GBR,2014,2239.032080191118 -United Kingdom,GBR,2015,2268.5054197759328 -United Kingdom,GBR,2016,2250.283722208775 -United Kingdom,GBR,2017,2246.913573338768 -United Kingdom,GBR,2018,2236.2720248148394 -United States,USA,1965,14533.341396740547 -United States,USA,1966,15352.041353080305 -United States,USA,1967,15883.482656651207 -United States,USA,1968,16851.080486445928 -United States,USA,1969,17749.612122044196 -United States,USA,1970,18350.407052222166 -United States,USA,1971,18727.44801636027 -United States,USA,1972,19688.28953509298 -United States,USA,1973,20494.91048831323 -United States,USA,1974,19968.148356625992 -United States,USA,1975,19470.686840551673 -United States,USA,1976,20534.29166745813 -United States,USA,1977,21076.077761219647 -United States,USA,1978,21158.958355000283 -United States,USA,1979,21412.708468309258 -United States,USA,1980,20633.70669690122 -United States,USA,1981,20024.885075525828 -United States,USA,1982,19178.055392757367 -United States,USA,1983,19087.204884583807 -United States,USA,1984,20103.318528844895 -United States,USA,1985,20050.341957950823 -United States,USA,1986,20166.26876098397 -United States,USA,1987,20851.650868654688 -United States,USA,1988,21804.33845459887 -United States,USA,1989,22318.15170343457 -United States,USA,1990,22357.76730657761 -United States,USA,1991,22321.024338032137 -United States,USA,1992,22661.41374853195 -United States,USA,1993,23134.333752672617 -United States,USA,1994,23565.97810318155 -United States,USA,1995,24063.35209431817 -United States,USA,1996,24870.731828030614 -United States,USA,1997,25066.6464081611 -United States,USA,1998,25230.437100871208 -United States,USA,1999,25671.9659852008 -United States,USA,2000,26260.90947481745 -United States,USA,2001,25663.85941908371 -United States,USA,2002,26049.255515995872 -United States,USA,2003,26152.37165467175 -United States,USA,2004,26687.89730411865 -United States,USA,2005,26719.30228656245 -United States,USA,2006,26521.49587872798 -United States,USA,2007,26913.813829472976 -United States,USA,2008,26267.916622151053 -United States,USA,2009,24989.146481681742 -United States,USA,2010,25856.726498033408 -United States,USA,2011,25634.24823870198 -United States,USA,2012,24986.51517390914 -United States,USA,2013,25679.335313090396 -United States,USA,2014,25968.99251261927 -United States,USA,2015,25739.631612420795 -United States,USA,2016,25733.26024155892 -United States,USA,2017,25847.450466029997 -United States,USA,2018,26756.44663941945 -Uzbekistan,UZB,1985,495.5500384231508 -Uzbekistan,UZB,1986,493.8586017730418 -Uzbekistan,UZB,1987,509.82842287921176 -Uzbekistan,UZB,1988,524.6185673645524 -Uzbekistan,UZB,1989,538.0687016996663 -Uzbekistan,UZB,1990,523.5454149569306 -Uzbekistan,UZB,1991,530.1302541261952 -Uzbekistan,UZB,1992,496.3415794380875 -Uzbekistan,UZB,1993,528.9400287063897 -Uzbekistan,UZB,1994,519.852111450777 -Uzbekistan,UZB,1995,505.91507229278756 -Uzbekistan,UZB,1996,521.8476046313071 -Uzbekistan,UZB,1997,517.041685363168 -Uzbekistan,UZB,1998,517.5205067945902 -Uzbekistan,UZB,1999,584.825760161152 -Uzbekistan,UZB,2000,594.3307822209875 -Uzbekistan,UZB,2001,595.6977342710182 -Uzbekistan,UZB,2002,609.5965373252628 -Uzbekistan,UZB,2003,566.2995978251408 -Uzbekistan,UZB,2004,573.7084232471443 -Uzbekistan,UZB,2005,558.8232585384951 -Uzbekistan,UZB,2006,518.6619160900453 -Uzbekistan,UZB,2007,551.9721418999876 -Uzbekistan,UZB,2008,518.3723134369284 -Uzbekistan,UZB,2009,520.7702045281087 -Uzbekistan,UZB,2010,516.4145443338089 -Uzbekistan,UZB,2011,542.1605177345563 -Uzbekistan,UZB,2012,529.0420632157252 -Uzbekistan,UZB,2013,525.3720292057959 -Uzbekistan,UZB,2014,548.3412012210763 -Uzbekistan,UZB,2015,522.3636586944202 -Uzbekistan,UZB,2016,507.1032260782332 -Uzbekistan,UZB,2017,523.5038783489343 -Uzbekistan,UZB,2018,510.6782778500925 -Venezuela,VEN,1965,191.11174294006616 -Venezuela,VEN,1966,192.94984803931803 -Venezuela,VEN,1967,203.35109430628543 -Venezuela,VEN,1968,219.15726072641343 -Venezuela,VEN,1969,221.56988625340094 -Venezuela,VEN,1970,223.1441732315186 -Venezuela,VEN,1971,226.47394217324205 -Venezuela,VEN,1972,239.29238220987574 -Venezuela,VEN,1973,273.9849072998971 -Venezuela,VEN,1974,283.02864668531157 -Venezuela,VEN,1975,294.04427385988765 -Venezuela,VEN,1976,321.26565084261676 -Venezuela,VEN,1977,357.91223072099655 -Venezuela,VEN,1978,365.77037683591124 -Venezuela,VEN,1979,403.04139451064185 -Venezuela,VEN,1980,451.4692915077326 -Venezuela,VEN,1981,468.3951211373887 -Venezuela,VEN,1982,477.5363479840916 -Venezuela,VEN,1983,475.0860490244136 -Venezuela,VEN,1984,483.84423876236036 -Venezuela,VEN,1985,496.4030127668071 -Venezuela,VEN,1986,533.0593008115982 -Venezuela,VEN,1987,530.7803734750736 -Venezuela,VEN,1988,552.1941665202374 -Venezuela,VEN,1989,556.7806715427607 -Venezuela,VEN,1990,591.5201335957534 -Venezuela,VEN,1991,593.1468786422984 -Venezuela,VEN,1992,642.2321588604166 -Venezuela,VEN,1993,635.2074572111082 -Venezuela,VEN,1994,689.6400227032269 -Venezuela,VEN,1995,710.6548104300589 -Venezuela,VEN,1996,691.3402700529973 -Venezuela,VEN,1997,730.7199752573334 -Venezuela,VEN,1998,775.881434915975 -Venezuela,VEN,1999,747.6391918163405 -Venezuela,VEN,2000,762.3184640421242 -Venezuela,VEN,2001,810.0284227153284 -Venezuela,VEN,2002,809.4198197534012 -Venezuela,VEN,2003,727.0861843563185 -Venezuela,VEN,2004,811.2803302857435 -Venezuela,VEN,2005,847.5616449352901 -Venezuela,VEN,2006,943.8543493951231 -Venezuela,VEN,2007,950.8927890562007 -Venezuela,VEN,2008,984.1911814762742 -Venezuela,VEN,2009,981.345350333536 -Venezuela,VEN,2010,926.4978232186407 -Venezuela,VEN,2011,970.1452932276954 -Venezuela,VEN,2012,1011.0120604091549 -Venezuela,VEN,2013,987.4676447279828 -Venezuela,VEN,2014,955.3690534017142 -Venezuela,VEN,2015,922.6339597028164 -Venezuela,VEN,2016,840.4194774998862 -Venezuela,VEN,2017,856.0659148393399 -Venezuela,VEN,2018,751.768822937406 -Vietnam,VNM,1965,29.34432467521292 -Vietnam,VNM,1966,51.354939271379436 -Vietnam,VNM,1967,70.80091423983988 -Vietnam,VNM,1968,73.40988623327776 -Vietnam,VNM,1969,86.71445994649577 -Vietnam,VNM,1970,90.44822575473796 -Vietnam,VNM,1971,80.62496412226284 -Vietnam,VNM,1972,78.19712814814754 -Vietnam,VNM,1973,82.54034989996653 -Vietnam,VNM,1974,61.35350084265996 -Vietnam,VNM,1975,68.18796601609215 -Vietnam,VNM,1976,39.38533910243671 -Vietnam,VNM,1977,42.12982137795981 -Vietnam,VNM,1978,43.64484060799377 -Vietnam,VNM,1979,46.991489267021656 -Vietnam,VNM,1980,53.66561435121792 -Vietnam,VNM,1981,53.78404264109172 -Vietnam,VNM,1982,57.46368862792808 -Vietnam,VNM,1983,60.20393833940605 -Vietnam,VNM,1984,60.61738308733248 -Vietnam,VNM,1985,60.27666197553543 -Vietnam,VNM,1986,66.06425273503888 -Vietnam,VNM,1987,74.48805008736282 -Vietnam,VNM,1988,74.34637474413725 -Vietnam,VNM,1989,70.03269044040022 -Vietnam,VNM,1990,75.05897197597254 -Vietnam,VNM,1991,76.08894899988624 -Vietnam,VNM,1992,83.02228152046773 -Vietnam,VNM,1993,94.83203520467826 -Vietnam,VNM,1994,105.84140865497064 -Vietnam,VNM,1995,122.86987073216328 -Vietnam,VNM,1996,141.0110472444439 -Vietnam,VNM,1997,163.33128348947366 -Vietnam,VNM,1998,176.91047697660767 -Vietnam,VNM,1999,182.13964469882987 -Vietnam,VNM,2000,207.51762641188728 -Vietnam,VNM,2001,234.41929421513467 -Vietnam,VNM,2002,257.2863949894552 -Vietnam,VNM,2003,278.12588765174473 -Vietnam,VNM,2004,341.06649775770154 -Vietnam,VNM,2005,360.4638193818291 -Vietnam,VNM,2006,329.39407071720166 -Vietnam,VNM,2007,360.08026575327995 -Vietnam,VNM,2008,447.4733056833459 -Vietnam,VNM,2009,457.77153818724514 -Vietnam,VNM,2010,518.3489512160959 -Vietnam,VNM,2011,593.3405070593666 -Vietnam,VNM,2012,620.5130876269938 -Vietnam,VNM,2013,665.3426374871724 -Vietnam,VNM,2014,727.7399462035125 -Vietnam,VNM,2015,803.547362602424 -Vietnam,VNM,2016,859.8073419043309 -Vietnam,VNM,2017,881.9921085647925 -Vietnam,VNM,2018,997.7041834395584 -Western Africa,,1965,55.786597421182215 -Western Africa,,1966,60.31823753893795 -Western Africa,,1967,58.98637091680998 -Western Africa,,1968,57.498604585776505 -Western Africa,,1969,64.0236969231645 -Western Africa,,1970,71.88266121321314 -Western Africa,,1971,93.15119157330263 -Western Africa,,1972,100.77081188395286 -Western Africa,,1973,111.10654420105156 -Western Africa,,1974,113.8302196719015 -Western Africa,,1975,122.11125713836664 -Western Africa,,1976,149.5459507093074 -Western Africa,,1977,162.25326361233826 -Western Africa,,1978,175.97029273519024 -Western Africa,,1979,198.8344833962963 -Western Africa,,1980,212.7230312641266 -Western Africa,,1981,224.2554329771512 -Western Africa,,1982,233.7232129043756 -Western Africa,,1983,220.5083352717158 -Western Africa,,1984,204.07979581336497 -Western Africa,,1985,216.13963948892538 -Western Africa,,1986,212.48476175097116 -Western Africa,,1987,222.1850225796082 -Western Africa,,1988,237.25668620703058 -Western Africa,,1989,249.852952920098 -Western Africa,,1990,242.7641601045 -Western Africa,,1991,258.7196016115917 -Western Africa,,1992,279.6789679554933 -Western Africa,,1993,281.36970662301945 -Western Africa,,1994,277.5309884750653 -Western Africa,,1995,285.63497447203105 -Western Africa,,1996,309.2507744476671 -Western Africa,,1997,307.90672839484824 -Western Africa,,1998,314.58154349386774 -Western Africa,,1999,315.3058037930516 -Western Africa,,2000,336.56984007175566 -Western Africa,,2001,365.6693490613182 -Western Africa,,2002,399.06034038378283 -Western Africa,,2003,395.4312450608804 -Western Africa,,2004,409.1710262490764 -Western Africa,,2005,423.196220514847 -Western Africa,,2006,387.7094311391942 -Western Africa,,2007,414.87654065892735 -Western Africa,,2008,445.9782854262575 -Western Africa,,2009,418.616811266932 -Western Africa,,2010,435.4835701978468 -Western Africa,,2011,475.3808230995505 -Western Africa,,2012,498.94331126702065 -Western Africa,,2013,506.06323133673345 -Western Africa,,2014,523.3493449473466 -Western Africa,,2015,601.069469645674 -Western Africa,,2016,638.307259211918 -Western Africa,,2017,669.1180804996087 -Western Africa,,2018,701.2311948974867 -World,OWID_WRL,1965,43070.29159420694 -World,OWID_WRL,1966,45406.99440879813 -World,OWID_WRL,1967,47126.346359528674 -World,OWID_WRL,1968,49985.64442991723 -World,OWID_WRL,1969,53394.06072391861 -World,OWID_WRL,1970,56709.19465230158 -World,OWID_WRL,1971,59090.4323177686 -World,OWID_WRL,1972,62273.7004710136 -World,OWID_WRL,1973,65857.6673315105 -World,OWID_WRL,1974,66173.9356226872 -World,OWID_WRL,1975,66518.51988866489 -World,OWID_WRL,1976,70137.94030575754 -World,OWID_WRL,1977,72630.74555938583 -World,OWID_WRL,1978,75125.75089038622 -World,OWID_WRL,1979,77736.77414185385 -World,OWID_WRL,1980,77171.18108972463 -World,OWID_WRL,1981,76739.23317525088 -World,OWID_WRL,1982,76414.32351228778 -World,OWID_WRL,1983,77623.86889109606 -World,OWID_WRL,1984,81291.51172532169 -World,OWID_WRL,1985,83360.78795116078 -World,OWID_WRL,1986,85194.75038716423 -World,OWID_WRL,1987,88171.09496881852 -World,OWID_WRL,1988,91500.96691610852 -World,OWID_WRL,1989,93310.19026308024 -World,OWID_WRL,1990,94383.40814934133 -World,OWID_WRL,1991,94998.44136208357 -World,OWID_WRL,1992,95643.59277870151 -World,OWID_WRL,1993,96369.90566245181 -World,OWID_WRL,1994,97641.65459703372 -World,OWID_WRL,1995,99620.58045469348 -World,OWID_WRL,1996,102592.21825997006 -World,OWID_WRL,1997,103650.05959109466 -World,OWID_WRL,1998,104270.79783871827 -World,OWID_WRL,1999,106165.3834994446 -World,OWID_WRL,2000,108822.05880317488 -World,OWID_WRL,2001,110048.80353779378 -World,OWID_WRL,2002,112538.20870713833 -World,OWID_WRL,2003,116667.06992825895 -World,OWID_WRL,2004,122395.7885558709 -World,OWID_WRL,2005,126626.721059885 -World,OWID_WRL,2006,130323.33164710835 -World,OWID_WRL,2007,134465.27049606023 -World,OWID_WRL,2008,136130.34057453115 -World,OWID_WRL,2009,134213.75563207068 -World,OWID_WRL,2010,140722.29377284617 -World,OWID_WRL,2011,144255.09090983882 -World,OWID_WRL,2012,146252.98273359356 -World,OWID_WRL,2013,149089.9298026643 -World,OWID_WRL,2014,150489.50214668777 -World,OWID_WRL,2015,151720.06315733574 -World,OWID_WRL,2016,153848.43335585727 -World,OWID_WRL,2017,156709.6232435849 -World,OWID_WRL,2018,161248.58563878245 \ No newline at end of file diff --git a/notebooks/.ipynb_checkpoints/01_Cheers_Stats_Beers-checkpoint.ipynb b/notebooks/.ipynb_checkpoints/01_Cheers_Stats_Beers-checkpoint.ipynb deleted file mode 100644 index 8d868a6..0000000 --- a/notebooks/.ipynb_checkpoints/01_Cheers_Stats_Beers-checkpoint.ipynb +++ /dev/null @@ -1,1447 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "###### Content modified under Creative Commons Attribution license CC-BY 4.0, code under BSD 3-Clause License © 2020 Ryan C. Cooper" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Cheers! Stats with Beers\n", - "\n", - "\n", - "Welcome to the second module in _Computational Mechanics_, our series in computational thinking for undergraduate engineering students. This module explores practical data and statistical analysis with Python.\n", - "\n", - "This first lesson explores how we can answer questions using data combined with practical methods from statistics.\n", - "\n", - "We'll need some fun data to work with. We found a neat data set of canned craft beers in the US, scraped from the web and cleaned up by Jean-Nicholas Hould ([@NicholasHould](https://twitter.com/NicholasHould?lang=en) on Twitter)—who we want to thank for having a permissive license on his GitHub repository so we can reuse his [work](https://github.com/nickhould/craft-beers-dataset)!\n", - "\n", - "The data source ([@craftcans](https://twitter.com/craftcans) on Twitter) doesn't say that the set includes *all* the canned beers brewed in the country. So we have to asume that the data is a sample and may contain biases.\n", - "\n", - "We'll process the data using **numpy**—the array library for Python that we learned about in [Module 1, lesson 2: Getting Started](../../CompMech01-Getting-started/notebooks/02-Getting-started.ipynb). But we'll also learn about a new Python library for data analysis called **pandas**. \n", - "\n", - "[`pandas`](http://pandas.pydata.org/) is an open-source library providing high-performance, easy-to-use data structures and data-analysis tools. Even though `pandas` is great for data analysis, we won't exploit all its power in this lesson. But we'll learn more about it later on!\n", - "\n", - "We'll use `pandas` to read the data file (in `csv` format, for comma-separated values), display it in a nice table, and extract the columns that we need—which we'll convert to `numpy` arrays to work with.\n", - "\n", - "Let's start by importing the two Python libraries that we need." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import numpy as np" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 1: Read the data file\n", - "\n", - "Below, we'll take a peek into the data file, `beers.csv,` using the system command `head` (which we can use with a bang, thanks to IPython).\n", - "\n", - "But first, we will download the data using a Python library for opening a URL on the Internet. We created a short URL for the data file in the public repository with our course materials.\n", - "\n", - "The cell below should download the data in your current working directory. The next cell shows you the first few lines of the data." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - ",abv,ibu,id,name,style,brewery_id,ounces\n", - "0,0.05,,1436,Pub Beer,American Pale Lager,408,12.0\n", - "1,0.066,,2265,Devil's Cup,American Pale Ale (APA),177,12.0\n", - "2,0.071,,2264,Rise of the Phoenix,American IPA,177,12.0\n", - "3,0.09,,2263,Sinister,American Double / Imperial IPA,177,12.0\n", - "4,0.075,,2262,Sex and Candy,American IPA,177,12.0\n", - "5,0.077,,2261,Black Exodus,Oatmeal Stout,177,12.0\n", - "6,0.045,,2260,Lake Street Express,American Pale Ale (APA),177,12.0\n", - "7,0.065,,2259,Foreman,American Porter,177,12.0\n", - "8,0.055,,2258,Jade,American Pale Ale (APA),177,12.0\n" - ] - } - ], - "source": [ - "!head \"../data/beers.csv\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can use `pandas` to read the data from the `csv` file, and save it into a new variable called `beers`. Let's then check the type of this new variable—rememeber that we can use the function `type()` to do this." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "beers = pd.read_csv('../data/beers.csv')" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "pandas.core.frame.DataFrame" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "type(beers)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This is a new data type for us: a `pandas DataFrame`. From the `pandas` documentation: \"A `DataFrame` is a 2-dimensional labeled data structure with columns of potentially different types\" [4]. You can think of it as the contens of a spreadsheet, saved into one handy Python variable. If you print it out, you get a nicely laid-out table: " - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Unnamed: 0abvibuidnamestylebrewery_idounces
000.050NaN1436Pub BeerAmerican Pale Lager40812.0
110.066NaN2265Devil's CupAmerican Pale Ale (APA)17712.0
220.071NaN2264Rise of the PhoenixAmerican IPA17712.0
330.090NaN2263SinisterAmerican Double / Imperial IPA17712.0
440.075NaN2262Sex and CandyAmerican IPA17712.0
...........................
240224050.06745.0928BelgoradoBelgian IPA42412.0
240324060.052NaN807Rail Yard AleAmerican Amber / Red Ale42412.0
240424070.055NaN620B3K Black LagerSchwarzbier42412.0
240524080.05540.0145Silverback Pale AleAmerican Pale Ale (APA)42412.0
240624090.052NaN84Rail Yard Ale (2009)American Amber / Red Ale42412.0
\n", - "

2407 rows × 8 columns

\n", - "
" - ], - "text/plain": [ - " Unnamed: 0 abv ibu id name \\\n", - "0 0 0.050 NaN 1436 Pub Beer \n", - "1 1 0.066 NaN 2265 Devil's Cup \n", - "2 2 0.071 NaN 2264 Rise of the Phoenix \n", - "3 3 0.090 NaN 2263 Sinister \n", - "4 4 0.075 NaN 2262 Sex and Candy \n", - "... ... ... ... ... ... \n", - "2402 2405 0.067 45.0 928 Belgorado \n", - "2403 2406 0.052 NaN 807 Rail Yard Ale \n", - "2404 2407 0.055 NaN 620 B3K Black Lager \n", - "2405 2408 0.055 40.0 145 Silverback Pale Ale \n", - "2406 2409 0.052 NaN 84 Rail Yard Ale (2009) \n", - "\n", - " style brewery_id ounces \n", - "0 American Pale Lager 408 12.0 \n", - "1 American Pale Ale (APA) 177 12.0 \n", - "2 American IPA 177 12.0 \n", - "3 American Double / Imperial IPA 177 12.0 \n", - "4 American IPA 177 12.0 \n", - "... ... ... ... \n", - "2402 Belgian IPA 424 12.0 \n", - "2403 American Amber / Red Ale 424 12.0 \n", - "2404 Schwarzbier 424 12.0 \n", - "2405 American Pale Ale (APA) 424 12.0 \n", - "2406 American Amber / Red Ale 424 12.0 \n", - "\n", - "[2407 rows x 8 columns]" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "beers" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Inspect the table above. The first column is a numbering scheme for the beers. The other columns contain the following data:\n", - "\n", - "- `abv`: Alcohol-by-volume of the beer.\n", - "- `ibu`: International Bittering Units of the beer.\n", - "- `id`: Unique identifier of the beer.\n", - "- `name`: Name of the beer.\n", - "- `style`: Style of the beer.\n", - "- `brewery_id`: Unique identifier of the brewery.\n", - "- `ounces`: Ounces of beer in the can." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 2: Explore the data\n", - "\n", - "In the field of statistics, [Exploratory Data Analysis](https://en.wikipedia.org/wiki/Exploratory_data_analysis) (EDA) has the goal of summarizing the main features of our data, and seeing what the data can tell us without formal modeling or hypothesis-testing. [2]\n", - "\n", - "Let's start by extracting the columns with the `abv` and `ibu` values, and converting them to numpy arrays. One of the advantages of data frames in `pandas` is that we can access a column simply using its header, like this:\n", - "\n", - "```python\n", - "data_frame['name_of_column']\n", - "```\n", - "\n", - "The output of this action is a `pandas Series`. From the documentation: \"a `Series` is a 1-dimensional labeled array capable of holding any data type.\" [4]\n", - "\n", - "Check the type of a column extracted by header:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "pandas.core.series.Series" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "type(beers['abv'])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Of course, you can index and slice a data series like you know how to do with strings, lists and arrays. Here, we display the first ten elements of the `abv` series:" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0 0.050\n", - "1 0.066\n", - "2 0.071\n", - "3 0.090\n", - "4 0.075\n", - "5 0.077\n", - "6 0.045\n", - "7 0.065\n", - "8 0.055\n", - "9 0.086\n", - "Name: abv, dtype: float64" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "beers['abv'][:10]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Inspect the data in the table again: you'll notice that there are `NaN` (not-a-number) elements in both the `abv` and `ibu` columns. Those values mean that there was no data reported for that beer. A typical task when cleaning up data is to deal with these pesky `NaN`s.\n", - "\n", - "Let's extract the two series corresponding to the `abv` and `ibu` columns, clean the data by removing all `NaN` values, and then access the values of each series and assign them to a numpy array. " - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "abv_series = beers['abv']" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2407" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(abv_series)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Another advantage of `pandas` is that it has the ability to handle missing data. The data-frame method `dropna()` returns a new data frame with only the good values of the original: all the null values are thrown out. This is super useful!" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "abv_clean = abv_series.dropna()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Check out the length of the cleaned-up `abv` data; you'll see that it's shorter than the original. `NaN`s gone!" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2348" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(abv_clean)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Remember that a a `pandas` _Series_ consists of a column of values, and their labels. You can extract the values via the [`series.values`](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.values.html) attribute, which returns a `numpy.ndarray` (multidimensional array). In the case of the `abv_clean` series, you get a one-dimensional array. We save it into the variable name `abv`. " - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "abv = abv_clean.values" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0.05 0.066 0.071 ... 0.055 0.055 0.052]\n" - ] - } - ], - "source": [ - "print(abv)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "numpy.ndarray" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "type(abv)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we repeat the whole process for the `ibu` column: extract the column into a series, clean it up removing `NaN`s, extract the series values as an array, check how many values we lost." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "2407" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ibu_series = beers['ibu']\n", - "\n", - "len(ibu_series)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1405" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ibu_clean = ibu_series.dropna()\n", - "\n", - "ibu = ibu_clean.values\n", - "\n", - "len(ibu)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### Exercise\n", - "\n", - "Write a Python function that calculates the percentage of missing values for a certain data series. Use the function to calculate the percentage of missing values for the `abv` and `ibu` data sets. \n", - "\n", - "For the original series, before cleaning, remember that you can access the values with `series.values` (e.g., `abv_series.values`)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### Important:\n", - "\n", - "Notice that in the case of the variable `ibu` we are missing almost 42% of the values. This is important, because it will affect our analysis. When we do descriptive statistics, we will ignore these missing values, and having 42% missing will very likely cause bias." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 3: Ready, stats, go!\n", - "\n", - "\n", - "Now that we have numpy arrays with clean data, let's see how we can process them to get some useful information. \n", - "\n", - "Focusing on the numerical variables `abv` and `ibu`, we'll walk through some \"descriptive statistics,\" below. In other words, we aim to generate statistics that summarize the data concisely." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Maximum and minimum \n", - "\n", - "The maximum and minimum values of a dataset are helpful as they tell us the _range_ of our sample: the range gives some indication of the _variability_ in the data.\n", - "We can obtain them for our `abv` and `ibu` arrays with the `min()` and `max()` functions from numpy." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**abv**" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "abv_min = np.min(abv)\n", - "abv_max = np.max(abv)" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The minimum value for abv is: 0.001\n", - "The maximum value for abv is: 0.128\n" - ] - } - ], - "source": [ - "print('The minimum value for abv is: ', abv_min)\n", - "print('The maximum value for abv is: ', abv_max)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**ibu**" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "ibu_min = np.min(ibu)\n", - "ibu_max = np.max(ibu)" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The minimum value for ibu is: 4.0\n", - "The maximum value for ibu is: 138.0\n" - ] - } - ], - "source": [ - "print('The minimum value for ibu is: ', ibu_min)\n", - "print('The maximum value for ibu is: ', ibu_max)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Mean value\n", - "\n", - "The **mean** value is one of the main measures to describe the central tendency of the data: an indication of where's the \"center\" of the data. If we have a sample of $N$ values, $x_i$, the mean, $\\bar{x}$, is calculated by:\n", - "\n", - "\\begin{equation*}\n", - " \\bar{x} = \\frac{1}{N}\\sum_{i} x_i\n", - "\\end{equation*}\n", - "\n", - "In words, that is the sum of the data values divided by the number of values, $N$. \n", - "\n", - "You've already learned how to write a function to compute the mean in [Module 1 Lesson 5](http://go.gwu.edu/engcomp1lesson5), but you also learned that numpy has a built-in `mean()` function. We'll use this to get the mean of the `abv` and `ibu` values." - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], - "source": [ - "abv_mean = np.mean(abv)\n", - "ibu_mean = np.mean(ibu)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, we'll print these two variables, but we'll use some fancy new way of printing with Python's string formatter, `string.format()`. There's a sweet site dedicated to Python's string formatter, called [PyFormat](https://pyformat.info), where you can learn lots of tricks!\n", - "\n", - "The basic trick is to use curly brackets `{}` as placeholder for a variable value that you want to print in the middle of a string (say, a sentence that explains what you are printing), and to pass the variable name as argument to `.format()`, preceded by the string.\n", - "\n", - "Let's try something out…" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The mean value for abv is 0.059773424190800686 and for ibu 42.71316725978647\n" - ] - } - ], - "source": [ - "print('The mean value for abv is {} and for ibu {}'.format(abv_mean, ibu_mean))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Ugh! That doesn't look very good, does it? Here's where Python's string formatting gets fancy. We can print fewer decimal digits, so the sentence is more readable. For example, if we want to have four decimal digits, we specify it this way:" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The mean value for abv is 0.0598 and for ibu 42.7132\n" - ] - } - ], - "source": [ - "print('The mean value for abv is {:.4f} and for ibu {:.4f}'.format(abv_mean, ibu_mean))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Inside the curly brackets—the placeholders for the values we want to print—the `f` is for `float` and the `.4` is for four digits after the decimal dot. The colon here marks the beginning of the format specification (as there are options that can be passed before). There are so many tricks to Python's string formatter that you'll usually look up just what you need.\n", - "Another useful resource for string formatting is the [Python String Format Cookbook](https://mkaz.blog/code/python-string-format-cookbook/). Check it out!" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Variance and standard deviation\n", - "\n", - "While the mean indicates where's the center of your data, the **variance** and **standard deviation** describe the *spread* or variability of the data. We already mentioned that the _range_ (difference between largest and smallest data values) is also an indication of variability. But the standard deviation is the most common measure of variability.\n", - "\n", - "We really like the way [Prof. Kristin Sainani](https://profiles.stanford.edu/kristin-sainani), of Stanford University, presents this in her online course on [Statistics in Medicine](https://lagunita.stanford.edu/courses/Medicine/MedStats-SP/SelfPaced/about). In her lecture \"Describing Quantitative Data: What is the variability in the data?\", available [on YouTube](https://youtu.be/hlFeEQF5tDc), she asks: _What if someone were to ask you to devise a statistic that gives the avarage distance from the mean?_ Think about this a little bit.\n", - "\n", - "The distance from the mean, for any data value, is $x_i - \\bar{x}$. So what is the average of the distances from the mean? If we try to simply compute the average of all the values $x_i - \\bar{x}$, some of which are negative, you'll just get zero! It doesn't work.\n", - "\n", - "Since the problem is the negative distances from the mean, you might suggest using absolute values. But this is just mathematically inconvenient. Another way to get rid of negative values is to take the squares. And that's how we get to the expression for the _variance_: it is the average of the squares of the deviations from the mean. For a set of $N$ values,\n", - "\n", - "\\begin{equation*}\n", - " \\text{var} = \\frac{1}{N}\\sum_{i} (x_i - \\bar{x})^2\n", - "\\end{equation*}\n", - "\n", - "\n", - "The variance itself is hard to interpret. The problem with it is that the units are strange (they are the square of the original units). The **standard deviation**, the square root of the variance, is more meaningful because it has the same units as the original variable. Often, the symbol $\\sigma$ is used for it:\n", - "\n", - "\\begin{equation*} \n", - " \\sigma = \\sqrt{\\text{var}} = \\sqrt{\\frac{1}{N}\\sum_{i} (x_i - \\bar{x})^2}\n", - "\\end{equation*}" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Sample vs. population\n", - "\n", - "The above definitions are used when $N$ (the number of values) represents the entire population. But if we have a _sample_ of that population, the formulas have to be adjusted: instead of dividing by $N$ we divide by $N-1$. This is important, especially when we work with real data since usually we have samples of populations. \n", - "\n", - "The **standard deviation** of a sample is denoted by $s$, and the formula is:\n", - "\n", - "\\begin{equation*} \n", - " s = \\sqrt{\\frac{1}{N-1}\\sum_{i} (x_i - \\bar{x})^2}\n", - "\\end{equation*}\n", - "\n", - "Why? This gets a little technical, but the reason is that if you have a _sample_ of the population, you don't know the _real_ value of the mean, and $\\bar{x}$ is actually an _estimate_ of the mean. That's why you'll often find the symbol $\\mu$ used to denote the population mean, and distinguish it with the sample mean, $\\bar{x}$. Using $\\bar{x}$ to compute the standard deviation introduces a small bias: $\\bar{x}$ is computed _from the sample values_, and the data are on average (slightly) closer to $\\bar{x}$ than the population is to $\\mu$. Dividing by $N-1$ instead of $N$ corrects this bias!\n", - "\n", - "Prof. Sainani explains it by saying that we lost one degree of freedom when we estimated the mean using $\\bar{x}$. For example, say we have 100 people and I give you their mean age, and the actual age for 99 people from the sample: you'll be able to calculate the age of that 100th person. Once we calculated the mean, we only have 99 degrees of freedom left because that 100th person's age is fixed. \n", - "\n", - "Below is a graphical distinction between the _sample_ and the _population_ from [@allison_horst on twitter](https://twitter.com/allison_horst)\n", - "\n", - "![Sample vs Population from @allison_horst](https://pbs.twimg.com/media/EOM8s3fVUAAglHu?format=jpg&name=small)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Let's code!\n", - "\n", - "Now that we have the math sorted out, we can program functions to compute the variance and the standard deviation. In our case, we are working with samples of the population of craft beers, so we need to use the formulas with $N-1$ in the denominator. " - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [], - "source": [ - "def sample_var(array):\n", - " \"\"\" Calculates the variance of an array that contains values of a sample of a \n", - " population. \n", - " \n", - " Arguments\n", - " ---------\n", - " array : array, contains sample of values. \n", - " \n", - " Returns\n", - " -------\n", - " var : float, variance of the array .\n", - " \"\"\"\n", - " \n", - " sum_sqr = 0 \n", - " mean = np.mean(array)\n", - " \n", - " for element in array:\n", - " sum_sqr += (element - mean)**2\n", - " \n", - " N = len(array)\n", - " var = sum_sqr / (N - 1)\n", - " \n", - " return var\n", - " " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Notice that we used `np.mean()` in our function: do you think we can make this function even more Pythonic? \n", - "\n", - "*Hint:* Yes!, we totally can.\n", - "\n", - "##### Exercise:\n", - "\n", - "Re-write the function `sample_var()` using `np.sum()` to replace the `for`-loop. Name the function `var_pythonic`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have the sample variance, so we take its square root to get the standard deviation. We can make it a function, even though it's just one line of Python, to make our code more readable:" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [], - "source": [ - "def sample_std(array):\n", - " \"\"\" Computes the standard deviation of an array that contains values\n", - " of a sample of a population.\n", - " \n", - " Arguments\n", - " ---------\n", - " array : array, contains sample of values. \n", - " \n", - " Returns\n", - " -------\n", - " std : float, standard deviation of the array.\n", - " \"\"\"\n", - " \n", - " std = np.sqrt(sample_var(array))\n", - " \n", - " return std" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's call our brand new functions and assign the output values to new variables:" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [], - "source": [ - "abv_std = sample_std(abv)\n", - "ibu_std = sample_std(ibu)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If we print these values using the string formatter, only printing 4 decimal digits, we can display our descriptive statistics in a pleasant, human-readable way." - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The standard deviation for abv is 0.0135 and for ibu 25.9541\n" - ] - } - ], - "source": [ - "print('The standard deviation for abv is {:.4f} and for ibu {:.4f}'.format(abv_std, ibu_std))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "These numbers tell us that the `abv` values are quite concentrated around the mean value, while the `ibu` values are quite spread out from their mean. How could we check these descriptions of the data? A good way of doing so is using graphics: various types of plots can tell us things about the data. \n", - "\n", - "We'll learn about _histograms_ in this lesson, and in the following lesson we'll explore _box plots_. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 4: Distribution plots \n", - "\n", - "Every time that we work with data, visualizing it is very useful. Visualizations give us a better idea of how our data behaves. One way of visualizing data is with a frequency-distribution plot known as **histogram**: a graphical representation of how the data is distributed. To make a histogram, first we need to \"bin\" the range of values (divide the range into intervals) and then we count how many data values fall into each interval. The intervals are usually consecutive (not always), of equal size and non-overlapping. \n", - "\n", - "Thanks to Python and Matplotlib, making histograms is easy. We recommend that you always read the documentation, in this case about [histograms](https://matplotlib.org/devdocs/api/_as_gen/matplotlib.pyplot.hist.html). We'll show you here an example using the `hist()` function from `pyplot`, but this is just a starting point. \n", - "\n", - "Let's first load the **Matplotlib** module called `pyplot`, for making 2D plots. Remember that to get the plots inside the notebook, we use a special \"magic\" command, `%matplotlib inline`:" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [], - "source": [ - "from matplotlib import pyplot\n", - "%matplotlib inline\n", - "\n", - "#Import rcParams to set font styles\n", - "from matplotlib import rcParams" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([ 1., 0., 38., 699., 857., 486., 159., 104., 1., 3.]),\n", - " array([0.001 , 0.0137, 0.0264, 0.0391, 0.0518, 0.0645, 0.0772, 0.0899,\n", - " 0.1026, 0.1153, 0.128 ]),\n", - " )" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "pyplot.hist(abv)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we have a line plot, but if you see this plot without any information you would not be able to figure out what kind of data it is! We need labels on the axes, a title and why not a better color, font and size of the ticks. \n", - "**Publication quality** plots should always be your standard for plotting. \n", - "How you present your data will allow others (and probably you in the future) to better understand your work. \n", - "\n", - "We can customize the style of our plots using parameters for the lines, text, font and other plot options. We set some style options that apply for all the plots in the current session with [`plt.rc()`](https://matplotlib.org/api/_as_gen/matplotlib.plt.rc.html)\n", - "Here, we'll make the font of a specific type and size (sans-serif and 18 points). You can also customize other parameters like line width, color, and so on (check out the documentation)." - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [], - "source": [ - "#Set font style and size \n", - "rcParams['font.family'] = 'sans'\n", - "rcParams['lines.linewidth'] = 3\n", - "rcParams['font.size'] = 18" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We'll redo the same plot, but now we'll add a few things to make it prettier and **publication quality**. We'll add a title, label the axes and, show a background grid. Study the commands below and look at the result!" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "#You can set the size of the figure by doing:\n", - "pyplot.figure(figsize=(10,5))\n", - "\n", - "#Plotting\n", - "pyplot.hist(abv, bins=20, color='b', histtype='bar', edgecolor='white') \n", - "#The \\n is to leave a blank line between the title and the plot\n", - "pyplot.title('abv \\n')\n", - "pyplot.xlabel('Alcohol by Volume (abv) ')\n", - "pyplot.ylabel('Frequency');" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "#You can set the size of the figure by doing:\n", - "pyplot.figure(figsize=(10,5))\n", - "\n", - "#Plotting\n", - "pyplot.hist(ibu, bins=20, color=(0.9, 0.5, 0, 0.9), histtype='bar', edgecolor='white') \n", - "#The \\n is to leave a blanck line between the title and the plot\n", - "pyplot.title('ibu \\n')\n", - "pyplot.xlabel('International Bittering Units (ibu)')\n", - "pyplot.ylabel('Frequency');" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In the previous two plots we set the colors in two ways:\n", - "\n", - "1. A string 'b', which specifies blue. We could also choose from: a string representation \n", - "one of \n", - "\n", - " {'b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'} = \n", - " {**b**lue, **g**reen, **r**ed, **c**yan, **m**agenta, **y**ellow, blac**k**, **w**hite}\n", - " \n", - "2. A RGB or RGBA (red, green, blue, alpha) tuple of float values in [0, 1] (e.g., (0.1, 0.2, 0.5) or (0.1, 0.2, 0.5, 0.3));\n", - "\n", - "Check out the other formatting options use can use in [Matplotlib colors](https://matplotlib.org/3.1.1/tutorials/colors/colors.html) and [Matplotlib hist command](https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.hist.html?highlight=hist#matplotlib.pyplot.hist)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Exploratory exercise:\n", - "\n", - "Play around with the plots, change the values of the bins, colors, etc." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Comparing with a normal distribution\n", - "\n", - "A **normal** (or Gaussian) distribution is a special type of distrubution that behaves as shown in the figure: 68% of the values are within one standard deviation $\\sigma$ from the mean; 95% lie within $2\\sigma$; and at a distance of $\\pm3\\sigma$ from the mean, we cover 99.7% of the values. This fact is known as the $3$-$\\sigma$ rule, or 68-95-99.7 (empirical) rule.\n", - "\n", - " \n", - "\n", - "#### Standard deviation and coverage in a normal distribution. Modified figure based on original from [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Standard_deviation_diagram.svg), the free media repository.\n", - "\n", - "\n", - "Notice that our histograms don't follow the shape of a normal distribution, known as *Bell Curve*. Our histograms are not centered in the mean value, and they are not symetric with respect to it. They are what we call **skewed** to the right (yes, to the _right_). A right (or positive) skewed distribution looks like it's been pushed to the left: the right tail is longer and most of the values are concentrated on the left of the figure. Imagine that \"right-skewed\" means that a force from the right pushes on the curve." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Discussion point\n", - "\n", - "* How do you think that skewness will affect the percentages of coverage by standard deviation compared to the Bell Curve?\n", - "\n", - "* Can we calculate those percentages? \n", - "\n", - "## Exercise\n", - "\n", - "We can calculate skewness and standard deviation in a few lines of Python. But before doing that, we want you to explain in your own words how the following piece of code works. \n", - "\n", - "*Hints:* \n", - "\n", - "1. Check what the logical operation `np.logical_and(1\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Unnamed: 0abvibuidnamestylebrewery_idounces
220.071NaN2264Rise of the PhoenixAmerican IPA17712.0
440.075NaN2262Sex and CandyAmerican IPA17712.0
28280.07070.079921st Amendment IPA (2006)American IPA36812.0
29290.07070.0797Brew Free! or Die IPA (2008)American IPA36812.0
30300.07070.0796Brew Free! or Die IPA (2009)American IPA36812.0
...........................
238723900.059135.01676Troopers Alley IPAAmerican IPA34412.0
239023930.06582.024174000 Footer IPAAmerican IPA10912.0
239223950.06569.01697Be Hoppy IPAAmerican IPA33916.0
239323960.06969.02194Worthy IPAAmerican IPA19912.0
239623990.06969.01512Worthy IPA (2013)American IPA19912.0
\n", - "

424 rows × 8 columns

\n", - "" - ], - "text/plain": [ - " Unnamed: 0 abv ibu id name \\\n", - "2 2 0.071 NaN 2264 Rise of the Phoenix \n", - "4 4 0.075 NaN 2262 Sex and Candy \n", - "28 28 0.070 70.0 799 21st Amendment IPA (2006) \n", - "29 29 0.070 70.0 797 Brew Free! or Die IPA (2008) \n", - "30 30 0.070 70.0 796 Brew Free! or Die IPA (2009) \n", - "... ... ... ... ... ... \n", - "2387 2390 0.059 135.0 1676 Troopers Alley IPA \n", - "2390 2393 0.065 82.0 2417 4000 Footer IPA \n", - "2392 2395 0.065 69.0 1697 Be Hoppy IPA \n", - "2393 2396 0.069 69.0 2194 Worthy IPA \n", - "2396 2399 0.069 69.0 1512 Worthy IPA (2013) \n", - "\n", - " style brewery_id ounces \n", - "2 American IPA 177 12.0 \n", - "4 American IPA 177 12.0 \n", - "28 American IPA 368 12.0 \n", - "29 American IPA 368 12.0 \n", - "30 American IPA 368 12.0 \n", - "... ... ... ... \n", - "2387 American IPA 344 12.0 \n", - "2390 American IPA 109 12.0 \n", - "2392 American IPA 339 16.0 \n", - "2393 American IPA 199 12.0 \n", - "2396 American IPA 199 12.0 \n", - "\n", - "[424 rows x 8 columns]" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "beers[beers['style']=='American IPA']" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['Unnamed: 0', 'abv', 'ibu', 'id', 'name', 'style', 'brewery_id',\n", - " 'ounces'],\n", - " dtype='object')" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "beers.columns" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Quantitative vs. categorical data\n", - "\n", - "As you can see in the nice table that `pandas` printed for the dataframe, we have several features for each beer: the label `abv` corresponds to the acohol-by-volume fraction, label `ibu` refers to the international bitterness unit (IBU), then we have the `name` of the beer and the `style`, the brewery ID number, and the liquid volume of the beer can, in ounces.\n", - "\n", - "Alcohol-by-volume is a numeric feature: a volume fraction, with possible values from 0 to 1 (sometimes also given as a percentage). In the first 10 rows of our dataframe, the `ibu` value is missing (all those `NaN`s), but we saw in the previous lesson that `ibu` is also a numeric feature, with values that go from a minimum of 4 to a maximum of 138 (in our data set). IBU is pretty mysterious: how do you measure the bitterness of beer? It turns out that bitterness is measured as parts per million of _isohumulone_, the acid found in hops [2]. \n", - "\n", - "For these numeric features, we learned that we can get an idea of the _central tendency_ in the data using the **mean value**, and we get ideas of _spread_ of the data with the **standard deviation** (and also with the range, but standard deviation is the most common).\n", - "\n", - "Notice that the beer data also has a feature named `style`: it can be \"American IPA\" or \"American Porter\" or a bunch of other styles of beer. If we want to study the beers according to style, we'll have to come up with some new ideas, because you can't take the mean or standard deviation of this feature!\n", - "\n", - "**Quantitative data** have meaning through a numeric feature, either on a continuous scale (like a fraction from 0 to 1), or a discrete count. \n", - "**Categorical data**, in contrast, have meaning through a qualitative feature (like the style of beer). Data in this form can be collected in groups (categories), and then we can count the number of data items in that group. For example, we could ask how many beers (in our set) are of the style \"American IPA,\" or ask how many beers we have in each style.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Visualizing quantitative data\n", - "\n", - "In the previous lesson, we played around a bit with the `abv` and `ibu` columns of the dataframe `beers`. For each of these columns, we extracted it from the dataframe and saved it into a `pandas` series, then we used the `dropna()` method to get rid of null values. This \"clean\" data was our starting point for some exploratory data analysis, and for plotting the data distributions using **histograms**. Here, we will add a few more ingredients to our recipes for data exploration, and we'll learn about a new type of visualization: the **box plot**.\n", - "\n", - "Let's repeat here the process for extracting and cleaning the two series, and getting the values into NumPy arrays:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "#Repeat cleaning values abv\n", - "abv_series = beers['abv']\n", - "abv_clean = abv_series.dropna()\n", - "abv = abv_clean.values" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "#Repeat cleaning values ibu\n", - "ibu_series = beers['ibu']\n", - "ibu_clean = ibu_series.dropna()\n", - "ibu = ibu_clean.values" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's also repeat a histogram plot for the `abv` variable, but this time choose to plot just 10 bins (you'll see why in a moment)." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(6,4))\n", - "plt.hist(abv, bins=10, color='b', histtype='bar', edgecolor='w') \n", - "plt.title('Alcohol by Volume (abv) \\n')\n", - "plt.xlabel('abv')\n", - "plt.ylabel('Frequency');" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You can tell that the most frequent values of `abv` fall in the bin just above 0.05 (5% alcohol), and the bin below. The mean value of our data is 0.06, which happens to be within the top-frequency bin, but data is not always so neat (sometimes, extreme values weigh heavily on the mean). Note also that we have a _right skewed_ distribution, with higher-frequency bins occuring in the lower end of the range than in the higher end.\n", - "\n", - "If you played around with the bin sizes in the previous lesson, you might have noticed that with a lot of bins, it becomes harder to visually pick out the patterns in the data. But if you use too few bins, the plot is also unhelpful. What number of bins is just right? Well, it depends on your data, so you'll just have to experiment and use your best judgement." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's learn a new trick. It turns out that `pandas` has built-in methods to make histograms directly from columns of a dataframe! (It uses Matplotlib internally for that.) The syntax is short and sweet:\n", - "\n", - "```\n", - "dataframe.hist(column='label')\n", - "```\n", - "\n", - "And `pandas` plots a pretty nice histogram without help. You can add optional parameters to set these to your liking; see the [documentation](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.hist.html). Check it out, and compare with our previous plot." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "beers.hist(column='abv', edgecolor='white')\n", - "plt.title('Alcohol by Volume (abv) \\n');" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Which one do you like better? Well, the `pandas` histogram took fewer lines of code to create. And it doesn't look bad at all. But we do have more fine-grained control with Matplotlib. Which method you choose in a real situation will just depend on the situation and your preference." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Exploring quantitative data (continued)\n", - "\n", - "In the [previous lesson](./01_Cheers_Stats_Beers.ipynb), you learned how to compute the mean of the data using `np.mean()`. How easy is that? But then we wrote our own custom functions to compute variance or standard deviation. There are some standard numpy libraries that we can use instead. \n", - "\n", - "\n", - "##### Exercise:\n", - "\n", - "* Go to the documentation of [`np.var()`](https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.var.html) and analyze if this function is computing the _sample variance_. \n", - "__Hint__: Check what it says about the \"data degrees of freedom.\"\n", - "\n", - "If you did the reading, you might have noticed that, by default, the argument `ddof` in `np.var()` is set to zero. If we use the default option, then we are not really calculating the sample variance. Recall from the previous lesson that the **sample variance** is:\n", - "\n", - "$$\n", - "\\begin{equation*} \n", - " \\text{var}_{sample} = \\frac{1}{N-1}\\sum_{i} (x_i - \\bar{x})^2\n", - "\\end{equation*}\n", - "$$\n", - "\n", - "Therefore, we need to be explicit about the division by $N-1$ when calling `np.var()`. How do we do that? We explicitly set `ddof` to `1`. \n", - "\n", - "For example, to compute the sample variance for our `abv` variable, we do:" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.00018337855205347506\n" - ] - } - ], - "source": [ - "var_abv = np.var(abv, ddof=1)\n", - "print(var_abv)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can compute the standard deviation by taking the square root of `var_abv`:" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.013541733716680264\n" - ] - } - ], - "source": [ - "std_abv = np.sqrt(var_abv)\n", - "print(std_abv)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You might be wondering if there is a built-in function for the standard deviation in NumPy. Go on and search online and try to find something.\n", - "\n", - "**Spoiler alert!**\n", - "You will. \n", - "\n", - "##### Exercise:\n", - "\n", - "1. Read the documentation about the NumPy standard deviation function, compute the standard deviation for `abv` using this function, and check that you obtained the same value than if you take the square root of the variance computed with NumPy.\n", - "\n", - "2. Compute the variance and standard deviation for the variable `ibu`." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Median value\n", - "\n", - "So far, we've learned to characterize quantitative data using the mean, variance and standard deviation.\n", - "\n", - "If you watched Prof. Sainani's lecture [Describing Quantitative Data: Where is the center?](https://youtu.be/tQ5slNYRcC4) (recommended in our previous lesson), you'll recall that she also introduced the **median**: the middle value in the data, the value that separates your data set in half. (If there's an even number of data values, you take the average between the two middle values.)\n", - "\n", - "As you may anticipate, NumPy has a built-in function that computes the median, helpfully named [`numpy.median()`](https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.median.html). \n", - "\n", - "##### Exercise:\n", - "\n", - "Using NumPy, compute the median for our variables `abv` and `ibu`. Compare the median with the mean, and look at the histogram to locate where the values fall on the x-axis." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Box plots\n", - "\n", - "Another handy way to visualize the distribution of quantitative data is using **box plots**. By \"distribution\" of the data, we mean some idea of the dataset's \"shape\": where is the center, what is the range, what is the variation in the data. \n", - "Histograms are the most popular type of plots in exploratory data analysis. But check out box plots: they are easy to make with `pyplot`:" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.boxplot(abv, labels=['Alcohol by volume']);" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.boxplot(ibu, labels=['International bitterness unit']);" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "What is going on here? Obviously, there is a _box_: it represents 50% of the data in the middle of the data range, with the line across it (here, in orange) indicating the _median_. \n", - "\n", - "The bottom of the box is at the 25th _percentile_, while the top of the box is at the 75th percentile. In other words, the bottom 25% of the data falls below the box, and the top 25% of the data falls above the box. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "_Confused by percentiles?_\n", - "The Nth percentile is the value below which N% of the observations fall. \n", - "\n", - "Recall the bell curve from our previous lesson: we said that 95% of the data falls at a distance $\\pm 2 \\sigma$ from the mean. This implies that 5% of the data (the rest) falls in the (symmetrical) tails, which in turn implies that the 2.5 percentile is at $-2\\sigma$ from the mean, and the 97.5 percentile is at $+2\\sigma$ from the mean.\n", - "\n", - "The percentiles 25, 50, and 75 are also named _quartiles_, since they divide the data into quarters. They are named first (Q1), second (Q2 or median) and third quartile (Q3), respectively. \n", - "\n", - "Fortunately, NumPy has a function to compute percentiles and we can do it in just one line. Let's use [`np.percentile()`](https://docs.scipy.org/doc/numpy-dev/reference/generated/np.percentile.html) to compute the `abv` and `ibu` quartiles. \n", - "\n", - "** abv quartiles **" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The first quartile for abv is 0.05\n", - "The second quartile for abv is 0.056\n", - "The third quartile for abv is 0.067\n" - ] - } - ], - "source": [ - "Q1_abv = np.percentile(abv, q=25)\n", - "Q2_abv = np.percentile(abv, q=50)\n", - "Q3_abv = np.percentile(abv, q=75)\n", - "\n", - "print('The first quartile for abv is {}'.format(Q1_abv))\n", - "print('The second quartile for abv is {}'.format(Q2_abv))\n", - "print('The third quartile for abv is {}'.format(Q3_abv))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "** ibu quartiles **\n", - "\n", - "You can also pass a list of percentiles to `np.percentile()` and calculate several of them in one go. For example, to compute the quartiles of `ibu`, we do:" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The first quartile for ibu is 21.0\n", - "The second quartile for ibu is 35.0\n", - "The third quartile for ibu is 64.0\n" - ] - } - ], - "source": [ - "quartiles_ibu = np.percentile(ibu, q=[25, 50, 75])\n", - "\n", - "print('The first quartile for ibu is {}'.format(quartiles_ibu[0]))\n", - "print('The second quartile for ibu is {}'.format(quartiles_ibu[1]))\n", - "print('The third quartile for ibu is {}'.format(quartiles_ibu[2]))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "OK, back to box plots. The height of the box—between the 25th and 75th percentile—is called the _interquartile range_ (IQR). Outside the box, you have two vertical lines—the so-called \"whiskers\" of the box plot—which used to be called \"box and whiskers plot\" [3]. \n", - "\n", - "The whiskers extend to the upper and lower extremes (short horizontal lines). The extremes follow the following rules: \n", - "\n", - "* Top whisker: lower value between the **maximum** and `Q3 + 1.5 x IQR`. \n", - "* Bottom whisker: higher value between the **minimum** and `Q1 - 1.5 x IQR`\n", - "\n", - "Any data values beyond the upper and lower extremes are shown with a marker (here, small circles) and are an indication of outliers in the data.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### Exercise:\n", - "\n", - "Calculate the end-points of the top and bottom whiskers for both the `abv` and `ibu` variables, and compare the results with the whisker end-points you see in the plot. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### A bit of history:\n", - "\n", - "\"Box-and-whiskers\" plots were invented by John Tukey over 45 years ago. Tukey was a famous mathematician/statistician who is credited with coining the words _software_ and _bit_ [4]. He was active in the efforts to break the _Enigma_ code during WWII, and worked at Bell Labs in the first surface-to-air guided missile (\"Nike\"). A classic 1947 work on early design of the electonic computer acknowledged Tukey: he designed the electronic circuit for computing addition. Tukey was also a long-time advisor for the US Census Bureau, and a consultant for the Educational Testing Service (ETS), among many other contributions [5].\n", - "\n", - "##### Note:\n", - "\n", - "Box plots are also drawn horizontally. Often, several box plots are drawn side-by-side with the purpose of comparing distributions." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Visualizing categorical data\n", - "\n", - "The typical method of visualizing categorical data is using **bar plots**. These show visually the frequency of appearance of items in each category, or the proportion of data in each category. Suppose we wanted to know how many beers of the same style are in our data set. Remember: the _style_ of the beer is an example of _categorical data_. Let's extract the column with the style information from the `beers` dataframe, assign it to a variable named `style_series`, check the type of this variable, and view the first 10 elements." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], - "source": [ - "style_series = beers['style']" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "pandas.core.series.Series" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "type(style_series)" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array(['American Pale Lager', 'American Pale Ale (APA)', 'American IPA',\n", - " 'American Double / Imperial IPA', 'Oatmeal Stout',\n", - " 'American Porter', 'Saison / Farmhouse Ale', 'Belgian IPA',\n", - " 'Cider', 'Baltic Porter', 'Tripel', 'American Barleywine',\n", - " 'Winter Warmer', 'American Stout', 'Fruit / Vegetable Beer',\n", - " 'English Strong Ale', 'American Black Ale', 'Belgian Dark Ale',\n", - " 'American Blonde Ale', 'American Amber / Red Ale',\n", - " 'Berliner Weissbier', 'American Brown Ale',\n", - " 'American Pale Wheat Ale', 'Belgian Strong Dark Ale', 'Kölsch',\n", - " 'English Pale Ale', 'American Amber / Red Lager',\n", - " 'English Barleywine', 'Milk / Sweet Stout', 'German Pilsener',\n", - " 'Pumpkin Ale', 'Belgian Pale Ale', 'American Pilsner',\n", - " 'American Wild Ale', 'English Brown Ale', 'Altbier',\n", - " 'California Common / Steam Beer', 'Gose', 'Cream Ale',\n", - " 'Vienna Lager', 'Witbier', 'American Double / Imperial Stout',\n", - " 'Munich Helles Lager', 'Schwarzbier', 'Märzen / Oktoberfest',\n", - " 'Extra Special / Strong Bitter (ESB)', 'Rye Beer',\n", - " 'Euro Dark Lager', 'Hefeweizen', 'Foreign / Export Stout', 'Other',\n", - " 'English India Pale Ale (IPA)', 'Czech Pilsener',\n", - " 'American Strong Ale', 'Mead', 'Euro Pale Lager',\n", - " 'American White IPA', 'Dortmunder / Export Lager',\n", - " 'Irish Dry Stout', 'Scotch Ale / Wee Heavy', 'Munich Dunkel Lager',\n", - " 'Radler', 'Bock', 'English Dark Mild Ale', 'Irish Red Ale',\n", - " 'Rauchbier', 'Bière de Garde', 'Doppelbock', 'Dunkelweizen',\n", - " 'Belgian Strong Pale Ale', 'Dubbel', 'Quadrupel (Quad)',\n", - " 'Russian Imperial Stout', 'English Pale Mild Ale',\n", - " 'Maibock / Helles Bock', 'Herbed / Spiced Beer',\n", - " 'American Adjunct Lager', 'Scottish Ale', 'Smoked Beer',\n", - " 'Light Lager', 'Abbey Single Ale', 'Roggenbier', 'Kristalweizen',\n", - " 'American Dark Wheat Ale', 'English Stout', 'Old Ale',\n", - " 'American Double / Imperial Pilsner', 'Flanders Red Ale',\n", - " 'Keller Bier / Zwickel Bier', 'American India Pale Lager',\n", - " 'Shandy', 'Wheat Ale', 'American Malt Liquor', 'English Bitter',\n", - " 'Chile Beer', 'Grisette', 'Flanders Oud Bruin', 'Braggot',\n", - " 'Low Alcohol Beer'], dtype=object)" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "style_series.unique()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Already in the first 10 elements we see that we have two beers of the style \"American IPA,\" two beers of the style \"American Pale Ale (APA),\" but only one beer of the style \"Oatmeal Stout.\" The question is: how many beers of each style are contained in the whole series? " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Luckily, `pandas` has a built-in function to answer that question: [`series.value_counts()`](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.value_counts.html) (where `series` is the variable name of the `pandas` series you want the counts for). Let's try it on our `style_series`, and save the result in a new variable named `style_counts`." - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Herbed / Spiced Beer 9\n", - "Schwarzbier 9\n", - "American Double / Imperial Stout 9\n", - "Belgian Strong Pale Ale 7\n", - "American Dark Wheat Ale 7\n", - "Bière de Garde 7\n", - "Doppelbock 7\n", - "Bock 7\n", - "Belgian Strong Dark Ale 6\n", - "California Common / Steam Beer 6\n", - "American Wild Ale 6\n", - "Baltic Porter 6\n", - "Foreign / Export Stout 6\n", - "English Dark Mild Ale 6\n", - "Dortmunder / Export Lager 6\n", - "Euro Dark Lager 5\n", - "Mead 5\n", - "Irish Dry Stout 5\n", - "Dubbel 5\n", - "Maibock / Helles Bock 5\n", - "English Strong Ale 4\n", - "Quadrupel (Quad) 4\n", - "Munich Dunkel Lager 4\n", - "Dunkelweizen 4\n", - "American India Pale Lager 3\n", - "Keller Bier / Zwickel Bier 3\n", - "English Barleywine 3\n", - "Chile Beer 3\n", - "English Bitter 3\n", - "American Barleywine 3\n", - "Radler 3\n", - "English Pale Mild Ale 3\n", - "Shandy 3\n", - "Rauchbier 2\n", - "Abbey Single Ale 2\n", - "English Stout 2\n", - "Euro Pale Lager 2\n", - "Old Ale 2\n", - "Roggenbier 2\n", - "American Double / Imperial Pilsner 2\n", - "Grisette 1\n", - "American Malt Liquor 1\n", - "Low Alcohol Beer 1\n", - "Braggot 1\n", - "Flanders Red Ale 1\n", - "Wheat Ale 1\n", - "Flanders Oud Bruin 1\n", - "Kristalweizen 1\n", - "Smoked Beer 1\n", - "Other 1\n", - "Name: style, dtype: int64\n" - ] - } - ], - "source": [ - "style_counts = style_series.value_counts()\n", - "print(style_counts[-50:])" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "pandas.core.series.Series" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "type(style_counts)" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "99" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(style_counts)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The `len()` function tells us that `style_counts` has 99 elements. That is, there are a total of 99 styles of beer in our data set. Wow, that's a lot!\n", - "\n", - "Notice that `value_counts()` returned the counts sorted in decreasing order: the most popular beer in our data set is \"American IPA\" with 424 entries in our data. The next-most popular beer is \"American Pale Ale (APA)\" with a lot fewer entries (245), and the counts decrease sharply after that. Naturally, we'd like to know how much more popular are the top-2 beers from the rest. Bar plot to the rescue! " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Below, we'll draw a horizontal bar plot directly with `pandas` (which uses Matplotlib internally) using the [`plot.barh()`](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.plot.barh.html) method for series. We'll only show the first 20 beers, because otherwise we'll get a huge plot. This plot gives us a clear visualization of the popularity ranking of beer styles in the US!" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "style_counts[0:20].plot.barh(figsize=(10,8), color='#008367', edgecolor='gray');" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Visualizing multiple data\n", - "\n", - "These visualizations are really addictive! We're now getting ambitious: what if we wanted to show more than one feature, together on the same plot? What if we wanted to get insights about the relationship between two features through a multi-variable plot? \n", - "\n", - "For example, we can explore the relationship between bitterness of beers and the alcohol-by-volume fraction." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Scatter plots\n", - "\n", - "Maybe we can do this: imagine a plot that has the alcohol-by-volume on the absissa, and the IBU value on the ordinate. For each beer, we can place a dot on this plot with its `abv` and `ibu` values as $(x, y)$ coordinates. This is called a **scatter plot**.\n", - "\n", - "We run into a bit of a problem, though. The way we handled the beer data above, we extracted the column for `abv` into a series, dropped the null entries, and saved the values into a NumPy array. We then repeated this process for the `ibu` column. Because a lot more `ibu` values are missing, we ended up with two arrays of different length: 2348 entries for the `abv` series, and 1405 entries for the `ibu` series. If we want to make a scatter plot with these two features, we'll need series (or arrays) of the same length.\n", - "\n", - "Let's instead clean the whole `beers` dataframe (which will completely remove any row that has a null entry), and _then_ extract the values of the two series into NumPy arrays." - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [], - "source": [ - "beers_clean = beers.dropna()" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1405" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ibu = beers_clean['ibu'].values\n", - "len(ibu)" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1405" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "abv = beers_clean['abv'].values\n", - "len(abv)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Notice that both arrays now have 1403 entries—not 1405 (the length of the clean `ibu` data), because two rows that had a non-null `ibu` value _did_ have a null `abv` value and were dropped." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "With the two arrays of the same length, we can now call the [`pyplot.scatter()`](https://matplotlib.org/devdocs/api/_as_gen/matplotlib.pyplot.scatter.html) function." - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(8,8))\n", - "plt.scatter(abv, ibu, color='#3498db') \n", - "plt.title('Scatter plot of alcohol-by-volume vs. IBU \\n')\n", - "plt.xlabel('abv')\n", - "plt.ylabel('IBU');" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Hmm. That's a bit of a mess. Too many dots! But we do make out that the beers with low alcohol-by-volume tend to have low bitterness. For higher alcohol fraction, the beers can be anywhere on the bitterness scale: there's a lot of vertical spread on those dots to the right of the plot. \n", - "\n", - "An idea! What if the bitterness has something to do with _style_? " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Bubble chart\n", - "\n", - "What we imagined is that we could group together the beers by style, and then make a new scatter plot where each marker corresponds to a style. The beers within a style, though, have many values of alcohol fraction and bitterness: we have to come up with a \"summary value\" for each style. Well, why not the _mean_… we can calculate the average `abv` and the average `ibu` for all the beers in each style, use that pair as $(x,y)$ coordinate, and put a dot there representing the style. \n", - "\n", - "Better yet! We'll make the size of the \"dot\" proportional to the popularity of the style in our data set! This is called a **bubble chart**.\n", - "\n", - "How to achieve this idea? We searched online for \"mean of a column with pandas\" and we landed in [`dataframe.mean()`](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.mean.html). This could be helpful… But we don't want the mean of a _whole_ column—we want the mean of the column values grouped by _style_. Searching online again, we landed in [`dataframe.groupby()`](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.groupby.html). This is amazing: `pandas` can group a series for you! \n", - "\n", - "Here's what we want to do: group beers by style, then compute the mean of `abv` and `ibu` in the groups. We experimented with `beers_clean.groupby('style').mean()` and were amazed… However, one thing was bothersome: `pandas` computed the mean (by style) of every column, including the `id` and `brewery_id`, which have no business being averaged. So we decided to first drop the columns we don't need, leaving only `abv`, `ibu` and `style`. We can use the [`dataframe.drop()`](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.drop.html) method for that. Check it out!" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [], - "source": [ - "beers_styles = beers_clean.drop(['Unnamed: 0','name','brewery_id','ounces','id'], axis=1)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We now have a dataframe with only the numeric features `abv` and `ibu`, and the categorical feature `style`. Let's find out how many beers we have of each style—we'd like to use this information to set the size of the style bubbles." - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [], - "source": [ - "style_counts = beers_styles['style'].value_counts()" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "pandas.core.series.Series" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "type(style_counts)" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "90" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(style_counts)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The number of beers in each style appears on each row of `style_counts`, sorted in decreasing order of count. We have 90 different styles, and the most popular style is the \"American IPA,\" with 301 beers…\n", - "\n", - "##### Discuss with your neighbor:\n", - "\n", - "* What happened? We used to have 99 styles and 424 counts in the \"American IPA\" style. Why is it different now?" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "OK. We want to characterize each style of beer with the _mean values_ of the numeric features, `abv` and `ibu`, within that style. Let's get those means." - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [], - "source": [ - "style_means = beers_styles.groupby('style').mean()" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
abvibu
style
Abbey Single Ale0.04900022.000000
Altbier0.05462534.125000
American Adjunct Lager0.04654511.000000
American Amber / Red Ale0.05719536.298701
American Amber / Red Lager0.04806323.250000
.........
Tripel0.08975023.500000
Vienna Lager0.05042924.357143
Wheat Ale0.06000024.000000
Winter Warmer0.06950024.625000
Witbier0.05041716.208333
\n", - "

90 rows × 2 columns

\n", - "
" - ], - "text/plain": [ - " abv ibu\n", - "style \n", - "Abbey Single Ale 0.049000 22.000000\n", - "Altbier 0.054625 34.125000\n", - "American Adjunct Lager 0.046545 11.000000\n", - "American Amber / Red Ale 0.057195 36.298701\n", - "American Amber / Red Lager 0.048063 23.250000\n", - "... ... ...\n", - "Tripel 0.089750 23.500000\n", - "Vienna Lager 0.050429 24.357143\n", - "Wheat Ale 0.060000 24.000000\n", - "Winter Warmer 0.069500 24.625000\n", - "Witbier 0.050417 16.208333\n", - "\n", - "[90 rows x 2 columns]" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "style_means" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Looking good! We have the information we need: the average `abv` and `ibu` by style, and the counts by style. The only problem is that `style_counts` is sorted by decreasing count value, while `style_means` is sorted alphabetically by style. Ugh." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Notice that `style_means` is a dataframe that is now using the style string as a _label_ for each row. Meanwhile, `style_counts` is a `pandas` series, and it also uses the style as label or index to each element.\n", - "\n", - "More online searching and we find the [`series.sort_index()`](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.sort_index.html) method. It will sort our style counts in alphabetical order of style, which is what we want." - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [], - "source": [ - "style_counts = style_counts.sort_index()" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Abbey Single Ale 2\n", - "Altbier 8\n", - "American Adjunct Lager 11\n", - "American Amber / Red Ale 77\n", - "American Amber / Red Lager 16\n", - "American Barleywine 2\n", - "American Black Ale 20\n", - "American Blonde Ale 61\n", - "American Brown Ale 38\n", - "American Dark Wheat Ale 5\n", - "Name: style, dtype: int64" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "style_counts[0:10]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Above, we used Matplotlib to create a scatter plot using two NumPy arrays as the `x` and `y` parameters. Like we saw previously with histograms, `pandas` also has available some plotting methods (calling Matplotlib internally). Scatter plots made easy!\n" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "style_means.plot.scatter(figsize=(8,8), \n", - " x='abv', y='ibu', s=style_counts, \n", - " title='Beer ABV vs. IBU mean values by style');" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "That's rad! Perhaps the bubbles are too small. We could multiply the `style_counts` by a factor of 5, or maybe 10? You should experiment. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "But we are feeling gung-ho about this now, and decided to find a way to make the _color_ of the bubbles also vary with the style counts. Below, we import the [`colormap`](https://matplotlib.org/api/cm_api.html) module of Matplotlib, and we set our colors using the [_viridis_ colormap](https://matplotlib.org/examples/color/colormaps_reference.html) on the values of `style_counts`, then we repeat the plot with these colors on the bubbles and some transparency. _What do you think?_" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [], - "source": [ - "from matplotlib import cm\n", - "colors = cm.viridis(style_counts.values)" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoIAAAKCCAYAAABF8LgVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdeZxkd13v/9fn1Nb73rNntsxkMpOQdUJYwy6IbC4oi14DKsr1Xq+KetH7E3H3qlcQARGVRVzgehENKoIgQUISwiSEZCbLJLPv09PT+1Lb+fz+OKcnNT3V20x3V1XX+/l41KO6z/nWOZ+qOnXqU9/tmLsjIiIiIvUnqHQAIiIiIlIZSgRFRERE6pQSQREREZE6pURQREREpE4pERQRERGpU0oERUREROqUEkEREVlSZuZmdnel41gIM7vbzFb8/Gpm9uL4/XlvpWORylAiKMvOzDbHJ57SW2hmZ8zsfjP7STNLVTrOhTKzjJn1x8/ng7OUe3GZ5180s5Pxl8+bzMxKyn86LvP6OfZ/U1zu3sV8Xkul5HV4/7Tlnyjz+kyY2VNm9nEz21VmW3fH5TbPsr/D9fDFLitfyTn0E5WORWpfstIBSF17Evh0/HcArAFeC3wEeDnwxgrFdbleD3QBDrzFzN7l7tlZyn8T+Lf47ySwId7G3wG3Ar8Yr/sY8EPA24B/mmV7b4vvP35Z0VefPwNOx383AzcCPwq8ycxe6O57KhaZiMgKoURQKukJd39v6QIz6wAeBX7AzLa6+8GKRHZ53g4UgT8BfhZ4A/CZWcrfX+b5bwL2Af/dzN7j7hPAl4FjwKvNrNfd+6ZvKK5BfQswPsc+a8lH3P3h0gVm9i7gD4GfAf5LRaISEVlB1DQsVcXdB4EH4n97pq83s5eY2b/GTbCTZvaYmb3bzC75UWNmgZn9hJl908xG49u9ZvZ9ZcpONUdebWb/08z2m1luvv1mzGw98ArgK0SJSsgzNXTz5u5HiGpKM0BrvCwEPgmkgB+e4aGvJXq9Puvuw7PE2WRmI2a2d4b1DWY2ZGZPlizrNLPfMbMnzGzczAbMbK+ZfdjMWhb6HK/Ql+L7S46NxWRm742Phxeb2Y+Z2b64efpJM/uRuEzazH7LzI7Ex+K3zOw5M2zv6rhZ+3h8XB2PX7/eMmXfbmZ3xdvNmtk5M/snM9tdpuydcZx3mtkrzey++D06G2+/aR7PdbNFXTP+eYb16+OuC18sWXarmX0ofl2GzWzMzB4ys58u7dYwx34Pm9nhhawzs7b4NX8ifs37zewfzezGMmWvMbNPxdvK2jNdT35pPvGVbKfRzN5nZififX7bzN44rczH4vfh5hm28VezrZ9W9uVm9u9mdjre33Ez+6KZvS5efydwKC7+o3ZxF4rNixzLzWb29/FrlzWzA2b2uxX43MsSUiIoVcXM2oHbgDGihKh03X8jSrR2EzWRfggYAX4X+L/TyhpRE+tHgRaiROqTwDrgs2b2P2YI4YPAu4BvAH8MzLdG8k6iz9On3P0EcDfwCjPbMM/HT8V9FbADOO7uZ0tWfYKoyfnOWfYPczQLu/s48I/AdeW+PIHXAG3A38TxGPBF4N3AYaLX55NEX0R3Ah2zPqHF9/L4/qFl2t/PAb9P1Iz/MaIE9K/M7NXA3wM/CNwV/30z8IX4GL7AzJ4bx/sW4D7g/fH/PwXcb2Zd0/b5IaCXKOl9H/DvwHcB98yUaBJ1Kfgn4Cjwp8AZ4J1xzLNy98NEx/srzaxcgv1momP7b0qW/US8z+8QdeX4K6Cd6Ph431z7vBxxbPcD/ws4SfQ6fR54GXBv/DpPlV1P9IPy+4B7gf8DfA7IAz++wF3/PdFz/TTR67kJ+L9m9vaSMh+N798+7bGYWRvw/cC33f3bczzH1xC979cRvZ9T7/9VwOviYg8TnZsgev1/veQ2uIixfC/R6/2qOKYPEJ0D3g182czSsz1eaoi766bbst6AzURJzRPAe+PbbxB9oZwAhoG3THvMdUQn8fuB9pLlRvTl48APlCz/yXjZh4BEyfJmoi/1LLCuZPkn4vKHSpcv4Dk9BYwCzfH/d8bb+19lyr44Xnd/yfP/TaIvmX6iL/GXlXnc3fHjbpm2fHX82hwEbB6xvirezu+XWfe5eN3V8f83xP//UZmybUD6Co6Dqdfh/dOWT70XHyl5fX4f+AJR0/uXgY4ZXpvNs+zvcHTKm1ds74231wdsKll+a7x8APga0Fiy7l3xup8vWZYGjgDngZ3T9vHGuPwHpy3fUiaenUQ/er48bfnUcZYDnlOyvAF4nKhmev08nu9Pxdv5r2XWfZuoy0FLybKNQDCtXJKoz2ux9DWL1zlwd5n34/As79Xhacv+Lt7Om6ct3wYMAY+WLPuZuOzrymy7e57HwNQx9Qjx53rq/Yn3N8zF56JH4/c5M207U+ein57HPv+B6NzUO1vcPHMO/cQM25l3LDzzOXxvybKe+PkdZNr5kKjvsgO/MJ/XUbfqv1U8AN3q71ZyEpvp9klgw7THfCBet7vM9triL7z/V7LskfhEeEmiQlTr5cB/K1n2ifmerMts7474sZ8qWdYaf3k+Vab81Im33C1P9Gu/o8zjfjQu84Fpy6cSkPfMM94E0SCMo5QkjkBn/CV0X8myqUTwt5fgOJh6HWZKBMvdDgE/XGZbd7M0ieCvlln3dLzuhdOWb5g6fkuWfd9sX5rAHuDcPGO6K35/0iXL7mSGhAD4tXjda+ex7S6iZPKeact3xdv4u3nGOPV875y2/IoSQaLEpAj88wzl/zDex/Xx/1OJ4Cuu4PicOqbeVGbd78fr/kvJsp8pV57oh+cE0DmPff4D0Q/KSz7/08ptnul9X2gslE8Ef55pP65L1gXAWWDP5b62ulXXTYNFpJL+yd3fABeaINcQJWnvB15iZje7e39c9nbiX/hx88l0E8C18baagOuJEp1fKdNlaapf1rVltnM5I1Gn+gJ+amqBu4+Y2T8RjXC9w93/s8zj/tjdfzaOOSBqtv5h4LeBF5nZbe6eLyn//4gGorzFzH7B3XPx8juJvxTmE6y7F83sM0RfFncQ1WwB/ABRDdZflxR/DNgL/LKZ3QT8C/B1YK/H3wpL6GaPB4uYWSNRrdjvAp8ys3Xu/vtLvH+Imt6mOw1cXWbd1AjndSXLbo/vr7fy/U0bgW4z63H3cwBmtg34FeAl8bamN8F1A6emLSvXzHcivp+z+d7dz5vZF4DXmtlmj5qLAd4a35ceE5hZhuj4+SGirgzT+4ytnWufC3QbUQLSMsPruDO+v5boeP080bHyj2b2f4maV+9x96OXse97Zlj2i0Qj2ad8CvjfwI8Rz4ZgZtcDzwb+1t0H5rGvzwDfC+w1s08TJaP3eNR3eiGuNJap4/YF8eOmy1P+/Ck1SImgVIU4qTgF/Hncr+49wE8TNRlDVGNhwK/Ospnm+L4zLruJqFZkrvKlzpZZNqO40/QbiZKAr0xb/SngTUSJYrlE8AKPBoQcB37PzHYSjYh9M1Hfq6kyY/GX2o8RDQ75rEUDCK4najJcyJfc3xB9kb+FZxLBtwIFSkYdu3vBzF5K9D58H/DqeNUxM/std/8oy8Cj0dMPxZ30jwO/amYfcvexuEgY38/W7zkgSpgXotzAm0Ic00Xr4tcKokE9U6b6//3oHPtpBs6Z2Xaivm2tRE3gnyOqIQqJRqHfSDSQaLqhmeIkqgGej78h6of2ZuB34x9nbwHOEfUTLfVZ4HuIunf8LVETeoGopupHZ4jxSky9ji+KbzNpBnD3Q2b2PKJ+cz9E3IfWzL4FvMvdv76AfV8ySp+o+wZErRHE+xwws88S/VDb5NHArx+LV//FfHbk7p8xswJRjdzPEdX2F8zs88DPzvczvgixTL3eM/WllhVEg0WkGn0rvr+lZNkwUdNQg7vbDLctJWUBvjFLWXP3cqN6F5oo/CDRl88aohP2hRF8RLVnAG9c4Ci7cs9/ysfj+zun3X/8kpKzcPcHiPo1vtGi0a9XEdUOfnGqZqqkbJ+7v5OoludG4BeIEu0/izuUL5s4+dpPVAO1vWTV1Hs+feAFcKHGuYvyCdNSmorrFXMci0ficj9LVIP3I+7+Knf/eXd/j0fTDE2vBVxsnyfqhzhVC/g8osTuM+4+lVRiZrcRJYH/Blzn7j/p7v9fHOMXFrC/kJmT1LZp/0+9jr89x+v4yakHuPt34haHTqJj+w+IfjT9a3y8z9clI7uJ+uWWxjXlz4k+G2+LB1P8MFE/u7vnuzN3/6y7P5+oOfz1RC0B3wvcZWWaN2ZxJbFMPa/ts73eC4hFqpgSQalGnfF96fH5ANGXxm1zPdjdR4hqKq5fhmkOppLJvwX+ssztAaJE8QcXsM1yzx8Ad/8G0WjqV1k05+CbiZKbf7iM2P823ter4u0Y05oAp+07dPdH3P3/xOXhmZGMy6nc6/NofP9cyrue6H14dIb1S2VqKqSZRvtOd3V8//nShXHTeLkfBosmrnX9B6IR5TcwQ7NwSYz/Etdkl3r+AnY5CKw2s4uSwfi47pxW9ltEP9Lm+zpe4O5Zd/+6u/8S8DtEPyJeuoBNvGCWZRd1D3D3rxF9Pt9GVIPbA3zscrpRuPuAu9/l7m8mam24kWiQDkQ/imGW2t4rjGWhx63UMCWCUlXiX64/Ff9b2nzzYaKT34fM7JL+R2a2Om5SnfInRNNZfNjMGsqUv87MVl1hrNuJvhAec/e3uvuPT78RTeEBZaZymGGbbTxTyzdT89UniLp1/C1RLdffufvkZTyFqS/4t8a3EaZducTMtphZub5AUzUiEyVl283s2nLvz2Ixs+8BthIlEaVzIf4NUQ3TL5jZummPSRP1l4KSfpzL5B+JJgN/t5k9e/pKi+aou71k0VTT3/NLyhhRAnNFx+s8TR0TdxL9eDng7vdPK3NJjADx1DbvWMC+HiRqRp/6UTE1MfofTi/o7qeJasZeZmbvnL7eojlDX1Ty/20zTIVzyXE7D79iZhe6kZjZFqLRt5d8XmJ/QZSwvY/onPWJ+e7IzF4a978sXZbkmZruqc/5VB+/9XNs8nJj+ThRl4T/HZ/npsfZYfOYh1Bqg/oISiVdW9Lx24hO0q8kao56lGg+NADc/VEz++9EU8XsN7N/JRpZ2EnURPgCov6Dj8cP+VOipq0fAV5sZv9B1I9vLdFI2JuIao8W1Cdwmjkv6ebuD5nZI8Dzzewad99fsvo5Jc9/arDIa4m+8L9C1A+rnE8Cv0X0/GAec8XNENvTZvYAUbNTCviruFao1I3A58zsfqIrnpwlmj7jDUSjoj9SUvZ7iV6LTzLzfIcL8VNmNjUAo5Goc/rUiO+fKxksg7s/YWbvJhrN+Vg8UOcY0fHxaqJj6i6iWtpl4+7ZuF/jF4jmDPwS0QCcZBzTi4jmFnxV/JCPEB1X/xAP6BkCXkj0mt9NNMJzKf0HURP0fyM6Jj5Upsw3iQZVvcnM1hDV1m0lqh2+i2ieuvn4ENFx8jEzewVRcv8yogSrXDP4O4mOgQ+b2Y8T1VqNEiU6zyX63Ez96Hsr8E4z+yrRKO8xonkeX0FUS1Z28uwZHAUeNbPPxdt/M1HT9Y+5e7muBp8kGvC1jqjW9ESZMjP5I2CDmd1NdH5LEM2deT3w1+5+BsDdR+P+ji8ys78ADhB9Lv50WkyXFYu7nzWztxL1F94Xn2+fIqpV30p03H6SZ360Sy3zKhi6rFt93Zh5+phxogTwNyiZs2zaY59LNMHrKaLpLk4Tzcf3HmBjmfJvBb5K9As6S3RS/yLRl0rp3GCfYI7pR6ZtNyAatJAH1sxR9mfjbf9u/P+LZ3j+o0RfsO8CUnNs81/ix+y9wvfiZ0r2f8lUG0RTovwe0Zf/WaIaiYNEXwLT58W7k1mmtCiz7anXYT7TxxSJOuj/E/DiWbb5CqJk5Ez83gwSjfB8B9PmvZsjtvfG+71kX8TTiszwuEumSYmXbyT6EXMgPg4H4mP9T4DbppV9GdEkyCNE80p+lujHziXHaMlrfmeZfc64bo7n/kclr/v2GcqsjuM5SfS5fZDoszb1nr53nq/Ld8XHfDZ+zz5INFDmMGWmliFKRH6FaJT0GNFn5imiOQa/r6Tc7UTXqt5HlEyPEiXgv83C5xFsIqpRO0l0/D8MvHGOx94VP/Z7F/ja/xDR5PgH4te1nyjh/UkgOa3stUTnsqGS92vzQmOZ6T2L1+2K3+djROfbc0STof8ecO1Cnptu1Xuz+M0WERGRKxRPBXWAKIHc4BdPAVW3sUj1Uh9BERGRxfO9RK0ef1kFiVc1xSJVSjWCIiIiVygexLKRqBtCErjG4z599RyLVD8lgiIiIlfIzA4TjeJ9nOh6019WLFILlAiKiIiI1Cn1ERQRERGpU0oERUREROqUEkERERGROqVEUERERKROKREUERERqVNKBEVERETqlBJBERERkTqlRFBERESkTikRFBEREalTSgRFRERE6pQSQREREZE6pURQREREpE4pERQRERGpU0oERUREROqUEkERERGROqVEUERERKROKREUERERqVNKBEVERETqlBJBERERkTqlRFBERESkTi17ImhmG8zsT8zsPjMbNzM3s81lyjWY2R+Y2Skzm4jL31GmXGBmv2xmh81s0sy+Y2bfvxzPRURERKSWVaJGcBvwg8AA8PVZyv0l8BPAe4DXAKeAL5rZTdPK/SbwXuCDwHcD9wN/b2avXtywRURERFYWc/fl3aFZ4O5h/PePA38ObHH3wyVlbgQeBt7u7h+PlyWBfcCT7v66eNkq4Bjwe+7+ayWP/wrQ6+43LM+zEhEREak9yeXe4VQSOIfXAXngMyWPK5jZp4F3m1nG3bPAK4E08NfTHv/XwMfMbIu7H5ptRz09Pb558+aFPAURERGRinjwwQfPuXvvYm1v2RPBeboOOOTu49OW7yNK/LbFf18HZIGny5QD2AXMmghu3ryZPXv2XHHAIiIiIkvNzI4s5vaqddRwF1EfwunOl6yfuh/0S9u3p5cTERERkWmqNRE0oFznRbvMchevNHuHme0xsz19fX2XGaKIiIhIbavWRPA85WvzOkvWT913mtn0xG96uYu4+0fdfbe77+7tXbRmdhEREZGaUq2J4D5gi5k1TVu+C8jxTJ/AfUAGuLpMOYDHlixCERERkRpXrYngXUAKeOPUgnj6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eDajg2MEiYCWjmYNFBGRC5QIioiscIlkgvaetkqHISJVSH0ERUREROqUEkERERGROqVEUERERKROKREUERERqVNKBEVERETqlBJBERERkTqlRFBERESkTikRFBEREalTSgRFRERE6pQSQREREZE6pURQREREpE4pERQRERGpU0oERUREROqUEkERERGROqVEUERERKROKREUERERqVNKBEVERETqlBJBERERkTpVtYmgmT3fzL5kZmfNbNjMHjKzt08r02Bmf2Bmp8xswszuM7M7KhWziIiISC2pykTQzG4AvgykgJ8Avh/4FvCXZmU25XoAACAASURBVPbOkqJ/Ga9/D/Aa4BTwRTO7aXkjFhEREak9yUoHMIM3AQngte4+Gi/7dzO7EfgvwJ/Gf78FeLu7fxzAzL4G7AN+A3jd8octIiIiUjuqskYQSAN5YGLa8kGeifl1cZnPTK109wLwaeCVZpZZhjhFREREala1JoKfiO8/YGbrzKzDzH4CeBnwvnjddcAhdx+f9th9RInktmWJVERERKRGVWXTsLvvNbMXA58D/mu8OA/8lLt/Ov6/Cxgo8/DzJetFREREZAZVmQia2Xbgs0S1ez9F1ET8euAjZjbp7n8DGODlHj6P7b8DeAfAxo0bFytsERERkZpSlYkg8DtENYCvcfd8vOwrZtYN/LGZ/R1RzV+5LK4zvj9fZh0A7v5R4KMAu3fvLpdMioiIiKx41dpH8FnAd0qSwCkPAN3AKqLawi1m1jStzC4gBzy95FGKiIiI1LBqTQRPAzeZWXra8tuBSaLavruI5hl849RKM0sCPwR8yd2zyxSriIiISE2q1qbhDwJ/D3zezD5M1EfwdcCbgfe5ew542Mw+A7zfzFLAIeCdwBbgrZUJW0RERKR2VGUi6O7/z8xeDfxP4C+ABuAA8NPAn5UUfRvw28BvAR3Ad4BXuftDyxuxiIiISO2pykQQwN2/AHxhjjITwM/HNxERERFZgGrtIygiIiIiS0yJoIiIiEidUiIoIiIiUqeUCIqIiIjUKSWCIiIiInVKiaCIiIhInVIiKCIiIlKnlAiKiIiI1CklgiIiIiJ1SomgiIiISJ1SIigiIiJSp5QIioiIiNQpJYIiIiIidUqJoIiIiEidUiIoIiIiUqeUCIqIiIjUKSWCIiIiInVKiaCIiIhInVIiKCIiIlKnlAiK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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "style_means.plot.scatter(figsize=(10,10), \n", - " x='abv', y='ibu', s=style_counts*20, color=colors,\n", - " title='Beer ABV vs. IBU mean values by style\\n',\n", - " alpha=0.3); #alpha sets the transparency" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It looks like the most popular beers do follow a linear relationship between alcohol fraction and IBU. We learned a lot about beer without having a sip!" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "_Wait... one more thing!_ What if we add a text label next to the bigger bubbles, to identify the style? \n", - "\n", - "OK, here we go a bit overboard, but we couldn't help it. We played around a lot to get this version of the plot. It uses `enumerate` to get pairs of indices and values from a list of style names; an `if` statement to select only the large-count styles; and the [`iloc[]`](http://pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.DataFrame.iloc.html) slicing method of `pandas` to get a slice based on index position, and extract `abv` and `ibu` values to an $(x,y)$ coordinate for placing the annotation text. _Are we overkeen or what!_ " - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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euNOivKSN6deRlqYhqYoH6zbsV/7uf3227nuuut6KaqBYd68eVx11VUdrp84cSIvvvhiP0bU/zZt2kR2djbNzc37LPvKK68wduzYfoiqfykRFBGRPvHhphIy0sLdnh+wM1/74hWcc9LhNDY2dHmbYblZrN1aSn1DU4+Pe+ONN/L73/++x9v3xNVXX00kEiEnJ4ecnBwOPvhgvv/971NRUdGvcfTU7bffzo033rjX8gULFnD88ccnIaK9jR8/nurqaoLB/Z+I3Mz46KOPAC/JDofDZGdnk5+fz7HHHsubb77Zpvwrr7yCmfGTn/xkv4+9P5QIiohIr6utb2TLrnJystJ7bZ/bt23hn+8uxcx4/dWXurxdIGAYsHlneY+OG40mb07A7373u1RVVVFSUsL8+fNZvHgxxx13HDU1/TNx9v54+umnOeecc5IdRof6+nW97LLLqK6upqSkhOOPP56LLroI5z6edGjhwoUUFhaycOHCPo1jX5QIiohIr9u8owyz3p1T77m//oUZh8zi7PMu4tmn/tJm3e03f5ef/+gm/uMr13LmcYfy5WvmUrq7hDt/eivnnHQ437j2Qp558dXW6WS2bdvGxRdfTHFxMZMmTeLOO+9s3de8efO45JJLuOqqq8jNzWXBggV7NaO+9tprHHvsseTn5zNu3DgWLFgAwKJFizjssMPIzc1l3LhxzJs3r3WbDRs2YGYsXLiQ8ePHU1RUxG233dal556ens6RRx7Jk08+SWlpKfPnzwcgFotx6623MmHCBIYPH87nPve51hrDRE2Z7Zt76+vrueyyy8jJyeHwww/nvffeS3j8WCzGHXfcwZQpUxg2bBhz585lz549HcZbVlbGmjVrOOaYY/b53CZOnMhPf/pTDj30ULKysvjCF77Azp07Ofvss8nJyeG0006jrMy7D3XLObznnnsYPXo0o0aN4mc/+1mX4mzZ9g9/+APjx4/nU5/6VOuylqRw/vz5TJ8+nZycHCZPnszvfve7fca/L+FwmM9//vPs2LGD0tJSAGpra3nkkUe46667+PDDD1m6dOl+H6enlAiKiEivW7u1lLxerA0ELxE8/ew5nH72+SxZ/A/2lO5us/7lF57hui9/iyf/9jbhcIQvXX0pU6cfxFN/e5uTTzube+78MeVVdcRiMc477zxmzpzJ1q1beemll/jlL3/Jc88917qvJ554gksuuYTy8nKuvPLKNsfZtGkTZ599Nl/96lcpKSlh+fLlzJo1C4CsrCzuvfdeysvLWbRoEb/5zW94/PHH22z/2muvsXr1al566SVuueUWVq1a1eVzkJOTw+mnn84//vEPwGtmXbBgAS+//DLr1q2jurqar3zlK13e3xNPPMGll17Knj17uOKKK7jgggtoatq7Cf3OO+/k8ccf59VXX2Xbtm0UFBRwww03dLjf5557jlNPPbXLTa6PPvooL7zwAmvWrOGpp57i7LPP5vbbb2f37t3EYrE2iTrAyy+/zIcffsjzzz/PHXfc0ZrcdiXOV199lVWrVrV5vVsMHz6cv/71r1RWVjJ//ny++c1v8s4773TpOXSkoaGBBQsWMHbsWIqKilqfb3Z2Npdeeilnnnkm9957734dY38oERQRkV5V39hEXUNTr47S/ee7S9mxYxunnH4O02YczJix43nxmSfblDnhlNOZNuNg0tLSOPFTZxCJpHHWuRcSDAb51BmfZv1H/6K6toG3336bkpISbrrpJiKRCJMnT+aLX/wiDz30UOu+jjnmGC644AICgQAZGW1vI3f//fdz2mmncfnllxMOhxk2bFhrInjyySdzyCGHEAgEOPTQQ7n88st59dVX22x/8803k5GRwcyZM5k5c2aHtXAdGT16dGst1/3338+3vvUtJk+eTHZ2Nj/60Y946KGHutzsecQRR3DJJZcQDof51re+RX19PYsXL96r3O9+9ztuu+02xo4dS1paGvPmzeORRx7p8DiLFi3qVrPwV7/6VUaMGMGYMWM44YQTOOqoozjssMNIS0vjwgsv5N13321T/uabbyYrK4tDDjmEa665hgcffLDLcc6bN4+srKy9XleAT3/600yZMgUz46STTuKMM85oTbq7609/+lNrjfGyZcvafCFYuHAhl112GcFgkCuuuIIHH3wwYQLeH5QIiohIr6qubSTh/df2w7N/fYwjjz6e/IJCAE476zye/Wvb5uGCwqLW39PS0igcNqzN3/X1dewqq2bjxo1s27aN/Pz81sftt9/Ozp07W8uPGzeuw1g2b97MlClTEq576623OOWUUyguLiYvL4/f/va37N7dtuZy5MiPp5vJzMykurq6/W46tXXrVgoLvfOwbds2JkyY0LpuwoQJRKPRNs+lM/HPMxAIMHbsWLZt23sS7o0bN3LhhRe2nq/p06cTDAYTHicWi/HCCy9w1llndfk5jRgxovX3jIyMvf5uf47i454wYUJrzF2Js7PX9plnnuHoo4+msLCQ/Px8nn766b1ev66aO3cu5eXl7Nq1i7/97W8cccQRgHf9vPzyy601zeeffz719fUsWrSoR8fZX0oERUSkV1XW1NObt9ttqK/n5Ree5r1lS7jg9KO54PSj+dP98/lozSo+WtP1ZlWA3eXVjBs3jkmTJlFeXt76qKqq4umnn24tZ508gXHjxrF27dqE66644grmzJnD5s2bqaio4Prrr28zQGB/VVdX8+KLL3LCCSFnIoAAACAASURBVCcAXu3gxo0bW9dv2rSJUCjEiBEjyMrKora2tnVdc3MzJSUlbfa3efPm1t9jsRhbtmxh9OjRex133LhxPPPMM23OWX19PWPGjNmr7Ntvv83EiRMpLi7e7+fbkfi4N23a1BpzV+Ls6LVtaGjg4osv5jvf+Q47d+6kvLycc845p1dfP4D77ruvtXvCyJEjmTx5MvX19UlrHlYiKCIivaq6toFQaP+n42jxj1deIBAIcu8jz/KHB5/iDw8+xX2PPsehhx25V61gZwyorWviyCOPJDc3lx//+MfU1dXR3NzMihUrePvtt7u0nyuvvJIXX3yRP/3pT0SjUUpLS1m+fDkAVVVVFBYWkp6ezpIlS3jggQd68pT30tDQwLJly7jgggsoKCjgmmuuAeDyyy/nF7/4BevXr6e6upobb7yRyy67jFAoxNSpU1trmpqamrj11ltpaGg77c6yZct47LHHiEaj/PKXvyQtLY2jjz56r+Nff/31/OAHP2hNOktKSnjiiScSxtrdZuGe+OEPf0htbS0rV65k/vz5XHbZZd2Os73GxkYaGhooLi4mFArxzDPP8Pzzz/d67Pfeey8333wzy5cvb308+uijLFq0qHUwSX9SIigiIr2qORajF6cO5NmnHuPsORczYtRohhUVtz4uuuwqXnzmye5NA2JggQBPPfUUy5cvZ9KkSRQVFXHdddd1eX6+8ePH8/TTT/Ozn/2MwsJCZs2a1drP7+677+amm24iJyeHW265hblz5/bkKbf6yU9+Qk5ODoWFhXzuc5/jiCOO4I033iAry5uk+9prr+Wzn/0sJ554IpMmTSI9PZ1f/epXAOTl5XH33Xdz3XXXMWbMGLKysvYaRXz++efz8MMPU1BQwH333cdjjz1GOBzeK46vf/3rzJkzhzPOOIOcnByOPvpo3nrrrYQx98e0MSeddBIHHHAAp556Kt/5znc444wzuh1nezk5Odx5553MnTuXgoICHnjgAebMmdOrcS9evJgNGzZwww03MHLkyNbHnDlzOOCAA1r7OvYn6+0qz8Fm9uzZLpnDtkVEhpp3V29h665y8rL37oyfbCVl1Zx/8iEEA6oH6Qs7d+5k1qxZbNu2rdPm9Z7asGEDkyZNoqmpiVAoNe+Sa2bLnHOze2t/+k8QEZFeFQoGiMUGXiWDcw7nenduQ2mroqKCn//8532SBErfSM10WkRE+kxuVjpN0Viyw9hLY7SZ7Mw0JSl9aOrUqUydOjXZYUg3qEZQRER6VXZmmjcyY4Cpb2iiuCAr2WHIfpg4cSLOuZRtFu4LSgRFRKRXZWekwQDsf97QFGVYnhJBkXhKBEVEpFelRUJkZabR0NiN0bz9wRm5vXzbO5HBTomgiIj0ugPGFlNRXZ/sMFrVNzaRlREZkCOZRZJJiaCIiPS6scPzwBgwo4crq+uZNmE4gd6c4FBkCFAiKCIivS49LcyEkYVUVNclOxSaYzEsEGB0cV6yQxEZcJQIiohInzhwfBGN0Waam5M7lUxpRS3TxheTFtFIU5H2lAiKiEifyMvO4JApo9hdUZO0GGrqGsnKiDBtwvCkxSAykCkRFBGRPjNlXDH52RlU1fT/wJHmWIzq2gaOnDGeUCjY78cXGQyUCIqISJ8JBQPMPmg8DU3N1Dc09dtxY86xq6ya6ZNHaO5AkU4oERQRkT6Vn53B8bMmU1nT0C/JYMw5du2p5sBxxUyfOLLPjycymCkRFBGRPldckM0Jh02mqraB6rqGPjtOtDnGztIqDhxfxMwDx2i6GJF9UCIoIiL9YnhhDqfMPhAzY9eeKppjvTuauLKmnj2VtRw2bYySQJEuUiIoIiL9piA3k9OOnMq0icPZXVZDZU09bj/vS9zQFGVHaRUZaRFO++RUDhw/HDMlgSJdoUmVRESkX4VCQQ6eMppRRXl8sH4HO0urCQaN/OwMQsGu1U8456iqbaCuoYmMtAhHTB/LhFGFBAOq3xDpDiWCIiKSFMPysjhh1hSqaurZtKOMj7bsJhqNgUEoECAtEiJgBuYlfk3RZhqbmmmpPxxZmMPsGeMpzs9WM7BIDykRFBGRpMrJSuegKaOYPmkkNXUNVNU2UFZZS3lVHU3NzTjnTUOTkR6mOD+bnKx0sjMiRML6CBPZX/ovEhGRASEQMHKy0snJStd9gUX6iTpTiIiIiKQoJYIiIiIiKUqJoIiIiEiKUiIoIiIikqKUCIqIiIikKCWCIiIiIilKiaCIiIhIilIiKCIiIpKilAiKiIiIpCglgiIiIiIpSreYExER2Q/N0WZKtpZRtquCWDRGenaE4WOLyCnISnZoIvukRFBERKQHnHNsWLmFNe9uoKmhiVBaiEAgQLShiQ8Wf0TxmGEcdMyBSghlQFMiKCIi0k3OOVa8sYb1KzZTMDKfcCRnr/WVZdW89uRSjj33cPKG5XSwJ5HkUh9BERGRbtq8ZjvrV26haOwwwpG961TMjNzCbNIyIix57p80NUaTEKXIvikRFBER6YZYLMaH724grziHQMA6LZuZk0FDbSM7N5X0U3Qi3aNEUEREpBvKdlZQW11PWnqkS+Wz8jNZ+89NfRyVSM8oERQREemGmso6zDqvCYyXkZVGVVkNzdHmPoxKpGeUCIqIiHRDrDmG7aNJuD0zwznXRxGJ9JwSQRERkW5Iy4gQa451uXxTY5RQOEgwFOzDqER6RomgiIhINwwbXUAwGOhyU29laTWTDh7freZkkf6iRFBERKQbImlhJs4YS3lJ5T7LRqPNOOcYM2VEP0Qm0n1KBEVERLrpgJkTyM7L7DQZjDZFKd1WxsHHHEhWbkY/RifSdUoERUSGOOcc9bUNNDY0JTuUISOSHuaos2eRU5hFydY9VO6ppjnaTCwWo6Gukd3b9lCxu4pZJ81g4oyxyQ5XpEO6xZyIyBDW1Bhl+csr2LF+FxgcePhkps2eov5qvSA9M41jP304Zbsq2fjBVkq27qE52kx6VhoHHX0goyYNJz0zLdlhinRKiaCIyBD24Tvr2LFuF8PGFOJijn8t+YiC4XmMmFCc7NCGBDOjcEQehSPykh2KSI+oaVhEZAgr3VZGdmE2ZkYgGCCSFu7SIAcRSQ1KBEVEhrC8YTnUVtYCXl/BpvpGsvMzkxyViAwUahoWERnCph45hfKSCnZvLcU5GH/QOEZN1lQmIuJRIigiMoSlZ6Zx3AWfpLq8hkAwQHZ+lgaKiEgrJYIiIkNcMBQkryg32WGIyACkPoIiIiIiKUqJoIiIiEiKUiIoIiIikqKUCIqIiIikKCWCIiIiIilKiaCIiIhIilIiKCIiIpKilAiKiIiIpCglgiIiIiIpSomgiIiISIpSIigiIiKSopQIioiIiKQoJYIiIiIiKUqJoIiIiEiKUiIoIiIikqKUCIqIiIikKCWCIiIiIilKiaCIiIhIihqwiaCZHWdmz5vZLjOrNLN3zOzadmXSzeynZrbdzOrM7E0zOzFZMYuIiIgMJgMyETSzQ4EXgTDwReBi4G3gD2b2pbiif/DX3wScC2wHnjOzWf0bsYiIiMjgE0p2AB34DBAEznPOVfvLXjCzmcDngN/4v18BXOucmw9gZq8CK4FbgDn9H7aIiIjI4DEgawSBCNAE1LVbXs7HMc/xyzzcstI5FwUeAs40s7R+iFNERERk0BqoieAC/+edZjbazPLN7IvAqcAv/HUHAeudc7Xttl2Jl0ge0C+RioiIiAxSA7Jp2Dm3wsxOBv4CfNlf3ARc75x7yP+7EChLsPmeuPUiIiIi0oEBmQia2YHAo3i1e9fjNRGfD/zWzOqdc/cDBrhEm3dh//8G/BvA+PHjeytsERERkUFlQCaCwO14NYDnOuea/GUvmdkw4H/M7EG8mr9EWVyB/3NPgnUAOOfuAe4BmD17dqJkUkRERGTIG6h9BA8B3otLAlssAYYBw/FqCyeZWWa7MjOARuCjPo9SREREZBAbqIngDmCWmUXaLT8KqMer7XsSb57BS1tWmlkIuAx43jnX0E+xioiIiAxKA7Vp+NfAn4GnzOxuvD6Cc4DLgV845xqB5Wb2MPBLMwsD64EvAZOAK5MTtoiIiMjgMSATQefcI2Z2DvD/gN8D6cBa4Abgd3FFrwFuA24F8oH3gLOcc+/0b8QiIiIig8+ATAQBnHPPAM/so0wd8C3/ISIiIiLdMFD7CIqIiIhIH1MiKCIiIpKilAiKiIiIpCglgiIiIiIpSomgiIiISIpSIigiIiKSopQIioiIiKQoJYIiIiIiKUqJoIiIiEiKUiIoIiIikqKUCIqIiIikKCWCIiIiIilKiaCIiIhIilIiKCIiIpKilAiKiIiIpCglgiIiIiIpSomgiIiISIpSIigiIiKSopQIioiIiKQoJYIiIiIiKUqJoIiIiEiKUiIoIiIikqJCyQ5ARGSwcs4BjeAawTX4v0fjSgTAwmBpQAQsDbNgcoIVEUlAiaCISBc51wixSlysHGLboXmnlwSa+QUAi/vFtSwwMOcVsWEQHIkFi8BywbKwlu1FRPqZEkERkU4414CLboboaohVegmdM7AMsFws0PW3Uedi4Oqh6V+4pqifQIZxoYlYaDIWKOy7JyIikoASQRGRBFxsD65pLTSvBWJgeRAYvl+1d2YBsEwg8+PjuCg0rcc1rcEFhkF4OhYchVl4/5+EiMg+KBEUEfE514Rr3g5NH0CsFAhDYFif9uszC0FwmHf8WDU0vIazCC40DQtNwgLZfXZsERElgiKS8pxzuOhGaFrqDfqwXCw4qt/j8JK+bJxrgqaVuKb3caEpWGQmZun9Ho+IDH1KBEUkpblYNa7xbWje6tX+DYB+emZhCA73+hRG1+OaN+MiR2HBsRpYIiK9SomgiKQk52K46FpoXAoWwYKjkx3SXswCfkJYDw2v4oITIHI4FshKdmgiMkRoQmkRSTkuVoNreAka34JAIRYoSHZInTJLh8AoaN6Bq/8rsejmZIckIkOEEkERSSmuuRRX/yzEKrHg6EEzOtfMsOAwb+7BhleJNb7vNR2LiOwHJYIikjJiTRtx9c8BkQFfC9gRszQIjICm93ANb3iTXIuI9JASQRFJCbGmD6Hx735T8ODuY2cW9JqKY5txDa8pGRSRHlMiKCJDXqxpDTQuhsAIzCLJDqdXmBkWGAGxXbiGvysZTCDaFKVsZznlJZXEYmpGF0lEo4ZFZEiLNa33B4WM8CZvHmIsMBwX24lreA3SThySz7En6mrqeWvRu1TtqcI5x6jJIzj81EMIhvpucnCRwUg1giIyZLnmEmh8w7813NBNkCwwwhtR3PQuzrlkhzMgfLhsHbUVtRSNGUbx2CK2rd3J1o92JDsskQFHiaCIDEkuVo1reNW7S8ggGRm8XwLDoWm1NzeiUFVWTXr2x3djiaSFqa2sTWJEIgOTEkERGXKci+IaXgcCg35gSFeZBSBQDI2LvZrQFFc0ZhhVZdU452iONtNQ10j+8LxkhyUy4CgRFJEhx0XXQKwUC+QnO5R+ZRYGy8M1LvbuV5zCDpg1kfHTx1C6fQ9luyqYcexURkwoTnZYIgPO0O00IyIpycUqoHG5VzuWgiyQhYvtwDWtwiKHJjucpAmGghx2ysEcfNwnCARMg0REOqAaQREZMpyL4RqXgKV7c+2lKiuGpvdxsT3JjiTpwpGQkkCRTigRFJEhw0XXQfPOlGsSbs8sCJaFa1iCc83JDkdEBjAlgiIyJDhXD03LUrZJuD0L5EKsFBfdkOxQRGQAUx9BERkSXHQzEEuNqWLiRJuaqamso7qqjrrqBsARSQ+TnZtJZnYWaYGVuNAkb1SxiEg7SgRFZNBzLgbRD8BSZ3qQxsYoOzfvZueWMlzMEQgECIWDYFBZXsuuLWU4F6N4ZCPDxm8kd9ikZIcsIgOQEkERGfxiuyBWgwVHJjuSflFRWsW6VduINcfIys4gELSE5ZxzVFfUs+PN5yieeC6TZ4wmEFDNoIh8TImgiAx6rmkNWEayw+gXpbsqWLtiC5nZ6YQjnb+Fmxnh9GEUZZay+t1V1NU0cNCRk5QMikgrvRuIyKDmYtXQvAUsJ9mh9LmaqjrWrdxCVm7GPpPAjxmBYICx42tZv2obG1dv79MYRWRwUSIoIoOaNyo2MOQHQ8SaY6xftY1IeoRQN+fFi0ZzyMrcwLARWXywdD1V5brnroh4hvY7p4gMad4gkX9BoCDZofS58j1V1NU0kJ4R6fa2zoWxQJT09EpC4RDrPtjaBxGKyGCkRFBEBi9XAzSmxJQxOzbtIT2j58/TuQDhUDk5BZlsXbeLhvrGXoxORAYrJYIiMnjFKsAlHjE7lLTMFRhJ715t4O8W/JX/vH0+ALFYOpFIKYFAAAdUlql5WESUCIrIIOZiJTAIagNPOeNbFI46n4aGntXCNdQ1At1PeP/96nO59cZrAIjF0giHyoFmDKgqq+lRLPty9dVX85//+Z8AbNiwATMjOzub7OxsJk6cyB133NGmvHOOyZMnM2PGjD6JR0Q6p0RQRAav5u0DftqYDRt38I/X38fMePKvb/ZoH82xGNbNPDAabX+PYW8HoWAtwXCQhvqmHsXSE+Xl5VRXV/Pggw9yyy238Oyzz7au+/vf/86uXbtYt24db7/9dr/FJCIeJYIiMig51+Q1DZOe7FA6de/9z3P0J6fz+avO4N77n2uz7pov/pgvf/1/OOf875FT9GmOP+Vr7Nixh2985y4KR53P9JlX8+7yD1vrAneVlPG179/FsWd/jdMu+i73/emF1n39+veP8/Ub7+K78+5h9qlf5i9Pv86vf/843513T2uZpe+u5wtf+wIXX3s6nzrnWBYsWADAokWLOOyww8jNzWXcuHHMmzevdZuWWr2FCxcyfvx4ioqKuO2223p0Lo455hgOOuggVqxY0bps4cKFnH/++ZxzzjksXLiwR/sVkZ5TIigig5OrAQzrblVZP7vv/he44jOncuVnTuO5F5ayc+eeNuv//Ogr/PDmaynZ8hfS0sIce/JXOfywAynZ8hgXX3gi3/5/vyEcCdEci/Gl/7iTaQeM45Unf878X32Hex9+gdcWf5xU/e3vyznjlNkseeHXnHfG0W2Os21HKV/4+u+54pIzuf/XT/HCMy8za9YsALKysrj33nspLy9n0aJF/OY3v+Hxxx9vs/1rr73G6tWreemll7jllltYtWpVt86Dc47XX3+dlStXcthhhwFQW1vLI488wpVXXsmVV17JQw89RGOjBrGI9CclgiIyOLlGwCU7ik699vr7bNy0k7kXn8wRh09lyuTRPPDw39qUuWDO8Rxx+FTS0yNcMOd40tMjfO7KMwgGg1x2ycm8+95HpGWEWf3RJvaUVXHDF+YQCYcYN2Y4l845iadffKt1XzMPmcJpJx1OIBAgvd3Akr8+t5hjjpzGeWccQSgUYtyEMa2J4Mknn8whhxxCIBDg0EMP5fLLL+fVV19ts/3NN99MRkYGM2fOZObMmbz33ntdPg9FRUUUFhZy3XXXcccdd3DqqacC8Nhjj5GWlsYZZ5zBueeeSzQaZdGiRd06xyKyf3SLOREZnFxDT8ZP9KuF9z/PGafNpqgoD4DLL/sU997/PN/82iWtZUYM/3gOxIyMSLu/06iursMsQE1TAyW7y/nk6Te0rm+OxThi5tTWv0cNL+wwlu279jB+zHBizVVkZqeTk5/Zuu6tt97ie9/7HitWrKCxsZGGhgYuvfTSNtuPHPnxfZwzMzOprq7u8nnYvXs3odDeHzcLFy5k7ty5hEIhQqEQF110EQsXLuTCCy/s8r5FZP8oERSRQcm5+gFdIVhX18CfH32V5uZmRk30Er+GhibKy6t5759rmXnolG7tb/pBExg1chjP/fkOAoHEGXBnreSjhhfy/gdraayr5IBDxra53/AVV1zBV77yFZ555hnS09P5xje+we7du7sVX3dt2bKFv/3tbyxZsoRHH30U8JqK6+vr2b17N0VFRX16fBHxqGlYRAapRqB7t1rrT48/+TrBYICV7/yRdxffw7uL7+GDd+dzwnGHcO/9z3d7fyeccCj5+dnc/fsnqK9vpLk5xpq1W3j/g/Vd2v7cM4/mjbdX8fe3VzB8XCGlpaUsX74cgKqqKgoLC0lPT2fJkiU88MAD3Y6vu+677z6mTp3K6tWrWb58OcuXL2fNmjWMHTuWBx98sM+PLyIeJYIiMji5WLIj6NS99z/P1Z89k/HjRzByZGHr44brL+CBh19KML1L54LBIIueuJ11m3dw6kX/wbFnf43/+tECqqq7NjH0sPwc/ueHX+L+x96guLiIWbNmtfbzu/vuu7npppvIycnhlltuYe7cud1+vt21cOFCvvzlLzNy5Mg2j+uvv16jh0X6kTk3gNtW+sHs2bPd0qVLkx2GiHRTrHEFNH2ABVOrCTHaFOXDFVuoLq8lOzeTQLDzjpLOOWqr6rGAMXXmWDKzaghkfqafopX+EG2K4hyEI+rtlQrMbJlzbnZv7U9XjYgMThZgQHcS7COhcIhph45n59Y9bF27C8zIyEojFG7bTB5rdtTVNhCNNlM4PI/xBwwnHAmCq0tS5NLbyksqWbNsHTs3ev05h43KZ+oRkyka0/GgIZH2lAiKyCCVDgzs5uG+EggGGDW+iMLhuezZVcmurWXUVTd4nX0c4ByBcJDC4bkUj84nMycdw3CuEWxgT8AtXVO6vYw3n1pGJD3MsNH5ANRW1vH6k0s58oxDGT1l5D72IOJRIigig5IF0lKwPrCttPQIo8YXMWp8EdGmKE2NXhNhKBwknBbC2s+v45rAspITrPQa5xz//PsqMnLSycz5+BaLWXmZhNPD/PPvqxgxoZhgaOAOppKBQ4mgiAxSaQN+HsH+FAqHCIU7f0uvra5n68YA2za9RUNdI4FAgKy8TCZOH8OIcYX73F4GhqqyGqoraikaXbDXukhamMrGKsp2VqiJWLpE//UiMjhZGqnYR7AnGuubWbGkhG3rtmPhUeQOG0FOQTY4R0NdI+++8gGhcIiph01g0kFjB/xt+1Jdc1Nzp3NGYka0qXuj0iV1KREUkcHJsoAQzsUw00xYHamvjbLkxa3UVEUZNiKEpY3CAuHW9ZnZQTKz04k2NbNi8YfUVNVx8NEHJkwGq8tr2PDBFqKNTYw5YBTFY4f151MRX2ZuBjiINccIBNte+845XMx5ZUS6QO+eIjIomQUgUASua/PopaLmaIylr2yntiZKwfB0LBAAy0xYNhQOUjS6kPUrtrD2/c17ra+prOW1vyxh0wdb2blxN288uZSdG0v6+ilIAmkZEcbPGMOenRV7ravYVcmICUXkFmYnITIZjJQIisjgFRypRLATu7bWUFZSR35Ruj8Bd9BvUk8sEDCGjcpn9TvraaxvarNu58bdNDVEKRiRR25hDtl5WXy0fEPfPgHp0IyjDmTE+GGUbCmlbGcF5bsqKdmyh5zCbGaeNCPZ4ckgoqZhERm0LFCIS9EpZLpi7cpysnIj3h+uHgL5e48kbicYCoKD7RtLmDBtdOvyVL/5wEATCoc48sxZlO+qZOfm3eAcRaMLKRyV3+Y+0iL7okRQRAavQF6yIxiwqsoaKC+pp2h0S1NwEwT2HmWaSHZ+JmtXbG6TCI6cWMyapWsp21lBMBygvqaBg4+f1geRS1eZGQUj8igYof8D6TklgiIyaJll4AL5uFgtFkjc9y1V1dc1Y4H42r8YBHK6tG1aRoTd28uJxWKttUtZuZmccNFRrF+xieZoswaLiAwRSgRFZHALHQSNbwBKBOO1acqN1YPlgHVvAEGsOdammTE7P4tDjp/eWyGKyACgjgQiMqhZaBRYEOeiyQ5lQAmFAnHTLNZCcNw++we2iMUcZqY7U4ikACWCIjKomUUgNBVi5ckOZUDJzo8QCBrNTY1AGIJdv8tEdXkNoycXa2JpkRSgRFBEBj0LTQJr0sjWOJG0IBOm5VK5pwKCYzC6XrvXUN/YZqCIiAxdSgRFZNCzQB4ERoKrSnYoA8rYyTk0R6M0u6Iub1NdUUtuQTYFw3P7MDIRGSiUCIrIkGDh6eBqkh3GgJKT38hBRx9A6Y4GotF933u2trqepsYoh588Q83CIilCo4ZFZGgIjIBALi5WjQV0ey3nYuCqmXjw6VikiRVvfkQkPUROQdZeEw43NUap3FNNOBLimLNnkVOQlaSoRaS/KREUkSHBLAiRY3D1z+Jcpncv4j5QW9VIVVkDZkZ+cTqR9AH6NupKIXQggdAIJs2AguF5bFy1jS1rt+N1pTTAgYNIephpR0xi7OQRpGd1fAs6ERl6Bug7mIhI91mwCBeeAdE1YMN7dd/RphgfvLWDTasrwDkw796802YPZ/LBhQOqKdW5eiCERWa1LssvyiH/hGlMO2Ii5SVVRJuaMYNIRoTC4bmaKkYkRSkRFJEhxcIH46Ibca4Os4xe2++KN3aweU05w0ZnEvDv2NEcjbHijR2EQgEmTO/a7dv6mnMOYnsg7STM9q7dS89MY+QE1fqJiEeDRURkSDGLYGlHQ2yP10+uF9RUNLL5w3KKxnycBAIEQwEKRmSwelkJzc29c6z9FiuF4EQsODbZkYjIIKBEUESGHAuOgvAMiO3qlf1VlNZjkLD5N5IWpLGhmZqKxl451v5wsWqwMBY5fEA1VYvIwKVEUESGJAvPhOBIXPPu/d+Xxd2tLRHnkp54OdcIrhpLPwkL6L7LItI1SgRFZEgyC2Fpx0AgDRer3K995Rd7fQ1jsb3TwYa6KBk5YbLyIvt1jP3hXDPESiByHBbo+q3kRESUCIrIkGWWgaWdBES9ZtMeysgOM+XQYZRsrSEa/bgvYGN9M+Ul9cz45Ig2fQf7k5cE7oTIEQTCE5ISg4gMXho1LCJDmgXyIf1TuPqXcDF6PNn0J2YPJxwJ8NF7pcSaHc5BWkaQ2aePZdSk5NyOrTUJDB+KhaYnJYahrHJPNRtWxnmT2AAAIABJREFUbmb7ul0Egsa4aaOZMH0sGdnpyQ5NpNdYqt+kffbs2W7p0qXJDkNE+piLlePqXwQCXnLYQ02N/sAQg9zC9CTWBDZ5g2HCh2Nh3RKut5VuL2PxU8sIhIJkF2ThnKN6Tw3BcJBj5xxBToHuXiPJYWbLnHOze2t/ahoWkZRggXws/SywdFxsFz39EhyOBMkvziC/KCN5SWCsxpsmJnI8gchBSgJ72f/P3p3H11WWC9//3WvP2UN2duakSUcoFDpBlILKJCCCDOeBg9JytBzFEQceUd7DUax41FfFI0cflaM+57RFhhflyFwZKkWKhbZAoC2d0iFp5nnY2fNa9/vHTmPTZmyT7KS9vp9PSLrWve51rV0+q1fu0TQt3lq/jazsLIIFAewOGw6nnZyibJSCbRt3ZTpEIcaNJIJCiFOGMnwo92VgzACrAa1TmQ5pzLTVASRQ7iswHLMzHc5JqbOpi1g4Puh2e74cL20NHfR2RTIQmRDjT8YICiFOKUo5wXUBOpULibfRyn1CXcWTResEWK1gK0E5z0MZ3kyHdNJKxJPpNYMGoZRCKUUinkT+BsTJQBJBIcQpRykD5TgTbStBJzajzXow8lHKkenQjpHeMq4NFOnlYeyzpCt4grm9riGHDliWRlt60NZCIaYjSQSFEKcsZWSD68Po1H5Ivom2DDByUGpqjJrRVi/oTrDPQTmWykLRkySYHyA7z09PRy/+nIHtfl0t3ZTMK8LjlZnD4uQwNd52QgiRIUoZGI55KPfVYC8HqwVtNaJ1PCPxaG2hrXa02QDKBq5LMVwfkCRwEimlOPeyhRhK0VbfQW93hHBnhNa6dnxBL2dfMD/TIQoxbqRFUAgh6JtI4joP7VyETtVA6r2+iRkeUIEJ747VOp5u/dOkWwDt88AISTdwhviCXi688TwaDjbTdLAVw1CUzD2dgvJc7A75p1OcPOT/ZiGEOIJSHpRjPtp+GljN6OQuMOvRKFBeUB6Usp3wfdJj0OKgI0AiXbfjXJS9DKU8J1y/OHFOt5OZZ8xg5hkzMh2KEBNmyieCSqmrgP8HOAewgD3AN7XWf+k7nwP8BLge8ACbgDu01tsyE7EQ4mSglAG2IpStCG31oM1aMBvAak3v6KE1KCfgAuUA7IOOLUwnfCaQBJ0AHSPd7KfACKRb/2wlYBRMmbGJQohTx5ROBJVSnwP+T9/X90iPaVwCZPWdV8BTwGzgy0AH8C/Ay0qpJVrr2kzELYQ4uSjDjzLOBMeZaG2BDoPVhbZawOwAIqC70JYJqPQM38OTThWAG5QHbIXphM8IghFIL2UjhBAZNGUTQaXULOB+4Bta6/uPOPX8ET9fC3wQuFRr/XLfdZuAA8A3ga9MSrBCiFOGUgaoQDqRo6z/eLrlLwlYpDc1VqR/d3VIS58QYsqaym+nfybdFfzAMGWuBeoPJ4EAWusu4GnguokNTwgh/i690LATpdwoIys91lC5JAkUQkxpU/kN9UFgF/AJpdQ+pVRKKVWllPrSEWXOArYPcu0OoFwpJbuCCyGEEEIMYSongiXAaaQngvy/wBXAi8D/UUp9ta9MiPS4wKO1933PmegghRBCCCGmqyk7RpB0kuoHVmqt/6fv2F/6xg7+i1Lq5wwckn2kYRfeUkp9FvgsQHl5+XjFK4QQQggxrUzlFsG2vu8vHnX8BaAQKCbd8hca5NrDLYGDtRaitf6N1rpCa12Rn58/HrEKIYQQQkw7UzkR3DHE8cOtfVZfmbMGKbMAqNFahyciMCGEEEKIk8FUTgT/1Pf9I0cd/whQq7VuJL2GYKlS6qLDJ5VSAeCavnNCCCGEEGIIU3mM4HPAy8B/KqXygP3AjaQnjdzaV+Yp0juJ/F4p9Q3+vqC0An486RELIYQQQkwjUzYR1FprpdT1wA+B75Ie97cLWKG1frivjKWU+hhwH/ArwE06MbxEa30oM5ELIYQQQkwPKr0a/qmroqJCb926NdNhCCGEEEKMSCn1pta6Yrzqm8pjBIUQQgghxASSRFAIIYQQ4hQliaAQQgghxClKEkEhhBBCiFOUJIJCCCGEEKeoKbt8jBBCiLRkIkVdVSMHttWQiCUIFQWZs2gmucU5I18shBDDkBZBIYSYwhLxJG88+xbv/nUnylB4s7PoaOpi4xObObhDlksVQpwYSQSFEGIKO7jjEB3NXeTPCOHyOLHZbfhDPkJFOWzfuIve7kimQxRCTGOSCAohxBRlWRb7360hOz9wzDm7wwaGQdPBlgxEJoQ4WUgiKIQQU5RlWiTjKRzOwYdzO5w2IuHYJEclhDiZSCIohBBTlM1uw+N1kYglBz2fjKfw53gnOSohxMlEEkEhhJiilFLMO2c2XS3dHL0vfCKWxDAURbMKMhSdEOJkIMvHCCHEFFY2v4T2hg5q9zTg8rqwO2zEexNoran4yGJcHmemQxRCTGOSCAohxBRmsxksueQsys8o5dDueuLRBGXzSyidV4Q3kJXp8IQQ05wkgkIIMcUZhkFeaYi80lCmQxFCnGQkERRCiFEwUybxaAKgfz0/IYSY7iQRFEKIYfR2R6nd28CB7YcwUyYANoedOQvLmDGviCy/J8MRCiHE8ZNEUAghhtBS186WF94FIBDyYnekX5nJRIqqyoNUVVZz3keXkFsUzGSYQghx3GT5GCGEGERXaw+vr6vEG/AQKszuTwIBHE47ocIgWX43bzz3Nt3t4QxGKoQQx08SQSGEGMSetw7gcjuGXZ7FneXCZrexf1vNJEYmhBDjRxJBIYQ4SqQnSmN1C77gyLt2+ENeavc2EuuNT0JkQggxviQRFEKIo4Q7I6DAMNSIZQ3DABThrt6JD2waME2LWCROKpnKdCjDikcTJGKJTIchRMbJZBEhhDiKZVkoRk4C/05jWXrkYicx07Q4uL2GqsqDJGMplKEoO6OE086ZjcfrznR4/Vpq29i1ZR+dzV0A5BQGOfP988gtyclwZEJkhrQICiHEUZxuxzF7+w5Ha3C6HBMY0dSmteadDTvY/rc9eHxucktzyC4IULu7gU1PvUksMjW6zev3N/G3p98kEUv0L9Adi8R47aktNFW3ZDo8ITJCEkEhhDhKMD+A2+siEUuOWDYWieMLesjO809CZFNTe2Mnh/Y0kD8jhKMvIbbZDHKKsomEYxx8rzbDEaYXBN/26k6C+YEBaz96A1kEcv28++pOLMvKYIRCZIYkgkIIcRTDMDht6Ww6WrqGbRnUWtPV2sO8xTNRaixdySeXun2NuDyOQT+DQK6Pg9sPZSCqgTpbuknEkjjdx7bcujxO4pEEXa09GYhMiMySRFAIIQZRPr+YstOKaanv6N9R5EiplElLXTuzzpxB6byiDEQ4dSRjySG33LM7bKQSx35+k81MjTzu00pJi6A49chkESGEGIRhGCy+aAHe7Cz2vVuNZVrYnXbQkEymsNtsnPn+ecxdVN43c/jUlVsSomF/86DL7fR2RcgrzfxEDF8wC63Tk3qOng1uWRqtIStbtgsUpx5JBIUQYgg2m8H8c+cw++wyWmrbCXekdxDxh3zkz8jF4ZRXKEDx7AJ2vbGXaDiGx/f3GcKppEmkJ8rSS87OYHRpWX4PM04vpq6q8ZgZwu2NnZSfWTKlZjcLMVnG9BZTSt0zQhGttf7eCcQjhBBTjtPloHRuIVCY6VCmJJfHyXlXn8PmdZX0drVjs9swTQulYfGFC8grDWU6RADO+sB84rEEzTVt2OxGuoXQtCieXciCZadnOjwhMkKNZYkEpdRwAyg0gNZ68IEiU1RFRYXeunVrpsMQQpyEEvEkTTWttNR2kEwkcbocFM7Mo2BGaMDexSeLVDJFy6E2wp0RnFkOCsryplwrm9aazuZu2ho6MAxFqDiH7Dz/KT3ZR0wvSqk3tdYV41XfmN5EWutjBsIopXKAa4CvA9ePU1xCCDFtWZbF3spq9r9bg5mycHtdGDZFt2lRW9WIw2nn9HNmMfusspMqAbE77BTPmdqtpkopcgqzySnMznQoQkwJJ/wrqda6A1irlMoFfglcdcJRCSHENGVZFpWv7KSuqolQUfYxs2n9QS+pZIrtr+0l0hPnrGXzTqpkUAgxvYznVLd3gAvHsT4hhJh2qt6poa6qibzSnGGWVLGTNyPE/m3VHNrTMMkRCiHE341nIvgxQPboEUKcspKJFPverSanKHvEVj7DUATzs9n95gHZ0UIIkTFjnTX8X4McdgJnAwuB74xHUEIIMR0117ZhJk3sQ7QEHs3pdtDV1kNbQyf5U2RmrRDi1DLWMYKX0jc7+AgxoBq4H1gzHkEJIcR01HKoHVeWa0zX2B122hslERRCZMZYZw3PmqA4hBBi2kslUxi2sU38sNmNKbEFmxDi1HRq74skhBDjyOFyYI5xv9pU0sThdkxQREIIMbwxJ4JKqaBS6rtKqReUUjv6vq9SSgUnIkAhhJguimbmEY8mxnSNmTLJK8n8XrxCiFPTmBJBpdRiYC/wL4AbeK/v+93AHqXUwnGPUAghpom8khxcbgfJRGpU5WOROP6gl5yCwARHJoQQgxtri+DPgTbgNK31hVrrf9RaXwicDrQDvxjvAIUQYrqw2W3MP3cOHU1dIy4JY6ZMulp7mF8xWxaUFkJkzFgTwfcB39ZaVx95UGt9kPTSMe8fp7iEEGJaKj+jhNOWzqK1rmPIbuJob5y2hk7OvuB0imcVTHKEQgjxd2NdPqYNiA9xLtZ3XgghTllKKc6omEMg5GX3mwdprWvHsNswbAZWysQyLfwhL+//yCKKZuZnOlwhxClurIngr4FvKKVe0FrHDh9USnmAO0nvNSyEEKc0pRSlc4sonl1AR1MXHS3dJOMpHC47uUVBgvkB6Q4WQkwJIyaCSql7j/wjMBOoUUo9BzQBhcBVQBTImogghRBiOjIMg9ziHHKLZVawEGJqUlofvVHIUQWUGsuiWFprPbq9laaIiooKvXXr1kyHIYQQQggxIqXUm1rrivGqb8QWQa21LDothBBCCHESGusYQSGEmBIsrUlaJqa2MLVGATZlYCiFyyavNiGEGI3RjBE0gfO11pv7uomH60vWWmt5AwshxpWlNb2pBD2JGG2xCE2xHlpjvVj6yJEr6ckXWmuy7A7yPT4KPX6ynW4CDjdu+/Ft42amTJpr26iraiIZS+LKcjLj9GJyi3Ow2aTDRAgxvY0mabsXqD3i5+EHFQohxDiJpBLUhDt5r6ORmJlEa7AZiiybk5DLg00NnoglLZPmaJhD4Q4sAA0FHh8Lcooo9PixG6NL4NobO9n64jbi0Tgenxubw0a4q5e6fU14Ax4qLltIINc/fg8shBCTbMTJIic7mSwixNSitaY11sue7hYO9rSjlCLocJ9wd29PMk44mcBls7Mgp5CZvhx8DteQ5Ttbunntya1kZXvweN3HnO/tjpKMJ/jgde/DF/SeUGxCCDFakz5ZRAghJktnPMobzdW0xMK4bXYK3D6McVpvz+9w4Xe4SFom77bVU9lWx4JgIWflFOO0HbvYwY5Ne3B5XYMmgQDegIeu1hS7tuyj4vJF4xKjEEJMNkkEhRAZZ1oWu7uaebu1DrfdTnFWYMLu5TBsFHh8WFqzs7OZmt5OLiiYRb7H11+mu62H9sZO8mfkDluXP+Sj4UALkZ4oWX7PhMUshBATRUY6CyEyqjMe5cW6PbzVWkue20vQOTkJlaEUhR4fSsOfa3fxdmstCdMEoKejF2WM3BJpGAoUhDt7JzpcIYSYENIiKITImOqeDjY27p/wVsDheB1OPHYHOzubqe3t4pKSeVjW6MdOK8WYygshxFQiLYJCiIyo6mrhr437CLmyJq0VcCiHWwcTVooX63aTcsBo59FpC9xZQ086EUKIqUwSQSHEpKvqamFTczX5bu+gEzUyJej0gIYtZiOWQ5GIJ4ctH+uN48/JIjtPlpARQkxPkggKISbVwZ52/taUTgIdxtRJAg8LON3YbTbaZiga69uwzMG3WzdTJl1tPcyvmIMap5nNQggx2WSMoBBi0rTFetnYdGDKJoGHZTvdmHNy6Im30lTThtfvwRf0YhgKy9L0dISJRxIs/MDpFM8uzHS4Qghx3CQRFEJMipRlsan5ID67c0p1Bw8l5MoifnqQgjl+XLVxGg+2pE8oRem8ImadWUpOYXZmgxRCiBMkiaAQYlLs7GiiKxGjyDN9xtPlu30ciPVw1YULWHzRAsyUid1hw+6QV6cQ4uQgYwSFEBOuLdbLO+115Lmm11ZsdsPAa3fyetNBlN3AneWSJFAIcVKRRFAIMaHMw13CDhd2IzOvnFQ8RbwnTrwnTjI6/EzgowWcbtrjEXZ3NU9QdEIIkTnyq60QYkI1RXvoiEcpmeQFoy3TItzSS8ueFnqaetIrPwNojTfPS8H8AvwFPgz7yMlpvtvH9vYGTgvkT4vxjUIIMVqSCAohJtSOjkb8jsldcLm3PcLBvx0kEUngzHLgy/cOWOIlHo5z4LUD2Fx2Zi2bib/AN0xt6S7ilGVSH+lilj800eELIcSkka5hIcSE6UpEaYr24LM7J+2e4ZYwe9fvxTAUgUI/br/7mHX+XD4X/gIfDpeNqg376KztHLFev9PNjo5G9Gi3HBFCiGlAEkEhxITZ392Ow7BN2oLLse4Y+/66H3fAhdM7cvLpcDvIynFzYFM1vW29w5b12p10xCO0xSNDlvnBD37AZz7zmTHHnSlKKaqqqsa93oMHD6KUIpVKHdf17733HhUVFeMc1eDeffddLrjggkm5lxBTkSSCQogJkTBN9nQ1T+o+wk07mzBsBj+/71vccdtNJJMjTwyxO+04PXbqtzWOWNZp2Knqah3y/N13383vfve7McV8olauXInT6cTn8xEKhbj88svZtWvXpNx7w4YNKKX48Y9/PK71fvvb3+bOO+885vjFF19MTk4O8Xh8wPHRfAarV69GKcVjjz024PiiRYsIBoM8/fTT4/oMQkwXkggKISZEVyKKaVmTNlM4EU3SUdNJb6KLvbt2gIJ333p9VNe6fC7CzT3EumPDlst2ujnU2zFo9/Dxtn6Nh29+85uEw2Fqa2spKChg5cqVk3LfNWvWEAqFWLNmzbjV2dDQwMsvv8z1118/4PjBgwd59dVXUUrx1FNPHXPdSJ/BcLGuWLGC//zP/xy3ZxBiOpFEUAgxIboSMZjELXg7ajpAKd547S/MmTef8y+8jE1/fWlAmdUP/DsP//cv+fmPvs1X/vl/8eNVX6ers53Hfv8b7vnXf+a2Kz7G3u3v9ZdvbWxi1W1f5oZFy7jl/Et5+r9/T8I0iaSSrFq1ihtvvJFbbrmFQCDA6tWrWbVqFbfcckv/9Rs3buSCCy4gGAxSVlbG6tWrAXj22WdZunQpgUCAsrIyVq1a1X/N4W7VNWvWUF5eTl5eHt///vdH9RlkZWWxfPlytm/fDsDmzZs5//zzCQaDFBcXc/vtt5NIJAa9Nh6Pc+edd1JeXk5hYSGf//zniUajQ94rEonwxz/+kV/+8pfs3buXrVu3Dlm2q6uLT3/60xQXF1NaWsq3vvUtTNMctOyLL77IOeecg9vtHnB87dq1LFu2jJUrVw6beB79GQBUV1fzyiuv8Jvf/Ibnn3+epqamAddcfPHFrF+//piWRiFOBZIICiEmRHO0B7fNMWn3623pxemx8/rG9bz/A5dw3gcuYce2t+ju6hhQbuvrr3LdTZ/kpw88it3h4Eervk75rHn86Oe/Z/HS83nguz8EwLIsvn3rF5i7YD6Pbv0rP350DY//3zVs27iJnmS65fDJJ5/kxhtvpLOzkxUrVgy4T01NDR/96Ef58pe/TEtLC5WVlSxZsgQAr9fL2rVr6ezs5Nlnn+XXv/41TzzxxIDrN27cyO7du1m/fj333nsvO3fuHPEzCIfDPPTQQyxduhQAm83Gz372M1pbW9m0aRPr16/nV7/61aDX3nXXXezZs4fKykqqqqqoq6vj3nvvHfJejz/+OD6fj3/8x3/kIx/5CGvXrh2y7Kc+9SnsdjtVVVW8/fbbvPDCC0N2oW/bto358+cfc3zt2rWsWLGCFStWDJrMDfUZHL62oqKCG264gTPPPJOHHnpowDWlpaU4HA5279495DMIcbKSRFAIMSGaY2E8k5gImokUB/bvoq21mYplH2Lm7NPILyhm8982DCi3tOJ8Zs4+DYfTyZKKC3A4nJz/oQ9jt9tZsvQCqnakE67dldvobGvnn+64HYfTScnMMq5afhObnnmBjni6pez888/n+uuvxzAMPJ6BYyEfeughLrvsMm6++WYcDge5ubn9ieDFF1/MwoULMQyDRYsWcfPNN/PKK68MuP473/kOHo+HxYsXs3jxYt55550hn/2+++4jGAwyb948wuFwf8vjueeey7Jly7Db7cyaNYvPfe5zx9wHQGvNb3/7W372s58RCoXw+/3cfffdPProo0Pec82aNXz84x/HZrOxfPlyHnnkkUHHZDY1NbFu3Truv/9+vF4vBQUF3HHHHUPW3dnZid8/cBvCjRs3Ul1dzU033cS5557L3Llzefjhh0f1GUA6EVy+fDkAy5cvH7RF0e/309k58uxxIU42kggKIcZd3EzRm0pM6uLLht3g9df+woKF5+DzZwPw/gsuZtNf1w8o588O9v/sdDoJ9P1Za43L4ybam54V3FRXR1tTM9ctqOj/euQXDxBu76Ax2g1AWVnZkPEcOnSIuXPnDnrujTfe4JJLLiE/P5/s7GweeOABWlsHTkIpKirq/zkrK4twODzkve688046OztpbGzkqaee6r/vnj17+NjHPkZRURGBQIC77777mPsAtLS0EIlEOPfccwkGgwSDQa688kpaWlqGfLaXX365vxX0uuuuIxaL8eyzzx5Ttrq6mmQySXFxcX/dn/vc52huHnynlpycHHp6egYcW7NmDVdccQV5eXnA4MncUJ/Ba6+9xoEDB/jEJz7Rf+22bduorKwccH1PTw/BYBAhTjWyoLQQYtxFUgkmdYAgYLgN3t76GlpbfOOL6QQllUwSiYQ5VL2fsplzhr0+GUvh8v194euCkmKKy2awZuMLA8tZZnr8Iwy7LE5ZWRmbN28e9Nzy5cu5/fbbWbduHW63m6997WuDJmgn6gtf+AJLly7lkUcewe/3c//9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803+/Qf38I0v/TNXXrCIL628ibbWFn7xk3/j6gvP4Qu3XMvrb2whHE23JNbX13PDDTeQn5/P7Nmz+fnPf95f16pVq7jxxhu55ZZbCAQCrF69mlWrVnHLLbf0l9m4cSMXXHABwWCQsrIyVq9eDcCzzz7L0qVLCQQClJWVsWrVqv5rDh48iFKKNWvWUF5eTl5eHt///veHfeZXX32V+vp6/uM//oNHH32URCLRf2716tV84AMf4I477iAYDDJnzhz+9re/sXr1asrKyigoKDgmeWxtbeXyyy/H7/dz0UUXUV1d3X9u165dXH755YRCIebPn89jjz3Wf27lypV84Qtf4KqrrsLr9fLyy4NvKf/cc89x1VVXDftMAEVFRXzkIx+hsrKy/1g8HufOO++kvLycwsJCPv/5zxONRvvP/+QnP6G4uJiSkhL+67/+a8R7PP744wSDQe65554Rk+jXX3+9/+9z8eLFbNiwYcT6hcg0SQSFEFNSe3d0QmbXvvDsn7jsqmu5/Krr2LzpVdrbWgec3/DiOj7zpf/Nky9vweF08sVP/SOnnXEWT728hYsvu5I1D/yUnt44lmVxzTXXsHjxYurq6li/fj33338/zz//fH9dTz75JDfeeCOdnZ2sWLFiwH1qamr46Ec/ype//GVaWlqorKxkyZIlAHi9XtauXUtnZyfPPvssv/71r3niiScGXL9x40Z2797N+vXruffee9m5c+eQz7xmzRquueYaPv7xjwPwzDPPDDj/xhtvsGjRItra2li+fDmf+MQn2LJlS//4t9tvv31A9+tDDz3Et7/9bVpbW1myZEn/s/X29nL55ZezfPlympubeeSRR/jiF7/Ijh07+q99+OGH+dd//Vd6enr44Ac/OGi8zz33HFdfffWQz3NYbW0t69atGzC+76677mLPnj1UVlZSVVVFXV0d9957LwB//vOfue+++3jxxRfZu3cvL7300oj3WLNmDTfffDOf+MQn2LVrF2+99dag5erq6rj66qv51re+RXt7O/fddx833HADLS0tI95DiEySRFAIMSW1dIZxj3Nr4Ltvb6WxoZ5LLr+K+QvOpnRGOS+te2pAmQ9ecjnzF5yNy+XiQ5dcgdPl4spr/gGbzcYlV1zNgardtHf3smXLFlpaWrjnnntwOp3MmTOH2267jUcffbS/rvPPP5/rr78ewzDweDwD7vPQQw9x2WWXcfPNN+NwOMjNze1PBC+++GIWLlyIYRgsWrSIm2++mVdeeWXA9d/5znfweDwsXryYxYsX88477wz6zJFIhD/84Q8sX74ch8PBjTfeeEzL1uzZs7n11lux2Wx8/OMf59ChQ9xzzz24XC6uuOIKnE4nVVVV/eWvvvpqLrzwQlwuF9///vfZtGkThw4d4plnnmHWrFnceuut2O12zjnnHG644Qb++Mc/9l973XXX8YEPfADDMHC7j+32379/P8lkkvnz5w/593j99dfj9/v7Wyy/+93vAuku8N/+9rf87Gc/IxQK4ff7ufvuu/v/Th577DFuvfVWzj77bLxe74CW1sHU1NTw8ssvs3z5cgoLC/nwhz88ZKvg73//e6666iquuuoqDMPg8ssvp6Kigueee27YewiRaZIICiGmHK01rZ1h3EfsFzwe/vz0//C+ZR8kmJPeMu7DV15zTPdwKDev/2eXy0UolDvgz7FohOaOMNXV1dTX1xMMBvu/fvCDH9DU1NRfvqysbMhYDh06xNy5cwc998Ybb3DJJZeQn59PdnY2DzzwAK2tA1sui4qK+n/OysoacsLEn/70J+x2e39X64oVK1i3bt2AlqrCwsL+nw8nrEcfO7L+I5/L5/MRCoWor6+nurqaN954Y8Bn8tBDD9HY2DiqzwTS3eIjdQs/8cQT9PT0sGHDBnbt2tX/2bS0tBCJRDj33HP773/llVf2P2t9ff2A+8+cOXPY+zz44IOceeaZ/Qn6ihUrePjhh0kmj11cvLq6mj/84Q8Dnn3jxo00NDQMew8hMk2WjxFCTDnxZIqUaWE/jtnCQ9YZi7HhxeewTIt/uGwZkJ6dGu7ppmr3TubNP3PUdXWGo5SVlTF79mz27t07ZDk1zH53ZWVlQ87gXb58Obfffjvr1q3D7Xbzta997ZhEcLTWrFlDOBymvLwcSCfZyWSSRx55hK985SvHVeehQ4f6fw6Hw7S3t1NSUkJZWRkXXXQRL7744pDXDveZQLpb+Ktf/eqo4rjoootYuXIld955J0888QR5eXl4PB527NhBaemxa0YWFxcPiL2mpmbY+teuXUtNTU1/0p1KpWhra2PdunVce+21A8qWlZXxT//0T/z2t78dVexCTBXSIiiEmHJMc3T7AY/Fqy+/iGHYWPP4n/ndo0/zu0efZu3/PM+ipe/j+Wf+NHIFfRTpGc0VFe8jEAjwox/9iGg0immabN++nS1btoyqnhUrVvDSSy/x2GOP9ScYhyc99PT0EAqFcLvdbN68mYcffvh4Hrl/7OIzzzxDZWUllZWVvPPOO9x1110nNHv4ueeeY+PGjSQSCb797W9z3nnnUVZWxsc+9jH27NnDgw8+SDKZJJlMsmXLlmHHLx4pGo2yefNmLr744lHH8rWvfY0XX3yRyspKDMPgtttu44477qC5OT27u66urn/c5k033cTq1at57733iEQi/V3Kg9m0aRP79u1j8+bN/Z/d9u3bWb58+aCf3S233MLTTz/N888/j2maxGIxNmzYQG1t7aifRYhMkERQCDHlaMY/EXz+mf/ho9feQGFxCbl5+f1f//CJW3hp3VNjW95Fg2EzePrpp6msrGT27Nnk5eXxmc98hq6urpGvB8rLy3nuuef46U9/SigUYsmSJf3j/H71q19xzz334Pf7uffee7npppuO55F58MEHWbJkCVdccQVFRUX9X1/5yld499132b59+3HVu3z5cr773e8SCoV48803+5dV8fv9vPDCCzz66KOUlJRQVFTEXXfdRTw+uvUa169fz/nnnz/o2MGh5Ofn88lPfpLvfe97APzoRz9i3rx5LFu2jEAgwGWXXcbu3bsB+OhHP8rXvvY1Lr30UubNm8ell146ZL1r1qzhuuuuY+HChQM+u69+9as888wztLe3DyhfVlbGk08+yQ9+8APy8/MpKyvjJz/5yaD7XgsxlajR7J15MquoqNBbt27NdBhCiCNEYgnWbdpJfs7g68hlWktHmP918aIRuznF2Hzxi1/k7LPP5otf/GKmQxFiylJKvam1rhiv+mSMoBBiyrHbDLSliXRHScVTWKaFMhQOlx1PwJPRBMzsG7soSeD4W7JkCddcc02mwxDilCKJoBBiSkklTVrrOqirPESqN4HNbgAaUGit8fjcFM7NJ7swgN0x+a+waCJJbnD0ex+L0fvsZz+b6RCEOOVIIiiEmBK01rQ1dPLWq7tJxJJ4HQ56feBx2lGGgTIUSimSsSQH36nFZlPMWlpOsDB7UuOMxZPMK82f1HsKIcREkURQCJFxrXVtbPjj6+x5u5qc4iAFMwvoONRGQ1MHbpcTAJvdRnZhAH+uj0Cej1Q8ya6NeyldUEJBeS5OjxNlTHx3rbYg2ze++x8LIUSm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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = style_means.plot.scatter(figsize=(10,10), \n", - " x='abv', y='ibu', s=style_counts*20, color=colors,\n", - " title='Beer ABV vs. IBU mean values by style\\n',\n", - " alpha=0.3);\n", - "\n", - "for i, txt in enumerate(list(style_counts.index.values)):\n", - " if style_counts.values[i] > 65:\n", - " ax.annotate(txt, (style_means.abv.iloc[i],style_means.ibu.iloc[i]), fontsize=12)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## What we've learned\n", - "\n", - "* You should always plot your data.\n", - "* The concepts of quantitative and categorical data.\n", - "* Plotting histograms directly on columns of dataframes, using `pandas`.\n", - "* Computing variance and standard deviation using NumPy built-in functions.\n", - "* The concept of median, and how to compute it with NumPy.\n", - "* Making box plots using `pyplot`.\n", - "* Five statistics of a box plot: the quartiles Q1, Q2 (median) and Q3 (and interquartile range Q3$-$Q1), upper and lower extremes.\n", - "* Visualizing categorical data with bar plots.\n", - "* Visualizing multiple data with scatter plots and bubble charts.\n", - "* `pandas` is awesome!" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## References\n", - "\n", - "1. [Craft beer datatset](https://github.com/nickhould/craft-beers-dataset) by Jean-Nicholas Hould.\n", - "2. [What's The Meaning Of IBU?](https://beerconnoisseur.com/articles/whats-meaning-ibu) by Jim Dykstra for The Beer Connoisseur (2015).\n", - "3. 40 years of boxplots (2011). Hadley Wickham and Lisa Stryjewski, _Am. Statistician_. [PDF available](http://vita.had.co.nz/papers/boxplots.pdf)\n", - "4. [John Wilder Tukey](https://www.britannica.com/biography/John-Wilder-Tukey), Encyclopædia Britannica.\n", - "5. John W. Tukey: His life and professional contributions (2002). David R. Brillinger, _Ann. Statistics_. [PDF available](https://www.stat.berkeley.edu/~brill/Papers/life.pdf)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Problems\n", - "\n", - "1. Many beers do not report the IBU of the beer because it is very small. We may be accidentally removing whole categories of beer from our dataset by removing rows that do not include the IBU measure. \n", - "\n", - " a. Use the command `beers_filled = beers.fillna(0)` to clean the `beers` dataframe\n", - " \n", - " b. Repeat the steps above to recreate the plot \"Beer ABV vs. IBU mean values by style\" \n", - " scatter plot with `beers_filled`. What differences do you notice between the plots? " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "2. Gordon Moore created an empirical prediction that the rate of semiconductors on a computer chip would double every two years. This prediction was known as Moore's law. Gordon Moore had originally only expected this empirical relation to hold from 1965 - 1975 [[1](https://en.wikipedia.org/wiki/Moore%27s_law),[2](https://spectrum.ieee.org/computing/hardware/gordon-moore-the-man-whose-name-means-progress)], but semiconductor manufacuturers were able to keep up with Moore's law until 2015. \n", - "\n", - " In the folder \"../data\" is a comma separated value (CSV) file, \"transistor_data.csv\" [taken from wikipedia 01/2020](https://en.wikipedia.org/wiki/Transistor_count#Microprocessors). \n", - " Load the csv into a pandas dataframe, it has the following headings:\n", - "\n", - " |Processor| MOS transistor count| Date of Introduction|Designer|MOSprocess|Area|\n", - " |---|---|---|---|---|---|\n", - "\n", - " a. In the years 2017, what was the average MOS transistor count? \n", - " Make a boxplot of the transistor count in 2017 and find the first, second and third quartiles.\n", - "\n", - " b. Create a semilog y-axis scatter plot (i.e. `plt.semilogy`) for the \n", - " \"Date of Introduction\" vs \"MOS transistor count\". \n", - " Color the data according to the \"Designer\"." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.5" - }, - "widgets": { - "state": {}, - "version": "1.1.2" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/notebooks/.ipynb_checkpoints/03_Linear_Regression_with_Real_Data-checkpoint.ipynb b/notebooks/.ipynb_checkpoints/03_Linear_Regression_with_Real_Data-checkpoint.ipynb deleted file mode 100644 index 21438c1..0000000 --- a/notebooks/.ipynb_checkpoints/03_Linear_Regression_with_Real_Data-checkpoint.ipynb +++ /dev/null @@ -1,974 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "###### Modified under Creative Commons Attribution license CC-BY 4.0, code under BSD 3-Clause License © 2020 R.C. Cooper" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Linear regression with real data" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Earth temperature over time\n", - "\n", - "In this lesson, we will analyze real data of Earth temperature over time.\n", - "\n", - "Is global temperature rising? How much? This is a question of burning importance in today's world!\n", - "\n", - "Data about global temperatures are available from several sources: NASA, the National Climatic Data Center (NCDC) and the University of East Anglia in the UK. Check out the [University Corporation for Atmospheric Research](https://www2.ucar.edu/climate/faq/how-much-has-global-temperature-risen-last-100-years) (UCAR) for an in-depth discussion.\n", - "\n", - "The [NASA Goddard Space Flight Center](http://svs.gsfc.nasa.gov/goto?3901) is one of our sources of global climate data. They produced the video below showing a color map of the changing global surface **temperature anomalies** from 1880 to 2015.\n", - "\n", - "The term [global temperature anomaly](https://www.ncdc.noaa.gov/monitoring-references/faq/anomalies.php) means the difference in temperature with respect to a reference value or a long-term average. It is a very useful way of looking at the problem and in many ways better than absolute temperature. For example, a winter month may be colder than average in Washington DC, and also in Miami, but the absolute temperatures will be different in both places." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "image/jpeg": "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\n", - "text/html": [ - "\n", - " \n", - " " - ], - "text/plain": [ - "" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from IPython.display import YouTubeVideo\n", - "YouTubeVideo('gGOzHVUQCw0')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "How would we go about understanding the _trends_ from the data on global temperature?\n", - "\n", - "The first step in analyzing unknown data is to generate some simple plots using **Matplotlib**. We are going to look at the temperature-anomaly history, contained in a file, and make our first plot to explore this data. \n", - "\n", - "We are going to smooth the data and then we'll fit a line to it to find a trend, plotting along the way to see how it all looks.\n", - "\n", - "Let's get started!" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 1: Read a data file\n", - "\n", - "We took the data from the [NOAA](https://www.ncdc.noaa.gov/cag/) (National Oceanic and Atmospheric Administration) webpage. Feel free to play around with the webpage and analyze data on your own, but for now, let's make sure we're working with the same dataset.\n", - "\n", - "\n", - "We have a file named `land_global_temperature_anomaly-1880-2016.csv` in our `data` folder. This file contains the year on the first column, and averages of land temperature anomaly listed sequentially on the second column, from the year 1880 to 2016. We will load the file, then make an initial plot to see what it looks like.\n", - "\n", - "\n", - "Let's start by importing NumPy and pandas" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import pandas as pd\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To load our data from the file, we'll use the function [`numpy.loadtxt()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html), which lets us immediately save the data into NumPy arrays. (We encourage you to read the documentation for details on how the function works.) Here, we'll save the data into the arrays `year` and `temp_anomaly`. " - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "fname = '../data/land_global_temperature_anomaly-1880-2016.csv'\n", - "\n", - "temp_data = pd.read_csv(fname,skiprows=4)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### Exercise\n", - "\n", - "Inspect the data by printing `temp_data`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 2: Plot the data\n", - "\n", - "Let's first load the **Matplotlib** module called `pyplot`, for making 2D plots. Remember that to get the plots inside the notebook, we use a special \"magic\" command, `%matplotlib inline`:" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "#Import rcParams to set font styles\n", - "from matplotlib import rcParams\n", - "\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The `plot()` function of the `pyplot` module makes simple line plots. We avoid that stuff that appeared on top of the figure, that `Out[x]: [< ...>]` ugliness, by adding a semicolon at the end of the plotting command." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "#Set font style and size \n", - "rcParams['font.family'] = 'sans'\n", - "rcParams['font.size'] = 16\n", - "rcParams['lines.linewidth'] = 3" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoYAAAFyCAYAAABoYRvrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdeXydZZn/8c/VNEnbNE2apk2679CAUKAooAilyOoCsrjOAI77CKOO/sZdCzqODo46IszgMgqCigiyKJvQFgEppQXKVqBb0jVt0iY5SZo99++P+zntydnyJDmnWfp9v17nleZZ7uc6zzmn58q9mnMOEREREZFRgx2AiIiIiAwNSgxFREREBFBiKCIiIiIBJYYiIiIiAigxFBEREZGAEkMRERERAZQYimSdmVWaWWWWyr7KzJyZXTWAMpYHZSzNXGQ9yv91UP6cbJQvMpIk+0yb2Zxg268HLzI5UigxlGEr5j/LewY7FskMM1savKbLBzuW4czMVpmZJqkVkT4bPdgBiIiISFo7gQqgYbADkZFPiaGIiMgQ5pzrAF4b7DjkyKCmZDkimNlRZna9mb1gZnVm1mpmr5jZ180sN8nxlcGj0Mx+Yma7g3OeNbN3pLjGWWb2lJkdMLO9ZvZLMyvpR6zzzewuM2sws4iZPWJmi/vaV8/MPhrE2xyU8zczu6iXcz5tZhuC57o1uD+j444pMrMvm9kTZlZtZu1mts3Mbjaz8r4+35hylwMrg1+/FTxXF98kamblwWuyxczazGyPmd1mZnOTlOmCZtUZZnaHme0P7uudZlYWHHOqma0ws0YzqzGzHyZ5zgf7fZnZ5Wb2nJm1mNkuM/svMytI8ZwuDa7fEBz/vJl9Itlzj/bzNLOPmdmLwWvw62D/NDO7zszWBDG2mdkmM/uBmRXGP2fgzJjnH30sj38uSeJI27/NzI4zsz8Hn6H41+UsM3vAzPYFsb8avE9CVUCYWZ6Z/YuZ/dXMdgbvq91m9lszW9jLPfuwma0PrrvDzL5jZjlJzhkf7HsjuIc15j9rxyU5dlVQ/hgz+76ZbTf/2X7KzN4S87rcHpTTbGZ/SvYZMLN/MrP7zKwquG6tmd1rZieHvDcp+xia///iV8Hzbg9+3mRmk5Mc+47g/lbH3KuHzew9YeKQI4NqDOVIcQnwEWAF8CiQj//y/DZwMnBxknNygUeACcAfgInAB4EHzOxk59yL0QPN7FzgL0AH8DugFnhncK08oD1MkGY2E3gKmALcB7wKnAD8DXgh7JM1sxuAq4Eq4OYghsuBe8zsC865HyY57YvA24HfA38G3oO/PwuBK2OOqwCuxd/LPwItwGLgE8C5ZnaSc64ubKwxVgFzgms9Hvwe/7wWBtvLgQeBu4CZwPuA88zsVOfc5rjTJgJPADuAXwEnApcBM83sX4G/BmX9DLgA+Dy+ye7aJDFeDpwN3IF/b5wD/Ctwopm9wznXHRPr9fh7WhUcfyA4/mYzq3DOfT5J+V8CTse/9g8C1cH2M4K4HgP+DjjgFOALwBlm9ragVokg7quA2XHPYVWS6/XFAvx7cx3wC2BGdIeZXQ38BP++vxeoC57HfwBvwX/+elMC/BD/Xr8f/xocjX9tzzezJc65rUnOuwZ/X+/F/2HxHuBr+O+3L8fEOAb/nn0z8Az+vTMjpvzznHNPJin/Dvx7/k9BjB8AHjGztwIPANuBW/GfgYuBYuCsuDJuxH9+HwH24V+bi/Hv2aXOudUh7k8CMzsNeAgYg3/PbAUWAZ8Kyn6zc25/cOy7gmOqg3u1H/85OgV/z+7rTwwyAjnn9NBjWD7wSYQD7glx7HQgL26bAT8Pyjg9bl9lsP0uIDdm+5XB9ptjto3C/4fcCbw5Zvto/Be5AypDPqfbg+M/E7f968F2B8yJ2X5VsO2qmG1nBtvWA+Njtpfj+yp1APNiti8Pjj8ALIrZPgZYE+xbFrO9CChJEvs/BMd+PW77r+PjTvP8lwbHLk+x/2mgDTgjbvtpwfP6c9z26D37z7jt9wXb64B3xmwvAHbjv7xjX/erYso6M+61vyfY/k8x28+LvjeBMTHbc2OOj32vRF+DhtjXIGb/FKAgyfbo++If4ravAlyKe5jwnunl/TQn5rl/Nck5xwb3fjVQFPf5+mlw3mUhXvt8YFqS7WfiP1u/iNsevWf7gQUx20uC16+RmM888K3g+F8CFld+N7ARGBV/D/F/pIyN2f6FmPdOqvfVSXHb5yZ5XhVBjI/24TX4dcy2PPwfHfuBirgyLg+O/2nMtrvxn53JSWKZ1Nvro8eR81BTshwRnHM7nXPtcdsc8D/Br0mbh4EvuEM1MeATt058LWPU6fj/uO92zj0bU34n8I2wMZpZPnApvgbi5rjd/4X/AggjWrv3DedcU0w81cD1+IT1w0nOu9U591rM8a34L1/wSV90e4MLaiHi3I5PbFLdywExs5OAU4GfO+f+FrvPOfc0vhbkAjMriju1iUPPI+oPwc/nnHN/iSmnGV/zW0JMjViMh51zj8cc3w18Nfj1H2KO+wz+i/kTwX2MHt+BT+YA3p+k/J/FvgYx5+0NYot3U/AzK/c8zm78+yfeJ/HvqaudcwcHRwSfr6/i78MHeivcOdfmnNuVZPvj+JrzVM/xJ865TTHH78cnaOPxNY5RVwKt+OTWxRz/eHD8AuBtScr/unOuJeb3O4Kfo0n9vloc9xwSajqdcxvwNZxvN7O8FM8tnXcBs4DvBmXFln0nvmY3/r53BI/4WPb14/oyQqkpWY4IZjYK+Cj+r/Fj8c3DFnPI1CSn1TvnKmM3OOc6zWwPvrkoKvol8ESSMlbjE8kwFuFrTdYESWXsdVvM7AVgWYhyTgh+rkqyb1XcMbGSNaNFt/X4ojOzs4HP4ZsJJwGx/bmS3ctMOCX4OcOST2czFV+DtxBYG7N9o3PuQNyx0Sba9UnKie6bhq8JjpVwj5xzr5pZHT3v0SlABPhnM4s/JdqndVGSa69Nsg0AM7scn4SdgG8ej/3DPlv3PNb6uD+Sok7BJ3/vCZor47WQ/LkmMLMlwL/hE7QpHLpXkLo7xvNJtu0MfhYH5U4A5gLPO+f2JDl+FXAR/t7Gf47j3yPR90e699W02I1mtgCfJJ8V7ItPBCfhE+++iH4e3pTi8zAWmGRmpc65WnxC+17gZTP7Pf45P+mcq+/jdWWEU2IoR4obgH/GN73cjf8PvB3/xfFZfEIWL9XUEJ30TISiNVR74w90znWbWW3IGKODCGpS7E8oP4UJQKtzLpJkX3XMMfESruuci5hZa+zxZvY+fD/ERnz/pkr8lz/4ZDHZvcyE6ECei4JHKvEDQZLdh84Q+xIGJZH6tdmDr3GKKsH///qtFMdDYpyQ4jU2s/8H/Gew/0F84hOtifwW2bvnvcaGf65G+trxpINzYpnZ6fiuF93Aw8AmoJmgWRXfLy+ZZJ/T6GsY/ZxG37/JkkJI87mI/xwFfxxCyPdO0C92Df7z/Si+r2IT/nlejP+Doj+vX/TzcGXao/y9r3XO3WFmnfg+sZ/HN4l3mtn9wOecc9v6EYOMQEoMZcQzP/r00/i//E+LbRYys1PwieFARL+YpiS59iiglEM1GOk0Bj8TRhOmKj+FCDDfzCYkSQ7LYo6Jl2wUYyG+r2Hs8d/CJ4InuZiBHua/Lf8tZIz9EY3h4865X2TxOumkem3K6HmPIkCLcy5Zc3Q6Ln5DMKr368AuYHFQ+xPdV0b65DOZ6ACZhFG7JP+DIWVsgQjQhe8D2dbHWGJ9BV+T9taga8BBZpas2b0voq9NWYr96T4XA/U5/B+gH3LO/S52R/D/z+KkZ/UuGus5zrlHw5zgnLsLuMvMJuIHmn0Q39w8z8xOjG1ilyOX+hjKkWAuvkbj0bi+QpC8T1FfRZua3p5k36mE/wPsNXzn8LfET/FhZmMJ/wUSHb18RpJ9Z8YdE+v0JNuizym2OW0+sMEljv49Ed98NRBdwc9kScua4OepA7zGQCTcIzM7Bt+0G3uP1gDTg1HmA1WKT9iejk0KA6nev11BbMnuY7TpcHqSfSf2I741+Nfrzf04N9Z8YF+SpLAs2NdvwR9IW4GKZNO4kP5zMVDR2O+P3Rh8pk8aQLn9/jw45+qcc/c55z6Ir6VdjO+vKKLEUI4I0SaS0yymw5eZHYWvpRiop/DNqZeY2cEvxyC5+3bYQoLalj/hp1/5ZNzuf8X3Qwrj1uDntWY2LiaeKfgavU7gt0nOu8LMFsUcP4ZDnetvizluG7AwKC967ATgv0PGl050UEtC0uKcewb/ZfgRM3t3/H4zyw2aI7PpPDOLJhHRGuF/D36NvUc3BD9/mWQwDGY218KvHb2XoIY2SCaiZUwFvpvinJT3EXgOX/v3/mDAU7S8t5B8UFJvbsInojcGMfVgZmVmVhGinG1ASeyxwaCMn5K8Wb+vbsXXfl8XF9/p+CbdzfjPcqZF//85mMQH/w99l/CtAMncgx+o9uXgtevBzMYGNZLR35fFvt7BttEcapJujdk+38wWWZI5XmXkU1OyjAQnWerF5R9xzv3WzP6E73j9rJmtxHcAfw++L9OlA7m4c67LzD6Fn/vvcTOLncewnb51Kv8yfp68G8xPpL0B3yH+bfhO8W/nUFNgqnhWmdn/4JvPXw6eex5+vrYpwL8lqe0DP8fbM0HH9Aj+/hyFH628Iua4n+KTwOfM7C58/6gL8E2dCaNK++h1/P36gJk1EzTBO+e+F+z/EH4k531m9gS+hqcT3//s7fiEKNRAh356AHjYzO7AP9dz8bU+q/DT8hDE+4CZ/Qf+D49NZvYwfh7FyfhpSk4NnktlbxcM+qn+L75f2PNmFh01/S78nH9HJzltJX6uxjvM7CF8TfSTzrknnXM7gtftMvzn4a/4BPIi/IjsZHN6povvJTO7Bv++eMPMHgie10T8QKDT8f0PN6QsxPspfj7Cp4L724kfiZyLr43tb5Nr1Pfx9+xTZnY8/t5Nx48Ob8VPN5T2s9VP/4ufQ/Xu4Hk14N+rc/Hvm6X9KdQ51xYMSHoQWG1mj+BHb4/Gz5JwJn56p/ODU36IH7i1Cv/65ODv75uA2+IG5TyG/0zNJcR7VEaYwZ4vRw89+vug5/xqqR4/Do4tBH6MH3zSCrwC/Av+P74e84MFx1eSYu7BVPvwI4b/jq/dqQH+D/8FnrKsFOUvwNccRoLHI/gvxfuDWCfGHHsVSeakwzedfxw/ZcUBfGf3J4BLklxveVDGUvwAnWiTdiX+C310krI/g/8SasHXWvx3cI8Tnit9mMcwOP6tQaxN0dcxbv8k/MTJ0etH8EnHL4Gz4451wKok11hKivkSY+9HsvuMnyPu+eDau/FfuAlzDAbnXYBPtmrxfyTsxM+L9wWgNN0148rJA76JH5DRiq/dWh5sT3iO+GTqv4LXpjP+ueIHJPwPh2ojn8EnEAnvJ5LMoZcixtOAO4N70o4f0LE6iHtWyNf+fcG9PRCc/2t8/79VSd4HKe9Zqn3Be/S7wX1sx893eDe+72Z8GQnX7O/7Cv/H3t/x/Yj34edHXUiSz0ZfXwN8E/BPg/dEG35+xZfwtdaxc2W+Hz+dzubg/u7D18B/ksTPeGV8XHocOQ8L3gQiMoQFTZZbgHHOuYE0P0k/mF8i7lfAR5xzvx7caEREskd9DEWGmGT9tPB9A2fjJ3EWERHJCvUxFBl6NpjZGnxT6Sj8JNKn4OdgWz6IcYmIyAinxFBk6LkZP3DlFGAcvq/VL4HrnHNh5kMUERHpF/UxFBERERFAfQxFREREJKDEUEREREQAJYYiIiIiElBiKCIiIiKAEkMRERERCSgxFBERERFAiaGIiIiIBJQYioiIiAigxFBEREREAkoMRURERARQYigiIiIiASWGIiIiIgIoMRQRERGRgBJDEREREQGUGIqIiIhIQImhiIiIiABKDEVEREQkoMRQRERERAAlhiIiIiISUGIoIiIiIoASQxEREREJKDEUEREREUCJoYiIiIgERg92AENdaWmpmzNnTlav0dzcTEFBQVavMVLoXoWnexWO7lN4ulfh6D6Fp3sVXth7tW7dulrn3OT+XmdYJIZmNgP4EnAysBgYC8x1zlWGOLcSmJ1k13udc/f0dv6cOXNYu3Ztn+Ltq1WrVrF06dKsXmOk0L0KT/cqHN2n8HSvwtF9Ck/3Kryw98rMqgZynWGRGAILgPcB64AngHP7eP7DwPK4ba8PPCwRERGRkWO4JIZ/c86VAZjZx+h7YljrnFud+bBERERERo5hMfjEOdc92DGIiIiIjHTDIjHMgHeb2QEzazOz1WZ28WAHJCIiIjLUmHNusGPok6Ap+eeEH3xyA/AssBUoA64GzgT+0Tl3W4pzPgF8AqCsrGzJ73//+8wEn0JTUxPjx4/P6jVGCt2r8HSvwtF9Ck/3Khzdp/B0r8ILe6/OOuusdc65k/t7nRGfGCY5PwdYDZQ752b2dvzJJ5/sNCp56NC9Ck/3Khzdp/B0r8LRfQpP9yq8PoxKHlBieKQ0JR/knOsC7gRmmNnUwY5HREREZKg44hLDgAU/h1d1qYiIiEgWpZyuxsy29aM8B7zTOfdy/0PKLjMbDVwObHPOVQ92PCIiIiJDRbp5DGcADwA1IcsaBfwDkDfQoJIxs8uCfy4Jfl5gZjVAjXPu8eCYTuAW59xHg98/CFyEfx7b8YNPPhOU8cFsxCkiIiISb8eOJqZPL8DMej94EPU2wfV1zrk1YQoKauL+ceAhpXRn3O83BT8fB5YG/84JHlFbgSnA9UAJcAA/Qvl859zDWYtUREREJNDe3sVllz3An//8bkpLxw52OGmlSwy/ga9lC8U512lm3wB2Djiq5OX3mmLHHxOsdrIsG/GIiIiIhLFmzR7mzy8a8kkhpEkMnXP/3tfC+nOOiIiIyEi2YsUOli2bMdhhhJJ2VLKZHWdmKZ+Jmc00s+MyH5aIiIjI8Nfd7VixYjtnn93r1MlDQsrEMFg2bi0wOc35k4C1ZnZhpgMTERERGe5eeWUf48fnMmfOhMEOJZR0NYYfAX7nnHs+1QHOuReA24GPZzowERERkeHONyMPj9pCSJ8YngLcH6KMPwOnZiYcERERkZFjOPUvhPSJYQmwJ0QZe4NjRURERCSwbVsj+/e3cvzxpYMdSmjpEsM6oDxEGeVAfWbCERERERkZVqzYzrJlMxg1amhPah0rXWK4Br90XG/eFxwrIiIiIoHh1owM6RPDm4DLzexzqQ4ws88DlwI3ZjowERERkeGqrq6V116r49RTpw52KH2SboLrB83sR8APzewj+IEoVcHu2cC7gTcBP3bOPZT1SEVERESGiVWrdnLaaeXk5+f0fvAQknatZOfcF8zseeArwFfjdm8ArnDO3Z6t4ERERESGozVr9nD66dMGO4w+S5sYAjjnbgNuM7OpQHQinu3Oud1ZjUxERERkmNqz5wDTp48f7DD6rNfEMCpIBJUMioiIiPSitraF0tIxgx1Gn/W2VvJ0M3uvmb3pcAUkIiIiMtzV1rZSWjp2sMPos3RrJb8XeBH4MPCImX3jsEUlIiIiMky1t3fR1NRBcXH+YIfSZ+lqDP8L+Ffn3GXABcC3zEwrnIiIiIiksX9/KyUl+cNqYuuodIlhMVAd/HtPcGxh1iMSERERGcaGazMypE8MbwZuMLPPAL8HVjnnqtIcLyIiInLEG64DTyD9BNdfMbP1wNuAe4D/PWxRiYiIiAxTPjEcnjWGvU1w/Xt8baGIiIiIhDBSm5JFREREpI+Gc1NyuulqrjCzSX0pLDhn4sDDEhERERmeRmqN4a+AeWELMrOc4Jy5Aw1KREREZLgaqX0MDfiYmV0Qsiw1S4uIiMgRr6Zm+DYl97ZW8scPSxQiIiIiI0RtbSuTJ4+wGkPnnGoARURERPqgubkDcIwb11vd29Ck5E9EREQkQ6IDT8yG33J4oMRQREREJGOG88ATUGIoIiIikjHDeQ5DUGIoIiIikjHDeQ5DUGIoIiIikjGqMRQRERER4AjpY2hmT5nZP5pZfrYDEhERERmujpSm5A7gFmCXmf3QzBZlMSYRERGRYemIaEp2zi0FKvDJ4RXAK2a2yszeb2a5WYxPREREZNg4UmoMcc697pz7V2A6cBWQA/wW2GFm3zOzedkJUURERGTo6+527NvXyqRJI7zGMJZzrs059xvgs8ATwGTg34A3zOxOMyvPcIwiIiIiQ15DQxsFBaPJy8sZ7FD6rU+JoZmNNbN/MrM1wLP4pPCzwDTg08BbgdszHqWIiIjIEDfcm5EBQq3wbGbHAZ8EPgwUAPcCX3LOrYw57OdmVg3cmfEoRURERIa4mprhPVUNhEwMgfXALuDHwM+cc7tTHLcJeDoTgYmIiIgMJ8N9RDKETwwvB+5xznWlO8g5twE4a8BRiYiIiGTAnXdupKmpg4985JisX2skNCWHna7mrt6SQhEREZGh5tln9/Dii7Whjt26tYFf/OKVfl9rRNcYmtk3+1COc859OwPxiIiIiGTMxo0N5ORYqGOffXYvf/zjJj72sWP7da3a2hYWLZrYr3OHinRNycv7UI4DlBiKiIjIkNHZ2c3WrQ2MGROu51xlZYTt2xtpaelk7Niwve0OGdFNyc65UX14DN8Je0RERGRE2ratkbKycXR3O+rr23o9vqqqEedg8+aGfl1vJDQl93mCaxEREZHhYOPGehYuLGbGjPHs2NHU6/FVVRGOPrqYjRvr+3W9EV1jKCIiIjIcXHHFI0lrBKOJ4axZhWzfnj4x7OzsZseOJpYtm9mvxLC9vYumpg6Ki/P7fO5QEjoxNLNPmNnzZnbAzLriH9kM0sxmmNkNZvZ0cH1nZnNCnjvKzL5iZpVm1mpm683s0mzGKyIiIodHU1M7a9fuZd26vQn7YmsMt29vTFvO7t3NTJo0luOOm8SmTX1PDPfvb6WkJJ9Ro8INdBmqQiWGZnYFcAN+GbwxwK+A24AIsBm4LlsBBhYA7wPq8Osz98W38QNpfgpcAKwG7jSzCzMZoIiIiBx+O3Y0A6RNDGfO7L0pubKykTlzClm4sJiNG/vex3AkNCND+BrDzwH/gV8PGeAm59yVwDygBdiXhdhi/c05V+acu5A+LLlnZlOALwLfc879wDm30jn3SWAl8L0sxSoiIiKHyY4dTRQX5yckhq2tneza1czs2YXMnFnYa41hZWWE2bMnMHVqAY2N7TQ09D5YJf784T7wBMInhguBvwHdwSMPwDlXB/w78NmsRBdwznX389Tz8LHeFrf9NuA4M5s7oMBERERkUO3c2cQ558xk06Z6DhzoPLh9y5YIs2YVkpeXEzQlp68xrKqKMGdOIaNGGQsWFLNpU++1hps3N3DTTS/y3vf+me9/fx0XXDBnoE9n0IVNDFuAUc45B1TjawqjmoBpmQ4sQ44F2vBrOMeKTmue/fVxREREJGt27Ghi3rwiFi0q6bHCyaZNvhkZYOrUAmpqWmhvTz0koqqqkdmzJwCwcGFRrwNQtmxp4MMffpiGhna+9rW3sGrVJVx00by05wwHYRPDl/D9/MD38fuqmZ1mZm/G9997LQuxZUIJUB8ktLH2x+wXERGRYWrnziamTx/PkiVTejQnR/sXAuTmjqKsbBy7djWnLMc3JRcCsHBhca8DUP7yl0ouvngeX/nKyZx88hRyckbGRC9hp/X+GYdqCb8BPAo8GfzeCFyc4bgyxfCrsiTbnvoks08AnwAoKytj1apVmY8sRlNTU9avMVLoXoWnexWO7lN4ulfh6D6Fl4l79frre6iu7iA3t4tHH23i2GN93c/q1bW87W0FrFrlh0GMH9/BX/7yd449NrEfYEeHY8+eZjZvXkdlpXHgQCvPPhth1aoDSa/pnOOuu/Zw5ZUTD9trfdjeV865Pj+AAuAdwHuA0v6U0d8H8DF8sjcnxLHfB1oBi9v+lqCMd/ZWxpIlS1y2rVy5MuvXGCl0r8LTvQpH9yk83atwdJ/CG+i96u7udied9DvX2Njm6utb3ZIlv3Pt7V3OOeeWLbvbVVZGDh77zW8+7X7729eSlrNxY5274IJ7Dv6+d+8Bd9ppf3Dd3d1Jj3/llX3uHe+4O+X+bAh7r4C1bgB5Vt8XAvTJZDO+1nCoewXIB+bTs59htG/hq4c9IhEREcmI/fvbyMsbxfjxeQDMmDGeDRv2M2/eBOrrW5kxo+DgsbNmFbJtW/IBKH6qmgkHf4+OLq6tbWXy5MQpaB58sJILLpiD2fCeszCZPiWGZjYTmImfy7AH59yKTAWVQQ8B7cCHgWtjtv8D8LJzbuugRCUiInIE6OzsZvTo7PW927GjiRkzxh/8PdrPsLvbMW9eUY9+fzNmjOeFF2qTFUNV1aH+hQBmdnAASnxi6JzjgQequPHGpZl9MkNEqMTQzOYBt+ObYOFQHz3HoX58ORmPrmcMlwX/XBL8vMDMaoAa59zjwTGdwC3OuY8COOf2mtmPgK+YWSPwHPB+YBlwUTbjFREROZI1N3dw/vn3smLFJeTmZic5jA48iVqyZAoPPFDJ+PG5BweeRM2cmXr1k8rKCMceO6nHtugAlLe+dWqP7evX1zJ2bA5HH92z/JEibI3hL4BZ+ImuX8PXwh1u8RNb3xT8fBxYGvw7h8QE9Wv4KXU+C5QDrwPvc87dn50wRUREZPfuZvbta2XLlgaOPnpiVq6RrMbwO995lvLyAhYsiE8M/XrJzrmEJuCqqkbe+c6eUxsvWFDMK68krt/xwAMjtxkZwk9X82bgX5xzNzjn/uqcezz+kc0gAZxzluKxNO6Yq+LO63LOfcc5N9s5l++cO94598dsxysiInIk27PHj+h99dX9vRyZqLm5gxtvfJHu7mQTixyyc2fPxLCsbBzjx+eyYsX2hBrDwsI88vJGsW9fa0I5lZV+cutYyZbG6+rq5qGHqrjggtl9fUrDRtjEcAeDU0soIiIiw1B19QHMYMOGvieGTz65ixtvfJE//Wlz2uN27OjZlAy+1rC6+gALFxYlHD9rVmHCmslNTe00N3cwZcq4HtsXLChi06b6Hsnp2rV7KS0dy7x5iWWPFGETw+8CXzKzgl6PFBERkSNedfUBTjhhcr9qDJ98cheXXE3sY58AACAASURBVDKfH/3oefbvT6zhi/JNyT1TkyVLJlNYmEtZ2biE45MtjbdtWyOzZvml8GIVFeVTWJjH7t1+Uuyurm7uuWcLF144p8/PZzgJ1cfQOfcbM1sEVJrZaqAu8RB3ZcajExERkWFpz54DnHnmdH7+81fo7nYJiVcqzjmefHI3v/rVOygszOUHP3iO7373rQnHdXV1U119gGnTetYYnnHGdHbvPpC0D6DvZ9hzAEpl5aGl8OItXFjE3XdvZv/+Vh57bDuTJo3l858/IdTzGK5C1Ria2VXAV4Bi4CTg7UkeIiIiIoCvMTz66GKKi/PYti35aOBkNm1qIC9vFLNnF3L11YtZvbqaNWuqE47bs6eFiRPzyc/vOeZ0ypRxXHPN4qRlz5w5PqEpOXYpvHinnFLOk0/uYvr08dx667n86U/vTGhyHmnCNiVfC/wJmOycm+6cmxv3GP6rRouIiEjGVFc3U15eQEVFSZ/6GT7xxC5OP30aZkZBQS5f/erJXHvtGtrbu3ocFz/wJIwZM8YnJKl+4EnyGsOPfvRY7rjjAj72sWNTHjPShE0MJwE3OefSrygtIiIigm9KLisbxzHHlPSpn+GTT/rEMOrss2cyZ04ht9yyocdxyQae9GbmzMTBJ1VVjUdM0hdG2MTwSaAim4GIiIjIyNDc3EFHRzdFRXlUVExkw4b4oQmpz3vxxVre8payg9vMjM9+9gR+97s36OrqPrg9fg7DMMrKxlJf30ZraycAW7c2sHVr4lQ1R7KwE1x/FviDmdXhl5lLeIWdc90JZ4mIiMgRp7ra1xaa2cEaw2QTS8d79tk9HHdcKQUFuT22H3XURCZPHstTT+3mjDOmAz4xPOWU8j7FlZMzimnTCvje99bx3HN7aWho5wMfOIri4vy+PcERLGxiGK2/vTXFfteHskRERGQE27PnAOXlfhqZyZPHkZNjVFcfYOrU9LPe+WbkqUn3XXLJfO6+e/PBxND3Mez7LHrvfvdcIpEOrr32VBYvLg09WvpIETaZuw6f/ImIiIikVV19gPLyQ6N3o7WGvSWGTzyxixtuODPpvgsvnMMPf+jnNSwpGdOvPoYAn/708X0+50gSdh7D5VmOQ0REREaIPXuae0wwHR2ZfPbZM1OeU1XVSFtbV8JSdlGFhXksWzaT++7bwgc/eDR1dW09kk/JjLCDTw4ys/FmNlOroIiIiEgyyWoMe5uyJjoaOV0/xEsvnc9dd21m164mysvHkZPT5zRGehH6jprZeWa2FqgHKoEGM1tjZudkKzgREREZfuITwzAjk+OnqUlmyZIpdHZ288ADVf1qRpbehV355DzgL8B44NvAPwPfAQqBB5QcioiISFR0DsOoGTPG09zckXLdY+cc69fXsmTJlLTlmhmXXDKfW27Z0OepaiScsDWGy4FHgGOcc9c6524O+h0eC/wVvzKKiIiISEKNoZmlXQFl//42nHOUlo7pteyLL55HS0unagyzJGxiuBi4MX6uwuD3m4CRvaK0iIiIhNLc3EFbW1fC3IAVFalXQNm8uZ7584t6necQ/PQ3558/m0WLkg9SkYEJO11NG5BqvZjCYL+IiIgc4fbuPTS5dayKiomsWrUz6TmbNzcwf35R6Gtcf/3pA4pRUgtbY7gK+LaZzY3daGaz8M3MKzMbloiIiAxH8c3IUenWTN68OdKnxFCyJ2xi+CWgCHjdzP5mZneY2ePARqA42C8iIiJHuFSJ4dy5E6ipaaGpqT1h3+bNDcybp8RwKAiVGDrn3gCOB34C5AMnAWOA/wZOcM5tzFqEIiIiMiQ456ivT997LH5EclROziiOOqqY115LnLYm2sdQBl/oeQydc7udc190zp3inFsY/Pw359zubAYoIiIiQ8MLL9Tymc+sSntMqhpDiE503TMxbGhoo6WlS6uYDBGaMlxERERC2b27mdralrTHVFc3U16efHG0ioqJCf0Mt2yJMG/ehFAjkiX7wo5KxsyuBD4IzMI3I8dyzrn5mQxMREREhpaampZ+NyWDrzG87bbXe2xTM/LQEioxNLNv4Cexfhl4AU1PIyIicsSpqWmhsbGDzs5uRo9O3uiYril5wYJitm1rpLW1kzFjfArS16lqJLvC1hh+FPhv59znsxmMiIiIDF01Nb4ZORJpp6QkcZWSlpZOWlo6mTgxP2EfQF5eDnPmTGDjxnqOO64U8FPVvOUt5dkLWvokbB/DScD92QxEREREhrZo/8JUzcnRZuR0/QXjV0BRjeHQEjYxfBy/LJ6IiIgcoWpqWhg3bnTKxDBdM3JU7Mjk1tZu6upamT49+WAVOfzCJoafAz5iZleYWamZjYp/ZDNIERERGXw1NS0sWFDca41hOhUVE9mwwdcYVld3Mnv2BHJylEYMFWH7GL4R/PxViv2uD2WJiIjIMNPe3kVzcydz5hRSX5+4egn46WxSTVUTdfTRE9m0qZ6Ojm6qqztYsEDNyENJ2GTuOnzyJyIiIkeg2tpWSkvHMHFiftoaw4ULi9OWU1CQS3l5AVu3NlBd3cmiRUoMh5JQiaFzbnmW4xAREZEhrKamhdLSMRQVpU8MTz99Wq9lRfsZ7t7dwYUXKjEcStSoLyIiIr2qqWlh8uSxFBfn09CQOjGcMmVsr2UtWuRXQKmu7tSI5CGmLyuf5AEXAEeTfOWTb2cyMBERERk6amtbKC2NJobJ+xjW1rYyeXLvieExx5TwyCMvUFfXyaxZhZkOVQYg7Mon04AngTn4vobRCYpi+x0qMRQRERmhYmsMkzUld3X5qWeSTXwdr6KihJde2kd5+Whyc9V4OZSEfTWuB2rw6yQbcAowD/h3YFPwbxERERmhamt9YlhUlJc0Mayvb2f8+Dzy8nJ6Lau4OJ9p0wqYOjU3G6HKAIRtSn478EVgV/B7t3OuEvimmeUAPwEuynx4IiIiMhT4wSepawx9U3PvtYVRFRUl5OXVZzJEyYC+LIm3yznXDTQDE2P2rQCWZjguERERGULim5Kd6zmLXbQPYlif+tSbOO00rXgy1IRNDHcApcG/NwPnxux7C9CayaBERERkaIkmhmPHjsbMaGnp6rE/Os9hWMceO4nSUq2NMdSEfUVWAmcC9wA3Azea2QlAB3BesE1ERERGoO5ux/79bUya5BO/6JQ148YdSiP6WmMoQ1PYxPDrQAmAc+5/zGw08H5gHPCf+JVRREREZASqq2ujsDD34MCS4mI/AGXq1ENNwX5wSvp1kmXoC7vySS1QG/P7DcAN2QpKREREho7owJOoZANQamtbqagoOdyhSYZp8iAREZER7okndtHW1tX7gSlE+xdG+WXxek5yrabkkUGJoYiIyAjW3e343Oce5w9/2NjvMqJzGEYVFeUlLItXUxNu1RMZ2pQYioiIjGDV1QcA+PnPX+bAgc5+lRFfY5i8Kblv8xjK0KTEUEREZASrrIxw/PGlvPnNZfz2t6/3qwzfx/BQ0hcdlRzV3t7FgQOdFBXlDzheGVxKDEVEREawLVsamDNnAp/5zPH8+tev0tjY3vtJcZLXGB4qp7a2lUmTxjBqlGUkZhk8fU4MzWy8mc02My1wKCIiMgRs2lTPffdtSbqvsjLCvHlFzJtXxBlnTOfWW1/rc/nxfQzjm5L9fjUjjwShE0Mze5eZPQc04Fc/OS7Y/gsz+1CW4ou9/kwz+6OZNZhZxMzuNrNZIc91KR4nZDtuERGRbHvooaqUCd+WLRHmzp0AwKc/fRy33/560rWO04mfrqaoKC8hMdSI5JEhVGJoZhcD9+LnMvxS3HlbgSszH1qP64/Dr8m8KLjWPwILgZVmFnahxV8Dp8U93sh4sCIiIofZiy/W8sYb9bS3J05Js3XrocRw5sxCzj13Fv/3f6+GLts5F6LGsFWJ4QgRtsbwW8CvnHPnAj+O2/cy8KaMRpXo48A84GLn3D3OuXuB9wCzgU+GLGOnc2513ONAtgIWERE5HLq7HS++uI/i4jw2b27osa+5uYOGhp4rlFx55SL+/Oetoctvbu4AjIKCQz3IkjUla0TyyBA2MawA7gj+7eL21QGTMhZRcu8BVjvnNkU3OOe2Ak8BF2X52iIiIkPW1q0RioryOPXUcl59dX+PfZWVEWbPLuwxKGTGjEJqa1vp7OwOVX78wBOACRPyaGrqoKvLl6Eaw5EjbGIYAUpT7JsD1GQkmtSOxddMxnsFOCZkGZ82szYzO2BmK8zs7ZkLT0REZHC88EINixeXUlFRwoYNdT32+Wbkoh7bcnNHUVKSz969LaHKr61NnLh69OhRFBTk0tjYERyjPoYjRdjE8K/AV8ysOGabM7N84GrgwYxH1lMJvmYy3n5gYojzbwP+GXgH8Al8DecKM1uaqQBFREQGw/r1tSxePJljjilhw4aeNYax/QtjlZcXUF3dHKr8ZDWG0HMAipqSR47RIY/7GrAGeB14AN+c/GXgeKAIuDgr0fUU34QNEGrCJOfcP8b8+oSZ3YuvgfwOcHpCoWafwCeQlJWVsWrVqj4H2xdNTU1Zv8ZIoXsVnu5VOLpP4elehRN7n/bv76S93VFennyGtw0bWqmoGFhC9fe/V7NgQYR9+0bz6qu1rFix8mDT8TPP7GPx4rGsWtWzbmX06GZWrFhLJDKu1/KffrqR1tauhNc+J6eNlSufZu7cfLZvr2Pz5heJRMKmFZ7eU+EdtnvlnAv1AGYAvwR2AO3AbuBXwMywZfT3AewBbk6y/Sagpp9l3gS09XbckiVLXLatXLky69cYKXSvwtO9Ckf3KTzdq3Bi79OPf/y8W758ddLj2to6XUXFb1xTU3u/rxWJtLmTTvqda2/vcs45d845f3KbN9cf3H/xxfe7V16pTTjve99b637xi5dDXeP669e5n/3spYTtH//4Y27Vqu2uu7vbnXjib/v1PPSeCi/svQLWugHkXKFSezMrChKwj2Y0Kw3vFXw/w3jHAOHH3PdkJK+FFBERyYht2xrp7k7+VRNtho1E2nuM+O2Ll17axzHHlJCb63uGRZuT580rorvbUVXVyOzZiU3JU6eOY9u2plDXqK1tYcGCooTtxcV51Ne309zcwahR1u/nIENLr30MzWw0sA84N/vhpHQfcKqZzYtuMLM5wNuCfX1iZhOAdwLPZCg+ERGRBNu2NaacTLquzm9vaOj7EnVR69f7gSdRixZNPDgyeffuZoqL85MmbFOnDryPYXTKGo1IHll6TQydc534ptzEWTMPn58DlcC9ZnaRmb0HP+H2duDm6EHBUn2dZvbNmG1fNLOfm9mHzGypmV2Jn+amHPj6YX0WIiJyxHDOpU0Mo9sbGvq2CkmsF16o5YQTDiWGvsbQ9yeMXfEkXnn5OHbvzlRiqIEnI0nYUcm3AR/LZiDpOOeagWX4lUp+A9yOX3FlmXMuti7cgBx6Pq/X8U3OP8GPrv5hcO7pzrknsh+9iIgcierr22hq6jhYMxhvoDWGzjlefLG2R41hRUUJr766H+cclZXpEsMCqqt7X+PBOcfevcmnoikuzqehoZ2aGtUYjiRhhw9VAh8ys2fxNXW7ieuf55z7v8yG1pNzbhtwaS/HVBI3Utk5dz9wf/YiExERSbRtWyMLFhRTWRnBOYdZz4k0BlpjWFkZoaAgl8mTD40snjx5LPn5Oeza1cyWLQ0sWFCc9NxJk8bQ3NxBa2snY8akTgU2bWpg/PhcJk7MT9jXs8ZQieFIETYxvDH4OR1YkmS/A7KaGIqIiAwnVVWNLFxYxI4dTRw40JnQ16+urhXof43h+vU9m5GjKiomsmHDfrZujXDOObOSnjtqlFFWNo7q6gPMmZO8VhHgsce2s2zZjISkFtSUPFKFbUqe28tjXupTRUREjjzbtjUya1YhEyfmJ21OrqtrY9KkMf2uMXzhBT+xdbxoP8NUk1tHhelnuGLFdpYtm5l0X3SC62Qro8jwFSoxdM5V9fbIdqAiIiLDSc/EsDVhf319G3PmTBhAjWHPEclRFRUlrFmzh6amDsrKUk9g7Ucmp+5nuGfPAbZvb2LJkilJ96vGcGQKW2MoIiIifbBtW9PBxLC+PjH584lhYb9qDJubO9i2rZFFixJXhT3mmBLWrdvL3LkTDq6Akkx5eUHaGsOVK3dwxhnTD86RGM8PPlEfw5Em7ATXW+llMmjnnJqTRUREAtEaw+Li5DWGdXVtnHJKOU88savPZb/wQg0VFSXk5eUk7Js2rYAJE/LSNiODb0qOznmYzGOPbeeyyxak3D9u3Gg6Ohw7dzYrMRxBwtYYPp7k8TIwIShjVTaCExERGY4aGtpob+9i0qQxB5tc49XVtTF7dv9qDNet25uyidfMqKgo6TUxTDfJdWNjOy+8UMvpp09Leb6ZUVycRyTSTkmJmpJHilA1hs65q5JtN7Ni4CHg0QzGJCIiMqxt3+6bkc0s7eCT2bP718dw3bq9fPSjyVaK9a68chHTphWkLWPq1HHs2pW8j+GTT+7ipJMm97rMXXFxPl1dLmVzsww/A3olnXP1wPXAN3s7VkRE5EgRbUYGmDhxTEJi2NbWRWdnN9OmFfS5xrC9vYuXX97PiScmjkiOWrp0Bkcdldj/MJaf5LoZ5xJ7iq1YsYNly2b0Gktxcb6akUeYTKT4rUDv7x4REZEjRGximKwpub6+jYkT8w/202trC7/q7Cuv7Gf27EIKC/MGFGNhYS5mRmNjR4/t7e1dPPHErlCJYVFRvkYkjzD9TgzNbLSZnQAsB17JWEQiIiLD3LZtjcyeHa0xTEwM6+p8YmhmFBXlEYmErzVM17+wL8ws6VyGa9fuZc6cCT1WVEmluDhPNYYjTKjE0My6zawr9gG0AeuABcDnsxmkiIjIcBJfYxjflFxX10pxsV9mrqgo+XQ2qWQqMQTfzzB+AIqf1DpcQ2BxcT6TJqnGcCQJuyTedSROV9MKVAEPOucaMhqViIjIMFZVFdvHMHG6mvr6toOJYXFxXugBKN3djuefr+G6607NSJxTpxawe/ehAShdXd088sg2brnlnFDnX3bZwozEIUNH2FHJy7Mch4iIyIjQ2tpNc3PHwWXifB/DdpxzB9cc9n0MfU1bUVFe6AEoGzfWU1ycn7El6OKbkteu3cvkyWOZO7co1PnR5nIZOcI2Ja8ws0Up9h1lZisyG5aIiMjwVFPTycyZhQdXHcnLyyE/P4empkODPKJ9DME3JYetMcxkMzJERyYfqjF84IFKLrxwTsbKl+En7OCTpfjJrJMpBM7MSDQiIiLDXE1N58Fm5Kj4ASh1dW0xfQzD1xhmOjGMneS6o6Obv/51O+efPztj5cvw05dRyamWxJsPNGUgFhERkWHPJ4bje2wrLs7rMQAlto9h2BpD51wWagzHHawxfPrp3cydO4Hp08f3cpaMZCn7GJrZR4CPBL864Gdm1hh32FjgTcBj2QlPRERkeKmp6eSEE3rWGBYX95zkumdTch579tT3Wu7Onc10d7uEpHMgoolhd7fjwQeruOAC1RYe6dLVGHYDXcHD4n6PPvYB/wN8NLthioiI9F9bWxeVlZHDcq0wTcnRCa4hfI1htLYwOoAlE8aMGU1hYS67dzezcuUOzjtPieGRLmWNoXPuFuAWADNbCXzaOffa4QpMREQkU556ahe33/46v/zlO7J+rZqarqSJYeyUNf3pY5jpZuSo8vIC/vCHjVRUlGRstLMMX6H6GDrnzlJSKCIiw1V9fTuRSPhJpPurpaWTpqYuyst7rhoSP8l1fX1rzHQ14WoMX3yxlhNOSL0+cn+Vl4/j979/gwsvVG2hhJ/gGgAzWwwcDSRMc+6cuzVTQYmIiGRSJNJ2WBLDysoIpaWjycnpWe9SXJx/cL7AlpZOurocY8fmHNzXW41hd7ejqqqRuXNTTRDSf1OnFtDS0sk558zKeNky/IRKDM2sGPgLEJ1qPdrBIXakshJDEREZkiKRdhobO3o/cIDWrt3L/Pn5Cdtj+xhGJ7eO9hX0Tcnpk9bq6gMUFeVRUJCb8ZinTSvgtNOmHmzaliNb2BrD7wKTgDOAJ4D3Ag3APwGnAR/ISnQiIiIZEIl00NjYc/WRbHjmmWqOPjp5YhhtSo6dqgZg/PhcWls76ejoJjc3eQ+vysoIc+ZkvrYQ4PLLF/Cud83JStky/ISdx/A8fHK4Ovh9h3NulXPuCuBR4LPZCE5ERCQTIpE2urocLS1dWbtGV1c3a9fu5aijkiWGh6ariZ2qBsDMKCzMo7Exda1hVVUka8vPjR+fx+TJ43o/UI4IYRPDqcAW51wX0Ipf7STqbuCdmQ5MREQkU6L9C9MlXwO1YUMdU6aMZcKEnIR9fr3k2KbknsljbyOTq6oamT07OzWGIrHCJobVQHHw7yp883HUgoxGJCIikmHRxDCbA1CeeaaaU04pT7ovmvg553pMVXNof/qRyb4pOTs1hiKxwvYxfBKfDP4Z+A3wLTObA3QCVwL3ZSM4ERGRTIhE2hk/PjerNYbPPFPN+953FLA5YV9eXg5jxoymsbGDurrWJIlh+hrDykrVGMrhEbbG8FrgoeDf1wM34puPP4hPCq/JfGgiIkPXs8/uYdWqHYMdxpD0l79s5dVX9w12GD00NLQzffr4fiWGr79ex333bUl7THt7F88/X8ub35x6AuroAJT6+vYkTcmpaww7OrrZvbuZmTO1hrFkX9gJrjc7554I/t3hnPuCc26Gc67EOfch59zQ+h9ARCTL/vCHjTzyyLbBDmPIqapq5Gtfe5qnn64e7FAOcs4RibQzY8Z4IpG+T1nz3HN7+dWvNqQ95qWX9jFnTiFFRamnfPH9DFuDya2T1RgmTwx37myivHwceXmJfRdFMq3XxNDM8sxsv5m953AEJCIy1DnnWL26mr17WwY7lCHFOcd3vrOGSZPGhlrJ43Bpa+vCDCZPHtuvGsOGhnbeeKMubf/EdP0Lo6I1hn5Ucs91IoqKeq6lHKuyMqJmZDlsek0MnXPt+L6Erb0dKyJyJNi8uYFIpJ3q6gODHcqQ8tBDVezd28I//dMxodb+PVwikXYmTMgL+hj2vcawoaEd5+D552tSHhMmMYwui+cHn+T12JeuxtAnhhp4IodH2D6G9wCXZTMQEZHh4pln9nDmmdPZu1eJYVRjYzvf//46li8/hZKSMUOqxrChwSeGEyaknyswlUiknbKycaxbtzfp/paWTl5+eT8nnZR+HePo6id+guvEGsNUyXRVVWPWJrcWiRc2MXwQuMDM/mhm/2BmZ5vZsthHNoMUEemvL33pKaqqGjNa5jPPVHPOObPo7OymuTn7y6yl84UvPDEkauf++7/Xc+aZ0znxxMmhlng7nKI1hoWF/RuVHIm0c9ZZM3juueSJ4fPP11BRMbHX5eqKi8cEg09SzWOYqsawUVPVyGETNjG8C5gOXIJfE/mv+BVPYn+KiAwpXV3dPPxwFX/848aMlrlmzR5OPbWMKVPGsWfP4NUadnZ288gj29i5s2nQYgB49dV9PPJIFZ///ImAT3IikcFPVqOiieGECXn9mscwEmnjjDOmsWHDftraEldOCdOMDL7GcPfuZgDGju05W1z6GsPsLYcnEi9sYnhWiseymJ8iIkPKrl3N5OSM4t57t9DR0Z2RMl9/vY7S0rFMnjyOsrKxg5oY7tlzgK4uR03N4HYB//GPX+Cf//n4g3Pz9TZZ8+F2qMYwr999DMvLC5g/v4iXXkqchGP16mpOOaWs13ImTsxn69ZIwhyGkLrGsKWlk7q6NsrLtWSdHB6hJrh2zj2e7UBERDJt69YIJ544mdbWTv72t52cffbMAZe5erWvLQQoKxs3qCOTo7VPtbWDF8PatXvZujXCJZfMP7htaDYl5/e6HnH68/NYsmQK69bt5eSTD81VuHlzA7t2NXPCCen7F4IffLJ1a/KBJMXFyWsMt21rZMaM8eTkhK3HERmYPr3TzKzUzN5lZleaWUmwbYyZ6R0rIkPO1q2+Ce6SSxZw992bMlJmbLNhWdm4QR2ZvHNnNDHMTI2hc67Px//kJ762MHaOvYKCXFpbOzNWSztQkUg7RUV5TJjQvz6GDQ3+/GhiGOvWWzfwgQ8cFWqOweLifFpaOhP6FwIUFubS1NRBd3fP18AvhadmZDl8QiV05l0P7MCvdPJ/wJxg973A17ISnYjIAGzdGmHevAmcd94s1q2roaZmYElce3sXzz1Xw5vf7GsMp0wZN6gjk3fubGL8+NyM1BiuX1/LBz7wUJ+Sw6efrqa2toV3v3tuj+2jRlm/a+ey4dB0NX1vSu7o6Kajo4tx40Zz0klTWL++hq4un/DW1bXy8MPb+MAHjgpVVjQhTJYY5uSMoqAgMXH1S+Fp4IkcPmFr+r4CXA1cB5wCWMy++4F3ZTguEZEB27q1gTlzJlBQkMu5587innvSL2vWm5df3sesWeMP9hErLx/cwSe7djVz3HGTMpIYvvzyPl56aR+vvLI/1PG+tnA9V1+9mNGjE79K+jvQIxsikXYKCw8NPkmW/C5f/kzSPxyiSaWZUVIyhsmTx/L66/UA3HHHRt7xjplMmjQm4bxkoquixE9Vc2h/YhO8H3iixFAOn7CJ4ceA65xz3wWei9u3CZifeIqIyODassXXGAJceul87r57c9oasQcfrOSVV1Kv8Bk/+nTwawybOf740ow0JW/cWM+0aQXcdVe4JvfHH99JS0sn558/O+l+n+QMjZHJkUgbEybkkZ+fgxlJRxY/9th2KisTpzVqaPDnRkWbk9vbu/jd797giisWhY4jN3cUEybkJa0xhOT3THMYyuEWNjGcDqxOsa8dKMhMOCIimRGJtNPS0klZmR/NefzxpYwePSrlJMXNzR18+9vPcs01j7NvX/JE65ln9vRIDMvKxg5qH8Ndu5pYvLg0IzWGmzbV8y//spgHH6yipaUz7bHR2sJrrlnMqFGW9Bi/xNvQqDGM9hEEkjZxd3Z2s39/K/v3J77u5PBteAAAIABJREFU0YErUdHE8MEHq1iwoIijjprYp1iKivKSjkr2+xLvmZbDk8MtbGK4E3hTin2Lga2ZCUdEJDOiA0/MfOJiZlx66Xzuumtz0uPvvXcLJ588hYsumscXv/jkwX5kUa2tnbz00r4eI1JLS8dSX98+KIMsurq6qa4+wHHHDbzG0DnHxo31nH76NBYvLuWvf92W9vitWyM0NLRz9tkzUh7j5zIcGolhtDkYok3cPfsZ1tW14hzU1SXWcEZXTYmKJoa33LKBK66o6HMsEyeOCV1j2NDQRltbF6Wl4ZqqRTIhbGJ4J/BNM3tbzDZnZkcBXwB+n/HIREQGoLIywty5PWtaLrpoHo8/vpPKykiP7d3djt/85jWuuKKCq68+HjP4yU/WH9y/cWM9V131KEuXTu+xusXo0aMoKckflOliampaKC7Op6Qkn87Obg4cSF/Ll86ePQfIy8uhpGQMl166oNfm5BdeqOXEE0sPJt3JDK2m5EPJXWFhHk1NPRPW6DyQyWqKoyOao6ZNKyA3dxTt7V28/e3T+hzL2WfPYNGi5LWM8fM/RpuR091nkUwLmxguB14D/gZElxC4E3gp+P17GY9MRGQAtmxpONi/MGrixDF86lNv4tpr1/Toa/j44zsZPz6XJUsmk5Mzih/84HTuv38rDz9cxQ03rOeqq/7KJZfM5/rrT0+4TlnZ4AxA2bmzmenTCzAzSkvHsG9f/5PTjRsbWLiwGIClS6ezZUsk7TKC69fXsHhx+nn7htLgk8bG2MQwN6HGMJrY19UlJoYNDW09EkMz49xzZ/HJTx6Xshk9nY9//E3Mm1eUdF98Mu2nqtHAEzm8QiWGzrkWYClwFfB3/DJ4zwKfAM5xzg2NT7+ISMA3JSd+AX/oQ0fT0NDGn/9ceXDbrbdu4MorKw7WzJSUjOFHP3o7/+//PcVrr9Vx993v5H3vW5g0ERi8xLCJ6dPHA75JeyDNyRs31h9MDPPycnjXu+amnfdx/fpaFi8uTVvmUFn9pL29i46ObsaN8+s5JOtjWFvbypgxOSlrDGObkgG+/OWTE6boyYTYexaJtPPAA5Upk0iRbAm18gmAc64L+E3wEBEZ0qJzGMYbPXoUy5efwtVXr+KMM6axfXs7lZVNnHdez9G1ixdPZsWK9zJp0pi0TXl+ZHL62rrq6mZuvvlluroO1VJecsn8UKtlpLJrVzNTp/pxfz4x7H+N4aZN9Zx00qFYLr10Ph/72GNcc03iVDTNzR1s396Ysjk0qqgojw0bwk19k03RqWqir6GvMYxPDFtYsKAoaR/DSKT9sC1HF71njz66ne98Zw1nnTWDK6/sez9GkYEInRgCmNkC4C34Uco7gGedc5lZTkBEJEM6O7vZvj31xMDHH1/KOefM4kc/eoGqqiY+9KGjyM1NbEApLR3b67X8yOTmtMf8/OevEIm0c+qpfkTzyy/v47bbXhtwYnjssSVBnGMGlBhu3FjP+99/aJLmBQuKmTq1gCef3MXSpT0HmLz4Yi2LFpX0utLHUGlKjq/xmzAhWY1hC0cdNZH162uTnn/00X0bedxfRUX5PPzwNtavr+X6608/OJG6yOEUduWTMWb2f8AG4Dbg+8DtwAYz+4WZJR9ilUFmNtPM/mhmDWYWMbO7zWxWyHPHmNn1ZrbbzFrM7GkzOyPbMYvI4Ni5s5nJk8cyZkzqv30/+9kTWLlyBy++2MLlly/s97V6Wy+5vr6Nv/ylki9/eQmXX76Qyy9fyKc/fRx//3t1wsjnvshUU3JXVzdbtjSwYEHPJsuLL57HffclTjgRphkZhk5Tcnxi6JuS4/sYtnLUUcUp+hgmNiVny/HHl3LNNYv505/eqaRQBk3YwSc/AD4MfAtYABQGP5cD/whcn43gosxsHLACWARcGVxzIbDSzMLMofhL4OPAN/GrtOwGHjazE7ITsYgMpq1bG5g7N33frAkT8rjuulM4//wJKeeVC6O3PoZ33rmRpUunM3nyoebI8vICJk8ey8sv97+pddeuZqZNizYl///2zjs8jupq3O9Vl6xqq7nbsmRcscE2NmDcqHECGMiPJMCXBEihpJEGJAQCMQl8ISRAygeEGkILJqEEMKYYbIpNc2+yZEs2km313nV/f9xZabtmV7uq532eeVY7c2fm7tHszNlTg7cYHj7cwMiRcS7Z1gBnnTWBjRtLaGhwVaK2bi23ZelMTvbs4tEfONcwBN8Ww9zcVGprWz2Udffkk3AyalQcV1wxw+8PGkEIN3YVw68Ct2qtf6u1LtRaN1ivt2Pa5F0SvikCRqnLAVZprf+jtX4BOA+YCHzX345KqTnW/K7TWj+otX4TuBgoxsxdEIQhRmGhZ6kabyxdOo4zz+xd1qc/xbCtrZMnn9zntd7d4sWj2bixJKhzdnZqSkudFcPgYwydE0+cSUuL44QTMli//nDXOq21bYthaurAKFfjbjFMTPTsR1xe3kR2dgIjRkR7KLPekk8EYShjVzGMBTb72LYJCPe35jzgQ+d4Rq31AeA94Hwb+7YBzzjt246pvXh2X7jBBUHoW7zVMAwXjuQTb6321q4tYuLEJGbMGOmxbfHiMUErhuXlTSQlxXRZlnrjSt6/v5rcXE/FEGDlykm88kpR1/uysnbi4iK7usn4IznZuJL9tSDsLW+9dYgXXvDf/9qUqum+zScleRa4Li9vJj09nlGj4jy6n4hiKAw37CqGbwBn+dh2FsbNG05mAju8rN8JzLCx7wGttftP+p0YhTa399MThOHB+++Xkp9f3d/T6BFvNQzDRUJCFLGxkR6WJq01jz++22cv3XnzMtm/v4bq6sCtap9/3m0tBONKLisLrcUQYMWKcXz00dEuy9+BA622rIUAsbGRREUpmpo8+xKHiuee28/vfvex3ySXnpJPmpraaW3tICkpmrQ074phSorYD4Thg13F8G7gYqXUX5RSy5RS063Xv2LcsncppXIcSxjmORKo8rK+EugpXczfvo7tgiDY4L77tvLSSwO/A2ZfWgwBMjM9eyZ/+mkZtbVtHlm9DmJiIlmwIJMPPigN+HwlJd2JJ2AshhUVzUFZ5/wphklJMSxalM2bbxp3cmFha0CZ1CYBJTDF98CBGo+4Rm+0t3fy8cfHOPHEDB57bLfPcTU1rSQldcdPJiW5upIrKoy1UCnFyJGxVFZ2z7elpYOODk1cnP8MbEEYStiNcH3Her0auMppvXLb7iAc3yJvdzw7ZedVoPsqpb6DKd5NVlYW69evtzO/oKmvrw/7OYYKIiv7hFpW9fUdbNtWTmtrHSeeWBOy44aa+voOGhtb2bFjk61WYqGQU0xMM2+88SFHjnSXt7n//nIWLYrj3Xfdb4/dZGU18K9/fUp8/MGAzrdhQy0dHZ0u846K0rzyytuMGGH39z60t2uKimo4dGgLR454l9XEiY3885+fMnLkIQoKmlm0qJj164/aOn5kZCtvvvke48bZc8V2dmpuueUIS5Yk9hj7eeBAC8nJsGJFB3feuZPJk8tJTPR89OzbV0l7eyzr15cBUF3dQXl59/+8sLCFmJg21q9fT3NzFZs21REXZ3781NR0EB8P77zj+3/oDblP2UdkZZ++kpVdxfDysM6iZ6rwbtlLw7s10JlKwFtZmzSn7S5orR8AHgCYP3++XrZsme2JBsP69esJ9zmGCiIr+4RaVq++epBp05o5erSRpUuXDtj+rZ99VkZeXivLly+3NT4UcnrjjQ/Iykpn2TJT9ubQoTqKil7j738/2yPb15mcnDouu2xtwPJ8++0PmTMnjWXLjutaN3r0i0ydeqJP65838vOrGT++jjPP9C2rhQvbefbZNeTmzqe8/AUuvfSMHmsYOnj44deZOvV4Tjop29b4deuKaW4+RklJfI//k337dnD66aP48pfns3PnJvbujeYnPznRY9yaNe+wYMFkli0zj4GmpnZuvfVfXcdvby8mJ6eQZcuWsX37VpSCZcvmACb+Mj393YCvD7lP2UdkZZ++kpXdlniPBbKEYZ47MbGC7swAdtnYd7JV8sZ931ZACnQLgg02bCjhwgtNSG6oWsAdO9bIU0/t5fLL3+D73/dtlfnZzzaybZtn8WFvHDjQt25kMJnJzq7kJ57Yy4UXTvGrFAJMmJBEQkI0e/cGFrdpMpITXdYFk5mcn+878cRBfHwUS5aM5e67P2Ps2GjbSiEEXsvwscd2c+ON89m+vbxHd/KmTUdYuNDU+rvqqtk899x+r3GWtbUtLjGGcXGRdHRoWltN7KMj8QRMK0Tn7icSXygMR+z7HPqXF4FFzvGLSqlJwKnWtp72jQb+n9O+UcBXgNe11v1fT0EQBjhaazZuLOG008YwY8ZIdu/uyVDvn5aWDr797Tc577yX2bKlnLPOGs/OnRU+x+/YUeFSNsUf+/dXM2lS3yqGmZnxHDtmFMO6ulZeeKGQSy89roe9DMFkJ3/+eQNjx7qWcDW1DAPLTN63z3d8oTMrV07itdeKmDw5sOzcQLqfbN9ezpEjjZx33mRmz05n82bf7urW1g62bi1n/nyjGGZlJbBqVQ4PPOCZo+iefKKUsuIMjeJZVtZEenocACNHxrr0S5aMZGE4YlsxVEqdo5R6SCn1ulLqXbclsACMwHkQOAi8oJQ6Xyl1HvACcAi432mOE5VS7Uqpmx3rtNZbMKVq/qSU+pZS6nRMqZrJmILdgiD0wN691SQkRDNhQhLTpo1k167e9cB98MEdxMVF8e67F3Hnnady4YW5lJf7Tp4oK2ti06ae49q01rz11mEWLx7Tq/kFSnZ2AkePGmvVmjX7Wbx4dFcf45447bTA6hlqra3i1qGxGNpRDE89dTTJyTEBK4YpKTG2s64ff3wPl112HFFRET3WeNy6tZwpU1JclLZvfWsWL798wKM9YW1tm0eBatP9xCis5eVNbhbDbsWwL7ueCMJAwW5LvJ8Dr2C6howAOtyW4Ps62UBr3QCsAPYB/8C04zsArNBa1ztPFZP44v65LgceAVYD/wXGA+dorT8N57wFYaiwcWNJl7JlLIbBK4YHDtTw5JP7+OUv53e5JWNjI0lIiPLqdmxoaKO9vZM9e6p6dC/u2lWJ1rqrh3BfYWoZNtLe3skTT+z1WtDaFwsWZLNjR4WtTFwwWbQJCVEkJLiGiAejGO7fX01env8OMWAyqP/4x9OYNSsuoOPbtRiWljawYUMJF11kQhVOO20MGzaU+PyhYNzIrnGLo0bFcdppY3jvPdcs79raVpKSXJW75OTornm5u5IrKlxdyaIYCsMNuxbD72Esc2O01qdqrZe7L2GcIwBa62Kt9UVa62StdZLWepXW+qDbmINaa6W1/rXb+iat9Y+11tla6zit9UKt9fpwz1kQBgJaa9tKhy+MG3k0ANOnB+9K1lpz220fcdVVs8jOdneFxnuNESsvbyYzM4FZs0byySfH/B7/lVcOsnLlpD5PjHHEGL7xxiGyshI4/nh7tf7A1EHMy0u1LVNvbmQI3JXc0dFJaWkD48bZ6/xy8smjiY0NLPooNdVejOGTT+7l/PNzuhS4vLxUWls7KCqq8zp+06ajXfGFzsydm8GWLWVd79vbO2lubicx0TXW091imJFhFN60tFg3i2GLKIbCsMPutzwZ+JfWOnyVSgVBCAsff3yM73wn+Br0DQ1t7NhRwYIFxkIzfnwidXWtQRVmfumlA9TWtnDJJZ7xdxkZ3hXDsrImMjLiWbgwm02bjvg8dmen5tVXi1i5clLA8+otaWmxNDe38+CDO3wWtPbH6NEjumIUe6KkpN7DjQyBWwxralpJTIwhOjp8oeamX7L/66ShoY01awq47LLua0Ip5TP2srGxnV27KjnhhEyPbXPnprN1a3eSUl1dKyNGRBMR4fpDwbn7ibPFMDU11qVfcm1ta6/6aAvCYMTuHWEtsCicExGE4cbGjSUsWvQsCxc+07W8/ba9BItAKCioYc+eKjo7g2tN9uGHR5gzJ73LdRkRoZg2LS3gOMPq6hbuuutTbrllIVFRnrceX907XBVD33GGW7aUkZgYHVC5llChlCIzM4GamlZOP318wPtnZSVQWtrgddv775dy7rkvcffdn7FtW7lH1xMHgbbFq6xsZuTI8Co9KSk9u5Kff76ABQsyGT/e1XLpSzH87LNjzJgx0sOVDjB1aholJQ1d1sCamlaP+EIwCmt9vWnXV17exKhRxmIYFRVBUlIM1dXd+4vFUBhuBOJKXqmUulEpNc+5y0kYu50IwpBmz54qzj13MuvWXcC6dRdw4YVT2Lu3d9m+3igqqqOpqZ3PP6/vebAXnOMLHQQTZ3j//ds588wJPt2sGRneLV4mOSCO2bNHUVRU59NS+cor/WMtdJCdndCVPBHMvr5KAO3eXcmUKSkoBTfc8B733LOFceO8WQzjArIYGsUwsJjBQOmpXE1jo7GyXnXVbI9tJ5+czSeflNHS4uqo8uVGBqPYzZgxku3bTYa7rxjBxEQTY1hb20pcXGRXz2kwcYaOtngSYygMR+zewTRQB9wObAbyvSyC0Kf8978HPB4ag4kjRxqYMCGJ5OQYkpNjGDcuiWPHgut364/i4jqioiKC6nHsKFPjrhiaOMPAFMNduyo580xvteYN/lzJ6enxxMREcsIJ6Xz8safVsL29k7VrizjnnIkBzSmU/O53p3DppYG7kcG/YlhS0sC8eZlcd90J/Pe/5/HCC19i1aopHuPS0mKpq2ulrc1eLmBlZUvYFcOekk+eemov8+ZlMn26Z7JQSkosU6emesSVbtp0hEWLfBfMdo4z9KXYmX7JbS5uZAemLZ4ohsLwxa5i+ChwCvBHTEu8K7wsgtBnrFmzn5/97L1el03pT0pLG1xKmmRl+VYOekNxcR2LFmWRnx94G7uDB2vp6NDk5rpmrs6Y4VmypqOjk4MHa30ey+ES9oUvxdAkB5j9Fi7M5sMPPRXDjz46SnZ2Qp/XL3Rm7NjEoOP1srMTPHotOzDFrM11opQiJyfFqxs1MjKC1NRupaYnKiubSUsLvyvZV4xhfX0rjzyyi+99b47P/RcvHs2GDd3u5M8/r6egoMZvcs/xx6ezZYuJM6yr867YOZJPHNZoZ4zF0MzZlytaEIYydlviLQO+p7V+NHxTEQR77NpVwd13f8bs2aM4fLieE07I6O8pBUVpaSOjR3c35MnKig+5YtjZqTl8uJ5LLpnKp5+W9byDGx9/fIyFC7M9snwnT07m6NFGGhraurp7PP10Pg88sIN33rnI67HKypr9Koa+spKdFcqFC7O58cb3Pca8+moRX/jCJLsfa8Dh3jnFGfcfEP5wJKBkZbk3evKkL1zJSUkxNDS009HRSWSkq9L8+ON7OPXUMUyZ4rtczuLFY/j5z98jKyuedesOUVBQwze/Od1v95U5c9K56aYP6OzUPmMEk5KMK9m5hqEDV1dyiyiGwrDD7s/bcsBe13RBCCMNDZ386EcbuOmmBSxalB103NxA4MiRRpeSLeGwGB492khKSgzHH58elCt5165KZszwdPNFRUWQm5vKnj0mJvLYsUb++tdtVFU1097u6cpsbGynra2DpCTfLeJ8xRg6XMkA06enUVbW5KJAtrZ2sG5dcb+6kXtLRkY8VVUtXt3Apph1YIqhHaqqwu9KjohQJCZ2dxlxUF3dwhNP7OWaa473u//MmaPIyIinsLCW7353Fu++e5FfCyMYWSYlRXPwYG0PruRWr67ktDRjddXaoVhKVrIwvLCrGN4LXKOUGiwt9IQhSGen5rHHKlm+fBxf+MIkxo1L5PDhwakYNjW109TU7pIVOmpUHDU1rV09XENBcXEdEyYkkZOTQlFRne34Mwe7d1d5VQzBNc7wjjs+4f/9vzzS0uJcWoo5cLiD/dUXNK5k3/uCcZfOn5/J5s2mbE1jYzv/+7+fkJeXalt5GohERkaQnh7nUbKmrq6V9nZt22oVSC3DiorwWwzBe/eTRx7ZxRlnjGfiRP81FCMiFI8/fha33baIJUvG2u7TPHduBlu3lvtUDJOSYqivb/PqSh41ylgMm5s7iIhQxMba7w0tCEMBu4peGjAL2KWUuk8pdZvbcmsY5ygIgHmYNDZ28pOfnACYmK7BqhgeOdJAVlaCi6LkUA68uVODxaEYxsdHkZ2dQFGR7xhAd9rbO8nPr2LatDSv2x1xhhs2lLBzZwVXXTWLzEzv7vCe4gvBuPfa2ztpbGzvWtfW1kltbauLAu0oW/PBB6WsWvUytbWt/OlPS2x/roGKN4uxI77QbsFud3f82rVFrFtX7HVsVVX4y9WAZ8mampoWnnkmn+9+d1bYzjlnTjpbtpT5UQwdrmRvFsM4qqpaJPFEGLbYjTH8pdPfU71s10jfYSGMFBfX8dBDu/jJT0Z2WQ0Gs8XQPb7QgWmt1sTYsZ7lSILBoRiC6SaRn19Dbq69On8HDtSSlZXQFUPozvTpaTz++G4++eQYN910EnFxUWRmxnvNrLajGCqluhRjhyWpoqKJtLQ4l/i0RYuy+cMfPmXjxhJuuWUhS5eOtfV5Bjq+FEO78YVgrK6ObiFr1uzn1ls3ceaZE7xmg1dUhN+VDJ4la957r5R58zJCdo17Y86cdJ57bj+TJiV7dQWb5JM2rzGGo0YZV3JtrSSeCMMTWxZDrXVED4vY2oWwobVm9erNXHnlDEaN6v4tM3r0CMrKmgJ2jw4EfD3wQ52A4q4Y7t9vP85w9+5Kr2VEHEydmkZRUR0zZ47itNNMORtHz2B3vD2AveEeZ2jiC12Vl9zcFG65ZSEvvXTukFEKAUaPTqC01FV2JSUNXn9A+MIRY/j00/v4y1+28atfneTzejIWw/Arhu7dT7yVPwo1xx2XxqFD9ZSWNvgscN2dfOIqg7Q040qWdnjCcEViBoUBz2uvFXP0aBNf//p0l/XR0RGkp8dz5Ij3jhEDGZN44vnAD3UCirNimJubGlACiq/EEwexsZFce+3x3HDDvK51vbEYgmfJGm/7KaW44IIpPi2ZgxXvFsNGr+3vfJGREcd775Xy0EM7efzxszjppGyv/4+Ojk7q6lpJTQ2/4pOSEtvlSu7s1GzYEH7FMCYmkunT09i5s9KrcpeQEEVrawelpY0+spJbpFSNMGyxrRgqw3lKqbuUUo8opSZa65cqpcL7LReGLXV1rdx558fccstJXmvEjRs3YlC6k0tLG1wykh2EUjHUWlNcXM+ECUaxyMtLCUgx7MliCHDVVbPJzOxWcH1ZDINVDMvL/Ze4GUpkZY3w+N+XlNQHZDGcODGJ6dPTeOyxsxg3LpGsrHiOHWtEa9d2iNXVrSQlxXiUkAkHzrUM9+6tIjEx2qP9XTiYMyedzk5NUpKncqeUyZaur2/ziLNMTY3p6gUuGcnCcMTWXUEplQa8D/wH+BbwdWCUtfnbwA1hmZ0w7Lnnnq0sWTKWE0/M9Lp97NjEQVmy5siRRq+uZF+KVTDU1naSkBBFYqJ5ME6cmMyRI400N7f3sKex7OzeXcX06d4TT3zhiJF0x64r2T15wq5CORQYPdqzlmHgFsMEHn/8rK4M7bi4KOLioqiqcs0KNsWtw+9GBtfuJ33hRnYwZ46pb+rL6pecHENaWqyHchwZGUFycgxFRXXiShaGJXZ/Lv4eGA+cCqQDzilybwCnh3hegsC+fVWsXVvEj398gs8xJgFlMLqSG7y6kv11wAiUsrL2LjcyGNf7xIlJFBb23AHl8OF6EhOjA1YejCvZm8WwmYyMno/lPcZweCiGpsi167UcaIyhN7y12zPFrfvGGuacfNKXiuHcuelddRS9kZQU4/PaGjkyjgMHasWVLAxL7CqG5wO/1Fp/gMlAdqYYozQKQkj56KNjnH76eFJTfT/Axo0bfBZDrbWVfOI7KzkUuCuG0J2Z3BM9xRf6IivLt8XQjuXPvUDzcLIYZmTEU1nZXeS6ra2TiopmW11M/OHNCt0XfZIdOJJP6utb2bmzkgULsvrkvJmZCfz7318kKsr7Yy4pKdrnj5WRI2M5eLBWLIbCsMSuYpgIfO5jWxyuFkRBCAkFBTV+22VBaGoZaq37VLmsqWklKiqiy8XrjK+YsGA4dqy9K77Qgd0EFDvxhd5ISYmhudkU73bQ3t5JTY09RcQzxnD4KIZRURGMGhXXpRgfPdpIenqcT8XGLllZ8R5W6L7KSAYTs1dT08qHHx5l7twMr32ew0Venu/STD1ZDIuLxZUsDE/s3nH2Amf52LYU2B6a6QhCNwUF1T0qhqGoZfjZZ2V873vre3WMQHBvhedMXFwU8fGeMWHB4N1i6JmA0tnpqYTu3h2cxVAp5WH1rKhoJjXVM5bLG8aV3N25YzhZDMG1Z7KjuHUojuluxTVdT/rWlbxxY0lXWaOBQE+KYVtbp7iShWGJXcXwL8CPlFK/BByVUlOVUpcD37O2C0JIKSys7VExzMiIp76+zcVCFSgHD9Z5beMWLkxGsm/3YKgyk327krsVw/z8alaseJ7XXivqWqe1ZteuyoATTxxkZsZTVtY9/0CsfiNHxlJT00J7eydaa6+dKYYyzjGmJr4wNIqh+/XUF32SHThcyX0ZX2iHvLwUjjvOu0UxLc0ozSkpkpUsDD/sFrh+ELgbuBXYb61eBzwA/Elr/c/wTE8YrlRVNdPS0kFmpn+lICJCMXp0Qq9cwcXFdVRXt4TEfWuHI0f8P/BDkZmstfaqGI4dm0hNTSt1da3s2VPFlVe+wbnnTuaOOz7uyhx1WJeCjW3LyHAt0h1IAklkZASpqbFUVDRTXd1CQkLUsOpVa5Q4k4ASKothZqb35JO+ykpOSYmhvLwZrSEnJ7lPzmmHb35zBl/84mSv20aNMrIRV7IwHLEd7KG1vkEp9TfgTCATqADWaa0LwzU5YfhSUGCshXZ6xDoSUOy2enOnuLiO9nZNfX2b15pnoaa01Htxawem+0nvElCqqlqIjFS34jE0AAAgAElEQVQeFo+ICEVubgr/+U8hDzywg5tuWsDZZ0+ktraVe+/dwk03ndQVX2i3P6/n/F1dl4G6gx1xhrGxkcPKWgieFsNg3PnejulNMRw1qm+sYXFxUcTERLB48eigr6m+xqE0i2IoDEfs1jFcopRK1FoXaa3/rrX+rdb6fq11oVIqUSk1+DvYCwOKwsIacnL8u5EdmASU4EvWFBeb3rKhiOuzQ0/9b0PhSi4uriMjw7ulLTc3lbvu+pRbb13I2WdPBOC6607g9deL2bat3HIjB6+QZGTE91oxLC9vGnbxheCqGIYzxrCysqXPLIZgXLIDKb6wJ8RiKAxn7MYYvg3M8LHtOGu7IIQMOxnJDnqTgGK6g9QxfnxinymGprh1eGMMjWLo3SFwySVTeeih01mxorvKVGpqLD/96Yn8+teb2LGjoleKoVFEnGMMA+te4ihybRTDvlNeBgLO//uefkDYJSUlhpaWDhobu+NwjcWw72T74x+fwKmnDh7FMC0tlvj4SGJihk8YgyA4sKsY+rP/xwIdIZiLIHQRiGLYm+4nVVUtREQoJk1Kprq6bxJQfLXDcxCKGMOiIt+K4cyZo5g/37OW3LnnTiYlJZb16z/vlQvTvV9yoEWqHa7k4VTc2kF29giOHGnsqnUZCouhyRTvLjze3t5JfX3f9gE+//wc4uP7rkxNbxk7NpEvfzmvv6chCP2Cz2+qUmoSkOO0ar5Syr03UzxwBabItSCEjMLCGnJzw28xLC6uY+LEJNLSYqmubg3qGIHQ0dHJsWNNfmMMQ9H9xJ/F0BdKKW655SRuvPF9xo+334bNHXfFNhhXcn5+NTExkX7lNBTJyIinoqKZ8vJmoqMjGTHCe9eOQHFYIs0PoJY+65M8WImPj+LGG+f39zQEoV/w9+T4BnALptOJBu7D1XKorfftwLXhmqAwtHj55QN88skxrrvuBJ/xO/X1rdTUtNh2o/Wm+0lxcR0TJhjFsKoq/BbDiopmUlJi/LqofHUPCYTi4jqmTQvcQjNpUjJPPXVOr87tiDHUWqOUCrhIdUZGPB98cISYmAhmzx7V8w5DiOjoCNLSYtm2rTwk1kIHzi7qvixVIwjC4MPfk+NRYD1G+XsLo/ztchvTAuzTWleGY3LC0OPllw/Q0NDOeee9xE03LeCMMyZ4jCkoqGXy5BQiIuxlMKakxNDZCTU1LQHXHSsqMophTExkn8QY+mqF54xzTFgwXSJaWzsoKqojM7N/lKoRI6KJjo6gtraV5OQYysubSE+3r4g4YgxjYiKGXfIJGIvxZ5+VhSS+0IGzYtiXxa0FQRh8+HzqaK2LgCIApdRy4BOt9eBqSisMKDo6OtmypZyXXz6XgwfruPnmD3j55YPcfvvJLi6zwkL78YVgXKDjxo3g88/rA1YMi4vrWLx4DM3N7ZSUhP/yNqVq/D/wnWPCJk0KvO7b7373MYsWZZOU1BnsNHuNo/uJ1hAbG0lcnH0F1xFjGBMTMexiDKFbMQxFqRoHWVkJFBU5su/7rh2eIAiDD7sFrt8RpVDoLfn5NYwcGUt6ejzz52fy739/iebmdtas2e8yrqDAfqkaB8GWrOl2Jcf1icWwp+LWDoLNTH7hhUI2bTrC6tWLgpleyHAotsGUnBnO5WrA/O937KgIqcXQOfmkslJcyYIg+Eaij4U+45NPjjFvXmbX+9jYSK64YgZr1hS4dB0JJCPZQbAJKK4xhn3hSvZf3NpBMIrh3r1V/O//fsI99ywlMbF/669lZpoi3YHGF4K5LuLjo+jo0CQlhSb5YjCRnT2CtrbOsMUYmq4n4koWBME7ohgKANxxx8e8+GJ4m9h8+ukxTjwx02XdggVZNDe3s317Rde6ggL7GckOgilZU13dQnu7ZuTIWFJTY6mu7huLYU+uZHAoVvYVw7q6Vn74w3e54Yb55OUF1wEmlDgyk4MtOZOeHk9GRvyg6ZQRShw/HMIVY9jXNQwFQRhciGIoAPDBB0fYtq08bMfXWntYDMHE0114YW6XO7mpqZ2ysibGjQusXEowFsNDh+qYMCERpZRVrqYvFMNGxozp2WKYnT0ioLZ4t9yyiVNPHc2553rv/drXOGoZBqsYZmTEBZSwMpRw9KgOpcUwPT2eysoW2ts7+7RPsiAIgw9RDAUaG9spKKghP786bOc4fLgerfFaH2/VqhzWri2msbGdAwdqmTAhiaiowC7NceMSu1rb2cXhRgbTsqumpoXOTt3DXq6Uljbw2mtFtseXlNi3GNotcv3OO4fZtauSn/98nu15hBtH95NgXMnQbTEcjmRnJxAdHRFSq150dASpqSZDvLKyRSyGgiD4RBRDgd27K8nOTiA/v8Yl1i+UOKyF3lyDWVkJnHBCBq+/XhRUfCHA5Mkme/fDD4/Y3sdZMYyOjiA+Poq6usCKXN9992fcfvtHthTK1tYOampabVnC7MYYNjW1s3r1R9x880nExg6c9l2ZmSazONB2eA4yMoavYjhmzAgeeuh02+Wa7JKdncDRo01UVUmMoSAIvvHX+eStAI6jtdanh2A+Qj+wY0cFS5aM5bXXioJ+kDvT0NDm0bHBmxvZmYsumsJjj+1h/vzMoBTDqKgIrr32eO69dwsLF55tKzatuLie+fO755SaahJQ7Ja8yc+v5sMPjxAfH8WePVU9lhcpLq5jzJgRtjpO2FUM//a37cydm8Epp4y2Nee+IiPDzD8+Piqo6+nssyfS3t5/5Xb6E6WU15aFvcUR92nqGIrFUBAE7/h7QkVgils7lmnAMmASphXeJOv9cfjvpSwMcHbsqGDWrFHk5aX02p3c0dHJ0qVr2LTJ1XLXk2K4dOk4Dh6sZf36wwGXqnHwhS9MpL6+jXffLbE13tEOz0FaWhw1NfbjDP/8561cccUMli8fx4YNPZ9z794qpk1Ls3Vs55gwX+TnV7Nmzf4B5UJ2kJERT2VlM0eONAYVKzhnTrrf60UInKysBD7/vJ6GhrY+7ZMsCMLgwqdiqLVeprVerrVeDtwDtAGLtNY5WuuTtdY5wMnW+nv6ZrpCONi+vYLZs0eRl5fK/v29UwxLShpobe3ktts209raAdAV15SX51vhi46O4LzzJrN3b3XAGckOIiMj+P7353DvvVtsucSdXclAQCVrdu6sYOvWcr72taksXjyGjRvtKIbVTJ1qL2PYEWPmy2rY2am59dZNfP/7cwakyzU6OoKUlFgOHaobkPMbjmRlJbBvXzXJydInWRAE39i9O/wG+JXWerPzSq31JuDXwOoQz0voI2pqWigvbyInJ5nc3NReWwwPHqxjwYJMJk9O5qGHdgLw6adlzJ2b3uPD6KKLcomOjnCx4gXKGWeMB+CNNw75HVdf30pjY5uL0uJwJdvhvvu28t3vziIuLooFCzLZvbuyx/jEvXurOO44exZDgGnT0ti1y3u3ybVri2hr6+Tii/NsH6+vycyMJzo6wmdPbKFvycpKYPfuSnEjC4LgF7uKYR5Q5mPbMSA3NNMR+pqdOyuZPn0kkZER5OWlkp9f06vjHTxYy6RJyfziFwv4xz/2UlRU16Mb2UFOTgrr1q0iJib4JAqlFD/4wVzuu28rHR2+3bDFxfWMH5/kEotoVzH87LMy9u+v4aKLzGUfFxfFiSdm9Jj4EogrGWDWrFEu9R2d2bChhAsumBLyBIVQkpmZMGxrEQ5EMjPjKSioEcVQEAS/2FUMDwDf9bHtu8DBkMxG6HMc8YUAubkp7N9fHXDJFmeKiuqYNCmZMWNG8O1vz+Q3v9lsWzEEo0z0liVLxpCYGM0rr/guI+PuRgZs1zK8996tXH31bBcFtid3clVVM42N7QHVpps1ayQ7dnhXDLdtK2fu3Azbx+oPMjPjh2Wv44FKdnYC7e1aMpIFQfCLXcXwVuBcpdQOpdSvlVJXW687gC9i3MnCIGTHDhNfCKaWX1JSDKWlgfccdlBUVNulcF122TQqKpooKKjpUj77AqUU1157PA8+uMNnrKEvxbCqqtnvsQ8erKWgoJrzz89xWb948Rg2bCjxeT5HfGEg1rNZs9LZtavS45jV1S0cPdrkN2ZzIOCwGAoDA8ePLqlhKAiCP2wphlrrp4GzgRrgRuAv1ms1cLbW+pmwzVAIKzt2VDBzZrfS1tvMZIcrGUwCwm23LeKrX83rlXs4GE45ZTRKKT74wLt717fF0H+c4FtvHWb58nEeBbgnT04mIkJRUODdFb9vX2DxhWAe4CNGRFNU5Fq4e9u2cmbNGjngEwjmzk1n4cLs/p6GYDFiRDSJidHS9UQQBL/YfrJord/QWp+KKVWTDcRrrRdrrd8M2+yGOa2tHXz722+ydauv8M7eUVbWRGNjOxMmdHcj6U0CSktLB2VlTYwd2+0unT07neuvn9/ruQaKUoqvf30ajz222+t2b4qhiTH0bzF8661DrFgx3uv5/LmT9+wJXDEEmD17lIc7eevWcubMGdhuZIBTTx3DpZce19/TEJzIykoQi6EgCH4J2OSgte7UWh/TWg/P6rN9yB13fMKmTUf59NPwKIY7d5r4Qmf3pklACU4xPHSojrFjEwNuZxcuvvSlyezaVelhxXO0APSmGPqLMaysbCY/v5pFi7xbwYxiWOp1W6AZyQ5mzfKlGKYHfCxBGD16xLDtQS0Igj1sP8GVUjlKqRuUUn9VSj3stjwUzkkOR158sZAPPijlhz+c49M92Vu2b6/wiP3rTWbywYN1vSo1E2piYyP5ylfy+Mc/9nSt09rU/1uyZKxHIkhaWpzfrOT16z/n5JNH+2w9t2hRFlu2lNHY2O6yvr29kwMHasnLs1fD0JmZM10TUDo7Ndu3i2IoBMftt5/MkiVj+3sagiAMYGwphkqp84E9mHqFq4DlXhYhROzbV8Wdd37CPfcsYc6cDAoLw6MYOmckO8jJSeHgwdqg2pEVFdUycWJyqKYXEr761am89lpRlyXwmWfy2beviptvPsljbEpKDLW1rT6zst988xArVozzea7ExBhmzhzJRx+5xjUeOFBLVlYCCQk+O1D6ZObMUezeXdX1/ygoqCE1NVZKjghBkZER3+fxvoIgDC7sWgxXA+uB0VrrMVrryW5LTg/7Czapq2vlhz98l+uvn8fUqWnk5qZQUFBjq5NHIGitLcXQtb9vQkIUmZnxFBfX+djTN6ZUzcCxGIJpLXf66eN55pl8tm0r589/3sqf/rSU+HhPJS0qKoIRI6KprfVMQGlqamfz5qM9WlvOOGMCL710wGVdMIknDpKTY8jKiu+yGg+GMjWCIAjC4MWuYpgD3KW1Dk+wmwCYfsJf/eprLF06lvPOM7p2amos0dERlJU1hfRcJSUNREYqsrI86wYGG2d48ODAsxgCfOMb03jyyb1cd90Gbr11kV93t684w/ffL2XWrFGkpvqvAXfBBTls3FhKSUl3yZ+9e6s57rjA3cgOnOMMt2wxXWQEQRAEIRzYVQz3AH1XiM4NpVSEUupGpdRBpVSzUmqrUuoim/s+qpTSXpY/hXvedmlu7mT16s385Ccb+NGP5nLDDa5ZvFOmpIQszvDo0Ub++c+9/PSnG5k/P8trXb3eKIYDzWIIMHVqGtOmpfGlL03i9NM9M4qd8dUv+a23Dvt1IztITIxh1aocnnxyb9e6YDOSHcyend6lGEriiSAIghBO7AY9/Rz4k1Jqk9a6MJwT8sFvgJ8CvwQ+Ab4K/Esp9SWt9Ss29i8DznNb5z19tI8pLq5j9eqjLFsWzwsvfImUFE+L1JQpqRQU1HDyyaODOsfhw/W8/noxb7xRTGFhLUuXjuXKK2eyeLH34+XlpfL668UBnaO+vpWGhraQdC4JB3/96zJbdf+8Fbnu6OjknXcOc801s22d67LLpnHxxa9y9dWzGTEiuleuZDAJKC++WEhdXSslJQ1MnRr8sQRBEATBH3YVw19jLIa7lVL5QKXbdq21XhrKiTlQSmVilMI7tNZ3WavfVkrlAncAdhTDVq31h+GYX28ZM2YEl18+kiuvPNnnmJyc5KAshv/6Vz5PP72Po0cbWbFiPFdffTwLF2b1GHyel5fKX/6yLaBzmbqAyQO2d6/dYtDe+iVv2VJORkYCY8cm+tjLlXHjElmwIJP//KeQlSsn0tQUWCs8d6ZPH0lBQQ2ffHKMGTNGDphyQIIgCMLQw65i2AHs7XFUeDgbiAGecFv/BPCwUmqy1vqA526Dg6ioCKZM8R+3NmVKSsAWvNdeK+KBB3awevXJzJuXGZAyMXFiEiUlDbS0dPgszeLOQCtVEyze+iW/+eYhTj+9ZzeyM1//+nR+8Yv3mTw5malT0wJqhedOfHwUEycm8eyz+ZJ4IgiCIIQVW4qh1npZmOfhj5lAC7Dfbf1O63UG0JNimKmUKgdSgULgIUwyTUcoJxoucnNTAipZU1hYw29+s5kHHljh0u7OLjExkcyePYrXXy/m3HMn29rHuRXeYMZb8sm7737OnXeeGtBxTjwxg9TUWB54YEevEk8czJo1iuefL+DCC3N7fSxBEARB8EXghdX6npFAtfas11LptN0fWzBxiTuBOOAC4HdAHvAtbzsopb4DfAcgKyuL9evXBzVxu9TX1/s9h9aapqZWXnrpTZKS/Fvwmps7+f3vj7FyZRJlZdsJduqnnNLJXXdtIiHhIJGRPVu7Nm+uZNq0WNavD77Psh16klVvOXasgcLCFtavrwWgoqKdsrJ6jh7dRllZYFa/+fM1jzxylNzcll7POSamHq2hsXEf69cX2Non3LIaKoic7COysofIyT4iK/v0may01rYXIA04CVjivgRwjDMAbWNZb41/ECj1cpw8a9z/BPIZrH3/aO2b19PYefPm6XDz9ttv9zjma197VX/00RG/Yzo7O/VPf7pB/+IX7+vOzs5ezamzs1N/4xuv6+eey7c1/uKLX9GffXasV+e0gx1Z9YZ164r1Ndd0n+Ppp/fq66/fGNSxWls79Dnn/Efv3l3Z63nt3VupV658IaB9wi2roYLIyT4iK3uInOwjsrKPXVkBH+sA9SLnxZbFUCkVBzwMXAz4MpvYLaf/PjDdxrhG67USSFNKKesDO0hz2h4oTwE/AuYD+UHs3+dMmZLC/v01zJ+f5XPM888XsH9/DU89dXavYtoAlFL84Adz+PnP3+Pccye7JKy88UYxlZUtXHxxHmB+XBQVDc0Yw40bSzn77AlBHSs6OoKXXjo3JMkiU6em8e9/f7HXxxEEQRAEf9h1Jf8KWAZ8A/gHcC3QDHwTGA380O4JtdaNmLqIdtkJxAJTcI0znGG97grgWA4cWlNo24mEkSlT/McZaq159NHd3HzzScTFhSZC4MQTM5kyJYU1a/bzta8dB5gezn/4w2eAyb495ZTRXVm8PRV/Hgw4l6tpbe1g8+Yj3HrrwqCPF8oMYmllJgiCIIQbu0+ti4DbgKet95u01o9oU6JmK3BOOCZn8RrQClzqtv4yYIcOLiP5EoxS+FEv59Zn5OT4L3K9bVs5bW2dzJ+fGdLz/uAHc7j//h00NbXzr3/l88c/buHhh8/g978/leuvf4+SkgarFV5yr62UAwHncjVbt5YzaVKy9CUWBEEQhg12TUsTgJ1a6w6lVBvgXJTtYeARArAaBoLW+phS6o/AjUqpOuBT4CvACuB857FKqTeBiVrrXOv9RIyF82mMtTEWk3zyTeB+rbW9KP4BQE/dT9asKeCii6aEXDmbOXMUxx+fzjXXrKe4uI5HHz2TiROTmDIlhW9+czrXXfcuF144ZUB2PAmG5OQY6uvb6OjoZMOGEhYvHtPfUxIEQRCEPsOuxbACcFT3PQTMcdqWDsSHclJe+CWwGqN8rgVOBS7WWr/kNi4SV2W3DhODeD3wIvAsMBf4AcYdPmgYPXoEdXVt1NW1emxraGjj9deLWbUqJyzn/v7359Dc3M7jj5/pEkd4xRUzyMxM4I9/3DIk4gvBuH4TE6OprW1l40ZRDAVBEIThhV2L4YfACcCrwBrgN0qpJKAd+AmwMTzTM2hTb3C1tfgbt8ztfSWwKnwz6zsiIhRTpiRTWFjDnDmuRY7Xri1m3rwMMjLC044uLy+Vp57yjBZQSvHb357MxRe/OqTatKWlxbJvXzUlJQ3Mnt1vLcIFQRAEoc+xqxjeiXEng1HOcjExh5EYpfGa0E9NcCcnx2QmuyuGzz+/n8svn+Fjr/CSlBTDCy98iejoodOmLS0tjv/+9yAnn5wt7ecEQRCEYYWtp57W+mOt9fPW33Va64swruVUrfUpWuuicE5SMHiLMywsrKG4uI4lS8b206xMtuxQSDxxkJoaw9q1ReJGFgRBEIYdQZtDtNYtWutapdQZSqltoZyU4B1vJWuef76A88/PGVIWu/4mNTWOuro2UQwFQRCEYUcoCt6lYPoZC2FmypRU9u+vob7eJKB0dGheeKGQxx8/s59nNrRIS4tl6tRUsrLCE7MpCIIgCAOVwdArWbAYN24ESsHy5f/uWnfKKdlMnpzSj7MaeuTmppCcHNPf0xAEQRCEPkcUw0FEZGQE69Zd0N/TGPKsWjWlv6cgCIIgCP2CBKYJgiAIgiAIgB+LoVLKbrXk7BDNRRAEQRAEQehH/LmS92P6CfeEsjlOEARBEARBGMD4Uwwv77NZCIIgCIIgCP2OT8VQa/1YX05EEARBEARB6F8k+UQQBEEQBEEARDEUBEEQBEEQLEQxFARBEARBEABRDAVBEARBEAQLUQwFQRAEQRAEQBRDQRAEQRAEwUJpLbWp/aGUKgOKwnyadKA8zOcYKois7COysofIyT4iK3uInOwjsrKPXVlN1FpnBHsSUQwHAEqpj7XW8/t7HoMBkZV9RFb2EDnZR2RlD5GTfURW9ukrWYkrWRAEQRAEQQBEMRQEQRAEQRAsRDEcGDzQ3xMYRIis7COysofIyT4iK3uInOwjsrJPn8hKYgwFQRAEQRAEQCyGgiAIgiAIgoUohr1AKTVOKXWfUuoDpVSjUkorpSZ5GTdBKfWYUqrYGrdPKbVaKTXCbVyCUupWa3uTUuqQUupxH8dcrJR63xp3RCl1t1IqPlyftTcEIKfJSqnnlFLVSqkGpdTbSimPDCylVIRS6kal1EGlVLNSaqtS6iIf5/62UmqPUqpFKbVXKXVV6D9h6AilrJRSU5VS9yiltiml6pVSpUqpF5VSc3yce9jKyss+X7OOd9jH9kEjq3DISSk1Vin1sHXvaVFKHVBK/c7LuEEjJwjLvWqU9R0stO7VB5RSf1ZKeZQSUUqtUkp9Zt3TipRSNymlIsPzSXuHUurLSqk11jybrP/t75RSSW7j0pRSf1dKlVtyekMpNdvL8eKUUr+37lFNlvyXeBln+94/EAilnJRS85VSD1jfp0Zl9Il/KqUmezlv7+SktZYlyAVYBhwFXgHWAhqY5DZmBLAPOAB8A1gO/BxoAp5xG/sk0Aj8zBr3DeAgUAAkOo073tr/P8DpwLeAKvfjDZTFppxGAZ8De4CvAOcCbwN1wHS3sbcDLcBPLTndD3QCK93Gfdtaf7s1brX1/ur+lklfyAr4HrAN+In1+S8APgCagXkiK9frymmfVOAIUAoc9rJ9UMkqDN+/SdbYjcDFwFLMveo3g1lOoZYVoID3gDLgauvY1wAV1vdQOY09G+jAxJAtB35sfU/v7G+Z+JDTh8CzwKXW//9HQLW1PsLp828ADgNfA84B3sHU4Rvndrx/Wvt/G/NMex7zjJvrNs7WvX+gLKGUE3CXdT1dYx3rEmC3dT2ND6Wc+l1wg3lx/GOtv7/l4yZylrX+LLf1dwDtQIL1Pt56/1u3cedY+5/ttO7fQD4Q7bTu69a4E/tbLkHK6Sbr8+c6rRuBuUk/67Qu07rgb3Xb/01gm9P7KOAY8JjbuIetL1x0bz7TIJFVOk4PH2tdCuZHxOMiq25Zue3zAEYpeBQ3xXAwyirUcgJeAzb7+6yDUU6hlhUw1dr/O277X2WtP85p3WfAO27jbgZagez+losXOWV4Wed4Bq2w3p9vvV/uNCYFqATudVo3xxp3udv1sxd40WmdrXv/QFpCLCdvx5qIUfhuC6WcxJXcC7TWnTaGxVivtW7rqzGufGW9jwIifYzDGotSKhqjLD6rtW5zGvcs5iZyvq3J9yE25bQIyNda73farwHzS+pLSqkoa/XZGJk+4bb/E8BsJ7P6yUCGl3H/wPziXxzQh+gjQikrrXW5tu4ITuNqMBbssU6rh72sHCilTgUuA671cbxBJ6tQykkpNQXzHbzP7f7jzqCTE4T8mvJ374fue/p4YC7eZRUNfMH2B+gjtNZlXlZ/ZL067i3nASVa67ed9qsBXsL1OXUe0AY84zSuHXgaOFspFWuttnvvHzCEUk7ejqW1LsJYpJ3v572WkyiG4ecNjHXvTqXUDKVUolJqBfBD4P+sGwpa6zrMjeAHSqnl1riZwO+BrRhtH2AKEAfscD6J1roZ43Ke0RcfKgx0YBRbd1ow1tQp1vuZ1rr9buN2Wq8znMaBm5y8jBuM2JWVB0qpkcAsjAvCgciKrh9dDwC/d37ouzFUZWVXTqdar01KqXVW7GCVMrHQo5z2G6pyAvuy2gm8C/zKig9LVEqdhLEEvqq1dnwHvcpKa30AE1o0WGS11Hp1/lzu/38wcpmglEp0GndAa93oZVwMkOs0zs69f6ATrJw8UEpNx1gI3e/nvZKTKIZhxlLYFmNkvRMTh/Im8DImBsyZyzFu4rescTswvxjP1Fo7bkQjrdcqL6erdNo+2NgL5Dk/XJRSEcBJ1tuRTq/V7pYwzGd3HweecnIfNxixKytv3IexUv/JaZ3IynA9EAt4JFE4MVRlZVdOY6zXhzGW5y9g5PZFYK21j/P4oSYnsCkr6x610hr/EeaevgkoBJwTAfzd06sYBLJSSo0FbgPe0Fp/bK0eie/nFECazXGB3vsHLL2Uk/uxooD/w1gMH3La1M/7buEAAAh9SURBVGs5iWIYZpRScRgTeSbwP5hfCz/DBC3/xW34aowb66fWuP/BuF1eVd0ZzA7Xs/s/3XnbYOT/MNfj40qpKUqp0cC9gMPs7XDxKOx9dn9yGuzYlZULSqkbMQHL33OziA17WSmlcoFfYmTT7Od4Q1VWdq8pxzNjvdb6Wq31W1rrBzAB8fMwbiwYunKCwL5/D2Jcz1dh7ulXAfOB55yU6EF9T7csWi9g4i4vd96E/Xt1KMcNSEIgJ3f+DJwCXKa1dlYsey0nUQzDz5WYbLSVWusntNbvaq3vwmSKXqWs0iGW2/gG4Mda6z9Y457A/OKchwmEBv9af5rT9kGF1roQk7k1D2MCL8HEKf3RGlJqvVYCaUop94s8zWm786u7nEa6bR90BCCrLpQpE/Jb4Cat9cNum0VW5sH+FvChUipVKZWKcWMp672jFNSQlFUAcqqwXte5HeJ16/UE63VIygnsy0op9UVMlun/aK3vt+7p92N+8K/EZDOD/3t6KgNYVpbh40UgB5Mg6VzeyZcHy3GvrrI5zvmebufeP+AIkZycj/c74DvAFVrr190291pOohiGn9lAlda6wG39Zut1utM46A5MBUBrnY8JVnaMK8DED8x0HmddeDnArtBMu+/RWq/BBNHOwGT8zQMSgUNa62Jr2E6Mu889js4RN7HLaRy4ycnLuEGJTVkBoJT6H+CvwB+01rd7OZzIymxbibkJO5avYVynVXS7l4esrAL4/oFvS2Cn27ghJyewLSuv93Q87/1eZaVM/cQEBqisrJjcNRgX+kqt9Xa3ITvx/P+DkVmx1rreadxkpVSCl3GtdMfK2b33DyhCKCfH8X6JMSL9UGv9Dy/79VpOohiGnyMY7T3Xbf1C6/Vzp3HQHacCmCLFmF+NnwNYsYavARe7ZVR+GXMxvBi6qfc9WusOrfVurXWBUmoMxuX+N6chr2FuFpe67XoZsMMK2AZTJ6zcx7hKTD2oQY0NWaGUugB4BPi71vqnPg4lsoKvYup9OS9rMXJZjnHbwBCXlQ05fYi5V53jtqvjvUMJGtJyAluy8npPx+3ebymSW/Euqzbg1ZBOPARYbvB/YmoOnq+1/tDLsBeBsUqppU77JWMspS+6jYsG/p/TuCiMPF/XWrdYq+3e+wcMIZYTSqkfYELOfqm1vs/HaXsvJ281bGQJqE7Rl63lb5hf0Vdb75da2ydhyhXso7vA9c+sdR/TXeQyEtgC1OBa4NphMZzgdM65mOKfz2MuuCsxN9t/9bc8eiGnaIwrZhWwAvg+xkWzAYhxO9YdmOKvP8a46f+GsVSc6zbuKmv9amvcbdb7a/tbHn0hK2CJJadPMbEoi5yWE0RWrteVl2M/ivcC14NOViH+/n3DOsb/Yeq0XoOxqr6Na9HmQSenUMoKSMYofyXWMZZbr0eAYlybFqy0ZHO/JavrrO/u7/tbHj5k5JDNarf7yiKsoswYw9P7wCHMD6+zgfWYZ5V7QeanrWvoW5hn2nPW5z/RbZyte/9AWUIpJ2tbJ+aHgvuxZoRSTv0uuMG+WP90b8t6pzEzMHUGD2EUun2YKuZpbscaBfwBoww2WeOfwakQqtPYJXR3sTiKyTJN6G95BCsnTB3Hl63P0oJxma/29pkwSvRNQJE1dhvwZR/n/a4l7xZLrtf0tyz6SlbAr/0c66DIqsdjP4oXxXAwyirUcsLEye2wxpZist0TvYwbVHIKtayA8ZiM0QOYe/UBTELKWC9jL8RYDlswiuPNQGR/y8OHjA76kdOvncaNxGSwV2JK77wJzPFyvHjgbozS3IzJ3l7mZZzte/9AWEIpJ+t+1KO+EQo5KesggiAIgiAIwjBHYgwFQRAEQRAEQBRDQRAEQRAEwUIUQ0EQBEEQBAEQxVAQBEEQBEGwEMVQEARBEARBAEQxFARBEARBECxEMRQEQQgApdRzSqlKpVSWl23LlFKdSqkf9sfcBEEQeovUMRQEQQgASyHcCbyttXZu4xWPKSR7DDhNa93p4xCCIAgDFrEYCoIgBIDW+ijwI+DLSqlVTpt+DYwDrugrpVApFenWM10QBKFXiGIoCIIQIFrrJzBt0f6qlEpVSp2I6Uv6a631XuexSqmvKKU2K6UalVJVSqmnlVJj3cZ8XSn1jlKqTClVp5T6RCl1iduYOKWUVkrdrJT6lVKqCGgF8sL7aQVBGE6IK1kQBCEILOVuJ/BvYC7QDizSWnc4jfkRpgfsg8B/gFTgNkx/07la60Zr3C0YF/R+a9flwPXAlVrrR60xcZge6iXAXkx/4mZgs9a6IpyfVRCE4YMohoIgCEGilPoWRulrA+Zprbc7bUsFPgce01pf47R+KrAL+J7W+v+8HDMC4815BJiqtV5orXcohsVAnta6NWwfTBCEYYu4kgVBEIJEa/13oBT4j7NSaHEakAD8UykV5ViAQmtZ4hiolJqulHpWKVWCsTy2AZcBx3k57X9FKRQEIVxI0LIgCELvaLUWdzKt140+9jsAXZbFdUAl8DNrfStWgouX/Up7M1lBEAR/iGIoCIIQHhxxf5cA+V6211qvpwFjgVVa648dG5VS0T6OK/E/giCEDVEMBUEQwsO7mJjAHK31U37GJVivbY4VSqlMYGUY5yYIguAVUQwFQRDCgNa6Uil1A/AHpdQYYC1Qh7EOLgde1Vo/B2wAGoD7lVK3AcnAzcBRTF1EQRCEPkMUQ0EQhDChtb7Xqjf4Y+DrQCQmU/kdYLs1pkQpdRHwv8Aa4DCmxM1ETJyhIAhCnyHlagRBEARBEARAytUIgiAIgiAIFqIYCoIgCIIgCIAohoIgCIIgCIKFKIaCIAiCIAgCIIqhIAiCIAiCYCGKoSAIgiAIggCIYigIgiAIgiBYiGIoCIIgCIIgAKIYCoIgCIIgCBb/H8yY8dfO4izpAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "#You can set the size of the figure by doing:\n", - "plt.figure(figsize=(10,5))\n", - "\n", - "#Plotting\n", - "plt.plot(temp_data['Year'], temp_data['Value'], color='#2929a3', linestyle='-', linewidth=1) \n", - "plt.title('Land global temperature anomalies. \\n')\n", - "plt.xlabel('Year')\n", - "plt.ylabel('Land temperature anomaly [°C]')\n", - "plt.grid();" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 3: Least-squares linear regression \n", - "\n", - "In order to have an idea of the general behavior of our data, we can find a smooth curve that (approximately) fits the points. We generally look for a curve that's simple (e.g., a polynomial), and does not reproduce the noise that's always present in experimental data. \n", - "\n", - "Let $f(x)$ be the function that we'll fit to the $n+1$ data points: $(x_i, y_i)$, $i = 0, 1, ... ,n$:\n", - "\n", - "$$ \n", - " f(x) = f(x; a_0, a_1, ... , a_m) \n", - "$$\n", - "\n", - "The notation above means that $f$ is a function of $x$, with $m+1$ variable parameters $a_0, a_1, ... , a_m$, where $m < n$. We need to choose the form of $f(x)$ _a priori_, by inspecting the experimental data and knowing something about the phenomenon we've measured. Thus, curve fitting consists of two steps: \n", - "\n", - "1. Choosing the form of $f(x)$.\n", - "2. Computing the parameters that will give us the \"best fit\" to the data. \n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### What is the \"best\" fit?\n", - "\n", - "When the noise in the data is limited to the $y$-coordinate, it's common to use a **least-squares fit** [2], which minimizes the function\n", - "\n", - "$$\n", - "\\begin{equation} \n", - " S(a_0, a_1, ... , a_m) = \\sum_{i=0}^{n} [y_i - f(x_i)]^2\n", - "\\end{equation}~~~~~~(1) \n", - "$$\n", - "\n", - "with respect to each $a_j$. We find the values of the parameters for the best fit by solving the following equations:\n", - "\n", - "$$\n", - "\\begin{equation}\n", - " \\frac{\\partial{S}}{\\partial{a_k}} = 0, \\quad k = 0, 1, ... , m.\n", - "\\end{equation}~~~~~~(2)\n", - "$$\n", - "\n", - "Here, the terms $r_i = y_i - f(x_i)$ are called residuals: they tell us the discrepancy between the data and the fitting function at $x_i$. \n", - "\n", - "Take a look at the function $S$: what we want to minimize is the sum of the squares of the residuals. The equations (2) are generally nonlinear in $a_j$ and might be difficult to solve. Therefore, the fitting function is commonly chosen as a linear combination of specified functions $f_j(x)$, \n", - "\n", - "$$\n", - "\\begin{equation*}\n", - " f(x) = a_0f_0(x) + a_1f_1(x) + ... + a_mf_m(x)\n", - "\\end{equation*}~~~~~~(3)\n", - "$$\n", - "\n", - "which results in equations (2) being linear. In the case that the fitting function is polynomial, we have have $f_0(x) = 1, \\; f_1(x) = x, \\; f_2(x) = x^2$, and so on. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Linear regression \n", - "\n", - "When we talk about linear regression we mean \"fitting a function to the data.\" In this case,\n", - "\n", - "$$\n", - "\\begin{equation}\n", - " f(x) = a_0 + a_1x\n", - "\\end{equation}~~~~~~(4)\n", - "$$\n", - "\n", - "The function that we'll minimize is:\n", - "\n", - "$$\n", - "\\begin{equation}\n", - " S(a_0, a_1) = \\sum_{i=0}^{n} [y_i - f(x_i)]^2 = \\sum_{i=0}^{n} (y_i - a_0 - a_1x_i)^2 \n", - "\\end{equation}~~~~~~(5) \n", - "$$\n", - "\n", - "Equations (2) become:\n", - "\n", - "$$\n", - "\\begin{equation}\n", - " \\frac{\\partial{S}}{\\partial{a_0}} = \\sum_{i=0}^{n} -2(y_i - a_0 - a_1x_i) = 2 \\left[ a_0(n+1) + a_1\\sum_{i=0}^{n} x_i - \\sum_{i=0}^{n} y_i \\right] = 0\n", - "\\end{equation}~~~~~~(6) \n", - "$$\n", - "\n", - "$$\n", - "\\begin{equation}\n", - " \\frac{\\partial{S}}{\\partial{a_1}} = \\sum_{i=0}^{n} -2(y_i - a_0 - a_1x_i)x_i = 2 \\left[ a_0\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i \\right] = 0\n", - "\\end{equation}~~~~~~(7) \n", - "$$\n", - "\n", - "Let's divide both equations by $2(n+1)$ and rearrange terms.\n", - "\n", - "Rearranging (6) and (7):\n", - "\n", - "$$\n", - "\\begin{align}\n", - " 2 \\left[ a_0(n+1) + a_1\\sum_{i=0}^{n} x_i - \\sum_{i=0}^{n} y_i \\right] &= 0 \\nonumber \\\\ \n", - " \\frac{a_0(n+1)}{n+1} + a_1 \\frac{\\sum_{i=0}^{n} x_i}{n+1} - \\frac{\\sum_{i=0}^{n} y_i}{n+1} &= 0 \\\\\n", - "\\end{align}~~~~~~(8)\n", - "$$\n", - "\n", - "$$\n", - "\\begin{align}\n", - " a_0 = \\bar{y} - a_1\\bar{x}\n", - "\\end{align}~~~~~~(9)\n", - "$$\n", - "\n", - "where $\\bar{x} = \\frac{\\sum_{i=0}^{n} x_i}{n+1}$ and $\\bar{y} = \\frac{\\sum_{i=0}^{n} y_i}{n+1}$.\n", - "\n", - "Rearranging (7):\n", - "\n", - "$$\n", - "\\begin{align}\n", - " 2 \\left[ a_0\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i \\right] &= 0 \\\\\n", - " a_0\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &=0 \\\\\n", - "\\end{align}~~~~~~(10)\n", - "$$\n", - "\n", - "Now, if we replace $a_0$ from equation (8) into (9) and rearrange terms:\n", - "\n", - "$$\n", - "\\begin{align*}\n", - " (\\bar{y} - a_1\\bar{x})\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &= 0 \\\\ \n", - "\\end{align*}~~~~~~(11)\n", - "$$\n", - "\n", - "Replacing the definitions of the mean values into the equation, \n", - "\n", - "$$\n", - "\\begin{align*}\n", - " \\left[\\frac{1}{n+1}\\sum_{i=0}^{n} y_i - \\frac{a_1}{n+1}\\sum_{i=0}^{n} x_i \\right]\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &= 0 \\\\ \n", - " \\frac{1}{n+1}\\sum_{i=0}^{n} y_i \\sum_{i=0}^{n} x_i - \\frac{a_1}{n+1}\\sum_{i=0}^{n} x_i \\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &= 0 \\\\ \n", - "\\end{align*}~~~~~~(12)\n", - "$$\n", - "\n", - "Leaving everything in terms of $\\bar{x}$, \n", - "\n", - "$$\n", - "\\begin{align*}\n", - " \\sum_{i=0}^{n} y_i \\bar{x} - a_1\\sum_{i=0}^{n} x_i \\bar{x} + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i = 0 \n", - "\\end{align*}~~~~~~(13)\n", - "$$\n", - "\n", - "Grouping the terms that have $a_1$ on the left-hand side and the rest on the right-hand side:\n", - "\n", - "$$\n", - "\\begin{align*}\n", - " a_1\\left[ \\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_i \\bar{x}\\right] &= \\sum_{i=0}^{n} x_iy_i - \\sum_{i=0}^{n} y_i \\bar{x} \\\\\n", - " a_1 \\sum_{i=0}^{n} (x_{i}^2 - x_i \\bar{x}) &= \\sum_{i=0}^{n} (x_iy_i - y_i \\bar{x}) \\\\\n", - " a_1 \\sum_{i=0}^{n} x_{i}(x_{i} -\\bar{x}) &= \\sum_{i=0}^{n} y_i(x_i - \\bar{x}) \n", - "\\end{align*}~~~~~~(14)\n", - "$$\n", - "\n", - "Finally, we get that:\n", - "\n", - "$$\n", - "\\begin{align}\n", - " a_1 = \\frac{ \\sum_{i=0}^{n} y_{i} (x_i - \\bar{x})}{\\sum_{i=0}^{n} x_i (x_i - \\bar{x})}\n", - "\\end{align}~~~~~~(15)\n", - "$$\n", - "\n", - "Then our coefficients are:\n", - "\n", - "$$\n", - "\\begin{align}\n", - " a_1 = \\frac{ \\sum_{i=0}^{n} y_{i} (x_i - \\bar{x})}{\\sum_{i=0}^{n} x_i (x_i - \\bar{x})} \\quad , \\quad a_0 = \\bar{y} - a_1\\bar{x}\n", - "\\end{align}~~~~~~(16)\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Let's fit!\n", - "\n", - "Let's now fit a straight line through the temperature-anomaly data, to see the trend over time. We'll use least-squares linear regression to find the slope and intercept of a line \n", - "\n", - "$y = a_1x+a_0$\n", - "\n", - "that fits our data.\n", - "\n", - "In our case, the `x`-data corresponds to `Year`, and the `y`-data is `Value`. To calculate our coefficients with the formula above, we need the mean values of our data. Since we'll need to compute the mean for both `x` and `y`. \n", - "\n", - "It is good coding practice to *avoid repeating* ourselves: we want to write code that is reusable, not only because it leads to less typing but also because it reduces errors. If you find yourself doing the same calculation multiple times, it's better to encapsulate it into a *function*. \n", - "\n", - "Remember the _key concept_ from [02_Working_with_Python](../../CompMech01-Getting-started/notebooks/02_Working_with_Python.ipynb): A function is a compact collection of code that executes some action on its arguments. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Exercise \n", - "\n", - "Calculate the mean of the `year` and `temp_anomaly` arrays using the NumPy built-in function, `np.mean`.\n", - "\n", - "Assign the means to `mean_x` and `mean_y`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now that we have mean values, we can compute our coefficients by following equations (12). We first calculate $a_1$ and then use that value to calculate $a_0$.\n", - "\n", - "Our coefficients are:\n", - "\n", - "$$\n", - " a_1 = \\frac{ \\sum_{i=0}^{n} y_{i} (x_i - \\bar{x})}{\\sum_{i=0}^{n} x_i (x_i - \\bar{x})} \\quad , \\quad a_0 = \\bar{y} - a_1\\bar{x}\n", - "$$ \n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We already calculated the mean values of the data arrays, but the formula requires two sums over new derived arrays. Guess what, NumPy has a built-in function for that: [`numpy.sum()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.sum.html). Study the code below." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "xi = temp_data['Year'].values\n", - "yi = temp_data['Value'].values\n", - "\n", - "x_mean = np.mean(xi)\n", - "y_mean = np.mean(yi)\n", - "\n", - "a_1 = np.sum(yi*(xi - x_mean)) / np.sum(xi*(xi - x_mean)) " - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.01037028394347266\n" - ] - } - ], - "source": [ - "print(a_1)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "a_0 = y_mean - a_1*x_mean" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "-20.148685384658464\n" - ] - } - ], - "source": [ - "print(a_0)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### Exercise\n", - "\n", - "Write a function that computes the coefficients, call the function to compute them and compare the result with the values we obtained before. As a hint, we give you the structure that you should follow:\n", - "\n", - "```python\n", - "def coefficients(x, y, x_mean, y_mean):\n", - " \"\"\"\n", - " Write docstrings here\n", - " \"\"\"\n", - "\n", - " a_1 = \n", - " a_0 = \n", - " \n", - " return a_1, a_0\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "def coefficients(x, y, x_mean, y_mean):\n", - " \"\"\"\n", - " Write docstrings here\n", - " Arguments\n", - " ---------\n", - " ??\n", - " Returns\n", - " -------\n", - " ??\n", - " \"\"\"\n", - " # your code here\n", - " \n", - " return a_1, a_0" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We now have the coefficients of a linear function that best fits our data. With them, we can compute the predicted values of temperature anomaly, according to our fit. Check again the equations above: the values we are going to compute are $f(x_i)$. \n", - "\n", - "Let's call `reg` the array obtined from evaluating $f(x_i)$ for all years." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "reg = a_0 + a_1 * xi" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "With the values of our linear regression, we can plot it on top of the original data to see how they look together. Study the code below. " - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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//137ebmpr/66iuttdZRUVH6ueeeKzH+Ll266HfeeafE7YW/X/PmzdPu7u760KFD9rITJ05oT0/PAjEb+Z45iqN+L6pKfHy8q0OoMaSujJF6Mk7qyjijdQX8rCuR98iAESdQSpX4mD9/vn2/+fPno5SiYcOGxe6bX2hoaInnnDBhQlW/RQYOHFjgdefOnTl58qT99YYNGxgwYAANGzYkOzub7Oxs/Pz8CA0N5eeff7bv9/XXX9O7d28aNWqEh4eHvf/c77//XuD8kZGReHl5GYqt8L7p6els2bKFu+++2x5LdnY24eHheHp6smPHDgC2b9/OgAEDCvRJHDp0aLHXCA0NJSgoqEDZhg0biImJwc3NzX6Ntm3bEhISYn/P3bt356OPPmL27Nn8+uuvWH+Hr+nevTtz5szh/fffL1IHxdm2bRu33HIL7dpdm0CgZcuW9OnThy1bthTYt6zvmRBCCCGJoaiQxo0bF3hdr149rly5Yn997tw5li1bhqenZ4FHfHw8J06cAKyJ2NChQ2nZsiWLFy9my5YtbN26FaDAuQACAwMNx1Z43wsXLpCTk8MTTzxRIJb69euTlZVljycpKYlmzZoVONbLy4sGDRqUeY289zxr1qwi7/nw4cP2a0ybNo0nn3yS999/n5tuuolWrVrxr3/9y36Of//73wwfPpwZM2Zwww03cP311/PppyUvPnT69OliYwkMDOTChQsFysr6ngkhhBDSx9AJCrcClWTChAlMmDCB1NTUAn3BipPXqlVT+Pv7M3ToUF5++eUi2/Le64oVK2jWrBnLli2zt5AeO3as2PMVbkEtTeF9GzdujFKKuLg4hgwZUmT/Fi1aABAUFMTZs2cLbLty5QppaWmG4vH39ycmJoZx48YV2ZY3YMTLy4sZM2YwY8YM/vjjDz744AOeffZZbrjhBgYPHkzjxo155513eOedd/j111+ZPXs2999/P926daNz585Fznvdddexd+/eIuVnzpyhSROZa14IIUT5SGIonCIyMpLPPvuMLl26lDhdTEZGBp6engWSrKVLlzo8Fl9fX3r27MmBAwd45ZVXStzv1ltvZeHChQWmuPnyyy8NXycyMpI9e/bYb/uX5frrr+eNN97gvffe47fffmPw4MEFtnfr1o05c+awdOlS9u/fX2xieNttt/Hxxx9z5MgR2ra1zi2fmJjIjz/+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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(10, 5))\n", - "\n", - "plt.plot(xi, yi,'s', color='#2929a3', linewidth=1, alpha=0.5,label='Measured anomoly') \n", - "plt.plot(xi, reg, 'k--', linewidth=2, label='Linear regression')\n", - "plt.xlabel('Year')\n", - "plt.ylabel('Land temperature anomaly [°C]')\n", - "plt.legend(loc='best', fontsize=15)\n", - "plt.grid();" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 4: Apply regression using NumPy" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Above, we coded linear regression from scratch. But, guess what: we didn't have to because NumPy has built-in functions that do what we need!\n", - "\n", - "Yes! Python and NumPy are here to help! With [`polyfit()`](https://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.polyfit.html), we get the slope and $y$-intercept of the line that best fits the data. With [`poly1d()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.poly1d.html), we can build the linear function from its slope and $y$-intercept.\n", - "\n", - "Check it out:" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "# First fit with NumPy, then name the coefficients obtained a_1n, a_0n:\n", - "a_1n, a_0n = np.polyfit(xi, yi, 1)\n", - "\n", - "f_linear = np.poly1d((a_1n, a_0n)) " - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.010370283943472659\n" - ] - } - ], - "source": [ - "print(a_1n)" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "-20.148685384658457\n" - ] - } - ], - "source": [ - "print(a_0n)" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " \n", - "0.01037 x - 20.15\n" - ] - } - ], - "source": [ - "print(f_linear)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The assignment `f_linear = np.poly1d((a_1n,a_0n))` creates a 1D polynomial. This means that the function only has one independent variable i.e. f(x) = (some value). You can create your own polynomial functions in a similar way using _anonymous functions_ i.e. `lambda`.\n", - "\n", - "```python\n", - "f_linear = lambda x: a_1n*x + a_0n\n", - "```\n", - "\n", - "In the line of code given above, we create the same assignment for `f_linear(x)`. One benefit of writing this out yourself is that you can see how each input is used directly. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Exercise\n", - "\n", - "Use the `lambda` function to assign `f_linear` to our 1D polynomial instead of the `np.poly1d` assignment. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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//137ebmpr/66iuttdZRUVH6ueeeKzH+Ll266HfeeafE7YW/X/PmzdPu7u760KFD9rITJ05oT0/PAjEb+Z45iqN+L6pKfHy8q0OoMaSujJF6Mk7qyjijdQX8rCuR98iAESdQSpX4mD9/vn2/+fPno5SiYcOGxe6bX2hoaInnnDBhQlW/RQYOHFjgdefOnTl58qT99YYNGxgwYAANGzYkOzub7Oxs/Pz8CA0N5eeff7bv9/XXX9O7d28aNWqEh4eHvf/c77//XuD8kZGReHl5GYqt8L7p6els2bKFu+++2x5LdnY24eHheHp6smPHDgC2b9/OgAEDCvRJHDp0aLHXCA0NJSgoqEDZhg0biImJwc3NzX6Ntm3bEhISYn/P3bt356OPPmL27Nn8+uuvWH+Hr+nevTtz5szh/fffL1IHxdm2bRu33HIL7dpdm0CgZcuW9OnThy1bthTYt6zvmRBCCCGJoaiQxo0bF3hdr149rly5Yn997tw5li1bhqenZ4FHfHw8J06cAKyJ2NChQ2nZsiWLFy9my5YtbN26FaDAuQACAwMNx1Z43wsXLpCTk8MTTzxRIJb69euTlZVljycpKYlmzZoVONbLy4sGDRqUeY289zxr1qwi7/nw4cP2a0ybNo0nn3yS999/n5tuuolWrVrxr3/9y36Of//73wwfPpwZM2Zwww03cP311/PppyUvPnT69OliYwkMDOTChQsFysr6ngkhhBDSx9AJCrcClWTChAlMmDCB1NTUAn3BipPXqlVT+Pv7M3ToUF5++eUi2/Le64oVK2jWrBnLli2zt5AeO3as2PMVbkEtTeF9GzdujFKKuLg4hgwZUmT/Fi1aABAUFMTZs2cLbLty5QppaWmG4vH39ycmJoZx48YV2ZY3YMTLy4sZM2YwY8YM/vjjDz744AOeffZZbrjhBgYPHkzjxo155513eOedd/j111+ZPXs2999/P926daNz585Fznvdddexd+/eIuVnzpyhSROZa14IIUT5SGIonCIyMpLPPvuMLl26lDhdTEZGBp6engWSrKVLlzo8Fl9fX3r27MmBAwd45ZVXStzv1ltvZeHChQWmuPnyyy8NXycyMpI9e/bYb/uX5frrr+eNN97gvffe47fffmPw4MEFtnfr1o05c+awdOlS9u/fX2xieNttt/Hxxx9z5MgR2ra1zi2fmJjIjz/+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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(10, 5))\n", - "\n", - "plt.plot(xi, yi,'s', color='#2929a3', linewidth=1, alpha=0.5,label='Measured anomoly')\n", - "plt.plot(xi, f_linear(xi), 'k--', linewidth=2, label='Linear regression')\n", - "plt.xlabel('Year')\n", - "plt.ylabel('Land temperature anomaly [°C]')\n", - "plt.legend(loc='best', fontsize=15)\n", - "plt.grid();" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## \"Split regression\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If you look at the plot above, you might notice that around 1970 the temperature starts increasing faster that the previous trend. So maybe one single straight line does not give us a good-enough fit.\n", - "\n", - "What if we break the data in two (before and after 1970) and do a linear regression in each segment? \n", - "\n", - "To do that, we first need to find the position in our `year` array where the year 1970 is located. Thankfully, NumPy has a function called [`numpy.where()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.where.html) that can help us. We pass a condition and `numpy.where()` tells us where in the array the condition is `True`. \n" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'numpy' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mnumpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwhere\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0myear\u001b[0m\u001b[0;34m==\u001b[0m\u001b[0;36m1970\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mNameError\u001b[0m: name 'numpy' is not defined" - ] - } - ], - "source": [ - "numpy.where(year==1970)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To split the data, we use the powerful instrument of _slicing_ with the colon notation. Remember that a colon between two indices indicates a range of values from a `start` to an `end`. The rule is that `[start:end]` includes the element at index `start` but excludes the one at index `end`. For example, to grab the first 3 years in our `year` array, we do:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "year[0:3]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we know how to split our data in two sets, to get two regression lines. We need two slices of the arrays `year` and `temp_anomaly`, which we'll save in new variable names below. After that, we complete two linear fits using the helpful NumPy functions we learned above." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "year_1 , temp_anomaly_1 = year[0:90], temp_anomaly[0:90]\n", - "year_2 , temp_anomaly_2 = year[90:], temp_anomaly[90:]\n", - "\n", - "m1, b1 = numpy.polyfit(year_1, temp_anomaly_1, 1)\n", - "m2, b2 = numpy.polyfit(year_2, temp_anomaly_2, 1)\n", - "\n", - "f_linear_1 = numpy.poly1d((m1, b1))\n", - "f_linear_2 = numpy.poly1d((m2, b2))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "plt.figure(figsize=(10, 5))\n", - "\n", - "plt.plot(year, temp_anomaly, color='#2929a3', linestyle='-', linewidth=1, alpha=0.5) \n", - "plt.plot(year_1, f_linear_1(year_1), 'g--', linewidth=2, label='1880-1969')\n", - "plt.plot(year_2, f_linear_2(year_2), 'r--', linewidth=2, label='1970-2016')\n", - "\n", - "plt.xlabel('Year')\n", - "plt.ylabel('Land temperature anomaly [°C]')\n", - "plt.legend(loc='best', fontsize=15)\n", - "plt.grid();" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Discussion exercise\n", - "We have two different curves for two different parts of our data set. A little problem with this and is that the end point of our first regression doesn't match the starting point of the second regression. We did this for the purpose of learning, but it is not rigorously correct. \n", - "\n", - "How would you fix this issue? \n", - "\n", - "What would your new function, $f(x)$, look like?" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## We learned:\n", - "\n", - "* Making our plots more beautiful\n", - "* Defining and calling custom Python functions\n", - "* Applying linear regression to data\n", - "* NumPy built-ins for linear regression\n", - "* The Earth is warming up!!!" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## References\n", - "\n", - "1. [_Essential skills for reproducible research computing_](https://barbagroup.github.io/essential_skills_RRC/) (2017). Lorena A. Barba, Natalia C. Clementi, Gilbert Forsyth. \n", - "2. _Numerical Methods in Engineering with Python 3_ (2013). Jaan Kiusalaas. Cambridge University Press.\n", - "3. _Effective Computation in Physics: Field Guide to Research with Python_ (2015). Anthony Scopatz & Kathryn D. Huff. O'Reilly Media, Inc.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Problems\n", - "\n", - "1. There is a csv file in '../data/primary-energy-consumption-by-region.csv' that has the energy consumption of different regions of the world from 1965 until 2018 [Our world in Data](https://ourworldindata.org/energy). \n", - "We are going to compare the energy consumption of the United States to all of Europe. Load the data into a pandas dataframe. *Note: we can get certain rows of the data frame by specifying what we're looking for e.g. \n", - "`EUR = dataframe[dataframe['Entity']=='Europe']` will give us all the rows from Europe's energy consumption.*\n", - "\n", - " a. Plot the total energy consumption of the United States and Europe\n", - " \n", - " b. Use a linear least-squares regression to find a function for the energy consumption as a function of year\n", - " \n", - " energy consumed = $f(t) = At+B$\n", - " \n", - " c. At what year would you change split the data and use two lines like we did in the \n", - " land temperature anomoly? Split the data and perform two linear fits. \n", - " \n", - " d. What is your prediction for US energy use in 2025? How about European energy use in 2025?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "energy = pd.read_csv('../data/primary-energy-consumption-by-region.csv')\n", - "CAN = energy[energy['Entity']=='Canada']\n", - "USA = energy[energy['Entity']=='United States']\n", - "EUR = energy[energy['Entity']=='Europe']\n", - "plt.plot(USA['Year'],USA['Primary Energy Consumption (terawatt-hours)'],'-o')\n", - "plt.plot(EUR['Year'],EUR['Primary Energy Consumption (terawatt-hours)'],'-s')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "2. We plotted Gordon Moore's empirical prediction that the rate of semiconductors on a computer chip would double every two years in [02_Seeing_Stats](./02_Seeing_Stats.ipynb). This prediction was known as Moore's law. Gordon Moore had originally only expected this empirical relation to hold from 1965 - 1975 [[1](https://en.wikipedia.org/wiki/Moore%27s_law),[2](https://spectrum.ieee.org/computing/hardware/gordon-moore-the-man-whose-name-means-progress)], but semiconductor manufacuturers were able to keep up with Moore's law until 2015. \n", - "\n", - "We can use a linear regression to find our own historical Moore's Law. \n", - "\n", - "Use your code from [02_Seeing_Stats](./02_Seeing_Stats.ipynb) to plot the semilog y-axis scatter plot \n", - "(i.e. `plt.semilogy`) for the \"Date of Introduction\" vs \"MOS transistor count\". \n", - "Color the data according to the \"Designer\".\n", - "\n", - "Create a linear regression for the data in the form of \n", - "\n", - "$log(transistor~count)= f(date) = A\\cdot date+B$\n", - "\n", - "rearranging\n", - "\n", - "$transistor~count= e^{f(date)} = e^B e^{A\\cdot date}$\n", - "\n", - "You can perform a least-squares linear regression using the following assignments\n", - "\n", - "$x_i=$ `dataframe['Date of Introduction'].values`\n", - "\n", - "and\n", - "\n", - "$y_i=$ as `np.log(dataframe['MOS transistor count'].values)`\n", - "\n", - "a. Plot your function on the semilog y-axis scatter plot\n", - "\n", - "b. What are the values of constants $A$ and $B$ for our Moore's law fit? How does this compare to Gordon Moore's prediction that MOS transistor count doubles every two years?\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "anaconda-cloud": {}, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.5" - }, - "widgets": { - "state": {}, - "version": "1.1.2" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/notebooks/.ipynb_checkpoints/04_Stats_and_Montecarlo-checkpoint.ipynb b/notebooks/.ipynb_checkpoints/04_Stats_and_Montecarlo-checkpoint.ipynb deleted file mode 100644 index e24a004..0000000 --- a/notebooks/.ipynb_checkpoints/04_Stats_and_Montecarlo-checkpoint.ipynb +++ /dev/null @@ -1,965 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "###### Content created under Creative Commons Attribution license CC-BY 4.0, code under BSD 3-Clause License © 2020 R.C. Cooper" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Statistics and Monte-Carlo Models\n", - "\n", - "Monte Carlo models use random numbers to either understand statistics or generate a solution [1]. \n", - "The main element in a Monte Carlo model is the use of random numbers. Monte Carlo methods are very useful if you can easily execute a function lots of time or even in parallel. \n", - "\n", - "We can generate random numbers in many ways, but most programming languages have 'pseudo'-random number generators. \n", - "\n", - "In Python, we use the numpy library as such\n" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "\n", - "x=np.random.rand(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "#Import rcParams to set font styles\n", - "from matplotlib import rcParams\n", - "\n", - "#Set font style and size \n", - "rcParams['font.family'] = 'sans'\n", - "rcParams['font.size'] = 16\n", - "rcParams['lines.linewidth'] = 3" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([3., 1., 0., 0., 1., 0., 0., 2., 1., 2.]),\n", - " array([0.34837708, 0.41148652, 0.47459596, 0.53770539, 0.60081483,\n", - " 0.66392427, 0.72703371, 0.79014314, 0.85325258, 0.91636202,\n", - " 0.97947146]),\n", - " )" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.hist(x,bins=10, color='b', histtype='bar', edgecolor='w')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The `numpy.random.rand(10)` function generates 10 random numbers between 0 and 1. The pyplot function `hist` then displays a histogram of these randomly generated numbers. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Exercise and Discussion\n", - "\n", - "Try generating more random numbers and plotting histograms of the results i.e. increase `10` to larger values. \n", - "\n", - "What should the histogram of `x` look like if Python is generating truly random numbers?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Examples of Monte Carlo models:\n", - "\n", - "Monte Carlo models have a wide array of applications. We are going to use Monte Carlo models in later modules to explore how uncertainty in measurements can be incorporated into computational models. The three main applications for Monte Carlo models are used in three main classes: optimization, numerical integration, and generating population distributions [1]. \n", - "\n", - "Here is a brief list of Monte Carlo model use cases in real-world applications:\n", - "\n", - "- [Eigenvlaues in supercritical systems](https://link.springer.com/chapter/10.1007%2FBFb0049064)\n", - "- [average time between failures for reliability](http://www.egr.msu.edu/~mitraj/research/pubs/proc/singh-mitra_em_stdby_ias95.pdf)\n", - "- disordered materials (physics)\n", - "- [Calculation of the energy output of a wind farm](http://www.mdpi.com/1996-1073/9/4/286/pdf)\n", - "- [US Coast Guard rescue missions](https://en.wikipedia.org/wiki/Search_and_Rescue_Optimal_Planning_System)\n", - "- [Radiation shielding](http://www.sciencedirect.com/science/article/pii/S0920379612000580)\n", - "- [Predict number of asteroids that hit body of water](https://cneos.jpl.nasa.gov/sentry/intro.html)\n", - "- [Financial modeling](https://en.wikipedia.org/wiki/Monte_Carlo_methods_in_finance)\n", - "\n", - "We will explore Monte Carlo modeling through the use of three examples:\n", - "\n", - "1. Calculate the value of $\\pi$\n", - "\n", - "2. Calculate the integral of a function\n", - "\n", - "3. Propagate uncertainty in manufacturing into uncertainty in failure load" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "\n", - "\n", - "# Example 1: Calculate $\\pi$ with random numbers. \n", - "\n", - "Assuming we can actually generate random numbers (a topic of philosophical and heated debates) we can populate a unit square with random points and determine the ratio of points inside and outside of a circle.\n", - "\n", - "![Unit circle and unit square](../images/MonteCarloPi.gif)\n", - "\n", - "![1/4 Unit circle and 1/4 unit square](../images/MonteCarloPi_rand.gif)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "The ratio of the area of the circle to the square is:\n", - "\n", - "$\\frac{\\pi r^{2}}{4r^{2}}=\\frac{\\pi}{4}$\n", - "\n", - "So if we know the fraction of random points that are within the unit circle, then we can calculate $\\pi$\n", - "\n", - "(number of points in circle)/(total number of points)=$\\pi/4$" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([0.61262684, 0.8262925 , 0.59955407, 0.43229944, 0.66224665,\n", - " 0.61154899, 0.34189469, 0.94126304, 0.41459117, 0.6400169 ])" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "np.random.rand(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - }, - "slideshow": { - "slide_type": "fragment" - } - }, - "outputs": [], - "source": [ - "def montecarlopi(N):\n", - " '''Create random x-y-coordinates to and use ratio of circle-to-square to \n", - " calculate the value of pi\n", - " i.e. Acircle/Asquare = pi/4\n", - " Arguments\n", - " ---------\n", - " N: number of random points to produce between x=0-1 and y=0-1\n", - " \n", - " Returns\n", - " -------\n", - " our_pi: the best prediction of pi using N points\n", - " '''\n", - " \n", - "\n", - " x=np.random.rand(N,1);\n", - " y=np.random.rand(N,1);\n", - " R=np.sqrt(x**2+y**2); # compute radius\n", - " num_in_circle=sum(R<1);\n", - " total_num_pts =len(R);\n", - " our_pi = 4*num_in_circle/total_num_pts;\n", - " return our_pi" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - }, - "slideshow": { - "slide_type": "slide" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "mean value for pi = 3.188800\n", - "standard deviation is 0.041097\n", - "actual pi is 3.141593\n" - ] - } - ], - "source": [ - "test_pi=np.zeros(10)\n", - "for i in range(0,10):\n", - " test_pi[i]=montecarlopi(1000);\n", - "\n", - "print('mean value for pi = %f'%np.mean(test_pi))\n", - "print('standard deviation is %f'%np.std(test_pi))\n", - "print('actual pi is %f'%np.pi)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Exercises\n", - "\n", - "1. Why is there a standard deviation for the value of $\\pi$ calculated with a Monte Carlo method? Does it depend upon how many times you run the function i.e. the size of `test_pi`? or the number of random points `N`? Alter the script above to discover correlations\n", - "\n", - "2. How well does our function `montecarlopi` converge to the true value of $\\pi$ (you can use `np.pi` as a true value)? Plot the convergence as we did in [03-Numerical_error](https://github.uconn.edu/rcc02007/CompMech01-Getting-started/blob/master/notebooks/03-Numerical_error.ipynb)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Example 2: Calculate the integral of a function\n", - "\n", - "One way to calculate the integral of a function, $f(x)$, is to approximate it as a Riemann sum as such\n", - "\n", - "$I=\\int_{a}^{b}f(x) dx \\approx \\Delta x \\left(f(a)+f(a+\\Delta x)+f(a+2\\Delta x)+...+f(b)\\right))$.\n", - "\n", - "Another way to integrate this function is with a [Monte Carlo approach](https://en.wikipedia.org/wiki/Monte_Carlo_integration) [2, 3]. We can approximate the integral as such\n", - "\n", - "$I=\\int_{a}^{b}f(x) dx \\approx \\frac{1}{n}\\sum_{i=1}^n f(x_i)$. \n", - "\n", - "where $x_i$ are uniformly random values of $x$ over the interval $[a,b]$. We were actually doing this in two dimensions in Example #1 when we compared the area of the circle to the area of a square. \n", - "\n", - "Visually, this approximation can be represented by the following figure.\n", - "\n", - "![Integration approximation](../images/integrals.png)\n", - "\n", - "The figure above shows the exact integral on the left as compared to two approximations, the Riemann sum (top-right) and Monte Carlo method (bottom-right). \n", - "\n", - "The main benefit in using a Monte Carlo integration over a Riemann sum (or another non-random method e.g. trapezoidal) is that the integration converges as \n", - "\n", - "$error \\approx \\frac{1}{\\sqrt{n}}$\n", - "\n", - "independent of the number of dimensions in the formula. Non-random methods have convergence rates that depend upon the step size along each axis, so with two dimensions reducing the step size to 1/3 increases n by 4, in three dimensions its 8, in 4D its 16, and so on. We'll do an example with a 1D function to introduce the concept. \n", - "\n", - "You can even integrate functions that are not easy to evaluate, such as the [area of light shown by the bat signal](http://leios.github.io/Batman_Montecarlo)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Exercise (Discussion)\n", - "\n", - "Why does the Monte Carlo method work? Is there a benefit to random numbers as opposed to using an ordered set divided into equally-spaced intervals?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this example, we will calculate the integral $I=\\int_{1}^{3}f(x)dx$ where\n", - "\n", - "$I=\\int_{1}^{3}\\frac{x}{1+x^2}dx \\approx \\frac{1}{n}\\sum_{i=1}^n \\frac{x_i}{1+x_i^2}$\n", - "\n", - "Our first objective is to take random numbers between 0 and 1 and turn them into random number between 1 and 3. This process is called _scaling_ or _transforming_ our variable $x_{i}$" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ri=np.random.rand(100)\n", - "\n", - "xi=1+(3-1)*ri # scaling equation for our uniform distribution 0..1 to 1..3\n", - "\n", - "plt.hist(xi,label='x_i: our scaled var')\n", - "plt.hist(ri,label='r_i: our original var')\n", - "plt.legend();\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Exercise\n", - "\n", - "Compare the scaled histogram to the original histogram. What is similar? What is different?\n", - "\n", - "Make a scaling equation to get uniformly random numbers between 10 and 20. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Performing the integration\n", - "\n", - "If you have been doing a lot of calculus lately, you may know that \n", - "\n", - "$\\int\\frac{x}{1+x^2}dx = \\frac{\\log({x^2+1})}{2}$. \n", - "\n", - "If not, Python's [Sympy: Symbolic algebra](https://docs.sympy.org/1.5.1/modules/integrals/integrals.html) can help you jog your memory [4]. It will also give us an exact solution to judge our convergence. \n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle \\frac{\\log{\\left(x^{2} + 1 \\right)}}{2}$" - ], - "text/plain": [ - "log(x**2 + 1)/2" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import sympy\n", - "\n", - "x=sympy.Symbol('x')\n", - "\n", - "sympy.integrate(x/(1+x**2),x)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/latex": [ - "$\\displaystyle 0.80471895621705$" - ], - "text/plain": [ - "0.804718956217050" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sympy.integrate(x/(1+x**2),(x,1,3)).evalf()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "So the exact integral that we are approximating is\n", - "\n", - "$I=\\frac{\\log{10}}{2}-\\frac{\\log{2}}{2}=0.80471895621705$\n", - "\n", - "_Note: We won't be using sympy for general numerical methods. It is helpful to do some algebra for us, but in general we want to use arrays so that our solutions can be scaled up and solved quicker by the computer._" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.7824846191561594\n" - ] - }, - { - "data": { - "text/plain": [ - "Text(0, 0.5, 'f(x)')" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "f= lambda x:x/(1+x**2)\n", - "\n", - "n=10\n", - "ri=np.random.rand(n)\n", - "\n", - "xi=1+(3-1)*ri # scaling equation for our uniform distribution 0..1 to 1..3\n", - "# we scaled our variable by a factor of 2 so we scale the bins accorcdingly\n", - "bin_scale = 3-1 \n", - "\n", - "my_I=sum(f(xi))/n*bin_scale\n", - "print(my_I)\n", - "\n", - "plt.bar(xi,f(xi),width=bin_scale/n,color=[0.1,0,1,0.5])\n", - "plt.plot(np.linspace(0,4),f(np.linspace(0,4)),color='k')\n", - "plt.title('Graphical illustration of Monte Carlo'+\\\n", - " ' integration\\n I={:.4f}'.format(my_I))\n", - "plt.xlabel('x')\n", - "plt.ylabel('f(x)')\n" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "def montecarlo_integrate(f,a,b,N):\n", - " '''Estimate the integral of a function f(x) from a->b with N \n", - " randomly chosen points\n", - " Arguments\n", - " ---------\n", - " f: a function of the form f=lambda x: ...\n", - " a: the lower bound of the integration\n", - " b: the upper bound of the integration\n", - " N: number of random points to produce between xi=a-b\n", - " \n", - " Returns\n", - " -------\n", - " our_I: the best prediction of the integral using N points \n", - " '''\n", - " ri=np.random.rand(n)\n", - "\n", - " xi=a+(b-a)*ri # scaling equation for our uniform distribution 0..1 to 1..3\n", - " # we scaled our variable by a factor of 2 so we scale the bins accorcdingly\n", - " bin_scale = b-a\n", - "\n", - " our_I=sum(f(xi))/n*bin_scale\n", - " \n", - " return our_I\n", - " " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In the above function, we have defined a general Monte Carlo integration function. Now, we can create a for loop to try the function multiple times and get an average and standard deviation. " - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "mean value is I = 0.81410075695566\n", - "standard deviation is 0.028138512733038436\n", - "actual I = 0.80471895621705\n", - "error in mean = -0.009381800738609947\n" - ] - } - ], - "source": [ - "test_I=np.zeros(10)\n", - "for i in range(0,10):\n", - " test_I[i]=montecarlo_integrate(f,1,3,500);\n", - "\n", - "print('mean value is I = {}'.format(np.mean(test_I)))\n", - "print('standard deviation is {}'.format(np.std(test_I)))\n", - "print('actual I = 0.80471895621705')\n", - "print('error in mean = {}'.format(0.80471895621705-np.mean(test_I)))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Example 3: Determine uncertainty in failure load based on geometry uncertainty\n", - "\n", - "In this example, we know that a steel bar will break under 940 MPa tensile stress. The bar is 1 mm by 2 mm with a tolerance of 10 %. What is the range of tensile loads that can be safely applied to the beam?\n", - "\n", - "$\\sigma_{UTS}=\\frac{F_{fail}}{wh}$\n", - "\n", - "$F_{fail}=\\sigma_{UTS}wh$" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - }, - "slideshow": { - "slide_type": "slide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "N=10000;\n", - "r=np.random.rand(N,1);\n", - "wmean=1; # in mm\n", - "wmin=wmean-wmean*0.1;\n", - "wmax=wmean+wmean*0.1;\n", - "hmean=2; # in mm\n", - "hmin=hmean-hmean*0.1;\n", - "hmax=hmean+hmean*0.1;\n", - "\n", - "wrand=wmin+(wmax-wmin)*r;\n", - "hrand=hmin+(hmax-hmin)*r;\n", - "\n", - "uts=940; # in N/mm^2=MPa\n", - "\n", - "Ffail=uts*wrand*hrand*1e-3; # force in kN\n", - "plt.hist(Ffail,bins=20,)\n", - "plt.xlabel('failure load (kN)')\n", - "plt.ylabel('relative counts')\n", - "plt.title('Failure load is {:.2f}+/- {:.2f} kN'.format(np.mean(Ffail),np.std(Ffail)));" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Normally, the tolerance is not a maximum/minimum specification, but instead a normal distribution that describes the standard deviation, or the 68% confidence interval.\n", - "\n", - "So instead, we should generate normally distributed dimensions." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - }, - "slideshow": { - "slide_type": "slide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "N=10000;\n", - "wmean=1; # in mm\n", - "wstd=wmean*0.1; # standard deviation in mm\n", - "hmean=2; # in mm\n", - "hstd=hmean*0.1; # standard deviation in mm\n", - "\n", - "\n", - "wrand=np.random.normal(wmean,wstd,size=N);\n", - "hrand=np.random.normal(hmean,hstd,size=N);\n", - "uts=940; # in N/mm^2=MPa\n", - "\n", - "Ffail=uts*wrand*hrand*1e-3; # force in kN\n", - "plt.hist(Ffail,bins=20)\n", - "#plt.xlabel('failure load (kN)')\n", - "#plt.ylabel('relative counts')\n", - "plt.title('Failure load is {:.2f}+/- {:.2f} kN'.format(np.mean(Ffail),np.std(Ffail)));" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this propagation of uncertainty, the final value of failure load seems to be independent of wheher the distribution is uniformly random or normally distributed. In both cases, the failure load is $\\approx 1.9 \\pm 0.25$ kN.\n", - "\n", - "The difference is much more apparent if you look at the number of occurrences that failure will occur whether the dimensions are uniformly random or normally distributed. \n", - "\n", - "For the uniformly random case, there are approximately 500 parts out of 10,000 that will fail at 1.9 kN. \n", - "\n", - "For the normally distributed case, there are approximately 1500 parts out of 10,000 that will fail at 1.9 kN. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Where does a normal distribution come from?\n", - "\n", - "\"Everybody believes in the exponential law of errors: the experimenters, because they think it can be proved by mathematics; and the mathematicians, because they believe it has been established by observation\" [5].\n", - "\n", - "In the previous example, we drew dimensions from uniformly random distributions and normally distributed random distributions. Why do we use the \"normal\" distribution to describe data with a mean and standard deviation? There are exact statistical methods to derive the normal distribution, but let's take a look at a Monte Carlo approach. \n", - "\n", - "Let's say there are 10 different independent factors that could change the dimensions of the steel bar in question e.g. which tool was used, how old the blade is, the humidity, the temperature, and the list goes on. \n", - "\n", - "Let's consider one dimension. \n", - "Each of these factors could change the dimensions of the part, let's use a uniform scale of -1/2-1/2.\n", - "If the effect is 0, the dimension is exactly as specified. If the effect is -1/2, the dimension is much smaller. Conversely, if the effect is 1/2 the dimension is much larger. Now, we use a Monte Carlo model to generate 10 effects on 10,000 parts as shown in the next block." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "factors = np.random.rand(10000,10)-1/2 # each row represents a part and each column is an effect (-1/2-1/2)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, we have created 10,000 parts with 10 uniformly random effects between -1/2-1/2. \n", - "\n", - "We sum the effects and look at the final part distribution. The x-axis is labeled \"A.U.\" for arbitrary units, we are just assuming an effect of -1/2-1/2 for each of the 10 factors. " - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0, 0.5, 'number of parts')" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "dims = np.sum(factors,axis=1)\n", - "\n", - "plt.hist(dims,30)\n", - "plt.xlabel('effect A.U.')\n", - "plt.ylabel('number of parts')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, depending upon which random numbers were generated, you should see what looks like a normal distribution. \n", - "\n", - "Normal distributions come from the assumption that we have a large (or infinite) number of uncontrollable factors that can change our desired result. In our case, ideally each factor would have an effect of 0, because then it is exactly as specified, but the reality is that we can't control most factors. As engineers, we always have to consider the uncertainty in our models and measurements. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## We learned:\n", - "\n", - "* How to generate \"random\" numbers in Python$^+$\n", - "* The definition of a Monte Carlo model\n", - "* How to calculate $\\pi$ with Monte Carlo\n", - "* How to take the integral of a function with Monte Carlo\n", - "* How to propagate uncertainty in a model with Monte Carlo\n", - "* **Bonus**: use Sympy to do calculus and algebra for us! *no need for Wolfram, sorry Stephen*\n", - "* How to generate a normal distribution using uniformly random numbers\n", - "\n", - "$^+$ Remember, the computer only generates pseudo-random numbers. For further information **and** truly random numbers check [www.random.org](https://www.random.org/randomness/) " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# References\n", - "\n", - "1. [Why the Monte Carlo method is so important today\n", - "Dirk P. Kroese, Tim Brereton *et al.* Wiley Interdisciplinary Reviews: Computational Statistics, 6, 6, 11 2014](https://onlinelibrary.wiley.com/doi/full/10.1002/wics.1314)\n", - "\n", - "2. [Wikipedia: Monte Carlo integration](https://en.wikipedia.org/wiki/Monte_Carlo_integration)\n", - "\n", - "3. [Weinzierl, S. (2000). \"Introduction to Monte Carlo methods\"](https://arxiv.org/abs/hep-ph/0006269)\n", - "\n", - "4. Meurer A, _et al._ (2017) SymPy: symbolic computing in Python. PeerJ Computer Science 3:e103 https://doi.org/10.7717/peerj-cs.103\n", - "\n", - "5. Whittaker, E. T. and Robinson, G. \"Normal Frequency Distribution.\" Ch. 8 in The Calculus of Observations: A Treatise on Numerical Mathematics, 4th ed. New York: Dover, p. 179, 1967." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Problems\n", - "\n", - "1. Calculate the area of a unit circle using the Monte Carlo integration method that we devloped in Example 2. Calculate the area of a quarter of the circle, then multiply the final result by 4. \n", - "\n", - " _Hint: You have to create a function that describes the perimeter of the circle._\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "2. 100 steel rods are going to be used to support a 1000 kg structure. The\n", - "rods will buckle when the load in any rod exceeds the [critical buckling\n", - "load](https://en.wikipedia.org/wiki/Euler%27s_critical_load)\n", - "\n", - " $P_{cr}=\\frac{\\pi^3 Er^4}{16L^2}$\n", - "\n", - " where E=200e9 Pa, r=0.01 m +/-0.001 m, and L is the \n", - " length of the rods supporting the structure. Create a Monte\n", - " Carlo model `montecarlo_buckle` that predicts \n", - " the mean and standard deviation of the buckling load for 100\n", - " samples with normally distributed dimensions r and L. \n", - "\n", - " ```python\n", - " mean_buckle_load,std_buckle_load=\\\n", - " montecarlo_buckle(E,r_mean,r_std,L,N=100)\n", - " ```\n", - "\n", - " a. What is the mean_buckle_load and std_buckle_load for L=5 m?\n", - "\n", - " b. What length, L, should the beams be so that only 2.5% will \n", - " reach the critical buckling load?" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "def montecarlo_buckle(E,r_mean,r_std,L,N=100):\n", - " '''Generate N rods of length L with radii of r=r_mean+/-r_std\n", - " then calculate the mean and std of the buckling loads in for the\n", - " rod population holding a 1000-kg structure\n", - " Arguments\n", - " ---------\n", - " E: Young's modulus [note: keep units consistent]\n", - " r_mean: mean radius of the N rods holding the structure\n", - " r_std: standard deviation of the N rods holding the structure\n", - " L: length of the rods (or the height of the structure)\n", - " N: number of rods holding the structure, default is N=100 rods\n", - " Returns\n", - " -------\n", - " mean_buckle_load: mean buckling load of N rods under 1000*9.81/N-Newton load\n", - " std_buckle_load: std dev buckling load of N rods under 1000*9.81/N-Newton load\n", - " '''\n", - " \n", - " # your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "3. Generate your own normal distribution using uniformly random numbers between -1/2 and 1/2. \n", - "\n", - " a. What is the effect of changing the number of factors?\n", - " \n", - " b. What is the effect of changing the number of samples?\n", - " \n", - " *Hint: for a-b try plotting histograms of the results.*\n", - " \n", - " c. How would you change the mean in your generated distribution?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "celltoolbar": "Slideshow", - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.5" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/project/.ipynb_checkpoints/02_Analyze-data_project-checkpoint.ipynb b/project/.ipynb_checkpoints/02_Analyze-data_project-checkpoint.ipynb deleted file mode 100644 index 9b149ff..0000000 --- a/project/.ipynb_checkpoints/02_Analyze-data_project-checkpoint.ipynb +++ /dev/null @@ -1,140 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Computational Mechanics Project #02 - Create specifications for a projectile robot\n", - "\n", - "On the first day of class, we threw $2\"\\times~2\"$ dampened paper (spitballs) at a target on the whiteboard. Now, we are going to analyze the accuracy of the class with some cool Python tools and design a robot that has the same accuracy and precision as the class, but we will have the robot move farther away from the target and use a simpler projectile i.e. a tennis ball so we don't need to worry about knuckle-ball physics. \n", - "\n", - "The goal of this project is to determine the precision of necessary components for a robot that can reproduce the class throwing distibution. We have generated pseudo random numbers using `numpy.random`, but the class target practice is an example of truly random distributions. If we repeated the exercise, there is a vanishingly small probability that we would hit the same points on the target, and there are no deterministic models that could take into account all of the factors that affected each hit on the board. \n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, we ask ourselves some questions:\n", - "\n", - "1. How do we quantify the class accuracy and precision?\n", - "\n", - "2. If we design a robot, what design components can we control?\n", - "\n", - "3. How can we relate the controlled components to the class accuracy, and specify the component precision?\n", - "\n", - "The first question, we have some experience from our work in [02_Seeing_Stats](../notebooks/02_Seeing_Stats.ipynb). We can define the mean, standard deviation, measure the first, second, and third quartiles, etc. \n", - "\n", - "The second question is a physical question. We cannot control the placement of the robot or the target those are chosen for us. We cannot control temperature, mechanical vibrations, etc. We *can* control the desired initial velocity. The initial velocity will have some speed and direction, and both will be subject to random noise. Once the speed and direction are set, the location on the target is determined by kinematic equations for an object in freefall, as such\n", - "\n", - "$x_{impact} = \\frac{v_x}{v_y}d + x(0)~~~~~~~~~~~~~~~~~~~~(1.a)$\n", - "\n", - "$z_{impact} = d\\left(\\frac{v_z(0)}{v_y}-\\frac{g}{2v_y^2}d\\right)+ z(0)~~~~~(1.b)$.\n", - "\n", - "Where the location of impact is at a $y$-distance of $d$ at a point on the target with coordinates $(x_{impact},~z_{impact})$, and the initial velocity is $\\bar{v}=v_x\\hat{i}+v_y\\hat{j}+v_z(0)\\hat{k}$, the object is released at an initial location $\\bar{r}(0)=x(0)\\hat{i}+0\\hat{j}+z(0)\\hat{k}$, and the only acceleration is due to gravity, $\\bar{a}=-g\\hat{k}$. Equation (1) becomes much easier to evaluate if we assume that $v_x=0$, resulting in an evalution of the accuracy of the height of the impact, $z_{impact}$, as such\n", - "\n", - "$x_{impact} = x(0)~~~~~~~~~~~~~~~~~~~~(2.a)$\n", - "\n", - "$z_{impact} = \\frac{d}{\\cos{\\theta}}\\left(\\sin{\\theta}-\\frac{g}{2v_0^2\\cos{\\theta}}d\\right)+ z(0)~~~~~(2.b)$.\n", - "\n", - "Where $\\theta$ is the angle of the initial velocity and $v_0$ is the initial speed. Equation (2) restricts the analysis to height accuracy. You can incorporate the 2D impact analysis if you finish the 1D analysis. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The third question, is how we can relate equation (2) to the measured points of impact? For this, we can use Monte Carlo methods *(There are other methods, but Monte Carlo is one of the most straight-forward)*. Our Monte Carlo approach is as such, if we have a desired initial speed, $v_0$, and desired angle, $\\theta$, we can propagate the uncertainty of our actual speeds and angles into the $z_{impact}$ locations. Then, we can choose distributions in speed and angles that match the distributions in $z_{impact}$ locations. Here are the steps:\n", - "\n", - "1. Generate random $\\theta_i$ and $v_{0~i}$ variables\n", - "\n", - "2. Plug into eqn 2 for random $z_{impact~i}$ locations\n", - "\n", - "3. Compare to our measured $z_{impact}$ location statistics\n", - "\n", - "4. Repeat 1-3 until the predicted uncertainty matches the desired uncertainty, we can use a number of comparison metrics:\n", - " \n", - " - standard deviation\n", - " \n", - " - first, second, and third quartiles\n", - " \n", - " - visually, with box plots and histograms" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Project Deliverables\n", - "\n", - "1. Statistical analysis of class accuracy and precision (x- and z-locations) data is in the csv file [../data/target_data.csv](../data/target_data.csv) _Note: if you want to see how I turned the images into data check out the jupyter notebook [process_target_practice](./process_target_practice.ipynb)\n", - "\n", - "2. A Monte Carlo model to generate impact heights based upon uncertainty in $\\theta_0$ and $v_0$. \n", - "\n", - "3. The precision required to recreate the class accuracy and precision with a robot. \n", - "**You must show some validation of your work**\n", - "\n", - "4. [BONUS] Repeat 2-3 taking into account the variation in $x_{impact}$ due to misalignment. \n", - "\n", - "Given constants and constraints:\n", - "\n", - "- $d=$3 m, distance to target\n", - "\n", - "- $g=$9.81 m/s$^2$, acceleration due to gravity\n", - "\n", - "- $z(0)=$0.3 m, the initial height is 0.3 m above the bull's eye\n", - "\n", - "- 4 m/s$');\n", - " this._root_extra_style(this.root)\n", - " this.root.attr('style', 'display: inline-block');\n", - "\n", - " $(parent_element).append(this.root);\n", - "\n", - " this._init_header(this);\n", - " this._init_canvas(this);\n", - " this._init_toolbar(this);\n", - "\n", - " var fig = this;\n", - "\n", - " this.waiting = false;\n", - "\n", - " this.ws.onopen = function () {\n", - " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", - " fig.send_message(\"send_image_mode\", {});\n", - " if (mpl.ratio != 1) {\n", - " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", - " }\n", - " fig.send_message(\"refresh\", {});\n", - " }\n", - "\n", - " this.imageObj.onload = function() {\n", - " if (fig.image_mode == 'full') {\n", - " // Full images could contain transparency (where diff images\n", - " // almost always do), so we need to clear the canvas so that\n", - " // there is no ghosting.\n", - " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", - " }\n", - " fig.context.drawImage(fig.imageObj, 0, 0);\n", - " };\n", - "\n", - " this.imageObj.onunload = function() {\n", - " fig.ws.close();\n", - " }\n", - "\n", - " this.ws.onmessage = this._make_on_message_function(this);\n", - "\n", - " this.ondownload = ondownload;\n", - "}\n", - "\n", - "mpl.figure.prototype._init_header = function() {\n", - " var titlebar = $(\n", - " '
');\n", - " var titletext = $(\n", - " '
');\n", - " titlebar.append(titletext)\n", - " this.root.append(titlebar);\n", - " this.header = titletext[0];\n", - "}\n", - "\n", - "\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", - "\n", - "}\n", - "\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", - "\n", - "}\n", - "\n", - "mpl.figure.prototype._init_canvas = function() {\n", - " var fig = this;\n", - "\n", - " var canvas_div = $('
');\n", - "\n", - " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", - "\n", - " function canvas_keyboard_event(event) {\n", - " return fig.key_event(event, event['data']);\n", - " }\n", - "\n", - " canvas_div.keydown('key_press', canvas_keyboard_event);\n", - " canvas_div.keyup('key_release', canvas_keyboard_event);\n", - " this.canvas_div = canvas_div\n", - " this._canvas_extra_style(canvas_div)\n", - " this.root.append(canvas_div);\n", - "\n", - " var canvas = $('');\n", - " canvas.addClass('mpl-canvas');\n", - " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", - "\n", - " this.canvas = canvas[0];\n", - " this.context = canvas[0].getContext(\"2d\");\n", - "\n", - " var backingStore = this.context.backingStorePixelRatio ||\n", - "\tthis.context.webkitBackingStorePixelRatio ||\n", - "\tthis.context.mozBackingStorePixelRatio ||\n", - "\tthis.context.msBackingStorePixelRatio ||\n", - "\tthis.context.oBackingStorePixelRatio ||\n", - "\tthis.context.backingStorePixelRatio || 1;\n", - "\n", - " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", - "\n", - " var rubberband = $('');\n", - " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", - "\n", - " var pass_mouse_events = true;\n", - "\n", - " canvas_div.resizable({\n", - " start: function(event, ui) {\n", - " pass_mouse_events = false;\n", - " },\n", - " resize: function(event, ui) {\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " stop: function(event, ui) {\n", - " pass_mouse_events = true;\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " });\n", - "\n", - " function mouse_event_fn(event) {\n", - " if (pass_mouse_events)\n", - " return fig.mouse_event(event, event['data']);\n", - " }\n", - "\n", - " rubberband.mousedown('button_press', mouse_event_fn);\n", - " rubberband.mouseup('button_release', mouse_event_fn);\n", - " // Throttle sequential mouse events to 1 every 20ms.\n", - " rubberband.mousemove('motion_notify', mouse_event_fn);\n", - "\n", - " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", - " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", - "\n", - " canvas_div.on(\"wheel\", function (event) {\n", - " event = event.originalEvent;\n", - " event['data'] = 'scroll'\n", - " if (event.deltaY < 0) {\n", - " event.step = 1;\n", - " } else {\n", - " event.step = -1;\n", - " }\n", - " mouse_event_fn(event);\n", - " });\n", - "\n", - " canvas_div.append(canvas);\n", - " canvas_div.append(rubberband);\n", - "\n", - " this.rubberband = rubberband;\n", - " this.rubberband_canvas = rubberband[0];\n", - " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", - " this.rubberband_context.strokeStyle = \"#000000\";\n", - "\n", - " this._resize_canvas = function(width, height) {\n", - " // Keep the size of the canvas, canvas container, and rubber band\n", - " // canvas in synch.\n", - " canvas_div.css('width', width)\n", - " canvas_div.css('height', height)\n", - "\n", - " canvas.attr('width', width * mpl.ratio);\n", - " canvas.attr('height', height * mpl.ratio);\n", - " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", - "\n", - " rubberband.attr('width', width);\n", - " rubberband.attr('height', height);\n", - " }\n", - "\n", - " // Set the figure to an initial 600x600px, this will subsequently be updated\n", - " // upon first draw.\n", - " this._resize_canvas(600, 600);\n", - "\n", - " // Disable right mouse context menu.\n", - " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", - " return false;\n", - " });\n", - "\n", - " function set_focus () {\n", - " canvas.focus();\n", - " canvas_div.focus();\n", - " }\n", - "\n", - " window.setTimeout(set_focus, 100);\n", - "}\n", - "\n", - "mpl.figure.prototype._init_toolbar = function() {\n", - " var fig = this;\n", - "\n", - " var nav_element = $('
');\n", - " nav_element.attr('style', 'width: 100%');\n", - " this.root.append(nav_element);\n", - "\n", - " // Define a callback function for later on.\n", - " function toolbar_event(event) {\n", - " return fig.toolbar_button_onclick(event['data']);\n", - " }\n", - " function toolbar_mouse_event(event) {\n", - " return fig.toolbar_button_onmouseover(event['data']);\n", - " }\n", - "\n", - " for(var toolbar_ind in mpl.toolbar_items) {\n", - " var name = mpl.toolbar_items[toolbar_ind][0];\n", - " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", - " var image = mpl.toolbar_items[toolbar_ind][2];\n", - " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", - "\n", - " if (!name) {\n", - " // put a spacer in here.\n", - " continue;\n", - " }\n", - " var button = $('');\n", - " button.click(method_name, toolbar_event);\n", - " button.mouseover(tooltip, toolbar_mouse_event);\n", - " nav_element.append(button);\n", - " }\n", - "\n", - " // Add the status bar.\n", - " var status_bar = $('');\n", - " nav_element.append(status_bar);\n", - " this.message = status_bar[0];\n", - "\n", - " // Add the close button to the window.\n", - " var buttongrp = $('
');\n", - " var button = $('');\n", - " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", - " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", - " buttongrp.append(button);\n", - " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", - " titlebar.prepend(buttongrp);\n", - "}\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(el){\n", - " var fig = this\n", - " el.on(\"remove\", function(){\n", - "\tfig.close_ws(fig, {});\n", - " });\n", - "}\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(el){\n", - " // this is important to make the div 'focusable\n", - " el.attr('tabindex', 0)\n", - " // reach out to IPython and tell the keyboard manager to turn it's self\n", - " // off when our div gets focus\n", - "\n", - " // location in version 3\n", - " if (IPython.notebook.keyboard_manager) {\n", - " IPython.notebook.keyboard_manager.register_events(el);\n", - " }\n", - " else {\n", - " // location in version 2\n", - " IPython.keyboard_manager.register_events(el);\n", - " }\n", - "\n", - "}\n", - "\n", - "mpl.figure.prototype._key_event_extra = function(event, name) {\n", - " var manager = IPython.notebook.keyboard_manager;\n", - " if (!manager)\n", - " manager = IPython.keyboard_manager;\n", - "\n", - " // Check for shift+enter\n", - " if (event.shiftKey && event.which == 13) {\n", - " this.canvas_div.blur();\n", - " event.shiftKey = false;\n", - " // Send a \"J\" for go to next cell\n", - " event.which = 74;\n", - " event.keyCode = 74;\n", - " manager.command_mode();\n", - " manager.handle_keydown(event);\n", - " }\n", - "}\n", - "\n", - "mpl.figure.prototype.handle_save = function(fig, msg) {\n", - " fig.ondownload(fig, null);\n", - "}\n", - "\n", - "\n", - "mpl.find_output_cell = function(html_output) {\n", - " // Return the cell and output element which can be found *uniquely* in the notebook.\n", - " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", - " // IPython event is triggered only after the cells have been serialised, which for\n", - " // our purposes (turning an active figure into a static one), is too late.\n", - " var cells = IPython.notebook.get_cells();\n", - " var ncells = cells.length;\n", - " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", - " data = data.data;\n", - " }\n", - " if (data['text/html'] == html_output) {\n", - " return [cell, data, j];\n", - " }\n", - " }\n", - " }\n", - " }\n", - "}\n", - "\n", - "// Register the function which deals with the matplotlib target/channel.\n", - "// The kernel may be null if the page has been refreshed.\n", - "if (IPython.notebook.kernel != null) {\n", - " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", - "}\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = plt.figure(3)\n", - "plt.imshow(im1, interpolation='nearest')\n", - "\n", - "coords = []\n", - "connectId = fig.canvas.mpl_connect('button_press_event', onclick)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Notice that in the previous code cell, we created an empty list named `coords`, and inside the `onclick()` function, we are appending to it the $(x,y)$ coordinates of each mouse click on the figure. After executing the cell above, you have a connection to the figure, via the user interface: try clicking with your mouse on the endpoints of the white lines of the metered panel (click on the edge of the panel to get approximately equal $x$ coordinates), then print the contents of the `coords` list below." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "coords" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The $x$ coordinates are pretty close, but there is some variation due to our shaky hand (or bad eyesight), and perhaps because the metered panel is not perfectly vertical. We can cast the `coords` list to a NumPy array, then grab all the first elements of the coordinate pairs, then get the standard deviation as an indication of our error in the mouse-click captures." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Save your work to a file\n", - "\n", - "In the next two code cells, we assign the clicks that were in the list `coords` to a numpy array `hits1`. Then, we save this array to the file `hits_im1.npy`. This is a numpy-readable file that we can load back into our workspace later as `np.load('../data/hits_im1.npy')`." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "hits1 = np.array(coords)" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "np.save('../data/hits_im1.npy',hits1)" - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "metadata": {}, - "outputs": [ - { - "data": { - "application/javascript": [ - "/* Put everything inside the global mpl namespace */\n", - "window.mpl = {};\n", - "\n", - "\n", - "mpl.get_websocket_type = function() {\n", - " if (typeof(WebSocket) !== 'undefined') {\n", - " return WebSocket;\n", - " } else if (typeof(MozWebSocket) !== 'undefined') {\n", - " return MozWebSocket;\n", - " } else {\n", - " alert('Your browser does not have WebSocket support. ' +\n", - " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", - " 'Firefox 4 and 5 are also supported but you ' +\n", - " 'have to enable WebSockets in about:config.');\n", - " };\n", - "}\n", - "\n", - "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", - " this.id = figure_id;\n", - "\n", - " this.ws = websocket;\n", - "\n", - " this.supports_binary = (this.ws.binaryType != undefined);\n", - "\n", - " if (!this.supports_binary) {\n", - " var warnings = document.getElementById(\"mpl-warnings\");\n", - " if (warnings) {\n", - " warnings.style.display = 'block';\n", - " warnings.textContent = (\n", - " \"This browser does not support binary websocket messages. \" +\n", - " \"Performance may be slow.\");\n", - " }\n", - " }\n", - "\n", - " this.imageObj = new Image();\n", - "\n", - " this.context = undefined;\n", - " this.message = undefined;\n", - " this.canvas = undefined;\n", - " this.rubberband_canvas = undefined;\n", - " this.rubberband_context = undefined;\n", - " this.format_dropdown = undefined;\n", - "\n", - " this.image_mode = 'full';\n", - "\n", - " this.root = $('
');\n", - " this._root_extra_style(this.root)\n", - " this.root.attr('style', 'display: inline-block');\n", - "\n", - " $(parent_element).append(this.root);\n", - "\n", - " this._init_header(this);\n", - " this._init_canvas(this);\n", - " this._init_toolbar(this);\n", - "\n", - " var fig = this;\n", - "\n", - " this.waiting = false;\n", - "\n", - " this.ws.onopen = function () {\n", - " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", - " fig.send_message(\"send_image_mode\", {});\n", - " if (mpl.ratio != 1) {\n", - " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", - " }\n", - " fig.send_message(\"refresh\", {});\n", - " }\n", - "\n", - " this.imageObj.onload = function() {\n", - " if (fig.image_mode == 'full') {\n", - " // Full images could contain transparency (where diff images\n", - " // almost always do), so we need to clear the canvas so that\n", - " // there is no ghosting.\n", - " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", - " }\n", - " fig.context.drawImage(fig.imageObj, 0, 0);\n", - " };\n", - "\n", - " this.imageObj.onunload = function() {\n", - " fig.ws.close();\n", - " }\n", - "\n", - " this.ws.onmessage = this._make_on_message_function(this);\n", - "\n", - " this.ondownload = ondownload;\n", - "}\n", - "\n", - "mpl.figure.prototype._init_header = function() {\n", - " var titlebar = $(\n", - " '
');\n", - " var titletext = $(\n", - " '
');\n", - " titlebar.append(titletext)\n", - " this.root.append(titlebar);\n", - " this.header = titletext[0];\n", - "}\n", - "\n", - "\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", - "\n", - "}\n", - "\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", - "\n", - "}\n", - "\n", - "mpl.figure.prototype._init_canvas = function() {\n", - " var fig = this;\n", - "\n", - " var canvas_div = $('
');\n", - "\n", - " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", - "\n", - " function canvas_keyboard_event(event) {\n", - " return fig.key_event(event, event['data']);\n", - " }\n", - "\n", - " canvas_div.keydown('key_press', canvas_keyboard_event);\n", - " canvas_div.keyup('key_release', canvas_keyboard_event);\n", - " this.canvas_div = canvas_div\n", - " this._canvas_extra_style(canvas_div)\n", - " this.root.append(canvas_div);\n", - "\n", - " var canvas = $('');\n", - " canvas.addClass('mpl-canvas');\n", - " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", - "\n", - " this.canvas = canvas[0];\n", - " this.context = canvas[0].getContext(\"2d\");\n", - "\n", - " var backingStore = this.context.backingStorePixelRatio ||\n", - "\tthis.context.webkitBackingStorePixelRatio ||\n", - "\tthis.context.mozBackingStorePixelRatio ||\n", - "\tthis.context.msBackingStorePixelRatio ||\n", - "\tthis.context.oBackingStorePixelRatio ||\n", - "\tthis.context.backingStorePixelRatio || 1;\n", - "\n", - " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", - "\n", - " var rubberband = $('');\n", - " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", - "\n", - " var pass_mouse_events = true;\n", - "\n", - " canvas_div.resizable({\n", - " start: function(event, ui) {\n", - " pass_mouse_events = false;\n", - " },\n", - " resize: function(event, ui) {\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " stop: function(event, ui) {\n", - " pass_mouse_events = true;\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " });\n", - "\n", - " function mouse_event_fn(event) {\n", - " if (pass_mouse_events)\n", - " return fig.mouse_event(event, event['data']);\n", - " }\n", - "\n", - " rubberband.mousedown('button_press', mouse_event_fn);\n", - " rubberband.mouseup('button_release', mouse_event_fn);\n", - " // Throttle sequential mouse events to 1 every 20ms.\n", - " rubberband.mousemove('motion_notify', mouse_event_fn);\n", - "\n", - " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", - " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", - "\n", - " canvas_div.on(\"wheel\", function (event) {\n", - " event = event.originalEvent;\n", - " event['data'] = 'scroll'\n", - " if (event.deltaY < 0) {\n", - " event.step = 1;\n", - " } else {\n", - " event.step = -1;\n", - " }\n", - " mouse_event_fn(event);\n", - " });\n", - "\n", - " canvas_div.append(canvas);\n", - " canvas_div.append(rubberband);\n", - "\n", - " this.rubberband = rubberband;\n", - " this.rubberband_canvas = rubberband[0];\n", - " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", - " this.rubberband_context.strokeStyle = \"#000000\";\n", - "\n", - " this._resize_canvas = function(width, height) {\n", - " // Keep the size of the canvas, canvas container, and rubber band\n", - " // canvas in synch.\n", - " canvas_div.css('width', width)\n", - " canvas_div.css('height', height)\n", - "\n", - " canvas.attr('width', width * mpl.ratio);\n", - " canvas.attr('height', height * mpl.ratio);\n", - " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", - "\n", - " rubberband.attr('width', width);\n", - " rubberband.attr('height', height);\n", - " }\n", - "\n", - " // Set the figure to an initial 600x600px, this will subsequently be updated\n", - " // upon first draw.\n", - " this._resize_canvas(600, 600);\n", - "\n", - " // Disable right mouse context menu.\n", - " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", - " return false;\n", - " });\n", - "\n", - " function set_focus () {\n", - " canvas.focus();\n", - " canvas_div.focus();\n", - " }\n", - "\n", - " window.setTimeout(set_focus, 100);\n", - "}\n", - "\n", - "mpl.figure.prototype._init_toolbar = function() {\n", - " var fig = this;\n", - "\n", - " var nav_element = $('
');\n", - " nav_element.attr('style', 'width: 100%');\n", - " this.root.append(nav_element);\n", - "\n", - " // Define a callback function for later on.\n", - " function toolbar_event(event) {\n", - " return fig.toolbar_button_onclick(event['data']);\n", - " }\n", - " function toolbar_mouse_event(event) {\n", - " return fig.toolbar_button_onmouseover(event['data']);\n", - " }\n", - "\n", - " for(var toolbar_ind in mpl.toolbar_items) {\n", - " var name = mpl.toolbar_items[toolbar_ind][0];\n", - " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", - " var image = mpl.toolbar_items[toolbar_ind][2];\n", - " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", - "\n", - " if (!name) {\n", - " // put a spacer in here.\n", - " continue;\n", - " }\n", - " var button = $('');\n", - " button.click(method_name, toolbar_event);\n", - " button.mouseover(tooltip, toolbar_mouse_event);\n", - " nav_element.append(button);\n", - " }\n", - "\n", - " // Add the status bar.\n", - " var status_bar = $('');\n", - " nav_element.append(status_bar);\n", - " this.message = status_bar[0];\n", - "\n", - " // Add the close button to the window.\n", - " var buttongrp = $('
');\n", - " var button = $('');\n", - " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", - " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", - " buttongrp.append(button);\n", - " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", - " titlebar.prepend(buttongrp);\n", - "}\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(el){\n", - " var fig = this\n", - " el.on(\"remove\", function(){\n", - "\tfig.close_ws(fig, {});\n", - " });\n", - "}\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(el){\n", - " // this is important to make the div 'focusable\n", - " el.attr('tabindex', 0)\n", - " // reach out to IPython and tell the keyboard manager to turn it's self\n", - " // off when our div gets focus\n", - "\n", - " // location in version 3\n", - " if (IPython.notebook.keyboard_manager) {\n", - " IPython.notebook.keyboard_manager.register_events(el);\n", - " }\n", - " else {\n", - " // location in version 2\n", - " IPython.keyboard_manager.register_events(el);\n", - " }\n", - "\n", - "}\n", - "\n", - "mpl.figure.prototype._key_event_extra = function(event, name) {\n", - " var manager = IPython.notebook.keyboard_manager;\n", - " if (!manager)\n", - " manager = IPython.keyboard_manager;\n", - "\n", - " // Check for shift+enter\n", - " if (event.shiftKey && event.which == 13) {\n", - " this.canvas_div.blur();\n", - " event.shiftKey = false;\n", - " // Send a \"J\" for go to next cell\n", - " event.which = 74;\n", - " event.keyCode = 74;\n", - " manager.command_mode();\n", - " manager.handle_keydown(event);\n", - " }\n", - "}\n", - "\n", - "mpl.figure.prototype.handle_save = function(fig, msg) {\n", - " fig.ondownload(fig, null);\n", - "}\n", - "\n", - "\n", - "mpl.find_output_cell = function(html_output) {\n", - " // Return the cell and output element which can be found *uniquely* in the notebook.\n", - " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", - " // IPython event is triggered only after the cells have been serialised, which for\n", - " // our purposes (turning an active figure into a static one), is too late.\n", - " var cells = IPython.notebook.get_cells();\n", - " var ncells = cells.length;\n", - " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", - " data = data.data;\n", - " }\n", - " if (data['text/html'] == html_output) {\n", - " return [cell, data, j];\n", - " }\n", - " }\n", - " }\n", - " }\n", - "}\n", - "\n", - "// Register the function which deals with the matplotlib target/channel.\n", - "// The kernel may be null if the page has been refreshed.\n", - "if (IPython.notebook.kernel != null) {\n", - " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", - "}\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = plt.figure()\n", - "plt.imshow(im2, interpolation='nearest')\n", - "\n", - "coords = []\n", - "connectId = fig.canvas.mpl_connect('button_press_event', onclick)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The $x$ coordinates are pretty close, but there is some variation due to our shaky hand (or bad eyesight), and perhaps because the metered panel is not perfectly vertical. We can cast the `coords` list to a NumPy array, then grab all the first elements of the coordinate pairs, then get the standard deviation as an indication of our error in the mouse-click captures." - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], - "source": [ - "hits2 = np.array(coords)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Save your work to a file\n", - "\n", - "In the next two code cells, we assign the clicks that were in the list `coords` to a numpy array `hits2`. Then, we save this array to the file `hits_im2.npy`. This is a numpy-readable file that we can load back into our workspace later as `np.load('../data/hits_im2.npy')`." - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "metadata": {}, - "outputs": [], - "source": [ - "np.save('../data/hits_im2.npy',hits2)" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "metadata": {}, - "outputs": [ - { - "data": { - "application/javascript": [ - "/* Put everything inside the global mpl namespace */\n", - "window.mpl = {};\n", - "\n", - "\n", - "mpl.get_websocket_type = function() {\n", - " if (typeof(WebSocket) !== 'undefined') {\n", - " return WebSocket;\n", - " } else if (typeof(MozWebSocket) !== 'undefined') {\n", - " return MozWebSocket;\n", - " } else {\n", - " alert('Your browser does not have WebSocket support. ' +\n", - " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", - " 'Firefox 4 and 5 are also supported but you ' +\n", - " 'have to enable WebSockets in about:config.');\n", - " };\n", - "}\n", - "\n", - "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", - " this.id = figure_id;\n", - "\n", - " this.ws = websocket;\n", - "\n", - " this.supports_binary = (this.ws.binaryType != undefined);\n", - "\n", - " if (!this.supports_binary) {\n", - " var warnings = document.getElementById(\"mpl-warnings\");\n", - " if (warnings) {\n", - " warnings.style.display = 'block';\n", - " warnings.textContent = (\n", - " \"This browser does not support binary websocket messages. \" +\n", - " \"Performance may be slow.\");\n", - " }\n", - " }\n", - "\n", - " this.imageObj = new Image();\n", - "\n", - " this.context = undefined;\n", - " this.message = undefined;\n", - " this.canvas = undefined;\n", - " this.rubberband_canvas = undefined;\n", - " this.rubberband_context = undefined;\n", - " this.format_dropdown = undefined;\n", - "\n", - " this.image_mode = 'full';\n", - "\n", - " this.root = $('
');\n", - " this._root_extra_style(this.root)\n", - " this.root.attr('style', 'display: inline-block');\n", - "\n", - " $(parent_element).append(this.root);\n", - "\n", - " this._init_header(this);\n", - " this._init_canvas(this);\n", - " this._init_toolbar(this);\n", - "\n", - " var fig = this;\n", - "\n", - " this.waiting = false;\n", - "\n", - " this.ws.onopen = function () {\n", - " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", - " fig.send_message(\"send_image_mode\", {});\n", - " if (mpl.ratio != 1) {\n", - " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", - " }\n", - " fig.send_message(\"refresh\", {});\n", - " }\n", - "\n", - " this.imageObj.onload = function() {\n", - " if (fig.image_mode == 'full') {\n", - " // Full images could contain transparency (where diff images\n", - " // almost always do), so we need to clear the canvas so that\n", - " // there is no ghosting.\n", - " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", - " }\n", - " fig.context.drawImage(fig.imageObj, 0, 0);\n", - " };\n", - "\n", - " this.imageObj.onunload = function() {\n", - " fig.ws.close();\n", - " }\n", - "\n", - " this.ws.onmessage = this._make_on_message_function(this);\n", - "\n", - " this.ondownload = ondownload;\n", - "}\n", - "\n", - "mpl.figure.prototype._init_header = function() {\n", - " var titlebar = $(\n", - " '
');\n", - " var titletext = $(\n", - " '
');\n", - " titlebar.append(titletext)\n", - " this.root.append(titlebar);\n", - " this.header = titletext[0];\n", - "}\n", - "\n", - "\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", - "\n", - "}\n", - "\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", - "\n", - "}\n", - "\n", - "mpl.figure.prototype._init_canvas = function() {\n", - " var fig = this;\n", - "\n", - " var canvas_div = $('
');\n", - "\n", - " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", - "\n", - " function canvas_keyboard_event(event) {\n", - " return fig.key_event(event, event['data']);\n", - " }\n", - "\n", - " canvas_div.keydown('key_press', canvas_keyboard_event);\n", - " canvas_div.keyup('key_release', canvas_keyboard_event);\n", - " this.canvas_div = canvas_div\n", - " this._canvas_extra_style(canvas_div)\n", - " this.root.append(canvas_div);\n", - "\n", - " var canvas = $('');\n", - " canvas.addClass('mpl-canvas');\n", - " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", - "\n", - " this.canvas = canvas[0];\n", - " this.context = canvas[0].getContext(\"2d\");\n", - "\n", - " var backingStore = this.context.backingStorePixelRatio ||\n", - "\tthis.context.webkitBackingStorePixelRatio ||\n", - "\tthis.context.mozBackingStorePixelRatio ||\n", - "\tthis.context.msBackingStorePixelRatio ||\n", - "\tthis.context.oBackingStorePixelRatio ||\n", - "\tthis.context.backingStorePixelRatio || 1;\n", - "\n", - " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", - "\n", - " var rubberband = $('');\n", - " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", - "\n", - " var pass_mouse_events = true;\n", - "\n", - " canvas_div.resizable({\n", - " start: function(event, ui) {\n", - " pass_mouse_events = false;\n", - " },\n", - " resize: function(event, ui) {\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " stop: function(event, ui) {\n", - " pass_mouse_events = true;\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " });\n", - "\n", - " function mouse_event_fn(event) {\n", - " if (pass_mouse_events)\n", - " return fig.mouse_event(event, event['data']);\n", - " }\n", - "\n", - " rubberband.mousedown('button_press', mouse_event_fn);\n", - " rubberband.mouseup('button_release', mouse_event_fn);\n", - " // Throttle sequential mouse events to 1 every 20ms.\n", - " rubberband.mousemove('motion_notify', mouse_event_fn);\n", - "\n", - " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", - " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", - "\n", - " canvas_div.on(\"wheel\", function (event) {\n", - " event = event.originalEvent;\n", - " event['data'] = 'scroll'\n", - " if (event.deltaY < 0) {\n", - " event.step = 1;\n", - " } else {\n", - " event.step = -1;\n", - " }\n", - " mouse_event_fn(event);\n", - " });\n", - "\n", - " canvas_div.append(canvas);\n", - " canvas_div.append(rubberband);\n", - "\n", - " this.rubberband = rubberband;\n", - " this.rubberband_canvas = rubberband[0];\n", - " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", - " this.rubberband_context.strokeStyle = \"#000000\";\n", - "\n", - " this._resize_canvas = function(width, height) {\n", - " // Keep the size of the canvas, canvas container, and rubber band\n", - " // canvas in synch.\n", - " canvas_div.css('width', width)\n", - " canvas_div.css('height', height)\n", - "\n", - " canvas.attr('width', width * mpl.ratio);\n", - " canvas.attr('height', height * mpl.ratio);\n", - " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", - "\n", - " rubberband.attr('width', width);\n", - " rubberband.attr('height', height);\n", - " }\n", - "\n", - " // Set the figure to an initial 600x600px, this will subsequently be updated\n", - " // upon first draw.\n", - " this._resize_canvas(600, 600);\n", - "\n", - " // Disable right mouse context menu.\n", - " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", - " return false;\n", - " });\n", - "\n", - " function set_focus () {\n", - " canvas.focus();\n", - " canvas_div.focus();\n", - " }\n", - "\n", - " window.setTimeout(set_focus, 100);\n", - "}\n", - "\n", - "mpl.figure.prototype._init_toolbar = function() {\n", - " var fig = this;\n", - "\n", - " var nav_element = $('
');\n", - " nav_element.attr('style', 'width: 100%');\n", - " this.root.append(nav_element);\n", - "\n", - " // Define a callback function for later on.\n", - " function toolbar_event(event) {\n", - " return fig.toolbar_button_onclick(event['data']);\n", - " }\n", - " function toolbar_mouse_event(event) {\n", - " return fig.toolbar_button_onmouseover(event['data']);\n", - " }\n", - "\n", - " for(var toolbar_ind in mpl.toolbar_items) {\n", - " var name = mpl.toolbar_items[toolbar_ind][0];\n", - " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", - " var image = mpl.toolbar_items[toolbar_ind][2];\n", - " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", - "\n", - " if (!name) {\n", - " // put a spacer in here.\n", - " continue;\n", - " }\n", - " var button = $('');\n", - " button.click(method_name, toolbar_event);\n", - " button.mouseover(tooltip, toolbar_mouse_event);\n", - " nav_element.append(button);\n", - " }\n", - "\n", - " // Add the status bar.\n", - " var status_bar = $('');\n", - " nav_element.append(status_bar);\n", - " this.message = status_bar[0];\n", - "\n", - " // Add the close button to the window.\n", - " var buttongrp = $('
');\n", - " var button = $('');\n", - " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", - " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", - " buttongrp.append(button);\n", - " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", - " titlebar.prepend(buttongrp);\n", - "}\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(el){\n", - " var fig = this\n", - " el.on(\"remove\", function(){\n", - "\tfig.close_ws(fig, {});\n", - " });\n", - "}\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(el){\n", - " // this is important to make the div 'focusable\n", - " el.attr('tabindex', 0)\n", - " // reach out to IPython and tell the keyboard manager to turn it's self\n", - " // off when our div gets focus\n", - "\n", - " // location in version 3\n", - " if (IPython.notebook.keyboard_manager) {\n", - " IPython.notebook.keyboard_manager.register_events(el);\n", - " }\n", - " else {\n", - " // location in version 2\n", - " IPython.keyboard_manager.register_events(el);\n", - " }\n", - "\n", - "}\n", - "\n", - "mpl.figure.prototype._key_event_extra = function(event, name) {\n", - " var manager = IPython.notebook.keyboard_manager;\n", - " if (!manager)\n", - " manager = IPython.keyboard_manager;\n", - "\n", - " // Check for shift+enter\n", - " if (event.shiftKey && event.which == 13) {\n", - " this.canvas_div.blur();\n", - " event.shiftKey = false;\n", - " // Send a \"J\" for go to next cell\n", - " event.which = 74;\n", - " event.keyCode = 74;\n", - " manager.command_mode();\n", - " manager.handle_keydown(event);\n", - " }\n", - "}\n", - "\n", - "mpl.figure.prototype.handle_save = function(fig, msg) {\n", - " fig.ondownload(fig, null);\n", - "}\n", - "\n", - "\n", - "mpl.find_output_cell = function(html_output) {\n", - " // Return the cell and output element which can be found *uniquely* in the notebook.\n", - " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", - " // IPython event is triggered only after the cells have been serialised, which for\n", - " // our purposes (turning an active figure into a static one), is too late.\n", - " var cells = IPython.notebook.get_cells();\n", - " var ncells = cells.length;\n", - " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", - " data = data.data;\n", - " }\n", - " if (data['text/html'] == html_output) {\n", - " return [cell, data, j];\n", - " }\n", - " }\n", - " }\n", - " }\n", - "}\n", - "\n", - "// Register the function which deals with the matplotlib target/channel.\n", - "// The kernel may be null if the page has been refreshed.\n", - "if (IPython.notebook.kernel != null) {\n", - " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", - "}\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = plt.figure()\n", - "plt.imshow(im1, interpolation='nearest')\n", - "\n", - "coords = []\n", - "connectId = fig.canvas.mpl_connect('button_press_event', onclick)" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [], - "source": [ - "corners1 =np.array(coords)" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "application/javascript": [ - "/* Put everything inside the global mpl namespace */\n", - "window.mpl = {};\n", - "\n", - "\n", - "mpl.get_websocket_type = function() {\n", - " if (typeof(WebSocket) !== 'undefined') {\n", - " return WebSocket;\n", - " } else if (typeof(MozWebSocket) !== 'undefined') {\n", - " return MozWebSocket;\n", - " } else {\n", - " alert('Your browser does not have WebSocket support. ' +\n", - " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", - " 'Firefox 4 and 5 are also supported but you ' +\n", - " 'have to enable WebSockets in about:config.');\n", - " };\n", - "}\n", - "\n", - "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", - " this.id = figure_id;\n", - "\n", - " this.ws = websocket;\n", - "\n", - " this.supports_binary = (this.ws.binaryType != undefined);\n", - "\n", - " if (!this.supports_binary) {\n", - " var warnings = document.getElementById(\"mpl-warnings\");\n", - " if (warnings) {\n", - " warnings.style.display = 'block';\n", - " warnings.textContent = (\n", - " \"This browser does not support binary websocket messages. \" +\n", - " \"Performance may be slow.\");\n", - " }\n", - " }\n", - "\n", - " this.imageObj = new Image();\n", - "\n", - " this.context = undefined;\n", - " this.message = undefined;\n", - " this.canvas = undefined;\n", - " this.rubberband_canvas = undefined;\n", - " this.rubberband_context = undefined;\n", - " this.format_dropdown = undefined;\n", - "\n", - " this.image_mode = 'full';\n", - "\n", - " this.root = $('
');\n", - " this._root_extra_style(this.root)\n", - " this.root.attr('style', 'display: inline-block');\n", - "\n", - " $(parent_element).append(this.root);\n", - "\n", - " this._init_header(this);\n", - " this._init_canvas(this);\n", - " this._init_toolbar(this);\n", - "\n", - " var fig = this;\n", - "\n", - " this.waiting = false;\n", - "\n", - " this.ws.onopen = function () {\n", - " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", - " fig.send_message(\"send_image_mode\", {});\n", - " if (mpl.ratio != 1) {\n", - " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", - " }\n", - " fig.send_message(\"refresh\", {});\n", - " }\n", - "\n", - " this.imageObj.onload = function() {\n", - " if (fig.image_mode == 'full') {\n", - " // Full images could contain transparency (where diff images\n", - " // almost always do), so we need to clear the canvas so that\n", - " // there is no ghosting.\n", - " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", - " }\n", - " fig.context.drawImage(fig.imageObj, 0, 0);\n", - " };\n", - "\n", - " this.imageObj.onunload = function() {\n", - " fig.ws.close();\n", - " }\n", - "\n", - " this.ws.onmessage = this._make_on_message_function(this);\n", - "\n", - " this.ondownload = ondownload;\n", - "}\n", - "\n", - "mpl.figure.prototype._init_header = function() {\n", - " var titlebar = $(\n", - " '
');\n", - " var titletext = $(\n", - " '
');\n", - " titlebar.append(titletext)\n", - " this.root.append(titlebar);\n", - " this.header = titletext[0];\n", - "}\n", - "\n", - "\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", - "\n", - "}\n", - "\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", - "\n", - "}\n", - "\n", - "mpl.figure.prototype._init_canvas = function() {\n", - " var fig = this;\n", - "\n", - " var canvas_div = $('
');\n", - "\n", - " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", - "\n", - " function canvas_keyboard_event(event) {\n", - " return fig.key_event(event, event['data']);\n", - " }\n", - "\n", - " canvas_div.keydown('key_press', canvas_keyboard_event);\n", - " canvas_div.keyup('key_release', canvas_keyboard_event);\n", - " this.canvas_div = canvas_div\n", - " this._canvas_extra_style(canvas_div)\n", - " this.root.append(canvas_div);\n", - "\n", - " var canvas = $('');\n", - " canvas.addClass('mpl-canvas');\n", - " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", - "\n", - " this.canvas = canvas[0];\n", - " this.context = canvas[0].getContext(\"2d\");\n", - "\n", - " var backingStore = this.context.backingStorePixelRatio ||\n", - "\tthis.context.webkitBackingStorePixelRatio ||\n", - "\tthis.context.mozBackingStorePixelRatio ||\n", - "\tthis.context.msBackingStorePixelRatio ||\n", - "\tthis.context.oBackingStorePixelRatio ||\n", - "\tthis.context.backingStorePixelRatio || 1;\n", - "\n", - " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", - "\n", - " var rubberband = $('');\n", - " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", - "\n", - " var pass_mouse_events = true;\n", - "\n", - " canvas_div.resizable({\n", - " start: function(event, ui) {\n", - " pass_mouse_events = false;\n", - " },\n", - " resize: function(event, ui) {\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " stop: function(event, ui) {\n", - " pass_mouse_events = true;\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " });\n", - "\n", - " function mouse_event_fn(event) {\n", - " if (pass_mouse_events)\n", - " return fig.mouse_event(event, event['data']);\n", - " }\n", - "\n", - " rubberband.mousedown('button_press', mouse_event_fn);\n", - " rubberband.mouseup('button_release', mouse_event_fn);\n", - " // Throttle sequential mouse events to 1 every 20ms.\n", - " rubberband.mousemove('motion_notify', mouse_event_fn);\n", - "\n", - " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", - " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", - "\n", - " canvas_div.on(\"wheel\", function (event) {\n", - " event = event.originalEvent;\n", - " event['data'] = 'scroll'\n", - " if (event.deltaY < 0) {\n", - " event.step = 1;\n", - " } else {\n", - " event.step = -1;\n", - " }\n", - " mouse_event_fn(event);\n", - " });\n", - "\n", - " canvas_div.append(canvas);\n", - " canvas_div.append(rubberband);\n", - "\n", - " this.rubberband = rubberband;\n", - " this.rubberband_canvas = rubberband[0];\n", - " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", - " this.rubberband_context.strokeStyle = \"#000000\";\n", - "\n", - " this._resize_canvas = function(width, height) {\n", - " // Keep the size of the canvas, canvas container, and rubber band\n", - " // canvas in synch.\n", - " canvas_div.css('width', width)\n", - " canvas_div.css('height', height)\n", - "\n", - " canvas.attr('width', width * mpl.ratio);\n", - " canvas.attr('height', height * mpl.ratio);\n", - " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", - "\n", - " rubberband.attr('width', width);\n", - " rubberband.attr('height', height);\n", - " }\n", - "\n", - " // Set the figure to an initial 600x600px, this will subsequently be updated\n", - " // upon first draw.\n", - " this._resize_canvas(600, 600);\n", - "\n", - " // Disable right mouse context menu.\n", - " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", - " return false;\n", - " });\n", - "\n", - " function set_focus () {\n", - " canvas.focus();\n", - " canvas_div.focus();\n", - " }\n", - "\n", - " window.setTimeout(set_focus, 100);\n", - "}\n", - "\n", - "mpl.figure.prototype._init_toolbar = function() {\n", - " var fig = this;\n", - "\n", - " var nav_element = $('
');\n", - " nav_element.attr('style', 'width: 100%');\n", - " this.root.append(nav_element);\n", - "\n", - " // Define a callback function for later on.\n", - " function toolbar_event(event) {\n", - " return fig.toolbar_button_onclick(event['data']);\n", - " }\n", - " function toolbar_mouse_event(event) {\n", - " return fig.toolbar_button_onmouseover(event['data']);\n", - " }\n", - "\n", - " for(var toolbar_ind in mpl.toolbar_items) {\n", - " var name = mpl.toolbar_items[toolbar_ind][0];\n", - " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", - " var image = mpl.toolbar_items[toolbar_ind][2];\n", - " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", - "\n", - " if (!name) {\n", - " // put a spacer in here.\n", - " continue;\n", - " }\n", - " var button = $('');\n", - " button.click(method_name, toolbar_event);\n", - " button.mouseover(tooltip, toolbar_mouse_event);\n", - " nav_element.append(button);\n", - " }\n", - "\n", - " // Add the status bar.\n", - " var status_bar = $('');\n", - " nav_element.append(status_bar);\n", - " this.message = status_bar[0];\n", - "\n", - " // Add the close button to the window.\n", - " var buttongrp = $('
');\n", - " var button = $('');\n", - " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", - " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", - " buttongrp.append(button);\n", - " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", - " titlebar.prepend(buttongrp);\n", - "}\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(el){\n", - " var fig = this\n", - " el.on(\"remove\", function(){\n", - "\tfig.close_ws(fig, {});\n", - " });\n", - "}\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(el){\n", - " // this is important to make the div 'focusable\n", - " el.attr('tabindex', 0)\n", - " // reach out to IPython and tell the keyboard manager to turn it's self\n", - " // off when our div gets focus\n", - "\n", - " // location in version 3\n", - " if (IPython.notebook.keyboard_manager) {\n", - " IPython.notebook.keyboard_manager.register_events(el);\n", - " }\n", - " else {\n", - " // location in version 2\n", - " IPython.keyboard_manager.register_events(el);\n", - " }\n", - "\n", - "}\n", - "\n", - "mpl.figure.prototype._key_event_extra = function(event, name) {\n", - " var manager = IPython.notebook.keyboard_manager;\n", - " if (!manager)\n", - " manager = IPython.keyboard_manager;\n", - "\n", - " // Check for shift+enter\n", - " if (event.shiftKey && event.which == 13) {\n", - " this.canvas_div.blur();\n", - " event.shiftKey = false;\n", - " // Send a \"J\" for go to next cell\n", - " event.which = 74;\n", - " event.keyCode = 74;\n", - " manager.command_mode();\n", - " manager.handle_keydown(event);\n", - " }\n", - "}\n", - "\n", - "mpl.figure.prototype.handle_save = function(fig, msg) {\n", - " fig.ondownload(fig, null);\n", - "}\n", - "\n", - "\n", - "mpl.find_output_cell = function(html_output) {\n", - " // Return the cell and output element which can be found *uniquely* in the notebook.\n", - " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", - " // IPython event is triggered only after the cells have been serialised, which for\n", - " // our purposes (turning an active figure into a static one), is too late.\n", - " var cells = IPython.notebook.get_cells();\n", - " var ncells = cells.length;\n", - " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", - " data = data.data;\n", - " }\n", - " if (data['text/html'] == html_output) {\n", - " return [cell, data, j];\n", - " }\n", - " }\n", - " }\n", - " }\n", - "}\n", - "\n", - "// Register the function which deals with the matplotlib target/channel.\n", - "// The kernel may be null if the page has been refreshed.\n", - "if (IPython.notebook.kernel != null) {\n", - " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", - "}\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "Text(0, 0.5, 'x-axis')" - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "plt.figure()\n", - "\n", - "center1_x = np.mean(corners1[:,0])\n", - "center1_y = np.mean(corners1[:,1])\n", - "\n", - "center2_x = np.mean(corners2[:,0])\n", - "center2_y = np.mean(corners2[:,1])\n", - "\n", - "plt.imshow(im1)\n", - "\n", - "plt.plot(corners1[:,0],corners1[:,1],'o')\n", - "plt.plot(corners2[:,0],corners2[:,1],'s')\n", - "\n", - "plt.plot(center1_x,center1_y,'+')\n", - "plt.plot(center2_x,center2_y,'x')\n", - "plt.plot(1500,2500,'s')\n", - "plt.xlabel('y-axis')\n", - "plt.ylabel('x-axis')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You can see above that each image will have a different scale to convert from position in pixels to position in meters. This is the case for all quantitative image data, every time a camera is repositioned you will have a new scale to convert pixels to meters. \n", - "\n", - "Below, we use the 0.9144-m distance between corner locations to set oour `im1_scale` and `im2_scale` for target_01.jpg and target_02.jpg, respectively. " - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "target_01.jpg has conversion 0.00059 meter/pixel\n", - "target_02.jpg has conversion 0.00048 meter/pixel\n" - ] - } - ], - "source": [ - "d1=np.sqrt((corners1[0,0]-corners1[1,0])**2+(corners1[0,1]-corners1[1,1])**2)\n", - "d2=np.sqrt((corners1[2,0]-corners1[3,0])**2+(corners1[2,1]-corners1[3,1])**2)\n", - "\n", - "\n", - "im1_scale = 0.9144/np.mean([d1,d2]) # in 0.9144 meters/ pixel distance\n", - "print('target_01.jpg has conversion {:.2} meter/pixel'.format(im1_scale))\n", - "d1=np.sqrt((corners2[0,0]-corners2[1,0])**2+(corners2[0,1]-corners2[1,1])**2)\n", - "d2=np.sqrt((corners2[2,0]-corners2[3,0])**2+(corners2[2,1]-corners2[3,1])**2)\n", - "\n", - "\n", - "im2_scale = 0.9144/np.mean([d1,d2]) # in 0.9144 meters/ pixel distance\n", - "print('target_02.jpg has conversion {:.2} meter/pixel'.format(im2_scale))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Final Data preparation\n", - "\n", - "So far, we have\n", - "\n", - "1. Chosen hit points on two images\n", - "\n", - "2. Chosen calibration points on two images\n", - "\n", - "2. Determined a local reference in each image i.e. point (0,0)\n", - "\n", - "3. Determined the scale for each image i.e. convert pixels -> meters\n", - "\n", - "The final data preparation is to convert the chosen hit points on the two images into (x,y) locations in meters. We will save some other information in case we need to check our work later _(part of creating reproducible research)_.\n", - "\n", - "The first step is to plot our scaled and centered data from targets 01 and 02. We can also plot the mean location of our hits from the class. " - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [ - { - "data": { - "application/javascript": [ - "/* Put everything inside the global mpl namespace */\n", - "window.mpl = {};\n", - "\n", - "\n", - "mpl.get_websocket_type = function() {\n", - " if (typeof(WebSocket) !== 'undefined') {\n", - " return WebSocket;\n", - " } else if (typeof(MozWebSocket) !== 'undefined') {\n", - " return MozWebSocket;\n", - " } else {\n", - " alert('Your browser does not have WebSocket support. ' +\n", - " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", - " 'Firefox 4 and 5 are also supported but you ' +\n", - " 'have to enable WebSockets in about:config.');\n", - " };\n", - "}\n", - "\n", - "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", - " this.id = figure_id;\n", - "\n", - " this.ws = websocket;\n", - "\n", - " this.supports_binary = (this.ws.binaryType != undefined);\n", - "\n", - " if (!this.supports_binary) {\n", - " var warnings = document.getElementById(\"mpl-warnings\");\n", - " if (warnings) {\n", - " warnings.style.display = 'block';\n", - " warnings.textContent = (\n", - " \"This browser does not support binary websocket messages. \" +\n", - " \"Performance may be slow.\");\n", - " }\n", - " }\n", - "\n", - " this.imageObj = new Image();\n", - "\n", - " this.context = undefined;\n", - " this.message = undefined;\n", - " this.canvas = undefined;\n", - " this.rubberband_canvas = undefined;\n", - " this.rubberband_context = undefined;\n", - " this.format_dropdown = undefined;\n", - "\n", - " this.image_mode = 'full';\n", - "\n", - " this.root = $('
');\n", - " this._root_extra_style(this.root)\n", - " this.root.attr('style', 'display: inline-block');\n", - "\n", - " $(parent_element).append(this.root);\n", - "\n", - " this._init_header(this);\n", - " this._init_canvas(this);\n", - " this._init_toolbar(this);\n", - "\n", - " var fig = this;\n", - "\n", - " this.waiting = false;\n", - "\n", - " this.ws.onopen = function () {\n", - " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", - " fig.send_message(\"send_image_mode\", {});\n", - " if (mpl.ratio != 1) {\n", - " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", - " }\n", - " fig.send_message(\"refresh\", {});\n", - " }\n", - "\n", - " this.imageObj.onload = function() {\n", - " if (fig.image_mode == 'full') {\n", - " // Full images could contain transparency (where diff images\n", - " // almost always do), so we need to clear the canvas so that\n", - " // there is no ghosting.\n", - " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", - " }\n", - " fig.context.drawImage(fig.imageObj, 0, 0);\n", - " };\n", - "\n", - " this.imageObj.onunload = function() {\n", - " fig.ws.close();\n", - " }\n", - "\n", - " this.ws.onmessage = this._make_on_message_function(this);\n", - "\n", - " this.ondownload = ondownload;\n", - "}\n", - "\n", - "mpl.figure.prototype._init_header = function() {\n", - " var titlebar = $(\n", - " '
');\n", - " var titletext = $(\n", - " '
');\n", - " titlebar.append(titletext)\n", - " this.root.append(titlebar);\n", - " this.header = titletext[0];\n", - "}\n", - "\n", - "\n", - "\n", - "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", - "\n", - "}\n", - "\n", - "\n", - "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", - "\n", - "}\n", - "\n", - "mpl.figure.prototype._init_canvas = function() {\n", - " var fig = this;\n", - "\n", - " var canvas_div = $('
');\n", - "\n", - " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", - "\n", - " function canvas_keyboard_event(event) {\n", - " return fig.key_event(event, event['data']);\n", - " }\n", - "\n", - " canvas_div.keydown('key_press', canvas_keyboard_event);\n", - " canvas_div.keyup('key_release', canvas_keyboard_event);\n", - " this.canvas_div = canvas_div\n", - " this._canvas_extra_style(canvas_div)\n", - " this.root.append(canvas_div);\n", - "\n", - " var canvas = $('');\n", - " canvas.addClass('mpl-canvas');\n", - " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", - "\n", - " this.canvas = canvas[0];\n", - " this.context = canvas[0].getContext(\"2d\");\n", - "\n", - " var backingStore = this.context.backingStorePixelRatio ||\n", - "\tthis.context.webkitBackingStorePixelRatio ||\n", - "\tthis.context.mozBackingStorePixelRatio ||\n", - "\tthis.context.msBackingStorePixelRatio ||\n", - "\tthis.context.oBackingStorePixelRatio ||\n", - "\tthis.context.backingStorePixelRatio || 1;\n", - "\n", - " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", - "\n", - " var rubberband = $('');\n", - " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", - "\n", - " var pass_mouse_events = true;\n", - "\n", - " canvas_div.resizable({\n", - " start: function(event, ui) {\n", - " pass_mouse_events = false;\n", - " },\n", - " resize: function(event, ui) {\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " stop: function(event, ui) {\n", - " pass_mouse_events = true;\n", - " fig.request_resize(ui.size.width, ui.size.height);\n", - " },\n", - " });\n", - "\n", - " function mouse_event_fn(event) {\n", - " if (pass_mouse_events)\n", - " return fig.mouse_event(event, event['data']);\n", - " }\n", - "\n", - " rubberband.mousedown('button_press', mouse_event_fn);\n", - " rubberband.mouseup('button_release', mouse_event_fn);\n", - " // Throttle sequential mouse events to 1 every 20ms.\n", - " rubberband.mousemove('motion_notify', mouse_event_fn);\n", - "\n", - " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", - " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", - "\n", - " canvas_div.on(\"wheel\", function (event) {\n", - " event = event.originalEvent;\n", - " event['data'] = 'scroll'\n", - " if (event.deltaY < 0) {\n", - " event.step = 1;\n", - " } else {\n", - " event.step = -1;\n", - " }\n", - " mouse_event_fn(event);\n", - " });\n", - "\n", - " canvas_div.append(canvas);\n", - " canvas_div.append(rubberband);\n", - "\n", - " this.rubberband = rubberband;\n", - " this.rubberband_canvas = rubberband[0];\n", - " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", - " this.rubberband_context.strokeStyle = \"#000000\";\n", - "\n", - " this._resize_canvas = function(width, height) {\n", - " // Keep the size of the canvas, canvas container, and rubber band\n", - " // canvas in synch.\n", - " canvas_div.css('width', width)\n", - " canvas_div.css('height', height)\n", - "\n", - " canvas.attr('width', width * mpl.ratio);\n", - " canvas.attr('height', height * mpl.ratio);\n", - " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", - "\n", - " rubberband.attr('width', width);\n", - " rubberband.attr('height', height);\n", - " }\n", - "\n", - " // Set the figure to an initial 600x600px, this will subsequently be updated\n", - " // upon first draw.\n", - " this._resize_canvas(600, 600);\n", - "\n", - " // Disable right mouse context menu.\n", - " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", - " return false;\n", - " });\n", - "\n", - " function set_focus () {\n", - " canvas.focus();\n", - " canvas_div.focus();\n", - " }\n", - "\n", - " window.setTimeout(set_focus, 100);\n", - "}\n", - "\n", - "mpl.figure.prototype._init_toolbar = function() {\n", - " var fig = this;\n", - "\n", - " var nav_element = $('
');\n", - " nav_element.attr('style', 'width: 100%');\n", - " this.root.append(nav_element);\n", - "\n", - " // Define a callback function for later on.\n", - " function toolbar_event(event) {\n", - " return fig.toolbar_button_onclick(event['data']);\n", - " }\n", - " function toolbar_mouse_event(event) {\n", - " return fig.toolbar_button_onmouseover(event['data']);\n", - " }\n", - "\n", - " for(var toolbar_ind in mpl.toolbar_items) {\n", - " var name = mpl.toolbar_items[toolbar_ind][0];\n", - " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", - " var image = mpl.toolbar_items[toolbar_ind][2];\n", - " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", - "\n", - " if (!name) {\n", - " // put a spacer in here.\n", - " continue;\n", - " }\n", - " var button = $('