commit 7ad037bf0a9dfe15657728fb708cdcaaff18613e Author: Monarch055 Date: Wed Jun 10 19:36:52 2026 +0700 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..28f3e19 --- /dev/null +++ b/.gitignore @@ -0,0 +1,51 @@ +# dependencies +sistem-km-next/node_modules/ +sistem-km-next/.pnp +sistem-km-next/.pnp.* +sistem-km-next/.yarn/* +!sistem-km-next/.yarn/patches +!sistem-km-next/.yarn/plugins +!sistem-km-next/.yarn/releases +!sistem-km-next/.yarn/versions + +# testing +sistem-km-next/coverage + +# next.js +sistem-km-next/.next/ +sistem-km-next/out/ + +# production +sistem-km-next/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# env files (protect credentials) +.env +.env.local +.env.*.local +sistem-km-next/.env* + +# vercel +sistem-km-next/.vercel + +# typescript +sistem-km-next/*.tsbuildinfo +sistem-km-next/next-env.d.ts + +# markdown rules from Next.js project +sistem-km-next/*.md +!sistem-km-next/README.md +sistem-km-next/Laporan +sistem-km-next/sistem-km-old + +# general databases dumps +*.sql diff --git a/chloropleth/Admin_Kecamatan.json b/chloropleth/Admin_Kecamatan.json new file mode 100644 index 0000000..67ff0fa --- /dev/null +++ b/chloropleth/Admin_Kecamatan.json @@ -0,0 +1,8 @@ +{"type":"FeatureCollection", "features": [ +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[109.37369333219317,-0.06214301526608477],[109.37457525052564,-0.06141915576466081],[109.37485887350388,-0.061186364187442166],[109.37530800905486,-0.06085256841306111],[109.37645019186348,-0.06002400189977049],[109.3766874291267,-0.059851904357629604],[109.37830887948556,-0.058675665792127914],[109.37947953051646,-0.05780647935329723],[109.37947968708986,-0.0578063631310829],[109.38489690875242,-0.053611866716971615],[109.3848211564553,-0.05338460982500063],[109.38322543069349,-0.05092877252349227],[109.38074144697913,-0.04715124500861748],[109.37960856531402,-0.04576952991995732],[109.37788914950276,-0.04367245053361178],[109.37671963547278,-0.042266321008518036],[109.3748341228762,-0.04015491175645239],[109.3725366519681,-0.037749805218706516],[109.37250173347743,-0.03774465400129412],[109.3709935366851,-0.03618221595337264],[109.3732496439067,-0.03424079298360153],[109.37467813232045,-0.032802725295651626],[109.37601115314474,-0.031438855766620324],[109.37603100097472,-0.031292563477298016],[109.3760868309589,-0.03127627066595922],[109.37554146203824,-0.027245859466677184],[109.3755572123486,-0.025894997366551275],[109.37570682427234,-0.025298009748087116],[109.37635969645898,-0.02450930293562519],[109.37630447941962,-0.024485831159185616],[109.3762758026103,-0.024458658665727436],[109.37626230775277,-0.024436581134671256],[109.37628761110798,-0.024436581442650537],[109.3763002166824,-0.0244138986634619],[109.37631331166,-0.024384280292715294],[109.37629475600836,-0.02437239225433625],[109.37633018192423,-0.024270497142511994],[109.3763099393812,-0.024258609084721668],[109.37631668722618,-0.024234833540009777],[109.37602654385613,-0.024087081524106494],[109.37598437057602,-0.02417369221374085],[109.3761496848223,-0.024256908889490177],[109.37613450246577,-0.024285779106752173],[109.37605521901155,-0.02425351123042974],[109.3760231680987,-0.024253510843189004],[109.37587809648228,-0.024175389192508043],[109.37584941898882,-0.024205957502342133],[109.37580899427239,-0.024212123239160617],[109.3757380840505,-0.024222938744910574],[109.37570771879633,-0.02432653214715633],[109.3756571123852,-0.024302755915320873],[109.37571808000762,-0.024174779133922575],[109.37539332559246,-0.024041382447655947],[109.37533604891924,-0.02400936000470138],[109.37528431235472,-0.02408537435774482],[109.37512743268034,-0.02399706305780226],[109.37518426440691,-0.023924499793842584],[109.37519659618626,-0.023908754465333717],[109.37507575037309,-0.02386383139697635],[109.37501130292048,-0.0238277998969099],[109.37497392763122,-0.02383742498062966],[109.37495031114224,-0.02384082121575439],[109.37492332033649,-0.023890070372333386],[109.37480861257153,-0.023830629985190126],[109.37482548217837,-0.023769492906358932],[109.37479005794373,-0.02373213081657419],[109.37463486516249,-0.023645517842894256],[109.37455895525949,-0.02363702566028095],[109.3744206295441,-0.023708350841352265],[109.37418277980086,-0.02357418570939267],[109.37417772035391,-0.0234688937029321],[109.37403677203574,-0.023417849992849238],[109.37392081426282,-0.023401746646182046],[109.37364891388742,-0.023313182526843137],[109.37360492947211,-0.02334538599463705],[109.37356894275774,-0.023325258088735184],[109.37354895042607,-0.02328902838032714],[109.37352895832433,-0.023232671186303358],[109.3734849745576,-0.023208517693349695],[109.37342899541952,-0.02316021108035961],[109.37341700032219,-0.023111904977240468],[109.37304913543143,-0.022971008363941024],[109.37297316164309,-0.02309177237745978],[109.37279322766445,-0.02303138786676762],[109.37273324871492,-0.023095795107919457],[109.37260529642296,-0.022987105256563164],[109.37252932493105,-0.022906594479616908],[109.37248934018339,-0.022842186099502768],[109.37246135085017,-0.02279790533395757],[109.372397374276,-0.02278180262575633],[109.37230540773957,-0.022777776084902716],[109.37224542980724,-0.022753622434623536],[109.37218145346509,-0.022717392256710475],[109.37208548884198,-0.022673110730036507],[109.37194554021382,-0.022628828710479762],[109.3718615711487,-0.02259259831627308],[109.3718095904091,-0.022560393779219177],[109.37174561363025,-0.022564418552008764],[109.3717016293581,-0.0225885710178791],[109.37162265897075,-0.02250856344476786],[109.3715716776494,-0.022496486391597077],[109.37147871190426,-0.022457236788660274],[109.37140973750024,-0.022411949218492808],[109.37136175539237,-0.022372700125369512],[109.37129877884108,-0.022324393508032322],[109.3712118108895,-0.02228816310449479],[109.37109485392337,-0.022245894132040454],[109.37100188809666,-0.022215701907282302],[109.37096890030467,-0.02219758682649846],[109.3709209181705,-0.022161356866039615],[109.37089692736701,-0.02211908893455564],[109.37085794199011,-0.022079839957647854],[109.370746980681,-0.022236832908565738],[109.3707199906098,-0.022227775252422016],[109.370761976541,-0.02211606832405429],[109.37053106143682,-0.022043606929205792],[109.37043809514135,-0.02205870149628779],[109.37025216377712,-0.021977183259702802],[109.37016219705632,-0.02193189550308253],[109.37010821640467,-0.021962086089101017],[109.37005723446418,-0.02201039141269659],[109.36988929578771,-0.022001332212089674],[109.36980832537766,-0.0219952930865324],[109.36974834751166,-0.0219711394888627],[109.36970336434194,-0.021931890471236042],[109.36963139036382,-0.021953023501321722],[109.36956841353096,-0.021934908107996406],[109.36953542585849,-0.021907735693750742],[109.3695774113905,-0.021829239112015023],[109.36950843700643,-0.02178697072253969],[109.3694694504812,-0.021856409984694763],[109.36940047558049,-0.02186244746415899],[109.36934049746502,-0.021862446808257906],[109.36924453277675,-0.021835273710374744],[109.36915756445124,-0.021841310993112904],[109.36904960375982,-0.02185036716202551],[109.36901361722181,-0.021820175607221565],[109.3689656352258,-0.021774888342347688],[109.36891465432474,-0.021729601047061377],[109.36887566901184,-0.021687333000191194],[109.36879769783769,-0.021654121880131025],[109.36868973739236,-0.021642044247713692],[109.36860876735241,-0.02160581398439856],[109.36859677224865,-0.021557508006576534],[109.36867174659429,-0.02139447657174842],[109.36838085381179,-0.021303900001586176],[109.36826689557901,-0.02129182232639245],[109.3680899605611,-0.021261629293164115],[109.36807196669368,-0.021303896707686204],[109.36800299193882,-0.021300876857467087],[109.36798499765719,-0.021382392759387796],[109.36794901058991,-0.021403526175891023],[109.36787403796829,-0.021406544486915004],[109.36785004626087,-0.021451830945515973],[109.36784104855623,-0.02154542339427669],[109.36781105916788,-0.02157863332833405],[109.36780506174699,-0.021542403891754203],[109.36780806109974,-0.02150013632366671],[109.36779306677498,-0.021482021476455865],[109.36775408138328,-0.02144881080051727],[109.36769710241218,-0.021430695503723726],[109.36764912012035,-0.02141559941843943],[109.36757414808426,-0.021364273677056338],[109.3675501569554,-0.02135521607856732],[109.36750517331461,-0.021364272939130437],[109.36746918622408,-0.021388425464565538],[109.3674122073564,-0.021361252830775525],[109.36737921961665,-0.021343137795845922],[109.36732523927166,-0.021352194559612604],[109.36728325453868,-0.02136125145120789],[109.36722327632724,-0.021376346376666047],[109.3671722949845,-0.02137634583082008],[109.36712431273668,-0.021358230637369444],[109.36705233901661,-0.021364268093713064],[109.36701335293617,-0.02139747792077014],[109.36698336404184,-0.0213854011470148],[109.36694437863257,-0.02135520959924142],[109.36683042057773,-0.02133407459024587],[109.36677044288943,-0.021300863708954194],[109.36669247141039,-0.02130388198946272],[109.36655752096318,-0.02129180409926664],[109.36649154541607,-0.021264631384439937],[109.3664405644726,-0.021228401494184253],[109.36662049856305,-0.02122840340814782],[109.36663549411448,-0.021128772853667994],[109.36618565901011,-0.02111971075525187],[109.36610768514467,-0.021352181534421668],[109.36605070607163,-0.021348123993336337],[109.36595624071681,-0.021346424732263315],[109.36581791644728,-0.021344725002043152],[109.36563235961648,-0.021332835266811363],[109.36561549096453,-0.02131755083694707],[109.36559693566366,-0.021280189140345438],[109.36556825909237,-0.021241129086687113],[109.36555307744624,-0.02121395692687714],[109.36553114804333,-0.02120886194403572],[109.36546704611078,-0.021251317507682062],[109.36545017726313,-0.021254713827522805],[109.36543162142725,-0.021268299628038445],[109.3654214998899,-0.021292075016915893],[109.36541306532312,-0.02130735917476468],[109.36540969193646,-0.021271695893694396],[109.3654215002652,-0.021256411771679345],[109.36541981363399,-0.02123263625689009],[109.36541137947785,-0.02120886067040128],[109.36540294541044,-0.021176593835306026],[109.36538438994896,-0.02115451639161409],[109.36535065248664,-0.021139231786288525],[109.36531016762477,-0.021112059362340087],[109.36526799561621,-0.021110360666211064],[109.36524100536018,-0.02112564462710155],[109.36520052018098,-0.0211290406973283],[109.36514991396533,-0.021108661166634252],[109.36509762065727,-0.02110866061304995],[109.36506050918943,-0.021117151467505035],[109.3650284583823,-0.021123944125811603],[109.36499134712878,-0.02111205598677421],[109.36495929660671,-0.021091676654842774],[109.36493568027609,-0.02109167640501119],[109.3648884476512,-0.021088279406707593],[109.36487157907443,-0.021066201987329898],[109.36484964982026,-0.021047521013436023],[109.36480579074612,-0.02106450304289517],[109.36477880044355,-0.021084881748438523],[109.3647281939016,-0.02109676895745066],[109.3647096383927,-0.02107978626937041],[109.36471301234859,-0.021061105564234982],[109.36470457810508,-0.021045821232659898],[109.36467421425536,-0.02104582091209564],[109.36465228466713,-0.02105940667351613],[109.36461517320772,-0.021067897526884486],[109.36459493064204,-0.02106789731293977],[109.36457974898349,-0.021042423416609172],[109.36456962805435,-0.021008458328781687],[109.36453420368898,-0.02099657021235651],[109.36449034456929,-0.021018646987095654],[109.36447178840767,-0.021064499513449193],[109.36447178807087,-0.02109676624376228],[109.3644903435066,-0.021120541925888536],[109.36448190882041,-0.021147713820078535],[109.36447010028435,-0.02118337692301383],[109.36445829190798,-0.0212037557849484],[109.3644296150137,-0.021196962484179932],[109.36441780706515,-0.021176583371566908],[109.36440599902757,-0.021164695503755437],[109.36435539256584,-0.021169789712936066],[109.36432015563544,-0.021157995943977874],[109.36428716788207,-0.021145919157816367],[109.36425717864796,-0.021170071711186723],[109.36421219457513,-0.02122743430196116],[109.36413422284697,-0.02126366277653702],[109.36406624817299,-0.021230955040785017],[109.3640102690442,-0.02120277609768044],[109.36397028433255,-0.021146418980017075],[109.3639342976874,-0.021134342164250423],[109.36390630772375,-0.021158494734713432],[109.36389431166904,-0.021202774863782293],[109.36385032758517,-0.021226927262361608],[109.36385032635472,-0.021343666117663897],[109.36381833815771,-0.02133964029728148],[109.36380634337485,-0.02126315609290306],[109.36376635849989,-0.02122290089014747],[109.36375436371299,-0.021146416688394745],[109.36363440841289,-0.021090058732449807],[109.36346247190254,-0.021065904050240086],[109.36345447459176,-0.02109005682748434],[109.36342648484568,-0.0210940820080561],[109.36337050522845,-0.021114208799261163],[109.36335850922018,-0.021154463439864782],[109.36331852393064,-0.02115446301519294],[109.36326654322423,-0.021138360556739896],[109.36320256672239,-0.021142385354205005],[109.36311060018538,-0.021178613664395756],[109.36308261023255,-0.021202766224049194],[109.36307061405456,-0.021259122763074453],[109.36303862582749,-0.02125912242159696],[109.36301863356712,-0.02122289292335681],[109.36288668226453,-0.021210815089609834],[109.36284669681528,-0.021226916566653396],[109.36281870635638,-0.021299374830590728],[109.36277661311927,-0.021311930465549758],[109.36271074576588,-0.021331577479490868],[109.36264676864192,-0.02139598439940943],[109.36251536237961,-0.021434302412405137],[109.36242701344094,-0.021409059858892757],[109.36221396010869,-0.021302533192062857],[109.36223526544211,-0.02124571897007033],[109.36228497788677,-0.02114629408177217],[109.36224946899787,-0.021089479859602845],[109.36207192455431,-0.021032665637105902],[109.36199380499913,-0.021053970970173735],[109.36197960144338,-0.02111788696982273],[109.36185176944338,-0.021196006524772066],[109.36163871611089,-0.02122441363511912],[109.36124101655686,-0.02123861718965969],[109.36112961890629,-0.0212118817527444],[109.36112357741399,-0.021239798275298608],[109.36112020319324,-0.021283952638041278],[109.36115056636041,-0.02134339157753138],[109.3612281624592,-0.02136886610308894],[109.36126864716203,-0.02140283146262517],[109.36128382862782,-0.021443589535849492],[109.36128382781355,-0.021520010616883953],[109.36127707968579,-0.021577750916019753],[109.36126527117847,-0.021611715712539767],[109.36124671561548,-0.02160322427987839],[109.36122141263317,-0.021586241543177433],[109.36119779645577,-0.021576051809865018],[109.3611471900743,-0.021581145999317333],[109.36107802778689,-0.021610015432150676],[109.36102573416642,-0.021649074522554847],[109.36098110438937,-0.021687686419796123],[109.36095411415005,-0.021706366831120313],[109.36095580148411,-0.021663910700417677],[109.36094736744377,-0.021631643935302557],[109.36094399414408,-0.02158918774976487],[109.36093218643875,-0.021548429718912136],[109.36090350986836,-0.02151616273569497],[109.36090013645783,-0.021483896026784507],[109.3609203792392,-0.021460120802333813],[109.36090723300276,-0.02111078518918942],[109.36090014081397,-0.02107122226876771],[109.36079386749172,-0.021076315880293184],[109.36072351074674,-0.021142280433045484],[109.36065867078143,-0.021153395854905922],[109.36040300678242,-0.021210210076276236],[109.36040168006774,-0.021210939769237287],[109.36035994838221,-0.021193215038885906],[109.36031187243238,-0.021189393474221385],[109.36024861452519,-0.021191940168016708],[109.36018535703514,-0.021155002658308084],[109.3603472978083,-0.021097688597704615],[109.36037892708265,-0.021065846830725845],[109.36015372937707,-0.021032728661524714],[109.35995781661074,-0.021108345669640274],[109.3599502255195,-0.021122356111135065],[109.35995022519872,-0.021152924523056064],[109.35995781586207,-0.021179671964383712],[109.35997299736232,-0.021216608957646564],[109.36002360363264,-0.0212191568655351],[109.3600628236741,-0.021203873077367198],[109.36012987735589,-0.021172031693963356],[109.3601513849535,-0.021179674026805477],[109.36018680913666,-0.02120132703190478],[109.36022476347422,-0.02123826427281713],[109.36024627077697,-0.02127392765514671],[109.36024505004858,-0.02129297330839595],[109.36024374004458,-0.021313411832629154],[109.36023488371214,-0.021335064365897043],[109.36015391357515,-0.021340158232731967],[109.36013797164044,-0.02132420451078047],[109.36011975460555,-0.02131341050336229],[109.36009571686884,-0.021289210251095533],[109.36006788364641,-0.021266283642720412],[109.36003878519976,-0.02124972544086323],[109.36000715645162,-0.021231893528650497],[109.3599641411532,-0.02122679833381821],[109.35992871674607,-0.0212267979555168],[109.35989455749719,-0.021226797590718428],[109.35985382410378,-0.021229951607962632],[109.35981232220365,-0.021233165131178667],[109.35979331976178,-0.02121109099566886],[109.35977942851638,-0.02119495426815221],[109.35976677699719,-0.021189859398388713],[109.35973929605723,-0.021194250549615684],[109.3597385457347,-0.021194370442924968],[109.35968707195613,-0.021202595385177974],[109.35966050354742,-0.02121278457085517],[109.35961622293829,-0.02122297356716902],[109.35959851048261,-0.02124717336644931],[109.35958838878148,-0.021289204817004134],[109.35958608073108,-0.021311857591137472],[109.35958332762708,-0.021338878422978123],[109.35956435013487,-0.02135161505503027],[109.35953778168616,-0.021365625288765743],[109.35951325398604,-0.02136797673718414],[109.35945807670731,-0.021373266532899334],[109.35941379599348,-0.02139364499238522],[109.35935180327186,-0.021396191691781294],[109.35932143957125,-0.02138982294767738],[109.35930625757922,-0.021400012251617525],[109.35930625718628,-0.02143694907068606],[109.35931258238766,-0.021491717526050405],[109.35929853469423,-0.021533436032004947],[109.3592872784446,-0.021566864573214224],[109.35919618620123,-0.021654747735380307],[109.35912913287196,-0.021656020687818068],[109.35909244344624,-0.021644557138328604],[109.35907852693991,-0.02162417805440521],[109.35906666709518,-0.02159154158140557],[109.35902962133252,-0.021592570432149964],[109.35902792074954,-0.021616535404099604],[109.35902159471908,-0.021639461633517387],[109.35900894297318,-0.02165601937764128],[109.3589798442301,-0.02166875589249179],[109.35892417729129,-0.021672576334777097],[109.35886977553845,-0.02167384942439538],[109.35881663913544,-0.021657290964235673],[109.35876603315661,-0.021630543068006165],[109.35871922256663,-0.02161143731260865],[109.35860029786203,-0.021610162335581017],[109.35855991479187,-0.021596847729105143],[109.35854884815282,-0.021611223178220947],[109.35849824156487,-0.021641791017105127],[109.35844426172027,-0.02162650623447309],[109.3583767868209,-0.021616316037067415],[109.35830931175956,-0.021621410033642773],[109.3582131675561,-0.021605652096165474],[109.35816424075855,-0.02159763304387673],[109.35810351325881,-0.02159763238330132],[109.35802254304352,-0.021618010423977832],[109.35770035005635,-0.021609515699452717],[109.35770034965464,-0.021646877049444256],[109.35770540950988,-0.021718203318524084],[109.35772227807273,-0.021735185935127282],[109.35772227756782,-0.02178186811339726],[109.3577222772273,-0.021813305122379095],[109.35771215573997,-0.02183538217264724],[109.35769528673553,-0.021859157391605648],[109.35766998345034,-0.021874441301369625],[109.35763961954147,-0.021889725154930484],[109.35759744747433,-0.021908405363882694],[109.35758563896398,-0.021944068338305374],[109.35752997221665,-0.021933878264637177],[109.35749454801947,-0.021918593686109013],[109.35745464126339,-0.021896273273761896],[109.35743382091,-0.02188462815633717],[109.35742519094264,-0.021900430487997766],[109.35740176983452,-0.021927083876093698],[109.35738844364114,-0.021905617745652146],[109.35736803293904,-0.021872739730580872],[109.35734947763522,-0.021843869397084253],[109.35734104357685,-0.02181499917536621],[109.3573224883828,-0.02177593938561787],[109.35730055918233,-0.02176065495941853],[109.35728706402284,-0.021775938996904796],[109.35724995240267,-0.021811601688433904],[109.3572212751722,-0.02184556622866807],[109.35721115342847,-0.02189141867186808],[109.35720897336593,-0.021920677766842613],[109.35720609206528,-0.02195934832644031],[109.35717404134434,-0.021969537428128266],[109.35712174833832,-0.021961045635766334],[109.35706776851526,-0.021947459097166985],[109.35705576463283,-0.021915231936590517],[109.35704752661856,-0.02189311510931463],[109.35696295861489,-0.021889476890299384],[109.35690582907257,-0.021905001243314518],[109.35685184903308,-0.02191179361715038],[109.35678943386542,-0.021988213835902864],[109.35677087780701,-0.0220289714475471],[109.35675400851002,-0.022079918531436565],[109.35675232109452,-0.0221291675414294],[109.3567472599679,-0.02217502002884512],[109.35674388651985,-0.022147848113344512],[109.35673039184717,-0.02211897784265398],[109.35671183642228,-0.022101995212438563],[109.35670171555265,-0.022068030253100144],[109.35670340276171,-0.022037461909912983],[109.35671183740956,-0.02201198836858258],[109.35670677710426,-0.021983118192778407],[109.35668990868193,-0.021954247886440847],[109.35667472711462,-0.021927075841545553],[109.35666629306063,-0.021898205629253906],[109.35665617228003,-0.021855749460315956],[109.35665111208309,-0.021816689831985255],[109.35663928908244,-0.021792883820426913],[109.35662749636658,-0.02176913878886774],[109.35660725415772,-0.021743664933004173],[109.35655158758368,-0.021719888932005535],[109.35641832479044,-0.021699508567682945],[109.35637277951712,-0.021670637954612982],[109.35633904193769,-0.021680827038083605],[109.35631373859763,-0.02170290390741168],[109.35627325341551,-0.021723282367952297],[109.35623445532731,-0.02172328194297678],[109.35620577857196,-0.02171479041932045],[109.35618047545348,-0.02171648838418016],[109.35616698013634,-0.021747056590071333],[109.35615348480053,-0.02177932303737416],[109.35614673695748,-0.02181158955850124],[109.35613830216688,-0.021850649028158656],[109.35612143337849,-0.02185574356781193],[109.35610625159283,-0.02184895043318306],[109.35607926169473,-0.021842157168612],[109.35605733197315,-0.021876121762606445],[109.35603708892094,-0.021928767033827356],[109.35599829076335,-0.021935559571638855],[109.35596286663059,-0.02191687852115135],[109.35594768508713,-0.021888008244742033],[109.3559375641073,-0.021864232749561868],[109.35592069559759,-0.021843853663678504],[109.35592406974958,-0.021806492384289496],[109.35587683733995,-0.021803095381583086],[109.35587683710033,-0.021825172522667687],[109.3558684021995,-0.021874421436646786],[109.35584815931583,-0.021911782528466206],[109.35581104771981,-0.021947445191174315],[109.35575032019956,-0.021955935726524767],[109.3556980274349,-0.021928763283899734],[109.35563055244513,-0.02193555550316196],[109.35560862268989,-0.021972916571179172],[109.35561199606377,-0.02200688143644948],[109.35561035701481,-0.022021318358579952],[109.35560524792047,-0.02206631981015308],[109.3555597019249,-0.022105378854276807],[109.35553608553754,-0.022120662762903785],[109.35552259023723,-0.02214953271469325],[109.35551246834456,-0.022208971047427778],[109.35550403441195,-0.02216991140302209],[109.35549391366226,-0.022125757016188744],[109.35548716648913,-0.022096886838946752],[109.35547602551625,-0.02203303745152784],[109.35546523852176,-0.02197121674062034],[109.35539438979434,-0.021978008920160535],[109.35540129929802,-0.02203984678990159],[109.3554095701576,-0.022113868386208848],[109.355326913529,-0.0221019797760023],[109.35520970376089,-0.022057687580503676],[109.35515307764784,-0.022063115264672608],[109.35515156219729,-0.02209210286366813],[109.35513638021459,-0.022103990381324892],[109.35510601647348,-0.022107386524621023],[109.35507733966115,-0.02210568796378792],[109.35504697605175,-0.022097196420507722],[109.35503487081802,-0.02207369263888375],[109.35502336034257,-0.02205134365312821],[109.35497612789888,-0.02205304136844078],[109.35496938091262,-0.022007188790532293],[109.35496094660687,-0.02200209397437606],[109.35494070408375,-0.022007188472063382],[109.35492720901254,-0.02201567952625445],[109.35491034004778,-0.022037756469162728],[109.3549019054069,-0.02206322998713502],[109.35484623867958,-0.02205813464514822],[109.35484286536388,-0.022019075070642803],[109.35483949174974,-0.022007187348011117],[109.35482093634178,-0.02199020473478408],[109.35479900704068,-0.02198680801002782],[109.35477201708642,-0.021986807710539107],[109.3547315321371,-0.021988505501907587],[109.35470960268835,-0.021998694702298496],[109.35468767310952,-0.022020771586657984],[109.35468767256883,-0.022070020564087862],[109.35462694513824,-0.022073416368727988],[109.35462584427215,-0.022107023053572098],[109.35462188281747,-0.02222795620208202],[109.35454934732238,-0.022227955388279496],[109.35453416521166,-0.022251730584580343],[109.35451898345835,-0.0222432392117503],[109.35449368047377,-0.022234747725504808],[109.35447849853267,-0.022243238757198643],[109.35444982156031,-0.02225682435842423],[109.35442957909818,-0.022256824131001433],[109.35441439723262,-0.0222585222007882],[109.35440090210743,-0.022272107972012564],[109.35439415439402,-0.022292486780379452],[109.35437897247222,-0.022299279570868503],[109.35435704315795,-0.022297581083723424],[109.35433174017561,-0.022289089597416347],[109.35430475043484,-0.022270408650693747],[109.3543116997899,-0.022141505400007956],[109.3543165609552,-0.02205133578669613],[109.35401798467893,-0.02205133246263072],[109.3540052810436,-0.022194947543423365],[109.3539960526103,-0.022299275259921012],[109.35397074951953,-0.022300973215030346],[109.35394207266731,-0.022304369372049316],[109.35392857745042,-0.02232644633942419],[109.35388471873752,-0.02233154056472849],[109.3538492944198,-0.02233323840511791],[109.35381893064132,-0.022341729261996367],[109.35380880920532,-0.022360409786160145],[109.35379868773143,-0.022382486789787687],[109.35377338458626,-0.022389279463048486],[109.35374302054302,-0.022421545675831548],[109.35369370557298,-0.022452285910418878],[109.35365883468603,-0.02246088285361175],[109.35361257741144,-0.022470196112141374],[109.3535741484105,-0.022467329896612192],[109.35356560876971,-0.022454433792451545],[109.35355991570005,-0.02244368705518842],[109.35355351102153,-0.022429358085680313],[109.35354568306937,-0.02241287976569471],[109.35353429679357,-0.022403565853889296],[109.35351650561532,-0.022399983428433388],[109.35349800271621,-0.02240284899840693],[109.35349017450022,-0.022410013358037915],[109.35348590443999,-0.022425058650922935],[109.35348448095026,-0.022442253310464084],[109.3534738061634,-0.022447268303166446],[109.35345672661026,-0.022445835219897934],[109.35342968395949,-0.02244583491330966],[109.35341239346167,-0.02245211024296296],[109.35339383767185,-0.022470790666950617],[109.35338877677353,-0.022496264201856086],[109.35330274629933,-0.022501357942485655],[109.35330274618492,-0.022511547378950236],[109.35328587696127,-0.02255739965097175],[109.35327069529517,-0.022542115323487766],[109.35327069561929,-0.022513245253913322],[109.35326621862059,-0.02248414894886784],[109.35323695881137,-0.022458901210775692],[109.3532184033464,-0.022448711564159222],[109.35318972658082,-0.022445314760327646],[109.3531610497967,-0.022443616195903317],[109.35313574667823,-0.022448710626791366],[109.35311719081504,-0.0224741840052387],[109.35307839227448,-0.022520036023698946],[109.35306810495952,-0.022561689898687627],[109.35294949757854,-0.02260428864534096],[109.3529054159915,-0.02261437451560746],[109.35290338755915,-0.022656227854968042],[109.35298660643127,-0.022663021764128786],[109.35297086171653,-0.022715100917176788],[109.35291688162692,-0.022735479166706447],[109.35273694872396,-0.02274000573681177],[109.35268971550528,-0.022814727705132213],[109.35248504214209,-0.02279434648083324],[109.35238383031898,-0.022760380542293224],[109.35217806106428,-0.02271784363758568],[109.35209733751503,-0.022738738283039815],[109.35202905244545,-0.022733310235067136],[109.3520206181159,-0.022731611899851824],[109.352017695251,-0.022759353045413017],[109.35200880875323,-0.022843695492279905],[109.35191603085892,-0.022848789135450045],[109.3519128053104,-0.02278491139505032],[109.35191097138942,-0.022748593021988478],[109.35184180973275,-0.022748592226555238],[109.35184180912516,-0.02280206770905832],[109.35184180868991,-0.02284029708729674],[109.35174228332525,-0.022845390652164798],[109.35174228357698,-0.02282330393258229],[109.35173220745885,-0.02282527381994762],[109.35163095018976,-0.022823312272387],[109.35163094994182,-0.02284506972707573],[109.35163094937622,-0.02289463826755663],[109.35159215130132,-0.022901430770171087],[109.35159046416001,-0.022925206081895317],[109.35157190853812,-0.02293030058059162],[109.35156853536216,-0.02288105164160239],[109.35149991483956,-0.022867018333820516],[109.3514605759745,-0.022858973300604078],[109.35139647527082,-0.02283010251737005],[109.35137454597029,-0.02283010226418045],[109.35137630219687,-0.022885816405784905],[109.35132680900314,-0.0228928331616502],[109.35123959579676,-0.02288614254827047],[109.35123915395778,-0.022905260204295893],[109.3512362203852,-0.023032190946303557],[109.3511620334133,-0.02302128716101717],[109.35104342541361,-0.023023196297060167],[109.35089635127854,-0.023045165529900283],[109.35077774296488,-0.02307573241754872],[109.35070942435259,-0.023112986698282358],[109.35065628737185,-0.023166480546938227],[109.35064716161985,-0.023004417523381393],[109.35064585200678,-0.022981160297336406],[109.35057848274688,-0.022976383222254433],[109.35028433500734,-0.022981156093397542],[109.35028053893896,-0.023034650509123858],[109.35026250999508,-0.023081457950892764],[109.35022360636404,-0.0231015179183241],[109.35017236748736,-0.023123488256915323],[109.35013768131928,-0.02311834007100493],[109.35013430803342,-0.023079280587551657],[109.35006008589309,-0.023074185010685314],[109.34994369185867,-0.023086071307017314],[109.3494696810381,-0.023169279337290245],[109.34947136640773,-0.0232983453025398],[109.34940220475713,-0.023305137430937345],[109.34938533629898,-0.02328645663531783],[109.34922371338155,-0.02328013941477729],[109.34918765585653,-0.023343185996765815],[109.34905671328092,-0.023300197855963947],[109.34901685993867,-0.023394767888104094],[109.34899503613859,-0.02339094659913024],[109.34898934308451,-0.02338043869824278],[109.34885365555112,-0.023393810696783965],[109.3488505984296,-0.023365984362820388],[109.34883035626235,-0.023345605296359456],[109.34877637670144,-0.023329754459816512],[109.34874039023144,-0.023327489720539624],[109.3486616695878,-0.0233433389876899],[109.34838502300656,-0.023379564733487793],[109.34838052453665,-0.023393150561726136],[109.34821408705606,-0.023390884275572413],[109.34818035025431,-0.023345597608699874],[109.34801166342395,-0.02336144580523405],[109.3480004174099,-0.023381824490422642],[109.34790820202393,-0.023384087710757385],[109.34789920492683,-0.023424845238662294],[109.34788570997,-0.023427109391491736],[109.3478767143824,-0.023338801077516343],[109.34778225008505,-0.023320685457010777],[109.34777775034571,-0.023442958299884586],[109.34775750797817,-0.02344069374651556],[109.34775076112318,-0.023388614470607246],[109.34766754247386,-0.02338182054577899],[109.34765404725393,-0.023406727826063293],[109.34763380472842,-0.023418049149536702],[109.34760006714241,-0.023440691875932635],[109.3475438381958,-0.02344748414567087],[109.34750110444391,-0.023431633449718662],[109.34743587909438,-0.023420311112499915],[109.34739314553012,-0.02338861023087789],[109.34726044565917,-0.02336822984669815],[109.34725819594841,-0.02341578037826162],[109.34733466693129,-0.023438424409824004],[109.34733466626682,-0.023495032219373456],[109.3473166728986,-0.023506353566881324],[109.34714348761894,-0.0235403161853064],[109.34697255174802,-0.023553900016832875],[109.34666049760992,-0.02360352299538978],[109.3465356226074,-0.023613476121631116],[109.34648262260912,-0.02361799174484623],[109.34646735697913,-0.023619804240267363],[109.34646556010189,-0.023619804236005407],[109.34645927884485,-0.023619804247047304],[109.34643052884645,-0.023622522989168684],[109.34638831010088,-0.023625226114492234],[109.34637088822394,-0.023624866743929544],[109.346345185096,-0.023624319862172397],[109.34632003188602,-0.023620616786635282],[109.3463378353972,-0.02374524956259606],[109.34635132948148,-0.023815443373941786],[109.34640081066539,-0.023831294150891958],[109.346443544147,-0.023867523649170188],[109.34649302530589,-0.023885638739538778],[109.3464975227454,-0.02395809675951292],[109.34651551488508,-0.02404866943576996],[109.34649976952714,-0.024155091880579765],[109.34650876537349,-0.024218492710922565],[109.34651326288353,-0.02428415779790075],[109.3464817739636,-0.024347558129292516],[109.3464750254252,-0.024435866190249924],[109.34647277563425,-0.02448794532442956],[109.34648402067911,-0.02454681756061168],[109.34647052419672,-0.024673618830353215],[109.34644578275311,-0.02473475492745219],[109.34644578213585,-0.024784569777360866],[109.34641879164845,-0.02483664859861028],[109.34626680851188,-0.024919395026026185],[109.34627409786174,-0.02493570274409901],[109.34630373848829,-0.024997187112673205],[109.34633697285044,-0.02506140586342566],[109.3463836759773,-0.02514460899175706],[109.34644117597965,-0.02524498399496843],[109.34648878535891,-0.025329093362073597],[109.34650673848051,-0.02536074960777916],[109.34658580098619,-0.025508155860454435],[109.34666573848033,-0.025697171481943164],[109.34673759784944,-0.025898843369273863],[109.34681413934248,-0.026070990886119357],[109.34676581167781,-0.026095316768851823],[109.34689475924189,-0.026394207642875245],[109.34693074582502,-0.026385150876844937],[109.3469727286757,-0.026487800247666844],[109.34705320888148,-0.026504928016869187],[109.34714666246171,-0.026548184241435662],[109.34722244017556,-0.026603529337134252],[109.34716903065201,-0.0267012850820896],[109.3471256672546,-0.026780653338599192],[109.34732958532624,-0.027170117835797893],[109.34749451903566,-0.027484104783075357],[109.34757659786435,-0.027495030858120967],[109.34802232424242,-0.027227489976155955],[109.3481332813776,-0.02731504495452734],[109.34810329214429,-0.027351273551657573],[109.34800133064425,-0.02733617671748206],[109.34791128126538,-0.027428674152216653],[109.34793235460711,-0.02747807271406477],[109.34786937797327,-0.027499205425032102],[109.34781539750387,-0.027553548183075954],[109.34781239713003,-0.027662235161755557],[109.34776441402754,-0.027743749752454267],[109.34770443387244,-0.02793697026837702],[109.3476909280025,-0.028059326574079283],[109.3477032384859,-0.02810095273219433],[109.34776433223648,-0.02825017148483574],[109.34784337910251,-0.02839215586271121],[109.34785105357392,-0.02840600863786227],[109.34783702448648,-0.028459932093584772],[109.34789100314397,-0.02853465520177199],[109.34790899541478,-0.028602584853127937],[109.34788200516432,-0.028629756217948037],[109.34787975552274,-0.028663720880420025],[109.34789774834165,-0.028693157211121978],[109.34796747189218,-0.028711272729862722],[109.34811816209996,-0.028933177623652575],[109.34800570308683,-0.02901921987447825],[109.34808892008871,-0.029139229700258847],[109.34805743151789,-0.029166400993805984],[109.34812265576701,-0.029252445862593037],[109.34826612664601,-0.02911523400645183],[109.34828442598673,-0.02914639024806457],[109.34831069388231,-0.029203222518224495],[109.3481766351338,-0.029277354109476968],[109.34824410813866,-0.029390570781641846],[109.34830483577167,-0.029361135610576725],[109.34835656522009,-0.02943812304087221],[109.34829583748424,-0.029474351150830552],[109.34828459200644,-0.029453972161632657],[109.34822611329442,-0.02949925755699754],[109.34835880968569,-0.029755126972022004],[109.34844202780752,-0.02979815018586825],[109.34846226939948,-0.029852494019635346],[109.3485666051149,-0.029786471785108147],[109.34863384786239,-0.02995940585878649],[109.34872098847994,-0.030184593364950274],[109.34881261347626,-0.030386265238635062],[109.34887125433247,-0.030486844278865128],[109.34899081256083,-0.030418580581872433],[109.3490267990295,-0.0304208454506079],[109.34905153954412,-0.030434431717830668],[109.34908752632364,-0.030416317757364354],[109.34909652274328,-0.03042990378236154],[109.34908302739075,-0.030457075347009924],[109.34904928990541,-0.030466132084015277],[109.34901555245489,-0.03047292450638783],[109.34899530956407,-0.030504624593968473],[109.34901555138485,-0.030543118249910725],[109.3490807771302,-0.03052953337254728],[109.34913025864348,-0.03052500550868511],[109.34913700663095,-0.03049104089627849],[109.34916399699294,-0.030459340910368997],[109.34920448164011,-0.030470663107460168],[109.34922697237886,-0.03052500700367551],[109.34922472235804,-0.030581614832619692],[109.34918198810448,-0.03059972868677074],[109.34916624355775,-0.030629164531029502],[109.34917973769988,-0.03068124397372978],[109.34915274726471,-0.030717472585868797],[109.34911900956813,-0.03074011520530303],[109.34912125851599,-0.030753701126885243],[109.34917748736163,-0.030758230631589594],[109.34920897499767,-0.030794460154509935],[109.3491752374388,-0.030808045515342438],[109.34916174295184,-0.03077860921661227],[109.34912125816801,-0.03077634427117202],[109.34910326463675,-0.030794458506003892],[109.34909426745273,-0.030830687396060593],[109.34906536239248,-0.030844767417125492],[109.34902454307752,-0.030864651022162827],[109.34908301929212,-0.030984660598594664],[109.34912268409643,-0.030961843070119937],[109.34925620589287,-0.0308850334743609],[109.34930568723684,-0.030891827192114904],[109.34934617142994,-0.03093258548975254],[109.34937316043657,-0.03098919378039388],[109.34934841865837,-0.031057122832886325],[109.34931693018176,-0.031075236854902863],[109.34927869483268,-0.0310548574217731],[109.3492134690417,-0.031070706597755696],[109.34919963590032,-0.031102842992052914],[109.34918422894928,-0.031138635572763376],[109.34924045606661,-0.031254116502210445],[109.34928111651283,-0.03126423448185429],[109.3494001466949,-0.0312224186229485],[109.34941589054606,-0.031238269075210587],[109.34943838158503,-0.03127223415282583],[109.349483364583,-0.031281292124447836],[109.34951485267507,-0.031288085567772225],[109.34957782903768,-0.03129035088034157],[109.34962281203873,-0.03129940885290489],[109.34965430009758,-0.031308466612050674],[109.34945637200259,-0.03145337962268769],[109.34946761696845,-0.03150545904274788],[109.34951934775795,-0.031494138293522204],[109.34960481372867,-0.031620941295335395],[109.34946218142788,-0.03168833003377781],[109.34924945237509,-0.03127449547576941],[109.34912124892166,-0.031371858965792164],[109.34916848039363,-0.03142393894925475],[109.34919097213788,-0.03141261773464891],[109.3492437007614,-0.03151476431950121],[109.34930892684216,-0.03148080064073616],[109.3493404151089,-0.031476272513304177],[109.34935840807877,-0.031494387317689033],[109.34935615838721,-0.03152835200226175],[109.34933591558304,-0.03155325914054559],[109.34927518781373,-0.03158722288934819],[109.34936964881423,-0.03181365587152746],[109.34949419965388,-0.0317641343165531],[109.34963730018946,-0.031707237376702765],[109.34968678017572,-0.03180007508911912],[109.3495390989329,-0.03186650216695205],[109.3495518791029,-0.03189564024387037],[109.34962464472763,-0.03206204650234349],[109.34970280097721,-0.032226640248747655],[109.34979891036673,-0.032387608991148266],[109.34984920722533,-0.03246448399761651],[109.34989772285732,-0.0325395464868247],[109.34998755097757,-0.0326733902374387],[109.3500791759755,-0.032794577738254276],[109.35017080099217,-0.03291757774234873],[109.35021301972613,-0.03298810899696801],[109.3504537541099,-0.03325851524697974],[109.35050855098409,-0.03332001524871884],[109.35060017597594,-0.03346742150068235],[109.3506953947375,-0.03362931212239536],[109.35078162910408,-0.03378395273932479],[109.35086156660309,-0.03395759337734832],[109.35095409785565,-0.03413303087020534],[109.35105830097747,-0.034297624621670846],[109.35113016035321,-0.03440073399320486],[109.3511615978605,-0.034445952752437295],[109.35126130098698,-0.034591546494153545],[109.35126918965372,-0.03460485804713312],[109.35145489259432,-0.034536719448857764],[109.35145264257591,-0.03458653438571785],[109.35142790166728,-0.03459559122128684],[109.35140091148229,-0.03461144096834412],[109.35139641273359,-0.034636348377003245],[109.3514279002585,-0.034677106635772816],[109.35133227295894,-0.034711306556190064],[109.35125696310104,-0.03473824019359111],[109.35141439590588,-0.035216013858021096],[109.35152460538987,-0.035177522428570716],[109.35156059030923,-0.03527036007484398],[109.35145937749851,-0.03530658734334337],[109.35149761169008,-0.03539263207770778],[109.35161906749894,-0.03532470473268973],[109.35170453328375,-0.03545377235031094],[109.35166404817076,-0.03546735752861057],[109.35163930689454,-0.03549679320994938],[109.35166404704798,-0.03553075841408832],[109.35161456501585,-0.03556019364977025],[109.35164830116247,-0.03563038809340367],[109.35173826847199,-0.0355783104134268],[109.3517877482144,-0.03567794127272767],[109.35170452882255,-0.03570511158016891],[109.35174726176614,-0.035766248922356136],[109.35178999644653,-0.03573002061543352],[109.3519159503629,-0.03567567926762947],[109.35191145151914,-0.03570511531559657],[109.3519271949119,-0.03574587331732626],[109.35194968634931,-0.03575493099443665],[109.35199916766595,-0.03576625347743971],[109.35188670849836,-0.035831916654284625],[109.3519339398024,-0.0358907897687617],[109.35200816280954,-0.03585003339627933],[109.35203065461172,-0.03583871221511032],[109.35205764424875,-0.03585456292861115],[109.35207788628398,-0.03587720647364143],[109.35207563651592,-0.03591117120000709],[109.35200366258374,-0.03595645624793544],[109.3519564303874,-0.03594739811871987],[109.35187995744748,-0.03603117647961432],[109.3519699213966,-0.03616703717984112],[109.35205538849515,-0.03622138236941039],[109.35210262244998,-0.03613307483840741],[109.3520261520277,-0.03607646549776208],[109.35207788335997,-0.036040237356212534],[109.35211836816015,-0.03604476672948305],[109.3522195777164,-0.03619194924198239],[109.35207338038332,-0.03629836950436033],[109.35233202771296,-0.03663349332945326],[109.35249846748675,-0.036529337769491785],[109.35258034329485,-0.0365425277347652],[109.35261092518759,-0.03654745439291519],[109.35263566562496,-0.03656556939747276],[109.35278635604627,-0.03674898199038609],[109.35270873031372,-0.03680184530290185],[109.35263341120087,-0.03685313779888374],[109.3527008835642,-0.03698673384848375],[109.35277594892223,-0.0369450746058764],[109.35287631990684,-0.03688937142193661],[109.35291455493565,-0.03692786555371984],[109.35301576893302,-0.036832766048856005],[109.35304500745518,-0.03686396387588017],[109.35301576769399,-0.036900192433431483],[109.35303376048333,-0.03692736459578542],[109.35300002256565,-0.03695453579279148],[109.35302251380168,-0.036974915082741776],[109.35311248145914,-0.036909251512424995],[109.3531552146481,-0.036956803009181353],[109.35303375793605,-0.03706548804909267],[109.35298877580003,-0.03700661491648243],[109.35286178576693,-0.03710617247073968],[109.35273461692348,-0.03720587019785601],[109.35279084472609,-0.03727153649520165],[109.35283582861757,-0.037235308243478364],[109.35288081061704,-0.03730097433298887],[109.35295698276911,-0.03724450813337235],[109.35312822174471,-0.03711756915532601],[109.35318669872284,-0.03718323550521848],[109.35317095421564,-0.03720361408104956],[109.3532001925571,-0.03724437237432989],[109.35305570012261,-0.03735498300737833],[109.35298427000208,-0.03740966358764368],[109.35302925208411,-0.03747080104818328],[109.35310960278287,-0.03741417876958366],[109.35316420353335,-0.03737570220243223],[109.35320243822082,-0.03743231090188257],[109.35315420919547,-0.03746320765453674],[109.35305399179902,-0.037527409489781866],[109.35308322979286,-0.037586282337168146],[109.35319496036556,-0.037515243056152295],[109.35321143351315,-0.03750476928351354],[109.35319119152622,-0.03747986139003838],[109.35333513959065,-0.03738702702605745],[109.35341385859813,-0.03747533696698178],[109.35341160799717,-0.037552323781896754],[109.35328349056455,-0.03762859949676074],[109.35320243364335,-0.03767685736460526],[109.35319343597664,-0.037731200851446954],[109.35310346862887,-0.03777874983533333],[109.3530067568682,-0.037663267726783856],[109.35298426491657,-0.037681381849606184],[109.35304948854599,-0.03779007039970455],[109.35297526545934,-0.037830826721719626],[109.35306972689054,-0.03800744540509933],[109.35317318951016,-0.03794404645782896],[109.35318443711336,-0.03784894527209066],[109.35322717164935,-0.037824038578771396],[109.35321142798901,-0.03779913076773333],[109.35329689748755,-0.03772667418504918],[109.35335087646934,-0.037774225918392676],[109.35338114192174,-0.03775489036581923],[109.3534678342787,-0.037699505609606325],[109.35352855977074,-0.03779913682269466],[109.35346014102036,-0.03785775571184492],[109.35350070724265,-0.03791057775026805],[109.35352004185256,-0.037935688866241074],[109.35340418550413,-0.03800858398624277],[109.35347315801998,-0.038102177179261114],[109.35354513211226,-0.03805387308190134],[109.35359911050573,-0.03813237053050985],[109.35353313377212,-0.03820180839052326],[109.35368007567223,-0.03837691861149509],[109.35379386538068,-0.038272664240292326],[109.35373621521825,-0.038201682362018936],[109.35380003512388,-0.03815954623718146],[109.35387500541287,-0.03825313956973493],[109.35381618664832,-0.038300501322366856],[109.3538873316739,-0.038389227019876314],[109.35393498117068,-0.03835277080541805],[109.35402194693066,-0.038449383477822466],[109.3540759276365,-0.038407117217263274],[109.35416889087715,-0.03851882548335396],[109.35406806733803,-0.038626803229589494],[109.35414117598116,-0.03871817149985981],[109.354146978636,-0.03872604931665549],[109.35399194966736,-0.038887151429243504],[109.35406392104736,-0.03898074473920264],[109.35420487078645,-0.03886602195402766],[109.35422886156155,-0.03888111789325653],[109.35409390964485,-0.03899282170336071],[109.35411190229908,-0.03902603208630473],[109.35409690735422,-0.03905320363231019],[109.35414488842888,-0.03910754826262809],[109.35409090729367,-0.03917094816000691],[109.3542108600895,-0.03930077156001586],[109.35424984628317,-0.039264543208823076],[109.35426783970237,-0.03925850537798466],[109.35426483987364,-0.03930681081855949],[109.35433381265717,-0.03938530862748769],[109.35432781435672,-0.03941248035283827],[109.35437579524937,-0.039475882279820226],[109.35445376604852,-0.03948494111566552],[109.35446276240296,-0.03950003676524366],[109.35451074359369,-0.03954834322793938],[109.35455572750632,-0.039515134089780996],[109.35456172592744,-0.03948192417317863],[109.35458871653596,-0.039448714674360105],[109.35464269633006,-0.03945475393778961],[109.35466368786614,-0.03948796439377569],[109.35468168039864,-0.039527212979394294],[109.35470567069903,-0.03956646168551016],[109.35469967185918,-0.03962080526517178],[109.35474165534401,-0.03966609252188206],[109.35487270868974,-0.039561086080196414],[109.35503555065819,-0.039430609000659055],[109.35504454517562,-0.039539296597466154],[109.35505354147296,-0.03955741134667016],[109.35511351815654,-0.03960873715958665],[109.35498442636009,-0.03972536486035229],[109.35487960097694,-0.0398200691124397],[109.3550205446512,-0.040016313113330884],[109.35512642954241,-0.03994594732428466],[109.35520347956698,-0.03986838114312391],[109.35521247604213,-0.039877438609684755],[109.35526045874126,-0.03985026771767318],[109.35532043620313,-0.03986234530498238],[109.35536841728667,-0.03991668998771423],[109.3553714152716,-0.039961976479658226],[109.35536241777463,-0.040004243634160656],[109.35537141322712,-0.04006462572446814],[109.35546359086578,-0.040189020886423246],[109.3554723940148,-0.040190287136508525],[109.35550275766131,-0.04019368423473552],[109.35552300030776,-0.04018519343860443],[109.3555297482416,-0.04016311643824366],[109.35558372824819,-0.04015972104914026],[109.35561915241418,-0.040168212973702724],[109.35565626325001,-0.04018689438135809],[109.3557018083167,-0.04021236892658816],[109.35571530289448,-0.040232748098050906],[109.35571530211202,-0.0402718076520238],[109.35571192761645,-0.04030916889592067],[109.35570349284158,-0.04032954762204012],[109.35574229034616,-0.04035841851677734],[109.35577602757274,-0.0403703068942384],[109.35579795695959,-0.040368609099221346],[109.35582325954724,-0.04039408323794678],[109.35583000690414,-0.04040087634169963],[109.35587049152274,-0.04041785958276018],[109.35588904654905,-0.04044673006865346],[109.3558957933585,-0.04048069503893047],[109.35587048947093,-0.04051975407934933],[109.35586205489848,-0.04052994335662643],[109.35585699373028,-0.04055711511870642],[109.35585699325024,-0.04058089050112751],[109.35586205332147,-0.0406080624703651],[109.35588060865396,-0.040621648783343615],[109.35591771966253,-0.0406318389935541],[109.35594302272949,-0.040633537753719605],[109.35595651744207,-0.040647123963717245],[109.35596663799559,-0.0406810890050579],[109.35600037508658,-0.04069977035614433],[109.35600880873139,-0.040735433605579525],[109.35590513731847,-0.040838755761761665],[109.35584011797508,-0.04090355605687003],[109.35593120706129,-0.041005452435756096],[109.35595145002749,-0.040981677470871634],[109.35598181395737,-0.040971488648182355],[109.35601367744474,-0.04096129455650488],[109.35602904714169,-0.04093582654742574],[109.35602904766033,-0.04091035292126121],[109.35602904797149,-0.040895068745511895],[109.3560189272141,-0.04087129315248423],[109.35606109984596,-0.040832234460899855],[109.35609483710977,-0.04084242460637574],[109.35613026131676,-0.040849218303328876],[109.3561623115701,-0.04086620138212033],[109.35617074504005,-0.04091035584449664],[109.35615893616374,-0.04094771692173067],[109.35611170256047,-0.04100375792641453],[109.35611507578793,-0.04102923162342592],[109.35612350987851,-0.04104281773257773],[109.3561521866255,-0.04104791305160217],[109.35621966306125,-0.040974890046181545],[109.3562685821214,-0.04098847699250362],[109.35634955164538,-0.04100885757014243],[109.35637485454453,-0.0410190475455645],[109.35639340956699,-0.041047918044270784],[109.35640521716348,-0.041073391919711245],[109.35640859039047,-0.041098865620631905],[109.356428832564,-0.041114150218875864],[109.35646763055887,-0.04111924574946176],[109.35654016467714,-0.04119057342485701],[109.35642882863007,-0.0413060515748155],[109.3563647289239,-0.04123302583243444],[109.35632086964802,-0.04126019679256605],[109.3562837592271,-0.04122113645534404],[109.35626976927469,-0.041235220107534984],[109.35618254471358,-0.04132302886424785],[109.35637315703457,-0.04153701133300244],[109.35644400727855,-0.04146229016429542],[109.35659076162541,-0.04164060866577832],[109.35662116959878,-0.04161626691970774],[109.3567307744904,-0.041528527609941135],[109.3568370461584,-0.04159645953204361],[109.35683535668045,-0.04172212943689648],[109.35691969884097,-0.041796853880987105],[109.35685558916333,-0.0418600757814692],[109.35675438177257,-0.041959881665392516],[109.35683324185037,-0.04202165690187058],[109.35691596919952,-0.041929394231797104],[109.3569622907343,-0.04187773357947517],[109.35692813240458,-0.041835701356201065],[109.35695343604891,-0.04181022825171124],[109.35697747363717,-0.0418280603051127],[109.35703566998075,-0.04186754567259129],[109.35702934401623,-0.041876461312721595],[109.35700530613614,-0.04187263975960873],[109.35698000259653,-0.04189301813636136],[109.3569724112107,-0.041914670568624225],[109.35696734989725,-0.04194778619140424],[109.35698000073702,-0.041982175870709335],[109.35700783344564,-0.042016565871980986],[109.35702695118596,-0.04202465651588061],[109.35706293783986,-0.04202465727807277],[109.35705394073449,-0.042045790773482604],[109.35707493231797,-0.04207598219859871],[109.35710492088094,-0.04209107832488808],[109.3571439056655,-0.042127308329425996],[109.35711242437108,-0.042159813063947775],[109.35702694650485,-0.04224806976456387],[109.35713790287946,-0.04236581695389916],[109.35722882077249,-0.0422857310952192],[109.35728185217383,-0.0422390178967156],[109.35729384842368,-0.04220580807005448],[109.35725786239917,-0.04217561632161648],[109.35729085086487,-0.042142406940770774],[109.35732383806575,-0.042169579527001205],[109.35736582294452,-0.04214844672981821],[109.35741980122499,-0.042229963537146364],[109.3573808152959,-0.04224807729857012],[109.35739280869062,-0.042350726903299434],[109.35734396748185,-0.04240229362773604],[109.35726985153417,-0.0424805455073499],[109.35738980470232,-0.042592254719837644],[109.35745628896606,-0.04251026619783059],[109.35750976336693,-0.042444321458401796],[109.35762072014114,-0.04254395409354648],[109.35762071937467,-0.04258018327981124],[109.35757578516834,-0.042635198895023804],[109.35750975761535,-0.042716040340423346],[109.35758472861144,-0.04277340483123276],[109.3576412622169,-0.04270384558103825],[109.35769269142594,-0.04264056680312994],[109.35772267973823,-0.04266773933845376],[109.35782164281693,-0.042679817862281144],[109.3579296003874,-0.04279454595778683],[109.3579985741332,-0.042827757538304936],[109.35792959890938,-0.04286398524231856],[109.35793559623737,-0.042885119067174314],[109.3579655850008,-0.04289115791371068],[109.35799257481096,-0.042900215795118185],[109.3579052773888,-0.04297916058847342],[109.35781563693341,-0.043060224226745325],[109.35790560127698,-0.04316891375270607],[109.35799084477075,-0.04306686442293789],[109.3580165630242,-0.04303607578920492],[109.35804055368686,-0.043057210005723746],[109.35807954034638,-0.043005886158767],[109.35808853649823,-0.04303003915018413],[109.35813052101528,-0.043027020960485524],[109.35817250443529,-0.043075327465418506],[109.35820549150934,-0.043108538278291815],[109.35812265819499,-0.04319834066989094],[109.35804954562701,-0.04327760446506522],[109.35819948737058,-0.0434044099223638],[109.35825188656842,-0.043326261983280746],[109.35828045999246,-0.043283647697832765],[109.35834943335293,-0.04333497390077376],[109.35831413169245,-0.043392887412026335],[109.35826846046444,-0.04346781252675963],[109.35830144727296,-0.043513099747311546],[109.3583569010224,-0.043438666501557616],[109.35837748848931,-0.043460702748466654],[109.35853287910865,-0.043626202755313946],[109.35862096879175,-0.04371906012860145],[109.35867930447884,-0.043648967547491015],[109.35879326028366,-0.04374256217165247],[109.35872587094687,-0.04382493987302808],[109.35884189474125,-0.04393370274937445],[109.35888047379089,-0.043969831592613036],[109.35901817505054,-0.04383615925491077],[109.35912913217332,-0.04392069653545359],[109.35910214136366,-0.04395692515211779],[109.35911713509353,-0.043990135596329465],[109.35911413494836,-0.04404749845129849],[109.35915012144281,-0.044056556552782185],[109.35920710017571,-0.04406561512007003],[109.35916211548647,-0.044125996146374025],[109.35915311795293,-0.04416524426197268],[109.3591771084854,-0.04419241670631497],[109.35920109908423,-0.044216570049988364],[109.35922509034631,-0.04421053238135845],[109.35924908246984,-0.04416524639521165],[109.35924008685498,-0.044116940574129536],[109.35929706585485,-0.044113922737907214],[109.35935396265724,-0.04419304276705544],[109.3593420458459,-0.04426789791177786],[109.35932405170114,-0.04430412672825414],[109.35932876973328,-0.044363280875412456],[109.35938764959111,-0.04440935024568593],[109.35941701587328,-0.04437054903600913],[109.35945900062056,-0.04435847356690464],[109.3594979860782,-0.04436451264061259],[109.35952797439566,-0.04439168522593096],[109.35954896523916,-0.044455086832415884],[109.35950543746075,-0.044497721701339144],[109.35943800384753,-0.044563772008408116],[109.35949498165097,-0.044615098015241376],[109.3595707716294,-0.0445361235762819],[109.35966592241796,-0.04443697483692993],[109.35976188549351,-0.044503397229059403],[109.35967462339589,-0.04459549411132331],[109.359575949852,-0.044699634684290605],[109.35967191231065,-0.04479322900400904],[109.35978886862765,-0.04481436535507459],[109.35986684183567,-0.044723794045026],[109.35998379635261,-0.04482644615987108],[109.36006776318837,-0.0449230593358575],[109.36013373754493,-0.04498042377761121],[109.36011274334008,-0.04506797727932549],[109.3602087058087,-0.04516157164135109],[109.3603016727696,-0.045104210797491114],[109.36033466153698,-0.04506194410416093],[109.36034649081161,-0.045018281662073785],[109.36036165379869,-0.0449623143161881],[109.36041863242839,-0.044977411120267055],[109.36044562260032,-0.04497137352450248],[109.3604636143406,-0.04504383240769782],[109.36041806343606,-0.045085250554122006],[109.36051091036457,-0.0451754214978501],[109.36054410154335,-0.045210367325904256],[109.36057157138679,-0.04518271360703615],[109.36061955367933,-0.04518271469730103],[109.36063754636231,-0.04521290614055102],[109.36063454624912,-0.045267249934205486],[109.36061990478069,-0.04529017790078606],[109.36060755525939,-0.045309516767303916],[109.360658535088,-0.04536989999837066],[109.36067352867121,-0.045409148685935104],[109.36066453151471,-0.04543028220484662],[109.36067652667995,-0.04544839709989972],[109.36074250233656,-0.045448398607724275],[109.36062854138585,-0.045581236554041074],[109.36070351228635,-0.04564463944687616],[109.3608395161469,-0.04550292126337334],[109.36087445324773,-0.04546651624594969],[109.36091943542755,-0.045520861143975716],[109.36089289106614,-0.045554394636247664],[109.36076648747664,-0.045714080275941905],[109.3608624500173,-0.045804655595276744],[109.36099386554804,-0.04566054843601811],[109.36102562911351,-0.04569453087470122],[109.36109784847096,-0.04577794929340044],[109.36106337549597,-0.04582277484709599],[109.36112934979234,-0.04588315845070381],[109.36116593752327,-0.04585451090326423],[109.36118333084892,-0.045840892236100377],[109.3612433073602,-0.045901275705409576],[109.36128529263677,-0.045868066525552385],[109.36137825643942,-0.04595260359681559],[109.36142923881556,-0.04590127999543613],[109.36151620662301,-0.04590732021148967],[109.36163016076958,-0.04607639271782129],[109.3615431905406,-0.04617602116273778],[109.36158817264831,-0.04623338519944871],[109.36154320934794,-0.04627955470827421],[109.36165262911719,-0.04640807776092082],[109.36175773848207,-0.046544640263357695],[109.36184713831805,-0.04662854715158911],[109.36199001807292,-0.046517190452197654],[109.3620529938335,-0.04656247850797079],[109.36210397519797,-0.046556441489328686],[109.36224192140132,-0.04668626626861812],[109.36226891181342,-0.04667117137208255],[109.36232289054227,-0.04673155475766483],[109.36226590976992,-0.04680703106771261],[109.36224791688495,-0.04678589690344832],[109.36213431949561,-0.04691216671608626],[109.36217364473379,-0.046953421502546694],[109.36226629972202,-0.04702983577270454],[109.36223085391647,-0.04707601370595023],[109.3622966406088,-0.04714394514589107],[109.36233712578388,-0.04714054961044665],[109.36234218558717,-0.0471762129202175],[109.36235230606681,-0.04721017810302461],[109.36237592165769,-0.04724074711217871],[109.36240628567948,-0.04723225659672413],[109.36243965942217,-0.04718890560470654],[109.36249073848808,-0.0472410152646084],[109.36256439473323,-0.04731879651546449],[109.36260596127187,-0.047360244858326066],[109.3625817174072,-0.04739019776198154],[109.36259689876164,-0.0474139735863763],[109.36254629082794,-0.047480204026382304],[109.36261376459704,-0.047539644293514156],[109.36268967596364,-0.047463224971481734],[109.36270823099679,-0.04749039737299007],[109.36268461404673,-0.04751756876862211],[109.36265593617851,-0.04755662777459547],[109.36265256133893,-0.047602480373906506],[109.36269979267658,-0.047656825421386294],[109.36281033926296,-0.047559558350458685],[109.36282799815356,-0.04754474415135757],[109.36285161442557,-0.047546442962779496],[109.36287354437862,-0.04752436626772101],[109.36308455803807,-0.04771270481056713],[109.36313246969031,-0.047702276503706675],[109.36318729845327,-0.047758731960087515],[109.3631889848105,-0.047780809222737176],[109.36315693321109,-0.0478181699061429],[109.36308608595287,-0.047746841798549544],[109.36303379268455,-0.04774684054478658],[109.3630304182019,-0.047777408922955254],[109.36305572051128,-0.04781477098046217],[109.3630371644331,-0.04783175301223299],[109.36302704283347,-0.04784533875095115],[109.36303210286823,-0.04787081258844088],[109.36305909209604,-0.047906476439957],[109.36309451628644,-0.047918365026620925],[109.36311307204349,-0.047914968977506585],[109.36315187035711,-0.047911573415267895],[109.36324633554251,-0.047914972183596125],[109.36329188166,-0.04789968904771145],[109.3633289914037,-0.04796761985942407],[109.36330031380045,-0.047994791136099994],[109.36330031323507,-0.04801856660745773],[109.3632901913095,-0.04804573833065513],[109.36324127187581,-0.0480423406547835],[109.36314005731111,-0.04811706111735236],[109.36309282370796,-0.04815781792289147],[109.36323470520384,-0.0483181878464101],[109.36329037342617,-0.04826851544438784],[109.36332832840553,-0.048260874248243386],[109.36340297305419,-0.048251960254606464],[109.36340550373946,-0.04823667608345396],[109.36347888374794,-0.048206109394497265],[109.36337007718977,-0.04832328587441462],[109.36342321271789,-0.04837296091927028],[109.36351304108972,-0.048288899817839855],[109.36356111604331,-0.04833602737020205],[109.3636243751745,-0.048288902516606835],[109.36363955715669,-0.04828635551222406],[109.36365600405527,-0.048293998028058276],[109.36365853361362,-0.04832584024427618],[109.36365347184469,-0.0483729665106313],[109.36363355627735,-0.048415115604951466],[109.36368078745456,-0.04847625369091305],[109.3637010300711,-0.04847398985239627],[109.36384272540022,-0.04858268119870154],[109.36391919872464,-0.04852381044922508],[109.36397767577529,-0.04858494882051545],[109.36397992391376,-0.048627971171598144],[109.36392819127775,-0.04869589984875183],[109.3639844196416,-0.04873665918787473],[109.36403389999207,-0.04879779734701802],[109.36393943222276,-0.04889968994365108],[109.36395742418739,-0.0489585630004327],[109.36398441323081,-0.04900158595990615],[109.36401140265869,-0.049028758600619914],[109.36401814968568,-0.04904913774946706],[109.36403164346406,-0.04910121770472563],[109.36406762876074,-0.04916235554140821],[109.3640968678028,-0.04917141358882463],[109.36412385794677,-0.04916914992327563],[109.36414634990822,-0.049160093151947054],[109.36418458630932,-0.04914197944226545],[109.36420258014337,-0.0491238652329105],[109.36421832496823,-0.049098957972834284],[109.3642408172055,-0.04907857954187717],[109.36426443320994,-0.04909195383253283],[109.36429479653609,-0.049113607252772244],[109.36430618223736,-0.04914417601199173],[109.3642973247804,-0.04919894431759307],[109.3643049144089,-0.049253713029171836],[109.36431756517547,-0.04928810288048515],[109.36433274679133,-0.04930084012221121],[109.36434792868702,-0.04930211418440339],[109.36436437577451,-0.049302114591254324],[109.36439094424011,-0.049298294188470204],[109.36441118690298,-0.04929447362912222],[109.36443775508938,-0.04930211640638561],[109.3644655880637,-0.049325043455664616],[109.36449848183642,-0.04934160219719774],[109.36451998925672,-0.0493543395970772],[109.36454529231482,-0.04936070865742849],[109.36456812405622,-0.049363661088185504],[109.36458283224209,-0.04938892150318567],[109.36462248799762,-0.04944237155684561],[109.3645743880205,-0.049482983308916914],[109.36460095574039,-0.04950973139124558],[109.3646009553345,-0.0495262893195945],[109.36456046925437,-0.049564498916892234],[109.36460980880278,-0.04963455291797378],[109.36463764237067,-0.04963327992419144],[109.36469584095484,-0.04958488127256761],[109.36474265055992,-0.04963965097312014],[109.36463510963739,-0.049731353746288],[109.3647451753618,-0.04986381992877],[109.36486536376233,-0.049940031871797595],[109.36491428440878,-0.049895878614577234],[109.3649260926195,-0.04989418066072975],[109.36495982936417,-0.0499298447417894],[109.36498681837361,-0.049973999901892774],[109.3649952520659,-0.05000287035307163],[109.36487885443921,-0.0501166501370713],[109.3649665696509,-0.05022194380327501],[109.36503573313553,-0.05016760156348921],[109.36504585379107,-0.0501930755597447],[109.36505091384463,-0.050216851179416065],[109.3650694688221,-0.05024572188759108],[109.36507115511229,-0.050269497422618534],[109.36505765934268,-0.05029836732308322],[109.36506440631882,-0.05032044473622131],[109.36509308317575,-0.050325540208411776],[109.36512682105806,-0.050315351562850524],[109.36514706439611,-0.05028478358211631],[109.36517236761831,-0.050284784220202945],[109.36521960093393,-0.050259311667404986],[109.36526346057165,-0.05023044252913235],[109.36528538948313,-0.05025252032689373],[109.36528707585798,-0.050272899365225554],[109.36528538813143,-0.050306864315608546],[109.3653275587333,-0.050364605868659915],[109.3654338285485,-0.050514054532504855],[109.36531237086032,-0.05060236043893691],[109.36540345936183,-0.05072633498178441],[109.365507673074,-0.050650293778593904],[109.36550092495114,-0.05067406910487674],[109.36550261127935,-0.05069614639554404],[109.36551947937282,-0.05072501707166522],[109.36554646897012,-0.05074539675654706],[109.36561900591194,-0.050704640603666695],[109.36564599546823,-0.05072671853917168],[109.36566792399512,-0.050764080596258],[109.36571178074861,-0.050850692462930586],[109.36574889116913,-0.050889753159923445],[109.36583720092709,-0.050974873846257256],[109.36587816036801,-0.051048452765093136],[109.36590061350122,-0.05108734338915829],[109.3659113947356,-0.05110634339035007],[109.36591858224821,-0.05111448400976074],[109.36594551974916,-0.05115426526362563],[109.3660128947369,-0.05125465589515443],[109.36603711100149,-0.05129022016092634],[109.3659209407704,-0.05137885360319964],[109.36596142386922,-0.051460370656474075],[109.36608121801338,-0.0513549961945744],[109.3661323634952,-0.051430109006740526],[109.36613676542824,-0.05143735817535653],[109.36609974782435,-0.05147565847738446],[109.36609637354081,-0.05149603739437467],[109.36611830262159,-0.051511322213572824],[109.36614191849814,-0.05153000357738719],[109.36616384697285,-0.05156906390282594],[109.36616890692684,-0.051596236039986816],[109.36617565367615,-0.05162680472172792],[109.36620433011288,-0.0516488827193091],[109.36623637996733,-0.05168454680850228],[109.36627686301736,-0.051767762131151356],[109.36622288186632,-0.0518034239900091],[109.36621613398859,-0.05181700981833038],[109.36620938593681,-0.0518373886482706],[109.36620769840128,-0.05186286236088518],[109.36621781886795,-0.051895129382352724],[109.36623300015576,-0.05192060353398623],[109.36627179810294,-0.0519341905474206],[109.36630384900076,-0.05192909663006605],[109.36633589872118,-0.05196985547709992],[109.36641419074613,-0.05189233196996424],[109.36643880117242,-0.05186796311928951],[109.36645398272391,-0.051883247769634266],[109.36647591110834,-0.0519257046062432],[109.36648097105846,-0.05195287674852977],[109.36647770051341,-0.05199764007774057],[109.3664725336757,-0.052068357573561624],[109.36645397722357,-0.05209722735032393],[109.36642867324082,-0.05212609695027678],[109.36641517695398,-0.052173647614773166],[109.36642529675918,-0.05223138840033235],[109.36645059837453,-0.05229422433619855],[109.366513011055,-0.052370647252767355],[109.36656193025718,-0.05238593279308219],[109.36665133517492,-0.052380840387364465],[109.36667832490392,-0.05239612535319078],[109.36668844567284,-0.05241650462891759],[109.36668507133506,-0.05243858180124602],[109.36667832331928,-0.052457262383101694],[109.36667157499515,-0.052487830720567924],[109.36667494761453,-0.05253198533087677],[109.36667663357099,-0.05256764864267952],[109.36670530974021,-0.0525999161642008],[109.36681158261106,-0.05262878923086515],[109.36680989488846,-0.05266105595431173],[109.36679808595632,-0.052689925908604954],[109.36679808529266,-0.052715399672623536],[109.36680820592623,-0.05274087370404038],[109.36683688227194,-0.05276634822623553],[109.3668706195769,-0.05277993512599965],[109.366909718572,-0.05274713480576302],[109.36692122717427,-0.0527374801881709],[109.36694484353653,-0.052737480812089566],[109.36696508538047,-0.05276635161514323],[109.36696339787729,-0.052790127085587404],[109.36695008096142,-0.05280698717442773],[109.36699919162476,-0.05287981214257249],[109.36704013167454,-0.052929950947984174],[109.3670091265762,-0.052965236854100636],[109.36710527464125,-0.05312827151970124],[109.36709852443052,-0.0532301664114464],[109.36716431055079,-0.053318477230226785],[109.36729326602014,-0.053241340534591855],[109.36731200887388,-0.053230455145119294],[109.3673457466012,-0.05322819170935905],[109.36738398322053,-0.0532055493762276],[109.36740647339161,-0.0532666870277344],[109.36733876434812,-0.05330019429189123],[109.36728273893098,-0.05333924029257312],[109.36736670369415,-0.053511332012543586],[109.36738769634054,-0.05349925612048683],[109.36744467335866,-0.053580773718233644],[109.3675290420776,-0.053526174376274216],[109.36757062948621,-0.05349926102155139],[109.36763660258299,-0.05360493178029104],[109.3676052330951,-0.05362679422657877],[109.36755862963368,-0.05365927373785029],[109.36762460200006,-0.05379211652744324],[109.36762160277493,-0.0538041929027147],[109.36767258141677,-0.05390684415531851],[109.3677085687514,-0.053888730441802674],[109.36777154397535,-0.05395515265432212],[109.36793047979117,-0.054184609648456436],[109.36798445846014,-0.05424499340399582],[109.36799945201334,-0.05428122318622473],[109.36798145753157,-0.05432047118649406],[109.36795746523961,-0.054359719022806514],[109.36794246982373,-0.05439292887422674],[109.36794846674083,-0.05442613929709412],[109.3679784548957,-0.05445935037434643],[109.36802043850749,-0.0544986000090001],[109.368053425242,-0.05454388762899108],[109.36806841740606,-0.054631442364380334],[109.36808640773711,-0.05474616921564198],[109.36804442208748,-0.0547823974408274],[109.368139259901,-0.05487684172639366],[109.36816962464351,-0.05484627402273957],[109.36831469193915,-0.05502119798422999],[109.36836023578311,-0.055095922337957265],[109.36836023393359,-0.0551638524283624],[109.36836866756835,-0.055192722949778866],[109.3683855360876,-0.05520461118173469],[109.36841421298259,-0.05520970673099278],[109.36844457717879,-0.055199518056012746],[109.3685120526015,-0.05519782166771784],[109.36853229479811,-0.05521310649856735],[109.36853229424243,-0.05523348552740442],[109.36854072764538,-0.055270847313661955],[109.36856096928538,-0.05530651117463994],[109.36858121069308,-0.05535066629854063],[109.3686014525179,-0.05537953715115969],[109.36862506857612,-0.05539142557305005],[109.36866916625591,-0.05542413945802736],[109.36872121904503,-0.055462754846077184],[109.36873977398521,-0.05549162565493036],[109.36873302593482,-0.05551030624593456],[109.36872098814288,-0.05551575935551045],[109.3686992878235,-0.05552558958169918],[109.36866048770767,-0.055590122099236236],[109.36865036579427,-0.05561219910027543],[109.36863349536229,-0.05566993921552638],[109.36861493823142,-0.0557208862728491],[109.36860144240741,-0.05574805793598829],[109.36861831050466,-0.05577523044626072],[109.36866385620075,-0.055782024727581425],[109.36869084654104,-0.05577523247082915],[109.3687161502313,-0.05575994890399208],[109.3687380797782,-0.055758251263308155],[109.3687633827208,-0.055770139737505976],[109.36879037203364,-0.05580070903796512],[109.36882748302912,-0.05581769260072175],[109.36887302840222,-0.055836374652402786],[109.36894724805285,-0.05595525441911226],[109.3689691748324,-0.05605375369410974],[109.36897423374735,-0.05611658918888552],[109.36900628267682,-0.05618452020112867],[109.36906989566737,-0.05615446200268974],[109.36908894112047,-0.05614546270836668],[109.36920027001412,-0.0563441614333832],[109.36923500262733,-0.05646645796749743],[109.36921038739978,-0.056485116716152514],[109.36919857844647,-0.05651228843001363],[109.36918845633066,-0.056541158444264154],[109.36918845547736,-0.05657172699756727],[109.3691985762183,-0.05659210631962632],[109.36921881841226,-0.05660739116960266],[109.36925592926741,-0.05662946950978801],[109.36929135352251,-0.0566413582846394],[109.36931496953476,-0.05665494497836577],[109.36935376756105,-0.0566668338496136],[109.3693708193245,-0.056666383742614006],[109.3695147551153,-0.05658669087675728],[109.36954174384704,-0.056638016628158976],[109.36949975821685,-0.05667122572411416],[109.36952674686152,-0.056725570593157],[109.36951774861794,-0.056779914441675475],[109.3695777235458,-0.056894642589602744],[109.36956872631532,-0.05691275703537182],[109.36955168869807,-0.056926641535874],[109.36950574782034,-0.0569640802292875],[109.36949675050415,-0.05698521379086362],[109.36950574586729,-0.057033519916964426],[109.36953873308218,-0.057060692910162386],[109.36961070668842,-0.05706673319822197],[109.3698026267945,-0.05741997540042863],[109.36970366198707,-0.05745016373023001],[109.36977263309223,-0.05758300687133053],[109.36992194891599,-0.05747620555540714],[109.37000055471322,-0.05741998108339436],[109.37001987985442,-0.057460739726266176],[109.36995993923686,-0.057531137640174104],[109.36992391160108,-0.05757345068864537],[109.36999854773066,-0.05769153388128368],[109.3699079105507,-0.05781497962526583],[109.36995055908093,-0.05790622529912179],[109.37010931799738,-0.057764171905334304],[109.37028643634052,-0.057922336986166716],[109.37044104197841,-0.05808872842528063],[109.37045170230282,-0.05817460587720062],[109.37055832678033,-0.05829269005475569],[109.37081422518185,-0.05858790024060032],[109.37122047282146,-0.059133877236944944],[109.37131369543987,-0.059098425621009],[109.37173652581494,-0.05964489886432003],[109.371769512768,-0.05968112929032672],[109.37180249821002,-0.05976868476291624],[109.37202441094308,-0.05999512543625395],[109.37210237870417,-0.06012796908625125],[109.37212936819039,-0.06015212286311852],[109.37218934525465,-0.06019137323643375],[109.37218634482052,-0.06024269820155473],[109.37217134936702,-0.06027288895925287],[109.37217134802168,-0.06031817577239131],[109.3722103334219,-0.06033327255128441],[109.37222832751898,-0.06031213924662926],[109.37227031210097,-0.06031817875304858],[109.37230629787341,-0.06035742841087951],[109.37233028862786,-0.06037554386060613],[109.37236927492867,-0.06036044942995719],[109.37244724313038,-0.0604781975100634],[109.37245024096272,-0.060514427056179876],[109.37244124278648,-0.0605627327248765],[109.37244424061726,-0.06059896227099334],[109.37247422946551,-0.06060802054229428],[109.37253120870197,-0.06061104138778611],[109.37256719375215,-0.060674444027610595],[109.3725791871431,-0.060749922428212824],[109.3725581934033,-0.06079520861337267],[109.37264515886808,-0.0608948422653263],[109.37269613983204,-0.06091295854505543],[109.37282508707487,-0.061112224508703544],[109.37285207328479,-0.061245066695616766],[109.37284686184164,-0.061288339832678805],[109.37284007462736,-0.061344697351030535],[109.37282207731771,-0.06147149991798636],[109.37291204359627,-0.061507732142261094],[109.3729900155081,-0.06150169629170068],[109.37304119272484,-0.0614743956187946],[109.3731218322546,-0.06155645276982974],[109.37327183225031,-0.06171834339255479],[109.37342723850418,-0.06187479652834112],[109.37352425412843,-0.061975187148331924],[109.37358083225035,-0.06203285901641851],[109.37359628017354,-0.062048589620468685],[109.37360012580143,-0.062052366924601886],[109.37360010467367,-0.062052382843561286],[109.37369333219317,-0.06214301526608477]]]},"properties":{"Id":0,"Plan_Area":113026328.1,"Ket":"Pontianak Timur","Penduduk":110904}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[109.3542517137578,-0.04207834350964987],[109.3541572853548,-0.04197295274622931],[109.35398483223217,-0.04177851525769786],[109.35382851973591,-0.04156959337507654],[109.35366322286175,-0.04133989024822667],[109.35347100411668,-0.04113731213606574],[109.35327337910323,-0.04094015587685209],[109.35308473847793,-0.04072762462449755],[109.35289430098638,-0.040512390252949726],[109.35271105098029,-0.04031976525282673],[109.35253678535138,-0.040113562124018995],[109.35236342598014,-0.03988112462231661],[109.3521882541126,-0.03968128087990572],[109.35200411348481,-0.03948864025750211],[109.35181995723909,-0.039282452757087256],[109.3516546759855,-0.039066296496739095],[109.35150376973381,-0.03887728088051426],[109.35135825410707,-0.03867923399854586],[109.35121003535704,-0.03847123400050238],[109.35108482417394,-0.03833390442248441],[109.35110359559948,-0.038319506573934986],[109.35105561469479,-0.0382591238668479],[109.35106461207975,-0.03821987588566233],[109.3510376225179,-0.03820176083089957],[109.35099263968526,-0.038183645429102055],[109.35097464693192,-0.0381564732829768],[109.35096565098598,-0.03812024404470885],[109.35094465966948,-0.038076466853924976],[109.35088068543119,-0.03797985478683049],[109.35080927195246,-0.037989070668093324],[109.35067276270212,-0.03800668713193602],[109.35055014506614,-0.037840299475118036],[109.35050216443959,-0.037765156810364874],[109.35053948491979,-0.03770611757905876],[109.35056596785824,-0.037646872989632624],[109.35058746898288,-0.0375987731383611],[109.35039554652813,-0.03729283525172374],[109.35035603881215,-0.03731669861917723],[109.35031557556123,-0.03734113914616466],[109.35011299101593,-0.03700299752701005],[109.34985709522984,-0.036546775139202785],[109.3496805834804,-0.036246498536571164],[109.34953889127105,-0.03598609972233075],[109.3495208986647,-0.03594987035633719],[109.34952314822856,-0.03592722724838707],[109.34950965361055,-0.03590911248397003],[109.34949166047537,-0.035902319212302754],[109.34946916935093,-0.03587741134039346],[109.34946692068063,-0.03585023952165522],[109.34946692169375,-0.03579363165109679],[109.34945117824168,-0.035757402328914736],[109.34942868699468,-0.035739287403473576],[109.34939944795332,-0.03573928687436903],[109.34937920602538,-0.03571211473140124],[109.34937920663116,-0.03567815001057707],[109.34943543616156,-0.03564418630455796],[109.34937695960947,-0.035558141289823375],[109.34928699329244,-0.03556040398456842],[109.34923526405146,-0.035483416358144414],[109.34915879244006,-0.0354992651853477],[109.34912055761917,-0.035451713895012435],[109.34903059127367,-0.03545624090842232],[109.34899910416415,-0.03539510385729094],[109.34906657942183,-0.03536340466572438],[109.34903734154533,-0.035297739026511274],[109.34911606278558,-0.03525471845972415],[109.34908457562877,-0.03519584572354251],[109.34890689058766,-0.0352909437518574],[109.34895187191746,-0.035392838696352555],[109.34891813437007,-0.03540415966254968],[109.3488326695838,-0.03522527731642202],[109.3488821515818,-0.03519357780109486],[109.34887590482053,-0.035142630621497147],[109.34891988867739,-0.03512250416704281],[109.34897586986922,-0.03499771628810244],[109.34888390548629,-0.03493330749980244],[109.34887990775856,-0.03488902750791279],[109.34892789025339,-0.034860850223438794],[109.34882393218523,-0.0346917796027504],[109.34874396155575,-0.03472800722144302],[109.34881993130755,-0.034828644739195565],[109.34863999740679,-0.034909150502556774],[109.34859201723368,-0.03480448803749234],[109.34865999277861,-0.03474410753200294],[109.3486200095261,-0.034643470657091606],[109.34865999542899,-0.034591140548717945],[109.34855204002966,-0.03435363730112218],[109.34859602456125,-0.034293256364595716],[109.34847607301555,-0.03409198195289902],[109.34852005719485,-0.034051728246088105],[109.34844408734814,-0.03395511621977578],[109.34840810058112,-0.033971217386388926],[109.34832813216775,-0.033878630746162194],[109.34818419014645,-0.03364515240958023],[109.34824016987463,-0.03360087345708448],[109.34819618800775,-0.0335042620046357],[109.3481666759799,-0.03339684336810289],[109.34808312910779,-0.033295562123554265],[109.3479852228503,-0.03317346837813125],[109.34795828535357,-0.03313276523707584],[109.34790258223826,-0.03303418711319799],[109.34783970722562,-0.03290578086995675],[109.34777592599023,-0.03277103086236109],[109.34774813052688,-0.032707586812145105],[109.34770305287046,-0.032719962768074505],[109.34755378095656,-0.03239255745881312],[109.34745781901587,-0.03226910891903399],[109.34735652772443,-0.032022213346628484],[109.347319208161,-0.03203831451753001],[109.34728189005895,-0.031963172287824956],[109.34723391083554,-0.03179141923200582],[109.34715394354048,-0.031625032930165164],[109.3470526488894,-0.031587460498472955],[109.34695135745194,-0.03134593226924811],[109.34695133220256,-0.031292218368397934],[109.34688205161451,-0.03125468778605199],[109.34674877417454,-0.03088434491452481],[109.34677009989987,-0.030857508961326833],[109.34655685452844,-0.030352983479598288],[109.34648221778066,-0.03023221905583069],[109.3464253496439,-0.03027515623571814],[109.34637559200195,-0.030182123027989515],[109.34623342684992,-0.029945961588370557],[109.346219211586,-0.02983861625367011],[109.34629029647091,-0.029802835622159907],[109.34614102474862,-0.029437859976001925],[109.34622180452563,-0.029379127678858995],[109.34626897794503,-0.029344829448260588],[109.34542354288943,-0.02764451559184486],[109.34524761347392,-0.027334554245575453],[109.34512366382666,-0.027068873504370587],[109.34523162366843,-0.02702862058847765],[109.34517564586163,-0.026948111023972612],[109.34511566825836,-0.026964211962285694],[109.34511966740251,-0.026915906740525842],[109.34498795237513,-0.02663100725980172],[109.34489124170886,-0.026415896542756792],[109.34480802510073,-0.026264186691571746],[109.34486200518582,-0.026230222768342717],[109.34490248884286,-0.02631173845261811],[109.3449182329344,-0.026309474353295764],[109.34497657227374,-0.02628073387719494],[109.34491225410947,-0.026141171484718558],[109.34486255383929,-0.026049781607866525],[109.3448249992455,-0.02606842153728127],[109.34482527102647,-0.026078890927666052],[109.34477728892925,-0.026093985688603088],[109.34477671544883,-0.02609238682029518],[109.3435626315242,-0.02669498758526942],[109.34210494955178,-0.027631289913580114],[109.34073186993625,-0.028449083707839516],[109.33989534931858,-0.02900890989233597],[109.33866974466294,-0.029896030424540483],[109.338103284086,-0.03033352538936671],[109.33789455090778,-0.03038760898972202],[109.33665977712863,-0.03156383186112857],[109.33398214420836,-0.03414347596314283],[109.33260000690112,-0.03551172396131128],[109.32981224083295,-0.03792040735123325],[109.32678273002858,-0.04053795579041163],[109.32503242609334,-0.04205024456135078],[109.32448646470378,-0.04261931863073522],[109.32372239973732,-0.043415728877689824],[109.32270982295476,-0.04438848475261101],[109.3219146392269,-0.04515239613305311],[109.32091635935764,-0.04611141557186],[109.3195934185071,-0.04750229392434255],[109.31891938021646,-0.048139538454601324],[109.31792659285624,-0.04907813170237839],[109.31720023906401,-0.04984814625261359],[109.31642282578287,-0.050634668632088826],[109.31413037706426,-0.05284824873871211],[109.31203935583135,-0.0549893416096532],[109.31095422427441,-0.05591006277695976],[109.31014057450318,-0.05686925418155446],[109.30922115564404,-0.05779283901742656],[109.30886309776758,-0.05821339794593776],[109.30803151893957,-0.05899239587119645],[109.3069922606449,-0.06003601996990354],[109.30592483648194,-0.06115790978185177],[109.30470076601493,-0.06230462738825889],[109.30473708443189,-0.06233721052814042],[109.30483206654915,-0.06235421838426612],[109.30680107635435,-0.06436189820850707],[109.31011931907967,-0.06774530889071882],[109.31094134562537,-0.06858347944660835],[109.31289213253426,-0.0705725784417261],[109.31504516209634,-0.07270276618168048],[109.31684825367192,-0.07426990288058401],[109.31687796744669,-0.07428110893073998],[109.31702731337043,-0.0744255305517153],[109.32211061823416,-0.07884362761056447],[109.32389276289443,-0.08052549670981375],[109.32393840924078,-0.08043223156481946],[109.32463498212682,-0.07940820627817205],[109.32774600026451,-0.07481502560151726],[109.33040539270073,-0.07078409119737616],[109.3324355082375,-0.06818769289691332],[109.3350185978989,-0.06513216064808534],[109.33822989052751,-0.06131030726062607],[109.34177229675163,-0.057301053193673665],[109.34548918426675,-0.053022664678963764],[109.34727622990725,-0.05100467478763772],[109.3485814044353,-0.04896407822417487],[109.34954295376905,-0.04751183325128081],[109.35087495701238,-0.04606645834771445],[109.35193342151881,-0.04487510170995203],[109.35175946042835,-0.044535422834847266],[109.353347075267,-0.043105218849610556],[109.3542517137578,-0.04207834350964987]]]},"properties":{"Id":0,"Plan_Area":113026328.1,"Ket":"Pontianak Selatan","Penduduk":91290}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[109.29875831658171,0.003910766031328909],[109.29878089470797,0.004264422288841691],[109.29871316033508,0.004553750413511107],[109.29839703532866,0.0046823441692222375],[109.29803573844835,0.004875250422110328],[109.29771961344709,0.0050038441652494586],[109.29744864470875,0.0051324379179639975],[109.29699703531739,0.005003844156955543],[109.29681639469325,0.0048752347948509715],[109.29668091033271,0.0046823441642509485],[109.29663575407758,0.004553750406613091],[109.29672606657329,0.004425156657614642],[109.2968841290737,0.004328703547509942],[109.29713251969929,0.004039375417452581],[109.29753897281941,0.003975078541259786],[109.29803573844464,0.003975078537449749],[109.29826155094915,0.0038464847839492647],[109.29855509783246,0.003814328546525718],[109.29875831658171,0.003910766031328909]]],[[[109.3116357811095,0.03960991437806738],[109.31164417889931,0.03939582571713132],[109.31160956858118,0.03940671734231131],[109.29844019670277,0.03227552844129888],[109.29112304227966,0.011630683792513839],[109.29002441804451,0.008530991543888687],[109.29048922274788,0.008489437936352017],[109.29045272094851,0.008403083209608754],[109.2904929031835,0.00839351315904711],[109.29055287876773,0.008417665381200527],[109.29069981934578,0.008387476079683343],[109.29080477695847,0.008354267594329152],[109.2909097344723,0.008345211068059648],[109.29164743556008,0.008387480246122778],[109.29170205022707,0.008505301758822024],[109.29175239208597,0.008613905458186733],[109.29187226595104,0.00850233275884541],[109.29191132842487,0.008465975326112821],[109.29189333586332,0.008429747283518673],[109.29189333602085,0.008393519320774085],[109.29193232033892,0.008372386513432679],[109.29203427885281,0.008426728908882445],[109.29212424239435,0.008441824292396585],[109.29215423026444,0.00844182442502528],[109.29220520972352,0.008423710666223964],[109.29222858875698,0.008487415013101405],[109.29225318990815,0.008517299799409945],[109.29230117051702,0.008514281015961002],[109.29234833207227,0.00848239851570885],[109.29234915162837,0.008396540322742578],[109.29243011896669,0.00837842669246795],[109.29248771596292,0.008476556424805605],[109.29250808686253,0.008511262940948281],[109.29255606750436,0.008502206160986184],[109.29256370479992,0.008473373796062207],[109.29258005820164,0.008411636328241875],[109.29261304498448,0.008384465491269904],[109.29266102558913,0.00838446570197255],[109.29270900606387,0.008414655894568098],[109.29311984037714,0.008339182733926892],[109.29318616447169,0.008447311954320242],[109.29327123844935,0.008443750414904297],[109.29328177479603,0.008378430429267954],[109.29325478603515,0.00829993633551636],[109.29331476187588,0.008284841600402893],[109.29334474955735,0.00833314571754939],[109.29336574101471,0.008348240805269483],[109.29340172650822,0.008342202963944672],[109.29345270598668,0.008327108189757045],[109.29347069866921,0.008339184265778125],[109.29348869124753,0.008375412337374795],[109.29350368541454,0.008324089412551614],[109.29349169043924,0.008281823368341868],[109.29358765193831,0.008224462792394378],[109.293662621233,0.008327109104781525],[109.29370760278775,0.008393527295811484],[109.2937285946528,0.008315033393171712],[109.29377357668976,0.008269748590886248],[109.29384254913367,0.008203330889796521],[109.29391452020221,0.008176160197946463],[109.29403147302042,0.008173141698112705],[109.29407345597845,0.008197293880423116],[109.2941394292838,0.008215408166122012],[109.29422339520423,0.00826371253641324],[109.29423539014572,0.008315035598550678],[109.29424438634776,0.008354282645677284],[109.29428337060916,0.008357301816762358],[109.29426237943957,0.008272769706939846],[109.29424138838118,0.008161066593456915],[109.29449028820822,0.008109744639196713],[109.29452927238638,0.008133896813120307],[109.29458624934817,0.008148992061361712],[109.29469420585977,0.008139935517620383],[109.29480816002302,0.008115783990817846],[109.29486513698059,0.008133898242235158],[109.2949401067388,0.008139936564639755],[109.29501207778449,0.008127860863746773],[109.29508404894638,0.008088614144421224],[109.29516801535229,0.008031253460216358],[109.29564182500522,0.007910495337094243],[109.29569880165445,0.00801012266885994],[109.29587573056237,0.007976914374695153],[109.29600077696708,0.007995226057289345],[109.29614552277835,0.00791278960282749],[109.29617860886479,0.00792861157884332],[109.29620859677381,0.007934649710562158],[109.29623258715807,0.007925592798765544],[109.29624458249178,0.007886345799415787],[109.2962424659256,0.007857577987743844],[109.29623858523472,0.007804832673026597],[109.29661043651917,0.0075874658764449755],[109.29667940943673,0.00741840190011633],[109.29674838181802,0.007388212121769677],[109.29678136824266,0.0074697253738973905],[109.29697928907953,0.007364060973641102],[109.29713822556376,0.00726745341917267],[109.29754306374471,0.00704102951920675],[109.29752507119008,0.0069806493371920905],[109.2979598971477,0.006820643578860485],[109.2985445412877,0.00652462695798841],[109.29869461345206,0.0064054535386057375],[109.29885334782414,0.0063393129202218915],[109.29907444157296,0.006225500412534756],[109.29908144935483,0.0061851463356425605],[109.29911743519703,0.006100614219298552],[109.29915342092367,0.0060523102000503695],[109.29924538417667,0.00601608238838453],[109.29933334912229,0.005951677146735664],[109.29937333323474,0.005907398476579451],[109.29940532073266,0.0058027396049498],[109.29947329365268,0.005750410323700384],[109.29956925536086,0.005698081121956533],[109.29965722025219,0.005653802582475922],[109.29973718845375,0.005573295904198739],[109.29976517742732,0.0055088904532746945],[109.29981315834736,0.005460586440783727],[109.2998931263454,0.005452535976451194],[109.30006505751517,0.0054485111189407675],[109.30025879618617,0.005377415939229459],[109.30060201393135,0.005166781907452538],[109.30093683221138,0.0050045160368893],[109.3010190822069,0.004998062909578481],[109.30135508219769,0.0049717035423342566],[109.3015946356202,0.004994438913253421],[109.30212040287246,0.005035218583590782],[109.30221319994062,0.004984092358345551],[109.3022341916064,0.004965978333590935],[109.3022971664662,0.004965978496461768],[109.30232715448773,0.004968997587362306],[109.30237813405333,0.005002206867062579],[109.30249808618578,0.004999188165910399],[109.30272899410878,0.00497503665505829],[109.30273187291998,0.005044598098395311],[109.30281059782729,0.005035344162897223],[109.30307385643478,0.005035344166378463],[109.3034337130858,0.004972019465023993],[109.30346315076557,0.005043993319061561],[109.3034756960868,0.005074666089124322],[109.30367083987773,0.005046979152494979],[109.3037275958343,0.005023343489874582],[109.3037815743895,0.004999191505852859],[109.3038295552968,0.004990134583492405],[109.30385054687189,0.005014286764010796],[109.30387006487553,0.005049843302175257],[109.30388425407953,0.005050047292702],[109.30416900320323,0.005042045682034899],[109.30420740456711,0.005080706053751559],[109.30423739253126,0.0051169343292887925],[109.30431836027712,0.005122972577785563],[109.30437533767996,0.005089763547284881],[109.30449067488632,0.005027367954810271],[109.3044203204634,0.0048180521685136975],[109.30454627041014,0.004784843298854359],[109.30462124024109,0.0049176802316059556],[109.30486714265548,0.004812015253372499],[109.30492500465624,0.004963107414471536],[109.30500208219775,0.004951703533138335],[109.30531213690426,0.004862085567653752],[109.30536194563393,0.0049025870349889925],[109.3053889348728,0.004914663176409046],[109.30550588844575,0.0048874923100858305],[109.30557486108916,0.004863340337637742],[109.3056048492595,0.004827112191420529],[109.30564083496395,0.004824093263158225],[109.30572480157802,0.004830131511053707],[109.30576678493868,0.004812017503911405],[109.30576978388032,0.004757675173717978],[109.30577204512059,0.004734910938710529],[109.3064808790899,0.004553781664935093],[109.30672094930512,0.004468328203054169],[109.30682236651678,0.004492003979253777],[109.30691532971058,0.004455775949437291],[109.30708926079328,0.004416529081144137],[109.3071462382524,0.0043893580235228645],[109.30735315624595,0.004362187303922169],[109.30756007430146,0.004316902449015525],[109.30764404102742,0.0043108645938164],[109.3077460006453,0.0042957697126861085],[109.30771769096852,0.0042430132464267405],[109.30760505707539,0.00403311451565713],[109.30776699312501,0.003915373000901617],[109.30794595288906,0.004219236280934818],[109.30796791278692,0.004256522918780223],[109.30800689734642,0.004253503982649498],[109.30839395814446,0.004183978342707294],[109.30871428218214,0.004964485549601156],[109.30877825677625,0.004996688631458666],[109.30884756271907,0.004980587351970525],[109.30887955028963,0.004889345831371351],[109.30885289441225,0.00479273700870328],[109.30856013729566,0.0041183502393600056],[109.30853835390576,0.004068170681989765],[109.30919409469521,0.003912524599658081],[109.3095246307762,0.0038373851013615767],[109.3095939366517,0.0038642210148841687],[109.30967256383549,0.003970293510845494],[109.30973051971375,0.00396112541818537],[109.30965258026826,0.003794448113722817],[109.3099084793054,0.0036924726532239346],[109.30999911003069,0.0037568787017171683],[109.31021235927466,0.0036656374507161834],[109.31033497761081,0.0036065989546650683],[109.31045226472527,0.003547560441324146],[109.31062286415488,0.0034724205432063748],[109.31107068765476,0.0033114065720841537],[109.31101737563569,0.0031450245491031815],[109.31127477420543,0.003057598967169297],[109.31146819803946,0.002969292713635651],[109.31151318017216,0.0030508065323249967],[109.31228237730451,0.002813059216802935],[109.3123273595555,0.0028311734564950854],[109.31240607851994,0.002847023474938313],[109.31250953781775,0.002810795275589541],[109.31260175148475,0.002819852498161453],[109.31276068897635,0.002762616958602548],[109.31269271609443,0.002500967629175782],[109.31308856040813,0.00237618155906629],[109.31316852862153,0.002621729458880533],[109.31332046890068,0.0025693998015538545],[109.31368432585597,0.002500968912438016],[109.31517574042496,0.0020315670430624076],[109.31521128206704,0.001995785942163883],[109.31528236530865,0.001967161103885106],[109.31536766516726,0.0019671611906020457],[109.3154174234199,0.001967161241184902],[109.31560223986845,0.0018955991381768194],[109.31560934826545,0.0018168806249608024],[109.31610693101395,0.001702381396777835],[109.31631307251175,0.0016093505658076024],[109.31760067977915,0.0010598309460983306],[109.31767438768777,0.0011724174712507713],[109.31768764567859,0.0011926686391296945],[109.31775361987872,0.001177573492238385],[109.31780759878008,0.0011504021868112809],[109.31781128393058,0.001123690397328828],[109.31782259297576,0.0010417168418390484],[109.31813147225917,0.0008877460653795757],[109.31808349106102,0.0007911368269788484],[109.31812847348486,0.0007609464645053588],[109.31800252281683,0.0005043281946906286],[109.31825142553376,0.0003413001926822057],[109.31834139032168,0.000540556743905941],[109.31836538093593,0.0005707471350862946],[109.31841336216766,0.0006190517656708387],[109.3184373527815,0.0006492421589768518],[109.31846134338896,0.0006975467845468316],[109.31850632579295,0.0007428323808106884],[109.31860228829846,0.0007307562623003932],[109.31858729416948,0.0006975468298641176],[109.31871024614229,0.00066131840624591],[109.31876722389825,0.0006130138004387185],[109.31884519345566,0.0005616901587159562],[109.3194869429305,0.0003594146512930953],[109.31983480722158,0.0001541199454569085],[109.31989178498799,0.0002265769298615446],[109.31999974288412,0.00017525324554708917],[109.31996075809627,0.00006354872741870308],[109.32023065284264,-0.0001085366210019333],[109.32028463179948,-0.00003607962945662545],[109.32060850554112,-0.00024439352959064795],[109.3207074669892,-0.00011759377397766889],[109.32077344128389,-0.00009947952476713114],[109.32084241441272,-0.00007230814754248895],[109.32090538987956,-0.0000632510226520903],[109.32098488257179,-0.00007066106547703584],[109.32106732680231,-0.0000783462412128485],[109.32104123587091,-0.00011901736617737487],[109.320881399192,-0.0003681743010045151],[109.32095037231059,-0.0004315742060532019],[109.32112015316272,-0.00018673564664358852],[109.32117228592492,-0.00011155571646041754],[109.32121726840985,-0.00008136529014288557],[109.32133722170323,-0.00010551763980253128],[109.32137620652139,-0.00016589850466631082],[109.32141519133735,-0.0002353365015175805],[109.32148416448233,-0.0002776031161571295],[109.32158912361687,-0.0003530792178489307],[109.3217840477459,-0.00043157439132398304],[109.32185601972773,-0.0004949743288490603],[109.32189800337855,-0.0005523361745583278],[109.32193099052274,-0.0006278122838769784],[109.32179904187974,-0.0005583742340056238],[109.32171649313321,-0.0007415830063253993],[109.32166709312003,-0.0008512214242143897],[109.32183758170602,-0.0009387917238195796],[109.32196097870174,-0.0010021737552404742],[109.32231783983217,-0.0011470880801714655],[109.322380815303,-0.0012195451900732421],[109.32237481758276,-0.0013010593929322814],[109.3226447125611,-0.0014520118290059006],[109.32268369742513,-0.0014308785419854756],[109.32274367412329,-0.0014218214503177293],[109.3229385983551,-0.0014610691852716272],[109.3229535924864,-0.0015184310627134234],[109.32296558777638,-0.0015818310298195306],[109.32301356911685,-0.001605983434302952],[109.32307054694866,-0.001648250122165074],[109.32313652131502,-0.001657307315723199],[109.32315751317692,-0.0016391930581651358],[109.32323848176306,-0.0015999455280650947],[109.3233344444979,-0.001599945607035625],[109.32338630129514,-0.001605562344579694],[109.3234064165047,-0.001657307545792853],[109.32343040714892,-0.0017056123074920243],[109.32343040709023,-0.0017720313267048638],[109.32341541285388,-0.0018354312854448743],[109.3233884232846,-0.0018867550464278262],[109.32334344070392,-0.001935059741866251],[109.32397619458625,-0.0024090507780921504],[109.3243570465528,-0.002650575071076156],[109.32440902649365,-0.0025776148189399044],[109.32461694570006,-0.002714478611418564],[109.32453697658309,-0.002799011845153886],[109.32462287269598,-0.0028946161501105937],[109.32461294691483,-0.002947951663849877],[109.3248688473374,-0.0032015521306321426],[109.32494791982431,-0.003120386106864413],[109.32507276865432,-0.00299223174394246],[109.32509675936642,-0.002988206382269284],[109.32514074231581,-0.0029962572470910217],[109.3252367050081,-0.003084816169320944],[109.32534866149432,-0.003181425924485342],[109.325475355862,-0.003236023465157063],[109.32548061019395,-0.003306213519899243],[109.3259644223042,-0.003656424171532691],[109.32606038487644,-0.0038134149730155048],[109.32605638628216,-0.0038858721748306862],[109.32626030710448,-0.00403078701615359],[109.32656418908778,-0.004268286338618677],[109.32702401060465,-0.00460255299874733],[109.3272686031762,-0.004784262785628936],[109.32728715834719,-0.004850493291213126],[109.327329329466,-0.004887854169316299],[109.32739849011882,-0.004942197287440208],[109.32738836877014,-0.005044090282490384],[109.32731583400073,-0.0051544741964843115],[109.3276262133933,-0.005432982641324637],[109.327747666274,-0.005516195628749958],[109.3277780296193,-0.005492420671753138],[109.32776284801277,-0.0054805331076147],[109.32783369588479,-0.005400717088969836],[109.32787924067499,-0.005448267303423183],[109.32778815064142,-0.0055178939606884],[109.32776116098862,-0.005543367144344109],[109.32772067664085,-0.005534875942691546],[109.3276869394977,-0.005594313451426756],[109.32782357401544,-0.005677526495730502],[109.32798213770474,-0.005716585960686736],[109.32798213803541,-0.0056011071686846645],[109.32803105670096,-0.005585823351065605],[109.32813058085598,-0.005565445024281188],[109.3282098625025,-0.005658847225594338],[109.32823685208537,-0.005660545521674782],[109.32830357623817,-0.005697906507179266],[109.32833731329285,-0.005674131556004226],[109.32838454518651,-0.005635072682164424],[109.32845539301563,-0.00558072991278186],[109.32842165572718,-0.00568601932680606],[109.32833899981233,-0.005787912156221234],[109.32833225230527,-0.005825272928559102],[109.32832213103832,-0.005883012304385376],[109.32830694928798,-0.005918674832664596],[109.32830863599428,-0.005966224936570432],[109.32834237288316,-0.005998491178821124],[109.32834130662253,-0.006023894239083018],[109.32842047309697,-0.006072900722411023],[109.32844358367585,-0.00605453268187407],[109.32848069437395,-0.0060511363611156005],[109.32852117870925,-0.0060681186667574894],[109.32853636027636,-0.0060935919841700655],[109.32857853139895,-0.0061309529130105555],[109.32857743687197,-0.006170066136355051],[109.32859366034715,-0.006180108968128835],[109.3286248478478,-0.00621056209035164],[109.32864607514959,-0.006231286882663797],[109.32867974208295,-0.006224355228682381],[109.3287084185695,-0.006210769574915151],[109.32873709502998,-0.006205675011651638],[109.32876577143205,-0.00621926084854567],[109.32877251873444,-0.006249828797985871],[109.32878095286996,-0.006285491407773171],[109.32880962925587,-0.006304171900923078],[109.32884673999376,-0.00629058627456594],[109.32903735350783,-0.00645191764183737],[109.32900361632556,-0.006507958738089564],[109.32903566635652,-0.006543621432408625],[109.32900684552072,-0.006583516878135199],[109.32899518177214,-0.006599662504200041],[109.32924989538675,-0.006817035350907331],[109.329319056061,-0.006869680372031083],[109.32933513241309,-0.006852024461075196],[109.32935616690656,-0.006828923253268265],[109.32937809598876,-0.006820432236285252],[109.32941351980884,-0.006830621672747024],[109.32943376194758,-0.006849302150325089],[109.32946581219711,-0.006822130761665481],[109.32957714394297,-0.0069308171616225545],[109.32973107756943,-0.007070918375154847],[109.32975549374169,-0.007083436170345403],[109.3296834146627,-0.007171964638574682],[109.32984197799946,-0.007340088916943569],[109.32988414941046,-0.007301030034277589],[109.32987065465517,-0.007287444230396573],[109.32992463405175,-0.007239894293775685],[109.33003259207416,-0.007355373607557042],[109.33010343967634,-0.007391036481368866],[109.33012705561383,-0.00738424369321168],[109.33015573220561,-0.007350279413237454],[109.33019284288179,-0.0073621670891666335],[109.33026031687636,-0.007374054880212533],[109.33030046402853,-0.007362834335040467],[109.33032053534225,-0.00737312460470939],[109.33036703694349,-0.007410054558784974],[109.33036827514077,-0.00742839831536306],[109.33037670931974,-0.007448776982815045],[109.33039189083864,-0.007486137872530963],[109.3303767089076,-0.0075574630380997624],[109.330403698467,-0.0075727471193056724],[109.33044249605618,-0.007569350830429803],[109.33045093021443,-0.0075948241582938555],[109.33045936426758,-0.007647469001361672],[109.3304779195846,-0.007659356611942495],[109.3304846668444,-0.007696717471982456],[109.33047960608536,-0.007749362262841618],[109.33047791904733,-0.00779691240779078],[109.33049310043938,-0.007864841257003298],[109.3305437057594,-0.007919184493130307],[109.3305639479677,-0.007920882794987432],[109.33060105855964,-0.007954847341694618],[109.33063310866619,-0.007971829670596136],[109.33066515884838,-0.007970131581599047],[109.33068877482219,-0.007956545918870616],[109.33071576447843,-0.00794805492932258],[109.33076805663289,-0.00800749284054439],[109.33070395592682,-0.008094101792528615],[109.33068708747552,-0.00807881774365709],[109.33064491599696,-0.008126367724903057],[109.33073937929545,-0.008218071994165637],[109.33086251995663,-0.008095800669713623],[109.33110879945778,-0.008297889900322219],[109.33112398095936,-0.008336949030883662],[109.33111723345928,-0.008359025865436366],[109.33108855696553,-0.008362422183191814],[109.33105988052235,-0.008353930959346062],[109.33104469872075,-0.00838619707813799],[109.33113578841022,-0.00845752272071638],[109.33117121231928,-0.008452428213181939],[109.3311728993735,-0.008404878051917775],[109.33126230247007,-0.00841676597926205],[109.3312960393993,-0.008442239430807056],[109.33136182663173,-0.008440541494626402],[109.3314208662987,-0.008476204380670998],[109.33148834007358,-0.008547529937774937],[109.33157774278514,-0.008651121789019018],[109.33161147960519,-0.008702068558980154],[109.33161653998961,-0.008741127657450672],[109.33159967131022,-0.008776790216169466],[109.33159461057268,-0.008817547489574681],[109.33166545819029,-0.008856606886217139],[109.33173124523769,-0.008899062704180727],[109.33178691132542,-0.008907554061890066],[109.33183751651984,-0.008990767115841212],[109.33186113212808,-0.00906209250246784],[109.33188980848657,-0.009090962391258157],[109.33194547448434,-0.009119832406808713],[109.33195896905313,-0.009174175541429982],[109.33200451396027,-0.009197950849637263],[109.33203319030308,-0.009230217184609103],[109.33206524032717,-0.009267578199753783],[109.3321141589647,-0.009286258864070532],[109.33217657247245,-0.009294750266532927],[109.33231995438464,-0.009415324660839254],[109.33226091411636,-0.00950363188151119],[109.33228790364616,-0.00952740711060549],[109.33225585311611,-0.009595335804264749],[109.33234188215283,-0.009688738399268875],[109.33242285146149,-0.00961231883791823],[109.33249617352632,-0.009650479555739201],[109.33244309312416,-0.009729496214731608],[109.33238573997619,-0.009760063913764067],[109.3323520027352,-0.009797424614580216],[109.3324785160326,-0.009931584742444413],[109.33237899137079,-0.00999951309098914],[109.33250213103724,-0.010116691001634148],[109.33268768557633,-0.009977437788823481],[109.33273692598051,-0.009936046467083228],[109.33275578535357,-0.00986279646628501],[109.3327566759727,-0.009862796470676439],[109.33276566034753,-0.009859171477891383],[109.3327836290971,-0.009834765230100542],[109.3328087853432,-0.009788640215903742],[109.33283842597342,-0.009731655855983717],[109.33286447285256,-0.009668358970661602],[109.33289233222625,-0.009593296478779281],[109.33292466034683,-0.009505577721713846],[109.3329324768702,-0.009484222271086109],[109.33299132260629,-0.009267582589823086],[109.3330385555056,-0.009050210407012893],[109.33306723333338,-0.008756418142070947],[109.33306892054529,-0.008674903495802768],[109.33308072876379,-0.008618862223382746],[109.33310603167615,-0.008593389005135512],[109.33316900409717,-0.008384187098962428],[109.33319416034544,-0.008277468351085235],[109.33321888228923,-0.008194766790206436],[109.33336412412196,-0.007654273257144275],[109.33338942731811,-0.00755238002223139],[109.33341304374483,-0.0074267116667845684],[109.33341304407371,-0.007338404109674653],[109.33341135784134,-0.00716858187826331],[109.33343041035134,-0.0071398120874433405],[109.3334562384743,-0.007053999588108622],[109.33347483872897,-0.00743074598825379],[109.33343885218534,-0.007518298644333354],[109.33340586391651,-0.007753785335696484],[109.33335788181226,-0.007877566675011344],[109.33325192084817,-0.008262161142428023],[109.33324125756701,-0.008428544932092453],[109.33320617678471,-0.008560747832799368],[109.33316661801359,-0.00877204670767229],[109.3331239668286,-0.0089652664418077],[109.33308131552631,-0.009179955047673813],[109.33306532092969,-0.009335604352324492],[109.33302267005166,-0.009453682985961873],[109.33290666765478,-0.009783025639701784],[109.33290441842756,-0.009801139994402823],[109.33291791317552,-0.009816990132402958],[109.33296289587473,-0.009828311837312904],[109.3329696429501,-0.009896240745900443],[109.33296964268936,-0.009948319549829141],[109.33299888131025,-0.009982284136420515],[109.33294715079741,-0.01005021274624725],[109.33304611242387,-0.010136256499478361],[109.33306065235293,-0.01012552214013642],[109.33307984961976,-0.010111349418863703],[109.3332822710527,-0.01030381564111199],[109.33330926075787,-0.010294758598394124],[109.33351393132348,-0.010489489170549255],[109.33350268525875,-0.010559682299910719],[109.33355441541894,-0.010564211172117897],[109.33363538415183,-0.010611761837877265],[109.333673619192,-0.010670633757845834],[109.33389403354488,-0.010899328946165653],[109.33389113579639,-0.010970306434695595],[109.33393434785417,-0.011012218340907366],[109.33401182804346,-0.011098694011343332],[109.33407171478541,-0.011032923464679396],[109.33411219894819,-0.01109405971586589],[109.33407396329163,-0.011146138332418945],[109.33410545104776,-0.011180102968830891],[109.33421790795559,-0.011189160800388205],[109.3342853819806,-0.011216332754295268],[109.33434610835799,-0.01128426202480904],[109.33439109069397,-0.0113635126955379],[109.33441358148912,-0.011467670510830301],[109.3344270755492,-0.011601264142913108],[109.3344260957021,-0.011672258403342822],[109.33442482544955,-0.011764293550097627],[109.33455996261902,-0.01187857519753598],[109.33464973827418,-0.011954495914315064],[109.33461118742092,-0.012006647084497482],[109.33457776521459,-0.01205186027517017],[109.33511755559184,-0.012570387910669159],[109.33508156898813,-0.01262699513625886],[109.3351970242083,-0.012728637720088932],[109.33538145257309,-0.012907518509332229],[109.33543725363032,-0.012839515523223705],[109.33546692059215,-0.012803361331868917],[109.33561311397972,-0.012921105829399378],[109.33558688139982,-0.012948904804820527],[109.3355276460372,-0.013011677216824204],[109.33564010240823,-0.01311357141496539],[109.33573199547102,-0.013032388172927498],[109.33575031095583,-0.013016207294121385],[109.3358099999702,-0.01306878787166591],[109.33585826910203,-0.013111308576373671],[109.33590325162584,-0.01315659486177605],[109.3359392378553,-0.013161123701970772],[109.33623162464814,-0.013398877123657851],[109.33646930097443,-0.013167296473854248],[109.33664546909314,-0.013045649141855117],[109.33658024330302,-0.01314754220757709],[109.33651787792002,-0.013181679702637398],[109.33649477545903,-0.013215470631181427],[109.33647678212803,-0.01324490640825016],[109.33649477511183,-0.013267549528862626],[109.33652176452668,-0.013310571410311682],[109.33654875365127,-0.013396614992188223],[109.3365892375937,-0.013487187269283898],[109.33663871817832,-0.01356643811212022],[109.33666570643368,-0.013777018207955039],[109.33671518730841,-0.01381324735826898],[109.33673767812971,-0.013899290923634367],[109.33671743540573,-0.013962691184470674],[109.33664771235021,-0.013912876086064447],[109.33647002850437,-0.014143833411423142],[109.33664321146294,-0.014279692665629565],[109.33663196555716,-0.014306864184383728],[109.33676241506359,-0.014408758645976018],[109.33683888593256,-0.014404230607602634],[109.33694684548493,-0.014304602182362024],[109.33699182823575,-0.01431818831349748],[109.33703006359256,-0.014327245794819771],[109.33711103270788,-0.014329510687239347],[109.33715151698065,-0.014370268395002139],[109.33719200097387,-0.014449519216431112],[109.33734269231434,-0.01461707859207932],[109.33736518332586,-0.014673686282377339],[109.33740116910965,-0.014741615580079656],[109.33743715485808,-0.014814073482238942],[109.33752262202259,-0.01485030294535473],[109.33758559787717,-0.01487068213269924],[109.33763058048616,-0.014904646992001929],[109.33769849108529,-0.014931320196809131],[109.33765532058575,-0.014968047614756848],[109.3376800608198,-0.015013333828968821],[109.33774078758593,-0.015026920101866103],[109.33777227523264,-0.015074470672037946],[109.33782175619817,-0.015099378368112652],[109.33787573541706,-0.015128814703103486],[109.337911721437,-0.015165043805230304],[109.33797244829574,-0.015167308576425982],[109.33803767323617,-0.015196745002654593],[109.33806466287372,-0.015208066720313827],[109.33815912670323,-0.015235239074551073],[109.33822660056656,-0.015294111447977387],[109.33835030229382,-0.015448084951227854],[109.33842968742547,-0.015617572784148747],[109.33848141695586,-0.015717202492469412],[109.33849940940947,-0.01580551042294652],[109.3385398932111,-0.0159051400485488],[109.33867708992393,-0.016040999305799233],[109.3387895463048,-0.01614515814231397],[109.33884397081447,-0.016138984438763576],[109.33888276972408,-0.0161887027303862],[109.33888625865558,-0.01625158116305939],[109.33908643077055,-0.016466691595237233],[109.33911791836736,-0.01651877082680134],[109.33912016706032,-0.016573114116047654],[109.3390549412537,-0.01664557125664697],[109.33900546029493,-0.01661839920341764],[109.33893348688508,-0.016711235005266997],[109.33912916139613,-0.01684030193899864],[109.33919663650998,-0.016749730397165194],[109.33922362628833,-0.0167452020213679],[109.33920338358226,-0.016792752212206344],[109.33936756971563,-0.016964840661168695],[109.33942379857814,-0.01693766950778392],[109.33952276103054,-0.016930877451420013],[109.33957449108574,-0.016964842449292212],[109.33963521735592,-0.01704182929389297],[109.33965545912172,-0.01710522996892054],[109.33967795014837,-0.017155044843481317],[109.33970943781532,-0.017198066887168694],[109.33977466298013,-0.017204860369508936],[109.33979940371977,-0.017189010460325806],[109.3398016531975,-0.017150517316852472],[109.33984438692741,-0.01715504629762596],[109.33989161859806,-0.017200332786663424],[109.33989836570244,-0.017238826010807305],[109.33987587391051,-0.017277318978007255],[109.33988487039548,-0.017288640576217103],[109.33993885007246,-0.01726826231656199],[109.33997483624943,-0.017286377064360908],[109.34004230974026,-0.017388271337981695],[109.34004006023785,-0.017429028789881423],[109.34002881417054,-0.01746752185774032],[109.34011203177637,-0.017558094760883394],[109.34022898731547,-0.01756488871907275],[109.34033694623629,-0.017576211206191152],[109.34041332935384,-0.01761179166111941],[109.34048763842502,-0.01764640599426748],[109.34055061414632,-0.017689428347028205],[109.340593347327,-0.017757357870699788],[109.34056507270809,-0.01780393630543389],[109.3406140041069,-0.017877171479093738],[109.34071820722805,-0.018052624599996462],[109.34081082367635,-0.01821345442046701],[109.34069230406834,-0.018386835483622778],[109.34082500276628,-0.018490994750710407],[109.34087673308252,-0.01849778815241564],[109.34092396497974,-0.018518167342155452],[109.34107915509487,-0.018629119758910143],[109.34112701972873,-0.018621892140504213],[109.3411691211115,-0.018615534780024097],[109.34119386143543,-0.01864723528885934],[109.34116798136299,-0.01866807847767115],[109.34109264904363,-0.018728749315775964],[109.34113763109175,-0.01882385056526588],[109.3411668698779,-0.018837436677039722],[109.34122534764413,-0.01884423015367891],[109.3412410912253,-0.018891780717508654],[109.34148613589643,-0.0190324914991591],[109.341654071192,-0.019144198880491736],[109.3418130102243,-0.019222696370805342],[109.34186831902369,-0.019221646316484365],[109.3419719500545,-0.019219678849857792],[109.3421698733525,-0.019400825300066395],[109.3421427381218,-0.019443926243035172],[109.34210788123114,-0.01941610974351577],[109.34207090996902,-0.019488377501773835],[109.34201393189933,-0.019452148036786212],[109.3419869415595,-0.019509510194337325],[109.34209190125115,-0.01956687366346178],[109.34201992662827,-0.019757074674046585],[109.34214887702082,-0.019835571925633542],[109.34224184350023,-0.01966650464268207],[109.34248175137648,-0.019799346374340335],[109.34249974471717,-0.019784251176648917],[109.34256301605068,-0.01980047635990528],[109.34251773682617,-0.019892938086205146],[109.34276963930219,-0.020113333195015123],[109.34322546412479,-0.020388073851197203],[109.343216466815,-0.020457512525873404],[109.34341738983696,-0.02055714416145812],[109.34342638674748,-0.020526953483614253],[109.3433993973835,-0.020484686122036556],[109.34341242005725,-0.02045846592094597],[109.34342938666782,-0.020424304890362652],[109.34393919177643,-0.020644702872900194],[109.34389568461448,-0.020763325075439373],[109.34386721692184,-0.020840942179172896],[109.34429605304763,-0.02102511050880618],[109.34429821355201,-0.02099104017181689],[109.34430505114128,-0.020883213913757945],[109.34428106067185,-0.02083792748180145],[109.34428406013778,-0.02078056502203853],[109.34432904415966,-0.020683954982518408],[109.34438902151885,-0.02068395561257891],[109.34445499633415,-0.02071112801446604],[109.3445029776911,-0.020762452859430153],[109.34450597593028,-0.02082283446785029],[109.34446406661043,-0.02103701524135433],[109.34446766956158,-0.021045000585865847],[109.34463576324407,-0.021075851126112488],[109.34481271637222,-0.021112929254440607],[109.34501304449223,-0.021158147989749312],[109.3452340288577,-0.02121150737579636],[109.3454289507415,-0.021268476115850445],[109.34556958092271,-0.021306144315182116],[109.34590400289775,-0.021323715986471738],[109.34602995522948,-0.0213448509174969],[109.34609293141445,-0.02135390884327516],[109.34614391227997,-0.02134787123291639],[109.34620388995268,-0.021323719230890395],[109.34627586301357,-0.021308624601737408],[109.34635083481923,-0.021305606330447178],[109.34640781343353,-0.02129956878274744],[109.3464198091431,-0.021278435339921957],[109.34644080153006,-0.021251263830232785],[109.34651277456706,-0.0212391882783833],[109.34652476985943,-0.021257302899201483],[109.34652283638637,-0.02143426151854532],[109.34670543511227,-0.02144394487332922],[109.34671140263396,-0.021444321812248906],[109.34671969566398,-0.021335801138882768],[109.34693561439599,-0.021338822557633575],[109.34693561397664,-0.02137807063102265],[109.3472804841127,-0.021393169784698688],[109.34728348392017,-0.02130561640737065],[109.34730447625229,-0.02128448305222583],[109.34732546893723,-0.021230139781801865],[109.34734346249274,-0.02119994914354673],[109.34737944925104,-0.021172777781163526],[109.34745442116238,-0.02116372133578067],[109.34750840087133,-0.021163721914894087],[109.34752039613865,-0.021184855627821932],[109.34752039562615,-0.02123316096318317],[109.34751139868705,-0.021263351700802003],[109.34752339353491,-0.02132373349935163],[109.34753838738322,-0.02137203899727932],[109.34762835366625,-0.021362982721027796],[109.34764034973806,-0.021308639345336642],[109.34766434062529,-0.02131769685550224],[109.34772925338189,-0.021312599464729652],[109.34772013383554,-0.02124317690573855],[109.34776330443214,-0.021224106325989773],[109.34778729564174,-0.0212029729969814],[109.34784127526365,-0.021212030828876932],[109.34787126374017,-0.02123618382326901],[109.34788325852703,-0.0213026038007013],[109.347886256853,-0.021353928261389203],[109.347913246552,-0.021369023973783322],[109.34794923280693,-0.021390157952346323],[109.34800621120911,-0.021408273075218382],[109.34851348646232,-0.021337563087317973],[109.34877992163138,-0.021323747076243415],[109.34917877290462,-0.021239216975833444],[109.34917245499174,-0.021183239323342394],[109.34916377993346,-0.021106377031704846],[109.3493946933746,-0.02110336041325593],[109.3493886967029,-0.02100071141439908],[109.34945467168228,-0.02102788389369493],[109.34949365652713,-0.02107920877889516],[109.34952664422441,-0.021073170957846256],[109.34954017951611,-0.02109361119507184],[109.34955663250562,-0.02111845757642657],[109.34973356647626,-0.02109128768652326],[109.34976355526962,-0.02108826891978025],[109.34997047783241,-0.02107921386703259],[109.35025537267161,-0.020931281611899583],[109.35045329849551,-0.020937321884265177],[109.35053726734347,-0.020910150981173704],[109.35068421224457,-0.020919209800709743],[109.35069021066084,-0.020855809009712508],[109.35085514940573,-0.020810524421671108],[109.35086414559981,-0.020852791756366364],[109.35099309738285,-0.020849774027893366],[109.35116103559446,-0.020750145861134953],[109.35128998755276,-0.020732032679135738],[109.3516978353503,-0.020704865146397758],[109.35169783696568,-0.02054787247442469],[109.35196473753342,-0.020517684344645758],[109.35200439118803,-0.020467414646826103],[109.35211859132839,-0.02045372614991334],[109.35213746633008,-0.020451023016553285],[109.35232970070889,-0.020433835522013905],[109.35237236675249,-0.020430255393394294],[109.35241456907761,-0.020559956283051566],[109.35297835891252,-0.020532790314334574],[109.35297835957293,-0.020468161344230865],[109.35297835980668,-0.020445236652138928],[109.35397522104789,-0.020250635369086056],[109.35401141439988,-0.02024356991754123],[109.35401297678683,-0.020173528932027215],[109.35410538423973,-0.02016033411502451],[109.35443581988547,-0.02011315135808401],[109.35443991986028,-0.019970385862509682],[109.35445081946595,-0.019590848240541758],[109.35448359073261,-0.018998714757907226],[109.3545546781965,-0.018698147838886868],[109.35460859402939,-0.01889237790493689],[109.35460228514901,-0.019054070543014716],[109.35455467450323,-0.01909063008531571],[109.35455067560902,-0.019130884636123308],[109.35454667663693,-0.019179190104568745],[109.35452268514658,-0.01922346991990975],[109.35451868621101,-0.01926774992863285],[109.35454267650377,-0.01934825934022288],[109.35454267588204,-0.01941266668279945],[109.35455467110408,-0.019444870471872475],[109.35459482460074,-0.019509164125212197],[109.35459601927012,-0.01955341147059367],[109.35456266679651,-0.019581736154778887],[109.35456266632495,-0.019630041662222698],[109.3546426356835,-0.019718602555146566],[109.35467006587785,-0.01971282294416363],[109.35467762305426,-0.019678222515829638],[109.35474734725447,-0.01966237296224251],[109.35479907799903,-0.01966237347558127],[109.35484309910697,-0.01967636440487731],[109.35486655239707,-0.01971218920729051],[109.354911535456,-0.019732568544345117],[109.35495202032301,-0.019739361910802628],[109.35497901047951,-0.019718983289415005],[109.35497901072398,-0.019694075756895687],[109.35501949581459,-0.01967822591090871],[109.35506447905475,-0.01968049067886809],[109.35507797421089,-0.019662376242868974],[109.35508301884951,-0.01962581270230119],[109.35532851282827,-0.019574086486833252],[109.3553501236127,-0.019596713617454027],[109.35537936278214,-0.0195921852633289],[109.35542344026467,-0.01955747883833027],[109.35544309402962,-0.019554054499914028],[109.35549631913231,-0.019608036671430264],[109.35555029888339,-0.019626151779660102],[109.35558853473282,-0.01961935919271871],[109.35562677084809,-0.019585394742964106],[109.35563126948433,-0.019553694281075003],[109.35564116360624,-0.01951954420102592],[109.35564701415902,-0.019499350710723107],[109.35570999107581,-0.019465386500551813],[109.35593490778253,-0.019433688197505888],[109.35602712298771,-0.01948803283728962],[109.3560676078784,-0.019494826202270683],[109.35615532550669,-0.01947218383978241],[109.35619356116976,-0.019485770150413754],[109.3562452922812,-0.01945180581994243],[109.35628802666956,-0.019424634367478513],[109.35633300989491,-0.019431427776084975],[109.3563667472325,-0.019445014042988557],[109.35640948162325,-0.01941784258870024],[109.35644097008182,-0.019401992637300747],[109.3564994484087,-0.01939746456359679],[109.35653318585857,-0.01939972921642353],[109.35658491693357,-0.019370293523740815],[109.35664339563505,-0.019327271957032724],[109.35667488355202,-0.019368030079136605],[109.356728863381,-0.019381616545004324],[109.35685964080635,-0.019387585898130336],[109.35691104608352,-0.019347653474667013],[109.3570774845138,-0.01932727618583158],[109.35893363352243,-0.018953722455000186],[109.35911356737994,-0.01890608946484216],[109.35910956848116,-0.018946344108563374],[109.35932548870741,-0.018934269761711312],[109.35932948677365,-0.018982575423369605],[109.35938546606597,-0.0189825759581672],[109.35939746231041,-0.018910117635020318],[109.35962937710609,-0.01884973780345417],[109.35998524580872,-0.018821562888850844],[109.36016517946359,-0.01880546271124471],[109.36017317781906,-0.018664571325180394],[109.36043308209764,-0.018632369998264835],[109.3605130520756,-0.018684701870953554],[109.36053704340146,-0.018664574741052754],[109.36068898710434,-0.018684703524117507],[109.36069298521689,-0.018728983746920367],[109.36074096742549,-0.018737035141812772],[109.36074496557454,-0.01877728989438068],[109.36081294044075,-0.01878131600783223],[109.36082893509766,-0.0187209340839861],[109.36092090107343,-0.018728985893325077],[109.36091690213745,-0.018773266045957207],[109.36118480352701,-0.018745090267825643],[109.361192801062,-0.018692759202002713],[109.36128076875382,-0.01867665813829821],[109.36128476675566,-0.018733014792028997],[109.36158465658333,-0.018684711937477356],[109.36158065850495,-0.018636406221746813],[109.36169661581792,-0.01862835636096734],[109.36168462116818,-0.018527719413840637],[109.36176059352465,-0.018487465385744098],[109.36193652862676,-0.01849149249412016],[109.36198051204445,-0.01853174764272841],[109.36198051145166,-0.018596155226601744],[109.3620995495801,-0.018626230940715638],[109.36217585692665,-0.018612991798566122],[109.36264233510893,-0.018584510515222634],[109.36265926195871,-0.018533389311080475],[109.36272898622109,-0.018540182950021074],[109.3627701049737,-0.018576709399338406],[109.36295562254747,-0.018565382438695897],[109.36302213815908,-0.018561319936415015],[109.36302821167446,-0.0185609493020454],[109.36303280094401,-0.018555952731530878],[109.36307910759581,-0.01851112730341066],[109.36310909713917,-0.01844772633085425],[109.36316607630773,-0.018432631322182827],[109.36320506226434,-0.0183994215021386],[109.363253045377,-0.01831488693756821],[109.36329203127849,-0.0182877153286965],[109.36334301276707,-0.018260543828708828],[109.36333101671549,-0.018311868547008392],[109.36331602168377,-0.01837225055953622],[109.36330702458122,-0.018417537089144648],[109.3633550060162,-0.018517168082897054],[109.3633819962802,-0.018496034580422985],[109.36343297774636,-0.018471882192302898],[109.36349295584888,-0.01845376810175476],[109.36358892057925,-0.018450749882815597],[109.36368188616868,-0.018474903608393427],[109.3637148737615,-0.018505094995562982],[109.36372298776034,-0.01854185567116963],[109.3637388639404,-0.018613783112160567],[109.3638708153409,-0.01862284167001646],[109.36388281137557,-0.01857453604806666],[109.3639877727346,-0.018580575243609867],[109.3639877723453,-0.018622842763133186],[109.36412572155783,-0.018631901378560273],[109.36414600715749,-0.018574349280038087],[109.36420009128061,-0.018582304320317416],[109.36458829863328,-0.018582304317596315],[109.36459055252269,-0.018441701828606303],[109.36468651741615,-0.018426607168431565],[109.36476748792985,-0.01839943592936706],[109.36484545976715,-0.01834811178178923],[109.36491143570895,-0.018329997729357898],[109.36496541616576,-0.01829980712544559],[109.36507337661827,-0.018290750785729244],[109.36567615466785,-0.01837831053591038],[109.36573913173713,-0.018360196449021194],[109.3657931121892,-0.01833302494440652],[109.36578711405967,-0.018369254224400115],[109.36579011260307,-0.018408502698527094],[109.36580810559236,-0.018453789533973686],[109.36585608783342,-0.018471904646053403],[109.36592806139028,-0.018477943535403205],[109.36603302335332,-0.01842963872140499],[109.36610199807089,-0.018429639358541985],[109.36614098342378,-0.018468888172048076],[109.36618896600358,-0.018450773944976448],[109.36627293506656,-0.01846888939341047],[109.3663329129786,-0.01848096639690719],[109.36638389377399,-0.018538330000170578],[109.36640435555576,-0.018564423427023236],[109.36642887676658,-0.018595693550510394],[109.36646903427001,-0.018565747357180504],[109.36650984765777,-0.018535312057898885],[109.36653383925616,-0.018493044707197415],[109.36654583527563,-0.0184477581321918],[109.36659381778252,-0.018438701238314092],[109.36663580223957,-0.018456816301468372],[109.36666878985434,-0.018490026845080255],[109.36670477634325,-0.018526256530222468],[109.36671138016838,-0.018572797918431357],[109.36671976988131,-0.018631925613002212],[109.36679774130049,-0.018634945453656893],[109.36680835321687,-0.018578478732120717],[109.36689664353503,-0.01858365089983707],[109.36690626490743,-0.018543146563446473],[109.36693662919491,-0.01849899231787269],[109.36698048793617,-0.018521069988604547],[109.36702603370068,-0.018527863415758256],[109.36710363040557,-0.018515976377485813],[109.3671643581319,-0.01852107169443618],[109.36724701531907,-0.018527865466557686],[109.36732123803392,-0.018541452166452678],[109.36737353139955,-0.01854145265204957],[109.36747137105391,-0.01849220426650184],[109.3674899270911,-0.018456541156142446],[109.36758607989707,-0.018403896244727228],[109.36763499984292,-0.01836653515908685],[109.36765692975301,-0.018318984313810113],[109.36767043839338,-0.01824420384652216],[109.36759995064924,-0.018228179315134572],[109.36759070579667,-0.01821430961830965],[109.36759402198469,-0.018170913768759657],[109.36765331913296,-0.01813970423267154],[109.36764174969953,-0.01810840096836264],[109.36762319425983,-0.018077832270450504],[109.36761307338602,-0.01803028113289898],[109.36761813432213,-0.017998014397412453],[109.36764006383127,-0.017994618091732646],[109.36766536706143,-0.017996316571413762],[109.36768213347993,-0.01799738233968352],[109.36772440811914,-0.01797933458609498],[109.3677480247385,-0.017950464518886714],[109.36773621593825,-0.01802009273423562],[109.36772440746914,-0.018052359410637132],[109.36771428562454,-0.018113496381220347],[109.36771259849822,-0.01814066839350868],[109.36771934574101,-0.018172935237626427],[109.36772271865117,-0.01826803736533839],[109.36771597070455,-0.01831389010023388],[109.367722717806,-0.01836144121059736],[109.36773283867257,-0.01840899235236249],[109.36774464648317,-0.018449750503246685],[109.36775308065074,-0.018476922609266054],[109.36776488824246,-0.018541456285700836],[109.36785510651333,-0.018554432325168936],[109.36795242239396,-0.018607139187907823],[109.36798755570184,-0.018663732493613083],[109.3680263535793,-0.01871128391185678],[109.36803310079847,-0.018745249014990282],[109.36803984806433,-0.018774119362336302],[109.36810226263883,-0.01878600771330887],[109.36814106102052,-0.018779215069769435],[109.3681798595918,-0.018752043400614562],[109.36821528431784,-0.018733362959462714],[109.36822823014921,-0.01870811194530776],[109.36866373188658,-0.018760413703317762],[109.36901696625624,-0.018814898069208986],[109.36917354800495,-0.018839060971364337],[109.36918180783597,-0.01881919669334156],[109.36917955932867,-0.018746737878789613],[109.36914807142831,-0.018681071802998273],[109.3691683143527,-0.018647106932952393],[109.36921104883879,-0.018638049982307732],[109.36928302406496,-0.0184750183597697],[109.36933250660542,-0.01840935303053927],[109.3693572481524,-0.01834595180851437],[109.3693572490928,-0.0182417922837571],[109.36937974147575,-0.0181761267008921],[109.36942022721068,-0.018119518629812717],[109.36947195884157,-0.018062910658016535],[109.36953493649023,-0.017992716758413786],[109.36957767124213,-0.017954223401298937],[109.36952594254247,-0.01767797373910608],[109.36952144475553,-0.01761230790658037],[109.3694629665817,-0.01755569895106862],[109.36939774024324,-0.017571548741100937],[109.3693392614446,-0.017587398589403593],[109.36929427791915,-0.017580605181403884],[109.36923130154956,-0.017505881494934643],[109.36924929549065,-0.01744700888080986],[109.36928528282438,-0.017392665096953],[109.36934826025009,-0.017345114557702344],[109.36937974891481,-0.017327000130726702],[109.36941123792771,-0.01726812762718402],[109.36959791920147,-0.017340588048082747],[109.36962715898062,-0.017288508532255387],[109.36952594665426,-0.01720019848733047],[109.36967889172496,-0.017098304599352316],[109.36969688554375,-0.01705301799561147],[109.36969013859417,-0.01698282346403142],[109.36972162699534,-0.016996409758912655],[109.36978685356719,-0.01695338789166038],[109.36988581825268,-0.016860550868769572],[109.37001177311723,-0.01676544972476781],[109.37005450751889,-0.01676771442127213],[109.37011073683323,-0.01679035827616574],[109.37012198245215,-0.016824323445986195],[109.37011523446006,-0.016878667509723257],[109.36996903652724,-0.017025848258124025],[109.36990830771543,-0.017139064647097503],[109.36987007062031,-0.01726133857547002],[109.36981833857529,-0.017367762015788515],[109.36980034480708,-0.017406255605451143],[109.36982733473072,-0.01743342789667408],[109.36979359646827,-0.017499093404276835],[109.3697598583807,-0.017544379868066923],[109.36972387067992,-0.017639481744512128],[109.36973061800205,-0.01766438952117344],[109.36972611932669,-0.017700618888024443],[109.36969687951557,-0.017754962738318104],[109.36966539022505,-0.01784327163462341],[109.36966538986584,-0.017884029715826658],[109.3696811339433,-0.017904408897396782],[109.36970137643998,-0.017917995105957492],[109.36973961225416,-0.017945167503712726],[109.36975085785163,-0.017979132673742078],[109.3697373628537,-0.017970075200699345],[109.3696968776196,-0.017970074836867314],[109.36966988732333,-0.0179859249592545],[109.36964289664469,-0.018044797499743873],[109.36962040462691,-0.01806970501246106],[109.36960016176842,-0.018096876882778515],[109.36961140730187,-0.01813763506464795],[109.36960915785873,-0.0181670714353732],[109.36958666575846,-0.018201036297347234],[109.36955067874382,-0.0182168863337729],[109.36952143922746,-0.01823726510649195],[109.3695101930037,-0.018273494406603093],[109.36947720460594,-0.01832142258494622],[109.36945321256552,-0.01840897675243416],[109.36944421543613,-0.018454263421466787],[109.36945021253139,-0.0185327605136332],[109.3694292198313,-0.018572008837003568],[109.36940822704732,-0.018620314509761655],[109.36940522780824,-0.01865654388265162],[109.36943221790473,-0.018662582368061384],[109.36945920736085,-0.01873806054035652],[109.36947720020875,-0.01880146216265111],[109.36949819221364,-0.01883769176249809],[109.36952818118891,-0.01884674939582535],[109.3695791623942,-0.018867883695329473],[109.36963614172237,-0.018855807764707577],[109.36970211788271,-0.01883165544941188],[109.36974410257031,-0.018831655844807827],[109.36978908602494,-0.01884675185499556],[109.36983706835859,-0.018864867011511053],[109.36986705711371,-0.01889807758613014],[109.36989820271832,-0.018950856753528065],[109.3699445285315,-0.018933835991669472],[109.36997320592464,-0.018896474682989297],[109.37003056014146,-0.01888288919537033],[109.37008791404341,-0.01890326878173021],[109.3701267124006,-0.018903269148421522],[109.37014020778216,-0.01887100245405544],[109.37018406711171,-0.018837037791393993],[109.37022117839608,-0.018857417187147348],[109.37031733022131,-0.01892534825102269],[109.37037299738851,-0.018930443539679265],[109.37045228106349,-0.01892365127373878],[109.37051132221134,-0.0189066692911701],[109.37057711077605,-0.018903273404591255],[109.3706428992321,-0.01891176529726435],[109.37073905125074,-0.018961015580638414],[109.37080483920283,-0.019023851615017573],[109.37084363693565,-0.019091782159217915],[109.37089424289927,-0.01915631631024461],[109.3709364148672,-0.019174997513030874],[109.37097690014281,-0.019173299646463162],[109.37102750668622,-0.01917669664037479],[109.3710578704716,-0.019193679477023343],[109.3710949818653,-0.019203869360516917],[109.37114896203882,-0.019222550679543798],[109.37122318489438,-0.019236137430022518],[109.37125186179608,-0.019253120252971417],[109.3712687303826,-0.01928199074586636],[109.37130246808834,-0.01928368932567488],[109.37133451881155,-0.019295577418051848],[109.37143741839942,-0.019344827801670163],[109.37147959066867,-0.019332940424800635],[109.37152007587441,-0.019339733835625306],[109.37163815752936,-0.019380493097747108],[109.37174274430978,-0.019399174916788147],[109.37180853306204,-0.01938049474701569],[109.37184227116562,-0.019341435203261096],[109.37188275663763,-0.019321056531186657],[109.37188781789472,-0.01925822113503791],[109.37189625253711,-0.019236143897570224],[109.37189625210196,-0.019281996790049393],[109.37190806009832,-0.01930407422248293],[109.37192492873828,-0.019327849959342093],[109.37192998900959,-0.019368608135499347],[109.37194517064874,-0.01940427164402359],[109.37195191800038,-0.01942465077328941],[109.37198059469952,-0.01946371092446632],[109.3720531302408,-0.019524848824222302],[109.37211385783742,-0.019558814525553133],[109.37213072660715,-0.01956900422313216],[109.37216952583731,-0.019482393571411235],[109.37223025382958,-0.0194756011399508],[109.3722656774744,-0.01957749681977239],[109.37227917225836,-0.019609763808131547],[109.37228760657817,-0.01962165167991537],[109.37230447582479,-0.019582591965914057],[109.37233483988847,-0.019572402728921117],[109.37238882017422,-0.01958259279058203],[109.37247485093873,-0.01963184304893208],[109.3725338917415,-0.019657317464856324],[109.3725844983237,-0.019660714473190843],[109.37263173095161,-0.0196827922634704],[109.37265872071897,-0.01972694718262205],[109.37268065000572,-0.01975242123766662],[109.37270089250441,-0.019767705740905205],[109.37271270094672,-0.019743930273912788],[109.3727430650834,-0.019726948013188392],[109.37274475157434,-0.01976770617368622],[109.3727616200836,-0.019805067972339694],[109.37280716561118,-0.01984922307991022],[109.3728527111055,-0.019896774701590098],[109.37288307472959,-0.01993243838147033],[109.37288644832107,-0.019951119232300037],[109.3729120755896,-0.019994781727363155],[109.37293030665954,-0.020025842939808566],[109.37292355879119,-0.020058109739150808],[109.37291681090548,-0.020092074794420586],[109.37291006296877,-0.02013113461784612],[109.37291343633925,-0.020171892799044914],[109.37299440672012,-0.020193970944989502],[109.37306525598119,-0.020195669915292185],[109.37310405417668,-0.02021774763822251],[109.37308212438386,-0.020243221261169002],[109.3730888717819,-0.020258505635923175],[109.3731883977131,-0.020302661307755775],[109.37327105519536,-0.020304360401689203],[109.37322775770762,-0.020374460213490903],[109.37324575090413,-0.020401632499150814],[109.37322175924749,-0.02043786172476147],[109.37345267419927,-0.02056164811596322],[109.37347366704047,-0.020516361488322903],[109.37350665519361,-0.020504285334303842],[109.37360877561103,-0.020303688085877142],[109.37362961301102,-0.020262756743946116],[109.37368359355065,-0.020250680796878067],[109.37365396900891,-0.020325239108705897],[109.37364658650617,-0.020344361690870748],[109.373730087095,-0.020381618047539976],[109.37373759874883,-0.02036511897137608],[109.37381358989232,-0.020198207151210523],[109.37383066944577,-0.020217312713590764],[109.37383066914136,-0.020247881338093767],[109.37382402667585,-0.020282270973426116],[109.3738373104339,-0.0203309898532768],[109.3738581854084,-0.020357737611741387],[109.37388380494745,-0.020365380028255067],[109.37391891331997,-0.020364425115337186],[109.37396256159398,-0.020360604480407423],[109.3740081074844,-0.020370157638945535],[109.37401949381822,-0.020386397337931562],[109.3740194934346,-0.02042460812209528],[109.37403182855628,-0.02044944525767302],[109.37406693673901,-0.02046759573864962],[109.37411543478153,-0.020467684684664828],[109.37412938350484,-0.02055194634261717],[109.37428102780326,-0.020624259799844058],[109.3743133621715,-0.020553731742788288],[109.37435834582361,-0.020558260890169593],[109.37438308653705,-0.02058996194827388],[109.37443931604686,-0.020601284241801444],[109.3744820504708,-0.02061034205397827],[109.37455177495627,-0.02063525054757003],[109.37464623995142,-0.020712239197665586],[109.37478118996064,-0.020820929085337538],[109.37482842234385,-0.020870745136554104],[109.37485541245319,-0.020882067135924443],[109.37495662589563,-0.020873010814263484],[109.37495887459245,-0.020920562058046193],[109.37497686777427,-0.02094999871572158],[109.37500385776852,-0.02097264243637334],[109.3750353463445,-0.020974907109481827],[109.3750713332224,-0.02098396486153748],[109.37511406761146,-0.020997551372548412],[109.37516354892618,-0.021072275244355277],[109.37520853247908,-0.021088126125548258],[109.37525126687035,-0.021101712639685705],[109.3753299882385,-0.02111529953306322],[109.37539071619146,-0.021122093205039986],[109.37544244770723,-0.0210994503058325],[109.37545144475696,-0.02107001392345642],[109.37547393699367,-0.021033784649071324],[109.37551442271969,-0.02099755556216262],[109.37556165577121,-0.02098396998931096],[109.37562238422171,-0.02094321242191968],[109.3755211688242,-0.02113794498942981],[109.37562238159465,-0.021196819014476627],[109.37563812549757,-0.02123531303889523],[109.37568085966052,-0.021271543005317292],[109.37569885289129,-0.021296450987343805],[109.37570784932865,-0.0213258875635606],[109.37572584251147,-0.02135532423576948],[109.37574833425735,-0.02136664619867544],[109.37577982260682,-0.021391554326182283],[109.37580456330133,-0.021425519761598524],[109.37583605153145,-0.02146174961482958],[109.37586753992892,-0.02148212905519853],[109.37591477282473,-0.02148439390561792],[109.37593951366308,-0.021504773274835763],[109.37595300861578,-0.021520623834047202],[109.37600249050865,-0.021541003469575853],[109.37607446422301,-0.02156591203789076],[109.37612169683548,-0.021595349032124254],[109.37616892944865,-0.021624786027728035],[109.37623640489028,-0.021640637171408805],[109.37629938224887,-0.02162931612354107],[109.37635111355316,-0.021629316680836785],[109.37640059557525,-0.02163837459567367],[109.37643883151766,-0.021661018462713417],[109.37647031989856,-0.021683662257739073],[109.37651288865358,-0.021705760281342155],[109.37661426709386,-0.021758387220113782],[109.37670873354998,-0.02170404394441004],[109.37672920983692,-0.02163120978177955],[109.37674247264,-0.02158403397952329],[109.3767987036717,-0.021457231213268226],[109.37681669760241,-0.02141647317889184],[109.3768369422604,-0.021228532681210856],[109.37685493785384,-0.02102700608035497],[109.37687448023792,-0.020777149857236946],[109.37687448167607,-0.020635769754528105],[109.37686815628703,-0.020591190378032864],[109.37686183428856,-0.020207808235347395],[109.37685551014783,-0.020035859399764117],[109.37687247595173,-0.019710147550956517],[109.376925513104,-0.01952925746646637],[109.37705841266066,-0.019308605316690933],[109.37705526248561,-0.01924357876765226],[109.37705241599645,-0.019184821000664935],[109.37723702585386,-0.01880685717487028],[109.37731932472326,-0.018638361263221503],[109.37738830109619,-0.018499481980254143],[109.377406874581,-0.01842865504263462],[109.37739429983431,-0.018399850786161503],[109.3774002976971,-0.018396831712274568],[109.37743754098904,-0.018402003686203722],[109.37753590482117,-0.018316518301156694],[109.37754424703,-0.018254933967685953],[109.37764621118734,-0.018149265373911233],[109.37769419425378,-0.01810699799827785],[109.37776616914779,-0.018010386508385594],[109.37780515585811,-0.017922832105627076],[109.37782614897577,-0.017844334928024713],[109.37782615099923,-0.017611861962967282],[109.3778291514242,-0.01743675248283914],[109.37784414645478,-0.017385427412363985],[109.37795211332792,-0.016691028537019655],[109.3780510788487,-0.01654309200091385],[109.37820316631749,-0.016419574767829785],[109.37840795253585,-0.01625325843003557],[109.37847058201316,-0.016195669300119096],[109.37854103055248,-0.016130890373206207],[109.37856223954202,-0.01614258331619506],[109.37861187971508,-0.01616995094373289],[109.37873165034028,-0.016008617106045248],[109.37871047503788,-0.01597109671404011],[109.37868947861834,-0.015933893285112483],[109.3786608016751,-0.015905022620782885],[109.37862369050869,-0.015845583193259433],[109.37857814481454,-0.015794635006347164],[109.37855284153711,-0.015781048720227606],[109.37852416440984,-0.01577595371252593],[109.37843307224907,-0.01577425473687019],[109.37836897073196,-0.015725004671955915],[109.3783217379918,-0.015694435609642097],[109.37826101024724,-0.015646883836876062],[109.37825932372004,-0.01559933252521755],[109.37824751565851,-0.015575556784398594],[109.37816991865789,-0.015572159661956344],[109.377878086506,-0.015556873057800595],[109.37783928801242,-0.015555174497179948],[109.37767059901797,-0.015534794069401498],[109.3775913153811,-0.015500828254458093],[109.37751371876708,-0.015449879854864028],[109.37744961728478,-0.01539893156257549],[109.37742600123053,-0.015342888802924856],[109.37741588038116,-0.01527665658756115],[109.37741925451976,-0.015229105334528687],[109.37743612371113,-0.015191743743122134],[109.37747492262712,-0.015135701456479415],[109.37751581112954,-0.015096452582672356],[109.37761999631117,-0.014996445219212038],[109.37766722948284,-0.014967575148950831],[109.37770940183113,-0.014959084162097241],[109.37774482667669,-0.01494210182351541],[109.3777751492475,-0.014884141454856852],[109.3778083752942,-0.014873187264338603],[109.37792599146769,-0.01480954451291973],[109.37796647706489,-0.014782372644632735],[109.37797322486142,-0.014750671833053145],[109.37802045781248,-0.014752936526996583],[109.3780607885048,-0.014764537561433956],[109.3780927474779,-0.014746835621384461],[109.3781660518589,-0.014713114014880933],[109.37820489198499,-0.014660099633606273],[109.37826786939647,-0.014644249660030905],[109.37836908297956,-0.014635193006656862],[109.37840507013941,-0.014617078486914459],[109.3784657984809,-0.01458537805946452],[109.37858500633268,-0.01447216152841498],[109.37868397192345,-0.01429554309446221],[109.37880093103787,-0.014116660421202161],[109.37887740436763,-0.013989857456227172],[109.37887740483279,-0.013921927008850851],[109.37889314940938,-0.013885697545592776],[109.37892014005814,-0.013831353372895068],[109.37889764822016,-0.013822295825094038],[109.37887515621348,-0.013838146108227818],[109.37887290734585,-0.013790594779668734],[109.37888865198113,-0.013745307922435744],[109.37889090158248,-0.013684170534729019],[109.37887065941894,-0.01360265386034128],[109.37885266623177,-0.013552838077796281],[109.37878294166245,-0.013505286296903996],[109.3787132169599,-0.01347811365184894],[109.37862999689708,-0.013484906137869943],[109.37859400972842,-0.013505285027891976],[109.37856027179477,-0.013518870888589994],[109.37850179283727,-0.013523399191026677],[109.37842981873005,-0.013530191750107735],[109.37838483474683,-0.013559627967341613],[109.37835486435681,-0.013564494271913259],[109.37833842303752,-0.01356716385566656],[109.3782870254864,-0.013601091363901386],[109.37826903048484,-0.01363979364374237],[109.37824313491386,-0.013695487863529095],[109.37829036732256,-0.013779269046017823],[109.37827012461948,-0.013779268907258977],[109.37822289216548,-0.013702280768122781],[109.37819140347163,-0.013709073595878453],[109.37796121567825,-0.01384583963351223],[109.37786966032688,-0.01402768708345877],[109.3777889726355,-0.014039864759454167],[109.37778422079558,-0.014044339925572087],[109.37774831074262,-0.014078159130523706],[109.37766734004691,-0.01406457248194538],[109.37759086784052,-0.014035135438267026],[109.37754363524157,-0.01398305513322124],[109.37746266546566,-0.01383587203725],[109.37744467249608,-0.013756619781172047],[109.37745142056441,-0.01368189638823149],[109.37748066072493,-0.013575472293673459],[109.37751214994869,-0.013487162984775274],[109.37760661669849,-0.01336036019711897],[109.37773257186424,-0.013267522809337108],[109.377867523686,-0.013190535898604843],[109.37796423927335,-0.013118077422357108],[109.3781126866151,-0.012982217548086693],[109.37828137767599,-0.01268445693131251],[109.37831736547707,-0.01255966644525324],[109.37830537066469,-0.012418773630593608],[109.37826138708202,-0.012326186703324823],[109.37819341175756,-0.01229800774008233],[109.37804546493005,-0.012326185379209261],[109.3778255440973,-0.012350337065700887],[109.37766560155045,-0.01239059113843397],[109.37751765458846,-0.012446947299865091],[109.377345716714,-0.012434869719944822],[109.37725375059587,-0.012322155017881479],[109.37719777155594,-0.012197364030908738],[109.37720976796918,-0.012072573459381737],[109.37723775893075,-0.011891425915619681],[109.37734972005133,-0.011625743252553812],[109.37738970614585,-0.011533156868555465],[109.37741769676938,-0.011404340866920737],[109.37748167466498,-0.011227219001197837],[109.37760563057653,-0.011110480035840479],[109.37773758323344,-0.011062174696839107],[109.37782555169738,-0.011025945628110037],[109.37785754044181,-0.010973614226216675],[109.37783354944138,-0.010909206000707867],[109.37778556705051,-0.010852848658891185],[109.3776416194089,-0.010772337771046955],[109.37752166303225,-0.010707929043442123],[109.37747368047462,-0.010683775756555111],[109.37736971831141,-0.010623392629111305],[109.37722177161062,-0.010643519370153644],[109.37710581290462,-0.010752207375847114],[109.37700584868074,-0.0108125894044664],[109.37696186437172,-0.010848818705090689],[109.37686589918056,-0.010820639659005652],[109.37682591370861,-0.01080453742801297],[109.37676993382259,-0.010824664645743137],[109.37673794539947,-0.010820638969610908],[109.37668596439191,-0.010780383653461017],[109.37664198051672,-0.010736102878601267],[109.3766099924974,-0.010655592638557653],[109.37660599417345,-0.010611312079425115],[109.37655801140578,-0.010631439342586877],[109.37651802579137,-0.010643515640704137],[109.37647004321498,-0.010627413373638463],[109.37647004382126,-0.010510673781663534],[109.37645005152248,-0.010418087104901776],[109.37635008826585,-0.010297321498281511],[109.37629011059326,-0.010168505100648848],[109.37622613432015,-0.010047739696064689],[109.3761600845917,-0.00995269277745946],[109.37599481109663,-0.00993658994918734],[109.37587218890738,-0.009909752662334147],[109.37580288116284,-0.009802405604524144],[109.37576556199681,-0.009662854694547699],[109.37580288226195,-0.009571610165906774],[109.37589351637345,-0.009523304573923112],[109.37593083655997,-0.009448162045275526],[109.37598415083653,-0.009399856269829627],[109.37609077929213,-0.009324714057412165],[109.37620273925397,-0.009228102514148058],[109.37628804228272,-0.009110021490507549],[109.37636268244798,-0.009002675083619694],[109.37629870473303,-0.009190531595455924],[109.37625605304535,-0.009287143466130247],[109.37614409287927,-0.009426693702235324],[109.3760641216198,-0.009464264682024718],[109.37605878996385,-0.009517938021551415],[109.37606945254846,-0.009566244100533085],[109.37605878938263,-0.009641386760287439],[109.376101440398,-0.009689692994327793],[109.37619207398863,-0.009754101473660855],[109.37632535890862,-0.009802408155814643],[109.37641066109934,-0.009866816621159317],[109.37650662536625,-0.01008151059922676],[109.37665057217015,-0.010317674195952035],[109.37670388547485,-0.010467959939213985],[109.37670388480822,-0.010596776055738829],[109.37671987860939,-0.010677286213647922],[109.37674120412606,-0.010698755680146221],[109.37681051239498,-0.010704123387853464],[109.37702376977113,-0.010500165640728148],[109.37717304975507,-0.010392819632192983],[109.37729034080074,-0.01038208555945678],[109.377524922804,-0.010381919042303334],[109.3776478779435,-0.010478531810409574],[109.37776183634722,-0.010572125413633001],[109.37780682010464,-0.010575144779685118],[109.3778331637562,-0.010513812290934952],[109.37785480285976,-0.010563068514308906],[109.37787579500554,-0.010617412955547035],[109.37789978611586,-0.010662700025218554],[109.37794776865226,-0.010692891575805791],[109.37796521235067,-0.010700618640950196],[109.37782887906175,-0.008934577725035354],[109.37694939471416,-0.0062504527121922055],[109.37651066031478,-0.005798983978125225],[109.37641734782707,-0.005331765203261899],[109.37613606658418,-0.0047642183392838456],[109.37577381657708,-0.004099983947207114],[109.37596414468753,-0.003773265221677468],[109.37599991032296,-0.003486530837620033],[109.37580645720115,-0.0031947808488847285],[109.37579000408695,-0.002911499593498449],[109.37608820719551,-0.0027913277056123217],[109.37611080095584,-0.002583358948696445],[109.3757442853342,-0.00225257771632418],[109.37513422170797,-0.002090468243796129],[109.37422616031157,-0.0014584839405611862],[109.37335031655672,-0.0006566089690434833],[109.37315833218057,-0.0003316870821545239],[109.3730705125311,0.0002832870030314429],[109.37265738188047,0.0010571118625172004],[109.37229741945725,0.0019767908234275245],[109.37207070718021,0.0030206566893495085],[109.3717539643944,0.0040927972981457065],[109.37144942831048,0.0057723757525926025],[109.3712480665876,0.006882922314019161],[109.37077358668479,0.007643837797856844],[109.37051050408479,0.009090437929947797],[109.36984834780725,0.009276172303101975],[109.36966094157613,0.010245141042669378],[109.369908707209,0.011507031686198646],[109.36986498845825,0.012410281668936677],[109.37021692914267,0.013088060010999015],[109.37060145721107,0.014120125425659016],[109.3704319907958,0.015115066152241632],[109.37017503530706,0.016069703547153903],[109.37075187720097,0.01721894663341345],[109.37074417595954,0.01815468795093814],[109.37053162908522,0.018669219174479994],[109.37089003533121,0.019297078568592665],[109.3710081883903,0.020714427633885767],[109.37081451031884,0.020775376617603713],[109.35361619946157,0.026533411138184543],[109.35162086063053,0.02715770206170378],[109.3379182351519,0.03083259043448938],[109.33694178625701,0.031094462921202954],[109.33552522077203,0.031474369697340146],[109.33354650230528,0.03200776297068947],[109.33206351053552,0.03252230230179938],[109.33205998010241,0.03252624743904441],[109.33200929661918,0.032541112387531296],[109.32417392721796,0.03525967486738239],[109.32411466902067,0.03528023512848499],[109.32149008589116,0.03619086139032862],[109.32000373043508,0.03670656778541136],[109.31840476190273,0.03726832214311322],[109.3170038348525,0.03774741260338989],[109.31618184981014,0.0380326088085311],[109.3116357811095,0.03960991437806738]]]]},"properties":{"Id":0,"Plan_Area":113026328.1,"Ket":"Pontianak Utara","Penduduk":149714}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[109.28614228933482,-0.039829999967719694],[109.28607219531763,-0.03975330002742059],[109.28608528496223,-0.03974078448734692],[109.286348260391,-0.03947217387076286],[109.28720351028642,-0.038661935907160154],[109.28736630459942,-0.03848160989896008],[109.28812267202302,-0.03772774700305188],[109.28837813386832,-0.037482303269462704],[109.2893073137167,-0.03656314153272183],[109.28968048837268,-0.03618495782078593],[109.29019892564662,-0.035671529602775],[109.29048444182637,-0.03535345456022512],[109.29098284287728,-0.03487759426056016],[109.29150128015101,-0.034364166042503926],[109.29176676010778,-0.034103695141595794],[109.29189921853774,-0.03399176778725929],[109.29257874346024,-0.03329214000202692],[109.29321644186895,-0.03280559193769602],[109.29346483001929,-0.03259346482188859],[109.29395571748645,-0.03217520866375818],[109.2940458804907,-0.03215517244057824],[109.29407843935313,-0.032127622633798356],[109.29410098010423,-0.03211509999437774],[109.29413854802262,-0.03208504565955725],[109.29414856613433,-0.032039964157482705],[109.29418112499678,-0.03200490076698789],[109.29422370197106,-0.03197484643225554],[109.29428130611261,-0.03192726040236893],[109.29438148722832,-0.03187216078874242],[109.29441905514665,-0.031817061175050544],[109.29447665928815,-0.03176446608932984],[109.2949950965621,-0.03138628237741637],[109.29539331649714,-0.031075720918621815],[109.29581157265517,-0.030765159459808504],[109.29607454808404,-0.03055978817260521],[109.29690605134452,-0.02996120600618947],[109.29701875509991,-0.02987104300194137],[109.29717904488481,-0.029773366414107074],[109.2971963006244,-0.02976905247930244],[109.2976377202792,-0.02943225893981783],[109.29822694119413,-0.02904897847082371],[109.29823595565585,-0.029042044269382113],[109.29829606432536,-0.028989449183537616],[109.29834615488316,-0.028946872209361686],[109.29843130883158,-0.028886763539904502],[109.29850143561264,-0.028844186565775892],[109.29860913031197,-0.028764041673133033],[109.29881450159927,-0.028648833390043146],[109.29886709668506,-0.028616274527475914],[109.29889214196395,-0.028581211137002308],[109.29891468271492,-0.028543643218567647],[109.29896477327279,-0.02852110246755609],[109.29904241363744,-0.028478525493367154],[109.29909250419526,-0.028468507381780705],[109.29912005400219,-0.028443462102877203],[109.29913758569737,-0.028408398712373443],[109.29918517172743,-0.028390867017038142],[109.29935047056841,-0.02827565873394354],[109.29939555207044,-0.028240595343447295],[109.29950575129781,-0.028162954978823356],[109.29957587807878,-0.028110359893056595],[109.29961595052511,-0.02808030555826308],[109.29968858183392,-0.028070287446743544],[109.29976371767069,-0.028015187833093886],[109.29979377200551,-0.027987638026211806],[109.29982132181223,-0.02798012444256285],[109.29987642142599,-0.027960088219449827],[109.29990898028863,-0.02793754746840397],[109.29993152103957,-0.02790999766157279],[109.29997159348589,-0.027879943326848382],[109.30001417046005,-0.02787994332685497],[109.30004672932266,-0.02785990710366917],[109.30010433346419,-0.0278173301295482],[109.30010182893622,-0.027779762211054874],[109.30012186515944,-0.027752212404315347],[109.30022455080305,-0.02768959920699932],[109.30027714588886,-0.02766455392797556],[109.30032222739094,-0.02764952676064821],[109.30036730889302,-0.027637004121233318],[109.30040738133935,-0.02760194073071504],[109.30044494925777,-0.027559363756498045],[109.300510066983,-0.02751428225440533],[109.30056266206859,-0.027484227919732457],[109.30062527526607,-0.027449164529214032],[109.30067787035169,-0.0274241192503304],[109.30073296996551,-0.027381542276083855],[109.30081561938593,-0.02735148794136626],[109.30091830502957,-0.027271343048751902],[109.30112117178889,-0.02713108948680134],[109.30151939172393,-0.02689065480899174],[109.30203031541406,-0.026605138629236295],[109.30253623004853,-0.026349676784038312],[109.30301709940407,-0.026119260217971705],[109.30314232579865,-0.026099223994782327],[109.303182398245,-0.026084196827351826],[109.30325753408172,-0.026054142492682834],[109.30329510200012,-0.02597900665592159],[109.30333767897424,-0.025963979488500145],[109.30442213955213,-0.025473092021361835],[109.3054164371258,-0.025024781528596416],[109.30638819394837,-0.024614038954044494],[109.30724975154358,-0.024235855242211498],[109.30804368688577,-0.02392028472768914],[109.30912063387991,-0.02350954215319899],[109.30936357308556,-0.023409361037411973],[109.3099220828056,-0.02317643994336487],[109.31055071930685,-0.022915969042519614],[109.31106665205277,-0.022723120394637225],[109.31163768441247,-0.02251524457950044],[109.31199833642917,-0.022397531768583615],[109.31228385260894,-0.022289837069111716],[109.312774740076,-0.022147078979238687],[109.31341840374466,-0.021956734859309962],[109.31374148784278,-0.021884103550464083],[109.31392431837891,-0.021831508464622538],[109.31413720324993,-0.021776408851051653],[109.31437763792772,-0.021701273014230634],[109.31452290054553,-0.021656191512133716],[109.31479338955803,-0.021576046619550694],[109.31537694455695,-0.02140824325070585],[109.31573759657364,-0.021333107413871337],[109.31626855648709,-0.02118283574031233],[109.31674441678689,-0.021072636512996346],[109.31700488768769,-0.020994996148317666],[109.31763352418892,-0.02084221994683384],[109.31785141811564,-0.02080465202836054],[109.3182195837159,-0.02072951619163034],[109.31843747764262,-0.020669407522241973],[109.31902103264173,-0.02056922640650852],[109.31917380884322,-0.020536667543914342],[109.31994770796221,-0.020381386814502866],[109.32063645313282,-0.020238628724502068],[109.3212504415355,-0.020139046482968645],[109.32193630310944,-0.020000698574735517],[109.32288551918104,-0.01981035445487719],[109.32358177793532,-0.0196876325881019],[109.32413277407166,-0.01957993788863837],[109.32447839892092,-0.019517324691329607],[109.32535748821155,-0.019369557545553456],[109.32553781421989,-0.01934451226668101],[109.32582082587184,-0.019286908125132982],[109.32609381941215,-0.01924683567882133],[109.32641940803826,-0.019186727009468798],[109.3266197702698,-0.01914415003525847],[109.32706557623473,-0.019056491558900178],[109.32753642747858,-0.01898886930577992],[109.32774179876589,-0.018961319499035297],[109.3279847379715,-0.018901210829509043],[109.32815254134036,-0.018881174606467762],[109.32875362803468,-0.018778488962819345],[109.32908906655169,-0.018715140231677464],[109.3294949682911,-0.018648253512374622],[109.329592644879,-0.018633226345046577],[109.32966527618792,-0.018630721817051367],[109.32974792560823,-0.018610685593989935],[109.32987816105873,-0.01856560409191833],[109.3302087587406,-0.01851801806196926],[109.33031645344015,-0.018495477310894494],[109.33036403947006,-0.018482954671470923],[109.33114656529617,-0.018306524595404182],[109.33143597740847,-0.018230832196819504],[109.33164079213375,-0.018155139798190154],[109.33190348928173,-0.018039374953437933],[109.33209494652525,-0.017910252626475772],[109.33231311873283,-0.017763320323472637],[109.33255355341048,-0.01760303053825808],[109.3326914624671,-0.01748296484521548],[109.33327552156986,-0.01660490123231449],[109.33332827566065,-0.01649694408796973],[109.33343923412812,-0.016379201612772235],[109.33349952873031,-0.016437205715091656],[109.3335010745852,-0.016435714311586334],[109.3334509251306,-0.016384873322763678],[109.33203147887048,-0.015197364633360798],[109.33191381442309,-0.015315820238582922],[109.33189967597366,-0.015306046481900364],[109.33178828534199,-0.015215608972306794],[109.3316858790959,-0.015118843360969608],[109.33159875410206,-0.015024796477515548],[109.33152689472713,-0.014952437096547408],[109.33147389472276,-0.014909937100355295],[109.33143886347004,-0.014892749603860198],[109.33141413539616,-0.0148865272720272],[109.33134081990511,-0.014966662186640138],[109.33129583745973,-0.014930433139909924],[109.33125385390808,-0.01488816600079777],[109.33117588397967,-0.014873070114907325],[109.33113989803418,-0.014842879258210156],[109.33111890646224,-0.014794574166927735],[109.33108292051664,-0.014764383312547789],[109.3309869579361,-0.014691925194390323],[109.3309149857787,-0.014667772189618558],[109.33084001439614,-0.014694943146822948],[109.33073505445576,-0.01473419010641537],[109.33054612719208,-0.014722112451527854],[109.33041117884652,-0.014755321062613904],[109.33039018714562,-0.014725130332865934],[109.3306083768347,-0.01446577644578642],[109.33063909359986,-0.014429264575358773],[109.33035120602426,-0.014193775998006601],[109.33033288144642,-0.014216835750932109],[109.33030322404801,-0.014254156788717963],[109.33010230230518,-0.01412131682843974],[109.32996135520118,-0.014308497308562403],[109.32989837965788,-0.014278306283422366],[109.32984140128428,-0.014320572654300345],[109.32959249824182,-0.014163579922369022],[109.32950553203341,-0.014121312510792721],[109.32951752771517,-0.014079045816909148],[109.32947554399107,-0.014063950235526644],[109.32940057286535,-0.014063949695193825],[109.32936158764481,-0.014097159024921936],[109.32923263766183,-0.014048853208157611],[109.32902571783754,-0.013985451563183603],[109.32899273093307,-0.013931108337645595],[109.32894474999698,-0.013849593513378248],[109.3288727780956,-0.01379826907140602],[109.32873183301405,-0.013713734547144304],[109.32865086458469,-0.013662410052737271],[109.3286268744374,-0.013574857307581466],[109.32860861844956,-0.013480783501882957],[109.32849053564523,-0.01338450460747077],[109.32856090180425,-0.013291065746008792],[109.32842492038564,-0.013174601082288379],[109.32865686752179,-0.012880474997533121],[109.32860026972435,-0.012823593345787476],[109.32823103411363,-0.012512147625122799],[109.32797613412707,-0.012246469292335095],[109.327955142153,-0.01225854537386163],[109.32789516569191,-0.012195144878491004],[109.32782919128559,-0.012174011093739378],[109.32773622765156,-0.012095515135098552],[109.32761049741846,-0.011991606859025472],[109.32753530623194,-0.011929465990190286],[109.32755329950274,-0.011893237467695128],[109.32734038286127,-0.011703035867820826],[109.32726241256412,-0.011772473601806846],[109.32713918988723,-0.011668786142002806],[109.32706149118444,-0.011603405478286224],[109.32700151457131,-0.011567176498771575],[109.32687256508825,-0.01144943271826656],[109.3268005930268,-0.01142829893442043],[109.32655169033661,-0.011238097250658219],[109.32650670748792,-0.011280363706539754],[109.32637176027168,-0.011174696143883455],[109.32640774669613,-0.011114315331407268],[109.32619482993911,-0.010954304433782935],[109.32616484138809,-0.010981475720233568],[109.32609586830547,-0.010939208624836105],[109.3257989815043,-0.011238092907280567],[109.32575989471495,-0.011159577718583596],[109.32568623847182,-0.011136077721565416],[109.32558651972387,-0.011066437100422944],[109.32547334783574,-0.010974187091668535],[109.32542571289136,-0.010936807162467137],[109.32536914941107,-0.010970904559877672],[109.32527718518213,-0.010942726249135785],[109.32511724788533,-0.01080586179779278],[109.32507326494553,-0.010801836155093916],[109.32491732575713,-0.010729378122347644],[109.32486134794955,-0.010636793658251346],[109.32467342127826,-0.010544208484429832],[109.3247333985675,-0.010443573864460584],[109.32469341427742,-0.010403319672702999],[109.3246374362496,-0.010350989204597821],[109.32484135797252,-0.010206075960515084],[109.32470541142402,-0.010057135531053666],[109.32448574082963,-0.010202520238242889],[109.32427357736529,-0.010342936475055355],[109.3242295947593,-0.010278529893076658],[109.32438909892834,-0.010137482127341167],[109.32452548137559,-0.01001688062731732],[109.32443351763979,-0.009896118238424012],[109.3242283165987,-0.01000743709721238],[109.32415349607777,-0.009960286738680334],[109.32412563659162,-0.009984675396208707],[109.32396969755092,-0.009892090482672772],[109.3238017633928,-0.009755226168880997],[109.32372979128323,-0.009763276599312504],[109.3236698149772,-0.009678742990623978],[109.32367781218892,-0.009614336700581403],[109.32370187045332,-0.0095795202324977],[109.32361658221635,-0.00948110897939933],[109.3235052072175,-0.009347265230665395],[109.32347708588433,-0.00932064778616679],[109.3234219127078,-0.009368786335049485],[109.32345390015493,-0.0093969642552867],[109.3234059187256,-0.009409040208550748],[109.32330595721062,-0.009477471437149979],[109.32325797599734,-0.009445268045318268],[109.32325797632437,-0.009376836334612823],[109.32321399340469,-0.00937683612247862],[109.32317800757154,-0.009336582003112817],[109.32316601247732,-0.009284251816275268],[109.32320733017028,-0.009197706028804863],[109.32311669910221,-0.009111830518321958],[109.3230420611276,-0.009176236477230083],[109.32293543620534,-0.009106462476574633],[109.3227115241889,-0.008891773768042597],[109.3227996304717,-0.008763652674381029],[109.32274255097145,-0.008720562102095002],[109.3226176915831,-0.008623796470935956],[109.32253021770329,-0.008555223813813006],[109.32240764326367,-0.008677084751755791],[109.32207177491836,-0.008435559714402971],[109.32205045022262,-0.008355051776937752],[109.32195448798025,-0.008253074765709337],[109.3219918070212,-0.008199403029254697],[109.32173057646337,-0.007920308110213114],[109.3218105457338,-0.00782369903432594],[109.321687927077,-0.0077485578992111705],[109.32157597020023,-0.00786126840791356],[109.3214266952906,-0.007780759984631585],[109.32116013357472,-0.007480196433332943],[109.3209948652722,-0.007303078634064514],[109.32091489671885,-0.007222570535453829],[109.32083492800959,-0.007184999933827518],[109.32078694670288,-0.007184999756246248],[109.32069098438542,-0.007104491612499569],[109.32068565334168,-0.007045452548206126],[109.32063234087884,-0.007018616426012774],[109.32006189838123,-0.006497997499131034],[109.32005656725046,-0.006460427192256452],[109.32010454902704,-0.006310146192110369],[109.31970470632366,-0.005880770237653555],[109.31944347442757,-0.006047152101801359],[109.3188570384812,-0.005451393201074079],[109.31866511312728,-0.005569470628071991],[109.31837516255139,-0.0053554602910697606],[109.31828841939652,-0.005466712829354811],[109.31772330814255,-0.005058805730798237],[109.31762201467015,-0.004967563450343936],[109.31757936490587,-0.004881688504340389],[109.31741942764982,-0.004817281979155896],[109.31754204703553,-0.004522087538602061],[109.3171368728959,-0.004248360613421119],[109.31664639882977,-0.004001469500974454],[109.3165291111807,-0.004130281443850235],[109.31615059337356,-0.003878023489696759],[109.31616125593429,-0.003840453297485936],[109.315926681524,-0.003690171996171406],[109.31596933182101,-0.003496953855562519],[109.31565478881141,-0.003325203784598647],[109.31552150746526,-0.0034969530464576772],[109.31534024517848,-0.003539890087598603],[109.31516964565816,-0.0034325463632233575],[109.31515365186974,-0.0034701165288084992],[109.31502037101623,-0.003378874396401539],[109.3150470273189,-0.0033198355699299038],[109.31503636503452,-0.003201757806248806],[109.3149937151555,-0.003174921885067643],[109.3149777214087,-0.003191023369012154],[109.31495106521658,-0.0031856561550934284],[109.31491907774094,-0.0032071247820695935],[109.31488709030977,-0.0032017575591992207],[109.31489242167096,-0.0031266171902327093],[109.31476447208395,-0.0030192735936402995],[109.31471649077673,-0.003115882567156163],[109.31467917215166,-0.00308367949147549],[109.31467917220212,-0.0030514764760111272],[109.31465251602195,-0.0030407420955789266],[109.31455122224753,-0.0031856554965991424],[109.31414604842765,-0.002992436789305902],[109.31417803593656,-0.002938765160195725],[109.31383150570164,-0.0027992182941126123],[109.31379418701943,-0.002815319740467146],[109.31373021209134,-0.0028743584800613874],[109.31367156849554,-0.002868991226398476],[109.31364491238283,-0.00282068668941775],[109.31365557494011,-0.0027616478744786955],[109.31355961276664,-0.0027026089097817643],[109.31357027531251,-0.0026489372629493776],[109.31351696298633,-0.002622101359751903],[109.31325573257843,-0.0025093905340150737],[109.3128185715068,-0.002359109371890915],[109.31273860287595,-0.0024557182237979697],[109.3127119467193,-0.002444983862363093],[109.31269062185636,-0.0023859450343237986],[109.31262131591357,-0.0023054374956299234],[109.31253601611213,-0.0023591090268665488],[109.3124773725769,-0.0023322731395495617],[109.31249869769537,-0.002171258269346269],[109.31223213615012,-0.002074649045426218],[109.31211484900686,-0.00210148473013807],[109.31209885523995,-0.002165890657782687],[109.31196557444363,-0.0021605233465965],[109.31197623695448,-0.002117586064547549],[109.31191226216649,-0.0021229531559254938],[109.3117843125075,-0.002214194755920692],[109.31170967531162,-0.002176624543249198],[109.3116723567291,-0.0021444215358195065],[109.31166169430209,-0.0021122185587439733],[109.311709675544,-0.001956570942063323],[109.31167768821508,-0.0018975321395602615],[109.31146977030464,-0.0018009230490676632],[109.31136314551505,-0.0019887735511383725],[109.31114456514672,-0.0019297345721563752],[109.31083002267634,-0.0018760626720541595],[109.31072339818446,-0.0017901880361911404],[109.31053680527859,-0.001698946181389402],[109.3103715372285,-0.0016882117213228571],[109.31031822487826,-0.0017740861888647238],[109.31025958138832,-0.0017633518209688327],[109.31025958144984,-0.0016935787802898135],[109.31020093798826,-0.001650641474339305],[109.3100996446873,-0.0016399070746383937],[109.31004633239296,-0.001672109967594889],[109.30990772051595,-0.0016613755354414135],[109.30991305182606,-0.0015593995758681545],[109.30984374590363,-0.0015379308965253655],[109.30978510233057,-0.0016452739628281267],[109.30944390398386,-0.0015486648870918216],[109.30928929850863,-0.0014949932201928392],[109.30908138080858,-0.0014359543683109713],[109.30893210660194,-0.0013554469579579798],[109.30869220155863,-0.0013554467892582908],[109.30854292729035,-0.0014037510540318824],[109.30843630274762,-0.0015325626219357866],[109.30838832163448,-0.0016721085296565069],[109.30833500935407,-0.0017418814544144625],[109.30827636593344,-0.0017204127955828506],[109.30828169723802,-0.0016238040739300953],[109.30830302219447,-0.0015379296674268596],[109.30832967838117,-0.0014359538082873977],[109.30832434720185,-0.0013769151368612344],[109.30819106672266,-0.0012856734709808014],[109.30806844859696,-0.0013393448979070889],[109.3080204676183,-0.0013232434122999815],[109.30793516814056,-0.0012373689457198514],[109.30785519982408,-0.0012481031949048696],[109.3077645690239,-0.001328610386571455],[109.30771658806,-0.001301774604041068],[109.30767926956453,-0.0012320016315513524],[109.30750333934732,-0.0011729628767134497],[109.3070235296992,-0.0010817210691331225],[109.30675163759717,-0.0010656194747488447],[109.30650107038898,-0.001070986482564129],[109.30650107043421,-0.0009851121384865872],[109.30638894057388,-0.0008903039717301921],[109.30633136414953,-0.0008846530292084875],[109.30625050327835,-0.0009529091353725874],[109.3061385477331,-0.0009743776619457082],[109.30603192338984,-0.00103341620513213],[109.30587198693192,-0.001033416119240778],[109.3057600314077,-0.0010548846368269253],[109.3057280440867,-0.0011139232071546714],[109.30548280830071,-0.000979744473558357],[109.30554120852663,-0.0008111826232100865],[109.30531220957766,-0.0007113872271874638],[109.30528555346591,-0.0008065777140392928],[109.30529621586464,-0.000888502945060978],[109.30532287187187,-0.0010119472513984186],[109.30506697363414,-0.0010226814017994057],[109.30491236847162,-0.0010173141775022343],[109.30482173784314,-0.0010548841222623817],[109.30465647030519,-0.0009958454766928833],[109.30465647032136,-0.0009636426285207122],[109.3046244830724,-0.0009207054823416145],[109.30449120276911,-0.0009582754047823509],[109.30438457853437,-0.000985111054661152],[109.30424596699811,-0.0010924537879036754],[109.30408603067036,-0.0011246565356099621],[109.30406470586031,-0.0010709851260500946],[109.30396341285748,-0.0010978207667373526],[109.30387278228763,-0.0011085549932845836],[109.30385145743125,-0.0011407578156883075],[109.30379281409606,-0.0011944291703701207],[109.30373950203308,-0.0011461248880450315],[109.30366486514346,-0.0010817191804281287],[109.303648871543,-0.001033414924512232],[109.30348360406036,-0.0010602505260264132],[109.3033449926256,-0.0010978204134478031],[109.30323836841409,-0.0011890616883157485],[109.30270941642736,-0.0011116100743424004],[109.30234718401485,-0.0011671940842111598],[109.3023640504657,-0.0013125052510498149],[109.30228941359273,-0.001312505200033377],[109.30206017178664,-0.0013125050433260242],[109.30187357963216,-0.0013232391828999197],[109.30173496831937,-0.0013447076201857202],[109.30168698741869,-0.001441315981695476],[109.30159635693434,-0.0014788858432865798],[109.30149506406003,-0.0015003542953887419],[109.30145241437359,-0.0015808612481578428],[109.30138843995842,-0.0015593926665524302],[109.30135645278953,-0.001500354187026353],[109.30121251030599,-0.0015271897331745152],[109.30116986065106,-0.001575493883785291],[109.30100459329235,-0.0016989377646196514],[109.30079134521402,-0.001731140359167503],[109.3004714732123,-0.0016989372924864135],[109.30032219961666,-0.0016989371602625938],[109.30007163318737,-0.0017687096093942378],[109.30001832116912,-0.0018009123305591302],[109.29992769080643,-0.0017848108610498633],[109.29981040445178,-0.001774076496259537],[109.29967179318636,-0.0018975202987847207],[109.29950652611737,-0.0018384817386125545],[109.29939990208952,-0.0019243556629701657],[109.29922397260452,-0.0019136212339806913],[109.29903204957874,-0.0018706840372939677],[109.29896807519057,-0.0019082538530072397],[109.29887744487856,-0.0018921523871906966],[109.29877615202321,-0.0020316975350228475],[109.29858422900055,-0.0020316973315182758],[109.29857356652519,-0.002112204185473906],[109.29846694261474,-0.0021283054400440746],[109.29844028654652,-0.0022141793940806233],[109.29829634436918,-0.0021551408684208555],[109.29828035090918,-0.0020424312563178974],[109.29822170784308,-0.0019780257134076485],[109.29816306472826,-0.0019619242832184633],[109.29808842792454,-0.0020531652976651616],[109.29802978472863,-0.0021175707087170773],[109.29792316090102,-0.0020853678556506296],[109.29788584265738,-0.001983392488989106],[109.29785385561226,-0.0018706828868492484],[109.29770458222029,-0.001870682741034758],[109.29757663367887,-0.0017955429142652998],[109.29732606768083,-0.0017848084375780761],[109.29688891009681,-0.0017257697140766416],[109.29670231844781,-0.0017311366649470233],[109.29655304522953,-0.0016345283935651667],[109.29558545719237,-0.0014387652079153681],[109.29536952173682,-0.0014681468059801511],[109.29528955400296,-0.0013983742477365153],[109.29504965069505,-0.0013554371565407336],[109.2949910076463,-0.0013769055721582746],[109.2947830915023,-0.0013017658303668203],[109.29466580549541,-0.0012373603898131378],[109.2944525581446,-0.0012480944773406632],[109.29429262274914,-0.0010870810026222136],[109.29412735616883,-0.0009314346641333777],[109.29363155634171,-0.0007704211078492534],[109.29327969845217,-0.0007053447632492354],[109.29277875969484,-0.0004749958326894779],[109.29216470652227,-0.00022099911596846843],[109.2917811933168,-0.000040368250955727055],[109.29170022608575,-0.00001999002226523143],[109.29160126614096,-0.000019990021228532726],[109.29152029891702,-0.00004942523438769286],[109.29145957349749,-0.00013093813057968312],[109.29141234260275,-0.0002894354246469721],[109.29138985170414,-0.0003211348802961206],[109.29128414452182,-0.00021924374968249118],[109.29131788086578,-0.00016716607274951448],[109.29132237904918,-0.00009697441618742203],[109.29131338269313,-0.00007433194585808905],[109.29127964635522,-0.000056217968993273005],[109.29125715546328,-0.00005168947446261542],[109.29125715546384,-0.000004140289178198161],[109.29124815910704,0.0000317102869256939],[109.29121517246607,0.00003472928221164651],[109.29118518461081,0.00004076727320563644],[109.29116719189773,0.00005284325587128488],[109.29116419311191,0.00006793823452244203],[109.29118218582391,0.00008605220977135119],[109.29117019068094,0.00010718517950440723],[109.29114020282492,0.00013435613920947197],[109.29110121861454,0.00014341312345916748],[109.29107123076294,0.00011926115635296212],[109.29102025140998,0.00016756508146010114],[109.29095127935493,0.00011926114885321131],[109.29093328664706,0.0000649192308934644],[109.29090629758187,0.00004680525793608333],[109.29089430244228,0.0000045393231728414236],[109.29085531823736,0.000010577313575810389],[109.29080134010887,0.000034729274676990136],[109.29073236805763,0.000049824248737839566],[109.29066939357912,0.00003774826726150619],[109.29063940573302,0.000019634297147155692],[109.29059742274903,0.0000075583173058581686],[109.29053144948954,0.000043786253967656635],[109.2904084993279,0.00011926111491026641],[109.290408499324,0.00017058402225082495],[109.29037851147363,0.0002460588821469026],[109.29035152240694,0.00030945776232279974],[109.29031553699585,0.00031851473971294313],[109.29027955158467,0.0003305907110974491],[109.29023157103855,0.0003426666798196174],[109.29015960022664,0.00033059069029858844],[109.29026429721195,0.0007464544523293587],[109.29022992199356,0.000776521731677648],[109.2896917897776,0.0009887311736639],[109.28964980685578,0.0009041993381395964],[109.28943389444478,0.0009917500328682403],[109.28946388223207,0.0010672248748057923],[109.28910184736034,0.0012232016818997972],[109.28884729246424,0.001242271513218518],[109.28881914398183,0.0011789272189178881],[109.28850678531428,0.0012745629067393543],[109.28825761345071,0.0013252347789186054],[109.28816279081339,0.0013445206273937171],[109.28813005358623,0.0013220493258433042],[109.28812405607901,0.0012405365665549006],[109.28801909876869,0.0012254415443532316],[109.2878811548711,0.001225441455573211],[109.28786016340925,0.0012254414420625817],[109.28783917195338,0.0012163844570927842],[109.28780318659129,0.0012163844341022204],[109.28777319879005,0.0012163844149430483],[109.28774620977492,0.0012073274267669566],[109.28770722562689,0.0012194033631024825],[109.2876502487863,0.0012526122185773985],[109.28756628293485,0.0012767640836726694],[109.28748831466017,0.0012797830212912577],[109.28745232935123,0.0012073272403845565],[109.28726940379502,0.0012224220722348274],[109.28725141106173,0.00130997275748054],[109.28723041960676,0.0013099727430326332],[109.28721542578127,0.0012012891110695187],[109.28718243922671,0.0011741181853468518],[109.28715545020347,0.0011922321050917043],[109.28711946484849,0.0012012890504990725],[109.28710447093228,0.001234497923533027],[109.28708077836522,0.0013824481960254234],[109.28705073839504,0.0013937035356382953],[109.28705931648459,0.001269250415497187],[109.28702851960232,0.0010932504140464152],[109.28699828523446,0.000848656668077017],[109.28693612898314,0.0003457035439701815],[109.28692109773024,0.00022451603536123425],[109.28689323701741,-1.4315509590290447e-9],[109.28687814461219,-0.00012162458300059818],[109.28683050398284,-0.0005056714676946862],[109.28680856570418,-0.0006495562478760398],[109.28675358170295,-0.0010412299721266876],[109.2867294258648,-0.001314233962600044],[109.28671612897877,-0.0014644214736614502],[109.28669000520168,-0.0017076656970980973],[109.28665984857366,-0.0019884684275808108],[109.28665493728995,-0.0020341996327890013],[109.28664572273884,-0.0021200152242219807],[109.28659733210388,-0.0025063277027905758],[109.28659147064774,-0.0030193796909118885],[109.28660538622,-0.0034802112311831264],[109.2866147998149,-0.003483639582842361],[109.28661053526776,-0.003542515200991235],[109.28662339155676,-0.003622817528176109],[109.2866173837726,-0.0036475582044262103],[109.28664666045717,-0.0040127739867467935],[109.28685296185324,-0.005063243769488195],[109.28685398764942,-0.005063154596888409],[109.28685816172592,-0.005089226441492274],[109.28688772273112,-0.005236937086018487],[109.28693612899217,-0.005527312098256883],[109.28693872273018,-0.005550468339645207],[109.28694142586035,-0.005574546468270493],[109.28695454323575,-0.005691238970462198],[109.28701082591006,-0.0060427890632982146],[109.28709451960462,-0.00621018708796425],[109.28707251962186,-0.006262983967250727],[109.28703930888594,-0.006220698193027571],[109.28703935495649,-0.006220985957059631],[109.28707208974735,-0.006266416268365792],[109.2870609140845,-0.006355647438448171],[109.28705756508235,-0.0063823869939841835],[109.2870669972549,-0.006393643922358154],[109.28706616753422,-0.006413274744431901],[109.28705306445067,-0.006723294634714295],[109.28705266884778,-0.00673265469942577],[109.28705259664846,-0.006732730351642923],[109.28699133167872,-0.007968514823180851],[109.28693749099106,-0.008600576300976995],[109.28688333211666,-0.00904242144724364],[109.28652968315646,-0.009964091899725632],[109.28567420668834,-0.012230649506661534],[109.28592414462462,-0.013914905846485299],[109.28535655086984,-0.016810937082375594],[109.28567014462025,-0.018412374595974862],[109.28209584434904,-0.02009560977472829],[109.27991142588162,-0.022168562113274295],[109.27616282692566,-0.027218688336519227],[109.27931435657263,-0.03531855349608888],[109.28335466844719,-0.041077661140143634],[109.28364256654527,-0.040863077730139155],[109.28398020850551,-0.04044804890069206],[109.28459225401616,-0.03984515586191861],[109.28512724208743,-0.040606145838443665],[109.28605666166601,-0.03973816486870906],[109.28614210681981,-0.03983017860126383],[109.28614228933482,-0.039829999967719694]]]},"properties":{"Id":0,"Plan_Area":113026328.1,"Ket":"Pontianak Barat","Penduduk":150157}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[109.34477671544883,-0.02609238682029518],[109.34473830505421,-0.025985298320994627],[109.34467832878103,-0.025900763314677496],[109.34462734754572,-0.025936991592494536],[109.34450439656064,-0.025734711690864547],[109.34450739570134,-0.02571357817810545],[109.3445163924618,-0.025701501980213315],[109.34453138715304,-0.025674330466003755],[109.34453138750253,-0.02564715875605449],[109.34446241469423,-0.025556585494460073],[109.3444384235165,-0.02557469965554942],[109.34433646442957,-0.025384496380569627],[109.34445172324264,-0.025308246547117275],[109.34454638696363,-0.025245621457296696],[109.34433347047762,-0.024995035205528916],[109.344287739022,-0.025025323622104217],[109.3442195125499,-0.02507051071889045],[109.3441055577303,-0.024898421808787676],[109.34380267746174,-0.024466689857675663],[109.34377868645035,-0.024472727714908007],[109.34372470676834,-0.024478765199004875],[109.34368572208905,-0.024430459472804655],[109.3436527344413,-0.02443951629595325],[109.34363174274233,-0.02440932526026807],[109.34368272399757,-0.024367058806423817],[109.3436654554817,-0.024304172657742908],[109.34359875568703,-0.024370076844259854],[109.34343382047732,-0.024167796629555614],[109.34342182552263,-0.024125529401767373],[109.3434308225238,-0.024092319662950244],[109.34348180369412,-0.024056091359822594],[109.34321490819617,-0.023754180410841395],[109.34322239354039,-0.02369937340353607],[109.34315793009786,-0.023723988955205107],[109.34305297132434,-0.023594167395219315],[109.34298699577238,-0.02363643367514794],[109.34284605068504,-0.023500573548412836],[109.34287004189544,-0.02347642122434964],[109.34287004271151,-0.023406982468707337],[109.34289366168002,-0.023366857927247853],[109.34291802551938,-0.02332546797662811],[109.34263582928772,-0.023113772976633057],[109.34251653534754,-0.02300214023455363],[109.34238898847795,-0.02288457773371446],[109.34235350508142,-0.022855396509083005],[109.34230926075662,-0.022902790191162637],[109.34208734708278,-0.022700509572710425],[109.34200337843015,-0.022739756578314643],[109.34196439374391,-0.022691450928349007],[109.34193740382746,-0.022703526916467456],[109.34190141773121,-0.022679373902135723],[109.34187742643901,-0.022712583448278905],[109.34189541931447,-0.022739755329671277],[109.34179645586504,-0.022821269201500908],[109.34176946639947,-0.022794097216371156],[109.341712487776,-0.02281221100303301],[109.34165251101562,-0.0227669241901121],[109.34162552127552,-0.022763904803056935],[109.34161052736422,-0.022728178915732557],[109.3416025310363,-0.022671822768044622],[109.34127119215174,-0.0222909674936527],[109.3411181107248,-0.02218652467841721],[109.34101310442885,-0.022117745225095173],[109.34100424890643,-0.022073166618737126],[109.34088373654563,-0.022032723601021015],[109.34086761372954,-0.02202731290871359],[109.3408359851707,-0.022020944196573026],[109.34081194734225,-0.022027312284636037],[109.34079550031446,-0.022040048815073397],[109.34078917441954,-0.022055332801873575],[109.34079043931064,-0.022078258902706732],[109.34080056021737,-0.022101185103240512],[109.34064159307694,-0.022260123871124877],[109.34061584697686,-0.022285865373601197],[109.34047640426145,-0.022211293355431982],[109.3404172228493,-0.022296733985635076],[109.34041453535092,-0.022294015239200788],[109.34023487909967,-0.02226235899343857],[109.34025373848458,-0.02222437461777648],[109.34028863894613,-0.02217668911924637],[109.34036085067,-0.02222467122775322],[109.34041145705203,-0.02217202672261741],[109.34035579101774,-0.022141457985522747],[109.34044856955273,-0.022029375960474714],[109.34041775344667,-0.022011795357146792],[109.340397964076,-0.022000505511840317],[109.34058464594347,-0.021754547513510008],[109.34060488816449,-0.02176360495628862],[109.34066063331281,-0.021709407746605885],[109.34063192597397,-0.021670015234227093],[109.34052754955458,-0.021605057176859552],[109.3404931539938,-0.021652119915318183],[109.34051267416507,-0.021670767448750072],[109.34050173221127,-0.021692728325859556],[109.34031699594435,-0.021897195720838276],[109.34023602660226,-0.021903987730824644],[109.34003140115715,-0.02216196878173797],[109.33997989525031,-0.02211752200534052],[109.33995188171345,-0.022153781308650006],[109.33958246305525,-0.02183451035246079],[109.33960000401613,-0.021789696738682186],[109.33967692845232,-0.02171733369320997],[109.33951499147057,-0.021579775471321914],[109.3394424565499,-0.021578076446535928],[109.33919280385015,-0.02135390770395058],[109.33918437026597,-0.021287676749368215],[109.33900294447656,-0.021107887163531867],[109.33905183222875,-0.021019780861193837],[109.33900388733981,-0.020984336865655137],[109.33900936204584,-0.020970318661734044],[109.3390131577058,-0.020948666306704687],[109.33872091189632,-0.020716855221799727],[109.33867410128464,-0.020744875469959928],[109.33864879851576,-0.020734685841763006],[109.33861477224652,-0.020767137820285605],[109.33860072257553,-0.02078053745592256],[109.33852243260381,-0.020708684841986517],[109.33849824639027,-0.02073723159079746],[109.3384577617807,-0.020738504832821383],[109.33832998344499,-0.020626420532258646],[109.33844258240883,-0.020511791419897965],[109.33845643892111,-0.02052567673272894],[109.33856530019742,-0.02062260199610125],[109.33862425409833,-0.020588390231731576],[109.3382236134825,-0.02027910897549895],[109.33821162598487,-0.020262645038778063],[109.33817788841051,-0.020303402123444062],[109.33838620722554,-0.02046178085873691],[109.33835208221738,-0.02053051522483765],[109.33830383777345,-0.020566062457535693],[109.33797321662848,-0.020273964084055466],[109.33800600893586,-0.020221838989059798],[109.33797494634469,-0.020196108531097958],[109.33794172896448,-0.020239999235025723],[109.33791024113846,-0.02022188449783109],[109.33783601822353,-0.020337363106356948],[109.33723775086412,-0.019870910945570874],[109.33735920604548,-0.019723732618234686],[109.33777304503677,-0.020058853384273552],[109.33778034402216,-0.020034911212905827],[109.33783552212489,-0.0199714268285251],[109.3373836978084,-0.01961315950276846],[109.33698199372697,-0.019284010300453243],[109.33662788260204,-0.018993858014070632],[109.33623695669897,-0.01867034241946192],[109.33578729587745,-0.018299293812025212],[109.33545744784368,-0.01802158982596765],[109.33507659623612,-0.01770458456459219],[109.33422946106631,-0.01701015816423277],[109.33359817229992,-0.016499965426237873],[109.3335761261191,-0.016511800771031884],[109.33357379967183,-0.016509442243053733],[109.33341224189937,-0.016687145688211266],[109.33336612525248,-0.016703788831756106],[109.33335703955242,-0.016716972859436494],[109.33295032045442,-0.017307152378003857],[109.33273066408222,-0.01767522521800571],[109.33240414785323,-0.017936438201281452],[109.33201232837826,-0.018126411279917556],[109.33154926899897,-0.018304511041271464],[109.3312524360635,-0.01839949758062133],[109.33108027296085,-0.018470737485192967],[109.33088436322329,-0.018524167413492366],[109.33051035372478,-0.01859540731806249],[109.3297089047989,-0.01873788712715328],[109.32859281296147,-0.01892786020582828],[109.32683556198336,-0.01922469314128929],[109.32628345272335,-0.019343426315465168],[109.3257669634155,-0.019426539537446625],[109.32460337830851,-0.019610575957395213],[109.32218715821357,-0.02007957199549711],[109.3211244963045,-0.020257671756833427],[109.32080985339284,-0.02032891166126152],[109.3196343949684,-0.02056637800977535],[109.31824521683019,-0.020827590992958642],[109.31773466418113,-0.02094632416714955],[109.31712912499275,-0.02110067729359496],[109.31677886212887,-0.02117785385685766],[109.31591210995721,-0.021397510229172],[109.31534812737978,-0.021557800014231954],[109.31429140212936,-0.021854632949845222],[109.31348995320364,-0.022080225980734978],[109.31319905692679,-0.02214552922655911],[109.3129675272371,-0.02224645242462198],[109.31273006088864,-0.022299882353026067],[109.31240354465966,-0.02238299557499625],[109.3120532817959,-0.022519538725266887],[109.31183956208224,-0.022602651947242043],[109.31118652962412,-0.02284605495425876],[109.30973204824026,-0.023398164214321428],[109.30869906962477,-0.02379592034793677],[109.30805197382543,-0.024074943307250043],[109.30789762069885,-0.024152119870451887],[109.30742268800213,-0.024348029607953604],[109.30623535626027,-0.02484077228089171],[109.30368852967369,-0.02599842072929834],[109.30340950671426,-0.026105280586074787],[109.30237652809878,-0.026639579869916177],[109.3018541021323,-0.026912666170632937],[109.30159288914912,-0.02709076593197692],[109.30128418289607,-0.027256992375840505],[109.30106452652383,-0.027351978915184323],[109.30077363024716,-0.02750039538296088],[109.29992468805155,-0.028070314618980918],[109.29944975535481,-0.028379020872018632],[109.29933102218058,-0.028402767506782497],[109.29918260571286,-0.02849775404615545],[109.29899856929295,-0.028646170513869074],[109.29885015282505,-0.028770840346853867],[109.29863643311147,-0.028972686742969635],[109.29847020666766,-0.029020180012652528],[109.2983989667632,-0.029097356575886846],[109.29828023358894,-0.02918046979783592],[109.29809026051034,-0.029317012948152674],[109.29787654079671,-0.029465429415840124],[109.29768656771802,-0.029607909224978243],[109.29740160809985,-0.029774135668843855],[109.29732443153651,-0.0298275655971235],[109.29719976170372,-0.02992848879527126],[109.29703947191855,-0.029999728699743378],[109.29689105545097,-0.030076905263058222],[109.29681387888769,-0.030189701778456264],[109.29664171578504,-0.030326244928864883],[109.29649329931732,-0.03042716812680801],[109.29639831277794,-0.03046872473788293],[109.29624989631026,-0.03053402798372347],[109.29610741650114,-0.03063495118175598],[109.29582839354175,-0.030919910799815292],[109.29532377755154,-0.031299856957228506],[109.2950150712986,-0.031507640012129856],[109.29485478151342,-0.03163824650368205],[109.29475385831526,-0.031715423066870536],[109.2945045186496,-0.03193507943917153],[109.29424330566624,-0.03213692583527286],[109.29405333258757,-0.032261595668280206],[109.29388710614374,-0.032469378723081296],[109.29377430962816,-0.032546555286220094],[109.29362589316042,-0.03260592187342162],[109.29345373005782,-0.03274840168251062],[109.29330531359005,-0.032861198197907074],[109.29318064375722,-0.03297993137213992],[109.29288381082176,-0.03332425757730019],[109.29252761129908,-0.03361515385415839],[109.29214172848303,-0.03397135337673088],[109.29181521225391,-0.03420288306633807],[109.29132246958106,-0.03471343571542002],[109.2902004410849,-0.0358710841638919],[109.28992141812552,-0.036156043781946805],[109.28892999612086,-0.037183085738776864],[109.28826868165739,-0.037842861068459056],[109.286149649837,-0.039838054151606836],[109.28614228933482,-0.039829999967719694],[109.28614210681981,-0.03983017860126383],[109.28676733367581,-0.04050346990507054],[109.29399956110102,-0.04829170836292673],[109.29876899798471,-0.053427837566184154],[109.3001938159352,-0.05496220797215477],[109.30133568284663,-0.05695960489856255],[109.30193009388114,-0.05967264044108471],[109.30358075575698,-0.061299808552741857],[109.30470076601493,-0.06230462738825889],[109.30592483648194,-0.06115790978185177],[109.3069922606449,-0.06003601996990354],[109.30803151893957,-0.05899239587119645],[109.30886309776758,-0.05821339794593776],[109.30922115564404,-0.05779283901742656],[109.31014057450318,-0.05686925418155446],[109.31095422427441,-0.05591006277695976],[109.31203935583135,-0.0549893416096532],[109.31413037706426,-0.05284824873871211],[109.31642282578287,-0.050634668632088826],[109.31720023906401,-0.04984814625261359],[109.31792659285624,-0.04907813170237839],[109.31891938021646,-0.048139538454601324],[109.3195934185071,-0.04750229392434255],[109.32091635935764,-0.04611141557186],[109.3219146392269,-0.04515239613305311],[109.32270982295476,-0.04438848475261101],[109.32372239973732,-0.043415728877689824],[109.32448646470378,-0.04261931863073522],[109.32503242609334,-0.04205024456135078],[109.32678273002858,-0.04053795579042847],[109.32981224083295,-0.03792040735123325],[109.33260000690112,-0.03551172396131128],[109.33398214420836,-0.03414347596314283],[109.33665977712863,-0.03156383186112857],[109.33789455090778,-0.03038760898972202],[109.338103284086,-0.03033352538936671],[109.33866974466294,-0.029896030424540483],[109.33989534931858,-0.02900890989233597],[109.34073186993625,-0.028449083707839516],[109.34210494955178,-0.027631289913580114],[109.3435626315242,-0.02669498758526942],[109.34477671544883,-0.02609238682029518]]]},"properties":{"Id":0,"Plan_Area":113026328.1,"Ket":"Pontianak Kota","Penduduk":123867}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[109.32389276289443,-0.08052549670981375],[109.33577028215281,-0.09173477409757182],[109.34274556452921,-0.09833009529340522],[109.34606457199749,-0.09395909019645002],[109.34701010911387,-0.09223632304696226],[109.34838923710359,-0.09001839901704267],[109.35173157142523,-0.08486883843559084],[109.35521403926114,-0.07981326504483512],[109.35829245193611,-0.07459025187888303],[109.35917228525658,-0.07312722971944],[109.3591782651555,-0.07312635585072236],[109.36041450523304,-0.07125274414937383],[109.36041574944277,-0.07124827587437617],[109.36041797001192,-0.07124749300969976],[109.36064959922003,-0.07089644184335257],[109.36129108773297,-0.06991875248622066],[109.36167313532991,-0.06925946260780556],[109.36238646935094,-0.06791577439347445],[109.36282990023265,-0.06704520059571245],[109.36283664283374,-0.06703196309703219],[109.36283924220497,-0.06702685980969039],[109.36283910147402,-0.06702667196022341],[109.36598030094072,-0.06026660899988584],[109.36785954183676,-0.05867591492962667],[109.36777761989717,-0.058613073788095216],[109.36779361917647,-0.05843595288703645],[109.36778162495155,-0.058387646708056955],[109.36774164048435,-0.05835544165437447],[109.36769365917024,-0.058315185397488936],[109.36766567043763,-0.05827895521130372],[109.3676496782494,-0.05821052149271316],[109.36763368629019,-0.05813403680449854],[109.36760969748056,-0.05804950091434412],[109.36758970628458,-0.05799716902455262],[109.36761369959507,-0.057924710985378894],[109.36761769986147,-0.057864328821279294],[109.36761770193164,-0.05779187008519002],[109.36760570757768,-0.057747589399603484],[109.36756972210253,-0.05769928253607192],[109.3675177417824,-0.05767512812331971],[109.36743377292261,-0.05765902375814567],[109.36739778664617,-0.057638895294551455],[109.36728183257443,-0.05751410192268641],[109.3672418466169,-0.05753422819379269],[109.36716187539065,-0.057550327826944],[109.36708590350693,-0.0575382491841164],[109.36699793681325,-0.05749799180783355],[109.36696195077207,-0.05746981238318298],[109.36695795349138,-0.05742553194398241],[109.36696595193777,-0.057377226365740386],[109.36712989485108,-0.0572765939686891],[109.36714188989606,-0.05729672173470122],[109.36716988023419,-0.05727659511582879],[109.36708991242887,-0.05717193023037265],[109.36706592085878,-0.05718400599595737],[109.36708191330376,-0.057244388717999986],[109.36699794275103,-0.05728866663515844],[109.36698594782081,-0.05726451338654648],[109.36695795839697,-0.057252436131609324],[109.36690997651223,-0.05723230733584371],[109.36689798249209,-0.057175950217531406],[109.3669819532656,-0.05712362132985517],[109.366836488492,-0.056901515272067896],[109.36677270724863,-0.05679570277346339],[109.36676121775581,-0.05675207467987724],[109.3668740057625,-0.05666068759883511],[109.36682202657603,-0.05659627838351911],[109.36678204063726,-0.05661640466807459],[109.366729076769,-0.05654657574564042],[109.36661410825336,-0.05639499832189014],[109.36639418546301,-0.05651173111060318],[109.36637019525472,-0.05647550108577026],[109.3665701262517,-0.056326563864144585],[109.36654613659809,-0.05627020642251357],[109.3665101509967,-0.05622592509367195],[109.36641019059405,-0.05611723423880407],[109.36634621746595,-0.055992442473620105],[109.36639819855388,-0.05598841844927554],[109.36623827910977,-0.05568829588435585],[109.36618228558717,-0.055698577654730075],[109.36605089373576,-0.055434004750743275],[109.36595038330717,-0.05523161527080817],[109.36589516770857,-0.055261545135679685],[109.36579443810771,-0.05531614606825555],[109.36578644169741,-0.055291992956616715],[109.36562249976855,-0.05536444707597378],[109.36559851032094,-0.05530003870977628],[109.36560250973662,-0.05526783497040557],[109.36557052310636,-0.05520745186583451],[109.36553453728084,-0.05517122153950435],[109.36549855123576,-0.05514304217651774],[109.36540259078818,-0.05498202028826975],[109.36545057397083,-0.054953843244278044],[109.36546656898497,-0.05492163983695868],[109.36543857978864,-0.05490151166144003],[109.36540659238564,-0.05486930693379749],[109.36535861171797,-0.05480489792109718],[109.36532262578041,-0.05477269308639613],[109.36528664060593,-0.05471230988842696],[109.36542659192712,-0.054615702185700006],[109.36536661586466,-0.05454324188874734],[109.36531463535084,-0.05452713854427252],[109.3651986806766,-0.0544224728815654],[109.36528302744722,-0.05432778367993095],[109.36520164475161,-0.05417210901534461],[109.36510373849845,-0.05398670275889562],[109.36500044162561,-0.05382934338786463],[109.36495911349884,-0.053759702762253433],[109.36482435805183,-0.05361481352445358],[109.36467741035204,-0.05367519176360451],[109.36457545256518,-0.05349404245382014],[109.3646474282352,-0.05341554753795306],[109.36462943555496,-0.05338837507040717],[109.3645334696481,-0.05343064003092263],[109.36452147484788,-0.05340044861614107],[109.3645364698248,-0.05338233436180131],[109.36450648186582,-0.05334308513769064],[109.36445250135556,-0.053355160129949994],[109.36442551301366,-0.05328873900556894],[109.36456346438173,-0.053213264958964425],[109.3644944927894,-0.0530955178555815],[109.36422848094016,-0.05263271277642474],[109.36418861660141,-0.05265471981897021],[109.36414063641939,-0.052570183506298426],[109.36412564176746,-0.05257622132815119],[109.3640746604861,-0.05257621998306889],[109.36400268628576,-0.05260037095238314],[109.36397869548888,-0.05258527477657811],[109.36391871814416,-0.05256112032638504],[109.36390372443661,-0.052530928846958355],[109.36390372639859,-0.05245545113730205],[109.36406252765248,-0.05235287404647941],[109.3640105353743,-0.05227471838719551],[109.36394586349036,-0.05215173401678236],[109.36393817831646,-0.05213724975816286],[109.36399670171352,-0.05209014145268094],[109.3638227715008,-0.051860684677261466],[109.36379072562528,-0.051891331833366],[109.36376279205861,-0.05191804617141255],[109.36377778592939,-0.051942199427738506],[109.36372080585083,-0.05198144634764212],[109.36366682350399,-0.05206597996403525],[109.36360384485049,-0.052135417800594504],[109.36358884957997,-0.05216560848729261],[109.36337647215817,-0.05235741848967411],[109.36333693840434,-0.05231051905171411],[109.36352287413452,-0.05215353032836207],[109.36348988680251,-0.052132395710388586],[109.36347189403827,-0.05210824237757218],[109.36348988812725,-0.05208107087844635],[109.3634539027531,-0.05202672599882762],[109.36350188582024,-0.05199955528200464],[109.36348689257392,-0.05195124916648312],[109.36354687193142,-0.05189690678944524],[109.36350488844546,-0.05185463818668325],[109.36337293499874,-0.05193011244128117],[109.36332495457509,-0.05185463350252849],[109.36338193518232,-0.051794252833936696],[109.36333095515936,-0.05174594578793275],[109.36329196863794,-0.051779154957166104],[109.36324998639255,-0.05168858064372768],[109.36345691450384,-0.05152555419708317],[109.36344491945174,-0.05150442013294075],[109.36350350282505,-0.051461956882718006],[109.36347067599854,-0.05141014026103844],[109.36339253536072,-0.051293484008386174],[109.36338387263875,-0.05128059146668026],[109.3632926461861,-0.05134356485890568],[109.36325266201055,-0.051299283586276265],[109.3631966831015,-0.051279154762270684],[109.36315669708611,-0.051307332067174256],[109.3631367055617,-0.05126305131280648],[109.3631287107494,-0.051174490628634536],[109.36308872687937,-0.05111813293434515],[109.3629487752807,-0.05123889361964209],[109.36284881133078,-0.05126706937747551],[109.36280882797976,-0.051190584310824364],[109.36301275746364,-0.05101346860686704],[109.36298476897707,-0.05096516217791833],[109.36293530098962,-0.0508584683780913],[109.36287691035987,-0.05081143712891819],[109.36276014474737,-0.05069206213525009],[109.36266670724217,-0.050589874628320645],[109.36263437912393,-0.050554593389834916],[109.36250592599053,-0.05041442150940707],[109.36237298848681,-0.05028056213393696],[109.36224722286754,-0.05014490589163686],[109.36212145723485,-0.04999387463823831],[109.36197864473625,-0.04981932775495954],[109.36183222287316,-0.049633030889205294],[109.36168400411715,-0.04946753089318956],[109.36153848849844,-0.049316499631445875],[109.36139386348755,-0.04916367150462954],[109.36125103535831,-0.04901262463854214],[109.3611082072481,-0.04886431213165419],[109.36096178537197,-0.048735890264149886],[109.36086476974131,-0.04864273400118973],[109.36081716037289,-0.04860746839028417],[109.3608027853598,-0.0485957027588042],[109.36079739473277,-0.048580327764626605],[109.36077673848317,-0.048548687127765444],[109.3607291291115,-0.04849079651376115],[109.36065995724562,-0.04841845276519255],[109.36058091035834,-0.04833706212599964],[109.36050366036237,-0.04825565589168769],[109.36042820724111,-0.048176984009334844],[109.36035005099836,-0.04810010901007835],[109.36026741036504,-0.048018718377986304],[109.36017667599177,-0.0479391246377138],[109.3600850509853,-0.047870390261888475],[109.36001589473813,-0.04780709338382904],[109.35996648849243,-0.047741968389913396],[109.35991528537184,-0.04767323401643266],[109.35985778535861,-0.04760812463552371],[109.35980030098357,-0.04754753089157272],[109.35973651974159,-0.04748874963936883],[109.3596718478736,-0.047436296503040445],[109.35954608223302,-0.04732957775593727],[109.35948320723493,-0.04727440587834581],[109.35935655098565,-0.047159546514658854],[109.35921911348387,-0.04703023401526369],[109.35908976973376,-0.04689999963101887],[109.35895770724454,-0.046758015265081845],[109.35880859786593,-0.046616921510605126],[109.3586513947372,-0.04646951525790752],[109.3584915041194,-0.046332046501001395],[109.35834058223476,-0.04621628087817594],[109.35820853536322,-0.046107765259906924],[109.35808547286094,-0.045996515254539884],[109.35800464473208,-0.045912405877382254],[109.35797678536899,-0.045878952749835736],[109.3579704884894,-0.04587262463159546],[109.35796600410657,-0.04586629650353804],[109.35793816036531,-0.04584278087586946],[109.3578501291137,-0.045766812126829946],[109.35771269161208,-0.04563839025944261],[109.35755009786892,-0.04550182775933234],[109.35736773848056,-0.045362546504240965],[109.35719078536735,-0.04519523400136286],[109.357023707237,-0.04499807775636303],[109.35684944162088,-0.04481178088107389],[109.35665809786379,-0.04464267149998366],[109.35646856661096,-0.04446721838889703],[109.35629698847971,-0.04428090588788119],[109.35612542599418,-0.04410456212951205],[109.35593678536611,-0.043927296499979576],[109.35573734786117,-0.04374009338507419],[109.35555320724521,-0.04353299962899523],[109.3553744572408,-0.04334217151313006],[109.35518761348527,-0.04315948400864796],[109.35500526973965,-0.042963234003939886],[109.3548354884937,-0.042752515246202216],[109.3546818791144,-0.04256712462387454],[109.35452378536775,-0.042380827746403296],[109.35434681660429,-0.04218457775050146],[109.35431448848381,-0.04214840587070115],[109.3542517137578,-0.04207834350964987],[109.353347075267,-0.043105218849610556],[109.35175946042835,-0.044535422834847266],[109.35193342151881,-0.04487510170995203],[109.35087495701238,-0.04606645834771445],[109.34954295376905,-0.04751183325128081],[109.3485814044353,-0.04896407822417487],[109.34727622990725,-0.05100467478763772],[109.34548918426675,-0.053022664678963764],[109.34177229675163,-0.057301053193673665],[109.33822989052751,-0.06131030726062607],[109.3350185978989,-0.06513216064808534],[109.3324355082375,-0.06818769289691332],[109.33040539270073,-0.07078409119737616],[109.32774600026451,-0.07481502560151726],[109.32463498212682,-0.07940820627817205],[109.32393840924078,-0.08043223156481946],[109.32389276289443,-0.08052549670981375]]]},"properties":{"Id":0,"Plan_Area":113026328.1,"Ket":"Pontianak Tenggara","Penduduk":49176}} +]} \ No newline at end of file diff --git a/chloropleth/index.html b/chloropleth/index.html new file mode 100644 index 0000000..05ecb6c --- /dev/null +++ b/chloropleth/index.html @@ -0,0 +1,175 @@ + + + + + + + + + Peta Choropleth - Leaflet + + + + + + + + + + +
+ + + + + + + diff --git a/chloropleth/us-states.js b/chloropleth/us-states.js new file mode 100644 index 0000000..7f6af2f --- /dev/null +++ b/chloropleth/us-states.js @@ -0,0 +1,54 @@ +var statesData = {"type":"FeatureCollection","features":[ +{"type":"Feature","id":"01","properties":{"name":"Alabama","density":94.65},"geometry":{"type":"Polygon","coordinates":[[[-87.359296,35.00118],[-85.606675,34.984749],[-85.431413,34.124869],[-85.184951,32.859696],[-85.069935,32.580372],[-84.960397,32.421541],[-85.004212,32.322956],[-84.889196,32.262709],[-85.058981,32.13674],[-85.053504,32.01077],[-85.141136,31.840985],[-85.042551,31.539753],[-85.113751,31.27686],[-85.004212,31.003013],[-85.497137,30.997536],[-87.600282,30.997536],[-87.633143,30.86609],[-87.408589,30.674397],[-87.446927,30.510088],[-87.37025,30.427934],[-87.518128,30.280057],[-87.655051,30.247195],[-87.90699,30.411504],[-87.934375,30.657966],[-88.011052,30.685351],[-88.10416,30.499135],[-88.137022,30.318396],[-88.394438,30.367688],[-88.471115,31.895754],[-88.241084,33.796253],[-88.098683,34.891641],[-88.202745,34.995703],[-87.359296,35.00118]]]}}, +{"type":"Feature","id":"02","properties":{"name":"Alaska","density":1.264},"geometry":{"type":"MultiPolygon","coordinates":[[[[-131.602021,55.117982],[-131.569159,55.28229],[-131.355558,55.183705],[-131.38842,55.01392],[-131.645836,55.035827],[-131.602021,55.117982]]],[[[-131.832052,55.42469],[-131.645836,55.304197],[-131.749898,55.128935],[-131.832052,55.189182],[-131.832052,55.42469]]],[[[-132.976733,56.437924],[-132.735747,56.459832],[-132.631685,56.421493],[-132.664547,56.273616],[-132.878148,56.240754],[-133.069841,56.333862],[-132.976733,56.437924]]],[[[-133.595627,56.350293],[-133.162949,56.317431],[-133.05341,56.125739],[-132.620732,55.912138],[-132.472854,55.780691],[-132.4619,55.671152],[-132.357838,55.649245],[-132.341408,55.506844],[-132.166146,55.364444],[-132.144238,55.238474],[-132.029222,55.276813],[-131.97993,55.178228],[-131.958022,54.789365],[-132.029222,54.701734],[-132.308546,54.718165],[-132.385223,54.915335],[-132.483808,54.898904],[-132.686455,55.046781],[-132.746701,54.997489],[-132.916486,55.046781],[-132.889102,54.898904],[-132.73027,54.937242],[-132.626209,54.882473],[-132.675501,54.679826],[-132.867194,54.701734],[-133.157472,54.95915],[-133.239626,55.090597],[-133.223195,55.22752],[-133.453227,55.216566],[-133.453227,55.320628],[-133.277964,55.331582],[-133.102702,55.42469],[-133.17938,55.588998],[-133.387503,55.62186],[-133.420365,55.884753],[-133.497042,56.0162],[-133.639442,55.923092],[-133.694212,56.070969],[-133.546335,56.142169],[-133.666827,56.311955],[-133.595627,56.350293]]],[[[-133.738027,55.556137],[-133.546335,55.490413],[-133.414888,55.572568],[-133.283441,55.534229],[-133.420365,55.386352],[-133.633966,55.430167],[-133.738027,55.556137]]],[[[-133.907813,56.930849],[-134.050213,57.029434],[-133.885905,57.095157],[-133.343688,57.002049],[-133.102702,57.007526],[-132.932917,56.82131],[-132.620732,56.667956],[-132.653593,56.55294],[-132.817901,56.492694],[-133.042456,56.520078],[-133.201287,56.448878],[-133.420365,56.492694],[-133.66135,56.448878],[-133.710643,56.684386],[-133.688735,56.837741],[-133.869474,56.843218],[-133.907813,56.930849]]],[[[-134.115936,56.48174],[-134.25286,56.558417],[-134.400737,56.722725],[-134.417168,56.848695],[-134.296675,56.908941],[-134.170706,56.848695],[-134.143321,56.952757],[-133.748981,56.772017],[-133.710643,56.596755],[-133.847566,56.574848],[-133.935197,56.377678],[-133.836612,56.322908],[-133.957105,56.092877],[-134.110459,56.142169],[-134.132367,55.999769],[-134.230952,56.070969],[-134.291198,56.350293],[-134.115936,56.48174]]],[[[-134.636246,56.28457],[-134.669107,56.169554],[-134.806031,56.235277],[-135.178463,56.67891],[-135.413971,56.810356],[-135.331817,56.914418],[-135.424925,57.166357],[-135.687818,57.369004],[-135.419448,57.566174],[-135.298955,57.48402],[-135.063447,57.418296],[-134.849846,57.407343],[-134.844369,57.248511],[-134.636246,56.728202],[-134.636246,56.28457]]],[[[-134.712923,58.223407],[-134.373353,58.14673],[-134.176183,58.157683],[-134.187137,58.081006],[-133.902336,57.807159],[-134.099505,57.850975],[-134.148798,57.757867],[-133.935197,57.615466],[-133.869474,57.363527],[-134.083075,57.297804],[-134.154275,57.210173],[-134.499322,57.029434],[-134.603384,57.034911],[-134.6472,57.226604],[-134.575999,57.341619],[-134.608861,57.511404],[-134.729354,57.719528],[-134.707446,57.829067],[-134.784123,58.097437],[-134.91557,58.212453],[-134.953908,58.409623],[-134.712923,58.223407]]],[[[-135.857603,57.330665],[-135.715203,57.330665],[-135.567326,57.149926],[-135.633049,57.023957],[-135.857603,56.996572],[-135.824742,57.193742],[-135.857603,57.330665]]],[[[-136.279328,58.206976],[-135.978096,58.201499],[-135.780926,58.28913],[-135.496125,58.168637],[-135.64948,58.037191],[-135.59471,57.987898],[-135.45231,58.135776],[-135.107263,58.086483],[-134.91557,57.976944],[-135.025108,57.779775],[-134.937477,57.763344],[-134.822462,57.500451],[-135.085355,57.462112],[-135.572802,57.675713],[-135.556372,57.456635],[-135.709726,57.369004],[-135.890465,57.407343],[-136.000004,57.544266],[-136.208128,57.637374],[-136.366959,57.829067],[-136.569606,57.916698],[-136.558652,58.075529],[-136.421728,58.130299],[-136.377913,58.267222],[-136.279328,58.206976]]],[[[-147.079854,60.200582],[-147.501579,59.948643],[-147.53444,59.850058],[-147.874011,59.784335],[-147.80281,59.937689],[-147.435855,60.09652],[-147.205824,60.271782],[-147.079854,60.200582]]],[[[-147.561825,60.578491],[-147.616594,60.370367],[-147.758995,60.156767],[-147.956165,60.227967],[-147.791856,60.474429],[-147.561825,60.578491]]],[[[-147.786379,70.245291],[-147.682318,70.201475],[-147.162008,70.15766],[-146.888161,70.185044],[-146.510252,70.185044],[-146.099482,70.146706],[-145.858496,70.168614],[-145.622988,70.08646],[-145.195787,69.993352],[-144.620708,69.971444],[-144.461877,70.026213],[-144.078491,70.059075],[-143.914183,70.130275],[-143.497935,70.141229],[-143.503412,70.091936],[-143.25695,70.119321],[-142.747594,70.042644],[-142.402547,69.916674],[-142.079408,69.856428],[-142.008207,69.801659],[-141.712453,69.790705],[-141.433129,69.697597],[-141.378359,69.63735],[-141.208574,69.686643],[-141.00045,69.648304],[-141.00045,60.304644],[-140.53491,60.22249],[-140.474664,60.310121],[-139.987216,60.184151],[-139.696939,60.342983],[-139.088998,60.359413],[-139.198537,60.091043],[-139.045183,59.997935],[-138.700135,59.910304],[-138.623458,59.767904],[-137.604747,59.242118],[-137.445916,58.908024],[-137.265177,59.001132],[-136.827022,59.159963],[-136.580559,59.16544],[-136.465544,59.285933],[-136.476498,59.466672],[-136.301236,59.466672],[-136.25742,59.625503],[-135.945234,59.663842],[-135.479694,59.800766],[-135.025108,59.565257],[-135.068924,59.422857],[-134.959385,59.280456],[-134.701969,59.247595],[-134.378829,59.033994],[-134.400737,58.973748],[-134.25286,58.858732],[-133.842089,58.727285],[-133.173903,58.152206],[-133.075318,57.998852],[-132.867194,57.845498],[-132.560485,57.505928],[-132.253777,57.21565],[-132.368792,57.095157],[-132.05113,57.051341],[-132.127807,56.876079],[-131.870391,56.804879],[-131.837529,56.602232],[-131.580113,56.613186],[-131.087188,56.405062],[-130.78048,56.366724],[-130.621648,56.268139],[-130.468294,56.240754],[-130.424478,56.142169],[-130.101339,56.114785],[-130.002754,55.994292],[-130.150631,55.769737],[-130.128724,55.583521],[-129.986323,55.276813],[-130.095862,55.200136],[-130.336847,54.920812],[-130.687372,54.718165],[-130.785957,54.822227],[-130.917403,54.789365],[-131.010511,54.997489],[-130.983126,55.08512],[-131.092665,55.189182],[-130.862634,55.298721],[-130.928357,55.337059],[-131.158389,55.200136],[-131.284358,55.287767],[-131.426759,55.238474],[-131.843006,55.457552],[-131.700606,55.698537],[-131.963499,55.616383],[-131.974453,55.49589],[-132.182576,55.588998],[-132.226392,55.704014],[-132.083991,55.829984],[-132.127807,55.955953],[-132.324977,55.851892],[-132.522147,56.076446],[-132.642639,56.032631],[-132.719317,56.218847],[-132.527624,56.339339],[-132.341408,56.339339],[-132.396177,56.487217],[-132.297592,56.67891],[-132.450946,56.673433],[-132.768609,56.837741],[-132.993164,57.034911],[-133.51895,57.177311],[-133.507996,57.577128],[-133.677781,57.62642],[-133.639442,57.790728],[-133.814705,57.834544],[-134.072121,58.053622],[-134.143321,58.168637],[-134.586953,58.206976],[-135.074401,58.502731],[-135.282525,59.192825],[-135.38111,59.033994],[-135.337294,58.891593],[-135.140124,58.617746],[-135.189417,58.573931],[-135.05797,58.349376],[-135.085355,58.201499],[-135.277048,58.234361],[-135.430402,58.398669],[-135.633049,58.426053],[-135.91785,58.382238],[-135.912373,58.617746],[-136.087635,58.814916],[-136.246466,58.75467],[-136.876314,58.962794],[-136.931084,58.902547],[-136.586036,58.836824],[-136.317666,58.672516],[-136.213604,58.667039],[-136.180743,58.535592],[-136.043819,58.382238],[-136.388867,58.294607],[-136.591513,58.349376],[-136.59699,58.212453],[-136.859883,58.316515],[-136.947514,58.393192],[-137.111823,58.393192],[-137.566409,58.590362],[-137.900502,58.765624],[-137.933364,58.869686],[-138.11958,59.02304],[-138.634412,59.132579],[-138.919213,59.247595],[-139.417615,59.379041],[-139.746231,59.505011],[-139.718846,59.641934],[-139.625738,59.598119],[-139.5162,59.68575],[-139.625738,59.88292],[-139.488815,59.992458],[-139.554538,60.041751],[-139.801,59.833627],[-140.315833,59.696704],[-140.92925,59.745996],[-141.444083,59.871966],[-141.46599,59.970551],[-141.706976,59.948643],[-141.964392,60.019843],[-142.539471,60.085566],[-142.873564,60.091043],[-143.623905,60.036274],[-143.892275,59.997935],[-144.231845,60.140336],[-144.65357,60.206059],[-144.785016,60.29369],[-144.834309,60.441568],[-145.124586,60.430614],[-145.223171,60.299167],[-145.738004,60.474429],[-145.820158,60.551106],[-146.351421,60.408706],[-146.608837,60.238921],[-146.718376,60.397752],[-146.608837,60.485383],[-146.455483,60.463475],[-145.951604,60.578491],[-146.017328,60.666122],[-146.252836,60.622307],[-146.345944,60.737322],[-146.565022,60.753753],[-146.784099,61.044031],[-146.866253,60.972831],[-147.172962,60.934492],[-147.271547,60.972831],[-147.375609,60.879723],[-147.758995,60.912584],[-147.775426,60.808523],[-148.032842,60.781138],[-148.153334,60.819476],[-148.065703,61.005692],[-148.175242,61.000215],[-148.350504,60.803046],[-148.109519,60.737322],[-148.087611,60.594922],[-147.939734,60.441568],[-148.027365,60.277259],[-148.219058,60.332029],[-148.273827,60.249875],[-148.087611,60.217013],[-147.983549,59.997935],[-148.251919,59.95412],[-148.399797,59.997935],[-148.635305,59.937689],[-148.755798,59.986981],[-149.067984,59.981505],[-149.05703,60.063659],[-149.204907,60.008889],[-149.287061,59.904827],[-149.418508,59.997935],[-149.582816,59.866489],[-149.511616,59.806242],[-149.741647,59.729565],[-149.949771,59.718611],[-150.031925,59.61455],[-150.25648,59.521442],[-150.409834,59.554303],[-150.579619,59.444764],[-150.716543,59.450241],[-151.001343,59.225687],[-151.308052,59.209256],[-151.406637,59.280456],[-151.592853,59.159963],[-151.976239,59.253071],[-151.888608,59.422857],[-151.636669,59.483103],[-151.47236,59.472149],[-151.423068,59.537872],[-151.127313,59.669319],[-151.116359,59.778858],[-151.505222,59.63098],[-151.828361,59.718611],[-151.8667,59.778858],[-151.702392,60.030797],[-151.423068,60.211536],[-151.379252,60.359413],[-151.297098,60.386798],[-151.264237,60.545629],[-151.406637,60.720892],[-151.06159,60.786615],[-150.404357,61.038554],[-150.245526,60.939969],[-150.042879,60.912584],[-149.741647,61.016646],[-150.075741,61.15357],[-150.207187,61.257632],[-150.47008,61.246678],[-150.656296,61.29597],[-150.711066,61.252155],[-151.023251,61.180954],[-151.165652,61.044031],[-151.477837,61.011169],[-151.800977,60.852338],[-151.833838,60.748276],[-152.080301,60.693507],[-152.13507,60.578491],[-152.310332,60.507291],[-152.392486,60.304644],[-152.732057,60.173197],[-152.567748,60.069136],[-152.704672,59.915781],[-153.022334,59.888397],[-153.049719,59.691227],[-153.345474,59.620026],[-153.438582,59.702181],[-153.586459,59.548826],[-153.761721,59.543349],[-153.72886,59.433811],[-154.117723,59.368087],[-154.1944,59.066856],[-153.750768,59.050425],[-153.400243,58.968271],[-153.301658,58.869686],[-153.444059,58.710854],[-153.679567,58.612269],[-153.898645,58.606793],[-153.920553,58.519161],[-154.062953,58.4863],[-153.99723,58.376761],[-154.145107,58.212453],[-154.46277,58.059098],[-154.643509,58.059098],[-154.818771,58.004329],[-154.988556,58.015283],[-155.120003,57.955037],[-155.081664,57.872883],[-155.328126,57.829067],[-155.377419,57.708574],[-155.547204,57.785251],[-155.73342,57.549743],[-156.045606,57.566174],[-156.023698,57.440204],[-156.209914,57.473066],[-156.34136,57.418296],[-156.34136,57.248511],[-156.549484,56.985618],[-156.883577,56.952757],[-157.157424,56.832264],[-157.20124,56.766541],[-157.376502,56.859649],[-157.672257,56.607709],[-157.754411,56.67891],[-157.918719,56.657002],[-157.957058,56.514601],[-158.126843,56.459832],[-158.32949,56.48174],[-158.488321,56.339339],[-158.208997,56.295524],[-158.510229,55.977861],[-159.375585,55.873799],[-159.616571,55.594475],[-159.676817,55.654722],[-159.643955,55.829984],[-159.813741,55.857368],[-160.027341,55.791645],[-160.060203,55.720445],[-160.394296,55.605429],[-160.536697,55.473983],[-160.580512,55.567091],[-160.668143,55.457552],[-160.865313,55.528752],[-161.232268,55.358967],[-161.506115,55.364444],[-161.467776,55.49589],[-161.588269,55.62186],[-161.697808,55.517798],[-161.686854,55.408259],[-162.053809,55.074166],[-162.179779,55.15632],[-162.218117,55.03035],[-162.470057,55.052258],[-162.508395,55.249428],[-162.661749,55.293244],[-162.716519,55.222043],[-162.579595,55.134412],[-162.645319,54.997489],[-162.847965,54.926289],[-163.00132,55.079643],[-163.187536,55.090597],[-163.220397,55.03035],[-163.034181,54.942719],[-163.373752,54.800319],[-163.14372,54.76198],[-163.138243,54.696257],[-163.329936,54.74555],[-163.587352,54.614103],[-164.085754,54.61958],[-164.332216,54.531949],[-164.354124,54.466226],[-164.638925,54.389548],[-164.847049,54.416933],[-164.918249,54.603149],[-164.710125,54.663395],[-164.551294,54.88795],[-164.34317,54.893427],[-163.894061,55.041304],[-163.532583,55.046781],[-163.39566,54.904381],[-163.291598,55.008443],[-163.313505,55.128935],[-163.105382,55.183705],[-162.880827,55.183705],[-162.579595,55.446598],[-162.245502,55.682106],[-161.807347,55.89023],[-161.292514,55.983338],[-161.078914,55.939523],[-160.87079,55.999769],[-160.816021,55.912138],[-160.931036,55.813553],[-160.805067,55.736876],[-160.766728,55.857368],[-160.509312,55.868322],[-160.438112,55.791645],[-160.27928,55.76426],[-160.273803,55.857368],[-160.536697,55.939523],[-160.558604,55.994292],[-160.383342,56.251708],[-160.147834,56.399586],[-159.830171,56.541986],[-159.326293,56.667956],[-158.959338,56.848695],[-158.784076,56.782971],[-158.641675,56.810356],[-158.701922,56.925372],[-158.658106,57.034911],[-158.378782,57.264942],[-157.995396,57.41282],[-157.688688,57.609989],[-157.705118,57.719528],[-157.458656,58.497254],[-157.07527,58.705377],[-157.119086,58.869686],[-158.039212,58.634177],[-158.32949,58.661562],[-158.40069,58.760147],[-158.564998,58.803962],[-158.619768,58.913501],[-158.767645,58.864209],[-158.860753,58.694424],[-158.701922,58.480823],[-158.893615,58.387715],[-159.0634,58.420577],[-159.392016,58.760147],[-159.616571,58.929932],[-159.731586,58.929932],[-159.808264,58.803962],[-159.906848,58.782055],[-160.054726,58.886116],[-160.235465,58.902547],[-160.317619,59.072332],[-160.854359,58.88064],[-161.33633,58.743716],[-161.374669,58.667039],[-161.752577,58.552023],[-161.938793,58.656085],[-161.769008,58.776578],[-161.829255,59.061379],[-161.955224,59.36261],[-161.703285,59.48858],[-161.911409,59.740519],[-162.092148,59.88292],[-162.234548,60.091043],[-162.448149,60.178674],[-162.502918,59.997935],[-162.760334,59.959597],[-163.171105,59.844581],[-163.66403,59.795289],[-163.9324,59.806242],[-164.162431,59.866489],[-164.189816,60.02532],[-164.386986,60.074613],[-164.699171,60.29369],[-164.962064,60.337506],[-165.268773,60.578491],[-165.060649,60.68803],[-165.016834,60.890677],[-165.175665,60.846861],[-165.197573,60.972831],[-165.120896,61.076893],[-165.323543,61.170001],[-165.34545,61.071416],[-165.591913,61.109754],[-165.624774,61.279539],[-165.816467,61.301447],[-165.920529,61.416463],[-165.915052,61.558863],[-166.106745,61.49314],[-166.139607,61.630064],[-165.904098,61.662925],[-166.095791,61.81628],[-165.756221,61.827233],[-165.756221,62.013449],[-165.674067,62.139419],[-165.044219,62.539236],[-164.912772,62.659728],[-164.819664,62.637821],[-164.874433,62.807606],[-164.633448,63.097884],[-164.425324,63.212899],[-164.036462,63.262192],[-163.73523,63.212899],[-163.313505,63.037637],[-163.039658,63.059545],[-162.661749,63.22933],[-162.272887,63.486746],[-162.075717,63.514131],[-162.026424,63.448408],[-161.555408,63.448408],[-161.13916,63.503177],[-160.766728,63.771547],[-160.766728,63.837271],[-160.952944,64.08921],[-160.974852,64.237087],[-161.26513,64.395918],[-161.374669,64.532842],[-161.078914,64.494503],[-160.79959,64.609519],[-160.783159,64.719058],[-161.144637,64.921705],[-161.413007,64.762873],[-161.664946,64.790258],[-161.900455,64.702627],[-162.168825,64.680719],[-162.234548,64.620473],[-162.541257,64.532842],[-162.634365,64.384965],[-162.787719,64.324718],[-162.858919,64.49998],[-163.045135,64.538319],[-163.176582,64.401395],[-163.253259,64.467119],[-163.598306,64.565704],[-164.304832,64.560227],[-164.80871,64.450688],[-165.000403,64.434257],[-165.411174,64.49998],[-166.188899,64.576658],[-166.391546,64.636904],[-166.484654,64.735489],[-166.413454,64.872412],[-166.692778,64.987428],[-166.638008,65.113398],[-166.462746,65.179121],[-166.517516,65.337952],[-166.796839,65.337952],[-167.026871,65.381768],[-167.47598,65.414629],[-167.711489,65.496784],[-168.072967,65.578938],[-168.105828,65.682999],[-167.541703,65.819923],[-166.829701,66.049954],[-166.3313,66.186878],[-166.046499,66.110201],[-165.756221,66.09377],[-165.690498,66.203309],[-165.86576,66.21974],[-165.88219,66.312848],[-165.186619,66.466202],[-164.403417,66.581218],[-163.981692,66.592172],[-163.751661,66.553833],[-163.872153,66.389525],[-163.828338,66.274509],[-163.915969,66.192355],[-163.768091,66.060908],[-163.494244,66.082816],[-163.149197,66.060908],[-162.749381,66.088293],[-162.634365,66.039001],[-162.371472,66.028047],[-162.14144,66.077339],[-161.840208,66.02257],[-161.549931,66.241647],[-161.341807,66.252601],[-161.199406,66.208786],[-161.128206,66.334755],[-161.528023,66.395002],[-161.911409,66.345709],[-161.87307,66.510017],[-162.174302,66.68528],[-162.502918,66.740049],[-162.601503,66.89888],[-162.344087,66.937219],[-162.015471,66.778388],[-162.075717,66.652418],[-161.916886,66.553833],[-161.571838,66.438817],[-161.489684,66.55931],[-161.884024,66.718141],[-161.714239,67.002942],[-161.851162,67.052235],[-162.240025,66.991988],[-162.639842,67.008419],[-162.700088,67.057712],[-162.902735,67.008419],[-163.740707,67.128912],[-163.757138,67.254881],[-164.009077,67.534205],[-164.211724,67.638267],[-164.534863,67.725898],[-165.192096,67.966884],[-165.493328,68.059992],[-165.794559,68.081899],[-166.243668,68.246208],[-166.681824,68.339316],[-166.703731,68.372177],[-166.375115,68.42147],[-166.227238,68.574824],[-166.216284,68.881533],[-165.329019,68.859625],[-164.255539,68.930825],[-163.976215,68.985595],[-163.532583,69.138949],[-163.110859,69.374457],[-163.023228,69.609966],[-162.842489,69.812613],[-162.470057,69.982398],[-162.311225,70.108367],[-161.851162,70.311014],[-161.779962,70.256245],[-161.396576,70.239814],[-160.837928,70.343876],[-160.487404,70.453415],[-159.649432,70.792985],[-159.33177,70.809416],[-159.298908,70.760123],[-158.975769,70.798462],[-158.658106,70.787508],[-158.033735,70.831323],[-157.420318,70.979201],[-156.812377,71.285909],[-156.565915,71.351633],[-156.522099,71.296863],[-155.585543,71.170894],[-155.508865,71.083263],[-155.832005,70.968247],[-155.979882,70.96277],[-155.974405,70.809416],[-155.503388,70.858708],[-155.476004,70.940862],[-155.262403,71.017539],[-155.191203,70.973724],[-155.032372,71.148986],[-154.566832,70.990155],[-154.643509,70.869662],[-154.353231,70.8368],[-154.183446,70.7656],[-153.931507,70.880616],[-153.487874,70.886093],[-153.235935,70.924431],[-152.589656,70.886093],[-152.26104,70.842277],[-152.419871,70.606769],[-151.817408,70.546523],[-151.773592,70.486276],[-151.187559,70.382214],[-151.182082,70.431507],[-150.760358,70.49723],[-150.355064,70.491753],[-150.349588,70.436984],[-150.114079,70.431507],[-149.867617,70.508184],[-149.462323,70.519138],[-149.177522,70.486276],[-148.78866,70.404122],[-148.607921,70.420553],[-148.350504,70.305537],[-148.202627,70.349353],[-147.961642,70.316491],[-147.786379,70.245291]]],[[[-152.94018,58.026237],[-152.945657,57.982421],[-153.290705,58.048145],[-153.044242,58.305561],[-152.819688,58.327469],[-152.666333,58.562977],[-152.496548,58.354853],[-152.354148,58.426053],[-152.080301,58.311038],[-152.080301,58.152206],[-152.480117,58.130299],[-152.655379,58.059098],[-152.94018,58.026237]]],[[[-153.958891,57.538789],[-153.67409,57.670236],[-153.931507,57.69762],[-153.936983,57.812636],[-153.723383,57.889313],[-153.570028,57.834544],[-153.548121,57.719528],[-153.46049,57.796205],[-153.455013,57.96599],[-153.268797,57.889313],[-153.235935,57.998852],[-153.071627,57.933129],[-152.874457,57.933129],[-152.721103,57.993375],[-152.469163,57.889313],[-152.469163,57.599035],[-152.151501,57.620943],[-152.359625,57.42925],[-152.74301,57.505928],[-152.60061,57.379958],[-152.710149,57.275896],[-152.907319,57.325188],[-152.912796,57.128019],[-153.214027,57.073249],[-153.312612,56.991095],[-153.498828,57.067772],[-153.695998,56.859649],[-153.849352,56.837741],[-154.013661,56.744633],[-154.073907,56.969187],[-154.303938,56.848695],[-154.314892,56.919895],[-154.523016,56.991095],[-154.539447,57.193742],[-154.742094,57.275896],[-154.627078,57.511404],[-154.227261,57.659282],[-153.980799,57.648328],[-153.958891,57.538789]]],[[[-154.53397,56.602232],[-154.742094,56.399586],[-154.807817,56.432447],[-154.53397,56.602232]]],[[[-155.634835,55.923092],[-155.476004,55.912138],[-155.530773,55.704014],[-155.793666,55.731399],[-155.837482,55.802599],[-155.634835,55.923092]]],[[[-159.890418,55.28229],[-159.950664,55.068689],[-160.257373,54.893427],[-160.109495,55.161797],[-160.005433,55.134412],[-159.890418,55.28229]]],[[[-160.520266,55.358967],[-160.33405,55.358967],[-160.339527,55.249428],[-160.525743,55.128935],[-160.690051,55.211089],[-160.794113,55.134412],[-160.854359,55.320628],[-160.79959,55.380875],[-160.520266,55.358967]]],[[[-162.256456,54.981058],[-162.234548,54.893427],[-162.349564,54.838658],[-162.437195,54.931766],[-162.256456,54.981058]]],[[[-162.415287,63.634624],[-162.563165,63.536039],[-162.612457,63.62367],[-162.415287,63.634624]]],[[[-162.80415,54.488133],[-162.590549,54.449795],[-162.612457,54.367641],[-162.782242,54.373118],[-162.80415,54.488133]]],[[[-165.548097,54.29644],[-165.476897,54.181425],[-165.630251,54.132132],[-165.685021,54.252625],[-165.548097,54.29644]]],[[[-165.73979,54.15404],[-166.046499,54.044501],[-166.112222,54.121178],[-165.980775,54.219763],[-165.73979,54.15404]]],[[[-166.364161,60.359413],[-166.13413,60.397752],[-166.084837,60.326552],[-165.88219,60.342983],[-165.685021,60.277259],[-165.646682,59.992458],[-165.750744,59.89935],[-166.00816,59.844581],[-166.062929,59.745996],[-166.440838,59.855535],[-166.6161,59.850058],[-166.994009,59.992458],[-167.125456,59.992458],[-167.344534,60.074613],[-167.421211,60.206059],[-167.311672,60.238921],[-166.93924,60.206059],[-166.763978,60.310121],[-166.577762,60.321075],[-166.495608,60.392275],[-166.364161,60.359413]]],[[[-166.375115,54.01164],[-166.210807,53.934962],[-166.5449,53.748746],[-166.539423,53.715885],[-166.117699,53.852808],[-166.112222,53.776131],[-166.282007,53.683023],[-166.555854,53.622777],[-166.583239,53.529669],[-166.878994,53.431084],[-167.13641,53.425607],[-167.306195,53.332499],[-167.623857,53.250345],[-167.793643,53.337976],[-167.459549,53.442038],[-167.355487,53.425607],[-167.103548,53.513238],[-167.163794,53.611823],[-167.021394,53.715885],[-166.807793,53.666592],[-166.785886,53.732316],[-167.015917,53.754223],[-167.141887,53.825424],[-167.032348,53.945916],[-166.643485,54.017116],[-166.561331,53.880193],[-166.375115,54.01164]]],[[[-168.790446,53.157237],[-168.40706,53.34893],[-168.385152,53.431084],[-168.237275,53.524192],[-168.007243,53.568007],[-167.886751,53.518715],[-167.842935,53.387268],[-168.270136,53.244868],[-168.500168,53.036744],[-168.686384,52.965544],[-168.790446,53.157237]]],[[[-169.74891,52.894344],[-169.705095,52.795759],[-169.962511,52.790282],[-169.989896,52.856005],[-169.74891,52.894344]]],[[[-170.148727,57.221127],[-170.28565,57.128019],[-170.313035,57.221127],[-170.148727,57.221127]]],[[[-170.669036,52.697174],[-170.603313,52.604066],[-170.789529,52.538343],[-170.816914,52.636928],[-170.669036,52.697174]]],[[[-171.742517,63.716778],[-170.94836,63.5689],[-170.488297,63.69487],[-170.280174,63.683916],[-170.093958,63.612716],[-170.044665,63.492223],[-169.644848,63.4265],[-169.518879,63.366254],[-168.99857,63.338869],[-168.686384,63.295053],[-168.856169,63.147176],[-169.108108,63.180038],[-169.376478,63.152653],[-169.513402,63.08693],[-169.639372,62.939052],[-169.831064,63.075976],[-170.055619,63.169084],[-170.263743,63.180038],[-170.362328,63.2841],[-170.866206,63.415546],[-171.101715,63.421023],[-171.463193,63.306007],[-171.73704,63.366254],[-171.852055,63.486746],[-171.742517,63.716778]]],[[[-172.432611,52.390465],[-172.41618,52.275449],[-172.607873,52.253542],[-172.569535,52.352127],[-172.432611,52.390465]]],[[[-173.626584,52.14948],[-173.495138,52.105664],[-173.122706,52.111141],[-173.106275,52.07828],[-173.549907,52.028987],[-173.626584,52.14948]]],[[[-174.322156,52.280926],[-174.327632,52.379511],[-174.185232,52.41785],[-173.982585,52.319265],[-174.059262,52.226157],[-174.179755,52.231634],[-174.141417,52.127572],[-174.333109,52.116618],[-174.738403,52.007079],[-174.968435,52.039941],[-174.902711,52.116618],[-174.656249,52.105664],[-174.322156,52.280926]]],[[[-176.469116,51.853725],[-176.288377,51.870156],[-176.288377,51.744186],[-176.518409,51.760617],[-176.80321,51.61274],[-176.912748,51.80991],[-176.792256,51.815386],[-176.775825,51.963264],[-176.627947,51.968741],[-176.627947,51.859202],[-176.469116,51.853725]]],[[[-177.153734,51.946833],[-177.044195,51.897541],[-177.120872,51.727755],[-177.274226,51.678463],[-177.279703,51.782525],[-177.153734,51.946833]]],[[[-178.123152,51.919448],[-177.953367,51.913971],[-177.800013,51.793479],[-177.964321,51.651078],[-178.123152,51.919448]]],[[[-187.107557,52.992929],[-187.293773,52.927205],[-187.304726,52.823143],[-188.90491,52.762897],[-188.642017,52.927205],[-188.642017,53.003883],[-187.107557,52.992929]]]]}}, +{"type":"Feature","id":"04","properties":{"name":"Arizona","density":57.05},"geometry":{"type":"Polygon","coordinates":[[[-109.042503,37.000263],[-109.04798,31.331629],[-111.074448,31.331629],[-112.246513,31.704061],[-114.815198,32.492741],[-114.72209,32.717295],[-114.524921,32.755634],[-114.470151,32.843265],[-114.524921,33.029481],[-114.661844,33.034958],[-114.727567,33.40739],[-114.524921,33.54979],[-114.497536,33.697668],[-114.535874,33.933176],[-114.415382,34.108438],[-114.256551,34.174162],[-114.136058,34.305608],[-114.333228,34.448009],[-114.470151,34.710902],[-114.634459,34.87521],[-114.634459,35.00118],[-114.574213,35.138103],[-114.596121,35.324319],[-114.678275,35.516012],[-114.738521,36.102045],[-114.371566,36.140383],[-114.251074,36.01989],[-114.152489,36.025367],[-114.048427,36.195153],[-114.048427,37.000263],[-110.499369,37.00574],[-109.042503,37.000263]]]}}, +{"type":"Feature","id":"05","properties":{"name":"Arkansas","density":56.43},"geometry":{"type":"Polygon","coordinates":[[[-94.473842,36.501861],[-90.152536,36.496384],[-90.064905,36.304691],[-90.218259,36.184199],[-90.377091,35.997983],[-89.730812,35.997983],[-89.763673,35.811767],[-89.911551,35.756997],[-89.944412,35.603643],[-90.130628,35.439335],[-90.114197,35.198349],[-90.212782,35.023087],[-90.311367,34.995703],[-90.251121,34.908072],[-90.409952,34.831394],[-90.481152,34.661609],[-90.585214,34.617794],[-90.568783,34.420624],[-90.749522,34.365854],[-90.744046,34.300131],[-90.952169,34.135823],[-90.891923,34.026284],[-91.072662,33.867453],[-91.231493,33.560744],[-91.056231,33.429298],[-91.143862,33.347144],[-91.089093,33.13902],[-91.16577,33.002096],[-93.608485,33.018527],[-94.041164,33.018527],[-94.041164,33.54979],[-94.183564,33.593606],[-94.380734,33.544313],[-94.484796,33.637421],[-94.430026,35.395519],[-94.616242,36.501861],[-94.473842,36.501861]]]}}, +{"type":"Feature","id":"06","properties":{"name":"California","density":241.7},"geometry":{"type":"Polygon","coordinates":[[[-123.233256,42.006186],[-122.378853,42.011663],[-121.037003,41.995232],[-120.001861,41.995232],[-119.996384,40.264519],[-120.001861,38.999346],[-118.71478,38.101128],[-117.498899,37.21934],[-116.540435,36.501861],[-115.85034,35.970598],[-114.634459,35.00118],[-114.634459,34.87521],[-114.470151,34.710902],[-114.333228,34.448009],[-114.136058,34.305608],[-114.256551,34.174162],[-114.415382,34.108438],[-114.535874,33.933176],[-114.497536,33.697668],[-114.524921,33.54979],[-114.727567,33.40739],[-114.661844,33.034958],[-114.524921,33.029481],[-114.470151,32.843265],[-114.524921,32.755634],[-114.72209,32.717295],[-116.04751,32.624187],[-117.126467,32.536556],[-117.24696,32.668003],[-117.252437,32.876127],[-117.329114,33.122589],[-117.471515,33.297851],[-117.7837,33.538836],[-118.183517,33.763391],[-118.260194,33.703145],[-118.413548,33.741483],[-118.391641,33.840068],[-118.566903,34.042715],[-118.802411,33.998899],[-119.218659,34.146777],[-119.278905,34.26727],[-119.558229,34.415147],[-119.875891,34.40967],[-120.138784,34.475393],[-120.472878,34.448009],[-120.64814,34.579455],[-120.609801,34.858779],[-120.670048,34.902595],[-120.631709,35.099764],[-120.894602,35.247642],[-120.905556,35.450289],[-121.004141,35.461243],[-121.168449,35.636505],[-121.283465,35.674843],[-121.332757,35.784382],[-121.716143,36.195153],[-121.896882,36.315645],[-121.935221,36.638785],[-121.858544,36.6114],[-121.787344,36.803093],[-121.929744,36.978355],[-122.105006,36.956447],[-122.335038,37.115279],[-122.417192,37.241248],[-122.400761,37.361741],[-122.515777,37.520572],[-122.515777,37.783465],[-122.329561,37.783465],[-122.406238,38.15042],[-122.488392,38.112082],[-122.504823,37.931343],[-122.701993,37.893004],[-122.937501,38.029928],[-122.97584,38.265436],[-123.129194,38.451652],[-123.331841,38.566668],[-123.44138,38.698114],[-123.737134,38.95553],[-123.687842,39.032208],[-123.824765,39.366301],[-123.764519,39.552517],[-123.85215,39.831841],[-124.109566,40.105688],[-124.361506,40.259042],[-124.410798,40.439781],[-124.158859,40.877937],[-124.109566,41.025814],[-124.158859,41.14083],[-124.065751,41.442061],[-124.147905,41.715908],[-124.257444,41.781632],[-124.213628,42.000709],[-123.233256,42.006186]]]}}, +{"type":"Feature","id":"08","properties":{"name":"Colorado","density":49.33},"geometry":{"type":"Polygon","coordinates":[[[-107.919731,41.003906],[-105.728954,40.998429],[-104.053011,41.003906],[-102.053927,41.003906],[-102.053927,40.001626],[-102.042974,36.994786],[-103.001438,37.000263],[-104.337812,36.994786],[-106.868158,36.994786],[-107.421329,37.000263],[-109.042503,37.000263],[-109.042503,38.166851],[-109.058934,38.27639],[-109.053457,39.125316],[-109.04798,40.998429],[-107.919731,41.003906]]]}}, +{"type":"Feature","id":"09","properties":{"name":"Connecticut","density":739.1},"geometry":{"type":"Polygon","coordinates":[[[-73.053528,42.039048],[-71.799309,42.022617],[-71.799309,42.006186],[-71.799309,41.414677],[-71.859555,41.321569],[-71.947186,41.338],[-72.385341,41.261322],[-72.905651,41.28323],[-73.130205,41.146307],[-73.371191,41.102491],[-73.655992,40.987475],[-73.727192,41.102491],[-73.48073,41.21203],[-73.55193,41.294184],[-73.486206,42.050002],[-73.053528,42.039048]]]}}, +{"type":"Feature","id":"10","properties":{"name":"Delaware","density":464.3},"geometry":{"type":"Polygon","coordinates":[[[-75.414089,39.804456],[-75.507197,39.683964],[-75.611259,39.61824],[-75.589352,39.459409],[-75.441474,39.311532],[-75.403136,39.065069],[-75.189535,38.807653],[-75.09095,38.796699],[-75.047134,38.451652],[-75.693413,38.462606],[-75.786521,39.722302],[-75.616736,39.831841],[-75.414089,39.804456]]]}}, +{"type":"Feature","id":"11","properties":{"name":"District of Columbia","density":10065},"geometry":{"type":"Polygon","coordinates":[[[-77.035264,38.993869],[-76.909294,38.895284],[-77.040741,38.791222],[-77.117418,38.933623],[-77.035264,38.993869]]]}}, +{"type":"Feature","id":"12","properties":{"name":"Florida","density":353.4},"geometry":{"type":"Polygon","coordinates":[[[-85.497137,30.997536],[-85.004212,31.003013],[-84.867289,30.712735],[-83.498053,30.647012],[-82.216449,30.570335],[-82.167157,30.356734],[-82.046664,30.362211],[-82.002849,30.564858],[-82.041187,30.751074],[-81.948079,30.827751],[-81.718048,30.745597],[-81.444201,30.707258],[-81.383954,30.27458],[-81.257985,29.787132],[-80.967707,29.14633],[-80.524075,28.461713],[-80.589798,28.41242],[-80.56789,28.094758],[-80.381674,27.738757],[-80.091397,27.021277],[-80.03115,26.796723],[-80.036627,26.566691],[-80.146166,25.739673],[-80.239274,25.723243],[-80.337859,25.465826],[-80.304997,25.383672],[-80.49669,25.197456],[-80.573367,25.241272],[-80.759583,25.164595],[-81.077246,25.120779],[-81.170354,25.224841],[-81.126538,25.378195],[-81.351093,25.821827],[-81.526355,25.903982],[-81.679709,25.843735],[-81.800202,26.090198],[-81.833064,26.292844],[-82.041187,26.517399],[-82.09048,26.665276],[-82.057618,26.878877],[-82.172634,26.917216],[-82.145249,26.791246],[-82.249311,26.758384],[-82.566974,27.300601],[-82.692943,27.437525],[-82.391711,27.837342],[-82.588881,27.815434],[-82.720328,27.689464],[-82.851774,27.886634],[-82.676512,28.434328],[-82.643651,28.888914],[-82.764143,28.998453],[-82.802482,29.14633],[-82.994175,29.179192],[-83.218729,29.420177],[-83.399469,29.518762],[-83.410422,29.66664],[-83.536392,29.721409],[-83.640454,29.885717],[-84.02384,30.104795],[-84.357933,30.055502],[-84.341502,29.902148],[-84.451041,29.929533],[-84.867289,29.743317],[-85.310921,29.699501],[-85.299967,29.80904],[-85.404029,29.940487],[-85.924338,30.236241],[-86.29677,30.362211],[-86.630863,30.395073],[-86.910187,30.373165],[-87.518128,30.280057],[-87.37025,30.427934],[-87.446927,30.510088],[-87.408589,30.674397],[-87.633143,30.86609],[-87.600282,30.997536],[-85.497137,30.997536]]]}}, +{"type":"Feature","id":"13","properties":{"name":"Georgia","density":169.5},"geometry":{"type":"Polygon","coordinates":[[[-83.109191,35.00118],[-83.322791,34.787579],[-83.339222,34.683517],[-83.005129,34.469916],[-82.901067,34.486347],[-82.747713,34.26727],[-82.714851,34.152254],[-82.55602,33.94413],[-82.325988,33.81816],[-82.194542,33.631944],[-81.926172,33.462159],[-81.937125,33.347144],[-81.761863,33.160928],[-81.493493,33.007573],[-81.42777,32.843265],[-81.416816,32.629664],[-81.279893,32.558464],[-81.121061,32.290094],[-81.115584,32.120309],[-80.885553,32.032678],[-81.132015,31.693108],[-81.175831,31.517845],[-81.279893,31.364491],[-81.290846,31.20566],[-81.400385,31.13446],[-81.444201,30.707258],[-81.718048,30.745597],[-81.948079,30.827751],[-82.041187,30.751074],[-82.002849,30.564858],[-82.046664,30.362211],[-82.167157,30.356734],[-82.216449,30.570335],[-83.498053,30.647012],[-84.867289,30.712735],[-85.004212,31.003013],[-85.113751,31.27686],[-85.042551,31.539753],[-85.141136,31.840985],[-85.053504,32.01077],[-85.058981,32.13674],[-84.889196,32.262709],[-85.004212,32.322956],[-84.960397,32.421541],[-85.069935,32.580372],[-85.184951,32.859696],[-85.431413,34.124869],[-85.606675,34.984749],[-84.319594,34.990226],[-83.618546,34.984749],[-83.109191,35.00118]]]}}, +{"type":"Feature","id":"15","properties":{"name":"Hawaii","density":214.1},"geometry":{"type":"MultiPolygon","coordinates":[[[[-155.634835,18.948267],[-155.881297,19.035898],[-155.919636,19.123529],[-155.886774,19.348084],[-156.062036,19.73147],[-155.925113,19.857439],[-155.826528,20.032702],[-155.897728,20.147717],[-155.87582,20.26821],[-155.596496,20.12581],[-155.284311,20.021748],[-155.092618,19.868393],[-155.092618,19.736947],[-154.807817,19.523346],[-154.983079,19.348084],[-155.295265,19.26593],[-155.514342,19.134483],[-155.634835,18.948267]]],[[[-156.587823,21.029505],[-156.472807,20.892581],[-156.324929,20.952827],[-156.00179,20.793996],[-156.051082,20.651596],[-156.379699,20.580396],[-156.445422,20.60778],[-156.461853,20.783042],[-156.631638,20.821381],[-156.697361,20.919966],[-156.587823,21.029505]]],[[[-156.982162,21.210244],[-157.080747,21.106182],[-157.310779,21.106182],[-157.239579,21.221198],[-156.982162,21.210244]]],[[[-157.951581,21.697691],[-157.842042,21.462183],[-157.896811,21.325259],[-158.110412,21.303352],[-158.252813,21.582676],[-158.126843,21.588153],[-157.951581,21.697691]]],[[[-159.468693,22.228955],[-159.353678,22.218001],[-159.298908,22.113939],[-159.33177,21.966061],[-159.446786,21.872953],[-159.764448,21.987969],[-159.726109,22.152277],[-159.468693,22.228955]]]]}}, +{"type":"Feature","id":"16","properties":{"name":"Idaho","density":19.15},"geometry":{"type":"Polygon","coordinates":[[[-116.04751,49.000239],[-116.04751,47.976051],[-115.724371,47.696727],[-115.718894,47.42288],[-115.527201,47.302388],[-115.324554,47.258572],[-115.302646,47.187372],[-114.930214,46.919002],[-114.886399,46.809463],[-114.623506,46.705401],[-114.612552,46.639678],[-114.322274,46.645155],[-114.464674,46.272723],[-114.492059,46.037214],[-114.387997,45.88386],[-114.568736,45.774321],[-114.497536,45.670259],[-114.546828,45.560721],[-114.333228,45.456659],[-114.086765,45.593582],[-113.98818,45.703121],[-113.807441,45.604536],[-113.834826,45.522382],[-113.736241,45.330689],[-113.571933,45.128042],[-113.45144,45.056842],[-113.456917,44.865149],[-113.341901,44.782995],[-113.133778,44.772041],[-113.002331,44.448902],[-112.887315,44.394132],[-112.783254,44.48724],[-112.471068,44.481763],[-112.241036,44.569394],[-112.104113,44.520102],[-111.868605,44.563917],[-111.819312,44.509148],[-111.616665,44.547487],[-111.386634,44.75561],[-111.227803,44.580348],[-111.047063,44.476286],[-111.047063,42.000709],[-112.164359,41.995232],[-114.04295,41.995232],[-117.027882,42.000709],[-117.027882,43.830007],[-116.896436,44.158624],[-116.97859,44.240778],[-117.170283,44.257209],[-117.241483,44.394132],[-117.038836,44.750133],[-116.934774,44.782995],[-116.830713,44.930872],[-116.847143,45.02398],[-116.732128,45.144473],[-116.671881,45.319735],[-116.463758,45.61549],[-116.545912,45.752413],[-116.78142,45.823614],[-116.918344,45.993399],[-116.92382,46.168661],[-117.055267,46.343923],[-117.038836,46.426077],[-117.044313,47.762451],[-117.033359,49.000239],[-116.04751,49.000239]]]}}, +{"type":"Feature","id":"17","properties":{"name":"Illinois","density":231.5},"geometry":{"type":"Polygon","coordinates":[[[-90.639984,42.510065],[-88.788778,42.493634],[-87.802929,42.493634],[-87.83579,42.301941],[-87.682436,42.077386],[-87.523605,41.710431],[-87.529082,39.34987],[-87.63862,39.169131],[-87.512651,38.95553],[-87.49622,38.780268],[-87.62219,38.637868],[-87.655051,38.506421],[-87.83579,38.292821],[-87.950806,38.27639],[-87.923421,38.15042],[-88.000098,38.101128],[-88.060345,37.865619],[-88.027483,37.799896],[-88.15893,37.657496],[-88.065822,37.482234],[-88.476592,37.389126],[-88.514931,37.285064],[-88.421823,37.153617],[-88.547792,37.071463],[-88.914747,37.224817],[-89.029763,37.213863],[-89.183118,37.038601],[-89.133825,36.983832],[-89.292656,36.994786],[-89.517211,37.279587],[-89.435057,37.34531],[-89.517211,37.537003],[-89.517211,37.690357],[-89.84035,37.903958],[-89.949889,37.88205],[-90.059428,38.013497],[-90.355183,38.216144],[-90.349706,38.374975],[-90.179921,38.632391],[-90.207305,38.725499],[-90.10872,38.845992],[-90.251121,38.917192],[-90.470199,38.961007],[-90.585214,38.867899],[-90.661891,38.928146],[-90.727615,39.256762],[-91.061708,39.470363],[-91.368417,39.727779],[-91.494386,40.034488],[-91.50534,40.237135],[-91.417709,40.379535],[-91.401278,40.560274],[-91.121954,40.669813],[-91.09457,40.823167],[-90.963123,40.921752],[-90.946692,41.097014],[-91.111001,41.239415],[-91.045277,41.414677],[-90.656414,41.463969],[-90.344229,41.589939],[-90.311367,41.743293],[-90.179921,41.809016],[-90.141582,42.000709],[-90.168967,42.126679],[-90.393521,42.225264],[-90.420906,42.329326],[-90.639984,42.510065]]]}}, +{"type":"Feature","id":"18","properties":{"name":"Indiana","density":181.7},"geometry":{"type":"Polygon","coordinates":[[[-85.990061,41.759724],[-84.807042,41.759724],[-84.807042,41.694001],[-84.801565,40.500028],[-84.817996,39.103408],[-84.894673,39.059592],[-84.812519,38.785745],[-84.987781,38.780268],[-85.173997,38.68716],[-85.431413,38.730976],[-85.42046,38.533806],[-85.590245,38.451652],[-85.655968,38.325682],[-85.83123,38.27639],[-85.924338,38.024451],[-86.039354,37.958727],[-86.263908,38.051835],[-86.302247,38.166851],[-86.521325,38.040881],[-86.504894,37.931343],[-86.729448,37.893004],[-86.795172,37.991589],[-87.047111,37.893004],[-87.129265,37.788942],[-87.381204,37.93682],[-87.512651,37.903958],[-87.600282,37.975158],[-87.682436,37.903958],[-87.934375,37.893004],[-88.027483,37.799896],[-88.060345,37.865619],[-88.000098,38.101128],[-87.923421,38.15042],[-87.950806,38.27639],[-87.83579,38.292821],[-87.655051,38.506421],[-87.62219,38.637868],[-87.49622,38.780268],[-87.512651,38.95553],[-87.63862,39.169131],[-87.529082,39.34987],[-87.523605,41.710431],[-87.42502,41.644708],[-87.118311,41.644708],[-86.822556,41.759724],[-85.990061,41.759724]]]}}, +{"type":"Feature","id":"19","properties":{"name":"Iowa","density":54.81},"geometry":{"type":"Polygon","coordinates":[[[-91.368417,43.501391],[-91.215062,43.501391],[-91.204109,43.353514],[-91.056231,43.254929],[-91.176724,43.134436],[-91.143862,42.909881],[-91.067185,42.75105],[-90.711184,42.636034],[-90.639984,42.510065],[-90.420906,42.329326],[-90.393521,42.225264],[-90.168967,42.126679],[-90.141582,42.000709],[-90.179921,41.809016],[-90.311367,41.743293],[-90.344229,41.589939],[-90.656414,41.463969],[-91.045277,41.414677],[-91.111001,41.239415],[-90.946692,41.097014],[-90.963123,40.921752],[-91.09457,40.823167],[-91.121954,40.669813],[-91.401278,40.560274],[-91.417709,40.379535],[-91.527248,40.412397],[-91.729895,40.615043],[-91.833957,40.609566],[-93.257961,40.582182],[-94.632673,40.571228],[-95.7664,40.587659],[-95.881416,40.719105],[-95.826646,40.976521],[-95.925231,41.201076],[-95.919754,41.453015],[-96.095016,41.540646],[-96.122401,41.67757],[-96.062155,41.798063],[-96.127878,41.973325],[-96.264801,42.039048],[-96.44554,42.488157],[-96.631756,42.707235],[-96.544125,42.855112],[-96.511264,43.052282],[-96.434587,43.123482],[-96.560556,43.222067],[-96.527695,43.397329],[-96.582464,43.479483],[-96.451017,43.501391],[-91.368417,43.501391]]]}}, +{"type":"Feature","id":"20","properties":{"name":"Kansas","density":35.09},"geometry":{"type":"Polygon","coordinates":[[[-101.90605,40.001626],[-95.306337,40.001626],[-95.207752,39.908518],[-94.884612,39.831841],[-95.109167,39.541563],[-94.983197,39.442978],[-94.824366,39.20747],[-94.610765,39.158177],[-94.616242,37.000263],[-100.087706,37.000263],[-102.042974,36.994786],[-102.053927,40.001626],[-101.90605,40.001626]]]}}, +{"type":"Feature","id":"21","properties":{"name":"Kentucky","density":110},"geometry":{"type":"Polygon","coordinates":[[[-83.903347,38.769315],[-83.678792,38.632391],[-83.519961,38.703591],[-83.142052,38.626914],[-83.032514,38.725499],[-82.890113,38.758361],[-82.846298,38.588575],[-82.731282,38.561191],[-82.594358,38.424267],[-82.621743,38.123036],[-82.50125,37.931343],[-82.342419,37.783465],[-82.293127,37.668449],[-82.101434,37.553434],[-81.969987,37.537003],[-82.353373,37.268633],[-82.720328,37.120755],[-82.720328,37.044078],[-82.868205,36.978355],[-82.879159,36.890724],[-83.070852,36.852385],[-83.136575,36.742847],[-83.673316,36.600446],[-83.689746,36.584015],[-84.544149,36.594969],[-85.289013,36.627831],[-85.486183,36.616877],[-86.592525,36.655216],[-87.852221,36.633308],[-88.071299,36.677123],[-88.054868,36.496384],[-89.298133,36.507338],[-89.418626,36.496384],[-89.363857,36.622354],[-89.215979,36.578538],[-89.133825,36.983832],[-89.183118,37.038601],[-89.029763,37.213863],[-88.914747,37.224817],[-88.547792,37.071463],[-88.421823,37.153617],[-88.514931,37.285064],[-88.476592,37.389126],[-88.065822,37.482234],[-88.15893,37.657496],[-88.027483,37.799896],[-87.934375,37.893004],[-87.682436,37.903958],[-87.600282,37.975158],[-87.512651,37.903958],[-87.381204,37.93682],[-87.129265,37.788942],[-87.047111,37.893004],[-86.795172,37.991589],[-86.729448,37.893004],[-86.504894,37.931343],[-86.521325,38.040881],[-86.302247,38.166851],[-86.263908,38.051835],[-86.039354,37.958727],[-85.924338,38.024451],[-85.83123,38.27639],[-85.655968,38.325682],[-85.590245,38.451652],[-85.42046,38.533806],[-85.431413,38.730976],[-85.173997,38.68716],[-84.987781,38.780268],[-84.812519,38.785745],[-84.894673,39.059592],[-84.817996,39.103408],[-84.43461,39.103408],[-84.231963,38.895284],[-84.215533,38.807653],[-83.903347,38.769315]]]}}, +{"type":"Feature","id":"22","properties":{"name":"Louisiana","density":105},"geometry":{"type":"Polygon","coordinates":[[[-93.608485,33.018527],[-91.16577,33.002096],[-91.072662,32.887081],[-91.143862,32.843265],[-91.154816,32.640618],[-91.006939,32.514649],[-90.985031,32.218894],[-91.105524,31.988862],[-91.341032,31.846462],[-91.401278,31.621907],[-91.499863,31.643815],[-91.516294,31.27686],[-91.636787,31.265906],[-91.565587,31.068736],[-91.636787,30.997536],[-89.747242,30.997536],[-89.845827,30.66892],[-89.681519,30.449842],[-89.643181,30.285534],[-89.522688,30.181472],[-89.818443,30.044549],[-89.84035,29.945964],[-89.599365,29.88024],[-89.495303,30.039072],[-89.287179,29.88024],[-89.30361,29.754271],[-89.424103,29.699501],[-89.648657,29.748794],[-89.621273,29.655686],[-89.69795,29.513285],[-89.506257,29.387316],[-89.199548,29.348977],[-89.09001,29.2011],[-89.002379,29.179192],[-89.16121,29.009407],[-89.336472,29.042268],[-89.484349,29.217531],[-89.851304,29.310638],[-89.851304,29.480424],[-90.032043,29.425654],[-90.021089,29.283254],[-90.103244,29.151807],[-90.23469,29.129899],[-90.333275,29.277777],[-90.563307,29.283254],[-90.645461,29.129899],[-90.798815,29.086084],[-90.963123,29.179192],[-91.09457,29.190146],[-91.220539,29.436608],[-91.445094,29.546147],[-91.532725,29.529716],[-91.620356,29.73784],[-91.883249,29.710455],[-91.888726,29.836425],[-92.146142,29.715932],[-92.113281,29.622824],[-92.31045,29.535193],[-92.617159,29.579009],[-92.97316,29.715932],[-93.2251,29.776178],[-93.767317,29.726886],[-93.838517,29.688547],[-93.926148,29.787132],[-93.690639,30.143133],[-93.767317,30.334826],[-93.696116,30.438888],[-93.728978,30.575812],[-93.630393,30.679874],[-93.526331,30.93729],[-93.542762,31.15089],[-93.816609,31.556184],[-93.822086,31.775262],[-94.041164,31.994339],[-94.041164,33.018527],[-93.608485,33.018527]]]}}, +{"type":"Feature","id":"23","properties":{"name":"Maine","density":43.04},"geometry":{"type":"Polygon","coordinates":[[[-70.703921,43.057759],[-70.824413,43.128959],[-70.807983,43.227544],[-70.966814,43.34256],[-71.032537,44.657025],[-71.08183,45.303304],[-70.649151,45.440228],[-70.720352,45.511428],[-70.556043,45.664782],[-70.386258,45.735983],[-70.41912,45.796229],[-70.260289,45.889337],[-70.309581,46.064599],[-70.210996,46.327492],[-70.057642,46.415123],[-69.997395,46.694447],[-69.225147,47.461219],[-69.044408,47.428357],[-69.033454,47.242141],[-68.902007,47.176418],[-68.578868,47.285957],[-68.376221,47.285957],[-68.233821,47.357157],[-67.954497,47.198326],[-67.790188,47.066879],[-67.779235,45.944106],[-67.801142,45.675736],[-67.456095,45.604536],[-67.505388,45.48952],[-67.417757,45.379982],[-67.488957,45.281397],[-67.346556,45.128042],[-67.16034,45.160904],[-66.979601,44.804903],[-67.187725,44.646072],[-67.308218,44.706318],[-67.406803,44.596779],[-67.549203,44.624164],[-67.565634,44.531056],[-67.75185,44.54201],[-68.047605,44.328409],[-68.118805,44.476286],[-68.222867,44.48724],[-68.173574,44.328409],[-68.403606,44.251732],[-68.458375,44.377701],[-68.567914,44.311978],[-68.82533,44.311978],[-68.830807,44.459856],[-68.984161,44.426994],[-68.956777,44.322932],[-69.099177,44.103854],[-69.071793,44.043608],[-69.258008,43.923115],[-69.444224,43.966931],[-69.553763,43.840961],[-69.707118,43.82453],[-69.833087,43.720469],[-69.986442,43.742376],[-70.030257,43.851915],[-70.254812,43.676653],[-70.194565,43.567114],[-70.358873,43.528776],[-70.369827,43.435668],[-70.556043,43.320652],[-70.703921,43.057759]]]}}, +{"type":"Feature","id":"24","properties":{"name":"Maryland","density":596.3},"geometry":{"type":"MultiPolygon","coordinates":[[[[-75.994645,37.95325],[-76.016553,37.95325],[-76.043938,37.95325],[-75.994645,37.95325]]],[[[-79.477979,39.722302],[-75.786521,39.722302],[-75.693413,38.462606],[-75.047134,38.451652],[-75.244304,38.029928],[-75.397659,38.013497],[-75.671506,37.95325],[-75.885106,37.909435],[-75.879629,38.073743],[-75.961783,38.139466],[-75.846768,38.210667],[-76.000122,38.374975],[-76.049415,38.303775],[-76.257538,38.320205],[-76.328738,38.500944],[-76.263015,38.500944],[-76.257538,38.736453],[-76.191815,38.829561],[-76.279446,39.147223],[-76.169907,39.333439],[-76.000122,39.366301],[-75.972737,39.557994],[-76.098707,39.536086],[-76.104184,39.437501],[-76.367077,39.311532],[-76.443754,39.196516],[-76.460185,38.906238],[-76.55877,38.769315],[-76.514954,38.539283],[-76.383508,38.380452],[-76.399939,38.259959],[-76.317785,38.139466],[-76.3616,38.057312],[-76.591632,38.216144],[-76.920248,38.292821],[-77.018833,38.446175],[-77.205049,38.358544],[-77.276249,38.479037],[-77.128372,38.632391],[-77.040741,38.791222],[-76.909294,38.895284],[-77.035264,38.993869],[-77.117418,38.933623],[-77.248864,39.026731],[-77.456988,39.076023],[-77.456988,39.223901],[-77.566527,39.306055],[-77.719881,39.322485],[-77.834897,39.601809],[-78.004682,39.601809],[-78.174467,39.694917],[-78.267575,39.61824],[-78.431884,39.623717],[-78.470222,39.514178],[-78.765977,39.585379],[-78.963147,39.437501],[-79.094593,39.470363],[-79.291763,39.300578],[-79.488933,39.20747],[-79.477979,39.722302]]]]}}, +{"type":"Feature","id":"25","properties":{"name":"Massachusetts","density":840.2},"geometry":{"type":"Polygon","coordinates":[[[-70.917521,42.887974],[-70.818936,42.871543],[-70.780598,42.696281],[-70.824413,42.55388],[-70.983245,42.422434],[-70.988722,42.269079],[-70.769644,42.247172],[-70.638197,42.08834],[-70.660105,41.962371],[-70.550566,41.929509],[-70.539613,41.814493],[-70.260289,41.715908],[-69.937149,41.809016],[-70.008349,41.672093],[-70.484843,41.5516],[-70.660105,41.546123],[-70.764167,41.639231],[-70.928475,41.611847],[-70.933952,41.540646],[-71.120168,41.496831],[-71.196845,41.67757],[-71.22423,41.710431],[-71.328292,41.781632],[-71.383061,42.01714],[-71.530939,42.01714],[-71.799309,42.006186],[-71.799309,42.022617],[-73.053528,42.039048],[-73.486206,42.050002],[-73.508114,42.08834],[-73.267129,42.745573],[-72.456542,42.729142],[-71.29543,42.696281],[-71.185891,42.789389],[-70.917521,42.887974]]]}}, +{"type":"Feature","id":"26","properties":{"name":"Michigan","density":173.9},"geometry":{"type":"MultiPolygon","coordinates":[[[[-83.454238,41.732339],[-84.807042,41.694001],[-84.807042,41.759724],[-85.990061,41.759724],[-86.822556,41.759724],[-86.619909,41.891171],[-86.482986,42.115725],[-86.357016,42.252649],[-86.263908,42.444341],[-86.209139,42.718189],[-86.231047,43.013943],[-86.526801,43.594499],[-86.433693,43.813577],[-86.499417,44.07647],[-86.269385,44.34484],[-86.220093,44.569394],[-86.252954,44.689887],[-86.088646,44.73918],[-86.066738,44.903488],[-85.809322,44.947303],[-85.612152,45.128042],[-85.628583,44.766564],[-85.524521,44.750133],[-85.393075,44.930872],[-85.387598,45.237581],[-85.305444,45.314258],[-85.031597,45.363551],[-85.119228,45.577151],[-84.938489,45.75789],[-84.713934,45.768844],[-84.461995,45.653829],[-84.215533,45.637398],[-84.09504,45.494997],[-83.908824,45.484043],[-83.596638,45.352597],[-83.4871,45.358074],[-83.317314,45.144473],[-83.454238,45.029457],[-83.322791,44.88158],[-83.273499,44.711795],[-83.333745,44.339363],[-83.536392,44.246255],[-83.585684,44.054562],[-83.82667,43.988839],[-83.958116,43.758807],[-83.908824,43.671176],[-83.667839,43.589022],[-83.481623,43.714992],[-83.262545,43.972408],[-82.917498,44.070993],[-82.747713,43.994316],[-82.643651,43.851915],[-82.539589,43.435668],[-82.523158,43.227544],[-82.413619,42.975605],[-82.517681,42.614127],[-82.681989,42.559357],[-82.687466,42.690804],[-82.797005,42.652465],[-82.922975,42.351234],[-83.125621,42.236218],[-83.185868,42.006186],[-83.437807,41.814493],[-83.454238,41.732339]]],[[[-85.508091,45.730506],[-85.49166,45.610013],[-85.623106,45.588105],[-85.568337,45.75789],[-85.508091,45.730506]]],[[[-87.589328,45.095181],[-87.742682,45.199243],[-87.649574,45.341643],[-87.885083,45.363551],[-87.791975,45.500474],[-87.781021,45.675736],[-87.989145,45.796229],[-88.10416,45.922199],[-88.531362,46.020784],[-88.662808,45.987922],[-89.09001,46.135799],[-90.119674,46.338446],[-90.229213,46.508231],[-90.415429,46.568478],[-90.026566,46.672539],[-89.851304,46.793032],[-89.413149,46.842325],[-89.128348,46.990202],[-88.996902,46.995679],[-88.887363,47.099741],[-88.575177,47.247618],[-88.416346,47.373588],[-88.180837,47.455742],[-87.956283,47.384542],[-88.350623,47.077833],[-88.443731,46.973771],[-88.438254,46.787555],[-88.246561,46.929956],[-87.901513,46.908048],[-87.633143,46.809463],[-87.392158,46.535616],[-87.260711,46.486323],[-87.008772,46.530139],[-86.948526,46.469893],[-86.696587,46.437031],[-86.159846,46.667063],[-85.880522,46.68897],[-85.508091,46.678016],[-85.256151,46.754694],[-85.064458,46.760171],[-85.02612,46.480847],[-84.82895,46.442508],[-84.63178,46.486323],[-84.549626,46.4206],[-84.418179,46.502754],[-84.127902,46.530139],[-84.122425,46.179615],[-83.990978,46.031737],[-83.793808,45.993399],[-83.7719,46.091984],[-83.580208,46.091984],[-83.476146,45.987922],[-83.563777,45.911245],[-84.111471,45.976968],[-84.374364,45.933153],[-84.659165,46.053645],[-84.741319,45.944106],[-84.70298,45.850998],[-84.82895,45.872906],[-85.015166,46.00983],[-85.338305,46.091984],[-85.502614,46.097461],[-85.661445,45.966014],[-85.924338,45.933153],[-86.209139,45.960537],[-86.324155,45.905768],[-86.351539,45.796229],[-86.663725,45.703121],[-86.647294,45.834568],[-86.784218,45.861952],[-86.838987,45.725029],[-87.069019,45.719552],[-87.17308,45.659305],[-87.326435,45.423797],[-87.611236,45.122565],[-87.589328,45.095181]]],[[[-88.805209,47.976051],[-89.057148,47.850082],[-89.188594,47.833651],[-89.177641,47.937713],[-88.547792,48.173221],[-88.668285,48.008913],[-88.805209,47.976051]]]]}}, +{"type":"Feature","id":"27","properties":{"name":"Minnesota","density":67.14},"geometry":{"type":"Polygon","coordinates":[[[-92.014696,46.705401],[-92.091373,46.749217],[-92.29402,46.667063],[-92.29402,46.075553],[-92.354266,46.015307],[-92.639067,45.933153],[-92.869098,45.719552],[-92.885529,45.577151],[-92.770513,45.566198],[-92.644544,45.440228],[-92.75956,45.286874],[-92.737652,45.117088],[-92.808852,44.750133],[-92.545959,44.569394],[-92.337835,44.552964],[-92.233773,44.443425],[-91.927065,44.333886],[-91.877772,44.202439],[-91.592971,44.032654],[-91.43414,43.994316],[-91.242447,43.775238],[-91.269832,43.616407],[-91.215062,43.501391],[-91.368417,43.501391],[-96.451017,43.501391],[-96.451017,45.297827],[-96.681049,45.412843],[-96.856311,45.604536],[-96.582464,45.818137],[-96.560556,45.933153],[-96.598895,46.332969],[-96.719387,46.437031],[-96.801542,46.656109],[-96.785111,46.924479],[-96.823449,46.968294],[-96.856311,47.609096],[-97.053481,47.948667],[-97.130158,48.140359],[-97.16302,48.545653],[-97.097296,48.682577],[-97.228743,49.000239],[-95.152983,49.000239],[-95.152983,49.383625],[-94.955813,49.372671],[-94.824366,49.295994],[-94.69292,48.775685],[-94.588858,48.715438],[-94.260241,48.699007],[-94.221903,48.649715],[-93.838517,48.627807],[-93.794701,48.518268],[-93.466085,48.545653],[-93.466085,48.589469],[-93.208669,48.644238],[-92.984114,48.62233],[-92.726698,48.540176],[-92.655498,48.436114],[-92.50762,48.447068],[-92.370697,48.222514],[-92.304974,48.315622],[-92.053034,48.359437],[-92.009219,48.266329],[-91.713464,48.200606],[-91.713464,48.112975],[-91.565587,48.041775],[-91.264355,48.080113],[-91.083616,48.178698],[-90.837154,48.238944],[-90.749522,48.091067],[-90.579737,48.123929],[-90.377091,48.091067],[-90.141582,48.112975],[-89.873212,47.987005],[-89.615796,48.008913],[-89.637704,47.954144],[-89.971797,47.828174],[-90.437337,47.729589],[-90.738569,47.625527],[-91.171247,47.368111],[-91.357463,47.20928],[-91.642264,47.028541],[-92.091373,46.787555],[-92.014696,46.705401]]]}}, +{"type":"Feature","id":"28","properties":{"name":"Mississippi","density":63.50},"geometry":{"type":"Polygon","coordinates":[[[-88.471115,34.995703],[-88.202745,34.995703],[-88.098683,34.891641],[-88.241084,33.796253],[-88.471115,31.895754],[-88.394438,30.367688],[-88.503977,30.323872],[-88.744962,30.34578],[-88.843547,30.411504],[-89.084533,30.367688],[-89.418626,30.252672],[-89.522688,30.181472],[-89.643181,30.285534],[-89.681519,30.449842],[-89.845827,30.66892],[-89.747242,30.997536],[-91.636787,30.997536],[-91.565587,31.068736],[-91.636787,31.265906],[-91.516294,31.27686],[-91.499863,31.643815],[-91.401278,31.621907],[-91.341032,31.846462],[-91.105524,31.988862],[-90.985031,32.218894],[-91.006939,32.514649],[-91.154816,32.640618],[-91.143862,32.843265],[-91.072662,32.887081],[-91.16577,33.002096],[-91.089093,33.13902],[-91.143862,33.347144],[-91.056231,33.429298],[-91.231493,33.560744],[-91.072662,33.867453],[-90.891923,34.026284],[-90.952169,34.135823],[-90.744046,34.300131],[-90.749522,34.365854],[-90.568783,34.420624],[-90.585214,34.617794],[-90.481152,34.661609],[-90.409952,34.831394],[-90.251121,34.908072],[-90.311367,34.995703],[-88.471115,34.995703]]]}}, +{"type":"Feature","id":"29","properties":{"name":"Missouri","density":87.26},"geometry":{"type":"Polygon","coordinates":[[[-91.833957,40.609566],[-91.729895,40.615043],[-91.527248,40.412397],[-91.417709,40.379535],[-91.50534,40.237135],[-91.494386,40.034488],[-91.368417,39.727779],[-91.061708,39.470363],[-90.727615,39.256762],[-90.661891,38.928146],[-90.585214,38.867899],[-90.470199,38.961007],[-90.251121,38.917192],[-90.10872,38.845992],[-90.207305,38.725499],[-90.179921,38.632391],[-90.349706,38.374975],[-90.355183,38.216144],[-90.059428,38.013497],[-89.949889,37.88205],[-89.84035,37.903958],[-89.517211,37.690357],[-89.517211,37.537003],[-89.435057,37.34531],[-89.517211,37.279587],[-89.292656,36.994786],[-89.133825,36.983832],[-89.215979,36.578538],[-89.363857,36.622354],[-89.418626,36.496384],[-89.484349,36.496384],[-89.539119,36.496384],[-89.533642,36.249922],[-89.730812,35.997983],[-90.377091,35.997983],[-90.218259,36.184199],[-90.064905,36.304691],[-90.152536,36.496384],[-94.473842,36.501861],[-94.616242,36.501861],[-94.616242,37.000263],[-94.610765,39.158177],[-94.824366,39.20747],[-94.983197,39.442978],[-95.109167,39.541563],[-94.884612,39.831841],[-95.207752,39.908518],[-95.306337,40.001626],[-95.552799,40.264519],[-95.7664,40.587659],[-94.632673,40.571228],[-93.257961,40.582182],[-91.833957,40.609566]]]}}, +{"type":"Feature","id":"30","properties":{"name":"Montana","density":6.858},"geometry":{"type":"Polygon","coordinates":[[[-104.047534,49.000239],[-104.042057,47.861036],[-104.047534,45.944106],[-104.042057,44.996596],[-104.058488,44.996596],[-105.91517,45.002073],[-109.080842,45.002073],[-111.05254,45.002073],[-111.047063,44.476286],[-111.227803,44.580348],[-111.386634,44.75561],[-111.616665,44.547487],[-111.819312,44.509148],[-111.868605,44.563917],[-112.104113,44.520102],[-112.241036,44.569394],[-112.471068,44.481763],[-112.783254,44.48724],[-112.887315,44.394132],[-113.002331,44.448902],[-113.133778,44.772041],[-113.341901,44.782995],[-113.456917,44.865149],[-113.45144,45.056842],[-113.571933,45.128042],[-113.736241,45.330689],[-113.834826,45.522382],[-113.807441,45.604536],[-113.98818,45.703121],[-114.086765,45.593582],[-114.333228,45.456659],[-114.546828,45.560721],[-114.497536,45.670259],[-114.568736,45.774321],[-114.387997,45.88386],[-114.492059,46.037214],[-114.464674,46.272723],[-114.322274,46.645155],[-114.612552,46.639678],[-114.623506,46.705401],[-114.886399,46.809463],[-114.930214,46.919002],[-115.302646,47.187372],[-115.324554,47.258572],[-115.527201,47.302388],[-115.718894,47.42288],[-115.724371,47.696727],[-116.04751,47.976051],[-116.04751,49.000239],[-111.50165,48.994762],[-109.453274,49.000239],[-104.047534,49.000239]]]}}, +{"type":"Feature","id":"31","properties":{"name":"Nebraska","density":23.97},"geometry":{"type":"Polygon","coordinates":[[[-103.324578,43.002989],[-101.626726,42.997512],[-98.499393,42.997512],[-98.466531,42.94822],[-97.951699,42.767481],[-97.831206,42.866066],[-97.688806,42.844158],[-97.217789,42.844158],[-96.692003,42.657942],[-96.626279,42.515542],[-96.44554,42.488157],[-96.264801,42.039048],[-96.127878,41.973325],[-96.062155,41.798063],[-96.122401,41.67757],[-96.095016,41.540646],[-95.919754,41.453015],[-95.925231,41.201076],[-95.826646,40.976521],[-95.881416,40.719105],[-95.7664,40.587659],[-95.552799,40.264519],[-95.306337,40.001626],[-101.90605,40.001626],[-102.053927,40.001626],[-102.053927,41.003906],[-104.053011,41.003906],[-104.053011,43.002989],[-103.324578,43.002989]]]}}, +{"type":"Feature","id":"32","properties":{"name":"Nevada","density":24.80},"geometry":{"type":"Polygon","coordinates":[[[-117.027882,42.000709],[-114.04295,41.995232],[-114.048427,37.000263],[-114.048427,36.195153],[-114.152489,36.025367],[-114.251074,36.01989],[-114.371566,36.140383],[-114.738521,36.102045],[-114.678275,35.516012],[-114.596121,35.324319],[-114.574213,35.138103],[-114.634459,35.00118],[-115.85034,35.970598],[-116.540435,36.501861],[-117.498899,37.21934],[-118.71478,38.101128],[-120.001861,38.999346],[-119.996384,40.264519],[-120.001861,41.995232],[-118.698349,41.989755],[-117.027882,42.000709]]]}}, +{"type":"Feature","id":"33","properties":{"name":"New Hampshire","density":147},"geometry":{"type":"Polygon","coordinates":[[[-71.08183,45.303304],[-71.032537,44.657025],[-70.966814,43.34256],[-70.807983,43.227544],[-70.824413,43.128959],[-70.703921,43.057759],[-70.818936,42.871543],[-70.917521,42.887974],[-71.185891,42.789389],[-71.29543,42.696281],[-72.456542,42.729142],[-72.544173,42.80582],[-72.533219,42.953697],[-72.445588,43.008466],[-72.456542,43.150867],[-72.379864,43.572591],[-72.204602,43.769761],[-72.116971,43.994316],[-72.02934,44.07647],[-72.034817,44.322932],[-71.700724,44.41604],[-71.536416,44.585825],[-71.629524,44.750133],[-71.4926,44.914442],[-71.503554,45.013027],[-71.361154,45.270443],[-71.131122,45.243058],[-71.08183,45.303304]]]}}, +{"type":"Feature","id":"34","properties":{"name":"New Jersey","density":1189 },"geometry":{"type":"Polygon","coordinates":[[[-74.236547,41.14083],[-73.902454,40.998429],[-74.022947,40.708151],[-74.187255,40.642428],[-74.274886,40.489074],[-74.001039,40.412397],[-73.979131,40.297381],[-74.099624,39.760641],[-74.411809,39.360824],[-74.614456,39.245808],[-74.795195,38.993869],[-74.888303,39.158177],[-75.178581,39.240331],[-75.534582,39.459409],[-75.55649,39.607286],[-75.561967,39.629194],[-75.507197,39.683964],[-75.414089,39.804456],[-75.145719,39.88661],[-75.129289,39.963288],[-74.82258,40.127596],[-74.773287,40.215227],[-75.058088,40.417874],[-75.069042,40.543843],[-75.195012,40.576705],[-75.205966,40.691721],[-75.052611,40.866983],[-75.134765,40.971045],[-74.882826,41.179168],[-74.828057,41.288707],[-74.69661,41.359907],[-74.236547,41.14083]]]}}, +{"type":"Feature","id":"35","properties":{"name":"New Mexico","density":17.16},"geometry":{"type":"Polygon","coordinates":[[[-107.421329,37.000263],[-106.868158,36.994786],[-104.337812,36.994786],[-103.001438,37.000263],[-103.001438,36.501861],[-103.039777,36.501861],[-103.045254,34.01533],[-103.067161,33.002096],[-103.067161,31.999816],[-106.616219,31.999816],[-106.643603,31.901231],[-106.528588,31.786216],[-108.210008,31.786216],[-108.210008,31.331629],[-109.04798,31.331629],[-109.042503,37.000263],[-107.421329,37.000263]]]}}, +{"type":"Feature","id":"36","properties":{"name":"New York","density":412.3},"geometry":{"type":"Polygon","coordinates":[[[-73.343806,45.013027],[-73.332852,44.804903],[-73.387622,44.618687],[-73.294514,44.437948],[-73.321898,44.246255],[-73.436914,44.043608],[-73.349283,43.769761],[-73.404052,43.687607],[-73.245221,43.523299],[-73.278083,42.833204],[-73.267129,42.745573],[-73.508114,42.08834],[-73.486206,42.050002],[-73.55193,41.294184],[-73.48073,41.21203],[-73.727192,41.102491],[-73.655992,40.987475],[-73.22879,40.905321],[-73.141159,40.965568],[-72.774204,40.965568],[-72.587988,40.998429],[-72.28128,41.157261],[-72.259372,41.042245],[-72.100541,40.992952],[-72.467496,40.845075],[-73.239744,40.625997],[-73.562884,40.582182],[-73.776484,40.593136],[-73.935316,40.543843],[-74.022947,40.708151],[-73.902454,40.998429],[-74.236547,41.14083],[-74.69661,41.359907],[-74.740426,41.431108],[-74.89378,41.436584],[-75.074519,41.60637],[-75.052611,41.754247],[-75.173104,41.869263],[-75.249781,41.863786],[-75.35932,42.000709],[-79.76278,42.000709],[-79.76278,42.252649],[-79.76278,42.269079],[-79.149363,42.55388],[-79.050778,42.690804],[-78.853608,42.783912],[-78.930285,42.953697],[-79.012439,42.986559],[-79.072686,43.260406],[-78.486653,43.375421],[-77.966344,43.369944],[-77.75822,43.34256],[-77.533665,43.233021],[-77.391265,43.276836],[-76.958587,43.271359],[-76.695693,43.34256],[-76.41637,43.523299],[-76.235631,43.528776],[-76.230154,43.802623],[-76.137046,43.961454],[-76.3616,44.070993],[-76.312308,44.196962],[-75.912491,44.366748],[-75.764614,44.514625],[-75.282643,44.848718],[-74.828057,45.018503],[-74.148916,44.991119],[-73.343806,45.013027]]]}}, +{"type":"Feature","id":"37","properties":{"name":"North Carolina","density":198.2},"geometry":{"type":"Polygon","coordinates":[[[-80.978661,36.562108],[-80.294043,36.545677],[-79.510841,36.5402],[-75.868676,36.551154],[-75.75366,36.151337],[-76.032984,36.189676],[-76.071322,36.140383],[-76.410893,36.080137],[-76.460185,36.025367],[-76.68474,36.008937],[-76.673786,35.937736],[-76.399939,35.987029],[-76.3616,35.943213],[-76.060368,35.992506],[-75.961783,35.899398],[-75.781044,35.937736],[-75.715321,35.696751],[-75.775568,35.581735],[-75.89606,35.570781],[-76.147999,35.324319],[-76.482093,35.313365],[-76.536862,35.14358],[-76.394462,34.973795],[-76.279446,34.940933],[-76.493047,34.661609],[-76.673786,34.694471],[-76.991448,34.667086],[-77.210526,34.60684],[-77.555573,34.415147],[-77.82942,34.163208],[-77.971821,33.845545],[-78.179944,33.916745],[-78.541422,33.851022],[-79.675149,34.80401],[-80.797922,34.820441],[-80.781491,34.935456],[-80.934845,35.105241],[-81.038907,35.044995],[-81.044384,35.149057],[-82.276696,35.198349],[-82.550543,35.160011],[-82.764143,35.066903],[-83.109191,35.00118],[-83.618546,34.984749],[-84.319594,34.990226],[-84.29221,35.225734],[-84.09504,35.247642],[-84.018363,35.41195],[-83.7719,35.559827],[-83.498053,35.565304],[-83.251591,35.718659],[-82.994175,35.773428],[-82.775097,35.997983],[-82.638174,36.063706],[-82.610789,35.965121],[-82.216449,36.156814],[-82.03571,36.118475],[-81.909741,36.304691],[-81.723525,36.353984],[-81.679709,36.589492],[-80.978661,36.562108]]]}}, +{"type":"Feature","id":"38","properties":{"name":"North Dakota","density":9.916},"geometry":{"type":"Polygon","coordinates":[[[-97.228743,49.000239],[-97.097296,48.682577],[-97.16302,48.545653],[-97.130158,48.140359],[-97.053481,47.948667],[-96.856311,47.609096],[-96.823449,46.968294],[-96.785111,46.924479],[-96.801542,46.656109],[-96.719387,46.437031],[-96.598895,46.332969],[-96.560556,45.933153],[-104.047534,45.944106],[-104.042057,47.861036],[-104.047534,49.000239],[-97.228743,49.000239]]]}}, +{"type":"Feature","id":"39","properties":{"name":"Ohio","density":281.9},"geometry":{"type":"Polygon","coordinates":[[[-80.518598,41.978802],[-80.518598,40.636951],[-80.666475,40.582182],[-80.595275,40.472643],[-80.600752,40.319289],[-80.737675,40.078303],[-80.830783,39.711348],[-81.219646,39.388209],[-81.345616,39.344393],[-81.455155,39.410117],[-81.57017,39.267716],[-81.685186,39.273193],[-81.811156,39.0815],[-81.783771,38.966484],[-81.887833,38.873376],[-82.03571,39.026731],[-82.221926,38.785745],[-82.172634,38.632391],[-82.293127,38.577622],[-82.331465,38.446175],[-82.594358,38.424267],[-82.731282,38.561191],[-82.846298,38.588575],[-82.890113,38.758361],[-83.032514,38.725499],[-83.142052,38.626914],[-83.519961,38.703591],[-83.678792,38.632391],[-83.903347,38.769315],[-84.215533,38.807653],[-84.231963,38.895284],[-84.43461,39.103408],[-84.817996,39.103408],[-84.801565,40.500028],[-84.807042,41.694001],[-83.454238,41.732339],[-83.065375,41.595416],[-82.933929,41.513262],[-82.835344,41.589939],[-82.616266,41.431108],[-82.479343,41.381815],[-82.013803,41.513262],[-81.739956,41.485877],[-81.444201,41.672093],[-81.011523,41.852832],[-80.518598,41.978802],[-80.518598,41.978802]]]}}, +{"type":"Feature","id":"40","properties":{"name":"Oklahoma","density":55.22},"geometry":{"type":"Polygon","coordinates":[[[-100.087706,37.000263],[-94.616242,37.000263],[-94.616242,36.501861],[-94.430026,35.395519],[-94.484796,33.637421],[-94.868182,33.74696],[-94.966767,33.861976],[-95.224183,33.960561],[-95.289906,33.87293],[-95.547322,33.878407],[-95.602092,33.933176],[-95.8376,33.834591],[-95.936185,33.889361],[-96.149786,33.840068],[-96.346956,33.686714],[-96.423633,33.774345],[-96.631756,33.845545],[-96.850834,33.845545],[-96.922034,33.960561],[-97.173974,33.736006],[-97.256128,33.861976],[-97.371143,33.823637],[-97.458774,33.905791],[-97.694283,33.982469],[-97.869545,33.851022],[-97.946222,33.987946],[-98.088623,34.004376],[-98.170777,34.113915],[-98.36247,34.157731],[-98.488439,34.064623],[-98.570593,34.146777],[-98.767763,34.135823],[-98.986841,34.223454],[-99.189488,34.2125],[-99.260688,34.404193],[-99.57835,34.415147],[-99.698843,34.382285],[-99.923398,34.573978],[-100.000075,34.563024],[-100.000075,36.501861],[-101.812942,36.501861],[-103.001438,36.501861],[-103.001438,37.000263],[-102.042974,36.994786],[-100.087706,37.000263]]]}}, +{"type":"Feature","id":"41","properties":{"name":"Oregon","density":40.33},"geometry":{"type":"Polygon","coordinates":[[[-123.211348,46.174138],[-123.11824,46.185092],[-122.904639,46.08103],[-122.811531,45.960537],[-122.762239,45.659305],[-122.247407,45.549767],[-121.809251,45.708598],[-121.535404,45.725029],[-121.217742,45.670259],[-121.18488,45.604536],[-120.637186,45.746937],[-120.505739,45.697644],[-120.209985,45.725029],[-119.963522,45.823614],[-119.525367,45.911245],[-119.125551,45.933153],[-118.988627,45.998876],[-116.918344,45.993399],[-116.78142,45.823614],[-116.545912,45.752413],[-116.463758,45.61549],[-116.671881,45.319735],[-116.732128,45.144473],[-116.847143,45.02398],[-116.830713,44.930872],[-116.934774,44.782995],[-117.038836,44.750133],[-117.241483,44.394132],[-117.170283,44.257209],[-116.97859,44.240778],[-116.896436,44.158624],[-117.027882,43.830007],[-117.027882,42.000709],[-118.698349,41.989755],[-120.001861,41.995232],[-121.037003,41.995232],[-122.378853,42.011663],[-123.233256,42.006186],[-124.213628,42.000709],[-124.356029,42.115725],[-124.432706,42.438865],[-124.416275,42.663419],[-124.553198,42.838681],[-124.454613,43.002989],[-124.383413,43.271359],[-124.235536,43.55616],[-124.169813,43.8081],[-124.060274,44.657025],[-124.076705,44.772041],[-123.97812,45.144473],[-123.939781,45.659305],[-123.994551,45.944106],[-123.945258,46.113892],[-123.545441,46.261769],[-123.370179,46.146753],[-123.211348,46.174138]]]}}, +{"type":"Feature","id":"42","properties":{"name":"Pennsylvania","density":284.3},"geometry":{"type":"Polygon","coordinates":[[[-79.76278,42.252649],[-79.76278,42.000709],[-75.35932,42.000709],[-75.249781,41.863786],[-75.173104,41.869263],[-75.052611,41.754247],[-75.074519,41.60637],[-74.89378,41.436584],[-74.740426,41.431108],[-74.69661,41.359907],[-74.828057,41.288707],[-74.882826,41.179168],[-75.134765,40.971045],[-75.052611,40.866983],[-75.205966,40.691721],[-75.195012,40.576705],[-75.069042,40.543843],[-75.058088,40.417874],[-74.773287,40.215227],[-74.82258,40.127596],[-75.129289,39.963288],[-75.145719,39.88661],[-75.414089,39.804456],[-75.616736,39.831841],[-75.786521,39.722302],[-79.477979,39.722302],[-80.518598,39.722302],[-80.518598,40.636951],[-80.518598,41.978802],[-80.518598,41.978802],[-80.332382,42.033571],[-79.76278,42.269079],[-79.76278,42.252649]]]}}, +{"type":"Feature","id":"44","properties":{"name":"Rhode Island","density":1006 },"geometry":{"type":"MultiPolygon","coordinates":[[[[-71.196845,41.67757],[-71.120168,41.496831],[-71.317338,41.474923],[-71.196845,41.67757]]],[[[-71.530939,42.01714],[-71.383061,42.01714],[-71.328292,41.781632],[-71.22423,41.710431],[-71.344723,41.726862],[-71.448785,41.578985],[-71.481646,41.370861],[-71.859555,41.321569],[-71.799309,41.414677],[-71.799309,42.006186],[-71.530939,42.01714]]]]}}, +{"type":"Feature","id":"45","properties":{"name":"South Carolina","density":155.4},"geometry":{"type":"Polygon","coordinates":[[[-82.764143,35.066903],[-82.550543,35.160011],[-82.276696,35.198349],[-81.044384,35.149057],[-81.038907,35.044995],[-80.934845,35.105241],[-80.781491,34.935456],[-80.797922,34.820441],[-79.675149,34.80401],[-78.541422,33.851022],[-78.716684,33.80173],[-78.935762,33.637421],[-79.149363,33.380005],[-79.187701,33.171881],[-79.357487,33.007573],[-79.582041,33.007573],[-79.631334,32.887081],[-79.866842,32.755634],[-79.998289,32.613234],[-80.206412,32.552987],[-80.430967,32.399633],[-80.452875,32.328433],[-80.660998,32.246279],[-80.885553,32.032678],[-81.115584,32.120309],[-81.121061,32.290094],[-81.279893,32.558464],[-81.416816,32.629664],[-81.42777,32.843265],[-81.493493,33.007573],[-81.761863,33.160928],[-81.937125,33.347144],[-81.926172,33.462159],[-82.194542,33.631944],[-82.325988,33.81816],[-82.55602,33.94413],[-82.714851,34.152254],[-82.747713,34.26727],[-82.901067,34.486347],[-83.005129,34.469916],[-83.339222,34.683517],[-83.322791,34.787579],[-83.109191,35.00118],[-82.764143,35.066903]]]}}, +{"type":"Feature","id":"46","properties":{"name":"South Dakota","density":98.07},"geometry":{"type":"Polygon","coordinates":[[[-104.047534,45.944106],[-96.560556,45.933153],[-96.582464,45.818137],[-96.856311,45.604536],[-96.681049,45.412843],[-96.451017,45.297827],[-96.451017,43.501391],[-96.582464,43.479483],[-96.527695,43.397329],[-96.560556,43.222067],[-96.434587,43.123482],[-96.511264,43.052282],[-96.544125,42.855112],[-96.631756,42.707235],[-96.44554,42.488157],[-96.626279,42.515542],[-96.692003,42.657942],[-97.217789,42.844158],[-97.688806,42.844158],[-97.831206,42.866066],[-97.951699,42.767481],[-98.466531,42.94822],[-98.499393,42.997512],[-101.626726,42.997512],[-103.324578,43.002989],[-104.053011,43.002989],[-104.058488,44.996596],[-104.042057,44.996596],[-104.047534,45.944106]]]}}, +{"type":"Feature","id":"47","properties":{"name":"Tennessee","density":88.08},"geometry":{"type":"Polygon","coordinates":[[[-88.054868,36.496384],[-88.071299,36.677123],[-87.852221,36.633308],[-86.592525,36.655216],[-85.486183,36.616877],[-85.289013,36.627831],[-84.544149,36.594969],[-83.689746,36.584015],[-83.673316,36.600446],[-81.679709,36.589492],[-81.723525,36.353984],[-81.909741,36.304691],[-82.03571,36.118475],[-82.216449,36.156814],[-82.610789,35.965121],[-82.638174,36.063706],[-82.775097,35.997983],[-82.994175,35.773428],[-83.251591,35.718659],[-83.498053,35.565304],[-83.7719,35.559827],[-84.018363,35.41195],[-84.09504,35.247642],[-84.29221,35.225734],[-84.319594,34.990226],[-85.606675,34.984749],[-87.359296,35.00118],[-88.202745,34.995703],[-88.471115,34.995703],[-90.311367,34.995703],[-90.212782,35.023087],[-90.114197,35.198349],[-90.130628,35.439335],[-89.944412,35.603643],[-89.911551,35.756997],[-89.763673,35.811767],[-89.730812,35.997983],[-89.533642,36.249922],[-89.539119,36.496384],[-89.484349,36.496384],[-89.418626,36.496384],[-89.298133,36.507338],[-88.054868,36.496384]]]}}, +{"type":"Feature","id":"48","properties":{"name":"Texas","density":98.07},"geometry":{"type":"Polygon","coordinates":[[[-101.812942,36.501861],[-100.000075,36.501861],[-100.000075,34.563024],[-99.923398,34.573978],[-99.698843,34.382285],[-99.57835,34.415147],[-99.260688,34.404193],[-99.189488,34.2125],[-98.986841,34.223454],[-98.767763,34.135823],[-98.570593,34.146777],[-98.488439,34.064623],[-98.36247,34.157731],[-98.170777,34.113915],[-98.088623,34.004376],[-97.946222,33.987946],[-97.869545,33.851022],[-97.694283,33.982469],[-97.458774,33.905791],[-97.371143,33.823637],[-97.256128,33.861976],[-97.173974,33.736006],[-96.922034,33.960561],[-96.850834,33.845545],[-96.631756,33.845545],[-96.423633,33.774345],[-96.346956,33.686714],[-96.149786,33.840068],[-95.936185,33.889361],[-95.8376,33.834591],[-95.602092,33.933176],[-95.547322,33.878407],[-95.289906,33.87293],[-95.224183,33.960561],[-94.966767,33.861976],[-94.868182,33.74696],[-94.484796,33.637421],[-94.380734,33.544313],[-94.183564,33.593606],[-94.041164,33.54979],[-94.041164,33.018527],[-94.041164,31.994339],[-93.822086,31.775262],[-93.816609,31.556184],[-93.542762,31.15089],[-93.526331,30.93729],[-93.630393,30.679874],[-93.728978,30.575812],[-93.696116,30.438888],[-93.767317,30.334826],[-93.690639,30.143133],[-93.926148,29.787132],[-93.838517,29.688547],[-94.002825,29.68307],[-94.523134,29.546147],[-94.70935,29.622824],[-94.742212,29.787132],[-94.873659,29.672117],[-94.966767,29.699501],[-95.016059,29.557101],[-94.911997,29.496854],[-94.895566,29.310638],[-95.081782,29.113469],[-95.383014,28.867006],[-95.985477,28.604113],[-96.045724,28.647929],[-96.226463,28.582205],[-96.23194,28.642452],[-96.478402,28.598636],[-96.593418,28.724606],[-96.664618,28.697221],[-96.401725,28.439805],[-96.593418,28.357651],[-96.774157,28.406943],[-96.801542,28.226204],[-97.026096,28.039988],[-97.256128,27.694941],[-97.404005,27.333463],[-97.513544,27.360848],[-97.540929,27.229401],[-97.425913,27.262263],[-97.480682,26.99937],[-97.557359,26.988416],[-97.562836,26.840538],[-97.469728,26.758384],[-97.442344,26.457153],[-97.332805,26.353091],[-97.30542,26.161398],[-97.217789,25.991613],[-97.524498,25.887551],[-97.650467,26.018997],[-97.885976,26.06829],[-98.198161,26.057336],[-98.466531,26.221644],[-98.669178,26.238075],[-98.822533,26.369522],[-99.030656,26.413337],[-99.173057,26.539307],[-99.266165,26.840538],[-99.446904,27.021277],[-99.424996,27.174632],[-99.50715,27.33894],[-99.479765,27.48134],[-99.605735,27.640172],[-99.709797,27.656603],[-99.879582,27.799003],[-99.934351,27.979742],[-100.082229,28.14405],[-100.29583,28.280974],[-100.399891,28.582205],[-100.498476,28.66436],[-100.629923,28.905345],[-100.673738,29.102515],[-100.799708,29.244915],[-101.013309,29.370885],[-101.062601,29.458516],[-101.259771,29.535193],[-101.413125,29.754271],[-101.851281,29.803563],[-102.114174,29.792609],[-102.338728,29.869286],[-102.388021,29.765225],[-102.629006,29.732363],[-102.809745,29.524239],[-102.919284,29.190146],[-102.97953,29.184669],[-103.116454,28.987499],[-103.280762,28.982022],[-103.527224,29.135376],[-104.146119,29.381839],[-104.266611,29.513285],[-104.507597,29.639255],[-104.677382,29.924056],[-104.688336,30.181472],[-104.858121,30.389596],[-104.896459,30.570335],[-105.005998,30.685351],[-105.394861,30.855136],[-105.602985,31.085167],[-105.77277,31.167321],[-105.953509,31.364491],[-106.205448,31.468553],[-106.38071,31.731446],[-106.528588,31.786216],[-106.643603,31.901231],[-106.616219,31.999816],[-103.067161,31.999816],[-103.067161,33.002096],[-103.045254,34.01533],[-103.039777,36.501861],[-103.001438,36.501861],[-101.812942,36.501861]]]}}, +{"type":"Feature","id":"49","properties":{"name":"Utah","density":34.30},"geometry":{"type":"Polygon","coordinates":[[[-112.164359,41.995232],[-111.047063,42.000709],[-111.047063,40.998429],[-109.04798,40.998429],[-109.053457,39.125316],[-109.058934,38.27639],[-109.042503,38.166851],[-109.042503,37.000263],[-110.499369,37.00574],[-114.048427,37.000263],[-114.04295,41.995232],[-112.164359,41.995232]]]}}, +{"type":"Feature","id":"50","properties":{"name":"Vermont","density":67.73},"geometry":{"type":"Polygon","coordinates":[[[-71.503554,45.013027],[-71.4926,44.914442],[-71.629524,44.750133],[-71.536416,44.585825],[-71.700724,44.41604],[-72.034817,44.322932],[-72.02934,44.07647],[-72.116971,43.994316],[-72.204602,43.769761],[-72.379864,43.572591],[-72.456542,43.150867],[-72.445588,43.008466],[-72.533219,42.953697],[-72.544173,42.80582],[-72.456542,42.729142],[-73.267129,42.745573],[-73.278083,42.833204],[-73.245221,43.523299],[-73.404052,43.687607],[-73.349283,43.769761],[-73.436914,44.043608],[-73.321898,44.246255],[-73.294514,44.437948],[-73.387622,44.618687],[-73.332852,44.804903],[-73.343806,45.013027],[-72.308664,45.002073],[-71.503554,45.013027]]]}}, +{"type":"Feature","id":"51","properties":{"name":"Virginia","density":204.5},"geometry":{"type":"MultiPolygon","coordinates":[[[[-75.397659,38.013497],[-75.244304,38.029928],[-75.375751,37.860142],[-75.512674,37.799896],[-75.594828,37.569865],[-75.802952,37.197433],[-75.972737,37.120755],[-76.027507,37.257679],[-75.939876,37.564388],[-75.671506,37.95325],[-75.397659,38.013497]]],[[[-76.016553,37.95325],[-75.994645,37.95325],[-76.043938,37.95325],[-76.016553,37.95325]]],[[[-78.349729,39.464886],[-77.82942,39.130793],[-77.719881,39.322485],[-77.566527,39.306055],[-77.456988,39.223901],[-77.456988,39.076023],[-77.248864,39.026731],[-77.117418,38.933623],[-77.040741,38.791222],[-77.128372,38.632391],[-77.248864,38.588575],[-77.325542,38.446175],[-77.281726,38.342113],[-77.013356,38.374975],[-76.964064,38.216144],[-76.613539,38.15042],[-76.514954,38.024451],[-76.235631,37.887527],[-76.3616,37.608203],[-76.246584,37.389126],[-76.383508,37.285064],[-76.399939,37.159094],[-76.273969,37.082417],[-76.410893,36.961924],[-76.619016,37.120755],[-76.668309,37.065986],[-76.48757,36.95097],[-75.994645,36.923586],[-75.868676,36.551154],[-79.510841,36.5402],[-80.294043,36.545677],[-80.978661,36.562108],[-81.679709,36.589492],[-83.673316,36.600446],[-83.136575,36.742847],[-83.070852,36.852385],[-82.879159,36.890724],[-82.868205,36.978355],[-82.720328,37.044078],[-82.720328,37.120755],[-82.353373,37.268633],[-81.969987,37.537003],[-81.986418,37.454849],[-81.849494,37.285064],[-81.679709,37.20291],[-81.55374,37.208387],[-81.362047,37.339833],[-81.225123,37.235771],[-80.967707,37.290541],[-80.513121,37.482234],[-80.474782,37.421987],[-80.29952,37.509618],[-80.294043,37.690357],[-80.184505,37.849189],[-79.998289,37.997066],[-79.921611,38.177805],[-79.724442,38.364021],[-79.647764,38.594052],[-79.477979,38.457129],[-79.313671,38.413313],[-79.209609,38.495467],[-78.996008,38.851469],[-78.870039,38.763838],[-78.404499,39.169131],[-78.349729,39.464886]]]]}}, +{"type":"Feature","id":"53","properties":{"name":"Washington","density":102.6},"geometry":{"type":"MultiPolygon","coordinates":[[[[-117.033359,49.000239],[-117.044313,47.762451],[-117.038836,46.426077],[-117.055267,46.343923],[-116.92382,46.168661],[-116.918344,45.993399],[-118.988627,45.998876],[-119.125551,45.933153],[-119.525367,45.911245],[-119.963522,45.823614],[-120.209985,45.725029],[-120.505739,45.697644],[-120.637186,45.746937],[-121.18488,45.604536],[-121.217742,45.670259],[-121.535404,45.725029],[-121.809251,45.708598],[-122.247407,45.549767],[-122.762239,45.659305],[-122.811531,45.960537],[-122.904639,46.08103],[-123.11824,46.185092],[-123.211348,46.174138],[-123.370179,46.146753],[-123.545441,46.261769],[-123.72618,46.300108],[-123.874058,46.239861],[-124.065751,46.327492],[-124.027412,46.464416],[-123.895966,46.535616],[-124.098612,46.74374],[-124.235536,47.285957],[-124.31769,47.357157],[-124.427229,47.740543],[-124.624399,47.88842],[-124.706553,48.184175],[-124.597014,48.381345],[-124.394367,48.288237],[-123.983597,48.162267],[-123.704273,48.167744],[-123.424949,48.118452],[-123.162056,48.167744],[-123.036086,48.080113],[-122.800578,48.08559],[-122.636269,47.866512],[-122.515777,47.882943],[-122.493869,47.587189],[-122.422669,47.318818],[-122.324084,47.346203],[-122.422669,47.576235],[-122.395284,47.800789],[-122.230976,48.030821],[-122.362422,48.123929],[-122.373376,48.288237],[-122.471961,48.468976],[-122.422669,48.600422],[-122.488392,48.753777],[-122.647223,48.775685],[-122.795101,48.8907],[-122.756762,49.000239],[-117.033359,49.000239]]],[[[-122.718423,48.310145],[-122.586977,48.35396],[-122.608885,48.151313],[-122.767716,48.227991],[-122.718423,48.310145]]],[[[-123.025132,48.583992],[-122.915593,48.715438],[-122.767716,48.556607],[-122.811531,48.419683],[-123.041563,48.458022],[-123.025132,48.583992]]]]}}, +{"type":"Feature","id":"54","properties":{"name":"West Virginia","density":77.06},"geometry":{"type":"Polygon","coordinates":[[[-80.518598,40.636951],[-80.518598,39.722302],[-79.477979,39.722302],[-79.488933,39.20747],[-79.291763,39.300578],[-79.094593,39.470363],[-78.963147,39.437501],[-78.765977,39.585379],[-78.470222,39.514178],[-78.431884,39.623717],[-78.267575,39.61824],[-78.174467,39.694917],[-78.004682,39.601809],[-77.834897,39.601809],[-77.719881,39.322485],[-77.82942,39.130793],[-78.349729,39.464886],[-78.404499,39.169131],[-78.870039,38.763838],[-78.996008,38.851469],[-79.209609,38.495467],[-79.313671,38.413313],[-79.477979,38.457129],[-79.647764,38.594052],[-79.724442,38.364021],[-79.921611,38.177805],[-79.998289,37.997066],[-80.184505,37.849189],[-80.294043,37.690357],[-80.29952,37.509618],[-80.474782,37.421987],[-80.513121,37.482234],[-80.967707,37.290541],[-81.225123,37.235771],[-81.362047,37.339833],[-81.55374,37.208387],[-81.679709,37.20291],[-81.849494,37.285064],[-81.986418,37.454849],[-81.969987,37.537003],[-82.101434,37.553434],[-82.293127,37.668449],[-82.342419,37.783465],[-82.50125,37.931343],[-82.621743,38.123036],[-82.594358,38.424267],[-82.331465,38.446175],[-82.293127,38.577622],[-82.172634,38.632391],[-82.221926,38.785745],[-82.03571,39.026731],[-81.887833,38.873376],[-81.783771,38.966484],[-81.811156,39.0815],[-81.685186,39.273193],[-81.57017,39.267716],[-81.455155,39.410117],[-81.345616,39.344393],[-81.219646,39.388209],[-80.830783,39.711348],[-80.737675,40.078303],[-80.600752,40.319289],[-80.595275,40.472643],[-80.666475,40.582182],[-80.518598,40.636951]]]}}, +{"type":"Feature","id":"55","properties":{"name":"Wisconsin","density":105.2},"geometry":{"type":"Polygon","coordinates":[[[-90.415429,46.568478],[-90.229213,46.508231],[-90.119674,46.338446],[-89.09001,46.135799],[-88.662808,45.987922],[-88.531362,46.020784],[-88.10416,45.922199],[-87.989145,45.796229],[-87.781021,45.675736],[-87.791975,45.500474],[-87.885083,45.363551],[-87.649574,45.341643],[-87.742682,45.199243],[-87.589328,45.095181],[-87.627666,44.974688],[-87.819359,44.95278],[-87.983668,44.722749],[-88.043914,44.563917],[-87.928898,44.536533],[-87.775544,44.640595],[-87.611236,44.837764],[-87.403112,44.914442],[-87.238804,45.166381],[-87.03068,45.22115],[-87.047111,45.089704],[-87.189511,44.969211],[-87.468835,44.552964],[-87.545512,44.322932],[-87.540035,44.158624],[-87.644097,44.103854],[-87.737205,43.8793],[-87.704344,43.687607],[-87.791975,43.561637],[-87.912467,43.249452],[-87.885083,43.002989],[-87.76459,42.783912],[-87.802929,42.493634],[-88.788778,42.493634],[-90.639984,42.510065],[-90.711184,42.636034],[-91.067185,42.75105],[-91.143862,42.909881],[-91.176724,43.134436],[-91.056231,43.254929],[-91.204109,43.353514],[-91.215062,43.501391],[-91.269832,43.616407],[-91.242447,43.775238],[-91.43414,43.994316],[-91.592971,44.032654],[-91.877772,44.202439],[-91.927065,44.333886],[-92.233773,44.443425],[-92.337835,44.552964],[-92.545959,44.569394],[-92.808852,44.750133],[-92.737652,45.117088],[-92.75956,45.286874],[-92.644544,45.440228],[-92.770513,45.566198],[-92.885529,45.577151],[-92.869098,45.719552],[-92.639067,45.933153],[-92.354266,46.015307],[-92.29402,46.075553],[-92.29402,46.667063],[-92.091373,46.749217],[-92.014696,46.705401],[-91.790141,46.694447],[-91.09457,46.864232],[-90.837154,46.95734],[-90.749522,46.88614],[-90.886446,46.754694],[-90.55783,46.584908],[-90.415429,46.568478]]]}}, +{"type":"Feature","id":"56","properties":{"name":"Wyoming","density":5.851},"geometry":{"type":"Polygon","coordinates":[[[-109.080842,45.002073],[-105.91517,45.002073],[-104.058488,44.996596],[-104.053011,43.002989],[-104.053011,41.003906],[-105.728954,40.998429],[-107.919731,41.003906],[-109.04798,40.998429],[-111.047063,40.998429],[-111.047063,42.000709],[-111.047063,44.476286],[-111.05254,45.002073],[-109.080842,45.002073]]]}}, +{"type":"Feature","id":"72","properties":{"name":"Puerto Rico","density":1082 },"geometry":{"type":"Polygon","coordinates":[[[-66.448338,17.984326],[-66.771478,18.006234],[-66.924832,17.929556],[-66.985078,17.973372],[-67.209633,17.956941],[-67.154863,18.19245],[-67.269879,18.362235],[-67.094617,18.515589],[-66.957694,18.488204],[-66.409999,18.488204],[-65.840398,18.433435],[-65.632274,18.367712],[-65.626797,18.203403],[-65.730859,18.186973],[-65.834921,18.017187],[-66.234737,17.929556],[-66.448338,17.984326]]]}} +]}; diff --git a/index.html b/index.html new file mode 100644 index 0000000..33a08d9 --- /dev/null +++ b/index.html @@ -0,0 +1,440 @@ + + + + + + WebGIS Portfolio Hub | Pontianak Geo-Spatial Projects + + + + + + + + + + +
+ +
+ Geographic Information Systems +

WebGIS Portfolio Portal

+

A compilation of spatial visualization mapping applications representing Pontianak, West Kalimantan.

+
+ + +
+ + +
+
+
+ Project 1 +
+ + +
+
+

Pontianak SPBU Mapper

+

Interactive point mapping application for spatial distribution of petrol stations (SPBU) across Pontianak, complete with info window popups and marker listings.

+
+ PHP + MySQL + LeafletJS + HTML/CSS +
+
+ +
+ + +
+
+
+ Project 2 +
+ + +
+
+

Parsil Tanah & Jalan

+

Mapping portal for road networks (Polylines) and land certificate coordinates (Polygons) featuring automatic length, perimeter, and area calculations.

+
+ PHP + MySQL + LeafletJS + HTML/CSS +
+
+ +
+ + +
+
+
+ Project 3 +
+ + +
+
+

Choropleth Map Portal

+

A thematic map where geographical subareas of Pontianak are colored or shaded in proportion to demographic data, density, or other statistics.

+
+ PHP + MySQL + LeafletJS + Thematic Color +
+
+ +
+ + +
+
+
+ Final Project +
+ + +
+
+

Sistem WebGIS Poverty Map - Sinergi Umat

+

Flagship Knowledge Management mapping platform with multi-role dashboards, heatmaps, interactive widgets, spatial queries, and authentication.

+
+ Next.js 16 + React 19 + Supabase SSR + Leaflet & Heatmaps +
+
+ +
+ +
+
+ + + + + + + + diff --git a/parsil-tanah/db.php b/parsil-tanah/db.php new file mode 100644 index 0000000..3df18f7 --- /dev/null +++ b/parsil-tanah/db.php @@ -0,0 +1,13 @@ +setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); +} catch (PDOException $e) { + die("Database connection failed: " . $e->getMessage()); +} +?> \ No newline at end of file diff --git a/parsil-tanah/delete_jalan.php b/parsil-tanah/delete_jalan.php new file mode 100644 index 0000000..c03ebbb --- /dev/null +++ b/parsil-tanah/delete_jalan.php @@ -0,0 +1,27 @@ + 'error', 'message' => 'Method not allowed.']); + exit; +} + +$id = $_POST['id'] ?? null; +if ($id === null) { + http_response_code(400); + echo json_encode(['status' => 'error', 'message' => 'Missing id.']); + exit; +} + +$sql = "DELETE FROM tb_jalan WHERE id = ?"; +$stmt = $pdo->prepare($sql); + +if ($stmt->execute([(int)$id])) { + echo json_encode(['status' => 'success', 'message' => 'Jalan deleted.']); +} else { + http_response_code(500); + echo json_encode(['status' => 'error', 'message' => 'Failed to delete jalan.']); +} diff --git a/parsil-tanah/delete_parsil.php b/parsil-tanah/delete_parsil.php new file mode 100644 index 0000000..9310ac0 --- /dev/null +++ b/parsil-tanah/delete_parsil.php @@ -0,0 +1,27 @@ + 'error', 'message' => 'Method not allowed.']); + exit; +} + +$id = $_POST['id'] ?? null; +if ($id === null) { + http_response_code(400); + echo json_encode(['status' => 'error', 'message' => 'Missing id.']); + exit; +} + +$sql = "DELETE FROM tb_parsil WHERE id = ?"; +$stmt = $pdo->prepare($sql); + +if ($stmt->execute([(int)$id])) { + echo json_encode(['status' => 'success', 'message' => 'Parsil deleted.']); +} else { + http_response_code(500); + echo json_encode(['status' => 'error', 'message' => 'Failed to delete parsil.']); +} diff --git a/parsil-tanah/delete_spbu.php b/parsil-tanah/delete_spbu.php new file mode 100644 index 0000000..ad99a5d --- /dev/null +++ b/parsil-tanah/delete_spbu.php @@ -0,0 +1,28 @@ + "error", "message" => "Missing id."]); + exit; + } + + $sql = "DELETE FROM SPBU WHERE id = ?"; + $stmt = $pdo->prepare($sql); + + if ($stmt->execute([$id])) { + echo json_encode(["status" => "success", "message" => "Data deleted!"]); + } else { + http_response_code(500); + echo json_encode(["status" => "error", "message" => "Failed to delete data."]); + } +} else { + http_response_code(405); + echo json_encode(["status" => "error", "message" => "Method not allowed."]); +} +?> \ No newline at end of file diff --git a/parsil-tanah/get_jalan.php b/parsil-tanah/get_jalan.php new file mode 100644 index 0000000..91f0a01 --- /dev/null +++ b/parsil-tanah/get_jalan.php @@ -0,0 +1,10 @@ +query($sql); +$results = $stmt->fetchAll(PDO::FETCH_ASSOC); + +echo json_encode($results); diff --git a/parsil-tanah/get_parsil.php b/parsil-tanah/get_parsil.php new file mode 100644 index 0000000..858298a --- /dev/null +++ b/parsil-tanah/get_parsil.php @@ -0,0 +1,10 @@ +query($sql); +$results = $stmt->fetchAll(PDO::FETCH_ASSOC); + +echo json_encode($results); diff --git a/parsil-tanah/get_spbu.php b/parsil-tanah/get_spbu.php new file mode 100644 index 0000000..f72f7fc --- /dev/null +++ b/parsil-tanah/get_spbu.php @@ -0,0 +1,10 @@ +query($sql); +$results = $stmt->fetchAll(PDO::FETCH_ASSOC); + +header('Content-Type: application/json'); +echo json_encode($results); +?> \ No newline at end of file diff --git a/parsil-tanah/index.html b/parsil-tanah/index.html new file mode 100644 index 0000000..024688b --- /dev/null +++ b/parsil-tanah/index.html @@ -0,0 +1,1832 @@ + + + + + + SPBU Map + + + + + + + + + + + + + +
+ + + + +
+ +
+ + Status: Siap. +
+ + +
+ + + + + + +
+ + +
+ + + + +
+ + +
+
+
+ + +
+ + +
+

Edit SPBU

+
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ Latitude & Longitude are read-only. Gunakan Drag Mode di toolbar kanan bawah untuk memindahkan marker di peta. +
+
+ + +
+
+ + +
+
+
+ + +
+

+
+ + + + +
+ + +
+ +
+ + +
+ +
+ + +
+
+ Nilai kalkulasi di atas dihitung otomatis oleh peta dari hasil geometri Anda. +
+ +
+ + + +
+
+
+ + + + + + + \ No newline at end of file diff --git a/parsil-tanah/save_jalan.php b/parsil-tanah/save_jalan.php new file mode 100644 index 0000000..4abf558 --- /dev/null +++ b/parsil-tanah/save_jalan.php @@ -0,0 +1,38 @@ + 'error', 'message' => 'Method not allowed.']); + exit; +} + +$nama_jalan = $_POST['nama_jalan'] ?? null; +$status_jalan = $_POST['status_jalan'] ?? null; +$panjang_meter = $_POST['panjang_meter'] ?? null; +$koordinat = $_POST['koordinat'] ?? null; + +if ($nama_jalan === null || $status_jalan === null || $panjang_meter === null || $koordinat === null) { + http_response_code(400); + echo json_encode(['status' => 'error', 'message' => 'Missing required fields.']); + exit; +} + +$decoded = json_decode($koordinat, true); +if ($decoded === null) { + http_response_code(400); + echo json_encode(['status' => 'error', 'message' => 'Invalid koordinat JSON.']); + exit; +} + +$sql = "INSERT INTO tb_jalan (nama_jalan, status_jalan, panjang_meter, koordinat) VALUES (?, ?, ?, ?)"; +$stmt = $pdo->prepare($sql); + +if ($stmt->execute([$nama_jalan, $status_jalan, (float)$panjang_meter, $koordinat])) { + echo json_encode(['status' => 'success', 'message' => 'Jalan saved.']); +} else { + http_response_code(500); + echo json_encode(['status' => 'error', 'message' => 'Failed to save jalan.']); +} diff --git a/parsil-tanah/save_parsil.php b/parsil-tanah/save_parsil.php new file mode 100644 index 0000000..49e2033 --- /dev/null +++ b/parsil-tanah/save_parsil.php @@ -0,0 +1,38 @@ + 'error', 'message' => 'Method not allowed.']); + exit; +} + +$nama_pemilik = $_POST['nama_pemilik'] ?? null; +$status_kepemilikan = $_POST['status_kepemilikan'] ?? null; +$luas_m2 = $_POST['luas_m2'] ?? null; +$koordinat = $_POST['koordinat'] ?? null; + +if ($nama_pemilik === null || $status_kepemilikan === null || $luas_m2 === null || $koordinat === null) { + http_response_code(400); + echo json_encode(['status' => 'error', 'message' => 'Missing required fields.']); + exit; +} + +$decoded = json_decode($koordinat, true); +if ($decoded === null) { + http_response_code(400); + echo json_encode(['status' => 'error', 'message' => 'Invalid koordinat JSON.']); + exit; +} + +$sql = "INSERT INTO tb_parsil (nama_pemilik, status_kepemilikan, luas_m2, koordinat) VALUES (?, ?, ?, ?)"; +$stmt = $pdo->prepare($sql); + +if ($stmt->execute([$nama_pemilik, $status_kepemilikan, (float)$luas_m2, $koordinat])) { + echo json_encode(['status' => 'success', 'message' => 'Parsil saved.']); +} else { + http_response_code(500); + echo json_encode(['status' => 'error', 'message' => 'Failed to save parsil.']); +} diff --git a/parsil-tanah/save_spbu.php b/parsil-tanah/save_spbu.php new file mode 100644 index 0000000..c20cd47 --- /dev/null +++ b/parsil-tanah/save_spbu.php @@ -0,0 +1,32 @@ + "error", "message" => "Missing required fields."]); + exit; + } + + $sql = "INSERT INTO SPBU (nama, nomor, status, Latitude, Longitude) VALUES (?, ?, ?, ?, ?)"; + $stmt = $pdo->prepare($sql); + + if ($stmt->execute([$nama, $nomor, $status, $lat, $lng])) { + echo json_encode(["status" => "success", "message" => "SPBU Data Saved!"]); + } else { + http_response_code(500); + echo json_encode(["status" => "error", "message" => "Failed to save data."]); + } +} else { + http_response_code(405); + echo json_encode(["status" => "error", "message" => "Method not allowed."]); +} +?> \ No newline at end of file diff --git a/parsil-tanah/update_jalan.php b/parsil-tanah/update_jalan.php new file mode 100644 index 0000000..32a17db --- /dev/null +++ b/parsil-tanah/update_jalan.php @@ -0,0 +1,39 @@ + 'error', 'message' => 'Method not allowed.']); + exit; +} + +$id = $_POST['id'] ?? null; +$nama_jalan = $_POST['nama_jalan'] ?? null; +$status_jalan = $_POST['status_jalan'] ?? null; +$panjang_meter = $_POST['panjang_meter'] ?? null; +$koordinat = $_POST['koordinat'] ?? null; + +if ($id === null || $nama_jalan === null || $status_jalan === null || $panjang_meter === null || $koordinat === null) { + http_response_code(400); + echo json_encode(['status' => 'error', 'message' => 'Missing required fields.']); + exit; +} + +$decoded = json_decode($koordinat, true); +if ($decoded === null) { + http_response_code(400); + echo json_encode(['status' => 'error', 'message' => 'Invalid koordinat JSON.']); + exit; +} + +$sql = "UPDATE tb_jalan SET nama_jalan = ?, status_jalan = ?, panjang_meter = ?, koordinat = ? WHERE id = ?"; +$stmt = $pdo->prepare($sql); + +if ($stmt->execute([$nama_jalan, $status_jalan, (float)$panjang_meter, $koordinat, (int)$id])) { + echo json_encode(['status' => 'success', 'message' => 'Jalan updated.']); +} else { + http_response_code(500); + echo json_encode(['status' => 'error', 'message' => 'Failed to update jalan.']); +} diff --git a/parsil-tanah/update_parsil.php b/parsil-tanah/update_parsil.php new file mode 100644 index 0000000..66f11ae --- /dev/null +++ b/parsil-tanah/update_parsil.php @@ -0,0 +1,39 @@ + 'error', 'message' => 'Method not allowed.']); + exit; +} + +$id = $_POST['id'] ?? null; +$nama_pemilik = $_POST['nama_pemilik'] ?? null; +$status_kepemilikan = $_POST['status_kepemilikan'] ?? null; +$luas_m2 = $_POST['luas_m2'] ?? null; +$koordinat = $_POST['koordinat'] ?? null; + +if ($id === null || $nama_pemilik === null || $status_kepemilikan === null || $luas_m2 === null || $koordinat === null) { + http_response_code(400); + echo json_encode(['status' => 'error', 'message' => 'Missing required fields.']); + exit; +} + +$decoded = json_decode($koordinat, true); +if ($decoded === null) { + http_response_code(400); + echo json_encode(['status' => 'error', 'message' => 'Invalid koordinat JSON.']); + exit; +} + +$sql = "UPDATE tb_parsil SET nama_pemilik = ?, status_kepemilikan = ?, luas_m2 = ?, koordinat = ? WHERE id = ?"; +$stmt = $pdo->prepare($sql); + +if ($stmt->execute([$nama_pemilik, $status_kepemilikan, (float)$luas_m2, $koordinat, (int)$id])) { + echo json_encode(['status' => 'success', 'message' => 'Parsil updated.']); +} else { + http_response_code(500); + echo json_encode(['status' => 'error', 'message' => 'Failed to update parsil.']); +} diff --git a/parsil-tanah/update_spbu.php b/parsil-tanah/update_spbu.php new file mode 100644 index 0000000..34e12a1 --- /dev/null +++ b/parsil-tanah/update_spbu.php @@ -0,0 +1,45 @@ + "error", "message" => "Missing required fields."]); + exit; + } + + $params = [$nama, $nomor, $status]; + $sql = "UPDATE SPBU SET nama = ?, nomor = ?, status = ?"; + + // Optional location update (used for drag-to-move) + if ($lat !== null && $lng !== null && is_numeric($lat) && is_numeric($lng)) { + $sql .= ", Latitude = ?, Longitude = ?"; + $params[] = $lat; + $params[] = $lng; + } + + $sql .= " WHERE id = ?"; + $params[] = $id; + + $stmt = $pdo->prepare($sql); + + if ($stmt->execute($params)) { + echo json_encode(["status" => "success", "message" => "Data updated!"]); + } else { + http_response_code(500); + echo json_encode(["status" => "error", "message" => "Failed to update data."]); + } +} else { + http_response_code(405); + echo json_encode(["status" => "error", "message" => "Method not allowed."]); +} +?> \ No newline at end of file diff --git a/parsil-tanah/view.html b/parsil-tanah/view.html new file mode 100644 index 0000000..4af5068 --- /dev/null +++ b/parsil-tanah/view.html @@ -0,0 +1,240 @@ + + + + + + View Maps + + + + + + + + + + +
+
+

Legend

+

Halaman ini hanya untuk melihat data peta (read-only).

+ +
+ + + + \ No newline at end of file diff --git a/sistem-km-next/.gitignore b/sistem-km-next/.gitignore new file mode 100644 index 0000000..c93f0be --- /dev/null +++ b/sistem-km-next/.gitignore @@ -0,0 +1,48 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.* +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/versions + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# env files (can opt-in for committing if needed) +.env* + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +# markdown +*.md +!README.md +/Laporan +/sistem-km-old +*.sql \ No newline at end of file diff --git a/sistem-km-next/README.md b/sistem-km-next/README.md new file mode 100644 index 0000000..09a8a4d --- /dev/null +++ b/sistem-km-next/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.js`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. diff --git a/sistem-km-next/eslint.config.mjs b/sistem-km-next/eslint.config.mjs new file mode 100644 index 0000000..f443835 --- /dev/null +++ b/sistem-km-next/eslint.config.mjs @@ -0,0 +1,16 @@ +import { defineConfig, globalIgnores } from "eslint/config"; +import nextVitals from "eslint-config-next/core-web-vitals"; + +const eslintConfig = defineConfig([ + ...nextVitals, + // Override default ignores of eslint-config-next. + globalIgnores([ + // Default ignores of eslint-config-next: + ".next/**", + "out/**", + "build/**", + "next-env.d.ts", + ]), +]); + +export default eslintConfig; diff --git a/sistem-km-next/jsconfig.json b/sistem-km-next/jsconfig.json new file mode 100644 index 0000000..b8d6842 --- /dev/null +++ b/sistem-km-next/jsconfig.json @@ -0,0 +1,7 @@ +{ + "compilerOptions": { + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/sistem-km-next/next.config.mjs b/sistem-km-next/next.config.mjs new file mode 100644 index 0000000..e551f69 --- /dev/null +++ b/sistem-km-next/next.config.mjs @@ -0,0 +1,8 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + basePath: '/sistem-km-next', + /* config options here */ +}; + +export default nextConfig; + diff --git a/sistem-km-next/package-lock.json b/sistem-km-next/package-lock.json new file mode 100644 index 0000000..d5f9667 --- /dev/null +++ b/sistem-km-next/package-lock.json @@ -0,0 +1,6097 @@ +{ + "name": "sistem-km-next", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "sistem-km-next", + "version": "0.1.0", + "dependencies": { + "@supabase/ssr": "^0.10.3", + "@supabase/supabase-js": "^2.106.0", + "chart.js": "^4.5.1", + "leaflet": "^1.9.4", + "leaflet.heat": "^0.2.0", + "next": "16.2.6", + "react": "19.2.4", + "react-chartjs-2": "^5.3.1", + "react-dom": "19.2.4", + "react-leaflet": "^5.0.0" + }, + "devDependencies": { + "eslint": "^9", + "eslint-config-next": "16.2.6" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.3.tgz", + "integrity": "sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz", + "integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emnapi/core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.5" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", + "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.14.0", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.5", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", + "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", + "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/types": "^0.15.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", + "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.2", + "@humanfs/types": "^0.15.0", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/types": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", + "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@kurkle/color": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz", + "integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==", + "license": "MIT" + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@next/env": { + "version": "16.2.6", + "resolved": "https://registry.npmjs.org/@next/env/-/env-16.2.6.tgz", + "integrity": "sha512-gd8HoHN4ufj73WmR3JmVolrpJR47ILK6LouP5xElPglaVxir6e1a7VzvTvDWkOoPXT9rkkTzyCxBu4yeZfZwcw==", + "license": "MIT" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "16.2.6", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-16.2.6.tgz", + "integrity": "sha512-Z8l6o4JWKUl755x4R+wogD86KPeU+Ckw4K+SYG4kHeOJtRenDeK+OSbGcqZpDtbwn9DsJVdir2UxmwXuinUbUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "3.3.1" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "16.2.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.2.6.tgz", + "integrity": "sha512-ZJGkkcNfYgrrMkqOdZ7zoLa1TOy0qpcMfk/z4Mh/FKUz40gVO+HNQWqmLxf67Z5WB64DRp0dhEbyHfel+6sJUg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "16.2.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.2.6.tgz", + "integrity": "sha512-v/YLBHIY132Ced3puBJ7YJKw1lqsCrgcNo2aRJlCEyQrrCeRJlvGlnmxhPxNQI3KE3N1DN5r9TPNPvka3nq5RQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "16.2.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.2.6.tgz", + "integrity": "sha512-RPOvqlYBbcQjkz9VQQDZ2T2bARIjXZV1KFlt+V2Mr6SW/e4I9fcKsaA0hdyf2FHoTlsV2xnBd5Y912rP/1Ce6w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "16.2.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.2.6.tgz", + "integrity": "sha512-URUTu1+dMkxJsPFgm+OeEvq9wf5sujw0EvgYy80TDGHTSLTnIHeqb0Eu8A3sC95IRgjejQL+kC4mw+4yPxiAXA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "16.2.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.2.6.tgz", + "integrity": "sha512-DOj182mPV8G3UkrayLoREM5YEYI+Dk5wv7Ox9xl1fFibAELEsFD0lDPfHIeILlutMMfdyhlzYPELG3peuKaurw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "16.2.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.2.6.tgz", + "integrity": "sha512-HKQ5SP/V/ub73UvF7n/zeJlxk2kLmtL7Wzrg4WfmkjmNos5onJ2tKu7yZOPdL18A6Svfn3max29ym+ry7NkK4g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "16.2.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.2.6.tgz", + "integrity": "sha512-LZXpTlPyS5v7HhSmnvsLGP3iIYgYOBnc8r8ArlT55sGHV89bR2HlDdBjWQ+PY6SJMmk8TuVGFuxalnP3k/0Dwg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "16.2.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.2.6.tgz", + "integrity": "sha512-F0+4i0h9J6C4eE3EAPWsoCk7UW/dbzOjyzxY0qnDUOYFu6FFmdZ6l97/XdV3/Nz3VYyO7UWjyEJUXkGqcoXfMA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@react-leaflet/core": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-3.0.0.tgz", + "integrity": "sha512-3EWmekh4Nz+pGcr+xjf0KNyYfC3U2JjnkWsh0zcqaexYqmmB5ZhH37kz41JXGmKzpaMZCnPofBBm64i+YrEvGQ==", + "license": "Hippocratic-2.1", + "peerDependencies": { + "leaflet": "^1.9.0", + "react": "^19.0.0", + "react-dom": "^19.0.0" + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@supabase/auth-js": { + "version": "2.106.0", + "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.106.0.tgz", + "integrity": "sha512-JY7602OvjK2l3BjsQkpePpxR+6P0iG37gCrZNWAMhAuNh1iFnhGRwj/y5EshUG0INMPGFrj0UA9MErQ/kOEKFg==", + "license": "MIT", + "dependencies": { + "tslib": "2.8.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@supabase/functions-js": { + "version": "2.106.0", + "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.106.0.tgz", + "integrity": "sha512-ADIkJYH5w7HbnGVAAlCbyKoLF5QdfyezBLfYXpUqhxZOacK6YepOvnP/8p4p+50bhTPWp6VhDxu19KO7e/qU2g==", + "license": "MIT", + "dependencies": { + "tslib": "2.8.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@supabase/phoenix": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@supabase/phoenix/-/phoenix-0.4.2.tgz", + "integrity": "sha512-YSAGnmDAfuleFCVt3CeurQZAhxRfXWeZIIkwp7NhYzQ1UwW6ePSnzsFAiUm/mbCkfoCf70QQHKW/K6RKh52a4A==", + "license": "MIT" + }, + "node_modules/@supabase/postgrest-js": { + "version": "2.106.0", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-2.106.0.tgz", + "integrity": "sha512-vNKFAXQrtmUn7J3LbN+uMlt0jciAwRIBpdy6Do4DKrpf1xj0kJhbqXTX4y8ziewWUEEx8G5GPnDmprXXaO9f3w==", + "license": "MIT", + "dependencies": { + "tslib": "2.8.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@supabase/realtime-js": { + "version": "2.106.0", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.106.0.tgz", + "integrity": "sha512-mYZoaYpkyjlecixbvxCu0h3jw12uHfEcUqNdaRATNI8zQVI5arels+VJzAGcHwNiD+/Juv0OXIuk+M7SHsdI4A==", + "license": "MIT", + "dependencies": { + "@supabase/phoenix": "^0.4.2", + "tslib": "2.8.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@supabase/ssr": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@supabase/ssr/-/ssr-0.10.3.tgz", + "integrity": "sha512-ux2CJgX89h0Fz2lY7ZNafNG2SkXpyRc5dz77K9eKeBLPdtywQixKwIuetDeIViAJBp/buOUVmgj8PVesOklNpw==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.2" + }, + "peerDependencies": { + "@supabase/supabase-js": "^2.105.3" + } + }, + "node_modules/@supabase/storage-js": { + "version": "2.106.0", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.106.0.tgz", + "integrity": "sha512-BHc3nIjD3zfdDxBenphXrLJSoQ+qwo24VD96cVzmjBFbQVk5krvwRNUXrA5ozPplA3Vhlst2d/hy9R9ViqH2lg==", + "license": "MIT", + "dependencies": { + "iceberg-js": "^0.8.1", + "tslib": "2.8.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@supabase/supabase-js": { + "version": "2.106.0", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.106.0.tgz", + "integrity": "sha512-OOoo3sLj9iVXNp6b+fkyOfFeQrvvNy7nQbaONNf72dOaictUeS39hFDS9argIRTag6M3ZxIypNWcrDAwLgUihQ==", + "license": "MIT", + "dependencies": { + "@supabase/auth-js": "2.106.0", + "@supabase/functions-js": "2.106.0", + "@supabase/postgrest-js": "2.106.0", + "@supabase/realtime-js": "2.106.0", + "@supabase/storage-js": "2.106.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", + "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.4.tgz", + "integrity": "sha512-PegsU+XfyJJNjd4+u/k6f9yTyp0lEXXiPopUNobZcIAUJFGICFLN+sP0Rb3JehVmiij1Ph0dFGYqODoRo/2+6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.59.4", + "@typescript-eslint/type-utils": "8.59.4", + "@typescript-eslint/utils": "8.59.4", + "@typescript-eslint/visitor-keys": "8.59.4", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.59.4", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.59.4.tgz", + "integrity": "sha512-zORHqO/tuhxY1zWuTvMUqddRxpiFJ72xVfcNoWpqdLjs6lfPbuQBJuW4pk+49/uBMy7Ssr4bzgjiKmmDB1UbZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.59.4", + "@typescript-eslint/types": "8.59.4", + "@typescript-eslint/typescript-estree": "8.59.4", + "@typescript-eslint/visitor-keys": "8.59.4", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.4.tgz", + "integrity": "sha512-Ly00Vu4oAacfDeHp2Zg85ioNG6l8HG+tN1D7J+xTHSxu9y0awYKJ2zH1rFBn8ZSfuGK+7FxK3Cgl3uAz0aZZLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.59.4", + "@typescript-eslint/types": "^8.59.4", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.4.tgz", + "integrity": "sha512-mUeR/3H1WrTAddJrwut8OoPjfauaztMQmRwV5fQTUyNVJCLiUXXe4lGEyYIL2oFDpP7UtgbGJXCt72wT0z2S3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.59.4", + "@typescript-eslint/visitor-keys": "8.59.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.4.tgz", + "integrity": "sha512-DLCpnKgD4alVxTBSKulK+gU1KCqOgUXfDRDXh2mZgzokQKa/70ax93I2uVO3m/LLvIAtWZIFoiifudmIqAxpMA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.59.4.tgz", + "integrity": "sha512-uonTuPAAKr9XaBGqJ3LjYTh72zy5DyGesljO9gtmk/eFW0W1fRHjnwVYKB35Lm8d5Q5CluEW3gPHjTvZTmgrfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.59.4", + "@typescript-eslint/typescript-estree": "8.59.4", + "@typescript-eslint/utils": "8.59.4", + "debug": "^4.4.3", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.4.tgz", + "integrity": "sha512-F1o7WJcCq+bc8dwcO/YsSEOudAH8RDtaOhM6wcAQhcUsFhnWQl81JKy48q1hoxAU0qrzM89+31GYh1515Zde3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.4.tgz", + "integrity": "sha512-F+RuOmcDXo4+TPdfd/TCLS3m2nw8gE9XXyZLrA3JBfaA5tz9TtdkyD3YJFmPxulyc2cKbEok/CvFE3MgSLWnag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.59.4", + "@typescript-eslint/tsconfig-utils": "8.59.4", + "@typescript-eslint/types": "8.59.4", + "@typescript-eslint/visitor-keys": "8.59.4", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", + "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz", + "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.4.tgz", + "integrity": "sha512-cYXeNAUsG4lJo5dbc1FcKm+JwIWrj1/UpTORsC6tGMjEZ81DYcvIr9/ueikhMa/Y/gDQYGp+YX9/xQrXje5BJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.59.4", + "@typescript-eslint/types": "8.59.4", + "@typescript-eslint/typescript-estree": "8.59.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.4.tgz", + "integrity": "sha512-U3gxVaDVnuZKhSspW/MzMxE1kq7zOdc072FcSNoqA1I9p8HyKbBFfEHoWckBAMgNMph4MamwS5iTVzFmrnt8TQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.59.4", + "eslint-visitor-keys": "^5.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.12.0.tgz", + "integrity": "sha512-FmIJ5Bq2UUrpj2TrJiOvtfvgh98QqB3PKVqWrHp0SrYqlNSlch4YXToiiNK+mSTNFes07DipzT/JpJIq8xsOrg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.12.0.tgz", + "integrity": "sha512-XqE7sTuM4wquiiSptDC18/7SRh5LOQhmjRgu7j65T+m7lP0FzJQl0fSL+Zd7aATVJciVpcNkk0ml4hMwASvfXQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.12.0.tgz", + "integrity": "sha512-7aOfLOGYIh3Whvzv6fi3bA9aj8tuf7XDYbzTtsMeXixdRGLT6luR1htBSbjvWXyCn4TbKgz5SDa5gURYdlM0GQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.12.0.tgz", + "integrity": "sha512-2NiHBibXXDCBnjpzpwHoq4Fs6kvt9QYD6ravNA3D8KQaKr7r0qu6CyvqJfDLYssijCSs2UwEmkKcAmCxP/HOXA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.12.0.tgz", + "integrity": "sha512-x/k1Vy1QoDrOYLJzQg2/WsRGQPS0Saw4basKqjZDQlPdkSApsvDdB9h8oRQDUTJCCazSlqLm+Ry9NQFlJicacQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.12.0.tgz", + "integrity": "sha512-zuHruxqemJqM2lrVwIgw7o3/0rLrskWDqVRAc8974nNy3cZR2N9cfatIE5PzmSNeRSafh0rAaS3ev294yCyj7A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.12.0.tgz", + "integrity": "sha512-s2WgKQXQXhV14OT3jNoS1jN4c+8Mvamxq6jG3L7Igl8teXaGZvjI3RfZksqoxL3UAEin9UkZSApXZ+shocI1ZQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.12.0.tgz", + "integrity": "sha512-ghMWlxxa3aCW9sk5FpzrTXSo/NSanKs/RovDal5q+T2Q+dAKLFyGXWmQ6AAMsl6k/TgXHw+jj9Q9sELLx9mfJw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.12.0.tgz", + "integrity": "sha512-ldOaKTzXNIHjGzRtzgfh+g6mqt30Q8hnR+EFdfeKYgeuMqnwsllk6IaN2kadvuRRQNBr1ycI45pmgGA5EUxzuA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.12.0.tgz", + "integrity": "sha512-PQRjWSz5v+7K9CHh8a11t6JHfmuG2o3ozHgj/9IsEtSMBc/S8p8eZoJO0+i7FUq0JEjnIfLRLUADXOF/2jx4SQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.12.0.tgz", + "integrity": "sha512-slpQUuAp3+I0jsFyHxBaqETZSe8+OaG019nDOCBD0ZqZSNv0z7lMXKDgpH9BsSD+1Z5BSvV1QUbWS/MbGxpI+A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.12.0.tgz", + "integrity": "sha512-v30e31aTFDfl1R+On53cNpd4sMQ+lzYTE4dxVia1B++Ds+27lEZSOlwjPfPN20mxb9ENis1mwUW+5SO6OzXJcA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.12.0.tgz", + "integrity": "sha512-yn6cnDhoH1IOgYvLnTeu7iAf1iknc7SXjqyLPCr3umbaeuFD8Uy2x3c3F82x2SDVEX/JpEkAGNd18lUBw4w9aQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.12.0.tgz", + "integrity": "sha512-M0zUTXIoRbPdWmLOs8hG3CnLVKTMbcAkC1++GJzjLAlGfH5gvhbePa6+TFniTgqiizGr0/3fdXI7R8aNwy/N4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.12.0.tgz", + "integrity": "sha512-GJUwROe22qValEd7JRT7FG/u36Iv/IL9AedRw7pEdbc8KcfbODcygvQHAVigBFReylyLe8UkPYxJy7F5Sm+Ldw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-openharmony-arm64": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-openharmony-arm64/-/resolver-binding-openharmony-arm64-1.12.0.tgz", + "integrity": "sha512-UwIkgOapYxrSPf8KTOtXeZKJD69upM9hQQuty1W0wQAJwsZrJSXFEoxuJ6lcjmEp/iJvx5PUknMqqBXJlzPTyw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.12.0.tgz", + "integrity": "sha512-hE7r1jGIYXTR+inEZxKpUUT+P44RS/J5fz6x5UVvLjVsmHlkpeHOetRs5eglgoPskXwfROZlChCWBq+UoS+6Qg==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.12.0.tgz", + "integrity": "sha512-zkwy74gxj0z6G6KxCaVsQJQDlLs8g3sUYtNJYrmThB0GHsK7cmCFtRLLqaeFUvf+K2lWG8KXv1PpQr18NgNOWw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.12.0.tgz", + "integrity": "sha512-dDLr9aigi1kz+sjL9o/TSVe+5Xf5zjSrXlSJALCJE2hY/J2Ml1qKxmFZYJVEWvp72hRjIxnHH83o0cPXLkJqiA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.12.0.tgz", + "integrity": "sha512-xLJGnOAnh4eYwZLoPW27FsCAI1zwgXpeOsxUUYRNjbSmEip5j4B8fPazsoicTN+YcaAET64JyuMvazxZUe/Wzg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.11.4", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.4.tgz", + "integrity": "sha512-KunSNx+TVpkAw/6ULfhnx+HWRecjqZGTOyquAoWHYLRSdK1tB5Ihce1ZW+UY3fj33bYAFWPu7W/GRSmmrCGuxA==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.31", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.31.tgz", + "integrity": "sha512-MujYO3eP72uvmSE0i4wltsodRfIpZATP3jvzRNRGGxgzId7aVocVJJV3nf01qnzzKFGxQVC9bpWxl5cjxTr/7Q==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001793", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001793.tgz", + "integrity": "sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chart.js": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.5.1.tgz", + "integrity": "sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw==", + "license": "MIT", + "dependencies": { + "@kurkle/color": "^0.3.0" + }, + "engines": { + "pnpm": ">=8" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.357", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.357.tgz", + "integrity": "sha512-NHlTIQDK8fmVwHwuIzmXYEJ1Ewq3D9wDNc0cWXxDGysP6Pb21giwGNkxiTifyKy/4SoPuN5l6GLP1W9Sv7zB2g==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-abstract": { + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", + "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.3.2.tgz", + "integrity": "sha512-HVLACW1TppGYjJ8H6/jqH/pqOtKRw6wMlrB23xfExmFWxFquAIWCmwoLsOyN96K4a5KbmOf5At9ZUO3GZbetAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.2", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.1.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.3.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.5", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.2", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "9.39.4", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-next": { + "version": "16.2.6", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-16.2.6.tgz", + "integrity": "sha512-z2ELYSkyrrJ6cuunTU8vhsT/RpouPkjaSah06nVW6Rg2Hpg0Vs8s497/e5s8G8qtdp4ccsiovz5P1rv+5VSW2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@next/eslint-plugin-next": "16.2.6", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.32.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.37.0", + "eslint-plugin-react-hooks": "^7.0.0", + "globals": "16.4.0", + "typescript-eslint": "^8.46.0" + }, + "peerDependencies": { + "eslint": ">=9.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-config-next/node_modules/globals": { + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", + "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz", + "integrity": "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.16.1", + "resolve": "^2.0.0-next.6" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", + "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^2.0.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.13", + "unrs-resolver": "^1.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-import-resolver-typescript" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.1.1.tgz", + "integrity": "sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.24.4", + "@babel/parser": "^7.24.4", + "hermes-parser": "^0.25.1", + "zod": "^3.25.0 || ^4.0.0", + "zod-validation-error": "^3.5.0 || ^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.0.tgz", + "integrity": "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hermes-estree": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", + "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", + "dev": true, + "license": "MIT" + }, + "node_modules/hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", + "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hermes-estree": "0.25.1" + } + }, + "node_modules/iceberg-js": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/iceberg-js/-/iceberg-js-0.8.1.tgz", + "integrity": "sha512-1dhVQZXhcHje7798IVM+xoo/1ZdVfzOMIc8/rgVSijRK38EDqOJoGula9N/8ZI5RD8QTxNQtK/Gozpr+qUqRRA==", + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bun-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.7.1" + } + }, + "node_modules/is-bun-module/node_modules/semver": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz", + "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/leaflet": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", + "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==", + "license": "BSD-2-Clause" + }, + "node_modules/leaflet.heat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/leaflet.heat/-/leaflet.heat-0.2.0.tgz", + "integrity": "sha512-Cd5PbAA/rX3X3XKxfDoUGi9qp78FyhWYurFg3nsfhntcM/MCNK08pRkf4iEenO1KNqwVPKCmkyktjW3UD+h9bQ==" + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/napi-postinstall": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", + "dev": true, + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/next": { + "version": "16.2.6", + "resolved": "https://registry.npmjs.org/next/-/next-16.2.6.tgz", + "integrity": "sha512-qOVgKJg1+At15NpeUP+eJgCHvTCgXsogweq87Ri/Ix7PkqQHg4sdaXmSFqKlgaIXE4kW0g25LE68W87UANlHtw==", + "license": "MIT", + "dependencies": { + "@next/env": "16.2.6", + "@swc/helpers": "0.5.15", + "baseline-browser-mapping": "^2.9.19", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=20.9.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "16.2.6", + "@next/swc-darwin-x64": "16.2.6", + "@next/swc-linux-arm64-gnu": "16.2.6", + "@next/swc-linux-arm64-musl": "16.2.6", + "@next/swc-linux-x64-gnu": "16.2.6", + "@next/swc-linux-x64-musl": "16.2.6", + "@next/swc-win32-arm64-msvc": "16.2.6", + "@next/swc-win32-x64-msvc": "16.2.6", + "sharp": "^0.34.5" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.51.1", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/node-exports-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.0.tgz", + "integrity": "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.flatmap": "^1.3.3", + "es-errors": "^1.3.0", + "object.entries": "^1.1.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/node-releases": { + "version": "2.0.44", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.44.tgz", + "integrity": "sha512-5WUyunoPMsvvEhS8AxHtRzP+oA8UCkJ7YRxatWKjngndhDGLiqEVAQKWjFAiAiuL8zMRGzGSJxFnLetoa43qGQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", + "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-chartjs-2": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-5.3.1.tgz", + "integrity": "sha512-h5IPXKg9EXpjoBzUfyWJvllMjG2mQ4EiuHQFhms/AjUm0XSZHhyRy2xVmLXHKrtcdrPO4mnGqRtYoD0vp95A0A==", + "license": "MIT", + "peerDependencies": { + "chart.js": "^4.1.1", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.4" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/react-leaflet": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-5.0.0.tgz", + "integrity": "sha512-CWbTpr5vcHw5bt9i4zSlPEVQdTVcML390TjeDG0cK59z1ylexpqC6M1PJFjV8jD7CF+ACBFsLIDs6DRMoLEofw==", + "license": "Hippocratic-2.1", + "dependencies": { + "@react-leaflet/core": "^3.0.0" + }, + "peerDependencies": { + "leaflet": "^1.9.0", + "react": "^19.0.0", + "react-dom": "^19.0.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "2.0.0-next.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz", + "integrity": "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.2", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz", + "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" + } + }, + "node_modules/sharp/node_modules/semver": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz", + "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stable-hash": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript-eslint": { + "version": "8.59.4", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.59.4.tgz", + "integrity": "sha512-Rw6+44QNFaXtgHSjPy+Kw8hrJniMYzR85E9yLmOLcfZ91/rz+JXQbDTCmc6ccxMPY6K6PgAq26f0JCBfR7LIPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.59.4", + "@typescript-eslint/parser": "8.59.4", + "@typescript-eslint/typescript-estree": "8.59.4", + "@typescript-eslint/utils": "8.59.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unrs-resolver": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.12.0.tgz", + "integrity": "sha512-hiJjN9x3O/SF2yGpNX7swfg24bi4t+uqEww16EeH9LT2I6mkGNf8uZvAS9PL1pvkA/fBagTaxbgHfYQPRfahuQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "napi-postinstall": "^0.3.4" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.12.0", + "@unrs/resolver-binding-android-arm64": "1.12.0", + "@unrs/resolver-binding-darwin-arm64": "1.12.0", + "@unrs/resolver-binding-darwin-x64": "1.12.0", + "@unrs/resolver-binding-freebsd-x64": "1.12.0", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.12.0", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.12.0", + "@unrs/resolver-binding-linux-arm64-gnu": "1.12.0", + "@unrs/resolver-binding-linux-arm64-musl": "1.12.0", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.12.0", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.12.0", + "@unrs/resolver-binding-linux-riscv64-musl": "1.12.0", + "@unrs/resolver-binding-linux-s390x-gnu": "1.12.0", + "@unrs/resolver-binding-linux-x64-gnu": "1.12.0", + "@unrs/resolver-binding-linux-x64-musl": "1.12.0", + "@unrs/resolver-binding-openharmony-arm64": "1.12.0", + "@unrs/resolver-binding-wasm32-wasi": "1.12.0", + "@unrs/resolver-binding-win32-arm64-msvc": "1.12.0", + "@unrs/resolver-binding-win32-ia32-msvc": "1.12.0", + "@unrs/resolver-binding-win32-x64-msvc": "1.12.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", + "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-validation-error": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", + "integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + } + } + } +} diff --git a/sistem-km-next/package.json b/sistem-km-next/package.json new file mode 100644 index 0000000..5f5d212 --- /dev/null +++ b/sistem-km-next/package.json @@ -0,0 +1,27 @@ +{ + "name": "sistem-km-next", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "eslint" + }, + "dependencies": { + "@supabase/ssr": "^0.10.3", + "@supabase/supabase-js": "^2.106.0", + "chart.js": "^4.5.1", + "leaflet": "^1.9.4", + "leaflet.heat": "^0.2.0", + "next": "16.2.6", + "react": "19.2.4", + "react-chartjs-2": "^5.3.1", + "react-dom": "19.2.4", + "react-leaflet": "^5.0.0" + }, + "devDependencies": { + "eslint": "^9", + "eslint-config-next": "16.2.6" + } +} diff --git a/sistem-km-next/public/file.svg b/sistem-km-next/public/file.svg new file mode 100644 index 0000000..004145c --- /dev/null +++ b/sistem-km-next/public/file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/sistem-km-next/public/globe.svg b/sistem-km-next/public/globe.svg new file mode 100644 index 0000000..567f17b --- /dev/null +++ b/sistem-km-next/public/globe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/sistem-km-next/public/next.svg b/sistem-km-next/public/next.svg new file mode 100644 index 0000000..5174b28 --- /dev/null +++ b/sistem-km-next/public/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/sistem-km-next/public/pontianak_map.png b/sistem-km-next/public/pontianak_map.png new file mode 100644 index 0000000..0287edc Binary files /dev/null and b/sistem-km-next/public/pontianak_map.png differ diff --git a/sistem-km-next/public/vercel.svg b/sistem-km-next/public/vercel.svg new file mode 100644 index 0000000..7705396 --- /dev/null +++ b/sistem-km-next/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/sistem-km-next/public/window.svg b/sistem-km-next/public/window.svg new file mode 100644 index 0000000..b2b2a44 --- /dev/null +++ b/sistem-km-next/public/window.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/sistem-km-next/scripts/refactor.js b/sistem-km-next/scripts/refactor.js new file mode 100644 index 0000000..44fa256 --- /dev/null +++ b/sistem-km-next/scripts/refactor.js @@ -0,0 +1,104 @@ +const fs = require('fs'); +let code = fs.readFileSync('src/components/Dashboard.js', 'utf8'); + +const imports = `import SidebarControls from './dashboard/SidebarControls'; +import StatsPanel from './dashboard/StatsPanel'; +import ApprovalQueueModal from './dashboard/modals/ApprovalQueueModal'; +import UserProvisioningModal from './dashboard/modals/UserProvisioningModal'; +import DonationModal from './dashboard/modals/DonationModal'; +import HubFormModal from './dashboard/modals/HubFormModal'; +import HouseholdFormModal from './dashboard/modals/HouseholdFormModal'; +`; + +code = code.replace("import { useRouter } from 'next/navigation';", "import { useRouter } from 'next/navigation';\n" + imports); + +const leftPanelStart = code.indexOf('{/* Left Panel (Controls) */}'); +const leftPanelEnd = code.indexOf('{/* Right Panel (Stats) */}'); + +if (leftPanelStart > -1 && leftPanelEnd > -1) { + const newLeftPanel = `{/* Left Panel (Controls) */} +
+
+ Controls + +
+ + +
+ + `; + + code = code.substring(0, leftPanelStart) + newLeftPanel + code.substring(leftPanelEnd); +} + +const rightPanelStart = code.indexOf('{/* Right Panel (Stats) */}'); +const rightPanelEnd = code.indexOf('{/* Add Location Floating Button */}'); + +if (rightPanelStart > -1 && rightPanelEnd > -1) { + const newRightPanel = `{/* Right Panel (Stats) */} + + + `; + + code = code.substring(0, rightPanelStart) + newRightPanel + code.substring(rightPanelEnd); +} + +const modalStartIndex = code.indexOf('{/* Hub Modal */}'); + +if (modalStartIndex > -1) { + const newModals = ` + + + + + + + + + + + ); +}`; + + code = code.substring(0, modalStartIndex) + newModals; +} + +fs.writeFileSync('src/components/Dashboard.js', code); +console.log('Dashboard.js successfully refactored'); diff --git a/sistem-km-next/scripts/repair.js b/sistem-km-next/scripts/repair.js new file mode 100644 index 0000000..43d5bb2 --- /dev/null +++ b/sistem-km-next/scripts/repair.js @@ -0,0 +1,169 @@ +const fs = require('fs'); + +let code = fs.readFileSync('src/components/Dashboard.js', 'utf8'); + +// 1. ADD MISSING STATE AND FUNCTIONS FOR USER PROVISIONING +const stateIndex = code.indexOf('const [isEditMode, setIsEditMode] = useState(false);'); +if (stateIndex > -1) { + const userStates = ` + const [showUserModal, setShowUserModal] = useState(false); + const [usersList, setUsersList] = useState([]); + const [userFormData, setUserFormData] = useState({ + email: '', + password: '', + full_name: '', + role: 'pic' + }); + const [isSubmittingUser, setIsSubmittingUser] = useState(false); + + const fetchUsers = async () => { + try { + const res = await fetch('/api/users'); + if (res.ok) { + const data = await res.json(); + setUsersList(data.users || []); + } + } catch (e) { console.error('Error fetching users:', e); } + }; + + const handleCreateUser = async (e) => { + e.preventDefault(); + setIsSubmittingUser(true); + try { + const res = await fetch('/api/users', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(userFormData) + }); + if (res.ok) { + alert('User created successfully'); + fetchUsers(); + setUserFormData({ email: '', password: '', full_name: '', role: 'pic' }); + setShowUserModal(false); + } else { + const data = await res.json(); + alert('Failed to create user: ' + data.error); + } + } catch (e) { alert('Error: ' + e.message); } + setIsSubmittingUser(false); + }; + + const handleDeleteUser = async (id) => { + if (!confirm('Are you sure you want to delete this user?')) return; + try { + const res = await fetch(\`/api/users?id=\${id}\`, { method: 'DELETE' }); + if (res.ok) fetchUsers(); + else alert('Failed to delete user'); + } catch (e) { alert('Error deleting user'); } + }; + +`; + code = code.substring(0, stateIndex) + userStates + code.substring(stateIndex); +} + +// 2. REMOVE isPointInPolygon AND getKecamatanForPoint +code = code.replace(/const isPointInPolygon = [\s\S]*?return null;\n};\n/, ''); + +// 3. FIX PostGIS USAGES (remove getKecamatanForPoint calls) +code = code.replace(/const calculatedKec = getKecamatanForPoint[^;]+;/g, ''); +code = code.replace(/hh\.sub_district \|\| calculatedKec \|\| subDistrictsList\[idx % subDistrictsList\.length\]/g, "hh.sub_district || 'Belum Terpetakan'"); +code = code.replace(/hh\.sub_district = calculatedKec \|\| hh\.sub_district \|\| subDistrictsList\[idx % subDistrictsList\.length\];/g, "hh.sub_district = hh.sub_district || 'Belum Terpetakan';"); + +// 4. ADD MODULAR IMPORTS +const imports = `import SidebarControls from './dashboard/SidebarControls'; +import StatsPanel from './dashboard/StatsPanel'; +import ApprovalQueueModal from './dashboard/modals/ApprovalQueueModal'; +import UserProvisioningModal from './dashboard/modals/UserProvisioningModal'; +import DonationModal from './dashboard/modals/DonationModal'; +import HubFormModal from './dashboard/modals/HubFormModal'; +import HouseholdFormModal from './dashboard/modals/HouseholdFormModal'; +`; +code = code.replace("import { useRouter } from 'next/navigation';", "import { useRouter } from 'next/navigation';\n" + imports); + +// 5. REPLACE LEFT PANEL +const leftPanelStart = code.indexOf('{/* Left Panel (Controls) */}'); +const leftPanelEnd = code.indexOf('{/* Right Panel (Stats) */}'); +if (leftPanelStart > -1 && leftPanelEnd > -1) { + const newLeftPanel = `{/* Left Panel (Controls) */} +
+
+ Controls + +
+ + +
+ + `; + code = code.substring(0, leftPanelStart) + newLeftPanel + code.substring(leftPanelEnd); +} + +// 6. REPLACE RIGHT PANEL +const rightPanelStart = code.indexOf('{/* Right Panel (Stats) */}'); +const rightPanelEnd = code.indexOf('{/* Add Location Floating Button */}'); +if (rightPanelStart > -1 && rightPanelEnd > -1) { + const newRightPanel = `{/* Right Panel (Stats) */} + + + `; + code = code.substring(0, rightPanelStart) + newRightPanel + code.substring(rightPanelEnd); +} + +// 7. REPLACE MODALS +const modalStartIndex = code.indexOf('{/* Hub Modal */}'); +if (modalStartIndex > -1) { + const newModals = `{/* Hub Modal */} + + + + + + + + + + + ); +}`; + code = code.substring(0, modalStartIndex) + newModals; +} + +fs.writeFileSync('src/components/Dashboard.js', code); +console.log('Dashboard.js completely restored and refactored!'); diff --git a/sistem-km-next/scripts/upload_subdistricts.js b/sistem-km-next/scripts/upload_subdistricts.js new file mode 100644 index 0000000..1659b86 --- /dev/null +++ b/sistem-km-next/scripts/upload_subdistricts.js @@ -0,0 +1,75 @@ +const fs = require('fs'); +const { createClient } = require('@supabase/supabase-js'); + +// Parse .env.local +const envFile = fs.readFileSync('.env.local', 'utf8'); +const envVars = {}; +envFile.split('\n').forEach(line => { + const match = line.match(/^([^=]+)=(.*)$/); + if (match) envVars[match[1]] = match[2]; +}); + +async function main() { + const supabaseUrl = envVars.NEXT_PUBLIC_SUPABASE_URL; + const supabaseKey = envVars.SUPABASE_SERVICE_ROLE_KEY; + + if (!supabaseUrl || !supabaseKey) { + console.error('Missing Supabase credentials in .env.local'); + process.exit(1); + } + + const supabase = createClient(supabaseUrl, supabaseKey); + + // 1. Upload Sub-districts + console.log('Reading GeoJSON...'); + const geojsonRaw = fs.readFileSync('src/lib/Admin_Kecamatan.json', 'utf8'); + const geojson = JSON.parse(geojsonRaw); + + for (const feature of geojson.features) { + const name = feature.properties?.Ket; + if (!name) continue; + + let geom = feature.geometry; + if (geom.type === 'Polygon') { + geom = { + type: 'MultiPolygon', + coordinates: [geom.coordinates] + }; + } + + console.log(`Uploading ${name}...`); + // Supabase auto-casts GeoJSON objects to PostGIS geometry during insert + const { error } = await supabase.from('sub_districts').upsert( + { name: name, geom: geom }, + { onConflict: 'name' } + ); + + if (error) { + console.error(`Failed to upload ${name}:`, error.message); + } else { + console.log(`Success: ${name}`); + } + } + + // 2. Trigger updates on existing households to populate the sub_district column + console.log('Triggering updates on existing households to populate sub_district...'); + const { data: households, error: fetchErr } = await supabase.from('households').select('id, location'); + + if (fetchErr) { + console.error('Error fetching households:', fetchErr); + } else if (households && households.length > 0) { + console.log(`Found ${households.length} households. Updating...`); + for (const hh of households) { + // Touching the row will fire the trigger + const { error: upErr } = await supabase.from('households').update({ location: hh.location }).eq('id', hh.id); + if (upErr) console.error(`Error updating HH ${hh.id}:`, upErr.message); + } + console.log('Completed household updates.'); + } else { + console.log('No households found to update.'); + } + + console.log('Migration complete.'); +} + +main(); diff --git a/sistem-km-next/src/app/api/hubs/route.js b/sistem-km-next/src/app/api/hubs/route.js new file mode 100644 index 0000000..3ee28ab --- /dev/null +++ b/sistem-km-next/src/app/api/hubs/route.js @@ -0,0 +1,67 @@ +import { createClient } from '@supabase/supabase-js'; +import { NextResponse } from 'next/server'; + +export async function DELETE(request) { + try { + const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL; + const supabaseServiceKey = process.env.SUPABASE_SERVICE_ROLE_KEY; + + if (!supabaseServiceKey) { + return NextResponse.json({ error: 'Service role key not configured' }, { status: 500 }); + } + + const supabaseAdmin = createClient(supabaseUrl, supabaseServiceKey); + + // Get Hub ID + const { searchParams } = new URL(request.url); + const id = searchParams.get('id'); + + if (!id) { + return NextResponse.json({ error: 'Missing hub id' }, { status: 400 }); + } + + // 1. Fetch Hub to identify connected users (pic_id & head_id) + const { data: hub, error: fetchErr } = await supabaseAdmin + .from('hubs') + .select('pic_id, head_id') + .eq('id', id) + .single(); + + if (fetchErr) { + console.error(`Failed to fetch hub ${id}:`, fetchErr); + return NextResponse.json({ error: 'Hub not found' }, { status: 404 }); + } + + // 2. Delete connected accounts if they exist + if (hub.pic_id) { + try { + const { error: delPicErr } = await supabaseAdmin.auth.admin.deleteUser(hub.pic_id); + if (delPicErr) console.error(`Error deleting PIC user ${hub.pic_id} from Auth:`, delPicErr); + } catch (err) { + console.error(`Failed to delete PIC user ${hub.pic_id}:`, err); + } + } + + if (hub.head_id) { + try { + const { error: delHeadErr } = await supabaseAdmin.auth.admin.deleteUser(hub.head_id); + if (delHeadErr) console.error(`Error deleting Head user ${hub.head_id} from Auth:`, delHeadErr); + } catch (err) { + console.error(`Failed to delete Head user ${hub.head_id}:`, err); + } + } + + // 3. Delete the Hub (cascades donations, sets household assignments to NULL) + const { error: deleteErr } = await supabaseAdmin + .from('hubs') + .delete() + .eq('id', id); + + if (deleteErr) throw deleteErr; + + return NextResponse.json({ success: true }); + } catch (error) { + console.error('Hubs API DELETE Error:', error); + return NextResponse.json({ error: error.message }, { status: 500 }); + } +} diff --git a/sistem-km-next/src/app/api/stats/route.js b/sistem-km-next/src/app/api/stats/route.js new file mode 100644 index 0000000..86bcd94 --- /dev/null +++ b/sistem-km-next/src/app/api/stats/route.js @@ -0,0 +1,151 @@ +import { createClient } from '@supabase/supabase-js'; +import { NextResponse } from 'next/server'; +import kecamatanData from '@/lib/Admin_Kecamatan.json'; + +const isPointInPolygon = (point, polygon) => { + const x = point[0], y = point[1]; + let inside = false; + for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) { + const xi = polygon[i][0], yi = polygon[i][1]; + const xj = polygon[j][0], yj = polygon[j][1]; + const intersect = ((yi > y) !== (yj > y)) + && (x < (xj - xi) * (y - yi) / (yj - yi) + xi); + if (intersect) inside = !inside; + } + return inside; +}; + +const getKecamatanForPoint = (lat, lng) => { + if (!kecamatanData || !kecamatanData.features) return null; + for (const feature of kecamatanData.features) { + const name = feature.properties?.Ket; + const geom = feature.geometry; + if (!name || !geom) continue; + + if (geom.type === 'Polygon') { + if (isPointInPolygon([lng, lat], geom.coordinates[0])) { + return name; + } + } else if (geom.type === 'MultiPolygon') { + for (const polygonCoords of geom.coordinates) { + if (isPointInPolygon([lng, lat], polygonCoords[0])) { + return name; + } + } + } + } + return null; +}; + +const parseLocation = (loc) => { + if (!loc) return { lat: 0, lng: 0 }; + if (typeof loc === 'string') { + const match = loc.match(/POINT\(([^ ]+) ([^ ]+)\)/); + if (match) return { lng: parseFloat(match[1]), lat: parseFloat(match[2]) }; + } else if (loc.coordinates) { + return { lng: loc.coordinates[0], lat: loc.coordinates[1] }; + } + return { lat: 0, lng: 0 }; +}; + +// Calculate distance in meters between two points (Haversine formula approximation equivalent to Leaflet's distance) +const distanceTo = (lat1, lon1, lat2, lon2) => { + const R = 6371e3; // metres + const φ1 = lat1 * Math.PI/180; // φ, λ in radians + const φ2 = lat2 * Math.PI/180; + const Δφ = (lat2-lat1) * Math.PI/180; + const Δλ = (lon2-lon1) * Math.PI/180; + + const a = Math.sin(Δφ/2) * Math.sin(Δφ/2) + + Math.cos(φ1) * Math.cos(φ2) * + Math.sin(Δλ/2) * Math.sin(Δλ/2); + const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); + + return R * c; +}; + +export async function GET() { + try { + const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL; + const supabaseServiceKey = process.env.SUPABASE_SERVICE_ROLE_KEY; + + if (!supabaseServiceKey) { + return NextResponse.json({ error: 'Service role key not configured' }, { status: 500 }); + } + + const supabaseAdmin = createClient(supabaseUrl, supabaseServiceKey); + + // Fetch all hubs and households using admin privileges + const { data: hubsData, error: hubsErr } = await supabaseAdmin.from('hubs').select('*'); + const { data: hhData, error: hhErr } = await supabaseAdmin.from('households').select('*'); + + if (hubsErr) throw hubsErr; + if (hhErr) throw hhErr; + + const parsedHubs = (hubsData || []).map(hub => { + const { lat, lng } = parseLocation(hub.location); + return { ...hub, lat, lng, radius: hub.radius_meter }; + }); + + let coveredCount = 0; + const typeCounts = {}; + const subDistrictsMap = {}; + const subDistrictsList = ['Pontianak Barat', 'Pontianak Kota', 'Pontianak Selatan', 'Pontianak Tenggara', 'Pontianak Timur', 'Pontianak Utara']; + + subDistrictsList.forEach(sub => { + subDistrictsMap[sub] = { covered: 0, uncovered: 0 }; + }); + + (hhData || []).forEach((hh, idx) => { + const { lat, lng } = parseLocation(hh.location); + + let closestHub = null; + let minDistance = Infinity; + + parsedHubs.forEach(hub => { + const dist = distanceTo(lat, lng, hub.lat, hub.lng); + const hubRadius = parseInt(hub.radius) || 500; + if (dist <= hubRadius && dist < minDistance) { + minDistance = dist; + closestHub = hub; + } + }); + + const covered = !!closestHub; + if (covered) { + coveredCount++; + const type = closestHub.type; + typeCounts[type] = (typeCounts[type] || 0) + 1; + } + + // Sub-district logic (now provided by PostGIS database trigger with dynamic backend JS fallback!) + let sub = hh.sub_district; + if (!sub || sub === 'Belum Terpetakan') { + const coords = parseLocation(hh.location); + sub = getKecamatanForPoint(coords.lat, coords.lng) || 'Belum Terpetakan'; + } + + if (!subDistrictsMap[sub]) subDistrictsMap[sub] = { covered: 0, uncovered: 0 }; + + if (covered) subDistrictsMap[sub].covered++; + else subDistrictsMap[sub].uncovered++; + }); + + const total = hhData ? hhData.length : 0; + const uncoveredCount = total - coveredCount; + const equalityIndex = total > 0 ? Math.round((coveredCount / total) * 100) : 0; + + return NextResponse.json({ + hubsCount: parsedHubs.length, + coveredCount, + uncoveredCount, + equalityIndex, + subDistrictsMap, + typeCounts + }); + + } catch (error) { + console.error('Stats API Error:', error); + return NextResponse.json({ error: error.message }, { status: 500 }); + } +} diff --git a/sistem-km-next/src/app/api/users/route.js b/sistem-km-next/src/app/api/users/route.js new file mode 100644 index 0000000..e8f6c64 --- /dev/null +++ b/sistem-km-next/src/app/api/users/route.js @@ -0,0 +1,143 @@ +import { createClient } from '@supabase/supabase-js'; +import { NextResponse } from 'next/server'; + +export async function GET() { + try { + const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL; + const supabaseServiceKey = process.env.SUPABASE_SERVICE_ROLE_KEY; + + if (!supabaseServiceKey) { + return NextResponse.json({ error: 'Service role key not configured' }, { status: 500 }); + } + + const supabaseAdmin = createClient(supabaseUrl, supabaseServiceKey); + + // Fetch auth users + const { data: authData, error: authErr } = await supabaseAdmin.auth.admin.listUsers(); + if (authErr) throw authErr; + + // Fetch profiles + const { data: profilesData, error: profErr } = await supabaseAdmin.from('profiles').select('*'); + if (profErr) throw profErr; + + // Merge them + const users = (authData.users || []).map(authUser => { + const profile = profilesData.find(p => p.id === authUser.id) || {}; + return { + id: authUser.id, + email: authUser.email, + full_name: profile.full_name || 'N/A', + role: profile.role || 'public', + password_changed: profile.password_changed, + created_at: authUser.created_at + }; + }); + + return NextResponse.json({ users }); + } catch (error) { + console.error('Users API GET Error:', error); + return NextResponse.json({ error: error.message }, { status: 500 }); + } +} + +export async function POST(request) { + try { + const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL; + const supabaseServiceKey = process.env.SUPABASE_SERVICE_ROLE_KEY; + + if (!supabaseServiceKey) { + return NextResponse.json({ error: 'Service role key not configured' }, { status: 500 }); + } + + const supabaseAdmin = createClient(supabaseUrl, supabaseServiceKey); + const body = await request.json(); + const { email, password, full_name, role, hub_id } = body; + + if (!email || !password || !full_name || !role) { + return NextResponse.json({ error: 'Missing required fields' }, { status: 400 }); + } + + // 1. Create user in Auth + const { data: authData, error: authErr } = await supabaseAdmin.auth.admin.createUser({ + email, + password, + email_confirm: true, // Auto-confirm email + }); + + if (authErr) throw authErr; + + const newUserId = authData.user.id; + + // 2. Insert into profiles (bypassing RLS with service role) + const { error: profErr } = await supabaseAdmin.from('profiles').insert([{ + id: newUserId, + full_name, + role, + password_changed: false // Force change password on first login + }]); + + // If profile insert fails, we rollback the auth user creation + if (profErr) { + await supabaseAdmin.auth.admin.deleteUser(newUserId); + throw profErr; + } + + // 3. Assign user to worship hub (if role is pic or hub_head and hub_id is provided) + if (hub_id && (role === 'pic' || role === 'hub_head')) { + const updateData = {}; + if (role === 'pic') { + updateData.pic_id = newUserId; + } else if (role === 'hub_head') { + updateData.head_id = newUserId; + } + + const { error: hubErr } = await supabaseAdmin + .from('hubs') + .update(updateData) + .eq('id', hub_id); + + if (hubErr) { + // Rollback profile and auth user + await supabaseAdmin.from('profiles').delete().eq('id', newUserId); + await supabaseAdmin.auth.admin.deleteUser(newUserId); + throw hubErr; + } + } + + return NextResponse.json({ success: true, user: authData.user }); + } catch (error) { + console.error('Users API POST Error:', error); + return NextResponse.json({ error: error.message }, { status: 500 }); + } +} + +export async function DELETE(request) { + try { + const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL; + const supabaseServiceKey = process.env.SUPABASE_SERVICE_ROLE_KEY; + + if (!supabaseServiceKey) { + return NextResponse.json({ error: 'Service role key not configured' }, { status: 500 }); + } + + const supabaseAdmin = createClient(supabaseUrl, supabaseServiceKey); + + // Using searchParams to get ID + const { searchParams } = new URL(request.url); + const id = searchParams.get('id'); + + if (!id) { + return NextResponse.json({ error: 'Missing user id' }, { status: 400 }); + } + + // Delete from auth.users (Cascades to profiles table via foreign key) + const { error } = await supabaseAdmin.auth.admin.deleteUser(id); + + if (error) throw error; + + return NextResponse.json({ success: true }); + } catch (error) { + console.error('Users API DELETE Error:', error); + return NextResponse.json({ error: error.message }, { status: 500 }); + } +} diff --git a/sistem-km-next/src/app/change-password/page.js b/sistem-km-next/src/app/change-password/page.js new file mode 100644 index 0000000..0c6b3ef --- /dev/null +++ b/sistem-km-next/src/app/change-password/page.js @@ -0,0 +1,139 @@ +'use client'; + +import { useState, useEffect } from 'react'; +import { supabase } from '@/lib/supabase'; +import { useRouter } from 'next/navigation'; + +export default function ChangePassword() { + const [password, setPassword] = useState(''); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + const [user, setUser] = useState(null); + const [showPassword, setShowPassword] = useState(false); + const router = useRouter(); + + useEffect(() => { + supabase.auth.getUser().then(({ data }) => { + if (!data?.user) router.push('/login'); + else setUser(data.user); + }); + }, [router]); + + const handleUpdate = async (e) => { + e.preventDefault(); + setLoading(true); + setError(null); + + const { error: authError } = await supabase.auth.updateUser({ password }); + + if (authError) { + setError(authError.message); + setLoading(false); + return; + } + + const { error: profileError } = await supabase + .from('profiles') + .update({ password_changed: true }) + .eq('id', user.id); + + if (profileError) { + setError(profileError.message); + setLoading(false); + return; + } + + router.push('/'); + }; + + return ( +
+
+

Rotasi Keamanan

+

+ Untuk alasan keamanan, Anda wajib mengubah kata sandi default sebelum melanjutkan. +

+ + {error && ( +
+ {error} +
+ )} + +
+
+ +
+ setPassword(e.target.value)} + minLength={6} + style={{ + width: '100%', padding: '12px 44px 12px 16px', borderRadius: '12px', + border: '1px solid #cbd5e1', background: 'white', + outline: 'none', transition: 'border-color 0.2s', color: 'black', + boxShadow: 'inset 0 2px 4px 0 rgba(0, 0, 0, 0.05)' + }} + required + /> + +
+
+ +
+
+
+ ); +} diff --git a/sistem-km-next/src/app/favicon.ico b/sistem-km-next/src/app/favicon.ico new file mode 100644 index 0000000..718d6fe Binary files /dev/null and b/sistem-km-next/src/app/favicon.ico differ diff --git a/sistem-km-next/src/app/globals.css b/sistem-km-next/src/app/globals.css new file mode 100644 index 0000000..e4dad47 --- /dev/null +++ b/sistem-km-next/src/app/globals.css @@ -0,0 +1,784 @@ +:root { + --primary: #3b82f6; + --primary-hover: #2563eb; + --success: #10b981; + --danger: #ef4444; + --dark: #0f172a; + --panel-bg: rgba(255, 255, 255, 0.85); /* Slightly less transparent for readability */ + --panel-border: rgba(255, 255, 255, 0.5); + --text-main: #1e293b; + --text-muted: #64748b; + --shadow: 0 8px 32px rgba(0, 0, 0, 0.1); + --glow: 0 0 40px rgba(255, 255, 255, 0.5); + } + + * { + box-sizing: border-box; + margin: 0; + padding: 0; + font-family: 'Outfit', sans-serif; + } + + body, html { + height: 100%; + width: 100%; + overflow: hidden; + background-color: #f0f0f0; /* Light background behind map */ + color: var(--text-main); + } + + #map { + height: 100%; + width: 100%; + position: absolute; + top: 0; + left: 0; + z-index: 1; + } + + /* Glassmorphism Panels */ + .glass-panel { + background: var(--panel-bg); + backdrop-filter: blur(16px); + -webkit-backdrop-filter: blur(16px); + border: 1px solid var(--panel-border); + border-radius: 16px; + box-shadow: var(--shadow); + z-index: 1000; + } + + /* Top Header */ + .top-bar { + position: absolute; + top: 20px; + left: 50%; + transform: translateX(-50%); + width: 96%; + height: 64px; + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 24px; + transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease; + } + + .top-bar.hidden { + transform: translate(-50%, -150%); + opacity: 0; + pointer-events: none; + } + + .top-bar-right { + display: flex; + align-items: center; + gap: 12px; + } + + .logo { + font-size: 1.25rem; + font-weight: 700; + letter-spacing: 0.5px; + display: flex; + align-items: center; + gap: 10px; + } + + .logo i { + color: var(--primary); + font-size: 1.5rem; + } + + .search-container { + display: flex; + align-items: center; + background: rgba(0, 0, 0, 0.05); + border-radius: 32px; + padding: 10px 24px; + width: 40%; + max-width: 500px; + border: 1px solid rgba(0, 0, 0, 0.1); + transition: all 0.3s ease; + } + + .search-container:focus-within { + background: rgba(0, 0, 0, 0.1); + border-color: var(--primary); + box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.3); + } + + .search-container input { + background: transparent; + border: none; + color: var(--text-main); + outline: none; + width: 100%; + margin-left: 12px; + font-size: 0.95rem; + } + + .search-container input::placeholder { + color: rgba(0, 0, 0, 0.4); + } + + .login-btn { + background: linear-gradient(135deg, var(--primary), #6366f1); + color: white; + border: none; + padding: 10px 24px; + border-radius: 32px; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: 0 4px 15px rgba(59, 130, 246, 0.4); + } + + .login-btn:hover { + transform: translateY(-2px); + box-shadow: 0 6px 20px rgba(59, 130, 246, 0.6); + } + + /* Left Panel */ + .left-panel { + position: absolute; + top: 100px; + left: 2%; + width: 300px; + padding: 24px; + transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease; + transform-origin: left center; + } + + .left-panel.hidden { + transform: translateX(-120%); + opacity: 0; + pointer-events: none; + } + + .panel-title { + font-size: 1.1rem; + font-weight: 600; + margin-bottom: 20px; + color: var(--text-main); + display: flex; + align-items: center; + justify-content: space-between; + } + + .panel-title .title-text { + display: flex; + align-items: center; + gap: 8px; + } + + /* Dropdown & Buttons */ + .btn-group { + position: relative; + margin-bottom: 24px; + } + + .btn { + width: 100%; + padding: 12px 16px; + border: none; + border-radius: 12px; + font-size: 0.95rem; + font-weight: 600; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + gap: 10px; + transition: all 0.2s ease; + } + + .btn-primary { + background: rgba(59, 130, 246, 0.2); + color: #60a5fa; + border: 1px solid rgba(59, 130, 246, 0.4); + } + + .btn-primary:hover { + background: rgba(59, 130, 246, 0.3); + } + + .submenu { + position: absolute; + top: 0; + left: calc(100% + 10px); /* Show on the right instead of covering the edit mode toggle */ + width: 220px; + background: rgba(255, 255, 255, 0.95); + backdrop-filter: blur(16px); + border: 1px solid var(--panel-border); + border-radius: 12px; + overflow: hidden; + display: none; + flex-direction: column; + z-index: 1001; + box-shadow: var(--shadow); + } + + .submenu.active { + display: flex; + } + + .submenu button { + padding: 12px 16px; + background: transparent; + border: none; + color: var(--text-main); + text-align: left; + cursor: pointer; + transition: background 0.2s; + display: flex; + align-items: center; + gap: 10px; + font-size: 0.9rem; + } + + .submenu button:hover { + background: rgba(0, 0, 0, 0.05); + } + + /* Toggle Switch */ + .toggle-group { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 24px; + padding: 16px; + background: rgba(0, 0, 0, 0.05); + border-radius: 12px; + } + + .toggle-group label { + font-weight: 500; + font-size: 0.95rem; + } + + .switch { + position: relative; + display: inline-block; + width: 46px; + height: 26px; + } + + .switch input { + opacity: 0; + width: 0; + height: 0; + } + + .slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.2); + transition: .4s; + border-radius: 26px; + } + + .slider:before { + position: absolute; + content: ""; + height: 20px; + width: 20px; + left: 3px; + bottom: 3px; + background-color: white; + transition: .4s; + border-radius: 50%; + } + + input:checked + .slider { + background-color: var(--primary); + } + + input:checked + .slider:before { + transform: translateX(20px); + } + + /* Checkboxes */ + .filter-group h4 { + font-size: 0.9rem; + color: var(--text-muted); + margin-bottom: 12px; + text-transform: uppercase; + letter-spacing: 0.5px; + } + + .checkbox-item { + display: flex; + align-items: center; + gap: 12px; + margin-bottom: 12px; + cursor: pointer; + font-size: 0.95rem; + } + + .checkbox-item input { + appearance: none; + width: 18px; + height: 18px; + border: 2px solid rgba(0, 0, 0, 0.3); + border-radius: 4px; + background: transparent; + cursor: pointer; + position: relative; + transition: all 0.2s; + } + + .checkbox-item input:checked { + background: var(--primary); + border-color: var(--primary); + } + + .checkbox-item input:checked::after { + content: '\f00c'; + font-family: 'Font Awesome 6 Free'; + font-weight: 900; + font-size: 10px; + color: white; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + } + + /* Right Panel */ + .right-panel { + position: absolute; + top: 100px; + right: 2%; + width: 380px; + padding: 24px; + max-height: calc(100vh - 120px); + overflow-y: auto; + transition: transform 0.3s ease, opacity 0.3s ease; + transform-origin: right center; + } + + .right-panel.hidden { + transform: translateX(120%); + opacity: 0; + pointer-events: none; + } + + .right-panel::-webkit-scrollbar { width: 4px; } + .right-panel::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 4px; } + + .btn-toggle-panel { + background: rgba(0,0,0,0.05); + border: none; + color: var(--text-main); + border-radius: 8px; + padding: 4px 8px; + cursor: pointer; + transition: background 0.2s; + display: flex; + align-items: center; + gap: 6px; + font-size: 0.85rem; + } + .btn-toggle-panel:hover { + background: rgba(0,0,0,0.1); + } + + .show-panel-btn { + position: absolute; + padding: 10px 18px; + background: var(--panel-bg); + backdrop-filter: blur(16px); + -webkit-backdrop-filter: blur(16px); + border: 1px solid var(--panel-border); + color: var(--text-main); + border-radius: 12px; + cursor: pointer; + z-index: 999; + display: flex; + align-items: center; + gap: 8px; + font-weight: 600; + font-size: 0.9rem; + box-shadow: var(--shadow); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + } + .show-panel-btn:hover { + background: rgba(241, 245, 249, 0.95); + transform: translateY(-2px); + } + .show-panel-btn.hidden { + display: none; + opacity: 0; + pointer-events: none; + } + + #showTopBarBtn { top: 20px; left: 50%; transform: translateX(-50%); } + #showTopBarBtn:hover { transform: translateX(-50%) translateY(-2px); } + #showControlsBtn { top: 100px; left: 2%; } + #showStatsBtn { top: 100px; right: 2%; } + #showLegendBtn { bottom: 30px; left: 2%; } + + .kpi-container { + display: flex; + gap: 12px; + margin-bottom: 24px; + } + + .kpi-box { + flex: 1; + background: rgba(0, 0, 0, 0.03); + padding: 16px 12px; + border-radius: 12px; + text-align: center; + border: 1px solid rgba(0, 0, 0, 0.05); + } + + .kpi-value { + font-size: 1.5rem; + font-weight: 700; + margin-bottom: 4px; + } + + .kpi-label { + font-size: 0.7rem; + color: var(--text-muted); + text-transform: uppercase; + letter-spacing: 0.5px; + line-height: 1.2; + } + + .text-success { color: var(--success); } + .text-danger { color: var(--danger); } + .text-primary { color: #60a5fa; } + + .chart-box { + background: rgba(0, 0, 0, 0.03); + border-radius: 12px; + padding: 16px; + margin-bottom: 20px; + border: 1px solid rgba(0, 0, 0, 0.05); + } + + .chart-box h4 { + font-size: 0.85rem; + color: var(--text-muted); + margin-bottom: 12px; + text-align: center; + } + + /* Gauge */ + .gauge-container { + text-align: center; + padding: 20px 0; + } + + .gauge { + width: 160px; + height: 80px; + margin: 0 auto; + position: relative; + overflow: hidden; + background: rgba(0, 0, 0, 0.1); + border-top-left-radius: 160px; + border-top-right-radius: 160px; + } + + .gauge-fill { + position: absolute; + top: 100%; + left: 0; + width: 100%; + height: 100%; + background: linear-gradient(to right, var(--danger), var(--warning), var(--success)); + transform-origin: center top; + transform: rotate(0turn); + transition: transform 1s cubic-bezier(0.4, 0, 0.2, 1); + } + + .gauge-cover { + width: 130px; + height: 65px; + background: white; + position: absolute; + bottom: 0; + left: 15px; + border-top-left-radius: 130px; + border-top-right-radius: 130px; + display: flex; + align-items: flex-end; + justify-content: center; + padding-bottom: 10px; + font-size: 1.5rem; + font-weight: 700; + } + + /* Legend */ + .legend { + position: absolute; + bottom: 30px; + left: 2%; + padding: 16px; + font-size: 0.85rem; + display: flex; + flex-direction: column; + gap: 10px; + z-index: 1000; + width: 230px; + transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease; + transform-origin: left bottom; + } + .legend.hidden { + transform: translateX(-120%); + opacity: 0; + pointer-events: none; + } + + .legend-item { + display: flex; + align-items: center; + gap: 12px; + } + + .legend-color { + width: 18px; + height: 18px; + border-radius: 50%; + border: 2px solid rgba(0,0,0,0.1); + } + + .hub-legend-icon { + width: 22px; height: 22px; + border-radius: 50%; + display: flex; align-items: center; justify-content: center; + font-size: 11px; color: white; border: 1px solid rgba(255,255,255,0.8); + box-shadow: 0 2px 6px rgba(0,0,0,0.2); + } + + /* Custom Map Icons & Popups */ + .leaflet-popup-content-wrapper { + background: var(--panel-bg); + backdrop-filter: blur(12px); + color: var(--text-main); + border: 1px solid var(--panel-border); + border-radius: 12px; + } + .leaflet-popup-tip { + background: var(--panel-bg); + } + .leaflet-popup-content h3 { + margin: 0 0 8px 0; + font-size: 1.1rem; + border-bottom: 1px solid rgba(0,0,0,0.1); + padding-bottom: 8px; + } + .leaflet-popup-content p { + margin: 0 0 8px 0; + font-size: 0.9rem; + color: var(--text-muted); + } + .popup-slider-container { + margin-top: 12px; + background: rgba(0,0,0,0.05); + padding: 10px; + border-radius: 8px; + } + .popup-slider-container label { + display: block; + font-size: 0.8rem; + margin-bottom: 6px; + color: var(--text-muted); + } + .popup-slider-container input[type=range] { + width: 100%; + accent-color: var(--primary); + } + .popup-slider-container input[type=range]:disabled { + opacity: 0.4; + cursor: not-allowed; + } + + .citizen-modal { + display: flex; + gap: 20px; + } + .citizen-photo { + width: 100px; + height: 100px; + background: rgba(0,0,0,0.05); + border-radius: 8px; + display: flex; + align-items: center; + justify-content: center; + color: rgba(0,0,0,0.3); + font-size: 2rem; + object-fit: cover; + } + .citizen-details { + flex: 1; + } + + /* Modal Overlay */ + .modal-overlay { + position: fixed; + top: 0; left: 0; right: 0; bottom: 0; + background: rgba(0, 0, 0, 0.6); + backdrop-filter: blur(4px); + z-index: 2000; + display: none; + align-items: center; + justify-content: center; + opacity: 0; + transition: opacity 0.3s ease; + } + .modal-overlay.active { + display: flex; + opacity: 1; + } + .modal-content { + background: var(--panel-bg); + backdrop-filter: blur(20px); + border: 1px solid var(--panel-border); + border-radius: 16px; + width: 100%; + max-width: 400px; + padding: 24px; + box-shadow: 0 20px 40px rgba(0,0,0,0.5); + transform: translateY(20px); + transition: transform 0.3s ease; + color: var(--text-main); + } + .modal-overlay.active .modal-content { + transform: translateY(0); + } + .modal-header { + display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; + } + .close-btn { + background: none; border: none; font-size: 1.5rem; color: var(--text-muted); cursor: pointer; + } + .form-group { margin-bottom: 16px; } + .form-group label { display: block; font-size: 0.85rem; margin-bottom: 6px; color: var(--text-muted); } + .form-control { + width: 100%; padding: 10px 12px; background: rgba(0,0,0,0.05); border: 1px solid rgba(0,0,0,0.1); + border-radius: 8px; color: var(--text-main); font-size: 0.95rem; + } + .form-control:focus { outline: none; border-color: var(--primary); } + .modal-actions { display: flex; gap: 12px; margin-top: 24px; } + .modal-actions .btn { flex: 1; } + + .btn-success { background: rgba(16, 185, 129, 0.2); color: #34d399; border: 1px solid rgba(16, 185, 129, 0.4); } + .btn-success:hover { background: rgba(16, 185, 129, 0.3); } + + .placement-toast { + position: fixed; bottom: 30px; left: 50%; transform: translateX(-50%); + padding: 12px 24px; border-radius: 30px; font-weight: 500; + z-index: 1500; display: none; align-items: center; gap: 10px; + } + .placement-toast button { + background: rgba(0,0,0,0.1); border: none; color: var(--text-main); padding: 6px 12px; + border-radius: 12px; cursor: pointer; font-size: 0.8rem; + } + + /* Login Specific Styles */ + .map-glow-overlay { + position: absolute; + top: 0; left: 0; right: 0; bottom: 0; + background: radial-gradient(circle at center, rgba(255, 255, 255, 0.25) 0%, rgba(248, 250, 252, 0.85) 100%); + z-index: 2; + pointer-events: none; + } + + .login-container { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 1000; + width: 100%; + max-width: 400px; + padding: 40px; + background: var(--panel-bg); + backdrop-filter: blur(20px); + -webkit-backdrop-filter: blur(20px); + border: 1px solid var(--panel-border); + border-radius: 24px; + box-shadow: var(--shadow), var(--glow); + display: flex; + flex-direction: column; + gap: 24px; + animation: fadeIn 0.8s ease-out; + } + + @keyframes fadeIn { + from { opacity: 0; transform: translate(-50%, -40%); } + to { opacity: 1; transform: translate(-50%, -50%); } + } + + .btn-login { + width: 100%; + padding: 14px; + background: linear-gradient(135deg, var(--primary), #6366f1); + color: white; + border: none; + border-radius: 12px; + font-size: 1.05rem; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: 0 4px 15px rgba(59, 130, 246, 0.4); + margin-top: 10px; + } + + .btn-login:hover { + transform: translateY(-2px); + box-shadow: 0 6px 20px rgba(59, 130, 246, 0.6); + } + + .back-link { + text-align: center; + margin-top: 10px; + } + + .back-link a { + color: var(--text-muted); + text-decoration: none; + font-size: 0.9rem; + transition: color 0.3s; + } + + .back-link a:hover { + color: var(--text-main); + } + + @keyframes slideInRight { + from { transform: translateX(120%); opacity: 0; } + to { transform: translateX(0); opacity: 1; } + } + @keyframes fadeInScale { + from { transform: scale(0.95); opacity: 0; } + to { transform: scale(1); opacity: 1; } + } + + /* Suppress native password reveal/clear buttons in IE/Edge to prevent double eye icon stacking */ + input::-ms-reveal, + input::-ms-clear { + display: none !important; + } + + @keyframes pulse-border { + 0% { + box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.8), 0 4px 10px rgba(0,0,0,0.4); + } + 70% { + box-shadow: 0 0 0 8px rgba(239, 68, 68, 0), 0 4px 10px rgba(0,0,0,0.4); + } + 100% { + box-shadow: 0 0 0 0 rgba(239, 68, 68, 0), 0 4px 10px rgba(0,0,0,0.4); + } + } + .pulse-border { + animation: pulse-border 1.8s infinite !important; + } \ No newline at end of file diff --git a/sistem-km-next/src/app/layout.js b/sistem-km-next/src/app/layout.js new file mode 100644 index 0000000..9e84394 --- /dev/null +++ b/sistem-km-next/src/app/layout.js @@ -0,0 +1,26 @@ +import { Outfit } from "next/font/google"; +import "leaflet/dist/leaflet.css"; +import "./globals.css"; + +const outfit = Outfit({ + subsets: ["latin"], + weight: ["300", "400", "500", "600", "700"], +}); + +export const metadata = { + title: "Sinergi Umat - Community Aid Distribution & Mapping System", + description: "A spatial assignment application to map and manage distribution of community aid to underprivileged households.", +}; + +export default function RootLayout({ children }) { + return ( + + + + + + {children} + + + ); +} diff --git a/sistem-km-next/src/app/login/page.js b/sistem-km-next/src/app/login/page.js new file mode 100644 index 0000000..73a1995 --- /dev/null +++ b/sistem-km-next/src/app/login/page.js @@ -0,0 +1,281 @@ +'use client'; + +import { useState, useEffect, useRef } from 'react'; +import { supabase } from '@/lib/supabase'; +import { useRouter } from 'next/navigation'; +import 'leaflet/dist/leaflet.css'; + +export default function Login() { + const [email, setEmail] = useState(''); + const [password, setPassword] = useState(''); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + const [showPassword, setShowPassword] = useState(false); + const router = useRouter(); + const mapRef = useRef(null); + const mapInstanceRef = useRef(null); + + useEffect(() => { + let active = true; + + // Dynamically load Leaflet for the background map + import('leaflet').then((L) => { + if (!active) return; + + if (!mapInstanceRef.current && mapRef.current) { + // Initialize map centered on Pontianak + const map = L.map(mapRef.current, { + center: [-0.0227, 109.3340], + zoom: 13, + zoomControl: false, + dragging: false, + scrollWheelZoom: false, + doubleClickZoom: false, + boxZoom: false, + keyboard: false, + attributionControl: false + }); + + // Use CartoDB Positron for a clean, light background + L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png', { + maxZoom: 19, + subdomains: 'abcd' + }).addTo(map); + + mapInstanceRef.current = map; + + // Force resize recalculation to ensure tiles render immediately + setTimeout(() => { + if (active && mapInstanceRef.current) { + mapInstanceRef.current.invalidateSize(); + } + }, 150); + } + }); + + return () => { + active = false; + if (mapInstanceRef.current) { + mapInstanceRef.current.remove(); + mapInstanceRef.current = null; + } + }; + }, []); + + const handleLogin = async (e) => { + e.preventDefault(); + setLoading(true); + setError(null); + + const { data, error: authError } = await supabase.auth.signInWithPassword({ + email, + password, + }); + + if (authError) { + setError(authError.message); + setLoading(false); + return; + } + + // Check if they need password rotation + const { data: profile } = await supabase + .from('profiles') + .select('password_changed') + .eq('id', data.user.id) + .single(); + + if (profile && profile.password_changed === false) { + router.push('/change-password'); + } else { + router.push('/'); + } + }; + + return ( +
+ {/* Return to Dashboard Button */} + + + {/* Dynamic Leaflet Background */} +
+ + {/* Glassmorphism Dark/Blur Overlay */} +
+ + {/* Login Card */} +
+
+ +
+

Sinergi Umat

+

Portal Manajemen Bantuan & Geotagging

+ + {error && ( +
+ {error} +
+ )} + +
+
+ + setEmail(e.target.value)} + style={{ + width: '100%', padding: '12px 16px', borderRadius: '12px', + border: '1px solid #cbd5e1', background: 'white', + outline: 'none', transition: 'all 0.2s', color: '#1e293b', + boxShadow: 'inset 0 2px 4px 0 rgba(0, 0, 0, 0.05)' + }} + onFocus={(e) => e.target.style.borderColor = 'var(--primary, #3b82f6)'} + onBlur={(e) => e.target.style.borderColor = '#cbd5e1'} + required + /> +
+
+ +
+ setPassword(e.target.value)} + style={{ + width: '100%', padding: '12px 44px 12px 16px', borderRadius: '12px', + border: '1px solid #cbd5e1', background: 'white', + outline: 'none', transition: 'all 0.2s', color: '#1e293b', + boxShadow: 'inset 0 2px 4px 0 rgba(0, 0, 0, 0.05)' + }} + onFocus={(e) => e.target.style.borderColor = 'var(--primary, #3b82f6)'} + onBlur={(e) => e.target.style.borderColor = '#cbd5e1'} + required + /> + +
+
+ +
+
+
+ ); +} diff --git a/sistem-km-next/src/app/page.js b/sistem-km-next/src/app/page.js new file mode 100644 index 0000000..9c00e8a --- /dev/null +++ b/sistem-km-next/src/app/page.js @@ -0,0 +1,16 @@ +'use client'; + +import dynamic from 'next/dynamic'; + +// Load Leaflet map on client-side ONLY to bypass window-not-defined Node errors +const Dashboard = dynamic(() => import('@/components/Dashboard'), { + ssr: false, +}); + +export default function Home() { + return ( +
+ +
+ ); +} diff --git a/sistem-km-next/src/app/page.module.css b/sistem-km-next/src/app/page.module.css new file mode 100644 index 0000000..643fe27 --- /dev/null +++ b/sistem-km-next/src/app/page.module.css @@ -0,0 +1,142 @@ +.page { + --background: #fafafa; + --foreground: #fff; + + --text-primary: #000; + --text-secondary: #666; + + --button-primary-hover: #383838; + --button-secondary-hover: #f2f2f2; + --button-secondary-border: #ebebeb; + + display: flex; + flex: 1; + flex-direction: column; + align-items: center; + justify-content: center; + font-family: var(--font-geist-sans); + background-color: var(--background); +} + +.main { + display: flex; + flex: 1; + width: 100%; + max-width: 800px; + flex-direction: column; + align-items: flex-start; + justify-content: space-between; + background-color: var(--foreground); + padding: 120px 60px; +} + +.intro { + display: flex; + flex-direction: column; + align-items: flex-start; + text-align: left; + gap: 24px; +} + +.intro h1 { + max-width: 320px; + font-size: 40px; + font-weight: 600; + line-height: 48px; + letter-spacing: -2.4px; + text-wrap: balance; + color: var(--text-primary); +} + +.intro p { + max-width: 440px; + font-size: 18px; + line-height: 32px; + text-wrap: balance; + color: var(--text-secondary); +} + +.intro a { + font-weight: 500; + color: var(--text-primary); +} + +.ctas { + display: flex; + flex-direction: row; + width: 100%; + max-width: 440px; + gap: 16px; + font-size: 14px; +} + +.ctas a { + display: flex; + justify-content: center; + align-items: center; + height: 40px; + padding: 0 16px; + border-radius: 128px; + border: 1px solid transparent; + transition: 0.2s; + cursor: pointer; + width: fit-content; + font-weight: 500; +} + +a.primary { + background: var(--text-primary); + color: var(--background); + gap: 8px; +} + +a.secondary { + border-color: var(--button-secondary-border); +} + +/* Enable hover only on non-touch devices */ +@media (hover: hover) and (pointer: fine) { + a.primary:hover { + background: var(--button-primary-hover); + border-color: transparent; + } + + a.secondary:hover { + background: var(--button-secondary-hover); + border-color: transparent; + } +} + +@media (max-width: 600px) { + .main { + padding: 48px 24px; + } + + .intro { + gap: 16px; + } + + .intro h1 { + font-size: 32px; + line-height: 40px; + letter-spacing: -1.92px; + } +} + +@media (prefers-color-scheme: dark) { + .logo { + filter: invert(); + } + + .page { + --background: #000; + --foreground: #000; + + --text-primary: #ededed; + --text-secondary: #999; + + --button-primary-hover: #ccc; + --button-secondary-hover: #1a1a1a; + --button-secondary-border: #1a1a1a; + } +} diff --git a/sistem-km-next/src/components/Dashboard.js b/sistem-km-next/src/components/Dashboard.js new file mode 100644 index 0000000..9b380d5 --- /dev/null +++ b/sistem-km-next/src/components/Dashboard.js @@ -0,0 +1,2104 @@ +'use client'; + +import { useEffect, useState, useRef } from 'react'; +import { supabase } from '@/lib/supabase'; +import Chart from 'chart.js/auto'; +import { useRouter } from 'next/navigation'; +import SidebarControls from './dashboard/SidebarControls'; +import StatsPanel from './dashboard/StatsPanel'; +import ApprovalQueueModal from './dashboard/modals/ApprovalQueueModal'; +import UserProvisioningModal from './dashboard/modals/UserProvisioningModal'; +import DonationModal from './dashboard/modals/DonationModal'; +import HubFormModal from './dashboard/modals/HubFormModal'; +import HouseholdFormModal from './dashboard/modals/HouseholdFormModal'; +import ProfileModal from './dashboard/modals/ProfileModal'; +import SurveyMethodModal from './dashboard/modals/SurveyMethodModal'; +import CapacityApprovalModal from './dashboard/modals/CapacityApprovalModal'; +import DelegationQueueModal from './dashboard/modals/DelegationQueueModal'; +import PicListModal from './dashboard/modals/PicListModal'; +import kecamatanData from '@/lib/Admin_Kecamatan.json'; +import { createHeatLayer } from '@/lib/initLeafletHeat'; + +// Point-in-Polygon algorithm for dynamic spatial kecamatan calculations +const isPointInPolygon = (point, polygon) => { + const x = point[0], y = point[1]; + let inside = false; + for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) { + const xi = polygon[i][0], yi = polygon[i][1]; + const xj = polygon[j][0], yj = polygon[j][1]; + const intersect = ((yi > y) !== (yj > y)) + && (x < (xj - xi) * (y - yi) / (yj - yi) + xi); + if (intersect) inside = !inside; + } + return inside; +}; + +const getKecamatanForPoint = (lat, lng) => { + if (!kecamatanData || !kecamatanData.features) return null; + for (const feature of kecamatanData.features) { + const name = feature.properties?.Ket; + const geom = feature.geometry; + if (!name || !geom) continue; + + if (geom.type === 'Polygon') { + if (isPointInPolygon([lng, lat], geom.coordinates[0])) { + return name; + } + } else if (geom.type === 'MultiPolygon') { + for (const polygonCoords of geom.coordinates) { + if (isPointInPolygon([lng, lat], polygonCoords[0])) { + return name; + } + } + } + } + return null; +}; + +const parseLocation = (loc) => { + if (!loc) return { lat: 0, lng: 0 }; + if (typeof loc === 'string') { + const match = loc.match(/POINT\(([^ ]+) ([^ ]+)\)/); + if (match) return { lng: parseFloat(match[1]), lat: parseFloat(match[2]) }; + } else if (loc.coordinates) { + return { lng: loc.coordinates[0], lat: loc.coordinates[1] }; + } + return { lat: 0, lng: 0 }; +}; + +export default function Dashboard() { + const mapRef = useRef(null); + const mapInstance = useRef(null); + + // Charts + const barChartRef = useRef(null); + const donutChartRef = useRef(null); + const barChartInstance = useRef(null); + const donutChartInstance = useRef(null); + + // Data Stores + const [hubs, setHubs] = useState([]); + const [allHubs, setAllHubs] = useState([]); + const [households, setHouseholds] = useState([]); + const [activeHubs, setActiveHubs] = useState([]); + + // Router & Auth State + const router = useRouter(); + const [user, setUser] = useState(null); + const [profile, setProfile] = useState(null); + + // UI Toggles + const [showTopBar, setShowTopBar] = useState(true); + const [showControls, setShowControls] = useState(true); + const [showStats, setShowStats] = useState(true); + const [showLegend, setShowLegend] = useState(true); + const [showSubmenu, setShowSubmenu] = useState(false); + + const [onlyMyHub, setOnlyMyHub] = useState(false); + + // State + + const [showUserModal, setShowUserModal] = useState(false); + const [usersList, setUsersList] = useState([]); + const [userFormData, setUserFormData] = useState({ + email: '', + password: '', + full_name: '', + role: 'pic', + hub_id: '' + }); + const [isSubmittingUser, setIsSubmittingUser] = useState(false); + + const fetchUsers = async () => { + try { + const res = await fetch('/sistem-km-next/api/users'); + if (res.ok) { + const data = await res.json(); + setUsersList(data.users || []); + } + } catch (e) { console.error('Error fetching users:', e); } + }; + + const handleCreateUser = async (e) => { + e.preventDefault(); + setIsSubmittingUser(true); + try { + const res = await fetch('/sistem-km-next/api/users', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(userFormData) + }); + if (res.ok) { + showToastNotification('Pengguna berhasil dibuat!'); + fetchUsers(); + setUserFormData({ email: '', password: '', full_name: '', role: 'pic', hub_id: '' }); + setShowUserModal(false); + } else { + const data = await res.json(); + showToastNotification('Gagal membuat pengguna: ' + data.error, 'error'); + } + } catch (e) { showToastNotification('Gagal: ' + e.message, 'error'); } + setIsSubmittingUser(false); + }; + + const handleDeleteUser = (id) => { + setConfirmDialog({ + title: 'Hapus Pengguna', + message: 'Apakah Anda yakin ingin menghapus pengguna ini? Akun mereka di Supabase Authentication juga akan dihapus secara permanen.', + onCancel: () => setConfirmDialog(null), + onConfirm: async () => { + setConfirmDialog(null); + try { + const res = await fetch(`/sistem-km-next/api/users?id=${id}`, { method: 'DELETE' }); + if (res.ok) { + showToastNotification('Pengguna berhasil dihapus!'); + fetchUsers(); + } else { + showToastNotification('Gagal menghapus pengguna', 'error'); + } + } catch (e) { + showToastNotification('Error saat menghapus pengguna', 'error'); + } + } + }); + }; + + const handleDeleteHub = (id, name) => { + setConfirmDialog({ + title: 'Hapus Rumah Ibadah', + message: `Apakah Anda yakin ingin menghapus "${name}"? Seluruh akun PIC dan Ketua Pengurus yang terikat ke rumah ibadah ini akan ikut dihapus secara permanen dari sistem.`, + onCancel: () => setConfirmDialog(null), + onConfirm: async () => { + setConfirmDialog(null); + try { + const res = await fetch(`/sistem-km-next/api/hubs?id=${id}`, { method: 'DELETE' }); + if (res.ok) { + showToastNotification('Rumah ibadah dan akun terikat berhasil dihapus!'); + fetchData(); + } else { + const data = await res.json(); + showToastNotification('Gagal menghapus: ' + (data.error || 'Terjadi kesalahan'), 'error'); + } + } catch (e) { + showToastNotification('Error saat menghapus rumah ibadah', 'error'); + } + } + }); + }; + +const [isEditMode, setIsEditMode] = useState(false); + const [placementMode, setPlacementMode] = useState(null); + const [searchQuery, setSearchQuery] = useState(''); + const [filters, setFilters] = useState({ + Mosque: true, + Church: true, + Vihara: true, + Temple: true, + Other: true, + }); + + // Modal State + const [showHubModal, setShowHubModal] = useState(false); + const [showHhModal, setShowHhModal] = useState(false); + const [showApprovalModal, setShowApprovalModal] = useState(false); + const [showCapacityModal, setShowCapacityModal] = useState(false); + const [showDelegationModal, setShowDelegationModal] = useState(false); + const [showPicListModal, setShowPicListModal] = useState(false); + const [selectedPhotoUrl, setSelectedPhotoUrl] = useState(''); + const [imageFile, setImageFile] = useState(null); + const [isUploading, setIsUploading] = useState(false); + const [hubFormData, setHubFormData] = useState({ + id: '', + name: '', + type: 'Mosque', + radius_meter: 500, + lat: '', + lng: '', + address: '', + pic_phone: '' + }); + const [hhFormData, setHhFormData] = useState({ + id: '', head_name: '', nik: '', no_kk: '', family_size: 1, status: 'Pending', photo_url: 'https://via.placeholder.com/150', lat: '', lng: '', assigned_hub_id: null + }); + + // Donations State + const [showDonationModal, setShowDonationModal] = useState(false); + const [activeDonationHub, setActiveDonationHub] = useState(null); + const [donationsList, setDonationsList] = useState([]); + const [donationFormData, setDonationFormData] = useState({ + amount: '', type: 'IN', description: '', transaction_date: new Date().toISOString().split('T')[0] + }); + const [isSubmittingDonation, setIsSubmittingDonation] = useState(false); + + // Toast + const [showToast, setShowToast] = useState(false); + const [webNotification, setWebNotification] = useState(null); + const [confirmDialog, setConfirmDialog] = useState(null); + + const showToastNotification = (message, type = 'success') => { + setWebNotification({ message, type }); + setTimeout(() => { + setWebNotification(null); + }, 3500); + }; + + // Profile & Logout Modal State + const [showProfileModal, setShowProfileModal] = useState(false); + const [isLoggingOut, setIsLoggingOut] = useState(false); + const [showSurveyModal, setShowSurveyModal] = useState(false); + + const handleLogout = async () => { + setIsLoggingOut(true); + try { + await supabase.auth.signOut(); + window.location.reload(); + } catch (e) { + console.error('Error logging out:', e); + showToastNotification('Gagal keluar dari akun', 'error'); + } finally { + setIsLoggingOut(false); + } + }; + + // Stats + const [stats, setStats] = useState({ + hubsCount: 0, + coveredCount: 0, + uncoveredCount: 0, + equalityIndex: 0 + }); + + // Marker & Layer References + const LeafletRef = useRef(null); + const hubLayersRef = useRef(null); + const circleLayersRef = useRef(null); + const householdLayersRef = useRef(null); + const hubMarkersRef = useRef({}); + const circleMarkersRef = useRef({}); + const hhMarkersRef = useRef({}); + + const heatLayersRef = useRef(null); + const householdsRef = useRef([]); // Keeps latest households accessible from async CDN callbacks + const hubsRef = useRef([]); // Keeps latest hubs accessible from Leaflet click handler closure + const profileRef = useRef(null); + const isMountedRef = useRef(true); + + // Heatmap + Individual Marker visibility logic per spec + // Zoom 11-13: heatmap full, markers hidden for ALL + // Zoom 14: heatmap visible, markers hidden for ALL + // Zoom 15-18: heatmap hidden, markers visible ONLY for super_admin & pic (not public) + const updateMapLayersVisibility = (zoom) => { + // Retrieve current profile from ref so this works inside Leaflet event listeners + const currentProfile = profileRef.current; + const canSeeMarkers = currentProfile && + (currentProfile.role === 'super_admin' || currentProfile.role === 'pic' || currentProfile.role === 'hub_head'); + + const map = mapInstance.current; + if (!map) return; + + if (zoom >= 15) { + // Micro: hide heatmap, show markers only for authorized roles + if (heatLayersRef.current) { + heatLayersRef.current.setOptions({ opacity: 0, maxOpacity: 0 }); + } + + // Show Worship Hubs and Circles when zoomed in + if (hubLayersRef.current && !map.hasLayer(hubLayersRef.current)) { + map.addLayer(hubLayersRef.current); + } + if (circleLayersRef.current && !map.hasLayer(circleLayersRef.current)) { + map.addLayer(circleLayersRef.current); + } + + // Show/Hide Household markers based on role + if (householdLayersRef.current) { + if (canSeeMarkers) { + if (!map.hasLayer(householdLayersRef.current)) { + map.addLayer(householdLayersRef.current); + } + } else { + if (map.hasLayer(householdLayersRef.current)) { + map.removeLayer(householdLayersRef.current); + } + } + } + } else { + // Macro/Medium (zoom 11-14): show heatmap, hide all individual markers + const opacity = zoom <= 13 ? 1.0 : 0.75; + if (heatLayersRef.current) { + heatLayersRef.current.setOptions({ opacity, maxOpacity: opacity }); + } + + // Hide individual household markers + if (householdLayersRef.current && map.hasLayer(householdLayersRef.current)) { + map.removeLayer(householdLayersRef.current); + } + + // If public user (no logged-in profile / no heatmap), keep Worship Hubs visible even at zoom < 15 + if (!currentProfile) { + if (hubLayersRef.current && !map.hasLayer(hubLayersRef.current)) { + map.addLayer(hubLayersRef.current); + } + if (circleLayersRef.current && !map.hasLayer(circleLayersRef.current)) { + map.addLayer(circleLayersRef.current); + } + } else { + // For authenticated users who have the heatmap, hide Worship Hubs when zoomed out + if (hubLayersRef.current && map.hasLayer(hubLayersRef.current)) { + map.removeLayer(hubLayersRef.current); + } + if (circleLayersRef.current && map.hasLayer(circleLayersRef.current)) { + map.removeLayer(circleLayersRef.current); + } + } + } + }; + + const hubStyles = { + 'Mosque': { color: '#10b981', iconClass: 'fas fa-mosque' }, + 'Church': { color: '#3b82f6', iconClass: 'fas fa-church' }, + 'Vihara': { color: '#ec4899', iconClass: 'fas fa-vihara' }, + 'Temple': { color: '#f59e0b', iconClass: 'fas fa-torii-gate' }, + 'Other': { color: '#8b5cf6', iconClass: 'fas fa-place-of-worship' } + }; + + // 1. Initial Load of Leaflet, Data, & Auth + useEffect(() => { + if (typeof window === 'undefined') return; + isMountedRef.current = true; + + // Check Auth State + const checkAuth = async () => { + const { data: { session } } = await supabase.auth.getSession(); + if (session) { + setUser(session.user); + const { data } = await supabase.from('profiles').select('*').eq('id', session.user.id).single(); + setProfile(data); + // Store profile in ref so Leaflet event closures can read it + profileRef.current = data; + } + }; + checkAuth(); + + // Load Leaflet dynamically to prevent SSR errors + import('leaflet').then((L) => { + LeafletRef.current = L; + + // Fix Default Leaflet Icons (Just in case, though we use custom HTML divIcons) + delete L.Icon.Default.prototype._getIconUrl; + L.Icon.Default.mergeOptions({ + iconRetinaUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.3.1/images/marker-icon-2x.png', + iconUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.3.1/images/marker-icon.png', + shadowUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.3.1/images/marker-shadow.png', + }); + + // Init Map + if (!mapInstance.current && mapRef.current) { + const map = L.map(mapRef.current, { zoomControl: false }).setView([-0.0263, 109.3425], 13); + L.control.zoom({ position: 'bottomright' }).addTo(map); + + L.tileLayer('https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png', { + attribution: '© OpenStreetMap © CARTO', + subdomains: 'abcd', + maxZoom: 20 + }).addTo(map); + + hubLayersRef.current = L.layerGroup().addTo(map); + circleLayersRef.current = L.layerGroup().addTo(map); + householdLayersRef.current = L.layerGroup().addTo(map); + + map.on('click', (e) => { + // Use a ref-based check for placementMode to avoid stale closure issues + const currentPlacementMode = mapRef.current.dataset.placementMode; + if (currentPlacementMode) { + handleMapClickPlacement(e.latlng, currentPlacementMode); + } + }); + + map.on('zoomend', () => { + updateMapLayersVisibility(map.getZoom()); + }); + // Initialize heatmap layer — using our safe factory helper (avoids ES module mutation issues) + heatLayersRef.current = createHeatLayer(L, [], { + radius: 25, + blur: 15, + max: 6.0, // 6+ overlapping points reaches maximum red intensity per spec section 4 + maxZoom: 13, // Calibrates zoom scale factor so overlap counts are accurate at zoom 11-13 + minOpacity: 0.4, + gradient: { + 0.4: '#3b82f6', // Biru - rendah + 0.6: '#06b6d4', // Sian - menengah-rendah + 0.8: '#eab308', // Kuning - menengah-tinggi + 1.0: '#ef4444' // Merah - tinggi / hotspot + } + }).addTo(map); + + // Populate from householdsRef in case fetchData() finished first + const latestHouseholds = householdsRef.current; + if (latestHouseholds && latestHouseholds.length > 0) { + const heatPoints = latestHouseholds + .filter(hh => hh.lat && hh.lng && hh.lat !== 0 && hh.lng !== 0) + .map(hh => [hh.lat, hh.lng, 1.0]); + heatLayersRef.current.setLatLngs(heatPoints); + } + + // Initial visibility call — after heatmap layer exists + updateMapLayersVisibility(map.getZoom()); + + mapInstance.current = map; + initCharts(); + fetchData(); + } + }); + + return () => { + isMountedRef.current = false; + if (mapInstance.current) { + mapInstance.current.remove(); + mapInstance.current = null; + } + if (barChartInstance.current) barChartInstance.current.destroy(); + if (donutChartInstance.current) donutChartInstance.current.destroy(); + }; + }, []); + + // Listen to Auth changes + useEffect(() => { + supabase.auth.getUser().then(({ data: { user } }) => { + setUser(user); + }); + + const { data: { subscription } } = supabase.auth.onAuthStateChange((_event, session) => { + setUser(session?.user ?? null); + if (!session?.user) { + setIsEditMode(false); + } + }); + + return () => { + subscription.unsubscribe(); + }; + }, []); + + // Sync placement mode state to DOM dataset to bypass Leaflet click closure issue + useEffect(() => { + if (mapRef.current) { + mapRef.current.dataset.placementMode = placementMode || ''; + } + }, [placementMode]); + + // Fetch Data from Supabase + async function fetchData() { + try { + const { data: { session } } = await supabase.auth.getSession(); + if (!isMountedRef.current) return; + let currentProfile = null; + if (session) { + const { data } = await supabase.from('profiles').select('*').eq('id', session.user.id).single(); + currentProfile = data; + } + + const { data: hubsData, error: hubsErr } = await supabase.from('hubs').select('*'); + if (hubsErr) console.error("Error fetching hubs:", hubsErr.message || hubsErr.details || hubsErr); + + const rawParsedHubs = (hubsData || []).map(hub => { + const { lat, lng } = parseLocation(hub.location); + return { ...hub, lat, lng, radius: hub.radius_meter }; + }); + setAllHubs(rawParsedHubs); + + let filteredHubs = hubsData || []; + + const parsedHubs = filteredHubs.map(hub => { + const { lat, lng } = parseLocation(hub.location); + return { ...hub, lat, lng, radius: hub.radius_meter }; + }); + setHubs(parsedHubs); + hubsRef.current = parsedHubs; + + if (currentProfile) { + const { data: hhData, error: hhErr } = await supabase.from('households').select('*'); + if (!isMountedRef.current) return; + if (hhErr) console.error("Error fetching households:", hhErr.message || hhErr.details || hhErr); + + const parsedHouseholds = (hhData || []).map(hh => { + const { lat, lng } = parseLocation(hh.location); + return { ...hh, lat, lng, head_of_family: hh.head_name }; + }); + + const subDistrictsList = ['Pontianak Barat', 'Pontianak Kota', 'Pontianak Selatan', 'Pontianak Tenggara', 'Pontianak Timur', 'Pontianak Utara']; + const formattedHh = parsedHouseholds.map((hh, idx) => { + + return { + ...hh, + db_assigned_hub_id: hh.assigned_hub_id, + sub_district: hh.sub_district || 'Belum Terpetakan', + covered: false, + assigned_hub_id: null, + assigned_hub_type: null + }; + }); + setHouseholds(formattedHh); + } else { + setHouseholds([]); + fetch('/sistem-km-next/api/stats') + .then(res => res.json()) + .then(data => { + if (!isMountedRef.current) return; + if (data && !data.error) { + setStats({ + hubsCount: data.hubsCount, + coveredCount: data.coveredCount, + uncoveredCount: data.uncoveredCount, + equalityIndex: data.equalityIndex + }); + if (barChartInstance.current && donutChartInstance.current) { + const labels = Object.keys(data.subDistrictsMap); + const dataCovered = labels.map(l => data.subDistrictsMap[l].covered); + const dataUncovered = labels.map(l => data.subDistrictsMap[l].uncovered); + barChartInstance.current.data.labels = labels; + barChartInstance.current.data.datasets = [ + { label: 'Terlayani', data: dataCovered, backgroundColor: '#10b981', borderRadius: 4 }, + { label: 'Belum Terlayani', data: dataUncovered, backgroundColor: '#ef4444', borderRadius: 4 } + ]; + barChartInstance.current.update('none'); + const dLabels = Object.keys(data.typeCounts); + const dData = Object.values(data.typeCounts); + const colors = ['#3b82f6', '#8b5cf6', '#ec4899', '#f59e0b', '#10b981']; + donutChartInstance.current.data.labels = dLabels; + donutChartInstance.current.data.datasets = [{ + data: dData, + backgroundColor: colors.slice(0, dLabels.length), + hoverOffset: 4 + }]; + donutChartInstance.current.update('none'); + } + } + }) + .catch(err => console.error("Error fetching public stats:", err)); + } + } catch (err) { + console.error("Data load failed:", err); + } + }; + + // True Database Synchronization (Unfiltered) + // This logic is decoupled from map visual filtering so that searching/filtering + // doesn't accidentally wipe out database assignments for hidden hubs. + useEffect(() => { + if (!mapInstance.current || hubs.length === 0 || households.length === 0) return; + + const dbUpdates = []; + + households.forEach(hh => { + let trueAssignedId = hh.db_assigned_hub_id; + + if (!hh.manual_override_assigned_hub) { + let closestHub = null; + let minDistance = Infinity; + + hubs.forEach(hub => { + const dist = mapInstance.current.distance([hh.lat, hh.lng], [hub.lat, hub.lng]); + const hubRadius = parseInt(hub.radius) || 500; + if (dist <= hubRadius && dist < minDistance) { + minDistance = dist; + closestHub = hub; + } + }); + trueAssignedId = closestHub ? closestHub.id : null; + } + + if (hh.db_assigned_hub_id !== trueAssignedId) { + dbUpdates.push({ id: hh.id, assigned_hub_id: trueAssignedId }); + // mutate locally to prevent continuous sync loops + hh.db_assigned_hub_id = trueAssignedId; + } + }); + + if (dbUpdates.length > 0) { + Promise.all( + dbUpdates.map(upd => + supabase.from('households').update({ assigned_hub_id: upd.assigned_hub_id }).eq('id', upd.id) + ) + ).catch(err => console.error("True silent sync failed:", err)); + } + }, [hubs, households]); + + // Keep heatmap layer in sync whenever households data changes + useEffect(() => { + // Always keep ref up-to-date so async CDN onload can read it + householdsRef.current = households; + + if (!heatLayersRef.current || !households || households.length === 0) return; + const validPoints = households + .filter(hh => hh.lat && hh.lng && hh.lat !== 0 && hh.lng !== 0) + .map(hh => [hh.lat, hh.lng, 1.0]); + heatLayersRef.current.setLatLngs(validPoints); + if (mapInstance.current) { + updateMapLayersVisibility(mapInstance.current.getZoom()); + } + }, [households]); + + // Re-run calculations when hubs, households, filters, or search query change + useEffect(() => { + if (!LeafletRef.current || !mapInstance.current) return; + + // Filter active hubs by visibility checkbox, search query, and "Only My Hub" toggle + const active = hubs.filter(h => { + const typeMatch = filters[h.type]; + const queryMatch = searchQuery + ? h.name.toLowerCase().includes(searchQuery.toLowerCase()) + : true; + + let myHubMatch = true; + if (onlyMyHub && profile) { + myHubMatch = h.pic_id === profile.id || h.head_id === profile.id; + } + + return typeMatch && queryMatch && myHubMatch; + }); + setActiveHubs(active); + + recalculateCoverageAndRender(active); + }, [hubs, households, filters, searchQuery, isEditMode, onlyMyHub, profile]); + + // Handle click to place points + function handleMapClickPlacement(latlng, type) { + if (type === 'hub') { + setHubFormData({ + id: '', + name: '', + type: 'Mosque', + radius_meter: 500, + lat: latlng.lat, + lng: latlng.lng, + address: 'Loading address...', + pic_phone: '' + }); + setShowHubModal(true); + + // Async reverse geocoding for new Hub + fetch(`https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=${latlng.lat}&lon=${latlng.lng}`) + .then(res => res.json()) + .then(data => { + const resolvedAddress = data.display_name || `${latlng.lat.toFixed(4)}, ${latlng.lng.toFixed(4)}`; + setHubFormData(prev => ({ ...prev, address: resolvedAddress })); + }) + .catch(() => { + setHubFormData(prev => ({ ...prev, address: `${latlng.lat.toFixed(4)}, ${latlng.lng.toFixed(4)}` })); + }); + } else if (type === 'household') { + // Spatially pre-calculate assigned hub + let closestHub = null; + let minDistance = Infinity; + const latestHubs = hubsRef.current || []; + latestHubs.forEach(hub => { + if (mapInstance.current) { + const dist = mapInstance.current.distance([latlng.lat, latlng.lng], [hub.lat, hub.lng]); + const hubRadius = parseInt(hub.radius) || 500; + if (dist <= hubRadius && dist < minDistance) { + minDistance = dist; + closestHub = hub; + } + } + }); + + if (profileRef.current?.role !== 'super_admin') { + const myHub = latestHubs.find(h => h.pic_id === profileRef.current?.id || h.head_id === profileRef.current?.id); + if (!myHub || !closestHub || closestHub.id !== myHub.id) { + showToastNotification("Titik KK baru harus berada di dalam radius jangkauan rumah ibadah Anda!", "danger"); + setPlacementMode(null); + setShowToast(false); + return; + } + } + + setHhFormData({ + id: '', + head_name: '', + nik: '', + no_kk: '', + family_size: 1, + status: 'Pending', + photo_url: '', + lat: latlng.lat, + lng: latlng.lng, + assigned_hub_id: closestHub ? closestHub.id : null + }); + setImageFile(null); + setShowHhModal(true); + } + setPlacementMode(null); + setShowToast(false); + }; + + // Custom Leaflet Icons builder + const getCustomIcon = (color, iconClass, capacityStatus) => { + const isOverloaded = capacityStatus === 'overloaded'; + const borderStyle = isOverloaded ? '2px dashed #ef4444' : '2px solid white'; + const warningBadge = isOverloaded + ? `
` + : ''; + const pulseClass = isOverloaded ? 'pulse-border' : ''; + + return LeafletRef.current.divIcon({ + className: `custom-div-icon ${pulseClass}`, + html: `
${warningBadge}
`, + iconSize: [32, 32], + iconAnchor: [16, 16], + popupAnchor: [0, -16] + }); + }; + + // Coverage Calculations and UI Rendering + function recalculateCoverageAndRender(currentActiveHubs) { + const L = LeafletRef.current; + + // Clear layers + hubLayersRef.current.clearLayers(); + circleLayersRef.current.clearLayers(); + householdLayersRef.current.clearLayers(); + + hubMarkersRef.current = {}; + circleMarkersRef.current = {}; + hhMarkersRef.current = {}; + + let covered = 0; + + // 1. Render Hubs and Circles + currentActiveHubs.forEach(hub => { + const hubRadius = parseInt(hub.radius) || 500; + const style = hubStyles[hub.type] || hubStyles['Other']; + + // Circle + const circle = L.circle([hub.lat, hub.lng], { + radius: hubRadius, + color: style.color, + fillColor: style.color, + fillOpacity: 0.15, + weight: 1.5, + dashArray: '4, 4' + }).addTo(circleLayersRef.current); + circleMarkersRef.current[hub.id] = circle; + + // Marker + const marker = L.marker([hub.lat, hub.lng], { + icon: getCustomIcon(style.color, style.iconClass, hub.capacity_status), + draggable: isEditMode && profileRef.current?.role === 'super_admin' + }).addTo(hubLayersRef.current); + hubMarkersRef.current[hub.id] = marker; + + // Ownership check for this specific Worship Hub + const isMyHub = profileRef.current && ( + profileRef.current.role === 'super_admin' || + hub.pic_id === profileRef.current.id || + hub.head_id === profileRef.current.id + ); + + // Capacity Status Display & Interaction + const capStatus = hub.capacity_status === 'overloaded' ? 'Kritis / Overloaded' : 'Normal'; + const capColor = hub.capacity_status === 'overloaded' ? '#ef4444' : '#10b981'; + const pendingText = hub.pending_capacity_status + ? `
Pengajuan: ${hub.pending_capacity_status === 'overloaded' ? 'Kritis' : 'Normal'} (Menunggu Persetujuan)
` + : ''; + + // Determine Capacity Button (Only visible if the Hub Head actually owns this hub) + let capacityButtonHTML = ''; + const isHubHead = profileRef.current && profileRef.current.role === 'hub_head'; + if (isHubHead && isMyHub) { + if (hub.pending_capacity_status) { + capacityButtonHTML = ``; + } else if (hub.capacity_status === 'normal') { + capacityButtonHTML = ``; + } else { + capacityButtonHTML = ``; + } + } + + // Realtime popup slider + const popupDiv = document.createElement('div'); + popupDiv.innerHTML = ` +

+ ${hub.name} + ${hub.type} +

+

Alamat: ${hub.address || 'Memuat alamat...'}

+

Kontak PIC: ${hub.pic_phone ? `${hub.pic_phone} ` : 'Belum diatur'}

+

Lat: ${parseFloat(hub.lat).toFixed(4)}, Lng: ${parseFloat(hub.lng).toFixed(4)}

+ +
+ Status Kapasitas: + ${capStatus} + ${pendingText} + ${capacityButtonHTML} +
+ + +
+ ${isEditMode && isMyHub ? `` : ''} + ${profileRef.current && isMyHub ? `` : ''} + ${isEditMode && profileRef.current?.role === 'super_admin' ? `` : ''} +
+ `; + + // Slider event listeners + const slider = popupDiv.querySelector('input[type=range]'); + slider.addEventListener('input', (e) => { + const val = e.target.value; + popupDiv.querySelector(`#radval_${hub.id}`).textContent = val; + circle.setRadius(parseInt(val)); + // Dynamically update coordinates mapping + hub.radius = parseInt(val); + fastRecalculate(currentActiveHubs); + }); + + slider.addEventListener('change', async (e) => { + const val = parseInt(e.target.value); + const { error } = await supabase.from('hubs').update({ radius_meter: val }).eq('id', hub.id); + if (error) { + console.error("Error updating radius:", error.message || error.details || error); + alert(`Error updating radius: ${error.message || error.details || JSON.stringify(error)}`); + } else { + fetchData(); + } + }); + + marker.bindPopup(popupDiv, { minWidth: 240 }); + + // On-demand reverse geocoding for Worship Hubs + marker.on('popupopen', async () => { + const addressEl = popupDiv.querySelector(`#hub-address-${hub.id}`); + if (addressEl && (addressEl.textContent === 'Loading address...' || !hub.address)) { + try { + const res = await fetch(`https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=${hub.lat}&lon=${hub.lng}`); + const data = await res.json(); + const address = data.display_name || `${hub.lat.toFixed(4)}, ${hub.lng.toFixed(4)}`; + addressEl.textContent = address; + + // Auto cache address to database silently + if (!hub.address) { + await supabase.from('hubs').update({ address }).eq('id', hub.id); + hub.address = address; + } + } catch (e) { + addressEl.textContent = `${hub.lat.toFixed(4)}, ${hub.lng.toFixed(4)}`; + } + } + + const editBtn = popupDiv.querySelector('.edit-hub-btn'); + if (editBtn) { + editBtn.onclick = () => { + setHubFormData({ + id: hub.id, + name: hub.name, + type: hub.type, + radius_meter: hub.radius, + lat: hub.lat, + lng: hub.lng, + address: hub.address, + pic_phone: hub.pic_phone || '' + }); + setShowHubModal(true); + }; + } + + const donationBtn = popupDiv.querySelector('.manage-donations-btn'); + if (donationBtn) { + donationBtn.onclick = () => { + setActiveDonationHub(hub); + fetchDonations(hub.id); + setShowDonationModal(true); + }; + } + + const deleteBtn = popupDiv.querySelector('.delete-hub-btn'); + if (deleteBtn) { + deleteBtn.onclick = () => { + handleDeleteHub(hub.id, hub.name); + }; + } + + const reqBtn = popupDiv.querySelector('.request-capacity-btn'); + if (reqBtn) { + reqBtn.onclick = async () => { + const targetStatus = reqBtn.dataset.target; + const { error } = await supabase.from('hubs').update({ pending_capacity_status: targetStatus }).eq('id', hub.id); + if (error) { + alert(`Gagal mengajukan perubahan status: ${error.message}`); + } else { + showToastNotification('Pengajuan perubahan status kapasitas berhasil dikirim ke Super Admin!'); + marker.closePopup(); + fetchData(); + } + }; + } + + const cancelBtn = popupDiv.querySelector('.cancel-capacity-btn'); + if (cancelBtn) { + cancelBtn.onclick = async () => { + const { error } = await supabase.from('hubs').update({ pending_capacity_status: null }).eq('id', hub.id); + if (error) { + alert(`Gagal membatalkan pengajuan: ${error.message}`); + } else { + showToastNotification('Pengajuan perubahan status kapasitas berhasil dibatalkan.'); + marker.closePopup(); + fetchData(); + } + }; + } + }); + + // Drag listener + marker.on('drag', (e) => { + const pos = e.target.getLatLng(); + circle.setLatLng(pos); + hub.lat = pos.lat; + hub.lng = pos.lng; + fastRecalculate(currentActiveHubs); + }); + + marker.on('dragend', async (e) => { + const pos = e.target.getLatLng(); + const { error } = await supabase.from('hubs').update({ location: `POINT(${pos.lng} ${pos.lat})` }).eq('id', hub.id); + if (error) { + console.error("Error updating location:", error.message || error.details || error); + alert(`Error updating location: ${error.message || error.details || JSON.stringify(error)}`); + } else { + fetchData(); + } + }); + }); + + // 2. Render Households + const isLocalAdmin = profileRef.current && profileRef.current.role === 'pic'; + const myHub = isLocalAdmin ? hubs.find(h => h.pic_id === profileRef.current?.id || h.head_id === profileRef.current?.id) : null; + const subDistrictsList = ['Pontianak Barat', 'Pontianak Kota', 'Pontianak Selatan', 'Pontianak Tenggara', 'Pontianak Timur', 'Pontianak Utara']; + const updatedHh = households.map((hh, idx) => { + let closestHub = null; + let minDistance = Infinity; + + if (hh.manual_override_assigned_hub) { + closestHub = currentActiveHubs.find(h => h.id === hh.db_assigned_hub_id); + } else { + currentActiveHubs.forEach(hub => { + const dist = mapInstance.current.distance([hh.lat, hh.lng], [hub.lat, hub.lng]); + const hubRadius = parseInt(hub.radius) || 500; + if (dist <= hubRadius && dist < minDistance) { + minDistance = dist; + closestHub = hub; + } + }); + } + + if (closestHub) { + hh.assigned_hub_id = closestHub.id; + hh.assigned_hub_type = closestHub.type; + hh.covered = true; + covered++; + } else { + hh.assigned_hub_id = null; + hh.assigned_hub_type = null; + hh.covered = false; + } + + // Spatially recalculate kecamatan sub district dynamically + hh.sub_district = hh.sub_district && hh.sub_district !== 'Belum Terpetakan' + ? hh.sub_district + : getKecamatanForPoint(hh.lat, hh.lng) || 'Belum Terpetakan'; + + // Retrieve assigned hub name (using allHubs database master list) + const assignedHub = allHubs.find(h => String(h.id) === String(hh.db_assigned_hub_id || hh.assigned_hub_id)); + const assignedHubName = assignedHub ? assignedHub.name : 'Belum Ditugaskan / Mandiri'; + + // Marker + const isVerified = hh.status === 'Verified'; + let markerColor = 'var(--danger)'; + if (isVerified) { + markerColor = hh.covered ? 'var(--success)' : 'var(--danger)'; + } else { + markerColor = hh.covered ? '#f59e0b' : '#64748b'; // Orange if inside, Gray if outside + } + const icon = getCustomIcon(markerColor, 'fas fa-user'); + + const canEditHh = profileRef.current?.role === 'super_admin' || (isLocalAdmin && myHub && (hh.db_assigned_hub_id === myHub.id || hh.surveyor_id === profileRef.current?.id)); + + const marker = L.marker([hh.lat, hh.lng], { + icon: icon, + draggable: isEditMode && canEditHh + }).addTo(householdLayersRef.current); + hhMarkersRef.current[hh.id] = marker; + + const isHttp = hh.photo_url && hh.photo_url.startsWith('http'); + + let delegationHTML = ''; + if (isLocalAdmin && myHub && hh.db_assigned_hub_id === myHub.id) { + if (!hh.pending_transfer_hub_id) { + const otherHubs = hubs.filter(h => h.id !== myHub.id); + const optionsHTML = otherHubs.map(h => ``).join(''); + delegationHTML = ` +
+

Delegasi Lintas Hub

+

Ajukan bantuan terlayani warga ini ke Hub terdekat lainnya.

+
+ + +
+
+ `; + } else { + const targetHubName = hubs.find(h => h.id === hh.pending_transfer_hub_id)?.name || 'Hub Lain'; + delegationHTML = ` +
+

Delegasi Tertunda

+
Menunggu persetujuan: ${targetHubName}
+ +
+ `; + } + } + + // Popup + marker.bindPopup(` +
+
+ + +
+
+

${hh.head_of_family}

+

Jumlah Anggota KK: ${hh.family_size} Jiwa

+

Alamat: Memuat alamat...

+

Kecamatan: ${hh.sub_district}

+

Hub Naungan: ${assignedHubName}

+

Status: + ${hh.covered ? 'Terlayani' : 'Belum Terlayani'} +

+
+
+ ${delegationHTML} + ${isEditMode && canEditHh ? ` +
+ +
` : ''} + `, { minWidth: 280 }); + + // On-demand reverse geocoding for Citizens + marker.on('popupopen', async () => { + const addressEl = document.getElementById(`hh-address-${hh.id}`); + if (addressEl && (addressEl.textContent === 'Loading address...' || addressEl.textContent === 'Memuat alamat...')) { + try { + const res = await fetch(`https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=${hh.lat}&lon=${hh.lng}`); + const data = await res.json(); + addressEl.textContent = data.display_name || `${hh.lat.toFixed(4)}, ${hh.lng.toFixed(4)}`; + } catch (e) { + addressEl.textContent = `${hh.lat.toFixed(4)}, ${hh.lng.toFixed(4)}`; + } + } + + const imgEl = document.getElementById(`hh-photo-${hh.id}`); + const iconEl = document.getElementById(`hh-photo-icon-${hh.id}`); + if (imgEl && iconEl && hh.photo_url && !hh.photo_url.startsWith('http')) { + const { data } = await supabase.storage.from('geotagging-photo').createSignedUrl(hh.photo_url, 3600); + if (data && data.signedUrl) { + imgEl.src = data.signedUrl; + imgEl.style.display = 'block'; + iconEl.style.display = 'none'; + } + } + + const editBtn = document.querySelector('.edit-hh-btn'); + if (editBtn) { + editBtn.onclick = () => { + setHhFormData({ + id: hh.id, + head_name: hh.head_of_family || hh.head_name || '', + nik: hh.nik || '', + no_kk: hh.no_kk || '', + family_size: hh.family_size, + status: hh.status || 'Pending', + photo_url: hh.photo_url || 'https://via.placeholder.com/150', + lat: hh.lat, + lng: hh.lng, + assigned_hub_id: hh.db_assigned_hub_id || hh.assigned_hub_id + }); + setImageFile(null); + setShowHhModal(true); + }; + } + + const sendBtn = document.querySelector(`.send-delegation-btn[data-hh-id="${hh.id}"]`); + if (sendBtn) { + sendBtn.onclick = async () => { + const targetSelect = document.getElementById(`delegation-target-${hh.id}`); + const targetHubId = targetSelect?.value; + if (!targetHubId) { + alert("Silakan pilih Hub penerima terlebih dahulu."); + return; + } + const { error } = await supabase.from('households').update({ + pending_transfer_hub_id: targetHubId + }).eq('id', hh.id); + + if (error) { + alert(`Gagal mengirim permohonan delegasi: ${error.message}`); + } else { + showToastNotification('Permohonan delegasi berhasil dikirim ke Hub penerima!'); + marker.closePopup(); + fetchData(); + } + }; + } + + const cancelBtn = document.querySelector(`.cancel-delegation-btn[data-hh-id="${hh.id}"]`); + if (cancelBtn) { + cancelBtn.onclick = async () => { + const { error } = await supabase.from('households').update({ + pending_transfer_hub_id: null + }).eq('id', hh.id); + + if (error) { + alert(`Gagal membatalkan permohonan delegasi: ${error.message}`); + } else { + showToastNotification('Permohonan delegasi berhasil dibatalkan.'); + marker.closePopup(); + fetchData(); + } + }; + } + }); + + // Drag events + let originalLatLng = null; + marker.on('dragstart', (e) => { + originalLatLng = e.target.getLatLng(); + }); + + marker.on('drag', (e) => { + const pos = e.target.getLatLng(); + hh.lat = pos.lat; + hh.lng = pos.lng; + fastRecalculate(currentActiveHubs); + }); + + marker.on('dragend', async (e) => { + const pos = e.target.getLatLng(); + + let closestHub = null; + let minDistance = Infinity; + + if (hh.manual_override_assigned_hub) { + closestHub = hubs.find(h => h.id === hh.db_assigned_hub_id); + } else { + // Calculate true closest hub on drag end against ALL hubs + hubs.forEach(hub => { + const dist = mapInstance.current.distance([pos.lat, pos.lng], [hub.lat, hub.lng]); + const hubRadius = parseInt(hub.radius) || 500; + if (dist <= hubRadius && dist < minDistance) { + minDistance = dist; + closestHub = hub; + } + }); + } + + // For non-admin, target must be inside their managed hub's radius OR the household must be assigned to their hub + let isManualOverrideApplied = hh.manual_override_assigned_hub; + if (profileRef.current?.role !== 'super_admin') { + const myHub = hubsRef.current.find(h => h.pic_id === profileRef.current?.id || h.head_id === profileRef.current?.id); + const isInsideRadius = closestHub && myHub && closestHub.id === myHub.id; + const isMyHousehold = myHub && hh.db_assigned_hub_id === myHub.id; + + if (!isInsideRadius && !isMyHousehold) { + showToastNotification("Titik KK harus berada di dalam radius jangkauan atau merupakan warga yang terdaftar pada Hub Anda!", "danger"); + if (originalLatLng) { + e.target.setLatLng(originalLatLng); + hh.lat = originalLatLng.lat; + hh.lng = originalLatLng.lng; + fastRecalculate(currentActiveHubs); + } + return; + } + + // If the household belongs to the user's hub, but is dragged outside the radius or into another hub's radius, + // we force it to stay assigned to the user's hub and apply the manual override flag! + if (isMyHousehold && !isInsideRadius) { + closestHub = myHub; + isManualOverrideApplied = true; + } + } + + const matchedKec = getKecamatanForPoint(pos.lat, pos.lng) || 'Belum Terpetakan'; + const { error } = await supabase.from('households').update({ + location: `POINT(${pos.lng} ${pos.lat})`, + assigned_hub_id: closestHub ? closestHub.id : null, + sub_district: matchedKec, + manual_override_assigned_hub: isManualOverrideApplied + }).eq('id', hh.id); + if (error) { + console.error("Error updating location:", error.message || error.details || error); + alert(`Error updating location: ${error.message || error.details || JSON.stringify(error)}`); + } else { + fetchData(); + } + }); + + return hh; + }); + + // Update Stats + const total = updatedHh.length; + const uncovered = total - covered; + const equality = total > 0 ? Math.round((covered / total) * 100) : 0; + + // Update Stats only if authenticated (public stats come from API) + if (profile) { + setStats({ + hubsCount: currentActiveHubs.length, + coveredCount: covered, + uncoveredCount: uncovered, + equalityIndex: equality + }); + + updateChartsData(updatedHh); + } + }; + + // Perform quick visual updates without fully recreating layers (prevents marker flicker on drag) + function fastRecalculate(currentActiveHubs) { + let covered = 0; + const subDistrictsList = ['Pontianak Barat', 'Pontianak Kota', 'Pontianak Selatan', 'Pontianak Tenggara', 'Pontianak Timur', 'Pontianak Utara']; + const updatedHh = households.map((hh, idx) => { + let closestHub = null; + let minDistance = Infinity; + + if (hh.manual_override_assigned_hub) { + closestHub = currentActiveHubs.find(h => h.id === hh.db_assigned_hub_id); + } else { + currentActiveHubs.forEach(hub => { + const dist = mapInstance.current.distance([hh.lat, hh.lng], [hub.lat, hub.lng]); + const hubRadius = parseInt(hub.radius) || 500; + if (dist <= hubRadius && dist < minDistance) { + minDistance = dist; + closestHub = hub; + } + }); + } + + const wasCovered = hh.covered; + hh.covered = !!closestHub; + hh.assigned_hub_type = closestHub ? closestHub.type : null; + if (hh.covered) covered++; + + // Spatially recalculate kecamatan sub district on the fly during drag + hh.sub_district = getKecamatanForPoint(hh.lat, hh.lng) || 'Belum Terpetakan'; + + // Visually toggle icon colors on drag without re-rendering everything + if (wasCovered !== hh.covered && hhMarkersRef.current[hh.id]) { + const isVerified = hh.status === 'Verified'; + let markerColor = 'var(--danger)'; + if (isVerified) { + markerColor = hh.covered ? 'var(--success)' : 'var(--danger)'; + } else { + markerColor = hh.covered ? '#f59e0b' : '#64748b'; // Orange if inside, Gray if outside + } + const icon = getCustomIcon(markerColor, 'fas fa-user'); + hhMarkersRef.current[hh.id].setIcon(icon); + } + + return hh; + }); + + const total = updatedHh.length; + const uncovered = total - covered; + const equality = total > 0 ? Math.round((covered / total) * 100) : 0; + + if (profile) { + setStats({ + hubsCount: currentActiveHubs.length, + coveredCount: covered, + uncoveredCount: uncovered, + equalityIndex: equality + }); + + updateChartsData(updatedHh); + } + }; + + // Initialize Statistics Charts + function initCharts() { + const barCtx = barChartRef.current.getContext('2d'); + barChartInstance.current = new Chart(barCtx, { + type: 'bar', + data: { labels: [], datasets: [] }, + options: { + responsive: true, + maintainAspectRatio: false, + scales: { + y: { beginAtZero: true, grid: { color: 'rgba(0,0,0,0.05)' } }, + x: { grid: { display: false } } + }, + plugins: { legend: { position: 'bottom', labels: { boxWidth: 12 } } } + } + }); + + const donutCtx = donutChartRef.current.getContext('2d'); + donutChartInstance.current = new Chart(donutCtx, { + type: 'doughnut', + data: { labels: [], datasets: [] }, + options: { + responsive: true, + maintainAspectRatio: false, + plugins: { legend: { position: 'right', labels: { boxWidth: 12 } } }, + cutout: '70%', + borderWidth: 0 + } + }); + }; + + // Update Data inside Chart Instances + function updateChartsData(currentHouseholds) { + if (!barChartInstance.current || !donutChartInstance.current) return; + + // 1. Update Bar Chart (Sub-Districts) using Pontianak's exact 6 kecamatan + const subDistrictsList = ['Pontianak Barat', 'Pontianak Kota', 'Pontianak Selatan', 'Pontianak Tenggara', 'Pontianak Timur', 'Pontianak Utara']; + const subDistrictsMap = {}; + subDistrictsList.forEach(sub => { + subDistrictsMap[sub] = { covered: 0, uncovered: 0 }; + }); + + currentHouseholds.forEach(hh => { + const sub = hh.sub_district || 'Other'; + if(!subDistrictsMap[sub]) subDistrictsMap[sub] = { covered: 0, uncovered: 0 }; + if(hh.covered) subDistrictsMap[sub].covered++; + else subDistrictsMap[sub].uncovered++; + }); + + const labels = Object.keys(subDistrictsMap); + const dataCovered = labels.map(l => subDistrictsMap[l].covered); + const dataUncovered = labels.map(l => subDistrictsMap[l].uncovered); + + barChartInstance.current.data.labels = labels; + barChartInstance.current.data.datasets = [ + { label: 'Terlayani', data: dataCovered, backgroundColor: '#10b981', borderRadius: 4 }, + { label: 'Belum Terlayani', data: dataUncovered, backgroundColor: '#ef4444', borderRadius: 4 } + ]; + barChartInstance.current.update('none'); + + // 2. Update Donut Chart (Hub types) + const typeCounts = {}; + currentHouseholds.forEach(hh => { + if(hh.covered && hh.assigned_hub_type) { + typeCounts[hh.assigned_hub_type] = (typeCounts[hh.assigned_hub_type] || 0) + 1; + } + }); + + const dLabels = Object.keys(typeCounts); + const dData = Object.values(typeCounts); + const colors = ['#3b82f6', '#8b5cf6', '#ec4899', '#f59e0b', '#10b981']; + + donutChartInstance.current.data.labels = dLabels; + donutChartInstance.current.data.datasets = [{ + data: dData, + backgroundColor: colors.slice(0, dLabels.length), + hoverOffset: 4 + }]; + donutChartInstance.current.update('none'); + }; + + const fetchDonations = async (hubId) => { + const { data, error } = await supabase + .from('donations') + .select('*, profiles(full_name)') + .eq('hub_id', hubId) + .order('transaction_date', { ascending: false }); + + if (error) { + console.error("Error fetching donations", error); + } else { + setDonationsList(data || []); + } + }; + + const handleSaveDonation = async (e) => { + e.preventDefault(); + if (!activeDonationHub) return; + if (isSubmittingDonation) return; + setIsSubmittingDonation(true); + + const data = { + hub_id: activeDonationHub.id, + transaction_date: donationFormData.transaction_date, + amount: parseFloat(donationFormData.amount), + type: donationFormData.type, + description: donationFormData.description, + recorded_by: user?.id + }; + + try { + const { error } = await supabase.from('donations').insert([data]); + if (error) { + alert(`Error saving donation: ${error.message}`); + return; + } + + setDonationFormData({ amount: '', type: 'IN', description: '', transaction_date: new Date().toISOString().split('T')[0] }); + fetchDonations(activeDonationHub.id); + } finally { + setIsSubmittingDonation(false); + } + }; + + // Save new hub + const handleSaveHub = async (e) => { + e.preventDefault(); + const data = { + name: hubFormData.name, + type: hubFormData.type, + radius_meter: parseInt(hubFormData.radius_meter) || 500, + location: `POINT(${hubFormData.lng} ${hubFormData.lat})`, + address: hubFormData.address, + pic_phone: hubFormData.pic_phone || null + }; + + let error; + if (hubFormData.id) { + const res = await supabase.from('hubs').update(data).eq('id', hubFormData.id); + error = res.error; + } else { + const res = await supabase.from('hubs').insert([data]); + error = res.error; + } + + if (error) { + console.error("Error saving hub:", error.message || error.details || error); + alert(`Error saving hub: ${error.message || error.details || JSON.stringify(error)}`); + } else { + setShowHubModal(false); + fetchData(); + } + }; + + const handleVerifyAction = async (id, status) => { + const { error } = await supabase.from('households').update({ status }).eq('id', id); + if (error) { + alert(`Error updating status: ${error.message}`); + } else { + fetchData(); + } + }; + + const handleFocusHousehold = (hh) => { + if (!mapInstance.current) return; + + // 1. Close modal + setShowApprovalModal(false); + + // 2. Set view to coordinate with high zoom + mapInstance.current.setView([hh.lat, hh.lng], 18); + + // 3. Auto-open marker popup after small timeout + setTimeout(() => { + const marker = hhMarkersRef.current[hh.id]; + if (marker) { + marker.openPopup(); + } + }, 400); + }; + + const handleFocusHub = (hub) => { + if (!mapInstance.current || !hub) return; + mapInstance.current.setView([hub.lat, hub.lng], 17); + setTimeout(() => { + const marker = hubMarkersRef.current[hub.id]; + if (marker) { + marker.openPopup(); + } + }, 400); + }; + + const handleOpenKas = (hub) => { + if (!hub) return; + setActiveDonationHub(hub); + fetchDonations(hub.id); + setShowDonationModal(true); + }; + + const handleSaveHh = async (e) => { + e.preventDefault(); + setIsUploading(true); + let finalPhotoUrl = hhFormData.photo_url || 'https://via.placeholder.com/150'; + + if (imageFile) { + const fileName = `public/${Date.now()}_${imageFile.name}`; + const { data: uploadData, error: uploadError } = await supabase.storage + .from('geotagging-photo') + .upload(fileName, imageFile); + + if (uploadError) { + alert(`Error uploading image: ${uploadError.message}`); + setIsUploading(false); + return; + } + finalPhotoUrl = uploadData.path; + } + + // Determine sub-district dynamically + let subDistrictName = 'Belum Terpetakan'; + if (hhFormData.lat && hhFormData.lng) { + const matched = getKecamatanForPoint(parseFloat(hhFormData.lat), parseFloat(hhFormData.lng)); + if (matched) subDistrictName = matched; + } + + const data = { + head_name: hhFormData.head_name, + nik: hhFormData.nik || null, + no_kk: hhFormData.no_kk || null, + family_size: parseInt(hhFormData.family_size) || 1, + status: hhFormData.status || 'Pending', + photo_url: finalPhotoUrl, + assigned_hub_id: hhFormData.assigned_hub_id || null, + sub_district: subDistrictName, + manual_override_assigned_hub: hhFormData.assigned_hub_id ? true : false + }; + + if (hhFormData.id) { + // If Super Admin is editing and changes the hub assignment, instead of immediately shifting the hub, + // we route it to the target Hub's "Delegasi Masuk" pending transfer queue! + const originalHh = households.find(h => h.id === hhFormData.id); + const isSuperAdmin = profileRef.current?.role === 'super_admin'; + + if (isSuperAdmin && originalHh && hhFormData.assigned_hub_id !== originalHh.db_assigned_hub_id) { + if (hhFormData.assigned_hub_id !== null) { + data.assigned_hub_id = originalHh.db_assigned_hub_id; + data.pending_transfer_hub_id = hhFormData.assigned_hub_id; + data.manual_override_assigned_hub = originalHh.manual_override_assigned_hub; + } + } + + const { error } = await supabase.from('households').update(data).eq('id', hhFormData.id); + if (error) { + alert(`Gagal menyimpan data warga: ${error.message}`); + } else { + setShowHhModal(false); + setImageFile(null); + fetchData(); + } + } else { + // It's a new household, construct PostGIS POINT geometry and determine default status + const defaultStatus = profileRef.current?.role === 'super_admin' ? 'Verified' : 'Pending'; + const insertData = { + ...data, + status: defaultStatus, + location: `POINT(${hhFormData.lng} ${hhFormData.lat})`, + surveyor_id: user ? user.id : null + }; + + const { error } = await supabase.from('households').insert([insertData]); + if (error) { + alert(`Gagal menambah data warga: ${error.message || JSON.stringify(error)}`); + } else { + setShowHhModal(false); + setImageFile(null); + fetchData(); + } + } + setIsUploading(false); + }; + + return ( + <> +
+ + {/* Show Panel Buttons */} + + + + + + {/* Top Header */} +
+
+ Sinergi Umat +
+
+ + setSearchQuery(e.target.value)} + /> +
+
+ {!user ? ( + + ) : ( +
+ + Halo, {profile?.full_name || user.email} + +
setShowProfileModal(true)} + style={{ + cursor: 'pointer', + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + background: 'linear-gradient(135deg, var(--primary), #6366f1)', + color: 'white', + width: '36px', + height: '36px', + borderRadius: '50%', + fontWeight: 'bold', + boxShadow: '0 4px 10px rgba(59, 130, 246, 0.3)', + transition: 'transform 0.2s' + }} + onMouseOver={(e) => e.currentTarget.style.transform = 'scale(1.05)'} + onMouseOut={(e) => e.currentTarget.style.transform = 'scale(1)'} + > + {profile?.full_name ? profile.full_name.substring(0, 2).toUpperCase() : 'US'} +
+
+ )} + +
+
+ + {/* Left Panel (Controls) */} +
+
+ Menu Kontrol + +
+ + h.pending_capacity_status !== null && h.pending_capacity_status !== undefined).length} + setShowDelegationModal={setShowDelegationModal} + pendingDelegationsCount={profile && profile.role === 'hub_head' ? households.filter(hh => hh.pending_transfer_hub_id === (hubs.find(h => h.head_id === profile.id)?.id)).length : 0} + hubs={hubs} + onFocusHub={handleFocusHub} + onOpenKas={handleOpenKas} + setShowPicListModal={setShowPicListModal} + onlyMyHub={onlyMyHub} + setOnlyMyHub={setOnlyMyHub} + /> +
+ + {/* Right Panel (Stats) */} +
+
+ {profile?.role === 'hub_head' || profile?.role === 'pic' ? 'Statistik Mikro (Wilayah Anda)' : 'Statistik Makro (Tingkat Kota)'} + +
+ +
+
+
{stats.hubsCount}
+
Hub Rumah Ibadah
+
+
+
{stats.coveredCount}
+
Warga Terlayani
+
+
+
{stats.uncoveredCount}
+
Belum Terlayani
+
+
+ +
+

Cakupan per Kecamatan

+
+ +
+
+ +
+

Penyebaran Bantuan per Tipe Hub

+
+ +
+
+ +
+

Indeks Pemerataan Bantuan

+
+
+
+
{stats.equalityIndex}%
+
+
+
+
+ + {/* Legend */} +
+
+ + LEGENDA +
+ +
+ + {profile && ( + <> +
+
+ Terverifikasi & Terlayani +
+ +
+
+ Terverifikasi & Belum Terlayani +
+ +
+
+ Pending & Terlayani +
+ +
+
+ Pending & Belum Terlayani +
+ +
+ +
+
+ Kepadatan KK +
+ +
+ + )} + +
+
+ +
+ Hub Overloaded / Kritis +
+ +
+ + +
+ + {/* Placement Toast */} + {showToast && ( +
+ Klik pada peta untuk menempatkan {placementMode === 'hub' ? 'Hub Rumah Ibadah' : 'Data KK Warga'} + +
+ )} + + {/* Hub Modal */} + + + + + + + + + + + h.pic_id === profile.id || h.head_id === profile.id) : null} + selectedPhotoUrl={selectedPhotoUrl} + setSelectedPhotoUrl={setSelectedPhotoUrl} + onFocusHousehold={handleFocusHousehold} + fetchData={fetchData} + showToastNotification={showToastNotification} + /> + + + + + + h.pic_id === profile.id || h.head_id === profile.id) : null} + usersList={usersList} + /> + + + + {/* Custom Toast Notification */} + {webNotification && ( +
+ + {webNotification.message} +
+ )} + + {/* Custom Confirmation Modal */} + {confirmDialog && ( +
+
+
+
+ +
+
+

+ {confirmDialog.title} +

+

+ {confirmDialog.message} +

+
+
+
+ + +
+
+
+ )} + + ); +} \ No newline at end of file diff --git a/sistem-km-next/src/components/dashboard/SidebarControls.js b/sistem-km-next/src/components/dashboard/SidebarControls.js new file mode 100644 index 0000000..fab1190 --- /dev/null +++ b/sistem-km-next/src/components/dashboard/SidebarControls.js @@ -0,0 +1,319 @@ +import React from 'react'; + +export default function SidebarControls({ + user, + profile, + isEditMode, + setIsEditMode, + setShowApprovalModal, + setShowUserModal, + fetchUsers, + setPlacementMode, + setShowToast, + filters, + setFilters, + hubStyles, + setShowSurveyModal, + setShowCapacityModal, + pendingCapacityCount, + setShowDelegationModal, + pendingDelegationsCount, + hubs, + onFocusHub, + onOpenKas, + setShowPicListModal, + onlyMyHub, + setOnlyMyHub +}) { + return ( +
+ {user && (profile?.role === 'super_admin' || profile?.role === 'pic') && ( +
+

+ Mode Edit Peta +

+ +
+ )} + + {user && profile?.role === 'super_admin' && ( +
+

+ Aksi Admin +

+ + + + + + +
+ )} + + {user && (profile?.role === 'pic' || profile?.role === 'super_admin') && isEditMode && ( +
+

+ Menu Surveyor +

+ +
+ )} + + {user && profile?.role === 'pic' && ( +
+

+ Hub Saya +

+ +
+ )} + + {user && profile?.role === 'hub_head' && ( +
+

+ Koordinasi Hub +

+ +
+ )} + + {user && profile?.role === 'hub_head' && ( +
+

+ Menu Ketua Pengurus +

+ + + + + + +
+ )} + + {isEditMode && profile?.role === 'super_admin' && ( + + )} + +
+

Filter Visibilitas

+ {user && (profile?.role === 'pic' || profile?.role === 'hub_head') && ( + + )} + {Object.keys(filters).map(key => ( + + ))} +
+
+ ); +} diff --git a/sistem-km-next/src/components/dashboard/StatsPanel.js b/sistem-km-next/src/components/dashboard/StatsPanel.js new file mode 100644 index 0000000..5b7f0bf --- /dev/null +++ b/sistem-km-next/src/components/dashboard/StatsPanel.js @@ -0,0 +1,43 @@ +import React from 'react'; + +export default function StatsPanel({ + profile, + showStats, + setShowStats, + stats +}) { + return ( +
+
+ {profile?.role === 'hub_head' || profile?.role === 'pic' ? 'Micro Statistics (Your Area)' : 'Macro Statistics (City Level)'} + +
+ +
+
+
{stats.coveredCount}
+
Warga Terjangkau
+
+
+
{stats.uncoveredCount}
+
Warga Belum Terjangkau
+
+
+
{stats.equalityIndex}%
+
Indeks Pemerataan
+
+
+ +
+
+

Sebaran per Wilayah

+ +
+
+

Berdasarkan Tipe Hub

+ +
+
+
+ ); +} diff --git a/sistem-km-next/src/components/dashboard/modals/ApprovalQueueModal.js b/sistem-km-next/src/components/dashboard/modals/ApprovalQueueModal.js new file mode 100644 index 0000000..5a07688 --- /dev/null +++ b/sistem-km-next/src/components/dashboard/modals/ApprovalQueueModal.js @@ -0,0 +1,86 @@ +import React from 'react'; +import { supabase } from '@/lib/supabase'; + +export default function ApprovalQueueModal({ + showApprovalModal, + setShowApprovalModal, + households, + selectedPhotoUrl, + setSelectedPhotoUrl, + handleVerifyAction, + onFocusHousehold +}) { + if (!showApprovalModal) return null; + + return ( + <> +
+
+
+

Antrean Verifikasi KK

+ +
+
+ + + + + + + + + + + + {households.filter(hh => hh.status === 'Pending').length === 0 ? ( + + ) : ( + households.filter(hh => hh.status === 'Pending').map(hh => ( + + + + + + + + )) + )} + +
Kepala KeluargaJml AnggotaWilayahAksi Lokasi / FotoAksi Status
Tidak ada antrean pending.
+ {hh.head_of_family} +
NIK: {hh.nik || '-'} +
{hh.family_size} Jiwa{hh.sub_district} +
+ + + +
+
+ + +
+
+
+
+ + {/* Photo Preview Overlay */} + {selectedPhotoUrl && ( +
setSelectedPhotoUrl('')}> +
+ + Bukti Foto +
+
+ )} + + ); +} diff --git a/sistem-km-next/src/components/dashboard/modals/CapacityApprovalModal.js b/sistem-km-next/src/components/dashboard/modals/CapacityApprovalModal.js new file mode 100644 index 0000000..5bc5172 --- /dev/null +++ b/sistem-km-next/src/components/dashboard/modals/CapacityApprovalModal.js @@ -0,0 +1,324 @@ +import React, { useState, useEffect } from 'react'; +import { supabase } from '../../../lib/supabase'; + +export default function CapacityApprovalModal({ + showApprovalModal, + setShowApprovalModal, + hubs, + households, + showToastNotification, + onSuccess +}) { + const [selectedHub, setSelectedHub] = useState(null); + const [hubDonations, setHubDonations] = useState([]); + const [isLoadingFinancials, setIsLoadingFinancials] = useState(false); + const [isSubmitting, setIsSubmitting] = useState(false); + + // Filter hubs that have pending requests + const pendingHubs = hubs.filter(h => h.pending_capacity_status !== null && h.pending_capacity_status !== undefined); + + // Auto-select first pending hub + useEffect(() => { + if (pendingHubs.length > 0 && !selectedHub) { + setSelectedHub(pendingHubs[0]); + } else if (pendingHubs.length === 0) { + setSelectedHub(null); + } + }, [hubs, pendingHubs, selectedHub]); + + // Fetch selected hub's financials + useEffect(() => { + if (selectedHub) { + const fetchHubFinancials = async () => { + setIsLoadingFinancials(true); + const { data, error } = await supabase + .from('donations') + .select('*') + .eq('hub_id', selectedHub.id) + .order('transaction_date', { ascending: false }); + if (error) { + console.error('Error fetching hub donations:', error); + } else { + setHubDonations(data || []); + } + setIsLoadingFinancials(false); + }; + fetchHubFinancials(); + } else { + setHubDonations([]); + } + }, [selectedHub]); + + if (!showApprovalModal) return null; + + // Calculations for selected hub + const servedKkCount = selectedHub + ? households.filter(hh => hh.db_assigned_hub_id === selectedHub.id).length + : 0; + + const totalBalance = hubDonations.reduce((acc, curr) => { + if (curr.type === 'IN') return acc + Number(curr.amount); + return acc - Number(curr.amount); + }, 0); + + const ratioPerKk = servedKkCount > 0 ? totalBalance / servedKkCount : totalBalance; + + // Determine critical state warning and recommendations + let recommendationText = 'Kondisi Aman'; + let recommendationColor = '#10b981'; + let recommendationIcon = 'fa-check-circle'; + + if (ratioPerKk < 100000) { + recommendationText = 'SANGAT KRITIS (Rekomendasi Setujui: Valid)'; + recommendationColor = '#ef4444'; + recommendationIcon = 'fa-exclamation-triangle'; + } else if (ratioPerKk < 300000) { + recommendationText = 'KRITIS / SEDANG (Rekomendasi Setujui: Cukup Valid)'; + recommendationColor = '#f59e0b'; + recommendationIcon = 'fa-circle-info'; + } else { + recommendationText = 'KONDISI SEHAT (Rekomendasi Tolak: Dana Cukup)'; + recommendationColor = '#3b82f6'; + recommendationIcon = 'fa-shield-halved'; + } + + // Handle decisions + const handleDecision = async (hubId, approve) => { + if (isSubmitting) return; + setIsSubmitting(true); + + try { + if (approve) { + // Overwrite main status and reset pending status + const { error } = await supabase + .from('hubs') + .update({ + capacity_status: selectedHub.pending_capacity_status, + pending_capacity_status: null + }) + .eq('id', hubId); + + if (error) { + alert(`Gagal menyetujui pengajuan: ${error.message}`); + } else { + showToastNotification(`Berhasil menyetujui perubahan kapasitas menjadi overloaded!`); + setSelectedHub(null); + onSuccess(); + } + } else { + // Just reject by resetting pending status + const { error } = await supabase + .from('hubs') + .update({ pending_capacity_status: null }) + .eq('id', hubId); + + if (error) { + alert(`Gagal menolak pengajuan: ${error.message}`); + } else { + showToastNotification(`Pengajuan perubahan kapasitas ditolak.`); + setSelectedHub(null); + onSuccess(); + } + } + } catch (e) { + console.error(e); + } finally { + setIsSubmitting(false); + } + }; + + return ( +
+
+
+

Antrean Verifikasi Kapasitas Hub

+ +
+ +
+ + {/* Left Column: Pending Hubs List */} +
+

Daftar Pengajuan ({pendingHubs.length})

+ {pendingHubs.length === 0 ? ( +

+ Tidak ada pengajuan perubahan kapasitas saat ini. +

+ ) : ( +
+ {pendingHubs.map(hub => { + const isSelected = selectedHub?.id === hub.id; + return ( +
setSelectedHub(hub)} + style={{ + padding: '12px', + borderRadius: '8px', + border: isSelected ? '2px solid var(--primary)' : '1px solid #e2e8f0', + background: isSelected ? 'rgba(59, 130, 246, 0.05)' : 'white', + cursor: 'pointer', + transition: 'all 0.2s' + }} + > + {hub.name} + {hub.type} +
+ + Minta: {hub.pending_capacity_status === 'overloaded' ? 'Overloaded' : 'Normal'} + +
+
+ ); + })} +
+ )} +
+ + {/* Right Column: Selected Hub Details and Ratio Analysis */} +
+ {selectedHub ? ( +
+ {/* Hub Header */} +
+

{selectedHub.name}

+

+ {selectedHub.address || 'Alamat belum diatur'} +

+
+ + {/* Metrics Cards Grid */} +
+ + {/* Card 1: Assigned KK */} +
+ KK Terlayani + {servedKkCount} Keluarga +
+ + {/* Card 2: Donation Balance */} +
+ Saldo Kas + {isLoadingFinancials ? ( + Memuat data... + ) : ( + = 0 ? '#10b981' : '#ef4444' }}> + Rp{totalBalance.toLocaleString('id-ID')} + + )} +
+ + {/* Card 3: Financial Ratio */} +
+ Rasio Dana / KK + {isLoadingFinancials ? ( + Memuat data... + ) : ( + + Rp{Math.round(ratioPerKk).toLocaleString('id-ID')} / KK + + )} +
+ +
+ + {/* Audit & Recommendation Box */} +
+ +
+ Rekomendasi Analitis Pusat: + {recommendationText} +
+
+ + {/* Last 5 Transactions List */} +
+

Riwayat Transaksi Terakhir

+ {isLoadingFinancials ? ( +

Memuat data keuangan...

+ ) : hubDonations.length === 0 ? ( +

Tidak ada riwayat transaksi kas.

+ ) : ( + + + + + + + + + + {hubDonations.slice(0, 5).map(donation => ( + + + + + + ))} + +
TanggalKeteranganNominal
{donation.transaction_date}{donation.description} + {donation.type === 'IN' ? '+' : '-'} Rp{Number(donation.amount).toLocaleString('id-ID')} +
+ )} +
+ + {/* Actions Buttons */} +
+ + +
+
+ ) : ( +
+ +

Silakan pilih salah satu Hub dari antrean di sebelah kiri untuk diaudit.

+
+ )} +
+ +
+
+
+ ); +} diff --git a/sistem-km-next/src/components/dashboard/modals/DelegationQueueModal.js b/sistem-km-next/src/components/dashboard/modals/DelegationQueueModal.js new file mode 100644 index 0000000..12407bf --- /dev/null +++ b/sistem-km-next/src/components/dashboard/modals/DelegationQueueModal.js @@ -0,0 +1,250 @@ +import React from 'react'; +import { supabase } from '@/lib/supabase'; + +// Simple Haversine distance calculator +function getDistance(lat1, lon1, lat2, lon2) { + if (!lat1 || !lon1 || !lat2 || !lon2) return 0; + const R = 6371000; // meters + const phi1 = (lat1 * Math.PI) / 180; + const phi2 = (lat2 * Math.PI) / 180; + const deltaPhi = ((lat2 - lat1) * Math.PI) / 180; + const deltaLambda = ((lon2 - lon1) * Math.PI) / 180; + + const a = + Math.sin(deltaPhi / 2) * Math.sin(deltaPhi / 2) + + Math.cos(phi1) * Math.cos(phi2) * Math.sin(deltaLambda / 2) * Math.sin(deltaLambda / 2); + const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); + + return R * c; // in meters +} + +export default function DelegationQueueModal({ + showDelegationModal, + setShowDelegationModal, + households, + hubs, + myHub, + selectedPhotoUrl, + setSelectedPhotoUrl, + onFocusHousehold, + fetchData, + showToastNotification +}) { + if (!showDelegationModal || !myHub) return null; + + // Filter incoming transfers targeted to myHub + const incomingDelegations = households.filter(hh => hh.pending_transfer_hub_id === myHub.id); + + const handleAccept = async (hh) => { + try { + const { error } = await supabase + .from('households') + .update({ + assigned_hub_id: myHub.id, + pending_transfer_hub_id: null, + manual_override_assigned_hub: true + }) + .eq('id', hh.id); + + if (error) throw error; + + showToastNotification(`Warga ${hh.head_of_family} berhasil diterima dan dialihkan ke Hub Anda!`, 'success'); + fetchData(); + } catch (err) { + console.error(err); + showToastNotification(`Gagal menerima delegasi: ${err.message}`, 'danger'); + } + }; + + const handleReject = async (hh) => { + try { + const { error } = await supabase + .from('households') + .update({ + pending_transfer_hub_id: null + }) + .eq('id', hh.id); + + if (error) throw error; + + showToastNotification(`Delegasi warga ${hh.head_of_family} berhasil ditolak.`, 'success'); + fetchData(); + } catch (err) { + console.error(err); + showToastNotification(`Gagal menolak delegasi: ${err.message}`, 'danger'); + } + }; + + return ( + <> +
+
+
+

+ + Permohonan Delegasi Masuk +

+ +
+
+ + + + + + + + + + + + + {incomingDelegations.length === 0 ? ( + + + + ) : ( + incomingDelegations.map((hh) => { + const originHubName = hubs.find((h) => String(h.id) === String(hh.db_assigned_hub_id))?.name || 'Hub Tidak Dikenal'; + const distanceMeters = getDistance(hh.lat, hh.lng, myHub.lat, myHub.lng); + const formattedDistance = + distanceMeters > 1000 + ? `${(distanceMeters / 1000).toFixed(2)} km` + : `${Math.round(distanceMeters)} m`; + + return ( + + + + + + + + + ); + }) + )} + +
Kepala KeluargaJumlah AnggotaHub AsalJarak ke Hub AndaVerifikasi MediaAksi Keputusan
+ Tidak ada permohonan delegasi masuk untuk Hub Anda. +
+ {hh.head_of_family} +
+ NIK: {hh.nik || '-'} +
{hh.family_size} Jiwa + {originHubName} + + (myHub.radius || 500) ? '#fef3c7' : '#dcfce7', + color: distanceMeters > (myHub.radius || 500) ? '#d97706' : '#15803d', + fontWeight: '600', + fontSize: '0.8rem' + }} + > + {formattedDistance} + + +
+ + +
+
+ + +
+
+
+
+ + {/* Photo Preview Overlay */} + {selectedPhotoUrl && ( +
setSelectedPhotoUrl('')}> +
+ + Bukti Foto +
+
+ )} + + ); +} diff --git a/sistem-km-next/src/components/dashboard/modals/DonationModal.js b/sistem-km-next/src/components/dashboard/modals/DonationModal.js new file mode 100644 index 0000000..54c6bc1 --- /dev/null +++ b/sistem-km-next/src/components/dashboard/modals/DonationModal.js @@ -0,0 +1,140 @@ +import React from 'react'; + +export default function DonationModal({ + showDonationModal, + setShowDonationModal, + donationFormData, + setDonationFormData, + hubs, + isSubmittingDonation, + handleSaveDonation, + donationsList, + profile +}) { + if (!showDonationModal) return null; + if (!profile) return null; // Secure fail-safe for unauthenticated users + + // Check roles: PIC, Hub Head, and Super Admin can record transactions + const canEdit = profile.role === 'super_admin' || profile.role === 'pic' || profile.role === 'hub_head'; + + // Calculate Running / Total Balance + const totalBalance = donationsList.reduce((acc, curr) => { + if (curr.type === 'IN') { + return acc + Number(curr.amount); + } else { + return acc - Number(curr.amount); + } + }, 0); + + // Filter hubs list based on role + const allowedHubs = profile.role === 'super_admin' + ? hubs + : hubs.filter(h => h.pic_id === profile.id || h.head_id === profile.id); + + return ( +
+
+
+

Manajemen Donasi / Kas

+ +
+
+ + {/* Form Transaksi (Only for PIC & Super Admin) */} + {canEdit && ( +
+

Tambah Transaksi

+
+
+ + +
+
+ + +
+
+ + setDonationFormData({...donationFormData, amount: e.target.value})} min="1" required /> +
+
+ + +
+
+ + setDonationFormData({...donationFormData, transaction_date: e.target.value})} required /> +
+ +
+
+ )} + + {/* Transaction Logs */} +
+
+

Riwayat Transaksi

+
= 0 ? '#dcfce7' : '#fee2e2', + color: totalBalance >= 0 ? '#15803d' : '#b91c1c', + borderRadius: '20px', + fontWeight: 'bold', + fontSize: '0.85rem' + }}> + Saldo Kas: Rp{totalBalance.toLocaleString('id-ID')} +
+
+ {donationsList.length === 0 ? ( +

Belum ada data transaksi.

+ ) : ( + + + + + + + + + + {donationsList.map(d => ( + + + + + + ))} + +
TanggalKeteranganNominal
{d.transaction_date} + {d.description} + {d.profiles && d.profiles.full_name &&
Oleh: {d.profiles.full_name}
} +
+ {d.type === 'IN' ? '+' : '-'} Rp{Number(d.amount).toLocaleString('id-ID')} +
+ )} +
+
+
+
+ ); +} diff --git a/sistem-km-next/src/components/dashboard/modals/HouseholdFormModal.js b/sistem-km-next/src/components/dashboard/modals/HouseholdFormModal.js new file mode 100644 index 0000000..5fbf79d --- /dev/null +++ b/sistem-km-next/src/components/dashboard/modals/HouseholdFormModal.js @@ -0,0 +1,98 @@ +import React from 'react'; + +export default function HouseholdFormModal({ + showHhModal, + setShowHhModal, + hhFormData, + setHhFormData, + handleSaveHh, + hubs, + imageFile, + setImageFile, + isUploading, + isEditMode, + profile +}) { + if (!showHhModal) return null; + + return ( +
+
+
+

{hhFormData.id ? 'Edit' : 'Tambah'} Data Warga

+ +
+
+
+
+ + setHhFormData({...hhFormData, head_name: e.target.value})} required /> +
+
+
+ + setHhFormData({...hhFormData, nik: e.target.value})} required /> +
+
+ + setHhFormData({...hhFormData, no_kk: e.target.value})} required /> +
+
+
+ + setHhFormData({...hhFormData, family_size: e.target.value})} required min="1" /> +
+
+ + +
+ + {/* Geotagging Photo Upload */} +
+ + { + if (e.target.files && e.target.files[0]) { + setImageFile(e.target.files[0]); + } + }} + style={{ width: '100%', fontSize: '0.9rem' }} + required={false} + /> + {imageFile &&

File siap diunggah: {imageFile.name}

} +
+ +
+
+ + +
+
+ + +
+
+ {isEditMode && ( + + )} +
+
+
+
+ ); +} diff --git a/sistem-km-next/src/components/dashboard/modals/HubFormModal.js b/sistem-km-next/src/components/dashboard/modals/HubFormModal.js new file mode 100644 index 0000000..209fc61 --- /dev/null +++ b/sistem-km-next/src/components/dashboard/modals/HubFormModal.js @@ -0,0 +1,64 @@ +import React from 'react'; + +export default function HubFormModal({ + showHubModal, + setShowHubModal, + hubFormData, + setHubFormData, + handleSaveHub, + isEditMode +}) { + if (!showHubModal) return null; + + return ( +
+
+
+

{hubFormData.id ? 'Edit' : 'Tambah'} Rumah Ibadah

+ +
+
+
+
+ + setHubFormData({...hubFormData, name: e.target.value})} required /> +
+
+ + +
+
+ + setHubFormData({...hubFormData, radius_meter: e.target.value})} required /> +
+
+ + setHubFormData({...hubFormData, pic_phone: e.target.value})} placeholder="Contoh: 08123456789" /> +
+
+
+ + +
+
+ + +
+
+ {isEditMode && ( + + )} +
+
+
+
+ ); +} diff --git a/sistem-km-next/src/components/dashboard/modals/PicListModal.js b/sistem-km-next/src/components/dashboard/modals/PicListModal.js new file mode 100644 index 0000000..f2de897 --- /dev/null +++ b/sistem-km-next/src/components/dashboard/modals/PicListModal.js @@ -0,0 +1,83 @@ +import React from 'react'; + +export default function PicListModal({ + showPicListModal, + setShowPicListModal, + myHub, + usersList +}) { + if (!showPicListModal || !myHub) return null; + + // Filter PICs assigned to this hub + const assignedPics = usersList.filter(u => u.role === 'pic' && u.id === myHub.pic_id); + + return ( +
+
+
+

+ + Daftar PIC Lapangan +

+ +
+
+

+ Berikut adalah akun PIC / Surveyor Lapangan yang ditugaskan untuk mengelola dan menyurvei wilayah jangkauan {myHub.name}. +

+ +
+ {assignedPics.length === 0 ? ( +
+ + Belum ada akun PIC yang ditugaskan ke Hub ini. +
+ ) : ( + assignedPics.map(pic => ( +
+
+ {pic.full_name ? pic.full_name.charAt(0).toUpperCase() : 'P'} +
+
+

{pic.full_name}

+

{pic.email}

+
+ + PIC Surveyor + +
+ )) + )} +
+
+
+
+ ); +} diff --git a/sistem-km-next/src/components/dashboard/modals/ProfileModal.js b/sistem-km-next/src/components/dashboard/modals/ProfileModal.js new file mode 100644 index 0000000..3856e0f --- /dev/null +++ b/sistem-km-next/src/components/dashboard/modals/ProfileModal.js @@ -0,0 +1,165 @@ +import React from 'react'; + +export default function ProfileModal({ + showProfileModal, + setShowProfileModal, + profile, + user, + handleLogout, + isLoggingOut +}) { + if (!showProfileModal) return null; + + const getRoleBadge = (role) => { + switch (role) { + case 'super_admin': + return { + label: 'Super Admin', + bg: '#fee2e2', + color: '#ef4444', + icon: 'fa-shield-halved' + }; + case 'pic': + return { + label: 'Surveyor / PIC Lapangan', + bg: '#dbeafe', + color: '#3b82f6', + icon: 'fa-route' + }; + case 'hub_head': + return { + label: 'Ketua Pengurus Rumah Ibadah', + bg: '#fef3c7', + color: '#d97706', + icon: 'fa-mosque' + }; + default: + return { + label: 'Pengguna', + bg: '#f1f5f9', + color: '#475569', + icon: 'fa-user' + }; + } + }; + + const badge = getRoleBadge(profile?.role); + const initials = profile?.full_name ? profile.full_name.substring(0, 2).toUpperCase() : 'US'; + + return ( +
setShowProfileModal(false)}> +
e.stopPropagation()} + > +
+

Profil Pengguna

+ +
+ +
+ {/* Avatar Area */} +
+ {initials} +
+ + {/* User Details */} +
+

+ {profile?.full_name || 'Pengguna Sinergi Umat'} +

+

+ {user?.email} +

+ + {/* Role Badge */} + + {badge.label} + +
+ +
+ + {/* Actions */} +
+ + +
+
+
+
+ ); +} diff --git a/sistem-km-next/src/components/dashboard/modals/SurveyMethodModal.js b/sistem-km-next/src/components/dashboard/modals/SurveyMethodModal.js new file mode 100644 index 0000000..9224989 --- /dev/null +++ b/sistem-km-next/src/components/dashboard/modals/SurveyMethodModal.js @@ -0,0 +1,410 @@ +import React, { useState, useRef } from 'react'; + +// Pure JavaScript GPS EXIF metadata reader +function getEXIFGPS(arrayBuffer) { + const dataView = new DataView(arrayBuffer); + if (dataView.getUint16(0, false) !== 0xFFD8) { + return null; // Not a JPEG + } + let offset = 2; + const length = dataView.byteLength; + let exifOffset = null; + + while (offset < length) { + const marker = dataView.getUint16(offset, false); + offset += 2; + if (marker === 0xFFE1) { // APP1 segment containing EXIF + const segmentLength = dataView.getUint16(offset, false); + if (dataView.getUint32(offset + 2, false) === 0x45786966) { // "Exif" + exifOffset = offset + 8; + break; + } + offset += segmentLength; + } else if ((marker & 0xFF00) === 0xFF00) { + const segmentLength = dataView.getUint16(offset, false); + offset += segmentLength; + } else { + break; + } + } + + if (!exifOffset) return null; + + const littleEndian = dataView.getUint16(exifOffset, false) === 0x4949; + const ifd0Offset = dataView.getUint32(exifOffset + 4, littleEndian); + + function parseIFD(offset, tiffOffset) { + try { + const entriesCount = dataView.getUint16(tiffOffset + offset, littleEndian); + const tags = {}; + + for (let i = 0; i < entriesCount; i++) { + const entryOffset = tiffOffset + offset + 2 + i * 12; + if (entryOffset + 12 > dataView.byteLength) break; + const tag = dataView.getUint16(entryOffset, littleEndian); + const type = dataView.getUint16(entryOffset + 2, littleEndian); + const count = dataView.getUint32(entryOffset + 4, littleEndian); + const valueOffset = dataView.getUint32(entryOffset + 8, littleEndian); + + tags[tag] = { type, count, offset: valueOffset, rawOffset: entryOffset + 8 }; + } + return tags; + } catch (e) { + return {}; + } + } + + try { + const ifd0 = parseIFD(ifd0Offset, exifOffset); + if (ifd0[0x8825]) { // GPS IFD Pointer + const gpsOffset = ifd0[0x8825].offset; + const gpsIFD = parseIFD(gpsOffset, exifOffset); + + const readRational = (valueOffset) => { + const targetOffset = exifOffset + valueOffset; + if (targetOffset + 8 > dataView.byteLength) return 0; + const num = dataView.getUint32(targetOffset, littleEndian); + const den = dataView.getUint32(targetOffset + 4, littleEndian); + return den === 0 ? 0 : num / den; + }; + + const readCoordinate = (tag) => { + if (!gpsIFD[tag]) return null; + const offset = gpsIFD[tag].offset; + const deg = readRational(offset); + const min = readRational(offset + 8); + const sec = readRational(offset + 16); + return deg + min / 60 + sec / 3600; + }; + + let lat = readCoordinate(2); // GPSLatitude + let lng = readCoordinate(4); // GPSLongitude + + if (lat !== null && lng !== null) { + if (gpsIFD[1]) { // GPSLatitudeRef + const refOffset = gpsIFD[1].rawOffset; + const refChar = String.fromCharCode(dataView.getUint8(refOffset)); + if (refChar === 'S') lat = -lat; + } + if (gpsIFD[3]) { // GPSLongitudeRef + const refOffset = gpsIFD[3].rawOffset; + const refChar = String.fromCharCode(dataView.getUint8(refOffset)); + if (refChar === 'W') lng = -lng; + } + return { lat, lng }; + } + } + } catch (err) { + console.error('GPS parsing error:', err); + } + return null; +} + +export default function SurveyMethodModal({ + showSurveyModal, + setShowSurveyModal, + setPlacementMode, + setShowToast, + hubs, + mapInstance, + setHhFormData, + setImageFile, + setShowHhModal, + showToastNotification, + profile +}) { + const [optionMode, setOptionMode] = useState(null); // 'upload' or null + const [gpsData, setGpsData] = useState(null); + const [errorMsg, setErrorMsg] = useState(null); + const [tempFile, setTempFile] = useState(null); + const fileInputRef = useRef(null); + + if (!showSurveyModal) return null; + + const resetSurveyModal = () => { + setOptionMode(null); + setGpsData(null); + setErrorMsg(null); + setTempFile(null); + }; + + const handleSelectMapOption = () => { + setPlacementMode('household'); + setShowToast(true); + setShowSurveyModal(false); + resetSurveyModal(); + }; + + const handleFileChange = (e) => { + const file = e.target.files[0]; + if (!file) return; + + setErrorMsg(null); + setGpsData(null); + setTempFile(null); + + const reader = new FileReader(); + reader.onload = (event) => { + const buffer = event.target.result; + const coords = getEXIFGPS(buffer); + + if (coords) { + setGpsData(coords); + setTempFile(file); + showToastNotification('Metadata lokasi GPS berhasil ditarik!'); + } else { + setErrorMsg('Foto ini tidak memiliki metadata lokasi GPS (geotag). Silakan ambil foto baru menggunakan kamera ponsel dengan mengaktifkan GPS / Lokasi, atau gunakan opsi "Tentukan Posisi Melalui Peta".'); + } + }; + reader.onerror = () => { + setErrorMsg('Gagal membaca berkas gambar.'); + }; + reader.readAsArrayBuffer(file); + }; + + const handleContinueSurvey = () => { + if (!gpsData || !tempFile) return; + + // Spatially calculate closest hub using Haversine / Leaflet map distance + let closestHub = null; + let minDistance = Infinity; + + hubs.forEach(hub => { + if (mapInstance && mapInstance.current) { + const dist = mapInstance.current.distance([gpsData.lat, gpsData.lng], [hub.lat, hub.lng]); + const hubRadius = parseInt(hub.radius) || 500; + if (dist <= hubRadius && dist < minDistance) { + minDistance = dist; + closestHub = hub; + } + } + }); + + // For non-admin, if they use photo geotag, they can add anywhere. + // If it's outside their own hub's radius, we assign it to their hub anyway but flag it with manual override. + let finalAssignedHubId = closestHub ? closestHub.id : null; + let forceManualOverride = false; + + if (profile?.role !== 'super_admin') { + const myHub = hubs.find(h => h.pic_id === profile?.id || h.head_id === profile?.id); + if (myHub) { + const isInsideRadius = closestHub && closestHub.id === myHub.id; + if (!isInsideRadius) { + // Outside their hub's radius! Force assignment to myHub and flag with manual override + finalAssignedHubId = myHub.id; + forceManualOverride = true; + } + } + } + + setHhFormData({ + id: '', + head_name: '', + nik: '', + no_kk: '', + family_size: 1, + status: 'Pending', + photo_url: '', + lat: gpsData.lat, + lng: gpsData.lng, + assigned_hub_id: finalAssignedHubId, + manual_override_assigned_hub: forceManualOverride + }); + + setImageFile(tempFile); + setShowSurveyModal(false); + setShowHhModal(true); + resetSurveyModal(); + }; + + return ( +
{ setShowSurveyModal(false); resetSurveyModal(); }}> +
e.stopPropagation()} + > +
+

Pendataan KK Baru

+ +
+ +
+ + {optionMode === null ? ( + <> +

+ Silakan pilih salah satu opsi di bawah untuk menentukan lokasi koordinat rumah warga yang didata: +

+ +
+ {/* Option 1: Map click */} + + + {/* Option 2: Geotagging upload */} + +
+ + ) : ( +
+
+ +
+ +

Metode Unggah Foto Ber-Geotag

+

+ Unggah berkas foto JPG/JPEG rumah warga yang diambil dari kamera ber-GPS aktif. Sistem akan menarik metadata lokasi secara otomatis. +

+ +
fileInputRef.current && fileInputRef.current.click()} + onMouseOver={(e) => e.currentTarget.style.borderColor = 'var(--success, #10b981)'} + onMouseOut={(e) => e.currentTarget.style.borderColor = '#cbd5e1'} + > + + + {tempFile ? tempFile.name : 'Klik untuk Pilih Foto Rumah'} + + +
+ + {errorMsg && ( +
+ {errorMsg} +
+ )} + + {gpsData && ( +
+
+ + Metadata Lokasi Terbaca! +
+
+ Lintang: {gpsData.lat.toFixed(6)} | Bujur: {gpsData.lng.toFixed(6)} +
+
+ )} + +
+ +
+
+ )} + +
+
+
+ ); +} diff --git a/sistem-km-next/src/components/dashboard/modals/UserProvisioningModal.js b/sistem-km-next/src/components/dashboard/modals/UserProvisioningModal.js new file mode 100644 index 0000000..46e0863 --- /dev/null +++ b/sistem-km-next/src/components/dashboard/modals/UserProvisioningModal.js @@ -0,0 +1,116 @@ +import React from 'react'; + +export default function UserProvisioningModal({ + showUserModal, + setShowUserModal, + usersList, + profile, + userFormData, + setUserFormData, + handleCreateUser, + isSubmittingUser, + handleDeleteUser, + hubs +}) { + if (!showUserModal) return null; + + return ( +
+
+
+

Manajemen Pengguna

+ +
+
+ + {/* Form Tambah Pengguna */} +
+

Tambah Pengguna Baru

+
+
+ + setUserFormData({...userFormData, email: e.target.value})} required /> +
+
+ + setUserFormData({...userFormData, password: e.target.value})} required minLength="6" /> +
+
+ + setUserFormData({...userFormData, full_name: e.target.value})} required /> +
+
+ + +
+ {(userFormData.role === 'pic' || userFormData.role === 'hub_head') && ( +
+ + +
+ )} +
+ +
+
+
+ + {/* Tabel Pengguna */} +
+

Daftar Pengguna

+ + + + + + + + + + + {usersList.length === 0 ? ( + + ) : ( + usersList.map(u => ( + + + + + + + )) + )} + +
NamaEmailRoleAksi
Memuat data pengguna...
{u.full_name}{u.email} + + {u.role.toUpperCase()} + + + {u.id !== profile?.id && ( + + )} +
+
+ +
+
+
+ ); +} diff --git a/sistem-km-next/src/lib/Admin_Kecamatan.json b/sistem-km-next/src/lib/Admin_Kecamatan.json new file mode 100644 index 0000000..67ff0fa --- /dev/null +++ b/sistem-km-next/src/lib/Admin_Kecamatan.json @@ -0,0 +1,8 @@ +{"type":"FeatureCollection", "features": [ +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[109.37369333219317,-0.06214301526608477],[109.37457525052564,-0.06141915576466081],[109.37485887350388,-0.061186364187442166],[109.37530800905486,-0.06085256841306111],[109.37645019186348,-0.06002400189977049],[109.3766874291267,-0.059851904357629604],[109.37830887948556,-0.058675665792127914],[109.37947953051646,-0.05780647935329723],[109.37947968708986,-0.0578063631310829],[109.38489690875242,-0.053611866716971615],[109.3848211564553,-0.05338460982500063],[109.38322543069349,-0.05092877252349227],[109.38074144697913,-0.04715124500861748],[109.37960856531402,-0.04576952991995732],[109.37788914950276,-0.04367245053361178],[109.37671963547278,-0.042266321008518036],[109.3748341228762,-0.04015491175645239],[109.3725366519681,-0.037749805218706516],[109.37250173347743,-0.03774465400129412],[109.3709935366851,-0.03618221595337264],[109.3732496439067,-0.03424079298360153],[109.37467813232045,-0.032802725295651626],[109.37601115314474,-0.031438855766620324],[109.37603100097472,-0.031292563477298016],[109.3760868309589,-0.03127627066595922],[109.37554146203824,-0.027245859466677184],[109.3755572123486,-0.025894997366551275],[109.37570682427234,-0.025298009748087116],[109.37635969645898,-0.02450930293562519],[109.37630447941962,-0.024485831159185616],[109.3762758026103,-0.024458658665727436],[109.37626230775277,-0.024436581134671256],[109.37628761110798,-0.024436581442650537],[109.3763002166824,-0.0244138986634619],[109.37631331166,-0.024384280292715294],[109.37629475600836,-0.02437239225433625],[109.37633018192423,-0.024270497142511994],[109.3763099393812,-0.024258609084721668],[109.37631668722618,-0.024234833540009777],[109.37602654385613,-0.024087081524106494],[109.37598437057602,-0.02417369221374085],[109.3761496848223,-0.024256908889490177],[109.37613450246577,-0.024285779106752173],[109.37605521901155,-0.02425351123042974],[109.3760231680987,-0.024253510843189004],[109.37587809648228,-0.024175389192508043],[109.37584941898882,-0.024205957502342133],[109.37580899427239,-0.024212123239160617],[109.3757380840505,-0.024222938744910574],[109.37570771879633,-0.02432653214715633],[109.3756571123852,-0.024302755915320873],[109.37571808000762,-0.024174779133922575],[109.37539332559246,-0.024041382447655947],[109.37533604891924,-0.02400936000470138],[109.37528431235472,-0.02408537435774482],[109.37512743268034,-0.02399706305780226],[109.37518426440691,-0.023924499793842584],[109.37519659618626,-0.023908754465333717],[109.37507575037309,-0.02386383139697635],[109.37501130292048,-0.0238277998969099],[109.37497392763122,-0.02383742498062966],[109.37495031114224,-0.02384082121575439],[109.37492332033649,-0.023890070372333386],[109.37480861257153,-0.023830629985190126],[109.37482548217837,-0.023769492906358932],[109.37479005794373,-0.02373213081657419],[109.37463486516249,-0.023645517842894256],[109.37455895525949,-0.02363702566028095],[109.3744206295441,-0.023708350841352265],[109.37418277980086,-0.02357418570939267],[109.37417772035391,-0.0234688937029321],[109.37403677203574,-0.023417849992849238],[109.37392081426282,-0.023401746646182046],[109.37364891388742,-0.023313182526843137],[109.37360492947211,-0.02334538599463705],[109.37356894275774,-0.023325258088735184],[109.37354895042607,-0.02328902838032714],[109.37352895832433,-0.023232671186303358],[109.3734849745576,-0.023208517693349695],[109.37342899541952,-0.02316021108035961],[109.37341700032219,-0.023111904977240468],[109.37304913543143,-0.022971008363941024],[109.37297316164309,-0.02309177237745978],[109.37279322766445,-0.02303138786676762],[109.37273324871492,-0.023095795107919457],[109.37260529642296,-0.022987105256563164],[109.37252932493105,-0.022906594479616908],[109.37248934018339,-0.022842186099502768],[109.37246135085017,-0.02279790533395757],[109.372397374276,-0.02278180262575633],[109.37230540773957,-0.022777776084902716],[109.37224542980724,-0.022753622434623536],[109.37218145346509,-0.022717392256710475],[109.37208548884198,-0.022673110730036507],[109.37194554021382,-0.022628828710479762],[109.3718615711487,-0.02259259831627308],[109.3718095904091,-0.022560393779219177],[109.37174561363025,-0.022564418552008764],[109.3717016293581,-0.0225885710178791],[109.37162265897075,-0.02250856344476786],[109.3715716776494,-0.022496486391597077],[109.37147871190426,-0.022457236788660274],[109.37140973750024,-0.022411949218492808],[109.37136175539237,-0.022372700125369512],[109.37129877884108,-0.022324393508032322],[109.3712118108895,-0.02228816310449479],[109.37109485392337,-0.022245894132040454],[109.37100188809666,-0.022215701907282302],[109.37096890030467,-0.02219758682649846],[109.3709209181705,-0.022161356866039615],[109.37089692736701,-0.02211908893455564],[109.37085794199011,-0.022079839957647854],[109.370746980681,-0.022236832908565738],[109.3707199906098,-0.022227775252422016],[109.370761976541,-0.02211606832405429],[109.37053106143682,-0.022043606929205792],[109.37043809514135,-0.02205870149628779],[109.37025216377712,-0.021977183259702802],[109.37016219705632,-0.02193189550308253],[109.37010821640467,-0.021962086089101017],[109.37005723446418,-0.02201039141269659],[109.36988929578771,-0.022001332212089674],[109.36980832537766,-0.0219952930865324],[109.36974834751166,-0.0219711394888627],[109.36970336434194,-0.021931890471236042],[109.36963139036382,-0.021953023501321722],[109.36956841353096,-0.021934908107996406],[109.36953542585849,-0.021907735693750742],[109.3695774113905,-0.021829239112015023],[109.36950843700643,-0.02178697072253969],[109.3694694504812,-0.021856409984694763],[109.36940047558049,-0.02186244746415899],[109.36934049746502,-0.021862446808257906],[109.36924453277675,-0.021835273710374744],[109.36915756445124,-0.021841310993112904],[109.36904960375982,-0.02185036716202551],[109.36901361722181,-0.021820175607221565],[109.3689656352258,-0.021774888342347688],[109.36891465432474,-0.021729601047061377],[109.36887566901184,-0.021687333000191194],[109.36879769783769,-0.021654121880131025],[109.36868973739236,-0.021642044247713692],[109.36860876735241,-0.02160581398439856],[109.36859677224865,-0.021557508006576534],[109.36867174659429,-0.02139447657174842],[109.36838085381179,-0.021303900001586176],[109.36826689557901,-0.02129182232639245],[109.3680899605611,-0.021261629293164115],[109.36807196669368,-0.021303896707686204],[109.36800299193882,-0.021300876857467087],[109.36798499765719,-0.021382392759387796],[109.36794901058991,-0.021403526175891023],[109.36787403796829,-0.021406544486915004],[109.36785004626087,-0.021451830945515973],[109.36784104855623,-0.02154542339427669],[109.36781105916788,-0.02157863332833405],[109.36780506174699,-0.021542403891754203],[109.36780806109974,-0.02150013632366671],[109.36779306677498,-0.021482021476455865],[109.36775408138328,-0.02144881080051727],[109.36769710241218,-0.021430695503723726],[109.36764912012035,-0.02141559941843943],[109.36757414808426,-0.021364273677056338],[109.3675501569554,-0.02135521607856732],[109.36750517331461,-0.021364272939130437],[109.36746918622408,-0.021388425464565538],[109.3674122073564,-0.021361252830775525],[109.36737921961665,-0.021343137795845922],[109.36732523927166,-0.021352194559612604],[109.36728325453868,-0.02136125145120789],[109.36722327632724,-0.021376346376666047],[109.3671722949845,-0.02137634583082008],[109.36712431273668,-0.021358230637369444],[109.36705233901661,-0.021364268093713064],[109.36701335293617,-0.02139747792077014],[109.36698336404184,-0.0213854011470148],[109.36694437863257,-0.02135520959924142],[109.36683042057773,-0.02133407459024587],[109.36677044288943,-0.021300863708954194],[109.36669247141039,-0.02130388198946272],[109.36655752096318,-0.02129180409926664],[109.36649154541607,-0.021264631384439937],[109.3664405644726,-0.021228401494184253],[109.36662049856305,-0.02122840340814782],[109.36663549411448,-0.021128772853667994],[109.36618565901011,-0.02111971075525187],[109.36610768514467,-0.021352181534421668],[109.36605070607163,-0.021348123993336337],[109.36595624071681,-0.021346424732263315],[109.36581791644728,-0.021344725002043152],[109.36563235961648,-0.021332835266811363],[109.36561549096453,-0.02131755083694707],[109.36559693566366,-0.021280189140345438],[109.36556825909237,-0.021241129086687113],[109.36555307744624,-0.02121395692687714],[109.36553114804333,-0.02120886194403572],[109.36546704611078,-0.021251317507682062],[109.36545017726313,-0.021254713827522805],[109.36543162142725,-0.021268299628038445],[109.3654214998899,-0.021292075016915893],[109.36541306532312,-0.02130735917476468],[109.36540969193646,-0.021271695893694396],[109.3654215002652,-0.021256411771679345],[109.36541981363399,-0.02123263625689009],[109.36541137947785,-0.02120886067040128],[109.36540294541044,-0.021176593835306026],[109.36538438994896,-0.02115451639161409],[109.36535065248664,-0.021139231786288525],[109.36531016762477,-0.021112059362340087],[109.36526799561621,-0.021110360666211064],[109.36524100536018,-0.02112564462710155],[109.36520052018098,-0.0211290406973283],[109.36514991396533,-0.021108661166634252],[109.36509762065727,-0.02110866061304995],[109.36506050918943,-0.021117151467505035],[109.3650284583823,-0.021123944125811603],[109.36499134712878,-0.02111205598677421],[109.36495929660671,-0.021091676654842774],[109.36493568027609,-0.02109167640501119],[109.3648884476512,-0.021088279406707593],[109.36487157907443,-0.021066201987329898],[109.36484964982026,-0.021047521013436023],[109.36480579074612,-0.02106450304289517],[109.36477880044355,-0.021084881748438523],[109.3647281939016,-0.02109676895745066],[109.3647096383927,-0.02107978626937041],[109.36471301234859,-0.021061105564234982],[109.36470457810508,-0.021045821232659898],[109.36467421425536,-0.02104582091209564],[109.36465228466713,-0.02105940667351613],[109.36461517320772,-0.021067897526884486],[109.36459493064204,-0.02106789731293977],[109.36457974898349,-0.021042423416609172],[109.36456962805435,-0.021008458328781687],[109.36453420368898,-0.02099657021235651],[109.36449034456929,-0.021018646987095654],[109.36447178840767,-0.021064499513449193],[109.36447178807087,-0.02109676624376228],[109.3644903435066,-0.021120541925888536],[109.36448190882041,-0.021147713820078535],[109.36447010028435,-0.02118337692301383],[109.36445829190798,-0.0212037557849484],[109.3644296150137,-0.021196962484179932],[109.36441780706515,-0.021176583371566908],[109.36440599902757,-0.021164695503755437],[109.36435539256584,-0.021169789712936066],[109.36432015563544,-0.021157995943977874],[109.36428716788207,-0.021145919157816367],[109.36425717864796,-0.021170071711186723],[109.36421219457513,-0.02122743430196116],[109.36413422284697,-0.02126366277653702],[109.36406624817299,-0.021230955040785017],[109.3640102690442,-0.02120277609768044],[109.36397028433255,-0.021146418980017075],[109.3639342976874,-0.021134342164250423],[109.36390630772375,-0.021158494734713432],[109.36389431166904,-0.021202774863782293],[109.36385032758517,-0.021226927262361608],[109.36385032635472,-0.021343666117663897],[109.36381833815771,-0.02133964029728148],[109.36380634337485,-0.02126315609290306],[109.36376635849989,-0.02122290089014747],[109.36375436371299,-0.021146416688394745],[109.36363440841289,-0.021090058732449807],[109.36346247190254,-0.021065904050240086],[109.36345447459176,-0.02109005682748434],[109.36342648484568,-0.0210940820080561],[109.36337050522845,-0.021114208799261163],[109.36335850922018,-0.021154463439864782],[109.36331852393064,-0.02115446301519294],[109.36326654322423,-0.021138360556739896],[109.36320256672239,-0.021142385354205005],[109.36311060018538,-0.021178613664395756],[109.36308261023255,-0.021202766224049194],[109.36307061405456,-0.021259122763074453],[109.36303862582749,-0.02125912242159696],[109.36301863356712,-0.02122289292335681],[109.36288668226453,-0.021210815089609834],[109.36284669681528,-0.021226916566653396],[109.36281870635638,-0.021299374830590728],[109.36277661311927,-0.021311930465549758],[109.36271074576588,-0.021331577479490868],[109.36264676864192,-0.02139598439940943],[109.36251536237961,-0.021434302412405137],[109.36242701344094,-0.021409059858892757],[109.36221396010869,-0.021302533192062857],[109.36223526544211,-0.02124571897007033],[109.36228497788677,-0.02114629408177217],[109.36224946899787,-0.021089479859602845],[109.36207192455431,-0.021032665637105902],[109.36199380499913,-0.021053970970173735],[109.36197960144338,-0.02111788696982273],[109.36185176944338,-0.021196006524772066],[109.36163871611089,-0.02122441363511912],[109.36124101655686,-0.02123861718965969],[109.36112961890629,-0.0212118817527444],[109.36112357741399,-0.021239798275298608],[109.36112020319324,-0.021283952638041278],[109.36115056636041,-0.02134339157753138],[109.3612281624592,-0.02136886610308894],[109.36126864716203,-0.02140283146262517],[109.36128382862782,-0.021443589535849492],[109.36128382781355,-0.021520010616883953],[109.36127707968579,-0.021577750916019753],[109.36126527117847,-0.021611715712539767],[109.36124671561548,-0.02160322427987839],[109.36122141263317,-0.021586241543177433],[109.36119779645577,-0.021576051809865018],[109.3611471900743,-0.021581145999317333],[109.36107802778689,-0.021610015432150676],[109.36102573416642,-0.021649074522554847],[109.36098110438937,-0.021687686419796123],[109.36095411415005,-0.021706366831120313],[109.36095580148411,-0.021663910700417677],[109.36094736744377,-0.021631643935302557],[109.36094399414408,-0.02158918774976487],[109.36093218643875,-0.021548429718912136],[109.36090350986836,-0.02151616273569497],[109.36090013645783,-0.021483896026784507],[109.3609203792392,-0.021460120802333813],[109.36090723300276,-0.02111078518918942],[109.36090014081397,-0.02107122226876771],[109.36079386749172,-0.021076315880293184],[109.36072351074674,-0.021142280433045484],[109.36065867078143,-0.021153395854905922],[109.36040300678242,-0.021210210076276236],[109.36040168006774,-0.021210939769237287],[109.36035994838221,-0.021193215038885906],[109.36031187243238,-0.021189393474221385],[109.36024861452519,-0.021191940168016708],[109.36018535703514,-0.021155002658308084],[109.3603472978083,-0.021097688597704615],[109.36037892708265,-0.021065846830725845],[109.36015372937707,-0.021032728661524714],[109.35995781661074,-0.021108345669640274],[109.3599502255195,-0.021122356111135065],[109.35995022519872,-0.021152924523056064],[109.35995781586207,-0.021179671964383712],[109.35997299736232,-0.021216608957646564],[109.36002360363264,-0.0212191568655351],[109.3600628236741,-0.021203873077367198],[109.36012987735589,-0.021172031693963356],[109.3601513849535,-0.021179674026805477],[109.36018680913666,-0.02120132703190478],[109.36022476347422,-0.02123826427281713],[109.36024627077697,-0.02127392765514671],[109.36024505004858,-0.02129297330839595],[109.36024374004458,-0.021313411832629154],[109.36023488371214,-0.021335064365897043],[109.36015391357515,-0.021340158232731967],[109.36013797164044,-0.02132420451078047],[109.36011975460555,-0.02131341050336229],[109.36009571686884,-0.021289210251095533],[109.36006788364641,-0.021266283642720412],[109.36003878519976,-0.02124972544086323],[109.36000715645162,-0.021231893528650497],[109.3599641411532,-0.02122679833381821],[109.35992871674607,-0.0212267979555168],[109.35989455749719,-0.021226797590718428],[109.35985382410378,-0.021229951607962632],[109.35981232220365,-0.021233165131178667],[109.35979331976178,-0.02121109099566886],[109.35977942851638,-0.02119495426815221],[109.35976677699719,-0.021189859398388713],[109.35973929605723,-0.021194250549615684],[109.3597385457347,-0.021194370442924968],[109.35968707195613,-0.021202595385177974],[109.35966050354742,-0.02121278457085517],[109.35961622293829,-0.02122297356716902],[109.35959851048261,-0.02124717336644931],[109.35958838878148,-0.021289204817004134],[109.35958608073108,-0.021311857591137472],[109.35958332762708,-0.021338878422978123],[109.35956435013487,-0.02135161505503027],[109.35953778168616,-0.021365625288765743],[109.35951325398604,-0.02136797673718414],[109.35945807670731,-0.021373266532899334],[109.35941379599348,-0.02139364499238522],[109.35935180327186,-0.021396191691781294],[109.35932143957125,-0.02138982294767738],[109.35930625757922,-0.021400012251617525],[109.35930625718628,-0.02143694907068606],[109.35931258238766,-0.021491717526050405],[109.35929853469423,-0.021533436032004947],[109.3592872784446,-0.021566864573214224],[109.35919618620123,-0.021654747735380307],[109.35912913287196,-0.021656020687818068],[109.35909244344624,-0.021644557138328604],[109.35907852693991,-0.02162417805440521],[109.35906666709518,-0.02159154158140557],[109.35902962133252,-0.021592570432149964],[109.35902792074954,-0.021616535404099604],[109.35902159471908,-0.021639461633517387],[109.35900894297318,-0.02165601937764128],[109.3589798442301,-0.02166875589249179],[109.35892417729129,-0.021672576334777097],[109.35886977553845,-0.02167384942439538],[109.35881663913544,-0.021657290964235673],[109.35876603315661,-0.021630543068006165],[109.35871922256663,-0.02161143731260865],[109.35860029786203,-0.021610162335581017],[109.35855991479187,-0.021596847729105143],[109.35854884815282,-0.021611223178220947],[109.35849824156487,-0.021641791017105127],[109.35844426172027,-0.02162650623447309],[109.3583767868209,-0.021616316037067415],[109.35830931175956,-0.021621410033642773],[109.3582131675561,-0.021605652096165474],[109.35816424075855,-0.02159763304387673],[109.35810351325881,-0.02159763238330132],[109.35802254304352,-0.021618010423977832],[109.35770035005635,-0.021609515699452717],[109.35770034965464,-0.021646877049444256],[109.35770540950988,-0.021718203318524084],[109.35772227807273,-0.021735185935127282],[109.35772227756782,-0.02178186811339726],[109.3577222772273,-0.021813305122379095],[109.35771215573997,-0.02183538217264724],[109.35769528673553,-0.021859157391605648],[109.35766998345034,-0.021874441301369625],[109.35763961954147,-0.021889725154930484],[109.35759744747433,-0.021908405363882694],[109.35758563896398,-0.021944068338305374],[109.35752997221665,-0.021933878264637177],[109.35749454801947,-0.021918593686109013],[109.35745464126339,-0.021896273273761896],[109.35743382091,-0.02188462815633717],[109.35742519094264,-0.021900430487997766],[109.35740176983452,-0.021927083876093698],[109.35738844364114,-0.021905617745652146],[109.35736803293904,-0.021872739730580872],[109.35734947763522,-0.021843869397084253],[109.35734104357685,-0.02181499917536621],[109.3573224883828,-0.02177593938561787],[109.35730055918233,-0.02176065495941853],[109.35728706402284,-0.021775938996904796],[109.35724995240267,-0.021811601688433904],[109.3572212751722,-0.02184556622866807],[109.35721115342847,-0.02189141867186808],[109.35720897336593,-0.021920677766842613],[109.35720609206528,-0.02195934832644031],[109.35717404134434,-0.021969537428128266],[109.35712174833832,-0.021961045635766334],[109.35706776851526,-0.021947459097166985],[109.35705576463283,-0.021915231936590517],[109.35704752661856,-0.02189311510931463],[109.35696295861489,-0.021889476890299384],[109.35690582907257,-0.021905001243314518],[109.35685184903308,-0.02191179361715038],[109.35678943386542,-0.021988213835902864],[109.35677087780701,-0.0220289714475471],[109.35675400851002,-0.022079918531436565],[109.35675232109452,-0.0221291675414294],[109.3567472599679,-0.02217502002884512],[109.35674388651985,-0.022147848113344512],[109.35673039184717,-0.02211897784265398],[109.35671183642228,-0.022101995212438563],[109.35670171555265,-0.022068030253100144],[109.35670340276171,-0.022037461909912983],[109.35671183740956,-0.02201198836858258],[109.35670677710426,-0.021983118192778407],[109.35668990868193,-0.021954247886440847],[109.35667472711462,-0.021927075841545553],[109.35666629306063,-0.021898205629253906],[109.35665617228003,-0.021855749460315956],[109.35665111208309,-0.021816689831985255],[109.35663928908244,-0.021792883820426913],[109.35662749636658,-0.02176913878886774],[109.35660725415772,-0.021743664933004173],[109.35655158758368,-0.021719888932005535],[109.35641832479044,-0.021699508567682945],[109.35637277951712,-0.021670637954612982],[109.35633904193769,-0.021680827038083605],[109.35631373859763,-0.02170290390741168],[109.35627325341551,-0.021723282367952297],[109.35623445532731,-0.02172328194297678],[109.35620577857196,-0.02171479041932045],[109.35618047545348,-0.02171648838418016],[109.35616698013634,-0.021747056590071333],[109.35615348480053,-0.02177932303737416],[109.35614673695748,-0.02181158955850124],[109.35613830216688,-0.021850649028158656],[109.35612143337849,-0.02185574356781193],[109.35610625159283,-0.02184895043318306],[109.35607926169473,-0.021842157168612],[109.35605733197315,-0.021876121762606445],[109.35603708892094,-0.021928767033827356],[109.35599829076335,-0.021935559571638855],[109.35596286663059,-0.02191687852115135],[109.35594768508713,-0.021888008244742033],[109.3559375641073,-0.021864232749561868],[109.35592069559759,-0.021843853663678504],[109.35592406974958,-0.021806492384289496],[109.35587683733995,-0.021803095381583086],[109.35587683710033,-0.021825172522667687],[109.3558684021995,-0.021874421436646786],[109.35584815931583,-0.021911782528466206],[109.35581104771981,-0.021947445191174315],[109.35575032019956,-0.021955935726524767],[109.3556980274349,-0.021928763283899734],[109.35563055244513,-0.02193555550316196],[109.35560862268989,-0.021972916571179172],[109.35561199606377,-0.02200688143644948],[109.35561035701481,-0.022021318358579952],[109.35560524792047,-0.02206631981015308],[109.3555597019249,-0.022105378854276807],[109.35553608553754,-0.022120662762903785],[109.35552259023723,-0.02214953271469325],[109.35551246834456,-0.022208971047427778],[109.35550403441195,-0.02216991140302209],[109.35549391366226,-0.022125757016188744],[109.35548716648913,-0.022096886838946752],[109.35547602551625,-0.02203303745152784],[109.35546523852176,-0.02197121674062034],[109.35539438979434,-0.021978008920160535],[109.35540129929802,-0.02203984678990159],[109.3554095701576,-0.022113868386208848],[109.355326913529,-0.0221019797760023],[109.35520970376089,-0.022057687580503676],[109.35515307764784,-0.022063115264672608],[109.35515156219729,-0.02209210286366813],[109.35513638021459,-0.022103990381324892],[109.35510601647348,-0.022107386524621023],[109.35507733966115,-0.02210568796378792],[109.35504697605175,-0.022097196420507722],[109.35503487081802,-0.02207369263888375],[109.35502336034257,-0.02205134365312821],[109.35497612789888,-0.02205304136844078],[109.35496938091262,-0.022007188790532293],[109.35496094660687,-0.02200209397437606],[109.35494070408375,-0.022007188472063382],[109.35492720901254,-0.02201567952625445],[109.35491034004778,-0.022037756469162728],[109.3549019054069,-0.02206322998713502],[109.35484623867958,-0.02205813464514822],[109.35484286536388,-0.022019075070642803],[109.35483949174974,-0.022007187348011117],[109.35482093634178,-0.02199020473478408],[109.35479900704068,-0.02198680801002782],[109.35477201708642,-0.021986807710539107],[109.3547315321371,-0.021988505501907587],[109.35470960268835,-0.021998694702298496],[109.35468767310952,-0.022020771586657984],[109.35468767256883,-0.022070020564087862],[109.35462694513824,-0.022073416368727988],[109.35462584427215,-0.022107023053572098],[109.35462188281747,-0.02222795620208202],[109.35454934732238,-0.022227955388279496],[109.35453416521166,-0.022251730584580343],[109.35451898345835,-0.0222432392117503],[109.35449368047377,-0.022234747725504808],[109.35447849853267,-0.022243238757198643],[109.35444982156031,-0.02225682435842423],[109.35442957909818,-0.022256824131001433],[109.35441439723262,-0.0222585222007882],[109.35440090210743,-0.022272107972012564],[109.35439415439402,-0.022292486780379452],[109.35437897247222,-0.022299279570868503],[109.35435704315795,-0.022297581083723424],[109.35433174017561,-0.022289089597416347],[109.35430475043484,-0.022270408650693747],[109.3543116997899,-0.022141505400007956],[109.3543165609552,-0.02205133578669613],[109.35401798467893,-0.02205133246263072],[109.3540052810436,-0.022194947543423365],[109.3539960526103,-0.022299275259921012],[109.35397074951953,-0.022300973215030346],[109.35394207266731,-0.022304369372049316],[109.35392857745042,-0.02232644633942419],[109.35388471873752,-0.02233154056472849],[109.3538492944198,-0.02233323840511791],[109.35381893064132,-0.022341729261996367],[109.35380880920532,-0.022360409786160145],[109.35379868773143,-0.022382486789787687],[109.35377338458626,-0.022389279463048486],[109.35374302054302,-0.022421545675831548],[109.35369370557298,-0.022452285910418878],[109.35365883468603,-0.02246088285361175],[109.35361257741144,-0.022470196112141374],[109.3535741484105,-0.022467329896612192],[109.35356560876971,-0.022454433792451545],[109.35355991570005,-0.02244368705518842],[109.35355351102153,-0.022429358085680313],[109.35354568306937,-0.02241287976569471],[109.35353429679357,-0.022403565853889296],[109.35351650561532,-0.022399983428433388],[109.35349800271621,-0.02240284899840693],[109.35349017450022,-0.022410013358037915],[109.35348590443999,-0.022425058650922935],[109.35348448095026,-0.022442253310464084],[109.3534738061634,-0.022447268303166446],[109.35345672661026,-0.022445835219897934],[109.35342968395949,-0.02244583491330966],[109.35341239346167,-0.02245211024296296],[109.35339383767185,-0.022470790666950617],[109.35338877677353,-0.022496264201856086],[109.35330274629933,-0.022501357942485655],[109.35330274618492,-0.022511547378950236],[109.35328587696127,-0.02255739965097175],[109.35327069529517,-0.022542115323487766],[109.35327069561929,-0.022513245253913322],[109.35326621862059,-0.02248414894886784],[109.35323695881137,-0.022458901210775692],[109.3532184033464,-0.022448711564159222],[109.35318972658082,-0.022445314760327646],[109.3531610497967,-0.022443616195903317],[109.35313574667823,-0.022448710626791366],[109.35311719081504,-0.0224741840052387],[109.35307839227448,-0.022520036023698946],[109.35306810495952,-0.022561689898687627],[109.35294949757854,-0.02260428864534096],[109.3529054159915,-0.02261437451560746],[109.35290338755915,-0.022656227854968042],[109.35298660643127,-0.022663021764128786],[109.35297086171653,-0.022715100917176788],[109.35291688162692,-0.022735479166706447],[109.35273694872396,-0.02274000573681177],[109.35268971550528,-0.022814727705132213],[109.35248504214209,-0.02279434648083324],[109.35238383031898,-0.022760380542293224],[109.35217806106428,-0.02271784363758568],[109.35209733751503,-0.022738738283039815],[109.35202905244545,-0.022733310235067136],[109.3520206181159,-0.022731611899851824],[109.352017695251,-0.022759353045413017],[109.35200880875323,-0.022843695492279905],[109.35191603085892,-0.022848789135450045],[109.3519128053104,-0.02278491139505032],[109.35191097138942,-0.022748593021988478],[109.35184180973275,-0.022748592226555238],[109.35184180912516,-0.02280206770905832],[109.35184180868991,-0.02284029708729674],[109.35174228332525,-0.022845390652164798],[109.35174228357698,-0.02282330393258229],[109.35173220745885,-0.02282527381994762],[109.35163095018976,-0.022823312272387],[109.35163094994182,-0.02284506972707573],[109.35163094937622,-0.02289463826755663],[109.35159215130132,-0.022901430770171087],[109.35159046416001,-0.022925206081895317],[109.35157190853812,-0.02293030058059162],[109.35156853536216,-0.02288105164160239],[109.35149991483956,-0.022867018333820516],[109.3514605759745,-0.022858973300604078],[109.35139647527082,-0.02283010251737005],[109.35137454597029,-0.02283010226418045],[109.35137630219687,-0.022885816405784905],[109.35132680900314,-0.0228928331616502],[109.35123959579676,-0.02288614254827047],[109.35123915395778,-0.022905260204295893],[109.3512362203852,-0.023032190946303557],[109.3511620334133,-0.02302128716101717],[109.35104342541361,-0.023023196297060167],[109.35089635127854,-0.023045165529900283],[109.35077774296488,-0.02307573241754872],[109.35070942435259,-0.023112986698282358],[109.35065628737185,-0.023166480546938227],[109.35064716161985,-0.023004417523381393],[109.35064585200678,-0.022981160297336406],[109.35057848274688,-0.022976383222254433],[109.35028433500734,-0.022981156093397542],[109.35028053893896,-0.023034650509123858],[109.35026250999508,-0.023081457950892764],[109.35022360636404,-0.0231015179183241],[109.35017236748736,-0.023123488256915323],[109.35013768131928,-0.02311834007100493],[109.35013430803342,-0.023079280587551657],[109.35006008589309,-0.023074185010685314],[109.34994369185867,-0.023086071307017314],[109.3494696810381,-0.023169279337290245],[109.34947136640773,-0.0232983453025398],[109.34940220475713,-0.023305137430937345],[109.34938533629898,-0.02328645663531783],[109.34922371338155,-0.02328013941477729],[109.34918765585653,-0.023343185996765815],[109.34905671328092,-0.023300197855963947],[109.34901685993867,-0.023394767888104094],[109.34899503613859,-0.02339094659913024],[109.34898934308451,-0.02338043869824278],[109.34885365555112,-0.023393810696783965],[109.3488505984296,-0.023365984362820388],[109.34883035626235,-0.023345605296359456],[109.34877637670144,-0.023329754459816512],[109.34874039023144,-0.023327489720539624],[109.3486616695878,-0.0233433389876899],[109.34838502300656,-0.023379564733487793],[109.34838052453665,-0.023393150561726136],[109.34821408705606,-0.023390884275572413],[109.34818035025431,-0.023345597608699874],[109.34801166342395,-0.02336144580523405],[109.3480004174099,-0.023381824490422642],[109.34790820202393,-0.023384087710757385],[109.34789920492683,-0.023424845238662294],[109.34788570997,-0.023427109391491736],[109.3478767143824,-0.023338801077516343],[109.34778225008505,-0.023320685457010777],[109.34777775034571,-0.023442958299884586],[109.34775750797817,-0.02344069374651556],[109.34775076112318,-0.023388614470607246],[109.34766754247386,-0.02338182054577899],[109.34765404725393,-0.023406727826063293],[109.34763380472842,-0.023418049149536702],[109.34760006714241,-0.023440691875932635],[109.3475438381958,-0.02344748414567087],[109.34750110444391,-0.023431633449718662],[109.34743587909438,-0.023420311112499915],[109.34739314553012,-0.02338861023087789],[109.34726044565917,-0.02336822984669815],[109.34725819594841,-0.02341578037826162],[109.34733466693129,-0.023438424409824004],[109.34733466626682,-0.023495032219373456],[109.3473166728986,-0.023506353566881324],[109.34714348761894,-0.0235403161853064],[109.34697255174802,-0.023553900016832875],[109.34666049760992,-0.02360352299538978],[109.3465356226074,-0.023613476121631116],[109.34648262260912,-0.02361799174484623],[109.34646735697913,-0.023619804240267363],[109.34646556010189,-0.023619804236005407],[109.34645927884485,-0.023619804247047304],[109.34643052884645,-0.023622522989168684],[109.34638831010088,-0.023625226114492234],[109.34637088822394,-0.023624866743929544],[109.346345185096,-0.023624319862172397],[109.34632003188602,-0.023620616786635282],[109.3463378353972,-0.02374524956259606],[109.34635132948148,-0.023815443373941786],[109.34640081066539,-0.023831294150891958],[109.346443544147,-0.023867523649170188],[109.34649302530589,-0.023885638739538778],[109.3464975227454,-0.02395809675951292],[109.34651551488508,-0.02404866943576996],[109.34649976952714,-0.024155091880579765],[109.34650876537349,-0.024218492710922565],[109.34651326288353,-0.02428415779790075],[109.3464817739636,-0.024347558129292516],[109.3464750254252,-0.024435866190249924],[109.34647277563425,-0.02448794532442956],[109.34648402067911,-0.02454681756061168],[109.34647052419672,-0.024673618830353215],[109.34644578275311,-0.02473475492745219],[109.34644578213585,-0.024784569777360866],[109.34641879164845,-0.02483664859861028],[109.34626680851188,-0.024919395026026185],[109.34627409786174,-0.02493570274409901],[109.34630373848829,-0.024997187112673205],[109.34633697285044,-0.02506140586342566],[109.3463836759773,-0.02514460899175706],[109.34644117597965,-0.02524498399496843],[109.34648878535891,-0.025329093362073597],[109.34650673848051,-0.02536074960777916],[109.34658580098619,-0.025508155860454435],[109.34666573848033,-0.025697171481943164],[109.34673759784944,-0.025898843369273863],[109.34681413934248,-0.026070990886119357],[109.34676581167781,-0.026095316768851823],[109.34689475924189,-0.026394207642875245],[109.34693074582502,-0.026385150876844937],[109.3469727286757,-0.026487800247666844],[109.34705320888148,-0.026504928016869187],[109.34714666246171,-0.026548184241435662],[109.34722244017556,-0.026603529337134252],[109.34716903065201,-0.0267012850820896],[109.3471256672546,-0.026780653338599192],[109.34732958532624,-0.027170117835797893],[109.34749451903566,-0.027484104783075357],[109.34757659786435,-0.027495030858120967],[109.34802232424242,-0.027227489976155955],[109.3481332813776,-0.02731504495452734],[109.34810329214429,-0.027351273551657573],[109.34800133064425,-0.02733617671748206],[109.34791128126538,-0.027428674152216653],[109.34793235460711,-0.02747807271406477],[109.34786937797327,-0.027499205425032102],[109.34781539750387,-0.027553548183075954],[109.34781239713003,-0.027662235161755557],[109.34776441402754,-0.027743749752454267],[109.34770443387244,-0.02793697026837702],[109.3476909280025,-0.028059326574079283],[109.3477032384859,-0.02810095273219433],[109.34776433223648,-0.02825017148483574],[109.34784337910251,-0.02839215586271121],[109.34785105357392,-0.02840600863786227],[109.34783702448648,-0.028459932093584772],[109.34789100314397,-0.02853465520177199],[109.34790899541478,-0.028602584853127937],[109.34788200516432,-0.028629756217948037],[109.34787975552274,-0.028663720880420025],[109.34789774834165,-0.028693157211121978],[109.34796747189218,-0.028711272729862722],[109.34811816209996,-0.028933177623652575],[109.34800570308683,-0.02901921987447825],[109.34808892008871,-0.029139229700258847],[109.34805743151789,-0.029166400993805984],[109.34812265576701,-0.029252445862593037],[109.34826612664601,-0.02911523400645183],[109.34828442598673,-0.02914639024806457],[109.34831069388231,-0.029203222518224495],[109.3481766351338,-0.029277354109476968],[109.34824410813866,-0.029390570781641846],[109.34830483577167,-0.029361135610576725],[109.34835656522009,-0.02943812304087221],[109.34829583748424,-0.029474351150830552],[109.34828459200644,-0.029453972161632657],[109.34822611329442,-0.02949925755699754],[109.34835880968569,-0.029755126972022004],[109.34844202780752,-0.02979815018586825],[109.34846226939948,-0.029852494019635346],[109.3485666051149,-0.029786471785108147],[109.34863384786239,-0.02995940585878649],[109.34872098847994,-0.030184593364950274],[109.34881261347626,-0.030386265238635062],[109.34887125433247,-0.030486844278865128],[109.34899081256083,-0.030418580581872433],[109.3490267990295,-0.0304208454506079],[109.34905153954412,-0.030434431717830668],[109.34908752632364,-0.030416317757364354],[109.34909652274328,-0.03042990378236154],[109.34908302739075,-0.030457075347009924],[109.34904928990541,-0.030466132084015277],[109.34901555245489,-0.03047292450638783],[109.34899530956407,-0.030504624593968473],[109.34901555138485,-0.030543118249910725],[109.3490807771302,-0.03052953337254728],[109.34913025864348,-0.03052500550868511],[109.34913700663095,-0.03049104089627849],[109.34916399699294,-0.030459340910368997],[109.34920448164011,-0.030470663107460168],[109.34922697237886,-0.03052500700367551],[109.34922472235804,-0.030581614832619692],[109.34918198810448,-0.03059972868677074],[109.34916624355775,-0.030629164531029502],[109.34917973769988,-0.03068124397372978],[109.34915274726471,-0.030717472585868797],[109.34911900956813,-0.03074011520530303],[109.34912125851599,-0.030753701126885243],[109.34917748736163,-0.030758230631589594],[109.34920897499767,-0.030794460154509935],[109.3491752374388,-0.030808045515342438],[109.34916174295184,-0.03077860921661227],[109.34912125816801,-0.03077634427117202],[109.34910326463675,-0.030794458506003892],[109.34909426745273,-0.030830687396060593],[109.34906536239248,-0.030844767417125492],[109.34902454307752,-0.030864651022162827],[109.34908301929212,-0.030984660598594664],[109.34912268409643,-0.030961843070119937],[109.34925620589287,-0.0308850334743609],[109.34930568723684,-0.030891827192114904],[109.34934617142994,-0.03093258548975254],[109.34937316043657,-0.03098919378039388],[109.34934841865837,-0.031057122832886325],[109.34931693018176,-0.031075236854902863],[109.34927869483268,-0.0310548574217731],[109.3492134690417,-0.031070706597755696],[109.34919963590032,-0.031102842992052914],[109.34918422894928,-0.031138635572763376],[109.34924045606661,-0.031254116502210445],[109.34928111651283,-0.03126423448185429],[109.3494001466949,-0.0312224186229485],[109.34941589054606,-0.031238269075210587],[109.34943838158503,-0.03127223415282583],[109.349483364583,-0.031281292124447836],[109.34951485267507,-0.031288085567772225],[109.34957782903768,-0.03129035088034157],[109.34962281203873,-0.03129940885290489],[109.34965430009758,-0.031308466612050674],[109.34945637200259,-0.03145337962268769],[109.34946761696845,-0.03150545904274788],[109.34951934775795,-0.031494138293522204],[109.34960481372867,-0.031620941295335395],[109.34946218142788,-0.03168833003377781],[109.34924945237509,-0.03127449547576941],[109.34912124892166,-0.031371858965792164],[109.34916848039363,-0.03142393894925475],[109.34919097213788,-0.03141261773464891],[109.3492437007614,-0.03151476431950121],[109.34930892684216,-0.03148080064073616],[109.3493404151089,-0.031476272513304177],[109.34935840807877,-0.031494387317689033],[109.34935615838721,-0.03152835200226175],[109.34933591558304,-0.03155325914054559],[109.34927518781373,-0.03158722288934819],[109.34936964881423,-0.03181365587152746],[109.34949419965388,-0.0317641343165531],[109.34963730018946,-0.031707237376702765],[109.34968678017572,-0.03180007508911912],[109.3495390989329,-0.03186650216695205],[109.3495518791029,-0.03189564024387037],[109.34962464472763,-0.03206204650234349],[109.34970280097721,-0.032226640248747655],[109.34979891036673,-0.032387608991148266],[109.34984920722533,-0.03246448399761651],[109.34989772285732,-0.0325395464868247],[109.34998755097757,-0.0326733902374387],[109.3500791759755,-0.032794577738254276],[109.35017080099217,-0.03291757774234873],[109.35021301972613,-0.03298810899696801],[109.3504537541099,-0.03325851524697974],[109.35050855098409,-0.03332001524871884],[109.35060017597594,-0.03346742150068235],[109.3506953947375,-0.03362931212239536],[109.35078162910408,-0.03378395273932479],[109.35086156660309,-0.03395759337734832],[109.35095409785565,-0.03413303087020534],[109.35105830097747,-0.034297624621670846],[109.35113016035321,-0.03440073399320486],[109.3511615978605,-0.034445952752437295],[109.35126130098698,-0.034591546494153545],[109.35126918965372,-0.03460485804713312],[109.35145489259432,-0.034536719448857764],[109.35145264257591,-0.03458653438571785],[109.35142790166728,-0.03459559122128684],[109.35140091148229,-0.03461144096834412],[109.35139641273359,-0.034636348377003245],[109.3514279002585,-0.034677106635772816],[109.35133227295894,-0.034711306556190064],[109.35125696310104,-0.03473824019359111],[109.35141439590588,-0.035216013858021096],[109.35152460538987,-0.035177522428570716],[109.35156059030923,-0.03527036007484398],[109.35145937749851,-0.03530658734334337],[109.35149761169008,-0.03539263207770778],[109.35161906749894,-0.03532470473268973],[109.35170453328375,-0.03545377235031094],[109.35166404817076,-0.03546735752861057],[109.35163930689454,-0.03549679320994938],[109.35166404704798,-0.03553075841408832],[109.35161456501585,-0.03556019364977025],[109.35164830116247,-0.03563038809340367],[109.35173826847199,-0.0355783104134268],[109.3517877482144,-0.03567794127272767],[109.35170452882255,-0.03570511158016891],[109.35174726176614,-0.035766248922356136],[109.35178999644653,-0.03573002061543352],[109.3519159503629,-0.03567567926762947],[109.35191145151914,-0.03570511531559657],[109.3519271949119,-0.03574587331732626],[109.35194968634931,-0.03575493099443665],[109.35199916766595,-0.03576625347743971],[109.35188670849836,-0.035831916654284625],[109.3519339398024,-0.0358907897687617],[109.35200816280954,-0.03585003339627933],[109.35203065461172,-0.03583871221511032],[109.35205764424875,-0.03585456292861115],[109.35207788628398,-0.03587720647364143],[109.35207563651592,-0.03591117120000709],[109.35200366258374,-0.03595645624793544],[109.3519564303874,-0.03594739811871987],[109.35187995744748,-0.03603117647961432],[109.3519699213966,-0.03616703717984112],[109.35205538849515,-0.03622138236941039],[109.35210262244998,-0.03613307483840741],[109.3520261520277,-0.03607646549776208],[109.35207788335997,-0.036040237356212534],[109.35211836816015,-0.03604476672948305],[109.3522195777164,-0.03619194924198239],[109.35207338038332,-0.03629836950436033],[109.35233202771296,-0.03663349332945326],[109.35249846748675,-0.036529337769491785],[109.35258034329485,-0.0365425277347652],[109.35261092518759,-0.03654745439291519],[109.35263566562496,-0.03656556939747276],[109.35278635604627,-0.03674898199038609],[109.35270873031372,-0.03680184530290185],[109.35263341120087,-0.03685313779888374],[109.3527008835642,-0.03698673384848375],[109.35277594892223,-0.0369450746058764],[109.35287631990684,-0.03688937142193661],[109.35291455493565,-0.03692786555371984],[109.35301576893302,-0.036832766048856005],[109.35304500745518,-0.03686396387588017],[109.35301576769399,-0.036900192433431483],[109.35303376048333,-0.03692736459578542],[109.35300002256565,-0.03695453579279148],[109.35302251380168,-0.036974915082741776],[109.35311248145914,-0.036909251512424995],[109.3531552146481,-0.036956803009181353],[109.35303375793605,-0.03706548804909267],[109.35298877580003,-0.03700661491648243],[109.35286178576693,-0.03710617247073968],[109.35273461692348,-0.03720587019785601],[109.35279084472609,-0.03727153649520165],[109.35283582861757,-0.037235308243478364],[109.35288081061704,-0.03730097433298887],[109.35295698276911,-0.03724450813337235],[109.35312822174471,-0.03711756915532601],[109.35318669872284,-0.03718323550521848],[109.35317095421564,-0.03720361408104956],[109.3532001925571,-0.03724437237432989],[109.35305570012261,-0.03735498300737833],[109.35298427000208,-0.03740966358764368],[109.35302925208411,-0.03747080104818328],[109.35310960278287,-0.03741417876958366],[109.35316420353335,-0.03737570220243223],[109.35320243822082,-0.03743231090188257],[109.35315420919547,-0.03746320765453674],[109.35305399179902,-0.037527409489781866],[109.35308322979286,-0.037586282337168146],[109.35319496036556,-0.037515243056152295],[109.35321143351315,-0.03750476928351354],[109.35319119152622,-0.03747986139003838],[109.35333513959065,-0.03738702702605745],[109.35341385859813,-0.03747533696698178],[109.35341160799717,-0.037552323781896754],[109.35328349056455,-0.03762859949676074],[109.35320243364335,-0.03767685736460526],[109.35319343597664,-0.037731200851446954],[109.35310346862887,-0.03777874983533333],[109.3530067568682,-0.037663267726783856],[109.35298426491657,-0.037681381849606184],[109.35304948854599,-0.03779007039970455],[109.35297526545934,-0.037830826721719626],[109.35306972689054,-0.03800744540509933],[109.35317318951016,-0.03794404645782896],[109.35318443711336,-0.03784894527209066],[109.35322717164935,-0.037824038578771396],[109.35321142798901,-0.03779913076773333],[109.35329689748755,-0.03772667418504918],[109.35335087646934,-0.037774225918392676],[109.35338114192174,-0.03775489036581923],[109.3534678342787,-0.037699505609606325],[109.35352855977074,-0.03779913682269466],[109.35346014102036,-0.03785775571184492],[109.35350070724265,-0.03791057775026805],[109.35352004185256,-0.037935688866241074],[109.35340418550413,-0.03800858398624277],[109.35347315801998,-0.038102177179261114],[109.35354513211226,-0.03805387308190134],[109.35359911050573,-0.03813237053050985],[109.35353313377212,-0.03820180839052326],[109.35368007567223,-0.03837691861149509],[109.35379386538068,-0.038272664240292326],[109.35373621521825,-0.038201682362018936],[109.35380003512388,-0.03815954623718146],[109.35387500541287,-0.03825313956973493],[109.35381618664832,-0.038300501322366856],[109.3538873316739,-0.038389227019876314],[109.35393498117068,-0.03835277080541805],[109.35402194693066,-0.038449383477822466],[109.3540759276365,-0.038407117217263274],[109.35416889087715,-0.03851882548335396],[109.35406806733803,-0.038626803229589494],[109.35414117598116,-0.03871817149985981],[109.354146978636,-0.03872604931665549],[109.35399194966736,-0.038887151429243504],[109.35406392104736,-0.03898074473920264],[109.35420487078645,-0.03886602195402766],[109.35422886156155,-0.03888111789325653],[109.35409390964485,-0.03899282170336071],[109.35411190229908,-0.03902603208630473],[109.35409690735422,-0.03905320363231019],[109.35414488842888,-0.03910754826262809],[109.35409090729367,-0.03917094816000691],[109.3542108600895,-0.03930077156001586],[109.35424984628317,-0.039264543208823076],[109.35426783970237,-0.03925850537798466],[109.35426483987364,-0.03930681081855949],[109.35433381265717,-0.03938530862748769],[109.35432781435672,-0.03941248035283827],[109.35437579524937,-0.039475882279820226],[109.35445376604852,-0.03948494111566552],[109.35446276240296,-0.03950003676524366],[109.35451074359369,-0.03954834322793938],[109.35455572750632,-0.039515134089780996],[109.35456172592744,-0.03948192417317863],[109.35458871653596,-0.039448714674360105],[109.35464269633006,-0.03945475393778961],[109.35466368786614,-0.03948796439377569],[109.35468168039864,-0.039527212979394294],[109.35470567069903,-0.03956646168551016],[109.35469967185918,-0.03962080526517178],[109.35474165534401,-0.03966609252188206],[109.35487270868974,-0.039561086080196414],[109.35503555065819,-0.039430609000659055],[109.35504454517562,-0.039539296597466154],[109.35505354147296,-0.03955741134667016],[109.35511351815654,-0.03960873715958665],[109.35498442636009,-0.03972536486035229],[109.35487960097694,-0.0398200691124397],[109.3550205446512,-0.040016313113330884],[109.35512642954241,-0.03994594732428466],[109.35520347956698,-0.03986838114312391],[109.35521247604213,-0.039877438609684755],[109.35526045874126,-0.03985026771767318],[109.35532043620313,-0.03986234530498238],[109.35536841728667,-0.03991668998771423],[109.3553714152716,-0.039961976479658226],[109.35536241777463,-0.040004243634160656],[109.35537141322712,-0.04006462572446814],[109.35546359086578,-0.040189020886423246],[109.3554723940148,-0.040190287136508525],[109.35550275766131,-0.04019368423473552],[109.35552300030776,-0.04018519343860443],[109.3555297482416,-0.04016311643824366],[109.35558372824819,-0.04015972104914026],[109.35561915241418,-0.040168212973702724],[109.35565626325001,-0.04018689438135809],[109.3557018083167,-0.04021236892658816],[109.35571530289448,-0.040232748098050906],[109.35571530211202,-0.0402718076520238],[109.35571192761645,-0.04030916889592067],[109.35570349284158,-0.04032954762204012],[109.35574229034616,-0.04035841851677734],[109.35577602757274,-0.0403703068942384],[109.35579795695959,-0.040368609099221346],[109.35582325954724,-0.04039408323794678],[109.35583000690414,-0.04040087634169963],[109.35587049152274,-0.04041785958276018],[109.35588904654905,-0.04044673006865346],[109.3558957933585,-0.04048069503893047],[109.35587048947093,-0.04051975407934933],[109.35586205489848,-0.04052994335662643],[109.35585699373028,-0.04055711511870642],[109.35585699325024,-0.04058089050112751],[109.35586205332147,-0.0406080624703651],[109.35588060865396,-0.040621648783343615],[109.35591771966253,-0.0406318389935541],[109.35594302272949,-0.040633537753719605],[109.35595651744207,-0.040647123963717245],[109.35596663799559,-0.0406810890050579],[109.35600037508658,-0.04069977035614433],[109.35600880873139,-0.040735433605579525],[109.35590513731847,-0.040838755761761665],[109.35584011797508,-0.04090355605687003],[109.35593120706129,-0.041005452435756096],[109.35595145002749,-0.040981677470871634],[109.35598181395737,-0.040971488648182355],[109.35601367744474,-0.04096129455650488],[109.35602904714169,-0.04093582654742574],[109.35602904766033,-0.04091035292126121],[109.35602904797149,-0.040895068745511895],[109.3560189272141,-0.04087129315248423],[109.35606109984596,-0.040832234460899855],[109.35609483710977,-0.04084242460637574],[109.35613026131676,-0.040849218303328876],[109.3561623115701,-0.04086620138212033],[109.35617074504005,-0.04091035584449664],[109.35615893616374,-0.04094771692173067],[109.35611170256047,-0.04100375792641453],[109.35611507578793,-0.04102923162342592],[109.35612350987851,-0.04104281773257773],[109.3561521866255,-0.04104791305160217],[109.35621966306125,-0.040974890046181545],[109.3562685821214,-0.04098847699250362],[109.35634955164538,-0.04100885757014243],[109.35637485454453,-0.0410190475455645],[109.35639340956699,-0.041047918044270784],[109.35640521716348,-0.041073391919711245],[109.35640859039047,-0.041098865620631905],[109.356428832564,-0.041114150218875864],[109.35646763055887,-0.04111924574946176],[109.35654016467714,-0.04119057342485701],[109.35642882863007,-0.0413060515748155],[109.3563647289239,-0.04123302583243444],[109.35632086964802,-0.04126019679256605],[109.3562837592271,-0.04122113645534404],[109.35626976927469,-0.041235220107534984],[109.35618254471358,-0.04132302886424785],[109.35637315703457,-0.04153701133300244],[109.35644400727855,-0.04146229016429542],[109.35659076162541,-0.04164060866577832],[109.35662116959878,-0.04161626691970774],[109.3567307744904,-0.041528527609941135],[109.3568370461584,-0.04159645953204361],[109.35683535668045,-0.04172212943689648],[109.35691969884097,-0.041796853880987105],[109.35685558916333,-0.0418600757814692],[109.35675438177257,-0.041959881665392516],[109.35683324185037,-0.04202165690187058],[109.35691596919952,-0.041929394231797104],[109.3569622907343,-0.04187773357947517],[109.35692813240458,-0.041835701356201065],[109.35695343604891,-0.04181022825171124],[109.35697747363717,-0.0418280603051127],[109.35703566998075,-0.04186754567259129],[109.35702934401623,-0.041876461312721595],[109.35700530613614,-0.04187263975960873],[109.35698000259653,-0.04189301813636136],[109.3569724112107,-0.041914670568624225],[109.35696734989725,-0.04194778619140424],[109.35698000073702,-0.041982175870709335],[109.35700783344564,-0.042016565871980986],[109.35702695118596,-0.04202465651588061],[109.35706293783986,-0.04202465727807277],[109.35705394073449,-0.042045790773482604],[109.35707493231797,-0.04207598219859871],[109.35710492088094,-0.04209107832488808],[109.3571439056655,-0.042127308329425996],[109.35711242437108,-0.042159813063947775],[109.35702694650485,-0.04224806976456387],[109.35713790287946,-0.04236581695389916],[109.35722882077249,-0.0422857310952192],[109.35728185217383,-0.0422390178967156],[109.35729384842368,-0.04220580807005448],[109.35725786239917,-0.04217561632161648],[109.35729085086487,-0.042142406940770774],[109.35732383806575,-0.042169579527001205],[109.35736582294452,-0.04214844672981821],[109.35741980122499,-0.042229963537146364],[109.3573808152959,-0.04224807729857012],[109.35739280869062,-0.042350726903299434],[109.35734396748185,-0.04240229362773604],[109.35726985153417,-0.0424805455073499],[109.35738980470232,-0.042592254719837644],[109.35745628896606,-0.04251026619783059],[109.35750976336693,-0.042444321458401796],[109.35762072014114,-0.04254395409354648],[109.35762071937467,-0.04258018327981124],[109.35757578516834,-0.042635198895023804],[109.35750975761535,-0.042716040340423346],[109.35758472861144,-0.04277340483123276],[109.3576412622169,-0.04270384558103825],[109.35769269142594,-0.04264056680312994],[109.35772267973823,-0.04266773933845376],[109.35782164281693,-0.042679817862281144],[109.3579296003874,-0.04279454595778683],[109.3579985741332,-0.042827757538304936],[109.35792959890938,-0.04286398524231856],[109.35793559623737,-0.042885119067174314],[109.3579655850008,-0.04289115791371068],[109.35799257481096,-0.042900215795118185],[109.3579052773888,-0.04297916058847342],[109.35781563693341,-0.043060224226745325],[109.35790560127698,-0.04316891375270607],[109.35799084477075,-0.04306686442293789],[109.3580165630242,-0.04303607578920492],[109.35804055368686,-0.043057210005723746],[109.35807954034638,-0.043005886158767],[109.35808853649823,-0.04303003915018413],[109.35813052101528,-0.043027020960485524],[109.35817250443529,-0.043075327465418506],[109.35820549150934,-0.043108538278291815],[109.35812265819499,-0.04319834066989094],[109.35804954562701,-0.04327760446506522],[109.35819948737058,-0.0434044099223638],[109.35825188656842,-0.043326261983280746],[109.35828045999246,-0.043283647697832765],[109.35834943335293,-0.04333497390077376],[109.35831413169245,-0.043392887412026335],[109.35826846046444,-0.04346781252675963],[109.35830144727296,-0.043513099747311546],[109.3583569010224,-0.043438666501557616],[109.35837748848931,-0.043460702748466654],[109.35853287910865,-0.043626202755313946],[109.35862096879175,-0.04371906012860145],[109.35867930447884,-0.043648967547491015],[109.35879326028366,-0.04374256217165247],[109.35872587094687,-0.04382493987302808],[109.35884189474125,-0.04393370274937445],[109.35888047379089,-0.043969831592613036],[109.35901817505054,-0.04383615925491077],[109.35912913217332,-0.04392069653545359],[109.35910214136366,-0.04395692515211779],[109.35911713509353,-0.043990135596329465],[109.35911413494836,-0.04404749845129849],[109.35915012144281,-0.044056556552782185],[109.35920710017571,-0.04406561512007003],[109.35916211548647,-0.044125996146374025],[109.35915311795293,-0.04416524426197268],[109.3591771084854,-0.04419241670631497],[109.35920109908423,-0.044216570049988364],[109.35922509034631,-0.04421053238135845],[109.35924908246984,-0.04416524639521165],[109.35924008685498,-0.044116940574129536],[109.35929706585485,-0.044113922737907214],[109.35935396265724,-0.04419304276705544],[109.3593420458459,-0.04426789791177786],[109.35932405170114,-0.04430412672825414],[109.35932876973328,-0.044363280875412456],[109.35938764959111,-0.04440935024568593],[109.35941701587328,-0.04437054903600913],[109.35945900062056,-0.04435847356690464],[109.3594979860782,-0.04436451264061259],[109.35952797439566,-0.04439168522593096],[109.35954896523916,-0.044455086832415884],[109.35950543746075,-0.044497721701339144],[109.35943800384753,-0.044563772008408116],[109.35949498165097,-0.044615098015241376],[109.3595707716294,-0.0445361235762819],[109.35966592241796,-0.04443697483692993],[109.35976188549351,-0.044503397229059403],[109.35967462339589,-0.04459549411132331],[109.359575949852,-0.044699634684290605],[109.35967191231065,-0.04479322900400904],[109.35978886862765,-0.04481436535507459],[109.35986684183567,-0.044723794045026],[109.35998379635261,-0.04482644615987108],[109.36006776318837,-0.0449230593358575],[109.36013373754493,-0.04498042377761121],[109.36011274334008,-0.04506797727932549],[109.3602087058087,-0.04516157164135109],[109.3603016727696,-0.045104210797491114],[109.36033466153698,-0.04506194410416093],[109.36034649081161,-0.045018281662073785],[109.36036165379869,-0.0449623143161881],[109.36041863242839,-0.044977411120267055],[109.36044562260032,-0.04497137352450248],[109.3604636143406,-0.04504383240769782],[109.36041806343606,-0.045085250554122006],[109.36051091036457,-0.0451754214978501],[109.36054410154335,-0.045210367325904256],[109.36057157138679,-0.04518271360703615],[109.36061955367933,-0.04518271469730103],[109.36063754636231,-0.04521290614055102],[109.36063454624912,-0.045267249934205486],[109.36061990478069,-0.04529017790078606],[109.36060755525939,-0.045309516767303916],[109.360658535088,-0.04536989999837066],[109.36067352867121,-0.045409148685935104],[109.36066453151471,-0.04543028220484662],[109.36067652667995,-0.04544839709989972],[109.36074250233656,-0.045448398607724275],[109.36062854138585,-0.045581236554041074],[109.36070351228635,-0.04564463944687616],[109.3608395161469,-0.04550292126337334],[109.36087445324773,-0.04546651624594969],[109.36091943542755,-0.045520861143975716],[109.36089289106614,-0.045554394636247664],[109.36076648747664,-0.045714080275941905],[109.3608624500173,-0.045804655595276744],[109.36099386554804,-0.04566054843601811],[109.36102562911351,-0.04569453087470122],[109.36109784847096,-0.04577794929340044],[109.36106337549597,-0.04582277484709599],[109.36112934979234,-0.04588315845070381],[109.36116593752327,-0.04585451090326423],[109.36118333084892,-0.045840892236100377],[109.3612433073602,-0.045901275705409576],[109.36128529263677,-0.045868066525552385],[109.36137825643942,-0.04595260359681559],[109.36142923881556,-0.04590127999543613],[109.36151620662301,-0.04590732021148967],[109.36163016076958,-0.04607639271782129],[109.3615431905406,-0.04617602116273778],[109.36158817264831,-0.04623338519944871],[109.36154320934794,-0.04627955470827421],[109.36165262911719,-0.04640807776092082],[109.36175773848207,-0.046544640263357695],[109.36184713831805,-0.04662854715158911],[109.36199001807292,-0.046517190452197654],[109.3620529938335,-0.04656247850797079],[109.36210397519797,-0.046556441489328686],[109.36224192140132,-0.04668626626861812],[109.36226891181342,-0.04667117137208255],[109.36232289054227,-0.04673155475766483],[109.36226590976992,-0.04680703106771261],[109.36224791688495,-0.04678589690344832],[109.36213431949561,-0.04691216671608626],[109.36217364473379,-0.046953421502546694],[109.36226629972202,-0.04702983577270454],[109.36223085391647,-0.04707601370595023],[109.3622966406088,-0.04714394514589107],[109.36233712578388,-0.04714054961044665],[109.36234218558717,-0.0471762129202175],[109.36235230606681,-0.04721017810302461],[109.36237592165769,-0.04724074711217871],[109.36240628567948,-0.04723225659672413],[109.36243965942217,-0.04718890560470654],[109.36249073848808,-0.0472410152646084],[109.36256439473323,-0.04731879651546449],[109.36260596127187,-0.047360244858326066],[109.3625817174072,-0.04739019776198154],[109.36259689876164,-0.0474139735863763],[109.36254629082794,-0.047480204026382304],[109.36261376459704,-0.047539644293514156],[109.36268967596364,-0.047463224971481734],[109.36270823099679,-0.04749039737299007],[109.36268461404673,-0.04751756876862211],[109.36265593617851,-0.04755662777459547],[109.36265256133893,-0.047602480373906506],[109.36269979267658,-0.047656825421386294],[109.36281033926296,-0.047559558350458685],[109.36282799815356,-0.04754474415135757],[109.36285161442557,-0.047546442962779496],[109.36287354437862,-0.04752436626772101],[109.36308455803807,-0.04771270481056713],[109.36313246969031,-0.047702276503706675],[109.36318729845327,-0.047758731960087515],[109.3631889848105,-0.047780809222737176],[109.36315693321109,-0.0478181699061429],[109.36308608595287,-0.047746841798549544],[109.36303379268455,-0.04774684054478658],[109.3630304182019,-0.047777408922955254],[109.36305572051128,-0.04781477098046217],[109.3630371644331,-0.04783175301223299],[109.36302704283347,-0.04784533875095115],[109.36303210286823,-0.04787081258844088],[109.36305909209604,-0.047906476439957],[109.36309451628644,-0.047918365026620925],[109.36311307204349,-0.047914968977506585],[109.36315187035711,-0.047911573415267895],[109.36324633554251,-0.047914972183596125],[109.36329188166,-0.04789968904771145],[109.3633289914037,-0.04796761985942407],[109.36330031380045,-0.047994791136099994],[109.36330031323507,-0.04801856660745773],[109.3632901913095,-0.04804573833065513],[109.36324127187581,-0.0480423406547835],[109.36314005731111,-0.04811706111735236],[109.36309282370796,-0.04815781792289147],[109.36323470520384,-0.0483181878464101],[109.36329037342617,-0.04826851544438784],[109.36332832840553,-0.048260874248243386],[109.36340297305419,-0.048251960254606464],[109.36340550373946,-0.04823667608345396],[109.36347888374794,-0.048206109394497265],[109.36337007718977,-0.04832328587441462],[109.36342321271789,-0.04837296091927028],[109.36351304108972,-0.048288899817839855],[109.36356111604331,-0.04833602737020205],[109.3636243751745,-0.048288902516606835],[109.36363955715669,-0.04828635551222406],[109.36365600405527,-0.048293998028058276],[109.36365853361362,-0.04832584024427618],[109.36365347184469,-0.0483729665106313],[109.36363355627735,-0.048415115604951466],[109.36368078745456,-0.04847625369091305],[109.3637010300711,-0.04847398985239627],[109.36384272540022,-0.04858268119870154],[109.36391919872464,-0.04852381044922508],[109.36397767577529,-0.04858494882051545],[109.36397992391376,-0.048627971171598144],[109.36392819127775,-0.04869589984875183],[109.3639844196416,-0.04873665918787473],[109.36403389999207,-0.04879779734701802],[109.36393943222276,-0.04889968994365108],[109.36395742418739,-0.0489585630004327],[109.36398441323081,-0.04900158595990615],[109.36401140265869,-0.049028758600619914],[109.36401814968568,-0.04904913774946706],[109.36403164346406,-0.04910121770472563],[109.36406762876074,-0.04916235554140821],[109.3640968678028,-0.04917141358882463],[109.36412385794677,-0.04916914992327563],[109.36414634990822,-0.049160093151947054],[109.36418458630932,-0.04914197944226545],[109.36420258014337,-0.0491238652329105],[109.36421832496823,-0.049098957972834284],[109.3642408172055,-0.04907857954187717],[109.36426443320994,-0.04909195383253283],[109.36429479653609,-0.049113607252772244],[109.36430618223736,-0.04914417601199173],[109.3642973247804,-0.04919894431759307],[109.3643049144089,-0.049253713029171836],[109.36431756517547,-0.04928810288048515],[109.36433274679133,-0.04930084012221121],[109.36434792868702,-0.04930211418440339],[109.36436437577451,-0.049302114591254324],[109.36439094424011,-0.049298294188470204],[109.36441118690298,-0.04929447362912222],[109.36443775508938,-0.04930211640638561],[109.3644655880637,-0.049325043455664616],[109.36449848183642,-0.04934160219719774],[109.36451998925672,-0.0493543395970772],[109.36454529231482,-0.04936070865742849],[109.36456812405622,-0.049363661088185504],[109.36458283224209,-0.04938892150318567],[109.36462248799762,-0.04944237155684561],[109.3645743880205,-0.049482983308916914],[109.36460095574039,-0.04950973139124558],[109.3646009553345,-0.0495262893195945],[109.36456046925437,-0.049564498916892234],[109.36460980880278,-0.04963455291797378],[109.36463764237067,-0.04963327992419144],[109.36469584095484,-0.04958488127256761],[109.36474265055992,-0.04963965097312014],[109.36463510963739,-0.049731353746288],[109.3647451753618,-0.04986381992877],[109.36486536376233,-0.049940031871797595],[109.36491428440878,-0.049895878614577234],[109.3649260926195,-0.04989418066072975],[109.36495982936417,-0.0499298447417894],[109.36498681837361,-0.049973999901892774],[109.3649952520659,-0.05000287035307163],[109.36487885443921,-0.0501166501370713],[109.3649665696509,-0.05022194380327501],[109.36503573313553,-0.05016760156348921],[109.36504585379107,-0.0501930755597447],[109.36505091384463,-0.050216851179416065],[109.3650694688221,-0.05024572188759108],[109.36507115511229,-0.050269497422618534],[109.36505765934268,-0.05029836732308322],[109.36506440631882,-0.05032044473622131],[109.36509308317575,-0.050325540208411776],[109.36512682105806,-0.050315351562850524],[109.36514706439611,-0.05028478358211631],[109.36517236761831,-0.050284784220202945],[109.36521960093393,-0.050259311667404986],[109.36526346057165,-0.05023044252913235],[109.36528538948313,-0.05025252032689373],[109.36528707585798,-0.050272899365225554],[109.36528538813143,-0.050306864315608546],[109.3653275587333,-0.050364605868659915],[109.3654338285485,-0.050514054532504855],[109.36531237086032,-0.05060236043893691],[109.36540345936183,-0.05072633498178441],[109.365507673074,-0.050650293778593904],[109.36550092495114,-0.05067406910487674],[109.36550261127935,-0.05069614639554404],[109.36551947937282,-0.05072501707166522],[109.36554646897012,-0.05074539675654706],[109.36561900591194,-0.050704640603666695],[109.36564599546823,-0.05072671853917168],[109.36566792399512,-0.050764080596258],[109.36571178074861,-0.050850692462930586],[109.36574889116913,-0.050889753159923445],[109.36583720092709,-0.050974873846257256],[109.36587816036801,-0.051048452765093136],[109.36590061350122,-0.05108734338915829],[109.3659113947356,-0.05110634339035007],[109.36591858224821,-0.05111448400976074],[109.36594551974916,-0.05115426526362563],[109.3660128947369,-0.05125465589515443],[109.36603711100149,-0.05129022016092634],[109.3659209407704,-0.05137885360319964],[109.36596142386922,-0.051460370656474075],[109.36608121801338,-0.0513549961945744],[109.3661323634952,-0.051430109006740526],[109.36613676542824,-0.05143735817535653],[109.36609974782435,-0.05147565847738446],[109.36609637354081,-0.05149603739437467],[109.36611830262159,-0.051511322213572824],[109.36614191849814,-0.05153000357738719],[109.36616384697285,-0.05156906390282594],[109.36616890692684,-0.051596236039986816],[109.36617565367615,-0.05162680472172792],[109.36620433011288,-0.0516488827193091],[109.36623637996733,-0.05168454680850228],[109.36627686301736,-0.051767762131151356],[109.36622288186632,-0.0518034239900091],[109.36621613398859,-0.05181700981833038],[109.36620938593681,-0.0518373886482706],[109.36620769840128,-0.05186286236088518],[109.36621781886795,-0.051895129382352724],[109.36623300015576,-0.05192060353398623],[109.36627179810294,-0.0519341905474206],[109.36630384900076,-0.05192909663006605],[109.36633589872118,-0.05196985547709992],[109.36641419074613,-0.05189233196996424],[109.36643880117242,-0.05186796311928951],[109.36645398272391,-0.051883247769634266],[109.36647591110834,-0.0519257046062432],[109.36648097105846,-0.05195287674852977],[109.36647770051341,-0.05199764007774057],[109.3664725336757,-0.052068357573561624],[109.36645397722357,-0.05209722735032393],[109.36642867324082,-0.05212609695027678],[109.36641517695398,-0.052173647614773166],[109.36642529675918,-0.05223138840033235],[109.36645059837453,-0.05229422433619855],[109.366513011055,-0.052370647252767355],[109.36656193025718,-0.05238593279308219],[109.36665133517492,-0.052380840387364465],[109.36667832490392,-0.05239612535319078],[109.36668844567284,-0.05241650462891759],[109.36668507133506,-0.05243858180124602],[109.36667832331928,-0.052457262383101694],[109.36667157499515,-0.052487830720567924],[109.36667494761453,-0.05253198533087677],[109.36667663357099,-0.05256764864267952],[109.36670530974021,-0.0525999161642008],[109.36681158261106,-0.05262878923086515],[109.36680989488846,-0.05266105595431173],[109.36679808595632,-0.052689925908604954],[109.36679808529266,-0.052715399672623536],[109.36680820592623,-0.05274087370404038],[109.36683688227194,-0.05276634822623553],[109.3668706195769,-0.05277993512599965],[109.366909718572,-0.05274713480576302],[109.36692122717427,-0.0527374801881709],[109.36694484353653,-0.052737480812089566],[109.36696508538047,-0.05276635161514323],[109.36696339787729,-0.052790127085587404],[109.36695008096142,-0.05280698717442773],[109.36699919162476,-0.05287981214257249],[109.36704013167454,-0.052929950947984174],[109.3670091265762,-0.052965236854100636],[109.36710527464125,-0.05312827151970124],[109.36709852443052,-0.0532301664114464],[109.36716431055079,-0.053318477230226785],[109.36729326602014,-0.053241340534591855],[109.36731200887388,-0.053230455145119294],[109.3673457466012,-0.05322819170935905],[109.36738398322053,-0.0532055493762276],[109.36740647339161,-0.0532666870277344],[109.36733876434812,-0.05330019429189123],[109.36728273893098,-0.05333924029257312],[109.36736670369415,-0.053511332012543586],[109.36738769634054,-0.05349925612048683],[109.36744467335866,-0.053580773718233644],[109.3675290420776,-0.053526174376274216],[109.36757062948621,-0.05349926102155139],[109.36763660258299,-0.05360493178029104],[109.3676052330951,-0.05362679422657877],[109.36755862963368,-0.05365927373785029],[109.36762460200006,-0.05379211652744324],[109.36762160277493,-0.0538041929027147],[109.36767258141677,-0.05390684415531851],[109.3677085687514,-0.053888730441802674],[109.36777154397535,-0.05395515265432212],[109.36793047979117,-0.054184609648456436],[109.36798445846014,-0.05424499340399582],[109.36799945201334,-0.05428122318622473],[109.36798145753157,-0.05432047118649406],[109.36795746523961,-0.054359719022806514],[109.36794246982373,-0.05439292887422674],[109.36794846674083,-0.05442613929709412],[109.3679784548957,-0.05445935037434643],[109.36802043850749,-0.0544986000090001],[109.368053425242,-0.05454388762899108],[109.36806841740606,-0.054631442364380334],[109.36808640773711,-0.05474616921564198],[109.36804442208748,-0.0547823974408274],[109.368139259901,-0.05487684172639366],[109.36816962464351,-0.05484627402273957],[109.36831469193915,-0.05502119798422999],[109.36836023578311,-0.055095922337957265],[109.36836023393359,-0.0551638524283624],[109.36836866756835,-0.055192722949778866],[109.3683855360876,-0.05520461118173469],[109.36841421298259,-0.05520970673099278],[109.36844457717879,-0.055199518056012746],[109.3685120526015,-0.05519782166771784],[109.36853229479811,-0.05521310649856735],[109.36853229424243,-0.05523348552740442],[109.36854072764538,-0.055270847313661955],[109.36856096928538,-0.05530651117463994],[109.36858121069308,-0.05535066629854063],[109.3686014525179,-0.05537953715115969],[109.36862506857612,-0.05539142557305005],[109.36866916625591,-0.05542413945802736],[109.36872121904503,-0.055462754846077184],[109.36873977398521,-0.05549162565493036],[109.36873302593482,-0.05551030624593456],[109.36872098814288,-0.05551575935551045],[109.3686992878235,-0.05552558958169918],[109.36866048770767,-0.055590122099236236],[109.36865036579427,-0.05561219910027543],[109.36863349536229,-0.05566993921552638],[109.36861493823142,-0.0557208862728491],[109.36860144240741,-0.05574805793598829],[109.36861831050466,-0.05577523044626072],[109.36866385620075,-0.055782024727581425],[109.36869084654104,-0.05577523247082915],[109.3687161502313,-0.05575994890399208],[109.3687380797782,-0.055758251263308155],[109.3687633827208,-0.055770139737505976],[109.36879037203364,-0.05580070903796512],[109.36882748302912,-0.05581769260072175],[109.36887302840222,-0.055836374652402786],[109.36894724805285,-0.05595525441911226],[109.3689691748324,-0.05605375369410974],[109.36897423374735,-0.05611658918888552],[109.36900628267682,-0.05618452020112867],[109.36906989566737,-0.05615446200268974],[109.36908894112047,-0.05614546270836668],[109.36920027001412,-0.0563441614333832],[109.36923500262733,-0.05646645796749743],[109.36921038739978,-0.056485116716152514],[109.36919857844647,-0.05651228843001363],[109.36918845633066,-0.056541158444264154],[109.36918845547736,-0.05657172699756727],[109.3691985762183,-0.05659210631962632],[109.36921881841226,-0.05660739116960266],[109.36925592926741,-0.05662946950978801],[109.36929135352251,-0.0566413582846394],[109.36931496953476,-0.05665494497836577],[109.36935376756105,-0.0566668338496136],[109.3693708193245,-0.056666383742614006],[109.3695147551153,-0.05658669087675728],[109.36954174384704,-0.056638016628158976],[109.36949975821685,-0.05667122572411416],[109.36952674686152,-0.056725570593157],[109.36951774861794,-0.056779914441675475],[109.3695777235458,-0.056894642589602744],[109.36956872631532,-0.05691275703537182],[109.36955168869807,-0.056926641535874],[109.36950574782034,-0.0569640802292875],[109.36949675050415,-0.05698521379086362],[109.36950574586729,-0.057033519916964426],[109.36953873308218,-0.057060692910162386],[109.36961070668842,-0.05706673319822197],[109.3698026267945,-0.05741997540042863],[109.36970366198707,-0.05745016373023001],[109.36977263309223,-0.05758300687133053],[109.36992194891599,-0.05747620555540714],[109.37000055471322,-0.05741998108339436],[109.37001987985442,-0.057460739726266176],[109.36995993923686,-0.057531137640174104],[109.36992391160108,-0.05757345068864537],[109.36999854773066,-0.05769153388128368],[109.3699079105507,-0.05781497962526583],[109.36995055908093,-0.05790622529912179],[109.37010931799738,-0.057764171905334304],[109.37028643634052,-0.057922336986166716],[109.37044104197841,-0.05808872842528063],[109.37045170230282,-0.05817460587720062],[109.37055832678033,-0.05829269005475569],[109.37081422518185,-0.05858790024060032],[109.37122047282146,-0.059133877236944944],[109.37131369543987,-0.059098425621009],[109.37173652581494,-0.05964489886432003],[109.371769512768,-0.05968112929032672],[109.37180249821002,-0.05976868476291624],[109.37202441094308,-0.05999512543625395],[109.37210237870417,-0.06012796908625125],[109.37212936819039,-0.06015212286311852],[109.37218934525465,-0.06019137323643375],[109.37218634482052,-0.06024269820155473],[109.37217134936702,-0.06027288895925287],[109.37217134802168,-0.06031817577239131],[109.3722103334219,-0.06033327255128441],[109.37222832751898,-0.06031213924662926],[109.37227031210097,-0.06031817875304858],[109.37230629787341,-0.06035742841087951],[109.37233028862786,-0.06037554386060613],[109.37236927492867,-0.06036044942995719],[109.37244724313038,-0.0604781975100634],[109.37245024096272,-0.060514427056179876],[109.37244124278648,-0.0605627327248765],[109.37244424061726,-0.06059896227099334],[109.37247422946551,-0.06060802054229428],[109.37253120870197,-0.06061104138778611],[109.37256719375215,-0.060674444027610595],[109.3725791871431,-0.060749922428212824],[109.3725581934033,-0.06079520861337267],[109.37264515886808,-0.0608948422653263],[109.37269613983204,-0.06091295854505543],[109.37282508707487,-0.061112224508703544],[109.37285207328479,-0.061245066695616766],[109.37284686184164,-0.061288339832678805],[109.37284007462736,-0.061344697351030535],[109.37282207731771,-0.06147149991798636],[109.37291204359627,-0.061507732142261094],[109.3729900155081,-0.06150169629170068],[109.37304119272484,-0.0614743956187946],[109.3731218322546,-0.06155645276982974],[109.37327183225031,-0.06171834339255479],[109.37342723850418,-0.06187479652834112],[109.37352425412843,-0.061975187148331924],[109.37358083225035,-0.06203285901641851],[109.37359628017354,-0.062048589620468685],[109.37360012580143,-0.062052366924601886],[109.37360010467367,-0.062052382843561286],[109.37369333219317,-0.06214301526608477]]]},"properties":{"Id":0,"Plan_Area":113026328.1,"Ket":"Pontianak Timur","Penduduk":110904}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[109.3542517137578,-0.04207834350964987],[109.3541572853548,-0.04197295274622931],[109.35398483223217,-0.04177851525769786],[109.35382851973591,-0.04156959337507654],[109.35366322286175,-0.04133989024822667],[109.35347100411668,-0.04113731213606574],[109.35327337910323,-0.04094015587685209],[109.35308473847793,-0.04072762462449755],[109.35289430098638,-0.040512390252949726],[109.35271105098029,-0.04031976525282673],[109.35253678535138,-0.040113562124018995],[109.35236342598014,-0.03988112462231661],[109.3521882541126,-0.03968128087990572],[109.35200411348481,-0.03948864025750211],[109.35181995723909,-0.039282452757087256],[109.3516546759855,-0.039066296496739095],[109.35150376973381,-0.03887728088051426],[109.35135825410707,-0.03867923399854586],[109.35121003535704,-0.03847123400050238],[109.35108482417394,-0.03833390442248441],[109.35110359559948,-0.038319506573934986],[109.35105561469479,-0.0382591238668479],[109.35106461207975,-0.03821987588566233],[109.3510376225179,-0.03820176083089957],[109.35099263968526,-0.038183645429102055],[109.35097464693192,-0.0381564732829768],[109.35096565098598,-0.03812024404470885],[109.35094465966948,-0.038076466853924976],[109.35088068543119,-0.03797985478683049],[109.35080927195246,-0.037989070668093324],[109.35067276270212,-0.03800668713193602],[109.35055014506614,-0.037840299475118036],[109.35050216443959,-0.037765156810364874],[109.35053948491979,-0.03770611757905876],[109.35056596785824,-0.037646872989632624],[109.35058746898288,-0.0375987731383611],[109.35039554652813,-0.03729283525172374],[109.35035603881215,-0.03731669861917723],[109.35031557556123,-0.03734113914616466],[109.35011299101593,-0.03700299752701005],[109.34985709522984,-0.036546775139202785],[109.3496805834804,-0.036246498536571164],[109.34953889127105,-0.03598609972233075],[109.3495208986647,-0.03594987035633719],[109.34952314822856,-0.03592722724838707],[109.34950965361055,-0.03590911248397003],[109.34949166047537,-0.035902319212302754],[109.34946916935093,-0.03587741134039346],[109.34946692068063,-0.03585023952165522],[109.34946692169375,-0.03579363165109679],[109.34945117824168,-0.035757402328914736],[109.34942868699468,-0.035739287403473576],[109.34939944795332,-0.03573928687436903],[109.34937920602538,-0.03571211473140124],[109.34937920663116,-0.03567815001057707],[109.34943543616156,-0.03564418630455796],[109.34937695960947,-0.035558141289823375],[109.34928699329244,-0.03556040398456842],[109.34923526405146,-0.035483416358144414],[109.34915879244006,-0.0354992651853477],[109.34912055761917,-0.035451713895012435],[109.34903059127367,-0.03545624090842232],[109.34899910416415,-0.03539510385729094],[109.34906657942183,-0.03536340466572438],[109.34903734154533,-0.035297739026511274],[109.34911606278558,-0.03525471845972415],[109.34908457562877,-0.03519584572354251],[109.34890689058766,-0.0352909437518574],[109.34895187191746,-0.035392838696352555],[109.34891813437007,-0.03540415966254968],[109.3488326695838,-0.03522527731642202],[109.3488821515818,-0.03519357780109486],[109.34887590482053,-0.035142630621497147],[109.34891988867739,-0.03512250416704281],[109.34897586986922,-0.03499771628810244],[109.34888390548629,-0.03493330749980244],[109.34887990775856,-0.03488902750791279],[109.34892789025339,-0.034860850223438794],[109.34882393218523,-0.0346917796027504],[109.34874396155575,-0.03472800722144302],[109.34881993130755,-0.034828644739195565],[109.34863999740679,-0.034909150502556774],[109.34859201723368,-0.03480448803749234],[109.34865999277861,-0.03474410753200294],[109.3486200095261,-0.034643470657091606],[109.34865999542899,-0.034591140548717945],[109.34855204002966,-0.03435363730112218],[109.34859602456125,-0.034293256364595716],[109.34847607301555,-0.03409198195289902],[109.34852005719485,-0.034051728246088105],[109.34844408734814,-0.03395511621977578],[109.34840810058112,-0.033971217386388926],[109.34832813216775,-0.033878630746162194],[109.34818419014645,-0.03364515240958023],[109.34824016987463,-0.03360087345708448],[109.34819618800775,-0.0335042620046357],[109.3481666759799,-0.03339684336810289],[109.34808312910779,-0.033295562123554265],[109.3479852228503,-0.03317346837813125],[109.34795828535357,-0.03313276523707584],[109.34790258223826,-0.03303418711319799],[109.34783970722562,-0.03290578086995675],[109.34777592599023,-0.03277103086236109],[109.34774813052688,-0.032707586812145105],[109.34770305287046,-0.032719962768074505],[109.34755378095656,-0.03239255745881312],[109.34745781901587,-0.03226910891903399],[109.34735652772443,-0.032022213346628484],[109.347319208161,-0.03203831451753001],[109.34728189005895,-0.031963172287824956],[109.34723391083554,-0.03179141923200582],[109.34715394354048,-0.031625032930165164],[109.3470526488894,-0.031587460498472955],[109.34695135745194,-0.03134593226924811],[109.34695133220256,-0.031292218368397934],[109.34688205161451,-0.03125468778605199],[109.34674877417454,-0.03088434491452481],[109.34677009989987,-0.030857508961326833],[109.34655685452844,-0.030352983479598288],[109.34648221778066,-0.03023221905583069],[109.3464253496439,-0.03027515623571814],[109.34637559200195,-0.030182123027989515],[109.34623342684992,-0.029945961588370557],[109.346219211586,-0.02983861625367011],[109.34629029647091,-0.029802835622159907],[109.34614102474862,-0.029437859976001925],[109.34622180452563,-0.029379127678858995],[109.34626897794503,-0.029344829448260588],[109.34542354288943,-0.02764451559184486],[109.34524761347392,-0.027334554245575453],[109.34512366382666,-0.027068873504370587],[109.34523162366843,-0.02702862058847765],[109.34517564586163,-0.026948111023972612],[109.34511566825836,-0.026964211962285694],[109.34511966740251,-0.026915906740525842],[109.34498795237513,-0.02663100725980172],[109.34489124170886,-0.026415896542756792],[109.34480802510073,-0.026264186691571746],[109.34486200518582,-0.026230222768342717],[109.34490248884286,-0.02631173845261811],[109.3449182329344,-0.026309474353295764],[109.34497657227374,-0.02628073387719494],[109.34491225410947,-0.026141171484718558],[109.34486255383929,-0.026049781607866525],[109.3448249992455,-0.02606842153728127],[109.34482527102647,-0.026078890927666052],[109.34477728892925,-0.026093985688603088],[109.34477671544883,-0.02609238682029518],[109.3435626315242,-0.02669498758526942],[109.34210494955178,-0.027631289913580114],[109.34073186993625,-0.028449083707839516],[109.33989534931858,-0.02900890989233597],[109.33866974466294,-0.029896030424540483],[109.338103284086,-0.03033352538936671],[109.33789455090778,-0.03038760898972202],[109.33665977712863,-0.03156383186112857],[109.33398214420836,-0.03414347596314283],[109.33260000690112,-0.03551172396131128],[109.32981224083295,-0.03792040735123325],[109.32678273002858,-0.04053795579041163],[109.32503242609334,-0.04205024456135078],[109.32448646470378,-0.04261931863073522],[109.32372239973732,-0.043415728877689824],[109.32270982295476,-0.04438848475261101],[109.3219146392269,-0.04515239613305311],[109.32091635935764,-0.04611141557186],[109.3195934185071,-0.04750229392434255],[109.31891938021646,-0.048139538454601324],[109.31792659285624,-0.04907813170237839],[109.31720023906401,-0.04984814625261359],[109.31642282578287,-0.050634668632088826],[109.31413037706426,-0.05284824873871211],[109.31203935583135,-0.0549893416096532],[109.31095422427441,-0.05591006277695976],[109.31014057450318,-0.05686925418155446],[109.30922115564404,-0.05779283901742656],[109.30886309776758,-0.05821339794593776],[109.30803151893957,-0.05899239587119645],[109.3069922606449,-0.06003601996990354],[109.30592483648194,-0.06115790978185177],[109.30470076601493,-0.06230462738825889],[109.30473708443189,-0.06233721052814042],[109.30483206654915,-0.06235421838426612],[109.30680107635435,-0.06436189820850707],[109.31011931907967,-0.06774530889071882],[109.31094134562537,-0.06858347944660835],[109.31289213253426,-0.0705725784417261],[109.31504516209634,-0.07270276618168048],[109.31684825367192,-0.07426990288058401],[109.31687796744669,-0.07428110893073998],[109.31702731337043,-0.0744255305517153],[109.32211061823416,-0.07884362761056447],[109.32389276289443,-0.08052549670981375],[109.32393840924078,-0.08043223156481946],[109.32463498212682,-0.07940820627817205],[109.32774600026451,-0.07481502560151726],[109.33040539270073,-0.07078409119737616],[109.3324355082375,-0.06818769289691332],[109.3350185978989,-0.06513216064808534],[109.33822989052751,-0.06131030726062607],[109.34177229675163,-0.057301053193673665],[109.34548918426675,-0.053022664678963764],[109.34727622990725,-0.05100467478763772],[109.3485814044353,-0.04896407822417487],[109.34954295376905,-0.04751183325128081],[109.35087495701238,-0.04606645834771445],[109.35193342151881,-0.04487510170995203],[109.35175946042835,-0.044535422834847266],[109.353347075267,-0.043105218849610556],[109.3542517137578,-0.04207834350964987]]]},"properties":{"Id":0,"Plan_Area":113026328.1,"Ket":"Pontianak Selatan","Penduduk":91290}}, +{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[[[[109.29875831658171,0.003910766031328909],[109.29878089470797,0.004264422288841691],[109.29871316033508,0.004553750413511107],[109.29839703532866,0.0046823441692222375],[109.29803573844835,0.004875250422110328],[109.29771961344709,0.0050038441652494586],[109.29744864470875,0.0051324379179639975],[109.29699703531739,0.005003844156955543],[109.29681639469325,0.0048752347948509715],[109.29668091033271,0.0046823441642509485],[109.29663575407758,0.004553750406613091],[109.29672606657329,0.004425156657614642],[109.2968841290737,0.004328703547509942],[109.29713251969929,0.004039375417452581],[109.29753897281941,0.003975078541259786],[109.29803573844464,0.003975078537449749],[109.29826155094915,0.0038464847839492647],[109.29855509783246,0.003814328546525718],[109.29875831658171,0.003910766031328909]]],[[[109.3116357811095,0.03960991437806738],[109.31164417889931,0.03939582571713132],[109.31160956858118,0.03940671734231131],[109.29844019670277,0.03227552844129888],[109.29112304227966,0.011630683792513839],[109.29002441804451,0.008530991543888687],[109.29048922274788,0.008489437936352017],[109.29045272094851,0.008403083209608754],[109.2904929031835,0.00839351315904711],[109.29055287876773,0.008417665381200527],[109.29069981934578,0.008387476079683343],[109.29080477695847,0.008354267594329152],[109.2909097344723,0.008345211068059648],[109.29164743556008,0.008387480246122778],[109.29170205022707,0.008505301758822024],[109.29175239208597,0.008613905458186733],[109.29187226595104,0.00850233275884541],[109.29191132842487,0.008465975326112821],[109.29189333586332,0.008429747283518673],[109.29189333602085,0.008393519320774085],[109.29193232033892,0.008372386513432679],[109.29203427885281,0.008426728908882445],[109.29212424239435,0.008441824292396585],[109.29215423026444,0.00844182442502528],[109.29220520972352,0.008423710666223964],[109.29222858875698,0.008487415013101405],[109.29225318990815,0.008517299799409945],[109.29230117051702,0.008514281015961002],[109.29234833207227,0.00848239851570885],[109.29234915162837,0.008396540322742578],[109.29243011896669,0.00837842669246795],[109.29248771596292,0.008476556424805605],[109.29250808686253,0.008511262940948281],[109.29255606750436,0.008502206160986184],[109.29256370479992,0.008473373796062207],[109.29258005820164,0.008411636328241875],[109.29261304498448,0.008384465491269904],[109.29266102558913,0.00838446570197255],[109.29270900606387,0.008414655894568098],[109.29311984037714,0.008339182733926892],[109.29318616447169,0.008447311954320242],[109.29327123844935,0.008443750414904297],[109.29328177479603,0.008378430429267954],[109.29325478603515,0.00829993633551636],[109.29331476187588,0.008284841600402893],[109.29334474955735,0.00833314571754939],[109.29336574101471,0.008348240805269483],[109.29340172650822,0.008342202963944672],[109.29345270598668,0.008327108189757045],[109.29347069866921,0.008339184265778125],[109.29348869124753,0.008375412337374795],[109.29350368541454,0.008324089412551614],[109.29349169043924,0.008281823368341868],[109.29358765193831,0.008224462792394378],[109.293662621233,0.008327109104781525],[109.29370760278775,0.008393527295811484],[109.2937285946528,0.008315033393171712],[109.29377357668976,0.008269748590886248],[109.29384254913367,0.008203330889796521],[109.29391452020221,0.008176160197946463],[109.29403147302042,0.008173141698112705],[109.29407345597845,0.008197293880423116],[109.2941394292838,0.008215408166122012],[109.29422339520423,0.00826371253641324],[109.29423539014572,0.008315035598550678],[109.29424438634776,0.008354282645677284],[109.29428337060916,0.008357301816762358],[109.29426237943957,0.008272769706939846],[109.29424138838118,0.008161066593456915],[109.29449028820822,0.008109744639196713],[109.29452927238638,0.008133896813120307],[109.29458624934817,0.008148992061361712],[109.29469420585977,0.008139935517620383],[109.29480816002302,0.008115783990817846],[109.29486513698059,0.008133898242235158],[109.2949401067388,0.008139936564639755],[109.29501207778449,0.008127860863746773],[109.29508404894638,0.008088614144421224],[109.29516801535229,0.008031253460216358],[109.29564182500522,0.007910495337094243],[109.29569880165445,0.00801012266885994],[109.29587573056237,0.007976914374695153],[109.29600077696708,0.007995226057289345],[109.29614552277835,0.00791278960282749],[109.29617860886479,0.00792861157884332],[109.29620859677381,0.007934649710562158],[109.29623258715807,0.007925592798765544],[109.29624458249178,0.007886345799415787],[109.2962424659256,0.007857577987743844],[109.29623858523472,0.007804832673026597],[109.29661043651917,0.0075874658764449755],[109.29667940943673,0.00741840190011633],[109.29674838181802,0.007388212121769677],[109.29678136824266,0.0074697253738973905],[109.29697928907953,0.007364060973641102],[109.29713822556376,0.00726745341917267],[109.29754306374471,0.00704102951920675],[109.29752507119008,0.0069806493371920905],[109.2979598971477,0.006820643578860485],[109.2985445412877,0.00652462695798841],[109.29869461345206,0.0064054535386057375],[109.29885334782414,0.0063393129202218915],[109.29907444157296,0.006225500412534756],[109.29908144935483,0.0061851463356425605],[109.29911743519703,0.006100614219298552],[109.29915342092367,0.0060523102000503695],[109.29924538417667,0.00601608238838453],[109.29933334912229,0.005951677146735664],[109.29937333323474,0.005907398476579451],[109.29940532073266,0.0058027396049498],[109.29947329365268,0.005750410323700384],[109.29956925536086,0.005698081121956533],[109.29965722025219,0.005653802582475922],[109.29973718845375,0.005573295904198739],[109.29976517742732,0.0055088904532746945],[109.29981315834736,0.005460586440783727],[109.2998931263454,0.005452535976451194],[109.30006505751517,0.0054485111189407675],[109.30025879618617,0.005377415939229459],[109.30060201393135,0.005166781907452538],[109.30093683221138,0.0050045160368893],[109.3010190822069,0.004998062909578481],[109.30135508219769,0.0049717035423342566],[109.3015946356202,0.004994438913253421],[109.30212040287246,0.005035218583590782],[109.30221319994062,0.004984092358345551],[109.3022341916064,0.004965978333590935],[109.3022971664662,0.004965978496461768],[109.30232715448773,0.004968997587362306],[109.30237813405333,0.005002206867062579],[109.30249808618578,0.004999188165910399],[109.30272899410878,0.00497503665505829],[109.30273187291998,0.005044598098395311],[109.30281059782729,0.005035344162897223],[109.30307385643478,0.005035344166378463],[109.3034337130858,0.004972019465023993],[109.30346315076557,0.005043993319061561],[109.3034756960868,0.005074666089124322],[109.30367083987773,0.005046979152494979],[109.3037275958343,0.005023343489874582],[109.3037815743895,0.004999191505852859],[109.3038295552968,0.004990134583492405],[109.30385054687189,0.005014286764010796],[109.30387006487553,0.005049843302175257],[109.30388425407953,0.005050047292702],[109.30416900320323,0.005042045682034899],[109.30420740456711,0.005080706053751559],[109.30423739253126,0.0051169343292887925],[109.30431836027712,0.005122972577785563],[109.30437533767996,0.005089763547284881],[109.30449067488632,0.005027367954810271],[109.3044203204634,0.0048180521685136975],[109.30454627041014,0.004784843298854359],[109.30462124024109,0.0049176802316059556],[109.30486714265548,0.004812015253372499],[109.30492500465624,0.004963107414471536],[109.30500208219775,0.004951703533138335],[109.30531213690426,0.004862085567653752],[109.30536194563393,0.0049025870349889925],[109.3053889348728,0.004914663176409046],[109.30550588844575,0.0048874923100858305],[109.30557486108916,0.004863340337637742],[109.3056048492595,0.004827112191420529],[109.30564083496395,0.004824093263158225],[109.30572480157802,0.004830131511053707],[109.30576678493868,0.004812017503911405],[109.30576978388032,0.004757675173717978],[109.30577204512059,0.004734910938710529],[109.3064808790899,0.004553781664935093],[109.30672094930512,0.004468328203054169],[109.30682236651678,0.004492003979253777],[109.30691532971058,0.004455775949437291],[109.30708926079328,0.004416529081144137],[109.3071462382524,0.0043893580235228645],[109.30735315624595,0.004362187303922169],[109.30756007430146,0.004316902449015525],[109.30764404102742,0.0043108645938164],[109.3077460006453,0.0042957697126861085],[109.30771769096852,0.0042430132464267405],[109.30760505707539,0.00403311451565713],[109.30776699312501,0.003915373000901617],[109.30794595288906,0.004219236280934818],[109.30796791278692,0.004256522918780223],[109.30800689734642,0.004253503982649498],[109.30839395814446,0.004183978342707294],[109.30871428218214,0.004964485549601156],[109.30877825677625,0.004996688631458666],[109.30884756271907,0.004980587351970525],[109.30887955028963,0.004889345831371351],[109.30885289441225,0.00479273700870328],[109.30856013729566,0.0041183502393600056],[109.30853835390576,0.004068170681989765],[109.30919409469521,0.003912524599658081],[109.3095246307762,0.0038373851013615767],[109.3095939366517,0.0038642210148841687],[109.30967256383549,0.003970293510845494],[109.30973051971375,0.00396112541818537],[109.30965258026826,0.003794448113722817],[109.3099084793054,0.0036924726532239346],[109.30999911003069,0.0037568787017171683],[109.31021235927466,0.0036656374507161834],[109.31033497761081,0.0036065989546650683],[109.31045226472527,0.003547560441324146],[109.31062286415488,0.0034724205432063748],[109.31107068765476,0.0033114065720841537],[109.31101737563569,0.0031450245491031815],[109.31127477420543,0.003057598967169297],[109.31146819803946,0.002969292713635651],[109.31151318017216,0.0030508065323249967],[109.31228237730451,0.002813059216802935],[109.3123273595555,0.0028311734564950854],[109.31240607851994,0.002847023474938313],[109.31250953781775,0.002810795275589541],[109.31260175148475,0.002819852498161453],[109.31276068897635,0.002762616958602548],[109.31269271609443,0.002500967629175782],[109.31308856040813,0.00237618155906629],[109.31316852862153,0.002621729458880533],[109.31332046890068,0.0025693998015538545],[109.31368432585597,0.002500968912438016],[109.31517574042496,0.0020315670430624076],[109.31521128206704,0.001995785942163883],[109.31528236530865,0.001967161103885106],[109.31536766516726,0.0019671611906020457],[109.3154174234199,0.001967161241184902],[109.31560223986845,0.0018955991381768194],[109.31560934826545,0.0018168806249608024],[109.31610693101395,0.001702381396777835],[109.31631307251175,0.0016093505658076024],[109.31760067977915,0.0010598309460983306],[109.31767438768777,0.0011724174712507713],[109.31768764567859,0.0011926686391296945],[109.31775361987872,0.001177573492238385],[109.31780759878008,0.0011504021868112809],[109.31781128393058,0.001123690397328828],[109.31782259297576,0.0010417168418390484],[109.31813147225917,0.0008877460653795757],[109.31808349106102,0.0007911368269788484],[109.31812847348486,0.0007609464645053588],[109.31800252281683,0.0005043281946906286],[109.31825142553376,0.0003413001926822057],[109.31834139032168,0.000540556743905941],[109.31836538093593,0.0005707471350862946],[109.31841336216766,0.0006190517656708387],[109.3184373527815,0.0006492421589768518],[109.31846134338896,0.0006975467845468316],[109.31850632579295,0.0007428323808106884],[109.31860228829846,0.0007307562623003932],[109.31858729416948,0.0006975468298641176],[109.31871024614229,0.00066131840624591],[109.31876722389825,0.0006130138004387185],[109.31884519345566,0.0005616901587159562],[109.3194869429305,0.0003594146512930953],[109.31983480722158,0.0001541199454569085],[109.31989178498799,0.0002265769298615446],[109.31999974288412,0.00017525324554708917],[109.31996075809627,0.00006354872741870308],[109.32023065284264,-0.0001085366210019333],[109.32028463179948,-0.00003607962945662545],[109.32060850554112,-0.00024439352959064795],[109.3207074669892,-0.00011759377397766889],[109.32077344128389,-0.00009947952476713114],[109.32084241441272,-0.00007230814754248895],[109.32090538987956,-0.0000632510226520903],[109.32098488257179,-0.00007066106547703584],[109.32106732680231,-0.0000783462412128485],[109.32104123587091,-0.00011901736617737487],[109.320881399192,-0.0003681743010045151],[109.32095037231059,-0.0004315742060532019],[109.32112015316272,-0.00018673564664358852],[109.32117228592492,-0.00011155571646041754],[109.32121726840985,-0.00008136529014288557],[109.32133722170323,-0.00010551763980253128],[109.32137620652139,-0.00016589850466631082],[109.32141519133735,-0.0002353365015175805],[109.32148416448233,-0.0002776031161571295],[109.32158912361687,-0.0003530792178489307],[109.3217840477459,-0.00043157439132398304],[109.32185601972773,-0.0004949743288490603],[109.32189800337855,-0.0005523361745583278],[109.32193099052274,-0.0006278122838769784],[109.32179904187974,-0.0005583742340056238],[109.32171649313321,-0.0007415830063253993],[109.32166709312003,-0.0008512214242143897],[109.32183758170602,-0.0009387917238195796],[109.32196097870174,-0.0010021737552404742],[109.32231783983217,-0.0011470880801714655],[109.322380815303,-0.0012195451900732421],[109.32237481758276,-0.0013010593929322814],[109.3226447125611,-0.0014520118290059006],[109.32268369742513,-0.0014308785419854756],[109.32274367412329,-0.0014218214503177293],[109.3229385983551,-0.0014610691852716272],[109.3229535924864,-0.0015184310627134234],[109.32296558777638,-0.0015818310298195306],[109.32301356911685,-0.001605983434302952],[109.32307054694866,-0.001648250122165074],[109.32313652131502,-0.001657307315723199],[109.32315751317692,-0.0016391930581651358],[109.32323848176306,-0.0015999455280650947],[109.3233344444979,-0.001599945607035625],[109.32338630129514,-0.001605562344579694],[109.3234064165047,-0.001657307545792853],[109.32343040714892,-0.0017056123074920243],[109.32343040709023,-0.0017720313267048638],[109.32341541285388,-0.0018354312854448743],[109.3233884232846,-0.0018867550464278262],[109.32334344070392,-0.001935059741866251],[109.32397619458625,-0.0024090507780921504],[109.3243570465528,-0.002650575071076156],[109.32440902649365,-0.0025776148189399044],[109.32461694570006,-0.002714478611418564],[109.32453697658309,-0.002799011845153886],[109.32462287269598,-0.0028946161501105937],[109.32461294691483,-0.002947951663849877],[109.3248688473374,-0.0032015521306321426],[109.32494791982431,-0.003120386106864413],[109.32507276865432,-0.00299223174394246],[109.32509675936642,-0.002988206382269284],[109.32514074231581,-0.0029962572470910217],[109.3252367050081,-0.003084816169320944],[109.32534866149432,-0.003181425924485342],[109.325475355862,-0.003236023465157063],[109.32548061019395,-0.003306213519899243],[109.3259644223042,-0.003656424171532691],[109.32606038487644,-0.0038134149730155048],[109.32605638628216,-0.0038858721748306862],[109.32626030710448,-0.00403078701615359],[109.32656418908778,-0.004268286338618677],[109.32702401060465,-0.00460255299874733],[109.3272686031762,-0.004784262785628936],[109.32728715834719,-0.004850493291213126],[109.327329329466,-0.004887854169316299],[109.32739849011882,-0.004942197287440208],[109.32738836877014,-0.005044090282490384],[109.32731583400073,-0.0051544741964843115],[109.3276262133933,-0.005432982641324637],[109.327747666274,-0.005516195628749958],[109.3277780296193,-0.005492420671753138],[109.32776284801277,-0.0054805331076147],[109.32783369588479,-0.005400717088969836],[109.32787924067499,-0.005448267303423183],[109.32778815064142,-0.0055178939606884],[109.32776116098862,-0.005543367144344109],[109.32772067664085,-0.005534875942691546],[109.3276869394977,-0.005594313451426756],[109.32782357401544,-0.005677526495730502],[109.32798213770474,-0.005716585960686736],[109.32798213803541,-0.0056011071686846645],[109.32803105670096,-0.005585823351065605],[109.32813058085598,-0.005565445024281188],[109.3282098625025,-0.005658847225594338],[109.32823685208537,-0.005660545521674782],[109.32830357623817,-0.005697906507179266],[109.32833731329285,-0.005674131556004226],[109.32838454518651,-0.005635072682164424],[109.32845539301563,-0.00558072991278186],[109.32842165572718,-0.00568601932680606],[109.32833899981233,-0.005787912156221234],[109.32833225230527,-0.005825272928559102],[109.32832213103832,-0.005883012304385376],[109.32830694928798,-0.005918674832664596],[109.32830863599428,-0.005966224936570432],[109.32834237288316,-0.005998491178821124],[109.32834130662253,-0.006023894239083018],[109.32842047309697,-0.006072900722411023],[109.32844358367585,-0.00605453268187407],[109.32848069437395,-0.0060511363611156005],[109.32852117870925,-0.0060681186667574894],[109.32853636027636,-0.0060935919841700655],[109.32857853139895,-0.0061309529130105555],[109.32857743687197,-0.006170066136355051],[109.32859366034715,-0.006180108968128835],[109.3286248478478,-0.00621056209035164],[109.32864607514959,-0.006231286882663797],[109.32867974208295,-0.006224355228682381],[109.3287084185695,-0.006210769574915151],[109.32873709502998,-0.006205675011651638],[109.32876577143205,-0.00621926084854567],[109.32877251873444,-0.006249828797985871],[109.32878095286996,-0.006285491407773171],[109.32880962925587,-0.006304171900923078],[109.32884673999376,-0.00629058627456594],[109.32903735350783,-0.00645191764183737],[109.32900361632556,-0.006507958738089564],[109.32903566635652,-0.006543621432408625],[109.32900684552072,-0.006583516878135199],[109.32899518177214,-0.006599662504200041],[109.32924989538675,-0.006817035350907331],[109.329319056061,-0.006869680372031083],[109.32933513241309,-0.006852024461075196],[109.32935616690656,-0.006828923253268265],[109.32937809598876,-0.006820432236285252],[109.32941351980884,-0.006830621672747024],[109.32943376194758,-0.006849302150325089],[109.32946581219711,-0.006822130761665481],[109.32957714394297,-0.0069308171616225545],[109.32973107756943,-0.007070918375154847],[109.32975549374169,-0.007083436170345403],[109.3296834146627,-0.007171964638574682],[109.32984197799946,-0.007340088916943569],[109.32988414941046,-0.007301030034277589],[109.32987065465517,-0.007287444230396573],[109.32992463405175,-0.007239894293775685],[109.33003259207416,-0.007355373607557042],[109.33010343967634,-0.007391036481368866],[109.33012705561383,-0.00738424369321168],[109.33015573220561,-0.007350279413237454],[109.33019284288179,-0.0073621670891666335],[109.33026031687636,-0.007374054880212533],[109.33030046402853,-0.007362834335040467],[109.33032053534225,-0.00737312460470939],[109.33036703694349,-0.007410054558784974],[109.33036827514077,-0.00742839831536306],[109.33037670931974,-0.007448776982815045],[109.33039189083864,-0.007486137872530963],[109.3303767089076,-0.0075574630380997624],[109.330403698467,-0.0075727471193056724],[109.33044249605618,-0.007569350830429803],[109.33045093021443,-0.0075948241582938555],[109.33045936426758,-0.007647469001361672],[109.3304779195846,-0.007659356611942495],[109.3304846668444,-0.007696717471982456],[109.33047960608536,-0.007749362262841618],[109.33047791904733,-0.00779691240779078],[109.33049310043938,-0.007864841257003298],[109.3305437057594,-0.007919184493130307],[109.3305639479677,-0.007920882794987432],[109.33060105855964,-0.007954847341694618],[109.33063310866619,-0.007971829670596136],[109.33066515884838,-0.007970131581599047],[109.33068877482219,-0.007956545918870616],[109.33071576447843,-0.00794805492932258],[109.33076805663289,-0.00800749284054439],[109.33070395592682,-0.008094101792528615],[109.33068708747552,-0.00807881774365709],[109.33064491599696,-0.008126367724903057],[109.33073937929545,-0.008218071994165637],[109.33086251995663,-0.008095800669713623],[109.33110879945778,-0.008297889900322219],[109.33112398095936,-0.008336949030883662],[109.33111723345928,-0.008359025865436366],[109.33108855696553,-0.008362422183191814],[109.33105988052235,-0.008353930959346062],[109.33104469872075,-0.00838619707813799],[109.33113578841022,-0.00845752272071638],[109.33117121231928,-0.008452428213181939],[109.3311728993735,-0.008404878051917775],[109.33126230247007,-0.00841676597926205],[109.3312960393993,-0.008442239430807056],[109.33136182663173,-0.008440541494626402],[109.3314208662987,-0.008476204380670998],[109.33148834007358,-0.008547529937774937],[109.33157774278514,-0.008651121789019018],[109.33161147960519,-0.008702068558980154],[109.33161653998961,-0.008741127657450672],[109.33159967131022,-0.008776790216169466],[109.33159461057268,-0.008817547489574681],[109.33166545819029,-0.008856606886217139],[109.33173124523769,-0.008899062704180727],[109.33178691132542,-0.008907554061890066],[109.33183751651984,-0.008990767115841212],[109.33186113212808,-0.00906209250246784],[109.33188980848657,-0.009090962391258157],[109.33194547448434,-0.009119832406808713],[109.33195896905313,-0.009174175541429982],[109.33200451396027,-0.009197950849637263],[109.33203319030308,-0.009230217184609103],[109.33206524032717,-0.009267578199753783],[109.3321141589647,-0.009286258864070532],[109.33217657247245,-0.009294750266532927],[109.33231995438464,-0.009415324660839254],[109.33226091411636,-0.00950363188151119],[109.33228790364616,-0.00952740711060549],[109.33225585311611,-0.009595335804264749],[109.33234188215283,-0.009688738399268875],[109.33242285146149,-0.00961231883791823],[109.33249617352632,-0.009650479555739201],[109.33244309312416,-0.009729496214731608],[109.33238573997619,-0.009760063913764067],[109.3323520027352,-0.009797424614580216],[109.3324785160326,-0.009931584742444413],[109.33237899137079,-0.00999951309098914],[109.33250213103724,-0.010116691001634148],[109.33268768557633,-0.009977437788823481],[109.33273692598051,-0.009936046467083228],[109.33275578535357,-0.00986279646628501],[109.3327566759727,-0.009862796470676439],[109.33276566034753,-0.009859171477891383],[109.3327836290971,-0.009834765230100542],[109.3328087853432,-0.009788640215903742],[109.33283842597342,-0.009731655855983717],[109.33286447285256,-0.009668358970661602],[109.33289233222625,-0.009593296478779281],[109.33292466034683,-0.009505577721713846],[109.3329324768702,-0.009484222271086109],[109.33299132260629,-0.009267582589823086],[109.3330385555056,-0.009050210407012893],[109.33306723333338,-0.008756418142070947],[109.33306892054529,-0.008674903495802768],[109.33308072876379,-0.008618862223382746],[109.33310603167615,-0.008593389005135512],[109.33316900409717,-0.008384187098962428],[109.33319416034544,-0.008277468351085235],[109.33321888228923,-0.008194766790206436],[109.33336412412196,-0.007654273257144275],[109.33338942731811,-0.00755238002223139],[109.33341304374483,-0.0074267116667845684],[109.33341304407371,-0.007338404109674653],[109.33341135784134,-0.00716858187826331],[109.33343041035134,-0.0071398120874433405],[109.3334562384743,-0.007053999588108622],[109.33347483872897,-0.00743074598825379],[109.33343885218534,-0.007518298644333354],[109.33340586391651,-0.007753785335696484],[109.33335788181226,-0.007877566675011344],[109.33325192084817,-0.008262161142428023],[109.33324125756701,-0.008428544932092453],[109.33320617678471,-0.008560747832799368],[109.33316661801359,-0.00877204670767229],[109.3331239668286,-0.0089652664418077],[109.33308131552631,-0.009179955047673813],[109.33306532092969,-0.009335604352324492],[109.33302267005166,-0.009453682985961873],[109.33290666765478,-0.009783025639701784],[109.33290441842756,-0.009801139994402823],[109.33291791317552,-0.009816990132402958],[109.33296289587473,-0.009828311837312904],[109.3329696429501,-0.009896240745900443],[109.33296964268936,-0.009948319549829141],[109.33299888131025,-0.009982284136420515],[109.33294715079741,-0.01005021274624725],[109.33304611242387,-0.010136256499478361],[109.33306065235293,-0.01012552214013642],[109.33307984961976,-0.010111349418863703],[109.3332822710527,-0.01030381564111199],[109.33330926075787,-0.010294758598394124],[109.33351393132348,-0.010489489170549255],[109.33350268525875,-0.010559682299910719],[109.33355441541894,-0.010564211172117897],[109.33363538415183,-0.010611761837877265],[109.333673619192,-0.010670633757845834],[109.33389403354488,-0.010899328946165653],[109.33389113579639,-0.010970306434695595],[109.33393434785417,-0.011012218340907366],[109.33401182804346,-0.011098694011343332],[109.33407171478541,-0.011032923464679396],[109.33411219894819,-0.01109405971586589],[109.33407396329163,-0.011146138332418945],[109.33410545104776,-0.011180102968830891],[109.33421790795559,-0.011189160800388205],[109.3342853819806,-0.011216332754295268],[109.33434610835799,-0.01128426202480904],[109.33439109069397,-0.0113635126955379],[109.33441358148912,-0.011467670510830301],[109.3344270755492,-0.011601264142913108],[109.3344260957021,-0.011672258403342822],[109.33442482544955,-0.011764293550097627],[109.33455996261902,-0.01187857519753598],[109.33464973827418,-0.011954495914315064],[109.33461118742092,-0.012006647084497482],[109.33457776521459,-0.01205186027517017],[109.33511755559184,-0.012570387910669159],[109.33508156898813,-0.01262699513625886],[109.3351970242083,-0.012728637720088932],[109.33538145257309,-0.012907518509332229],[109.33543725363032,-0.012839515523223705],[109.33546692059215,-0.012803361331868917],[109.33561311397972,-0.012921105829399378],[109.33558688139982,-0.012948904804820527],[109.3355276460372,-0.013011677216824204],[109.33564010240823,-0.01311357141496539],[109.33573199547102,-0.013032388172927498],[109.33575031095583,-0.013016207294121385],[109.3358099999702,-0.01306878787166591],[109.33585826910203,-0.013111308576373671],[109.33590325162584,-0.01315659486177605],[109.3359392378553,-0.013161123701970772],[109.33623162464814,-0.013398877123657851],[109.33646930097443,-0.013167296473854248],[109.33664546909314,-0.013045649141855117],[109.33658024330302,-0.01314754220757709],[109.33651787792002,-0.013181679702637398],[109.33649477545903,-0.013215470631181427],[109.33647678212803,-0.01324490640825016],[109.33649477511183,-0.013267549528862626],[109.33652176452668,-0.013310571410311682],[109.33654875365127,-0.013396614992188223],[109.3365892375937,-0.013487187269283898],[109.33663871817832,-0.01356643811212022],[109.33666570643368,-0.013777018207955039],[109.33671518730841,-0.01381324735826898],[109.33673767812971,-0.013899290923634367],[109.33671743540573,-0.013962691184470674],[109.33664771235021,-0.013912876086064447],[109.33647002850437,-0.014143833411423142],[109.33664321146294,-0.014279692665629565],[109.33663196555716,-0.014306864184383728],[109.33676241506359,-0.014408758645976018],[109.33683888593256,-0.014404230607602634],[109.33694684548493,-0.014304602182362024],[109.33699182823575,-0.01431818831349748],[109.33703006359256,-0.014327245794819771],[109.33711103270788,-0.014329510687239347],[109.33715151698065,-0.014370268395002139],[109.33719200097387,-0.014449519216431112],[109.33734269231434,-0.01461707859207932],[109.33736518332586,-0.014673686282377339],[109.33740116910965,-0.014741615580079656],[109.33743715485808,-0.014814073482238942],[109.33752262202259,-0.01485030294535473],[109.33758559787717,-0.01487068213269924],[109.33763058048616,-0.014904646992001929],[109.33769849108529,-0.014931320196809131],[109.33765532058575,-0.014968047614756848],[109.3376800608198,-0.015013333828968821],[109.33774078758593,-0.015026920101866103],[109.33777227523264,-0.015074470672037946],[109.33782175619817,-0.015099378368112652],[109.33787573541706,-0.015128814703103486],[109.337911721437,-0.015165043805230304],[109.33797244829574,-0.015167308576425982],[109.33803767323617,-0.015196745002654593],[109.33806466287372,-0.015208066720313827],[109.33815912670323,-0.015235239074551073],[109.33822660056656,-0.015294111447977387],[109.33835030229382,-0.015448084951227854],[109.33842968742547,-0.015617572784148747],[109.33848141695586,-0.015717202492469412],[109.33849940940947,-0.01580551042294652],[109.3385398932111,-0.0159051400485488],[109.33867708992393,-0.016040999305799233],[109.3387895463048,-0.01614515814231397],[109.33884397081447,-0.016138984438763576],[109.33888276972408,-0.0161887027303862],[109.33888625865558,-0.01625158116305939],[109.33908643077055,-0.016466691595237233],[109.33911791836736,-0.01651877082680134],[109.33912016706032,-0.016573114116047654],[109.3390549412537,-0.01664557125664697],[109.33900546029493,-0.01661839920341764],[109.33893348688508,-0.016711235005266997],[109.33912916139613,-0.01684030193899864],[109.33919663650998,-0.016749730397165194],[109.33922362628833,-0.0167452020213679],[109.33920338358226,-0.016792752212206344],[109.33936756971563,-0.016964840661168695],[109.33942379857814,-0.01693766950778392],[109.33952276103054,-0.016930877451420013],[109.33957449108574,-0.016964842449292212],[109.33963521735592,-0.01704182929389297],[109.33965545912172,-0.01710522996892054],[109.33967795014837,-0.017155044843481317],[109.33970943781532,-0.017198066887168694],[109.33977466298013,-0.017204860369508936],[109.33979940371977,-0.017189010460325806],[109.3398016531975,-0.017150517316852472],[109.33984438692741,-0.01715504629762596],[109.33989161859806,-0.017200332786663424],[109.33989836570244,-0.017238826010807305],[109.33987587391051,-0.017277318978007255],[109.33988487039548,-0.017288640576217103],[109.33993885007246,-0.01726826231656199],[109.33997483624943,-0.017286377064360908],[109.34004230974026,-0.017388271337981695],[109.34004006023785,-0.017429028789881423],[109.34002881417054,-0.01746752185774032],[109.34011203177637,-0.017558094760883394],[109.34022898731547,-0.01756488871907275],[109.34033694623629,-0.017576211206191152],[109.34041332935384,-0.01761179166111941],[109.34048763842502,-0.01764640599426748],[109.34055061414632,-0.017689428347028205],[109.340593347327,-0.017757357870699788],[109.34056507270809,-0.01780393630543389],[109.3406140041069,-0.017877171479093738],[109.34071820722805,-0.018052624599996462],[109.34081082367635,-0.01821345442046701],[109.34069230406834,-0.018386835483622778],[109.34082500276628,-0.018490994750710407],[109.34087673308252,-0.01849778815241564],[109.34092396497974,-0.018518167342155452],[109.34107915509487,-0.018629119758910143],[109.34112701972873,-0.018621892140504213],[109.3411691211115,-0.018615534780024097],[109.34119386143543,-0.01864723528885934],[109.34116798136299,-0.01866807847767115],[109.34109264904363,-0.018728749315775964],[109.34113763109175,-0.01882385056526588],[109.3411668698779,-0.018837436677039722],[109.34122534764413,-0.01884423015367891],[109.3412410912253,-0.018891780717508654],[109.34148613589643,-0.0190324914991591],[109.341654071192,-0.019144198880491736],[109.3418130102243,-0.019222696370805342],[109.34186831902369,-0.019221646316484365],[109.3419719500545,-0.019219678849857792],[109.3421698733525,-0.019400825300066395],[109.3421427381218,-0.019443926243035172],[109.34210788123114,-0.01941610974351577],[109.34207090996902,-0.019488377501773835],[109.34201393189933,-0.019452148036786212],[109.3419869415595,-0.019509510194337325],[109.34209190125115,-0.01956687366346178],[109.34201992662827,-0.019757074674046585],[109.34214887702082,-0.019835571925633542],[109.34224184350023,-0.01966650464268207],[109.34248175137648,-0.019799346374340335],[109.34249974471717,-0.019784251176648917],[109.34256301605068,-0.01980047635990528],[109.34251773682617,-0.019892938086205146],[109.34276963930219,-0.020113333195015123],[109.34322546412479,-0.020388073851197203],[109.343216466815,-0.020457512525873404],[109.34341738983696,-0.02055714416145812],[109.34342638674748,-0.020526953483614253],[109.3433993973835,-0.020484686122036556],[109.34341242005725,-0.02045846592094597],[109.34342938666782,-0.020424304890362652],[109.34393919177643,-0.020644702872900194],[109.34389568461448,-0.020763325075439373],[109.34386721692184,-0.020840942179172896],[109.34429605304763,-0.02102511050880618],[109.34429821355201,-0.02099104017181689],[109.34430505114128,-0.020883213913757945],[109.34428106067185,-0.02083792748180145],[109.34428406013778,-0.02078056502203853],[109.34432904415966,-0.020683954982518408],[109.34438902151885,-0.02068395561257891],[109.34445499633415,-0.02071112801446604],[109.3445029776911,-0.020762452859430153],[109.34450597593028,-0.02082283446785029],[109.34446406661043,-0.02103701524135433],[109.34446766956158,-0.021045000585865847],[109.34463576324407,-0.021075851126112488],[109.34481271637222,-0.021112929254440607],[109.34501304449223,-0.021158147989749312],[109.3452340288577,-0.02121150737579636],[109.3454289507415,-0.021268476115850445],[109.34556958092271,-0.021306144315182116],[109.34590400289775,-0.021323715986471738],[109.34602995522948,-0.0213448509174969],[109.34609293141445,-0.02135390884327516],[109.34614391227997,-0.02134787123291639],[109.34620388995268,-0.021323719230890395],[109.34627586301357,-0.021308624601737408],[109.34635083481923,-0.021305606330447178],[109.34640781343353,-0.02129956878274744],[109.3464198091431,-0.021278435339921957],[109.34644080153006,-0.021251263830232785],[109.34651277456706,-0.0212391882783833],[109.34652476985943,-0.021257302899201483],[109.34652283638637,-0.02143426151854532],[109.34670543511227,-0.02144394487332922],[109.34671140263396,-0.021444321812248906],[109.34671969566398,-0.021335801138882768],[109.34693561439599,-0.021338822557633575],[109.34693561397664,-0.02137807063102265],[109.3472804841127,-0.021393169784698688],[109.34728348392017,-0.02130561640737065],[109.34730447625229,-0.02128448305222583],[109.34732546893723,-0.021230139781801865],[109.34734346249274,-0.02119994914354673],[109.34737944925104,-0.021172777781163526],[109.34745442116238,-0.02116372133578067],[109.34750840087133,-0.021163721914894087],[109.34752039613865,-0.021184855627821932],[109.34752039562615,-0.02123316096318317],[109.34751139868705,-0.021263351700802003],[109.34752339353491,-0.02132373349935163],[109.34753838738322,-0.02137203899727932],[109.34762835366625,-0.021362982721027796],[109.34764034973806,-0.021308639345336642],[109.34766434062529,-0.02131769685550224],[109.34772925338189,-0.021312599464729652],[109.34772013383554,-0.02124317690573855],[109.34776330443214,-0.021224106325989773],[109.34778729564174,-0.0212029729969814],[109.34784127526365,-0.021212030828876932],[109.34787126374017,-0.02123618382326901],[109.34788325852703,-0.0213026038007013],[109.347886256853,-0.021353928261389203],[109.347913246552,-0.021369023973783322],[109.34794923280693,-0.021390157952346323],[109.34800621120911,-0.021408273075218382],[109.34851348646232,-0.021337563087317973],[109.34877992163138,-0.021323747076243415],[109.34917877290462,-0.021239216975833444],[109.34917245499174,-0.021183239323342394],[109.34916377993346,-0.021106377031704846],[109.3493946933746,-0.02110336041325593],[109.3493886967029,-0.02100071141439908],[109.34945467168228,-0.02102788389369493],[109.34949365652713,-0.02107920877889516],[109.34952664422441,-0.021073170957846256],[109.34954017951611,-0.02109361119507184],[109.34955663250562,-0.02111845757642657],[109.34973356647626,-0.02109128768652326],[109.34976355526962,-0.02108826891978025],[109.34997047783241,-0.02107921386703259],[109.35025537267161,-0.020931281611899583],[109.35045329849551,-0.020937321884265177],[109.35053726734347,-0.020910150981173704],[109.35068421224457,-0.020919209800709743],[109.35069021066084,-0.020855809009712508],[109.35085514940573,-0.020810524421671108],[109.35086414559981,-0.020852791756366364],[109.35099309738285,-0.020849774027893366],[109.35116103559446,-0.020750145861134953],[109.35128998755276,-0.020732032679135738],[109.3516978353503,-0.020704865146397758],[109.35169783696568,-0.02054787247442469],[109.35196473753342,-0.020517684344645758],[109.35200439118803,-0.020467414646826103],[109.35211859132839,-0.02045372614991334],[109.35213746633008,-0.020451023016553285],[109.35232970070889,-0.020433835522013905],[109.35237236675249,-0.020430255393394294],[109.35241456907761,-0.020559956283051566],[109.35297835891252,-0.020532790314334574],[109.35297835957293,-0.020468161344230865],[109.35297835980668,-0.020445236652138928],[109.35397522104789,-0.020250635369086056],[109.35401141439988,-0.02024356991754123],[109.35401297678683,-0.020173528932027215],[109.35410538423973,-0.02016033411502451],[109.35443581988547,-0.02011315135808401],[109.35443991986028,-0.019970385862509682],[109.35445081946595,-0.019590848240541758],[109.35448359073261,-0.018998714757907226],[109.3545546781965,-0.018698147838886868],[109.35460859402939,-0.01889237790493689],[109.35460228514901,-0.019054070543014716],[109.35455467450323,-0.01909063008531571],[109.35455067560902,-0.019130884636123308],[109.35454667663693,-0.019179190104568745],[109.35452268514658,-0.01922346991990975],[109.35451868621101,-0.01926774992863285],[109.35454267650377,-0.01934825934022288],[109.35454267588204,-0.01941266668279945],[109.35455467110408,-0.019444870471872475],[109.35459482460074,-0.019509164125212197],[109.35459601927012,-0.01955341147059367],[109.35456266679651,-0.019581736154778887],[109.35456266632495,-0.019630041662222698],[109.3546426356835,-0.019718602555146566],[109.35467006587785,-0.01971282294416363],[109.35467762305426,-0.019678222515829638],[109.35474734725447,-0.01966237296224251],[109.35479907799903,-0.01966237347558127],[109.35484309910697,-0.01967636440487731],[109.35486655239707,-0.01971218920729051],[109.354911535456,-0.019732568544345117],[109.35495202032301,-0.019739361910802628],[109.35497901047951,-0.019718983289415005],[109.35497901072398,-0.019694075756895687],[109.35501949581459,-0.01967822591090871],[109.35506447905475,-0.01968049067886809],[109.35507797421089,-0.019662376242868974],[109.35508301884951,-0.01962581270230119],[109.35532851282827,-0.019574086486833252],[109.3553501236127,-0.019596713617454027],[109.35537936278214,-0.0195921852633289],[109.35542344026467,-0.01955747883833027],[109.35544309402962,-0.019554054499914028],[109.35549631913231,-0.019608036671430264],[109.35555029888339,-0.019626151779660102],[109.35558853473282,-0.01961935919271871],[109.35562677084809,-0.019585394742964106],[109.35563126948433,-0.019553694281075003],[109.35564116360624,-0.01951954420102592],[109.35564701415902,-0.019499350710723107],[109.35570999107581,-0.019465386500551813],[109.35593490778253,-0.019433688197505888],[109.35602712298771,-0.01948803283728962],[109.3560676078784,-0.019494826202270683],[109.35615532550669,-0.01947218383978241],[109.35619356116976,-0.019485770150413754],[109.3562452922812,-0.01945180581994243],[109.35628802666956,-0.019424634367478513],[109.35633300989491,-0.019431427776084975],[109.3563667472325,-0.019445014042988557],[109.35640948162325,-0.01941784258870024],[109.35644097008182,-0.019401992637300747],[109.3564994484087,-0.01939746456359679],[109.35653318585857,-0.01939972921642353],[109.35658491693357,-0.019370293523740815],[109.35664339563505,-0.019327271957032724],[109.35667488355202,-0.019368030079136605],[109.356728863381,-0.019381616545004324],[109.35685964080635,-0.019387585898130336],[109.35691104608352,-0.019347653474667013],[109.3570774845138,-0.01932727618583158],[109.35893363352243,-0.018953722455000186],[109.35911356737994,-0.01890608946484216],[109.35910956848116,-0.018946344108563374],[109.35932548870741,-0.018934269761711312],[109.35932948677365,-0.018982575423369605],[109.35938546606597,-0.0189825759581672],[109.35939746231041,-0.018910117635020318],[109.35962937710609,-0.01884973780345417],[109.35998524580872,-0.018821562888850844],[109.36016517946359,-0.01880546271124471],[109.36017317781906,-0.018664571325180394],[109.36043308209764,-0.018632369998264835],[109.3605130520756,-0.018684701870953554],[109.36053704340146,-0.018664574741052754],[109.36068898710434,-0.018684703524117507],[109.36069298521689,-0.018728983746920367],[109.36074096742549,-0.018737035141812772],[109.36074496557454,-0.01877728989438068],[109.36081294044075,-0.01878131600783223],[109.36082893509766,-0.0187209340839861],[109.36092090107343,-0.018728985893325077],[109.36091690213745,-0.018773266045957207],[109.36118480352701,-0.018745090267825643],[109.361192801062,-0.018692759202002713],[109.36128076875382,-0.01867665813829821],[109.36128476675566,-0.018733014792028997],[109.36158465658333,-0.018684711937477356],[109.36158065850495,-0.018636406221746813],[109.36169661581792,-0.01862835636096734],[109.36168462116818,-0.018527719413840637],[109.36176059352465,-0.018487465385744098],[109.36193652862676,-0.01849149249412016],[109.36198051204445,-0.01853174764272841],[109.36198051145166,-0.018596155226601744],[109.3620995495801,-0.018626230940715638],[109.36217585692665,-0.018612991798566122],[109.36264233510893,-0.018584510515222634],[109.36265926195871,-0.018533389311080475],[109.36272898622109,-0.018540182950021074],[109.3627701049737,-0.018576709399338406],[109.36295562254747,-0.018565382438695897],[109.36302213815908,-0.018561319936415015],[109.36302821167446,-0.0185609493020454],[109.36303280094401,-0.018555952731530878],[109.36307910759581,-0.01851112730341066],[109.36310909713917,-0.01844772633085425],[109.36316607630773,-0.018432631322182827],[109.36320506226434,-0.0183994215021386],[109.363253045377,-0.01831488693756821],[109.36329203127849,-0.0182877153286965],[109.36334301276707,-0.018260543828708828],[109.36333101671549,-0.018311868547008392],[109.36331602168377,-0.01837225055953622],[109.36330702458122,-0.018417537089144648],[109.3633550060162,-0.018517168082897054],[109.3633819962802,-0.018496034580422985],[109.36343297774636,-0.018471882192302898],[109.36349295584888,-0.01845376810175476],[109.36358892057925,-0.018450749882815597],[109.36368188616868,-0.018474903608393427],[109.3637148737615,-0.018505094995562982],[109.36372298776034,-0.01854185567116963],[109.3637388639404,-0.018613783112160567],[109.3638708153409,-0.01862284167001646],[109.36388281137557,-0.01857453604806666],[109.3639877727346,-0.018580575243609867],[109.3639877723453,-0.018622842763133186],[109.36412572155783,-0.018631901378560273],[109.36414600715749,-0.018574349280038087],[109.36420009128061,-0.018582304320317416],[109.36458829863328,-0.018582304317596315],[109.36459055252269,-0.018441701828606303],[109.36468651741615,-0.018426607168431565],[109.36476748792985,-0.01839943592936706],[109.36484545976715,-0.01834811178178923],[109.36491143570895,-0.018329997729357898],[109.36496541616576,-0.01829980712544559],[109.36507337661827,-0.018290750785729244],[109.36567615466785,-0.01837831053591038],[109.36573913173713,-0.018360196449021194],[109.3657931121892,-0.01833302494440652],[109.36578711405967,-0.018369254224400115],[109.36579011260307,-0.018408502698527094],[109.36580810559236,-0.018453789533973686],[109.36585608783342,-0.018471904646053403],[109.36592806139028,-0.018477943535403205],[109.36603302335332,-0.01842963872140499],[109.36610199807089,-0.018429639358541985],[109.36614098342378,-0.018468888172048076],[109.36618896600358,-0.018450773944976448],[109.36627293506656,-0.01846888939341047],[109.3663329129786,-0.01848096639690719],[109.36638389377399,-0.018538330000170578],[109.36640435555576,-0.018564423427023236],[109.36642887676658,-0.018595693550510394],[109.36646903427001,-0.018565747357180504],[109.36650984765777,-0.018535312057898885],[109.36653383925616,-0.018493044707197415],[109.36654583527563,-0.0184477581321918],[109.36659381778252,-0.018438701238314092],[109.36663580223957,-0.018456816301468372],[109.36666878985434,-0.018490026845080255],[109.36670477634325,-0.018526256530222468],[109.36671138016838,-0.018572797918431357],[109.36671976988131,-0.018631925613002212],[109.36679774130049,-0.018634945453656893],[109.36680835321687,-0.018578478732120717],[109.36689664353503,-0.01858365089983707],[109.36690626490743,-0.018543146563446473],[109.36693662919491,-0.01849899231787269],[109.36698048793617,-0.018521069988604547],[109.36702603370068,-0.018527863415758256],[109.36710363040557,-0.018515976377485813],[109.3671643581319,-0.01852107169443618],[109.36724701531907,-0.018527865466557686],[109.36732123803392,-0.018541452166452678],[109.36737353139955,-0.01854145265204957],[109.36747137105391,-0.01849220426650184],[109.3674899270911,-0.018456541156142446],[109.36758607989707,-0.018403896244727228],[109.36763499984292,-0.01836653515908685],[109.36765692975301,-0.018318984313810113],[109.36767043839338,-0.01824420384652216],[109.36759995064924,-0.018228179315134572],[109.36759070579667,-0.01821430961830965],[109.36759402198469,-0.018170913768759657],[109.36765331913296,-0.01813970423267154],[109.36764174969953,-0.01810840096836264],[109.36762319425983,-0.018077832270450504],[109.36761307338602,-0.01803028113289898],[109.36761813432213,-0.017998014397412453],[109.36764006383127,-0.017994618091732646],[109.36766536706143,-0.017996316571413762],[109.36768213347993,-0.01799738233968352],[109.36772440811914,-0.01797933458609498],[109.3677480247385,-0.017950464518886714],[109.36773621593825,-0.01802009273423562],[109.36772440746914,-0.018052359410637132],[109.36771428562454,-0.018113496381220347],[109.36771259849822,-0.01814066839350868],[109.36771934574101,-0.018172935237626427],[109.36772271865117,-0.01826803736533839],[109.36771597070455,-0.01831389010023388],[109.367722717806,-0.01836144121059736],[109.36773283867257,-0.01840899235236249],[109.36774464648317,-0.018449750503246685],[109.36775308065074,-0.018476922609266054],[109.36776488824246,-0.018541456285700836],[109.36785510651333,-0.018554432325168936],[109.36795242239396,-0.018607139187907823],[109.36798755570184,-0.018663732493613083],[109.3680263535793,-0.01871128391185678],[109.36803310079847,-0.018745249014990282],[109.36803984806433,-0.018774119362336302],[109.36810226263883,-0.01878600771330887],[109.36814106102052,-0.018779215069769435],[109.3681798595918,-0.018752043400614562],[109.36821528431784,-0.018733362959462714],[109.36822823014921,-0.01870811194530776],[109.36866373188658,-0.018760413703317762],[109.36901696625624,-0.018814898069208986],[109.36917354800495,-0.018839060971364337],[109.36918180783597,-0.01881919669334156],[109.36917955932867,-0.018746737878789613],[109.36914807142831,-0.018681071802998273],[109.3691683143527,-0.018647106932952393],[109.36921104883879,-0.018638049982307732],[109.36928302406496,-0.0184750183597697],[109.36933250660542,-0.01840935303053927],[109.3693572481524,-0.01834595180851437],[109.3693572490928,-0.0182417922837571],[109.36937974147575,-0.0181761267008921],[109.36942022721068,-0.018119518629812717],[109.36947195884157,-0.018062910658016535],[109.36953493649023,-0.017992716758413786],[109.36957767124213,-0.017954223401298937],[109.36952594254247,-0.01767797373910608],[109.36952144475553,-0.01761230790658037],[109.3694629665817,-0.01755569895106862],[109.36939774024324,-0.017571548741100937],[109.3693392614446,-0.017587398589403593],[109.36929427791915,-0.017580605181403884],[109.36923130154956,-0.017505881494934643],[109.36924929549065,-0.01744700888080986],[109.36928528282438,-0.017392665096953],[109.36934826025009,-0.017345114557702344],[109.36937974891481,-0.017327000130726702],[109.36941123792771,-0.01726812762718402],[109.36959791920147,-0.017340588048082747],[109.36962715898062,-0.017288508532255387],[109.36952594665426,-0.01720019848733047],[109.36967889172496,-0.017098304599352316],[109.36969688554375,-0.01705301799561147],[109.36969013859417,-0.01698282346403142],[109.36972162699534,-0.016996409758912655],[109.36978685356719,-0.01695338789166038],[109.36988581825268,-0.016860550868769572],[109.37001177311723,-0.01676544972476781],[109.37005450751889,-0.01676771442127213],[109.37011073683323,-0.01679035827616574],[109.37012198245215,-0.016824323445986195],[109.37011523446006,-0.016878667509723257],[109.36996903652724,-0.017025848258124025],[109.36990830771543,-0.017139064647097503],[109.36987007062031,-0.01726133857547002],[109.36981833857529,-0.017367762015788515],[109.36980034480708,-0.017406255605451143],[109.36982733473072,-0.01743342789667408],[109.36979359646827,-0.017499093404276835],[109.3697598583807,-0.017544379868066923],[109.36972387067992,-0.017639481744512128],[109.36973061800205,-0.01766438952117344],[109.36972611932669,-0.017700618888024443],[109.36969687951557,-0.017754962738318104],[109.36966539022505,-0.01784327163462341],[109.36966538986584,-0.017884029715826658],[109.3696811339433,-0.017904408897396782],[109.36970137643998,-0.017917995105957492],[109.36973961225416,-0.017945167503712726],[109.36975085785163,-0.017979132673742078],[109.3697373628537,-0.017970075200699345],[109.3696968776196,-0.017970074836867314],[109.36966988732333,-0.0179859249592545],[109.36964289664469,-0.018044797499743873],[109.36962040462691,-0.01806970501246106],[109.36960016176842,-0.018096876882778515],[109.36961140730187,-0.01813763506464795],[109.36960915785873,-0.0181670714353732],[109.36958666575846,-0.018201036297347234],[109.36955067874382,-0.0182168863337729],[109.36952143922746,-0.01823726510649195],[109.3695101930037,-0.018273494406603093],[109.36947720460594,-0.01832142258494622],[109.36945321256552,-0.01840897675243416],[109.36944421543613,-0.018454263421466787],[109.36945021253139,-0.0185327605136332],[109.3694292198313,-0.018572008837003568],[109.36940822704732,-0.018620314509761655],[109.36940522780824,-0.01865654388265162],[109.36943221790473,-0.018662582368061384],[109.36945920736085,-0.01873806054035652],[109.36947720020875,-0.01880146216265111],[109.36949819221364,-0.01883769176249809],[109.36952818118891,-0.01884674939582535],[109.3695791623942,-0.018867883695329473],[109.36963614172237,-0.018855807764707577],[109.36970211788271,-0.01883165544941188],[109.36974410257031,-0.018831655844807827],[109.36978908602494,-0.01884675185499556],[109.36983706835859,-0.018864867011511053],[109.36986705711371,-0.01889807758613014],[109.36989820271832,-0.018950856753528065],[109.3699445285315,-0.018933835991669472],[109.36997320592464,-0.018896474682989297],[109.37003056014146,-0.01888288919537033],[109.37008791404341,-0.01890326878173021],[109.3701267124006,-0.018903269148421522],[109.37014020778216,-0.01887100245405544],[109.37018406711171,-0.018837037791393993],[109.37022117839608,-0.018857417187147348],[109.37031733022131,-0.01892534825102269],[109.37037299738851,-0.018930443539679265],[109.37045228106349,-0.01892365127373878],[109.37051132221134,-0.0189066692911701],[109.37057711077605,-0.018903273404591255],[109.3706428992321,-0.01891176529726435],[109.37073905125074,-0.018961015580638414],[109.37080483920283,-0.019023851615017573],[109.37084363693565,-0.019091782159217915],[109.37089424289927,-0.01915631631024461],[109.3709364148672,-0.019174997513030874],[109.37097690014281,-0.019173299646463162],[109.37102750668622,-0.01917669664037479],[109.3710578704716,-0.019193679477023343],[109.3710949818653,-0.019203869360516917],[109.37114896203882,-0.019222550679543798],[109.37122318489438,-0.019236137430022518],[109.37125186179608,-0.019253120252971417],[109.3712687303826,-0.01928199074586636],[109.37130246808834,-0.01928368932567488],[109.37133451881155,-0.019295577418051848],[109.37143741839942,-0.019344827801670163],[109.37147959066867,-0.019332940424800635],[109.37152007587441,-0.019339733835625306],[109.37163815752936,-0.019380493097747108],[109.37174274430978,-0.019399174916788147],[109.37180853306204,-0.01938049474701569],[109.37184227116562,-0.019341435203261096],[109.37188275663763,-0.019321056531186657],[109.37188781789472,-0.01925822113503791],[109.37189625253711,-0.019236143897570224],[109.37189625210196,-0.019281996790049393],[109.37190806009832,-0.01930407422248293],[109.37192492873828,-0.019327849959342093],[109.37192998900959,-0.019368608135499347],[109.37194517064874,-0.01940427164402359],[109.37195191800038,-0.01942465077328941],[109.37198059469952,-0.01946371092446632],[109.3720531302408,-0.019524848824222302],[109.37211385783742,-0.019558814525553133],[109.37213072660715,-0.01956900422313216],[109.37216952583731,-0.019482393571411235],[109.37223025382958,-0.0194756011399508],[109.3722656774744,-0.01957749681977239],[109.37227917225836,-0.019609763808131547],[109.37228760657817,-0.01962165167991537],[109.37230447582479,-0.019582591965914057],[109.37233483988847,-0.019572402728921117],[109.37238882017422,-0.01958259279058203],[109.37247485093873,-0.01963184304893208],[109.3725338917415,-0.019657317464856324],[109.3725844983237,-0.019660714473190843],[109.37263173095161,-0.0196827922634704],[109.37265872071897,-0.01972694718262205],[109.37268065000572,-0.01975242123766662],[109.37270089250441,-0.019767705740905205],[109.37271270094672,-0.019743930273912788],[109.3727430650834,-0.019726948013188392],[109.37274475157434,-0.01976770617368622],[109.3727616200836,-0.019805067972339694],[109.37280716561118,-0.01984922307991022],[109.3728527111055,-0.019896774701590098],[109.37288307472959,-0.01993243838147033],[109.37288644832107,-0.019951119232300037],[109.3729120755896,-0.019994781727363155],[109.37293030665954,-0.020025842939808566],[109.37292355879119,-0.020058109739150808],[109.37291681090548,-0.020092074794420586],[109.37291006296877,-0.02013113461784612],[109.37291343633925,-0.020171892799044914],[109.37299440672012,-0.020193970944989502],[109.37306525598119,-0.020195669915292185],[109.37310405417668,-0.02021774763822251],[109.37308212438386,-0.020243221261169002],[109.3730888717819,-0.020258505635923175],[109.3731883977131,-0.020302661307755775],[109.37327105519536,-0.020304360401689203],[109.37322775770762,-0.020374460213490903],[109.37324575090413,-0.020401632499150814],[109.37322175924749,-0.02043786172476147],[109.37345267419927,-0.02056164811596322],[109.37347366704047,-0.020516361488322903],[109.37350665519361,-0.020504285334303842],[109.37360877561103,-0.020303688085877142],[109.37362961301102,-0.020262756743946116],[109.37368359355065,-0.020250680796878067],[109.37365396900891,-0.020325239108705897],[109.37364658650617,-0.020344361690870748],[109.373730087095,-0.020381618047539976],[109.37373759874883,-0.02036511897137608],[109.37381358989232,-0.020198207151210523],[109.37383066944577,-0.020217312713590764],[109.37383066914136,-0.020247881338093767],[109.37382402667585,-0.020282270973426116],[109.3738373104339,-0.0203309898532768],[109.3738581854084,-0.020357737611741387],[109.37388380494745,-0.020365380028255067],[109.37391891331997,-0.020364425115337186],[109.37396256159398,-0.020360604480407423],[109.3740081074844,-0.020370157638945535],[109.37401949381822,-0.020386397337931562],[109.3740194934346,-0.02042460812209528],[109.37403182855628,-0.02044944525767302],[109.37406693673901,-0.02046759573864962],[109.37411543478153,-0.020467684684664828],[109.37412938350484,-0.02055194634261717],[109.37428102780326,-0.020624259799844058],[109.3743133621715,-0.020553731742788288],[109.37435834582361,-0.020558260890169593],[109.37438308653705,-0.02058996194827388],[109.37443931604686,-0.020601284241801444],[109.3744820504708,-0.02061034205397827],[109.37455177495627,-0.02063525054757003],[109.37464623995142,-0.020712239197665586],[109.37478118996064,-0.020820929085337538],[109.37482842234385,-0.020870745136554104],[109.37485541245319,-0.020882067135924443],[109.37495662589563,-0.020873010814263484],[109.37495887459245,-0.020920562058046193],[109.37497686777427,-0.02094999871572158],[109.37500385776852,-0.02097264243637334],[109.3750353463445,-0.020974907109481827],[109.3750713332224,-0.02098396486153748],[109.37511406761146,-0.020997551372548412],[109.37516354892618,-0.021072275244355277],[109.37520853247908,-0.021088126125548258],[109.37525126687035,-0.021101712639685705],[109.3753299882385,-0.02111529953306322],[109.37539071619146,-0.021122093205039986],[109.37544244770723,-0.0210994503058325],[109.37545144475696,-0.02107001392345642],[109.37547393699367,-0.021033784649071324],[109.37551442271969,-0.02099755556216262],[109.37556165577121,-0.02098396998931096],[109.37562238422171,-0.02094321242191968],[109.3755211688242,-0.02113794498942981],[109.37562238159465,-0.021196819014476627],[109.37563812549757,-0.02123531303889523],[109.37568085966052,-0.021271543005317292],[109.37569885289129,-0.021296450987343805],[109.37570784932865,-0.0213258875635606],[109.37572584251147,-0.02135532423576948],[109.37574833425735,-0.02136664619867544],[109.37577982260682,-0.021391554326182283],[109.37580456330133,-0.021425519761598524],[109.37583605153145,-0.02146174961482958],[109.37586753992892,-0.02148212905519853],[109.37591477282473,-0.02148439390561792],[109.37593951366308,-0.021504773274835763],[109.37595300861578,-0.021520623834047202],[109.37600249050865,-0.021541003469575853],[109.37607446422301,-0.02156591203789076],[109.37612169683548,-0.021595349032124254],[109.37616892944865,-0.021624786027728035],[109.37623640489028,-0.021640637171408805],[109.37629938224887,-0.02162931612354107],[109.37635111355316,-0.021629316680836785],[109.37640059557525,-0.02163837459567367],[109.37643883151766,-0.021661018462713417],[109.37647031989856,-0.021683662257739073],[109.37651288865358,-0.021705760281342155],[109.37661426709386,-0.021758387220113782],[109.37670873354998,-0.02170404394441004],[109.37672920983692,-0.02163120978177955],[109.37674247264,-0.02158403397952329],[109.3767987036717,-0.021457231213268226],[109.37681669760241,-0.02141647317889184],[109.3768369422604,-0.021228532681210856],[109.37685493785384,-0.02102700608035497],[109.37687448023792,-0.020777149857236946],[109.37687448167607,-0.020635769754528105],[109.37686815628703,-0.020591190378032864],[109.37686183428856,-0.020207808235347395],[109.37685551014783,-0.020035859399764117],[109.37687247595173,-0.019710147550956517],[109.376925513104,-0.01952925746646637],[109.37705841266066,-0.019308605316690933],[109.37705526248561,-0.01924357876765226],[109.37705241599645,-0.019184821000664935],[109.37723702585386,-0.01880685717487028],[109.37731932472326,-0.018638361263221503],[109.37738830109619,-0.018499481980254143],[109.377406874581,-0.01842865504263462],[109.37739429983431,-0.018399850786161503],[109.3774002976971,-0.018396831712274568],[109.37743754098904,-0.018402003686203722],[109.37753590482117,-0.018316518301156694],[109.37754424703,-0.018254933967685953],[109.37764621118734,-0.018149265373911233],[109.37769419425378,-0.01810699799827785],[109.37776616914779,-0.018010386508385594],[109.37780515585811,-0.017922832105627076],[109.37782614897577,-0.017844334928024713],[109.37782615099923,-0.017611861962967282],[109.3778291514242,-0.01743675248283914],[109.37784414645478,-0.017385427412363985],[109.37795211332792,-0.016691028537019655],[109.3780510788487,-0.01654309200091385],[109.37820316631749,-0.016419574767829785],[109.37840795253585,-0.01625325843003557],[109.37847058201316,-0.016195669300119096],[109.37854103055248,-0.016130890373206207],[109.37856223954202,-0.01614258331619506],[109.37861187971508,-0.01616995094373289],[109.37873165034028,-0.016008617106045248],[109.37871047503788,-0.01597109671404011],[109.37868947861834,-0.015933893285112483],[109.3786608016751,-0.015905022620782885],[109.37862369050869,-0.015845583193259433],[109.37857814481454,-0.015794635006347164],[109.37855284153711,-0.015781048720227606],[109.37852416440984,-0.01577595371252593],[109.37843307224907,-0.01577425473687019],[109.37836897073196,-0.015725004671955915],[109.3783217379918,-0.015694435609642097],[109.37826101024724,-0.015646883836876062],[109.37825932372004,-0.01559933252521755],[109.37824751565851,-0.015575556784398594],[109.37816991865789,-0.015572159661956344],[109.377878086506,-0.015556873057800595],[109.37783928801242,-0.015555174497179948],[109.37767059901797,-0.015534794069401498],[109.3775913153811,-0.015500828254458093],[109.37751371876708,-0.015449879854864028],[109.37744961728478,-0.01539893156257549],[109.37742600123053,-0.015342888802924856],[109.37741588038116,-0.01527665658756115],[109.37741925451976,-0.015229105334528687],[109.37743612371113,-0.015191743743122134],[109.37747492262712,-0.015135701456479415],[109.37751581112954,-0.015096452582672356],[109.37761999631117,-0.014996445219212038],[109.37766722948284,-0.014967575148950831],[109.37770940183113,-0.014959084162097241],[109.37774482667669,-0.01494210182351541],[109.3777751492475,-0.014884141454856852],[109.3778083752942,-0.014873187264338603],[109.37792599146769,-0.01480954451291973],[109.37796647706489,-0.014782372644632735],[109.37797322486142,-0.014750671833053145],[109.37802045781248,-0.014752936526996583],[109.3780607885048,-0.014764537561433956],[109.3780927474779,-0.014746835621384461],[109.3781660518589,-0.014713114014880933],[109.37820489198499,-0.014660099633606273],[109.37826786939647,-0.014644249660030905],[109.37836908297956,-0.014635193006656862],[109.37840507013941,-0.014617078486914459],[109.3784657984809,-0.01458537805946452],[109.37858500633268,-0.01447216152841498],[109.37868397192345,-0.01429554309446221],[109.37880093103787,-0.014116660421202161],[109.37887740436763,-0.013989857456227172],[109.37887740483279,-0.013921927008850851],[109.37889314940938,-0.013885697545592776],[109.37892014005814,-0.013831353372895068],[109.37889764822016,-0.013822295825094038],[109.37887515621348,-0.013838146108227818],[109.37887290734585,-0.013790594779668734],[109.37888865198113,-0.013745307922435744],[109.37889090158248,-0.013684170534729019],[109.37887065941894,-0.01360265386034128],[109.37885266623177,-0.013552838077796281],[109.37878294166245,-0.013505286296903996],[109.3787132169599,-0.01347811365184894],[109.37862999689708,-0.013484906137869943],[109.37859400972842,-0.013505285027891976],[109.37856027179477,-0.013518870888589994],[109.37850179283727,-0.013523399191026677],[109.37842981873005,-0.013530191750107735],[109.37838483474683,-0.013559627967341613],[109.37835486435681,-0.013564494271913259],[109.37833842303752,-0.01356716385566656],[109.3782870254864,-0.013601091363901386],[109.37826903048484,-0.01363979364374237],[109.37824313491386,-0.013695487863529095],[109.37829036732256,-0.013779269046017823],[109.37827012461948,-0.013779268907258977],[109.37822289216548,-0.013702280768122781],[109.37819140347163,-0.013709073595878453],[109.37796121567825,-0.01384583963351223],[109.37786966032688,-0.01402768708345877],[109.3777889726355,-0.014039864759454167],[109.37778422079558,-0.014044339925572087],[109.37774831074262,-0.014078159130523706],[109.37766734004691,-0.01406457248194538],[109.37759086784052,-0.014035135438267026],[109.37754363524157,-0.01398305513322124],[109.37746266546566,-0.01383587203725],[109.37744467249608,-0.013756619781172047],[109.37745142056441,-0.01368189638823149],[109.37748066072493,-0.013575472293673459],[109.37751214994869,-0.013487162984775274],[109.37760661669849,-0.01336036019711897],[109.37773257186424,-0.013267522809337108],[109.377867523686,-0.013190535898604843],[109.37796423927335,-0.013118077422357108],[109.3781126866151,-0.012982217548086693],[109.37828137767599,-0.01268445693131251],[109.37831736547707,-0.01255966644525324],[109.37830537066469,-0.012418773630593608],[109.37826138708202,-0.012326186703324823],[109.37819341175756,-0.01229800774008233],[109.37804546493005,-0.012326185379209261],[109.3778255440973,-0.012350337065700887],[109.37766560155045,-0.01239059113843397],[109.37751765458846,-0.012446947299865091],[109.377345716714,-0.012434869719944822],[109.37725375059587,-0.012322155017881479],[109.37719777155594,-0.012197364030908738],[109.37720976796918,-0.012072573459381737],[109.37723775893075,-0.011891425915619681],[109.37734972005133,-0.011625743252553812],[109.37738970614585,-0.011533156868555465],[109.37741769676938,-0.011404340866920737],[109.37748167466498,-0.011227219001197837],[109.37760563057653,-0.011110480035840479],[109.37773758323344,-0.011062174696839107],[109.37782555169738,-0.011025945628110037],[109.37785754044181,-0.010973614226216675],[109.37783354944138,-0.010909206000707867],[109.37778556705051,-0.010852848658891185],[109.3776416194089,-0.010772337771046955],[109.37752166303225,-0.010707929043442123],[109.37747368047462,-0.010683775756555111],[109.37736971831141,-0.010623392629111305],[109.37722177161062,-0.010643519370153644],[109.37710581290462,-0.010752207375847114],[109.37700584868074,-0.0108125894044664],[109.37696186437172,-0.010848818705090689],[109.37686589918056,-0.010820639659005652],[109.37682591370861,-0.01080453742801297],[109.37676993382259,-0.010824664645743137],[109.37673794539947,-0.010820638969610908],[109.37668596439191,-0.010780383653461017],[109.37664198051672,-0.010736102878601267],[109.3766099924974,-0.010655592638557653],[109.37660599417345,-0.010611312079425115],[109.37655801140578,-0.010631439342586877],[109.37651802579137,-0.010643515640704137],[109.37647004321498,-0.010627413373638463],[109.37647004382126,-0.010510673781663534],[109.37645005152248,-0.010418087104901776],[109.37635008826585,-0.010297321498281511],[109.37629011059326,-0.010168505100648848],[109.37622613432015,-0.010047739696064689],[109.3761600845917,-0.00995269277745946],[109.37599481109663,-0.00993658994918734],[109.37587218890738,-0.009909752662334147],[109.37580288116284,-0.009802405604524144],[109.37576556199681,-0.009662854694547699],[109.37580288226195,-0.009571610165906774],[109.37589351637345,-0.009523304573923112],[109.37593083655997,-0.009448162045275526],[109.37598415083653,-0.009399856269829627],[109.37609077929213,-0.009324714057412165],[109.37620273925397,-0.009228102514148058],[109.37628804228272,-0.009110021490507549],[109.37636268244798,-0.009002675083619694],[109.37629870473303,-0.009190531595455924],[109.37625605304535,-0.009287143466130247],[109.37614409287927,-0.009426693702235324],[109.3760641216198,-0.009464264682024718],[109.37605878996385,-0.009517938021551415],[109.37606945254846,-0.009566244100533085],[109.37605878938263,-0.009641386760287439],[109.376101440398,-0.009689692994327793],[109.37619207398863,-0.009754101473660855],[109.37632535890862,-0.009802408155814643],[109.37641066109934,-0.009866816621159317],[109.37650662536625,-0.01008151059922676],[109.37665057217015,-0.010317674195952035],[109.37670388547485,-0.010467959939213985],[109.37670388480822,-0.010596776055738829],[109.37671987860939,-0.010677286213647922],[109.37674120412606,-0.010698755680146221],[109.37681051239498,-0.010704123387853464],[109.37702376977113,-0.010500165640728148],[109.37717304975507,-0.010392819632192983],[109.37729034080074,-0.01038208555945678],[109.377524922804,-0.010381919042303334],[109.3776478779435,-0.010478531810409574],[109.37776183634722,-0.010572125413633001],[109.37780682010464,-0.010575144779685118],[109.3778331637562,-0.010513812290934952],[109.37785480285976,-0.010563068514308906],[109.37787579500554,-0.010617412955547035],[109.37789978611586,-0.010662700025218554],[109.37794776865226,-0.010692891575805791],[109.37796521235067,-0.010700618640950196],[109.37782887906175,-0.008934577725035354],[109.37694939471416,-0.0062504527121922055],[109.37651066031478,-0.005798983978125225],[109.37641734782707,-0.005331765203261899],[109.37613606658418,-0.0047642183392838456],[109.37577381657708,-0.004099983947207114],[109.37596414468753,-0.003773265221677468],[109.37599991032296,-0.003486530837620033],[109.37580645720115,-0.0031947808488847285],[109.37579000408695,-0.002911499593498449],[109.37608820719551,-0.0027913277056123217],[109.37611080095584,-0.002583358948696445],[109.3757442853342,-0.00225257771632418],[109.37513422170797,-0.002090468243796129],[109.37422616031157,-0.0014584839405611862],[109.37335031655672,-0.0006566089690434833],[109.37315833218057,-0.0003316870821545239],[109.3730705125311,0.0002832870030314429],[109.37265738188047,0.0010571118625172004],[109.37229741945725,0.0019767908234275245],[109.37207070718021,0.0030206566893495085],[109.3717539643944,0.0040927972981457065],[109.37144942831048,0.0057723757525926025],[109.3712480665876,0.006882922314019161],[109.37077358668479,0.007643837797856844],[109.37051050408479,0.009090437929947797],[109.36984834780725,0.009276172303101975],[109.36966094157613,0.010245141042669378],[109.369908707209,0.011507031686198646],[109.36986498845825,0.012410281668936677],[109.37021692914267,0.013088060010999015],[109.37060145721107,0.014120125425659016],[109.3704319907958,0.015115066152241632],[109.37017503530706,0.016069703547153903],[109.37075187720097,0.01721894663341345],[109.37074417595954,0.01815468795093814],[109.37053162908522,0.018669219174479994],[109.37089003533121,0.019297078568592665],[109.3710081883903,0.020714427633885767],[109.37081451031884,0.020775376617603713],[109.35361619946157,0.026533411138184543],[109.35162086063053,0.02715770206170378],[109.3379182351519,0.03083259043448938],[109.33694178625701,0.031094462921202954],[109.33552522077203,0.031474369697340146],[109.33354650230528,0.03200776297068947],[109.33206351053552,0.03252230230179938],[109.33205998010241,0.03252624743904441],[109.33200929661918,0.032541112387531296],[109.32417392721796,0.03525967486738239],[109.32411466902067,0.03528023512848499],[109.32149008589116,0.03619086139032862],[109.32000373043508,0.03670656778541136],[109.31840476190273,0.03726832214311322],[109.3170038348525,0.03774741260338989],[109.31618184981014,0.0380326088085311],[109.3116357811095,0.03960991437806738]]]]},"properties":{"Id":0,"Plan_Area":113026328.1,"Ket":"Pontianak Utara","Penduduk":149714}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[109.28614228933482,-0.039829999967719694],[109.28607219531763,-0.03975330002742059],[109.28608528496223,-0.03974078448734692],[109.286348260391,-0.03947217387076286],[109.28720351028642,-0.038661935907160154],[109.28736630459942,-0.03848160989896008],[109.28812267202302,-0.03772774700305188],[109.28837813386832,-0.037482303269462704],[109.2893073137167,-0.03656314153272183],[109.28968048837268,-0.03618495782078593],[109.29019892564662,-0.035671529602775],[109.29048444182637,-0.03535345456022512],[109.29098284287728,-0.03487759426056016],[109.29150128015101,-0.034364166042503926],[109.29176676010778,-0.034103695141595794],[109.29189921853774,-0.03399176778725929],[109.29257874346024,-0.03329214000202692],[109.29321644186895,-0.03280559193769602],[109.29346483001929,-0.03259346482188859],[109.29395571748645,-0.03217520866375818],[109.2940458804907,-0.03215517244057824],[109.29407843935313,-0.032127622633798356],[109.29410098010423,-0.03211509999437774],[109.29413854802262,-0.03208504565955725],[109.29414856613433,-0.032039964157482705],[109.29418112499678,-0.03200490076698789],[109.29422370197106,-0.03197484643225554],[109.29428130611261,-0.03192726040236893],[109.29438148722832,-0.03187216078874242],[109.29441905514665,-0.031817061175050544],[109.29447665928815,-0.03176446608932984],[109.2949950965621,-0.03138628237741637],[109.29539331649714,-0.031075720918621815],[109.29581157265517,-0.030765159459808504],[109.29607454808404,-0.03055978817260521],[109.29690605134452,-0.02996120600618947],[109.29701875509991,-0.02987104300194137],[109.29717904488481,-0.029773366414107074],[109.2971963006244,-0.02976905247930244],[109.2976377202792,-0.02943225893981783],[109.29822694119413,-0.02904897847082371],[109.29823595565585,-0.029042044269382113],[109.29829606432536,-0.028989449183537616],[109.29834615488316,-0.028946872209361686],[109.29843130883158,-0.028886763539904502],[109.29850143561264,-0.028844186565775892],[109.29860913031197,-0.028764041673133033],[109.29881450159927,-0.028648833390043146],[109.29886709668506,-0.028616274527475914],[109.29889214196395,-0.028581211137002308],[109.29891468271492,-0.028543643218567647],[109.29896477327279,-0.02852110246755609],[109.29904241363744,-0.028478525493367154],[109.29909250419526,-0.028468507381780705],[109.29912005400219,-0.028443462102877203],[109.29913758569737,-0.028408398712373443],[109.29918517172743,-0.028390867017038142],[109.29935047056841,-0.02827565873394354],[109.29939555207044,-0.028240595343447295],[109.29950575129781,-0.028162954978823356],[109.29957587807878,-0.028110359893056595],[109.29961595052511,-0.02808030555826308],[109.29968858183392,-0.028070287446743544],[109.29976371767069,-0.028015187833093886],[109.29979377200551,-0.027987638026211806],[109.29982132181223,-0.02798012444256285],[109.29987642142599,-0.027960088219449827],[109.29990898028863,-0.02793754746840397],[109.29993152103957,-0.02790999766157279],[109.29997159348589,-0.027879943326848382],[109.30001417046005,-0.02787994332685497],[109.30004672932266,-0.02785990710366917],[109.30010433346419,-0.0278173301295482],[109.30010182893622,-0.027779762211054874],[109.30012186515944,-0.027752212404315347],[109.30022455080305,-0.02768959920699932],[109.30027714588886,-0.02766455392797556],[109.30032222739094,-0.02764952676064821],[109.30036730889302,-0.027637004121233318],[109.30040738133935,-0.02760194073071504],[109.30044494925777,-0.027559363756498045],[109.300510066983,-0.02751428225440533],[109.30056266206859,-0.027484227919732457],[109.30062527526607,-0.027449164529214032],[109.30067787035169,-0.0274241192503304],[109.30073296996551,-0.027381542276083855],[109.30081561938593,-0.02735148794136626],[109.30091830502957,-0.027271343048751902],[109.30112117178889,-0.02713108948680134],[109.30151939172393,-0.02689065480899174],[109.30203031541406,-0.026605138629236295],[109.30253623004853,-0.026349676784038312],[109.30301709940407,-0.026119260217971705],[109.30314232579865,-0.026099223994782327],[109.303182398245,-0.026084196827351826],[109.30325753408172,-0.026054142492682834],[109.30329510200012,-0.02597900665592159],[109.30333767897424,-0.025963979488500145],[109.30442213955213,-0.025473092021361835],[109.3054164371258,-0.025024781528596416],[109.30638819394837,-0.024614038954044494],[109.30724975154358,-0.024235855242211498],[109.30804368688577,-0.02392028472768914],[109.30912063387991,-0.02350954215319899],[109.30936357308556,-0.023409361037411973],[109.3099220828056,-0.02317643994336487],[109.31055071930685,-0.022915969042519614],[109.31106665205277,-0.022723120394637225],[109.31163768441247,-0.02251524457950044],[109.31199833642917,-0.022397531768583615],[109.31228385260894,-0.022289837069111716],[109.312774740076,-0.022147078979238687],[109.31341840374466,-0.021956734859309962],[109.31374148784278,-0.021884103550464083],[109.31392431837891,-0.021831508464622538],[109.31413720324993,-0.021776408851051653],[109.31437763792772,-0.021701273014230634],[109.31452290054553,-0.021656191512133716],[109.31479338955803,-0.021576046619550694],[109.31537694455695,-0.02140824325070585],[109.31573759657364,-0.021333107413871337],[109.31626855648709,-0.02118283574031233],[109.31674441678689,-0.021072636512996346],[109.31700488768769,-0.020994996148317666],[109.31763352418892,-0.02084221994683384],[109.31785141811564,-0.02080465202836054],[109.3182195837159,-0.02072951619163034],[109.31843747764262,-0.020669407522241973],[109.31902103264173,-0.02056922640650852],[109.31917380884322,-0.020536667543914342],[109.31994770796221,-0.020381386814502866],[109.32063645313282,-0.020238628724502068],[109.3212504415355,-0.020139046482968645],[109.32193630310944,-0.020000698574735517],[109.32288551918104,-0.01981035445487719],[109.32358177793532,-0.0196876325881019],[109.32413277407166,-0.01957993788863837],[109.32447839892092,-0.019517324691329607],[109.32535748821155,-0.019369557545553456],[109.32553781421989,-0.01934451226668101],[109.32582082587184,-0.019286908125132982],[109.32609381941215,-0.01924683567882133],[109.32641940803826,-0.019186727009468798],[109.3266197702698,-0.01914415003525847],[109.32706557623473,-0.019056491558900178],[109.32753642747858,-0.01898886930577992],[109.32774179876589,-0.018961319499035297],[109.3279847379715,-0.018901210829509043],[109.32815254134036,-0.018881174606467762],[109.32875362803468,-0.018778488962819345],[109.32908906655169,-0.018715140231677464],[109.3294949682911,-0.018648253512374622],[109.329592644879,-0.018633226345046577],[109.32966527618792,-0.018630721817051367],[109.32974792560823,-0.018610685593989935],[109.32987816105873,-0.01856560409191833],[109.3302087587406,-0.01851801806196926],[109.33031645344015,-0.018495477310894494],[109.33036403947006,-0.018482954671470923],[109.33114656529617,-0.018306524595404182],[109.33143597740847,-0.018230832196819504],[109.33164079213375,-0.018155139798190154],[109.33190348928173,-0.018039374953437933],[109.33209494652525,-0.017910252626475772],[109.33231311873283,-0.017763320323472637],[109.33255355341048,-0.01760303053825808],[109.3326914624671,-0.01748296484521548],[109.33327552156986,-0.01660490123231449],[109.33332827566065,-0.01649694408796973],[109.33343923412812,-0.016379201612772235],[109.33349952873031,-0.016437205715091656],[109.3335010745852,-0.016435714311586334],[109.3334509251306,-0.016384873322763678],[109.33203147887048,-0.015197364633360798],[109.33191381442309,-0.015315820238582922],[109.33189967597366,-0.015306046481900364],[109.33178828534199,-0.015215608972306794],[109.3316858790959,-0.015118843360969608],[109.33159875410206,-0.015024796477515548],[109.33152689472713,-0.014952437096547408],[109.33147389472276,-0.014909937100355295],[109.33143886347004,-0.014892749603860198],[109.33141413539616,-0.0148865272720272],[109.33134081990511,-0.014966662186640138],[109.33129583745973,-0.014930433139909924],[109.33125385390808,-0.01488816600079777],[109.33117588397967,-0.014873070114907325],[109.33113989803418,-0.014842879258210156],[109.33111890646224,-0.014794574166927735],[109.33108292051664,-0.014764383312547789],[109.3309869579361,-0.014691925194390323],[109.3309149857787,-0.014667772189618558],[109.33084001439614,-0.014694943146822948],[109.33073505445576,-0.01473419010641537],[109.33054612719208,-0.014722112451527854],[109.33041117884652,-0.014755321062613904],[109.33039018714562,-0.014725130332865934],[109.3306083768347,-0.01446577644578642],[109.33063909359986,-0.014429264575358773],[109.33035120602426,-0.014193775998006601],[109.33033288144642,-0.014216835750932109],[109.33030322404801,-0.014254156788717963],[109.33010230230518,-0.01412131682843974],[109.32996135520118,-0.014308497308562403],[109.32989837965788,-0.014278306283422366],[109.32984140128428,-0.014320572654300345],[109.32959249824182,-0.014163579922369022],[109.32950553203341,-0.014121312510792721],[109.32951752771517,-0.014079045816909148],[109.32947554399107,-0.014063950235526644],[109.32940057286535,-0.014063949695193825],[109.32936158764481,-0.014097159024921936],[109.32923263766183,-0.014048853208157611],[109.32902571783754,-0.013985451563183603],[109.32899273093307,-0.013931108337645595],[109.32894474999698,-0.013849593513378248],[109.3288727780956,-0.01379826907140602],[109.32873183301405,-0.013713734547144304],[109.32865086458469,-0.013662410052737271],[109.3286268744374,-0.013574857307581466],[109.32860861844956,-0.013480783501882957],[109.32849053564523,-0.01338450460747077],[109.32856090180425,-0.013291065746008792],[109.32842492038564,-0.013174601082288379],[109.32865686752179,-0.012880474997533121],[109.32860026972435,-0.012823593345787476],[109.32823103411363,-0.012512147625122799],[109.32797613412707,-0.012246469292335095],[109.327955142153,-0.01225854537386163],[109.32789516569191,-0.012195144878491004],[109.32782919128559,-0.012174011093739378],[109.32773622765156,-0.012095515135098552],[109.32761049741846,-0.011991606859025472],[109.32753530623194,-0.011929465990190286],[109.32755329950274,-0.011893237467695128],[109.32734038286127,-0.011703035867820826],[109.32726241256412,-0.011772473601806846],[109.32713918988723,-0.011668786142002806],[109.32706149118444,-0.011603405478286224],[109.32700151457131,-0.011567176498771575],[109.32687256508825,-0.01144943271826656],[109.3268005930268,-0.01142829893442043],[109.32655169033661,-0.011238097250658219],[109.32650670748792,-0.011280363706539754],[109.32637176027168,-0.011174696143883455],[109.32640774669613,-0.011114315331407268],[109.32619482993911,-0.010954304433782935],[109.32616484138809,-0.010981475720233568],[109.32609586830547,-0.010939208624836105],[109.3257989815043,-0.011238092907280567],[109.32575989471495,-0.011159577718583596],[109.32568623847182,-0.011136077721565416],[109.32558651972387,-0.011066437100422944],[109.32547334783574,-0.010974187091668535],[109.32542571289136,-0.010936807162467137],[109.32536914941107,-0.010970904559877672],[109.32527718518213,-0.010942726249135785],[109.32511724788533,-0.01080586179779278],[109.32507326494553,-0.010801836155093916],[109.32491732575713,-0.010729378122347644],[109.32486134794955,-0.010636793658251346],[109.32467342127826,-0.010544208484429832],[109.3247333985675,-0.010443573864460584],[109.32469341427742,-0.010403319672702999],[109.3246374362496,-0.010350989204597821],[109.32484135797252,-0.010206075960515084],[109.32470541142402,-0.010057135531053666],[109.32448574082963,-0.010202520238242889],[109.32427357736529,-0.010342936475055355],[109.3242295947593,-0.010278529893076658],[109.32438909892834,-0.010137482127341167],[109.32452548137559,-0.01001688062731732],[109.32443351763979,-0.009896118238424012],[109.3242283165987,-0.01000743709721238],[109.32415349607777,-0.009960286738680334],[109.32412563659162,-0.009984675396208707],[109.32396969755092,-0.009892090482672772],[109.3238017633928,-0.009755226168880997],[109.32372979128323,-0.009763276599312504],[109.3236698149772,-0.009678742990623978],[109.32367781218892,-0.009614336700581403],[109.32370187045332,-0.0095795202324977],[109.32361658221635,-0.00948110897939933],[109.3235052072175,-0.009347265230665395],[109.32347708588433,-0.00932064778616679],[109.3234219127078,-0.009368786335049485],[109.32345390015493,-0.0093969642552867],[109.3234059187256,-0.009409040208550748],[109.32330595721062,-0.009477471437149979],[109.32325797599734,-0.009445268045318268],[109.32325797632437,-0.009376836334612823],[109.32321399340469,-0.00937683612247862],[109.32317800757154,-0.009336582003112817],[109.32316601247732,-0.009284251816275268],[109.32320733017028,-0.009197706028804863],[109.32311669910221,-0.009111830518321958],[109.3230420611276,-0.009176236477230083],[109.32293543620534,-0.009106462476574633],[109.3227115241889,-0.008891773768042597],[109.3227996304717,-0.008763652674381029],[109.32274255097145,-0.008720562102095002],[109.3226176915831,-0.008623796470935956],[109.32253021770329,-0.008555223813813006],[109.32240764326367,-0.008677084751755791],[109.32207177491836,-0.008435559714402971],[109.32205045022262,-0.008355051776937752],[109.32195448798025,-0.008253074765709337],[109.3219918070212,-0.008199403029254697],[109.32173057646337,-0.007920308110213114],[109.3218105457338,-0.00782369903432594],[109.321687927077,-0.0077485578992111705],[109.32157597020023,-0.00786126840791356],[109.3214266952906,-0.007780759984631585],[109.32116013357472,-0.007480196433332943],[109.3209948652722,-0.007303078634064514],[109.32091489671885,-0.007222570535453829],[109.32083492800959,-0.007184999933827518],[109.32078694670288,-0.007184999756246248],[109.32069098438542,-0.007104491612499569],[109.32068565334168,-0.007045452548206126],[109.32063234087884,-0.007018616426012774],[109.32006189838123,-0.006497997499131034],[109.32005656725046,-0.006460427192256452],[109.32010454902704,-0.006310146192110369],[109.31970470632366,-0.005880770237653555],[109.31944347442757,-0.006047152101801359],[109.3188570384812,-0.005451393201074079],[109.31866511312728,-0.005569470628071991],[109.31837516255139,-0.0053554602910697606],[109.31828841939652,-0.005466712829354811],[109.31772330814255,-0.005058805730798237],[109.31762201467015,-0.004967563450343936],[109.31757936490587,-0.004881688504340389],[109.31741942764982,-0.004817281979155896],[109.31754204703553,-0.004522087538602061],[109.3171368728959,-0.004248360613421119],[109.31664639882977,-0.004001469500974454],[109.3165291111807,-0.004130281443850235],[109.31615059337356,-0.003878023489696759],[109.31616125593429,-0.003840453297485936],[109.315926681524,-0.003690171996171406],[109.31596933182101,-0.003496953855562519],[109.31565478881141,-0.003325203784598647],[109.31552150746526,-0.0034969530464576772],[109.31534024517848,-0.003539890087598603],[109.31516964565816,-0.0034325463632233575],[109.31515365186974,-0.0034701165288084992],[109.31502037101623,-0.003378874396401539],[109.3150470273189,-0.0033198355699299038],[109.31503636503452,-0.003201757806248806],[109.3149937151555,-0.003174921885067643],[109.3149777214087,-0.003191023369012154],[109.31495106521658,-0.0031856561550934284],[109.31491907774094,-0.0032071247820695935],[109.31488709030977,-0.0032017575591992207],[109.31489242167096,-0.0031266171902327093],[109.31476447208395,-0.0030192735936402995],[109.31471649077673,-0.003115882567156163],[109.31467917215166,-0.00308367949147549],[109.31467917220212,-0.0030514764760111272],[109.31465251602195,-0.0030407420955789266],[109.31455122224753,-0.0031856554965991424],[109.31414604842765,-0.002992436789305902],[109.31417803593656,-0.002938765160195725],[109.31383150570164,-0.0027992182941126123],[109.31379418701943,-0.002815319740467146],[109.31373021209134,-0.0028743584800613874],[109.31367156849554,-0.002868991226398476],[109.31364491238283,-0.00282068668941775],[109.31365557494011,-0.0027616478744786955],[109.31355961276664,-0.0027026089097817643],[109.31357027531251,-0.0026489372629493776],[109.31351696298633,-0.002622101359751903],[109.31325573257843,-0.0025093905340150737],[109.3128185715068,-0.002359109371890915],[109.31273860287595,-0.0024557182237979697],[109.3127119467193,-0.002444983862363093],[109.31269062185636,-0.0023859450343237986],[109.31262131591357,-0.0023054374956299234],[109.31253601611213,-0.0023591090268665488],[109.3124773725769,-0.0023322731395495617],[109.31249869769537,-0.002171258269346269],[109.31223213615012,-0.002074649045426218],[109.31211484900686,-0.00210148473013807],[109.31209885523995,-0.002165890657782687],[109.31196557444363,-0.0021605233465965],[109.31197623695448,-0.002117586064547549],[109.31191226216649,-0.0021229531559254938],[109.3117843125075,-0.002214194755920692],[109.31170967531162,-0.002176624543249198],[109.3116723567291,-0.0021444215358195065],[109.31166169430209,-0.0021122185587439733],[109.311709675544,-0.001956570942063323],[109.31167768821508,-0.0018975321395602615],[109.31146977030464,-0.0018009230490676632],[109.31136314551505,-0.0019887735511383725],[109.31114456514672,-0.0019297345721563752],[109.31083002267634,-0.0018760626720541595],[109.31072339818446,-0.0017901880361911404],[109.31053680527859,-0.001698946181389402],[109.3103715372285,-0.0016882117213228571],[109.31031822487826,-0.0017740861888647238],[109.31025958138832,-0.0017633518209688327],[109.31025958144984,-0.0016935787802898135],[109.31020093798826,-0.001650641474339305],[109.3100996446873,-0.0016399070746383937],[109.31004633239296,-0.001672109967594889],[109.30990772051595,-0.0016613755354414135],[109.30991305182606,-0.0015593995758681545],[109.30984374590363,-0.0015379308965253655],[109.30978510233057,-0.0016452739628281267],[109.30944390398386,-0.0015486648870918216],[109.30928929850863,-0.0014949932201928392],[109.30908138080858,-0.0014359543683109713],[109.30893210660194,-0.0013554469579579798],[109.30869220155863,-0.0013554467892582908],[109.30854292729035,-0.0014037510540318824],[109.30843630274762,-0.0015325626219357866],[109.30838832163448,-0.0016721085296565069],[109.30833500935407,-0.0017418814544144625],[109.30827636593344,-0.0017204127955828506],[109.30828169723802,-0.0016238040739300953],[109.30830302219447,-0.0015379296674268596],[109.30832967838117,-0.0014359538082873977],[109.30832434720185,-0.0013769151368612344],[109.30819106672266,-0.0012856734709808014],[109.30806844859696,-0.0013393448979070889],[109.3080204676183,-0.0013232434122999815],[109.30793516814056,-0.0012373689457198514],[109.30785519982408,-0.0012481031949048696],[109.3077645690239,-0.001328610386571455],[109.30771658806,-0.001301774604041068],[109.30767926956453,-0.0012320016315513524],[109.30750333934732,-0.0011729628767134497],[109.3070235296992,-0.0010817210691331225],[109.30675163759717,-0.0010656194747488447],[109.30650107038898,-0.001070986482564129],[109.30650107043421,-0.0009851121384865872],[109.30638894057388,-0.0008903039717301921],[109.30633136414953,-0.0008846530292084875],[109.30625050327835,-0.0009529091353725874],[109.3061385477331,-0.0009743776619457082],[109.30603192338984,-0.00103341620513213],[109.30587198693192,-0.001033416119240778],[109.3057600314077,-0.0010548846368269253],[109.3057280440867,-0.0011139232071546714],[109.30548280830071,-0.000979744473558357],[109.30554120852663,-0.0008111826232100865],[109.30531220957766,-0.0007113872271874638],[109.30528555346591,-0.0008065777140392928],[109.30529621586464,-0.000888502945060978],[109.30532287187187,-0.0010119472513984186],[109.30506697363414,-0.0010226814017994057],[109.30491236847162,-0.0010173141775022343],[109.30482173784314,-0.0010548841222623817],[109.30465647030519,-0.0009958454766928833],[109.30465647032136,-0.0009636426285207122],[109.3046244830724,-0.0009207054823416145],[109.30449120276911,-0.0009582754047823509],[109.30438457853437,-0.000985111054661152],[109.30424596699811,-0.0010924537879036754],[109.30408603067036,-0.0011246565356099621],[109.30406470586031,-0.0010709851260500946],[109.30396341285748,-0.0010978207667373526],[109.30387278228763,-0.0011085549932845836],[109.30385145743125,-0.0011407578156883075],[109.30379281409606,-0.0011944291703701207],[109.30373950203308,-0.0011461248880450315],[109.30366486514346,-0.0010817191804281287],[109.303648871543,-0.001033414924512232],[109.30348360406036,-0.0010602505260264132],[109.3033449926256,-0.0010978204134478031],[109.30323836841409,-0.0011890616883157485],[109.30270941642736,-0.0011116100743424004],[109.30234718401485,-0.0011671940842111598],[109.3023640504657,-0.0013125052510498149],[109.30228941359273,-0.001312505200033377],[109.30206017178664,-0.0013125050433260242],[109.30187357963216,-0.0013232391828999197],[109.30173496831937,-0.0013447076201857202],[109.30168698741869,-0.001441315981695476],[109.30159635693434,-0.0014788858432865798],[109.30149506406003,-0.0015003542953887419],[109.30145241437359,-0.0015808612481578428],[109.30138843995842,-0.0015593926665524302],[109.30135645278953,-0.001500354187026353],[109.30121251030599,-0.0015271897331745152],[109.30116986065106,-0.001575493883785291],[109.30100459329235,-0.0016989377646196514],[109.30079134521402,-0.001731140359167503],[109.3004714732123,-0.0016989372924864135],[109.30032219961666,-0.0016989371602625938],[109.30007163318737,-0.0017687096093942378],[109.30001832116912,-0.0018009123305591302],[109.29992769080643,-0.0017848108610498633],[109.29981040445178,-0.001774076496259537],[109.29967179318636,-0.0018975202987847207],[109.29950652611737,-0.0018384817386125545],[109.29939990208952,-0.0019243556629701657],[109.29922397260452,-0.0019136212339806913],[109.29903204957874,-0.0018706840372939677],[109.29896807519057,-0.0019082538530072397],[109.29887744487856,-0.0018921523871906966],[109.29877615202321,-0.0020316975350228475],[109.29858422900055,-0.0020316973315182758],[109.29857356652519,-0.002112204185473906],[109.29846694261474,-0.0021283054400440746],[109.29844028654652,-0.0022141793940806233],[109.29829634436918,-0.0021551408684208555],[109.29828035090918,-0.0020424312563178974],[109.29822170784308,-0.0019780257134076485],[109.29816306472826,-0.0019619242832184633],[109.29808842792454,-0.0020531652976651616],[109.29802978472863,-0.0021175707087170773],[109.29792316090102,-0.0020853678556506296],[109.29788584265738,-0.001983392488989106],[109.29785385561226,-0.0018706828868492484],[109.29770458222029,-0.001870682741034758],[109.29757663367887,-0.0017955429142652998],[109.29732606768083,-0.0017848084375780761],[109.29688891009681,-0.0017257697140766416],[109.29670231844781,-0.0017311366649470233],[109.29655304522953,-0.0016345283935651667],[109.29558545719237,-0.0014387652079153681],[109.29536952173682,-0.0014681468059801511],[109.29528955400296,-0.0013983742477365153],[109.29504965069505,-0.0013554371565407336],[109.2949910076463,-0.0013769055721582746],[109.2947830915023,-0.0013017658303668203],[109.29466580549541,-0.0012373603898131378],[109.2944525581446,-0.0012480944773406632],[109.29429262274914,-0.0010870810026222136],[109.29412735616883,-0.0009314346641333777],[109.29363155634171,-0.0007704211078492534],[109.29327969845217,-0.0007053447632492354],[109.29277875969484,-0.0004749958326894779],[109.29216470652227,-0.00022099911596846843],[109.2917811933168,-0.000040368250955727055],[109.29170022608575,-0.00001999002226523143],[109.29160126614096,-0.000019990021228532726],[109.29152029891702,-0.00004942523438769286],[109.29145957349749,-0.00013093813057968312],[109.29141234260275,-0.0002894354246469721],[109.29138985170414,-0.0003211348802961206],[109.29128414452182,-0.00021924374968249118],[109.29131788086578,-0.00016716607274951448],[109.29132237904918,-0.00009697441618742203],[109.29131338269313,-0.00007433194585808905],[109.29127964635522,-0.000056217968993273005],[109.29125715546328,-0.00005168947446261542],[109.29125715546384,-0.000004140289178198161],[109.29124815910704,0.0000317102869256939],[109.29121517246607,0.00003472928221164651],[109.29118518461081,0.00004076727320563644],[109.29116719189773,0.00005284325587128488],[109.29116419311191,0.00006793823452244203],[109.29118218582391,0.00008605220977135119],[109.29117019068094,0.00010718517950440723],[109.29114020282492,0.00013435613920947197],[109.29110121861454,0.00014341312345916748],[109.29107123076294,0.00011926115635296212],[109.29102025140998,0.00016756508146010114],[109.29095127935493,0.00011926114885321131],[109.29093328664706,0.0000649192308934644],[109.29090629758187,0.00004680525793608333],[109.29089430244228,0.0000045393231728414236],[109.29085531823736,0.000010577313575810389],[109.29080134010887,0.000034729274676990136],[109.29073236805763,0.000049824248737839566],[109.29066939357912,0.00003774826726150619],[109.29063940573302,0.000019634297147155692],[109.29059742274903,0.0000075583173058581686],[109.29053144948954,0.000043786253967656635],[109.2904084993279,0.00011926111491026641],[109.290408499324,0.00017058402225082495],[109.29037851147363,0.0002460588821469026],[109.29035152240694,0.00030945776232279974],[109.29031553699585,0.00031851473971294313],[109.29027955158467,0.0003305907110974491],[109.29023157103855,0.0003426666798196174],[109.29015960022664,0.00033059069029858844],[109.29026429721195,0.0007464544523293587],[109.29022992199356,0.000776521731677648],[109.2896917897776,0.0009887311736639],[109.28964980685578,0.0009041993381395964],[109.28943389444478,0.0009917500328682403],[109.28946388223207,0.0010672248748057923],[109.28910184736034,0.0012232016818997972],[109.28884729246424,0.001242271513218518],[109.28881914398183,0.0011789272189178881],[109.28850678531428,0.0012745629067393543],[109.28825761345071,0.0013252347789186054],[109.28816279081339,0.0013445206273937171],[109.28813005358623,0.0013220493258433042],[109.28812405607901,0.0012405365665549006],[109.28801909876869,0.0012254415443532316],[109.2878811548711,0.001225441455573211],[109.28786016340925,0.0012254414420625817],[109.28783917195338,0.0012163844570927842],[109.28780318659129,0.0012163844341022204],[109.28777319879005,0.0012163844149430483],[109.28774620977492,0.0012073274267669566],[109.28770722562689,0.0012194033631024825],[109.2876502487863,0.0012526122185773985],[109.28756628293485,0.0012767640836726694],[109.28748831466017,0.0012797830212912577],[109.28745232935123,0.0012073272403845565],[109.28726940379502,0.0012224220722348274],[109.28725141106173,0.00130997275748054],[109.28723041960676,0.0013099727430326332],[109.28721542578127,0.0012012891110695187],[109.28718243922671,0.0011741181853468518],[109.28715545020347,0.0011922321050917043],[109.28711946484849,0.0012012890504990725],[109.28710447093228,0.001234497923533027],[109.28708077836522,0.0013824481960254234],[109.28705073839504,0.0013937035356382953],[109.28705931648459,0.001269250415497187],[109.28702851960232,0.0010932504140464152],[109.28699828523446,0.000848656668077017],[109.28693612898314,0.0003457035439701815],[109.28692109773024,0.00022451603536123425],[109.28689323701741,-1.4315509590290447e-9],[109.28687814461219,-0.00012162458300059818],[109.28683050398284,-0.0005056714676946862],[109.28680856570418,-0.0006495562478760398],[109.28675358170295,-0.0010412299721266876],[109.2867294258648,-0.001314233962600044],[109.28671612897877,-0.0014644214736614502],[109.28669000520168,-0.0017076656970980973],[109.28665984857366,-0.0019884684275808108],[109.28665493728995,-0.0020341996327890013],[109.28664572273884,-0.0021200152242219807],[109.28659733210388,-0.0025063277027905758],[109.28659147064774,-0.0030193796909118885],[109.28660538622,-0.0034802112311831264],[109.2866147998149,-0.003483639582842361],[109.28661053526776,-0.003542515200991235],[109.28662339155676,-0.003622817528176109],[109.2866173837726,-0.0036475582044262103],[109.28664666045717,-0.0040127739867467935],[109.28685296185324,-0.005063243769488195],[109.28685398764942,-0.005063154596888409],[109.28685816172592,-0.005089226441492274],[109.28688772273112,-0.005236937086018487],[109.28693612899217,-0.005527312098256883],[109.28693872273018,-0.005550468339645207],[109.28694142586035,-0.005574546468270493],[109.28695454323575,-0.005691238970462198],[109.28701082591006,-0.0060427890632982146],[109.28709451960462,-0.00621018708796425],[109.28707251962186,-0.006262983967250727],[109.28703930888594,-0.006220698193027571],[109.28703935495649,-0.006220985957059631],[109.28707208974735,-0.006266416268365792],[109.2870609140845,-0.006355647438448171],[109.28705756508235,-0.0063823869939841835],[109.2870669972549,-0.006393643922358154],[109.28706616753422,-0.006413274744431901],[109.28705306445067,-0.006723294634714295],[109.28705266884778,-0.00673265469942577],[109.28705259664846,-0.006732730351642923],[109.28699133167872,-0.007968514823180851],[109.28693749099106,-0.008600576300976995],[109.28688333211666,-0.00904242144724364],[109.28652968315646,-0.009964091899725632],[109.28567420668834,-0.012230649506661534],[109.28592414462462,-0.013914905846485299],[109.28535655086984,-0.016810937082375594],[109.28567014462025,-0.018412374595974862],[109.28209584434904,-0.02009560977472829],[109.27991142588162,-0.022168562113274295],[109.27616282692566,-0.027218688336519227],[109.27931435657263,-0.03531855349608888],[109.28335466844719,-0.041077661140143634],[109.28364256654527,-0.040863077730139155],[109.28398020850551,-0.04044804890069206],[109.28459225401616,-0.03984515586191861],[109.28512724208743,-0.040606145838443665],[109.28605666166601,-0.03973816486870906],[109.28614210681981,-0.03983017860126383],[109.28614228933482,-0.039829999967719694]]]},"properties":{"Id":0,"Plan_Area":113026328.1,"Ket":"Pontianak Barat","Penduduk":150157}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[109.34477671544883,-0.02609238682029518],[109.34473830505421,-0.025985298320994627],[109.34467832878103,-0.025900763314677496],[109.34462734754572,-0.025936991592494536],[109.34450439656064,-0.025734711690864547],[109.34450739570134,-0.02571357817810545],[109.3445163924618,-0.025701501980213315],[109.34453138715304,-0.025674330466003755],[109.34453138750253,-0.02564715875605449],[109.34446241469423,-0.025556585494460073],[109.3444384235165,-0.02557469965554942],[109.34433646442957,-0.025384496380569627],[109.34445172324264,-0.025308246547117275],[109.34454638696363,-0.025245621457296696],[109.34433347047762,-0.024995035205528916],[109.344287739022,-0.025025323622104217],[109.3442195125499,-0.02507051071889045],[109.3441055577303,-0.024898421808787676],[109.34380267746174,-0.024466689857675663],[109.34377868645035,-0.024472727714908007],[109.34372470676834,-0.024478765199004875],[109.34368572208905,-0.024430459472804655],[109.3436527344413,-0.02443951629595325],[109.34363174274233,-0.02440932526026807],[109.34368272399757,-0.024367058806423817],[109.3436654554817,-0.024304172657742908],[109.34359875568703,-0.024370076844259854],[109.34343382047732,-0.024167796629555614],[109.34342182552263,-0.024125529401767373],[109.3434308225238,-0.024092319662950244],[109.34348180369412,-0.024056091359822594],[109.34321490819617,-0.023754180410841395],[109.34322239354039,-0.02369937340353607],[109.34315793009786,-0.023723988955205107],[109.34305297132434,-0.023594167395219315],[109.34298699577238,-0.02363643367514794],[109.34284605068504,-0.023500573548412836],[109.34287004189544,-0.02347642122434964],[109.34287004271151,-0.023406982468707337],[109.34289366168002,-0.023366857927247853],[109.34291802551938,-0.02332546797662811],[109.34263582928772,-0.023113772976633057],[109.34251653534754,-0.02300214023455363],[109.34238898847795,-0.02288457773371446],[109.34235350508142,-0.022855396509083005],[109.34230926075662,-0.022902790191162637],[109.34208734708278,-0.022700509572710425],[109.34200337843015,-0.022739756578314643],[109.34196439374391,-0.022691450928349007],[109.34193740382746,-0.022703526916467456],[109.34190141773121,-0.022679373902135723],[109.34187742643901,-0.022712583448278905],[109.34189541931447,-0.022739755329671277],[109.34179645586504,-0.022821269201500908],[109.34176946639947,-0.022794097216371156],[109.341712487776,-0.02281221100303301],[109.34165251101562,-0.0227669241901121],[109.34162552127552,-0.022763904803056935],[109.34161052736422,-0.022728178915732557],[109.3416025310363,-0.022671822768044622],[109.34127119215174,-0.0222909674936527],[109.3411181107248,-0.02218652467841721],[109.34101310442885,-0.022117745225095173],[109.34100424890643,-0.022073166618737126],[109.34088373654563,-0.022032723601021015],[109.34086761372954,-0.02202731290871359],[109.3408359851707,-0.022020944196573026],[109.34081194734225,-0.022027312284636037],[109.34079550031446,-0.022040048815073397],[109.34078917441954,-0.022055332801873575],[109.34079043931064,-0.022078258902706732],[109.34080056021737,-0.022101185103240512],[109.34064159307694,-0.022260123871124877],[109.34061584697686,-0.022285865373601197],[109.34047640426145,-0.022211293355431982],[109.3404172228493,-0.022296733985635076],[109.34041453535092,-0.022294015239200788],[109.34023487909967,-0.02226235899343857],[109.34025373848458,-0.02222437461777648],[109.34028863894613,-0.02217668911924637],[109.34036085067,-0.02222467122775322],[109.34041145705203,-0.02217202672261741],[109.34035579101774,-0.022141457985522747],[109.34044856955273,-0.022029375960474714],[109.34041775344667,-0.022011795357146792],[109.340397964076,-0.022000505511840317],[109.34058464594347,-0.021754547513510008],[109.34060488816449,-0.02176360495628862],[109.34066063331281,-0.021709407746605885],[109.34063192597397,-0.021670015234227093],[109.34052754955458,-0.021605057176859552],[109.3404931539938,-0.021652119915318183],[109.34051267416507,-0.021670767448750072],[109.34050173221127,-0.021692728325859556],[109.34031699594435,-0.021897195720838276],[109.34023602660226,-0.021903987730824644],[109.34003140115715,-0.02216196878173797],[109.33997989525031,-0.02211752200534052],[109.33995188171345,-0.022153781308650006],[109.33958246305525,-0.02183451035246079],[109.33960000401613,-0.021789696738682186],[109.33967692845232,-0.02171733369320997],[109.33951499147057,-0.021579775471321914],[109.3394424565499,-0.021578076446535928],[109.33919280385015,-0.02135390770395058],[109.33918437026597,-0.021287676749368215],[109.33900294447656,-0.021107887163531867],[109.33905183222875,-0.021019780861193837],[109.33900388733981,-0.020984336865655137],[109.33900936204584,-0.020970318661734044],[109.3390131577058,-0.020948666306704687],[109.33872091189632,-0.020716855221799727],[109.33867410128464,-0.020744875469959928],[109.33864879851576,-0.020734685841763006],[109.33861477224652,-0.020767137820285605],[109.33860072257553,-0.02078053745592256],[109.33852243260381,-0.020708684841986517],[109.33849824639027,-0.02073723159079746],[109.3384577617807,-0.020738504832821383],[109.33832998344499,-0.020626420532258646],[109.33844258240883,-0.020511791419897965],[109.33845643892111,-0.02052567673272894],[109.33856530019742,-0.02062260199610125],[109.33862425409833,-0.020588390231731576],[109.3382236134825,-0.02027910897549895],[109.33821162598487,-0.020262645038778063],[109.33817788841051,-0.020303402123444062],[109.33838620722554,-0.02046178085873691],[109.33835208221738,-0.02053051522483765],[109.33830383777345,-0.020566062457535693],[109.33797321662848,-0.020273964084055466],[109.33800600893586,-0.020221838989059798],[109.33797494634469,-0.020196108531097958],[109.33794172896448,-0.020239999235025723],[109.33791024113846,-0.02022188449783109],[109.33783601822353,-0.020337363106356948],[109.33723775086412,-0.019870910945570874],[109.33735920604548,-0.019723732618234686],[109.33777304503677,-0.020058853384273552],[109.33778034402216,-0.020034911212905827],[109.33783552212489,-0.0199714268285251],[109.3373836978084,-0.01961315950276846],[109.33698199372697,-0.019284010300453243],[109.33662788260204,-0.018993858014070632],[109.33623695669897,-0.01867034241946192],[109.33578729587745,-0.018299293812025212],[109.33545744784368,-0.01802158982596765],[109.33507659623612,-0.01770458456459219],[109.33422946106631,-0.01701015816423277],[109.33359817229992,-0.016499965426237873],[109.3335761261191,-0.016511800771031884],[109.33357379967183,-0.016509442243053733],[109.33341224189937,-0.016687145688211266],[109.33336612525248,-0.016703788831756106],[109.33335703955242,-0.016716972859436494],[109.33295032045442,-0.017307152378003857],[109.33273066408222,-0.01767522521800571],[109.33240414785323,-0.017936438201281452],[109.33201232837826,-0.018126411279917556],[109.33154926899897,-0.018304511041271464],[109.3312524360635,-0.01839949758062133],[109.33108027296085,-0.018470737485192967],[109.33088436322329,-0.018524167413492366],[109.33051035372478,-0.01859540731806249],[109.3297089047989,-0.01873788712715328],[109.32859281296147,-0.01892786020582828],[109.32683556198336,-0.01922469314128929],[109.32628345272335,-0.019343426315465168],[109.3257669634155,-0.019426539537446625],[109.32460337830851,-0.019610575957395213],[109.32218715821357,-0.02007957199549711],[109.3211244963045,-0.020257671756833427],[109.32080985339284,-0.02032891166126152],[109.3196343949684,-0.02056637800977535],[109.31824521683019,-0.020827590992958642],[109.31773466418113,-0.02094632416714955],[109.31712912499275,-0.02110067729359496],[109.31677886212887,-0.02117785385685766],[109.31591210995721,-0.021397510229172],[109.31534812737978,-0.021557800014231954],[109.31429140212936,-0.021854632949845222],[109.31348995320364,-0.022080225980734978],[109.31319905692679,-0.02214552922655911],[109.3129675272371,-0.02224645242462198],[109.31273006088864,-0.022299882353026067],[109.31240354465966,-0.02238299557499625],[109.3120532817959,-0.022519538725266887],[109.31183956208224,-0.022602651947242043],[109.31118652962412,-0.02284605495425876],[109.30973204824026,-0.023398164214321428],[109.30869906962477,-0.02379592034793677],[109.30805197382543,-0.024074943307250043],[109.30789762069885,-0.024152119870451887],[109.30742268800213,-0.024348029607953604],[109.30623535626027,-0.02484077228089171],[109.30368852967369,-0.02599842072929834],[109.30340950671426,-0.026105280586074787],[109.30237652809878,-0.026639579869916177],[109.3018541021323,-0.026912666170632937],[109.30159288914912,-0.02709076593197692],[109.30128418289607,-0.027256992375840505],[109.30106452652383,-0.027351978915184323],[109.30077363024716,-0.02750039538296088],[109.29992468805155,-0.028070314618980918],[109.29944975535481,-0.028379020872018632],[109.29933102218058,-0.028402767506782497],[109.29918260571286,-0.02849775404615545],[109.29899856929295,-0.028646170513869074],[109.29885015282505,-0.028770840346853867],[109.29863643311147,-0.028972686742969635],[109.29847020666766,-0.029020180012652528],[109.2983989667632,-0.029097356575886846],[109.29828023358894,-0.02918046979783592],[109.29809026051034,-0.029317012948152674],[109.29787654079671,-0.029465429415840124],[109.29768656771802,-0.029607909224978243],[109.29740160809985,-0.029774135668843855],[109.29732443153651,-0.0298275655971235],[109.29719976170372,-0.02992848879527126],[109.29703947191855,-0.029999728699743378],[109.29689105545097,-0.030076905263058222],[109.29681387888769,-0.030189701778456264],[109.29664171578504,-0.030326244928864883],[109.29649329931732,-0.03042716812680801],[109.29639831277794,-0.03046872473788293],[109.29624989631026,-0.03053402798372347],[109.29610741650114,-0.03063495118175598],[109.29582839354175,-0.030919910799815292],[109.29532377755154,-0.031299856957228506],[109.2950150712986,-0.031507640012129856],[109.29485478151342,-0.03163824650368205],[109.29475385831526,-0.031715423066870536],[109.2945045186496,-0.03193507943917153],[109.29424330566624,-0.03213692583527286],[109.29405333258757,-0.032261595668280206],[109.29388710614374,-0.032469378723081296],[109.29377430962816,-0.032546555286220094],[109.29362589316042,-0.03260592187342162],[109.29345373005782,-0.03274840168251062],[109.29330531359005,-0.032861198197907074],[109.29318064375722,-0.03297993137213992],[109.29288381082176,-0.03332425757730019],[109.29252761129908,-0.03361515385415839],[109.29214172848303,-0.03397135337673088],[109.29181521225391,-0.03420288306633807],[109.29132246958106,-0.03471343571542002],[109.2902004410849,-0.0358710841638919],[109.28992141812552,-0.036156043781946805],[109.28892999612086,-0.037183085738776864],[109.28826868165739,-0.037842861068459056],[109.286149649837,-0.039838054151606836],[109.28614228933482,-0.039829999967719694],[109.28614210681981,-0.03983017860126383],[109.28676733367581,-0.04050346990507054],[109.29399956110102,-0.04829170836292673],[109.29876899798471,-0.053427837566184154],[109.3001938159352,-0.05496220797215477],[109.30133568284663,-0.05695960489856255],[109.30193009388114,-0.05967264044108471],[109.30358075575698,-0.061299808552741857],[109.30470076601493,-0.06230462738825889],[109.30592483648194,-0.06115790978185177],[109.3069922606449,-0.06003601996990354],[109.30803151893957,-0.05899239587119645],[109.30886309776758,-0.05821339794593776],[109.30922115564404,-0.05779283901742656],[109.31014057450318,-0.05686925418155446],[109.31095422427441,-0.05591006277695976],[109.31203935583135,-0.0549893416096532],[109.31413037706426,-0.05284824873871211],[109.31642282578287,-0.050634668632088826],[109.31720023906401,-0.04984814625261359],[109.31792659285624,-0.04907813170237839],[109.31891938021646,-0.048139538454601324],[109.3195934185071,-0.04750229392434255],[109.32091635935764,-0.04611141557186],[109.3219146392269,-0.04515239613305311],[109.32270982295476,-0.04438848475261101],[109.32372239973732,-0.043415728877689824],[109.32448646470378,-0.04261931863073522],[109.32503242609334,-0.04205024456135078],[109.32678273002858,-0.04053795579042847],[109.32981224083295,-0.03792040735123325],[109.33260000690112,-0.03551172396131128],[109.33398214420836,-0.03414347596314283],[109.33665977712863,-0.03156383186112857],[109.33789455090778,-0.03038760898972202],[109.338103284086,-0.03033352538936671],[109.33866974466294,-0.029896030424540483],[109.33989534931858,-0.02900890989233597],[109.34073186993625,-0.028449083707839516],[109.34210494955178,-0.027631289913580114],[109.3435626315242,-0.02669498758526942],[109.34477671544883,-0.02609238682029518]]]},"properties":{"Id":0,"Plan_Area":113026328.1,"Ket":"Pontianak Kota","Penduduk":123867}}, +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[109.32389276289443,-0.08052549670981375],[109.33577028215281,-0.09173477409757182],[109.34274556452921,-0.09833009529340522],[109.34606457199749,-0.09395909019645002],[109.34701010911387,-0.09223632304696226],[109.34838923710359,-0.09001839901704267],[109.35173157142523,-0.08486883843559084],[109.35521403926114,-0.07981326504483512],[109.35829245193611,-0.07459025187888303],[109.35917228525658,-0.07312722971944],[109.3591782651555,-0.07312635585072236],[109.36041450523304,-0.07125274414937383],[109.36041574944277,-0.07124827587437617],[109.36041797001192,-0.07124749300969976],[109.36064959922003,-0.07089644184335257],[109.36129108773297,-0.06991875248622066],[109.36167313532991,-0.06925946260780556],[109.36238646935094,-0.06791577439347445],[109.36282990023265,-0.06704520059571245],[109.36283664283374,-0.06703196309703219],[109.36283924220497,-0.06702685980969039],[109.36283910147402,-0.06702667196022341],[109.36598030094072,-0.06026660899988584],[109.36785954183676,-0.05867591492962667],[109.36777761989717,-0.058613073788095216],[109.36779361917647,-0.05843595288703645],[109.36778162495155,-0.058387646708056955],[109.36774164048435,-0.05835544165437447],[109.36769365917024,-0.058315185397488936],[109.36766567043763,-0.05827895521130372],[109.3676496782494,-0.05821052149271316],[109.36763368629019,-0.05813403680449854],[109.36760969748056,-0.05804950091434412],[109.36758970628458,-0.05799716902455262],[109.36761369959507,-0.057924710985378894],[109.36761769986147,-0.057864328821279294],[109.36761770193164,-0.05779187008519002],[109.36760570757768,-0.057747589399603484],[109.36756972210253,-0.05769928253607192],[109.3675177417824,-0.05767512812331971],[109.36743377292261,-0.05765902375814567],[109.36739778664617,-0.057638895294551455],[109.36728183257443,-0.05751410192268641],[109.3672418466169,-0.05753422819379269],[109.36716187539065,-0.057550327826944],[109.36708590350693,-0.0575382491841164],[109.36699793681325,-0.05749799180783355],[109.36696195077207,-0.05746981238318298],[109.36695795349138,-0.05742553194398241],[109.36696595193777,-0.057377226365740386],[109.36712989485108,-0.0572765939686891],[109.36714188989606,-0.05729672173470122],[109.36716988023419,-0.05727659511582879],[109.36708991242887,-0.05717193023037265],[109.36706592085878,-0.05718400599595737],[109.36708191330376,-0.057244388717999986],[109.36699794275103,-0.05728866663515844],[109.36698594782081,-0.05726451338654648],[109.36695795839697,-0.057252436131609324],[109.36690997651223,-0.05723230733584371],[109.36689798249209,-0.057175950217531406],[109.3669819532656,-0.05712362132985517],[109.366836488492,-0.056901515272067896],[109.36677270724863,-0.05679570277346339],[109.36676121775581,-0.05675207467987724],[109.3668740057625,-0.05666068759883511],[109.36682202657603,-0.05659627838351911],[109.36678204063726,-0.05661640466807459],[109.366729076769,-0.05654657574564042],[109.36661410825336,-0.05639499832189014],[109.36639418546301,-0.05651173111060318],[109.36637019525472,-0.05647550108577026],[109.3665701262517,-0.056326563864144585],[109.36654613659809,-0.05627020642251357],[109.3665101509967,-0.05622592509367195],[109.36641019059405,-0.05611723423880407],[109.36634621746595,-0.055992442473620105],[109.36639819855388,-0.05598841844927554],[109.36623827910977,-0.05568829588435585],[109.36618228558717,-0.055698577654730075],[109.36605089373576,-0.055434004750743275],[109.36595038330717,-0.05523161527080817],[109.36589516770857,-0.055261545135679685],[109.36579443810771,-0.05531614606825555],[109.36578644169741,-0.055291992956616715],[109.36562249976855,-0.05536444707597378],[109.36559851032094,-0.05530003870977628],[109.36560250973662,-0.05526783497040557],[109.36557052310636,-0.05520745186583451],[109.36553453728084,-0.05517122153950435],[109.36549855123576,-0.05514304217651774],[109.36540259078818,-0.05498202028826975],[109.36545057397083,-0.054953843244278044],[109.36546656898497,-0.05492163983695868],[109.36543857978864,-0.05490151166144003],[109.36540659238564,-0.05486930693379749],[109.36535861171797,-0.05480489792109718],[109.36532262578041,-0.05477269308639613],[109.36528664060593,-0.05471230988842696],[109.36542659192712,-0.054615702185700006],[109.36536661586466,-0.05454324188874734],[109.36531463535084,-0.05452713854427252],[109.3651986806766,-0.0544224728815654],[109.36528302744722,-0.05432778367993095],[109.36520164475161,-0.05417210901534461],[109.36510373849845,-0.05398670275889562],[109.36500044162561,-0.05382934338786463],[109.36495911349884,-0.053759702762253433],[109.36482435805183,-0.05361481352445358],[109.36467741035204,-0.05367519176360451],[109.36457545256518,-0.05349404245382014],[109.3646474282352,-0.05341554753795306],[109.36462943555496,-0.05338837507040717],[109.3645334696481,-0.05343064003092263],[109.36452147484788,-0.05340044861614107],[109.3645364698248,-0.05338233436180131],[109.36450648186582,-0.05334308513769064],[109.36445250135556,-0.053355160129949994],[109.36442551301366,-0.05328873900556894],[109.36456346438173,-0.053213264958964425],[109.3644944927894,-0.0530955178555815],[109.36422848094016,-0.05263271277642474],[109.36418861660141,-0.05265471981897021],[109.36414063641939,-0.052570183506298426],[109.36412564176746,-0.05257622132815119],[109.3640746604861,-0.05257621998306889],[109.36400268628576,-0.05260037095238314],[109.36397869548888,-0.05258527477657811],[109.36391871814416,-0.05256112032638504],[109.36390372443661,-0.052530928846958355],[109.36390372639859,-0.05245545113730205],[109.36406252765248,-0.05235287404647941],[109.3640105353743,-0.05227471838719551],[109.36394586349036,-0.05215173401678236],[109.36393817831646,-0.05213724975816286],[109.36399670171352,-0.05209014145268094],[109.3638227715008,-0.051860684677261466],[109.36379072562528,-0.051891331833366],[109.36376279205861,-0.05191804617141255],[109.36377778592939,-0.051942199427738506],[109.36372080585083,-0.05198144634764212],[109.36366682350399,-0.05206597996403525],[109.36360384485049,-0.052135417800594504],[109.36358884957997,-0.05216560848729261],[109.36337647215817,-0.05235741848967411],[109.36333693840434,-0.05231051905171411],[109.36352287413452,-0.05215353032836207],[109.36348988680251,-0.052132395710388586],[109.36347189403827,-0.05210824237757218],[109.36348988812725,-0.05208107087844635],[109.3634539027531,-0.05202672599882762],[109.36350188582024,-0.05199955528200464],[109.36348689257392,-0.05195124916648312],[109.36354687193142,-0.05189690678944524],[109.36350488844546,-0.05185463818668325],[109.36337293499874,-0.05193011244128117],[109.36332495457509,-0.05185463350252849],[109.36338193518232,-0.051794252833936696],[109.36333095515936,-0.05174594578793275],[109.36329196863794,-0.051779154957166104],[109.36324998639255,-0.05168858064372768],[109.36345691450384,-0.05152555419708317],[109.36344491945174,-0.05150442013294075],[109.36350350282505,-0.051461956882718006],[109.36347067599854,-0.05141014026103844],[109.36339253536072,-0.051293484008386174],[109.36338387263875,-0.05128059146668026],[109.3632926461861,-0.05134356485890568],[109.36325266201055,-0.051299283586276265],[109.3631966831015,-0.051279154762270684],[109.36315669708611,-0.051307332067174256],[109.3631367055617,-0.05126305131280648],[109.3631287107494,-0.051174490628634536],[109.36308872687937,-0.05111813293434515],[109.3629487752807,-0.05123889361964209],[109.36284881133078,-0.05126706937747551],[109.36280882797976,-0.051190584310824364],[109.36301275746364,-0.05101346860686704],[109.36298476897707,-0.05096516217791833],[109.36293530098962,-0.0508584683780913],[109.36287691035987,-0.05081143712891819],[109.36276014474737,-0.05069206213525009],[109.36266670724217,-0.050589874628320645],[109.36263437912393,-0.050554593389834916],[109.36250592599053,-0.05041442150940707],[109.36237298848681,-0.05028056213393696],[109.36224722286754,-0.05014490589163686],[109.36212145723485,-0.04999387463823831],[109.36197864473625,-0.04981932775495954],[109.36183222287316,-0.049633030889205294],[109.36168400411715,-0.04946753089318956],[109.36153848849844,-0.049316499631445875],[109.36139386348755,-0.04916367150462954],[109.36125103535831,-0.04901262463854214],[109.3611082072481,-0.04886431213165419],[109.36096178537197,-0.048735890264149886],[109.36086476974131,-0.04864273400118973],[109.36081716037289,-0.04860746839028417],[109.3608027853598,-0.0485957027588042],[109.36079739473277,-0.048580327764626605],[109.36077673848317,-0.048548687127765444],[109.3607291291115,-0.04849079651376115],[109.36065995724562,-0.04841845276519255],[109.36058091035834,-0.04833706212599964],[109.36050366036237,-0.04825565589168769],[109.36042820724111,-0.048176984009334844],[109.36035005099836,-0.04810010901007835],[109.36026741036504,-0.048018718377986304],[109.36017667599177,-0.0479391246377138],[109.3600850509853,-0.047870390261888475],[109.36001589473813,-0.04780709338382904],[109.35996648849243,-0.047741968389913396],[109.35991528537184,-0.04767323401643266],[109.35985778535861,-0.04760812463552371],[109.35980030098357,-0.04754753089157272],[109.35973651974159,-0.04748874963936883],[109.3596718478736,-0.047436296503040445],[109.35954608223302,-0.04732957775593727],[109.35948320723493,-0.04727440587834581],[109.35935655098565,-0.047159546514658854],[109.35921911348387,-0.04703023401526369],[109.35908976973376,-0.04689999963101887],[109.35895770724454,-0.046758015265081845],[109.35880859786593,-0.046616921510605126],[109.3586513947372,-0.04646951525790752],[109.3584915041194,-0.046332046501001395],[109.35834058223476,-0.04621628087817594],[109.35820853536322,-0.046107765259906924],[109.35808547286094,-0.045996515254539884],[109.35800464473208,-0.045912405877382254],[109.35797678536899,-0.045878952749835736],[109.3579704884894,-0.04587262463159546],[109.35796600410657,-0.04586629650353804],[109.35793816036531,-0.04584278087586946],[109.3578501291137,-0.045766812126829946],[109.35771269161208,-0.04563839025944261],[109.35755009786892,-0.04550182775933234],[109.35736773848056,-0.045362546504240965],[109.35719078536735,-0.04519523400136286],[109.357023707237,-0.04499807775636303],[109.35684944162088,-0.04481178088107389],[109.35665809786379,-0.04464267149998366],[109.35646856661096,-0.04446721838889703],[109.35629698847971,-0.04428090588788119],[109.35612542599418,-0.04410456212951205],[109.35593678536611,-0.043927296499979576],[109.35573734786117,-0.04374009338507419],[109.35555320724521,-0.04353299962899523],[109.3553744572408,-0.04334217151313006],[109.35518761348527,-0.04315948400864796],[109.35500526973965,-0.042963234003939886],[109.3548354884937,-0.042752515246202216],[109.3546818791144,-0.04256712462387454],[109.35452378536775,-0.042380827746403296],[109.35434681660429,-0.04218457775050146],[109.35431448848381,-0.04214840587070115],[109.3542517137578,-0.04207834350964987],[109.353347075267,-0.043105218849610556],[109.35175946042835,-0.044535422834847266],[109.35193342151881,-0.04487510170995203],[109.35087495701238,-0.04606645834771445],[109.34954295376905,-0.04751183325128081],[109.3485814044353,-0.04896407822417487],[109.34727622990725,-0.05100467478763772],[109.34548918426675,-0.053022664678963764],[109.34177229675163,-0.057301053193673665],[109.33822989052751,-0.06131030726062607],[109.3350185978989,-0.06513216064808534],[109.3324355082375,-0.06818769289691332],[109.33040539270073,-0.07078409119737616],[109.32774600026451,-0.07481502560151726],[109.32463498212682,-0.07940820627817205],[109.32393840924078,-0.08043223156481946],[109.32389276289443,-0.08052549670981375]]]},"properties":{"Id":0,"Plan_Area":113026328.1,"Ket":"Pontianak Tenggara","Penduduk":49176}} +]} \ No newline at end of file diff --git a/sistem-km-next/src/lib/initLeafletHeat.js b/sistem-km-next/src/lib/initLeafletHeat.js new file mode 100644 index 0000000..eb966b0 --- /dev/null +++ b/sistem-km-next/src/lib/initLeafletHeat.js @@ -0,0 +1,224 @@ +/** + * A safe, modular Leaflet Heatmap Layer factory that does NOT mutate the + * read-only/frozen Leaflet ES module (L) instance. + * + * Usage: + * import { createHeatLayer } from '@/lib/initLeafletHeat'; + * ... + * heatLayersRef.current = createHeatLayer(L, points, options).addTo(map); + */ + +// ─── simpleheat (inlined from mourner/simpleheat) ─────────────────────────── +function simpleheat(canvas) { + if (!(this instanceof simpleheat)) return new simpleheat(canvas); + this._canvas = canvas = typeof canvas === 'string' + ? document.getElementById(canvas) + : canvas; + this._ctx = canvas.getContext('2d'); + this._width = canvas.width; + this._height = canvas.height; + this._max = 1; + this.clear(); +} + +simpleheat.prototype = { + defaultRadius: 25, + defaultGradient: { 0.4: 'blue', 0.6: 'cyan', 0.7: 'lime', 0.8: 'yellow', 1: 'red' }, + + data(data) { this._data = data; return this; }, + max(max) { this._max = max; return this; }, + add(point) { this._data.push(point); return this; }, + clear() { this._data = []; return this; }, + + radius(r, blur) { + blur = blur || 15; + const circle = this._circle = document.createElement('canvas'); + const ctx = circle.getContext('2d'); + const e = this._r = r + blur; + circle.width = circle.height = 2 * e; + ctx.shadowOffsetX = ctx.shadowOffsetY = 200; + ctx.shadowBlur = blur; + ctx.shadowColor = 'black'; + ctx.beginPath(); + ctx.arc(e - 200, e - 200, r, 0, Math.PI * 2, true); + ctx.closePath(); + ctx.fill(); + return this; + }, + + gradient(grad) { + const canvas = document.createElement('canvas'); + const ctx = canvas.getContext('2d'); + const grad2 = ctx.createLinearGradient(0, 0, 0, 256); + canvas.width = 1; + canvas.height = 256; + for (const i in grad) grad2.addColorStop(+i, grad[i]); + ctx.fillStyle = grad2; + ctx.fillRect(0, 0, 1, 256); + this._grad = ctx.getImageData(0, 0, 1, 256).data; + return this; + }, + + draw(minOpacity) { + if (!this._circle) this.radius(this.defaultRadius); + if (!this._grad) this.gradient(this.defaultGradient); + const ctx = this._ctx; + ctx.clearRect(0, 0, this._width, this._height); + for (let i = 0, len = this._data.length; i < len; i++) { + const p = this._data[i]; + ctx.globalAlpha = Math.max(p[2] / this._max, minOpacity || 0.05); + ctx.drawImage(this._circle, p[0] - this._r, p[1] - this._r); + } + const img = ctx.getImageData(0, 0, this._width, this._height); + this._colorize(img.data, this._grad); + ctx.putImageData(img, 0, 0); + return this; + }, + + _colorize(pixels, grad) { + for (let j = 3, len = pixels.length; j < len; j += 4) { + const k = pixels[j] * 4; + if (k) { + pixels[j - 3] = grad[k]; + pixels[j - 2] = grad[k + 1]; + pixels[j - 1] = grad[k + 2]; + } + } + } +}; + +// Cache the HeatLayer class once defined per L instance +let HeatLayerClass = null; + +export function createHeatLayer(L, latlngs, options) { + if (!HeatLayerClass) { + HeatLayerClass = (L.Layer ? L.Layer : L.Class).extend({ + initialize(latlngs, options) { + this._latlngs = latlngs; + L.setOptions(this, options); + }, + + setLatLngs(latlngs) { this._latlngs = latlngs; return this.redraw(); }, + addLatLng(latlng) { this._latlngs.push(latlng); return this.redraw(); }, + + setOptions(options) { + L.setOptions(this, options); + if (this._heat) this._updateOptions(); + return this.redraw(); + }, + + redraw() { + if (!this._heat || this._frame || this._map._animating) return this; + this._frame = L.Util.requestAnimFrame(this._redraw, this); + return this; + }, + + onAdd(map) { + this._map = map; + if (!this._canvas) this._initCanvas(); + map.getPanes().overlayPane.appendChild(this._canvas); + map.on('moveend', this._reset, this); + if (map.options.zoomAnimation && L.Browser.any3d) { + map.on('zoomanim', this._animateZoom, this); + } + this._reset(); + }, + + onRemove(map) { + map.getPanes().overlayPane.removeChild(this._canvas); + map.off('moveend', this._reset, this); + if (map.options.zoomAnimation) { + map.off('zoomanim', this._animateZoom, this); + } + }, + + addTo(map) { map.addLayer(this); return this; }, + + _initCanvas() { + const canvas = this._canvas = L.DomUtil.create('canvas', 'leaflet-heatmap-layer leaflet-layer'); + const originProp = L.DomUtil.testProp(['transformOrigin', 'WebkitTransformOrigin', 'msTransformOrigin']); + canvas.style[originProp] = '50% 50%'; + const size = this._map.getSize(); + canvas.width = size.x; + canvas.height = size.y; + const animated = this._map.options.zoomAnimation && L.Browser.any3d; + L.DomUtil.addClass(canvas, 'leaflet-zoom-' + (animated ? 'animated' : 'hide')); + this._heat = simpleheat(canvas); + this._updateOptions(); + }, + + _updateOptions() { + this._heat.radius(this.options.radius || this._heat.defaultRadius, this.options.blur); + if (this.options.gradient) this._heat.gradient(this.options.gradient); + if (this.options.max) this._heat.max(this.options.max); + }, + + _reset() { + const topLeft = this._map.containerPointToLayerPoint([0, 0]); + L.DomUtil.setPosition(this._canvas, topLeft); + const size = this._map.getSize(); + if (this._heat._width !== size.x) this._canvas.width = this._heat._width = size.x; + if (this._heat._height !== size.y) this._canvas.height = this._heat._height = size.y; + this._redraw(); + }, + + _redraw() { + const r = this._heat._r; + const size = this._map.getSize(); + const bounds = new L.Bounds(L.point([-r, -r]), size.add([r, r])); + const maxVal = this.options.max == null ? 1 : this.options.max; + const maxZoom = this.options.maxZoom == null ? this._map.getMaxZoom() : this.options.maxZoom; + const v = 1 / Math.pow(2, Math.max(0, Math.min(maxZoom - this._map.getZoom(), 12))); + const cellSize = r / 2; + const panePos = this._map._getMapPanePos(); + const offsetX = panePos.x % cellSize; + const offsetY = panePos.y % cellSize; + const grid = []; + const points = []; + + for (let i = 0, len = this._latlngs.length; i < len; i++) { + const p = this._map.latLngToContainerPoint(this._latlngs[i]); + if (!bounds.contains(p)) continue; + const x = Math.floor((p.x - offsetX) / cellSize) + 2; + const y = Math.floor((p.y - offsetY) / cellSize) + 2; + const alt = this._latlngs[i].alt != null ? this._latlngs[i].alt + : this._latlngs[i][2] != null ? +this._latlngs[i][2] + : 1; + const w = alt * v; + grid[y] = grid[y] || []; + const cell = grid[y][x]; + if (cell) { + cell[0] = (cell[0] * cell[2] + p.x * w) / (cell[2] + w); + cell[1] = (cell[1] * cell[2] + p.y * w) / (cell[2] + w); + cell[2] += w; + } else { + grid[y][x] = [p.x, p.y, w]; + } + } + + for (let i = 0, len = grid.length; i < len; i++) { + if (!grid[i]) continue; + for (let j = 0, jlen = grid[i].length; j < jlen; j++) { + const cell = grid[i][j]; + if (cell) points.push([Math.round(cell[0]), Math.round(cell[1]), Math.min(cell[2], maxVal)]); + } + } + + this._heat.data(points).draw(this.options.minOpacity); + this._frame = null; + }, + + _animateZoom(e) { + const scale = this._map.getZoomScale(e.zoom); + const offset = this._map._getCenterOffset(e.center)._multiplyBy(-scale).subtract(this._map._getMapPanePos()); + if (L.DomUtil.setTransform) { + L.DomUtil.setTransform(this._canvas, offset, scale); + } else { + this._canvas.style[L.DomUtil.TRANSFORM] = L.DomUtil.getTranslateString(offset) + ' scale(' + scale + ')'; + } + } + }); + } + + return new HeatLayerClass(latlngs, options); +} diff --git a/sistem-km-next/src/lib/supabase.js b/sistem-km-next/src/lib/supabase.js new file mode 100644 index 0000000..b6565d7 --- /dev/null +++ b/sistem-km-next/src/lib/supabase.js @@ -0,0 +1,6 @@ +import { createClient } from '@supabase/supabase-js'; + +const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL; +const supabaseAnonKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY; + +export const supabase = createClient(supabaseUrl, supabaseAnonKey); diff --git a/spbu-map/db.php b/spbu-map/db.php new file mode 100644 index 0000000..0ab65e3 --- /dev/null +++ b/spbu-map/db.php @@ -0,0 +1,13 @@ +setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); +} catch (PDOException $e) { + die("Database connection failed: " . $e->getMessage()); +} +?> \ No newline at end of file diff --git a/spbu-map/delete_spbu.php b/spbu-map/delete_spbu.php new file mode 100644 index 0000000..ad99a5d --- /dev/null +++ b/spbu-map/delete_spbu.php @@ -0,0 +1,28 @@ + "error", "message" => "Missing id."]); + exit; + } + + $sql = "DELETE FROM SPBU WHERE id = ?"; + $stmt = $pdo->prepare($sql); + + if ($stmt->execute([$id])) { + echo json_encode(["status" => "success", "message" => "Data deleted!"]); + } else { + http_response_code(500); + echo json_encode(["status" => "error", "message" => "Failed to delete data."]); + } +} else { + http_response_code(405); + echo json_encode(["status" => "error", "message" => "Method not allowed."]); +} +?> \ No newline at end of file diff --git a/spbu-map/get_spbu.php b/spbu-map/get_spbu.php new file mode 100644 index 0000000..f72f7fc --- /dev/null +++ b/spbu-map/get_spbu.php @@ -0,0 +1,10 @@ +query($sql); +$results = $stmt->fetchAll(PDO::FETCH_ASSOC); + +header('Content-Type: application/json'); +echo json_encode($results); +?> \ No newline at end of file diff --git a/spbu-map/index.html b/spbu-map/index.html new file mode 100644 index 0000000..2f891c7 --- /dev/null +++ b/spbu-map/index.html @@ -0,0 +1,479 @@ + + + + + + Peta SPBU + + + + + +
+
Peta SPBU
+ + +
+ + +
+ +
+ +
+

Ubah SPBU

+
+ + + + + +
+ Lintang & bujur akan berubah saat titik dipindah (mode Pindah aktif). +
+ +
+ + +
+
+
+ + + + \ No newline at end of file diff --git a/spbu-map/save_spbu.php b/spbu-map/save_spbu.php new file mode 100644 index 0000000..c20cd47 --- /dev/null +++ b/spbu-map/save_spbu.php @@ -0,0 +1,32 @@ + "error", "message" => "Missing required fields."]); + exit; + } + + $sql = "INSERT INTO SPBU (nama, nomor, status, Latitude, Longitude) VALUES (?, ?, ?, ?, ?)"; + $stmt = $pdo->prepare($sql); + + if ($stmt->execute([$nama, $nomor, $status, $lat, $lng])) { + echo json_encode(["status" => "success", "message" => "SPBU Data Saved!"]); + } else { + http_response_code(500); + echo json_encode(["status" => "error", "message" => "Failed to save data."]); + } +} else { + http_response_code(405); + echo json_encode(["status" => "error", "message" => "Method not allowed."]); +} +?> \ No newline at end of file diff --git a/spbu-map/update_spbu.php b/spbu-map/update_spbu.php new file mode 100644 index 0000000..e05b1c7 --- /dev/null +++ b/spbu-map/update_spbu.php @@ -0,0 +1,65 @@ + "error", "message" => "Missing id."]); + exit; + } + + $fields = []; + $values = []; + + if ($nama !== null) { + $fields[] = "nama = ?"; + $values[] = $nama; + } + if ($nomor !== null) { + $fields[] = "nomor = ?"; + $values[] = $nomor; + } + if ($status !== null) { + $fields[] = "status = ?"; + $values[] = $status; + } + if ($lat !== null) { + $fields[] = "Latitude = ?"; + $values[] = $lat; + } + if ($lng !== null) { + $fields[] = "Longitude = ?"; + $values[] = $lng; + } + + if (count($fields) === 0) { + http_response_code(400); + echo json_encode(["status" => "error", "message" => "No fields to update."]); + exit; + } + + $values[] = $id; + + $sql = "UPDATE SPBU SET " . implode(", ", $fields) . " WHERE id = ?"; + $stmt = $pdo->prepare($sql); + + if ($stmt->execute($values)) { + echo json_encode(["status" => "success", "message" => "Data updated!"]); + } else { + http_response_code(500); + echo json_encode(["status" => "error", "message" => "Failed to update data."]); + } +} else { + http_response_code(405); + echo json_encode(["status" => "error", "message" => "Method not allowed."]); +} +?> \ No newline at end of file diff --git a/spbu-map/view.html b/spbu-map/view.html new file mode 100644 index 0000000..e2b2636 --- /dev/null +++ b/spbu-map/view.html @@ -0,0 +1,15 @@ + + + + + + Peta SPBU + + + + + Mengalihkan ke index.html... + + \ No newline at end of file