Êþº¾4/ ° ± ² ³ í´µ ¶ `·¸ ¹ º »¼½ ¾¿ÀÁ ´  à Ä ÅÆ `ÇÈ É `ÊË ÌÍ Î `Ï Ð íÑ ÒÓ ÔÕ $Ä `Ö ×ØÙÚ +ÄÛÜ .Ý aÞßà 2á aâã äåæ çè äéêë äìíîïðñ òó Aô ¦õ +ö<#× Ã÷ø äùúûüýþÿ ä  A c d — Z c  ] +F !"#$%&'()*+,-./01234567 c8n9: � ;<= +> d? @A eB eCDE ˜ òFGH aIJKLMNO aP QR ¦STUV ÃW ¬Ä X YZ[\ °Ä ¬]^ _ Y` Ya b Çc Êd e ¬Ïf ½g ah .i Zj —kl Z³ `m `no Ç´ Ãpq Êr Çs t uv wx Çyz w{ Ç|} Õ~ Õ Õ€ Y� ‚ ƒ„ Ç… ÕÏ “† LJˆ‰ ¦iŠ‹ äŒ Z� ㎠ci ��‘ ’“ ”•–StructureDataAsciiGhcnm InnerClasses— StnDataIterSeqIter StationIndexVinfologgerLorg/slf4j/Logger;pLjava/lang/String; ConstantValue dataPatternLcom/google/re2j/Pattern;RECORDSTNIDYEARDIM_NAMETIMEVALUEDMFLAGQCFLAGDSFLAGSTNSLATLONSTELEVNAMEGRELEVPOPCLSPOPSIZTOPOSTVEGSTLOCOCNDISAIRSTNTOWNDISGRVEGPOPCSSWMOSTN_DATAncfileLucar/nc2/NetcdfFile;stnRaf"Lucar/unidata/io/RandomAccessFile;STN_EXTDAT_EXTIDX_EXT MAGIC_STARTversionImapLjava/util/HashMap; SignatureLLjava/util/HashMap; stnIdFromDataField!Lucar/nc2/util/TableParser$Field;stnDataMembersLucar/ma2/StructureMembers;()VCodeLineNumberTableLocalVariableTablethisLucar/nc2/iosp/noaa/Ghcnm; isValidFile%(Lucar/unidata/io/RandomAccessFile;)ZdatFileLjava/io/File;stnFileb[BtestrafdataFileposbaseext StackMapTable Exceptions˜closeopenT(Lucar/unidata/io/RandomAccessFile;Lucar/nc2/NetcdfFile;Lucar/nc2/util/CancelTask;)VmMember"Lucar/ma2/StructureMembers$Member; cancelTaskLucar/nc2/util/CancelTask; dataParserLucar/nc2/util/TableParser;dataSeqLucar/nc2/Structure;vLucar/nc2/Variable;dataSmorgderived stnParserstnSeq nestedSeqnestedSmorg2derived2stnSmcountnorg3derived3idxFile™š›œ�ž makeMember³(Lucar/nc2/Structure;Ljava/lang/String;Lucar/ma2/DataType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lucar/nc2/constants/AxisType;)Lucar/nc2/Variable;s shortNamedataTypeLucar/ma2/DataType;dimslongNameunitscfNameatypeLucar/nc2/constants/AxisType; readIndex(Ljava/lang/String;)Vsizepbsi'Lucar/nc2/iosp/noaa/Ghcnm$StationIndex;ifinLjava/io/FileInputStream; indexFilename makeIndex(Ljava/io/File;)VstnPosJlineidLjava/lang/Long;dataPosfoutLjava/io/FileOutputStream; indexFileLucar/nc2/Sequence;stnInfo Lucar/nc2/iosp/noaa/Ghcnm$Vinfo;fstnCountdataInfocurrStn totalCountdecodeStationIndex+([B)Lucar/nc2/iosp/noaa/Ghcnm$StationIndex;dataproto ,Lucar/nc2/iosp/noaa/GhcnmProto$StationIndex;¡ getFileTypeId()Ljava/lang/String;getFileTypeDescriptionreadData7(Lucar/nc2/Variable;Lucar/ma2/Section;)Lucar/ma2/Array;v2sectionLucar/ma2/Section;vinfogetStructureIterator7(Lucar/nc2/Structure;I)Lucar/ma2/StructureDataIterator; bufferSize access$200>(Lucar/nc2/iosp/noaa/Ghcnm;)Lucar/unidata/io/RandomAccessFile;x0 access$300 access$400 access$500=(Lucar/nc2/iosp/noaa/Ghcnm;)Lucar/nc2/util/TableParser$Field; access$600/(Lucar/nc2/iosp/noaa/Ghcnm;)Ljava/util/HashMap; access$7007(Lucar/nc2/iosp/noaa/Ghcnm;)Lucar/ma2/StructureMembers; SourceFile Ghcnm.java *+ #$ ') ; ,-java/util/HashMap ,¢ £—. ¤¥ ¦§ ¦¨ucar/nc2/iosp/noaa/Ghcnm.dat ©ª.ncsx java/io/Filejava/lang/StringBuilder «¬ ­— ,s ®¯.inv °± GhncmIndex ²³ ´µjava/lang/String¶ ·¸ ,¹ C-  DE java/io/FileNotFoundException º— must exist »¼ rsGhcnm: file must end with .datucar/nc2/util/TableParser11L,15i,19,24i,25,26,27ucar/nc2/Sequenceall_data ,½ ¾¿ucar/nc2/Dimensionmonth ,À ÁÂstnidà Äk station stnId fgyear Åkyear of the station recordvalue Ækmonthly mean temperatureCelsiusucar/nc2/Attributeucar/nc2/constants/CDM missing_valueÇ ÈÉ ,Ê ËÌ ÍÎ ÏÐdm Ñkdata management flagqcquality control flagdsdata source flagtime Òkstarting time of the recordÓ Ôqmissing ,Õ Ö× ØÙ ÚÛucar/nc2/iosp/noaa/Ghcnm$Vinfo ,Ü ÝÛucar/nc2/iosp/noaa/Ghcnm$1 ,Þ ßä911L,20d,30d,37d,68,73i,74,79i,81,83,85,87i,88,90i,106,107station station iducar/nc2/constants/CFcf_role timeseries_idlatlatitude degrees_northlon longitude degrees_east elevationname station name standard_namestation_descriptiongrelev5elevation estimated from gridded digital terrain datapopClasspopulation classpopSize8population of the city or town the station is located inthousands of personstopoType=type of topography in the environment surrounding the stationvegType,type of vegetation in environment of stationoceanstation is near lake or ocean oceanDistdistance to nearest ocean/lakekm airportIdairport station indicatortownDist:distance from airport to center of associated city or townUvegetation type at nearest 0.5 deg x 0.5 deg gridded data point of vegetation datasetpopClassFromLights8population class as determined by satellite night lightsstn_data åæyears since 0000-01-01T00:00ucar/nc2/iosp/noaa/Ghcnm$2wmoIdWMO station idstation_WMO_id ç³ èéê ëì í¯ îï ucar/ma2/StructureMembers$Memberucar/nc2/iosp/noaa/Ghcnm$3 ðñtitleGVersion 3 of the GHCN-Monthly dataset of land surface mean temperatures Ëò ConventionsCDMCF:featureType timeSeriesseeHhttp://www.ncdc.noaa.gov/ghcnm, ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/v3 ó- |}ucar/nc2/Variable ,ô long_nameucar/nc2/constants/_Coordinate_CoordinateAxisTypejava/io/FileInputStream õö÷ øùjava/lang/IllegalStateExceptionbad index file ú³Bad version = «û üý ´þ �� ÿ È java/lang/Throwable   ï +  ïucar/nc2/util/TableParser$Field    —%ucar/nc2/iosp/noaa/Ghcnm$StationIndex  java/lang/Long  ~  ö÷Cant find id = {}  !Id {} Not in order at pos {}  ƒjava/io/FileOutputStream ,} µ ¢   ë   ! ,"GHCNM-GLOBAL HISTORICAL CLIMATOLOGY NETWORK MONTHLYucar/ma2/ArraySequence ucar/nc2/iosp/noaa/Ghcnm$SeqIter ,# $! ,%& '(â(\d{11})(\d{4})TAVG([ \-\d]{5})(...)([ \-\d]{5})(...)([ \-\d]{5})(...)([ \-\d]{5})(...)([ \-\d]{5})(...)([ \-\d]{5})(...)([ \-\d]{5})(...)([ \-\d]{5})(...)([ \-\d]{5})(...)([ \-\d]{5})(...)([ \-\d]{5})(...)([ \-\d]{5})(...)?.*) *+ ûü'ucar/nc2/iosp/AbstractIOServiceProvider0ucar/nc2/iosp/noaa/Ghcnm$StructureDataAsciiGhcnm$ucar/nc2/iosp/noaa/Ghcnm$StnDataIterjava/io/IOException ucar/unidata/io/RandomAccessFileucar/nc2/NetcdfFileucar/nc2/util/CancelTaskucar/nc2/Structureucar/ma2/StructureMembersjava/util/Iterator,*ucar/nc2/iosp/noaa/GhcnmProto$StationIndex2com/google/protobuf/InvalidProtocolBufferException(I)V getLocation lastIndexOf(Ljava/lang/String;)I substring(II)Ljava/lang/String;(I)Ljava/lang/String;equals(Ljava/lang/Object;)Zappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;toStringexists()Zseek(J)Vlength()I readFully([B)V!java/nio/charset/StandardCharsetsUTF_8Ljava/nio/charset/Charset;([BLjava/nio/charset/Charset;)VgetPathacquire6(Ljava/lang/String;)Lucar/unidata/io/RandomAccessFile;N(Lucar/nc2/NetcdfFile;Lucar/nc2/Group;Lucar/nc2/Structure;Ljava/lang/String;)V addVariable8(Lucar/nc2/Group;Lucar/nc2/Variable;)Lucar/nc2/Variable;(Ljava/lang/String;I)V addDimension:(Lucar/nc2/Group;Lucar/nc2/Dimension;)Lucar/nc2/Dimension;ucar/ma2/DataTypeLONGINTFLOATjava/lang/IntegervalueOf(I)Ljava/lang/Integer;'(Ljava/lang/String;Ljava/lang/Number;)V addAttribute*(Lucar/nc2/Attribute;)Lucar/nc2/Attribute;getField$(I)Lucar/nc2/util/TableParser$Field;setScale(F)VCHARSTRINGucar/nc2/constants/AxisTypeTime'(Ljava/lang/String;Ljava/lang/String;)VmakeStructureMembers()Lucar/ma2/StructureMembers; findMember6(Ljava/lang/String;)Lucar/ma2/StructureMembers$Member; setDataObject(Ljava/lang/Object;)V\(Lucar/unidata/io/RandomAccessFile;Lucar/ma2/StructureMembers;Lucar/nc2/iosp/noaa/Ghcnm$1;)V setSPobject(Lucar/nc2/iosp/noaa/Ghcnm;)VaddDerivedField- Transform. DerivedField�(Lucar/nc2/util/TableParser$Field;Lucar/nc2/util/TableParser$Transform;Ljava/lang/Class;)Lucar/nc2/util/TableParser$DerivedField;addMemberVariable((Lucar/nc2/Variable;)Lucar/nc2/Variable;getNumberOfFields getMembers+()Lcom/google/common/collect/ImmutableList;'com/google/common/collect/ImmutableListiterator2()Lcom/google/common/collect/UnmodifiableIterator;hasNextnext()Ljava/lang/Object;TYPELjava/lang/Class;:(Lucar/nc2/Group;Lucar/nc2/Attribute;)Lucar/nc2/Attribute;finishs(Lucar/nc2/NetcdfFile;Lucar/nc2/Group;Lucar/nc2/Structure;Ljava/lang/String;Lucar/ma2/DataType;Ljava/lang/String;)VgetBytes(Ljava/nio/charset/Charset;)[Bucar/nc2/stream/NcStream readAndTest(Ljava/io/InputStream;[B)Zread(I)Ljava/lang/StringBuilder;readVInt(Ljava/io/InputStream;)I(Ljava/io/InputStream;[B)IstnId(J)Ljava/lang/Long;put8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; addSuppressed(Ljava/lang/Throwable;)V findVariable'(Ljava/lang/String;)Lucar/nc2/Variable; getSPobjectsm getDataObjectgetFilePointer()JreadLineparse&(Ljava/lang/String;)Ljava/lang/Object; longValueget&(Ljava/lang/Object;)Ljava/lang/Object;org/slf4j/Loggerwarn'(Ljava/lang/String;Ljava/lang/Object;)V dataCount9(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Vwrite writeVInt(Ljava/io/OutputStream;I)Ivalues()Ljava/util/Collection;java/util/Collection()Ljava/util/Iterator; access$100+(Lucar/nc2/iosp/noaa/Ghcnm$StationIndex;)[B parseFrom0([B)Lucar/nc2/iosp/noaa/GhcnmProto$StationIndex;/(Lucar/nc2/iosp/noaa/GhcnmProto$StationIndex;)V=(Lucar/nc2/iosp/noaa/Ghcnm;Lucar/nc2/iosp/noaa/Ghcnm$Vinfo;)Vnelems?(Lucar/ma2/StructureMembers;Lucar/ma2/StructureDataIterator;I)Vorg/slf4j/LoggerFactory getLogger%(Ljava/lang/Class;)Lorg/slf4j/Logger;com/google/re2j/Patterncompile-(Ljava/lang/String;)Lcom/google/re2j/Pattern;ucar/nc2/iosp/noaa/GhcnmProto#ucar/nc2/util/TableParser$Transform&ucar/nc2/util/TableParser$DerivedField! í( ö÷øùúêûüýùú/þùú6ÿùú:ùú3ùúQùú=ùúJùúMùúOùúaùúfùúi ùúl ùún ùúr ùút ùúvùúyùú{ùú}ùúùú‚ùú„ùú{ùú‡ùú�ùú‰ùúùúùúùú !ú"#$%&')*+,-.A*·*»Y'·µ±/ 2ò0 1234.å Ü+¶M, ¶ >�¬,¶ :,¶ :¶š¶š¬¶™{»Y»Y·¶¶¶·:¶š¬»Y»Y·¶¶¶·:¶š¬+ ¶¶¼:+¶»Y²·:  ¶¬»Y»Y·¶¶¶·:¶¬/Z¼½ ¾¿ÀÁ!Ä5Å7ÇAÉ^ÊfËhÌ…Í�Î�ДÑ�Ò£Ó±Ô¹ØÖÙ0p ^[56…476�89±:ù Ö76Ü12Ü;×<ù Ð=!Â>ù!»?ù@!ýý$ü0ü&ù)ABC-.s'*´Æ *´¶ *´!Æ *´!¶ *µ*µ!±/ßàáâä!å&æ0 '12@ ABDE. ( c*+,-·"*,µ#+¶: ¶ 6¶ :¶ :¶™Ð»Y»Y·¶¶¶·:¶š"»$Y»Y·¶%¶&¶¶·'¿»Y»Y·¶¶¶·:  ¶š"»$Y»Y· ¶%¶&¶¶·'¿*»Y·¶¶¶¸(µ*»Y·¶¶¶¸(µ!*+¶·)+¶ §{*+µ¶š »$Y*·'¿»Y»Y·¶¶¶·:¶š"»$Y»Y·¶%¶&¶¶·'¿*»Y·¶¶¶¸(µ!»+Y,·-:».Y,/·0: , ¶1W,»2Y3 ·4¶5W* 6²78·9W* :²;<·9W* =²>3?@·9:  »AYCØñ¸D·E¶FW¶GH¶I* J²K3L·9W* M²K3N·9W* O²K3P·9W* Q²RS²T·9:  »AYCU·V¶FW ¶W:  6¶X¶G¶Y :¶X¶G¶Y =¶X¶G¶Y J¶X¶G¶Y M¶X¶G¶Y O¶X¶G¶Y »ZY*´ ·[¶\*¶Gµ¶G:  »]Y*·^¶_:  Q¶X ¶Y»+Y`·-:».Y,a·0:,¶1W*6²7b·9:  »AYde·V¶FW*f²>gh·9W*i²>jk·9W*l²>lm·9W*n²Ro·9:  »AYpq·V¶FW*r²;sm·9W*t²Ku·9W*v²;wx·9:  »AYC÷¸D·E¶FW*y²Rz·9W*{²R|·9W*}²R~·9W*²;€�·9:  »AYC÷¸D·E¶FW*‚²Kƒ·9W*„²;…�·9:  »AYC÷¸D·E¶FW*{²R†·9W*‡²Kˆ·9W».Y,‰·0:¶ŠW*:²;:·9:  »AY‹Œ·V¶FW*=²>3?@·9:  »AYCØñ¸D·E¶FW¶GH¶I*J²K3L·9W*M²K3N·9W*O²K3P·9W*Q²RS²T·9:  »AYCU·V¶FW¶W::¶X¶G¶Y=¶X¶G¶YJ¶X¶G¶YM¶X¶G¶YO¶X¶G¶Y»ZY*´·[¶\*µ¶G:»�Y*·Ž¶_:Q¶X¶Y*�²;�·9:  »AYCØñ¸D·E¶FW »AYp‘·V¶FW¶W:6¶’6¶“¶”:¹•™(¹–À—:¢„¶G¶Y§ÿÔ»ZY*´!·[¶\¶G:»˜Y*·™²š¶_:�¶X¶Y,»AY›œ·V¶�W,»AYžŸ·V¶�W,»AY ¡·V¶�W,»AY¢£·V¶�W,¶¤»Y»Y·¶¶¶·:¶š *·¥§ *¶%·)±/êzêë íîï%ð.ó8õUö]÷|ø™ù¡úÀüÛýöþþÿ ;Cb }ˆ–ž ¯#Á$Ó%è&ý'().*A-V.g0n1~2Ž3ž4®5¾6Ï7â8ì;ô<BXY,Z4\G]X^k_~`‘a¤bµcÈeÚfîhik&l8mLn`orp†ršs¬u¾yÍzÕ|è}ù~#€.�A‚Tƒg†|‡�‰”Ф‹´ŒÄ�ÔŽå�ø�þ“”š%Ÿ8 M¡^£e¤h¥o¦�§–¨¥©¨ª»²Ã³×¹ã¼ô¾¿À'Â+ÅHÆPÇYÉbÊ0.U­56™i76 ;B76�FHc12c;ccIJQ<ùH=!%>>ù.5?ùˆÛKL–ÍMN è{OP nõQ+ ôoR) \S) ETL,7UNÍ–VN”ÏW+]X)JY)eþZ+hû[!oô\!à])׌^)H_6@� ÿ|  `abüCùDüCúÿû `ab+c¦dÃÃ+ccdÃÃde+úþ°ÃÃABfg.+ s»¦Y*´#+,-·§:  »AY¨·V¶FWÆ »AYp·V¶FWÆ »AY‹·V¶FWÆ »AYª¶«·V¶FW+ ¶ŠW °/* ÏÐ$Ñ)Ò:Ô?ÕP×UØiÚpÜ0f s12shNsiùsjkslùsmùsnùsoùspq`OP @ ü:¦rs.¦ ¤»¬Y+·­M,²¶®¸¯š »°Y±·²¿,¶³>Ÿ»°Y»Y·´¶¶µ¶·²¿,¸¶66¢6,¸¶6¼:,¸·W*·¸:*´´¹¸º¶»W„§ÿÉ,¶¼§N,¶¼§ :-¶¾-¿± Š‘½’–™½/F÷ øù"ú'û,üGþMW]cjr„Š‘÷£0\ ]'t!c!u9rvwP:x!'c !M=[! šyz¤12¤{ù@2ü"¬ü$ýø9F½ÿ ¬½½ùAB|}.’ö*´#a¶¿À.M,¶ÀÀZN-´Á6¶X:¶ÂÀÃ:6-´Ä ¶-´Ä¶Å7-´Ä¶Æ:  ǧ;»ÇY·È:  ¶ÉÀÊ: *´  ¶»W  ¶Ëµ¹ µÌ„§ÿ±*´#/¶¿À.:¶ÀÀZ:´Á6¶X:¶ÂÀÃ:: 6 ´Ä ¶´Ä¶Å7 ´Ä¶Æ:  ǧ� ¶ÉÀÊ: Æ ´¹¶Ë”™O*´¶ÍÀÇ:DzÎϹЧ)´Ñ™²ÎÒ ¸º¹Ó§  µÔ„ :  Æ Y´Ñ`µÑ§ÿi»ÕY+·Ö: 7  ²¶®¶× ¶Ø  ¸Ù…a7 *´¶Ú¹Û:¹•™7¹–ÀÇ:¸Ü:  ¾¸Ù…a7  ¾…a7  ¶×§ÿÅ ¶Ý§:  ¶Ý§ :   ¶¾ ¿±h×ß½áæé½/Þ7   *-5>GLOXdpz�„‡"•#Ÿ$«%µ&¸'»*Ä,Î-Ø.Ý/à1ì2ÿ3 45!6)7=9D:G<K>P?[@^DhEkHxI~J‹S¯T¶UÄVÍWÔX×YßDõZ0è>F~G=€ù X,hw d �‚  >hwÎ�ƒ ؃€ù ìo�‚¶u9¯%hwklt h�„… ö12ö†6 éU‡áˆ‰ ÖFH*ÌŠ)-É‹!•aM‡ŸWŒ‰¸>�w »;Ž! @¨ÿ5 .Z—Ãýù7ÿ<  .Z—Ã.ZÇýüÊü!Ç úøþ:Õeù=G½ÿ  .Z—Ã.ZÇÕ½½ùAB��.P+¸ÞM»ÇY,·ß°/ ]^0 12‘9 ’”A•–—.-à°/“0 12˜—.-á°/�0 12™š.m!+¶âÀZN»ãY-´Á»äY*-·å-´æ·ç°/ ª«0*!12!›P!œ�ž‰ABŸ .^+¶èÀZN»äY*-·å°/ ·¸0*12hN¡! ž‰AB¢£./*´°/20 ¤2¥£./*´°/20 ¤2¦£./*´°/20 ¤2§¨./*´°/20 ¤2©ª./*´°/20 ¤2«¬./*´°/20 ¤2­-.- ¸é³Îê¸ë³ì±/ 3—®¯ðj î ïñ òä óÇ ô Z õ ˜�]Ã+( —dG“Ÿôà+á â+ã