1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018 |
- <!DOCTYPE HTML>
- <html>
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <title>Get Started With The A* Pathfinding Project - A* Pathfinding Project</title>
- <style>/*!
- * Bootstrap v3.3.5 (http://getbootstrap.com)
- * Copyright 2011-2015 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
- /*!
- * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=ca1d29b8c16a782c676c)
- * Config saved to config.json and https://gist.github.com/ca1d29b8c16a782c676c
- */
- /*!
- * Bootstrap v3.3.5 (http://getbootstrap.com)
- * Copyright 2011-2015 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
- /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
- html {
- font-family: sans-serif;
- -ms-text-size-adjust: 100%;
- -webkit-text-size-adjust: 100%;
- }
- body {
- margin: 0;
- }
- article,
- aside,
- details,
- figcaption,
- figure,
- footer,
- header,
- hgroup,
- main,
- menu,
- nav,
- section,
- summary {
- display: block;
- }
- audio,
- canvas,
- progress,
- video {
- display: inline-block;
- vertical-align: baseline;
- }
- audio:not([controls]) {
- display: none;
- height: 0;
- }
- [hidden],
- template {
- display: none;
- }
- a {
- background-color: transparent;
- }
- a:active,
- a:hover {
- outline: 0;
- }
- abbr[title] {
- border-bottom: 1px dotted;
- }
- b,
- strong {
- font-weight: bold;
- }
- dfn {
- font-style: italic;
- }
- h1 {
- font-size: 2em;
- margin: 0.67em 0;
- }
- mark {
- background: #ff0;
- color: #000;
- }
- small {
- font-size: 80%;
- }
- sub,
- sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline;
- }
- sup {
- top: -0.5em;
- }
- sub {
- bottom: -0.25em;
- }
- img {
- border: 0;
- }
- svg:not(:root) {
- overflow: hidden;
- }
- figure {
- margin: 1em 40px;
- }
- hr {
- -webkit-box-sizing: content-box;
- -moz-box-sizing: content-box;
- box-sizing: content-box;
- height: 0;
- }
- pre {
- overflow: auto;
- }
- code,
- kbd,
- pre,
- samp {
- font-family: monospace, monospace;
- font-size: 1em;
- }
- button,
- input,
- optgroup,
- select,
- textarea {
- color: inherit;
- font: inherit;
- margin: 0;
- }
- button {
- overflow: visible;
- }
- button,
- select {
- text-transform: none;
- }
- button,
- html input[type="button"],
- input[type="reset"],
- input[type="submit"] {
- -webkit-appearance: button;
- cursor: pointer;
- }
- button[disabled],
- html input[disabled] {
- cursor: default;
- }
- button::-moz-focus-inner,
- input::-moz-focus-inner {
- border: 0;
- padding: 0;
- }
- input {
- line-height: normal;
- }
- input[type="checkbox"],
- input[type="radio"] {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- padding: 0;
- }
- input[type="number"]::-webkit-inner-spin-button,
- input[type="number"]::-webkit-outer-spin-button {
- height: auto;
- }
- input[type="search"] {
- -webkit-appearance: textfield;
- -webkit-box-sizing: content-box;
- -moz-box-sizing: content-box;
- box-sizing: content-box;
- }
- input[type="search"]::-webkit-search-cancel-button,
- input[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none;
- }
- fieldset {
- border: 1px solid #c0c0c0;
- margin: 0 2px;
- padding: 0.35em 0.625em 0.75em;
- }
- legend {
- border: 0;
- padding: 0;
- }
- textarea {
- overflow: auto;
- }
- optgroup {
- font-weight: bold;
- }
- table {
- border-collapse: collapse;
- border-spacing: 0;
- }
- td,
- th {
- padding: 0;
- }
- /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
- @media print {
- *,
- *:before,
- *:after {
- background: transparent !important;
- color: #000 !important;
- -webkit-box-shadow: none !important;
- box-shadow: none !important;
- text-shadow: none !important;
- }
- a,
- a:visited {
- text-decoration: underline;
- }
- a[href]:after {
- content: " (" attr(href) ")";
- }
- abbr[title]:after {
- content: " (" attr(title) ")";
- }
- a[href^="#"]:after,
- a[href^="javascript:"]:after {
- content: "";
- }
- pre,
- blockquote {
- border: 1px solid #999;
- page-break-inside: avoid;
- }
- thead {
- display: table-header-group;
- }
- tr,
- img {
- page-break-inside: avoid;
- }
- img {
- max-width: 100% !important;
- }
- p,
- h2,
- h3 {
- orphans: 3;
- widows: 3;
- }
- h2,
- h3 {
- page-break-after: avoid;
- }
- .navbar {
- display: none;
- }
- .btn > .caret,
- .dropup > .btn > .caret {
- border-top-color: #000 !important;
- }
- .label {
- border: 1px solid #000;
- }
- .table {
- border-collapse: collapse !important;
- }
- .table td,
- .table th {
- background-color: #fff !important;
- }
- .table-bordered th,
- .table-bordered td {
- border: 1px solid #ddd !important;
- }
- }
- @font-face {
- font-family: 'Glyphicons Halflings';
- src: url('../fonts/glyphicons-halflings-regular.eot');
- src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
- }
- .glyphicon {
- position: relative;
- top: 1px;
- display: inline-block;
- font-family: 'Glyphicons Halflings';
- font-style: normal;
- font-weight: normal;
- line-height: 1;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- }
- .glyphicon-asterisk:before {
- content: "\2a";
- }
- .glyphicon-plus:before {
- content: "\2b";
- }
- .glyphicon-euro:before,
- .glyphicon-eur:before {
- content: "\20ac";
- }
- .glyphicon-minus:before {
- content: "\2212";
- }
- .glyphicon-cloud:before {
- content: "\2601";
- }
- .glyphicon-envelope:before {
- content: "\2709";
- }
- .glyphicon-pencil:before {
- content: "\270f";
- }
- .glyphicon-glass:before {
- content: "\e001";
- }
- .glyphicon-music:before {
- content: "\e002";
- }
- .glyphicon-search:before {
- content: "\e003";
- }
- .glyphicon-heart:before {
- content: "\e005";
- }
- .glyphicon-star:before {
- content: "\e006";
- }
- .glyphicon-star-empty:before {
- content: "\e007";
- }
- .glyphicon-user:before {
- content: "\e008";
- }
- .glyphicon-film:before {
- content: "\e009";
- }
- .glyphicon-th-large:before {
- content: "\e010";
- }
- .glyphicon-th:before {
- content: "\e011";
- }
- .glyphicon-th-list:before {
- content: "\e012";
- }
- .glyphicon-ok:before {
- content: "\e013";
- }
- .glyphicon-remove:before {
- content: "\e014";
- }
- .glyphicon-zoom-in:before {
- content: "\e015";
- }
- .glyphicon-zoom-out:before {
- content: "\e016";
- }
- .glyphicon-off:before {
- content: "\e017";
- }
- .glyphicon-signal:before {
- content: "\e018";
- }
- .glyphicon-cog:before {
- content: "\e019";
- }
- .glyphicon-trash:before {
- content: "\e020";
- }
- .glyphicon-home:before {
- content: "\e021";
- }
- .glyphicon-file:before {
- content: "\e022";
- }
- .glyphicon-time:before {
- content: "\e023";
- }
- .glyphicon-road:before {
- content: "\e024";
- }
- .glyphicon-download-alt:before {
- content: "\e025";
- }
- .glyphicon-download:before {
- content: "\e026";
- }
- .glyphicon-upload:before {
- content: "\e027";
- }
- .glyphicon-inbox:before {
- content: "\e028";
- }
- .glyphicon-play-circle:before {
- content: "\e029";
- }
- .glyphicon-repeat:before {
- content: "\e030";
- }
- .glyphicon-refresh:before {
- content: "\e031";
- }
- .glyphicon-list-alt:before {
- content: "\e032";
- }
- .glyphicon-lock:before {
- content: "\e033";
- }
- .glyphicon-flag:before {
- content: "\e034";
- }
- .glyphicon-headphones:before {
- content: "\e035";
- }
- .glyphicon-volume-off:before {
- content: "\e036";
- }
- .glyphicon-volume-down:before {
- content: "\e037";
- }
- .glyphicon-volume-up:before {
- content: "\e038";
- }
- .glyphicon-qrcode:before {
- content: "\e039";
- }
- .glyphicon-barcode:before {
- content: "\e040";
- }
- .glyphicon-tag:before {
- content: "\e041";
- }
- .glyphicon-tags:before {
- content: "\e042";
- }
- .glyphicon-book:before {
- content: "\e043";
- }
- .glyphicon-bookmark:before {
- content: "\e044";
- }
- .glyphicon-print:before {
- content: "\e045";
- }
- .glyphicon-camera:before {
- content: "\e046";
- }
- .glyphicon-font:before {
- content: "\e047";
- }
- .glyphicon-bold:before {
- content: "\e048";
- }
- .glyphicon-italic:before {
- content: "\e049";
- }
- .glyphicon-text-height:before {
- content: "\e050";
- }
- .glyphicon-text-width:before {
- content: "\e051";
- }
- .glyphicon-align-left:before {
- content: "\e052";
- }
- .glyphicon-align-center:before {
- content: "\e053";
- }
- .glyphicon-align-right:before {
- content: "\e054";
- }
- .glyphicon-align-justify:before {
- content: "\e055";
- }
- .glyphicon-list:before {
- content: "\e056";
- }
- .glyphicon-indent-left:before {
- content: "\e057";
- }
- .glyphicon-indent-right:before {
- content: "\e058";
- }
- .glyphicon-facetime-video:before {
- content: "\e059";
- }
- .glyphicon-picture:before {
- content: "\e060";
- }
- .glyphicon-map-marker:before {
- content: "\e062";
- }
- .glyphicon-adjust:before {
- content: "\e063";
- }
- .glyphicon-tint:before {
- content: "\e064";
- }
- .glyphicon-edit:before {
- content: "\e065";
- }
- .glyphicon-share:before {
- content: "\e066";
- }
- .glyphicon-check:before {
- content: "\e067";
- }
- .glyphicon-move:before {
- content: "\e068";
- }
- .glyphicon-step-backward:before {
- content: "\e069";
- }
- .glyphicon-fast-backward:before {
- content: "\e070";
- }
- .glyphicon-backward:before {
- content: "\e071";
- }
- .glyphicon-play:before {
- content: "\e072";
- }
- .glyphicon-pause:before {
- content: "\e073";
- }
- .glyphicon-stop:before {
- content: "\e074";
- }
- .glyphicon-forward:before {
- content: "\e075";
- }
- .glyphicon-fast-forward:before {
- content: "\e076";
- }
- .glyphicon-step-forward:before {
- content: "\e077";
- }
- .glyphicon-eject:before {
- content: "\e078";
- }
- .glyphicon-chevron-left:before {
- content: "\e079";
- }
- .glyphicon-chevron-right:before {
- content: "\e080";
- }
- .glyphicon-plus-sign:before {
- content: "\e081";
- }
- .glyphicon-minus-sign:before {
- content: "\e082";
- }
- .glyphicon-remove-sign:before {
- content: "\e083";
- }
- .glyphicon-ok-sign:before {
- content: "\e084";
- }
- .glyphicon-question-sign:before {
- content: "\e085";
- }
- .glyphicon-info-sign:before {
- content: "\e086";
- }
- .glyphicon-screenshot:before {
- content: "\e087";
- }
- .glyphicon-remove-circle:before {
- content: "\e088";
- }
- .glyphicon-ok-circle:before {
- content: "\e089";
- }
- .glyphicon-ban-circle:before {
- content: "\e090";
- }
- .glyphicon-arrow-left:before {
- content: "\e091";
- }
- .glyphicon-arrow-right:before {
- content: "\e092";
- }
- .glyphicon-arrow-up:before {
- content: "\e093";
- }
- .glyphicon-arrow-down:before {
- content: "\e094";
- }
- .glyphicon-share-alt:before {
- content: "\e095";
- }
- .glyphicon-resize-full:before {
- content: "\e096";
- }
- .glyphicon-resize-small:before {
- content: "\e097";
- }
- .glyphicon-exclamation-sign:before {
- content: "\e101";
- }
- .glyphicon-gift:before {
- content: "\e102";
- }
- .glyphicon-leaf:before {
- content: "\e103";
- }
- .glyphicon-fire:before {
- content: "\e104";
- }
- .glyphicon-eye-open:before {
- content: "\e105";
- }
- .glyphicon-eye-close:before {
- content: "\e106";
- }
- .glyphicon-warning-sign:before {
- content: "\e107";
- }
- .glyphicon-plane:before {
- content: "\e108";
- }
- .glyphicon-calendar:before {
- content: "\e109";
- }
- .glyphicon-random:before {
- content: "\e110";
- }
- .glyphicon-comment:before {
- content: "\e111";
- }
- .glyphicon-magnet:before {
- content: "\e112";
- }
- .glyphicon-chevron-up:before {
- content: "\e113";
- }
- .glyphicon-chevron-down:before {
- content: "\e114";
- }
- .glyphicon-retweet:before {
- content: "\e115";
- }
- .glyphicon-shopping-cart:before {
- content: "\e116";
- }
- .glyphicon-folder-close:before {
- content: "\e117";
- }
- .glyphicon-folder-open:before {
- content: "\e118";
- }
- .glyphicon-resize-vertical:before {
- content: "\e119";
- }
- .glyphicon-resize-horizontal:before {
- content: "\e120";
- }
- .glyphicon-hdd:before {
- content: "\e121";
- }
- .glyphicon-bullhorn:before {
- content: "\e122";
- }
- .glyphicon-bell:before {
- content: "\e123";
- }
- .glyphicon-certificate:before {
- content: "\e124";
- }
- .glyphicon-thumbs-up:before {
- content: "\e125";
- }
- .glyphicon-thumbs-down:before {
- content: "\e126";
- }
- .glyphicon-hand-right:before {
- content: "\e127";
- }
- .glyphicon-hand-left:before {
- content: "\e128";
- }
- .glyphicon-hand-up:before {
- content: "\e129";
- }
- .glyphicon-hand-down:before {
- content: "\e130";
- }
- .glyphicon-circle-arrow-right:before {
- content: "\e131";
- }
- .glyphicon-circle-arrow-left:before {
- content: "\e132";
- }
- .glyphicon-circle-arrow-up:before {
- content: "\e133";
- }
- .glyphicon-circle-arrow-down:before {
- content: "\e134";
- }
- .glyphicon-globe:before {
- content: "\e135";
- }
- .glyphicon-wrench:before {
- content: "\e136";
- }
- .glyphicon-tasks:before {
- content: "\e137";
- }
- .glyphicon-filter:before {
- content: "\e138";
- }
- .glyphicon-briefcase:before {
- content: "\e139";
- }
- .glyphicon-fullscreen:before {
- content: "\e140";
- }
- .glyphicon-dashboard:before {
- content: "\e141";
- }
- .glyphicon-paperclip:before {
- content: "\e142";
- }
- .glyphicon-heart-empty:before {
- content: "\e143";
- }
- .glyphicon-link:before {
- content: "\e144";
- }
- .glyphicon-phone:before {
- content: "\e145";
- }
- .glyphicon-pushpin:before {
- content: "\e146";
- }
- .glyphicon-usd:before {
- content: "\e148";
- }
- .glyphicon-gbp:before {
- content: "\e149";
- }
- .glyphicon-sort:before {
- content: "\e150";
- }
- .glyphicon-sort-by-alphabet:before {
- content: "\e151";
- }
- .glyphicon-sort-by-alphabet-alt:before {
- content: "\e152";
- }
- .glyphicon-sort-by-order:before {
- content: "\e153";
- }
- .glyphicon-sort-by-order-alt:before {
- content: "\e154";
- }
- .glyphicon-sort-by-attributes:before {
- content: "\e155";
- }
- .glyphicon-sort-by-attributes-alt:before {
- content: "\e156";
- }
- .glyphicon-unchecked:before {
- content: "\e157";
- }
- .glyphicon-expand:before {
- content: "\e158";
- }
- .glyphicon-collapse-down:before {
- content: "\e159";
- }
- .glyphicon-collapse-up:before {
- content: "\e160";
- }
- .glyphicon-log-in:before {
- content: "\e161";
- }
- .glyphicon-flash:before {
- content: "\e162";
- }
- .glyphicon-log-out:before {
- content: "\e163";
- }
- .glyphicon-new-window:before {
- content: "\e164";
- }
- .glyphicon-record:before {
- content: "\e165";
- }
- .glyphicon-save:before {
- content: "\e166";
- }
- .glyphicon-open:before {
- content: "\e167";
- }
- .glyphicon-saved:before {
- content: "\e168";
- }
- .glyphicon-import:before {
- content: "\e169";
- }
- .glyphicon-export:before {
- content: "\e170";
- }
- .glyphicon-send:before {
- content: "\e171";
- }
- .glyphicon-floppy-disk:before {
- content: "\e172";
- }
- .glyphicon-floppy-saved:before {
- content: "\e173";
- }
- .glyphicon-floppy-remove:before {
- content: "\e174";
- }
- .glyphicon-floppy-save:before {
- content: "\e175";
- }
- .glyphicon-floppy-open:before {
- content: "\e176";
- }
- .glyphicon-credit-card:before {
- content: "\e177";
- }
- .glyphicon-transfer:before {
- content: "\e178";
- }
- .glyphicon-cutlery:before {
- content: "\e179";
- }
- .glyphicon-header:before {
- content: "\e180";
- }
- .glyphicon-compressed:before {
- content: "\e181";
- }
- .glyphicon-earphone:before {
- content: "\e182";
- }
- .glyphicon-phone-alt:before {
- content: "\e183";
- }
- .glyphicon-tower:before {
- content: "\e184";
- }
- .glyphicon-stats:before {
- content: "\e185";
- }
- .glyphicon-sd-video:before {
- content: "\e186";
- }
- .glyphicon-hd-video:before {
- content: "\e187";
- }
- .glyphicon-subtitles:before {
- content: "\e188";
- }
- .glyphicon-sound-stereo:before {
- content: "\e189";
- }
- .glyphicon-sound-dolby:before {
- content: "\e190";
- }
- .glyphicon-sound-5-1:before {
- content: "\e191";
- }
- .glyphicon-sound-6-1:before {
- content: "\e192";
- }
- .glyphicon-sound-7-1:before {
- content: "\e193";
- }
- .glyphicon-copyright-mark:before {
- content: "\e194";
- }
- .glyphicon-registration-mark:before {
- content: "\e195";
- }
- .glyphicon-cloud-download:before {
- content: "\e197";
- }
- .glyphicon-cloud-upload:before {
- content: "\e198";
- }
- .glyphicon-tree-conifer:before {
- content: "\e199";
- }
- .glyphicon-tree-deciduous:before {
- content: "\e200";
- }
- .glyphicon-cd:before {
- content: "\e201";
- }
- .glyphicon-save-file:before {
- content: "\e202";
- }
- .glyphicon-open-file:before {
- content: "\e203";
- }
- .glyphicon-level-up:before {
- content: "\e204";
- }
- .glyphicon-copy:before {
- content: "\e205";
- }
- .glyphicon-paste:before {
- content: "\e206";
- }
- .glyphicon-alert:before {
- content: "\e209";
- }
- .glyphicon-equalizer:before {
- content: "\e210";
- }
- .glyphicon-king:before {
- content: "\e211";
- }
- .glyphicon-queen:before {
- content: "\e212";
- }
- .glyphicon-pawn:before {
- content: "\e213";
- }
- .glyphicon-bishop:before {
- content: "\e214";
- }
- .glyphicon-knight:before {
- content: "\e215";
- }
- .glyphicon-baby-formula:before {
- content: "\e216";
- }
- .glyphicon-tent:before {
- content: "\26fa";
- }
- .glyphicon-blackboard:before {
- content: "\e218";
- }
- .glyphicon-bed:before {
- content: "\e219";
- }
- .glyphicon-apple:before {
- content: "\f8ff";
- }
- .glyphicon-erase:before {
- content: "\e221";
- }
- .glyphicon-hourglass:before {
- content: "\231b";
- }
- .glyphicon-lamp:before {
- content: "\e223";
- }
- .glyphicon-duplicate:before {
- content: "\e224";
- }
- .glyphicon-piggy-bank:before {
- content: "\e225";
- }
- .glyphicon-scissors:before {
- content: "\e226";
- }
- .glyphicon-bitcoin:before {
- content: "\e227";
- }
- .glyphicon-btc:before {
- content: "\e227";
- }
- .glyphicon-xbt:before {
- content: "\e227";
- }
- .glyphicon-yen:before {
- content: "\00a5";
- }
- .glyphicon-jpy:before {
- content: "\00a5";
- }
- .glyphicon-ruble:before {
- content: "\20bd";
- }
- .glyphicon-rub:before {
- content: "\20bd";
- }
- .glyphicon-scale:before {
- content: "\e230";
- }
- .glyphicon-ice-lolly:before {
- content: "\e231";
- }
- .glyphicon-ice-lolly-tasted:before {
- content: "\e232";
- }
- .glyphicon-education:before {
- content: "\e233";
- }
- .glyphicon-option-horizontal:before {
- content: "\e234";
- }
- .glyphicon-option-vertical:before {
- content: "\e235";
- }
- .glyphicon-menu-hamburger:before {
- content: "\e236";
- }
- .glyphicon-modal-window:before {
- content: "\e237";
- }
- .glyphicon-oil:before {
- content: "\e238";
- }
- .glyphicon-grain:before {
- content: "\e239";
- }
- .glyphicon-sunglasses:before {
- content: "\e240";
- }
- .glyphicon-text-size:before {
- content: "\e241";
- }
- .glyphicon-text-color:before {
- content: "\e242";
- }
- .glyphicon-text-background:before {
- content: "\e243";
- }
- .glyphicon-object-align-top:before {
- content: "\e244";
- }
- .glyphicon-object-align-bottom:before {
- content: "\e245";
- }
- .glyphicon-object-align-horizontal:before {
- content: "\e246";
- }
- .glyphicon-object-align-left:before {
- content: "\e247";
- }
- .glyphicon-object-align-vertical:before {
- content: "\e248";
- }
- .glyphicon-object-align-right:before {
- content: "\e249";
- }
- .glyphicon-triangle-right:before {
- content: "\e250";
- }
- .glyphicon-triangle-left:before {
- content: "\e251";
- }
- .glyphicon-triangle-bottom:before {
- content: "\e252";
- }
- .glyphicon-triangle-top:before {
- content: "\e253";
- }
- .glyphicon-console:before {
- content: "\e254";
- }
- .glyphicon-superscript:before {
- content: "\e255";
- }
- .glyphicon-subscript:before {
- content: "\e256";
- }
- .glyphicon-menu-left:before {
- content: "\e257";
- }
- .glyphicon-menu-right:before {
- content: "\e258";
- }
- .glyphicon-menu-down:before {
- content: "\e259";
- }
- .glyphicon-menu-up:before {
- content: "\e260";
- }
- * {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- }
- *:before,
- *:after {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- }
- html {
- font-size: 10px;
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
- }
- body {
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
- font-size: 14px;
- line-height: 1.42857143;
- color: #333333;
- background-color: #ffffff;
- }
- input,
- button,
- select,
- textarea {
- font-family: inherit;
- font-size: inherit;
- line-height: inherit;
- }
- a {
- color: #337ab7;
- text-decoration: none;
- }
- a:hover,
- a:focus {
- color: #23527c;
- text-decoration: underline;
- }
- a:focus {
- outline: thin dotted;
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
- }
- figure {
- margin: 0;
- }
- img {
- vertical-align: middle;
- }
- .img-responsive,
- .thumbnail > img,
- .thumbnail a > img,
- .carousel-inner > .item > img,
- .carousel-inner > .item > a > img {
- display: block;
- max-width: 100%;
- height: auto;
- }
- .img-rounded {
- border-radius: 6px;
- }
- .img-thumbnail {
- padding: 4px;
- line-height: 1.42857143;
- background-color: #ffffff;
- border: 1px solid #dddddd;
- border-radius: 4px;
- -webkit-transition: all 0.2s ease-in-out;
- -o-transition: all 0.2s ease-in-out;
- transition: all 0.2s ease-in-out;
- display: inline-block;
- max-width: 100%;
- height: auto;
- }
- .img-circle {
- border-radius: 50%;
- }
- hr {
- margin-top: 20px;
- margin-bottom: 20px;
- border: 0;
- border-top: 1px solid #eeeeee;
- }
- .sr-only {
- position: absolute;
- width: 1px;
- height: 1px;
- margin: -1px;
- padding: 0;
- overflow: hidden;
- clip: rect(0, 0, 0, 0);
- border: 0;
- }
- .sr-only-focusable:active,
- .sr-only-focusable:focus {
- position: static;
- width: auto;
- height: auto;
- margin: 0;
- overflow: visible;
- clip: auto;
- }
- [role="button"] {
- cursor: pointer;
- }
- h1,
- h2,
- h3,
- h4,
- h5,
- h6,
- .h1,
- .h2,
- .h3,
- .h4,
- .h5,
- .h6 {
- font-family: inherit;
- font-weight: 500;
- line-height: 1.1;
- color: inherit;
- }
- h1 small,
- h2 small,
- h3 small,
- h4 small,
- h5 small,
- h6 small,
- .h1 small,
- .h2 small,
- .h3 small,
- .h4 small,
- .h5 small,
- .h6 small,
- h1 .small,
- h2 .small,
- h3 .small,
- h4 .small,
- h5 .small,
- h6 .small,
- .h1 .small,
- .h2 .small,
- .h3 .small,
- .h4 .small,
- .h5 .small,
- .h6 .small {
- font-weight: normal;
- line-height: 1;
- color: #777777;
- }
- h1,
- .h1,
- h2,
- .h2,
- h3,
- .h3 {
- margin-top: 20px;
- margin-bottom: 10px;
- }
- h1 small,
- .h1 small,
- h2 small,
- .h2 small,
- h3 small,
- .h3 small,
- h1 .small,
- .h1 .small,
- h2 .small,
- .h2 .small,
- h3 .small,
- .h3 .small {
- font-size: 65%;
- }
- h4,
- .h4,
- h5,
- .h5,
- h6,
- .h6 {
- margin-top: 10px;
- margin-bottom: 10px;
- }
- h4 small,
- .h4 small,
- h5 small,
- .h5 small,
- h6 small,
- .h6 small,
- h4 .small,
- .h4 .small,
- h5 .small,
- .h5 .small,
- h6 .small,
- .h6 .small {
- font-size: 75%;
- }
- h1,
- .h1 {
- font-size: 36px;
- }
- h2,
- .h2 {
- font-size: 30px;
- }
- h3,
- .h3 {
- font-size: 24px;
- }
- h4,
- .h4 {
- font-size: 18px;
- }
- h5,
- .h5 {
- font-size: 14px;
- }
- h6,
- .h6 {
- font-size: 12px;
- }
- p {
- margin: 0 0 10px;
- }
- .lead {
- margin-bottom: 20px;
- font-size: 16px;
- font-weight: 300;
- line-height: 1.4;
- }
- @media (min-width: 768px) {
- .lead {
- font-size: 21px;
- }
- }
- small,
- .small {
- font-size: 85%;
- }
- mark,
- .mark {
- background-color: #fcf8e3;
- padding: .2em;
- }
- .text-left {
- text-align: left;
- }
- .text-right {
- text-align: right;
- }
- .text-center {
- text-align: center;
- }
- .text-justify {
- text-align: justify;
- }
- .text-nowrap {
- white-space: nowrap;
- }
- .text-lowercase {
- text-transform: lowercase;
- }
- .text-uppercase {
- text-transform: uppercase;
- }
- .text-capitalize {
- text-transform: capitalize;
- }
- .text-muted {
- color: #777777;
- }
- .text-primary {
- color: #337ab7;
- }
- a.text-primary:hover,
- a.text-primary:focus {
- color: #286090;
- }
- .text-success {
- color: #3c763d;
- }
- a.text-success:hover,
- a.text-success:focus {
- color: #2b542c;
- }
- .text-info {
- color: #31708f;
- }
- a.text-info:hover,
- a.text-info:focus {
- color: #245269;
- }
- .text-warning {
- color: #8a6d3b;
- }
- a.text-warning:hover,
- a.text-warning:focus {
- color: #66512c;
- }
- .text-danger {
- color: #a94442;
- }
- a.text-danger:hover,
- a.text-danger:focus {
- color: #843534;
- }
- .bg-primary {
- color: #fff;
- background-color: #337ab7;
- }
- a.bg-primary:hover,
- a.bg-primary:focus {
- background-color: #286090;
- }
- .bg-success {
- background-color: #dff0d8;
- }
- a.bg-success:hover,
- a.bg-success:focus {
- background-color: #c1e2b3;
- }
- .bg-info {
- background-color: #d9edf7;
- }
- a.bg-info:hover,
- a.bg-info:focus {
- background-color: #afd9ee;
- }
- .bg-warning {
- background-color: #fcf8e3;
- }
- a.bg-warning:hover,
- a.bg-warning:focus {
- background-color: #f7ecb5;
- }
- .bg-danger {
- background-color: #f2dede;
- }
- a.bg-danger:hover,
- a.bg-danger:focus {
- background-color: #e4b9b9;
- }
- .page-header {
- padding-bottom: 9px;
- margin: 40px 0 20px;
- border-bottom: 1px solid #eeeeee;
- }
- ul,
- ol {
- margin-top: 0;
- margin-bottom: 10px;
- }
- ul ul,
- ol ul,
- ul ol,
- ol ol {
- margin-bottom: 0;
- }
- .list-unstyled {
- padding-left: 0;
- list-style: none;
- }
- .list-inline {
- padding-left: 0;
- list-style: none;
- margin-left: -5px;
- }
- .list-inline > li {
- display: inline-block;
- padding-left: 5px;
- padding-right: 5px;
- }
- dl {
- margin-top: 0;
- margin-bottom: 20px;
- }
- dt,
- dd {
- line-height: 1.42857143;
- }
- dt {
- font-weight: bold;
- }
- dd {
- margin-left: 0;
- }
- @media (min-width: 768px) {
- .dl-horizontal dt {
- float: left;
- width: 160px;
- clear: left;
- text-align: right;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
- .dl-horizontal dd {
- margin-left: 180px;
- }
- }
- abbr[title],
- abbr[data-original-title] {
- cursor: help;
- border-bottom: 1px dotted #777777;
- }
- .initialism {
- font-size: 90%;
- text-transform: uppercase;
- }
- blockquote {
- padding: 10px 20px;
- margin: 0 0 20px;
- font-size: 17.5px;
- border-left: 5px solid #eeeeee;
- }
- blockquote p:last-child,
- blockquote ul:last-child,
- blockquote ol:last-child {
- margin-bottom: 0;
- }
- blockquote footer,
- blockquote small,
- blockquote .small {
- display: block;
- font-size: 80%;
- line-height: 1.42857143;
- color: #777777;
- }
- blockquote footer:before,
- blockquote small:before,
- blockquote .small:before {
- content: '\2014 \00A0';
- }
- .blockquote-reverse,
- blockquote.pull-right {
- padding-right: 15px;
- padding-left: 0;
- border-right: 5px solid #eeeeee;
- border-left: 0;
- text-align: right;
- }
- .blockquote-reverse footer:before,
- blockquote.pull-right footer:before,
- .blockquote-reverse small:before,
- blockquote.pull-right small:before,
- .blockquote-reverse .small:before,
- blockquote.pull-right .small:before {
- content: '';
- }
- .blockquote-reverse footer:after,
- blockquote.pull-right footer:after,
- .blockquote-reverse small:after,
- blockquote.pull-right small:after,
- .blockquote-reverse .small:after,
- blockquote.pull-right .small:after {
- content: '\00A0 \2014';
- }
- address {
- margin-bottom: 20px;
- font-style: normal;
- line-height: 1.42857143;
- }
- code,
- kbd,
- pre,
- samp {
- font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
- }
- code {
- padding: 2px 4px;
- font-size: 90%;
- color: #c7254e;
- background-color: #f9f2f4;
- border-radius: 4px;
- }
- kbd {
- padding: 2px 4px;
- font-size: 90%;
- color: #ffffff;
- background-color: #333333;
- border-radius: 3px;
- -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
- box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
- }
- kbd kbd {
- padding: 0;
- font-size: 100%;
- font-weight: bold;
- -webkit-box-shadow: none;
- box-shadow: none;
- }
- pre {
- display: block;
- padding: 9.5px;
- margin: 0 0 10px;
- font-size: 13px;
- line-height: 1.42857143;
- word-break: break-all;
- word-wrap: break-word;
- color: #333333;
- background-color: #f5f5f5;
- border: 1px solid #cccccc;
- border-radius: 4px;
- }
- pre code {
- padding: 0;
- font-size: inherit;
- color: inherit;
- white-space: pre-wrap;
- background-color: transparent;
- border-radius: 0;
- }
- .pre-scrollable {
- max-height: 340px;
- overflow-y: scroll;
- }
- .container {
- margin-right: auto;
- margin-left: auto;
- padding-left: 15px;
- padding-right: 15px;
- }
- @media (min-width: 768px) {
- .container {
- width: 750px;
- }
- }
- @media (min-width: 992px) {
- .container {
- width: 970px;
- }
- }
- @media (min-width: 1200px) {
- .container {
- width: 1170px;
- }
- }
- .container-fluid {
- margin-right: auto;
- margin-left: auto;
- padding-left: 15px;
- padding-right: 15px;
- }
- .row {
- margin-left: -15px;
- margin-right: -15px;
- }
- .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
- position: relative;
- min-height: 1px;
- padding-left: 15px;
- padding-right: 15px;
- }
- .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
- float: left;
- }
- .col-xs-12 {
- width: 100%;
- }
- .col-xs-11 {
- width: 91.66666667%;
- }
- .col-xs-10 {
- width: 83.33333333%;
- }
- .col-xs-9 {
- width: 75%;
- }
- .col-xs-8 {
- width: 66.66666667%;
- }
- .col-xs-7 {
- width: 58.33333333%;
- }
- .col-xs-6 {
- width: 50%;
- }
- .col-xs-5 {
- width: 41.66666667%;
- }
- .col-xs-4 {
- width: 33.33333333%;
- }
- .col-xs-3 {
- width: 25%;
- }
- .col-xs-2 {
- width: 16.66666667%;
- }
- .col-xs-1 {
- width: 8.33333333%;
- }
- .col-xs-pull-12 {
- right: 100%;
- }
- .col-xs-pull-11 {
- right: 91.66666667%;
- }
- .col-xs-pull-10 {
- right: 83.33333333%;
- }
- .col-xs-pull-9 {
- right: 75%;
- }
- .col-xs-pull-8 {
- right: 66.66666667%;
- }
- .col-xs-pull-7 {
- right: 58.33333333%;
- }
- .col-xs-pull-6 {
- right: 50%;
- }
- .col-xs-pull-5 {
- right: 41.66666667%;
- }
- .col-xs-pull-4 {
- right: 33.33333333%;
- }
- .col-xs-pull-3 {
- right: 25%;
- }
- .col-xs-pull-2 {
- right: 16.66666667%;
- }
- .col-xs-pull-1 {
- right: 8.33333333%;
- }
- .col-xs-pull-0 {
- right: auto;
- }
- .col-xs-push-12 {
- left: 100%;
- }
- .col-xs-push-11 {
- left: 91.66666667%;
- }
- .col-xs-push-10 {
- left: 83.33333333%;
- }
- .col-xs-push-9 {
- left: 75%;
- }
- .col-xs-push-8 {
- left: 66.66666667%;
- }
- .col-xs-push-7 {
- left: 58.33333333%;
- }
- .col-xs-push-6 {
- left: 50%;
- }
- .col-xs-push-5 {
- left: 41.66666667%;
- }
- .col-xs-push-4 {
- left: 33.33333333%;
- }
- .col-xs-push-3 {
- left: 25%;
- }
- .col-xs-push-2 {
- left: 16.66666667%;
- }
- .col-xs-push-1 {
- left: 8.33333333%;
- }
- .col-xs-push-0 {
- left: auto;
- }
- .col-xs-offset-12 {
- margin-left: 100%;
- }
- .col-xs-offset-11 {
- margin-left: 91.66666667%;
- }
- .col-xs-offset-10 {
- margin-left: 83.33333333%;
- }
- .col-xs-offset-9 {
- margin-left: 75%;
- }
- .col-xs-offset-8 {
- margin-left: 66.66666667%;
- }
- .col-xs-offset-7 {
- margin-left: 58.33333333%;
- }
- .col-xs-offset-6 {
- margin-left: 50%;
- }
- .col-xs-offset-5 {
- margin-left: 41.66666667%;
- }
- .col-xs-offset-4 {
- margin-left: 33.33333333%;
- }
- .col-xs-offset-3 {
- margin-left: 25%;
- }
- .col-xs-offset-2 {
- margin-left: 16.66666667%;
- }
- .col-xs-offset-1 {
- margin-left: 8.33333333%;
- }
- .col-xs-offset-0 {
- margin-left: 0%;
- }
- @media (min-width: 768px) {
- .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
- float: left;
- }
- .col-sm-12 {
- width: 100%;
- }
- .col-sm-11 {
- width: 91.66666667%;
- }
- .col-sm-10 {
- width: 83.33333333%;
- }
- .col-sm-9 {
- width: 75%;
- }
- .col-sm-8 {
- width: 66.66666667%;
- }
- .col-sm-7 {
- width: 58.33333333%;
- }
- .col-sm-6 {
- width: 50%;
- }
- .col-sm-5 {
- width: 41.66666667%;
- }
- .col-sm-4 {
- width: 33.33333333%;
- }
- .col-sm-3 {
- width: 25%;
- }
- .col-sm-2 {
- width: 16.66666667%;
- }
- .col-sm-1 {
- width: 8.33333333%;
- }
- .col-sm-pull-12 {
- right: 100%;
- }
- .col-sm-pull-11 {
- right: 91.66666667%;
- }
- .col-sm-pull-10 {
- right: 83.33333333%;
- }
- .col-sm-pull-9 {
- right: 75%;
- }
- .col-sm-pull-8 {
- right: 66.66666667%;
- }
- .col-sm-pull-7 {
- right: 58.33333333%;
- }
- .col-sm-pull-6 {
- right: 50%;
- }
- .col-sm-pull-5 {
- right: 41.66666667%;
- }
- .col-sm-pull-4 {
- right: 33.33333333%;
- }
- .col-sm-pull-3 {
- right: 25%;
- }
- .col-sm-pull-2 {
- right: 16.66666667%;
- }
- .col-sm-pull-1 {
- right: 8.33333333%;
- }
- .col-sm-pull-0 {
- right: auto;
- }
- .col-sm-push-12 {
- left: 100%;
- }
- .col-sm-push-11 {
- left: 91.66666667%;
- }
- .col-sm-push-10 {
- left: 83.33333333%;
- }
- .col-sm-push-9 {
- left: 75%;
- }
- .col-sm-push-8 {
- left: 66.66666667%;
- }
- .col-sm-push-7 {
- left: 58.33333333%;
- }
- .col-sm-push-6 {
- left: 50%;
- }
- .col-sm-push-5 {
- left: 41.66666667%;
- }
- .col-sm-push-4 {
- left: 33.33333333%;
- }
- .col-sm-push-3 {
- left: 25%;
- }
- .col-sm-push-2 {
- left: 16.66666667%;
- }
- .col-sm-push-1 {
- left: 8.33333333%;
- }
- .col-sm-push-0 {
- left: auto;
- }
- .col-sm-offset-12 {
- margin-left: 100%;
- }
- .col-sm-offset-11 {
- margin-left: 91.66666667%;
- }
- .col-sm-offset-10 {
- margin-left: 83.33333333%;
- }
- .col-sm-offset-9 {
- margin-left: 75%;
- }
- .col-sm-offset-8 {
- margin-left: 66.66666667%;
- }
- .col-sm-offset-7 {
- margin-left: 58.33333333%;
- }
- .col-sm-offset-6 {
- margin-left: 50%;
- }
- .col-sm-offset-5 {
- margin-left: 41.66666667%;
- }
- .col-sm-offset-4 {
- margin-left: 33.33333333%;
- }
- .col-sm-offset-3 {
- margin-left: 25%;
- }
- .col-sm-offset-2 {
- margin-left: 16.66666667%;
- }
- .col-sm-offset-1 {
- margin-left: 8.33333333%;
- }
- .col-sm-offset-0 {
- margin-left: 0%;
- }
- }
- @media (min-width: 992px) {
- .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
- float: left;
- }
- .col-md-12 {
- width: 100%;
- }
- .col-md-11 {
- width: 91.66666667%;
- }
- .col-md-10 {
- width: 83.33333333%;
- }
- .col-md-9 {
- width: 75%;
- }
- .col-md-8 {
- width: 66.66666667%;
- }
- .col-md-7 {
- width: 58.33333333%;
- }
- .col-md-6 {
- width: 50%;
- }
- .col-md-5 {
- width: 41.66666667%;
- }
- .col-md-4 {
- width: 33.33333333%;
- }
- .col-md-3 {
- width: 25%;
- }
- .col-md-2 {
- width: 16.66666667%;
- }
- .col-md-1 {
- width: 8.33333333%;
- }
- .col-md-pull-12 {
- right: 100%;
- }
- .col-md-pull-11 {
- right: 91.66666667%;
- }
- .col-md-pull-10 {
- right: 83.33333333%;
- }
- .col-md-pull-9 {
- right: 75%;
- }
- .col-md-pull-8 {
- right: 66.66666667%;
- }
- .col-md-pull-7 {
- right: 58.33333333%;
- }
- .col-md-pull-6 {
- right: 50%;
- }
- .col-md-pull-5 {
- right: 41.66666667%;
- }
- .col-md-pull-4 {
- right: 33.33333333%;
- }
- .col-md-pull-3 {
- right: 25%;
- }
- .col-md-pull-2 {
- right: 16.66666667%;
- }
- .col-md-pull-1 {
- right: 8.33333333%;
- }
- .col-md-pull-0 {
- right: auto;
- }
- .col-md-push-12 {
- left: 100%;
- }
- .col-md-push-11 {
- left: 91.66666667%;
- }
- .col-md-push-10 {
- left: 83.33333333%;
- }
- .col-md-push-9 {
- left: 75%;
- }
- .col-md-push-8 {
- left: 66.66666667%;
- }
- .col-md-push-7 {
- left: 58.33333333%;
- }
- .col-md-push-6 {
- left: 50%;
- }
- .col-md-push-5 {
- left: 41.66666667%;
- }
- .col-md-push-4 {
- left: 33.33333333%;
- }
- .col-md-push-3 {
- left: 25%;
- }
- .col-md-push-2 {
- left: 16.66666667%;
- }
- .col-md-push-1 {
- left: 8.33333333%;
- }
- .col-md-push-0 {
- left: auto;
- }
- .col-md-offset-12 {
- margin-left: 100%;
- }
- .col-md-offset-11 {
- margin-left: 91.66666667%;
- }
- .col-md-offset-10 {
- margin-left: 83.33333333%;
- }
- .col-md-offset-9 {
- margin-left: 75%;
- }
- .col-md-offset-8 {
- margin-left: 66.66666667%;
- }
- .col-md-offset-7 {
- margin-left: 58.33333333%;
- }
- .col-md-offset-6 {
- margin-left: 50%;
- }
- .col-md-offset-5 {
- margin-left: 41.66666667%;
- }
- .col-md-offset-4 {
- margin-left: 33.33333333%;
- }
- .col-md-offset-3 {
- margin-left: 25%;
- }
- .col-md-offset-2 {
- margin-left: 16.66666667%;
- }
- .col-md-offset-1 {
- margin-left: 8.33333333%;
- }
- .col-md-offset-0 {
- margin-left: 0%;
- }
- }
- @media (min-width: 1200px) {
- .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
- float: left;
- }
- .col-lg-12 {
- width: 100%;
- }
- .col-lg-11 {
- width: 91.66666667%;
- }
- .col-lg-10 {
- width: 83.33333333%;
- }
- .col-lg-9 {
- width: 75%;
- }
- .col-lg-8 {
- width: 66.66666667%;
- }
- .col-lg-7 {
- width: 58.33333333%;
- }
- .col-lg-6 {
- width: 50%;
- }
- .col-lg-5 {
- width: 41.66666667%;
- }
- .col-lg-4 {
- width: 33.33333333%;
- }
- .col-lg-3 {
- width: 25%;
- }
- .col-lg-2 {
- width: 16.66666667%;
- }
- .col-lg-1 {
- width: 8.33333333%;
- }
- .col-lg-pull-12 {
- right: 100%;
- }
- .col-lg-pull-11 {
- right: 91.66666667%;
- }
- .col-lg-pull-10 {
- right: 83.33333333%;
- }
- .col-lg-pull-9 {
- right: 75%;
- }
- .col-lg-pull-8 {
- right: 66.66666667%;
- }
- .col-lg-pull-7 {
- right: 58.33333333%;
- }
- .col-lg-pull-6 {
- right: 50%;
- }
- .col-lg-pull-5 {
- right: 41.66666667%;
- }
- .col-lg-pull-4 {
- right: 33.33333333%;
- }
- .col-lg-pull-3 {
- right: 25%;
- }
- .col-lg-pull-2 {
- right: 16.66666667%;
- }
- .col-lg-pull-1 {
- right: 8.33333333%;
- }
- .col-lg-pull-0 {
- right: auto;
- }
- .col-lg-push-12 {
- left: 100%;
- }
- .col-lg-push-11 {
- left: 91.66666667%;
- }
- .col-lg-push-10 {
- left: 83.33333333%;
- }
- .col-lg-push-9 {
- left: 75%;
- }
- .col-lg-push-8 {
- left: 66.66666667%;
- }
- .col-lg-push-7 {
- left: 58.33333333%;
- }
- .col-lg-push-6 {
- left: 50%;
- }
- .col-lg-push-5 {
- left: 41.66666667%;
- }
- .col-lg-push-4 {
- left: 33.33333333%;
- }
- .col-lg-push-3 {
- left: 25%;
- }
- .col-lg-push-2 {
- left: 16.66666667%;
- }
- .col-lg-push-1 {
- left: 8.33333333%;
- }
- .col-lg-push-0 {
- left: auto;
- }
- .col-lg-offset-12 {
- margin-left: 100%;
- }
- .col-lg-offset-11 {
- margin-left: 91.66666667%;
- }
- .col-lg-offset-10 {
- margin-left: 83.33333333%;
- }
- .col-lg-offset-9 {
- margin-left: 75%;
- }
- .col-lg-offset-8 {
- margin-left: 66.66666667%;
- }
- .col-lg-offset-7 {
- margin-left: 58.33333333%;
- }
- .col-lg-offset-6 {
- margin-left: 50%;
- }
- .col-lg-offset-5 {
- margin-left: 41.66666667%;
- }
- .col-lg-offset-4 {
- margin-left: 33.33333333%;
- }
- .col-lg-offset-3 {
- margin-left: 25%;
- }
- .col-lg-offset-2 {
- margin-left: 16.66666667%;
- }
- .col-lg-offset-1 {
- margin-left: 8.33333333%;
- }
- .col-lg-offset-0 {
- margin-left: 0%;
- }
- }
- table {
- background-color: transparent;
- }
- caption {
- padding-top: 8px;
- padding-bottom: 8px;
- color: #777777;
- text-align: left;
- }
- th {
- text-align: left;
- }
- .table {
- width: 100%;
- max-width: 100%;
- margin-bottom: 20px;
- }
- .table > thead > tr > th,
- .table > tbody > tr > th,
- .table > tfoot > tr > th,
- .table > thead > tr > td,
- .table > tbody > tr > td,
- .table > tfoot > tr > td {
- padding: 8px;
- line-height: 1.42857143;
- vertical-align: top;
- border-top: 1px solid #dddddd;
- }
- .table > thead > tr > th {
- vertical-align: bottom;
- border-bottom: 2px solid #dddddd;
- }
- .table > caption + thead > tr:first-child > th,
- .table > colgroup + thead > tr:first-child > th,
- .table > thead:first-child > tr:first-child > th,
- .table > caption + thead > tr:first-child > td,
- .table > colgroup + thead > tr:first-child > td,
- .table > thead:first-child > tr:first-child > td {
- border-top: 0;
- }
- .table > tbody + tbody {
- border-top: 2px solid #dddddd;
- }
- .table .table {
- background-color: #ffffff;
- }
- .table-condensed > thead > tr > th,
- .table-condensed > tbody > tr > th,
- .table-condensed > tfoot > tr > th,
- .table-condensed > thead > tr > td,
- .table-condensed > tbody > tr > td,
- .table-condensed > tfoot > tr > td {
- padding: 5px;
- }
- .table-bordered {
- border: 1px solid #dddddd;
- }
- .table-bordered > thead > tr > th,
- .table-bordered > tbody > tr > th,
- .table-bordered > tfoot > tr > th,
- .table-bordered > thead > tr > td,
- .table-bordered > tbody > tr > td,
- .table-bordered > tfoot > tr > td {
- border: 1px solid #dddddd;
- }
- .table-bordered > thead > tr > th,
- .table-bordered > thead > tr > td {
- border-bottom-width: 2px;
- }
- .table-striped > tbody > tr:nth-of-type(odd) {
- background-color: #f9f9f9;
- }
- .table-hover > tbody > tr:hover {
- background-color: #f5f5f5;
- }
- table col[class*="col-"] {
- position: static;
- float: none;
- display: table-column;
- }
- table td[class*="col-"],
- table th[class*="col-"] {
- position: static;
- float: none;
- display: table-cell;
- }
- .table > thead > tr > td.active,
- .table > tbody > tr > td.active,
- .table > tfoot > tr > td.active,
- .table > thead > tr > th.active,
- .table > tbody > tr > th.active,
- .table > tfoot > tr > th.active,
- .table > thead > tr.active > td,
- .table > tbody > tr.active > td,
- .table > tfoot > tr.active > td,
- .table > thead > tr.active > th,
- .table > tbody > tr.active > th,
- .table > tfoot > tr.active > th {
- background-color: #f5f5f5;
- }
- .table-hover > tbody > tr > td.active:hover,
- .table-hover > tbody > tr > th.active:hover,
- .table-hover > tbody > tr.active:hover > td,
- .table-hover > tbody > tr:hover > .active,
- .table-hover > tbody > tr.active:hover > th {
- background-color: #e8e8e8;
- }
- .table > thead > tr > td.success,
- .table > tbody > tr > td.success,
- .table > tfoot > tr > td.success,
- .table > thead > tr > th.success,
- .table > tbody > tr > th.success,
- .table > tfoot > tr > th.success,
- .table > thead > tr.success > td,
- .table > tbody > tr.success > td,
- .table > tfoot > tr.success > td,
- .table > thead > tr.success > th,
- .table > tbody > tr.success > th,
- .table > tfoot > tr.success > th {
- background-color: #dff0d8;
- }
- .table-hover > tbody > tr > td.success:hover,
- .table-hover > tbody > tr > th.success:hover,
- .table-hover > tbody > tr.success:hover > td,
- .table-hover > tbody > tr:hover > .success,
- .table-hover > tbody > tr.success:hover > th {
- background-color: #d0e9c6;
- }
- .table > thead > tr > td.info,
- .table > tbody > tr > td.info,
- .table > tfoot > tr > td.info,
- .table > thead > tr > th.info,
- .table > tbody > tr > th.info,
- .table > tfoot > tr > th.info,
- .table > thead > tr.info > td,
- .table > tbody > tr.info > td,
- .table > tfoot > tr.info > td,
- .table > thead > tr.info > th,
- .table > tbody > tr.info > th,
- .table > tfoot > tr.info > th {
- background-color: #d9edf7;
- }
- .table-hover > tbody > tr > td.info:hover,
- .table-hover > tbody > tr > th.info:hover,
- .table-hover > tbody > tr.info:hover > td,
- .table-hover > tbody > tr:hover > .info,
- .table-hover > tbody > tr.info:hover > th {
- background-color: #c4e3f3;
- }
- .table > thead > tr > td.warning,
- .table > tbody > tr > td.warning,
- .table > tfoot > tr > td.warning,
- .table > thead > tr > th.warning,
- .table > tbody > tr > th.warning,
- .table > tfoot > tr > th.warning,
- .table > thead > tr.warning > td,
- .table > tbody > tr.warning > td,
- .table > tfoot > tr.warning > td,
- .table > thead > tr.warning > th,
- .table > tbody > tr.warning > th,
- .table > tfoot > tr.warning > th {
- background-color: #fcf8e3;
- }
- .table-hover > tbody > tr > td.warning:hover,
- .table-hover > tbody > tr > th.warning:hover,
- .table-hover > tbody > tr.warning:hover > td,
- .table-hover > tbody > tr:hover > .warning,
- .table-hover > tbody > tr.warning:hover > th {
- background-color: #faf2cc;
- }
- .table > thead > tr > td.danger,
- .table > tbody > tr > td.danger,
- .table > tfoot > tr > td.danger,
- .table > thead > tr > th.danger,
- .table > tbody > tr > th.danger,
- .table > tfoot > tr > th.danger,
- .table > thead > tr.danger > td,
- .table > tbody > tr.danger > td,
- .table > tfoot > tr.danger > td,
- .table > thead > tr.danger > th,
- .table > tbody > tr.danger > th,
- .table > tfoot > tr.danger > th {
- background-color: #f2dede;
- }
- .table-hover > tbody > tr > td.danger:hover,
- .table-hover > tbody > tr > th.danger:hover,
- .table-hover > tbody > tr.danger:hover > td,
- .table-hover > tbody > tr:hover > .danger,
- .table-hover > tbody > tr.danger:hover > th {
- background-color: #ebcccc;
- }
- .table-responsive {
- overflow-x: auto;
- min-height: 0.01%;
- }
- @media screen and (max-width: 767px) {
- .table-responsive {
- width: 100%;
- margin-bottom: 15px;
- overflow-y: hidden;
- -ms-overflow-style: -ms-autohiding-scrollbar;
- border: 1px solid #dddddd;
- }
- .table-responsive > .table {
- margin-bottom: 0;
- }
- .table-responsive > .table > thead > tr > th,
- .table-responsive > .table > tbody > tr > th,
- .table-responsive > .table > tfoot > tr > th,
- .table-responsive > .table > thead > tr > td,
- .table-responsive > .table > tbody > tr > td,
- .table-responsive > .table > tfoot > tr > td {
- white-space: nowrap;
- }
- .table-responsive > .table-bordered {
- border: 0;
- }
- .table-responsive > .table-bordered > thead > tr > th:first-child,
- .table-responsive > .table-bordered > tbody > tr > th:first-child,
- .table-responsive > .table-bordered > tfoot > tr > th:first-child,
- .table-responsive > .table-bordered > thead > tr > td:first-child,
- .table-responsive > .table-bordered > tbody > tr > td:first-child,
- .table-responsive > .table-bordered > tfoot > tr > td:first-child {
- border-left: 0;
- }
- .table-responsive > .table-bordered > thead > tr > th:last-child,
- .table-responsive > .table-bordered > tbody > tr > th:last-child,
- .table-responsive > .table-bordered > tfoot > tr > th:last-child,
- .table-responsive > .table-bordered > thead > tr > td:last-child,
- .table-responsive > .table-bordered > tbody > tr > td:last-child,
- .table-responsive > .table-bordered > tfoot > tr > td:last-child {
- border-right: 0;
- }
- .table-responsive > .table-bordered > tbody > tr:last-child > th,
- .table-responsive > .table-bordered > tfoot > tr:last-child > th,
- .table-responsive > .table-bordered > tbody > tr:last-child > td,
- .table-responsive > .table-bordered > tfoot > tr:last-child > td {
- border-bottom: 0;
- }
- }
- fieldset {
- padding: 0;
- margin: 0;
- border: 0;
- min-width: 0;
- }
- legend {
- display: block;
- width: 100%;
- padding: 0;
- margin-bottom: 20px;
- font-size: 21px;
- line-height: inherit;
- color: #333333;
- border: 0;
- border-bottom: 1px solid #e5e5e5;
- }
- label {
- display: inline-block;
- max-width: 100%;
- margin-bottom: 5px;
- font-weight: bold;
- }
- input[type="search"] {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- }
- input[type="radio"],
- input[type="checkbox"] {
- margin: 4px 0 0;
- margin-top: 1px \9;
- line-height: normal;
- }
- input[type="file"] {
- display: block;
- }
- input[type="range"] {
- display: block;
- width: 100%;
- }
- select[multiple],
- select[size] {
- height: auto;
- }
- input[type="file"]:focus,
- input[type="radio"]:focus,
- input[type="checkbox"]:focus {
- outline: thin dotted;
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
- }
- output {
- display: block;
- padding-top: 7px;
- font-size: 14px;
- line-height: 1.42857143;
- color: #555555;
- }
- .form-control {
- display: block;
- width: 100%;
- height: 34px;
- padding: 6px 12px;
- font-size: 14px;
- line-height: 1.42857143;
- color: #555555;
- background-color: #ffffff;
- background-image: none;
- border: 1px solid #cccccc;
- border-radius: 4px;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
- -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
- transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
- }
- .form-control:focus {
- border-color: #66afe9;
- outline: 0;
- -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
- box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
- }
- .form-control::-moz-placeholder {
- color: #999999;
- opacity: 1;
- }
- .form-control:-ms-input-placeholder {
- color: #999999;
- }
- .form-control::-webkit-input-placeholder {
- color: #999999;
- }
- .form-control[disabled],
- .form-control[readonly],
- fieldset[disabled] .form-control {
- background-color: #eeeeee;
- opacity: 1;
- }
- .form-control[disabled],
- fieldset[disabled] .form-control {
- cursor: not-allowed;
- }
- textarea.form-control {
- height: auto;
- }
- input[type="search"] {
- -webkit-appearance: none;
- }
- @media screen and (-webkit-min-device-pixel-ratio: 0) {
- input[type="date"].form-control,
- input[type="time"].form-control,
- input[type="datetime-local"].form-control,
- input[type="month"].form-control {
- line-height: 34px;
- }
- input[type="date"].input-sm,
- input[type="time"].input-sm,
- input[type="datetime-local"].input-sm,
- input[type="month"].input-sm,
- .input-group-sm input[type="date"],
- .input-group-sm input[type="time"],
- .input-group-sm input[type="datetime-local"],
- .input-group-sm input[type="month"] {
- line-height: 30px;
- }
- input[type="date"].input-lg,
- input[type="time"].input-lg,
- input[type="datetime-local"].input-lg,
- input[type="month"].input-lg,
- .input-group-lg input[type="date"],
- .input-group-lg input[type="time"],
- .input-group-lg input[type="datetime-local"],
- .input-group-lg input[type="month"] {
- line-height: 46px;
- }
- }
- .form-group {
- margin-bottom: 15px;
- }
- .radio,
- .checkbox {
- position: relative;
- display: block;
- margin-top: 10px;
- margin-bottom: 10px;
- }
- .radio label,
- .checkbox label {
- min-height: 20px;
- padding-left: 20px;
- margin-bottom: 0;
- font-weight: normal;
- cursor: pointer;
- }
- .radio input[type="radio"],
- .radio-inline input[type="radio"],
- .checkbox input[type="checkbox"],
- .checkbox-inline input[type="checkbox"] {
- position: absolute;
- margin-left: -20px;
- margin-top: 4px \9;
- }
- .radio + .radio,
- .checkbox + .checkbox {
- margin-top: -5px;
- }
- .radio-inline,
- .checkbox-inline {
- position: relative;
- display: inline-block;
- padding-left: 20px;
- margin-bottom: 0;
- vertical-align: middle;
- font-weight: normal;
- cursor: pointer;
- }
- .radio-inline + .radio-inline,
- .checkbox-inline + .checkbox-inline {
- margin-top: 0;
- margin-left: 10px;
- }
- input[type="radio"][disabled],
- input[type="checkbox"][disabled],
- input[type="radio"].disabled,
- input[type="checkbox"].disabled,
- fieldset[disabled] input[type="radio"],
- fieldset[disabled] input[type="checkbox"] {
- cursor: not-allowed;
- }
- .radio-inline.disabled,
- .checkbox-inline.disabled,
- fieldset[disabled] .radio-inline,
- fieldset[disabled] .checkbox-inline {
- cursor: not-allowed;
- }
- .radio.disabled label,
- .checkbox.disabled label,
- fieldset[disabled] .radio label,
- fieldset[disabled] .checkbox label {
- cursor: not-allowed;
- }
- .form-control-static {
- padding-top: 7px;
- padding-bottom: 7px;
- margin-bottom: 0;
- min-height: 34px;
- }
- .form-control-static.input-lg,
- .form-control-static.input-sm {
- padding-left: 0;
- padding-right: 0;
- }
- .input-sm {
- height: 30px;
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
- }
- select.input-sm {
- height: 30px;
- line-height: 30px;
- }
- textarea.input-sm,
- select[multiple].input-sm {
- height: auto;
- }
- .form-group-sm .form-control {
- height: 30px;
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
- }
- .form-group-sm select.form-control {
- height: 30px;
- line-height: 30px;
- }
- .form-group-sm textarea.form-control,
- .form-group-sm select[multiple].form-control {
- height: auto;
- }
- .form-group-sm .form-control-static {
- height: 30px;
- min-height: 32px;
- padding: 6px 10px;
- font-size: 12px;
- line-height: 1.5;
- }
- .input-lg {
- height: 46px;
- padding: 10px 16px;
- font-size: 18px;
- line-height: 1.3333333;
- border-radius: 6px;
- }
- select.input-lg {
- height: 46px;
- line-height: 46px;
- }
- textarea.input-lg,
- select[multiple].input-lg {
- height: auto;
- }
- .form-group-lg .form-control {
- height: 46px;
- padding: 10px 16px;
- font-size: 18px;
- line-height: 1.3333333;
- border-radius: 6px;
- }
- .form-group-lg select.form-control {
- height: 46px;
- line-height: 46px;
- }
- .form-group-lg textarea.form-control,
- .form-group-lg select[multiple].form-control {
- height: auto;
- }
- .form-group-lg .form-control-static {
- height: 46px;
- min-height: 38px;
- padding: 11px 16px;
- font-size: 18px;
- line-height: 1.3333333;
- }
- .has-feedback {
- position: relative;
- }
- .has-feedback .form-control {
- padding-right: 42.5px;
- }
- .form-control-feedback {
- position: absolute;
- top: 0;
- right: 0;
- z-index: 2;
- display: block;
- width: 34px;
- height: 34px;
- line-height: 34px;
- text-align: center;
- pointer-events: none;
- }
- .input-lg + .form-control-feedback,
- .input-group-lg + .form-control-feedback,
- .form-group-lg .form-control + .form-control-feedback {
- width: 46px;
- height: 46px;
- line-height: 46px;
- }
- .input-sm + .form-control-feedback,
- .input-group-sm + .form-control-feedback,
- .form-group-sm .form-control + .form-control-feedback {
- width: 30px;
- height: 30px;
- line-height: 30px;
- }
- .has-success .help-block,
- .has-success .control-label,
- .has-success .radio,
- .has-success .checkbox,
- .has-success .radio-inline,
- .has-success .checkbox-inline,
- .has-success.radio label,
- .has-success.checkbox label,
- .has-success.radio-inline label,
- .has-success.checkbox-inline label {
- color: #3c763d;
- }
- .has-success .form-control {
- border-color: #3c763d;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- }
- .has-success .form-control:focus {
- border-color: #2b542c;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
- }
- .has-success .input-group-addon {
- color: #3c763d;
- border-color: #3c763d;
- background-color: #dff0d8;
- }
- .has-success .form-control-feedback {
- color: #3c763d;
- }
- .has-warning .help-block,
- .has-warning .control-label,
- .has-warning .radio,
- .has-warning .checkbox,
- .has-warning .radio-inline,
- .has-warning .checkbox-inline,
- .has-warning.radio label,
- .has-warning.checkbox label,
- .has-warning.radio-inline label,
- .has-warning.checkbox-inline label {
- color: #8a6d3b;
- }
- .has-warning .form-control {
- border-color: #8a6d3b;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- }
- .has-warning .form-control:focus {
- border-color: #66512c;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
- }
- .has-warning .input-group-addon {
- color: #8a6d3b;
- border-color: #8a6d3b;
- background-color: #fcf8e3;
- }
- .has-warning .form-control-feedback {
- color: #8a6d3b;
- }
- .has-error .help-block,
- .has-error .control-label,
- .has-error .radio,
- .has-error .checkbox,
- .has-error .radio-inline,
- .has-error .checkbox-inline,
- .has-error.radio label,
- .has-error.checkbox label,
- .has-error.radio-inline label,
- .has-error.checkbox-inline label {
- color: #a94442;
- }
- .has-error .form-control {
- border-color: #a94442;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
- }
- .has-error .form-control:focus {
- border-color: #843534;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
- }
- .has-error .input-group-addon {
- color: #a94442;
- border-color: #a94442;
- background-color: #f2dede;
- }
- .has-error .form-control-feedback {
- color: #a94442;
- }
- .has-feedback label ~ .form-control-feedback {
- top: 25px;
- }
- .has-feedback label.sr-only ~ .form-control-feedback {
- top: 0;
- }
- .help-block {
- display: block;
- margin-top: 5px;
- margin-bottom: 10px;
- color: #737373;
- }
- @media (min-width: 768px) {
- .form-inline .form-group {
- display: inline-block;
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .form-control {
- display: inline-block;
- width: auto;
- vertical-align: middle;
- }
- .form-inline .form-control-static {
- display: inline-block;
- }
- .form-inline .input-group {
- display: inline-table;
- vertical-align: middle;
- }
- .form-inline .input-group .input-group-addon,
- .form-inline .input-group .input-group-btn,
- .form-inline .input-group .form-control {
- width: auto;
- }
- .form-inline .input-group > .form-control {
- width: 100%;
- }
- .form-inline .control-label {
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .radio,
- .form-inline .checkbox {
- display: inline-block;
- margin-top: 0;
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .radio label,
- .form-inline .checkbox label {
- padding-left: 0;
- }
- .form-inline .radio input[type="radio"],
- .form-inline .checkbox input[type="checkbox"] {
- position: relative;
- margin-left: 0;
- }
- .form-inline .has-feedback .form-control-feedback {
- top: 0;
- }
- }
- .form-horizontal .radio,
- .form-horizontal .checkbox,
- .form-horizontal .radio-inline,
- .form-horizontal .checkbox-inline {
- margin-top: 0;
- margin-bottom: 0;
- padding-top: 7px;
- }
- .form-horizontal .radio,
- .form-horizontal .checkbox {
- min-height: 27px;
- }
- .form-horizontal .form-group {
- margin-left: -15px;
- margin-right: -15px;
- }
- @media (min-width: 768px) {
- .form-horizontal .control-label {
- text-align: right;
- margin-bottom: 0;
- padding-top: 7px;
- }
- }
- .form-horizontal .has-feedback .form-control-feedback {
- right: 15px;
- }
- @media (min-width: 768px) {
- .form-horizontal .form-group-lg .control-label {
- padding-top: 14.333333px;
- font-size: 18px;
- }
- }
- @media (min-width: 768px) {
- .form-horizontal .form-group-sm .control-label {
- padding-top: 6px;
- font-size: 12px;
- }
- }
- .btn {
- display: inline-block;
- margin-bottom: 0;
- font-weight: normal;
- text-align: center;
- vertical-align: middle;
- -ms-touch-action: manipulation;
- touch-action: manipulation;
- cursor: pointer;
- background-image: none;
- border: 1px solid transparent;
- white-space: nowrap;
- padding: 6px 12px;
- font-size: 14px;
- line-height: 1.42857143;
- border-radius: 4px;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- }
- .btn:focus,
- .btn:active:focus,
- .btn.active:focus,
- .btn.focus,
- .btn:active.focus,
- .btn.active.focus {
- outline: thin dotted;
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
- }
- .btn:hover,
- .btn:focus,
- .btn.focus {
- color: #333333;
- text-decoration: none;
- }
- .btn:active,
- .btn.active {
- outline: 0;
- background-image: none;
- -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- }
- .btn.disabled,
- .btn[disabled],
- fieldset[disabled] .btn {
- cursor: not-allowed;
- opacity: 0.65;
- filter: alpha(opacity=65);
- -webkit-box-shadow: none;
- box-shadow: none;
- }
- a.btn.disabled,
- fieldset[disabled] a.btn {
- pointer-events: none;
- }
- .btn-default {
- color: #333333;
- background-color: #ffffff;
- border-color: #cccccc;
- }
- .btn-default:focus,
- .btn-default.focus {
- color: #333333;
- background-color: #e6e6e6;
- border-color: #8c8c8c;
- }
- .btn-default:hover {
- color: #333333;
- background-color: #e6e6e6;
- border-color: #adadad;
- }
- .btn-default:active,
- .btn-default.active,
- .open > .dropdown-toggle.btn-default {
- color: #333333;
- background-color: #e6e6e6;
- border-color: #adadad;
- }
- .btn-default:active:hover,
- .btn-default.active:hover,
- .open > .dropdown-toggle.btn-default:hover,
- .btn-default:active:focus,
- .btn-default.active:focus,
- .open > .dropdown-toggle.btn-default:focus,
- .btn-default:active.focus,
- .btn-default.active.focus,
- .open > .dropdown-toggle.btn-default.focus {
- color: #333333;
- background-color: #d4d4d4;
- border-color: #8c8c8c;
- }
- .btn-default:active,
- .btn-default.active,
- .open > .dropdown-toggle.btn-default {
- background-image: none;
- }
- .btn-default.disabled,
- .btn-default[disabled],
- fieldset[disabled] .btn-default,
- .btn-default.disabled:hover,
- .btn-default[disabled]:hover,
- fieldset[disabled] .btn-default:hover,
- .btn-default.disabled:focus,
- .btn-default[disabled]:focus,
- fieldset[disabled] .btn-default:focus,
- .btn-default.disabled.focus,
- .btn-default[disabled].focus,
- fieldset[disabled] .btn-default.focus,
- .btn-default.disabled:active,
- .btn-default[disabled]:active,
- fieldset[disabled] .btn-default:active,
- .btn-default.disabled.active,
- .btn-default[disabled].active,
- fieldset[disabled] .btn-default.active {
- background-color: #ffffff;
- border-color: #cccccc;
- }
- .btn-default .badge {
- color: #ffffff;
- background-color: #333333;
- }
- .btn-primary {
- color: #ffffff;
- background-color: #337ab7;
- border-color: #2e6da4;
- }
- .btn-primary:focus,
- .btn-primary.focus {
- color: #ffffff;
- background-color: #286090;
- border-color: #122b40;
- }
- .btn-primary:hover {
- color: #ffffff;
- background-color: #286090;
- border-color: #204d74;
- }
- .btn-primary:active,
- .btn-primary.active,
- .open > .dropdown-toggle.btn-primary {
- color: #ffffff;
- background-color: #286090;
- border-color: #204d74;
- }
- .btn-primary:active:hover,
- .btn-primary.active:hover,
- .open > .dropdown-toggle.btn-primary:hover,
- .btn-primary:active:focus,
- .btn-primary.active:focus,
- .open > .dropdown-toggle.btn-primary:focus,
- .btn-primary:active.focus,
- .btn-primary.active.focus,
- .open > .dropdown-toggle.btn-primary.focus {
- color: #ffffff;
- background-color: #204d74;
- border-color: #122b40;
- }
- .btn-primary:active,
- .btn-primary.active,
- .open > .dropdown-toggle.btn-primary {
- background-image: none;
- }
- .btn-primary.disabled,
- .btn-primary[disabled],
- fieldset[disabled] .btn-primary,
- .btn-primary.disabled:hover,
- .btn-primary[disabled]:hover,
- fieldset[disabled] .btn-primary:hover,
- .btn-primary.disabled:focus,
- .btn-primary[disabled]:focus,
- fieldset[disabled] .btn-primary:focus,
- .btn-primary.disabled.focus,
- .btn-primary[disabled].focus,
- fieldset[disabled] .btn-primary.focus,
- .btn-primary.disabled:active,
- .btn-primary[disabled]:active,
- fieldset[disabled] .btn-primary:active,
- .btn-primary.disabled.active,
- .btn-primary[disabled].active,
- fieldset[disabled] .btn-primary.active {
- background-color: #337ab7;
- border-color: #2e6da4;
- }
- .btn-primary .badge {
- color: #337ab7;
- background-color: #ffffff;
- }
- .btn-success {
- color: #ffffff;
- background-color: #5cb85c;
- border-color: #4cae4c;
- }
- .btn-success:focus,
- .btn-success.focus {
- color: #ffffff;
- background-color: #449d44;
- border-color: #255625;
- }
- .btn-success:hover {
- color: #ffffff;
- background-color: #449d44;
- border-color: #398439;
- }
- .btn-success:active,
- .btn-success.active,
- .open > .dropdown-toggle.btn-success {
- color: #ffffff;
- background-color: #449d44;
- border-color: #398439;
- }
- .btn-success:active:hover,
- .btn-success.active:hover,
- .open > .dropdown-toggle.btn-success:hover,
- .btn-success:active:focus,
- .btn-success.active:focus,
- .open > .dropdown-toggle.btn-success:focus,
- .btn-success:active.focus,
- .btn-success.active.focus,
- .open > .dropdown-toggle.btn-success.focus {
- color: #ffffff;
- background-color: #398439;
- border-color: #255625;
- }
- .btn-success:active,
- .btn-success.active,
- .open > .dropdown-toggle.btn-success {
- background-image: none;
- }
- .btn-success.disabled,
- .btn-success[disabled],
- fieldset[disabled] .btn-success,
- .btn-success.disabled:hover,
- .btn-success[disabled]:hover,
- fieldset[disabled] .btn-success:hover,
- .btn-success.disabled:focus,
- .btn-success[disabled]:focus,
- fieldset[disabled] .btn-success:focus,
- .btn-success.disabled.focus,
- .btn-success[disabled].focus,
- fieldset[disabled] .btn-success.focus,
- .btn-success.disabled:active,
- .btn-success[disabled]:active,
- fieldset[disabled] .btn-success:active,
- .btn-success.disabled.active,
- .btn-success[disabled].active,
- fieldset[disabled] .btn-success.active {
- background-color: #5cb85c;
- border-color: #4cae4c;
- }
- .btn-success .badge {
- color: #5cb85c;
- background-color: #ffffff;
- }
- .btn-info {
- color: #ffffff;
- background-color: #5bc0de;
- border-color: #46b8da;
- }
- .btn-info:focus,
- .btn-info.focus {
- color: #ffffff;
- background-color: #31b0d5;
- border-color: #1b6d85;
- }
- .btn-info:hover {
- color: #ffffff;
- background-color: #31b0d5;
- border-color: #269abc;
- }
- .btn-info:active,
- .btn-info.active,
- .open > .dropdown-toggle.btn-info {
- color: #ffffff;
- background-color: #31b0d5;
- border-color: #269abc;
- }
- .btn-info:active:hover,
- .btn-info.active:hover,
- .open > .dropdown-toggle.btn-info:hover,
- .btn-info:active:focus,
- .btn-info.active:focus,
- .open > .dropdown-toggle.btn-info:focus,
- .btn-info:active.focus,
- .btn-info.active.focus,
- .open > .dropdown-toggle.btn-info.focus {
- color: #ffffff;
- background-color: #269abc;
- border-color: #1b6d85;
- }
- .btn-info:active,
- .btn-info.active,
- .open > .dropdown-toggle.btn-info {
- background-image: none;
- }
- .btn-info.disabled,
- .btn-info[disabled],
- fieldset[disabled] .btn-info,
- .btn-info.disabled:hover,
- .btn-info[disabled]:hover,
- fieldset[disabled] .btn-info:hover,
- .btn-info.disabled:focus,
- .btn-info[disabled]:focus,
- fieldset[disabled] .btn-info:focus,
- .btn-info.disabled.focus,
- .btn-info[disabled].focus,
- fieldset[disabled] .btn-info.focus,
- .btn-info.disabled:active,
- .btn-info[disabled]:active,
- fieldset[disabled] .btn-info:active,
- .btn-info.disabled.active,
- .btn-info[disabled].active,
- fieldset[disabled] .btn-info.active {
- background-color: #5bc0de;
- border-color: #46b8da;
- }
- .btn-info .badge {
- color: #5bc0de;
- background-color: #ffffff;
- }
- .btn-warning {
- color: #ffffff;
- background-color: #f0ad4e;
- border-color: #eea236;
- }
- .btn-warning:focus,
- .btn-warning.focus {
- color: #ffffff;
- background-color: #ec971f;
- border-color: #985f0d;
- }
- .btn-warning:hover {
- color: #ffffff;
- background-color: #ec971f;
- border-color: #d58512;
- }
- .btn-warning:active,
- .btn-warning.active,
- .open > .dropdown-toggle.btn-warning {
- color: #ffffff;
- background-color: #ec971f;
- border-color: #d58512;
- }
- .btn-warning:active:hover,
- .btn-warning.active:hover,
- .open > .dropdown-toggle.btn-warning:hover,
- .btn-warning:active:focus,
- .btn-warning.active:focus,
- .open > .dropdown-toggle.btn-warning:focus,
- .btn-warning:active.focus,
- .btn-warning.active.focus,
- .open > .dropdown-toggle.btn-warning.focus {
- color: #ffffff;
- background-color: #d58512;
- border-color: #985f0d;
- }
- .btn-warning:active,
- .btn-warning.active,
- .open > .dropdown-toggle.btn-warning {
- background-image: none;
- }
- .btn-warning.disabled,
- .btn-warning[disabled],
- fieldset[disabled] .btn-warning,
- .btn-warning.disabled:hover,
- .btn-warning[disabled]:hover,
- fieldset[disabled] .btn-warning:hover,
- .btn-warning.disabled:focus,
- .btn-warning[disabled]:focus,
- fieldset[disabled] .btn-warning:focus,
- .btn-warning.disabled.focus,
- .btn-warning[disabled].focus,
- fieldset[disabled] .btn-warning.focus,
- .btn-warning.disabled:active,
- .btn-warning[disabled]:active,
- fieldset[disabled] .btn-warning:active,
- .btn-warning.disabled.active,
- .btn-warning[disabled].active,
- fieldset[disabled] .btn-warning.active {
- background-color: #f0ad4e;
- border-color: #eea236;
- }
- .btn-warning .badge {
- color: #f0ad4e;
- background-color: #ffffff;
- }
- .btn-danger {
- color: #ffffff;
- background-color: #d9534f;
- border-color: #d43f3a;
- }
- .btn-danger:focus,
- .btn-danger.focus {
- color: #ffffff;
- background-color: #c9302c;
- border-color: #761c19;
- }
- .btn-danger:hover {
- color: #ffffff;
- background-color: #c9302c;
- border-color: #ac2925;
- }
- .btn-danger:active,
- .btn-danger.active,
- .open > .dropdown-toggle.btn-danger {
- color: #ffffff;
- background-color: #c9302c;
- border-color: #ac2925;
- }
- .btn-danger:active:hover,
- .btn-danger.active:hover,
- .open > .dropdown-toggle.btn-danger:hover,
- .btn-danger:active:focus,
- .btn-danger.active:focus,
- .open > .dropdown-toggle.btn-danger:focus,
- .btn-danger:active.focus,
- .btn-danger.active.focus,
- .open > .dropdown-toggle.btn-danger.focus {
- color: #ffffff;
- background-color: #ac2925;
- border-color: #761c19;
- }
- .btn-danger:active,
- .btn-danger.active,
- .open > .dropdown-toggle.btn-danger {
- background-image: none;
- }
- .btn-danger.disabled,
- .btn-danger[disabled],
- fieldset[disabled] .btn-danger,
- .btn-danger.disabled:hover,
- .btn-danger[disabled]:hover,
- fieldset[disabled] .btn-danger:hover,
- .btn-danger.disabled:focus,
- .btn-danger[disabled]:focus,
- fieldset[disabled] .btn-danger:focus,
- .btn-danger.disabled.focus,
- .btn-danger[disabled].focus,
- fieldset[disabled] .btn-danger.focus,
- .btn-danger.disabled:active,
- .btn-danger[disabled]:active,
- fieldset[disabled] .btn-danger:active,
- .btn-danger.disabled.active,
- .btn-danger[disabled].active,
- fieldset[disabled] .btn-danger.active {
- background-color: #d9534f;
- border-color: #d43f3a;
- }
- .btn-danger .badge {
- color: #d9534f;
- background-color: #ffffff;
- }
- .btn-link {
- color: #337ab7;
- font-weight: normal;
- border-radius: 0;
- }
- .btn-link,
- .btn-link:active,
- .btn-link.active,
- .btn-link[disabled],
- fieldset[disabled] .btn-link {
- background-color: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
- }
- .btn-link,
- .btn-link:hover,
- .btn-link:focus,
- .btn-link:active {
- border-color: transparent;
- }
- .btn-link:hover,
- .btn-link:focus {
- color: #23527c;
- text-decoration: underline;
- background-color: transparent;
- }
- .btn-link[disabled]:hover,
- fieldset[disabled] .btn-link:hover,
- .btn-link[disabled]:focus,
- fieldset[disabled] .btn-link:focus {
- color: #777777;
- text-decoration: none;
- }
- .btn-lg,
- .btn-group-lg > .btn {
- padding: 10px 16px;
- font-size: 18px;
- line-height: 1.3333333;
- border-radius: 6px;
- }
- .btn-sm,
- .btn-group-sm > .btn {
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
- }
- .btn-xs,
- .btn-group-xs > .btn {
- padding: 1px 5px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
- }
- .btn-block {
- display: block;
- width: 100%;
- }
- .btn-block + .btn-block {
- margin-top: 5px;
- }
- input[type="submit"].btn-block,
- input[type="reset"].btn-block,
- input[type="button"].btn-block {
- width: 100%;
- }
- .fade {
- opacity: 0;
- -webkit-transition: opacity 0.15s linear;
- -o-transition: opacity 0.15s linear;
- transition: opacity 0.15s linear;
- }
- .fade.in {
- opacity: 1;
- }
- .collapse {
- display: none;
- }
- .collapse.in {
- display: block;
- }
- tr.collapse.in {
- display: table-row;
- }
- tbody.collapse.in {
- display: table-row-group;
- }
- .collapsing {
- position: relative;
- height: 0;
- overflow: hidden;
- -webkit-transition-property: height, visibility;
- -o-transition-property: height, visibility;
- transition-property: height, visibility;
- -webkit-transition-duration: 0.35s;
- -o-transition-duration: 0.35s;
- transition-duration: 0.35s;
- -webkit-transition-timing-function: ease;
- -o-transition-timing-function: ease;
- transition-timing-function: ease;
- }
- .caret {
- display: inline-block;
- width: 0;
- height: 0;
- margin-left: 2px;
- vertical-align: middle;
- border-top: 4px dashed;
- border-top: 4px solid \9;
- border-right: 4px solid transparent;
- border-left: 4px solid transparent;
- }
- .dropup,
- .dropdown {
- position: relative;
- }
- .dropdown-toggle:focus {
- outline: 0;
- }
- .dropdown-menu {
- position: absolute;
- top: 100%;
- left: 0;
- z-index: 1000;
- display: none;
- float: left;
- min-width: 160px;
- padding: 5px 0;
- margin: 2px 0 0;
- list-style: none;
- font-size: 14px;
- text-align: left;
- background-color: #ffffff;
- border: 1px solid #cccccc;
- border: 1px solid rgba(0, 0, 0, 0.15);
- border-radius: 4px;
- -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
- box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
- -webkit-background-clip: padding-box;
- background-clip: padding-box;
- }
- .dropdown-menu.pull-right {
- right: 0;
- left: auto;
- }
- .dropdown-menu .divider {
- height: 1px;
- margin: 9px 0;
- overflow: hidden;
- background-color: #e5e5e5;
- }
- .dropdown-menu > li > a {
- display: block;
- padding: 3px 20px;
- clear: both;
- font-weight: normal;
- line-height: 1.42857143;
- color: #333333;
- white-space: nowrap;
- }
- .dropdown-menu > li > a:hover,
- .dropdown-menu > li > a:focus {
- text-decoration: none;
- color: #262626;
- background-color: #f5f5f5;
- }
- .dropdown-menu > .active > a,
- .dropdown-menu > .active > a:hover,
- .dropdown-menu > .active > a:focus {
- color: #ffffff;
- text-decoration: none;
- outline: 0;
- background-color: #337ab7;
- }
- .dropdown-menu > .disabled > a,
- .dropdown-menu > .disabled > a:hover,
- .dropdown-menu > .disabled > a:focus {
- color: #777777;
- }
- .dropdown-menu > .disabled > a:hover,
- .dropdown-menu > .disabled > a:focus {
- text-decoration: none;
- background-color: transparent;
- background-image: none;
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- cursor: not-allowed;
- }
- .open > .dropdown-menu {
- display: block;
- }
- .open > a {
- outline: 0;
- }
- .dropdown-menu-right {
- left: auto;
- right: 0;
- }
- .dropdown-menu-left {
- left: 0;
- right: auto;
- }
- .dropdown-header {
- display: block;
- padding: 3px 20px;
- font-size: 12px;
- line-height: 1.42857143;
- color: #777777;
- white-space: nowrap;
- }
- .dropdown-backdrop {
- position: fixed;
- left: 0;
- right: 0;
- bottom: 0;
- top: 0;
- z-index: 990;
- }
- .pull-right > .dropdown-menu {
- right: 0;
- left: auto;
- }
- .dropup .caret,
- .navbar-fixed-bottom .dropdown .caret {
- border-top: 0;
- border-bottom: 4px dashed;
- border-bottom: 4px solid \9;
- content: "";
- }
- .dropup .dropdown-menu,
- .navbar-fixed-bottom .dropdown .dropdown-menu {
- top: auto;
- bottom: 100%;
- margin-bottom: 2px;
- }
- @media (min-width: 768px) {
- .navbar-right .dropdown-menu {
- left: auto;
- right: 0;
- }
- .navbar-right .dropdown-menu-left {
- left: 0;
- right: auto;
- }
- }
- .btn-group,
- .btn-group-vertical {
- position: relative;
- display: inline-block;
- vertical-align: middle;
- }
- .btn-group > .btn,
- .btn-group-vertical > .btn {
- position: relative;
- float: left;
- }
- .btn-group > .btn:hover,
- .btn-group-vertical > .btn:hover,
- .btn-group > .btn:focus,
- .btn-group-vertical > .btn:focus,
- .btn-group > .btn:active,
- .btn-group-vertical > .btn:active,
- .btn-group > .btn.active,
- .btn-group-vertical > .btn.active {
- z-index: 2;
- }
- .btn-group .btn + .btn,
- .btn-group .btn + .btn-group,
- .btn-group .btn-group + .btn,
- .btn-group .btn-group + .btn-group {
- margin-left: -1px;
- }
- .btn-toolbar {
- margin-left: -5px;
- }
- .btn-toolbar .btn,
- .btn-toolbar .btn-group,
- .btn-toolbar .input-group {
- float: left;
- }
- .btn-toolbar > .btn,
- .btn-toolbar > .btn-group,
- .btn-toolbar > .input-group {
- margin-left: 5px;
- }
- .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
- border-radius: 0;
- }
- .btn-group > .btn:first-child {
- margin-left: 0;
- }
- .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
- border-bottom-right-radius: 0;
- border-top-right-radius: 0;
- }
- .btn-group > .btn:last-child:not(:first-child),
- .btn-group > .dropdown-toggle:not(:first-child) {
- border-bottom-left-radius: 0;
- border-top-left-radius: 0;
- }
- .btn-group > .btn-group {
- float: left;
- }
- .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
- border-radius: 0;
- }
- .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
- .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
- border-bottom-right-radius: 0;
- border-top-right-radius: 0;
- }
- .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
- border-bottom-left-radius: 0;
- border-top-left-radius: 0;
- }
- .btn-group .dropdown-toggle:active,
- .btn-group.open .dropdown-toggle {
- outline: 0;
- }
- .btn-group > .btn + .dropdown-toggle {
- padding-left: 8px;
- padding-right: 8px;
- }
- .btn-group > .btn-lg + .dropdown-toggle {
- padding-left: 12px;
- padding-right: 12px;
- }
- .btn-group.open .dropdown-toggle {
- -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
- }
- .btn-group.open .dropdown-toggle.btn-link {
- -webkit-box-shadow: none;
- box-shadow: none;
- }
- .btn .caret {
- margin-left: 0;
- }
- .btn-lg .caret {
- border-width: 5px 5px 0;
- border-bottom-width: 0;
- }
- .dropup .btn-lg .caret {
- border-width: 0 5px 5px;
- }
- .btn-group-vertical > .btn,
- .btn-group-vertical > .btn-group,
- .btn-group-vertical > .btn-group > .btn {
- display: block;
- float: none;
- width: 100%;
- max-width: 100%;
- }
- .btn-group-vertical > .btn-group > .btn {
- float: none;
- }
- .btn-group-vertical > .btn + .btn,
- .btn-group-vertical > .btn + .btn-group,
- .btn-group-vertical > .btn-group + .btn,
- .btn-group-vertical > .btn-group + .btn-group {
- margin-top: -1px;
- margin-left: 0;
- }
- .btn-group-vertical > .btn:not(:first-child):not(:last-child) {
- border-radius: 0;
- }
- .btn-group-vertical > .btn:first-child:not(:last-child) {
- border-top-right-radius: 4px;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
- }
- .btn-group-vertical > .btn:last-child:not(:first-child) {
- border-bottom-left-radius: 4px;
- border-top-right-radius: 0;
- border-top-left-radius: 0;
- }
- .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
- border-radius: 0;
- }
- .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
- .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
- }
- .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
- border-top-right-radius: 0;
- border-top-left-radius: 0;
- }
- .btn-group-justified {
- display: table;
- width: 100%;
- table-layout: fixed;
- border-collapse: separate;
- }
- .btn-group-justified > .btn,
- .btn-group-justified > .btn-group {
- float: none;
- display: table-cell;
- width: 1%;
- }
- .btn-group-justified > .btn-group .btn {
- width: 100%;
- }
- .btn-group-justified > .btn-group .dropdown-menu {
- left: auto;
- }
- [data-toggle="buttons"] > .btn input[type="radio"],
- [data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
- [data-toggle="buttons"] > .btn input[type="checkbox"],
- [data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
- position: absolute;
- clip: rect(0, 0, 0, 0);
- pointer-events: none;
- }
- .input-group {
- position: relative;
- display: table;
- border-collapse: separate;
- }
- .input-group[class*="col-"] {
- float: none;
- padding-left: 0;
- padding-right: 0;
- }
- .input-group .form-control {
- position: relative;
- z-index: 2;
- float: left;
- width: 100%;
- margin-bottom: 0;
- }
- .input-group-lg > .form-control,
- .input-group-lg > .input-group-addon,
- .input-group-lg > .input-group-btn > .btn {
- height: 46px;
- padding: 10px 16px;
- font-size: 18px;
- line-height: 1.3333333;
- border-radius: 6px;
- }
- select.input-group-lg > .form-control,
- select.input-group-lg > .input-group-addon,
- select.input-group-lg > .input-group-btn > .btn {
- height: 46px;
- line-height: 46px;
- }
- textarea.input-group-lg > .form-control,
- textarea.input-group-lg > .input-group-addon,
- textarea.input-group-lg > .input-group-btn > .btn,
- select[multiple].input-group-lg > .form-control,
- select[multiple].input-group-lg > .input-group-addon,
- select[multiple].input-group-lg > .input-group-btn > .btn {
- height: auto;
- }
- .input-group-sm > .form-control,
- .input-group-sm > .input-group-addon,
- .input-group-sm > .input-group-btn > .btn {
- height: 30px;
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
- }
- select.input-group-sm > .form-control,
- select.input-group-sm > .input-group-addon,
- select.input-group-sm > .input-group-btn > .btn {
- height: 30px;
- line-height: 30px;
- }
- textarea.input-group-sm > .form-control,
- textarea.input-group-sm > .input-group-addon,
- textarea.input-group-sm > .input-group-btn > .btn,
- select[multiple].input-group-sm > .form-control,
- select[multiple].input-group-sm > .input-group-addon,
- select[multiple].input-group-sm > .input-group-btn > .btn {
- height: auto;
- }
- .input-group-addon,
- .input-group-btn,
- .input-group .form-control {
- display: table-cell;
- }
- .input-group-addon:not(:first-child):not(:last-child),
- .input-group-btn:not(:first-child):not(:last-child),
- .input-group .form-control:not(:first-child):not(:last-child) {
- border-radius: 0;
- }
- .input-group-addon,
- .input-group-btn {
- width: 1%;
- white-space: nowrap;
- vertical-align: middle;
- }
- .input-group-addon {
- padding: 6px 12px;
- font-size: 14px;
- font-weight: normal;
- line-height: 1;
- color: #555555;
- text-align: center;
- background-color: #eeeeee;
- border: 1px solid #cccccc;
- border-radius: 4px;
- }
- .input-group-addon.input-sm {
- padding: 5px 10px;
- font-size: 12px;
- border-radius: 3px;
- }
- .input-group-addon.input-lg {
- padding: 10px 16px;
- font-size: 18px;
- border-radius: 6px;
- }
- .input-group-addon input[type="radio"],
- .input-group-addon input[type="checkbox"] {
- margin-top: 0;
- }
- .input-group .form-control:first-child,
- .input-group-addon:first-child,
- .input-group-btn:first-child > .btn,
- .input-group-btn:first-child > .btn-group > .btn,
- .input-group-btn:first-child > .dropdown-toggle,
- .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
- .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
- border-bottom-right-radius: 0;
- border-top-right-radius: 0;
- }
- .input-group-addon:first-child {
- border-right: 0;
- }
- .input-group .form-control:last-child,
- .input-group-addon:last-child,
- .input-group-btn:last-child > .btn,
- .input-group-btn:last-child > .btn-group > .btn,
- .input-group-btn:last-child > .dropdown-toggle,
- .input-group-btn:first-child > .btn:not(:first-child),
- .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
- border-bottom-left-radius: 0;
- border-top-left-radius: 0;
- }
- .input-group-addon:last-child {
- border-left: 0;
- }
- .input-group-btn {
- position: relative;
- font-size: 0;
- white-space: nowrap;
- }
- .input-group-btn > .btn {
- position: relative;
- }
- .input-group-btn > .btn + .btn {
- margin-left: -1px;
- }
- .input-group-btn > .btn:hover,
- .input-group-btn > .btn:focus,
- .input-group-btn > .btn:active {
- z-index: 2;
- }
- .input-group-btn:first-child > .btn,
- .input-group-btn:first-child > .btn-group {
- margin-right: -1px;
- }
- .input-group-btn:last-child > .btn,
- .input-group-btn:last-child > .btn-group {
- z-index: 2;
- margin-left: -1px;
- }
- .nav {
- margin-bottom: 0;
- padding-left: 0;
- list-style: none;
- }
- .nav > li {
- position: relative;
- display: block;
- }
- .nav > li > a {
- position: relative;
- display: block;
- padding: 10px 15px;
- }
- .nav > li > a:hover,
- .nav > li > a:focus {
- text-decoration: none;
- background-color: #eeeeee;
- }
- .nav > li.disabled > a {
- color: #777777;
- }
- .nav > li.disabled > a:hover,
- .nav > li.disabled > a:focus {
- color: #777777;
- text-decoration: none;
- background-color: transparent;
- cursor: not-allowed;
- }
- .nav .open > a,
- .nav .open > a:hover,
- .nav .open > a:focus {
- background-color: #eeeeee;
- border-color: #337ab7;
- }
- .nav .nav-divider {
- height: 1px;
- margin: 9px 0;
- overflow: hidden;
- background-color: #e5e5e5;
- }
- .nav > li > a > img {
- max-width: none;
- }
- .nav-tabs {
- border-bottom: 1px solid #dddddd;
- }
- .nav-tabs > li {
- float: left;
- margin-bottom: -1px;
- }
- .nav-tabs > li > a {
- margin-right: 2px;
- line-height: 1.42857143;
- border: 1px solid transparent;
- border-radius: 4px 4px 0 0;
- }
- .nav-tabs > li > a:hover {
- border-color: #eeeeee #eeeeee #dddddd;
- }
- .nav-tabs > li.active > a,
- .nav-tabs > li.active > a:hover,
- .nav-tabs > li.active > a:focus {
- color: #555555;
- background-color: #ffffff;
- border: 1px solid #dddddd;
- border-bottom-color: transparent;
- cursor: default;
- }
- .nav-tabs.nav-justified {
- width: 100%;
- border-bottom: 0;
- }
- .nav-tabs.nav-justified > li {
- float: none;
- }
- .nav-tabs.nav-justified > li > a {
- text-align: center;
- margin-bottom: 5px;
- }
- .nav-tabs.nav-justified > .dropdown .dropdown-menu {
- top: auto;
- left: auto;
- }
- @media (min-width: 768px) {
- .nav-tabs.nav-justified > li {
- display: table-cell;
- width: 1%;
- }
- .nav-tabs.nav-justified > li > a {
- margin-bottom: 0;
- }
- }
- .nav-tabs.nav-justified > li > a {
- margin-right: 0;
- border-radius: 4px;
- }
- .nav-tabs.nav-justified > .active > a,
- .nav-tabs.nav-justified > .active > a:hover,
- .nav-tabs.nav-justified > .active > a:focus {
- border: 1px solid #dddddd;
- }
- @media (min-width: 768px) {
- .nav-tabs.nav-justified > li > a {
- border-bottom: 1px solid #dddddd;
- border-radius: 4px 4px 0 0;
- }
- .nav-tabs.nav-justified > .active > a,
- .nav-tabs.nav-justified > .active > a:hover,
- .nav-tabs.nav-justified > .active > a:focus {
- border-bottom-color: #ffffff;
- }
- }
- .nav-pills > li {
- float: left;
- }
- .nav-pills > li > a {
- border-radius: 4px;
- }
- .nav-pills > li + li {
- margin-left: 2px;
- }
- .nav-pills > li.active > a,
- .nav-pills > li.active > a:hover,
- .nav-pills > li.active > a:focus {
- color: #ffffff;
- background-color: #337ab7;
- }
- .nav-stacked > li {
- float: none;
- }
- .nav-stacked > li + li {
- margin-top: 2px;
- margin-left: 0;
- }
- .nav-justified {
- width: 100%;
- }
- .nav-justified > li {
- float: none;
- }
- .nav-justified > li > a {
- text-align: center;
- margin-bottom: 5px;
- }
- .nav-justified > .dropdown .dropdown-menu {
- top: auto;
- left: auto;
- }
- @media (min-width: 768px) {
- .nav-justified > li {
- display: table-cell;
- width: 1%;
- }
- .nav-justified > li > a {
- margin-bottom: 0;
- }
- }
- .nav-tabs-justified {
- border-bottom: 0;
- }
- .nav-tabs-justified > li > a {
- margin-right: 0;
- border-radius: 4px;
- }
- .nav-tabs-justified > .active > a,
- .nav-tabs-justified > .active > a:hover,
- .nav-tabs-justified > .active > a:focus {
- border: 1px solid #dddddd;
- }
- @media (min-width: 768px) {
- .nav-tabs-justified > li > a {
- border-bottom: 1px solid #dddddd;
- border-radius: 4px 4px 0 0;
- }
- .nav-tabs-justified > .active > a,
- .nav-tabs-justified > .active > a:hover,
- .nav-tabs-justified > .active > a:focus {
- border-bottom-color: #ffffff;
- }
- }
- .tab-content > .tab-pane {
- display: none;
- }
- .tab-content > .active {
- display: block;
- }
- .nav-tabs .dropdown-menu {
- margin-top: -1px;
- border-top-right-radius: 0;
- border-top-left-radius: 0;
- }
- .navbar {
- position: relative;
- min-height: 50px;
- margin-bottom: 20px;
- border: 1px solid transparent;
- }
- @media (min-width: 768px) {
- .navbar {
- border-radius: 4px;
- }
- }
- @media (min-width: 768px) {
- .navbar-header {
- float: left;
- }
- }
- .navbar-collapse {
- overflow-x: visible;
- padding-right: 15px;
- padding-left: 15px;
- border-top: 1px solid transparent;
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
- -webkit-overflow-scrolling: touch;
- }
- .navbar-collapse.in {
- overflow-y: auto;
- }
- @media (min-width: 768px) {
- .navbar-collapse {
- width: auto;
- border-top: 0;
- -webkit-box-shadow: none;
- box-shadow: none;
- }
- .navbar-collapse.collapse {
- display: block !important;
- height: auto !important;
- padding-bottom: 0;
- overflow: visible !important;
- }
- .navbar-collapse.in {
- overflow-y: visible;
- }
- .navbar-fixed-top .navbar-collapse,
- .navbar-static-top .navbar-collapse,
- .navbar-fixed-bottom .navbar-collapse {
- padding-left: 0;
- padding-right: 0;
- }
- }
- .navbar-fixed-top .navbar-collapse,
- .navbar-fixed-bottom .navbar-collapse {
- max-height: 340px;
- }
- @media (max-device-width: 480px) and (orientation: landscape) {
- .navbar-fixed-top .navbar-collapse,
- .navbar-fixed-bottom .navbar-collapse {
- max-height: 200px;
- }
- }
- .container > .navbar-header,
- .container-fluid > .navbar-header,
- .container > .navbar-collapse,
- .container-fluid > .navbar-collapse {
- margin-right: -15px;
- margin-left: -15px;
- }
- @media (min-width: 768px) {
- .container > .navbar-header,
- .container-fluid > .navbar-header,
- .container > .navbar-collapse,
- .container-fluid > .navbar-collapse {
- margin-right: 0;
- margin-left: 0;
- }
- }
- .navbar-static-top {
- z-index: 1000;
- border-width: 0 0 1px;
- }
- @media (min-width: 768px) {
- .navbar-static-top {
- border-radius: 0;
- }
- }
- .navbar-fixed-top,
- .navbar-fixed-bottom {
- position: fixed;
- right: 0;
- left: 0;
- z-index: 1030;
- }
- @media (min-width: 768px) {
- .navbar-fixed-top,
- .navbar-fixed-bottom {
- border-radius: 0;
- }
- }
- .navbar-fixed-top {
- top: 0;
- border-width: 0 0 1px;
- }
- .navbar-fixed-bottom {
- bottom: 0;
- margin-bottom: 0;
- border-width: 1px 0 0;
- }
- .navbar-brand {
- float: left;
- padding: 15px 15px;
- font-size: 18px;
- line-height: 20px;
- height: 50px;
- }
- .navbar-brand:hover,
- .navbar-brand:focus {
- text-decoration: none;
- }
- .navbar-brand > img {
- display: block;
- }
- @media (min-width: 768px) {
- .navbar > .container .navbar-brand,
- .navbar > .container-fluid .navbar-brand {
- margin-left: -15px;
- }
- }
- .navbar-toggle {
- position: relative;
- float: right;
- margin-right: 15px;
- padding: 9px 10px;
- margin-top: 8px;
- margin-bottom: 8px;
- background-color: transparent;
- background-image: none;
- border: 1px solid transparent;
- border-radius: 4px;
- }
- .navbar-toggle:focus {
- outline: 0;
- }
- .navbar-toggle .icon-bar {
- display: block;
- width: 22px;
- height: 2px;
- border-radius: 1px;
- }
- .navbar-toggle .icon-bar + .icon-bar {
- margin-top: 4px;
- }
- @media (min-width: 768px) {
- .navbar-toggle {
- display: none;
- }
- }
- .navbar-nav {
- margin: 7.5px -15px;
- }
- .navbar-nav > li > a {
- padding-top: 10px;
- padding-bottom: 10px;
- line-height: 20px;
- }
- @media (max-width: 767px) {
- .navbar-nav .open .dropdown-menu {
- position: static;
- float: none;
- width: auto;
- margin-top: 0;
- background-color: transparent;
- border: 0;
- -webkit-box-shadow: none;
- box-shadow: none;
- }
- .navbar-nav .open .dropdown-menu > li > a,
- .navbar-nav .open .dropdown-menu .dropdown-header {
- padding: 5px 15px 5px 25px;
- }
- .navbar-nav .open .dropdown-menu > li > a {
- line-height: 20px;
- }
- .navbar-nav .open .dropdown-menu > li > a:hover,
- .navbar-nav .open .dropdown-menu > li > a:focus {
- background-image: none;
- }
- }
- @media (min-width: 768px) {
- .navbar-nav {
- float: left;
- margin: 0;
- }
- .navbar-nav > li {
- float: left;
- }
- .navbar-nav > li > a {
- padding-top: 15px;
- padding-bottom: 15px;
- }
- }
- .navbar-form {
- margin-left: -15px;
- margin-right: -15px;
- padding: 10px 15px;
- border-top: 1px solid transparent;
- border-bottom: 1px solid transparent;
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
- margin-top: 8px;
- margin-bottom: 8px;
- }
- @media (min-width: 768px) {
- .navbar-form .form-group {
- display: inline-block;
- margin-bottom: 0;
- vertical-align: middle;
- }
- .navbar-form .form-control {
- display: inline-block;
- width: auto;
- vertical-align: middle;
- }
- .navbar-form .form-control-static {
- display: inline-block;
- }
- .navbar-form .input-group {
- display: inline-table;
- vertical-align: middle;
- }
- .navbar-form .input-group .input-group-addon,
- .navbar-form .input-group .input-group-btn,
- .navbar-form .input-group .form-control {
- width: auto;
- }
- .navbar-form .input-group > .form-control {
- width: 100%;
- }
- .navbar-form .control-label {
- margin-bottom: 0;
- vertical-align: middle;
- }
- .navbar-form .radio,
- .navbar-form .checkbox {
- display: inline-block;
- margin-top: 0;
- margin-bottom: 0;
- vertical-align: middle;
- }
- .navbar-form .radio label,
- .navbar-form .checkbox label {
- padding-left: 0;
- }
- .navbar-form .radio input[type="radio"],
- .navbar-form .checkbox input[type="checkbox"] {
- position: relative;
- margin-left: 0;
- }
- .navbar-form .has-feedback .form-control-feedback {
- top: 0;
- }
- }
- @media (max-width: 767px) {
- .navbar-form .form-group {
- margin-bottom: 5px;
- }
- .navbar-form .form-group:last-child {
- margin-bottom: 0;
- }
- }
- @media (min-width: 768px) {
- .navbar-form {
- width: auto;
- border: 0;
- margin-left: 0;
- margin-right: 0;
- padding-top: 0;
- padding-bottom: 0;
- -webkit-box-shadow: none;
- box-shadow: none;
- }
- }
- .navbar-nav > li > .dropdown-menu {
- margin-top: 0;
- border-top-right-radius: 0;
- border-top-left-radius: 0;
- }
- .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
- margin-bottom: 0;
- border-top-right-radius: 4px;
- border-top-left-radius: 4px;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
- }
- .navbar-btn {
- margin-top: 8px;
- margin-bottom: 8px;
- }
- .navbar-btn.btn-sm {
- margin-top: 10px;
- margin-bottom: 10px;
- }
- .navbar-btn.btn-xs {
- margin-top: 14px;
- margin-bottom: 14px;
- }
- .navbar-text {
- margin-top: 15px;
- margin-bottom: 15px;
- }
- @media (min-width: 768px) {
- .navbar-text {
- float: left;
- margin-left: 15px;
- margin-right: 15px;
- }
- }
- @media (min-width: 768px) {
- .navbar-left {
- float: left !important;
- }
- .navbar-right {
- float: right !important;
- margin-right: -15px;
- }
- .navbar-right ~ .navbar-right {
- margin-right: 0;
- }
- }
- .navbar-default {
- background-color: #f8f8f8;
- border-color: #e7e7e7;
- }
- .navbar-default .navbar-brand {
- color: #777777;
- }
- .navbar-default .navbar-brand:hover,
- .navbar-default .navbar-brand:focus {
- color: #5e5e5e;
- background-color: transparent;
- }
- .navbar-default .navbar-text {
- color: #777777;
- }
- .navbar-default .navbar-nav > li > a {
- color: #777777;
- }
- .navbar-default .navbar-nav > li > a:hover,
- .navbar-default .navbar-nav > li > a:focus {
- color: #333333;
- background-color: transparent;
- }
- .navbar-default .navbar-nav > .active > a,
- .navbar-default .navbar-nav > .active > a:hover,
- .navbar-default .navbar-nav > .active > a:focus {
- color: #555555;
- background-color: #e7e7e7;
- }
- .navbar-default .navbar-nav > .disabled > a,
- .navbar-default .navbar-nav > .disabled > a:hover,
- .navbar-default .navbar-nav > .disabled > a:focus {
- color: #cccccc;
- background-color: transparent;
- }
- .navbar-default .navbar-toggle {
- border-color: #dddddd;
- }
- .navbar-default .navbar-toggle:hover,
- .navbar-default .navbar-toggle:focus {
- background-color: #dddddd;
- }
- .navbar-default .navbar-toggle .icon-bar {
- background-color: #888888;
- }
- .navbar-default .navbar-collapse,
- .navbar-default .navbar-form {
- border-color: #e7e7e7;
- }
- .navbar-default .navbar-nav > .open > a,
- .navbar-default .navbar-nav > .open > a:hover,
- .navbar-default .navbar-nav > .open > a:focus {
- background-color: #e7e7e7;
- color: #555555;
- }
- @media (max-width: 767px) {
- .navbar-default .navbar-nav .open .dropdown-menu > li > a {
- color: #777777;
- }
- .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
- .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
- color: #333333;
- background-color: transparent;
- }
- .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
- .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
- .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
- color: #555555;
- background-color: #e7e7e7;
- }
- .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
- .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
- .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
- color: #cccccc;
- background-color: transparent;
- }
- }
- .navbar-default .navbar-link {
- color: #777777;
- }
- .navbar-default .navbar-link:hover {
- color: #333333;
- }
- .navbar-default .btn-link {
- color: #777777;
- }
- .navbar-default .btn-link:hover,
- .navbar-default .btn-link:focus {
- color: #333333;
- }
- .navbar-default .btn-link[disabled]:hover,
- fieldset[disabled] .navbar-default .btn-link:hover,
- .navbar-default .btn-link[disabled]:focus,
- fieldset[disabled] .navbar-default .btn-link:focus {
- color: #cccccc;
- }
- .navbar-inverse {
- background-color: #222222;
- border-color: #080808;
- }
- .navbar-inverse .navbar-brand {
- color: #9d9d9d;
- }
- .navbar-inverse .navbar-brand:hover,
- .navbar-inverse .navbar-brand:focus {
- color: #ffffff;
- background-color: transparent;
- }
- .navbar-inverse .navbar-text {
- color: #9d9d9d;
- }
- .navbar-inverse .navbar-nav > li > a {
- color: #9d9d9d;
- }
- .navbar-inverse .navbar-nav > li > a:hover,
- .navbar-inverse .navbar-nav > li > a:focus {
- color: #ffffff;
- background-color: transparent;
- }
- .navbar-inverse .navbar-nav > .active > a,
- .navbar-inverse .navbar-nav > .active > a:hover,
- .navbar-inverse .navbar-nav > .active > a:focus {
- color: #ffffff;
- background-color: #080808;
- }
- .navbar-inverse .navbar-nav > .disabled > a,
- .navbar-inverse .navbar-nav > .disabled > a:hover,
- .navbar-inverse .navbar-nav > .disabled > a:focus {
- color: #444444;
- background-color: transparent;
- }
- .navbar-inverse .navbar-toggle {
- border-color: #333333;
- }
- .navbar-inverse .navbar-toggle:hover,
- .navbar-inverse .navbar-toggle:focus {
- background-color: #333333;
- }
- .navbar-inverse .navbar-toggle .icon-bar {
- background-color: #ffffff;
- }
- .navbar-inverse .navbar-collapse,
- .navbar-inverse .navbar-form {
- border-color: #101010;
- }
- .navbar-inverse .navbar-nav > .open > a,
- .navbar-inverse .navbar-nav > .open > a:hover,
- .navbar-inverse .navbar-nav > .open > a:focus {
- background-color: #080808;
- color: #ffffff;
- }
- @media (max-width: 767px) {
- .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
- border-color: #080808;
- }
- .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
- background-color: #080808;
- }
- .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
- color: #9d9d9d;
- }
- .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
- .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
- color: #ffffff;
- background-color: transparent;
- }
- .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
- .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
- .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
- color: #ffffff;
- background-color: #080808;
- }
- .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
- .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
- .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
- color: #444444;
- background-color: transparent;
- }
- }
- .navbar-inverse .navbar-link {
- color: #9d9d9d;
- }
- .navbar-inverse .navbar-link:hover {
- color: #ffffff;
- }
- .navbar-inverse .btn-link {
- color: #9d9d9d;
- }
- .navbar-inverse .btn-link:hover,
- .navbar-inverse .btn-link:focus {
- color: #ffffff;
- }
- .navbar-inverse .btn-link[disabled]:hover,
- fieldset[disabled] .navbar-inverse .btn-link:hover,
- .navbar-inverse .btn-link[disabled]:focus,
- fieldset[disabled] .navbar-inverse .btn-link:focus {
- color: #444444;
- }
- .breadcrumb {
- padding: 8px 15px;
- margin-bottom: 20px;
- list-style: none;
- background-color: #f5f5f5;
- border-radius: 4px;
- }
- .breadcrumb > li {
- display: inline-block;
- }
- .breadcrumb > li + li:before {
- content: "/\00a0";
- padding: 0 5px;
- color: #cccccc;
- }
- .breadcrumb > .active {
- color: #777777;
- }
- .pagination {
- display: inline-block;
- padding-left: 0;
- margin: 20px 0;
- border-radius: 4px;
- }
- .pagination > li {
- display: inline;
- }
- .pagination > li > a,
- .pagination > li > span {
- position: relative;
- float: left;
- padding: 6px 12px;
- line-height: 1.42857143;
- text-decoration: none;
- color: #337ab7;
- background-color: #ffffff;
- border: 1px solid #dddddd;
- margin-left: -1px;
- }
- .pagination > li:first-child > a,
- .pagination > li:first-child > span {
- margin-left: 0;
- border-bottom-left-radius: 4px;
- border-top-left-radius: 4px;
- }
- .pagination > li:last-child > a,
- .pagination > li:last-child > span {
- border-bottom-right-radius: 4px;
- border-top-right-radius: 4px;
- }
- .pagination > li > a:hover,
- .pagination > li > span:hover,
- .pagination > li > a:focus,
- .pagination > li > span:focus {
- z-index: 3;
- color: #23527c;
- background-color: #eeeeee;
- border-color: #dddddd;
- }
- .pagination > .active > a,
- .pagination > .active > span,
- .pagination > .active > a:hover,
- .pagination > .active > span:hover,
- .pagination > .active > a:focus,
- .pagination > .active > span:focus {
- z-index: 2;
- color: #ffffff;
- background-color: #337ab7;
- border-color: #337ab7;
- cursor: default;
- }
- .pagination > .disabled > span,
- .pagination > .disabled > span:hover,
- .pagination > .disabled > span:focus,
- .pagination > .disabled > a,
- .pagination > .disabled > a:hover,
- .pagination > .disabled > a:focus {
- color: #777777;
- background-color: #ffffff;
- border-color: #dddddd;
- cursor: not-allowed;
- }
- .pagination-lg > li > a,
- .pagination-lg > li > span {
- padding: 10px 16px;
- font-size: 18px;
- line-height: 1.3333333;
- }
- .pagination-lg > li:first-child > a,
- .pagination-lg > li:first-child > span {
- border-bottom-left-radius: 6px;
- border-top-left-radius: 6px;
- }
- .pagination-lg > li:last-child > a,
- .pagination-lg > li:last-child > span {
- border-bottom-right-radius: 6px;
- border-top-right-radius: 6px;
- }
- .pagination-sm > li > a,
- .pagination-sm > li > span {
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- }
- .pagination-sm > li:first-child > a,
- .pagination-sm > li:first-child > span {
- border-bottom-left-radius: 3px;
- border-top-left-radius: 3px;
- }
- .pagination-sm > li:last-child > a,
- .pagination-sm > li:last-child > span {
- border-bottom-right-radius: 3px;
- border-top-right-radius: 3px;
- }
- .pager {
- padding-left: 0;
- margin: 20px 0;
- list-style: none;
- text-align: center;
- }
- .pager li {
- display: inline;
- }
- .pager li > a,
- .pager li > span {
- display: inline-block;
- padding: 5px 14px;
- background-color: #ffffff;
- border: 1px solid #dddddd;
- border-radius: 15px;
- }
- .pager li > a:hover,
- .pager li > a:focus {
- text-decoration: none;
- background-color: #eeeeee;
- }
- .pager .next > a,
- .pager .next > span {
- float: right;
- }
- .pager .previous > a,
- .pager .previous > span {
- float: left;
- }
- .pager .disabled > a,
- .pager .disabled > a:hover,
- .pager .disabled > a:focus,
- .pager .disabled > span {
- color: #777777;
- background-color: #ffffff;
- cursor: not-allowed;
- }
- .label {
- display: inline;
- padding: .2em .6em .3em;
- font-size: 75%;
- font-weight: bold;
- line-height: 1;
- color: #ffffff;
- text-align: center;
- white-space: nowrap;
- vertical-align: baseline;
- border-radius: .25em;
- }
- a.label:hover,
- a.label:focus {
- color: #ffffff;
- text-decoration: none;
- cursor: pointer;
- }
- .label:empty {
- display: none;
- }
- .btn .label {
- position: relative;
- top: -1px;
- }
- .label-default {
- background-color: #777777;
- }
- .label-default[href]:hover,
- .label-default[href]:focus {
- background-color: #5e5e5e;
- }
- .label-primary {
- background-color: #337ab7;
- }
- .label-primary[href]:hover,
- .label-primary[href]:focus {
- background-color: #286090;
- }
- .label-success {
- background-color: #5cb85c;
- }
- .label-success[href]:hover,
- .label-success[href]:focus {
- background-color: #449d44;
- }
- .label-info {
- background-color: #5bc0de;
- }
- .label-info[href]:hover,
- .label-info[href]:focus {
- background-color: #31b0d5;
- }
- .label-warning {
- background-color: #f0ad4e;
- }
- .label-warning[href]:hover,
- .label-warning[href]:focus {
- background-color: #ec971f;
- }
- .label-danger {
- background-color: #d9534f;
- }
- .label-danger[href]:hover,
- .label-danger[href]:focus {
- background-color: #c9302c;
- }
- .badge {
- display: inline-block;
- min-width: 10px;
- padding: 3px 7px;
- font-size: 12px;
- font-weight: bold;
- color: #ffffff;
- line-height: 1;
- vertical-align: middle;
- white-space: nowrap;
- text-align: center;
- background-color: #777777;
- border-radius: 10px;
- }
- .badge:empty {
- display: none;
- }
- .btn .badge {
- position: relative;
- top: -1px;
- }
- .btn-xs .badge,
- .btn-group-xs > .btn .badge {
- top: 0;
- padding: 1px 5px;
- }
- a.badge:hover,
- a.badge:focus {
- color: #ffffff;
- text-decoration: none;
- cursor: pointer;
- }
- .list-group-item.active > .badge,
- .nav-pills > .active > a > .badge {
- color: #337ab7;
- background-color: #ffffff;
- }
- .list-group-item > .badge {
- float: right;
- }
- .list-group-item > .badge + .badge {
- margin-right: 5px;
- }
- .nav-pills > li > a > .badge {
- margin-left: 3px;
- }
- .jumbotron {
- padding-top: 30px;
- padding-bottom: 30px;
- margin-bottom: 30px;
- color: inherit;
- background-color: #eeeeee;
- }
- .jumbotron h1,
- .jumbotron .h1 {
- color: inherit;
- }
- .jumbotron p {
- margin-bottom: 15px;
- font-size: 21px;
- font-weight: 200;
- }
- .jumbotron > hr {
- border-top-color: #d5d5d5;
- }
- .container .jumbotron,
- .container-fluid .jumbotron {
- border-radius: 6px;
- }
- .jumbotron .container {
- max-width: 100%;
- }
- @media screen and (min-width: 768px) {
- .jumbotron {
- padding-top: 48px;
- padding-bottom: 48px;
- }
- .container .jumbotron,
- .container-fluid .jumbotron {
- padding-left: 60px;
- padding-right: 60px;
- }
- .jumbotron h1,
- .jumbotron .h1 {
- font-size: 63px;
- }
- }
- .thumbnail {
- display: block;
- padding: 4px;
- margin-bottom: 20px;
- line-height: 1.42857143;
- background-color: #ffffff;
- border: 1px solid #dddddd;
- border-radius: 4px;
- -webkit-transition: border 0.2s ease-in-out;
- -o-transition: border 0.2s ease-in-out;
- transition: border 0.2s ease-in-out;
- }
- .thumbnail > img,
- .thumbnail a > img {
- margin-left: auto;
- margin-right: auto;
- }
- a.thumbnail:hover,
- a.thumbnail:focus,
- a.thumbnail.active {
- border-color: #337ab7;
- }
- .thumbnail .caption {
- padding: 9px;
- color: #333333;
- }
- .alert {
- padding: 15px;
- margin-bottom: 20px;
- border: 1px solid transparent;
- border-radius: 4px;
- }
- .alert h4 {
- margin-top: 0;
- color: inherit;
- }
- .alert .alert-link {
- font-weight: bold;
- }
- .alert > p,
- .alert > ul {
- margin-bottom: 0;
- }
- .alert > p + p {
- margin-top: 5px;
- }
- .alert-dismissable,
- .alert-dismissible {
- padding-right: 35px;
- }
- .alert-dismissable .close,
- .alert-dismissible .close {
- position: relative;
- top: -2px;
- right: -21px;
- color: inherit;
- }
- .alert-success {
- background-color: #dff0d8;
- border-color: #d6e9c6;
- color: #3c763d;
- }
- .alert-success hr {
- border-top-color: #c9e2b3;
- }
- .alert-success .alert-link {
- color: #2b542c;
- }
- .alert-info {
- background-color: #d9edf7;
- border-color: #bce8f1;
- color: #31708f;
- }
- .alert-info hr {
- border-top-color: #a6e1ec;
- }
- .alert-info .alert-link {
- color: #245269;
- }
- .alert-warning {
- background-color: #fcf8e3;
- border-color: #faebcc;
- color: #8a6d3b;
- }
- .alert-warning hr {
- border-top-color: #f7e1b5;
- }
- .alert-warning .alert-link {
- color: #66512c;
- }
- .alert-danger {
- background-color: #f2dede;
- border-color: #ebccd1;
- color: #a94442;
- }
- .alert-danger hr {
- border-top-color: #e4b9c0;
- }
- .alert-danger .alert-link {
- color: #843534;
- }
- @-webkit-keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
- }
- @-o-keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
- }
- @keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
- }
- .progress {
- overflow: hidden;
- height: 20px;
- margin-bottom: 20px;
- background-color: #f5f5f5;
- border-radius: 4px;
- -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
- }
- .progress-bar {
- float: left;
- width: 0%;
- height: 100%;
- font-size: 12px;
- line-height: 20px;
- color: #ffffff;
- text-align: center;
- background-color: #337ab7;
- -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
- box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
- -webkit-transition: width 0.6s ease;
- -o-transition: width 0.6s ease;
- transition: width 0.6s ease;
- }
- .progress-striped .progress-bar,
- .progress-bar-striped {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- -webkit-background-size: 40px 40px;
- background-size: 40px 40px;
- }
- .progress.active .progress-bar,
- .progress-bar.active {
- -webkit-animation: progress-bar-stripes 2s linear infinite;
- -o-animation: progress-bar-stripes 2s linear infinite;
- animation: progress-bar-stripes 2s linear infinite;
- }
- .progress-bar-success {
- background-color: #5cb85c;
- }
- .progress-striped .progress-bar-success {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- }
- .progress-bar-info {
- background-color: #5bc0de;
- }
- .progress-striped .progress-bar-info {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- }
- .progress-bar-warning {
- background-color: #f0ad4e;
- }
- .progress-striped .progress-bar-warning {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- }
- .progress-bar-danger {
- background-color: #d9534f;
- }
- .progress-striped .progress-bar-danger {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- }
- .media {
- margin-top: 15px;
- }
- .media:first-child {
- margin-top: 0;
- }
- .media,
- .media-body {
- zoom: 1;
- overflow: hidden;
- }
- .media-body {
- width: 10000px;
- }
- .media-object {
- display: block;
- }
- .media-object.img-thumbnail {
- max-width: none;
- }
- .media-right,
- .media > .pull-right {
- padding-left: 10px;
- }
- .media-left,
- .media > .pull-left {
- padding-right: 10px;
- }
- .media-left,
- .media-right,
- .media-body {
- display: table-cell;
- vertical-align: top;
- }
- .media-middle {
- vertical-align: middle;
- }
- .media-bottom {
- vertical-align: bottom;
- }
- .media-heading {
- margin-top: 0;
- margin-bottom: 5px;
- }
- .media-list {
- padding-left: 0;
- list-style: none;
- }
- .list-group {
- margin-bottom: 20px;
- padding-left: 0;
- }
- .list-group-item {
- position: relative;
- display: block;
- padding: 10px 15px;
- margin-bottom: -1px;
- background-color: #ffffff;
- border: 1px solid #dddddd;
- }
- .list-group-item:first-child {
- border-top-right-radius: 4px;
- border-top-left-radius: 4px;
- }
- .list-group-item:last-child {
- margin-bottom: 0;
- border-bottom-right-radius: 4px;
- border-bottom-left-radius: 4px;
- }
- a.list-group-item,
- button.list-group-item {
- color: #555555;
- }
- a.list-group-item .list-group-item-heading,
- button.list-group-item .list-group-item-heading {
- color: #333333;
- }
- a.list-group-item:hover,
- button.list-group-item:hover,
- a.list-group-item:focus,
- button.list-group-item:focus {
- text-decoration: none;
- color: #555555;
- background-color: #f5f5f5;
- }
- button.list-group-item {
- width: 100%;
- text-align: left;
- }
- .list-group-item.disabled,
- .list-group-item.disabled:hover,
- .list-group-item.disabled:focus {
- background-color: #eeeeee;
- color: #777777;
- cursor: not-allowed;
- }
- .list-group-item.disabled .list-group-item-heading,
- .list-group-item.disabled:hover .list-group-item-heading,
- .list-group-item.disabled:focus .list-group-item-heading {
- color: inherit;
- }
- .list-group-item.disabled .list-group-item-text,
- .list-group-item.disabled:hover .list-group-item-text,
- .list-group-item.disabled:focus .list-group-item-text {
- color: #777777;
- }
- .list-group-item.active,
- .list-group-item.active:hover,
- .list-group-item.active:focus {
- z-index: 2;
- color: #ffffff;
- background-color: #337ab7;
- border-color: #337ab7;
- }
- .list-group-item.active .list-group-item-heading,
- .list-group-item.active:hover .list-group-item-heading,
- .list-group-item.active:focus .list-group-item-heading,
- .list-group-item.active .list-group-item-heading > small,
- .list-group-item.active:hover .list-group-item-heading > small,
- .list-group-item.active:focus .list-group-item-heading > small,
- .list-group-item.active .list-group-item-heading > .small,
- .list-group-item.active:hover .list-group-item-heading > .small,
- .list-group-item.active:focus .list-group-item-heading > .small {
- color: inherit;
- }
- .list-group-item.active .list-group-item-text,
- .list-group-item.active:hover .list-group-item-text,
- .list-group-item.active:focus .list-group-item-text {
- color: #c7ddef;
- }
- .list-group-item-success {
- color: #3c763d;
- background-color: #dff0d8;
- }
- a.list-group-item-success,
- button.list-group-item-success {
- color: #3c763d;
- }
- a.list-group-item-success .list-group-item-heading,
- button.list-group-item-success .list-group-item-heading {
- color: inherit;
- }
- a.list-group-item-success:hover,
- button.list-group-item-success:hover,
- a.list-group-item-success:focus,
- button.list-group-item-success:focus {
- color: #3c763d;
- background-color: #d0e9c6;
- }
- a.list-group-item-success.active,
- button.list-group-item-success.active,
- a.list-group-item-success.active:hover,
- button.list-group-item-success.active:hover,
- a.list-group-item-success.active:focus,
- button.list-group-item-success.active:focus {
- color: #fff;
- background-color: #3c763d;
- border-color: #3c763d;
- }
- .list-group-item-info {
- color: #31708f;
- background-color: #d9edf7;
- }
- a.list-group-item-info,
- button.list-group-item-info {
- color: #31708f;
- }
- a.list-group-item-info .list-group-item-heading,
- button.list-group-item-info .list-group-item-heading {
- color: inherit;
- }
- a.list-group-item-info:hover,
- button.list-group-item-info:hover,
- a.list-group-item-info:focus,
- button.list-group-item-info:focus {
- color: #31708f;
- background-color: #c4e3f3;
- }
- a.list-group-item-info.active,
- button.list-group-item-info.active,
- a.list-group-item-info.active:hover,
- button.list-group-item-info.active:hover,
- a.list-group-item-info.active:focus,
- button.list-group-item-info.active:focus {
- color: #fff;
- background-color: #31708f;
- border-color: #31708f;
- }
- .list-group-item-warning {
- color: #8a6d3b;
- background-color: #fcf8e3;
- }
- a.list-group-item-warning,
- button.list-group-item-warning {
- color: #8a6d3b;
- }
- a.list-group-item-warning .list-group-item-heading,
- button.list-group-item-warning .list-group-item-heading {
- color: inherit;
- }
- a.list-group-item-warning:hover,
- button.list-group-item-warning:hover,
- a.list-group-item-warning:focus,
- button.list-group-item-warning:focus {
- color: #8a6d3b;
- background-color: #faf2cc;
- }
- a.list-group-item-warning.active,
- button.list-group-item-warning.active,
- a.list-group-item-warning.active:hover,
- button.list-group-item-warning.active:hover,
- a.list-group-item-warning.active:focus,
- button.list-group-item-warning.active:focus {
- color: #fff;
- background-color: #8a6d3b;
- border-color: #8a6d3b;
- }
- .list-group-item-danger {
- color: #a94442;
- background-color: #f2dede;
- }
- a.list-group-item-danger,
- button.list-group-item-danger {
- color: #a94442;
- }
- a.list-group-item-danger .list-group-item-heading,
- button.list-group-item-danger .list-group-item-heading {
- color: inherit;
- }
- a.list-group-item-danger:hover,
- button.list-group-item-danger:hover,
- a.list-group-item-danger:focus,
- button.list-group-item-danger:focus {
- color: #a94442;
- background-color: #ebcccc;
- }
- a.list-group-item-danger.active,
- button.list-group-item-danger.active,
- a.list-group-item-danger.active:hover,
- button.list-group-item-danger.active:hover,
- a.list-group-item-danger.active:focus,
- button.list-group-item-danger.active:focus {
- color: #fff;
- background-color: #a94442;
- border-color: #a94442;
- }
- .list-group-item-heading {
- margin-top: 0;
- margin-bottom: 5px;
- }
- .list-group-item-text {
- margin-bottom: 0;
- line-height: 1.3;
- }
- .panel {
- margin-bottom: 20px;
- background-color: #ffffff;
- border: 1px solid transparent;
- border-radius: 4px;
- -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
- }
- .panel-body {
- padding: 15px;
- }
- .panel-heading {
- padding: 10px 15px;
- border-bottom: 1px solid transparent;
- border-top-right-radius: 3px;
- border-top-left-radius: 3px;
- }
- .panel-heading > .dropdown .dropdown-toggle {
- color: inherit;
- }
- .panel-title {
- margin-top: 0;
- margin-bottom: 0;
- font-size: 16px;
- color: inherit;
- }
- .panel-title > a,
- .panel-title > small,
- .panel-title > .small,
- .panel-title > small > a,
- .panel-title > .small > a {
- color: inherit;
- }
- .panel-footer {
- padding: 10px 15px;
- background-color: #f5f5f5;
- border-top: 1px solid #dddddd;
- border-bottom-right-radius: 3px;
- border-bottom-left-radius: 3px;
- }
- .panel > .list-group,
- .panel > .panel-collapse > .list-group {
- margin-bottom: 0;
- }
- .panel > .list-group .list-group-item,
- .panel > .panel-collapse > .list-group .list-group-item {
- border-width: 1px 0;
- border-radius: 0;
- }
- .panel > .list-group:first-child .list-group-item:first-child,
- .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
- border-top: 0;
- border-top-right-radius: 3px;
- border-top-left-radius: 3px;
- }
- .panel > .list-group:last-child .list-group-item:last-child,
- .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
- border-bottom: 0;
- border-bottom-right-radius: 3px;
- border-bottom-left-radius: 3px;
- }
- .panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
- border-top-right-radius: 0;
- border-top-left-radius: 0;
- }
- .panel-heading + .list-group .list-group-item:first-child {
- border-top-width: 0;
- }
- .list-group + .panel-footer {
- border-top-width: 0;
- }
- .panel > .table,
- .panel > .table-responsive > .table,
- .panel > .panel-collapse > .table {
- margin-bottom: 0;
- }
- .panel > .table caption,
- .panel > .table-responsive > .table caption,
- .panel > .panel-collapse > .table caption {
- padding-left: 15px;
- padding-right: 15px;
- }
- .panel > .table:first-child,
- .panel > .table-responsive:first-child > .table:first-child {
- border-top-right-radius: 3px;
- border-top-left-radius: 3px;
- }
- .panel > .table:first-child > thead:first-child > tr:first-child,
- .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
- .panel > .table:first-child > tbody:first-child > tr:first-child,
- .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
- border-top-left-radius: 3px;
- border-top-right-radius: 3px;
- }
- .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
- .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
- .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
- .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
- .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
- .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
- .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
- .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
- border-top-left-radius: 3px;
- }
- .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
- .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
- .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
- .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
- .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
- .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
- .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
- .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
- border-top-right-radius: 3px;
- }
- .panel > .table:last-child,
- .panel > .table-responsive:last-child > .table:last-child {
- border-bottom-right-radius: 3px;
- border-bottom-left-radius: 3px;
- }
- .panel > .table:last-child > tbody:last-child > tr:last-child,
- .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
- .panel > .table:last-child > tfoot:last-child > tr:last-child,
- .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
- border-bottom-left-radius: 3px;
- border-bottom-right-radius: 3px;
- }
- .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
- .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
- .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
- .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
- .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
- .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
- .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
- .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
- border-bottom-left-radius: 3px;
- }
- .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
- .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
- .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
- .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
- .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
- .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
- .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
- .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
- border-bottom-right-radius: 3px;
- }
- .panel > .panel-body + .table,
- .panel > .panel-body + .table-responsive,
- .panel > .table + .panel-body,
- .panel > .table-responsive + .panel-body {
- border-top: 1px solid #dddddd;
- }
- .panel > .table > tbody:first-child > tr:first-child th,
- .panel > .table > tbody:first-child > tr:first-child td {
- border-top: 0;
- }
- .panel > .table-bordered,
- .panel > .table-responsive > .table-bordered {
- border: 0;
- }
- .panel > .table-bordered > thead > tr > th:first-child,
- .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
- .panel > .table-bordered > tbody > tr > th:first-child,
- .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
- .panel > .table-bordered > tfoot > tr > th:first-child,
- .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
- .panel > .table-bordered > thead > tr > td:first-child,
- .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
- .panel > .table-bordered > tbody > tr > td:first-child,
- .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
- .panel > .table-bordered > tfoot > tr > td:first-child,
- .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
- border-left: 0;
- }
- .panel > .table-bordered > thead > tr > th:last-child,
- .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
- .panel > .table-bordered > tbody > tr > th:last-child,
- .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
- .panel > .table-bordered > tfoot > tr > th:last-child,
- .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
- .panel > .table-bordered > thead > tr > td:last-child,
- .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
- .panel > .table-bordered > tbody > tr > td:last-child,
- .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
- .panel > .table-bordered > tfoot > tr > td:last-child,
- .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
- border-right: 0;
- }
- .panel > .table-bordered > thead > tr:first-child > td,
- .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
- .panel > .table-bordered > tbody > tr:first-child > td,
- .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
- .panel > .table-bordered > thead > tr:first-child > th,
- .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
- .panel > .table-bordered > tbody > tr:first-child > th,
- .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
- border-bottom: 0;
- }
- .panel > .table-bordered > tbody > tr:last-child > td,
- .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
- .panel > .table-bordered > tfoot > tr:last-child > td,
- .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
- .panel > .table-bordered > tbody > tr:last-child > th,
- .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
- .panel > .table-bordered > tfoot > tr:last-child > th,
- .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
- border-bottom: 0;
- }
- .panel > .table-responsive {
- border: 0;
- margin-bottom: 0;
- }
- .panel-group {
- margin-bottom: 20px;
- }
- .panel-group .panel {
- margin-bottom: 0;
- border-radius: 4px;
- }
- .panel-group .panel + .panel {
- margin-top: 5px;
- }
- .panel-group .panel-heading {
- border-bottom: 0;
- }
- .panel-group .panel-heading + .panel-collapse > .panel-body,
- .panel-group .panel-heading + .panel-collapse > .list-group {
- border-top: 1px solid #dddddd;
- }
- .panel-group .panel-footer {
- border-top: 0;
- }
- .panel-group .panel-footer + .panel-collapse .panel-body {
- border-bottom: 1px solid #dddddd;
- }
- .panel-default {
- border-color: #dddddd;
- }
- .panel-default > .panel-heading {
- color: #333333;
- background-color: #f5f5f5;
- border-color: #dddddd;
- }
- .panel-default > .panel-heading + .panel-collapse > .panel-body {
- border-top-color: #dddddd;
- }
- .panel-default > .panel-heading .badge {
- color: #f5f5f5;
- background-color: #333333;
- }
- .panel-default > .panel-footer + .panel-collapse > .panel-body {
- border-bottom-color: #dddddd;
- }
- .panel-primary {
- border-color: #337ab7;
- }
- .panel-primary > .panel-heading {
- color: #ffffff;
- background-color: #337ab7;
- border-color: #337ab7;
- }
- .panel-primary > .panel-heading + .panel-collapse > .panel-body {
- border-top-color: #337ab7;
- }
- .panel-primary > .panel-heading .badge {
- color: #337ab7;
- background-color: #ffffff;
- }
- .panel-primary > .panel-footer + .panel-collapse > .panel-body {
- border-bottom-color: #337ab7;
- }
- .panel-success {
- border-color: #d6e9c6;
- }
- .panel-success > .panel-heading {
- color: #3c763d;
- background-color: #dff0d8;
- border-color: #d6e9c6;
- }
- .panel-success > .panel-heading + .panel-collapse > .panel-body {
- border-top-color: #d6e9c6;
- }
- .panel-success > .panel-heading .badge {
- color: #dff0d8;
- background-color: #3c763d;
- }
- .panel-success > .panel-footer + .panel-collapse > .panel-body {
- border-bottom-color: #d6e9c6;
- }
- .panel-info {
- border-color: #bce8f1;
- }
- .panel-info > .panel-heading {
- color: #31708f;
- background-color: #d9edf7;
- border-color: #bce8f1;
- }
- .panel-info > .panel-heading + .panel-collapse > .panel-body {
- border-top-color: #bce8f1;
- }
- .panel-info > .panel-heading .badge {
- color: #d9edf7;
- background-color: #31708f;
- }
- .panel-info > .panel-footer + .panel-collapse > .panel-body {
- border-bottom-color: #bce8f1;
- }
- .panel-warning {
- border-color: #faebcc;
- }
- .panel-warning > .panel-heading {
- color: #8a6d3b;
- background-color: #fcf8e3;
- border-color: #faebcc;
- }
- .panel-warning > .panel-heading + .panel-collapse > .panel-body {
- border-top-color: #faebcc;
- }
- .panel-warning > .panel-heading .badge {
- color: #fcf8e3;
- background-color: #8a6d3b;
- }
- .panel-warning > .panel-footer + .panel-collapse > .panel-body {
- border-bottom-color: #faebcc;
- }
- .panel-danger {
- border-color: #ebccd1;
- }
- .panel-danger > .panel-heading {
- color: #a94442;
- background-color: #f2dede;
- border-color: #ebccd1;
- }
- .panel-danger > .panel-heading + .panel-collapse > .panel-body {
- border-top-color: #ebccd1;
- }
- .panel-danger > .panel-heading .badge {
- color: #f2dede;
- background-color: #a94442;
- }
- .panel-danger > .panel-footer + .panel-collapse > .panel-body {
- border-bottom-color: #ebccd1;
- }
- .embed-responsive {
- position: relative;
- display: block;
- height: 0;
- padding: 0;
- overflow: hidden;
- }
- .embed-responsive .embed-responsive-item,
- .embed-responsive iframe,
- .embed-responsive embed,
- .embed-responsive object,
- .embed-responsive video {
- position: absolute;
- top: 0;
- left: 0;
- bottom: 0;
- height: 100%;
- width: 100%;
- border: 0;
- }
- .embed-responsive-16by9 {
- padding-bottom: 56.25%;
- }
- .embed-responsive-4by3 {
- padding-bottom: 75%;
- }
- .well {
- min-height: 20px;
- padding: 19px;
- margin-bottom: 20px;
- background-color: #f5f5f5;
- border: 1px solid #e3e3e3;
- border-radius: 4px;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
- }
- .well blockquote {
- border-color: #ddd;
- border-color: rgba(0, 0, 0, 0.15);
- }
- .well-lg {
- padding: 24px;
- border-radius: 6px;
- }
- .well-sm {
- padding: 9px;
- border-radius: 3px;
- }
- .close {
- float: right;
- font-size: 21px;
- font-weight: bold;
- line-height: 1;
- color: #000000;
- text-shadow: 0 1px 0 #ffffff;
- opacity: 0.2;
- filter: alpha(opacity=20);
- }
- .close:hover,
- .close:focus {
- color: #000000;
- text-decoration: none;
- cursor: pointer;
- opacity: 0.5;
- filter: alpha(opacity=50);
- }
- button.close {
- padding: 0;
- cursor: pointer;
- background: transparent;
- border: 0;
- -webkit-appearance: none;
- }
- .modal-open {
- overflow: hidden;
- }
- .modal {
- display: none;
- overflow: hidden;
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1050;
- -webkit-overflow-scrolling: touch;
- outline: 0;
- }
- .modal.fade .modal-dialog {
- -webkit-transform: translate(0, -25%);
- -ms-transform: translate(0, -25%);
- -o-transform: translate(0, -25%);
- transform: translate(0, -25%);
- -webkit-transition: -webkit-transform 0.3s ease-out;
- -o-transition: -o-transform 0.3s ease-out;
- transition: transform 0.3s ease-out;
- }
- .modal.in .modal-dialog {
- -webkit-transform: translate(0, 0);
- -ms-transform: translate(0, 0);
- -o-transform: translate(0, 0);
- transform: translate(0, 0);
- }
- .modal-open .modal {
- overflow-x: hidden;
- overflow-y: auto;
- }
- .modal-dialog {
- position: relative;
- width: auto;
- margin: 10px;
- }
- .modal-content {
- position: relative;
- background-color: #ffffff;
- border: 1px solid #999999;
- border: 1px solid rgba(0, 0, 0, 0.2);
- border-radius: 6px;
- -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
- box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
- -webkit-background-clip: padding-box;
- background-clip: padding-box;
- outline: 0;
- }
- .modal-backdrop {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1040;
- background-color: #000000;
- }
- .modal-backdrop.fade {
- opacity: 0;
- filter: alpha(opacity=0);
- }
- .modal-backdrop.in {
- opacity: 0.5;
- filter: alpha(opacity=50);
- }
- .modal-header {
- padding: 15px;
- border-bottom: 1px solid #e5e5e5;
- min-height: 16.42857143px;
- }
- .modal-header .close {
- margin-top: -2px;
- }
- .modal-title {
- margin: 0;
- line-height: 1.42857143;
- }
- .modal-body {
- position: relative;
- padding: 15px;
- }
- .modal-footer {
- padding: 15px;
- text-align: right;
- border-top: 1px solid #e5e5e5;
- }
- .modal-footer .btn + .btn {
- margin-left: 5px;
- margin-bottom: 0;
- }
- .modal-footer .btn-group .btn + .btn {
- margin-left: -1px;
- }
- .modal-footer .btn-block + .btn-block {
- margin-left: 0;
- }
- .modal-scrollbar-measure {
- position: absolute;
- top: -9999px;
- width: 50px;
- height: 50px;
- overflow: scroll;
- }
- @media (min-width: 768px) {
- .modal-dialog {
- width: 600px;
- margin: 30px auto;
- }
- .modal-content {
- -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
- box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
- }
- .modal-sm {
- width: 300px;
- }
- }
- @media (min-width: 992px) {
- .modal-lg {
- width: 900px;
- }
- }
- .tooltip {
- position: absolute;
- z-index: 1070;
- display: block;
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
- font-style: normal;
- font-weight: normal;
- letter-spacing: normal;
- line-break: auto;
- line-height: 1.42857143;
- text-align: left;
- text-align: start;
- text-decoration: none;
- text-shadow: none;
- text-transform: none;
- white-space: normal;
- word-break: normal;
- word-spacing: normal;
- word-wrap: normal;
- font-size: 12px;
- opacity: 0;
- filter: alpha(opacity=0);
- }
- .tooltip.in {
- opacity: 0.9;
- filter: alpha(opacity=90);
- }
- .tooltip.top {
- margin-top: -3px;
- padding: 5px 0;
- }
- .tooltip.right {
- margin-left: 3px;
- padding: 0 5px;
- }
- .tooltip.bottom {
- margin-top: 3px;
- padding: 5px 0;
- }
- .tooltip.left {
- margin-left: -3px;
- padding: 0 5px;
- }
- .tooltip-inner {
- max-width: 200px;
- padding: 3px 8px;
- color: #ffffff;
- text-align: center;
- background-color: #000000;
- border-radius: 4px;
- }
- .tooltip-arrow {
- position: absolute;
- width: 0;
- height: 0;
- border-color: transparent;
- border-style: solid;
- }
- .tooltip.top .tooltip-arrow {
- bottom: 0;
- left: 50%;
- margin-left: -5px;
- border-width: 5px 5px 0;
- border-top-color: #000000;
- }
- .tooltip.top-left .tooltip-arrow {
- bottom: 0;
- right: 5px;
- margin-bottom: -5px;
- border-width: 5px 5px 0;
- border-top-color: #000000;
- }
- .tooltip.top-right .tooltip-arrow {
- bottom: 0;
- left: 5px;
- margin-bottom: -5px;
- border-width: 5px 5px 0;
- border-top-color: #000000;
- }
- .tooltip.right .tooltip-arrow {
- top: 50%;
- left: 0;
- margin-top: -5px;
- border-width: 5px 5px 5px 0;
- border-right-color: #000000;
- }
- .tooltip.left .tooltip-arrow {
- top: 50%;
- right: 0;
- margin-top: -5px;
- border-width: 5px 0 5px 5px;
- border-left-color: #000000;
- }
- .tooltip.bottom .tooltip-arrow {
- top: 0;
- left: 50%;
- margin-left: -5px;
- border-width: 0 5px 5px;
- border-bottom-color: #000000;
- }
- .tooltip.bottom-left .tooltip-arrow {
- top: 0;
- right: 5px;
- margin-top: -5px;
- border-width: 0 5px 5px;
- border-bottom-color: #000000;
- }
- .tooltip.bottom-right .tooltip-arrow {
- top: 0;
- left: 5px;
- margin-top: -5px;
- border-width: 0 5px 5px;
- border-bottom-color: #000000;
- }
- .popover {
- position: absolute;
- top: 0;
- left: 0;
- z-index: 1060;
- display: none;
- max-width: 276px;
- padding: 1px;
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
- font-style: normal;
- font-weight: normal;
- letter-spacing: normal;
- line-break: auto;
- line-height: 1.42857143;
- text-align: left;
- text-align: start;
- text-decoration: none;
- text-shadow: none;
- text-transform: none;
- white-space: normal;
- word-break: normal;
- word-spacing: normal;
- word-wrap: normal;
- font-size: 14px;
- background-color: #ffffff;
- -webkit-background-clip: padding-box;
- background-clip: padding-box;
- border: 1px solid #cccccc;
- border: 1px solid rgba(0, 0, 0, 0.2);
- border-radius: 6px;
- -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
- box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
- }
- .popover.top {
- margin-top: -10px;
- }
- .popover.right {
- margin-left: 10px;
- }
- .popover.bottom {
- margin-top: 10px;
- }
- .popover.left {
- margin-left: -10px;
- }
- .popover-title {
- margin: 0;
- padding: 8px 14px;
- font-size: 14px;
- background-color: #f7f7f7;
- border-bottom: 1px solid #ebebeb;
- border-radius: 5px 5px 0 0;
- }
- .popover-content {
- padding: 9px 14px;
- }
- .popover > .arrow,
- .popover > .arrow:after {
- position: absolute;
- display: block;
- width: 0;
- height: 0;
- border-color: transparent;
- border-style: solid;
- }
- .popover > .arrow {
- border-width: 11px;
- }
- .popover > .arrow:after {
- border-width: 10px;
- content: "";
- }
- .popover.top > .arrow {
- left: 50%;
- margin-left: -11px;
- border-bottom-width: 0;
- border-top-color: #999999;
- border-top-color: rgba(0, 0, 0, 0.25);
- bottom: -11px;
- }
- .popover.top > .arrow:after {
- content: " ";
- bottom: 1px;
- margin-left: -10px;
- border-bottom-width: 0;
- border-top-color: #ffffff;
- }
- .popover.right > .arrow {
- top: 50%;
- left: -11px;
- margin-top: -11px;
- border-left-width: 0;
- border-right-color: #999999;
- border-right-color: rgba(0, 0, 0, 0.25);
- }
- .popover.right > .arrow:after {
- content: " ";
- left: 1px;
- bottom: -10px;
- border-left-width: 0;
- border-right-color: #ffffff;
- }
- .popover.bottom > .arrow {
- left: 50%;
- margin-left: -11px;
- border-top-width: 0;
- border-bottom-color: #999999;
- border-bottom-color: rgba(0, 0, 0, 0.25);
- top: -11px;
- }
- .popover.bottom > .arrow:after {
- content: " ";
- top: 1px;
- margin-left: -10px;
- border-top-width: 0;
- border-bottom-color: #ffffff;
- }
- .popover.left > .arrow {
- top: 50%;
- right: -11px;
- margin-top: -11px;
- border-right-width: 0;
- border-left-color: #999999;
- border-left-color: rgba(0, 0, 0, 0.25);
- }
- .popover.left > .arrow:after {
- content: " ";
- right: 1px;
- border-right-width: 0;
- border-left-color: #ffffff;
- bottom: -10px;
- }
- .carousel {
- position: relative;
- }
- .carousel-inner {
- position: relative;
- overflow: hidden;
- width: 100%;
- }
- .carousel-inner > .item {
- display: none;
- position: relative;
- -webkit-transition: 0.6s ease-in-out left;
- -o-transition: 0.6s ease-in-out left;
- transition: 0.6s ease-in-out left;
- }
- .carousel-inner > .item > img,
- .carousel-inner > .item > a > img {
- line-height: 1;
- }
- @media all and (transform-3d), (-webkit-transform-3d) {
- .carousel-inner > .item {
- -webkit-transition: -webkit-transform 0.6s ease-in-out;
- -o-transition: -o-transform 0.6s ease-in-out;
- transition: transform 0.6s ease-in-out;
- -webkit-backface-visibility: hidden;
- backface-visibility: hidden;
- -webkit-perspective: 1000px;
- perspective: 1000px;
- }
- .carousel-inner > .item.next,
- .carousel-inner > .item.active.right {
- -webkit-transform: translate3d(100%, 0, 0);
- transform: translate3d(100%, 0, 0);
- left: 0;
- }
- .carousel-inner > .item.prev,
- .carousel-inner > .item.active.left {
- -webkit-transform: translate3d(-100%, 0, 0);
- transform: translate3d(-100%, 0, 0);
- left: 0;
- }
- .carousel-inner > .item.next.left,
- .carousel-inner > .item.prev.right,
- .carousel-inner > .item.active {
- -webkit-transform: translate3d(0, 0, 0);
- transform: translate3d(0, 0, 0);
- left: 0;
- }
- }
- .carousel-inner > .active,
- .carousel-inner > .next,
- .carousel-inner > .prev {
- display: block;
- }
- .carousel-inner > .active {
- left: 0;
- }
- .carousel-inner > .next,
- .carousel-inner > .prev {
- position: absolute;
- top: 0;
- width: 100%;
- }
- .carousel-inner > .next {
- left: 100%;
- }
- .carousel-inner > .prev {
- left: -100%;
- }
- .carousel-inner > .next.left,
- .carousel-inner > .prev.right {
- left: 0;
- }
- .carousel-inner > .active.left {
- left: -100%;
- }
- .carousel-inner > .active.right {
- left: 100%;
- }
- .carousel-control {
- position: absolute;
- top: 0;
- left: 0;
- bottom: 0;
- width: 15%;
- opacity: 0.5;
- filter: alpha(opacity=50);
- font-size: 20px;
- color: #ffffff;
- text-align: center;
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
- }
- .carousel-control.left {
- background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
- background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
- background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001)));
- background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
- background-repeat: repeat-x;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
- }
- .carousel-control.right {
- left: auto;
- right: 0;
- background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
- background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
- background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5)));
- background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
- background-repeat: repeat-x;
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
- }
- .carousel-control:hover,
- .carousel-control:focus {
- outline: 0;
- color: #ffffff;
- text-decoration: none;
- opacity: 0.9;
- filter: alpha(opacity=90);
- }
- .carousel-control .icon-prev,
- .carousel-control .icon-next,
- .carousel-control .glyphicon-chevron-left,
- .carousel-control .glyphicon-chevron-right {
- position: absolute;
- top: 50%;
- margin-top: -10px;
- z-index: 5;
- display: inline-block;
- }
- .carousel-control .icon-prev,
- .carousel-control .glyphicon-chevron-left {
- left: 50%;
- margin-left: -10px;
- }
- .carousel-control .icon-next,
- .carousel-control .glyphicon-chevron-right {
- right: 50%;
- margin-right: -10px;
- }
- .carousel-control .icon-prev,
- .carousel-control .icon-next {
- width: 20px;
- height: 20px;
- line-height: 1;
- font-family: serif;
- }
- .carousel-control .icon-prev:before {
- content: '\2039';
- }
- .carousel-control .icon-next:before {
- content: '\203a';
- }
- .carousel-indicators {
- position: absolute;
- bottom: 10px;
- left: 50%;
- z-index: 15;
- width: 60%;
- margin-left: -30%;
- padding-left: 0;
- list-style: none;
- text-align: center;
- }
- .carousel-indicators li {
- display: inline-block;
- width: 10px;
- height: 10px;
- margin: 1px;
- text-indent: -999px;
- border: 1px solid #ffffff;
- border-radius: 10px;
- cursor: pointer;
- background-color: #000 \9;
- background-color: rgba(0, 0, 0, 0);
- }
- .carousel-indicators .active {
- margin: 0;
- width: 12px;
- height: 12px;
- background-color: #ffffff;
- }
- .carousel-caption {
- position: absolute;
- left: 15%;
- right: 15%;
- bottom: 20px;
- z-index: 10;
- padding-top: 20px;
- padding-bottom: 20px;
- color: #ffffff;
- text-align: center;
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
- }
- .carousel-caption .btn {
- text-shadow: none;
- }
- @media screen and (min-width: 768px) {
- .carousel-control .glyphicon-chevron-left,
- .carousel-control .glyphicon-chevron-right,
- .carousel-control .icon-prev,
- .carousel-control .icon-next {
- width: 30px;
- height: 30px;
- margin-top: -15px;
- font-size: 30px;
- }
- .carousel-control .glyphicon-chevron-left,
- .carousel-control .icon-prev {
- margin-left: -15px;
- }
- .carousel-control .glyphicon-chevron-right,
- .carousel-control .icon-next {
- margin-right: -15px;
- }
- .carousel-caption {
- left: 20%;
- right: 20%;
- padding-bottom: 30px;
- }
- .carousel-indicators {
- bottom: 20px;
- }
- }
- .clearfix:before,
- .clearfix:after,
- .dl-horizontal dd:before,
- .dl-horizontal dd:after,
- .container:before,
- .container:after,
- .container-fluid:before,
- .container-fluid:after,
- .row:before,
- .row:after,
- .form-horizontal .form-group:before,
- .form-horizontal .form-group:after,
- .btn-toolbar:before,
- .btn-toolbar:after,
- .btn-group-vertical > .btn-group:before,
- .btn-group-vertical > .btn-group:after,
- .nav:before,
- .nav:after,
- .navbar:before,
- .navbar:after,
- .navbar-header:before,
- .navbar-header:after,
- .navbar-collapse:before,
- .navbar-collapse:after,
- .pager:before,
- .pager:after,
- .panel-body:before,
- .panel-body:after,
- .modal-footer:before,
- .modal-footer:after {
- content: " ";
- display: table;
- }
- .clearfix:after,
- .dl-horizontal dd:after,
- .container:after,
- .container-fluid:after,
- .row:after,
- .form-horizontal .form-group:after,
- .btn-toolbar:after,
- .btn-group-vertical > .btn-group:after,
- .nav:after,
- .navbar:after,
- .navbar-header:after,
- .navbar-collapse:after,
- .pager:after,
- .panel-body:after,
- .modal-footer:after {
- clear: both;
- }
- .center-block {
- display: block;
- margin-left: auto;
- margin-right: auto;
- }
- .pull-right {
- float: right !important;
- }
- .pull-left {
- float: left !important;
- }
- .hide {
- display: none !important;
- }
- .show {
- display: block !important;
- }
- .invisible {
- visibility: hidden;
- }
- .text-hide {
- font: 0/0 a;
- color: transparent;
- text-shadow: none;
- background-color: transparent;
- border: 0;
- }
- .hidden {
- display: none !important;
- }
- .affix {
- position: fixed;
- }
- @-ms-viewport {
- width: device-width;
- }
- .visible-xs,
- .visible-sm,
- .visible-md,
- .visible-lg {
- display: none !important;
- }
- .visible-xs-block,
- .visible-xs-inline,
- .visible-xs-inline-block,
- .visible-sm-block,
- .visible-sm-inline,
- .visible-sm-inline-block,
- .visible-md-block,
- .visible-md-inline,
- .visible-md-inline-block,
- .visible-lg-block,
- .visible-lg-inline,
- .visible-lg-inline-block {
- display: none !important;
- }
- @media (max-width: 767px) {
- .visible-xs {
- display: block !important;
- }
- table.visible-xs {
- display: table !important;
- }
- tr.visible-xs {
- display: table-row !important;
- }
- th.visible-xs,
- td.visible-xs {
- display: table-cell !important;
- }
- }
- @media (max-width: 767px) {
- .visible-xs-block {
- display: block !important;
- }
- }
- @media (max-width: 767px) {
- .visible-xs-inline {
- display: inline !important;
- }
- }
- @media (max-width: 767px) {
- .visible-xs-inline-block {
- display: inline-block !important;
- }
- }
- @media (min-width: 768px) and (max-width: 991px) {
- .visible-sm {
- display: block !important;
- }
- table.visible-sm {
- display: table !important;
- }
- tr.visible-sm {
- display: table-row !important;
- }
- th.visible-sm,
- td.visible-sm {
- display: table-cell !important;
- }
- }
- @media (min-width: 768px) and (max-width: 991px) {
- .visible-sm-block {
- display: block !important;
- }
- }
- @media (min-width: 768px) and (max-width: 991px) {
- .visible-sm-inline {
- display: inline !important;
- }
- }
- @media (min-width: 768px) and (max-width: 991px) {
- .visible-sm-inline-block {
- display: inline-block !important;
- }
- }
- @media (min-width: 992px) and (max-width: 1199px) {
- .visible-md {
- display: block !important;
- }
- table.visible-md {
- display: table !important;
- }
- tr.visible-md {
- display: table-row !important;
- }
- th.visible-md,
- td.visible-md {
- display: table-cell !important;
- }
- }
- @media (min-width: 992px) and (max-width: 1199px) {
- .visible-md-block {
- display: block !important;
- }
- }
- @media (min-width: 992px) and (max-width: 1199px) {
- .visible-md-inline {
- display: inline !important;
- }
- }
- @media (min-width: 992px) and (max-width: 1199px) {
- .visible-md-inline-block {
- display: inline-block !important;
- }
- }
- @media (min-width: 1200px) {
- .visible-lg {
- display: block !important;
- }
- table.visible-lg {
- display: table !important;
- }
- tr.visible-lg {
- display: table-row !important;
- }
- th.visible-lg,
- td.visible-lg {
- display: table-cell !important;
- }
- }
- @media (min-width: 1200px) {
- .visible-lg-block {
- display: block !important;
- }
- }
- @media (min-width: 1200px) {
- .visible-lg-inline {
- display: inline !important;
- }
- }
- @media (min-width: 1200px) {
- .visible-lg-inline-block {
- display: inline-block !important;
- }
- }
- @media (max-width: 767px) {
- .hidden-xs {
- display: none !important;
- }
- }
- @media (min-width: 768px) and (max-width: 991px) {
- .hidden-sm {
- display: none !important;
- }
- }
- @media (min-width: 992px) and (max-width: 1199px) {
- .hidden-md {
- display: none !important;
- }
- }
- @media (min-width: 1200px) {
- .hidden-lg {
- display: none !important;
- }
- }
- .visible-print {
- display: none !important;
- }
- @media print {
- .visible-print {
- display: block !important;
- }
- table.visible-print {
- display: table !important;
- }
- tr.visible-print {
- display: table-row !important;
- }
- th.visible-print,
- td.visible-print {
- display: table-cell !important;
- }
- }
- .visible-print-block {
- display: none !important;
- }
- @media print {
- .visible-print-block {
- display: block !important;
- }
- }
- .visible-print-inline {
- display: none !important;
- }
- @media print {
- .visible-print-inline {
- display: inline !important;
- }
- }
- .visible-print-inline-block {
- display: none !important;
- }
- @media print {
- .visible-print-inline-block {
- display: inline-block !important;
- }
- }
- @media print {
- .hidden-print {
- display: none !important;
- }
- }
- </style>
- <style>.com { color: #93a1a1; }
- .lit { color: #195f91; }
- .pun, .opn, .clo { color: #93a1a1; }
- .fun { color: #dc322f; }
- .str, .atv { color: #D14; }
- .kwd, .prettyprint .tag { color: #1e347b; }
- .typ, .atn, .dec, .var { color: teal; }
- .pln { color: #48484c; }
- .prettyprint {
- padding: 8px;
- background-color: #f7f7f9;
- border: 1px solid #e1e1e8;
- }
- .prettyprint.linenums {
- -webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
- -moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
- box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
- }
- /* Specify class=linenums on a pre to get line numbering */
- ol.linenums {
- margin: 0 0 0 33px; /* IE indents via margin-left */
- }
- ol.linenums li {
- padding-left: 12px;
- color: #bebec5;
- line-height: 20px;
- text-shadow: 0 1px 0 #fff;
- }
- .str { color:#181; font-style:italic }
- .kwd { color:#369 }
- .com { color:#666 }
- .typ { color:#c40 }
- .lit { color:#900 }
- .pun { color:#000; font-weight:bold }
- .pln { color:#333 }
- .tag { color:#369; font-weight:bold }
- .atn { color:#939; font-weight:bold }
- .atv { color:#181 }
- .dec { color:#606 }
- .com{ color: #A62A00; }
- .typ{ color: #0A67A3; }
- .kwd{ color: #3B0470; }</style>
- <style>nav.sidebar {
- width: 300px;
- margin-top: 75px;
- box-shadow: inset 2px 0px 0px 0px #CCC;
- flex-grow: 0;
- flex-shrink: 0;
- }
- nav.sidebar #searchfield {
- width: 100%;
- background-color: #f5f5f5;
- border-radius: 4px;
- }
- nav.sidebar .sidebar-package-header {
- padding-left: 18px;
- padding-bottom: 5px;
- padding-top: 10px;
- position: relative;
- vertical-align: baseline;
- }
- nav.sidebar .sidebar-brand {
- font-size: 14pt;
- font-family: bitter;
- color: #333;
- }
- nav.sidebar .sidebar-brand:hover {
- text-decoration: none;
- color: #000;
- }
- nav.sidebar .package-version {
- font-family: bitter;
- margin-left: 8px;
- right: 10px;
- position: absolute;
- padding-right: 10px;
- }
- nav.navbar .package-version {
- display: inline-block;
- padding-top: 15px;
- font-size: 18px;
- line-height: 20px;
- color: #777;
- }
- .wrapper {
- display: flex;
- align-items: start;
- }
- .sidenav-l0 {
- padding-left: 0px;
- font-weight: bold;
- line-height: 1.5;
- margin-bottom: 0px;
- }
- .sidenav-l0 li {
- position: relative;
- display: block;
- list-style: none;
- }
- .sidenav-l0 a {
- position: relative;
- display: block;
- padding-left: 10px;
- padding-top: 0px;
- padding-bottom: 5px;
- }
- .sidenav-l0 a:hover, .sidenav-l0 a:focus {
- text-decoration: none;
- }
- .sidenav-l0 li > a:hover, .sidenav-l0 li.active > a {
- padding-left: 8px;
- border-width: 0px 0px 0px 2px;
- border-color: #000000;
- border-style: solid;
- background-color: transparent;
- }
- .sidenav-l0 li.active > a {
- font-weight: bold;
- }
- li p {
- margin-bottom: 0px;
- }
- .sidenav-l1 {
- font-weight: normal;
- padding-left: 0px;
- }
- .sidenav-l1 li > a {
- padding-left: 30px;
- }
- .sidenav-l1 li > a:hover, .sidenav-l1 li.active > a {
- padding-left: 28px;
- }
- .sidenav-l2 {
- font-weight: normal;
- padding-left: 0px;
- }
- .sidenav-l2 li > a {
- padding-left: 40px;
- }
- .sidenav-l2 li > a:hover, .sidenav-l2 li.active > a {
- padding-left: 38px;
- }
- .sidenav-l3 {
- font-weight: normal;
- padding-left: 0px;
- }
- .sidenav-l3 li > a {
- padding-left: 50px;
- }
- .sidenav-l3 li > a:hover, .sidenav-l3 li.active > a {
- padding-left: 48px;
- }
- .sidenav-l4 {
- font-weight: normal;
- padding-left: 0px;
- }
- .sidenav-l4 li > a {
- padding-left: 60px;
- }
- .sidenav-l4 li > a:hover, .sidenav-l4 li.active > a {
- padding-left: 58px;
- }
- .arrow-down {
- width: 0;
- height: 0;
- border-left: 4px solid transparent;
- border-right: 4px solid transparent;
- border-top: 4px solid #333;
- margin-right: 4px;
- display: inline-block;
- }
- .arrow-none {
- width: 0;
- height: 0;
- margin-right: 12px;
- display: inline-block;
- }
- .arrow-right {
- width: 0;
- height: 0;
- border-top: 4px solid transparent;
- border-bottom: 4px solid transparent;
- border-left: 4px solid #333;
- margin-right: 8px;
- display: inline-block;
- }
- .container {
- margin-right: auto;
- margin-left: auto;
- padding-left: 15px;
- padding-right: 15px;
- padding-top: 25px;
- }
- /*@media (min-width: 768px) {
- .container {
- width: 750px;
- }
- }
- @media (min-width: 992px) {
- .container {
- width: 970px;
- }
- }
- @media (min-width: 1200px) {
- .container {
- width: 1170px;
- }
- }
- @media (min-width: 1200px + 300px) {
- .container {
- width: 1170px + 300px;
- }
- }*/
- body {
- font-family: "Source Sans Pro", sans-serif;
- font-size: 15px;
- }
- h1, h2, h3, h4 {
- font-family: "Bitter", serif;
- }
- span.file-location {
- color: #BDBDBD;
- }
- .sidebar {
- display: block;
- font-size: 80%;
- line-height: 50%;
- }
- .memberdef {
- position: relative;
- border-width: 2px;
- border-style: solid;
- border-width: 2px;
- border-color: black;
- box-shadow: 0px 2px 5px #CCC;
- -webkit-border-radius: 5;
- -moz-border-radius: 5;
- border-radius: 5;
- margin: 5px;
- padding: 5px;
- }
- .memberdef h3 {
- margin-top: 0px;
- padding-top: 3px;
- font-size: 20px;
- line-height: normal;
- }
- table.compound-view tr {
- margin: 4px;
- }
- table.compound-view tr td {
- font-size: 11px;
- }
- table.compound-view tr a {
- transition: background-color 0.1s;
- -webkit-transition: background-color 0.1s;
- display: block;
- border-radius: 5px;
- border-style: solid;
- border-width: 1px;
- border-color: #FFF;
- height: 60px;
- background-color: #EEE;
- text-align: center;
- padding: 5px;
- color: #222;
- }
- table.compound-view tr a b {
- color: #0D5484;
- }
- table.compound-view tr a:hover {
- text-decoration: none;
- background-color: #DDD;
- }
- video, .youtube-video {
- border-radius: 3px;
- margin: 5px;
- margin-left: auto;
- margin-right: auto;
- max-width: 100%;
- max-height: 800px;
- display: block;
- border: 1px solid #444;
- }
- img {
- border-radius: 3px;
- margin: 5px;
- margin-left: auto;
- margin-right: auto;
- max-width: 100%;
- max-height: 800px;
- display: block;
- border: 1px solid #444;
- }
- .borderless img {
- border: none;
- }
- code {
- display: block;
- white-space: pre;
- overflow: auto;
- margin-top: 5px;
- }
- /** Needs a bit of resetting since it can turn out basically anywhere in the DOM */
- .tooltip {
- margin: 0px;
- font-size: 11px;
- font-weight: normal;
- font-style: normal;
- text-decoration: none;
- line-height: normal;
- white-space: normal;
- font-family: Hevetica, Arial, Sans-serif;
- text-shadow: none;
- }
- .tooltip p {
- display: inline;
- margin: 0px;
- }
- .label {
- margin-right: 2px;
- margin-left: 2px;
- }
- .empty-section {
- font-size: 0.9em;
- color: #BBB;
- }
- .compound-kind {
- color: #888;
- }
- .simplesect {
- border-style: solid;
- border-width: 0px 0px 0px 4px;
- padding-left: 5px;
- margin-bottom: 5px;
- }
- .simplesect h3 {
- font-size: 16px;
- line-height: normal;
- margin-top: 2px;
- margin-bottom: 3px;
- }
- .simplesect > p {
- margin-top: 0px;
- margin-bottom: 0px;
- margin-left: 14px;
- }
- .simplesect-return {
- border-color: #505050;
- }
- .simplesect-author, .simplesect-authors {
- border-color: #0BAA0B;
- }
- .simplesect-version {
- border-color: #0BAA0B;
- }
- .simplesect-since {
- border-color: #D48B0D;
- }
- .simplesect-date {
- border-color: #505050;
- }
- .simplesect-note {
- border-color: #15458C;
- }
- .simplesect-warning {
- border-color: #D40D0D;
- }
- .simplesect-pre {
- border-color: #505050;
- }
- .simplesect-post {
- border-color: #505050;
- }
- .simplesect-copyright {
- border-color: #505050;
- }
- .simplesect-invariant {
- border-color: #505050;
- }
- .simplesect-remark {
- border-color: #15458C;
- }
- .simplesect-attention {
- border-color: #D48B0D;
- }
- .simplesect-par {
- border-color: #505050;
- }
- .simplesect-rcs {
- border-color: #505050;
- }
- .simplesect-see {
- border-color: #0BAA0B;
- }
- .simplesect-deprecated {
- border-color: #303030;
- }
- .member-list .member-brief {
- font-family: monospace;
- }
- .member-list .member-brief .member-name {
- color: #337ab7;
- font-weight: bold;
- }
- .member-list .member-brief .member-paramlist {
- color: #5b5b5b;
- }
- .member-list .member-desc p {
- text-overflow: ellipsis;
- white-space: nowrap;
- overflow: hidden;
- }
- .member-prot {
- white-space: nowrap;
- }
- .member-list-item-header {
- padding-top: 5px;
- padding-bottom: 1px;
- cursor: pointer;
- }
- .member-list-item-header p {
- margin-top: 0px;
- margin-bottom: 0px;
- }
- .member-list-item-header:focus, .member-list-item-header:hover {
- background-color: rgba(0, 0, 0, 0.05);
- }
- table.member-list-section td {
- padding-top: 0.1em;
- padding-bottom: 0.1em;
- }
- table.member-list-section .member-desc {
- width: 100%;
- }
- table.member-list-section .member-desc, table.member-list-section .member-name, table.member-list-section .member-type {
- font-size: 0.9em;
- margin-bottom: 0px;
- padding-bottom: 0px;
- }
- table.member-list-section a, table.member-list-section p, table.member-list-section span {
- -webkit-margin-after: 0px;
- line-height: 1.5em;
- vertical-align: center;
- }
- .member-detailed {
- background: #EEE;
- border-bottom: 1px #AAA solid;
- }
- .member-detailed .member-name {
- font-weight: bold;
- }
- @media print {
- .member-detailed {
- display: block;
- }
- }
- .member-params-detail {
- margin-left: 30px;
- margin-top: 5px;
- }
- .member-params-detail td, .member-params-detail th {
- padding-left: 8px;
- padding-right: 8px;
- padding-top: 2px;
- padding-bottom: 2px;
- vertical-align: top;
- }
- .member-params-detail td p, .member-params-detail th p {
- margin: 0 0 5px;
- }
- .member-params-detail .param-name {
- color: #000;
- font-weight: bold;
- }
- .protection {
- display: inline;
- padding: 0.4em 0.6em 0em 0.6em;
- margin-right: 0.2em;
- font-size: 75%;
- font-weight: bold;
- line-height: 1;
- color: #ffffff;
- text-align: center;
- white-space: nowrap;
- vertical-align: baseline;
- border-radius: 0.3em;
- background-color: #fc20e6;
- }
- .member-side-prot {
- margin: 5px 5px 5px 0px;
- }
- @media (min-width: 908px) {
- .member-side-prot {
- margin: 0px;
- position: absolute;
- left: -75px;
- width: 70px;
- text-align: right;
- }
- .member-side-prot span {
- margin-bottom: 3px;
- }
- }
- .member-top-prot {
- position: absolute;
- left: 0px;
- top: 0px;
- width: 100%;
- height: 100%;
- background: #EEE;
- display: none;
- padding: 5px 5px 5px 15px;
- line-height: 50%;
- border-top: 1px #AAA solid;
- }
- .member-top-prot .protection {
- display: inline-block;
- padding: 0.4em 0.6em 0.4em 0.6em;
- }
- .member-side-prot {
- line-height: 50%;
- }
- .member-side-prot .protection {
- display: inline-block;
- padding: 0.4em 0.6em 0.4em 0.6em;
- }
- .deprecated {
- text-decoration: line-through;
- text-decoration-color: #555;
- }
- .protection-public {
- background-color: #5cb85c;
- }
- .protection-private {
- background-color: #666666;
- }
- .protection-protected {
- background-color: #c1c1c1;
- }
- .protection-package {
- background-color: #7f3b2c;
- }
- .protection-abstract {
- background-color: #865add;
- }
- .protection-readonly {
- background-color: #f0ad4e;
- }
- .protection-static {
- background-color: #5bc0de;
- }
- a:focus {
- outline: none;
- }
- .member-list {
- list-style-type: none;
- padding-left: 0px;
- }
- .member-list ul {
- list-style-type: none;
- padding-left: 0px;
- }
- .member-depth-1 {
- padding-left: 32px;
- }
- .member-depth-2 {
- padding-left: 52px;
- }
- .member-depth-3 {
- padding-left: 72px;
- }
- .member-depth-4 {
- padding-left: 92px;
- }
- .member-depth-5 {
- padding-left: 112px;
- }
- .member-depth-6, .member-depth-7, .member-depth-8 {
- padding-left: 132px;
- }
- .header-version {
- position: absolute;
- right: 20px;
- top: 0;
- vertical-align: center;
- line-height: 50px;
- color: #777;
- }
- .inner-dropdown-menu {
- list-style: none;
- font-size: 14px;
- text-align: left;
- padding-left: 0px;
- }
- .inner-dropdown-menu > li > a {
- display: block;
- padding: 3px 20px 3px 40px;
- clear: both;
- font-weight: normal;
- line-height: 1.42857143;
- color: #333333;
- white-space: nowrap;
- }
- .inner-dropdown-menu > li > a:hover,
- .inner-dropdown-menu > li > a:focus {
- text-decoration: none;
- color: #262626;
- background-color: #f5f5f5;
- }
- .inner-dropdown-menu > .active > a,
- .inner-dropdown-menu > .active > a:hover,
- .inner-dropdown-menu > .active > a:focus {
- color: #ffffff;
- text-decoration: none;
- outline: 0;
- background-color: #337ab7;
- }
- .dropdown-menu a {
- height: 26px;
- }
- .dropdown-menu a .glyphicon {
- margin-right: 8px;
- padding-top: 1px;
- }
- .dropdown-menu a small {
- float: right;
- margin-left: 10px;
- line-height: 182%;
- }
- .search-dropdown-align {
- margin-left: 0px;
- min-width: 208px;
- }
- @keyframes shadowPulse {
- 0% {
- box-shadow: 0px 0px 0px rgba(71, 91, 118, 0.7);
- }
- 10% {
- box-shadow: 0px 0px 0px rgba(71, 91, 118, 0.7);
- }
- 50% {
- box-shadow: 0px 0px 10px rgba(71, 91, 118, 0.7);
- }
- 100% {
- box-shadow: 0px 0px 0px rgba(71, 91, 118, 0.7);
- }
- }
- .shadowPulse {
- animation-name: shadowPulse;
- animation-duration: 1s;
- animation-iteration-count: 2;
- animation-timing-function: ease;
- }
- #banner {
- width: 100%;
- display: block;
- text-align: center;
- background: #f0af0b;
- padding-top: 7px;
- color: #000;
- overflow: hidden;
- padding-bottom: 6px;
- }
- #banner a {
- color: #000;
- text-decoration: underline;
- }
- h1 {
- margin-top: 0px;
- }
- table.table-filled {
- border: 1px solid #e1e1e8;
- border-radius: 3px;
- border-collapse: separate;
- background-color: #f7f7f9;
- }
- table.horizontalAlternative2D3D th {
- text-align: center;
- }
- table.horizontalAlternative2D3D th.Alt2D {
- background: #6599e7;
- }
- table.horizontalAlternative2D3D th.Alt3D {
- background: #ed8585;
- }
- table.horizontalAlternative2D3D td {
- padding: 10px;
- width: 50%;
- vertical-align: top;
- }
- table.horizontalAlternative2D3D td.Alt2D {
- background: #6599e755;
- }
- table.horizontalAlternative2D3D td.Alt3D {
- background: #ed858555;
- }
- .inspector-field {
- margin-left: 20px;
- }
- .prettyprint {
- margin-bottom: 10px;
- }
- /*# sourceMappingURL=style.css.map */
- </style>
- <style>@font-face {
- font-family: 'Bitter';
- font-style: normal;
- font-weight: 400;
- src: local('Bitter Regular'), local('Bitter-Regular'), url(https://fonts.gstatic.com/s/bitter/v13/rax8HiqOu8IVPmn7f4xs.ttf) format('truetype');
- }
- </style>
- <script type="text/javascript">var pathToRoot = "";</script>
- </head>
- <body>
- <div id="banner"></div>
- <div class="container">
- <div class="wrapper">
- <nav class="sidebar hidden-print hidden-sm hidden-xs">
- <ul class="sidenav-l0">
- <li class=''>
- <a href='http://arongranberg.com/astar/documentation/stable/changelog.html'><span class='arrow-none'></span>Changelog</a>
- </li>
- <li class=''>
- <a href='http://arongranberg.com/astar/documentation/stable/beginner.html'><span class='arrow-down'></span>Get Started</a>
- <ul class='sidenav-l1'>
- <li class='active'>
- <a href='http://arongranberg.com/astar/documentation/stable/getstarted.html'><span class='arrow-down'></span>Get Started With The A* Pathfinding Project</a>
- <ul class='sidenav-l2'>
- <li class=''>
- <a href='http://arongranberg.com/astar/documentation/stable/custom_movement_script.html'><span class='arrow-none'></span>Writing a movement script</a>
- </li>
- </ul>
- </li>
- <li class=''>
- <a href='http://arongranberg.com/astar/documentation/stable/getstarted2.html'><span class='arrow-right'></span>Using navmeshes</a>
- </li>
- <li class=''>
- <a href='http://arongranberg.com/astar/documentation/stable/inspector.html'><span class='arrow-none'></span>The A* Inspector</a>
- </li>
- <li class=''>
- <a href='http://arongranberg.com/astar/documentation/stable/graphtypes.html'><span class='arrow-none'></span>Graph Types</a>
- </li>
- <li class=''>
- <a href='http://arongranberg.com/astar/documentation/stable/architecture.html'><span class='arrow-none'></span>Architecture overview</a>
- </li>
- <li class=''>
- <a href='http://arongranberg.com/astar/documentation/stable/migratingfromunity.html'><span class='arrow-none'></span>Migrating from Unity Navigation</a>
- </li>
- <li class=''>
- <a href='http://arongranberg.com/astar/documentation/stable/errormessages.html'><span class='arrow-none'></span>Error messages</a>
- </li>
- </ul>
- </li>
- <li class=''>
- <a href='http://arongranberg.com/astar/documentation/stable/agentmovement.html'><span class='arrow-right'></span>Agent Movement</a>
- </li>
- <li class=''>
- <a href='http://arongranberg.com/astar/documentation/stable/graphgeneration.html'><span class='arrow-right'></span>Graph Generation</a>
- </li>
- <li class=''>
- <a href='http://arongranberg.com/astar/documentation/stable/deploying.html'><span class='arrow-right'></span>Deploying</a>
- </li>
- <li class=''>
- <a href='http://arongranberg.com/astar/documentation/stable/misc.html'><span class='arrow-right'></span>Misc</a>
- </li>
- <li class=''>
- <a href='http://arongranberg.com/astar/documentation/stable/deprecated.html'><span class='arrow-none'></span>Deprecated List</a>
- </li>
- <li class=''>
- <a href='http://arongranberg.com/astar/documentation/stable/examples2.html'><span class='arrow-none'></span>Examples</a>
- </li>
- <li class=''>
- <a href='http://arongranberg.com/astar/documentation/stable/groups.html'><span class='arrow-none'></span>Groups</a>
- </li>
- <li class=''>
- <a href='http://arongranberg.com/astar/documentation/stable/classes.html'><span class='arrow-none'></span>Classes</a>
- </li>
- </ul>
-
-
- </nav> <div style="flex-grow: 1; min-width: 0;">
- <nav class="navbar navbar-default">
- <div class="container-fluid">
- <div class="navbar-header">
- <a class="navbar-brand" href="index.html">A* Pathfinding Project</a>
- <span class="package-version"">4.2.18</span>
- </div>
- <div class="collapse navbar-collapse">
- <ul class="nav navbar-nav">
- </ul>
- <ul class="nav navbar-nav navbar-right">
- <li>
- <form id="searchform" style="display: none;" class="navbar-form">
- <div class="form-group">
- <input type="text" autocomplete="off" id="searchfield" class="form-control" placeholder="Search">
- </div>
- </form>
- <ul id="search-dropdown" class="dropdown-menu search-dropdown-align">
- <li><a href="http://arongranberg.com/astar/documentation/stable/#">Action</a></li>
- <li><a href="http://arongranberg.com/astar/documentation/stable/#">Another action</a></li>
- <li><a href="http://arongranberg.com/astar/documentation/stable/#">Something else here</a></li>
- <li role="separator" class="divider"></li>
- <li><a href="http://arongranberg.com/astar/documentation/stable/#">Separated link</a></li>
- </ul>
- </li>
- </ul>
- </div>
- </div>
- </nav> <div class="row">
- <article class="col-md-12">
-
- <h1>Get Started With The A* Pathfinding Project</h1><div class='alert alert-danger' role='alert'>This is an excerpt from the full documentation. You can view the full documentation <a href='http://arongranberg.com/astar/documentation/stable'>here</a>. Most links on this page will just take you to the full documentation.</div>
- <p>Get Started with the A* Pathfinding Project. </p>
- <p>Pathfinding is all about finding the best path between point A and B. This is what the A* Pathfinding Project does, in this tutorial you will learn how to set up the project in a new scene and get a simple AI moving while avoiding obstacles.</p><p>This AI you will write will not be very advanced, it is just the minimal amount of code needed to get moving and following a path. If you want a more advanced AI, you can either extend the script you will write in this tutorial or use (or extend) the AIPath or <a href='http://arongranberg.com/astar/documentation/stable/richai.html'>RichAI </a> scripts included in the package (see part 2 for basic usage of the RichAI component).</p><h3 id='downloading' >Downloading</h3><p>The first thing you need to do, if you haven't done so already, is to download the A* Pathfinding Project.</p><p>The project can be downloaded from <a href='https://www.arongranberg.com/astar/download' >here</a>. You can either download the free version with some limited features (but still very powerful) or buy the pro version which has more cool stuff included. If you want, you can explore the different example scenes in the project before you start with the next section.</p><h3 id='usingIphone' >Deploying for Mobile/UWP</h3><p>Depending on which platform you are building for, you might want to read this page first: <a href='http://arongranberg.com/astar/documentation/stable/iphone.html'>Deploying for mobile/uwp</a></p><h3 id='errors' >Troubleshooting</h3><p>At this stage, if you are getting any compiler errors from the code, you can first check the <a href='http://arongranberg.com/astar/documentation/stable/upgrading.html'>Upgrade Guide</a>.</p><p>If you are still getting errors, take a look at the forums (see <a href='https://forum.arongranberg.com' >https://forum.arongranberg.com</a>) to see if anyone else has the same problem, or post a new question there.</p><h3 id='overview' >Overview</h3><p>There are several different parts of the package. Broadly, they can be grouped into:<ul><li><p>Movement scripts, which tell the agent how to move and where it should move (see <a href='http://arongranberg.com/astar/documentation/stable/movementscripts.html'>Movement scripts</a>).</p>
- </li><li><p>Graphs, which describe where an agent can move (see <a href='http://arongranberg.com/astar/documentation/stable/graphtypes.html'>Graph Types</a>).</p>
- </li><li><p>Temporary obstacles, which cut holes in the navmesh or update it in other ways (see <a href='http://arongranberg.com/astar/documentation/stable/graphupdates.html'>Graph Updates during Runtime</a>).</p>
- </li><li><p>Off-mesh links, which allow an agent to move or jump between otherwise parts of the navmesh (see <a href='http://arongranberg.com/astar/documentation/stable/nodelink2.html'>NodeLink2</a>).</p>
- </li><li><p>Path modifiers, which post-process paths to for example smooth them (see <a href='http://arongranberg.com/astar/documentation/stable/modifiers2.html'>Using Modifiers</a>).</p>
- </li></ul>
- </p><p>What you will primarily interact with is the movement script and the <a href='http://arongranberg.com/astar/documentation/stable/seeker.html'>Seeker</a> component. Both need to be attached to an agent that needs to move. The movement script controls how the agent should move, its velocity, rotation, and so on, as well as what the current destination of the agent is and when it should recalculate its path. The <a href='http://arongranberg.com/astar/documentation/stable/seeker.html'>Seeker</a> component is controlled by the movement script. The movement script tells it to calculate a path, and the Seeker will chug along and later (possibly in a later frame) return the result to the movement script.</p><p>The <a href='http://arongranberg.com/astar/documentation/stable/astarpath.html'>AstarPath</a> component holds all the graph data in a scene. It follows the <a href='https://en.wikipedia.org/wiki/Singleton_pattern' >singleton pattern</a>, so there should only be one such component in a scene. It may contain one or many graphs, of the same or different types. Each graph, in turn, contains and manages all its nodes (of which there may be many, sometimes up to millions).</p><p>There are a number of included movement scripts in the package (e.g <a href='http://arongranberg.com/astar/documentation/stable/aipath.html'>AIPath</a>, <a href='http://arongranberg.com/astar/documentation/stable/richai.html'>RichAI</a>, <a href='http://arongranberg.com/astar/documentation/stable/ailerp.html'>AILerp</a>). You may use one of the included ones, or you can write your own (see <a href='http://arongranberg.com/astar/documentation/stable/custom_movement_script.html'>Writing a movement script</a>). You can find a comparison of the built-in movement scripts here: <a href='http://arongranberg.com/astar/documentation/stable/movementscripts.html'>Movement scripts</a>.</p><h3 id='video' >Video Tutorial</h3><p>If you prefer a video tutorial instead of a text tutorial. Here is a video for you. The video tutorial takes a more high-level approach, and you will learn how to use the built-in movement scripts instead of writing a custom one. Since the video and text tutorials cover slightly different ground, it is not a bad idea to take a look at both.</p><p> <iframe class="youtube-video" width="690" height="400" src="https://www.youtube.com/embed/5QT5Czfe0YE" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p><p>You can also take a look at the excellent tutorial by Gabriel Williams (Unity Cookie) in part 8 of the series on making a Tower Defence game: <a href='https://www.youtube.com/watch?feature=player_embedded&v=PUJSvd53v4k' >https://www.youtube.com/watch?feature=player_embedded&v=PUJSvd53v4k</a> The video covers most things which will be discussed in the text tutorial.</p><h3 id='newscene' >New Scene</h3><p>Create a new scene, name it "PathfindingTest". Now let's create something which an AI could walk on and something for it to avoid: add a plane to the scene, place it in the scene origin (0,0,0) and scale it to 10,10,10.</p><p>Create a new layer (Edit → Project Settings → Tags) named "Ground" and place the plane in that layer. Now create some cubes of different scales and place them on the plane, these will be obstacles which the AI should avoid. Place them in a new layer named "Obstacles".</p><p>Your scene should now look something like this: <img class="tinyshadow" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxsAAAGPCAIAAAC71FriAAAWa2lDQ1BJQ0MgUHJvZmlsZQAAeAHVWFdUFE23re6JMGSGnHPOOeecc5Sc40gQAZUgogQFEREBQUDJiqIEURAQREVJIiigEkREQRFFQEBuo8vv/x7u/3Zfbq3VPXtO1Zyu6XOqap8NAHOhN4kUBtMAEB4RE2VrpMvt7OLKjZsCaEAGyAEMeL19o0k61tbm4L+2H+MA2u98LrHv678O+987aP38o30BgKyRbh+/aN9wBN9G8KovKSoGAPgKgofjYkgIRiEXIEYhE0TwqX0c+AeX7GOfP/jG7zH2tnrImF4A8BTe3lGBABCGETv3Id9AxAdhFQAsXYRfcAQAdGgEa/oGefsBwKyPjBEPD4/cxyQEC/v8y0/gv7C3t88/Pr29A//Bf/4L8kvkwfrB0aQw7/jfX/4vb+Fhscj7+t3okDtFRJjlfmzwyPXBz1vf7C8mhf2O2W+7f4SD3V97hI+l1V8cEGVo+xeTYnT/ha3t/9oTgvQs/2L/aIN//IR4m1r/tUfF2jr8xdGH7Az+4oQge6e/2M9f/x97QLChyV97cIzJP88KjTT7Zw4gGFgAb+Ab4394P+5AL5IUHxUcGBTDrYNkmb84t0mEr6Q4t6y0jMx+9/+btr++/kz2m+3vdQMxDv3HFiUGgJoEkvd0/7F5Ie+ktQoAGon/2PhdAKCUBKDrs29s1KE//pBUBgCDrFpqQAQsgBPwAWEgAWSBIlAD2sAAmAIrYA9cgAfwBUEgHESBOHAEpIB0kAVywXlQBMpAJagB10ATaAX3QDd4CAbAMHgBpsAMWACfwCr4AbYhCMJBlBA9xAJxQQKQGCQLKUOakAFkDtlCLpAXFAhFQLHQEeg4lAXlQUVQOVQL3YTuQN3QY2gEegXNQkvQGvQTRsEUMBHmgAVhKVgZ1oHNYHv4ABwIH4QT4DT4DFwIV8ANcAvcDQ/AL+AZ+BO8jgIoAooRxYOSQCmj9FBWKFdUACoKdQyViSpAVaCuo9pR/ajnqBnUMmoLjUXTo7nREmg1tDHaAe2LPog+hs5GF6Fr0C3oXvRz9Cx6Ff0LQ4lhx4hhVDEmGGdMICYOk44pwFRhmjF9mBeYBcwPLBbLiBXCKmGNsS7YEGwiNht7CduI7cKOYOex6zgcjgUnhtPAWeG8cTG4dNxFXAPuPm4Ut4DbxBPwXHhZvCHeFR+BT8UX4OvwnfhR/CJ+m4yGTIBMlcyKzI8sniyH7ApZO9kQ2QLZNjktuRC5Brk9eQh5Cnkh+XXyPvJp8m8EAoGXoEKwIQQTkgmFhBuER4RZwhYFHYUohR6FO0UsxRmKaoouilcU3ygpKQUptSldKWMoz1DWUj6gfEO5SUVPJUllQuVHlURVTNVCNUr1mZqMWoBah9qDOoG6gPoW9RD1Mg0ZjSCNHo03zTGaYpo7NBM067T0tDK0VrThtNm0dbSPaT/Q4egE6Qzo/OjS6CrpHtDN06Po+ej16H3pj9Nfoe+jXyBiiUJEE2IIMYt4jThIXGWgY5BncGQ4zFDM0MEww4hiFGQ0YQxjzGFsYhxn/MnEwaTD5M+UwXSdaZRpg5mNWZvZnzmTuZH5BfNPFm4WA5ZQlrMsrSyvWdGsoqw2rHGspax9rMtsRDY1Nl+2TLYmtkl2mF2U3ZY9kb2S/Sn7OgcnhxEHieMixwOOZU5GTm3OEM58zk7OJS56Lk2uYK58rvtcH7kZuHW4w7gLuXu5V3nYeYx5YnnKeQZ5tnmFeB14U3kbeV/zkfMp8wXw5fP18K3yc/Fb8B/hr+efFCATUBYIErgg0C+wISgk6CR4UrBV8IMQs5CJUIJQvdC0MKWwlvBB4QrhMRGsiLJIqMglkWFRWFRBNEi0WHRIDBZTFAsWuyQ2Io4RVxGPEK8Qn5CgkNCROCRRLzEryShpLpkq2Sr5WYpfylXqrFS/1C9pBekw6SvSUzJ0MqYyqTLtMmuyorK+ssWyY3KUcoZySXJtcl/lxeT95UvlXyrQK1gonFToUdhVVFKMUryuuKTEr+SlVKI0oUxUtlbOVn6kglHRVUlSuaeypaqoGqPapPpFTUItVK1O7YO6kLq/+hX1eQ1eDW+Nco0ZTW5NL83LmjNaPFreWhVac9p82n7aVdqLOiI6IToNOp91pXWjdJt1N/RU9Y7qdemj9I30M/UHDegMHAyKDN4Y8hoGGtYbrhopGCUadRljjM2MzxpPmHCY+JrUmqyaKpkeNe01ozCzMysymzMXNY8yb7eALUwtzllMWwpYRli2WgErE6tzVq+thawPWt+1wdpY2xTbvLeVsT1i229Hb+dpV2f3w17XPsd+ykHYIdahx5Ha0d2x1nHDSd8pz2nGWcr5qPOAC6tLsEubK87V0bXKdd3NwO2824K7gnu6+/gBoQOHDzz2YPUI8+jwpPb09rzlhfFy8qrz2vG28q7wXvcx8SnxWfXV873g+8lP2y/fb8lfwz/PfzFAIyAv4EOgRuC5wKUgraCCoOVgveCi4K8hxiFlIRuhVqHVoXthTmGN4fhwr/A7EXQRoRG9kZyRhyNHSGKkdNLMQdWD5w+uRplFVUVD0Qei22KICJF5GisceyJ29pDmoeJDm3GOcbcO0x6OOPw0XjQ+I34xwTDhaiI60Tex5wjPkZQjs0d1jpYfg475HOtJ4ktKS1pINkquSSFPCU15liqdmpf6/bjT8fY0jrTktPkTRifq06nSo9InTqqdLDuFPhV8ajBDLuNixq9Mv8wnWdJZBVk72b7ZT07LnC48vXcm4MxgjmJOaS42NyJ3/KzW2Zo82ryEvPlzFuda8rnzM/O/n/c8/7hAvqDsAvmF2AszheaFbRf5L+Ze3CkKKnpRrFvcWMJeklGyccnv0mipdun1Mo6yrLKfl4Mvvyw3Km+pEKwoqMRWHqp8f8XxSv9V5au1VaxVWVW71RHVMzW2Nb21SrW1dex1OfVwfWz9UoN7w/A1/Wtt1yWulzcyNmbdADdib3y86XVzvMmsqeeW8q3rtwVulzTTN2e2QC3xLautQa0zbS5tI3dM7/S0q7U335W8W32P515xB0NHTid5Z1rn3v2E++tdpK7l7sDu+R7PnqkHzg/Gem16B/vM+h49NHz4oF+n//4jjUf3Hqs+vvNE+UnrgOJAy1OFp83PFJ41DyoOtgwpDbUNqwy3j6iPdI5qjXY/13/+cMxkbOCF5YuRcYfxlxPuEzMv/V5+eBX26uvkocntqeRpzHTma5rXBW/Y31S8FXnbOKM40zGrP/t0zm5uat53/tO76Hc7C2nvKd8XLHIt1n6Q/XBvyXBp+KPbx4VPpE/by+krtCsln4U/3/6i/eXpqvPqwteor3tr2d9YvlV/l//es269/uZH+I/tjcxNls2aLeWt/p9OPxe343ZwO4W7Irvtv8x+Te+F7+2RvKO8f3MBFHKHAwIAWKtGeALCFegR/ktO9Yf//h6B0GOEtMMIpgI64DLECV2CVeBPqGvoFIwv1hHnjPchSyUvIfRRbFBxUFvRHKVtpBun32EgMoozqTBbsXiwxrBls1/luM85zjXPvcLzlXeVb4l/TmBCcECoU7hRpFw0TyxFnCThIWklpSktLSMsyyHHIE+lgFbYUvyk9EZ5RKVHtUmtQj1PI0kzXMtd21RHUZdPj1pvS3/W4LHhDaMC4yMm3qYGZsLmBPNliyHLW1aF1sk24bbudub2Gg4SjuxO5E4bzvMuQ6533arczx5I9PD3tPXS81b2kfEV9xPy5wvgDGQKog0mD4FCNkO/hC2ET0eMRQ6Thg++iHodvRizFrsbhztMG8+WwJcodkT2qPIxzSTtZO0U9VT546JpXCfo0jHpmyeXTk1mDGTey6rPLj6ddeZITmRu4Fm/vIBzoflR5xMKUi9kFOZcPF9UVFxWUnmpurS+7NbljvKBiqnKz1fhKoZqkRqNWqs6n/rYhpPXCq/XN3bcGLm52LR7m9gs1qLT6tQWdie5PR/J3faOoc7FLky3WI/rg9zeJw9x/QaPUh/ff7LzVPlZ1GD90NwI/aju84ixCy/uj79/SfFKdtJp6sh0+euHb5ZnGGb15mLn69/NvWdZtPpwYunOx8/LvCv2n1O+XF29+7Vrrflb+feT6yE/zDckN2k217bGfrZsF+4k7Lr90tjj3NtD4k8BlEEGBEMxMAauRnmihTEAM4d9g5vAz5H9IMAUXJTaVN7UqTQVtN10k/RLxHVGFBOemZmFn1WezZjdmcOfM4KLxB3M481rw6fFLyHALAgEPwmNCd8VqRA9JRYpbi+hLMkhBUstSY/KdMjWyOXLpyiEKTooaSoLq9CorKtOqXWrV2lkaUZq2Wor6DDpbOm+0mvTv2BwyNDBSNaYyvijSZ/pZbNEcwcLKUu85bxVl/VlmzTbYDsbeyUHLkes44rTqHOrS7Frkpuvu9EBUQ9KjzXPSa+H3s0+1b4lfrn+JwLiAyOCvIPtQwxDlcNEwtkiKCPhyC3S94NrUd+jN2N+HYKRTCDEUyXQJNIfYTjKeIwxiZhMk4JP2U1dPT6bNnKiK73x5KVT2RnxmYFZ9tk6pyXPsOdQ5ILczbPreevnNvN3C6ALmEKyi5RFNMV0JcRLTKWsZZyXBculK7Qqra/4XI2pOll9saau9m7dQP1Uw8drPxvJb7DflGoyuOV+O7o5q6Wy9W7b6J2l9r17jB2Sncb3g7pyuu/3bPWq9SU9fPiI8NjmyYWBqWdcgz5DlcOzo+zP7ceyXnSPb7wUe+U5eW7q0fTOG7m34TMNs2vz2u/yFt4vqn3IXXr3SWk5Y+XVF95Vn6+Fa73fPqxjf/BsqG06bEX8PLldttO6O/Rr8Xf8CUAGHAZzCHefgANQeFQrOg5jiOXBYfEQfoMcIqApWCllqYyoA2hSaMvoWulHiO8Y9piYmJVZHFnj2ArZmzmecE5yzXLP8EzyPuPr5m8SqBDME0oRJokcEDUWkxPnksBJfJWckuqTbpQpkc2Qi5MPULBV1FQSUaZX3lFZUH2mdlu9WCNF01/LRFtchwphGs/06vUzDAINDYy4jbaNx01umGaY+ZirWdBZLFl2WxVbx9k42irZsdjt2L916HascDru7Oei78rnBrvNuHceKPFI9HT30vYW9KHx2fX96PfSvy/gZmBpUEZwTIhnqEmYXDhHBD7ie+Q8afzg06iH0T0xnbF3D7XENR2+Fl+TUJFYfCT/6OljaUnxyaEpLqn6xyXSGNJ2TsynPz7ZeCofyQGPLN1swdPkp7+ceZHTmVt/tjTv/Lmc/Kzz6QUpFxILYy9GFgUVe5U4X7IpNS0zuKxfblhhXulwxetqaNWh6pSarNqCusv1dQ23r3Ve7298fmPm5pemvds0zTwtsq16bfZ3/NsP3U2/V9BR03nv/suu3R7JBwG9V/re9ws/Cnnc8GTlqcSz8MGGoY8jAqOezy+MDY5jJlRfkl5VTb6epntt+ibt7YNZyjnP+fYFtvfHFueXjD42LNOuHP78dtXka/M33u+563sb4ZvTP023W3cFfuXtx/+PDrJ/JmAVAbiyAYDjSQAskdqyXBAAAaTepyQCYE0JgL0KgDGcAHrTBqAnGv+cH1ik3mQB/EAaaCAVpgsIRKrKU+AiqAf3wXOwBPYgJkgGqQ1DoAyoHnoGrcFMsCbsD+fAd+D3SC1njDqKakatInVaOLoR/R2jhknDDGM5sZHYbhwjLgzXg2fDx+JHyKTJ8sg2yD3I+wnyhEoKIkUGJaCMp1yniqFap46ngWiyaVlpG+i06V7SRxNpiU0MTgy7jFeZLJl+MJeyGLN8Z61kc2AnsPdyJHNqcUFcD7nP8Ljw8vN+5mvlTxIwFqQXnBG6KXxCxE1UQYxObE38hUS7ZLnUKelwGWtZWTmi3Ib8tEKv4nWlYuVMlaOqUWoh6v4avpqBWiTtZJ0C3Zt6w/rfDFmM9IxJJpdNx8wJFgaWqchOtWuraBdqf8lh0HHPWdYl0LXMbeoAq4eb52WvDz6yvsf8HgfQB7oGlQcvhkqGxYX3RFKTPA82ReNiPGLb4hgOR8c/T5RDsnE9yTm5I1XgeE7abnr4ydkMp8zhbLPT/Tk6uS15/Oey8j8VGF0oL/xZ5FB88xJ1aWTZSLlCRckVLLLvvK/xqJ2u92xYvB5zA3Wz4JbY7QctB1p/3im6q37vbWdqF393z4MDvesPsx/xPb434Px0Y7BwWH1k7nnmCwXkpKmYJE07vfGayZobWRBaTF9aWrb63PaV/1v+D9xm0s/t3cTf+wcO0AJ2RGlQAHrABlFsDoJUREuoQfSDEfABiT4LJAdZQ5FQLtQETUA7MB9S58fAZfBTeBup4n1RxagJNCPaCV2MnsOIYg5herEM2CBsJ44JF4Ubwkviz+BXyezJ2sn5yHPIfxEiCfMUbhQvKG0pR6kcqKao/ahXaZJo6Whr6HToXtMfJXIT+xkOMnIyDjEdZ1ZlXmOpZ/VlY2cbZz/HYctJRPapSm4SjzYvPe8SXw9/qUCCoIOQlDCZ8JxIp2iJ2FFxLwkjSRkpTmkqGUjmh+yK3Dv5SYVBxW6l28rVKpdUz6vlqp/RyNHM0yrULte5ptuhN6q/YkhlpGDsY3LO9JE5sFC3TLDqsIFtzewK7N85yjmlOA+40rrZuxcceOnJ5uXjXe+z4WfoXxiwEmQQXBqyFWYX3hAJkxwP1kXtxTjF3oijOBwWP5goe6ToGCYpKnkm1ep45wmJ9JJThIwjmV+y/U5P5zjmPs+zPTd23rHgVaHLxbFi45JbpYxlMZeHK8QqT15ZqNKvrqolq4usn7imc73xBvfN87dobp9poW0tuMPVXntPsaPvvlPXx56kXsa+hn6dR6NPvAY+PAsZ/DgcNLL4PGBscTx44vOr2Mlf05lv2N7emnWcx77rfZ/7Ifij+bLiZ75V4hr+29765sb3rW/b67tbv+OPB/SAG0giq98CUZYif0e/Dln7L8AKhEEUIlXIEVGD8qEW6CUSfW7YEA6Hz8P3Ea7JijJDJaPaUN/QsugoRJPZxuhhTmMmsaLYI9hhnDAuBfcar4Yvxu+QeZH1kUuSXyTgCIcJyxQ+FNOUzpQTVK5UM9TB1Os0J2hZaG/QmdIt0p8iShDHGJIZpRhnmQqZbVgoWB6xprHpsO2xd3GkcZpzMXEtcLfyZPP68+nw8wigBN4LPhKqE84SCRO1FlMS55GgkvgluYYwlXmZGdkZuVn5eYV3inNKM8qvVaZUp9Vm1Bc1VjV3tSl0uHQV9Cz0QwxOGzYbvTfhMHUxKzafsRSxirXus2WxI9kPOIo4ZTmvuFq5NRxAezh71nnt+tj5NvjjAwIDnwRLhxSFYcNjIt6RbA92RgvFnI5di3M+3JUgmnjhKO5YfNJKin/q2zS3E5MnXU69zHTKGj/teOZlrvvZOYR3/ihIKyRerC5WLxkp9S/7Wh5d8emK29WH1ZI1+bU79QENI9e1Ghtvcjfl3yY0p7WCtuR21N3MDobOii6Z7gcPnHqXHx5/xP64dcDu6cpg+jDryNXnImPV49wTBa8oJlOmNl+T3izN+M2+nXd9N/HebnFoyexj/7LeStcXjdV7a+rfOta1f/Rumm6NbrvtLPyK2o9/dICc7P7pASAKXUR+fLO39w05N3B5AOye3dvbrtjb261Eio1pRKsM+6Ot7w/G0gBQcm8fPQyKSN7//Hf7H/A1VgBBufPdAAAACXBIWXMAAAsTAAALEwEAmpwYAAAgAElEQVR4Aezda9AtVXkn8JeLAnITRRCCXAMiotyOcpGLAUYSE+MQYpKZcYqqaGUuIanMTFU+SDIxyWSqZjKTD6l8mPjFMdYYHQMmjtdEFEUFhosIaCAM4cCBwyXi4XqAw21+51057T699+7du7t37+7eT9ep9/Tuva7/tXavf/+fZz29y0UXXbQWRyAQCAQCgUAgEAgEAoFADQR2rZE3sgYCgUAgEAgEAoFAIBAIbEcgGFXMg0AgEAgEAoFAIBAIBOoiEIyqLoKRPxAIBAKBQCAQCAQCgWBUMQcCgUAgEAgEAoFAIBCoi0AwqroIRv5AIBAIBAKBQCAQCASCUcUcCAQCgUAgEAgEAoFAoC4CwajqIhj5A4FAIBAIBAKBQCAQCEYVcyAQCAQCgUAgEAgEAoG6CASjqotg5A8EAoFAIBAIBAKBQCAYVcyBQCAQCAQCgUAgEAgE6iIQjKougpE/EAgEAoFAIBAIBAKBYFQxBwKBQCAQCAQCgUAgEKiLQDCqughG/kAgEAgEAoFAIBAIBIJRxRwIBAKBQCAQCAQCgUCgLgLBqOoiGPkDgUAgEAgEAoFAIBAIRhVzIBAIBAKBQCAQCAQCgboIBKOqi2DkDwQCgUAgEAgEAoFAIBhVzIFAIBAIBAKBQCAQCATqIhCMqi6CkT8QCAQCgUAgEAgEAoFgVDEHAoFAIBAIBAKBQCAQqItAMKq6CEb+QCAQCAQCgUAgEAgEglHFHAgEAoFAIBAIBAKBQKAuAsGo6iIY+QOBQCAQCAQCgUAgEAhGFXMgEAgEAoFAIBAIBAKBuggEo6qLYOQPBAKBQCAQCAQCgUAgGFXMgUAgEAgEAoFAIBAIBOoiEIyqLoKRPxAIBAKBQCAQCAQCgWBUMQcCgUAgEAgEAoFAIBCoi0AwqroIRv5AIBAIBAKBQCAQCASCUcUcCAQCgUAgEAgEAoFAoC4CwajqIhj5A4FAIBAIBAKBQCAQCEYVcyAQCAQCgUAgEAgEAoG6CASjqotg5A8EAoFAIBAIBAKBQCAYVcyBQCAQCAQCgUAgEAgE6iIQjKougpE/EAgEChB4zWteU/BtfBUIBAKBwGAQ2H0wPYmOBAKBQKcQwKXe/va3/+RP/uQPf/jD/7d+pJNONTIaEwgEAoFAUwjsctFFFzVVVpQTCAQCgQAEMi41jkYiVf/3//5fFGv827gSCAQCgUB/EQhG1d+xi5YHAl1EgCjlmNky1CqxqyRfzUwfCQKBQCAQ6DgCwag6PkDRvECgNwiU5FLj/cmoFe1q/Nu4EggEAoFALxAIRtWLYYpGBgKdRuDHf/zH//k//+f1ndBRK/1MNsEwC3Z6yKNxgUAgMIZAMKoxSOJCIBAIlEagKS41XmEIV+OYxJVAIBDoMgLBqLo8OtG2QKC7CFCk6FIYVQtNxK5CuGoB56giEAgE6iAQjKoOepE3EFhFBHApLlMiI7Tf+Uy4YhNMJsL22xA1BgKBQCAwEYFgVBNhiYuBQCAwAYGCsAgTUi/4UmJXEYhhwTBH8YFAIFAWgWBUZZGKdIHAKiPQKS6VGwjUyoFa+Rv+7Dlw4mMgEAi0hkAwqtagjooCgb4iUDksQvsdTqQKr0Kw2q89agwEAoFVRiAY1SqPfvQ9EJiBQI+4VK4n22WrHW+/CeEqB058DAQCgUUgEIxqEahGmYFA7xFIvueMfb3vydpaRq1CuBrAaEYXAoHOIhCMqrNDEw0LBJaDwOJCTC2nPyO1olY+JWf2EK5GgInTQCAQaACBYFQNgBhFBALDQIAi1VqIqaUjFsLV0ocgGhAIDAyBYFQDG9DoTiBQBYGV4lLjACV2lbSr8W/jSiAQCAQCZRAIRlUGpUgTCAwWgS6HRWgf9Ey4SiftNyBqDAQCgf4iEIyqv2MXLQ8EaiEQXKoYvhCuivGJbwOBQCCHQDCqHCDxMRAYPgLBpeYaY9QqsSvO7OHPPhd0kTgQWCkEglGt1HBHZwOBtf6GmOrC4GXUKgIxdGE4og2BQKcQCEbVqeGIxgQCC0QguFSD4KJWSotADA1CGkUFAn1HIBhV30cw2h8IzEZgwCGmZnd+8SlCuFo8xlFDINADBIJR9WCQoomBQGUEuExddtll/lYuITLOhQB2FcLVXIhF4kBgMAgEoxrMUEZHAoGdEMCiVidc504978aHTLjizJ5MhN1oV7QiEAgEFoVAMKpFIRvlBgLLQgCXSm/lW1YDot4cAoldRQTRHCzxMRAYGALBqAY2oNGdlUYAl3r729+OTq00Ch3uPGrlQK38jUAMHR6oaFogUAWBYFRVUIs8gUDXEAgu1bURmdmeRKrwKgRrZuJIEAgEAt1HIBhV98coWhgIzEAgwiLMAKjbX2+XrdYlK+zK0e3GRusCgUBgKgLBqKZCE18EAt1HILhU98dorhZm1CqEq7lwi8SBQBcQCEbVhVGINgQCcyOQfM8Z++bOGRn6gABqpZnJmT2Eqz6MWLQxEFgLRhWTIBDoGQIRrrNnA1a7uSFc1YYwCggE2kAgGFUbKEcdgUAjCFCkIsRUI0j2t5DErpJ21d9eRMsDgUEiEIxqkMManRoaArhUMvMNrWPRn6oIZMJVOqlaTOQLBAKBxhAIRtUYlFHQiiDw2te+Vk9RnAMOOMD5yy+/7Nxx7bXX3nTTTY2DoOQIMdU4qgMrMISrgQ1odKenCOze03ZHswOBxSGAJ61zpO1/MsKkOg5MBZVeffXVBd9W+Cq4VAXQVjNLmiqYN2qV2NV6HIYIxLCa0yF6vTQEglEtDfqouFMIJP8kK1PlVt1+++0vvfTSrrvuWrmELGNwqQyKOJkLATPHkah/Rq0iEMNcGEbiQKAyAsGoKkMXGQeFgOf7mv35wQ9+sP/++9dnVBFiquZARPaEAGplVjvMqIxdRSCGmB6BwOIQCEa1OGyj5N4gYNVppK1bt25FqioXFVyqMnSRsQCBdd0qhKsChOKrQKAZBIJRNYNjlLLiCPzt3/4tBFj9quEQIaaq4Ra55kUgE66YuQlXEUF0XgAjfSBQgEAwqgJw4qtVQaDY5bwMCv/wD/8g2Ysvvvj888+/4hWvKJMlpbHCXXbZZf6WzxIpA4FGEDDryKKKGrUJOm+k8CgkEFhBBIJRreCgR5fzCNRnVFmJ5RmV9SzCdWa4xckSETAV1x2uttu+E7uKCKJLHI6our8IBKPq79hFyxtDoL5ElKx+GoRRzWxW0gaact7KqnvZcrh162tf9arsSpwEAvMikLGrTLhKJ/OWE+kDgRVEIBjVCg56dHknBJplNsWuVGm5SqaWnRrRxIdd1tYSnXpxbe2xoFZNQLrKZWTUCggZu4pADKs8JaLvMxEIRjUTokgQCMxGINOoprlSLZRL5dq32wi1evyZZ16z1165BPExEJgLgYxdRSCGuXCLxKuGQDCqVRvx6G8egUacqASjysodd6VaVlgE1CrRKapVUKtsgOKkMgKolSP9ZEK4qgxjZBwqAsGohjqy0a+yCDTCqEYrG3WlWhyXEkr0scce23PPPV/5yleO1j7xPKjVRFjiYh0EUKvkz56s2BGIoQ6YkXcYCASjGsY4Ri+qI2BhqJ55PWdm8kvlJFeqY4899uKLLz700ENrFj4tu1q2bdv2zDPP7L777uI1BLWaBlRcXzQC6ReUeFUIV4tGO8rvMgLBqLo8OtG2hSPQiFt6CkaVtZUrFfUI0Xn1q1+dXVzEyW677aauF9YP1GqXXXfdc489glotAuoosyQCmXCVIoh66U0EYigJXSQbAALBqAYwiNGF6gjUF6gm1k1A2nfffcvY4yZmL3mRNEWmyhK//NJLeJVDGIU99tpr7zAIZtDEyTIQyNhVJlylk2W0JeoMBNpAIBhVGyhHHZ1FoBFGlbP66SxGtd9++9GQFtpxjO3pp58er0IYBeZA/1546SWa1X57712G24Wv1TiScaURBDJqpbREqkK4agTYKKRrCASj6tqIRHtaRaBxt/Ss9du1opdf3mUX9GZRx0zGtvuuu764bduWbdue27ZNS177mte8qkT8z6BWixqwKNfm0x3+7KiVA7Xyl3EwsAkEBoBAMKoBDGJ0oToCC9KoNOiggw6q3qxyOTEq4tOo4W9avj3W9wM++eSTXL5QqwMPPHAuauX9z49FXKtp4Mb1Sgj46TkiEEMl8CJTRxEIRtXRgYlmtYBAI27p09r52te+VoCDad8u6zq/dVUnaqV5qNVeJeJ/6kaKa4VaiWt1QIksy+pg1NtHBFCrLBBDkqyoViFc9XEoV7zNwahWfAKsdPfdxxvp/2h4z6zAMkwlS1z5JOecXr6cRK2eeOIJqlWiVulKcQmoVaJT26nVs88esM7PirPEt4FAeQS2y1YhXJXHK1J2DIFgVB0bkGhOiwi4d9evbdwtXZmIzj777FO/8Jkl4G0TndNnZswS7LHHHs4ff/zxRx55hBmRsVLjs2+nnWynVut0KqjVNIjiek0E/DyTcJUCMUQE0Zp4RvYWEAhG1QLIUUVHEWjELT0XjCp1FU0ps72uU7gkasXm8txzzyFVr3vd64TUmtnCoFYzIWowwfMc2p56as9dd923xA6DButdelHYVS6CKJugubr0hkUDAoFRBGbfMUdTx3kgMCQEGtGoJgJCOiqj9EzMO9dFqpKKRt97M1f2iYkTtXr00Uf5vCv89a9//cRkuYtBrXKALOIj8fB1O7TPH27b9uLWra9bcBTZRfSiTpmZcKWQ5HEVgRjq4Bl5m0UgGFWzeEZpvUGgKbf0aVa/dhgVuClJzTKqbAiTzHbPPfekgKUldy9m1Eqg0cfC1ypDs+mT19i/ub6FU0SyJx9//PX77990DV0vL2NXmTN7Oul6u6N9w0UgGNVwxzZ6VojA4gQq1e6///6CURXW39iXZWxzdSpLcRZ0B7XyVyx4BsEyBYrElXytglqVgatymr3X1vZep1N82h55+uldnnvu4CYcBCu3p/2MGbVSdQhX7eMfNWYIBKPKoIiT1UKgMqMiCAnphMfYHOev7XLjwB1wwAEzw2+O56p2pTUxLFErehVqxSAoPITgC2XavBO1eu65A9Z94ctkjDQQuOWWW0ynI444YiYa1MHX7733mn9ra1uQ36eees2++87MNbAEGbtCrRK7Wo/DEBFEBzbOHe1OMKqODkw0a9EIFLilowuJDzF7JR9zzAmLSvEFnDiy5p166qnf/e53s4/pBNtYtHSU1Sj2gQa36QiPWjm8pBm1wi911pG1p+BkO7Vap1PbVaugVgVIjXx12GGHgfrOO+/k2YZaHX/88aPTbyThTqcHmKLrdMp7H59Yd2bfZ/Wc2bGriCC607SIDwtGYJeLLrpowVVE8YFAFxH4wz/8Q81KUhOZx0k6kuSzzpp+RJsKOvDQQw+9733vyyX4t//235555pllVr5cxgof0an7779/73VlokL2RrJ45c4LL7xgAXPMVSBq9fhzz706VKsR1KhLNpCKwoo/wfPhhx8e+XL7qVAXTz311MEHH/xjP/Zjua+KP255/vkXOLOvnsdVBgvVynkEYsgAiZNmEQiNqlk8o7R+IIB/2MLWSMgo5Zxyyinf+c53RntOs2mHTqkUEdyyZctyGVUKZ0qv2rhxI0EFD8AGRgGZdo60JjoV1CpBxKh69913X3HFFXY82Apw1FFHXXLJJTn0eOk5XLzrrrsee+wxycrYBKU/QKSx9YxbCVer6swOh1wgBgQrh3B8DASqIbBbge2jWomRKxDoPgLW/uOOO449pZGmPvjgg5xdRot617ve9eoWt7Xz5br22mufffZZbuMI1mhLWj6n8LE/IlXiyLNSMZ6WCcWukagVrzQniVql85Ybv/Tq4GYifepTn/q7v/u7dT+op4RvPffcc6c1jEkatTLiDzzwgCyEK55tZai8KAz77Ih3v+W555gFs4/T6hredY8BRL63vOUtCJadv+mpIIlYw+ts9KgdBJZ5822nh1FLIJBDwFOEKMwYj0WrzPKTyz7+kUb10Y9+NLuOUmA22cdFn+gC3xoEEa+68cYbGYlOOukkC22bnlXjfUzrE5JHP4Mz0W6//fYbTzZ+ZWVVK2bTb3zjG5///OfHzXzjKOWumMwOFwW+TzZBwlXJB4btnm3rVtcn19ZeWNWXNlJVc8JV8mrP4RwfA4FiBIJRFeMT3w4KAfdNXCrpsiKDW+/Twl+zk4cccshoCZSD1jb6ZfXyT7emXnDBBcxGvJivu+46PAa1YtlcrmqVEOZolZ7+iSglja07Uatt2169Hnsp6+/wTjZv3vzNb34zR6dKGk9H0UCmHa7MaxPc/hCw/g7sF9fWnnr22V1femnVIrMDwC0ivfrGeSJVEUEUFHGURCAYVUmgIlm/EUjPoKNRPfEeJpVGGFXOlYpL07JIDL0KmTth/UCt7BtHrVw58cQTtQrrWuIoJqhhzhqonVSrkr5f26nVOp1iEHxi2zbi2xJ7sbiqeZofe+yxf//3f0+saqQWomDSBTFsRti0T7DMHNhNQLUdNsEnXnxx2zPPYMGNNKlfhWTsCrVyoFb++k31qxfR2jYRCEbVJtpR1xIQSLfFJOnnqmcma8qF/OSTT86c09GpMutWrjGNf9QGpkAHfYiTDWqF+R1zzDECHzRe11wFJs8qTj+WeY00BCWbhFolOjVIaoXiMx/ffvvt9913H30xQWr2zoXtxMTrJsHtNkFbCOfdJ7jfbrutrdOpZwlXTz994FK3lE7sXQsXjYIjaduJVOFV4c/eAvK9qyI803s3ZNHgsgi4CZ533nkf+MAHpm2/IAaU0ZO2bt3KZdhf+6rYCp3Y2W5l4iGEFiQZgOHv05/+dGoZ/xX1doFUpfbwFsel3vrWt1Ip7CO76aabLN68rJYlpGXjpwH0M9EfqFbw1KQUuiJLMO0EtdrTSr/uxk61SufTEvfoOnuoOUamoi+mZnOdpi822AV01ow1OW2nMBlIhhhtmfI9fL9qhzq43Zn96adX0JkdUKTW5M9O8ObV7ibjIppVBsNIM3gEQqMa/BCvYgfd5tzvJupSo3BYwlGiJJngSZYZqztFx0qPbDlsCcSlkve6v9lJVsif/dmffehDH/Jx1PDnJS1WxPZdqbJWTTvBqM4+++yzzjqLCkILwQs5WnGiL8ljphVb/3oaAu0hogAZgCWtsZlqpQ2P998gCIcUicPevUymqg/vxBK2WwTX9wqk2KF0rDe84Q0ld1RkzuxPra09v8LO7CFcTZxaq3wxGNUqj/4w+45IFXMpDunIE8Zj0SKNeExHnjK2lJ1Ax3mBkGP5zyx9EhOB0kfEpYN0KhtsfT9y/UAfUavrr78+NZ5ct/RmJ2rFGmvPmnZyYy9JrXRhGAbBww8/HKliDzVLdSpJINnYLeIkswl6qBCuFvgeD8gwZera7l016szutY/rH8vkHVKa9AjnKc7Gl+RxFa++GdL4lu9LMKryWEXKriOASLmpzVyESFOjtEmvCmhTQZ/FYLQCXX311cIwomUYQErM6pfKL8jbha/gwB7qsJRytBJ5AX3BC3k1Lb39GbVKe994bZekVqOqFYPgfjsMVV0AvEwbdHzDhg2iUomDv2iZarw9mXBlPrA/Ilv88MaTjV8ZdWZ/8sUXbaNdTY8ryLj/pCe68LganyeDvxKMavBDvBIdRAs8Hc7kUgmLjPo0As3/+B//g62E1uXhPhVI6Vk6I5mraygUz3pcCi/kW3PDDTekaN0lScxcdc2bOLUBtvx+DNyhhx6KCJYsJKNT/aJW9KHTTjuNTMUATe8s2dlmk2UhGNI+wWQTTFbCmRXtu9tu+647sD+3tvbkqjqzQyknXCVn9tgqOHP+9DpBMKpeD180fvttKwsx1TIc1jw1CiPk76icYNVvuSWNVIevoIaJWqEvllJ/uUVb1HmyN1JFnUJSqAW7AdA+nBXtKK8s/ohaPf/8ft7E0u2DTEVqJVPde++9S29pZhNE7+iFfN3YBEvOcJNmjx17Ax/bto1wdXC5KK9L73XjDcjYVSZcpZPGK4oCl4tAMKrl4h+1V0dgiVwqNZoflZNRLuUjBaUL/KM6rGtrqBW+4uCYf88997AGWk2pJnaiLd2HXb8StbI9ELVCqjgele9sRqee6Da14pt/6qmnciYr37UWUmY2QbFDUVtUWwCtkvVujyi2Li4+ve7M/uqVdLeCVUatnCdSFRFES06hXiQLRtWLYYpG7oRAuisVu5/vlGExH5JGlSublaq8dpLL27WP+BM3GqsmH3aSlVcHuvLmN7+5Cz7ssErUSsNsLCCloIDlAew4tSJTobBkKlO9fKdaS5lRK+BzwvMUYZ9gSZvg3lq5w5n96eee20Vk9pVnV6hVYlfhz97aHF5QRcGoFgRsFLsQBDrCpVLfkkaV6yefpMEwqtQ1PmFUN15Wou+ICsEfn2rFPigwexd82HGp1E6ru1AXPpa0SaVc3aRWMOfKRqZq1ucvN1frfxy1CaZXCpbfJ8iZfb8d1uQnX3pp27PPivRav0l9LMFtzcEZVOMzahURRPs4lLtcdNFFfWx3tHnVEHDHKRNiqk1Y3v/+949XZzn/8Ic/jGqMfzWYK3gVZeKOO+5AYohY1v60Na8jHbRJjUFQzFVHhSZ1xCDImiwq1caNG2lvhM8e7XVIwW/9YMvbBLNh2uZFQ1u3Hjjon0/W2eIT1EqCZBMMf/ZirLrzbTCq7oxFtGQqAgx8S7fx5RpHoPp3/+7f5S7Scs4///z3vve9JV8GnMveyEfvhGNM2X/H038jZU4rBLXiUnPbbbcJnsSl3Qax8hvxppXZ4HXUigcYXiX4wlzFYjOOp154IXNpnyt7U4nByzkdczXZmNWOOOIIzHXpMcPK9y5RW1NCWPYK7JYzO+HqoFV1Zh/FOYSrUTS6fB6MqsujE21b6yCXSqPyjW984yMf+UhuhCx4P/MzP/Oe97ynC8seF+C1bdv2Lh1rINeX8h8T//DulO9///tcmjhaIZSdMn1STRK1IqfN7JfuoDKpU3IhBEtX4KDq+N73voe/wvb444/vnbueTYIIFl41l7tbGqwVd2bPzVjsKoSrHCbd+RiMqjtjES3ZCYG5QkztlLOVDxMZFe+iSy655Nxzz+2UVPPkCy/su3tLHpNkBRGtqFYQEHmB83inPIFQK3Kadd1muonTJONSGJXtbF7jiIR1Z/Om5tmAiVrxZoNtcmXrwgbMiWBOvFjHJuhlh0+ttjP7KKSZcJVORr+K82UhEIxqWchHvVMR6DiXSu2+cv3I9cF+csGxTj/99E7RiNTINq2BaqRJ8LKy8HMsO/roo7vmWGZdR/5Qq+w9wUmUyv4KWZ6YCu7VHUaVzbdErYiCbILamchrp3h81tRpJyQr3ni0TO8aqmATXHFn9hyqiVRFIIYcLO1/DEbVPuZR41QEeLMuK1zn1DZN+eJP//RPr7nmmtyXVt9LL73UtrgWGBVCUG0F9XbbXVqxBiZwxJjwShMEBVFGX5ZuQcsNmWjsVB871GxbS3QKWdHaDNtuMqqsF9psJuBVpEEX3/jGNxJKO0gBswZPPMG/vbMc1BVsgpzZn9y6dWX3CebwRK0cqJW/4c+eA6eFjy3ZAlroSVTRawRwKS5TdvP1pRcTg1ExxLQWUMA6ig1Y+HGUbPkvg972t9uuO1c9wfN68dZACoSDG9CmTZu++93vkiUwTqv+XG0u069qaVIUJaQKI9FIizpGNdo2F7tMUFJsi5NOOgmq2BVvNlGsbHV805vehCOaG73YJGg+OIwg8q3xfMXK7xP0TqKMTj32/PPbnnlmlZ3Z3Ugdnl6AmUgVXoVgVft1RK55EQiNal7EIn3DCPj9dy0sQpke/sZv/MY4qWLe+uAHPzhXFO8ydU1Mg1Fx9ElfcYS3dlbbYPj82trWtvYGai03JvvXOFpZ6ZEABLRTPuxPPf30Hjv78rPkplCiE0ehgxeT0oYgsgkSfoS3wGhNjxZ00wbRYBM0w01s+FewCXJm1/eD99n++BDHdtlqXbKKCKKLngyhUS0a4Sh/KgI95VKpP+N0ynULwKi8MbXnTXwxup1QZEtP9siK2nnVpLcLl6zEW+5SqIV2rIGWdpYphwazVV133XVUIrFDtbkLS/7uuwk82e8DVXXQeBz0NtTKDsGHHnqIQe2oo46C/+jM6WxXCWxZ2/AAmy5Rq8MOOyy7WHwiMvve63RquzP7tm0m2yFLeud0cTvb+Xa7bBXCVStYh0bVCsxRyRgCnQ2LMNbSCRcmBqOSzqL1oQ99SFimCXkWcIlG5Tl+vGBLpoUTu3KMfzvzSpt7A9nU7Kdj6+HGzpnpyCOPnIsOzuzLvAmw0hzh6J1GNbHLqBVfJeqgvQJ0QfEXuqYOTmx27qL9BPPaBEdLePzll1985pnXRPjQHaAQriIQww4wmvk/NKpmcIxSyiPQay6VujlRoPKVdas8DotLmSQraw9ywGI1L0dJoRbasQYy+TlOOeUUFsDNmzfjVV5mIqIVHrMU7yUms8WNyxJLpv8h+kB2mBjcrW644QYTI8VfqMa82++OLjjUa554ltAp0kt5m+D+u+yytk6nPIU8hVqt6vsEs4GDnruxj5lNMDyuMnCqnYRGVQ23yFUFgeR77mdcJXOX8kwMRqWBjFm/+Zu/2RoV4ClidZwJDF5lyUyq1czE4wnasQZm9VoprfdCLuGFln/OYW3GW2JdwvCyxjgZhkY12qPs3C4BUPNpg3B6AXZrUzdrQ/0T2tu8NsHRSh9//vnnRGZf94sfvb6y54ldJe1qZUGo3PFgVJWhi4xzINCLEFPl+zMxGJXsXOz/9b/+16098eMc09SyiX1J1kDKRM6wNTHx+MV29gameql9qBXfagdSldb7as0e70jBlXFGxc3LUZBlAF8lanX77bdjkwyCtt3h373rF5ugZwyN50BWofFbRWEIZ/YR4DLhKp2MfBOnUxEIRjUVmviiEQQoUmV3Bq4AACAASURBVH0JMVW+vxODUcnuFTQ///M/nxM5yhc7b8p5GVUqP0lW8zqwZ21jDfTewFe38t5AlaJWusmHnWplz9oxxxyDEfK8ztrT+IlICqNlrgKjyvqr72JxUa1wLIIrfQ61WijaWdUNntgnyDnPPNd+AWbnLTk5s0NAjLJ58w41fQhXJUd2J327ZJ5IFgiUQWCQXCp1fJoyJIJlmxvWEjea6JxeMEAICiXGwWJYwYHd3sBEp9qxBsLTYTMgmYoCgVrZ+SUigMBRi9BResceCga6wld4tv2AjkSt7Bgw1QnMKcxpCxphhTaPZxnfJ+iKV02Pp5x4Zde1NW/ITi/JfuLll18IZ/a1NTdzArwDtUrsKgIxTJw8wagmwhIXayGQfn7J57FWQV3NbK/fxKZxA295SbYEzsuospajVkiVw0pZwYG95UiheBW56G1ve9tpp53mbs6xmg5x8sknu9igmbXl4cvGomsn49TKjgF6zxFHHEEjbE2FrQ/L9sihO2KHVrAJ7rfDmZ1uyV0rnNnd2x0RQXTazAyr3zRk4noVBPzYPMcMmEslUN7//vdPROd3fud33GvaXJXRqSzO58Qmlb+YFK+kWpXPlaVs2RpoU57ICyQrwZaQLSHCuVvVX+kVhahlnXKyUla/0Y7nzqlWyDfAN27cmMVfQLxyybr/0e8FBafRulmV3yc42q/HX3hBZPbXhTP7DlCoVk4jEAMQglHtmBTxfz0EVoRLAWlaMCqry+///u8LSdUmo6rmSlU81KgVXlXZgb0da+BoF3Age9a84kabkw87YjSaoPy5jEjqaAwFRG3UilS+qKGm5NmGXaFWQlvZG4jLEjgblAnbxC3tE5zLJjjavGfWI7O/LiKzj4CS2QRXMxBDMKqRuRCnVREgSg1el8qwsZD8wR/8QfYxO7H0/u7v/u7BBx+cXWnn5OGHH15ERUmyQhPRlGrlt7k3MLXQiw5TsFDaA2cgUsq8LceG0YVRRqX73OPmLWcV0kMJ+xQaCrvCRIW28hPoY/wFg1Vzn6AgZluff/6ZrVsPbCu6by8mGHa1asJVMKpezMzuNnKluFQahmnBqHCp3/qt37K9qOXR4jtMqVpcpUmyIkJU0yFatgbCwUrP0Yo10A39xBNPTBvWSuIzzqiUVt6puWQtA0uWUSsPGwCkWjGVolZtirVNQcom6CmCTRCNrmYTfGFt7flnn92rh+EnmsJwvJxMuPLDdD6eYDBXwjN9MEPZdkcGFmKqPHzTNvolUad8OX1JWdOBveW9gVC1kK+/1O7YzBrohDWQh/K8pJCFy3B7PU4fHYZam2AAx5+EY7Ulk8Jn1RR/gdOVWwRnABbkykbY1rqQVZSeiIhtruiIGAquzEWpram777mnKddTuS6DosGT5BPCxVaZiV0NNYJoMKoGp82qFOXncdlll/m7Kh3euZ/TNvql92PsnHZQn1ArZjUrJV5SwYG95b2BoLek0Usc3tZ333332R5o7U+OVgU+7Jb/pPn5yxiEUdFgBjWQC+sMeM0N5j8HMsqHXYBWc+boo49O0S48dSys8uYLXt8muK9ymZJ5XBHeSsYORcXSbrjm29T/EjN2hVo5UCt/Idb/nm3vQTCqYYxjS73wYxheuM55sZumUXmWnVcCmbfqiemtUkwVbvcTv238Ip6xPZjVM88ka2AFB/b91l/z0qY1EP8TwsqBDlodb7rpJs7UDIIaPy6foAJAs5HQjf7BBx985zvfuZRhbXzgWi4QsIiUI1Er7AqYBx10EP82sBcw2pbbWaa69dcJbn+fIJ9FIRhM/mKbYJK4ypS8ymmsJo5EPROpwqv67s8eflSrPKXn6Lupz2UqybZzZBti0t/4jd+YSKoETH/f+97X/lM4w8SXvvQl8sBJJ52EKLQMuf4iHHUc2J9cW7O/zm6x1lqOLVkXvXTFDsHDDz/8yCOPtMan2sHI25rpiqbFcHPuuediY601bNgVoVb0Kp7sSK2JmsTC/ppTqVZ+evYJmkKjA/f9O+444g1vaP+XONqG/p6jVhm76qNwFYyqv3OvpZbjUqsQYmommhbaxJYuvfTSiYk/+MEPWoDHNY+JiZu9SDfy5g3vaSEDkF48Ure/UCXJCrtyVOtd+3sDWQMfeOABW9WsjoyDVkfUyjlBRXfe8Y53tA9jNej6lQu1wmiBzJPdbPEmQfyjv15HTMO0TyZCr0jCyBk6GT37NSLdbG1GrXokXAWj6uZc6kSrVpNL0SewIgdxwoLqRu8u6dzfdPzar/3aLbfcMj5Cv/qrv3rGGWdIM/5Va1eoLx7s3NO1HLWqED6gflNxEQtkpvrMW2Cb1sCsbQb9nnvugZvFfq999jnxTW8SHzwR6CxNnCwCAaQ2Ic9ZDallL+uvKOi3/+gPf3jwQQe5cy4Cq5UtE7XS9+TM3nHhKhjVys7SGR0ffFgE5AMEmIen5MSc/HW4mJjTNIC++MUv/uf//J/HvxWMitfIchlV1iqSFX5ABmAKXJZkBVirY2XJSqTQ7c7sLR7oFLXP0l65zS02dmhVsbGiVjYJwt9Lmk3a9BjTo356DPvhli2H/diPhclvcaPWceEqGNXihr6vJQ+MS2FOWA6piTOse7S/jjLMadr4PfTQQ/ylct8qsP2A6bk2jH/kQstthW2FWGVz+7IkK7CTrCpLPl76sf+6M/t4B+PK8BBI1OrWW29lZ2cQ5APux1t58rSJj0aS3MTacIdps96VrSuxq6RddQSEYFQdGYhONCP5ng9Jsk57tos1pwrQ//qv//p3vvOd0Yy22n34wx+2lWn0YkfOSS+PPvooR2w7lUhWmtr+Hd9ik7TAflkDOzKCq9kMjMr+AI8EvJREhBJBNz0XdRMNNxkPMLyphnT/7CbU463KhKt0Mp6gtStBpVuDutMVDTVcp3vcIoSZk08+Oceo6PydNRUxRmCWP/ETPwENdsDrr7/eysR5dhHITJvlWcwFq2MyBc4LVxYp1N7A7TGC4hg6AmaI+5KDzGwDgY2ZjzzyCL6S9mYmmbk7GGBUKKBfVneatDotMStsn3Lo8nKFq9CoVmfWTe6puTjgEFPEGK8untzzGlfHDX+HHXbYb//2b/fCf8L6ZDubjYGbNm1CDZciWcGeaoVa1YncE9bAGlO4l1nxcoycauUVQ8TO9FQwLzVfUM/D5LcgYCsXi1oxCIosU7mEChlDo6oA2kCy4FKDDzGFPfBssHI3O2ZcJU455ZRRmQovcUtttpYFlYZlCkZ69tlnW5xSuEv2FMGgK9vjqrUzrY5Gx4qYVKt5y0nOVdu8pPa5514d2sC88PUwvZ+YH9rb3va2U089NVErwVrJQmmT4BL1IQKV2FR+Qe3b03s4jC012QKHVLVU2Y5qglHtQGKV/k8aKTq1Cp0WLaZxRgW3nOGP/6y7ar/wpKjhhR70bQzkZcWk4iNHkDZXhcwamCQra9K8xFTwq1eu06mwBvZr+tVpbUatTjvtNNTq7rvv9njDX9CDgQmMWrX8Y1SdZrgJ1OlU5G0cgfZDLQSjanwQO13gSnGpNBJUEEfjpOrd7373Rz/60WywOSrNSwWyvMs9sfzQqLQ/veP2G9/4ho/CQCxRsuIiU6H2zLkqrIHLnVFt1s5HEIXyeGPLRQoqhlrxZ0KtCLHmtgQttAejSkyuhbqiivIIhEZVHqtIOR8CK8ilMoAWwahyhj+373bu3Vmnmj3ReMuPF4Okl9/xP7A9kG3FOtEmU8wkK0/8Na2BS4kU2uygRGnlEcBpTBiBrBwY1b333ota2YqBWh144IHm9uKmcRKolN+muFsemZVN6SbWft9Do2of8yXUOLAQU/MiaHn2gpF5c81MP2r4a3Pf3MyG1UlAH4LVhRdeKCyQGKHXXXedjetLkawshw4LFX2xggN77A2sMw16nRe1QqQciVp5y5DHA6+IIcQuwtUJo/Jjwdt6DVo0vhEEglE1AmN3C1lxLpUGZkH+6byOMsOfSFRurN2dB3O2jGRl7aFRveUtb/mHf/iHG264ASvdsGFDy5KVVtd3YA9r4JyDP5zko9TKS5qFur3//vuxczqWR6AG4y/4sahrOMANoiftO1GBLRjVIObOpE6I4yIsAmPfpC9X7hpC0Lgr1SGHHJJwdDMd5P00WVKEn+BZhdnYGMjLirnzqKOOahzM4hmZWQOTZGUBq2DESXsDwxpYDPUgv/XzpCGdc845vNf5AJjJbIIu2iRYP5IcJdUvpYKMOkiou9OpYFTdGYt+twSLGnCIqWpj4zZaLWNBLtzip37qp7zmb/BPqBxEHF69bGOgfVU333yzlYl8ZRWpwGwKIJ35VSZZZdRqZpZcgkVYA4mgDm3rRUCyHCAr9ZH4Sp1ir/dSJqY61Mpk5mXldTcmc4XnBFzKvcW7CFcKxl50tn23dLCERtWLuVG2kcGlpiFlwavgny4LVwx53TGtlwJj8sYYrSIxKuuom/KQrH6jfczOdRCP4bpO/vRczsuK7ycvKzGsKyxFWbEVToyFw9DUcWCvbw1EK0UhssXMvgSMs0JHIsuyEEh2bTsEPRiYSKKGchl0EbVi2jafS/6cJfPbF8/d76JklmV1eaXqXYpbOoTjLjCQaYZLDT5cZ82hKghMlTEna6TbIrqwXXNYf8Vyukv6a/H+7Gc/+6EPfSg1A8dyMIf5iGc06JNRs5stZLfwIJHcqniSWYq+/e1v677FyVO+r1poQFYFXmWwHEmyqmZ5ySKFPv3MMwfstVdW+LQTk4S8YT4wJFWrcVrJcb19BMxY/MnspVqhVtzYUSs/bb5WiLKviqc0Sn3bbbfxOJQlGFX7wzetxqUIVBoTjGraiPTmOi7lfUYrEq6zzqgkkpT9VZR1kcDgSETKlYw/Oc+RJIs33wvcyz30qaee2rJ++N0K62dznPtpnbb1MS+sCDPsgB7ruf3yWoAP37IjjjjCU3vLPTI6KI7R4RxjFazg1saveNdXvMKU2Lrrrge8gm0wf6jCt6rwi2PndeRTxOc+I2A+m7eJWhnrjRs3Cnvrx85rMMVfGJchZcHm/fZtTCkmXn0GppdtD0bVy2FbbqODS82FPy7lfavjWdwKy9wNbRTyOj8aFaaFUbEApr9WWfu0V5BRJSQtKvQhT/Pp3SC8rLwYxEWhrZYuWSE92jY+4hOvGEerI5XCavrQenCjZ7wUcr/9jKxlFZFCnbngOCZmj4uDQcDsRZ6Yth1Gn0XPSzD92D0qpPgL2bOWlN4weO6555afZoNBqeMdWYpbOkxCo+r4xJjavAiLMBWaxXzxgx/8QMHiCIwXj5DFLRUsQOBN4mBgRUBh5dzj+7Ikq8zLaqaehEXhUhhVIsrIt6V0u3VvPXw8E6djfNzjyuARwJm4TjoStSJcPfjgg7g130FTYpddd3XuyUGywUPRrw6GRtWv8Vpma4NLFaOf1kK2PGukpZGoYEWvf8uz6E6sd//992f5GrcITEy8IhdhcsYZZ/CyspeKlxUbHCcVK1AZLbBZiMwBR0atplkDNcxXiJdRJlax6LLkemdcs42J0vqLQEatdMFqnTYJurdccMEF7c/q/sLYTsuX5Zaud6FRtTPEzdSSfM8Z+5opboiliDa09emnn3nqKes3mQTRIZNwrKnfV/as8ULcZxU+UwIZz7gKVxBZG6nEXLACsZts3ryZt69n+qVIVvQnBxXNeI27kxtHjIo1x7cYORPP1772NXT89NNPX4WRij5OREBsW2a+8a/cgT0wOJB1d5j6T2vjVcSVOggsy+SnzcGo6gxce3lZ9CNc5zS4aUc2mCXZnUfx/vvs45/EV111ldenuCfaDj0tb8nrDECO8cQZo4q76jg46QpksCi+JrQfRhPe6ygLmrUUWwkJapoDu3Y6UC78mMbmF6ephx12mACn07oW13uBgPlmZCs09Zprrvm5n/u5goxYuEe4Vne3FrQmvtqBQDCqHUjE/2MIeB6KcJ05VF5Y50+Zy3F2kkv22GOPecrkGWMdrennxIaIDeTK99GdmuLiCOV/HJzcFSjRqLik4DRiLtx44402CSJb0yxxuewNfjQfRiUrFCqbHsbRR61KXsmf//znf+mXfmm//fZrsPYoqk0EjDVx9OGHH0boCZAmIVWJGJn+aomL9GzXx1vlDQGCqjvGv8quTNgUmn0XJ0tCYFlOVLobGtWSxrxEtbhUMvOVSDv8JISojDmVmbUeTO15tqvfLi3yUrZkVkOKAWiiRqW05KdVrdgVzGUlowCJ90Gmsovq+uuvNzQp/Ho1IaEOhkmyyrysErXyVyMtsQ5RTD/5yU8GqaoD8nLzosjW1//zf/4Pj3I/YSNrmqXNeqi8u4TfL/vdWWedZb9qrqk2o1x55ZWXX3557nru4xNra8G4c5gs8eMSBSq9LrM2LRGcFa0al4oQUyWFqIlTxK3T4Y7pnfNWTe4O2YbnielnXqRR0brGk7k7e8ZVUftsYLwx/bpiJUOq0sZAxOXee+/1bhCrWvuSFdy2u69v28Z9Su0YFS5lQNklRYS3Ev/v//2/P/jBD/YL3mhthgDFkcp4zz33uCdkF7MTA23c/YrPPPNMczK7TqByTuTOrkw7qetSMK3cuF4JgSUKVNobJuBKg7awTEmX+o//8T9SpxZWSUcL5pGARWUHsp+JUtnFuU44wZAf3EY9ic6VcTyxSMrjF11JRiK344nfxsWZCGAwHN28wvbiiy+WmCmQamXU6g/ZzKrHE5gqFE0b/R555BEBIFArv0c7FrXnr//6r8fTN3hFfyeu9w1WsZpFIUzolHcbTPuRQp4WhT/ZvkeKzlDiROXcVza4ZBcnnlRx0ZpYUFxsAoHQqJpAsf9lrKYulXMqb2oY3UbZkjAq2pIHUAKV+6aLlcuf9qjKiOC51t/KJUdGCCCmdg+IsCAOBX8XsardFn0UwmApklVi4VrihI2SW/23vvUtJ41v/UtEykJuCtHnGKljPjSOgCl0+OGH+8t5DuDj5bvIS9JGFkPgppE8BDIilbypxnONXnl6bS3ilY0CssTzYFRLBL8rVa9OiKk6trzyo5XIE/HDiVUKr2LHKZ99POU0/cBCmNxuxrPElQoIwNMh/LqXgdAM8Bjw8rLiO1yhtJpZ8DzLMLojZroHHoG1FNgIqUpEyrTE9dkWHSaqjzUbHNknIuC3j5qLNEt3nJjARb4BKNTVV1/9sz/7s3hVMvmlxBm1mpbX9SXMzoLWrPZXy7X6xbP1kmffKnCpeZ3KmxoSd0YyQ9rVZdGqU+zE5x6rYLL6+Vun8MibQwCebDQ0KtusEGKS1aZNm3hZWRdr+sPlKirzUWOQPHOJ7U/kQIPOx7FMxvE0iUhx2NILpijqpsIVOJ4yrjSLwOtf/3ojaBwLaCuDL6Mzp6vzzz9/lEUlw1/xjr9mWxulVUZgibE9U5uDUVUeu7oZBxxiihCFYmQso6Y7VGWgCRtpDUtqf+Wly/OrciY2wz3a2h+MaiI49S9iHla4s88+GzPmvf7Vr37VuuiNgS1LVok6mwMOa60IVfMGqaJx6kKaLXx6UoE5fEyz3JX42AgC0KZ0gt10KmBU6hJvhTpF2x5lVK6XMfw9KxBDI82NQvqMQDCqJYweC8LAQkwxV3jQziZTdrIEcEeq5A9hlXIPdVgLKzMqdh8bhUYK/tEpOpWUhh9dirOmETCOQPZOGDIVrzi7BO677z68imNT+5KVLZ9f+cpX+NGXCVKViBTCrZ22DU4kUk2jFeVNQID19tBDD0XEp7lSpTzuEjYlXHHFFXSp0VJyBGv0q+w86FQGxRJPJhoT2mxPR9a+Nru8zLqGxKUW5FTe4PCQBKxh1mBlolaVlSSMaqIflfuvOzUvjcolN9jZwRdlKA0owx9PplNPPZWX1de//nWkCrXCt9rpvhFXEVL1mc98poBUmS0O08bE4Onsr6OdFkYtExHwO6Vu0jtzVGk8sVETDjR3PQx/OUA6+zEYVWeHpuGG4VJ9D9fZjlN5s7iT+oWkolFhVJX1DNknBqPSVAsng0KzbY7SihFArSyQiBTXFl6ot912myWQJzvRqPIQF9SoOkcuQSJVl1566eh1fMt8MFs0w8Sbl0iF1W8UzGbPjSBXKjdhM4f5tbjwiQNBpprpSrVtbe2VxUXHtwtGYLlu6ToXGtWCR3htzc+4v+E6RcTLHq77OFcsbJ4vSf1pR3S1wWYImJaRl3GKBjktQVxfEALWSGPK5eWd73ynvXgWvBtuuIFlh3viIiSriaSK+e/CCy8cJVLao1USj6dfEA5RbEkEcCmG1+9+97szGdXEArlSFb/jT66gUxOha+3i0t3S9bSPq2RrA1S3oj5yqZwQldGpulgsKT+bi1BSNcP8eAndtOZ7nHWnjuVzGj4tXCcF2ci5YcMGoTgfeugh27XQXAEXBLhahGQ12iMeXVxzPC+pK7nT1ZkJE6WR0erivA4CBkgABbY//DtZb+cqLQx/c8G1lMRLF6j0OhjVooa+L2ERuulU3tSoHHLIIddddx2NKm1Zr1YsU860jASJmpGuppUc1+dCAJXhZZV24RluXla33norxejoo4+uaZYtJkkWWuakcJOaa7CWktg4esRlGvZaoWrktYzhzxNprKlLGV+VBqNaFvKLrbf7XKr7TuVNjZD4m8LMcG3BqCpvuS/wdlyQ705T3V+1chL7oUbYFeilge6wN910E58nkpWRQrmqAZIIk32duFquhHmdpXLZ42NrCBgpDBv99X7uyoxqZmsrzrCZ5UaCEggU3KhL5G4mSUyAZnBMpSR/KU9CTRa6gLKWFSBqAV2ZXCTpCH+yL+u0DRs++pGPUCmKlYbJpaxfdfMtsBHYaxb6RAF6S/wKf2Ll+amf+ik0iPf6d77zHavpvJJVNm2coOYFM6F+T6st8/XrXZ0SWIG5ARCVDWWFXtOoyshUFUqOLI0gEBpVIzB2opABh+vsBL6zGoFCWUHdK9ORJd93n31sCqujJBUEo1ILt4xgVBna3TzBpz3qCGclRigTMFbE44rnU0nJKiNVyuGC080+RqvKIEBlFH3DwbGyGjkuw6jC8FdmLBpP0wW3dJ0KjaruyFKkBhausy4ibeVPPkwZkZpYLbrz7ne/m17lZjoxwcyLGFXBzVeEm5IL88yKIsFCETBb2P7Qay93sy7a82Uf6JFHHlnTy2qhbY7Cm0UAObbdz1MQVypuABUKN3Nm5oo1dSZEi0jQBZOffsXoVx9cXKrvIaaqd35JOZM5LydEjbcFB+IyzGGCDuzNEt4QJ+N4sjJX+GAVbBVE1DINo0xpkWa5CGDYFtSzzjoLUb777ru9MdD4nnDCCXYLFjDjdoa4YAPEckEbTO1G385cu1XKEKOJvbZxeOL13EUK2H5jMcxyaeJjswgEo2oWz1ZLw6X6G2KqVaRqV4YJZSoUIlVQnodOwTw3btzorodIiTrD2GekrJfVfNLRMuuuF54UVMpTp53ltqAN8VUFBEyqN64fJKu77rrrlltuKZas0igXqJUV2pDLstDCc3Wt7EfWXoyK4W88MHoZTDynCUx17rnnFifeO+hUMUAL+LYLTlS6FRrVfGMbXGo+vCqlTkKUrDZtFSgHEnisR6Sefvrpm2++2ZYuLModkyXuqKOOsgR6JEXClFBBoEp0yhtsbMKf1okU7kgDKpsUp5Uc11tDwN4CsazQbq9utDFQvTYJkqxMntSG7GTRTcpR8xR+3ezVgNxXi27JgMsHph1/bgvuCdW2AlxzzTUzGVVFPXzAuC+4ax0RqPQyGFXZoQ4uVRap+dMlxkNJmmnOy5WNzXg0EdcRkXJYflIJCkyMKp3kcs38yBLEBxlRM+gXXXQRYnfllVdOzPXNb36TTZA7zoEHHrjoeJITGxAXG0HAEHOxOv7447ds2cIayMvVprAjjjjCdFJ+IjT+LlRG8jyQnh9MP2H6+fpYJyz/XrBjduW6mZq00PbkahzGRwh74hK3zE2jGqMqafjzMtF9hgFZH3rREYEKVMGoSs2X7oeYKtWNLiXCdSxXGQeq1jSFeJRXCAOfp08nNRUFS5T1jOuVu61XmmgV/cnbJ8455xzPpjlexSbozSeCSR533HF0DumDV1Ubx47kMp2MoAO7IlkJuKBhBrdg6cXAmmo8RoXEc/7btGnT9773vQceeEDcBxIa8fWCCy7wwKCiRKScBJeqDLsnN0Ps5uN5rEIhJYOnB52qgG3lLN3RqHaz7b9yN1YhIy5lK59dQqvQ2UX30YplYaAHuKM5sc0qkarK9SoQAUKq8B7n2XpTrUALJ2mKMxbnZcdoIe7C3pOKVzkZdWtFqix7fDL8pN1qrXOJI2rMaPY47xcC/Je5VfGzoj7iTCy/BloQI9PD+I72xcTj5z56pcJ5Esb+8i//ktnx61//OqcuQoh5lSYkfu+BAV9XdRCpCvCOZ0mAQ3j8qzJX/NJnGv7KlBNpmkLgM5/5TOXRbKoNqZyd7g7NFt330iLEVP0RRCwSw8CcHPULHC8BLfNkP359risWKgqBpUsu5p5peZlgkl5FrCJZpWT4nLWWmYaPM15F0hD6iFmBxbC/dkBo6JSuIb546moSRL1GoD1NHXvssffee69YVjBp0GfOvGXaQ9A5O4vmgMYl1SSjTeabldvBUGWyZdenzc+4XgYBOKOnIGUqKlAfC4oqafjD1/YqKCW+ag6BsPo1h+UCSrIWRoipyrimdUj2mX7llasYzagWNdZcbKxk6BRyxsgyWvjEc+vcv/pX/wq1+shHPpLpVciHhyQrrnJEkuTdjFfZVeTGnVM1JpbZnYuWeZBaM9i8Eq8SalwUHxf1BUdkV101goVF0auM5he+8IXNmzdbkuuMl1VcISYJIiWYe/ZsDe2s2EsuuYSzPL+umhM7KzBOMgQ8ISDKROjKknZJw1/QqQzzhZ50JLZn6mNoVDuNdXCpneAo/SGxqMUJUcUNqbzqyIhLMQHgQ8lrqriiXzC+HAAAIABJREFU0W/xqssvvxyjoldlvEqBiVfRM8Q66h2vsrfRYmOlIdQlrc7i4fnPcccddyTSyRBmKxyjGAKKLNakF6OQdvyc6c02hU984hMMzdVYMp5KlPqLv/gLPlITo3IkUQpZT1O68sTuOJLLbZ7p7dlA3BMPCQWh5oobiQ1zAyhOE9+uIALBqP5x0HGpCNdZ/geAQuFPmUWvfMbGU1Y2+VmuLI1JkrFYVmuYuype5faKVyEfqZBRXsXFmNno9NNPR1CSBa1aRS3kIrCRoHIP7tv9tEc2munjnXfeyXWaS77VSJQK31qc/HxMBmxMO3MltNDy1qoQxwjd+dSnPoWCl98DAShECiVlKWbdG29tWPfGMVnoFVOUXd509QhhKCvUlT1EFefl+l5LzywuPb5dR6A7bumaE4xqzWIQ4TrL/DaTECVlZf5RppZ504zaSkrmxXjk4vbkhEmrZK6CZDxdUKukV+V4lYqI0ijIySefzA7I1kDa6SbnYI1KlKigp+v86kc7+XVWeMwbb7wxma48+jONObBt9lPdRDu62dmCPhZ8pS/EuXe+851f/OIXYVVMqvB1WpRZgXATLBHWXMnANHNY90weUzH3bXxcHALmp18i/Lk/VqvFzDeyM2WqoFPV4J0rVzCqueBaYOLgUsXgolCZCuUeVJy4L98mOkU2wGwapIZkBoc7LB3CCprxKk/Adr/bI8ZwZlkVWwi16iCvwi/L+JDlRjkRrDPPPNP11GXBnHTfzCH+oVYcsJgIiVjmzzCoFRbFmGtMhSLTtRwg6aNYR5bbr33tayJr2Do6nsYEsEPwF3/xFxMnCzo1DtFCryRm7P5vWvptVqvLPJ/JqKqVHLnmQsCtda70C028uhpVhJiaOLEyIcq9xjExTaculteorFu8pnApLIfSsIheIFVpM2AueBX5B+Hgh+SZ2Fb8jFdxee4Cz4DhTHVqJlzYlTT+MnE60V93OgcRC7XiZN0gf53ZmIUm8JhBbjSLrr/+etwoq8v4cjkXUErf77//fqQKT82+TSe80H7lV37l8MMPz12Pjy0jwMDN8Gf7hR9gNUZrfMu0+fm1tVeUSRdpKiHQKbd0PVhFRhVcKjd1E4vqC4XKNb7k/mfrX9qIhzpUEGNylRZ/nMarxDQa51Vcc5bLq7QKho2z5yRfWauU/+Uvf/noo48uBq1f33JqPuOMM0QBZdojchCliHNYFKpEt/CDstz6iL7nVmvD7dt+dXaQrXUf8Ds1S8mN1Trot2yUZ8pUQaeqwVsyl2e2kinbSbZaET6FmLrssssiXKd7ui1a7ilkA9I3j2kLqifvduZcg7UwLY27p4yXjzFIyQuVWNJgPKHxikavgNfddjwoKG6XjIDpNSP0IcYj4DuWoldpjKaOtrzBc53lZaUKq1fHHfPn7bXx8pqajRs32rVnuyjB461vfSvtM/2UDCUnKpv7UK7Rkv3crMT4ZeMUdrSWOJ+JgJnpIKBakks+lY2XaVbPZFTjueJKgwjQqPzQGiywZlGrwqgSlzrvvPN4z9SErKfZsajEnNLaZhHtKYsaxR9Jyq1Yo986d6+0nPNlwSCTWSqXYNEfC3gVkuduzk5E3mCOxKuMUcu8ShumOQPVR8aKhTW639FpMInkq16/2O6U4GbCr5whj7uYh5PMDR+dMpRoFpnK9BttsF+fb1kGg1SNwtL+ucHyMOPOIHYrGbVaAzBmFo+ZeZX+j6/dnpk0EsyJQHeipaeGD59RuZV/4AMfMO9XlksZafd3OCQWNeeM7XRyW8wKGJWF3E2T5UWsqdakqYl4FfMqS2/Gq7De1ngVcNTlmNjmmheBj86KYIlXqYKZjMvRguqq2dQ62S3MjonioplJweJKBYGsCozKkwwCjVTZo5Bdj5P2EfD0gvFjvZ4rqtWOLtOojGlx9qBTxfjU+RajqpO98bxDZlQ4xMUXXyz6uZPGgetXgWl5s673q9kzWztxI5Vc1jBki3nFEr4UaWpiyzNe5UY8GuBRa5eiV2FUo48ZmpF8qhIN9TFpLRP7MvOi7PY2orMZ27Djzxo2M+MwEph4mJYF214E/CnrVGJUPqZNEgNzL8u62YsTd0Ws135MrlTOq7XZgIbhrxp09XMx+Xlmq19OgyUMk1GhUAx8pCnODQ2C1euiCAYDMPONDoHln9Vv9Ep2jhPYeLV0aSprz+gJXrVhwwb+VUgVzpd9lXgVvYqZjB1Q7+hVVuUF2QFpJ8pXu4qs7j46PK87ED7oIXmEvWranr5Q3XQwo1NqMRyrE2AdsPoOQ0al0Vkq0GtGK9Poxz0q+wm0fOLHZapjveaqGVut9pKGvxfD8FcN38JcXiveKScqjR0ao8q4FMepwrFYxS/xjLSIDqPz6X0vE/vCXV20yYlfdeQiXpXiglpW08qaGob4WoYzXuVjctCheWTspGYXLB7IE6qUZDyWKSzKw7orfjUWeI/djHSivfOzxoEsPHPV6HFfFcnel2VUvpKr8bOskN6dgAI5hna2YNsbkTEq3UnrQZCqZY2snxXej1SN6ohzNSYMf3PB1WzirjlR6d1wGFVwqZmT1f3dHWQwOsE0t3T3OPfHClRgJoCNJ8Bd8Cp2SUqGZmflI1J6N8qrkl5VmVcZepggmsgTqoS0WcvViDkde+yxhBMmudF4UeRMTMtfCcZfTZO1c+IJ9qCK3KZ0bJ5GxcjYFC+cWHWnLhossNMwSCDZgp1jVBrMMOrbRZMqLTEuRsFodgqlJTbGVEw6t6Dbni4qt6Sk4U+Qhh7E96uMwjIyds2JCgYDcWuIEFMl57Pb92C8qSwPE3tt8XCLxBL0dJQlTEzchYsTX2KjYTro6RmvEu7olltuOeWUUwT+sDUP0SnT7MSirBkPP/ywclAoqzv+5Dqb48wSVMRNzWphJUYOZqZPCSQmyXAeyjEnlU4br5Il9zEZPurVh+Q65BUyE7uAegprhFEtiFSp14Gje8bwozCdfJzYkhW8aIDcIjzSjOrE8+JQMtTn5Pj681YW6Xcg0KmXz+xoVP8ZFS7lrXzhe56NaPGJG6sd+8OAS18mdtaCwcb01a9+1c52kkC6aU5M2Z2LiIuDi2vuJTZaSFhKvMpf926BJSWjNExkOYgLCuVAwkgjsjh54xvfqJBf+IVfmKu/arn22mtR8LlYKfARiBydUq/WUt00b/yruVrVr8S4rxdL859FMc1DQzyx/UjVV77yFdto5oJ6YlHZRVAbiyTWst4y3SbrbdCpDCInUEJk7UI1Un4jo1+VP/er9KwybXCzcnbJzuKkCQS6Ftsz9anHVr8sXOfofqUmRmrgZbileloddeboY4eRhlGHX13QI/2iS/lrbqARPCSwLgsJhcDf7ts7NB6P8YYTJ7kHX/217hIY6EZu37pj9cVOnCQWRQFCnuSiZn3r298GiPQWac8bxxxzDDTmHWU+T54CLTbwdJTJDm1hxCfe6YyOw3upV4pR/d7v/Z4oCf/9v//3//bf/pv3K3//+99HsMSvGgcT9ZGykSBVfuAGQoEAZ2k1T9DZBLvro8bl8Was2hWwAMo+DPPWSeXui/XqmJmdXT9srjNRKpmgg27pWt5LRkVi+cDKh5gqOe3Gk1mA3Vit2eNf9eIKPkF64eXj4dKq77UeRHt/rRwMVa74q3d4Nh5A8iFToR0eQK0lSJVlpuPdTLxqPNi6ZrvpUzt0nyGPncJ6wP9D3Oebb775W9deu+WHPyTOeW/xueecY22uwKJyyKTqwAs0GOa+zX1M8yq9KC33VfbRkM0sJ0vc95M///M/R0k//elP6zVO4y+Z0Ot1EX1ea+O9gzZSVTlIFfxxKcQawkQp8VT9IpyPUli8vLISM97gYVwxNH5N/As9gVTukXsL2/3M7EGnZkJUPkEH3dI1vuurSw5fXEp8KQpE7np8nAsBt11HSXecuUpeUGIsynMkMmE9SFY8awYWVVAdasWbG6lyu0wLOR5J45EdZXEbLcjbha8YESa+dFnbWOJY1izM/+/uuy2bnGOQp/e+972NN5vCYY3nF4WezmSi4P32t79dQJisOlb0meU03otlFfiJT3ziYx/7WK723/zN33zPe95z4okn5q6nj8n8d+GFF078duJFRCpxKdia7aK351jUaC5jNPqxkXNldv/XVNBTcFENabEkXhgWpCz4yg2q4Nv4ahEITNTCF1HRXGX2hlHhUuwXZUL+z9X/lU1sOhJvutx9Ggwhyv2aDJO0KA0eNT+x+pGjCrrgMd2r1hjCZPSk7lCaRcvSnmhZQd7lfpWcXTTYtL/ggguYAq+//nquNlr12gMPPGjd48pFx0LbibNqAwJHU7FsO59WHWAxVypLQRr6GUKMxxekmVZ+L657aP7kJz9pn6MNBP/sn/0z+zezZ79vfvObZ599tl64gqEWdOeOO+6gLbnXFaRJXyUiBXPKqwcMqM5kNoZpZrElE6jdDxALYYZGR9JGkJJ5O5UMxQcgIda9pTKjcrNynynze7SbptS+kk5h1L3G8E3sXqO2t6gHjCq41CKmjnurLfRds/25Md10001GfNOmTZ62USK3OevExDXYylTMqGhUdlpdd9119C1lZoV0k1clyuIv2pFWPlRSHw0TQdFK7H5trS1z125wwpx00knEMDS0gAmlpR0VyBCe2ADf6sjErwZw8Xd/93cxjD/6oz9itmOE/S//5b8cfvjhrH62R+hdolNOXDGIxf1Nq8U0UpXQ9tfyb/4nr/Ni5LPq6jMqXF/Vnsf8QvkecdrTa7cREZU12A82q6tHJ8lzwGObZ63Kzb7yyisvv/zymdmDTs2EqNcJOs2ogkstdG51JJICFmUFMtZEDmE5jzvuOMtDGRdmKwry4T44DSXlWL2OP/54mrzH6FyyjFf5arkGUDJDahvCgUIlRoXEOHGvpw8tUU20WHLbwm41hrCXwzB9hOSNN95orS1e143XUBnVRz/6UcTi4x//eALkbW9721/8xV8w2v6n//Sf2P5GQfuv//W/luHEBA/PA7mUic2YLR4zEpEqsLGOVtrIueFzsLwjhQ4txD+Qfq0iU1111VVqecc73jEz5Fgqp+Bn20hr5yoEnhwD0EG/vsqkMwx/c2FeM7EZWLOEBWXvLqOKEFMLGvKsWPcOz5qoTHaltRMsykvfkAaLtBsZJQmnSZaLudrgDlh8a8ao3vzmN3t8tBNHyvEVCAgak4yAM40mc7WtIHF212YII0ElRqUv3Lyco1AGpb5feUEDyn+FbvLoSpSUODHOmSyoTD/4xPhXuVrAm8ji8FypGPvGgw2iUxjGv/yX//LXf/3Xcawbbrjhj//4jz/3uc+BBUkl6hQoxH4alCqz10qfRCk4O+YVpXJDYL7lrpT5KBfyJBiH3yxdyoEZu6hhKbuG+fZrX/uaj5QqzZ44GXRKApSr+DdbpknNpjEhtdlNwBTNfpvzVuE2UtLw5/mp1NbZeVuwSumDUc0x2sGl5gCrXlJ3Rkc7Ck1iUQiE6pAGXs/TNI/yfbJCOwpu0J4+MTaP+56tCS3TSrZgwCHxqmlp6lzP1h73a4/1/lpyLDAolL9u6BqJu5DT6tSyoLz4Loe25M2WI0P6pS+81yeuoLn2GAujL32ukFyy3n3UI9FTs3cej7pM6Smr36/+6q/ajym2qmAWjIOmGUnvt3/7t5EPHEVIBWnEVshhaGLwnPvZn/1Z09tPhmrreWD8kWAuuDR1rvR+FyzmzL4aycznhMI0sZBEqv7mb/7Gt+jj6DugZPHjUq+f4Vy1t5YYqp5hWGm9MsgoZL/WeRtQ0vAXdGpeYMfTd9MtXTu7pVFxFrGVbymqyfiYrcIVtz+2v5mx6SpDwRzgXuy+zPcTi+K+6qRZKcgiXcCotNx9nDMQhSDt+MutW1nXQGEN09RGeFW6KatLsZ7mrTfu2sp3oIA+IigaZrE566yzsjZ088Tju2Zr8OgymZqqIxyxrZfTUM31yGSTJXex7x/NZ3ObH3qKSDTqMuXKv/gX/+J973ufOWDm45QOMwGX+v3f//1//+///S/+4i8St+iRckmQgwLsNnWyHspSEuFcCRU+pqmLSBEmMelbb72VomYBM5OLx85kZrhPpEp3TBtZzA39KlDjKrRwEVm00CMNIzvBtXL5YfirDN1cGTvrlq4XXWFUwaXmmlINJnbLczQlU7mn0F3cgt2XHRyA8BhP6paEBts8WhSC4lZeIHswlFjYhP/WMDt6ilemjFdVdq7Sa4X4q8v4GXMYeJ2T6JASxfrWXrDRLnT8nH4GQ+1Pey11zcqa/rL1GPFiSEd7x7JZPvFoxo6fX3LJJb/zO7/zP//n/xxtJznq53/+59H9iYwfqQLdZZddlrKYw+OMylfommO02MrnJl5xXsPqwKXY9VhV6GfGywRO87k4b/pWSmKwmGSmils6muIok3HpaYCcpreTmUBNa63fSEnDnyANXVl6p3Wmw9c7K1DBbPnDSpGKEFPLnb0mqLtJ5Ta4h9IePNu5E2E2pBfxXSyci2NRo021FLnpe7gcvZg797jMm4ppZlxlyaVMH3XEzTGJVTPXM9zCIaMub7dBru/Uc06fszhpHgkQqTr11FMn1tWLi+IniZWaInobYpikLps55RkSfpkUml50ea5GCjj8W7/1W1ym/sN/+A/2+hFE7fUzf9zZSpaT8BxPXDyxx9MXXMk2QIynMeF9i+HZsMnyxUZJ+jVe01o1XkK6orWnn346fqnv09J087qZ6cmBiO4uUaeFIrjm9hNMLG356+7EZvXkYjCqyQOFS3GZ8qw2+eu42hYC7qcoEdpRvkI33xQsClfwCE7DcDMqEIrKl1whpbt/8cLjXsmwYqe3lAhfSRJgRdG7iUbAjEKx5uBMnuwThQKjLLjVbutmGvdW1VXoUdey+KnqF+oMDWOteQlDwJoJZVoLMcolzWaiElOmhC6nsR5/+MMf/l//63/98i//MoEHLDjoH/7hH7pes9lEzZolFGdHpNgWWeuIK0maMtCm9LxcSjt/+qd/+vzzz6/f5eIGL+hbP2FPPu6BpjdlrnItYKycNzKWRKCzbunavxyu7AaNSKFTJRGMZItGANWwWBZTIrLNaLAoXIGtsAsLZJKp0ko/EShqmXsl+6PlnxlipuyUFYJrWm9Qq4xXJf4kAUrhzusrpMrhiX7bOv2i9tUR/LKqu3ZiyaRe+DuKMytqybubx0riDfBL0tmudb+4PSaYGXLppZf+0i/9klnxb/7Nv2HOs6mtQKa16Q+Yf/Inf/Jrv/ZrxYU39a3JPFqUn7xBYbdlpCPM0Jixq1ya0fQTz5Mo5QUs3Lp7PbJGSvu5B3ju8pNHsCb2d+bF8oY/g9GMNXdmmwaXIDSqHw1pcKkfYdGlsyRTGZ1co9wg3HDd+t1wPcN55y4KVSZYVK6cRX+0jI2u9OPVkQ2Q+M9+9rO0tHT3HE8z8Yp7K3AwJz9jDNIjuCs8ohj1ntu2zW0Ys7SudHOb3sQeVbvIavmpT30KekY/o6QTPYTGy7dUI50ijZVMP15C96+YVHrnAI5Ijw5bIAuabecpHeuv/uqvkKpkJS9I3MhXpjHlyew1mVN8zu9+97tmtcPoVBClkoEPcWykeUsvREfcQ9wDabF1GlPS8Bd0qhrIXXZL16NWNaoIi1BtDrWTi9rPB8iSwIPbDiM+QG4xuILbPSZRIVhUO81OtZCOUuOnVapfZCo9woTmYoRWGisQxqYKD6/KVw6KqZBBalHTAOSChkwzDCFG9JhEqkouw4SQf/JP/gncphU+pOt+LBzO/uAP/sBsmYYPzz9yL6JpFm3YsEGWafJwsTl7LtzSY8Df/d3f2ZZoh6afOZnKrJ6rEIlPO+00W/kojl3Qp+dtfHF6D40A16/ttvuqRxj+qiJXKl9JUbxUWQtI1BKjCi61gLFruEiPsBQpnkDKxZ8QqQKbRcN1N1Ec0oM2FZREpuKfzuvWXvfyXUMdIONQOKMAkaagimF/JQgFVQMlJdQlRsWK55meyFHQccu22GMIWcpSkHIYX1mPdRbpRJgKemQqXnHFFQiNqQiZaYwKdy8opORXdCkH7cRiz/ccn9M2V0pmT8lQDaKUkFoDNt164nJz0EH4TGPDM0Erb/gzAIvaAj2zlb1NsOqMKvmej5uTejugA294f4WE7bvsCqN96hqrJdGYeGB5KOn2wajHAWvgo17YPeu9NcbfM8444+tf/zrx0qM8WSVlQh0KGJVlmw3l3e9+txIKKxnUl0iVo7hLbon89D/96U9LWZ7fF5c5/i38kTZuUnfeeafA7tRWV+blCrzliFLvec97skEfr2gAV9wQTGaqYRoRD1GVO4W5ltnxF3SqAsIFd5sKpTWeZYEaVYSYany0osBiBMghxTIVUsXhyc4mJ1SBMkvLsFeRaXgm1UTfrTGZfOKjJZmKOSpveKyfVojrBK0zzzzTc39J/lpQ1MC+wqIoweK7Xn311ejmNFJVzepngByEFkTKYUsBS1+yWc8Fo+Ci55xzDgJtS8cq/BD0kZJtXEruYJ0GJjkQdNO+Hb3+9NraCj1qjPa80nnHBSp9Wgij8vgVIaYqTZjIVAsBGlVx/mT487KIZNMss8zzqFiFtSThluQo/Z3YZau+N9LQqNKCnUhAgfwMOgizk84UbIpHbajfAplPEogSqSozG2dCYWiIKwhB4lJCnDjw2pkZRxMQpWzfG+UEiVT5O5pskOfYPxaL41YgoBkg5Q1/Qacy0MqcdFyg0oWGGVVwqTLTItIsCAEGDotHQRhPSzvRhazCFMWWh0DMbEmxN8zM7N1PUMyiRttvySc833///dvdyl58MTGqAo3K/lDvA66msozWO+BzHmkC6HMSF6C8AMmZCFBbE5fyEI9LcRZMr+GjKc7MO5oAl0Kk0KnRi+l8FUiVKU2RdWfgL2i2l9Gwx4FKV0oa/qZlj+sTEVghjQqXihBTEydBXGwTAf7pGaOy6pNJmAIZqhwiTHp29/j4tI08Dz7IXbrNhnWqLiyKQGLxmMttzhojUKoXNXp8z/yiEkO1jyzXQWk87gtTlLseH3MIANCrhbFPvCoXHrMMGTXJcSloW8JxKZsxcakKgb8zA1+ueaMfk0Y1bK7gF0HJdg8BaU1GNQpdwTldvWhDTUHO1ftqJRhVcKnVm9jd7bHIOtddd527oQOFst5oq5VJ+B/P354+UQFpXL//oYcEleIzUdyZCtvLiwtc4rfl5ahpjbSm4qzo6agBiLiSY1TgxVzf+9735ijCtGJX+Tqe6hYKq49//OMmW+a1BpOCjX6ZKEUyRKTs4Ltv/TA0c4E5buCbmZ3P9YBJleHwrAV5wNbRp0FUEqWgUzOnXJZg4Fa/4FLZSMdJRxBAGqxJZqanTPYUCw9Ln7ukI2thcus5+pWv5Hf195s27bvnngUGF+TAodgse79O6rOoXH+TczpMsuugzt3pGFUp1qOsK0scJ+MIMDbRRX7mZ37G1j+SVTKnjidLV0xpBwqbPKU8taNSdKnREZmWd/R6gYFvNNnE8wGTKr8X8i2lyh6XOowKbiUZ1USE4+I4Ah2P7ZkaXN2PKkJMjQ95XFk6AthSyYXcfZOCcvwxxzz8+OMPb95cIFZRDvrFqBKLMhZzGfXKjJ295Zz6c87pGBXHnSx7imEhEGh2JU5mImDIuPBfcMEFV111VUaqclY/1j3lYLSczb/1rW+JyW4HXzWv87SDb2arChIgVWzoJX9rBeV07SuPXgKmkKm8jga1TZhXayRGVTKjwGV1XwBZsqZItmAEqjCq4FILHpQoviUE3D2pU4futtteu+xy/yOPbH3sMdGux+ue9+l/vIR2ruCI2bGgGiHGOV0MdJhYbJKakotYwSVIAKokDS6oGYMs1tidcsop3P6uvfZar0PJVFU4p4OPlIt4zPXXXy8wWAWv89wOvpowolODJFUcA4jcHrE8OdSBCDglswedKgNU952o9GI+RhUhpsoMfKTpFwKUKndPt1Gmq42bNh20HvB6tAtddqVKclQiUqNtXtC5FR2X4krF6gSx5PTDCJVVx48HmBakUX+g7Ns4KUYAaN7uglR5S4wxZQrk82ddT9v32FKRV17npKmc41pxsRQpktLEHXzFGWd+2yapMs0Ss8TjF6oZq8gcphRCey6cc3BxJRSYahGw5ypakY+DYlRukd6m7u+KDF50c9UQoAqgCAT/zY899uQjjxx80EEZAjXdKbJymjpZnFGvTAutzd5Jhzlld4P0TI+Pop6MUJdcckk4pJdBcmIahlpb/3AmeBI5vvzlL3sTH08pjtLMqayuXoVESUW5fBzlsuOlVfA6Hy9k5pUWDH+JS+kvlgkBb9Gp8969mT3Ca3Epu1hERp0JcnFp11xzTUlG9fza2owo+8U1rcC3OWfNbvZ4tkblvhnhOrs5eNGqZhEgwNjjg1pt2Xvvh71HdssWOwSbraJyaViUG70VxaPzcuUfKyg65Rg3hgpG/xM/8ROZG1Dlzq5mRngiCsgTo6rFw05VzJVANep17qLRZ6rGYi3204Bqh0tNq73B60mU8kiD4qCS1Ck/0oXSqdR4vNbCp1Jbhotpa3Fnyxv+gk4VI9kLt3RdKGJUplR6K19xV+PbQGBICHAAEkiJWLVl330FsNpjt92sT8vqYMtGvTLdJBKIMoU8WeFgRY6yyHFOZ43iSe3EOlSmnEiTELBgowhIQ9q1d9ttt7HuWcgJfuJM5pZzyRCs8XAVOTA9A9trmbvYr4+JSzF6mmDmW2bmq2OGK48A2upXbzKz3JXPNZ5S9tjxNw5LhSu9MPnp12RGhUtFuM4Kox5ZBoOARcuxXa/asmXT5s2Emeyevug+JhaV/i66rgrl40+I1Ne+9jU6CqcfO9SsebAin7zrXe/KbU+rUP7qZEEa8ANOaex6Fgx790gaiBQakUDI0al0Ealy5FDKRCmOOx/72Mes4h4J2Gdzybr/UZfB4i9/QzKpAAAgAElEQVQcCEU8ydLuh6zl48po9lWDJ4lRaYCJzchYp2TvvLr88svLlCAeSV9jtJTp3mqkyTOq4FKrMe7Ry1IIuKVamRzWMPfWUnkqJcKf3MS7YNSb2XyMikxl1T/77LMxgJtvvhknsOzZp3bIIYf4dmYJK54AXXAAjWsUGx+vc2SULuUiMjEvOLjU6HtjeO2YqwJ+spKYvZyB5i2wZnpToppnVep+kqYsQ9Nsx+NssmaDJ2Y3nz0nQM8bAkxpbZuYrMzF8oa/oFMFePZSo4qwCAUjGl+tJgLup+7vFZa6MnAlIQqRcpRJ35E0J510knWCfkCgsvbYxu8vRujoSAu72QyziPMTi57lge+5d/nhVXb20V0qrNnT3htz4YUX4lIY1Ve+8pWLL77YeZtooFPzkiqw6D5kkBhk3VxyTGtzJuBNS9DUddObRO1pynjVKTMMf3XQS3nJ4Y765bRQwj/eAYNLtYB1VNFfBApu8fN2qqcsarSb/MyYqxApS47r5ITRb+N8HAGcifGImzkWJayUTWSIFPepCjaszMA3Xkt25fjjj+fW5vjMZz7TZVKVFCmy06jjedaL8ZN2nKhSvR6laFRcqciHNWkcU2xJCyyJciqXHIdjZa70RaAyILsn33NP4SszOtHRQKBtBLAoKhQJp2XBYEH9FK2HloBRhY2vGOEkbfLit30vC4JAlyLJOIrzjn+bM/CNJ8iumGbCr6NT9BV/L7300uyrLpyk7gMHU0HHzSU/kDINq8lsylSRpeEsuG7w95KqPWvWWz54etCpDP/Rk54xqtGmx3kgEAg0hcAA5KiJUCBS1hi+wxO/jYsJARIUi4/381gP0CnxJnDQxLHmgiiJUvO+Nwapok4lUsX8xxQ4V6U1E7P9TdzjhkslXcrkYVZzzKX+tuNElfquYbgUmcruS+cVBi7DMAx/GRTVTvrEqKr1MHIFAoHARASGyqJGO4tR2dDuCqPVXCviaCHDPrcAk6ZuvPHGq6++mq2qWqDIMga+AhgTqfqzP/szjurOW46nwM41SqoyLgWZAsfzgu74qoKRtLjA4m9tXBWgDjus6UqllvKGP9JlbO7IjUtfnKg0OzxJc2MXHwOBuRFILEo269bcmfuZQdhuu/3rPLj3s99lW410MhtZiYkxFbx/0BGiVMlw2wVtMiHT25dTgMT2SRUvdbzQPKHYlXE8L+hLBRgLSivzlWZ7ZTIhjb2+NcNf0Knc0PRIoNLyYFS54YuPgUBZBNa36P3jn7J5hpLOgztLVmzumzaeGBUvHA5nKaBRSepZzcA3rQ3pevKJvuqqq9oPUqXX5ChBIiiaoCBngqW4tQXftmnyS83Aif28sVLOXrzfCto286u5DH9b7faYWeLKJOiRQGVMglGtzMSMjjaBwCoY9WbiRHqxAerEE0+ss0DOrKXvCdDNtFnMFj8KTXF3ahr4igtHqgwZmcqBH2hVcfqa3+Ycz4WBbYR5t8+oUEC7WYUIEby+pisVSEdtoMUIB50axSc0qlE04jwQGAgCuJQIlgPpTKVu2P+PSNn2z3xDgFFGMKoCIMkbvHCYjTZu3FiQbFpYqYIsFb5K9j6MaqFBqjJnqVHHc/5kBKoKbc5lKanz5XLV/Ji2+1Fk0eKaRXGlMtY1C1nB7MGoVnDQo8uBwDARsENNWKOkOnheZwfhrhtEquRgw0rsLo44fIBgOJproaLUaEXZ+UKDVGVcygkeORrx/KGHHqrPqNp3okq4oXEkPbyKRlXTL34uwx9Js08xf7NJtoCTfln9Iv7FAqZAFDlEBNxPZ9puBtNvRiKO57feeqtlwOpoRUELqHS4VNCpkqMMKNvvyRt77733uNnrkksuaVmxSF7qhtLgiqpQshczk+EcyfselxJZCv/AvPGPLKOL2Xnlk/ZNfqmpBs4g4ohwq9z4LCPDX3ZefBJ0KuFDVS0Gqmvf/mjed61l0Z5AoGsIEGy61qQG26N3ttljUd/73vceffRR/IlbMQNfIlINVrQ6RSFV+ARjsVU512uElfiXu7joj0iVIFWJVDH/1awucSmBIfAnvufsm/jHKJdSPg+k+gKVcmputavcUyNobwGa6FfgqFxOysjwV7OEyN5xBIJRdXyAonkdQoBGNTyZincUTwUsykZ3cpTH8bRdvP760aGRW1JT0AuQvuENb/A3p+0RinCa9jl6IlXwSG9TrgAMLYpeS5eiG7EC41Ip6Hmug6lkr4CsUEUui+ocuYutfSS54aC0xvo1JsNfyXKeL5lu0Mn65URlKIJRDXo+RueaRoBfdtNFLqG8TI7ygjmOw3yosSh/MYCJ6+ISmjiIKoGJwXCZmviaL6RKUIP2O5rMf+rdvvdvHqtKxqUoRlzEMEVeYpj3oucM0q/q9oHKaqRRGUR6bf2eljf8vSKrfoVPglGt8OBH11cAgV5rVJkcxVmYHcoyj0U56q8TKzDyFbuIcHjbLsJKpsqKsDanc4a/uThNVkLNE/EU0u4/C3yZNT7jUrSixKU4h+UMfBObZKZNvF7+ok12Ip8tUaMygsZLr4lV9YldGbTLgzP4lP1ySzccEY9q8HMyOtgkAu7sSBUW0mShiyyLHCXEogbzd+ER4mTcp2eR9a962dgqOsWV6s4777RhbTwEAEbFqJTicLYJVhZPQQOoVmSYibVrsIOBD6tg3cOiyhCprKg6bunM0N6pd++995566qlzVZrV3tSJH44RRK0cNbkdRqVfJW2IXpy5yiv0Uh42as6ZsPrVBDCyrxwC7fu+VIA4yVEe7jdv3mzBRqSs642YLSo0ZpWzYFTW4yOPPNIiOo0WWDmWMqnEU0CkJnp0EWMQKc5SiLguTHM8Lx5ZbunFCaZ9++CDD/71X//1F77wBTPWW3SIfNOgm1ZCs9fpi0gnF3uMqn7J5WWqVaZTcO6dyU+bg1HV/4FECauFwHbv9FkhsJeCiFX59ttvt4nMkz3vKFqUtZypIox6SxmOrFIDYT3GqLIYCjmNs9lwBlm9M0+SQ1UiVVk8hWTgo8RkjudJnqkwiyq4pd93331f/OIX0Skk5p3vfCcmCiv+7zP7sugEPMZYyY1gBRxybbvmmmtyV+LjYBBYcRI8mHGMjrSKAEaVWxRbrX7nyshR+BMtwcJjjXTHt18vJal/99+5qvhUBQH6isXYgSUYpolFJKHowgsvnPjt4i4mUoVOacDHPvax97///aQpdIojNjrepjLkSeA73/mOqulhb37zm3GXRgShRqDTErSYyguurVu9dq/WwepXPv9LKyx79NHqt9tll11WfnQjZSAQCECANYQpbYlQkKNs0/OXj5RFyPJj/cOoUKhgUUscl4lVGxFjZCXmEsSVyrnledyTxtZ62af5M00suZGLng2OOuoocciIUgSqE044AZ1ysZ2JhMDdddddn//8572K2ObB4447jo3PTG6TzM2EERTa6TkK7UM9a/qnmwnc5sYnwMRmVH+z9MTi+nORT/rXv/71/rT3H1saVr/eDVk0ePkIWBSXYvhzN7/nnnssfkQplI6XCeUDnerU8rP84eleC1AoXjjYUhqpaQInD5uWw34mZykM5rzzzgMbDSYX8XxxWCJwoqB9/OMf37Rpk7ducz/3TmJAdXMye2IhMVJ/YVUfkyuvvLJ+IcMuoY9OVEYkrH7DnpbRu0UhQB8q+ZRZswUqsuRYaVj3bOFmgMCiapYZ2VtGAOtlM6K+WJgLuHiy/QlrjtkstIVUFgc6JbIUekccor6osZ2pZSZ7KrBtQr2nnXYamgKfhfa3fuFkKr8+Iwg059CrU+Zchj81raBS1VNGFRpVnd9F5F1dBBj+CpbG+rhYdTZu3MjT3L4nsgE5yt0cnermE3z9/g67BGuwAE4oOEZV7B6EVGVO4ovABBWgsDqS4zlOI8ABQsPopjrmv6YqJaOOF6UWb2K54oorWL6Ebzj22GNh0n06pSNGECd24H816ZTS5gqevoJ0CkQ9ZVRdfzIY/03GlUCgCwhYkzCqaeabai0kRwl24N5NOaBSWHo9FlcrKnJ1DQGjib54+d2WLVuK24ZU8clN8aKKU871bRKlSCym7rjjOWvyXKXNTJx7nR8OYQuqhwSO52effTbbWb9iefhVepg54ogj0lsvPVDNRKA4AcPf5ZdfXpxmlb/tXWzPNFjBqFZ50kbfayHgjTSNWGesoKwA/nKNYt3rxSN7LeBWMjPybbbgGbYUzCTiGJXJ0FTYTywq0Sl/SSz8gaYpnTSYxgdH2HRcyqMCAYy3luk9s/uNt6GRAv02HRrvqM+o5jL8NdL+HhXSU4EKwsGoejTNoqndQsCzvs3wbrIVmpXkKAsb44u1k4DBqFehnMjSIwSwGUYuhIbgMbPZSBVP9pqUHZdyEFPN0uKI5172csopp8xs1VwJ+P99//vfZ7YWVurcc8+lS6FTZfo+Vy2tJdZ4P1UqI06sFzVtf8nw1xRpbg2EdirqqUAFnGBU7cyQqGWYCCBGczEqQpQ7KW8SK6WMiJT1dZjQRK92RiAxCdEyWdyS09LO3+c/mSocqi699NL8FyU+W+wduFRyPGerwt0LqEzjJj8FCi6lDforIAID3wCUV91BiDnvU/L4gflYYiiKknApK8+oxDGr8uhWVH93vwuNqrtjEy0LBBaHQBnxH+sSNcoDOkHLvdjaZk1dXJOi5M4igFiYAEhGyT0NSNVXvvKVucJ+JiLlr5nJCz7pUgVcKmFFoHJy9NFH14ROvfSb9PIZTmPmOX/8mmV2JzsYkVSkincj4a1+w8q/jkZdq0OndDYYVf3ZFSUEAv1DgOHv0UcfnWiws1nvkUce8dfCZl1BpJz0r4fR4kYRoHDgGZyKSpZ6xx13kDPLeKknLmXJn+h4XlxdcpafSbwKCiGG4VIslZRXrwu0O7WkcbOgzA5+hRMnRzTdJFPVbGEY/qYBGFa/acjE9UBgyAhYhFhwMkaV5CgGDiKEhdBJOwF+hgzxgPpmtrDzekPcXNyFksGhyjENCSwqk6aKHc+nlZA0Kt5O0xIUXEcscKlbbrkFhRJcCtVApwrS9/orv2jPRcmVSvh7sNfszlyGv21ra6+sWV8fsuPlfWjm5DaGH9VkXOJqIFASAWukR3xalGXJcmJdCe+oktCtYDJLMrNRIkBkyzIIJNvfxLCfuJTD5ga7z4odz4srSn5U82708/zAwCc0qB5R0Ux+zZiLLBa3qoPfGjhPSh6Tkpc9Za5mI+cy/K0CnYJnfwUqjS/1k645aSJ7IDBgBPAna54Okgc8v1oyh72oDHgoW+ia2SKAwplnnjmXa3PyUs+aZ11n2uMpRQpFy0R44ptl4pWkaFk52YmHgbkin3mE8M41jvN0mrPOOsuLjbExjGrwM18HsUakyiDishmAlU+S4a9y9kFmDEY1yGGNTgUCZRGwkg1+LSmLRaSbhQB5g6fRMcccM5fCkZSqjEvJi0KliOdYWp3pl0x+JaOlcw386le/+pd/+Zco3dve9jbv40tB1Oo0YBZgnfve+weTdbWRls0lU9WNK9pIixdcSH/d0gETGtWCZ0cUHwgEAoHACALIB7PROeecgxLhJSPfzDjlpS68Ey5lOcelyCQ1uVSqL5n8Zjr88aa38fCzn/0sIfb0008/4YQTZGmkATO63bGvjZpD35tyF+NKVb6Lq+CmExpV+fkQKQOBQCAQWHUEEBGs6IwzzmA1m8t4xEiES6Wto82CWGD1u/fee7/0pS99+ctfZtrzAhkO7LZi4IWOZtvQi9L0mn3T9oLkSlW/zWH4G8Ww127pOrIKlHd0vOI8EAgEAoHlI2Af/lvf+lYvMrKElA80gIpVdpaa1uekUU20+vE6t4kP7ROIkpkSk9OAaeWsznXjBQoc1JtkykSkm4kMw1/5UJ9UzQGPQa9NfgY6GNXM2R4JAoFAIBBoGAFSB1LFdiZWpDffOZ9ZASeqAiVpZvbyCbAEARGuv/56Bj5hP9OWi8aZXPn2dC2lsRNUzG6Au+66y7lxqdnCuVypBkynasLYhezhR9WFUYg2BAKBwMohgKNYmIVEZz8q6VC1CEaFFoA+hU4Q1v973/vexz/+cX+pJu94xzsEZViEkbHXg41FGQiw4JqNdASjmotUNVJpNwvpu9UvGFU351W0KhAIBIaPACOarfgbNmwQTKGMQ1V9OWQcU47AJ510kr2E3/72tz/5yU8SzE4++WT7+Oxo0zxe2ONZVvwKRgUBMVftc2xKupuLUTUQtqGTQ9hrn/SEaPxaOjmzolGBQCCwGgiw951yyinEoTIOVU2JIhm0oiEgT5yj/+qv/oq3tZaoQsilLEGcTESAPTRt93Miuu/ENHNdnItRDVUI6bsTlREPRjXXtI/EgUAgEAg0iQCRw94xDlXEIT5VxQ5VzTIqjtW33367+JxoAYWM8bG49ia73fOyYIV3CmDBeb8RVypj0XNIGmj+ABjVUMluA6MbRQQCgUAg0A4C4hFwqGJlK+lQVbNVqNtVV131hS98AYVK4c55BQWdKo8qAspc65Clkf2PZMK5AlPVdYYv39UWUwajahHsqCoQCAQCgYEiwF1JxEhvGhZPocChamYczpnwbNq0SWSpv/mbv6GyeBnOEUccgRAkx6CZeSNBhgBlkUaFjPLcb8q57ZprrsnKn3kyyFBg4Uc1c9wjQSAQCAQCgcBsBNj+uDEJiT7Noarmyi3ulKjrjz76qMhSiFTaNhhcavbATEmBVHmjIhhRKxsLpqSa4/KKG/4GIFAZ7PCjmmPGR9JAIBAIBBaEAHIjdCSHKtTn8ccfpyHlKqrmRMWMqMBbb71VoE4uU8ceeywDn7ocufLj41wIJLczMhU8G2FUKXh6+VCfc7W2+4kHIFABOfyouj/TooWBQCCwEghgORyqfvqnf5r+Me5QNW8wqm3bthGl/vzP//zmm2/+8R//8be//e08qdOG/6BT9edTMvyJ80lcdF6/QCVceeWVjZTTx0JCo+rjqEWbA4FAIBDoLgIcqpAeDlXf/OY3SVajS3V5jcp+/ttuuw2dEhCB6PW6172Os5Sju93uYcsYYbm+OeyUZPgjAdbvxLyGv21ra7Nj7ddvVislBKNqBeaoJBAIBAKBVULACn3qqadyqLrhhhuQqrm6zlyIS1mcxOfklUXxwskiSudcGJZMTOdDUtFcoT7vv/9+H2s6uql3XsPfYOiUvg/D6hd+VCV/PpEsEAgEAoE2ELA2MyQdf/zxYh098cQTyaHKal1s9eNy7tUxuJR3HuNSdgXKGNa9RQ+Y9wjRFJHg5557btxQW6F2MRRW0JWq7y+fyQa6GetvVlycBAKBQCAQCNREgLDEYPeud73LSRZMYRqjEhpUcKnPfe5zZC0BEbzb2JZ+waWCTtUchZnZjQ6ZCqnCX7NhmpmrOMFcwdMV9XxxcT35dhgCFbCDUfVkxkUzA4FAYJUQsFRbpzlUcdBJq/W4UemBBx4QWUp8KcCcc8453M9loW+tEk7L7CvOyoMKf+VN1RSFTYa/8r3K7wgtn7NLKQfDqMLq16VpFW0JBAKBQGAHApyobNCzM/+WW25hVxr1TL/33ns5nnNkPvLII+lSNvBjYCFK7UCupf8T02XsMzoGi+GvkYpX0PA3DLd0ox+MqpGfQBQSCAQCgUDDCGBIeNJb3vKWjRs3iqWOUVnCBZfie/7kk08ed9xx6JQXoUjmaLjuKK4EAkaBuHLfffdJa2hGTbQlck9NMq/h74X+L+ShUU2dDfFFIBAIBAKBQCMIYFRiH1x00UWf/exnPcffeeediWOxMXGIdt5ILVFIBQRQKDQX2aUgEgsbCfKZmjHvjr++6yKDcUs3fH0fiwo/hMgSCAQCgUBvEBD7AKk6//zz+VHZBcYP2ia+CIiw9PFDp7i4Eai8dhqdeuGFF8Yd3So3kky1Ojv+BmPyM9zhmV55zkfGQCAQCATaQICPjkCdQkwdeuihXHaCTrUB+qw6hP7y2mkObbZYCk/fIJ1SM1eqWfXv9P1LO33q2YfBmPzgHoyqZ5MvmhsIBAIriABPKUQqzHwdGXp0avPmzYyw/mJUjbdq3h1/vV7IQ6NqfP5EgYFAIBAIBAKBQD8QEE/14YcfFird/r5FMCoozOuf3g/gxlo5JIFK53pNbccGJy4EAoFAIBAIBAKLRIDX1JYtWwRWdfBPb9belzV8XsPfy1nOXp0MSaACfDCqXs2+aGwgEAgEAoHAUhEgUGFUHNKb9UbP9Wlew19P42cEo8qNe3wMBAKBQCAQCASGjwBF6tlnn33kkUe4T/lLnXJlcd1eBcNfMKrFzZ8oORAIBAKBQCAQ6CICiT/hUrb4OURPWCidAsEqMKrwo+riXI82BQKBQCAQCAQCi0MgY1QiJuBVTH4tMCqxQxfXo6WXPKTYngnM8KNa+qSKBgQCgUAgEAh0HQH8yf4+3uhkFdETFuSQnkNhFWSqXJd7/TEYVa+HLxofCAQCgUAgsHAE8CcHRkU0euyxxxZe33oF4uNfc8017dS1lFoG5kQFw3gLzVImUlQaCAQCgUAg0BsECFSkKcY+f230a6fdl19+eTsVLauWYFTLQj7qDQQCgUAgEAgEloAAlylb/LhPiZiAUS3afSr18LzzzvM+xwq9faE/SgkwK3Swy1nC6tfl0Ym2BQKBQCAQCCwZAVHR6VJ33XXXAw880JrJ75/+039ardt9MTwNzy3deAWjqjZpI1cgEAgEAoHA8BF48cUXMaoUMYFDutfOtNDnc889t5pA1ULbmqpieAIVZIJRNTU9opxAIBAIBAKBoSGATmFRPKiefPJJMaja6d4555xTp6IFRh2t06yd8waj2hmP+BQIBAKBQCAQCAwXAS5TnKi8EZlG5XV+vKla6Oshhxzypje9qU5FvVBKhueWbsh6gXydqRV5A4FAIBAIBAKBKghQpxApdIoflZMqRcyf5z3vec/8mfqXY5AaVV+c2Po3XaLFgUAgEAgEAv1FQACqJ554wha/u+++m8nvmWeeaaEvu+++OyeqFipabhWDdEsHaTCq5c6rqD0QCAQCgUCgiwgQpThObdy4Ealq4S1+CYIzzzyzi1g03aZBmvyAFIyq6ZkS5QUCgUAgEAj0HwGMimVKxAS2P0cLHXr961//cz/3c/NWJIy7jYHkNCoaiesVr3gF96899thjr732mreo1tIHo2oN6qgoEAgEAoFAIBBYJgLYCUaFTnGiauGlyKmrxx57bIWgCSmLyA4bNmzIIPvBD34g7kP2sWsng3SiAnJ4pndtpkV7AoFAIBAIBJaMADrFdyoJVAIotNCa3XbbrbIH1aOPPoqNZY3ctm2bVxBmH7t2MlSBCs7BqLo22aI9gUAgEAgEAstEQJQEm/u4T2FU6BSNqoXWHHfccZWDJmBj+++/f2okh3rN9pblFtpcrYqhClTQCEZVbUpErkAgEAgEAoFhIoBOPfTQQ6QU2k87AhUPqjpRPQ8/8shsJAhUr3rVq7KPHTwZskbVZVNrB6dCNCkQCAQCgUBgwAigUIiUqJ4ODuntCFQIXGWTn0butcceaUT4pN93330dH50hMyqm4nbepN3xMY7mBQKBQCAQCAQCBCqvQ+aHhFdRHBjRFo0Jm12FLX5Zq+hb2Tl75X777Zd97ObJkK1+tlw6Wpg03RzaaFUgEAgEAoFAIJAhgFGJR4BRWRbbWRnxtsomPy185StfmRqfXpiTdaSbJ0ON7ZnQ3vUjH/kImQqp6ib60apAIBAIBAKBQKAFBLAT8gmBig0OqWK9aYFRvfbAA9GpCkETEiCZQ7qPlvLRjy0gFlXkENj1qaee+tM//VN/W3urdq4F8TEQCAQCgUAgEFguAviTgzT14IMPPvLII/SeFuiULj/6gx9U9qCS/RU7BCqNt44vF8MytQ/YiUr3t+/1Mwyf+9znmHLbmUBlQI80gUAgEAgEAoFAawhY/jhOiZjgtTM0qnV+9VILtYuYUDlogqjou++2m0ZqvHU8M/+10OzKVQyfUYHmb//2b6+44opddtmlMkyRMRAIBAKBQCAQ6CMCGAkKRZrCpRzMZ63tgq/jk77nnnsmtDW+nRc51x/cAbulA+dH8ahuuOGGL33pS/XxihICgUAgEAgEAoEeIYCRCJKe9vfxo2qn5Xvvvbc4nJUFKmalJEqhg15B006ba9YybLd04PyIUfmAUQWpqjljInsgEAgEAoFAjxBIAhU65bDRrzVvJL7LF198cWWgELKUl8tXO2FIKzc1yzhsgUo3d2JUPgepysY+TgKBQCAQCAQGjwADH0bC2Oftwi2LPeedd15leJNPOnWt5TZXbrCMK8eo9DlIVZ0ZE3kDgUAgEAgE+oIARuK1LRzSHSl0QmstP/PMMyvXlfmkC5jemstX5dZmGYftlq6beY0q9TxIVTYD4iQQCAQCgUBgqAhQp5AS+/u8c8ZePxbAFnq6x/pLY37hF36hcl3JJx0dbM1GWbmpoxlXUaNK/edBFj5Vo1MhzgOBQCAQCASGhAD+xAlJACrvwuNBZYtfO72jim3YsKFyVM/MJ503PVLVTpvr1zJ4t3QQTdaofIFL6v/gNbr6syRKCAQCgUAgEOgjAgQqxwMPPMAnHTvBrtrpBSZ34YUXVq4r+aQz9vUrLvcq0ImpjMpgI1Wf+MQnVgGFyjM7MgYCgUAgEAj0FAEUijS1efNmwZxai+ck7uPhhx9+4oknVgYNl9JaLLBHApXOrgKXKGJUIEikavC2z8ozOzIGAoFAIBAI9BEB6hTrG/cpVj8CFW+qdnpBoDr//PMr12VP4je+8Y2bb77ZFr9+MapVIBIzGJVRh8Kf/MmfrAIWlad4ZAwEAoFAIBDoFwJYFIGKyY/7VGsC1SvXfdLrmPx4tb/mNa/ZZ599OKdzqOoL5qsgUBmL2YxKoiBVfZm10c5AIBAIBAKBmQhQpOySu/vuu630GBV2NTNLIwnYGX/yJ3+yTlH77bcfo0TfDrgAABLdSURBVOHBBx+MUfXoxXErIsqUYlSGP0hVnd9A5A0EAoFAIBDoDgIoFEZli593+bVGp3bdbbeXXnzxoosuqoMDXcqBS+26a9nlu051TeUNjSqPZCJV+avxORAIBAKBQCAQ6A8CPKiwKPY+TlRcqRzttF2oq9NOO61y0ASNbCNY1mKwCEY1AVek6vd+7/cmfBGXAoFAIBAIBAKBPiCATjnSa2eY4drx7+b/9HJtgWqXPsA7sY1h9ZsIy3bzX5CqydDE1UAgEAgEAoFuI4A/8UP3Cj8a1fZoVM8/31J7d9nliCOOOOGEE1qqrkvVrEJsz4R3FUMsUiVO1f9v7+xjq6zuOL7yqjCqQAdGFkpS3CgVJmBrTOaE1oKaZWqkYGthxEQ0SggJGpcsKoPMSIAsmTUkC/9sES04w8wGmGyaIducZtj5EpAgr63IiyByLbZkyD70JE+e3La3L7f33HOe8z0hzXmee85zzvmcU+63v/N7fsel+VJfREAEREAERKBnAufPn+cVPzyoCJqAgcraoXjtbW3ZBE3oeWAq4QCB/igquo3klKhyYPrUBREQAREQgT4Q4PA+rFOci8zGnzUD1chRo+hiVVVVHzqaoKKBOFExY/1UVNREVOngvwSteQ1FBERABBJOAOsUeyzIqebmZhzSsVHZGXBrKlVfX2+nLQdbkaLq1aSgqCSqekVKhURABERABPJNgDjjKCrObyF0gjU5NWLkSMadZRiqfJPLqn2YZ1Xfn8r9t1GZMUpU+TPX6qkIiIAIhEuASJ7YqAhAdfr0aY6CIdlhgSN8eXm5nbYcbCUct3TgZ6uoeIRElYOLWF0SAREQARGIEzjXkVBU5kQ8O4pq9Jgxl7/9tq6uLt6ToPLhGKiY1iEDMrVm7y9kq+aAYNRDREAEREAEBpwAERPwQ8cnnRhUbPnZ0VJmFKmvv54xY0Y2UT0HnIblBwalqAbARmWmR47qlpepmhMBERABEeiRAPoJRYWQ4hW/48ePs+XHJanHitkXGDZs2P8uXpw7d272j/L3CeG4pTNHA6ao0KGIqqDY+bvE1XMREAERCIQA4okoCUZREYOKAFTWbFQjRozgVONp06YFgrrLYcpG1SWWnm8CjiBVElU9k1IJERABERCB3BNAPJGQU2gpPKj4kuqwT9kwUDE4HLdmz56d+1G620JQbulMw4DZqMyUGlEVlCZ1dy2rZyIgAiIQNgGjn9BSHDuDvrF2KDLUCwsL+aktv6AW4AArKtghpxoaGiSqglpGGqwIiIAIuEbAGKhwnCIhp3jFz2YPOe6moqIimxbpfzbVXagb2p7VwCsqZlGiyoWlrD6IgAiIQMgEjIEKOcWuH4qKuFDWaBQVFdFWbW1tNi0WFBRkU92FuqHZVnKiqJhIiSoXVrP6IAIiIAJhEsDAQ1R0Nvt4v4/vI9sGqlRq1qxZ2QRNkIHKx3WbK0UFCyOqfISiPouACIiACHhNADnV3t5+pCMRiYo9OGvDGTNmzMX29sA9qKAdmoGKIedQURmgq1evtraO1ZAIiIAIiIAIQICICaiolpYWs+VnkwlKrri4uKysLJtGE7DlF5oTFdOdW0VFA6hUiapsfq9UVwREQAREoE8EkFPYqAjpSeJQ5NbW1j5Vz7IwzVVWVmb5kARUl6LKySQiqohTlZNH66EiIAIi0BUB/pAr7Uj6i64rPAm/Z7b88KAyDum4qFsbsPFJr6qqstaisw1p1y9XU0OYL4mqXMHVc0VABDoReOWVVy43ruQfmU4f6kaSCSCnSOz3EdWT9/tsvuIHVnzh6+vrk8y3d2MLLbanoZLzXb8IPnzNgcrRHWVEQAREIBsCeBwT/Y6ffX1Ivyv2tSGVt0+AMJ4kc4QfBySzA2itD2PHjqUt3vKz1qIacoqAPUXFsFFUElVOTb86IwL+EkAVvfDCC9872bRixYqdO3f2fiAUpgoVqd4PNdb7hlTSPgH0E45TxzoScsqygYrlVF5enk3QBPvEctRigE5UkLSqqGhPoipHy1ePFYHQCGzevLn0UvOz829df3cJTgW9FFUUozBVqEh1HhIat2SPFxWFY/jRo0cJm5BKpXjtztp4x48fT1t1dXXWWnS5ISkqS7MjUWUJtJoRgUQTqKmpeW1/atfeltunfr+XoiqSU1ShItV5SKIhhTW4S5cutbW14cmEiQpdRd7m+DnmZsaMGTJQGeYBuqUzcNs2KsNaosrm77naEoFEEhg3btx99923tLEpLqqiXbx777234IEN/CNjhs9Hxjpl5BQVqc5DEgknzEGxx4eNCg8qfNJxpbLpQcUrfu1tbdXV1WGSTxt1mG7pQBg8efLkNBZ2LhGwrP58tW5njGpFBEQgdwQGDRo0ZcoUnv/8ljenjx+JTvr8+OfvHDx1yy23cPO222578MEHH3rooXnz5g0ZMoQ7mzZtmjnsi5/fXoYCQ04tWLAAA5X5KHed1JOtEeDYFkJ6YqDat28fL/qx34fJylrrLKSrrrqK9WatRZcb+uijj8Lc9cubokJOIaomTJhAwH6XV4b6JgIi4CyBwYMHE3OK7iGqzp45+96Fax9++OFRo0bt3r17w4YNL7744tatW5uamgoLC4lhPXHixFd3vf/pgU+fe/MQcoo0dOhQZ4emjvWVAN8pKKrDhw+jqMhgo7J5NB4CbuHChSUlJX3tdiLLY6Mitmoih5Z5UHlTVHSLXwBkrERV5hnSpyIgAhkIGFHF++pvf/LZkiVLkFPr1q371182rZg3etUDk5fOnTDxu62/+/3WPXuP/agj7drXwot+WLAkpzJQ9fEjgnmSkFOIKvtbfuw2Pvnkkz5yy0Wft23bxvd7Lp7s+DMLMInnt4vYqJYtWyZLVX5nQa2LgNcE2N8hqCM7L2vWrJn8nQ/XLJ6WNpznX/3kg29Kn376aVMMHZZWQJdeEyBiAjt9hw4d2rNnD9YRvs5tbvmBrqKiYvny5V4zHMDO80fLAD7No0flxzM9Doi9P2L0hfleQJyD8iIgAv0mgEIaPnz4jh07Tux9q7Oc4rG/qJly6bN/bt++nWKSU/3m7GxFrFO8eYB1CjmFQ7pNOWVe7qutrXUWjuWOBeuWDuf8Kyo6IVFlecWrORHwmkB0Zp85uY+f5vA+DpxZsyjdOhWNdPnPfmBOpOmuelRSGb8IYJH68ssveb/P/it+gMIXnk1nBU2I1kyYPulm+FdegXEhGVGl7T8X5kJ9EAHHCZgz++KdJErCM888c+DAgWmTun19veKHYz7++G1qdVc9/kDlPSKAgeqrr746efLk6dOnORTZ5rnI+AFjFZs7d65HuHLd1ZAVlRM2KjPBRlTlerL1fBEQgaQSYK9n8KCCpI5O4+qSAHt8ZssPOYVDuk05RX/w3+I10rKysi77FubNkH14XLFRmZXHTGCQ52/NMBeiRi0CItAbAiZ6Z7ykCeNJfLv/Hjr347Ki+EdR/r39Z02ohe6qRyWV8YiAMVCdOnWK3TfCJdiMmDBy5EhsY8SJ9QhXrrsasoEKtvl/16/zBPPen0RVZyy6IwIiYAgQ+yd+ZBvO5gRN4GdjY+PuP23823OzuwRVv+7fk3+yBA/i7qp3WUs3nSWAeMIqefDgQV7xI+oY3+W8yGnTRsVXFVaAl156yVlE9juGWzonE9hv15EW3bJRGSisUaZE5006skTUDRFwjQDiidS5Vxif3n333V9v2ffLhVfCfsZTw58/PTO8dOU993Czu+rx8so7TgA5hXji/b4TJ07gyWQ8qCz3ma+qu+66y3KjjjcXuI3KIT+q+EIJXOfGUSgvAiLQIwG+WQnCguHq0Ucf/ftn42rXvvPXppNnUxf599YHp7h8/cDoRYsW4fVCMQr3+EAVcJwAcgoDFUf4Iad4xQ9xYzSWtW6bGIrySU8DHriiymfM9LSZSLvk94Q7OvgvDYsuRUAE0gjs3LmTOOkzhp7e8Z/9BEOvqqpqOVfQsO2DVX94/zevH/zH4UEzb7/nsccew+tl48aNxan9v23cfvXVV99www1pz9GlLwQiAxX7fUeOHCG2JwEUbO73AYoWy8vLKysrfYFmp59ES7fTkJutuLjrF5F64403yN95553RHWVEQAREIE4AOYWTwPq7Szgp+Vd/fGfLli2PP/54fX39/fffz1tglOS0GfQTO30c81d6qfnZ+bfO3tvyRIerh7Zs4iQ9yqOoSLii45BOJCqc07m02f/x48cTrEEGqjTmIcf2NCgc3fWL5glRZXRVdEcZERABETAE4nJq196W1/anampqCIk+YsQI9NOcjkSGS27yEQUohvZCgaHDqC6SPhLAHMUOL3IKLcWhyJblFMQQczfddJN5ddRHgOpzjgi4rqgYtkRVjuZejxUBrwngDhVZp9BJSxubeI993LhxZlAmjOflxpVkzB0+ogDF4qJKPlXerQHkFBIKOYU3OgYq4hdYHsLYsWNx4ZKBqjP2wJ2oAOKBoqKXElWd167uiEDgBDZv3vzTScMwOBk5tWDBgvnz52c4s4+PKECxSFRRnYcEjtG74RMi4cKFCygq1DAGKrO3a3MUtFhYWDh9+nSbjXrRlhSV035U8TVkNmjlUxVnorwIhEyAXbz164/iO/Xyh1+gk0i4TGUGQgGKUWZp49a66c3vXbj2iZqazFX0qVMEkFMERj927Bje6HkxUEEDGbd48WKnsDjSGd64dKQn+eqGHzYq6DBViCpJ4HwtFLUrAq4RYBfvkUce2T+0eO3atb2RU6b/RlRRhYpUj3YJXRud+tMlAexDbW1tzR2JLwVeuOuyWO5umhORteXXmbDc0mHijaKir/z+4DYhUdV5KeuOCARIgF28kpKSp556ijgIPVqn4nwoTBUqUj3DLmG8ivIuEMB7CRsVMahIuE9hK7LfK5y3Kioq7LfrfosyUDFHPikqumtElWbO/d8u9VAELBBADxEWoUtVZA7vK3hggznyL60zGSqmldSlOwQwUKGoiOdJam1ttW+gKiq6cmQkBxm5w8Sdnuh7mbnwxo8qWjdMG1GPly1bZkLWRveVEQEREIGIwKpVq1auXMklR/5FN5XxlwCv+CGnOHOGxMaffTkFOjy3Zs2aZTb+/CWZo55r+wiwntmozFIwokqKOEe/GHqsCCSAALYrLAokMgkYjoZgDFTE1URRIacQVZaZXH/99Ww7VldXW27Xl+b0jcxMeamo6LdElS+/ZuqnCIiACGRJAAMVior/9tnv43BGFBV3snxmX6sTrKG4uPjGG2/sa8UQysst3cyyr4qK3htRFcJi1RhFQAREIGQC7e3tGKXMoch5MVCx00cfCMIf8ixkGLu2/AwcjxUVA0BUrV69OsM06yMREAEREAGvCWCOwi7FwS+EocJQRHhP7FWWR8R+Hy3ecccdltv1pTkpKjNTfisqxiBR5cuvnPopAiIgAv0ggFGKhJwicZwf+X48JMsqfNHoXO0MDOGT4dNwPvJeUTFVzCVxqsKZM41UBERABMIhgITCRoUHlfFJt2+guuaaa6CtqJ7dLTkZqCIySVBUDAa3OImqaFKVEQEREIFkELhinvrmmyshE06c4PwZ+3IKjEQTvfnmmxU0obsVJQNVRCYhiorxIKo4UDkamDIiIAIiIAK+EzCKinORsVHhzGT8mWwOSsfO9EhbNqoIUXIUFUNCUUlURVOrjAiIgAh4TcC84sfBL8gprFOky5cvWx4RUT0nTZo0depUy+161JwUVTRZiVJUjEqiKppaZURABETAawIcNUPiFD+2/AiYbt9AxckctFtZWek1xlx3Xrt+EeGkKSoGJlEVza4yIiACIuApAQJQnTt3jhhUJDzTMVDZj+pJpAboSVFlWEKK7RmHk0BFxfAkquJzrLwIiIAIeEcAf3CMH83Nzdio8EnHVmR/CKi6xYsX229XLXpKIJmKismQo7qnK1LdFgEREAEsUhio8KBCTuHJhJyyb6CST3pv1qGcqOKUEquo+OMGUaXJjk+28iIgAiLgBQHkFDYqXvEj5cWDCkrouYqKCi9w5bGT+pKNw0+somKQiCqCVGm+4/OtvAiIgAg4TgBzFHKKhKbBQMUlyXKfR48eTYu1tbWW2/WuObmlx6csyYqKcRpRpSmPT7nyIiACIuAyAbTU+fPnsU6hqNBS9iMmAAclN3PmTEX1zLxO5JaexifhiorRIqcaGhokqtImXpciIAIi4BoBxBPJbPlxNLL5f5s7lvt53XXX0aIO8usRu75Y0xAlX1ExYImqtFnXpQiIgAi4RqBDTV2RU/yPjYEKRWUc0u0rKvowceLE0tJS1xC51h8pqrQZCUJRMWaJqrSJ16UIiIAIOEUA5UQMz5MdCUV15swZo7Esd7KoqIigCdXV1Zbb9bE5uSmnzVooiophG1GVNn5dioAIiIAI5J0A4gmXqVQqhZYiBhVB0omWnhcnKmJfQWPOnDl5Z+J+B2SjSpuj/wOd2RWv73j1jAAAAABJRU5ErkJggg=="></img></p><h3 id='addingastar' >Adding A*</h3><p>Now we have ground for an AI to stand on and obstacles for it to avoid. So now we are going to add the A* Pathfinding System to the scene to enable Pathfinding.</p><p>Create a new GameObject, name it "A*", then add the "AstarPath" component to it (Menu bar → Components → Pathfinding → Pathfinder).</p><p>The <a href='http://arongranberg.com/astar/documentation/stable/astarpath.html'>AstarPath</a> inspector is divided into several parts. The two most important are the Graphs area and the Scan button at the bottom. The Graphs area holds all the graphs in your scene, you may have up to 256, but usually 1 or 2 will be sufficient. A single graph is usually preferred for simplicity.</p><p>If you open the Graphs area by clicking on it, you will see a list of graphs which you can add. For this tutorial, we will create a <a href='http://arongranberg.com/astar/documentation/stable/gridgraph.html'>GridGraph</a>, which generates nodes in a grid pattern.</p><p></p><div class='simplesect simplesect-see' ><h3>See</h3><p>You can read more about the different graph types in <a href='http://arongranberg.com/astar/documentation/stable/graphtypes.html'>Graph Types</a>.</p></div><p>
- After you have added the grid graph, click its label to bring up the graph settings.</p><p>At the bottom of the inspector, you will find a button called "Scan". This is used to calculate the graph based on its settings and the world. After you change any settings, you will have to scan the graph to see the changes. There is a handy <a href='http://arongranberg.com/astar/documentation/stable/shortcuts.html'>shortcut</a> for this: Cmd+Alt+S (mac) or Ctrl+Alt+S (windows).</p><p>All graphs are scanned by default when the game starts (unless the startup is cached, more about that in <a href='http://arongranberg.com/astar/documentation/stable/saveloadgraphs.html'>another part</a>).</p><p> <img class="tinyshadow" src="data:image/png;base64,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nz83nGYHAAAADH5EItHd3T0sLMzOzq79t20DXmNj47lz5wICAsaPH89gMLAzzQEAAIBBTqfTKRSKoqKis2fPxsXF2dvbt8nQNuD9+eefAQEB48aNo9FoeDwezisAAADwUtDr9Uwm09HRsbW19c8//xw3blybDG0D3vPnz8ePH0+j0WxsbPqpjwAAAAZafX3977///uTJE5VK1WEGMpns7e39+uuvOzo69meR7pai0WihoaE//vhj+2xtA55Go4GZTAAAsCp1dXV79+7lcrlTp061s7NrHwJ0Op1MJisuLv7uu+/mzZvn5OTUZRGNRtPU1NStIu1b6UHfHB0dGQyGVqtt/2N2sGgFZjIBAMCqXLx40dPT87XXXrO3t7exsekwqLi6urq4uFy4cOHixYszZ840XeTatWt5eXm2trYxMTGtra3mFOmwlZ71rbN7tj65k2tubu6LagEAAPSFJ0+eBAcH29vbE4nEDqMFHo8nEon29vYhISFCodB0kYsXL165ckWtVtfV1f3222/BwcGmi7S0tHzzzTf79+9v30qbUlVVVR12vn2pDnXvPDyhUHj+/Pnq6moGgzF69Oh//OMf7e8Fnz9//p///GfOnDkTJ040Tt+zZ4+Dg8OMGTN6UGe3iMXiffv2vf322z4+Pr2pBwAArIRKpbKzs+ty6YaNjY2dnZ1arTZR5Pfff8/LyzNcKpXKLos0NDRIJBLDQzvjVoxLVVRUHDhwICoqyji45OTk3Lp1KzEx0dvb27hUh7oR8AoKCjIzM5lMZmBgoFgs3rNnT3l5eVJSUptsLi4u7777blhYWJv0x48ftz/33Mw6u6WlpeXBgweTJk3qTSUAAGBV8Hg8Ho9vbW198ODBX3/9JRaLFQoFFnucnJz8/PwCAgLazChiRYwr+e23327cuGGcMm3aNAKBYKIIQsje3n7WrFmenp6d5cFShg0bFhUVdfPmTYQQFvOwaBcZGenr64tlM/0zmhvwWltbv//+e3d39/Xr11MoFITQ999///vvv0+aNIlEIuXk5PD5/Pz8fG9vb19f39ra2ubmZicnp6ampt9//12hUMTExPSmTj6f39jYeO3atdraWjabPXbsWBqNVl9fn5OTM3r06L/++qumpiYsLCwoKMhQuV6vP3v2bG1tbWhoqHE6AACADjU2Nh46dIhIJIaGhr7yyit//PEHQig0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K1Y8++yzhBCLxfLzzz9XVFSMGDFixowZPB6v0zC676h9bP7+/jqdzr67wr///e+ZM2fezje14c4wGo07duw4efKkj49PeHh4dnb2d99999e//nWw4wKAwdf/z/AMBsPu3bv3798fFxfX1NS0cuVKppDZl87Pz8/V1dXPzy8kJMReaDQaly5dqlark5KSLl682MtxG5vNtr909cEHH+Tn548fP76mpsbeY8cwuu+ofWxisfjrr79myquqqo4cOeKw3QHcnWpra4cNG2b/fHlycnLHeQIAcE4D8h6e0Wh84YUXBALBhAkT0tPT22/uGhYWNmzYsLCwsLFjx9of+PH5/E8++cTT05MQIpFIPvvss8WLF3fVeFNTk9VqValU27Ztmzx5MiFELpfX1dVt3ryZoqikpKSXXnqppKTEz8+vYxhisbibjtrHRgjhcrlXrlwJDw///fffU1NTKYoaiHsF/aupqcnDw8P+093dvbGxcRDjAYC7x4AkPIlEwjyZY7PZIpFIr9f3uGRcLpdv3rz56tWrJpOp+5qffPIJh8MRiUTx8fFPPPEEIaSmpqa1tfXll19mKly/fl2hUPj5+XUMQywW976jlJSU3377LTw8PDMz87333uvltcPgcnFxUavV9p8ajabHTZcAwEncFV9aKSsr++KLL1asWBEeHl5fX999dvnnP//p8PEYoVAYHh7+5ptv2ksEAkH7YeWtdZSSkvLKK6/cf//9MpnM39+/j9cEgyMgIKCurk6v1wuFQkJISUlJYGDgYAcFAHeFQXgPj8vlOiyca2pq8vf3j4qK4vP5v//+e18bjI6OrqioUCgUEomEpulPP/2002zXm47ax+bp6env779hw4YHH3ywryHBYJHJZMnJyRs2bCCEKBSKHTt2MNMAAACDkPBmzpx54MCBt956y14yYcIEDoezePHiZ599VqVS9bVBiUTy+uuvr169+oUXXli0aFFAQEBXs1g9duQQ27Rp02pqaqZMmdLXkGAQ/eMf/zh+/HhcXNyUKVOWLFkyZsyYwY4IAO4KVEZGRvvf27dvX7Zs2UCvv6dp2mQyOXz5UKlU8vn8rl7L65HNZmtpaZFKpT1+ULH7jtrHdvLkyXPnzrXPzXB30mq1SUlJ7UuampqkUukt/+sEAEPRuXPnxGJxa2vr+vXrn3nmGYejg/MMj6KojmnpNhcXsFis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"></img> As the name implies, the GridGraph will generate a grid of nodes with the size width*depth. A grid can be positioned anywhere in the scene, and you can rotate it any way you want.</p><p>The Node Size variable determines how large a square/node in the grid is, for this tutorial you can leave it at 1, so the nodes will be spaced 1 unit apart.</p><p>The position needs to be changed, though. Switch to bottom-left in the small selector to the right of the position field (currently named "Center"), then enter (-50,-0.1,-50). The -0.1 is to avoid floating point errors, in our scene the ground is at Y=0, if the graph was to have position Y=0 too, we might get annoying floating point errors when casting rays against it for example (like the height check does).</p><p>To make the grid fit our scene, we need to change the width and depth variables, set both to 100 in this case. You can see that the grid is correctly positioned by the white bounding rectangle in the scene view, which should now be enclosing the plane exactly.</p><h4 id='heighttest' >Height Testing</h4><p>In order to place the nodes at their correct height, the A* system fires off a bunch of rays against the scene to see where they hit. That's the Height Testing settings. A ray is fired from [Ray Length] units above the grid downwards, a node is placed where it hits. If it doesn't hit anything, it is either made unwalkable if the Unwalkable When No Ground variable is toggled or the node is placed at Y=0 relative to the grid if it is set to false.</p><p>To make sure our height testing hits the correct things, we need to change the mask used. Currently it includes everything, but that would include our obstacles as well, and we don't want that. So set the Mask to only include the "Ground" layer which we created earlier.</p><h4 id='collisiontest' >Collision Testing</h4><p>When a node has been placed, it is checked for walkability, this can be done with a Sphere, Capsule or a Ray. Usually a capsule is used with the same diameter and height as the AI character which is going to be walking around in the world, preferably with some margin though.</p><p>Our AI will have the standard diameter and height of 1 and 2 world units respectively, but we will set the diameter and height for the collision testing to 2 and 2 to get some margin.</p><p>Next, to make the system aware of the obstacles we placed, we need to change the mask for the Collision Testing, this time set it to contain only the "Obstacles" layer as we wouldn't want our ground to be treated as an obstacle.</p><p>Now that everything is set up correctly you can press the Scan button. Wait a fraction of a second and you've got a generated grid! (if you have done everything correctly, that is. Compare your settings to the image below and make sure that Show Graphs is true).</p><p><table class='table table-striped table-filled' ><tr rows='1' cols='2' ><td thead='no' ><p> <img class="tinyshadow" src="data:image/png;base64,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"></img> </p>
- </td><td thead='no' ><p> <img class="tinyshadow" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlAAAAO2CAIAAACo6j45AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4nOzdeVRT17448J2QOQECBAgEggVMZRQQAkiuA61aULH2WqvYlit6lZ8iDlX0WqtFq21ftU+xtFZr61C1V0uts9g6VnBAKYJSVCIQVIIBAkmATCS/P85rVhZDCBAGyfez3norZ2dP7Ev9cvbZZ29cfn4+AgAAAIY6Qm8Kq1SqxsbG1tbWDr8lEolOTk44HK43TQAAAAAW0auA19jYGBwczOFwOvy2uLj42bNnTk5OeDy+zVdyufz58+dardZUzwgEd3d3W1vb3vQQAAAAwPQq4LW2tnYW7RBCQUFBer3++fPnLBarzX1ea2urQCBgMpkmKpdKpWVlZb3pHgAAAGDQq4DXpeDgYL1eLxaLWSyWcbpWqzUd7RBCDg4Opm8BLau1tbW+vh67H1UoFAwGo9+aBgCAl9rTp09v374tFosRQmw2m8/ne3h49KCe7OxshNA///lP84u0trb+9NNPCKFZs2bZ2NiYztx2srE3qqRPx372WquuNfKTGGmzFEscOXKkRqPpVj0KhcLEt7W1tal/W7ly5f79+9VqtYn8UqlUKv2/zohEotTU1AcPHrTJc/Pmzddff33KlCk3btyoqKiYMGHC0aNHzenqpk2bdu3aZU5OAAAYkm7cuHH48OHKykoOh8Plcquqqn766aebN2/2oCqhUCgUCrtVpKmp6dmzZ8+ePWtqauoyc9s7vBs3brx48aJ9PhcXl+joaBMVtepay2rKhjl7VdaLqESKLaWHz94OHz585MiRI0eOdHaPpVQq8/Pzg4ODfXx8ampqvvnmm+Li4q1bt3ZW4erVqxFCu3fvRgg1NTXl5+fPmjWrTZ79+/czGIyvv/7ax8cHh8OtWLHiH//4hzm9LS4u7tkfMgAAMAQ8ffr0jz/+QAhNnTrVzs5Or9dHRETs37//+vXrHh4epv953LNnj+FuBCGUnp6Offif//kfBweHf//73+Z0wM7O7u2338Y+dJm5bcALDAy8cuWKTqczTsTj8YGBgSZqKa0uTfz2fezzjK/eQQjxN47+NunriFfCzemxARbtZs+e3eWM4muvvYbFra1btx47duzFixcuLi719fWnTp2qrq7mcrkJCQkMBuPUqVPPnz9HCGVmZqakpGBldTrdoUOHqqur//GPf0RGRv78888VFRUEAuG3337z9PRsbm6urq5uamp68eLFTz/9FB8fn5eX9+LFi3HjxoWHhyOE5HL5sWPHGhsb4+PjjbukVqtPnTpVVlbm6uo6bdo0BwcHrIbXXnvt8uXL/v7+sbGx3RoNAAAY5G7fvo19EIvFV65c8fDwGDduHEJIp9Pdvn3bdMDrLKQZIp+Z3NzczMzZNuDZ2tpyudyKigrjRC6Xa3q1JI/Nu/6fK5+e+ZxOpuuRXq5UrJvyHwqJ0mXztbW1hsd7hmiXmJhoZu8RQs7Ozgih5ubmlpaWuXPn4nC4yMjIgwcPXrp06bvvvpPJZNiDwLq6OkMU3717t4ODQ0VFxbFjx7799tvGxkatVqvX6+vq6rD/f+jQocDAQDc3t0OHDv3xxx9sNvvJkyc///zz999/z+PxUlJSRCIRn8//6KOPGhoasP9FdTrdsmXLHj16NGbMmNOnTx8/fvzHH3/Eqvr999+ZTCabzTb/hwIAgJcC9twOIZSXl2dvbz9u3LgrV660+cp8Pj4+3S2iVCqx50opKSkUShdBp4NFK35+fs+ePTM8eCMSiX5+fqZrwePwNDLthUIy02/sjbJbw5y8aGRalx2Vy+Vz587FIlx3o11VVVVBQUFNTc3Ro0fd3d25XK5KpVq9ejWPx2OxWK6urt9++61UKp0zZ87Vq1cRQhkZGYay48aNmz9/vkQimTJlSl5e3qJFi65du0aj0YzzGEyaNGn+/PlPnz795z//eevWrfr6+rKysnXr1k2dOlUsFhsert66devu3bvffvttSEiITCabPHny+fPnsdvi119/PS0tzZwfCgAAXl4REREVFRVFRUXdLWhYq9Kt5So90EHAI5FIw4cPLykpwS6HDx9OIpFM17I2+6OLf13StmoLKv7U6XV4HD7vyY19yXtNl7K1tZ09e/aRI0eKi4vv37/frXu7n3/++eeff8bhcH5+fmvXrsXj8RQKRSKRHDlypLy8HJsXViqVHZb19vZGCDk7O5NIpC6fc2KZsdu45ubmqqoqhBA2t8lms93d3bFsT548QQh9+OGH2AsYWq1WJBJhAc/0bDAAALy82Gy24f2xa9eu6fV646/MrKS7C1WMUSgU7HFVl7d3qLPXEnx8fCorK5uamuh0ujn3mGsnr04Zv2D6zhm/pv38r+/mf/JWxgi3V83pKxbhejCTmZqaOmPGDBKJZFiHevbs2S1btmBLN2/evPnll1+aX5v5qFQqQqi+vt7NzU2n08lkMiydRqMhhDZt2uTo6Iil2NnZ1dTU9EUfAABgkODz+U+ePMEeGE2YMAEhdObMGYQQHo/n8/mmy2KLVozXqhi+Mn/RCkKouroaIfTKK690mbPjgIfH4/38/O7cuePn59d+n5T2GBSGqL6Kbc9mUpnSZulIz2AKsetgi0lMTPTz8wsNDTUzP4ZIJGKxx6ChoQGHw/H5fDs7O8MkMkKIQqFUVFTcu3dv5MiR3WqiQxERETY2Nt98883/+3//7+rVqw0NDVh6dHQ0iUQ6ffr0/Pnzi4qKdu/evXLlSgcHh963CAAAg5aHh0dMTExubq5Op8MmwBBCeDxeIBB0uYK9TUjr7loVjEwmO3bsGEIoJSWly4WanQYzDofj4+NjYiOVNvRIP4s/Q6FSJEbOMj/aYbob7ToUHx/v4+Pz/vvvv/XWW8a30m+//bZCoViwYIHx+tce43A46enp9+/fnzdvnkQiGT58OJbOZrM3bdp08+bN6dOnb9y4MSIiosu/bgAAYAiIjo6eNWuWr6/vkydPnjx54uvrO2vWrKioKPNr8PHx6cFyFQydTudwOBwOh06nd5kZ15vTEqqrq6dMmdJlttOnT7dZNtrQ0ODr62v6BgjbWqzLDVnal6LT6W0eOup0upaWFnOGw0wajUar1ba5xcQakkqltra2XT71BAAA0M96tbWYjY3Ns2fPTN8FPnv2rP12L7a2tmVlZV1uHt2DnaM7DKJ4PN6C0Q4hRCQSiURihw05OTlZsCEAAACW0qs7PNPHA2FsbGzs7e3JZHKPWwEAAAB6r1d3eGQy2cXFxVJdAQAAAPqOJTePBgAAAAYtgkXWLgIAAACDHO61114b6D4AAAAAfY7wxhtvDHQfAAAAgD5HsLe3H+g+AAAAAH2OYM6GmwAAAMDLDlZpAgAAsAoQ8AAAAFgFCHgAAACsAgQ8AAAAVsHcrcWePn2al5dXW1tLo9GCg4NDQ0Oxo717rLa29tSpUxMmTOjyzCQAAACg98y6w/vrr7++++47kUjk5uam1WqPHz9++vTpXjasUqmePHnS1NTUy3oAAAAAc3R9h6fT6U6ePMlisRYsWIAd83bixInbt29jZ3zn5eUFBgaWlJRwOJyAgACFQlFQUNDQ0ODk5DRq1CgKhSKTyfLy8kaOHFleXl5fXz9ixAhfX1/jyq9fv97Q0GBIr62tLSkpaWxsZLPZoaGhBEKvtrcGAAAAMDbTp083naOqqurmzZsTJkzw9PTEUoYPHx4TE8NgMOrq6o4fP15WViaXy52dnZ2dnbOysp4/f+7o6FhQUPDo0aNRo0bV1tYeP35cKBQ2NzeLxeK8vDxnZ2dXV1e5XH7nzh2JRKJQKCorK2/fvu3j42NjY5OVlSWTyezs7G7cuCGRSAICAvp+EAAAAAx9Xd8/yWQy9PfBqk1NTVevXsXSg4KC8Hg8QigwMBDbn0ytVickJLi5udna2trb21+8eNEwY+nr6zt16lStVpuZmXn9+vWgoCAs3d/ff/z48TKZ7Isvvnj06JG3t7dKpYqMjAwPD+fz+Wq1ug9+ZAAAANao64CHbcWChS6dTieTyZRKpVAodHNzww7DM9z5EYlEuVyel5cnkUiw/BqNBvtq2LBhCCECgeDl5VVaWmqoHKvBzs6OQCCoVCoul+vp6XnixIlLly698sorMTExFv1hAQAAWK+uF61wOBwbG5uioiKEkK2t7axZs0JDQxFCjo6ObXIWFhb++uuvPj4+c+fOnTRpkvFXhls9hUKBPQjsEJFIXLBgweLFi8eOHSsSiX744QfTx6kDAAAAZuo64FGp1NGjR5eWlv70009FRUV//PHH6dOn3d3duVxum5zNzc04HM7Hx4dKpZaUlBh/lZeXV1FRUVBQ8OTJk+HDh3fW1sOHD7du3VpTU+Pv78/hcLRarU6n69kPBgAAABgzaw3khAkTsAWZDx48wOFwr776akJCQvv38EJCQgoLC7/55hsymezn52f8lb+//08//dTU1OTl5TVhwoTOGvL19R02bFh2drZer6fT6dOnTycSiT34qQAAAIA2cAcOHDAzq16vb2pqIpPJpoMQlsfwOsGzZ8927do1a9Ysf39/pVJJpVK7bEir1ba0tDAYjF6+2w4AAAAYdOMtNxwOx2AwusxGp9M7K25OtEMIEQgEW1tb8zsGAAAAdKnP99K0t7efNGmSq6trXzcEAAAAmNDn+5gwGAyBQNDXrQAAAACmwWkJAAAArAIEPAAAAFYBAh4AAACrAAEPAACAVYCABwAAwCpAwAMAAGAVIOABAACwChDwAAAAWIUOXjyXyWQFBQXPnz83nGYHAAAADH5EItHd3T0sLMzOzq79t20DXmNj47lz5wICAsaPH89gMLAzzQEAAIBBTqfTKRSKoqKis2fPxsXF2dvbt8nQNuD9+eefAQEB48aNo9FoeDwezisAAADwUtDr9Uwm09HRsbW19c8//xw3blybDG0D3vPnz8ePH0+j0WxsbPqpjwAAAAZafX3977///uTJE5VK1WEGMpns7e39+uuvOzo69meR7pai0WihoaE//vhj+2xtA55Go4GZTAAAsCp1dXV79+7lcrlTp061s7NrHwJ0Op1MJisuLv7uu+/mzZvn5OTUZRGNRtPU1NStIu1b6UHfHB0dGQyGVqtt/2N2sGgFZjIBAMCqXLx40dPT87XXXrO3t7exsekwqLi6urq4uFy4cOHixYszZ840XeTatWt5eXm2trYxMTGtra3mFOmwlZ71rbN7tj65k2tubu6LagEAAPSFJ0+eBAcH29vbE4nEDqMFHo8nEon29vYhISFCodB0kYsXL165ckWtVtfV1f3222/BwcGmi7S0tHzzzTf79+9v30qbUlVVVR12vn2pDnXvPDyhUHj+/Pnq6moGgzF69Oh//OMf7e8Fnz9//p///GfOnDkTJ040Tt+zZ4+Dg8OMGTN6UGe3iMXiffv2vf322z4+Pr2pBwAArIRKpbKzs+ty6YaNjY2dnZ1arTZR5Pfff8/LyzNcKpXKLos0NDRIJBLDQzvjVoxLVVRUHDhwICoqyji45OTk3Lp1KzEx0dvb27hUh7oR8AoKCjIzM5lMZmBgoFgs3rNnT3l5eVJSUptsLi4u7777blhYWJv0x48ftz/33Mw6u6WlpeXBgweTJk3qTSUAAGBV8Hg8Ho9vbW198ODBX3/9JRaLFQoFFnucnJz8/PwCAgLazChiRYwr+e23327cuGGcMm3aNAKBYKIIQsje3n7WrFmenp6d5cFShg0bFhUVdfPmTYQQFvOwaBcZGenr64tlM/0zmhvwWltbv//+e3d39/Xr11MoFITQ999///vvv0+aNIlEIuXk5PD5/Pz8fG9vb19f39ra2ubmZicnp6ampt9//12hUMTExPSmTj6f39jYeO3atdraWjabPXbsWBqNVl9fn5OTM3r06L/++qumpiYsLCwoKMhQuV6vP3v2bG1tbWhoqHE6AACADjU2Nh46dIhIJIaGhr7yyit//PEHQig0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K1Y8++yzhBCLxfLzzz9XVFSMGDFixowZPB6v0zC676h9bP7+/jqdzr67wr///e+ZM2fezje14c4wGo07duw4efKkj49PeHh4dnb2d99999e//nWw4wKAwdf/z/AMBsPu3bv3798fFxfX1NS0cuVKppDZl87Pz8/V1dXPzy8kJMReaDQaly5dqlark5KSLl682MtxG5vNtr909cEHH+Tn548fP76mpsbeY8cwuu+ofWxisfjrr79myquqqo4cOeKw3QHcnWpra4cNG2b/fHlycnLHeQIAcE4D8h6e0Wh84YUXBALBhAkT0tPT22/uGhYWNmzYsLCwsLFjx9of+PH5/E8++cTT05MQIpFIPvvss8WLF3fVeFNTk9VqValU27Ztmzx5MiFELpfX1dVt3ryZoqikpKSXXnqppKTEz8+vYxhisbibjtrHRgjhcrlXrlwJDw///fffU1NTKYoaiHsF/aupqcnDw8P+093dvbGxcRDjAYC7x4AkPIlEwjyZY7PZIpFIr9f3uGRcLpdv3rz56tWrJpOp+5qffPIJh8MRiUTx8fFPPPEEIaSmpqa1tfXll19mKly/fl2hUPj5+XUMQywW976jlJSU3377LTw8PDMz87333uvltcPgcnFxUavV9p8ajabHTZcAwEncFV9aKSsr++KLL1asWBEeHl5fX999dvnnP//p8PEYoVAYHh7+5ptv2ksEAkH7YeWtdZSSkvLKK6/cf//9MpnM39+/j9cEgyMgIKCurk6v1wuFQkJISUlJYGDgYAcFAHeFQXgPj8vlOiyca2pq8vf3j4qK4vP5v//+e18bjI6OrqioUCgUEomEpulPP/2002zXm47ax+bp6env779hw4YHH3ywryHBYJHJZMnJyRs2bCCEKBSKHTt2MNMAAACDkPBmzpx54MCBt956y14yYcIEDoezePHiZ599VqVS9bVBiUTy+uuvr169+oUXXli0aFFAQEBXs1g9duQQ27Rp02pqaqZMmdLXkGAQ/eMf/zh+/HhcXNyUKVOWLFkyZsyYwY4IAO4KVEZGRvvf27dvX7Zs2UCvv6dp2mQyOXz5UKlU8vn8rl7L65HNZmtpaZFKpT1+ULH7jtrHdvLkyXPnzrXPzXB30mq1SUlJ7UuampqkUukt/+sEAEPRuXPnxGJxa2vr+vXrn3nmGYejg/MMj6KojmnpNhcXsFis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"></img> </p>
- </td></tr></table>
- </p><h3 id='addingai' >Adding the AI</h3><p>What is a pathfinding test without some moving stuff? Not fun at all, so let's add an AI to play around with.</p><p>Create a capsule and add the Character Controller component to it, also place it somewhere visible on the plane.</p><p>Add the Seeker component to the AI, this script is a helper script for calling requesting paths from other scripts, it can also handle path modifiers which can e.g. smooth the path or simplify it using raycasts.</p><p>There are two alternatives now. You can either write your own movement script or you can use one of the built-in movement scripts. The included scripts are much more advanced than what you write in the tutorial linked below, so for most cases I recommend using them. However, I still recommend following the tutorial for writing a custom movement script even if you end up using one of the built-in ones in your game because it makes it easier to understand how the system works under the hood.</p><p>Check out this subpage for the tutorial: <a href='http://arongranberg.com/astar/documentation/stable/custom_movement_script.html'>Writing a movement script</a></p><p>The included scripts are called <a href='http://arongranberg.com/astar/documentation/stable/aipath.html'>AIPath</a>, <a href='http://arongranberg.com/astar/documentation/stable/richai.html'>RichAI</a> and <a href='http://arongranberg.com/astar/documentation/stable/ailerp.html'>AILerp</a>. The AIPath and AILerp scripts can be used on any graph, while RichAI is primarily for navmesh based graphs. While the AIPath and RichAI scripts follow the path loosely, the AILerp script uses interpolation to move along the path very precisely, but perhaps not in the most realistic way. Which one you use depends on your game.</p><p></p><div class='simplesect simplesect-see' ><h3>See</h3><p>For more information about the included movement scripts, take a look at <a href='http://arongranberg.com/astar/documentation/stable/movementscripts.html'>Movement scripts</a>. You can also see how they are used in the included example scenes.</p></div><p>
- For this tutorial, you can attach the <a href='http://arongranberg.com/astar/documentation/stable/aipath.html'>AIPath</a> component to the AI. Also create a new GameObject named "Target" and position it where you want the AI to move. Then attach the <a href='http://arongranberg.com/astar/documentation/stable/aidestinationsetter.html'>AIDestinationSetter</a> component to the AI. This component is just a very simple helper script which will tell the AIPath script to move to a particular location. You will likely replace this script with your own game-specific script in the future. The AIDestinationSetter component has a single field called "target", assign the "Target" GameObject that you created earlier to this field.</p><p>If you press play now, the AI should move to the target. How the movement scripts work and how to configure them is explained in more detail in the video tutorial linked above. Take a look at that if something doesn't seem to work.</p><h3 id='smoothing' >Smoothing</h3><p>Now you have learned how to set up a simple grid graph and how to calculate paths Pathfinding, but surely there must be a way to get those paths to look a bit smoother?<br>
- Sure it is. Path smoothing and simplification scripts are called Path Modifiers and are scripts which can be added to the same GameObject as the Seeker.</p><p>The most straight forward one is the Simple Smooth modifier, which can be found at Menu bar → Components → Pathfinding → Modifiers → Simple Smooth. Add that to our AI.</p><p>What this modifier is going to do, is to subdivide the path a number of times until each segment becomes smaller than the Max Segment Length variable. Then it will smooth the path by moving the points closer to each other. The modifier has a number of settings, I won't go through all of them here. See the <a href='http://arongranberg.com/astar/documentation/stable/simplesmoothmodifier.html'>SimpleSmoothModifier</a> documentation for more info about each variable. For this tutorial you can set Max Segment Length to, say 1. Iterations to 5 and Strength to 0.25. Experiment with it to get good values.</p><p>Now press play again, the path should look much smoother, just as we wanted.</p><p></p><div class='simplesect simplesect-warning' ><h3>Warning</h3><p>Smoothers don't usually take world geometry or the graph into account, so be careful with applying too much smoothing since that could cause paths to pass through unwalkable areas.</p></div><p>
- <img class="tinyshadow" src="data:image/png;base64,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"></img></p><p>Another good modifier to use is the <a href='http://arongranberg.com/astar/documentation/stable/funnelmodifier.html'>FunnelModifier</a> which will simplify the path a great deal. This modifier is almost always used when using navmesh/recast graphs.</p><p>Read more about modifiers on the page <a href='http://arongranberg.com/astar/documentation/stable/modifiers2.html'>Using Modifiers</a>.</p><h3 id='logging' >Logging settings</h3><p>Every time a path is calculated by the system, it can optionally be logged to the console. This can be a big help in understanding what the system is doing and also to spot performance issues. Logging is not free, however, so for release builds it is recommended that you disable it.</p><p>You can change the logging settings under the A* Inspector → Settings → Debug tab. <img class="tinyshadow" srcset="images/path_logging@2x.png 2x" src="data:image/png;base64,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"></img></p><p>Use less debugging to improve performance (a bit) or just to get rid of the console spam. Use more debugging (heavy) if you want more information about what the pathfinding scripts are doing. The InGame option will display the latest path log using the in-game GUI.</p><h3 id='end' >Conclusion</h3><p>That was the end of the Get Started tutorial part 1. I hope you learned something from it. From here on, you can explore the rest of the documentation or dig straight in to the project. If you want a little better AI, you can use the AIPath script, which is included in the project.</p><p>You can continue with the next part of the get started tutorial, where we will use navmesh graphs: <a href='http://arongranberg.com/astar/documentation/stable/getstarted2.html'>Using navmeshes</a></p><p>You can also take a look in the sidebar, there you will find a number of tutorials for how to use the package.</p><p>Good Luck! </p><div class='alert alert-danger' role='alert'>This is an excerpt from the full documentation. You can view the full documentation <a href='http://arongranberg.com/astar/documentation/stable'>here</a>. Most links on this page will just take you to the full documentation.</div>
- </article>
- </div>
- <div class="row">
- <div class="col-md-12" style="height: 30px">
- </div>
- </div> </div>
- </div>
- </div>
- <script>/*!
- * jQuery JavaScript Library v2.1.4
- * http://jquery.com/
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- *
- * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
- * Released under the MIT license
- * http://jquery.org/license
- *
- * Date: 2015-04-28T16:01Z
- */
- (function( global, factory ) {
- if ( typeof module === "object" && typeof module.exports === "object" ) {
- // For CommonJS and CommonJS-like environments where a proper `window`
- // is present, execute the factory and get jQuery.
- // For environments that do not have a `window` with a `document`
- // (such as Node.js), expose a factory as module.exports.
- // This accentuates the need for the creation of a real `window`.
- // e.g. var jQuery = require("jquery")(window);
- // See ticket #14549 for more info.
- module.exports = global.document ?
- factory( global, true ) :
- function( w ) {
- if ( !w.document ) {
- throw new Error( "jQuery requires a window with a document" );
- }
- return factory( w );
- };
- } else {
- factory( global );
- }
- // Pass this if window is not defined yet
- }(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
- // Support: Firefox 18+
- // Can't be in strict mode, several libs including ASP.NET trace
- // the stack via arguments.caller.callee and Firefox dies if
- // you try to trace through "use strict" call chains. (#13335)
- //
- var arr = [];
- var slice = arr.slice;
- var concat = arr.concat;
- var push = arr.push;
- var indexOf = arr.indexOf;
- var class2type = {};
- var toString = class2type.toString;
- var hasOwn = class2type.hasOwnProperty;
- var support = {};
- var
- // Use the correct document accordingly with window argument (sandbox)
- document = window.document,
- version = "2.1.4",
- // Define a local copy of jQuery
- jQuery = function( selector, context ) {
- // The jQuery object is actually just the init constructor 'enhanced'
- // Need init if jQuery is called (just allow error to be thrown if not included)
- return new jQuery.fn.init( selector, context );
- },
- // Support: Android<4.1
- // Make sure we trim BOM and NBSP
- rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
- // Matches dashed string for camelizing
- rmsPrefix = /^-ms-/,
- rdashAlpha = /-([\da-z])/gi,
- // Used by jQuery.camelCase as callback to replace()
- fcamelCase = function( all, letter ) {
- return letter.toUpperCase();
- };
- jQuery.fn = jQuery.prototype = {
- // The current version of jQuery being used
- jquery: version,
- constructor: jQuery,
- // Start with an empty selector
- selector: "",
- // The default length of a jQuery object is 0
- length: 0,
- toArray: function() {
- return slice.call( this );
- },
- // Get the Nth element in the matched element set OR
- // Get the whole matched element set as a clean array
- get: function( num ) {
- return num != null ?
- // Return just the one element from the set
- ( num < 0 ? this[ num + this.length ] : this[ num ] ) :
- // Return all the elements in a clean array
- slice.call( this );
- },
- // Take an array of elements and push it onto the stack
- // (returning the new matched element set)
- pushStack: function( elems ) {
- // Build a new jQuery matched element set
- var ret = jQuery.merge( this.constructor(), elems );
- // Add the old object onto the stack (as a reference)
- ret.prevObject = this;
- ret.context = this.context;
- // Return the newly-formed element set
- return ret;
- },
- // Execute a callback for every element in the matched set.
- // (You can seed the arguments with an array of args, but this is
- // only used internally.)
- each: function( callback, args ) {
- return jQuery.each( this, callback, args );
- },
- map: function( callback ) {
- return this.pushStack( jQuery.map(this, function( elem, i ) {
- return callback.call( elem, i, elem );
- }));
- },
- slice: function() {
- return this.pushStack( slice.apply( this, arguments ) );
- },
- first: function() {
- return this.eq( 0 );
- },
- last: function() {
- return this.eq( -1 );
- },
- eq: function( i ) {
- var len = this.length,
- j = +i + ( i < 0 ? len : 0 );
- return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );
- },
- end: function() {
- return this.prevObject || this.constructor(null);
- },
- // For internal use only.
- // Behaves like an Array's method, not like a jQuery method.
- push: push,
- sort: arr.sort,
- splice: arr.splice
- };
- jQuery.extend = jQuery.fn.extend = function() {
- var options, name, src, copy, copyIsArray, clone,
- target = arguments[0] || {},
- i = 1,
- length = arguments.length,
- deep = false;
- // Handle a deep copy situation
- if ( typeof target === "boolean" ) {
- deep = target;
- // Skip the boolean and the target
- target = arguments[ i ] || {};
- i++;
- }
- // Handle case when target is a string or something (possible in deep copy)
- if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
- target = {};
- }
- // Extend jQuery itself if only one argument is passed
- if ( i === length ) {
- target = this;
- i--;
- }
- for ( ; i < length; i++ ) {
- // Only deal with non-null/undefined values
- if ( (options = arguments[ i ]) != null ) {
- // Extend the base object
- for ( name in options ) {
- src = target[ name ];
- copy = options[ name ];
- // Prevent never-ending loop
- if ( target === copy ) {
- continue;
- }
- // Recurse if we're merging plain objects or arrays
- if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
- if ( copyIsArray ) {
- copyIsArray = false;
- clone = src && jQuery.isArray(src) ? src : [];
- } else {
- clone = src && jQuery.isPlainObject(src) ? src : {};
- }
- // Never move original objects, clone them
- target[ name ] = jQuery.extend( deep, clone, copy );
- // Don't bring in undefined values
- } else if ( copy !== undefined ) {
- target[ name ] = copy;
- }
- }
- }
- }
- // Return the modified object
- return target;
- };
- jQuery.extend({
- // Unique for each copy of jQuery on the page
- expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
- // Assume jQuery is ready without the ready module
- isReady: true,
- error: function( msg ) {
- throw new Error( msg );
- },
- noop: function() {},
- isFunction: function( obj ) {
- return jQuery.type(obj) === "function";
- },
- isArray: Array.isArray,
- isWindow: function( obj ) {
- return obj != null && obj === obj.window;
- },
- isNumeric: function( obj ) {
- // parseFloat NaNs numeric-cast false positives (null|true|false|"")
- // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
- // subtraction forces infinities to NaN
- // adding 1 corrects loss of precision from parseFloat (#15100)
- return !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0;
- },
- isPlainObject: function( obj ) {
- // Not plain objects:
- // - Any object or value whose internal [[Class]] property is not "[object Object]"
- // - DOM nodes
- // - window
- if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
- return false;
- }
- if ( obj.constructor &&
- !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) {
- return false;
- }
- // If the function hasn't returned already, we're confident that
- // |obj| is a plain object, created by {} or constructed with new Object
- return true;
- },
- isEmptyObject: function( obj ) {
- var name;
- for ( name in obj ) {
- return false;
- }
- return true;
- },
- type: function( obj ) {
- if ( obj == null ) {
- return obj + "";
- }
- // Support: Android<4.0, iOS<6 (functionish RegExp)
- return typeof obj === "object" || typeof obj === "function" ?
- class2type[ toString.call(obj) ] || "object" :
- typeof obj;
- },
- // Evaluates a script in a global context
- globalEval: function( code ) {
- var script,
- indirect = eval;
- code = jQuery.trim( code );
- if ( code ) {
- // If the code includes a valid, prologue position
- // strict mode pragma, execute code by injecting a
- // script tag into the document.
- if ( code.indexOf("use strict") === 1 ) {
- script = document.createElement("script");
- script.text = code;
- document.head.appendChild( script ).parentNode.removeChild( script );
- } else {
- // Otherwise, avoid the DOM node creation, insertion
- // and removal by using an indirect global eval
- indirect( code );
- }
- }
- },
- // Convert dashed to camelCase; used by the css and data modules
- // Support: IE9-11+
- // Microsoft forgot to hump their vendor prefix (#9572)
- camelCase: function( string ) {
- return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
- },
- nodeName: function( elem, name ) {
- return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
- },
- // args is for internal usage only
- each: function( obj, callback, args ) {
- var value,
- i = 0,
- length = obj.length,
- isArray = isArraylike( obj );
- if ( args ) {
- if ( isArray ) {
- for ( ; i < length; i++ ) {
- value = callback.apply( obj[ i ], args );
- if ( value === false ) {
- break;
- }
- }
- } else {
- for ( i in obj ) {
- value = callback.apply( obj[ i ], args );
- if ( value === false ) {
- break;
- }
- }
- }
- // A special, fast, case for the most common use of each
- } else {
- if ( isArray ) {
- for ( ; i < length; i++ ) {
- value = callback.call( obj[ i ], i, obj[ i ] );
- if ( value === false ) {
- break;
- }
- }
- } else {
- for ( i in obj ) {
- value = callback.call( obj[ i ], i, obj[ i ] );
- if ( value === false ) {
- break;
- }
- }
- }
- }
- return obj;
- },
- // Support: Android<4.1
- trim: function( text ) {
- return text == null ?
- "" :
- ( text + "" ).replace( rtrim, "" );
- },
- // results is for internal usage only
- makeArray: function( arr, results ) {
- var ret = results || [];
- if ( arr != null ) {
- if ( isArraylike( Object(arr) ) ) {
- jQuery.merge( ret,
- typeof arr === "string" ?
- [ arr ] : arr
- );
- } else {
- push.call( ret, arr );
- }
- }
- return ret;
- },
- inArray: function( elem, arr, i ) {
- return arr == null ? -1 : indexOf.call( arr, elem, i );
- },
- merge: function( first, second ) {
- var len = +second.length,
- j = 0,
- i = first.length;
- for ( ; j < len; j++ ) {
- first[ i++ ] = second[ j ];
- }
- first.length = i;
- return first;
- },
- grep: function( elems, callback, invert ) {
- var callbackInverse,
- matches = [],
- i = 0,
- length = elems.length,
- callbackExpect = !invert;
- // Go through the array, only saving the items
- // that pass the validator function
- for ( ; i < length; i++ ) {
- callbackInverse = !callback( elems[ i ], i );
- if ( callbackInverse !== callbackExpect ) {
- matches.push( elems[ i ] );
- }
- }
- return matches;
- },
- // arg is for internal usage only
- map: function( elems, callback, arg ) {
- var value,
- i = 0,
- length = elems.length,
- isArray = isArraylike( elems ),
- ret = [];
- // Go through the array, translating each of the items to their new values
- if ( isArray ) {
- for ( ; i < length; i++ ) {
- value = callback( elems[ i ], i, arg );
- if ( value != null ) {
- ret.push( value );
- }
- }
- // Go through every key on the object,
- } else {
- for ( i in elems ) {
- value = callback( elems[ i ], i, arg );
- if ( value != null ) {
- ret.push( value );
- }
- }
- }
- // Flatten any nested arrays
- return concat.apply( [], ret );
- },
- // A global GUID counter for objects
- guid: 1,
- // Bind a function to a context, optionally partially applying any
- // arguments.
- proxy: function( fn, context ) {
- var tmp, args, proxy;
- if ( typeof context === "string" ) {
- tmp = fn[ context ];
- context = fn;
- fn = tmp;
- }
- // Quick check to determine if target is callable, in the spec
- // this throws a TypeError, but we will just return undefined.
- if ( !jQuery.isFunction( fn ) ) {
- return undefined;
- }
- // Simulated bind
- args = slice.call( arguments, 2 );
- proxy = function() {
- return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
- };
- // Set the guid of unique handler to the same of original handler, so it can be removed
- proxy.guid = fn.guid = fn.guid || jQuery.guid++;
- return proxy;
- },
- now: Date.now,
- // jQuery.support is not used in Core but other projects attach their
- // properties to it so it needs to exist.
- support: support
- });
- // Populate the class2type map
- jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
- class2type[ "[object " + name + "]" ] = name.toLowerCase();
- });
- function isArraylike( obj ) {
- // Support: iOS 8.2 (not reproducible in simulator)
- // `in` check used to prevent JIT error (gh-2145)
- // hasOwn isn't used here due to false negatives
- // regarding Nodelist length in IE
- var length = "length" in obj && obj.length,
- type = jQuery.type( obj );
- if ( type === "function" || jQuery.isWindow( obj ) ) {
- return false;
- }
- if ( obj.nodeType === 1 && length ) {
- return true;
- }
- return type === "array" || length === 0 ||
- typeof length === "number" && length > 0 && ( length - 1 ) in obj;
- }
- var Sizzle =
- /*!
- * Sizzle CSS Selector Engine v2.2.0-pre
- * http://sizzlejs.com/
- *
- * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors
- * Released under the MIT license
- * http://jquery.org/license
- *
- * Date: 2014-12-16
- */
- (function( window ) {
- var i,
- support,
- Expr,
- getText,
- isXML,
- tokenize,
- compile,
- select,
- outermostContext,
- sortInput,
- hasDuplicate,
- // Local document vars
- setDocument,
- document,
- docElem,
- documentIsHTML,
- rbuggyQSA,
- rbuggyMatches,
- matches,
- contains,
- // Instance-specific data
- expando = "sizzle" + 1 * new Date(),
- preferredDoc = window.document,
- dirruns = 0,
- done = 0,
- classCache = createCache(),
- tokenCache = createCache(),
- compilerCache = createCache(),
- sortOrder = function( a, b ) {
- if ( a === b ) {
- hasDuplicate = true;
- }
- return 0;
- },
- // General-purpose constants
- MAX_NEGATIVE = 1 << 31,
- // Instance methods
- hasOwn = ({}).hasOwnProperty,
- arr = [],
- pop = arr.pop,
- push_native = arr.push,
- push = arr.push,
- slice = arr.slice,
- // Use a stripped-down indexOf as it's faster than native
- // http://jsperf.com/thor-indexof-vs-for/5
- indexOf = function( list, elem ) {
- var i = 0,
- len = list.length;
- for ( ; i < len; i++ ) {
- if ( list[i] === elem ) {
- return i;
- }
- }
- return -1;
- },
- booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
- // Regular expressions
- // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace
- whitespace = "[\\x20\\t\\r\\n\\f]",
- // http://www.w3.org/TR/css3-syntax/#characters
- characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
- // Loosely modeled on CSS identifier characters
- // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors
- // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
- identifier = characterEncoding.replace( "w", "w#" ),
- // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
- attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace +
- // Operator (capture 2)
- "*([*^$|!~]?=)" + whitespace +
- // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
- "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
- "*\\]",
- pseudos = ":(" + characterEncoding + ")(?:\\((" +
- // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
- // 1. quoted (capture 3; capture 4 or capture 5)
- "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
- // 2. simple (capture 6)
- "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
- // 3. anything else (capture 2)
- ".*" +
- ")\\)|)",
- // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
- rwhitespace = new RegExp( whitespace + "+", "g" ),
- rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
- rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
- rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
- rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
- rpseudo = new RegExp( pseudos ),
- ridentifier = new RegExp( "^" + identifier + "$" ),
- matchExpr = {
- "ID": new RegExp( "^#(" + characterEncoding + ")" ),
- "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),
- "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ),
- "ATTR": new RegExp( "^" + attributes ),
- "PSEUDO": new RegExp( "^" + pseudos ),
- "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
- "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
- "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
- "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
- // For use in libraries implementing .is()
- // We use this for POS matching in `select`
- "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
- whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
- },
- rinputs = /^(?:input|select|textarea|button)$/i,
- rheader = /^h\d$/i,
- rnative = /^[^{]+\{\s*\[native \w/,
- // Easily-parseable/retrievable ID or TAG or CLASS selectors
- rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
- rsibling = /[+~]/,
- rescape = /'|\\/g,
- // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
- runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
- funescape = function( _, escaped, escapedWhitespace ) {
- var high = "0x" + escaped - 0x10000;
- // NaN means non-codepoint
- // Support: Firefox<24
- // Workaround erroneous numeric interpretation of +"0x"
- return high !== high || escapedWhitespace ?
- escaped :
- high < 0 ?
- // BMP codepoint
- String.fromCharCode( high + 0x10000 ) :
- // Supplemental Plane codepoint (surrogate pair)
- String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
- },
- // Used for iframes
- // See setDocument()
- // Removing the function wrapper causes a "Permission Denied"
- // error in IE
- unloadHandler = function() {
- setDocument();
- };
- // Optimize for push.apply( _, NodeList )
- try {
- push.apply(
- (arr = slice.call( preferredDoc.childNodes )),
- preferredDoc.childNodes
- );
- // Support: Android<4.0
- // Detect silently failing push.apply
- arr[ preferredDoc.childNodes.length ].nodeType;
- } catch ( e ) {
- push = { apply: arr.length ?
- // Leverage slice if possible
- function( target, els ) {
- push_native.apply( target, slice.call(els) );
- } :
- // Support: IE<9
- // Otherwise append directly
- function( target, els ) {
- var j = target.length,
- i = 0;
- // Can't trust NodeList.length
- while ( (target[j++] = els[i++]) ) {}
- target.length = j - 1;
- }
- };
- }
- function Sizzle( selector, context, results, seed ) {
- var match, elem, m, nodeType,
- // QSA vars
- i, groups, old, nid, newContext, newSelector;
- if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
- setDocument( context );
- }
- context = context || document;
- results = results || [];
- nodeType = context.nodeType;
- if ( typeof selector !== "string" || !selector ||
- nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
- return results;
- }
- if ( !seed && documentIsHTML ) {
- // Try to shortcut find operations when possible (e.g., not under DocumentFragment)
- if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
- // Speed-up: Sizzle("#ID")
- if ( (m = match[1]) ) {
- if ( nodeType === 9 ) {
- elem = context.getElementById( m );
- // Check parentNode to catch when Blackberry 4.6 returns
- // nodes that are no longer in the document (jQuery #6963)
- if ( elem && elem.parentNode ) {
- // Handle the case where IE, Opera, and Webkit return items
- // by name instead of ID
- if ( elem.id === m ) {
- results.push( elem );
- return results;
- }
- } else {
- return results;
- }
- } else {
- // Context is not a document
- if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
- contains( context, elem ) && elem.id === m ) {
- results.push( elem );
- return results;
- }
- }
- // Speed-up: Sizzle("TAG")
- } else if ( match[2] ) {
- push.apply( results, context.getElementsByTagName( selector ) );
- return results;
- // Speed-up: Sizzle(".CLASS")
- } else if ( (m = match[3]) && support.getElementsByClassName ) {
- push.apply( results, context.getElementsByClassName( m ) );
- return results;
- }
- }
- // QSA path
- if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
- nid = old = expando;
- newContext = context;
- newSelector = nodeType !== 1 && selector;
- // qSA works strangely on Element-rooted queries
- // We can work around this by specifying an extra ID on the root
- // and working up from there (Thanks to Andrew Dupont for the technique)
- // IE 8 doesn't work on object elements
- if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
- groups = tokenize( selector );
- if ( (old = context.getAttribute("id")) ) {
- nid = old.replace( rescape, "\\$&" );
- } else {
- context.setAttribute( "id", nid );
- }
- nid = "[id='" + nid + "'] ";
- i = groups.length;
- while ( i-- ) {
- groups[i] = nid + toSelector( groups[i] );
- }
- newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;
- newSelector = groups.join(",");
- }
- if ( newSelector ) {
- try {
- push.apply( results,
- newContext.querySelectorAll( newSelector )
- );
- return results;
- } catch(qsaError) {
- } finally {
- if ( !old ) {
- context.removeAttribute("id");
- }
- }
- }
- }
- }
- // All others
- return select( selector.replace( rtrim, "$1" ), context, results, seed );
- }
- /**
- * Create key-value caches of limited size
- * @returns {Function(string, Object)} Returns the Object data after storing it on itself with
- * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
- * deleting the oldest entry
- */
- function createCache() {
- var keys = [];
- function cache( key, value ) {
- // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
- if ( keys.push( key + " " ) > Expr.cacheLength ) {
- // Only keep the most recent entries
- delete cache[ keys.shift() ];
- }
- return (cache[ key + " " ] = value);
- }
- return cache;
- }
- /**
- * Mark a function for special use by Sizzle
- * @param {Function} fn The function to mark
- */
- function markFunction( fn ) {
- fn[ expando ] = true;
- return fn;
- }
- /**
- * Support testing using an element
- * @param {Function} fn Passed the created div and expects a boolean result
- */
- function assert( fn ) {
- var div = document.createElement("div");
- try {
- return !!fn( div );
- } catch (e) {
- return false;
- } finally {
- // Remove from its parent by default
- if ( div.parentNode ) {
- div.parentNode.removeChild( div );
- }
- // release memory in IE
- div = null;
- }
- }
- /**
- * Adds the same handler for all of the specified attrs
- * @param {String} attrs Pipe-separated list of attributes
- * @param {Function} handler The method that will be applied
- */
- function addHandle( attrs, handler ) {
- var arr = attrs.split("|"),
- i = attrs.length;
- while ( i-- ) {
- Expr.attrHandle[ arr[i] ] = handler;
- }
- }
- /**
- * Checks document order of two siblings
- * @param {Element} a
- * @param {Element} b
- * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
- */
- function siblingCheck( a, b ) {
- var cur = b && a,
- diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
- ( ~b.sourceIndex || MAX_NEGATIVE ) -
- ( ~a.sourceIndex || MAX_NEGATIVE );
- // Use IE sourceIndex if available on both nodes
- if ( diff ) {
- return diff;
- }
- // Check if b follows a
- if ( cur ) {
- while ( (cur = cur.nextSibling) ) {
- if ( cur === b ) {
- return -1;
- }
- }
- }
- return a ? 1 : -1;
- }
- /**
- * Returns a function to use in pseudos for input types
- * @param {String} type
- */
- function createInputPseudo( type ) {
- return function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return name === "input" && elem.type === type;
- };
- }
- /**
- * Returns a function to use in pseudos for buttons
- * @param {String} type
- */
- function createButtonPseudo( type ) {
- return function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return (name === "input" || name === "button") && elem.type === type;
- };
- }
- /**
- * Returns a function to use in pseudos for positionals
- * @param {Function} fn
- */
- function createPositionalPseudo( fn ) {
- return markFunction(function( argument ) {
- argument = +argument;
- return markFunction(function( seed, matches ) {
- var j,
- matchIndexes = fn( [], seed.length, argument ),
- i = matchIndexes.length;
- // Match elements found at the specified indexes
- while ( i-- ) {
- if ( seed[ (j = matchIndexes[i]) ] ) {
- seed[j] = !(matches[j] = seed[j]);
- }
- }
- });
- });
- }
- /**
- * Checks a node for validity as a Sizzle context
- * @param {Element|Object=} context
- * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
- */
- function testContext( context ) {
- return context && typeof context.getElementsByTagName !== "undefined" && context;
- }
- // Expose support vars for convenience
- support = Sizzle.support = {};
- /**
- * Detects XML nodes
- * @param {Element|Object} elem An element or a document
- * @returns {Boolean} True iff elem is a non-HTML XML node
- */
- isXML = Sizzle.isXML = function( elem ) {
- // documentElement is verified for cases where it doesn't yet exist
- // (such as loading iframes in IE - #4833)
- var documentElement = elem && (elem.ownerDocument || elem).documentElement;
- return documentElement ? documentElement.nodeName !== "HTML" : false;
- };
- /**
- * Sets document-related variables once based on the current document
- * @param {Element|Object} [doc] An element or document object to use to set the document
- * @returns {Object} Returns the current document
- */
- setDocument = Sizzle.setDocument = function( node ) {
- var hasCompare, parent,
- doc = node ? node.ownerDocument || node : preferredDoc;
- // If no document and documentElement is available, return
- if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
- return document;
- }
- // Set our document
- document = doc;
- docElem = doc.documentElement;
- parent = doc.defaultView;
- // Support: IE>8
- // If iframe document is assigned to "document" variable and if iframe has been reloaded,
- // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936
- // IE6-8 do not support the defaultView property so parent will be undefined
- if ( parent && parent !== parent.top ) {
- // IE11 does not have attachEvent, so all must suffer
- if ( parent.addEventListener ) {
- parent.addEventListener( "unload", unloadHandler, false );
- } else if ( parent.attachEvent ) {
- parent.attachEvent( "onunload", unloadHandler );
- }
- }
- /* Support tests
- ---------------------------------------------------------------------- */
- documentIsHTML = !isXML( doc );
- /* Attributes
- ---------------------------------------------------------------------- */
- // Support: IE<8
- // Verify that getAttribute really returns attributes and not properties
- // (excepting IE8 booleans)
- support.attributes = assert(function( div ) {
- div.className = "i";
- return !div.getAttribute("className");
- });
- /* getElement(s)By*
- ---------------------------------------------------------------------- */
- // Check if getElementsByTagName("*") returns only elements
- support.getElementsByTagName = assert(function( div ) {
- div.appendChild( doc.createComment("") );
- return !div.getElementsByTagName("*").length;
- });
- // Support: IE<9
- support.getElementsByClassName = rnative.test( doc.getElementsByClassName );
- // Support: IE<10
- // Check if getElementById returns elements by name
- // The broken getElementById methods don't pick up programatically-set names,
- // so use a roundabout getElementsByName test
- support.getById = assert(function( div ) {
- docElem.appendChild( div ).id = expando;
- return !doc.getElementsByName || !doc.getElementsByName( expando ).length;
- });
- // ID find and filter
- if ( support.getById ) {
- Expr.find["ID"] = function( id, context ) {
- if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
- var m = context.getElementById( id );
- // Check parentNode to catch when Blackberry 4.6 returns
- // nodes that are no longer in the document #6963
- return m && m.parentNode ? [ m ] : [];
- }
- };
- Expr.filter["ID"] = function( id ) {
- var attrId = id.replace( runescape, funescape );
- return function( elem ) {
- return elem.getAttribute("id") === attrId;
- };
- };
- } else {
- // Support: IE6/7
- // getElementById is not reliable as a find shortcut
- delete Expr.find["ID"];
- Expr.filter["ID"] = function( id ) {
- var attrId = id.replace( runescape, funescape );
- return function( elem ) {
- var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
- return node && node.value === attrId;
- };
- };
- }
- // Tag
- Expr.find["TAG"] = support.getElementsByTagName ?
- function( tag, context ) {
- if ( typeof context.getElementsByTagName !== "undefined" ) {
- return context.getElementsByTagName( tag );
- // DocumentFragment nodes don't have gEBTN
- } else if ( support.qsa ) {
- return context.querySelectorAll( tag );
- }
- } :
- function( tag, context ) {
- var elem,
- tmp = [],
- i = 0,
- // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
- results = context.getElementsByTagName( tag );
- // Filter out possible comments
- if ( tag === "*" ) {
- while ( (elem = results[i++]) ) {
- if ( elem.nodeType === 1 ) {
- tmp.push( elem );
- }
- }
- return tmp;
- }
- return results;
- };
- // Class
- Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
- if ( documentIsHTML ) {
- return context.getElementsByClassName( className );
- }
- };
- /* QSA/matchesSelector
- ---------------------------------------------------------------------- */
- // QSA and matchesSelector support
- // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
- rbuggyMatches = [];
- // qSa(:focus) reports false when true (Chrome 21)
- // We allow this because of a bug in IE8/9 that throws an error
- // whenever `document.activeElement` is accessed on an iframe
- // So, we allow :focus to pass through QSA all the time to avoid the IE error
- // See http://bugs.jquery.com/ticket/13378
- rbuggyQSA = [];
- if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {
- // Build QSA regex
- // Regex strategy adopted from Diego Perini
- assert(function( div ) {
- // Select is set to empty string on purpose
- // This is to test IE's treatment of not explicitly
- // setting a boolean content attribute,
- // since its presence should be enough
- // http://bugs.jquery.com/ticket/12359
- docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" +
- "<select id='" + expando + "-\f]' msallowcapture=''>" +
- "<option selected=''></option></select>";
- // Support: IE8, Opera 11-12.16
- // Nothing should be selected when empty strings follow ^= or $= or *=
- // The test attribute must be unknown in Opera but "safe" for WinRT
- // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
- if ( div.querySelectorAll("[msallowcapture^='']").length ) {
- rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
- }
- // Support: IE8
- // Boolean attributes and "value" are not treated correctly
- if ( !div.querySelectorAll("[selected]").length ) {
- rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
- }
- // Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+
- if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
- rbuggyQSA.push("~=");
- }
- // Webkit/Opera - :checked should return selected option elements
- // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
- // IE8 throws error here and will not see later tests
- if ( !div.querySelectorAll(":checked").length ) {
- rbuggyQSA.push(":checked");
- }
- // Support: Safari 8+, iOS 8+
- // https://bugs.webkit.org/show_bug.cgi?id=136851
- // In-page `selector#id sibing-combinator selector` fails
- if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) {
- rbuggyQSA.push(".#.+[+~]");
- }
- });
- assert(function( div ) {
- // Support: Windows 8 Native Apps
- // The type and name attributes are restricted during .innerHTML assignment
- var input = doc.createElement("input");
- input.setAttribute( "type", "hidden" );
- div.appendChild( input ).setAttribute( "name", "D" );
- // Support: IE8
- // Enforce case-sensitivity of name attribute
- if ( div.querySelectorAll("[name=d]").length ) {
- rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
- }
- // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
- // IE8 throws error here and will not see later tests
- if ( !div.querySelectorAll(":enabled").length ) {
- rbuggyQSA.push( ":enabled", ":disabled" );
- }
- // Opera 10-11 does not throw on post-comma invalid pseudos
- div.querySelectorAll("*,:x");
- rbuggyQSA.push(",.*:");
- });
- }
- if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
- docElem.webkitMatchesSelector ||
- docElem.mozMatchesSelector ||
- docElem.oMatchesSelector ||
- docElem.msMatchesSelector) )) ) {
- assert(function( div ) {
- // Check to see if it's possible to do matchesSelector
- // on a disconnected node (IE 9)
- support.disconnectedMatch = matches.call( div, "div" );
- // This should fail with an exception
- // Gecko does not error, returns false instead
- matches.call( div, "[s!='']:x" );
- rbuggyMatches.push( "!=", pseudos );
- });
- }
- rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
- rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
- /* Contains
- ---------------------------------------------------------------------- */
- hasCompare = rnative.test( docElem.compareDocumentPosition );
- // Element contains another
- // Purposefully does not implement inclusive descendent
- // As in, an element does not contain itself
- contains = hasCompare || rnative.test( docElem.contains ) ?
- function( a, b ) {
- var adown = a.nodeType === 9 ? a.documentElement : a,
- bup = b && b.parentNode;
- return a === bup || !!( bup && bup.nodeType === 1 && (
- adown.contains ?
- adown.contains( bup ) :
- a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
- ));
- } :
- function( a, b ) {
- if ( b ) {
- while ( (b = b.parentNode) ) {
- if ( b === a ) {
- return true;
- }
- }
- }
- return false;
- };
- /* Sorting
- ---------------------------------------------------------------------- */
- // Document order sorting
- sortOrder = hasCompare ?
- function( a, b ) {
- // Flag for duplicate removal
- if ( a === b ) {
- hasDuplicate = true;
- return 0;
- }
- // Sort on method existence if only one input has compareDocumentPosition
- var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
- if ( compare ) {
- return compare;
- }
- // Calculate position if both inputs belong to the same document
- compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
- a.compareDocumentPosition( b ) :
- // Otherwise we know they are disconnected
- 1;
- // Disconnected nodes
- if ( compare & 1 ||
- (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
- // Choose the first element that is related to our preferred document
- if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
- return -1;
- }
- if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
- return 1;
- }
- // Maintain original order
- return sortInput ?
- ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
- 0;
- }
- return compare & 4 ? -1 : 1;
- } :
- function( a, b ) {
- // Exit early if the nodes are identical
- if ( a === b ) {
- hasDuplicate = true;
- return 0;
- }
- var cur,
- i = 0,
- aup = a.parentNode,
- bup = b.parentNode,
- ap = [ a ],
- bp = [ b ];
- // Parentless nodes are either documents or disconnected
- if ( !aup || !bup ) {
- return a === doc ? -1 :
- b === doc ? 1 :
- aup ? -1 :
- bup ? 1 :
- sortInput ?
- ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
- 0;
- // If the nodes are siblings, we can do a quick check
- } else if ( aup === bup ) {
- return siblingCheck( a, b );
- }
- // Otherwise we need full lists of their ancestors for comparison
- cur = a;
- while ( (cur = cur.parentNode) ) {
- ap.unshift( cur );
- }
- cur = b;
- while ( (cur = cur.parentNode) ) {
- bp.unshift( cur );
- }
- // Walk down the tree looking for a discrepancy
- while ( ap[i] === bp[i] ) {
- i++;
- }
- return i ?
- // Do a sibling check if the nodes have a common ancestor
- siblingCheck( ap[i], bp[i] ) :
- // Otherwise nodes in our document sort first
- ap[i] === preferredDoc ? -1 :
- bp[i] === preferredDoc ? 1 :
- 0;
- };
- return doc;
- };
- Sizzle.matches = function( expr, elements ) {
- return Sizzle( expr, null, null, elements );
- };
- Sizzle.matchesSelector = function( elem, expr ) {
- // Set document vars if needed
- if ( ( elem.ownerDocument || elem ) !== document ) {
- setDocument( elem );
- }
- // Make sure that attribute selectors are quoted
- expr = expr.replace( rattributeQuotes, "='$1']" );
- if ( support.matchesSelector && documentIsHTML &&
- ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
- ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
- try {
- var ret = matches.call( elem, expr );
- // IE 9's matchesSelector returns false on disconnected nodes
- if ( ret || support.disconnectedMatch ||
- // As well, disconnected nodes are said to be in a document
- // fragment in IE 9
- elem.document && elem.document.nodeType !== 11 ) {
- return ret;
- }
- } catch (e) {}
- }
- return Sizzle( expr, document, null, [ elem ] ).length > 0;
- };
- Sizzle.contains = function( context, elem ) {
- // Set document vars if needed
- if ( ( context.ownerDocument || context ) !== document ) {
- setDocument( context );
- }
- return contains( context, elem );
- };
- Sizzle.attr = function( elem, name ) {
- // Set document vars if needed
- if ( ( elem.ownerDocument || elem ) !== document ) {
- setDocument( elem );
- }
- var fn = Expr.attrHandle[ name.toLowerCase() ],
- // Don't get fooled by Object.prototype properties (jQuery #13807)
- val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
- fn( elem, name, !documentIsHTML ) :
- undefined;
- return val !== undefined ?
- val :
- support.attributes || !documentIsHTML ?
- elem.getAttribute( name ) :
- (val = elem.getAttributeNode(name)) && val.specified ?
- val.value :
- null;
- };
- Sizzle.error = function( msg ) {
- throw new Error( "Syntax error, unrecognized expression: " + msg );
- };
- /**
- * Document sorting and removing duplicates
- * @param {ArrayLike} results
- */
- Sizzle.uniqueSort = function( results ) {
- var elem,
- duplicates = [],
- j = 0,
- i = 0;
- // Unless we *know* we can detect duplicates, assume their presence
- hasDuplicate = !support.detectDuplicates;
- sortInput = !support.sortStable && results.slice( 0 );
- results.sort( sortOrder );
- if ( hasDuplicate ) {
- while ( (elem = results[i++]) ) {
- if ( elem === results[ i ] ) {
- j = duplicates.push( i );
- }
- }
- while ( j-- ) {
- results.splice( duplicates[ j ], 1 );
- }
- }
- // Clear input after sorting to release objects
- // See https://github.com/jquery/sizzle/pull/225
- sortInput = null;
- return results;
- };
- /**
- * Utility function for retrieving the text value of an array of DOM nodes
- * @param {Array|Element} elem
- */
- getText = Sizzle.getText = function( elem ) {
- var node,
- ret = "",
- i = 0,
- nodeType = elem.nodeType;
- if ( !nodeType ) {
- // If no nodeType, this is expected to be an array
- while ( (node = elem[i++]) ) {
- // Do not traverse comment nodes
- ret += getText( node );
- }
- } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
- // Use textContent for elements
- // innerText usage removed for consistency of new lines (jQuery #11153)
- if ( typeof elem.textContent === "string" ) {
- return elem.textContent;
- } else {
- // Traverse its children
- for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
- ret += getText( elem );
- }
- }
- } else if ( nodeType === 3 || nodeType === 4 ) {
- return elem.nodeValue;
- }
- // Do not include comment or processing instruction nodes
- return ret;
- };
- Expr = Sizzle.selectors = {
- // Can be adjusted by the user
- cacheLength: 50,
- createPseudo: markFunction,
- match: matchExpr,
- attrHandle: {},
- find: {},
- relative: {
- ">": { dir: "parentNode", first: true },
- " ": { dir: "parentNode" },
- "+": { dir: "previousSibling", first: true },
- "~": { dir: "previousSibling" }
- },
- preFilter: {
- "ATTR": function( match ) {
- match[1] = match[1].replace( runescape, funescape );
- // Move the given value to match[3] whether quoted or unquoted
- match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
- if ( match[2] === "~=" ) {
- match[3] = " " + match[3] + " ";
- }
- return match.slice( 0, 4 );
- },
- "CHILD": function( match ) {
- /* matches from matchExpr["CHILD"]
- 1 type (only|nth|...)
- 2 what (child|of-type)
- 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
- 4 xn-component of xn+y argument ([+-]?\d*n|)
- 5 sign of xn-component
- 6 x of xn-component
- 7 sign of y-component
- 8 y of y-component
- */
- match[1] = match[1].toLowerCase();
- if ( match[1].slice( 0, 3 ) === "nth" ) {
- // nth-* requires argument
- if ( !match[3] ) {
- Sizzle.error( match[0] );
- }
- // numeric x and y parameters for Expr.filter.CHILD
- // remember that false/true cast respectively to 0/1
- match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
- match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
- // other types prohibit arguments
- } else if ( match[3] ) {
- Sizzle.error( match[0] );
- }
- return match;
- },
- "PSEUDO": function( match ) {
- var excess,
- unquoted = !match[6] && match[2];
- if ( matchExpr["CHILD"].test( match[0] ) ) {
- return null;
- }
- // Accept quoted arguments as-is
- if ( match[3] ) {
- match[2] = match[4] || match[5] || "";
- // Strip excess characters from unquoted arguments
- } else if ( unquoted && rpseudo.test( unquoted ) &&
- // Get excess from tokenize (recursively)
- (excess = tokenize( unquoted, true )) &&
- // advance to the next closing parenthesis
- (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
- // excess is a negative index
- match[0] = match[0].slice( 0, excess );
- match[2] = unquoted.slice( 0, excess );
- }
- // Return only captures needed by the pseudo filter method (type and argument)
- return match.slice( 0, 3 );
- }
- },
- filter: {
- "TAG": function( nodeNameSelector ) {
- var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
- return nodeNameSelector === "*" ?
- function() { return true; } :
- function( elem ) {
- return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
- };
- },
- "CLASS": function( className ) {
- var pattern = classCache[ className + " " ];
- return pattern ||
- (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
- classCache( className, function( elem ) {
- return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
- });
- },
- "ATTR": function( name, operator, check ) {
- return function( elem ) {
- var result = Sizzle.attr( elem, name );
- if ( result == null ) {
- return operator === "!=";
- }
- if ( !operator ) {
- return true;
- }
- result += "";
- return operator === "=" ? result === check :
- operator === "!=" ? result !== check :
- operator === "^=" ? check && result.indexOf( check ) === 0 :
- operator === "*=" ? check && result.indexOf( check ) > -1 :
- operator === "$=" ? check && result.slice( -check.length ) === check :
- operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
- operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
- false;
- };
- },
- "CHILD": function( type, what, argument, first, last ) {
- var simple = type.slice( 0, 3 ) !== "nth",
- forward = type.slice( -4 ) !== "last",
- ofType = what === "of-type";
- return first === 1 && last === 0 ?
- // Shortcut for :nth-*(n)
- function( elem ) {
- return !!elem.parentNode;
- } :
- function( elem, context, xml ) {
- var cache, outerCache, node, diff, nodeIndex, start,
- dir = simple !== forward ? "nextSibling" : "previousSibling",
- parent = elem.parentNode,
- name = ofType && elem.nodeName.toLowerCase(),
- useCache = !xml && !ofType;
- if ( parent ) {
- // :(first|last|only)-(child|of-type)
- if ( simple ) {
- while ( dir ) {
- node = elem;
- while ( (node = node[ dir ]) ) {
- if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {
- return false;
- }
- }
- // Reverse direction for :only-* (if we haven't yet done so)
- start = dir = type === "only" && !start && "nextSibling";
- }
- return true;
- }
- start = [ forward ? parent.firstChild : parent.lastChild ];
- // non-xml :nth-child(...) stores cache data on `parent`
- if ( forward && useCache ) {
- // Seek `elem` from a previously-cached index
- outerCache = parent[ expando ] || (parent[ expando ] = {});
- cache = outerCache[ type ] || [];
- nodeIndex = cache[0] === dirruns && cache[1];
- diff = cache[0] === dirruns && cache[2];
- node = nodeIndex && parent.childNodes[ nodeIndex ];
- while ( (node = ++nodeIndex && node && node[ dir ] ||
- // Fallback to seeking `elem` from the start
- (diff = nodeIndex = 0) || start.pop()) ) {
- // When found, cache indexes on `parent` and break
- if ( node.nodeType === 1 && ++diff && node === elem ) {
- outerCache[ type ] = [ dirruns, nodeIndex, diff ];
- break;
- }
- }
- // Use previously-cached element index if available
- } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {
- diff = cache[1];
- // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)
- } else {
- // Use the same loop as above to seek `elem` from the start
- while ( (node = ++nodeIndex && node && node[ dir ] ||
- (diff = nodeIndex = 0) || start.pop()) ) {
- if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {
- // Cache the index of each encountered element
- if ( useCache ) {
- (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];
- }
- if ( node === elem ) {
- break;
- }
- }
- }
- }
- // Incorporate the offset, then check against cycle size
- diff -= last;
- return diff === first || ( diff % first === 0 && diff / first >= 0 );
- }
- };
- },
- "PSEUDO": function( pseudo, argument ) {
- // pseudo-class names are case-insensitive
- // http://www.w3.org/TR/selectors/#pseudo-classes
- // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
- // Remember that setFilters inherits from pseudos
- var args,
- fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
- Sizzle.error( "unsupported pseudo: " + pseudo );
- // The user may use createPseudo to indicate that
- // arguments are needed to create the filter function
- // just as Sizzle does
- if ( fn[ expando ] ) {
- return fn( argument );
- }
- // But maintain support for old signatures
- if ( fn.length > 1 ) {
- args = [ pseudo, pseudo, "", argument ];
- return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
- markFunction(function( seed, matches ) {
- var idx,
- matched = fn( seed, argument ),
- i = matched.length;
- while ( i-- ) {
- idx = indexOf( seed, matched[i] );
- seed[ idx ] = !( matches[ idx ] = matched[i] );
- }
- }) :
- function( elem ) {
- return fn( elem, 0, args );
- };
- }
- return fn;
- }
- },
- pseudos: {
- // Potentially complex pseudos
- "not": markFunction(function( selector ) {
- // Trim the selector passed to compile
- // to avoid treating leading and trailing
- // spaces as combinators
- var input = [],
- results = [],
- matcher = compile( selector.replace( rtrim, "$1" ) );
- return matcher[ expando ] ?
- markFunction(function( seed, matches, context, xml ) {
- var elem,
- unmatched = matcher( seed, null, xml, [] ),
- i = seed.length;
- // Match elements unmatched by `matcher`
- while ( i-- ) {
- if ( (elem = unmatched[i]) ) {
- seed[i] = !(matches[i] = elem);
- }
- }
- }) :
- function( elem, context, xml ) {
- input[0] = elem;
- matcher( input, null, xml, results );
- // Don't keep the element (issue #299)
- input[0] = null;
- return !results.pop();
- };
- }),
- "has": markFunction(function( selector ) {
- return function( elem ) {
- return Sizzle( selector, elem ).length > 0;
- };
- }),
- "contains": markFunction(function( text ) {
- text = text.replace( runescape, funescape );
- return function( elem ) {
- return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
- };
- }),
- // "Whether an element is represented by a :lang() selector
- // is based solely on the element's language value
- // being equal to the identifier C,
- // or beginning with the identifier C immediately followed by "-".
- // The matching of C against the element's language value is performed case-insensitively.
- // The identifier C does not have to be a valid language name."
- // http://www.w3.org/TR/selectors/#lang-pseudo
- "lang": markFunction( function( lang ) {
- // lang value must be a valid identifier
- if ( !ridentifier.test(lang || "") ) {
- Sizzle.error( "unsupported lang: " + lang );
- }
- lang = lang.replace( runescape, funescape ).toLowerCase();
- return function( elem ) {
- var elemLang;
- do {
- if ( (elemLang = documentIsHTML ?
- elem.lang :
- elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
- elemLang = elemLang.toLowerCase();
- return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
- }
- } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
- return false;
- };
- }),
- // Miscellaneous
- "target": function( elem ) {
- var hash = window.location && window.location.hash;
- return hash && hash.slice( 1 ) === elem.id;
- },
- "root": function( elem ) {
- return elem === docElem;
- },
- "focus": function( elem ) {
- return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
- },
- // Boolean properties
- "enabled": function( elem ) {
- return elem.disabled === false;
- },
- "disabled": function( elem ) {
- return elem.disabled === true;
- },
- "checked": function( elem ) {
- // In CSS3, :checked should return both checked and selected elements
- // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
- var nodeName = elem.nodeName.toLowerCase();
- return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
- },
- "selected": function( elem ) {
- // Accessing this property makes selected-by-default
- // options in Safari work properly
- if ( elem.parentNode ) {
- elem.parentNode.selectedIndex;
- }
- return elem.selected === true;
- },
- // Contents
- "empty": function( elem ) {
- // http://www.w3.org/TR/selectors/#empty-pseudo
- // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
- // but not by others (comment: 8; processing instruction: 7; etc.)
- // nodeType < 6 works because attributes (2) do not appear as children
- for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
- if ( elem.nodeType < 6 ) {
- return false;
- }
- }
- return true;
- },
- "parent": function( elem ) {
- return !Expr.pseudos["empty"]( elem );
- },
- // Element/input types
- "header": function( elem ) {
- return rheader.test( elem.nodeName );
- },
- "input": function( elem ) {
- return rinputs.test( elem.nodeName );
- },
- "button": function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return name === "input" && elem.type === "button" || name === "button";
- },
- "text": function( elem ) {
- var attr;
- return elem.nodeName.toLowerCase() === "input" &&
- elem.type === "text" &&
- // Support: IE<8
- // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
- ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
- },
- // Position-in-collection
- "first": createPositionalPseudo(function() {
- return [ 0 ];
- }),
- "last": createPositionalPseudo(function( matchIndexes, length ) {
- return [ length - 1 ];
- }),
- "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
- return [ argument < 0 ? argument + length : argument ];
- }),
- "even": createPositionalPseudo(function( matchIndexes, length ) {
- var i = 0;
- for ( ; i < length; i += 2 ) {
- matchIndexes.push( i );
- }
- return matchIndexes;
- }),
- "odd": createPositionalPseudo(function( matchIndexes, length ) {
- var i = 1;
- for ( ; i < length; i += 2 ) {
- matchIndexes.push( i );
- }
- return matchIndexes;
- }),
- "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
- var i = argument < 0 ? argument + length : argument;
- for ( ; --i >= 0; ) {
- matchIndexes.push( i );
- }
- return matchIndexes;
- }),
- "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
- var i = argument < 0 ? argument + length : argument;
- for ( ; ++i < length; ) {
- matchIndexes.push( i );
- }
- return matchIndexes;
- })
- }
- };
- Expr.pseudos["nth"] = Expr.pseudos["eq"];
- // Add button/input type pseudos
- for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
- Expr.pseudos[ i ] = createInputPseudo( i );
- }
- for ( i in { submit: true, reset: true } ) {
- Expr.pseudos[ i ] = createButtonPseudo( i );
- }
- // Easy API for creating new setFilters
- function setFilters() {}
- setFilters.prototype = Expr.filters = Expr.pseudos;
- Expr.setFilters = new setFilters();
- tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
- var matched, match, tokens, type,
- soFar, groups, preFilters,
- cached = tokenCache[ selector + " " ];
- if ( cached ) {
- return parseOnly ? 0 : cached.slice( 0 );
- }
- soFar = selector;
- groups = [];
- preFilters = Expr.preFilter;
- while ( soFar ) {
- // Comma and first run
- if ( !matched || (match = rcomma.exec( soFar )) ) {
- if ( match ) {
- // Don't consume trailing commas as valid
- soFar = soFar.slice( match[0].length ) || soFar;
- }
- groups.push( (tokens = []) );
- }
- matched = false;
- // Combinators
- if ( (match = rcombinators.exec( soFar )) ) {
- matched = match.shift();
- tokens.push({
- value: matched,
- // Cast descendant combinators to space
- type: match[0].replace( rtrim, " " )
- });
- soFar = soFar.slice( matched.length );
- }
- // Filters
- for ( type in Expr.filter ) {
- if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
- (match = preFilters[ type ]( match ))) ) {
- matched = match.shift();
- tokens.push({
- value: matched,
- type: type,
- matches: match
- });
- soFar = soFar.slice( matched.length );
- }
- }
- if ( !matched ) {
- break;
- }
- }
- // Return the length of the invalid excess
- // if we're just parsing
- // Otherwise, throw an error or return tokens
- return parseOnly ?
- soFar.length :
- soFar ?
- Sizzle.error( selector ) :
- // Cache the tokens
- tokenCache( selector, groups ).slice( 0 );
- };
- function toSelector( tokens ) {
- var i = 0,
- len = tokens.length,
- selector = "";
- for ( ; i < len; i++ ) {
- selector += tokens[i].value;
- }
- return selector;
- }
- function addCombinator( matcher, combinator, base ) {
- var dir = combinator.dir,
- checkNonElements = base && dir === "parentNode",
- doneName = done++;
- return combinator.first ?
- // Check against closest ancestor/preceding element
- function( elem, context, xml ) {
- while ( (elem = elem[ dir ]) ) {
- if ( elem.nodeType === 1 || checkNonElements ) {
- return matcher( elem, context, xml );
- }
- }
- } :
- // Check against all ancestor/preceding elements
- function( elem, context, xml ) {
- var oldCache, outerCache,
- newCache = [ dirruns, doneName ];
- // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching
- if ( xml ) {
- while ( (elem = elem[ dir ]) ) {
- if ( elem.nodeType === 1 || checkNonElements ) {
- if ( matcher( elem, context, xml ) ) {
- return true;
- }
- }
- }
- } else {
- while ( (elem = elem[ dir ]) ) {
- if ( elem.nodeType === 1 || checkNonElements ) {
- outerCache = elem[ expando ] || (elem[ expando ] = {});
- if ( (oldCache = outerCache[ dir ]) &&
- oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
- // Assign to newCache so results back-propagate to previous elements
- return (newCache[ 2 ] = oldCache[ 2 ]);
- } else {
- // Reuse newcache so results back-propagate to previous elements
- outerCache[ dir ] = newCache;
- // A match means we're done; a fail means we have to keep checking
- if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
- return true;
- }
- }
- }
- }
- }
- };
- }
- function elementMatcher( matchers ) {
- return matchers.length > 1 ?
- function( elem, context, xml ) {
- var i = matchers.length;
- while ( i-- ) {
- if ( !matchers[i]( elem, context, xml ) ) {
- return false;
- }
- }
- return true;
- } :
- matchers[0];
- }
- function multipleContexts( selector, contexts, results ) {
- var i = 0,
- len = contexts.length;
- for ( ; i < len; i++ ) {
- Sizzle( selector, contexts[i], results );
- }
- return results;
- }
- function condense( unmatched, map, filter, context, xml ) {
- var elem,
- newUnmatched = [],
- i = 0,
- len = unmatched.length,
- mapped = map != null;
- for ( ; i < len; i++ ) {
- if ( (elem = unmatched[i]) ) {
- if ( !filter || filter( elem, context, xml ) ) {
- newUnmatched.push( elem );
- if ( mapped ) {
- map.push( i );
- }
- }
- }
- }
- return newUnmatched;
- }
- function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
- if ( postFilter && !postFilter[ expando ] ) {
- postFilter = setMatcher( postFilter );
- }
- if ( postFinder && !postFinder[ expando ] ) {
- postFinder = setMatcher( postFinder, postSelector );
- }
- return markFunction(function( seed, results, context, xml ) {
- var temp, i, elem,
- preMap = [],
- postMap = [],
- preexisting = results.length,
- // Get initial elements from seed or context
- elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
- // Prefilter to get matcher input, preserving a map for seed-results synchronization
- matcherIn = preFilter && ( seed || !selector ) ?
- condense( elems, preMap, preFilter, context, xml ) :
- elems,
- matcherOut = matcher ?
- // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
- postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
- // ...intermediate processing is necessary
- [] :
- // ...otherwise use results directly
- results :
- matcherIn;
- // Find primary matches
- if ( matcher ) {
- matcher( matcherIn, matcherOut, context, xml );
- }
- // Apply postFilter
- if ( postFilter ) {
- temp = condense( matcherOut, postMap );
- postFilter( temp, [], context, xml );
- // Un-match failing elements by moving them back to matcherIn
- i = temp.length;
- while ( i-- ) {
- if ( (elem = temp[i]) ) {
- matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
- }
- }
- }
- if ( seed ) {
- if ( postFinder || preFilter ) {
- if ( postFinder ) {
- // Get the final matcherOut by condensing this intermediate into postFinder contexts
- temp = [];
- i = matcherOut.length;
- while ( i-- ) {
- if ( (elem = matcherOut[i]) ) {
- // Restore matcherIn since elem is not yet a final match
- temp.push( (matcherIn[i] = elem) );
- }
- }
- postFinder( null, (matcherOut = []), temp, xml );
- }
- // Move matched elements from seed to results to keep them synchronized
- i = matcherOut.length;
- while ( i-- ) {
- if ( (elem = matcherOut[i]) &&
- (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
- seed[temp] = !(results[temp] = elem);
- }
- }
- }
- // Add elements to results, through postFinder if defined
- } else {
- matcherOut = condense(
- matcherOut === results ?
- matcherOut.splice( preexisting, matcherOut.length ) :
- matcherOut
- );
- if ( postFinder ) {
- postFinder( null, results, matcherOut, xml );
- } else {
- push.apply( results, matcherOut );
- }
- }
- });
- }
- function matcherFromTokens( tokens ) {
- var checkContext, matcher, j,
- len = tokens.length,
- leadingRelative = Expr.relative[ tokens[0].type ],
- implicitRelative = leadingRelative || Expr.relative[" "],
- i = leadingRelative ? 1 : 0,
- // The foundational matcher ensures that elements are reachable from top-level context(s)
- matchContext = addCombinator( function( elem ) {
- return elem === checkContext;
- }, implicitRelative, true ),
- matchAnyContext = addCombinator( function( elem ) {
- return indexOf( checkContext, elem ) > -1;
- }, implicitRelative, true ),
- matchers = [ function( elem, context, xml ) {
- var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
- (checkContext = context).nodeType ?
- matchContext( elem, context, xml ) :
- matchAnyContext( elem, context, xml ) );
- // Avoid hanging onto element (issue #299)
- checkContext = null;
- return ret;
- } ];
- for ( ; i < len; i++ ) {
- if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
- matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
- } else {
- matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
- // Return special upon seeing a positional matcher
- if ( matcher[ expando ] ) {
- // Find the next relative operator (if any) for proper handling
- j = ++i;
- for ( ; j < len; j++ ) {
- if ( Expr.relative[ tokens[j].type ] ) {
- break;
- }
- }
- return setMatcher(
- i > 1 && elementMatcher( matchers ),
- i > 1 && toSelector(
- // If the preceding token was a descendant combinator, insert an implicit any-element `*`
- tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
- ).replace( rtrim, "$1" ),
- matcher,
- i < j && matcherFromTokens( tokens.slice( i, j ) ),
- j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
- j < len && toSelector( tokens )
- );
- }
- matchers.push( matcher );
- }
- }
- return elementMatcher( matchers );
- }
- function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
- var bySet = setMatchers.length > 0,
- byElement = elementMatchers.length > 0,
- superMatcher = function( seed, context, xml, results, outermost ) {
- var elem, j, matcher,
- matchedCount = 0,
- i = "0",
- unmatched = seed && [],
- setMatched = [],
- contextBackup = outermostContext,
- // We must always have either seed elements or outermost context
- elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
- // Use integer dirruns iff this is the outermost matcher
- dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
- len = elems.length;
- if ( outermost ) {
- outermostContext = context !== document && context;
- }
- // Add elements passing elementMatchers directly to results
- // Keep `i` a string if there are no elements so `matchedCount` will be "00" below
- // Support: IE<9, Safari
- // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
- for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
- if ( byElement && elem ) {
- j = 0;
- while ( (matcher = elementMatchers[j++]) ) {
- if ( matcher( elem, context, xml ) ) {
- results.push( elem );
- break;
- }
- }
- if ( outermost ) {
- dirruns = dirrunsUnique;
- }
- }
- // Track unmatched elements for set filters
- if ( bySet ) {
- // They will have gone through all possible matchers
- if ( (elem = !matcher && elem) ) {
- matchedCount--;
- }
- // Lengthen the array for every element, matched or not
- if ( seed ) {
- unmatched.push( elem );
- }
- }
- }
- // Apply set filters to unmatched elements
- matchedCount += i;
- if ( bySet && i !== matchedCount ) {
- j = 0;
- while ( (matcher = setMatchers[j++]) ) {
- matcher( unmatched, setMatched, context, xml );
- }
- if ( seed ) {
- // Reintegrate element matches to eliminate the need for sorting
- if ( matchedCount > 0 ) {
- while ( i-- ) {
- if ( !(unmatched[i] || setMatched[i]) ) {
- setMatched[i] = pop.call( results );
- }
- }
- }
- // Discard index placeholder values to get only actual matches
- setMatched = condense( setMatched );
- }
- // Add matches to results
- push.apply( results, setMatched );
- // Seedless set matches succeeding multiple successful matchers stipulate sorting
- if ( outermost && !seed && setMatched.length > 0 &&
- ( matchedCount + setMatchers.length ) > 1 ) {
- Sizzle.uniqueSort( results );
- }
- }
- // Override manipulation of globals by nested matchers
- if ( outermost ) {
- dirruns = dirrunsUnique;
- outermostContext = contextBackup;
- }
- return unmatched;
- };
- return bySet ?
- markFunction( superMatcher ) :
- superMatcher;
- }
- compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
- var i,
- setMatchers = [],
- elementMatchers = [],
- cached = compilerCache[ selector + " " ];
- if ( !cached ) {
- // Generate a function of recursive functions that can be used to check each element
- if ( !match ) {
- match = tokenize( selector );
- }
- i = match.length;
- while ( i-- ) {
- cached = matcherFromTokens( match[i] );
- if ( cached[ expando ] ) {
- setMatchers.push( cached );
- } else {
- elementMatchers.push( cached );
- }
- }
- // Cache the compiled function
- cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
- // Save selector and tokenization
- cached.selector = selector;
- }
- return cached;
- };
- /**
- * A low-level selection function that works with Sizzle's compiled
- * selector functions
- * @param {String|Function} selector A selector or a pre-compiled
- * selector function built with Sizzle.compile
- * @param {Element} context
- * @param {Array} [results]
- * @param {Array} [seed] A set of elements to match against
- */
- select = Sizzle.select = function( selector, context, results, seed ) {
- var i, tokens, token, type, find,
- compiled = typeof selector === "function" && selector,
- match = !seed && tokenize( (selector = compiled.selector || selector) );
- results = results || [];
- // Try to minimize operations if there is no seed and only one group
- if ( match.length === 1 ) {
- // Take a shortcut and set the context if the root selector is an ID
- tokens = match[0] = match[0].slice( 0 );
- if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
- support.getById && context.nodeType === 9 && documentIsHTML &&
- Expr.relative[ tokens[1].type ] ) {
- context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
- if ( !context ) {
- return results;
- // Precompiled matchers will still verify ancestry, so step up a level
- } else if ( compiled ) {
- context = context.parentNode;
- }
- selector = selector.slice( tokens.shift().value.length );
- }
- // Fetch a seed set for right-to-left matching
- i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
- while ( i-- ) {
- token = tokens[i];
- // Abort if we hit a combinator
- if ( Expr.relative[ (type = token.type) ] ) {
- break;
- }
- if ( (find = Expr.find[ type ]) ) {
- // Search, expanding context for leading sibling combinators
- if ( (seed = find(
- token.matches[0].replace( runescape, funescape ),
- rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
- )) ) {
- // If seed is empty or no tokens remain, we can return early
- tokens.splice( i, 1 );
- selector = seed.length && toSelector( tokens );
- if ( !selector ) {
- push.apply( results, seed );
- return results;
- }
- break;
- }
- }
- }
- }
- // Compile and execute a filtering function if one is not provided
- // Provide `match` to avoid retokenization if we modified the selector above
- ( compiled || compile( selector, match ) )(
- seed,
- context,
- !documentIsHTML,
- results,
- rsibling.test( selector ) && testContext( context.parentNode ) || context
- );
- return results;
- };
- // One-time assignments
- // Sort stability
- support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
- // Support: Chrome 14-35+
- // Always assume duplicates if they aren't passed to the comparison function
- support.detectDuplicates = !!hasDuplicate;
- // Initialize against the default document
- setDocument();
- // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
- // Detached nodes confoundingly follow *each other*
- support.sortDetached = assert(function( div1 ) {
- // Should return 1, but returns 4 (following)
- return div1.compareDocumentPosition( document.createElement("div") ) & 1;
- });
- // Support: IE<8
- // Prevent attribute/property "interpolation"
- // http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
- if ( !assert(function( div ) {
- div.innerHTML = "<a href='http://arongranberg.com/astar/documentation/stable/#'></a>";
- return div.firstChild.getAttribute("href") === "#" ;
- }) ) {
- addHandle( "type|href|height|width", function( elem, name, isXML ) {
- if ( !isXML ) {
- return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
- }
- });
- }
- // Support: IE<9
- // Use defaultValue in place of getAttribute("value")
- if ( !support.attributes || !assert(function( div ) {
- div.innerHTML = "<input/>";
- div.firstChild.setAttribute( "value", "" );
- return div.firstChild.getAttribute( "value" ) === "";
- }) ) {
- addHandle( "value", function( elem, name, isXML ) {
- if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
- return elem.defaultValue;
- }
- });
- }
- // Support: IE<9
- // Use getAttributeNode to fetch booleans when getAttribute lies
- if ( !assert(function( div ) {
- return div.getAttribute("disabled") == null;
- }) ) {
- addHandle( booleans, function( elem, name, isXML ) {
- var val;
- if ( !isXML ) {
- return elem[ name ] === true ? name.toLowerCase() :
- (val = elem.getAttributeNode( name )) && val.specified ?
- val.value :
- null;
- }
- });
- }
- return Sizzle;
- })( window );
- jQuery.find = Sizzle;
- jQuery.expr = Sizzle.selectors;
- jQuery.expr[":"] = jQuery.expr.pseudos;
- jQuery.unique = Sizzle.uniqueSort;
- jQuery.text = Sizzle.getText;
- jQuery.isXMLDoc = Sizzle.isXML;
- jQuery.contains = Sizzle.contains;
- var rneedsContext = jQuery.expr.match.needsContext;
- var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/);
- var risSimple = /^.[^:#\[\.,]*$/;
- // Implement the identical functionality for filter and not
- function winnow( elements, qualifier, not ) {
- if ( jQuery.isFunction( qualifier ) ) {
- return jQuery.grep( elements, function( elem, i ) {
- /* jshint -W018 */
- return !!qualifier.call( elem, i, elem ) !== not;
- });
- }
- if ( qualifier.nodeType ) {
- return jQuery.grep( elements, function( elem ) {
- return ( elem === qualifier ) !== not;
- });
- }
- if ( typeof qualifier === "string" ) {
- if ( risSimple.test( qualifier ) ) {
- return jQuery.filter( qualifier, elements, not );
- }
- qualifier = jQuery.filter( qualifier, elements );
- }
- return jQuery.grep( elements, function( elem ) {
- return ( indexOf.call( qualifier, elem ) >= 0 ) !== not;
- });
- }
- jQuery.filter = function( expr, elems, not ) {
- var elem = elems[ 0 ];
- if ( not ) {
- expr = ":not(" + expr + ")";
- }
- return elems.length === 1 && elem.nodeType === 1 ?
- jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
- jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
- return elem.nodeType === 1;
- }));
- };
- jQuery.fn.extend({
- find: function( selector ) {
- var i,
- len = this.length,
- ret = [],
- self = this;
- if ( typeof selector !== "string" ) {
- return this.pushStack( jQuery( selector ).filter(function() {
- for ( i = 0; i < len; i++ ) {
- if ( jQuery.contains( self[ i ], this ) ) {
- return true;
- }
- }
- }) );
- }
- for ( i = 0; i < len; i++ ) {
- jQuery.find( selector, self[ i ], ret );
- }
- // Needed because $( selector, context ) becomes $( context ).find( selector )
- ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
- ret.selector = this.selector ? this.selector + " " + selector : selector;
- return ret;
- },
- filter: function( selector ) {
- return this.pushStack( winnow(this, selector || [], false) );
- },
- not: function( selector ) {
- return this.pushStack( winnow(this, selector || [], true) );
- },
- is: function( selector ) {
- return !!winnow(
- this,
- // If this is a positional/relative selector, check membership in the returned set
- // so $("p:first").is("p:last") won't return true for a doc with two "p".
- typeof selector === "string" && rneedsContext.test( selector ) ?
- jQuery( selector ) :
- selector || [],
- false
- ).length;
- }
- });
- // Initialize a jQuery object
- // A central reference to the root jQuery(document)
- var rootjQuery,
- // A simple way to check for HTML strings
- // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
- // Strict HTML recognition (#11290: must start with <)
- rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
- init = jQuery.fn.init = function( selector, context ) {
- var match, elem;
- // HANDLE: $(""), $(null), $(undefined), $(false)
- if ( !selector ) {
- return this;
- }
- // Handle HTML strings
- if ( typeof selector === "string" ) {
- if ( selector[0] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) {
- // Assume that strings that start and end with <> are HTML and skip the regex check
- match = [ null, selector, null ];
- } else {
- match = rquickExpr.exec( selector );
- }
- // Match html or make sure no context is specified for #id
- if ( match && (match[1] || !context) ) {
- // HANDLE: $(html) -> $(array)
- if ( match[1] ) {
- context = context instanceof jQuery ? context[0] : context;
- // Option to run scripts is true for back-compat
- // Intentionally let the error be thrown if parseHTML is not present
- jQuery.merge( this, jQuery.parseHTML(
- match[1],
- context && context.nodeType ? context.ownerDocument || context : document,
- true
- ) );
- // HANDLE: $(html, props)
- if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
- for ( match in context ) {
- // Properties of context are called as methods if possible
- if ( jQuery.isFunction( this[ match ] ) ) {
- this[ match ]( context[ match ] );
- // ...and otherwise set as attributes
- } else {
- this.attr( match, context[ match ] );
- }
- }
- }
- return this;
- // HANDLE: $(#id)
- } else {
- elem = document.getElementById( match[2] );
- // Support: Blackberry 4.6
- // gEBID returns nodes no longer in the document (#6963)
- if ( elem && elem.parentNode ) {
- // Inject the element directly into the jQuery object
- this.length = 1;
- this[0] = elem;
- }
- this.context = document;
- this.selector = selector;
- return this;
- }
- // HANDLE: $(expr, $(...))
- } else if ( !context || context.jquery ) {
- return ( context || rootjQuery ).find( selector );
- // HANDLE: $(expr, context)
- // (which is just equivalent to: $(context).find(expr)
- } else {
- return this.constructor( context ).find( selector );
- }
- // HANDLE: $(DOMElement)
- } else if ( selector.nodeType ) {
- this.context = this[0] = selector;
- this.length = 1;
- return this;
- // HANDLE: $(function)
- // Shortcut for document ready
- } else if ( jQuery.isFunction( selector ) ) {
- return typeof rootjQuery.ready !== "undefined" ?
- rootjQuery.ready( selector ) :
- // Execute immediately if ready is not present
- selector( jQuery );
- }
- if ( selector.selector !== undefined ) {
- this.selector = selector.selector;
- this.context = selector.context;
- }
- return jQuery.makeArray( selector, this );
- };
- // Give the init function the jQuery prototype for later instantiation
- init.prototype = jQuery.fn;
- // Initialize central reference
- rootjQuery = jQuery( document );
- var rparentsprev = /^(?:parents|prev(?:Until|All))/,
- // Methods guaranteed to produce a unique set when starting from a unique set
- guaranteedUnique = {
- children: true,
- contents: true,
- next: true,
- prev: true
- };
- jQuery.extend({
- dir: function( elem, dir, until ) {
- var matched = [],
- truncate = until !== undefined;
- while ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) {
- if ( elem.nodeType === 1 ) {
- if ( truncate && jQuery( elem ).is( until ) ) {
- break;
- }
- matched.push( elem );
- }
- }
- return matched;
- },
- sibling: function( n, elem ) {
- var matched = [];
- for ( ; n; n = n.nextSibling ) {
- if ( n.nodeType === 1 && n !== elem ) {
- matched.push( n );
- }
- }
- return matched;
- }
- });
- jQuery.fn.extend({
- has: function( target ) {
- var targets = jQuery( target, this ),
- l = targets.length;
- return this.filter(function() {
- var i = 0;
- for ( ; i < l; i++ ) {
- if ( jQuery.contains( this, targets[i] ) ) {
- return true;
- }
- }
- });
- },
- closest: function( selectors, context ) {
- var cur,
- i = 0,
- l = this.length,
- matched = [],
- pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
- jQuery( selectors, context || this.context ) :
- 0;
- for ( ; i < l; i++ ) {
- for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {
- // Always skip document fragments
- if ( cur.nodeType < 11 && (pos ?
- pos.index(cur) > -1 :
- // Don't pass non-elements to Sizzle
- cur.nodeType === 1 &&
- jQuery.find.matchesSelector(cur, selectors)) ) {
- matched.push( cur );
- break;
- }
- }
- }
- return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );
- },
- // Determine the position of an element within the set
- index: function( elem ) {
- // No argument, return index in parent
- if ( !elem ) {
- return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
- }
- // Index in selector
- if ( typeof elem === "string" ) {
- return indexOf.call( jQuery( elem ), this[ 0 ] );
- }
- // Locate the position of the desired element
- return indexOf.call( this,
- // If it receives a jQuery object, the first element is used
- elem.jquery ? elem[ 0 ] : elem
- );
- },
- add: function( selector, context ) {
- return this.pushStack(
- jQuery.unique(
- jQuery.merge( this.get(), jQuery( selector, context ) )
- )
- );
- },
- addBack: function( selector ) {
- return this.add( selector == null ?
- this.prevObject : this.prevObject.filter(selector)
- );
- }
- });
- function sibling( cur, dir ) {
- while ( (cur = cur[dir]) && cur.nodeType !== 1 ) {}
- return cur;
- }
- jQuery.each({
- parent: function( elem ) {
- var parent = elem.parentNode;
- return parent && parent.nodeType !== 11 ? parent : null;
- },
- parents: function( elem ) {
- return jQuery.dir( elem, "parentNode" );
- },
- parentsUntil: function( elem, i, until ) {
- return jQuery.dir( elem, "parentNode", until );
- },
- next: function( elem ) {
- return sibling( elem, "nextSibling" );
- },
- prev: function( elem ) {
- return sibling( elem, "previousSibling" );
- },
- nextAll: function( elem ) {
- return jQuery.dir( elem, "nextSibling" );
- },
- prevAll: function( elem ) {
- return jQuery.dir( elem, "previousSibling" );
- },
- nextUntil: function( elem, i, until ) {
- return jQuery.dir( elem, "nextSibling", until );
- },
- prevUntil: function( elem, i, until ) {
- return jQuery.dir( elem, "previousSibling", until );
- },
- siblings: function( elem ) {
- return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
- },
- children: function( elem ) {
- return jQuery.sibling( elem.firstChild );
- },
- contents: function( elem ) {
- return elem.contentDocument || jQuery.merge( [], elem.childNodes );
- }
- }, function( name, fn ) {
- jQuery.fn[ name ] = function( until, selector ) {
- var matched = jQuery.map( this, fn, until );
- if ( name.slice( -5 ) !== "Until" ) {
- selector = until;
- }
- if ( selector && typeof selector === "string" ) {
- matched = jQuery.filter( selector, matched );
- }
- if ( this.length > 1 ) {
- // Remove duplicates
- if ( !guaranteedUnique[ name ] ) {
- jQuery.unique( matched );
- }
- // Reverse order for parents* and prev-derivatives
- if ( rparentsprev.test( name ) ) {
- matched.reverse();
- }
- }
- return this.pushStack( matched );
- };
- });
- var rnotwhite = (/\S+/g);
- // String to Object options format cache
- var optionsCache = {};
- // Convert String-formatted options into Object-formatted ones and store in cache
- function createOptions( options ) {
- var object = optionsCache[ options ] = {};
- jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {
- object[ flag ] = true;
- });
- return object;
- }
- /*
- * Create a callback list using the following parameters:
- *
- * options: an optional list of space-separated options that will change how
- * the callback list behaves or a more traditional option object
- *
- * By default a callback list will act like an event callback list and can be
- * "fired" multiple times.
- *
- * Possible options:
- *
- * once: will ensure the callback list can only be fired once (like a Deferred)
- *
- * memory: will keep track of previous values and will call any callback added
- * after the list has been fired right away with the latest "memorized"
- * values (like a Deferred)
- *
- * unique: will ensure a callback can only be added once (no duplicate in the list)
- *
- * stopOnFalse: interrupt callings when a callback returns false
- *
- */
- jQuery.Callbacks = function( options ) {
- // Convert options from String-formatted to Object-formatted if needed
- // (we check in cache first)
- options = typeof options === "string" ?
- ( optionsCache[ options ] || createOptions( options ) ) :
- jQuery.extend( {}, options );
- var // Last fire value (for non-forgettable lists)
- memory,
- // Flag to know if list was already fired
- fired,
- // Flag to know if list is currently firing
- firing,
- // First callback to fire (used internally by add and fireWith)
- firingStart,
- // End of the loop when firing
- firingLength,
- // Index of currently firing callback (modified by remove if needed)
- firingIndex,
- // Actual callback list
- list = [],
- // Stack of fire calls for repeatable lists
- stack = !options.once && [],
- // Fire callbacks
- fire = function( data ) {
- memory = options.memory && data;
- fired = true;
- firingIndex = firingStart || 0;
- firingStart = 0;
- firingLength = list.length;
- firing = true;
- for ( ; list && firingIndex < firingLength; firingIndex++ ) {
- if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {
- memory = false; // To prevent further calls using add
- break;
- }
- }
- firing = false;
- if ( list ) {
- if ( stack ) {
- if ( stack.length ) {
- fire( stack.shift() );
- }
- } else if ( memory ) {
- list = [];
- } else {
- self.disable();
- }
- }
- },
- // Actual Callbacks object
- self = {
- // Add a callback or a collection of callbacks to the list
- add: function() {
- if ( list ) {
- // First, we save the current length
- var start = list.length;
- (function add( args ) {
- jQuery.each( args, function( _, arg ) {
- var type = jQuery.type( arg );
- if ( type === "function" ) {
- if ( !options.unique || !self.has( arg ) ) {
- list.push( arg );
- }
- } else if ( arg && arg.length && type !== "string" ) {
- // Inspect recursively
- add( arg );
- }
- });
- })( arguments );
- // Do we need to add the callbacks to the
- // current firing batch?
- if ( firing ) {
- firingLength = list.length;
- // With memory, if we're not firing then
- // we should call right away
- } else if ( memory ) {
- firingStart = start;
- fire( memory );
- }
- }
- return this;
- },
- // Remove a callback from the list
- remove: function() {
- if ( list ) {
- jQuery.each( arguments, function( _, arg ) {
- var index;
- while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
- list.splice( index, 1 );
- // Handle firing indexes
- if ( firing ) {
- if ( index <= firingLength ) {
- firingLength--;
- }
- if ( index <= firingIndex ) {
- firingIndex--;
- }
- }
- }
- });
- }
- return this;
- },
- // Check if a given callback is in the list.
- // If no argument is given, return whether or not list has callbacks attached.
- has: function( fn ) {
- return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );
- },
- // Remove all callbacks from the list
- empty: function() {
- list = [];
- firingLength = 0;
- return this;
- },
- // Have the list do nothing anymore
- disable: function() {
- list = stack = memory = undefined;
- return this;
- },
- // Is it disabled?
- disabled: function() {
- return !list;
- },
- // Lock the list in its current state
- lock: function() {
- stack = undefined;
- if ( !memory ) {
- self.disable();
- }
- return this;
- },
- // Is it locked?
- locked: function() {
- return !stack;
- },
- // Call all callbacks with the given context and arguments
- fireWith: function( context, args ) {
- if ( list && ( !fired || stack ) ) {
- args = args || [];
- args = [ context, args.slice ? args.slice() : args ];
- if ( firing ) {
- stack.push( args );
- } else {
- fire( args );
- }
- }
- return this;
- },
- // Call all the callbacks with the given arguments
- fire: function() {
- self.fireWith( this, arguments );
- return this;
- },
- // To know if the callbacks have already been called at least once
- fired: function() {
- return !!fired;
- }
- };
- return self;
- };
- jQuery.extend({
- Deferred: function( func ) {
- var tuples = [
- // action, add listener, listener list, final state
- [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
- [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
- [ "notify", "progress", jQuery.Callbacks("memory") ]
- ],
- state = "pending",
- promise = {
- state: function() {
- return state;
- },
- always: function() {
- deferred.done( arguments ).fail( arguments );
- return this;
- },
- then: function( /* fnDone, fnFail, fnProgress */ ) {
- var fns = arguments;
- return jQuery.Deferred(function( newDefer ) {
- jQuery.each( tuples, function( i, tuple ) {
- var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
- // deferred[ done | fail | progress ] for forwarding actions to newDefer
- deferred[ tuple[1] ](function() {
- var returned = fn && fn.apply( this, arguments );
- if ( returned && jQuery.isFunction( returned.promise ) ) {
- returned.promise()
- .done( newDefer.resolve )
- .fail( newDefer.reject )
- .progress( newDefer.notify );
- } else {
- newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );
- }
- });
- });
- fns = null;
- }).promise();
- },
- // Get a promise for this deferred
- // If obj is provided, the promise aspect is added to the object
- promise: function( obj ) {
- return obj != null ? jQuery.extend( obj, promise ) : promise;
- }
- },
- deferred = {};
- // Keep pipe for back-compat
- promise.pipe = promise.then;
- // Add list-specific methods
- jQuery.each( tuples, function( i, tuple ) {
- var list = tuple[ 2 ],
- stateString = tuple[ 3 ];
- // promise[ done | fail | progress ] = list.add
- promise[ tuple[1] ] = list.add;
- // Handle state
- if ( stateString ) {
- list.add(function() {
- // state = [ resolved | rejected ]
- state = stateString;
- // [ reject_list | resolve_list ].disable; progress_list.lock
- }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
- }
- // deferred[ resolve | reject | notify ]
- deferred[ tuple[0] ] = function() {
- deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments );
- return this;
- };
- deferred[ tuple[0] + "With" ] = list.fireWith;
- });
- // Make the deferred a promise
- promise.promise( deferred );
- // Call given func if any
- if ( func ) {
- func.call( deferred, deferred );
- }
- // All done!
- return deferred;
- },
- // Deferred helper
- when: function( subordinate /* , ..., subordinateN */ ) {
- var i = 0,
- resolveValues = slice.call( arguments ),
- length = resolveValues.length,
- // the count of uncompleted subordinates
- remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
- // the master Deferred. If resolveValues consist of only a single Deferred, just use that.
- deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
- // Update function for both resolve and progress values
- updateFunc = function( i, contexts, values ) {
- return function( value ) {
- contexts[ i ] = this;
- values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
- if ( values === progressValues ) {
- deferred.notifyWith( contexts, values );
- } else if ( !( --remaining ) ) {
- deferred.resolveWith( contexts, values );
- }
- };
- },
- progressValues, progressContexts, resolveContexts;
- // Add listeners to Deferred subordinates; treat others as resolved
- if ( length > 1 ) {
- progressValues = new Array( length );
- progressContexts = new Array( length );
- resolveContexts = new Array( length );
- for ( ; i < length; i++ ) {
- if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
- resolveValues[ i ].promise()
- .done( updateFunc( i, resolveContexts, resolveValues ) )
- .fail( deferred.reject )
- .progress( updateFunc( i, progressContexts, progressValues ) );
- } else {
- --remaining;
- }
- }
- }
- // If we're not waiting on anything, resolve the master
- if ( !remaining ) {
- deferred.resolveWith( resolveContexts, resolveValues );
- }
- return deferred.promise();
- }
- });
- // The deferred used on DOM ready
- var readyList;
- jQuery.fn.ready = function( fn ) {
- // Add the callback
- jQuery.ready.promise().done( fn );
- return this;
- };
- jQuery.extend({
- // Is the DOM ready to be used? Set to true once it occurs.
- isReady: false,
- // A counter to track how many items to wait for before
- // the ready event fires. See #6781
- readyWait: 1,
- // Hold (or release) the ready event
- holdReady: function( hold ) {
- if ( hold ) {
- jQuery.readyWait++;
- } else {
- jQuery.ready( true );
- }
- },
- // Handle when the DOM is ready
- ready: function( wait ) {
- // Abort if there are pending holds or we're already ready
- if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
- return;
- }
- // Remember that the DOM is ready
- jQuery.isReady = true;
- // If a normal DOM Ready event fired, decrement, and wait if need be
- if ( wait !== true && --jQuery.readyWait > 0 ) {
- return;
- }
- // If there are functions bound, to execute
- readyList.resolveWith( document, [ jQuery ] );
- // Trigger any bound ready events
- if ( jQuery.fn.triggerHandler ) {
- jQuery( document ).triggerHandler( "ready" );
- jQuery( document ).off( "ready" );
- }
- }
- });
- /**
- * The ready event handler and self cleanup method
- */
- function completed() {
- document.removeEventListener( "DOMContentLoaded", completed, false );
- window.removeEventListener( "load", completed, false );
- jQuery.ready();
- }
- jQuery.ready.promise = function( obj ) {
- if ( !readyList ) {
- readyList = jQuery.Deferred();
- // Catch cases where $(document).ready() is called after the browser event has already occurred.
- // We once tried to use readyState "interactive" here, but it caused issues like the one
- // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15
- if ( document.readyState === "complete" ) {
- // Handle it asynchronously to allow scripts the opportunity to delay ready
- setTimeout( jQuery.ready );
- } else {
- // Use the handy event callback
- document.addEventListener( "DOMContentLoaded", completed, false );
- // A fallback to window.onload, that will always work
- window.addEventListener( "load", completed, false );
- }
- }
- return readyList.promise( obj );
- };
- // Kick off the DOM ready check even if the user does not
- jQuery.ready.promise();
- // Multifunctional method to get and set values of a collection
- // The value/s can optionally be executed if it's a function
- var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
- var i = 0,
- len = elems.length,
- bulk = key == null;
- // Sets many values
- if ( jQuery.type( key ) === "object" ) {
- chainable = true;
- for ( i in key ) {
- jQuery.access( elems, fn, i, key[i], true, emptyGet, raw );
- }
- // Sets one value
- } else if ( value !== undefined ) {
- chainable = true;
- if ( !jQuery.isFunction( value ) ) {
- raw = true;
- }
- if ( bulk ) {
- // Bulk operations run against the entire set
- if ( raw ) {
- fn.call( elems, value );
- fn = null;
- // ...except when executing function values
- } else {
- bulk = fn;
- fn = function( elem, key, value ) {
- return bulk.call( jQuery( elem ), value );
- };
- }
- }
- if ( fn ) {
- for ( ; i < len; i++ ) {
- fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );
- }
- }
- }
- return chainable ?
- elems :
- // Gets
- bulk ?
- fn.call( elems ) :
- len ? fn( elems[0], key ) : emptyGet;
- };
- /**
- * Determines whether an object can have data
- */
- jQuery.acceptData = function( owner ) {
- // Accepts only:
- // - Node
- // - Node.ELEMENT_NODE
- // - Node.DOCUMENT_NODE
- // - Object
- // - Any
- /* jshint -W018 */
- return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
- };
- function Data() {
- // Support: Android<4,
- // Old WebKit does not have Object.preventExtensions/freeze method,
- // return new empty object instead with no [[set]] accessor
- Object.defineProperty( this.cache = {}, 0, {
- get: function() {
- return {};
- }
- });
- this.expando = jQuery.expando + Data.uid++;
- }
- Data.uid = 1;
- Data.accepts = jQuery.acceptData;
- Data.prototype = {
- key: function( owner ) {
- // We can accept data for non-element nodes in modern browsers,
- // but we should not, see #8335.
- // Always return the key for a frozen object.
- if ( !Data.accepts( owner ) ) {
- return 0;
- }
- var descriptor = {},
- // Check if the owner object already has a cache key
- unlock = owner[ this.expando ];
- // If not, create one
- if ( !unlock ) {
- unlock = Data.uid++;
- // Secure it in a non-enumerable, non-writable property
- try {
- descriptor[ this.expando ] = { value: unlock };
- Object.defineProperties( owner, descriptor );
- // Support: Android<4
- // Fallback to a less secure definition
- } catch ( e ) {
- descriptor[ this.expando ] = unlock;
- jQuery.extend( owner, descriptor );
- }
- }
- // Ensure the cache object
- if ( !this.cache[ unlock ] ) {
- this.cache[ unlock ] = {};
- }
- return unlock;
- },
- set: function( owner, data, value ) {
- var prop,
- // There may be an unlock assigned to this node,
- // if there is no entry for this "owner", create one inline
- // and set the unlock as though an owner entry had always existed
- unlock = this.key( owner ),
- cache = this.cache[ unlock ];
- // Handle: [ owner, key, value ] args
- if ( typeof data === "string" ) {
- cache[ data ] = value;
- // Handle: [ owner, { properties } ] args
- } else {
- // Fresh assignments by object are shallow copied
- if ( jQuery.isEmptyObject( cache ) ) {
- jQuery.extend( this.cache[ unlock ], data );
- // Otherwise, copy the properties one-by-one to the cache object
- } else {
- for ( prop in data ) {
- cache[ prop ] = data[ prop ];
- }
- }
- }
- return cache;
- },
- get: function( owner, key ) {
- // Either a valid cache is found, or will be created.
- // New caches will be created and the unlock returned,
- // allowing direct access to the newly created
- // empty data object. A valid owner object must be provided.
- var cache = this.cache[ this.key( owner ) ];
- return key === undefined ?
- cache : cache[ key ];
- },
- access: function( owner, key, value ) {
- var stored;
- // In cases where either:
- //
- // 1. No key was specified
- // 2. A string key was specified, but no value provided
- //
- // Take the "read" path and allow the get method to determine
- // which value to return, respectively either:
- //
- // 1. The entire cache object
- // 2. The data stored at the key
- //
- if ( key === undefined ||
- ((key && typeof key === "string") && value === undefined) ) {
- stored = this.get( owner, key );
- return stored !== undefined ?
- stored : this.get( owner, jQuery.camelCase(key) );
- }
- // [*]When the key is not a string, or both a key and value
- // are specified, set or extend (existing objects) with either:
- //
- // 1. An object of properties
- // 2. A key and value
- //
- this.set( owner, key, value );
- // Since the "set" path can have two possible entry points
- // return the expected data based on which path was taken[*]
- return value !== undefined ? value : key;
- },
- remove: function( owner, key ) {
- var i, name, camel,
- unlock = this.key( owner ),
- cache = this.cache[ unlock ];
- if ( key === undefined ) {
- this.cache[ unlock ] = {};
- } else {
- // Support array or space separated string of keys
- if ( jQuery.isArray( key ) ) {
- // If "name" is an array of keys...
- // When data is initially created, via ("key", "val") signature,
- // keys will be converted to camelCase.
- // Since there is no way to tell _how_ a key was added, remove
- // both plain key and camelCase key. #12786
- // This will only penalize the array argument path.
- name = key.concat( key.map( jQuery.camelCase ) );
- } else {
- camel = jQuery.camelCase( key );
- // Try the string as a key before any manipulation
- if ( key in cache ) {
- name = [ key, camel ];
- } else {
- // If a key with the spaces exists, use it.
- // Otherwise, create an array by matching non-whitespace
- name = camel;
- name = name in cache ?
- [ name ] : ( name.match( rnotwhite ) || [] );
- }
- }
- i = name.length;
- while ( i-- ) {
- delete cache[ name[ i ] ];
- }
- }
- },
- hasData: function( owner ) {
- return !jQuery.isEmptyObject(
- this.cache[ owner[ this.expando ] ] || {}
- );
- },
- discard: function( owner ) {
- if ( owner[ this.expando ] ) {
- delete this.cache[ owner[ this.expando ] ];
- }
- }
- };
- var data_priv = new Data();
- var data_user = new Data();
- // Implementation Summary
- //
- // 1. Enforce API surface and semantic compatibility with 1.9.x branch
- // 2. Improve the module's maintainability by reducing the storage
- // paths to a single mechanism.
- // 3. Use the same single mechanism to support "private" and "user" data.
- // 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
- // 5. Avoid exposing implementation details on user objects (eg. expando properties)
- // 6. Provide a clear path for implementation upgrade to WeakMap in 2014
- var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
- rmultiDash = /([A-Z])/g;
- function dataAttr( elem, key, data ) {
- var name;
- // If nothing was found internally, try to fetch any
- // data from the HTML5 data-* attribute
- if ( data === undefined && elem.nodeType === 1 ) {
- name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
- data = elem.getAttribute( name );
- if ( typeof data === "string" ) {
- try {
- data = data === "true" ? true :
- data === "false" ? false :
- data === "null" ? null :
- // Only convert to a number if it doesn't change the string
- +data + "" === data ? +data :
- rbrace.test( data ) ? jQuery.parseJSON( data ) :
- data;
- } catch( e ) {}
- // Make sure we set the data so it isn't changed later
- data_user.set( elem, key, data );
- } else {
- data = undefined;
- }
- }
- return data;
- }
- jQuery.extend({
- hasData: function( elem ) {
- return data_user.hasData( elem ) || data_priv.hasData( elem );
- },
- data: function( elem, name, data ) {
- return data_user.access( elem, name, data );
- },
- removeData: function( elem, name ) {
- data_user.remove( elem, name );
- },
- // TODO: Now that all calls to _data and _removeData have been replaced
- // with direct calls to data_priv methods, these can be deprecated.
- _data: function( elem, name, data ) {
- return data_priv.access( elem, name, data );
- },
- _removeData: function( elem, name ) {
- data_priv.remove( elem, name );
- }
- });
- jQuery.fn.extend({
- data: function( key, value ) {
- var i, name, data,
- elem = this[ 0 ],
- attrs = elem && elem.attributes;
- // Gets all values
- if ( key === undefined ) {
- if ( this.length ) {
- data = data_user.get( elem );
- if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) {
- i = attrs.length;
- while ( i-- ) {
- // Support: IE11+
- // The attrs elements can be null (#14894)
- if ( attrs[ i ] ) {
- name = attrs[ i ].name;
- if ( name.indexOf( "data-" ) === 0 ) {
- name = jQuery.camelCase( name.slice(5) );
- dataAttr( elem, name, data[ name ] );
- }
- }
- }
- data_priv.set( elem, "hasDataAttrs", true );
- }
- }
- return data;
- }
- // Sets multiple values
- if ( typeof key === "object" ) {
- return this.each(function() {
- data_user.set( this, key );
- });
- }
- return access( this, function( value ) {
- var data,
- camelKey = jQuery.camelCase( key );
- // The calling jQuery object (element matches) is not empty
- // (and therefore has an element appears at this[ 0 ]) and the
- // `value` parameter was not undefined. An empty jQuery object
- // will result in `undefined` for elem = this[ 0 ] which will
- // throw an exception if an attempt to read a data cache is made.
- if ( elem && value === undefined ) {
- // Attempt to get data from the cache
- // with the key as-is
- data = data_user.get( elem, key );
- if ( data !== undefined ) {
- return data;
- }
- // Attempt to get data from the cache
- // with the key camelized
- data = data_user.get( elem, camelKey );
- if ( data !== undefined ) {
- return data;
- }
- // Attempt to "discover" the data in
- // HTML5 custom data-* attrs
- data = dataAttr( elem, camelKey, undefined );
- if ( data !== undefined ) {
- return data;
- }
- // We tried really hard, but the data doesn't exist.
- return;
- }
- // Set the data...
- this.each(function() {
- // First, attempt to store a copy or reference of any
- // data that might've been store with a camelCased key.
- var data = data_user.get( this, camelKey );
- // For HTML5 data-* attribute interop, we have to
- // store property names with dashes in a camelCase form.
- // This might not apply to all properties...*
- data_user.set( this, camelKey, value );
- // *... In the case of properties that might _actually_
- // have dashes, we need to also store a copy of that
- // unchanged property.
- if ( key.indexOf("-") !== -1 && data !== undefined ) {
- data_user.set( this, key, value );
- }
- });
- }, null, value, arguments.length > 1, null, true );
- },
- removeData: function( key ) {
- return this.each(function() {
- data_user.remove( this, key );
- });
- }
- });
- jQuery.extend({
- queue: function( elem, type, data ) {
- var queue;
- if ( elem ) {
- type = ( type || "fx" ) + "queue";
- queue = data_priv.get( elem, type );
- // Speed up dequeue by getting out quickly if this is just a lookup
- if ( data ) {
- if ( !queue || jQuery.isArray( data ) ) {
- queue = data_priv.access( elem, type, jQuery.makeArray(data) );
- } else {
- queue.push( data );
- }
- }
- return queue || [];
- }
- },
- dequeue: function( elem, type ) {
- type = type || "fx";
- var queue = jQuery.queue( elem, type ),
- startLength = queue.length,
- fn = queue.shift(),
- hooks = jQuery._queueHooks( elem, type ),
- next = function() {
- jQuery.dequeue( elem, type );
- };
- // If the fx queue is dequeued, always remove the progress sentinel
- if ( fn === "inprogress" ) {
- fn = queue.shift();
- startLength--;
- }
- if ( fn ) {
- // Add a progress sentinel to prevent the fx queue from being
- // automatically dequeued
- if ( type === "fx" ) {
- queue.unshift( "inprogress" );
- }
- // Clear up the last queue stop function
- delete hooks.stop;
- fn.call( elem, next, hooks );
- }
- if ( !startLength && hooks ) {
- hooks.empty.fire();
- }
- },
- // Not public - generate a queueHooks object, or return the current one
- _queueHooks: function( elem, type ) {
- var key = type + "queueHooks";
- return data_priv.get( elem, key ) || data_priv.access( elem, key, {
- empty: jQuery.Callbacks("once memory").add(function() {
- data_priv.remove( elem, [ type + "queue", key ] );
- })
- });
- }
- });
- jQuery.fn.extend({
- queue: function( type, data ) {
- var setter = 2;
- if ( typeof type !== "string" ) {
- data = type;
- type = "fx";
- setter--;
- }
- if ( arguments.length < setter ) {
- return jQuery.queue( this[0], type );
- }
- return data === undefined ?
- this :
- this.each(function() {
- var queue = jQuery.queue( this, type, data );
- // Ensure a hooks for this queue
- jQuery._queueHooks( this, type );
- if ( type === "fx" && queue[0] !== "inprogress" ) {
- jQuery.dequeue( this, type );
- }
- });
- },
- dequeue: function( type ) {
- return this.each(function() {
- jQuery.dequeue( this, type );
- });
- },
- clearQueue: function( type ) {
- return this.queue( type || "fx", [] );
- },
- // Get a promise resolved when queues of a certain type
- // are emptied (fx is the type by default)
- promise: function( type, obj ) {
- var tmp,
- count = 1,
- defer = jQuery.Deferred(),
- elements = this,
- i = this.length,
- resolve = function() {
- if ( !( --count ) ) {
- defer.resolveWith( elements, [ elements ] );
- }
- };
- if ( typeof type !== "string" ) {
- obj = type;
- type = undefined;
- }
- type = type || "fx";
- while ( i-- ) {
- tmp = data_priv.get( elements[ i ], type + "queueHooks" );
- if ( tmp && tmp.empty ) {
- count++;
- tmp.empty.add( resolve );
- }
- }
- resolve();
- return defer.promise( obj );
- }
- });
- var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source;
- var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
- var isHidden = function( elem, el ) {
- // isHidden might be called from jQuery#filter function;
- // in that case, element will be second argument
- elem = el || elem;
- return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem );
- };
- var rcheckableType = (/^(?:checkbox|radio)$/i);
- (function() {
- var fragment = document.createDocumentFragment(),
- div = fragment.appendChild( document.createElement( "div" ) ),
- input = document.createElement( "input" );
- // Support: Safari<=5.1
- // Check state lost if the name is set (#11217)
- // Support: Windows Web Apps (WWA)
- // `name` and `type` must use .setAttribute for WWA (#14901)
- input.setAttribute( "type", "radio" );
- input.setAttribute( "checked", "checked" );
- input.setAttribute( "name", "t" );
- div.appendChild( input );
- // Support: Safari<=5.1, Android<4.2
- // Older WebKit doesn't clone checked state correctly in fragments
- support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
- // Support: IE<=11+
- // Make sure textarea (and checkbox) defaultValue is properly cloned
- div.innerHTML = "<textarea>x</textarea>";
- support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
- })();
- var strundefined = typeof undefined;
- support.focusinBubbles = "onfocusin" in window;
- var
- rkeyEvent = /^key/,
- rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,
- rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
- rtypenamespace = /^([^.]*)(?:\.(.+)|)$/;
- function returnTrue() {
- return true;
- }
- function returnFalse() {
- return false;
- }
- function safeActiveElement() {
- try {
- return document.activeElement;
- } catch ( err ) { }
- }
- /*
- * Helper functions for managing events -- not part of the public interface.
- * Props to Dean Edwards' addEvent library for many of the ideas.
- */
- jQuery.event = {
- global: {},
- add: function( elem, types, handler, data, selector ) {
- var handleObjIn, eventHandle, tmp,
- events, t, handleObj,
- special, handlers, type, namespaces, origType,
- elemData = data_priv.get( elem );
- // Don't attach events to noData or text/comment nodes (but allow plain objects)
- if ( !elemData ) {
- return;
- }
- // Caller can pass in an object of custom data in lieu of the handler
- if ( handler.handler ) {
- handleObjIn = handler;
- handler = handleObjIn.handler;
- selector = handleObjIn.selector;
- }
- // Make sure that the handler has a unique ID, used to find/remove it later
- if ( !handler.guid ) {
- handler.guid = jQuery.guid++;
- }
- // Init the element's event structure and main handler, if this is the first
- if ( !(events = elemData.events) ) {
- events = elemData.events = {};
- }
- if ( !(eventHandle = elemData.handle) ) {
- eventHandle = elemData.handle = function( e ) {
- // Discard the second event of a jQuery.event.trigger() and
- // when an event is called after a page has unloaded
- return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ?
- jQuery.event.dispatch.apply( elem, arguments ) : undefined;
- };
- }
- // Handle multiple events separated by a space
- types = ( types || "" ).match( rnotwhite ) || [ "" ];
- t = types.length;
- while ( t-- ) {
- tmp = rtypenamespace.exec( types[t] ) || [];
- type = origType = tmp[1];
- namespaces = ( tmp[2] || "" ).split( "." ).sort();
- // There *must* be a type, no attaching namespace-only handlers
- if ( !type ) {
- continue;
- }
- // If event changes its type, use the special event handlers for the changed type
- special = jQuery.event.special[ type ] || {};
- // If selector defined, determine special event api type, otherwise given type
- type = ( selector ? special.delegateType : special.bindType ) || type;
- // Update special based on newly reset type
- special = jQuery.event.special[ type ] || {};
- // handleObj is passed to all event handlers
- handleObj = jQuery.extend({
- type: type,
- origType: origType,
- data: data,
- handler: handler,
- guid: handler.guid,
- selector: selector,
- needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
- namespace: namespaces.join(".")
- }, handleObjIn );
- // Init the event handler queue if we're the first
- if ( !(handlers = events[ type ]) ) {
- handlers = events[ type ] = [];
- handlers.delegateCount = 0;
- // Only use addEventListener if the special events handler returns false
- if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
- if ( elem.addEventListener ) {
- elem.addEventListener( type, eventHandle, false );
- }
- }
- }
- if ( special.add ) {
- special.add.call( elem, handleObj );
- if ( !handleObj.handler.guid ) {
- handleObj.handler.guid = handler.guid;
- }
- }
- // Add to the element's handler list, delegates in front
- if ( selector ) {
- handlers.splice( handlers.delegateCount++, 0, handleObj );
- } else {
- handlers.push( handleObj );
- }
- // Keep track of which events have ever been used, for event optimization
- jQuery.event.global[ type ] = true;
- }
- },
- // Detach an event or set of events from an element
- remove: function( elem, types, handler, selector, mappedTypes ) {
- var j, origCount, tmp,
- events, t, handleObj,
- special, handlers, type, namespaces, origType,
- elemData = data_priv.hasData( elem ) && data_priv.get( elem );
- if ( !elemData || !(events = elemData.events) ) {
- return;
- }
- // Once for each type.namespace in types; type may be omitted
- types = ( types || "" ).match( rnotwhite ) || [ "" ];
- t = types.length;
- while ( t-- ) {
- tmp = rtypenamespace.exec( types[t] ) || [];
- type = origType = tmp[1];
- namespaces = ( tmp[2] || "" ).split( "." ).sort();
- // Unbind all events (on this namespace, if provided) for the element
- if ( !type ) {
- for ( type in events ) {
- jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
- }
- continue;
- }
- special = jQuery.event.special[ type ] || {};
- type = ( selector ? special.delegateType : special.bindType ) || type;
- handlers = events[ type ] || [];
- tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" );
- // Remove matching events
- origCount = j = handlers.length;
- while ( j-- ) {
- handleObj = handlers[ j ];
- if ( ( mappedTypes || origType === handleObj.origType ) &&
- ( !handler || handler.guid === handleObj.guid ) &&
- ( !tmp || tmp.test( handleObj.namespace ) ) &&
- ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
- handlers.splice( j, 1 );
- if ( handleObj.selector ) {
- handlers.delegateCount--;
- }
- if ( special.remove ) {
- special.remove.call( elem, handleObj );
- }
- }
- }
- // Remove generic event handler if we removed something and no more handlers exist
- // (avoids potential for endless recursion during removal of special event handlers)
- if ( origCount && !handlers.length ) {
- if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
- jQuery.removeEvent( elem, type, elemData.handle );
- }
- delete events[ type ];
- }
- }
- // Remove the expando if it's no longer used
- if ( jQuery.isEmptyObject( events ) ) {
- delete elemData.handle;
- data_priv.remove( elem, "events" );
- }
- },
- trigger: function( event, data, elem, onlyHandlers ) {
- var i, cur, tmp, bubbleType, ontype, handle, special,
- eventPath = [ elem || document ],
- type = hasOwn.call( event, "type" ) ? event.type : event,
- namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : [];
- cur = tmp = elem = elem || document;
- // Don't do events on text and comment nodes
- if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
- return;
- }
- // focus/blur morphs to focusin/out; ensure we're not firing them right now
- if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
- return;
- }
- if ( type.indexOf(".") >= 0 ) {
- // Namespaced trigger; create a regexp to match event type in handle()
- namespaces = type.split(".");
- type = namespaces.shift();
- namespaces.sort();
- }
- ontype = type.indexOf(":") < 0 && "on" + type;
- // Caller can pass in a jQuery.Event object, Object, or just an event type string
- event = event[ jQuery.expando ] ?
- event :
- new jQuery.Event( type, typeof event === "object" && event );
- // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
- event.isTrigger = onlyHandlers ? 2 : 3;
- event.namespace = namespaces.join(".");
- event.namespace_re = event.namespace ?
- new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) :
- null;
- // Clean up the event in case it is being reused
- event.result = undefined;
- if ( !event.target ) {
- event.target = elem;
- }
- // Clone any incoming data and prepend the event, creating the handler arg list
- data = data == null ?
- [ event ] :
- jQuery.makeArray( data, [ event ] );
- // Allow special events to draw outside the lines
- special = jQuery.event.special[ type ] || {};
- if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
- return;
- }
- // Determine event propagation path in advance, per W3C events spec (#9951)
- // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
- if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
- bubbleType = special.delegateType || type;
- if ( !rfocusMorph.test( bubbleType + type ) ) {
- cur = cur.parentNode;
- }
- for ( ; cur; cur = cur.parentNode ) {
- eventPath.push( cur );
- tmp = cur;
- }
- // Only add window if we got to document (e.g., not plain obj or detached DOM)
- if ( tmp === (elem.ownerDocument || document) ) {
- eventPath.push( tmp.defaultView || tmp.parentWindow || window );
- }
- }
- // Fire handlers on the event path
- i = 0;
- while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {
- event.type = i > 1 ?
- bubbleType :
- special.bindType || type;
- // jQuery handler
- handle = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" );
- if ( handle ) {
- handle.apply( cur, data );
- }
- // Native handler
- handle = ontype && cur[ ontype ];
- if ( handle && handle.apply && jQuery.acceptData( cur ) ) {
- event.result = handle.apply( cur, data );
- if ( event.result === false ) {
- event.preventDefault();
- }
- }
- }
- event.type = type;
- // If nobody prevented the default action, do it now
- if ( !onlyHandlers && !event.isDefaultPrevented() ) {
- if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&
- jQuery.acceptData( elem ) ) {
- // Call a native DOM method on the target with the same name name as the event.
- // Don't do default actions on window, that's where global variables be (#6170)
- if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
- // Don't re-trigger an onFOO event when we call its FOO() method
- tmp = elem[ ontype ];
- if ( tmp ) {
- elem[ ontype ] = null;
- }
- // Prevent re-triggering of the same event, since we already bubbled it above
- jQuery.event.triggered = type;
- elem[ type ]();
- jQuery.event.triggered = undefined;
- if ( tmp ) {
- elem[ ontype ] = tmp;
- }
- }
- }
- }
- return event.result;
- },
- dispatch: function( event ) {
- // Make a writable jQuery.Event from the native event object
- event = jQuery.event.fix( event );
- var i, j, ret, matched, handleObj,
- handlerQueue = [],
- args = slice.call( arguments ),
- handlers = ( data_priv.get( this, "events" ) || {} )[ event.type ] || [],
- special = jQuery.event.special[ event.type ] || {};
- // Use the fix-ed jQuery.Event rather than the (read-only) native event
- args[0] = event;
- event.delegateTarget = this;
- // Call the preDispatch hook for the mapped type, and let it bail if desired
- if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
- return;
- }
- // Determine handlers
- handlerQueue = jQuery.event.handlers.call( this, event, handlers );
- // Run delegates first; they may want to stop propagation beneath us
- i = 0;
- while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {
- event.currentTarget = matched.elem;
- j = 0;
- while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {
- // Triggered event must either 1) have no namespace, or 2) have namespace(s)
- // a subset or equal to those in the bound event (both can have no namespace).
- if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {
- event.handleObj = handleObj;
- event.data = handleObj.data;
- ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
- .apply( matched.elem, args );
- if ( ret !== undefined ) {
- if ( (event.result = ret) === false ) {
- event.preventDefault();
- event.stopPropagation();
- }
- }
- }
- }
- }
- // Call the postDispatch hook for the mapped type
- if ( special.postDispatch ) {
- special.postDispatch.call( this, event );
- }
- return event.result;
- },
- handlers: function( event, handlers ) {
- var i, matches, sel, handleObj,
- handlerQueue = [],
- delegateCount = handlers.delegateCount,
- cur = event.target;
- // Find delegate handlers
- // Black-hole SVG <use> instance trees (#13180)
- // Avoid non-left-click bubbling in Firefox (#3861)
- if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) {
- for ( ; cur !== this; cur = cur.parentNode || this ) {
- // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
- if ( cur.disabled !== true || event.type !== "click" ) {
- matches = [];
- for ( i = 0; i < delegateCount; i++ ) {
- handleObj = handlers[ i ];
- // Don't conflict with Object.prototype properties (#13203)
- sel = handleObj.selector + " ";
- if ( matches[ sel ] === undefined ) {
- matches[ sel ] = handleObj.needsContext ?
- jQuery( sel, this ).index( cur ) >= 0 :
- jQuery.find( sel, this, null, [ cur ] ).length;
- }
- if ( matches[ sel ] ) {
- matches.push( handleObj );
- }
- }
- if ( matches.length ) {
- handlerQueue.push({ elem: cur, handlers: matches });
- }
- }
- }
- }
- // Add the remaining (directly-bound) handlers
- if ( delegateCount < handlers.length ) {
- handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });
- }
- return handlerQueue;
- },
- // Includes some event props shared by KeyEvent and MouseEvent
- props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
- fixHooks: {},
- keyHooks: {
- props: "char charCode key keyCode".split(" "),
- filter: function( event, original ) {
- // Add which for key events
- if ( event.which == null ) {
- event.which = original.charCode != null ? original.charCode : original.keyCode;
- }
- return event;
- }
- },
- mouseHooks: {
- props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
- filter: function( event, original ) {
- var eventDoc, doc, body,
- button = original.button;
- // Calculate pageX/Y if missing and clientX/Y available
- if ( event.pageX == null && original.clientX != null ) {
- eventDoc = event.target.ownerDocument || document;
- doc = eventDoc.documentElement;
- body = eventDoc.body;
- event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
- event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );
- }
- // Add which for click: 1 === left; 2 === middle; 3 === right
- // Note: button is not normalized, so don't use it
- if ( !event.which && button !== undefined ) {
- event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
- }
- return event;
- }
- },
- fix: function( event ) {
- if ( event[ jQuery.expando ] ) {
- return event;
- }
- // Create a writable copy of the event object and normalize some properties
- var i, prop, copy,
- type = event.type,
- originalEvent = event,
- fixHook = this.fixHooks[ type ];
- if ( !fixHook ) {
- this.fixHooks[ type ] = fixHook =
- rmouseEvent.test( type ) ? this.mouseHooks :
- rkeyEvent.test( type ) ? this.keyHooks :
- {};
- }
- copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
- event = new jQuery.Event( originalEvent );
- i = copy.length;
- while ( i-- ) {
- prop = copy[ i ];
- event[ prop ] = originalEvent[ prop ];
- }
- // Support: Cordova 2.5 (WebKit) (#13255)
- // All events should have a target; Cordova deviceready doesn't
- if ( !event.target ) {
- event.target = document;
- }
- // Support: Safari 6.0+, Chrome<28
- // Target should not be a text node (#504, #13143)
- if ( event.target.nodeType === 3 ) {
- event.target = event.target.parentNode;
- }
- return fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
- },
- special: {
- load: {
- // Prevent triggered image.load events from bubbling to window.load
- noBubble: true
- },
- focus: {
- // Fire native event if possible so blur/focus sequence is correct
- trigger: function() {
- if ( this !== safeActiveElement() && this.focus ) {
- this.focus();
- return false;
- }
- },
- delegateType: "focusin"
- },
- blur: {
- trigger: function() {
- if ( this === safeActiveElement() && this.blur ) {
- this.blur();
- return false;
- }
- },
- delegateType: "focusout"
- },
- click: {
- // For checkbox, fire native event so checked state will be right
- trigger: function() {
- if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) {
- this.click();
- return false;
- }
- },
- // For cross-browser consistency, don't fire native .click() on links
- _default: function( event ) {
- return jQuery.nodeName( event.target, "a" );
- }
- },
- beforeunload: {
- postDispatch: function( event ) {
- // Support: Firefox 20+
- // Firefox doesn't alert if the returnValue field is not set.
- if ( event.result !== undefined && event.originalEvent ) {
- event.originalEvent.returnValue = event.result;
- }
- }
- }
- },
- simulate: function( type, elem, event, bubble ) {
- // Piggyback on a donor event to simulate a different one.
- // Fake originalEvent to avoid donor's stopPropagation, but if the
- // simulated event prevents default then we do the same on the donor.
- var e = jQuery.extend(
- new jQuery.Event(),
- event,
- {
- type: type,
- isSimulated: true,
- originalEvent: {}
- }
- );
- if ( bubble ) {
- jQuery.event.trigger( e, null, elem );
- } else {
- jQuery.event.dispatch.call( elem, e );
- }
- if ( e.isDefaultPrevented() ) {
- event.preventDefault();
- }
- }
- };
- jQuery.removeEvent = function( elem, type, handle ) {
- if ( elem.removeEventListener ) {
- elem.removeEventListener( type, handle, false );
- }
- };
- jQuery.Event = function( src, props ) {
- // Allow instantiation without the 'new' keyword
- if ( !(this instanceof jQuery.Event) ) {
- return new jQuery.Event( src, props );
- }
- // Event object
- if ( src && src.type ) {
- this.originalEvent = src;
- this.type = src.type;
- // Events bubbling up the document may have been marked as prevented
- // by a handler lower down the tree; reflect the correct value.
- this.isDefaultPrevented = src.defaultPrevented ||
- src.defaultPrevented === undefined &&
- // Support: Android<4.0
- src.returnValue === false ?
- returnTrue :
- returnFalse;
- // Event type
- } else {
- this.type = src;
- }
- // Put explicitly provided properties onto the event object
- if ( props ) {
- jQuery.extend( this, props );
- }
- // Create a timestamp if incoming event doesn't have one
- this.timeStamp = src && src.timeStamp || jQuery.now();
- // Mark it as fixed
- this[ jQuery.expando ] = true;
- };
- // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
- // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
- jQuery.Event.prototype = {
- isDefaultPrevented: returnFalse,
- isPropagationStopped: returnFalse,
- isImmediatePropagationStopped: returnFalse,
- preventDefault: function() {
- var e = this.originalEvent;
- this.isDefaultPrevented = returnTrue;
- if ( e && e.preventDefault ) {
- e.preventDefault();
- }
- },
- stopPropagation: function() {
- var e = this.originalEvent;
- this.isPropagationStopped = returnTrue;
- if ( e && e.stopPropagation ) {
- e.stopPropagation();
- }
- },
- stopImmediatePropagation: function() {
- var e = this.originalEvent;
- this.isImmediatePropagationStopped = returnTrue;
- if ( e && e.stopImmediatePropagation ) {
- e.stopImmediatePropagation();
- }
- this.stopPropagation();
- }
- };
- // Create mouseenter/leave events using mouseover/out and event-time checks
- // Support: Chrome 15+
- jQuery.each({
- mouseenter: "mouseover",
- mouseleave: "mouseout",
- pointerenter: "pointerover",
- pointerleave: "pointerout"
- }, function( orig, fix ) {
- jQuery.event.special[ orig ] = {
- delegateType: fix,
- bindType: fix,
- handle: function( event ) {
- var ret,
- target = this,
- related = event.relatedTarget,
- handleObj = event.handleObj;
- // For mousenter/leave call the handler if related is outside the target.
- // NB: No relatedTarget if the mouse left/entered the browser window
- if ( !related || (related !== target && !jQuery.contains( target, related )) ) {
- event.type = handleObj.origType;
- ret = handleObj.handler.apply( this, arguments );
- event.type = fix;
- }
- return ret;
- }
- };
- });
- // Support: Firefox, Chrome, Safari
- // Create "bubbling" focus and blur events
- if ( !support.focusinBubbles ) {
- jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
- // Attach a single capturing handler on the document while someone wants focusin/focusout
- var handler = function( event ) {
- jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
- };
- jQuery.event.special[ fix ] = {
- setup: function() {
- var doc = this.ownerDocument || this,
- attaches = data_priv.access( doc, fix );
- if ( !attaches ) {
- doc.addEventListener( orig, handler, true );
- }
- data_priv.access( doc, fix, ( attaches || 0 ) + 1 );
- },
- teardown: function() {
- var doc = this.ownerDocument || this,
- attaches = data_priv.access( doc, fix ) - 1;
- if ( !attaches ) {
- doc.removeEventListener( orig, handler, true );
- data_priv.remove( doc, fix );
- } else {
- data_priv.access( doc, fix, attaches );
- }
- }
- };
- });
- }
- jQuery.fn.extend({
- on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
- var origFn, type;
- // Types can be a map of types/handlers
- if ( typeof types === "object" ) {
- // ( types-Object, selector, data )
- if ( typeof selector !== "string" ) {
- // ( types-Object, data )
- data = data || selector;
- selector = undefined;
- }
- for ( type in types ) {
- this.on( type, selector, data, types[ type ], one );
- }
- return this;
- }
- if ( data == null && fn == null ) {
- // ( types, fn )
- fn = selector;
- data = selector = undefined;
- } else if ( fn == null ) {
- if ( typeof selector === "string" ) {
- // ( types, selector, fn )
- fn = data;
- data = undefined;
- } else {
- // ( types, data, fn )
- fn = data;
- data = selector;
- selector = undefined;
- }
- }
- if ( fn === false ) {
- fn = returnFalse;
- } else if ( !fn ) {
- return this;
- }
- if ( one === 1 ) {
- origFn = fn;
- fn = function( event ) {
- // Can use an empty set, since event contains the info
- jQuery().off( event );
- return origFn.apply( this, arguments );
- };
- // Use same guid so caller can remove using origFn
- fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
- }
- return this.each( function() {
- jQuery.event.add( this, types, fn, data, selector );
- });
- },
- one: function( types, selector, data, fn ) {
- return this.on( types, selector, data, fn, 1 );
- },
- off: function( types, selector, fn ) {
- var handleObj, type;
- if ( types && types.preventDefault && types.handleObj ) {
- // ( event ) dispatched jQuery.Event
- handleObj = types.handleObj;
- jQuery( types.delegateTarget ).off(
- handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,
- handleObj.selector,
- handleObj.handler
- );
- return this;
- }
- if ( typeof types === "object" ) {
- // ( types-object [, selector] )
- for ( type in types ) {
- this.off( type, selector, types[ type ] );
- }
- return this;
- }
- if ( selector === false || typeof selector === "function" ) {
- // ( types [, fn] )
- fn = selector;
- selector = undefined;
- }
- if ( fn === false ) {
- fn = returnFalse;
- }
- return this.each(function() {
- jQuery.event.remove( this, types, fn, selector );
- });
- },
- trigger: function( type, data ) {
- return this.each(function() {
- jQuery.event.trigger( type, data, this );
- });
- },
- triggerHandler: function( type, data ) {
- var elem = this[0];
- if ( elem ) {
- return jQuery.event.trigger( type, data, elem, true );
- }
- }
- });
- var
- rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
- rtagName = /<([\w:]+)/,
- rhtml = /<|&#?\w+;/,
- rnoInnerhtml = /<(?:script|style|link)/i,
- // checked="checked" or checked
- rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
- rscriptType = /^$|\/(?:java|ecma)script/i,
- rscriptTypeMasked = /^true\/(.*)/,
- rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
- // We have to close these tags to support XHTML (#13200)
- wrapMap = {
- // Support: IE9
- option: [ 1, "<select multiple='multiple'>", "</select>" ],
- thead: [ 1, "<table>", "</table>" ],
- col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
- tr: [ 2, "<table><tbody>", "</tbody></table>" ],
- td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
- _default: [ 0, "", "" ]
- };
- // Support: IE9
- wrapMap.optgroup = wrapMap.option;
- wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
- wrapMap.th = wrapMap.td;
- // Support: 1.x compatibility
- // Manipulating tables requires a tbody
- function manipulationTarget( elem, content ) {
- return jQuery.nodeName( elem, "table" ) &&
- jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ?
- elem.getElementsByTagName("tbody")[0] ||
- elem.appendChild( elem.ownerDocument.createElement("tbody") ) :
- elem;
- }
- // Replace/restore the type attribute of script elements for safe DOM manipulation
- function disableScript( elem ) {
- elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type;
- return elem;
- }
- function restoreScript( elem ) {
- var match = rscriptTypeMasked.exec( elem.type );
- if ( match ) {
- elem.type = match[ 1 ];
- } else {
- elem.removeAttribute("type");
- }
- return elem;
- }
- // Mark scripts as having already been evaluated
- function setGlobalEval( elems, refElements ) {
- var i = 0,
- l = elems.length;
- for ( ; i < l; i++ ) {
- data_priv.set(
- elems[ i ], "globalEval", !refElements || data_priv.get( refElements[ i ], "globalEval" )
- );
- }
- }
- function cloneCopyEvent( src, dest ) {
- var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
- if ( dest.nodeType !== 1 ) {
- return;
- }
- // 1. Copy private data: events, handlers, etc.
- if ( data_priv.hasData( src ) ) {
- pdataOld = data_priv.access( src );
- pdataCur = data_priv.set( dest, pdataOld );
- events = pdataOld.events;
- if ( events ) {
- delete pdataCur.handle;
- pdataCur.events = {};
- for ( type in events ) {
- for ( i = 0, l = events[ type ].length; i < l; i++ ) {
- jQuery.event.add( dest, type, events[ type ][ i ] );
- }
- }
- }
- }
- // 2. Copy user data
- if ( data_user.hasData( src ) ) {
- udataOld = data_user.access( src );
- udataCur = jQuery.extend( {}, udataOld );
- data_user.set( dest, udataCur );
- }
- }
- function getAll( context, tag ) {
- var ret = context.getElementsByTagName ? context.getElementsByTagName( tag || "*" ) :
- context.querySelectorAll ? context.querySelectorAll( tag || "*" ) :
- [];
- return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
- jQuery.merge( [ context ], ret ) :
- ret;
- }
- // Fix IE bugs, see support tests
- function fixInput( src, dest ) {
- var nodeName = dest.nodeName.toLowerCase();
- // Fails to persist the checked state of a cloned checkbox or radio button.
- if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
- dest.checked = src.checked;
- // Fails to return the selected option to the default selected state when cloning options
- } else if ( nodeName === "input" || nodeName === "textarea" ) {
- dest.defaultValue = src.defaultValue;
- }
- }
- jQuery.extend({
- clone: function( elem, dataAndEvents, deepDataAndEvents ) {
- var i, l, srcElements, destElements,
- clone = elem.cloneNode( true ),
- inPage = jQuery.contains( elem.ownerDocument, elem );
- // Fix IE cloning issues
- if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
- !jQuery.isXMLDoc( elem ) ) {
- // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2
- destElements = getAll( clone );
- srcElements = getAll( elem );
- for ( i = 0, l = srcElements.length; i < l; i++ ) {
- fixInput( srcElements[ i ], destElements[ i ] );
- }
- }
- // Copy the events from the original to the clone
- if ( dataAndEvents ) {
- if ( deepDataAndEvents ) {
- srcElements = srcElements || getAll( elem );
- destElements = destElements || getAll( clone );
- for ( i = 0, l = srcElements.length; i < l; i++ ) {
- cloneCopyEvent( srcElements[ i ], destElements[ i ] );
- }
- } else {
- cloneCopyEvent( elem, clone );
- }
- }
- // Preserve script evaluation history
- destElements = getAll( clone, "script" );
- if ( destElements.length > 0 ) {
- setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
- }
- // Return the cloned set
- return clone;
- },
- buildFragment: function( elems, context, scripts, selection ) {
- var elem, tmp, tag, wrap, contains, j,
- fragment = context.createDocumentFragment(),
- nodes = [],
- i = 0,
- l = elems.length;
- for ( ; i < l; i++ ) {
- elem = elems[ i ];
- if ( elem || elem === 0 ) {
- // Add nodes directly
- if ( jQuery.type( elem ) === "object" ) {
- // Support: QtWebKit, PhantomJS
- // push.apply(_, arraylike) throws on ancient WebKit
- jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
- // Convert non-html into a text node
- } else if ( !rhtml.test( elem ) ) {
- nodes.push( context.createTextNode( elem ) );
- // Convert html into DOM nodes
- } else {
- tmp = tmp || fragment.appendChild( context.createElement("div") );
- // Deserialize a standard representation
- tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
- wrap = wrapMap[ tag ] || wrapMap._default;
- tmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[ 2 ];
- // Descend through wrappers to the right content
- j = wrap[ 0 ];
- while ( j-- ) {
- tmp = tmp.lastChild;
- }
- // Support: QtWebKit, PhantomJS
- // push.apply(_, arraylike) throws on ancient WebKit
- jQuery.merge( nodes, tmp.childNodes );
- // Remember the top-level container
- tmp = fragment.firstChild;
- // Ensure the created nodes are orphaned (#12392)
- tmp.textContent = "";
- }
- }
- }
- // Remove wrapper from fragment
- fragment.textContent = "";
- i = 0;
- while ( (elem = nodes[ i++ ]) ) {
- // #4087 - If origin and destination elements are the same, and this is
- // that element, do not do anything
- if ( selection && jQuery.inArray( elem, selection ) !== -1 ) {
- continue;
- }
- contains = jQuery.contains( elem.ownerDocument, elem );
- // Append to fragment
- tmp = getAll( fragment.appendChild( elem ), "script" );
- // Preserve script evaluation history
- if ( contains ) {
- setGlobalEval( tmp );
- }
- // Capture executables
- if ( scripts ) {
- j = 0;
- while ( (elem = tmp[ j++ ]) ) {
- if ( rscriptType.test( elem.type || "" ) ) {
- scripts.push( elem );
- }
- }
- }
- }
- return fragment;
- },
- cleanData: function( elems ) {
- var data, elem, type, key,
- special = jQuery.event.special,
- i = 0;
- for ( ; (elem = elems[ i ]) !== undefined; i++ ) {
- if ( jQuery.acceptData( elem ) ) {
- key = elem[ data_priv.expando ];
- if ( key && (data = data_priv.cache[ key ]) ) {
- if ( data.events ) {
- for ( type in data.events ) {
- if ( special[ type ] ) {
- jQuery.event.remove( elem, type );
- // This is a shortcut to avoid jQuery.event.remove's overhead
- } else {
- jQuery.removeEvent( elem, type, data.handle );
- }
- }
- }
- if ( data_priv.cache[ key ] ) {
- // Discard any remaining `private` data
- delete data_priv.cache[ key ];
- }
- }
- }
- // Discard any remaining `user` data
- delete data_user.cache[ elem[ data_user.expando ] ];
- }
- }
- });
- jQuery.fn.extend({
- text: function( value ) {
- return access( this, function( value ) {
- return value === undefined ?
- jQuery.text( this ) :
- this.empty().each(function() {
- if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
- this.textContent = value;
- }
- });
- }, null, value, arguments.length );
- },
- append: function() {
- return this.domManip( arguments, function( elem ) {
- if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
- var target = manipulationTarget( this, elem );
- target.appendChild( elem );
- }
- });
- },
- prepend: function() {
- return this.domManip( arguments, function( elem ) {
- if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
- var target = manipulationTarget( this, elem );
- target.insertBefore( elem, target.firstChild );
- }
- });
- },
- before: function() {
- return this.domManip( arguments, function( elem ) {
- if ( this.parentNode ) {
- this.parentNode.insertBefore( elem, this );
- }
- });
- },
- after: function() {
- return this.domManip( arguments, function( elem ) {
- if ( this.parentNode ) {
- this.parentNode.insertBefore( elem, this.nextSibling );
- }
- });
- },
- remove: function( selector, keepData /* Internal Use Only */ ) {
- var elem,
- elems = selector ? jQuery.filter( selector, this ) : this,
- i = 0;
- for ( ; (elem = elems[i]) != null; i++ ) {
- if ( !keepData && elem.nodeType === 1 ) {
- jQuery.cleanData( getAll( elem ) );
- }
- if ( elem.parentNode ) {
- if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {
- setGlobalEval( getAll( elem, "script" ) );
- }
- elem.parentNode.removeChild( elem );
- }
- }
- return this;
- },
- empty: function() {
- var elem,
- i = 0;
- for ( ; (elem = this[i]) != null; i++ ) {
- if ( elem.nodeType === 1 ) {
- // Prevent memory leaks
- jQuery.cleanData( getAll( elem, false ) );
- // Remove any remaining nodes
- elem.textContent = "";
- }
- }
- return this;
- },
- clone: function( dataAndEvents, deepDataAndEvents ) {
- dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
- deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
- return this.map(function() {
- return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
- });
- },
- html: function( value ) {
- return access( this, function( value ) {
- var elem = this[ 0 ] || {},
- i = 0,
- l = this.length;
- if ( value === undefined && elem.nodeType === 1 ) {
- return elem.innerHTML;
- }
- // See if we can take a shortcut and just use innerHTML
- if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
- !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
- value = value.replace( rxhtmlTag, "<$1></$2>" );
- try {
- for ( ; i < l; i++ ) {
- elem = this[ i ] || {};
- // Remove element nodes and prevent memory leaks
- if ( elem.nodeType === 1 ) {
- jQuery.cleanData( getAll( elem, false ) );
- elem.innerHTML = value;
- }
- }
- elem = 0;
- // If using innerHTML throws an exception, use the fallback method
- } catch( e ) {}
- }
- if ( elem ) {
- this.empty().append( value );
- }
- }, null, value, arguments.length );
- },
- replaceWith: function() {
- var arg = arguments[ 0 ];
- // Make the changes, replacing each context element with the new content
- this.domManip( arguments, function( elem ) {
- arg = this.parentNode;
- jQuery.cleanData( getAll( this ) );
- if ( arg ) {
- arg.replaceChild( elem, this );
- }
- });
- // Force removal if there was no new content (e.g., from empty arguments)
- return arg && (arg.length || arg.nodeType) ? this : this.remove();
- },
- detach: function( selector ) {
- return this.remove( selector, true );
- },
- domManip: function( args, callback ) {
- // Flatten any nested arrays
- args = concat.apply( [], args );
- var fragment, first, scripts, hasScripts, node, doc,
- i = 0,
- l = this.length,
- set = this,
- iNoClone = l - 1,
- value = args[ 0 ],
- isFunction = jQuery.isFunction( value );
- // We can't cloneNode fragments that contain checked, in WebKit
- if ( isFunction ||
- ( l > 1 && typeof value === "string" &&
- !support.checkClone && rchecked.test( value ) ) ) {
- return this.each(function( index ) {
- var self = set.eq( index );
- if ( isFunction ) {
- args[ 0 ] = value.call( this, index, self.html() );
- }
- self.domManip( args, callback );
- });
- }
- if ( l ) {
- fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );
- first = fragment.firstChild;
- if ( fragment.childNodes.length === 1 ) {
- fragment = first;
- }
- if ( first ) {
- scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
- hasScripts = scripts.length;
- // Use the original fragment for the last item instead of the first because it can end up
- // being emptied incorrectly in certain situations (#8070).
- for ( ; i < l; i++ ) {
- node = fragment;
- if ( i !== iNoClone ) {
- node = jQuery.clone( node, true, true );
- // Keep references to cloned scripts for later restoration
- if ( hasScripts ) {
- // Support: QtWebKit
- // jQuery.merge because push.apply(_, arraylike) throws
- jQuery.merge( scripts, getAll( node, "script" ) );
- }
- }
- callback.call( this[ i ], node, i );
- }
- if ( hasScripts ) {
- doc = scripts[ scripts.length - 1 ].ownerDocument;
- // Reenable scripts
- jQuery.map( scripts, restoreScript );
- // Evaluate executable scripts on first document insertion
- for ( i = 0; i < hasScripts; i++ ) {
- node = scripts[ i ];
- if ( rscriptType.test( node.type || "" ) &&
- !data_priv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) {
- if ( node.src ) {
- // Optional AJAX dependency, but won't run scripts if not present
- if ( jQuery._evalUrl ) {
- jQuery._evalUrl( node.src );
- }
- } else {
- jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) );
- }
- }
- }
- }
- }
- }
- return this;
- }
- });
- jQuery.each({
- appendTo: "append",
- prependTo: "prepend",
- insertBefore: "before",
- insertAfter: "after",
- replaceAll: "replaceWith"
- }, function( name, original ) {
- jQuery.fn[ name ] = function( selector ) {
- var elems,
- ret = [],
- insert = jQuery( selector ),
- last = insert.length - 1,
- i = 0;
- for ( ; i <= last; i++ ) {
- elems = i === last ? this : this.clone( true );
- jQuery( insert[ i ] )[ original ]( elems );
- // Support: QtWebKit
- // .get() because push.apply(_, arraylike) throws
- push.apply( ret, elems.get() );
- }
- return this.pushStack( ret );
- };
- });
- var iframe,
- elemdisplay = {};
- /**
- * Retrieve the actual display of a element
- * @param {String} name nodeName of the element
- * @param {Object} doc Document object
- */
- // Called only from within defaultDisplay
- function actualDisplay( name, doc ) {
- var style,
- elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
- // getDefaultComputedStyle might be reliably used only on attached element
- display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?
- // Use of this method is a temporary fix (more like optimization) until something better comes along,
- // since it was removed from specification and supported only in FF
- style.display : jQuery.css( elem[ 0 ], "display" );
- // We don't have any data stored on the element,
- // so use "detach" method as fast way to get rid of the element
- elem.detach();
- return display;
- }
- /**
- * Try to determine the default display value of an element
- * @param {String} nodeName
- */
- function defaultDisplay( nodeName ) {
- var doc = document,
- display = elemdisplay[ nodeName ];
- if ( !display ) {
- display = actualDisplay( nodeName, doc );
- // If the simple way fails, read from inside an iframe
- if ( display === "none" || !display ) {
- // Use the already-created iframe if possible
- iframe = (iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" )).appendTo( doc.documentElement );
- // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
- doc = iframe[ 0 ].contentDocument;
- // Support: IE
- doc.write();
- doc.close();
- display = actualDisplay( nodeName, doc );
- iframe.detach();
- }
- // Store the correct default display
- elemdisplay[ nodeName ] = display;
- }
- return display;
- }
- var rmargin = (/^margin/);
- var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
- var getStyles = function( elem ) {
- // Support: IE<=11+, Firefox<=30+ (#15098, #14150)
- // IE throws on elements created in popups
- // FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
- if ( elem.ownerDocument.defaultView.opener ) {
- return elem.ownerDocument.defaultView.getComputedStyle( elem, null );
- }
- return window.getComputedStyle( elem, null );
- };
- function curCSS( elem, name, computed ) {
- var width, minWidth, maxWidth, ret,
- style = elem.style;
- computed = computed || getStyles( elem );
- // Support: IE9
- // getPropertyValue is only needed for .css('filter') (#12537)
- if ( computed ) {
- ret = computed.getPropertyValue( name ) || computed[ name ];
- }
- if ( computed ) {
- if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
- ret = jQuery.style( elem, name );
- }
- // Support: iOS < 6
- // A tribute to the "awesome hack by Dean Edwards"
- // iOS < 6 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels
- // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
- if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {
- // Remember the original values
- width = style.width;
- minWidth = style.minWidth;
- maxWidth = style.maxWidth;
- // Put in the new values to get a computed value out
- style.minWidth = style.maxWidth = style.width = ret;
- ret = computed.width;
- // Revert the changed values
- style.width = width;
- style.minWidth = minWidth;
- style.maxWidth = maxWidth;
- }
- }
- return ret !== undefined ?
- // Support: IE
- // IE returns zIndex value as an integer.
- ret + "" :
- ret;
- }
- function addGetHookIf( conditionFn, hookFn ) {
- // Define the hook, we'll check on the first run if it's really needed.
- return {
- get: function() {
- if ( conditionFn() ) {
- // Hook not needed (or it's not possible to use it due
- // to missing dependency), remove it.
- delete this.get;
- return;
- }
- // Hook needed; redefine it so that the support test is not executed again.
- return (this.get = hookFn).apply( this, arguments );
- }
- };
- }
- (function() {
- var pixelPositionVal, boxSizingReliableVal,
- docElem = document.documentElement,
- container = document.createElement( "div" ),
- div = document.createElement( "div" );
- if ( !div.style ) {
- return;
- }
- // Support: IE9-11+
- // Style of cloned element affects source element cloned (#8908)
- div.style.backgroundClip = "content-box";
- div.cloneNode( true ).style.backgroundClip = "";
- support.clearCloneStyle = div.style.backgroundClip === "content-box";
- container.style.cssText = "border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;" +
- "position:absolute";
- container.appendChild( div );
- // Executing both pixelPosition & boxSizingReliable tests require only one layout
- // so they're executed at the same time to save the second computation.
- function computePixelPositionAndBoxSizingReliable() {
- div.style.cssText =
- // Support: Firefox<29, Android 2.3
- // Vendor-prefix box-sizing
- "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;" +
- "box-sizing:border-box;display:block;margin-top:1%;top:1%;" +
- "border:1px;padding:1px;width:4px;position:absolute";
- div.innerHTML = "";
- docElem.appendChild( container );
- var divStyle = window.getComputedStyle( div, null );
- pixelPositionVal = divStyle.top !== "1%";
- boxSizingReliableVal = divStyle.width === "4px";
- docElem.removeChild( container );
- }
- // Support: node.js jsdom
- // Don't assume that getComputedStyle is a property of the global object
- if ( window.getComputedStyle ) {
- jQuery.extend( support, {
- pixelPosition: function() {
- // This test is executed only once but we still do memoizing
- // since we can use the boxSizingReliable pre-computing.
- // No need to check if the test was already performed, though.
- computePixelPositionAndBoxSizingReliable();
- return pixelPositionVal;
- },
- boxSizingReliable: function() {
- if ( boxSizingReliableVal == null ) {
- computePixelPositionAndBoxSizingReliable();
- }
- return boxSizingReliableVal;
- },
- reliableMarginRight: function() {
- // Support: Android 2.3
- // Check if div with explicit width and no margin-right incorrectly
- // gets computed margin-right based on width of container. (#3333)
- // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
- // This support function is only executed once so no memoizing is needed.
- var ret,
- marginDiv = div.appendChild( document.createElement( "div" ) );
- // Reset CSS: box-sizing; display; margin; border; padding
- marginDiv.style.cssText = div.style.cssText =
- // Support: Firefox<29, Android 2.3
- // Vendor-prefix box-sizing
- "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
- "box-sizing:content-box;display:block;margin:0;border:0;padding:0";
- marginDiv.style.marginRight = marginDiv.style.width = "0";
- div.style.width = "1px";
- docElem.appendChild( container );
- ret = !parseFloat( window.getComputedStyle( marginDiv, null ).marginRight );
- docElem.removeChild( container );
- div.removeChild( marginDiv );
- return ret;
- }
- });
- }
- })();
- // A method for quickly swapping in/out CSS properties to get correct calculations.
- jQuery.swap = function( elem, options, callback, args ) {
- var ret, name,
- old = {};
- // Remember the old values, and insert the new ones
- for ( name in options ) {
- old[ name ] = elem.style[ name ];
- elem.style[ name ] = options[ name ];
- }
- ret = callback.apply( elem, args || [] );
- // Revert the old values
- for ( name in options ) {
- elem.style[ name ] = old[ name ];
- }
- return ret;
- };
- var
- // Swappable if display is none or starts with table except "table", "table-cell", or "table-caption"
- // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
- rdisplayswap = /^(none|table(?!-c[ea]).+)/,
- rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ),
- rrelNum = new RegExp( "^([+-])=(" + pnum + ")", "i" ),
- cssShow = { position: "absolute", visibility: "hidden", display: "block" },
- cssNormalTransform = {
- letterSpacing: "0",
- fontWeight: "400"
- },
- cssPrefixes = [ "Webkit", "O", "Moz", "ms" ];
- // Return a css property mapped to a potentially vendor prefixed property
- function vendorPropName( style, name ) {
- // Shortcut for names that are not vendor prefixed
- if ( name in style ) {
- return name;
- }
- // Check for vendor prefixed names
- var capName = name[0].toUpperCase() + name.slice(1),
- origName = name,
- i = cssPrefixes.length;
- while ( i-- ) {
- name = cssPrefixes[ i ] + capName;
- if ( name in style ) {
- return name;
- }
- }
- return origName;
- }
- function setPositiveNumber( elem, value, subtract ) {
- var matches = rnumsplit.exec( value );
- return matches ?
- // Guard against undefined "subtract", e.g., when used as in cssHooks
- Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) :
- value;
- }
- function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
- var i = extra === ( isBorderBox ? "border" : "content" ) ?
- // If we already have the right measurement, avoid augmentation
- 4 :
- // Otherwise initialize for horizontal or vertical properties
- name === "width" ? 1 : 0,
- val = 0;
- for ( ; i < 4; i += 2 ) {
- // Both box models exclude margin, so add it if we want it
- if ( extra === "margin" ) {
- val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
- }
- if ( isBorderBox ) {
- // border-box includes padding, so remove it if we want content
- if ( extra === "content" ) {
- val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
- }
- // At this point, extra isn't border nor margin, so remove border
- if ( extra !== "margin" ) {
- val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
- }
- } else {
- // At this point, extra isn't content, so add padding
- val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
- // At this point, extra isn't content nor padding, so add border
- if ( extra !== "padding" ) {
- val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
- }
- }
- }
- return val;
- }
- function getWidthOrHeight( elem, name, extra ) {
- // Start with offset property, which is equivalent to the border-box value
- var valueIsBorderBox = true,
- val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
- styles = getStyles( elem ),
- isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
- // Some non-html elements return undefined for offsetWidth, so check for null/undefined
- // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
- // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
- if ( val <= 0 || val == null ) {
- // Fall back to computed then uncomputed css if necessary
- val = curCSS( elem, name, styles );
- if ( val < 0 || val == null ) {
- val = elem.style[ name ];
- }
- // Computed unit is not pixels. Stop here and return.
- if ( rnumnonpx.test(val) ) {
- return val;
- }
- // Check for style in case a browser which returns unreliable values
- // for getComputedStyle silently falls back to the reliable elem.style
- valueIsBorderBox = isBorderBox &&
- ( support.boxSizingReliable() || val === elem.style[ name ] );
- // Normalize "", auto, and prepare for extra
- val = parseFloat( val ) || 0;
- }
- // Use the active box-sizing model to add/subtract irrelevant styles
- return ( val +
- augmentWidthOrHeight(
- elem,
- name,
- extra || ( isBorderBox ? "border" : "content" ),
- valueIsBorderBox,
- styles
- )
- ) + "px";
- }
- function showHide( elements, show ) {
- var display, elem, hidden,
- values = [],
- index = 0,
- length = elements.length;
- for ( ; index < length; index++ ) {
- elem = elements[ index ];
- if ( !elem.style ) {
- continue;
- }
- values[ index ] = data_priv.get( elem, "olddisplay" );
- display = elem.style.display;
- if ( show ) {
- // Reset the inline display of this element to learn if it is
- // being hidden by cascaded rules or not
- if ( !values[ index ] && display === "none" ) {
- elem.style.display = "";
- }
- // Set elements which have been overridden with display: none
- // in a stylesheet to whatever the default browser style is
- // for such an element
- if ( elem.style.display === "" && isHidden( elem ) ) {
- values[ index ] = data_priv.access( elem, "olddisplay", defaultDisplay(elem.nodeName) );
- }
- } else {
- hidden = isHidden( elem );
- if ( display !== "none" || !hidden ) {
- data_priv.set( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
- }
- }
- }
- // Set the display of most of the elements in a second loop
- // to avoid the constant reflow
- for ( index = 0; index < length; index++ ) {
- elem = elements[ index ];
- if ( !elem.style ) {
- continue;
- }
- if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
- elem.style.display = show ? values[ index ] || "" : "none";
- }
- }
- return elements;
- }
- jQuery.extend({
- // Add in style property hooks for overriding the default
- // behavior of getting and setting a style property
- cssHooks: {
- opacity: {
- get: function( elem, computed ) {
- if ( computed ) {
- // We should always get a number back from opacity
- var ret = curCSS( elem, "opacity" );
- return ret === "" ? "1" : ret;
- }
- }
- }
- },
- // Don't automatically add "px" to these possibly-unitless properties
- cssNumber: {
- "columnCount": true,
- "fillOpacity": true,
- "flexGrow": true,
- "flexShrink": true,
- "fontWeight": true,
- "lineHeight": true,
- "opacity": true,
- "order": true,
- "orphans": true,
- "widows": true,
- "zIndex": true,
- "zoom": true
- },
- // Add in properties whose names you wish to fix before
- // setting or getting the value
- cssProps: {
- "float": "cssFloat"
- },
- // Get and set the style property on a DOM Node
- style: function( elem, name, value, extra ) {
- // Don't set styles on text and comment nodes
- if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
- return;
- }
- // Make sure that we're working with the right name
- var ret, type, hooks,
- origName = jQuery.camelCase( name ),
- style = elem.style;
- name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );
- // Gets hook for the prefixed version, then unprefixed version
- hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
- // Check if we're setting a value
- if ( value !== undefined ) {
- type = typeof value;
- // Convert "+=" or "-=" to relative numbers (#7345)
- if ( type === "string" && (ret = rrelNum.exec( value )) ) {
- value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );
- // Fixes bug #9237
- type = "number";
- }
- // Make sure that null and NaN values aren't set (#7116)
- if ( value == null || value !== value ) {
- return;
- }
- // If a number, add 'px' to the (except for certain CSS properties)
- if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
- value += "px";
- }
- // Support: IE9-11+
- // background-* props affect original clone's values
- if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
- style[ name ] = "inherit";
- }
- // If a hook was provided, use that value, otherwise just set the specified value
- if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {
- style[ name ] = value;
- }
- } else {
- // If a hook was provided get the non-computed value from there
- if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
- return ret;
- }
- // Otherwise just get the value from the style object
- return style[ name ];
- }
- },
- css: function( elem, name, extra, styles ) {
- var val, num, hooks,
- origName = jQuery.camelCase( name );
- // Make sure that we're working with the right name
- name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );
- // Try prefixed name followed by the unprefixed name
- hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
- // If a hook was provided get the computed value from there
- if ( hooks && "get" in hooks ) {
- val = hooks.get( elem, true, extra );
- }
- // Otherwise, if a way to get the computed value exists, use that
- if ( val === undefined ) {
- val = curCSS( elem, name, styles );
- }
- // Convert "normal" to computed value
- if ( val === "normal" && name in cssNormalTransform ) {
- val = cssNormalTransform[ name ];
- }
- // Make numeric if forced or a qualifier was provided and val looks numeric
- if ( extra === "" || extra ) {
- num = parseFloat( val );
- return extra === true || jQuery.isNumeric( num ) ? num || 0 : val;
- }
- return val;
- }
- });
- jQuery.each([ "height", "width" ], function( i, name ) {
- jQuery.cssHooks[ name ] = {
- get: function( elem, computed, extra ) {
- if ( computed ) {
- // Certain elements can have dimension info if we invisibly show them
- // but it must have a current display style that would benefit
- return rdisplayswap.test( jQuery.css( elem, "display" ) ) && elem.offsetWidth === 0 ?
- jQuery.swap( elem, cssShow, function() {
- return getWidthOrHeight( elem, name, extra );
- }) :
- getWidthOrHeight( elem, name, extra );
- }
- },
- set: function( elem, value, extra ) {
- var styles = extra && getStyles( elem );
- return setPositiveNumber( elem, value, extra ?
- augmentWidthOrHeight(
- elem,
- name,
- extra,
- jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
- styles
- ) : 0
- );
- }
- };
- });
- // Support: Android 2.3
- jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,
- function( elem, computed ) {
- if ( computed ) {
- return jQuery.swap( elem, { "display": "inline-block" },
- curCSS, [ elem, "marginRight" ] );
- }
- }
- );
- // These hooks are used by animate to expand properties
- jQuery.each({
- margin: "",
- padding: "",
- border: "Width"
- }, function( prefix, suffix ) {
- jQuery.cssHooks[ prefix + suffix ] = {
- expand: function( value ) {
- var i = 0,
- expanded = {},
- // Assumes a single number if not a string
- parts = typeof value === "string" ? value.split(" ") : [ value ];
- for ( ; i < 4; i++ ) {
- expanded[ prefix + cssExpand[ i ] + suffix ] =
- parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
- }
- return expanded;
- }
- };
- if ( !rmargin.test( prefix ) ) {
- jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
- }
- });
- jQuery.fn.extend({
- css: function( name, value ) {
- return access( this, function( elem, name, value ) {
- var styles, len,
- map = {},
- i = 0;
- if ( jQuery.isArray( name ) ) {
- styles = getStyles( elem );
- len = name.length;
- for ( ; i < len; i++ ) {
- map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
- }
- return map;
- }
- return value !== undefined ?
- jQuery.style( elem, name, value ) :
- jQuery.css( elem, name );
- }, name, value, arguments.length > 1 );
- },
- show: function() {
- return showHide( this, true );
- },
- hide: function() {
- return showHide( this );
- },
- toggle: function( state ) {
- if ( typeof state === "boolean" ) {
- return state ? this.show() : this.hide();
- }
- return this.each(function() {
- if ( isHidden( this ) ) {
- jQuery( this ).show();
- } else {
- jQuery( this ).hide();
- }
- });
- }
- });
- function Tween( elem, options, prop, end, easing ) {
- return new Tween.prototype.init( elem, options, prop, end, easing );
- }
- jQuery.Tween = Tween;
- Tween.prototype = {
- constructor: Tween,
- init: function( elem, options, prop, end, easing, unit ) {
- this.elem = elem;
- this.prop = prop;
- this.easing = easing || "swing";
- this.options = options;
- this.start = this.now = this.cur();
- this.end = end;
- this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
- },
- cur: function() {
- var hooks = Tween.propHooks[ this.prop ];
- return hooks && hooks.get ?
- hooks.get( this ) :
- Tween.propHooks._default.get( this );
- },
- run: function( percent ) {
- var eased,
- hooks = Tween.propHooks[ this.prop ];
- if ( this.options.duration ) {
- this.pos = eased = jQuery.easing[ this.easing ](
- percent, this.options.duration * percent, 0, 1, this.options.duration
- );
- } else {
- this.pos = eased = percent;
- }
- this.now = ( this.end - this.start ) * eased + this.start;
- if ( this.options.step ) {
- this.options.step.call( this.elem, this.now, this );
- }
- if ( hooks && hooks.set ) {
- hooks.set( this );
- } else {
- Tween.propHooks._default.set( this );
- }
- return this;
- }
- };
- Tween.prototype.init.prototype = Tween.prototype;
- Tween.propHooks = {
- _default: {
- get: function( tween ) {
- var result;
- if ( tween.elem[ tween.prop ] != null &&
- (!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {
- return tween.elem[ tween.prop ];
- }
- // Passing an empty string as a 3rd parameter to .css will automatically
- // attempt a parseFloat and fallback to a string if the parse fails.
- // Simple values such as "10px" are parsed to Float;
- // complex values such as "rotate(1rad)" are returned as-is.
- result = jQuery.css( tween.elem, tween.prop, "" );
- // Empty strings, null, undefined and "auto" are converted to 0.
- return !result || result === "auto" ? 0 : result;
- },
- set: function( tween ) {
- // Use step hook for back compat.
- // Use cssHook if its there.
- // Use .style if available and use plain properties where available.
- if ( jQuery.fx.step[ tween.prop ] ) {
- jQuery.fx.step[ tween.prop ]( tween );
- } else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {
- jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
- } else {
- tween.elem[ tween.prop ] = tween.now;
- }
- }
- }
- };
- // Support: IE9
- // Panic based approach to setting things on disconnected nodes
- Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
- set: function( tween ) {
- if ( tween.elem.nodeType && tween.elem.parentNode ) {
- tween.elem[ tween.prop ] = tween.now;
- }
- }
- };
- jQuery.easing = {
- linear: function( p ) {
- return p;
- },
- swing: function( p ) {
- return 0.5 - Math.cos( p * Math.PI ) / 2;
- }
- };
- jQuery.fx = Tween.prototype.init;
- // Back Compat <1.8 extension point
- jQuery.fx.step = {};
- var
- fxNow, timerId,
- rfxtypes = /^(?:toggle|show|hide)$/,
- rfxnum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ),
- rrun = /queueHooks$/,
- animationPrefilters = [ defaultPrefilter ],
- tweeners = {
- "*": [ function( prop, value ) {
- var tween = this.createTween( prop, value ),
- target = tween.cur(),
- parts = rfxnum.exec( value ),
- unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
- // Starting value computation is required for potential unit mismatches
- start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) &&
- rfxnum.exec( jQuery.css( tween.elem, prop ) ),
- scale = 1,
- maxIterations = 20;
- if ( start && start[ 3 ] !== unit ) {
- // Trust units reported by jQuery.css
- unit = unit || start[ 3 ];
- // Make sure we update the tween properties later on
- parts = parts || [];
- // Iteratively approximate from a nonzero starting point
- start = +target || 1;
- do {
- // If previous iteration zeroed out, double until we get *something*.
- // Use string for doubling so we don't accidentally see scale as unchanged below
- scale = scale || ".5";
- // Adjust and apply
- start = start / scale;
- jQuery.style( tween.elem, prop, start + unit );
- // Update scale, tolerating zero or NaN from tween.cur(),
- // break the loop if scale is unchanged or perfect, or if we've just had enough
- } while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations );
- }
- // Update tween properties
- if ( parts ) {
- start = tween.start = +start || +target || 0;
- tween.unit = unit;
- // If a +=/-= token was provided, we're doing a relative animation
- tween.end = parts[ 1 ] ?
- start + ( parts[ 1 ] + 1 ) * parts[ 2 ] :
- +parts[ 2 ];
- }
- return tween;
- } ]
- };
- // Animations created synchronously will run synchronously
- function createFxNow() {
- setTimeout(function() {
- fxNow = undefined;
- });
- return ( fxNow = jQuery.now() );
- }
- // Generate parameters to create a standard animation
- function genFx( type, includeWidth ) {
- var which,
- i = 0,
- attrs = { height: type };
- // If we include width, step value is 1 to do all cssExpand values,
- // otherwise step value is 2 to skip over Left and Right
- includeWidth = includeWidth ? 1 : 0;
- for ( ; i < 4 ; i += 2 - includeWidth ) {
- which = cssExpand[ i ];
- attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
- }
- if ( includeWidth ) {
- attrs.opacity = attrs.width = type;
- }
- return attrs;
- }
- function createTween( value, prop, animation ) {
- var tween,
- collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ),
- index = 0,
- length = collection.length;
- for ( ; index < length; index++ ) {
- if ( (tween = collection[ index ].call( animation, prop, value )) ) {
- // We're done with this property
- return tween;
- }
- }
- }
- function defaultPrefilter( elem, props, opts ) {
- /* jshint validthis: true */
- var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,
- anim = this,
- orig = {},
- style = elem.style,
- hidden = elem.nodeType && isHidden( elem ),
- dataShow = data_priv.get( elem, "fxshow" );
- // Handle queue: false promises
- if ( !opts.queue ) {
- hooks = jQuery._queueHooks( elem, "fx" );
- if ( hooks.unqueued == null ) {
- hooks.unqueued = 0;
- oldfire = hooks.empty.fire;
- hooks.empty.fire = function() {
- if ( !hooks.unqueued ) {
- oldfire();
- }
- };
- }
- hooks.unqueued++;
- anim.always(function() {
- // Ensure the complete handler is called before this completes
- anim.always(function() {
- hooks.unqueued--;
- if ( !jQuery.queue( elem, "fx" ).length ) {
- hooks.empty.fire();
- }
- });
- });
- }
- // Height/width overflow pass
- if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
- // Make sure that nothing sneaks out
- // Record all 3 overflow attributes because IE9-10 do not
- // change the overflow attribute when overflowX and
- // overflowY are set to the same value
- opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
- // Set display property to inline-block for height/width
- // animations on inline elements that are having width/height animated
- display = jQuery.css( elem, "display" );
- // Test default display if display is currently "none"
- checkDisplay = display === "none" ?
- data_priv.get( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display;
- if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) {
- style.display = "inline-block";
- }
- }
- if ( opts.overflow ) {
- style.overflow = "hidden";
- anim.always(function() {
- style.overflow = opts.overflow[ 0 ];
- style.overflowX = opts.overflow[ 1 ];
- style.overflowY = opts.overflow[ 2 ];
- });
- }
- // show/hide pass
- for ( prop in props ) {
- value = props[ prop ];
- if ( rfxtypes.exec( value ) ) {
- delete props[ prop ];
- toggle = toggle || value === "toggle";
- if ( value === ( hidden ? "hide" : "show" ) ) {
- // If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden
- if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
- hidden = true;
- } else {
- continue;
- }
- }
- orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
- // Any non-fx value stops us from restoring the original display value
- } else {
- display = undefined;
- }
- }
- if ( !jQuery.isEmptyObject( orig ) ) {
- if ( dataShow ) {
- if ( "hidden" in dataShow ) {
- hidden = dataShow.hidden;
- }
- } else {
- dataShow = data_priv.access( elem, "fxshow", {} );
- }
- // Store state if its toggle - enables .stop().toggle() to "reverse"
- if ( toggle ) {
- dataShow.hidden = !hidden;
- }
- if ( hidden ) {
- jQuery( elem ).show();
- } else {
- anim.done(function() {
- jQuery( elem ).hide();
- });
- }
- anim.done(function() {
- var prop;
- data_priv.remove( elem, "fxshow" );
- for ( prop in orig ) {
- jQuery.style( elem, prop, orig[ prop ] );
- }
- });
- for ( prop in orig ) {
- tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
- if ( !( prop in dataShow ) ) {
- dataShow[ prop ] = tween.start;
- if ( hidden ) {
- tween.end = tween.start;
- tween.start = prop === "width" || prop === "height" ? 1 : 0;
- }
- }
- }
- // If this is a noop like .hide().hide(), restore an overwritten display value
- } else if ( (display === "none" ? defaultDisplay( elem.nodeName ) : display) === "inline" ) {
- style.display = display;
- }
- }
- function propFilter( props, specialEasing ) {
- var index, name, easing, value, hooks;
- // camelCase, specialEasing and expand cssHook pass
- for ( index in props ) {
- name = jQuery.camelCase( index );
- easing = specialEasing[ name ];
- value = props[ index ];
- if ( jQuery.isArray( value ) ) {
- easing = value[ 1 ];
- value = props[ index ] = value[ 0 ];
- }
- if ( index !== name ) {
- props[ name ] = value;
- delete props[ index ];
- }
- hooks = jQuery.cssHooks[ name ];
- if ( hooks && "expand" in hooks ) {
- value = hooks.expand( value );
- delete props[ name ];
- // Not quite $.extend, this won't overwrite existing keys.
- // Reusing 'index' because we have the correct "name"
- for ( index in value ) {
- if ( !( index in props ) ) {
- props[ index ] = value[ index ];
- specialEasing[ index ] = easing;
- }
- }
- } else {
- specialEasing[ name ] = easing;
- }
- }
- }
- function Animation( elem, properties, options ) {
- var result,
- stopped,
- index = 0,
- length = animationPrefilters.length,
- deferred = jQuery.Deferred().always( function() {
- // Don't match elem in the :animated selector
- delete tick.elem;
- }),
- tick = function() {
- if ( stopped ) {
- return false;
- }
- var currentTime = fxNow || createFxNow(),
- remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
- // Support: Android 2.3
- // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
- temp = remaining / animation.duration || 0,
- percent = 1 - temp,
- index = 0,
- length = animation.tweens.length;
- for ( ; index < length ; index++ ) {
- animation.tweens[ index ].run( percent );
- }
- deferred.notifyWith( elem, [ animation, percent, remaining ]);
- if ( percent < 1 && length ) {
- return remaining;
- } else {
- deferred.resolveWith( elem, [ animation ] );
- return false;
- }
- },
- animation = deferred.promise({
- elem: elem,
- props: jQuery.extend( {}, properties ),
- opts: jQuery.extend( true, { specialEasing: {} }, options ),
- originalProperties: properties,
- originalOptions: options,
- startTime: fxNow || createFxNow(),
- duration: options.duration,
- tweens: [],
- createTween: function( prop, end ) {
- var tween = jQuery.Tween( elem, animation.opts, prop, end,
- animation.opts.specialEasing[ prop ] || animation.opts.easing );
- animation.tweens.push( tween );
- return tween;
- },
- stop: function( gotoEnd ) {
- var index = 0,
- // If we are going to the end, we want to run all the tweens
- // otherwise we skip this part
- length = gotoEnd ? animation.tweens.length : 0;
- if ( stopped ) {
- return this;
- }
- stopped = true;
- for ( ; index < length ; index++ ) {
- animation.tweens[ index ].run( 1 );
- }
- // Resolve when we played the last frame; otherwise, reject
- if ( gotoEnd ) {
- deferred.resolveWith( elem, [ animation, gotoEnd ] );
- } else {
- deferred.rejectWith( elem, [ animation, gotoEnd ] );
- }
- return this;
- }
- }),
- props = animation.props;
- propFilter( props, animation.opts.specialEasing );
- for ( ; index < length ; index++ ) {
- result = animationPrefilters[ index ].call( animation, elem, props, animation.opts );
- if ( result ) {
- return result;
- }
- }
- jQuery.map( props, createTween, animation );
- if ( jQuery.isFunction( animation.opts.start ) ) {
- animation.opts.start.call( elem, animation );
- }
- jQuery.fx.timer(
- jQuery.extend( tick, {
- elem: elem,
- anim: animation,
- queue: animation.opts.queue
- })
- );
- // attach callbacks from options
- return animation.progress( animation.opts.progress )
- .done( animation.opts.done, animation.opts.complete )
- .fail( animation.opts.fail )
- .always( animation.opts.always );
- }
- jQuery.Animation = jQuery.extend( Animation, {
- tweener: function( props, callback ) {
- if ( jQuery.isFunction( props ) ) {
- callback = props;
- props = [ "*" ];
- } else {
- props = props.split(" ");
- }
- var prop,
- index = 0,
- length = props.length;
- for ( ; index < length ; index++ ) {
- prop = props[ index ];
- tweeners[ prop ] = tweeners[ prop ] || [];
- tweeners[ prop ].unshift( callback );
- }
- },
- prefilter: function( callback, prepend ) {
- if ( prepend ) {
- animationPrefilters.unshift( callback );
- } else {
- animationPrefilters.push( callback );
- }
- }
- });
- jQuery.speed = function( speed, easing, fn ) {
- var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
- complete: fn || !fn && easing ||
- jQuery.isFunction( speed ) && speed,
- duration: speed,
- easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
- };
- opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
- opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
- // Normalize opt.queue - true/undefined/null -> "fx"
- if ( opt.queue == null || opt.queue === true ) {
- opt.queue = "fx";
- }
- // Queueing
- opt.old = opt.complete;
- opt.complete = function() {
- if ( jQuery.isFunction( opt.old ) ) {
- opt.old.call( this );
- }
- if ( opt.queue ) {
- jQuery.dequeue( this, opt.queue );
- }
- };
- return opt;
- };
- jQuery.fn.extend({
- fadeTo: function( speed, to, easing, callback ) {
- // Show any hidden elements after setting opacity to 0
- return this.filter( isHidden ).css( "opacity", 0 ).show()
- // Animate to the value specified
- .end().animate({ opacity: to }, speed, easing, callback );
- },
- animate: function( prop, speed, easing, callback ) {
- var empty = jQuery.isEmptyObject( prop ),
- optall = jQuery.speed( speed, easing, callback ),
- doAnimation = function() {
- // Operate on a copy of prop so per-property easing won't be lost
- var anim = Animation( this, jQuery.extend( {}, prop ), optall );
- // Empty animations, or finishing resolves immediately
- if ( empty || data_priv.get( this, "finish" ) ) {
- anim.stop( true );
- }
- };
- doAnimation.finish = doAnimation;
- return empty || optall.queue === false ?
- this.each( doAnimation ) :
- this.queue( optall.queue, doAnimation );
- },
- stop: function( type, clearQueue, gotoEnd ) {
- var stopQueue = function( hooks ) {
- var stop = hooks.stop;
- delete hooks.stop;
- stop( gotoEnd );
- };
- if ( typeof type !== "string" ) {
- gotoEnd = clearQueue;
- clearQueue = type;
- type = undefined;
- }
- if ( clearQueue && type !== false ) {
- this.queue( type || "fx", [] );
- }
- return this.each(function() {
- var dequeue = true,
- index = type != null && type + "queueHooks",
- timers = jQuery.timers,
- data = data_priv.get( this );
- if ( index ) {
- if ( data[ index ] && data[ index ].stop ) {
- stopQueue( data[ index ] );
- }
- } else {
- for ( index in data ) {
- if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
- stopQueue( data[ index ] );
- }
- }
- }
- for ( index = timers.length; index--; ) {
- if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
- timers[ index ].anim.stop( gotoEnd );
- dequeue = false;
- timers.splice( index, 1 );
- }
- }
- // Start the next in the queue if the last step wasn't forced.
- // Timers currently will call their complete callbacks, which
- // will dequeue but only if they were gotoEnd.
- if ( dequeue || !gotoEnd ) {
- jQuery.dequeue( this, type );
- }
- });
- },
- finish: function( type ) {
- if ( type !== false ) {
- type = type || "fx";
- }
- return this.each(function() {
- var index,
- data = data_priv.get( this ),
- queue = data[ type + "queue" ],
- hooks = data[ type + "queueHooks" ],
- timers = jQuery.timers,
- length = queue ? queue.length : 0;
- // Enable finishing flag on private data
- data.finish = true;
- // Empty the queue first
- jQuery.queue( this, type, [] );
- if ( hooks && hooks.stop ) {
- hooks.stop.call( this, true );
- }
- // Look for any active animations, and finish them
- for ( index = timers.length; index--; ) {
- if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
- timers[ index ].anim.stop( true );
- timers.splice( index, 1 );
- }
- }
- // Look for any animations in the old queue and finish them
- for ( index = 0; index < length; index++ ) {
- if ( queue[ index ] && queue[ index ].finish ) {
- queue[ index ].finish.call( this );
- }
- }
- // Turn off finishing flag
- delete data.finish;
- });
- }
- });
- jQuery.each([ "toggle", "show", "hide" ], function( i, name ) {
- var cssFn = jQuery.fn[ name ];
- jQuery.fn[ name ] = function( speed, easing, callback ) {
- return speed == null || typeof speed === "boolean" ?
- cssFn.apply( this, arguments ) :
- this.animate( genFx( name, true ), speed, easing, callback );
- };
- });
- // Generate shortcuts for custom animations
- jQuery.each({
- slideDown: genFx("show"),
- slideUp: genFx("hide"),
- slideToggle: genFx("toggle"),
- fadeIn: { opacity: "show" },
- fadeOut: { opacity: "hide" },
- fadeToggle: { opacity: "toggle" }
- }, function( name, props ) {
- jQuery.fn[ name ] = function( speed, easing, callback ) {
- return this.animate( props, speed, easing, callback );
- };
- });
- jQuery.timers = [];
- jQuery.fx.tick = function() {
- var timer,
- i = 0,
- timers = jQuery.timers;
- fxNow = jQuery.now();
- for ( ; i < timers.length; i++ ) {
- timer = timers[ i ];
- // Checks the timer has not already been removed
- if ( !timer() && timers[ i ] === timer ) {
- timers.splice( i--, 1 );
- }
- }
- if ( !timers.length ) {
- jQuery.fx.stop();
- }
- fxNow = undefined;
- };
- jQuery.fx.timer = function( timer ) {
- jQuery.timers.push( timer );
- if ( timer() ) {
- jQuery.fx.start();
- } else {
- jQuery.timers.pop();
- }
- };
- jQuery.fx.interval = 13;
- jQuery.fx.start = function() {
- if ( !timerId ) {
- timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );
- }
- };
- jQuery.fx.stop = function() {
- clearInterval( timerId );
- timerId = null;
- };
- jQuery.fx.speeds = {
- slow: 600,
- fast: 200,
- // Default speed
- _default: 400
- };
- // Based off of the plugin by Clint Helfers, with permission.
- // http://blindsignals.com/index.php/2009/07/jquery-delay/
- jQuery.fn.delay = function( time, type ) {
- time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
- type = type || "fx";
- return this.queue( type, function( next, hooks ) {
- var timeout = setTimeout( next, time );
- hooks.stop = function() {
- clearTimeout( timeout );
- };
- });
- };
- (function() {
- var input = document.createElement( "input" ),
- select = document.createElement( "select" ),
- opt = select.appendChild( document.createElement( "option" ) );
- input.type = "checkbox";
- // Support: iOS<=5.1, Android<=4.2+
- // Default value for a checkbox should be "on"
- support.checkOn = input.value !== "";
- // Support: IE<=11+
- // Must access selectedIndex to make default options select
- support.optSelected = opt.selected;
- // Support: Android<=2.3
- // Options inside disabled selects are incorrectly marked as disabled
- select.disabled = true;
- support.optDisabled = !opt.disabled;
- // Support: IE<=11+
- // An input loses its value after becoming a radio
- input = document.createElement( "input" );
- input.value = "t";
- input.type = "radio";
- support.radioValue = input.value === "t";
- })();
- var nodeHook, boolHook,
- attrHandle = jQuery.expr.attrHandle;
- jQuery.fn.extend({
- attr: function( name, value ) {
- return access( this, jQuery.attr, name, value, arguments.length > 1 );
- },
- removeAttr: function( name ) {
- return this.each(function() {
- jQuery.removeAttr( this, name );
- });
- }
- });
- jQuery.extend({
- attr: function( elem, name, value ) {
- var hooks, ret,
- nType = elem.nodeType;
- // don't get/set attributes on text, comment and attribute nodes
- if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
- return;
- }
- // Fallback to prop when attributes are not supported
- if ( typeof elem.getAttribute === strundefined ) {
- return jQuery.prop( elem, name, value );
- }
- // All attributes are lowercase
- // Grab necessary hook if one is defined
- if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
- name = name.toLowerCase();
- hooks = jQuery.attrHooks[ name ] ||
- ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );
- }
- if ( value !== undefined ) {
- if ( value === null ) {
- jQuery.removeAttr( elem, name );
- } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
- return ret;
- } else {
- elem.setAttribute( name, value + "" );
- return value;
- }
- } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
- return ret;
- } else {
- ret = jQuery.find.attr( elem, name );
- // Non-existent attributes return null, we normalize to undefined
- return ret == null ?
- undefined :
- ret;
- }
- },
- removeAttr: function( elem, value ) {
- var name, propName,
- i = 0,
- attrNames = value && value.match( rnotwhite );
- if ( attrNames && elem.nodeType === 1 ) {
- while ( (name = attrNames[i++]) ) {
- propName = jQuery.propFix[ name ] || name;
- // Boolean attributes get special treatment (#10870)
- if ( jQuery.expr.match.bool.test( name ) ) {
- // Set corresponding property to false
- elem[ propName ] = false;
- }
- elem.removeAttribute( name );
- }
- }
- },
- attrHooks: {
- type: {
- set: function( elem, value ) {
- if ( !support.radioValue && value === "radio" &&
- jQuery.nodeName( elem, "input" ) ) {
- var val = elem.value;
- elem.setAttribute( "type", value );
- if ( val ) {
- elem.value = val;
- }
- return value;
- }
- }
- }
- }
- });
- // Hooks for boolean attributes
- boolHook = {
- set: function( elem, value, name ) {
- if ( value === false ) {
- // Remove boolean attributes when set to false
- jQuery.removeAttr( elem, name );
- } else {
- elem.setAttribute( name, name );
- }
- return name;
- }
- };
- jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
- var getter = attrHandle[ name ] || jQuery.find.attr;
- attrHandle[ name ] = function( elem, name, isXML ) {
- var ret, handle;
- if ( !isXML ) {
- // Avoid an infinite loop by temporarily removing this function from the getter
- handle = attrHandle[ name ];
- attrHandle[ name ] = ret;
- ret = getter( elem, name, isXML ) != null ?
- name.toLowerCase() :
- null;
- attrHandle[ name ] = handle;
- }
- return ret;
- };
- });
- var rfocusable = /^(?:input|select|textarea|button)$/i;
- jQuery.fn.extend({
- prop: function( name, value ) {
- return access( this, jQuery.prop, name, value, arguments.length > 1 );
- },
- removeProp: function( name ) {
- return this.each(function() {
- delete this[ jQuery.propFix[ name ] || name ];
- });
- }
- });
- jQuery.extend({
- propFix: {
- "for": "htmlFor",
- "class": "className"
- },
- prop: function( elem, name, value ) {
- var ret, hooks, notxml,
- nType = elem.nodeType;
- // Don't get/set properties on text, comment and attribute nodes
- if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
- return;
- }
- notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
- if ( notxml ) {
- // Fix name and attach hooks
- name = jQuery.propFix[ name ] || name;
- hooks = jQuery.propHooks[ name ];
- }
- if ( value !== undefined ) {
- return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ?
- ret :
- ( elem[ name ] = value );
- } else {
- return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ?
- ret :
- elem[ name ];
- }
- },
- propHooks: {
- tabIndex: {
- get: function( elem ) {
- return elem.hasAttribute( "tabindex" ) || rfocusable.test( elem.nodeName ) || elem.href ?
- elem.tabIndex :
- -1;
- }
- }
- }
- });
- if ( !support.optSelected ) {
- jQuery.propHooks.selected = {
- get: function( elem ) {
- var parent = elem.parentNode;
- if ( parent && parent.parentNode ) {
- parent.parentNode.selectedIndex;
- }
- return null;
- }
- };
- }
- jQuery.each([
- "tabIndex",
- "readOnly",
- "maxLength",
- "cellSpacing",
- "cellPadding",
- "rowSpan",
- "colSpan",
- "useMap",
- "frameBorder",
- "contentEditable"
- ], function() {
- jQuery.propFix[ this.toLowerCase() ] = this;
- });
- var rclass = /[\t\r\n\f]/g;
- jQuery.fn.extend({
- addClass: function( value ) {
- var classes, elem, cur, clazz, j, finalValue,
- proceed = typeof value === "string" && value,
- i = 0,
- len = this.length;
- if ( jQuery.isFunction( value ) ) {
- return this.each(function( j ) {
- jQuery( this ).addClass( value.call( this, j, this.className ) );
- });
- }
- if ( proceed ) {
- // The disjunction here is for better compressibility (see removeClass)
- classes = ( value || "" ).match( rnotwhite ) || [];
- for ( ; i < len; i++ ) {
- elem = this[ i ];
- cur = elem.nodeType === 1 && ( elem.className ?
- ( " " + elem.className + " " ).replace( rclass, " " ) :
- " "
- );
- if ( cur ) {
- j = 0;
- while ( (clazz = classes[j++]) ) {
- if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
- cur += clazz + " ";
- }
- }
- // only assign if different to avoid unneeded rendering.
- finalValue = jQuery.trim( cur );
- if ( elem.className !== finalValue ) {
- elem.className = finalValue;
- }
- }
- }
- }
- return this;
- },
- removeClass: function( value ) {
- var classes, elem, cur, clazz, j, finalValue,
- proceed = arguments.length === 0 || typeof value === "string" && value,
- i = 0,
- len = this.length;
- if ( jQuery.isFunction( value ) ) {
- return this.each(function( j ) {
- jQuery( this ).removeClass( value.call( this, j, this.className ) );
- });
- }
- if ( proceed ) {
- classes = ( value || "" ).match( rnotwhite ) || [];
- for ( ; i < len; i++ ) {
- elem = this[ i ];
- // This expression is here for better compressibility (see addClass)
- cur = elem.nodeType === 1 && ( elem.className ?
- ( " " + elem.className + " " ).replace( rclass, " " ) :
- ""
- );
- if ( cur ) {
- j = 0;
- while ( (clazz = classes[j++]) ) {
- // Remove *all* instances
- while ( cur.indexOf( " " + clazz + " " ) >= 0 ) {
- cur = cur.replace( " " + clazz + " ", " " );
- }
- }
- // Only assign if different to avoid unneeded rendering.
- finalValue = value ? jQuery.trim( cur ) : "";
- if ( elem.className !== finalValue ) {
- elem.className = finalValue;
- }
- }
- }
- }
- return this;
- },
- toggleClass: function( value, stateVal ) {
- var type = typeof value;
- if ( typeof stateVal === "boolean" && type === "string" ) {
- return stateVal ? this.addClass( value ) : this.removeClass( value );
- }
- if ( jQuery.isFunction( value ) ) {
- return this.each(function( i ) {
- jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
- });
- }
- return this.each(function() {
- if ( type === "string" ) {
- // Toggle individual class names
- var className,
- i = 0,
- self = jQuery( this ),
- classNames = value.match( rnotwhite ) || [];
- while ( (className = classNames[ i++ ]) ) {
- // Check each className given, space separated list
- if ( self.hasClass( className ) ) {
- self.removeClass( className );
- } else {
- self.addClass( className );
- }
- }
- // Toggle whole class name
- } else if ( type === strundefined || type === "boolean" ) {
- if ( this.className ) {
- // store className if set
- data_priv.set( this, "__className__", this.className );
- }
- // If the element has a class name or if we're passed `false`,
- // then remove the whole classname (if there was one, the above saved it).
- // Otherwise bring back whatever was previously saved (if anything),
- // falling back to the empty string if nothing was stored.
- this.className = this.className || value === false ? "" : data_priv.get( this, "__className__" ) || "";
- }
- });
- },
- hasClass: function( selector ) {
- var className = " " + selector + " ",
- i = 0,
- l = this.length;
- for ( ; i < l; i++ ) {
- if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) {
- return true;
- }
- }
- return false;
- }
- });
- var rreturn = /\r/g;
- jQuery.fn.extend({
- val: function( value ) {
- var hooks, ret, isFunction,
- elem = this[0];
- if ( !arguments.length ) {
- if ( elem ) {
- hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];
- if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
- return ret;
- }
- ret = elem.value;
- return typeof ret === "string" ?
- // Handle most common string cases
- ret.replace(rreturn, "") :
- // Handle cases where value is null/undef or number
- ret == null ? "" : ret;
- }
- return;
- }
- isFunction = jQuery.isFunction( value );
- return this.each(function( i ) {
- var val;
- if ( this.nodeType !== 1 ) {
- return;
- }
- if ( isFunction ) {
- val = value.call( this, i, jQuery( this ).val() );
- } else {
- val = value;
- }
- // Treat null/undefined as ""; convert numbers to string
- if ( val == null ) {
- val = "";
- } else if ( typeof val === "number" ) {
- val += "";
- } else if ( jQuery.isArray( val ) ) {
- val = jQuery.map( val, function( value ) {
- return value == null ? "" : value + "";
- });
- }
- hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
- // If set returns undefined, fall back to normal setting
- if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
- this.value = val;
- }
- });
- }
- });
- jQuery.extend({
- valHooks: {
- option: {
- get: function( elem ) {
- var val = jQuery.find.attr( elem, "value" );
- return val != null ?
- val :
- // Support: IE10-11+
- // option.text throws exceptions (#14686, #14858)
- jQuery.trim( jQuery.text( elem ) );
- }
- },
- select: {
- get: function( elem ) {
- var value, option,
- options = elem.options,
- index = elem.selectedIndex,
- one = elem.type === "select-one" || index < 0,
- values = one ? null : [],
- max = one ? index + 1 : options.length,
- i = index < 0 ?
- max :
- one ? index : 0;
- // Loop through all the selected options
- for ( ; i < max; i++ ) {
- option = options[ i ];
- // IE6-9 doesn't update selected after form reset (#2551)
- if ( ( option.selected || i === index ) &&
- // Don't return options that are disabled or in a disabled optgroup
- ( support.optDisabled ? !option.disabled : option.getAttribute( "disabled" ) === null ) &&
- ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
- // Get the specific value for the option
- value = jQuery( option ).val();
- // We don't need an array for one selects
- if ( one ) {
- return value;
- }
- // Multi-Selects return an array
- values.push( value );
- }
- }
- return values;
- },
- set: function( elem, value ) {
- var optionSet, option,
- options = elem.options,
- values = jQuery.makeArray( value ),
- i = options.length;
- while ( i-- ) {
- option = options[ i ];
- if ( (option.selected = jQuery.inArray( option.value, values ) >= 0) ) {
- optionSet = true;
- }
- }
- // Force browsers to behave consistently when non-matching value is set
- if ( !optionSet ) {
- elem.selectedIndex = -1;
- }
- return values;
- }
- }
- }
- });
- // Radios and checkboxes getter/setter
- jQuery.each([ "radio", "checkbox" ], function() {
- jQuery.valHooks[ this ] = {
- set: function( elem, value ) {
- if ( jQuery.isArray( value ) ) {
- return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );
- }
- }
- };
- if ( !support.checkOn ) {
- jQuery.valHooks[ this ].get = function( elem ) {
- return elem.getAttribute("value") === null ? "on" : elem.value;
- };
- }
- });
- // Return jQuery for attributes-only inclusion
- jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
- "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
- "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {
- // Handle event binding
- jQuery.fn[ name ] = function( data, fn ) {
- return arguments.length > 0 ?
- this.on( name, null, data, fn ) :
- this.trigger( name );
- };
- });
- jQuery.fn.extend({
- hover: function( fnOver, fnOut ) {
- return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
- },
- bind: function( types, data, fn ) {
- return this.on( types, null, data, fn );
- },
- unbind: function( types, fn ) {
- return this.off( types, null, fn );
- },
- delegate: function( selector, types, data, fn ) {
- return this.on( types, selector, data, fn );
- },
- undelegate: function( selector, types, fn ) {
- // ( namespace ) or ( selector, types [, fn] )
- return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn );
- }
- });
- var nonce = jQuery.now();
- var rquery = (/\?/);
- // Support: Android 2.3
- // Workaround failure to string-cast null input
- jQuery.parseJSON = function( data ) {
- return JSON.parse( data + "" );
- };
- // Cross-browser xml parsing
- jQuery.parseXML = function( data ) {
- var xml, tmp;
- if ( !data || typeof data !== "string" ) {
- return null;
- }
- // Support: IE9
- try {
- tmp = new DOMParser();
- xml = tmp.parseFromString( data, "text/xml" );
- } catch ( e ) {
- xml = undefined;
- }
- if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
- jQuery.error( "Invalid XML: " + data );
- }
- return xml;
- };
- var
- rhash = /#.*$/,
- rts = /([?&])_=[^&]*/,
- rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
- // #7653, #8125, #8152: local protocol detection
- rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
- rnoContent = /^(?:GET|HEAD)$/,
- rprotocol = /^\/\//,
- rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
- /* Prefilters
- * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
- * 2) These are called:
- * - BEFORE asking for a transport
- * - AFTER param serialization (s.data is a string if s.processData is true)
- * 3) key is the dataType
- * 4) the catchall symbol "*" can be used
- * 5) execution will start with transport dataType and THEN continue down to "*" if needed
- */
- prefilters = {},
- /* Transports bindings
- * 1) key is the dataType
- * 2) the catchall symbol "*" can be used
- * 3) selection will start with transport dataType and THEN go to "*" if needed
- */
- transports = {},
- // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
- allTypes = "*/".concat( "*" ),
- // Document location
- ajaxLocation = window.location.href,
- // Segment location into parts
- ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
- // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
- function addToPrefiltersOrTransports( structure ) {
- // dataTypeExpression is optional and defaults to "*"
- return function( dataTypeExpression, func ) {
- if ( typeof dataTypeExpression !== "string" ) {
- func = dataTypeExpression;
- dataTypeExpression = "*";
- }
- var dataType,
- i = 0,
- dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];
- if ( jQuery.isFunction( func ) ) {
- // For each dataType in the dataTypeExpression
- while ( (dataType = dataTypes[i++]) ) {
- // Prepend if requested
- if ( dataType[0] === "+" ) {
- dataType = dataType.slice( 1 ) || "*";
- (structure[ dataType ] = structure[ dataType ] || []).unshift( func );
- // Otherwise append
- } else {
- (structure[ dataType ] = structure[ dataType ] || []).push( func );
- }
- }
- }
- };
- }
- // Base inspection function for prefilters and transports
- function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
- var inspected = {},
- seekingTransport = ( structure === transports );
- function inspect( dataType ) {
- var selected;
- inspected[ dataType ] = true;
- jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
- var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
- if ( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) {
- options.dataTypes.unshift( dataTypeOrTransport );
- inspect( dataTypeOrTransport );
- return false;
- } else if ( seekingTransport ) {
- return !( selected = dataTypeOrTransport );
- }
- });
- return selected;
- }
- return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
- }
- // A special extend for ajax options
- // that takes "flat" options (not to be deep extended)
- // Fixes #9887
- function ajaxExtend( target, src ) {
- var key, deep,
- flatOptions = jQuery.ajaxSettings.flatOptions || {};
- for ( key in src ) {
- if ( src[ key ] !== undefined ) {
- ( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ];
- }
- }
- if ( deep ) {
- jQuery.extend( true, target, deep );
- }
- return target;
- }
- /* Handles responses to an ajax request:
- * - finds the right dataType (mediates between content-type and expected dataType)
- * - returns the corresponding response
- */
- function ajaxHandleResponses( s, jqXHR, responses ) {
- var ct, type, finalDataType, firstDataType,
- contents = s.contents,
- dataTypes = s.dataTypes;
- // Remove auto dataType and get content-type in the process
- while ( dataTypes[ 0 ] === "*" ) {
- dataTypes.shift();
- if ( ct === undefined ) {
- ct = s.mimeType || jqXHR.getResponseHeader("Content-Type");
- }
- }
- // Check if we're dealing with a known content-type
- if ( ct ) {
- for ( type in contents ) {
- if ( contents[ type ] && contents[ type ].test( ct ) ) {
- dataTypes.unshift( type );
- break;
- }
- }
- }
- // Check to see if we have a response for the expected dataType
- if ( dataTypes[ 0 ] in responses ) {
- finalDataType = dataTypes[ 0 ];
- } else {
- // Try convertible dataTypes
- for ( type in responses ) {
- if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
- finalDataType = type;
- break;
- }
- if ( !firstDataType ) {
- firstDataType = type;
- }
- }
- // Or just use first one
- finalDataType = finalDataType || firstDataType;
- }
- // If we found a dataType
- // We add the dataType to the list if needed
- // and return the corresponding response
- if ( finalDataType ) {
- if ( finalDataType !== dataTypes[ 0 ] ) {
- dataTypes.unshift( finalDataType );
- }
- return responses[ finalDataType ];
- }
- }
- /* Chain conversions given the request and the original response
- * Also sets the responseXXX fields on the jqXHR instance
- */
- function ajaxConvert( s, response, jqXHR, isSuccess ) {
- var conv2, current, conv, tmp, prev,
- converters = {},
- // Work with a copy of dataTypes in case we need to modify it for conversion
- dataTypes = s.dataTypes.slice();
- // Create converters map with lowercased keys
- if ( dataTypes[ 1 ] ) {
- for ( conv in s.converters ) {
- converters[ conv.toLowerCase() ] = s.converters[ conv ];
- }
- }
- current = dataTypes.shift();
- // Convert to each sequential dataType
- while ( current ) {
- if ( s.responseFields[ current ] ) {
- jqXHR[ s.responseFields[ current ] ] = response;
- }
- // Apply the dataFilter if provided
- if ( !prev && isSuccess && s.dataFilter ) {
- response = s.dataFilter( response, s.dataType );
- }
- prev = current;
- current = dataTypes.shift();
- if ( current ) {
- // There's only work to do if current dataType is non-auto
- if ( current === "*" ) {
- current = prev;
- // Convert response if prev dataType is non-auto and differs from current
- } else if ( prev !== "*" && prev !== current ) {
- // Seek a direct converter
- conv = converters[ prev + " " + current ] || converters[ "* " + current ];
- // If none found, seek a pair
- if ( !conv ) {
- for ( conv2 in converters ) {
- // If conv2 outputs current
- tmp = conv2.split( " " );
- if ( tmp[ 1 ] === current ) {
- // If prev can be converted to accepted input
- conv = converters[ prev + " " + tmp[ 0 ] ] ||
- converters[ "* " + tmp[ 0 ] ];
- if ( conv ) {
- // Condense equivalence converters
- if ( conv === true ) {
- conv = converters[ conv2 ];
- // Otherwise, insert the intermediate dataType
- } else if ( converters[ conv2 ] !== true ) {
- current = tmp[ 0 ];
- dataTypes.unshift( tmp[ 1 ] );
- }
- break;
- }
- }
- }
- }
- // Apply converter (if not an equivalence)
- if ( conv !== true ) {
- // Unless errors are allowed to bubble, catch and return them
- if ( conv && s[ "throws" ] ) {
- response = conv( response );
- } else {
- try {
- response = conv( response );
- } catch ( e ) {
- return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current };
- }
- }
- }
- }
- }
- }
- return { state: "success", data: response };
- }
- jQuery.extend({
- // Counter for holding the number of active queries
- active: 0,
- // Last-Modified header cache for next request
- lastModified: {},
- etag: {},
- ajaxSettings: {
- url: ajaxLocation,
- type: "GET",
- isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
- global: true,
- processData: true,
- async: true,
- contentType: "application/x-www-form-urlencoded; charset=UTF-8",
- /*
- timeout: 0,
- data: null,
- dataType: null,
- username: null,
- password: null,
- cache: null,
- throws: false,
- traditional: false,
- headers: {},
- */
- accepts: {
- "*": allTypes,
- text: "text/plain",
- html: "text/html",
- xml: "application/xml, text/xml",
- json: "application/json, text/javascript"
- },
- contents: {
- xml: /xml/,
- html: /html/,
- json: /json/
- },
- responseFields: {
- xml: "responseXML",
- text: "responseText",
- json: "responseJSON"
- },
- // Data converters
- // Keys separate source (or catchall "*") and destination types with a single space
- converters: {
- // Convert anything to text
- "* text": String,
- // Text to html (true = no transformation)
- "text html": true,
- // Evaluate text as a json expression
- "text json": jQuery.parseJSON,
- // Parse text as xml
- "text xml": jQuery.parseXML
- },
- // For options that shouldn't be deep extended:
- // you can add your own custom options here if
- // and when you create one that shouldn't be
- // deep extended (see ajaxExtend)
- flatOptions: {
- url: true,
- context: true
- }
- },
- // Creates a full fledged settings object into target
- // with both ajaxSettings and settings fields.
- // If target is omitted, writes into ajaxSettings.
- ajaxSetup: function( target, settings ) {
- return settings ?
- // Building a settings object
- ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
- // Extending ajaxSettings
- ajaxExtend( jQuery.ajaxSettings, target );
- },
- ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
- ajaxTransport: addToPrefiltersOrTransports( transports ),
- // Main method
- ajax: function( url, options ) {
- // If url is an object, simulate pre-1.5 signature
- if ( typeof url === "object" ) {
- options = url;
- url = undefined;
- }
- // Force options to be an object
- options = options || {};
- var transport,
- // URL without anti-cache param
- cacheURL,
- // Response headers
- responseHeadersString,
- responseHeaders,
- // timeout handle
- timeoutTimer,
- // Cross-domain detection vars
- parts,
- // To know if global events are to be dispatched
- fireGlobals,
- // Loop variable
- i,
- // Create the final options object
- s = jQuery.ajaxSetup( {}, options ),
- // Callbacks context
- callbackContext = s.context || s,
- // Context for global events is callbackContext if it is a DOM node or jQuery collection
- globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ?
- jQuery( callbackContext ) :
- jQuery.event,
- // Deferreds
- deferred = jQuery.Deferred(),
- completeDeferred = jQuery.Callbacks("once memory"),
- // Status-dependent callbacks
- statusCode = s.statusCode || {},
- // Headers (they are sent all at once)
- requestHeaders = {},
- requestHeadersNames = {},
- // The jqXHR state
- state = 0,
- // Default abort message
- strAbort = "canceled",
- // Fake xhr
- jqXHR = {
- readyState: 0,
- // Builds headers hashtable if needed
- getResponseHeader: function( key ) {
- var match;
- if ( state === 2 ) {
- if ( !responseHeaders ) {
- responseHeaders = {};
- while ( (match = rheaders.exec( responseHeadersString )) ) {
- responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
- }
- }
- match = responseHeaders[ key.toLowerCase() ];
- }
- return match == null ? null : match;
- },
- // Raw string
- getAllResponseHeaders: function() {
- return state === 2 ? responseHeadersString : null;
- },
- // Caches the header
- setRequestHeader: function( name, value ) {
- var lname = name.toLowerCase();
- if ( !state ) {
- name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
- requestHeaders[ name ] = value;
- }
- return this;
- },
- // Overrides response content-type header
- overrideMimeType: function( type ) {
- if ( !state ) {
- s.mimeType = type;
- }
- return this;
- },
- // Status-dependent callbacks
- statusCode: function( map ) {
- var code;
- if ( map ) {
- if ( state < 2 ) {
- for ( code in map ) {
- // Lazy-add the new callback in a way that preserves old ones
- statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
- }
- } else {
- // Execute the appropriate callbacks
- jqXHR.always( map[ jqXHR.status ] );
- }
- }
- return this;
- },
- // Cancel the request
- abort: function( statusText ) {
- var finalText = statusText || strAbort;
- if ( transport ) {
- transport.abort( finalText );
- }
- done( 0, finalText );
- return this;
- }
- };
- // Attach deferreds
- deferred.promise( jqXHR ).complete = completeDeferred.add;
- jqXHR.success = jqXHR.done;
- jqXHR.error = jqXHR.fail;
- // Remove hash character (#7531: and string promotion)
- // Add protocol if not provided (prefilters might expect it)
- // Handle falsy url in the settings object (#10093: consistency with old signature)
- // We also use the url parameter if available
- s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" )
- .replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
- // Alias method option to type as per ticket #12004
- s.type = options.method || options.type || s.method || s.type;
- // Extract dataTypes list
- s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ];
- // A cross-domain request is in order when we have a protocol:host:port mismatch
- if ( s.crossDomain == null ) {
- parts = rurl.exec( s.url.toLowerCase() );
- s.crossDomain = !!( parts &&
- ( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||
- ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !==
- ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) )
- );
- }
- // Convert data if not already a string
- if ( s.data && s.processData && typeof s.data !== "string" ) {
- s.data = jQuery.param( s.data, s.traditional );
- }
- // Apply prefilters
- inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
- // If request was aborted inside a prefilter, stop there
- if ( state === 2 ) {
- return jqXHR;
- }
- // We can fire global events as of now if asked to
- // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
- fireGlobals = jQuery.event && s.global;
- // Watch for a new set of requests
- if ( fireGlobals && jQuery.active++ === 0 ) {
- jQuery.event.trigger("ajaxStart");
- }
- // Uppercase the type
- s.type = s.type.toUpperCase();
- // Determine if request has content
- s.hasContent = !rnoContent.test( s.type );
- // Save the URL in case we're toying with the If-Modified-Since
- // and/or If-None-Match header later on
- cacheURL = s.url;
- // More options handling for requests with no content
- if ( !s.hasContent ) {
- // If data is available, append data to url
- if ( s.data ) {
- cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
- // #9682: remove data so that it's not used in an eventual retry
- delete s.data;
- }
- // Add anti-cache in url if needed
- if ( s.cache === false ) {
- s.url = rts.test( cacheURL ) ?
- // If there is already a '_' parameter, set its value
- cacheURL.replace( rts, "$1_=" + nonce++ ) :
- // Otherwise add one to the end
- cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++;
- }
- }
- // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
- if ( s.ifModified ) {
- if ( jQuery.lastModified[ cacheURL ] ) {
- jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
- }
- if ( jQuery.etag[ cacheURL ] ) {
- jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
- }
- }
- // Set the correct header, if data is being sent
- if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
- jqXHR.setRequestHeader( "Content-Type", s.contentType );
- }
- // Set the Accepts header for the server, depending on the dataType
- jqXHR.setRequestHeader(
- "Accept",
- s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
- s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
- s.accepts[ "*" ]
- );
- // Check for headers option
- for ( i in s.headers ) {
- jqXHR.setRequestHeader( i, s.headers[ i ] );
- }
- // Allow custom headers/mimetypes and early abort
- if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
- // Abort if not done already and return
- return jqXHR.abort();
- }
- // Aborting is no longer a cancellation
- strAbort = "abort";
- // Install callbacks on deferreds
- for ( i in { success: 1, error: 1, complete: 1 } ) {
- jqXHR[ i ]( s[ i ] );
- }
- // Get transport
- transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
- // If no transport, we auto-abort
- if ( !transport ) {
- done( -1, "No Transport" );
- } else {
- jqXHR.readyState = 1;
- // Send global event
- if ( fireGlobals ) {
- globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
- }
- // Timeout
- if ( s.async && s.timeout > 0 ) {
- timeoutTimer = setTimeout(function() {
- jqXHR.abort("timeout");
- }, s.timeout );
- }
- try {
- state = 1;
- transport.send( requestHeaders, done );
- } catch ( e ) {
- // Propagate exception as error if not done
- if ( state < 2 ) {
- done( -1, e );
- // Simply rethrow otherwise
- } else {
- throw e;
- }
- }
- }
- // Callback for when everything is done
- function done( status, nativeStatusText, responses, headers ) {
- var isSuccess, success, error, response, modified,
- statusText = nativeStatusText;
- // Called once
- if ( state === 2 ) {
- return;
- }
- // State is "done" now
- state = 2;
- // Clear timeout if it exists
- if ( timeoutTimer ) {
- clearTimeout( timeoutTimer );
- }
- // Dereference transport for early garbage collection
- // (no matter how long the jqXHR object will be used)
- transport = undefined;
- // Cache response headers
- responseHeadersString = headers || "";
- // Set readyState
- jqXHR.readyState = status > 0 ? 4 : 0;
- // Determine if successful
- isSuccess = status >= 200 && status < 300 || status === 304;
- // Get response data
- if ( responses ) {
- response = ajaxHandleResponses( s, jqXHR, responses );
- }
- // Convert no matter what (that way responseXXX fields are always set)
- response = ajaxConvert( s, response, jqXHR, isSuccess );
- // If successful, handle type chaining
- if ( isSuccess ) {
- // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
- if ( s.ifModified ) {
- modified = jqXHR.getResponseHeader("Last-Modified");
- if ( modified ) {
- jQuery.lastModified[ cacheURL ] = modified;
- }
- modified = jqXHR.getResponseHeader("etag");
- if ( modified ) {
- jQuery.etag[ cacheURL ] = modified;
- }
- }
- // if no content
- if ( status === 204 || s.type === "HEAD" ) {
- statusText = "nocontent";
- // if not modified
- } else if ( status === 304 ) {
- statusText = "notmodified";
- // If we have data, let's convert it
- } else {
- statusText = response.state;
- success = response.data;
- error = response.error;
- isSuccess = !error;
- }
- } else {
- // Extract error from statusText and normalize for non-aborts
- error = statusText;
- if ( status || !statusText ) {
- statusText = "error";
- if ( status < 0 ) {
- status = 0;
- }
- }
- }
- // Set data for the fake xhr object
- jqXHR.status = status;
- jqXHR.statusText = ( nativeStatusText || statusText ) + "";
- // Success/Error
- if ( isSuccess ) {
- deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
- } else {
- deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
- }
- // Status-dependent callbacks
- jqXHR.statusCode( statusCode );
- statusCode = undefined;
- if ( fireGlobals ) {
- globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
- [ jqXHR, s, isSuccess ? success : error ] );
- }
- // Complete
- completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
- if ( fireGlobals ) {
- globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
- // Handle the global AJAX counter
- if ( !( --jQuery.active ) ) {
- jQuery.event.trigger("ajaxStop");
- }
- }
- }
- return jqXHR;
- },
- getJSON: function( url, data, callback ) {
- return jQuery.get( url, data, callback, "json" );
- },
- getScript: function( url, callback ) {
- return jQuery.get( url, undefined, callback, "script" );
- }
- });
- jQuery.each( [ "get", "post" ], function( i, method ) {
- jQuery[ method ] = function( url, data, callback, type ) {
- // Shift arguments if data argument was omitted
- if ( jQuery.isFunction( data ) ) {
- type = type || callback;
- callback = data;
- data = undefined;
- }
- return jQuery.ajax({
- url: url,
- type: method,
- dataType: type,
- data: data,
- success: callback
- });
- };
- });
- jQuery._evalUrl = function( url ) {
- return jQuery.ajax({
- url: url,
- type: "GET",
- dataType: "script",
- async: false,
- global: false,
- "throws": true
- });
- };
- jQuery.fn.extend({
- wrapAll: function( html ) {
- var wrap;
- if ( jQuery.isFunction( html ) ) {
- return this.each(function( i ) {
- jQuery( this ).wrapAll( html.call(this, i) );
- });
- }
- if ( this[ 0 ] ) {
- // The elements to wrap the target around
- wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
- if ( this[ 0 ].parentNode ) {
- wrap.insertBefore( this[ 0 ] );
- }
- wrap.map(function() {
- var elem = this;
- while ( elem.firstElementChild ) {
- elem = elem.firstElementChild;
- }
- return elem;
- }).append( this );
- }
- return this;
- },
- wrapInner: function( html ) {
- if ( jQuery.isFunction( html ) ) {
- return this.each(function( i ) {
- jQuery( this ).wrapInner( html.call(this, i) );
- });
- }
- return this.each(function() {
- var self = jQuery( this ),
- contents = self.contents();
- if ( contents.length ) {
- contents.wrapAll( html );
- } else {
- self.append( html );
- }
- });
- },
- wrap: function( html ) {
- var isFunction = jQuery.isFunction( html );
- return this.each(function( i ) {
- jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );
- });
- },
- unwrap: function() {
- return this.parent().each(function() {
- if ( !jQuery.nodeName( this, "body" ) ) {
- jQuery( this ).replaceWith( this.childNodes );
- }
- }).end();
- }
- });
- jQuery.expr.filters.hidden = function( elem ) {
- // Support: Opera <= 12.12
- // Opera reports offsetWidths and offsetHeights less than zero on some elements
- return elem.offsetWidth <= 0 && elem.offsetHeight <= 0;
- };
- jQuery.expr.filters.visible = function( elem ) {
- return !jQuery.expr.filters.hidden( elem );
- };
- var r20 = /%20/g,
- rbracket = /\[\]$/,
- rCRLF = /\r?\n/g,
- rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
- rsubmittable = /^(?:input|select|textarea|keygen)/i;
- function buildParams( prefix, obj, traditional, add ) {
- var name;
- if ( jQuery.isArray( obj ) ) {
- // Serialize array item.
- jQuery.each( obj, function( i, v ) {
- if ( traditional || rbracket.test( prefix ) ) {
- // Treat each array item as a scalar.
- add( prefix, v );
- } else {
- // Item is non-scalar (array or object), encode its numeric index.
- buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
- }
- });
- } else if ( !traditional && jQuery.type( obj ) === "object" ) {
- // Serialize object item.
- for ( name in obj ) {
- buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
- }
- } else {
- // Serialize scalar item.
- add( prefix, obj );
- }
- }
- // Serialize an array of form elements or a set of
- // key/values into a query string
- jQuery.param = function( a, traditional ) {
- var prefix,
- s = [],
- add = function( key, value ) {
- // If value is a function, invoke it and return its value
- value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
- s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
- };
- // Set traditional to true for jQuery <= 1.3.2 behavior.
- if ( traditional === undefined ) {
- traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
- }
- // If an array was passed in, assume that it is an array of form elements.
- if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
- // Serialize the form elements
- jQuery.each( a, function() {
- add( this.name, this.value );
- });
- } else {
- // If traditional, encode the "old" way (the way 1.3.2 or older
- // did it), otherwise encode params recursively.
- for ( prefix in a ) {
- buildParams( prefix, a[ prefix ], traditional, add );
- }
- }
- // Return the resulting serialization
- return s.join( "&" ).replace( r20, "+" );
- };
- jQuery.fn.extend({
- serialize: function() {
- return jQuery.param( this.serializeArray() );
- },
- serializeArray: function() {
- return this.map(function() {
- // Can add propHook for "elements" to filter or add form elements
- var elements = jQuery.prop( this, "elements" );
- return elements ? jQuery.makeArray( elements ) : this;
- })
- .filter(function() {
- var type = this.type;
- // Use .is( ":disabled" ) so that fieldset[disabled] works
- return this.name && !jQuery( this ).is( ":disabled" ) &&
- rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
- ( this.checked || !rcheckableType.test( type ) );
- })
- .map(function( i, elem ) {
- var val = jQuery( this ).val();
- return val == null ?
- null :
- jQuery.isArray( val ) ?
- jQuery.map( val, function( val ) {
- return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
- }) :
- { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
- }).get();
- }
- });
- jQuery.ajaxSettings.xhr = function() {
- try {
- return new XMLHttpRequest();
- } catch( e ) {}
- };
- var xhrId = 0,
- xhrCallbacks = {},
- xhrSuccessStatus = {
- // file protocol always yields status code 0, assume 200
- 0: 200,
- // Support: IE9
- // #1450: sometimes IE returns 1223 when it should be 204
- 1223: 204
- },
- xhrSupported = jQuery.ajaxSettings.xhr();
- // Support: IE9
- // Open requests must be manually aborted on unload (#5280)
- // See https://support.microsoft.com/kb/2856746 for more info
- if ( window.attachEvent ) {
- window.attachEvent( "onunload", function() {
- for ( var key in xhrCallbacks ) {
- xhrCallbacks[ key ]();
- }
- });
- }
- support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
- support.ajax = xhrSupported = !!xhrSupported;
- jQuery.ajaxTransport(function( options ) {
- var callback;
- // Cross domain only allowed if supported through XMLHttpRequest
- if ( support.cors || xhrSupported && !options.crossDomain ) {
- return {
- send: function( headers, complete ) {
- var i,
- xhr = options.xhr(),
- id = ++xhrId;
- xhr.open( options.type, options.url, options.async, options.username, options.password );
- // Apply custom fields if provided
- if ( options.xhrFields ) {
- for ( i in options.xhrFields ) {
- xhr[ i ] = options.xhrFields[ i ];
- }
- }
- // Override mime type if needed
- if ( options.mimeType && xhr.overrideMimeType ) {
- xhr.overrideMimeType( options.mimeType );
- }
- // X-Requested-With header
- // For cross-domain requests, seeing as conditions for a preflight are
- // akin to a jigsaw puzzle, we simply never set it to be sure.
- // (it can always be set on a per-request basis or even using ajaxSetup)
- // For same-domain requests, won't change header if already provided.
- if ( !options.crossDomain && !headers["X-Requested-With"] ) {
- headers["X-Requested-With"] = "XMLHttpRequest";
- }
- // Set headers
- for ( i in headers ) {
- xhr.setRequestHeader( i, headers[ i ] );
- }
- // Callback
- callback = function( type ) {
- return function() {
- if ( callback ) {
- delete xhrCallbacks[ id ];
- callback = xhr.onload = xhr.onerror = null;
- if ( type === "abort" ) {
- xhr.abort();
- } else if ( type === "error" ) {
- complete(
- // file: protocol always yields status 0; see #8605, #14207
- xhr.status,
- xhr.statusText
- );
- } else {
- complete(
- xhrSuccessStatus[ xhr.status ] || xhr.status,
- xhr.statusText,
- // Support: IE9
- // Accessing binary-data responseText throws an exception
- // (#11426)
- typeof xhr.responseText === "string" ? {
- text: xhr.responseText
- } : undefined,
- xhr.getAllResponseHeaders()
- );
- }
- }
- };
- };
- // Listen to events
- xhr.onload = callback();
- xhr.onerror = callback("error");
- // Create the abort callback
- callback = xhrCallbacks[ id ] = callback("abort");
- try {
- // Do send the request (this may raise an exception)
- xhr.send( options.hasContent && options.data || null );
- } catch ( e ) {
- // #14683: Only rethrow if this hasn't been notified as an error yet
- if ( callback ) {
- throw e;
- }
- }
- },
- abort: function() {
- if ( callback ) {
- callback();
- }
- }
- };
- }
- });
- // Install script dataType
- jQuery.ajaxSetup({
- accepts: {
- script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
- },
- contents: {
- script: /(?:java|ecma)script/
- },
- converters: {
- "text script": function( text ) {
- jQuery.globalEval( text );
- return text;
- }
- }
- });
- // Handle cache's special case and crossDomain
- jQuery.ajaxPrefilter( "script", function( s ) {
- if ( s.cache === undefined ) {
- s.cache = false;
- }
- if ( s.crossDomain ) {
- s.type = "GET";
- }
- });
- // Bind script tag hack transport
- jQuery.ajaxTransport( "script", function( s ) {
- // This transport only deals with cross domain requests
- if ( s.crossDomain ) {
- var script, callback;
- return {
- send: function( _, complete ) {
- script = jQuery("<script>").prop({
- async: true,
- charset: s.scriptCharset,
- src: s.url
- }).on(
- "load error",
- callback = function( evt ) {
- script.remove();
- callback = null;
- if ( evt ) {
- complete( evt.type === "error" ? 404 : 200, evt.type );
- }
- }
- );
- document.head.appendChild( script[ 0 ] );
- },
- abort: function() {
- if ( callback ) {
- callback();
- }
- }
- };
- }
- });
- var oldCallbacks = [],
- rjsonp = /(=)\?(?=&|$)|\?\?/;
- // Default jsonp settings
- jQuery.ajaxSetup({
- jsonp: "callback",
- jsonpCallback: function() {
- var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
- this[ callback ] = true;
- return callback;
- }
- });
- // Detect, normalize options and install callbacks for jsonp requests
- jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
- var callbackName, overwritten, responseContainer,
- jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
- "url" :
- typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data"
- );
- // Handle iff the expected data type is "jsonp" or we have a parameter to set
- if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
- // Get callback name, remembering preexisting value associated with it
- callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
- s.jsonpCallback() :
- s.jsonpCallback;
- // Insert callback into url or form data
- if ( jsonProp ) {
- s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
- } else if ( s.jsonp !== false ) {
- s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
- }
- // Use data converter to retrieve json after script execution
- s.converters["script json"] = function() {
- if ( !responseContainer ) {
- jQuery.error( callbackName + " was not called" );
- }
- return responseContainer[ 0 ];
- };
- // force json dataType
- s.dataTypes[ 0 ] = "json";
- // Install callback
- overwritten = window[ callbackName ];
- window[ callbackName ] = function() {
- responseContainer = arguments;
- };
- // Clean-up function (fires after converters)
- jqXHR.always(function() {
- // Restore preexisting value
- window[ callbackName ] = overwritten;
- // Save back as free
- if ( s[ callbackName ] ) {
- // make sure that re-using the options doesn't screw things around
- s.jsonpCallback = originalSettings.jsonpCallback;
- // save the callback name for future use
- oldCallbacks.push( callbackName );
- }
- // Call if it was a function and we have a response
- if ( responseContainer && jQuery.isFunction( overwritten ) ) {
- overwritten( responseContainer[ 0 ] );
- }
- responseContainer = overwritten = undefined;
- });
- // Delegate to script
- return "script";
- }
- });
- // data: string of html
- // context (optional): If specified, the fragment will be created in this context, defaults to document
- // keepScripts (optional): If true, will include scripts passed in the html string
- jQuery.parseHTML = function( data, context, keepScripts ) {
- if ( !data || typeof data !== "string" ) {
- return null;
- }
- if ( typeof context === "boolean" ) {
- keepScripts = context;
- context = false;
- }
- context = context || document;
- var parsed = rsingleTag.exec( data ),
- scripts = !keepScripts && [];
- // Single tag
- if ( parsed ) {
- return [ context.createElement( parsed[1] ) ];
- }
- parsed = jQuery.buildFragment( [ data ], context, scripts );
- if ( scripts && scripts.length ) {
- jQuery( scripts ).remove();
- }
- return jQuery.merge( [], parsed.childNodes );
- };
- // Keep a copy of the old load method
- var _load = jQuery.fn.load;
- /**
- * Load a url into a page
- */
- jQuery.fn.load = function( url, params, callback ) {
- if ( typeof url !== "string" && _load ) {
- return _load.apply( this, arguments );
- }
- var selector, type, response,
- self = this,
- off = url.indexOf(" ");
- if ( off >= 0 ) {
- selector = jQuery.trim( url.slice( off ) );
- url = url.slice( 0, off );
- }
- // If it's a function
- if ( jQuery.isFunction( params ) ) {
- // We assume that it's the callback
- callback = params;
- params = undefined;
- // Otherwise, build a param string
- } else if ( params && typeof params === "object" ) {
- type = "POST";
- }
- // If we have elements to modify, make the request
- if ( self.length > 0 ) {
- jQuery.ajax({
- url: url,
- // if "type" variable is undefined, then "GET" method will be used
- type: type,
- dataType: "html",
- data: params
- }).done(function( responseText ) {
- // Save response for use in complete callback
- response = arguments;
- self.html( selector ?
- // If a selector was specified, locate the right elements in a dummy div
- // Exclude scripts to avoid IE 'Permission Denied' errors
- jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) :
- // Otherwise use the full result
- responseText );
- }).complete( callback && function( jqXHR, status ) {
- self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
- });
- }
- return this;
- };
- // Attach a bunch of functions for handling common AJAX events
- jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) {
- jQuery.fn[ type ] = function( fn ) {
- return this.on( type, fn );
- };
- });
- jQuery.expr.filters.animated = function( elem ) {
- return jQuery.grep(jQuery.timers, function( fn ) {
- return elem === fn.elem;
- }).length;
- };
- var docElem = window.document.documentElement;
- /**
- * Gets a window from an element
- */
- function getWindow( elem ) {
- return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;
- }
- jQuery.offset = {
- setOffset: function( elem, options, i ) {
- var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
- position = jQuery.css( elem, "position" ),
- curElem = jQuery( elem ),
- props = {};
- // Set position first, in-case top/left are set even on static elem
- if ( position === "static" ) {
- elem.style.position = "relative";
- }
- curOffset = curElem.offset();
- curCSSTop = jQuery.css( elem, "top" );
- curCSSLeft = jQuery.css( elem, "left" );
- calculatePosition = ( position === "absolute" || position === "fixed" ) &&
- ( curCSSTop + curCSSLeft ).indexOf("auto") > -1;
- // Need to be able to calculate position if either
- // top or left is auto and position is either absolute or fixed
- if ( calculatePosition ) {
- curPosition = curElem.position();
- curTop = curPosition.top;
- curLeft = curPosition.left;
- } else {
- curTop = parseFloat( curCSSTop ) || 0;
- curLeft = parseFloat( curCSSLeft ) || 0;
- }
- if ( jQuery.isFunction( options ) ) {
- options = options.call( elem, i, curOffset );
- }
- if ( options.top != null ) {
- props.top = ( options.top - curOffset.top ) + curTop;
- }
- if ( options.left != null ) {
- props.left = ( options.left - curOffset.left ) + curLeft;
- }
- if ( "using" in options ) {
- options.using.call( elem, props );
- } else {
- curElem.css( props );
- }
- }
- };
- jQuery.fn.extend({
- offset: function( options ) {
- if ( arguments.length ) {
- return options === undefined ?
- this :
- this.each(function( i ) {
- jQuery.offset.setOffset( this, options, i );
- });
- }
- var docElem, win,
- elem = this[ 0 ],
- box = { top: 0, left: 0 },
- doc = elem && elem.ownerDocument;
- if ( !doc ) {
- return;
- }
- docElem = doc.documentElement;
- // Make sure it's not a disconnected DOM node
- if ( !jQuery.contains( docElem, elem ) ) {
- return box;
- }
- // Support: BlackBerry 5, iOS 3 (original iPhone)
- // If we don't have gBCR, just use 0,0 rather than error
- if ( typeof elem.getBoundingClientRect !== strundefined ) {
- box = elem.getBoundingClientRect();
- }
- win = getWindow( doc );
- return {
- top: box.top + win.pageYOffset - docElem.clientTop,
- left: box.left + win.pageXOffset - docElem.clientLeft
- };
- },
- position: function() {
- if ( !this[ 0 ] ) {
- return;
- }
- var offsetParent, offset,
- elem = this[ 0 ],
- parentOffset = { top: 0, left: 0 };
- // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent
- if ( jQuery.css( elem, "position" ) === "fixed" ) {
- // Assume getBoundingClientRect is there when computed position is fixed
- offset = elem.getBoundingClientRect();
- } else {
- // Get *real* offsetParent
- offsetParent = this.offsetParent();
- // Get correct offsets
- offset = this.offset();
- if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
- parentOffset = offsetParent.offset();
- }
- // Add offsetParent borders
- parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
- parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
- }
- // Subtract parent offsets and element margins
- return {
- top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
- left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
- };
- },
- offsetParent: function() {
- return this.map(function() {
- var offsetParent = this.offsetParent || docElem;
- while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position" ) === "static" ) ) {
- offsetParent = offsetParent.offsetParent;
- }
- return offsetParent || docElem;
- });
- }
- });
- // Create scrollLeft and scrollTop methods
- jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
- var top = "pageYOffset" === prop;
- jQuery.fn[ method ] = function( val ) {
- return access( this, function( elem, method, val ) {
- var win = getWindow( elem );
- if ( val === undefined ) {
- return win ? win[ prop ] : elem[ method ];
- }
- if ( win ) {
- win.scrollTo(
- !top ? val : window.pageXOffset,
- top ? val : window.pageYOffset
- );
- } else {
- elem[ method ] = val;
- }
- }, method, val, arguments.length, null );
- };
- });
- // Support: Safari<7+, Chrome<37+
- // Add the top/left cssHooks using jQuery.fn.position
- // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
- // Blink bug: https://code.google.com/p/chromium/issues/detail?id=229280
- // getComputedStyle returns percent when specified for top/left/bottom/right;
- // rather than make the css module depend on the offset module, just check for it here
- jQuery.each( [ "top", "left" ], function( i, prop ) {
- jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
- function( elem, computed ) {
- if ( computed ) {
- computed = curCSS( elem, prop );
- // If curCSS returns percentage, fallback to offset
- return rnumnonpx.test( computed ) ?
- jQuery( elem ).position()[ prop ] + "px" :
- computed;
- }
- }
- );
- });
- // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
- jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
- jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) {
- // Margin is only for outerHeight, outerWidth
- jQuery.fn[ funcName ] = function( margin, value ) {
- var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
- extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
- return access( this, function( elem, type, value ) {
- var doc;
- if ( jQuery.isWindow( elem ) ) {
- // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
- // isn't a whole lot we can do. See pull request at this URL for discussion:
- // https://github.com/jquery/jquery/pull/764
- return elem.document.documentElement[ "client" + name ];
- }
- // Get document width or height
- if ( elem.nodeType === 9 ) {
- doc = elem.documentElement;
- // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
- // whichever is greatest
- return Math.max(
- elem.body[ "scroll" + name ], doc[ "scroll" + name ],
- elem.body[ "offset" + name ], doc[ "offset" + name ],
- doc[ "client" + name ]
- );
- }
- return value === undefined ?
- // Get width or height on the element, requesting but not forcing parseFloat
- jQuery.css( elem, type, extra ) :
- // Set width or height on the element
- jQuery.style( elem, type, value, extra );
- }, type, chainable ? margin : undefined, chainable, null );
- };
- });
- });
- // The number of elements contained in the matched element set
- jQuery.fn.size = function() {
- return this.length;
- };
- jQuery.fn.andSelf = jQuery.fn.addBack;
- // Register as a named AMD module, since jQuery can be concatenated with other
- // files that may use define, but not via a proper concatenation script that
- // understands anonymous AMD modules. A named AMD is safest and most robust
- // way to register. Lowercase jquery is used because AMD module names are
- // derived from file names, and jQuery is normally delivered in a lowercase
- // file name. Do this after creating the global so that if an AMD module wants
- // to call noConflict to hide this version of jQuery, it will work.
- // Note that for maximum portability, libraries that are not jQuery should
- // declare themselves as anonymous modules, and avoid setting a global if an
- // AMD loader is present. jQuery is a special case. For more information, see
- // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
- if ( typeof define === "function" && define.amd ) {
- define( "jquery", [], function() {
- return jQuery;
- });
- }
- var
- // Map over jQuery in case of overwrite
- _jQuery = window.jQuery,
- // Map over the $ in case of overwrite
- _$ = window.$;
- jQuery.noConflict = function( deep ) {
- if ( window.$ === jQuery ) {
- window.$ = _$;
- }
- if ( deep && window.jQuery === jQuery ) {
- window.jQuery = _jQuery;
- }
- return jQuery;
- };
- // Expose jQuery and $ identifiers, even in AMD
- // (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
- // and CommonJS for browser emulators (#13566)
- if ( typeof noGlobal === strundefined ) {
- window.jQuery = window.$ = jQuery;
- }
- return jQuery;
- }));
- </script>
- <script>/*!
- * Bootstrap v3.3.5 (http://getbootstrap.com)
- * Copyright 2011-2015 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
- /*!
- * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=ca1d29b8c16a782c676c)
- * Config saved to config.json and https://gist.github.com/ca1d29b8c16a782c676c
- */
- if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(t){"use strict";var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),n=i.data("bs.alert");n||i.data("bs.alert",n=new o(this)),"string"==typeof e&&n[e].call(i)})}var i='[data-dismiss="alert"]',o=function(e){t(e).on("click",i,this.close)};o.VERSION="3.3.5",o.TRANSITION_DURATION=150,o.prototype.close=function(e){function i(){a.detach().trigger("closed.bs.alert").remove()}var n=t(this),s=n.attr("data-target");s||(s=n.attr("href"),s=s&&s.replace(/.*(?=#[^\s]*$)/,""));var a=t(s);e&&e.preventDefault(),a.length||(a=n.closest(".alert")),a.trigger(e=t.Event("close.bs.alert")),e.isDefaultPrevented()||(a.removeClass("in"),t.support.transition&&a.hasClass("fade")?a.one("bsTransitionEnd",i).emulateTransitionEnd(o.TRANSITION_DURATION):i())};var n=t.fn.alert;t.fn.alert=e,t.fn.alert.Constructor=o,t.fn.alert.noConflict=function(){return t.fn.alert=n,this},t(document).on("click.bs.alert.data-api",i,o.prototype.close)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.button"),s="object"==typeof e&&e;n||o.data("bs.button",n=new i(this,s)),"toggle"==e?n.toggle():e&&n.setState(e)})}var i=function(e,o){this.$element=t(e),this.options=t.extend({},i.DEFAULTS,o),this.isLoading=!1};i.VERSION="3.3.5",i.DEFAULTS={loadingText:"loading..."},i.prototype.setState=function(e){var i="disabled",o=this.$element,n=o.is("input")?"val":"html",s=o.data();e+="Text",null==s.resetText&&o.data("resetText",o[n]()),setTimeout(t.proxy(function(){o[n](null==s[e]?this.options[e]:s[e]),"loadingText"==e?(this.isLoading=!0,o.addClass(i).attr(i,i)):this.isLoading&&(this.isLoading=!1,o.removeClass(i).removeAttr(i))},this),0)},i.prototype.toggle=function(){var t=!0,e=this.$element.closest('[data-toggle="buttons"]');if(e.length){var i=this.$element.find("input");"radio"==i.prop("type")?(i.prop("checked")&&(t=!1),e.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==i.prop("type")&&(i.prop("checked")!==this.$element.hasClass("active")&&(t=!1),this.$element.toggleClass("active")),i.prop("checked",this.$element.hasClass("active")),t&&i.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var o=t.fn.button;t.fn.button=e,t.fn.button.Constructor=i,t.fn.button.noConflict=function(){return t.fn.button=o,this},t(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(i){var o=t(i.target);o.hasClass("btn")||(o=o.closest(".btn")),e.call(o,"toggle"),t(i.target).is('input[type="radio"]')||t(i.target).is('input[type="checkbox"]')||i.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(e){t(e.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(e.type))})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.carousel"),s=t.extend({},i.DEFAULTS,o.data(),"object"==typeof e&&e),a="string"==typeof e?e:s.slide;n||o.data("bs.carousel",n=new i(this,s)),"number"==typeof e?n.to(e):a?n[a]():s.interval&&n.pause().cycle()})}var i=function(e,i){this.$element=t(e),this.$indicators=this.$element.find(".carousel-indicators"),this.options=i,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",t.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",t.proxy(this.pause,this)).on("mouseleave.bs.carousel",t.proxy(this.cycle,this))};i.VERSION="3.3.5",i.TRANSITION_DURATION=600,i.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},i.prototype.keydown=function(t){if(!/input|textarea/i.test(t.target.tagName)){switch(t.which){case 37:this.prev();break;case 39:this.next();break;default:return}t.preventDefault()}},i.prototype.cycle=function(e){return e||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(t.proxy(this.next,this),this.options.interval)),this},i.prototype.getItemIndex=function(t){return this.$items=t.parent().children(".item"),this.$items.index(t||this.$active)},i.prototype.getItemForDirection=function(t,e){var i=this.getItemIndex(e),o="prev"==t&&0===i||"next"==t&&i==this.$items.length-1;if(o&&!this.options.wrap)return e;var n="prev"==t?-1:1,s=(i+n)%this.$items.length;return this.$items.eq(s)},i.prototype.to=function(t){var e=this,i=this.getItemIndex(this.$active=this.$element.find(".item.active"));return t>this.$items.length-1||0>t?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){e.to(t)}):i==t?this.pause().cycle():this.slide(t>i?"next":"prev",this.$items.eq(t))},i.prototype.pause=function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&t.support.transition&&(this.$element.trigger(t.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},i.prototype.next=function(){return this.sliding?void 0:this.slide("next")},i.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},i.prototype.slide=function(e,o){var n=this.$element.find(".item.active"),s=o||this.getItemForDirection(e,n),a=this.interval,r="next"==e?"left":"right",l=this;if(s.hasClass("active"))return this.sliding=!1;var h=s[0],d=t.Event("slide.bs.carousel",{relatedTarget:h,direction:r});if(this.$element.trigger(d),!d.isDefaultPrevented()){if(this.sliding=!0,a&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var p=t(this.$indicators.children()[this.getItemIndex(s)]);p&&p.addClass("active")}var c=t.Event("slid.bs.carousel",{relatedTarget:h,direction:r});return t.support.transition&&this.$element.hasClass("slide")?(s.addClass(e),s[0].offsetWidth,n.addClass(r),s.addClass(r),n.one("bsTransitionEnd",function(){s.removeClass([e,r].join(" ")).addClass("active"),n.removeClass(["active",r].join(" ")),l.sliding=!1,setTimeout(function(){l.$element.trigger(c)},0)}).emulateTransitionEnd(i.TRANSITION_DURATION)):(n.removeClass("active"),s.addClass("active"),this.sliding=!1,this.$element.trigger(c)),a&&this.cycle(),this}};var o=t.fn.carousel;t.fn.carousel=e,t.fn.carousel.Constructor=i,t.fn.carousel.noConflict=function(){return t.fn.carousel=o,this};var n=function(i){var o,n=t(this),s=t(n.attr("data-target")||(o=n.attr("href"))&&o.replace(/.*(?=#[^\s]+$)/,""));if(s.hasClass("carousel")){var a=t.extend({},s.data(),n.data()),r=n.attr("data-slide-to");r&&(a.interval=!1),e.call(s,a),r&&s.data("bs.carousel").to(r),i.preventDefault()}};t(document).on("click.bs.carousel.data-api","[data-slide]",n).on("click.bs.carousel.data-api","[data-slide-to]",n),t(window).on("load",function(){t('[data-ride="carousel"]').each(function(){var i=t(this);e.call(i,i.data())})})}(jQuery),+function(t){"use strict";function e(e){var i=e.attr("data-target");i||(i=e.attr("href"),i=i&&/#[A-Za-z]/.test(i)&&i.replace(/.*(?=#[^\s]*$)/,""));var o=i&&t(i);return o&&o.length?o:e.parent()}function i(i){i&&3===i.which||(t(n).remove(),t(s).each(function(){var o=t(this),n=e(o),s={relatedTarget:this};n.hasClass("open")&&(i&&"click"==i.type&&/input|textarea/i.test(i.target.tagName)&&t.contains(n[0],i.target)||(n.trigger(i=t.Event("hide.bs.dropdown",s)),i.isDefaultPrevented()||(o.attr("aria-expanded","false"),n.removeClass("open").trigger("hidden.bs.dropdown",s))))}))}function o(e){return this.each(function(){var i=t(this),o=i.data("bs.dropdown");o||i.data("bs.dropdown",o=new a(this)),"string"==typeof e&&o[e].call(i)})}var n=".dropdown-backdrop",s='[data-toggle="dropdown"]',a=function(e){t(e).on("click.bs.dropdown",this.toggle)};a.VERSION="3.3.5",a.prototype.toggle=function(o){var n=t(this);if(!n.is(".disabled, :disabled")){var s=e(n),a=s.hasClass("open");if(i(),!a){"ontouchstart"in document.documentElement&&!s.closest(".navbar-nav").length&&t(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(t(this)).on("click",i);var r={relatedTarget:this};if(s.trigger(o=t.Event("show.bs.dropdown",r)),o.isDefaultPrevented())return;n.trigger("focus").attr("aria-expanded","true"),s.toggleClass("open").trigger("shown.bs.dropdown",r)}return!1}},a.prototype.keydown=function(i){if(/(38|40|27|32)/.test(i.which)&&!/input|textarea/i.test(i.target.tagName)){var o=t(this);if(i.preventDefault(),i.stopPropagation(),!o.is(".disabled, :disabled")){var n=e(o),a=n.hasClass("open");if(!a&&27!=i.which||a&&27==i.which)return 27==i.which&&n.find(s).trigger("focus"),o.trigger("click");var r=" li:not(.disabled):visible a",l=n.find(".dropdown-menu"+r);if(l.length){var h=l.index(i.target);38==i.which&&h>0&&h--,40==i.which&&h<l.length-1&&h++,~h||(h=0),l.eq(h).trigger("focus")}}}};var r=t.fn.dropdown;t.fn.dropdown=o,t.fn.dropdown.Constructor=a,t.fn.dropdown.noConflict=function(){return t.fn.dropdown=r,this},t(document).on("click.bs.dropdown.data-api",i).on("click.bs.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.bs.dropdown.data-api",s,a.prototype.toggle).on("keydown.bs.dropdown.data-api",s,a.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",a.prototype.keydown)}(jQuery),+function(t){"use strict";function e(e,o){return this.each(function(){var n=t(this),s=n.data("bs.modal"),a=t.extend({},i.DEFAULTS,n.data(),"object"==typeof e&&e);s||n.data("bs.modal",s=new i(this,a)),"string"==typeof e?s[e](o):a.show&&s.show(o)})}var i=function(e,i){this.options=i,this.$body=t(document.body),this.$element=t(e),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,t.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};i.VERSION="3.3.5",i.TRANSITION_DURATION=300,i.BACKDROP_TRANSITION_DURATION=150,i.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},i.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},i.prototype.show=function(e){var o=this,n=t.Event("show.bs.modal",{relatedTarget:e});this.$element.trigger(n),this.isShown||n.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',t.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){o.$element.one("mouseup.dismiss.bs.modal",function(e){t(e.target).is(o.$element)&&(o.ignoreBackdropClick=!0)})}),this.backdrop(function(){var n=t.support.transition&&o.$element.hasClass("fade");o.$element.parent().length||o.$element.appendTo(o.$body),o.$element.show().scrollTop(0),o.adjustDialog(),n&&o.$element[0].offsetWidth,o.$element.addClass("in"),o.enforceFocus();var s=t.Event("shown.bs.modal",{relatedTarget:e});n?o.$dialog.one("bsTransitionEnd",function(){o.$element.trigger("focus").trigger(s)}).emulateTransitionEnd(i.TRANSITION_DURATION):o.$element.trigger("focus").trigger(s)}))},i.prototype.hide=function(e){e&&e.preventDefault(),e=t.Event("hide.bs.modal"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),t(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),t.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",t.proxy(this.hideModal,this)).emulateTransitionEnd(i.TRANSITION_DURATION):this.hideModal())},i.prototype.enforceFocus=function(){t(document).off("focusin.bs.modal").on("focusin.bs.modal",t.proxy(function(t){this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},i.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",t.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},i.prototype.resize=function(){this.isShown?t(window).on("resize.bs.modal",t.proxy(this.handleUpdate,this)):t(window).off("resize.bs.modal")},i.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.bs.modal")})},i.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},i.prototype.backdrop=function(e){var o=this,n=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var s=t.support.transition&&n;if(this.$backdrop=t(document.createElement("div")).addClass("modal-backdrop "+n).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",t.proxy(function(t){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),s&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!e)return;s?this.$backdrop.one("bsTransitionEnd",e).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):e()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var a=function(){o.removeBackdrop(),e&&e()};t.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",a).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):a()}else e&&e()},i.prototype.handleUpdate=function(){this.adjustDialog()},i.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},i.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},i.prototype.checkScrollbar=function(){var t=window.innerWidth;if(!t){var e=document.documentElement.getBoundingClientRect();t=e.right-Math.abs(e.left)}this.bodyIsOverflowing=document.body.clientWidth<t,this.scrollbarWidth=this.measureScrollbar()},i.prototype.setScrollbar=function(){var t=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",t+this.scrollbarWidth)},i.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},i.prototype.measureScrollbar=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",this.$body.append(t);var e=t.offsetWidth-t.clientWidth;return this.$body[0].removeChild(t),e};var o=t.fn.modal;t.fn.modal=e,t.fn.modal.Constructor=i,t.fn.modal.noConflict=function(){return t.fn.modal=o,this},t(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(i){var o=t(this),n=o.attr("href"),s=t(o.attr("data-target")||n&&n.replace(/.*(?=#[^\s]+$)/,"")),a=s.data("bs.modal")?"toggle":t.extend({remote:!/#/.test(n)&&n},s.data(),o.data());o.is("a")&&i.preventDefault(),s.one("show.bs.modal",function(t){t.isDefaultPrevented()||s.one("hidden.bs.modal",function(){o.is(":visible")&&o.trigger("focus")})}),e.call(s,a,this)})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.tooltip"),s="object"==typeof e&&e;(n||!/destroy|hide/.test(e))&&(n||o.data("bs.tooltip",n=new i(this,s)),"string"==typeof e&&n[e]())})}var i=function(t,e){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",t,e)};i.VERSION="3.3.5",i.TRANSITION_DURATION=150,i.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},i.prototype.init=function(e,i,o){if(this.enabled=!0,this.type=e,this.$element=t(i),this.options=this.getOptions(o),this.$viewport=this.options.viewport&&t(t.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var n=this.options.trigger.split(" "),s=n.length;s--;){var a=n[s];if("click"==a)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=a){var r="hover"==a?"mouseenter":"focusin",l="hover"==a?"mouseleave":"focusout";this.$element.on(r+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},i.prototype.getDefaults=function(){return i.DEFAULTS},i.prototype.getOptions=function(e){return e=t.extend({},this.getDefaults(),this.$element.data(),e),e.delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e},i.prototype.getDelegateOptions=function(){var e={},i=this.getDefaults();return this._options&&t.each(this._options,function(t,o){i[t]!=o&&(e[t]=o)}),e},i.prototype.enter=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),e instanceof t.Event&&(i.inState["focusin"==e.type?"focus":"hover"]=!0),i.tip().hasClass("in")||"in"==i.hoverState?void(i.hoverState="in"):(clearTimeout(i.timeout),i.hoverState="in",i.options.delay&&i.options.delay.show?void(i.timeout=setTimeout(function(){"in"==i.hoverState&&i.show()},i.options.delay.show)):i.show())},i.prototype.isInStateTrue=function(){for(var t in this.inState)if(this.inState[t])return!0;return!1},i.prototype.leave=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),e instanceof t.Event&&(i.inState["focusout"==e.type?"focus":"hover"]=!1),i.isInStateTrue()?void 0:(clearTimeout(i.timeout),i.hoverState="out",i.options.delay&&i.options.delay.hide?void(i.timeout=setTimeout(function(){"out"==i.hoverState&&i.hide()},i.options.delay.hide)):i.hide())},i.prototype.show=function(){var e=t.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var o=t.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!o)return;var n=this,s=this.tip(),a=this.getUID(this.type);this.setContent(),s.attr("id",a),this.$element.attr("aria-describedby",a),this.options.animation&&s.addClass("fade");var r="function"==typeof this.options.placement?this.options.placement.call(this,s[0],this.$element[0]):this.options.placement,l=/\s?auto?\s?/i,h=l.test(r);h&&(r=r.replace(l,"")||"top"),s.detach().css({top:0,left:0,display:"block"}).addClass(r).data("bs."+this.type,this),this.options.container?s.appendTo(this.options.container):s.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var d=this.getPosition(),p=s[0].offsetWidth,c=s[0].offsetHeight;if(h){var f=r,u=this.getPosition(this.$viewport);r="bottom"==r&&d.bottom+c>u.bottom?"top":"top"==r&&d.top-c<u.top?"bottom":"right"==r&&d.right+p>u.width?"left":"left"==r&&d.left-p<u.left?"right":r,s.removeClass(f).addClass(r)}var g=this.getCalculatedOffset(r,d,p,c);this.applyPlacement(g,r);var m=function(){var t=n.hoverState;n.$element.trigger("shown.bs."+n.type),n.hoverState=null,"out"==t&&n.leave(n)};t.support.transition&&this.$tip.hasClass("fade")?s.one("bsTransitionEnd",m).emulateTransitionEnd(i.TRANSITION_DURATION):m()}},i.prototype.applyPlacement=function(e,i){var o=this.tip(),n=o[0].offsetWidth,s=o[0].offsetHeight,a=parseInt(o.css("margin-top"),10),r=parseInt(o.css("margin-left"),10);isNaN(a)&&(a=0),isNaN(r)&&(r=0),e.top+=a,e.left+=r,t.offset.setOffset(o[0],t.extend({using:function(t){o.css({top:Math.round(t.top),left:Math.round(t.left)})}},e),0),o.addClass("in");var l=o[0].offsetWidth,h=o[0].offsetHeight;"top"==i&&h!=s&&(e.top=e.top+s-h);var d=this.getViewportAdjustedDelta(i,e,l,h);d.left?e.left+=d.left:e.top+=d.top;var p=/top|bottom/.test(i),c=p?2*d.left-n+l:2*d.top-s+h,f=p?"offsetWidth":"offsetHeight";o.offset(e),this.replaceArrow(c,o[0][f],p)},i.prototype.replaceArrow=function(t,e,i){this.arrow().css(i?"left":"top",50*(1-t/e)+"%").css(i?"top":"left","")},i.prototype.setContent=function(){var t=this.tip(),e=this.getTitle();t.find(".tooltip-inner")[this.options.html?"html":"text"](e),t.removeClass("fade in top bottom left right")},i.prototype.hide=function(e){function o(){"in"!=n.hoverState&&s.detach(),n.$element.removeAttr("aria-describedby").trigger("hidden.bs."+n.type),e&&e()}var n=this,s=t(this.$tip),a=t.Event("hide.bs."+this.type);return this.$element.trigger(a),a.isDefaultPrevented()?void 0:(s.removeClass("in"),t.support.transition&&s.hasClass("fade")?s.one("bsTransitionEnd",o).emulateTransitionEnd(i.TRANSITION_DURATION):o(),this.hoverState=null,this)},i.prototype.fixTitle=function(){var t=this.$element;(t.attr("title")||"string"!=typeof t.attr("data-original-title"))&&t.attr("data-original-title",t.attr("title")||"").attr("title","")},i.prototype.hasContent=function(){return this.getTitle()},i.prototype.getPosition=function(e){e=e||this.$element;var i=e[0],o="BODY"==i.tagName,n=i.getBoundingClientRect();null==n.width&&(n=t.extend({},n,{width:n.right-n.left,height:n.bottom-n.top}));var s=o?{top:0,left:0}:e.offset(),a={scroll:o?document.documentElement.scrollTop||document.body.scrollTop:e.scrollTop()},r=o?{width:t(window).width(),height:t(window).height()}:null;return t.extend({},n,a,r,s)},i.prototype.getCalculatedOffset=function(t,e,i,o){return"bottom"==t?{top:e.top+e.height,left:e.left+e.width/2-i/2}:"top"==t?{top:e.top-o,left:e.left+e.width/2-i/2}:"left"==t?{top:e.top+e.height/2-o/2,left:e.left-i}:{top:e.top+e.height/2-o/2,left:e.left+e.width}},i.prototype.getViewportAdjustedDelta=function(t,e,i,o){var n={top:0,left:0};if(!this.$viewport)return n;var s=this.options.viewport&&this.options.viewport.padding||0,a=this.getPosition(this.$viewport);if(/right|left/.test(t)){var r=e.top-s-a.scroll,l=e.top+s-a.scroll+o;r<a.top?n.top=a.top-r:l>a.top+a.height&&(n.top=a.top+a.height-l)}else{var h=e.left-s,d=e.left+s+i;h<a.left?n.left=a.left-h:d>a.right&&(n.left=a.left+a.width-d)}return n},i.prototype.getTitle=function(){var t,e=this.$element,i=this.options;return t=e.attr("data-original-title")||("function"==typeof i.title?i.title.call(e[0]):i.title)},i.prototype.getUID=function(t){do t+=~~(1e6*Math.random());while(document.getElementById(t));return t},i.prototype.tip=function(){if(!this.$tip&&(this.$tip=t(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},i.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},i.prototype.enable=function(){this.enabled=!0},i.prototype.disable=function(){this.enabled=!1},i.prototype.toggleEnabled=function(){this.enabled=!this.enabled},i.prototype.toggle=function(e){var i=this;e&&(i=t(e.currentTarget).data("bs."+this.type),i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i))),e?(i.inState.click=!i.inState.click,i.isInStateTrue()?i.enter(i):i.leave(i)):i.tip().hasClass("in")?i.leave(i):i.enter(i)},i.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off("."+t.type).removeData("bs."+t.type),t.$tip&&t.$tip.detach(),t.$tip=null,t.$arrow=null,t.$viewport=null})};var o=t.fn.tooltip;t.fn.tooltip=e,t.fn.tooltip.Constructor=i,t.fn.tooltip.noConflict=function(){return t.fn.tooltip=o,this}}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.popover"),s="object"==typeof e&&e;(n||!/destroy|hide/.test(e))&&(n||o.data("bs.popover",n=new i(this,s)),"string"==typeof e&&n[e]())})}var i=function(t,e){this.init("popover",t,e)};if(!t.fn.tooltip)throw new Error("Popover requires tooltip.js");i.VERSION="3.3.5",i.DEFAULTS=t.extend({},t.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),i.prototype=t.extend({},t.fn.tooltip.Constructor.prototype),i.prototype.constructor=i,i.prototype.getDefaults=function(){return i.DEFAULTS},i.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),i=this.getContent();t.find(".popover-title")[this.options.html?"html":"text"](e),t.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof i?"html":"append":"text"](i),t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},i.prototype.hasContent=function(){return this.getTitle()||this.getContent()},i.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},i.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var o=t.fn.popover;t.fn.popover=e,t.fn.popover.Constructor=i,t.fn.popover.noConflict=function(){return t.fn.popover=o,this}}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.tab");n||o.data("bs.tab",n=new i(this)),"string"==typeof e&&n[e]()})}var i=function(e){this.element=t(e)};i.VERSION="3.3.5",i.TRANSITION_DURATION=150,i.prototype.show=function(){var e=this.element,i=e.closest("ul:not(.dropdown-menu)"),o=e.data("target");if(o||(o=e.attr("href"),o=o&&o.replace(/.*(?=#[^\s]*$)/,"")),!e.parent("li").hasClass("active")){var n=i.find(".active:last a"),s=t.Event("hide.bs.tab",{relatedTarget:e[0]}),a=t.Event("show.bs.tab",{relatedTarget:n[0]});if(n.trigger(s),e.trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){var r=t(o);this.activate(e.closest("li"),i),this.activate(r,r.parent(),function(){n.trigger({type:"hidden.bs.tab",relatedTarget:e[0]}),e.trigger({type:"shown.bs.tab",relatedTarget:n[0]})})}}},i.prototype.activate=function(e,o,n){function s(){a.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),e.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),r?(e[0].offsetWidth,e.addClass("in")):e.removeClass("fade"),e.parent(".dropdown-menu").length&&e.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),n&&n()}var a=o.find("> .active"),r=n&&t.support.transition&&(a.length&&a.hasClass("fade")||!!o.find("> .fade").length);a.length&&r?a.one("bsTransitionEnd",s).emulateTransitionEnd(i.TRANSITION_DURATION):s(),a.removeClass("in")};var o=t.fn.tab;t.fn.tab=e,t.fn.tab.Constructor=i,t.fn.tab.noConflict=function(){return t.fn.tab=o,this};var n=function(i){i.preventDefault(),e.call(t(this),"show")};t(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',n).on("click.bs.tab.data-api",'[data-toggle="pill"]',n)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.affix"),s="object"==typeof e&&e;n||o.data("bs.affix",n=new i(this,s)),"string"==typeof e&&n[e]()})}var i=function(e,o){this.options=t.extend({},i.DEFAULTS,o),this.$target=t(this.options.target).on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(e),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};i.VERSION="3.3.5",i.RESET="affix affix-top affix-bottom",i.DEFAULTS={offset:0,target:window},i.prototype.getState=function(t,e,i,o){var n=this.$target.scrollTop(),s=this.$element.offset(),a=this.$target.height();if(null!=i&&"top"==this.affixed)return i>n?"top":!1;if("bottom"==this.affixed)return null!=i?n+this.unpin<=s.top?!1:"bottom":t-o>=n+a?!1:"bottom";var r=null==this.affixed,l=r?n:s.top,h=r?a:e;return null!=i&&i>=n?"top":null!=o&&l+h>=t-o?"bottom":!1},i.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(i.RESET).addClass("affix");var t=this.$target.scrollTop(),e=this.$element.offset();return this.pinnedOffset=e.top-t},i.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},i.prototype.checkPosition=function(){if(this.$element.is(":visible")){var e=this.$element.height(),o=this.options.offset,n=o.top,s=o.bottom,a=Math.max(t(document).height(),t(document.body).height());"object"!=typeof o&&(s=n=o),"function"==typeof n&&(n=o.top(this.$element)),"function"==typeof s&&(s=o.bottom(this.$element));var r=this.getState(a,e,n,s);if(this.affixed!=r){null!=this.unpin&&this.$element.css("top","");var l="affix"+(r?"-"+r:""),h=t.Event(l+".bs.affix");if(this.$element.trigger(h),h.isDefaultPrevented())return;this.affixed=r,this.unpin="bottom"==r?this.getPinnedOffset():null,this.$element.removeClass(i.RESET).addClass(l).trigger(l.replace("affix","affixed")+".bs.affix")}"bottom"==r&&this.$element.offset({top:a-e-s})}};var o=t.fn.affix;t.fn.affix=e,t.fn.affix.Constructor=i,t.fn.affix.noConflict=function(){return t.fn.affix=o,this},t(window).on("load",function(){t('[data-spy="affix"]').each(function(){var i=t(this),o=i.data();o.offset=o.offset||{},null!=o.offsetBottom&&(o.offset.bottom=o.offsetBottom),null!=o.offsetTop&&(o.offset.top=o.offsetTop),e.call(i,o)})})}(jQuery),+function(t){"use strict";function e(e){var i,o=e.attr("data-target")||(i=e.attr("href"))&&i.replace(/.*(?=#[^\s]+$)/,"");return t(o)}function i(e){return this.each(function(){var i=t(this),n=i.data("bs.collapse"),s=t.extend({},o.DEFAULTS,i.data(),"object"==typeof e&&e);!n&&s.toggle&&/show|hide/.test(e)&&(s.toggle=!1),n||i.data("bs.collapse",n=new o(this,s)),"string"==typeof e&&n[e]()})}var o=function(e,i){this.$element=t(e),this.options=t.extend({},o.DEFAULTS,i),this.$trigger=t('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};o.VERSION="3.3.5",o.TRANSITION_DURATION=350,o.DEFAULTS={toggle:!0},o.prototype.dimension=function(){var t=this.$element.hasClass("width");return t?"width":"height"},o.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var e,n=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(n&&n.length&&(e=n.data("bs.collapse"),e&&e.transitioning))){var s=t.Event("show.bs.collapse");if(this.$element.trigger(s),!s.isDefaultPrevented()){n&&n.length&&(i.call(n,"hide"),e||n.data("bs.collapse",null));var a=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[a](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var r=function(){this.$element.removeClass("collapsing").addClass("collapse in")[a](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!t.support.transition)return r.call(this);var l=t.camelCase(["scroll",a].join("-"));this.$element.one("bsTransitionEnd",t.proxy(r,this)).emulateTransitionEnd(o.TRANSITION_DURATION)[a](this.$element[0][l]);
- }}}},o.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var e=t.Event("hide.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var i=this.dimension();this.$element[i](this.$element[i]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var n=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return t.support.transition?void this.$element[i](0).one("bsTransitionEnd",t.proxy(n,this)).emulateTransitionEnd(o.TRANSITION_DURATION):n.call(this)}}},o.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},o.prototype.getParent=function(){return t(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(t.proxy(function(i,o){var n=t(o);this.addAriaAndCollapsedClass(e(n),n)},this)).end()},o.prototype.addAriaAndCollapsedClass=function(t,e){var i=t.hasClass("in");t.attr("aria-expanded",i),e.toggleClass("collapsed",!i).attr("aria-expanded",i)};var n=t.fn.collapse;t.fn.collapse=i,t.fn.collapse.Constructor=o,t.fn.collapse.noConflict=function(){return t.fn.collapse=n,this},t(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(o){var n=t(this);n.attr("data-target")||o.preventDefault();var s=e(n),a=s.data("bs.collapse"),r=a?"toggle":n.data();i.call(s,r)})}(jQuery),+function(t){"use strict";function e(i,o){this.$body=t(document.body),this.$scrollElement=t(t(i).is(document.body)?window:i),this.options=t.extend({},e.DEFAULTS,o),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",t.proxy(this.process,this)),this.refresh(),this.process()}function i(i){return this.each(function(){var o=t(this),n=o.data("bs.scrollspy"),s="object"==typeof i&&i;n||o.data("bs.scrollspy",n=new e(this,s)),"string"==typeof i&&n[i]()})}e.VERSION="3.3.5",e.DEFAULTS={offset:10},e.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},e.prototype.refresh=function(){var e=this,i="offset",o=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),t.isWindow(this.$scrollElement[0])||(i="position",o=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var e=t(this),n=e.data("target")||e.attr("href"),s=/^#./.test(n)&&t(n);return s&&s.length&&s.is(":visible")&&[[s[i]().top+o,n]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){e.offsets.push(this[0]),e.targets.push(this[1])})},e.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,i=this.getScrollHeight(),o=this.options.offset+i-this.$scrollElement.height(),n=this.offsets,s=this.targets,a=this.activeTarget;if(this.scrollHeight!=i&&this.refresh(),e>=o)return a!=(t=s[s.length-1])&&this.activate(t);if(a&&e<n[0])return this.activeTarget=null,this.clear();for(t=n.length;t--;)a!=s[t]&&e>=n[t]&&(void 0===n[t+1]||e<n[t+1])&&this.activate(s[t])},e.prototype.activate=function(e){this.activeTarget=e,this.clear();var i=this.selector+'[data-target="'+e+'"],'+this.selector+'[href="'+e+'"]',o=t(i).parents("li").addClass("active");o.parent(".dropdown-menu").length&&(o=o.closest("li.dropdown").addClass("active")),o.trigger("activate.bs.scrollspy")},e.prototype.clear=function(){t(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var o=t.fn.scrollspy;t.fn.scrollspy=i,t.fn.scrollspy.Constructor=e,t.fn.scrollspy.noConflict=function(){return t.fn.scrollspy=o,this},t(window).on("load.bs.scrollspy.data-api",function(){t('[data-spy="scroll"]').each(function(){var e=t(this);i.call(e,e.data())})})}(jQuery),+function(t){"use strict";function e(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var i in e)if(void 0!==t.style[i])return{end:e[i]};return!1}t.fn.emulateTransitionEnd=function(e){var i=!1,o=this;t(this).one("bsTransitionEnd",function(){i=!0});var n=function(){i||t(o).trigger(t.support.transition.end)};return setTimeout(n,e),this},t(function(){t.support.transition=e(),t.support.transition&&(t.event.special.bsTransitionEnd={bindType:t.support.transition.end,delegateType:t.support.transition.end,handle:function(e){return t(e.target).is(this)?e.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery);</script>
- <script>var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
- (function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a=
- [],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c<
- f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\\"===j.charAt(0)&&
- (j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l=!1;break}}for(var r=
- {b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+=g.length,
- t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b===
- "string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m),
- l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
- q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/,
- q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g,
- "");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a),
- a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e}
- for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute("value",
- m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}function E(a){var m=
- a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.nodeValue=
- j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
- "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
- H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
- J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+
- I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),
- ["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",
- /^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),
- ["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",
- hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g),f,b;if(b=
- !k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m,
- 250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",
- PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();</script>
- <script>events.js:377
- throw er; // Unhandled 'error' event
- ^
- Error: ENOENT: no such file or directory, open '/home/arong/Unity/PackageBuild/docs/html_standalone/https:/cdn.jsdelivr.net/fuse/2.5.0/fuse.min.js'
- Emitted 'error' event on ReadStream instance at:
- at internal/fs/streams.js:126:14
- at FSReqCallback.oncomplete (fs.js:179:23) {
- errno: -2,
- code: 'ENOENT',
- syscall: 'open',
- path: '/home/arong/Unity/PackageBuild/docs/html_standalone/https:/cdn.jsdelivr.net/fuse/2.5.0/fuse.min.js'
- }
|