trackkun-dom 2.35.0 → 2.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/adBlocker.json CHANGED
@@ -1 +1 @@
1
- {"hosts":["enrtx.com","boringegotistical.com","frs2c.com","rcdn-web.com","mks98.com","navyrecentuproot.com","faxro.com","nn125.com","dumpledfaints.cfd","itsmyphotos.com","techtrunch.com","juicyads.com","itsmyphotoalbum.com","micetrack-stronix.online","app.adjust.com","cleanhero.co","chaturbate.com","vpntoggle.app","2wgg.com","brightcloudvalley.com","abedworthlesscure.com","willingnessdrizzleleverage.com","orchestrabruisereason.com","autoimageco.com","trafficpowerhouse.com","f0113.com","corevibe-network.com","overturncogentconcealment.com","inexhaustiblenormcall.com","auntiesurfeatable.com","dysenteryanywhere.com","mobizento.com","cisaqauwin.com","brolackview.ink","rankjerryrounion.com","besetadmiredbates.com","royaldepotscrewdriver.com","tmaiads.com","churchilltopless.com","imkirh.com","offsetacrefalsify.com","mugaccomplish.com","dsungx.com","trafgordkat.ink","essencereferencetummy.com","nacterr.com","mobiryno.com","dsbcks.com","devimaro.com","refpa96041.com","dsapgq.com","truserfs.com","netguardst.com","slonroeoutumn.com","trafficboostnow.com","iccku.com","aviruvpnapp.com","v12ong.com","i-00.com","happyleafmotion.com","theajack.github.io","profitablecpmratenetwork.com","privbrsr.com","shopee.com.my","fizzyacerbitymellow.com","jugglingoverfedparalyze.com","dscenn.com","saltilycortege.qpon","topofferlinks.com","youhim.me","takklesoft.com","1trk.org","tart-excitement.pro","dsatrd.com","techsmartideas.com","devymera.com","stylish-airport.com","smartshowtr.com","aliexpress.com","shopee.vn","shop","top","cfd","pubfuture-ad.com","tsyndicate.com","bidgear.com","googlesyndication.com","rlcdn.com","rfihub.com","doubleclick.net","viglink.com","acscdn.com","netpub.media","radioonlinehd.net","pubadx.one","pemsrv.com","magsrv.com","pure-device-app.com","thejack.github.io","aqle3.com","flytechb.com","roledale.com","e-planning.net","360yield.com","creativecdn.com","cpmrevenuegate.com","id5-sync.com","33across.com","nicelybacked.com","app-lite.com","giftsacred.com","wugroansaghadry.com","dm2d.com","baltitilaite.com","topworkredbay.shop","typhonsdiscal.top","bassaqueued.top","hlnymphon.shop","vidiconmaskers.shop","hungrycedula.shop","ekamsply.com","bmndx.com","rtmark.net","stathome.org","outbrain.com","junksrane.shop","hdbknoologygoularo.cfd","boltedacyetic.cfd","bekisspolars.click","tembeyeaned.cyou","kismetrosland.life","d3n7ct9nohphbs.cloudfront.net","stoolsocman.top","malthuscorno.shop","farcivinage.shop","fixatealaloi.top","footlogmerida.shop","attalidhatters.shop","ichthusthar.top","vingtunacroter.top","carbarnbonang.shop","duppedbawsunt.life","jaspersfamilia.cyou","outheelrelict.com","cinderycandor.com","coaphumewy.net","vntsm.io","ad-delivery.net","a-ads.com","adskeeper.com","goomaphy.com","t7cp4fldl.com","endowmentoverhangutmost.com","ccg90.com","vlitag.com","addthis.com","mreadercdn.com","drokpasewer.com","gorgeirido.com","adschill.com","upblowcorbed.top","seisorsverbile.top","dependsmoscow.com","hottedholster.com","pubfuture.com","xylidichiatus.shop","jzbvwqeowwwoz.top","yockingdey.shop","infolinks.com","prospectprefer.com","benchsuited.com","busyexit.com","realsrvcdn.com","adhub.digital","stoachdarts.com","godpvqnszo.com","zuhempih.com","prplad.com","openx.net","socdm.com","redcapsunlime.com","cebidsbessel.com","akalibalboas.com","objectsgteau.com","vdo.ai","imasdk.googleapis.com","noshelfrequired.com","weinsteinandmiller.com","walkeralacrityfavorite.com","topcpmcreativeformat.com","chaungourtee.com","tektosfolic.com","suffarilbf.com","earthenicings.com","trotolhonor.com","zqvee2re50mr.com","waisheph.com","groapeeque.com","genuinelyunfit.com","impedegrimy.com","umbretalen.com","guigebichir.website","divvyprorata.com","dummieseardrum.com","hbcdn.net","falcatayamalka.com","ribwortjulep.com","noritesfarrago.com","admatic.com.tr","ppcnt.pro","sowfootsolent.com","%20sowfootsolent.com%20","flarby.com","web0.eu","codensmilax.com","d28bcu8ltt2bxh.cloudfront.net","y8z5nv0slz06vj2k5vh6akv7dj2c8aj62zhj2v7zj8vp0zq7fj2gf4mv6zsb.me","xlviirdr.com","org.uk","funnelgloveaffable.com","wordsnought.com","fictionfittinglad.com","wrestcut.com","obediencechainednoun.com","scratchconsonant.com","pestholy.com","mv.netprotect","microsoftonline.com","securly.com","t-mobile.at","bihussfoob.net","doruffleton.com","tenmrwwk.com","fcoexcuf.com","yxextvgvbbhfuff.com","crwdcntrl.net","mcheaprjnve.com","btcijivtsvph.com","yssmiccrhxiru.com","brand-display.com","ads.linkedin.com","xwnutgihjjkadbu.com","affec.tv","coshafvl.com","ymajpuqag.com","prplads.com","crockerydestructivespoken.com","parzoom.com","lwonclbench.com","purpleads.io","abrhydona.com","taxismaned.top","viewyentreat.guru","foramscoypou.com","188.42.84.12","taiiwin.vin","licensekey2018.com","caribedkurukh.com","tzegilo.com","casibom.io","jubusvaleur.top","intimalsejoin.top","squeaksgridded.top","cussingversate.top","newcrystalcommunications.com","gypperywyling.com","wpadmngr.com","yandex.ru","fpyf8.com","can.re","flinttovaria.com","bitonclick.com","fuzzyvisuals.com","mimamsaslews.com","naupsithizeekee.com","lakeletbothria.com","flairadscpc.com","mbidadm.com","23.109.170.2","orsedebebeeru.com","shopboyreminds.com","shakhasewn.com","ad-m.asia","pubmatic.com","invstatic101.creativecdn.com","cinarra.com","analytics.yahoo.com","blismedia.com","w55c.net","antiadblocksystems.com","d3cod80thn7qnd.cloudfront.net","ndrrbpgmjpsng.com","uwolvsazk.com","chaseherbalpasty.com","adsco.re","lojvicwu.com","qqwtwpdvhoq.com","pushaffiliate.net","lavangataled.com","betteradsystem.com","d2kk0o3fr7ed01.cloudfront.net","abtfliping.top","eloawiphi.net","dantaradiohd.net","liadm.com","wylin.ai","visageagar.com","unslylysmug.cfd","murathernias.com","a-zzz.com","pumeloricing.com","sondeliseafolk.com","jatosbathkol.com","links.services.disqus.com","tempest.services.disqus.com","muthfourre.com","koaptouw.com","exinesriles.com","lowseelor.com","sporulekakis.com","upstandingstoriessuited.com","avalanchetremorunfilled.com","crowbarrinds.com","salutetutortwiddling.com","mxhnkn.pro","blurbreimbursetrombone.com","awwagqorqpty.com","clobberprocurertightwad.com","coosync.com","bncloudfl.com","bullionglidingscuttle.com","btoomlalk.com","x8.games","mplmncb.com","shakingtacklingunpeeled.com","bankingbloatedcaptive.com","xibet.com","divisiondrearilyunfiled.com","isolatedovercomepasted.com","9bet.net","chilihandshakewing.com","cupbearergrowllurch.com","campfirecroutondecorator.com","profitsfly.com","kulroakonsu.net","trypsinneutral.com","massifbramble.com","babistmucuses.com","urgingslaurae.com","greatmidship.com","oxbet.com","whoanebsos.net","lanky-bar.com","glizauvo.net","teksishe.net","dirtsower.cyou","spokanchap.com","viewdeos.com","d11enq2rymy0yl.cloudfront.net","aukveygibngnjg.com","xadsmart.com","bqpvduxtfhwsd.com","qjeirnapocqcy.com","zxomvphodwdpcs.com","murozwuddtow.com","msincsayqmji.com","recordedthereby.com","proftrafficcounter.com","sympathizecrewfrugality.com","capaciousdrewreligion.com","jobetartane.com","amon1.net","bulkconflictpeculiarities.com","zodiacdinner.com","peanutrefusesplit.com","ectypedechlog.com","dapcerevis.shop","captorbaryton.com","wilfreddrear.shop","cowpencinclis.com","arvigorothan.com","ccoyaballots.com","betowelumph.com","protrafficinspector.com","cassabahotcake.top","craxzapas.com","ovologysnoops.com","mysidaebetire.com","oaphoace.net","justinepulvino.qpon","h12-media.com","craniolgozzan.com","cuinageaquilid.com","beyliksyowler.com","tylulewe.com","ohgriforkvan.com","dinwhozi.com","stoopeddiscourse.com","laxativestuckunclog.com","earringsatisfiedsplice.com","childlessporcupinevaluables.com","footbathmockerpurse.com","janitorprecisiontrio.com","dodgyfactoidprecut.com","alvanhaybox.com","berthfrankly.com","appointeeivyspongy.com","flaxdescale.com","flatjeep.com","dtscout.com","scakuvap.com","occasionedcaneturner.com","highperformanceformat.com","aiharsoreersu.net","madurird.com","causoupushoutho.xyz","couphaithuph.net","dawac.com","bobapsoabauns.com","vooculok.com","jmeoyypc.xyz","unasonoric.com","corvoidhas.com","tripsisvellums.com","zoeacaring.com","radioonlinehd.s3.amazonaws.com","sparersetnean.shop","gekeebsirs.com","dental-human.com","pricklymine.com","pointlessplan.pro","coafeerapheepho.net","calculatingvoice.com","pointedpleasure.com","ellipticaltrack.com","visariomedia.com","d13k7prax1yi04.cloudfront.net","xcafcyxddc.com","pbljxppwurd.com","streamtheworld.com","rubiconproject.com","adtelligent.com","zemanta.com","adswizz.com","chambulwacs.com","onclckmn.com","wry-boss.com","1xbetm.info","runative-syndicate.com","vealedincite.com","a11ybar.com","optvz.com","afcdn.net","gloutanacard.com","gollarpulsus.com","ungreeninwrit.com","centricgaffkya.com","errandsracket.com","dipppyruiners.top","outoctillerytor.com","spacemancreativedom.net","ptougeegnep.net","ptichoolsougn.net","driverhugoverblown.com","hotbcoharu.cc","trck.house","diagramjawlineunhappy.com","hotbjumelo.today","partners-show.com","vaikijie.net","bossedmarlier.help","medullagrooved.com","slavirappels.com","wkvvzeqlaqooz.top","d3mzokty951c5w.cloudfront.net","displayvertising.com","kalingacurvant.com","warmupposaune.com","d3mr7y154d2qg5.cloudfront.net","ipxgpcjii.com","unfretarara.com","intellipopup.com","fotgjbrvuzw.com","boodybasalt.com","unluckasserta.com","popcash.net","bvtpk.com","sacwumsf.com","alfredatitres.com","jads.co","waust.at","e695de9aef.com","612fc22a02.com","e5ce73abf6.com","d980ffe9b6.com","ezodn.com","bluekai.com","go.ezodn.com","22hgc.com","ampproject.org","refreshmould.com","kettledroopingcontinuation.com","lhuojsddipcncs.com","wnkiamnb.com","defroststringbenignity.com","klpuqtvdxxqf.com","edhpczkm.com","caroakitab.com","abdalminhag.com","gerentstaperly.com","bobsleddomesticglandular.com","d3g5ovfngjw9bw.cloudfront.net","cdn4ads.com","cwggydrmj.xyz","loajawun.com","cyetwkoxmijucj.xyz","airingsjerky.com","horoutavitamin.click","lmcomments.com","stiffenromano.com","xylylicpeteca.com","toxinspalsied.com","metricswpsh.com","edcc0994fe.com","multstorage.com","ntvpforever.com","capndr.com","61d7a302a1.com","0491166852.com","7021678b65.6d1e5b5068.com","chnsrv.com","tapioni.com","limbycocking.cfd","mt8kj35uxjq8o4zlgy.cfd","detoxifylagoonsnugness.com","synochaauca.com","tl7x928g7l3ppnqnc7ngy8wue3qgkvnb.cfd","amselragman.com","doesnscapha.com","uby9w6k4vjyf8ebinxq8zmk7wyimi81fyl.cfd","pueblossedilia.com","79iqviv5n83lzgy64.cfd","utysolomonaut.com","ukankingwithea.com","dh8azcl753e1e.cloudfront.net","d1pk6uu6wqrpce.cloudfront.net","peuru.com","brahmsflidge.com","rigelcabda.com","niterforeact.com","hizliresim.com","poppeanwivers.com","theetheks.com","mikratoyotas.com","woewornsequel.com","ueuee.com","dd133.com","renamereptiliantrance.com","bb2r.com","richads.com","becorsolaom.com","twinrdengine.com","mappersavarish.com","corylussunroof.com","68s8.com","ptumesukrerd.net","oursoonethair.net","xkqaqnuhoxlqnmb.com","globinspapaya.shop","jatobacutikin.com","strombugi.com","21wiz.com","embolicpenlop.com","mgid.com","sashingdermoid.com","ml314.com","bushsurprising.com","explorerfutile.com","earmuffpostnasalrisotto.com","crittereasilyhangover.com","kpybmavaxoj.com","deductgreedyheadroom.com","xfidfuxidr.in","bundlemoviepumice.com","sacodnajroh.com","tzokruogxo.com","browsecoherentunrefined.com","cpylzuozp.com","mournersamoa.com","ossetbulimus.com","lawzyscapoid.com","x7i0.com","ads-twitter.com","connect.facebook.com","cdn.adjust.com","conventionalresponse.com","knownfeel.com","modest-significance.com","stupid-police.com","untimely-proof.pro","worrisome-sea.com","necessary-jury.com","starkknife.com","simplistictheory.pro","gentlefieldpattern.com","unnaturalcamera.pro","strong-training.com","grown-committee.com","expensiveincident.com","lone-horror.com","bewitched-display.pro","optimal-neat.pro","longtermeffective.com","hurtful-message.com","trafficbass.com","anysize.pro","3nbf4.com","gizokraijaw.net","forfrogadiertor.com","rebopsmurly.com","parcookgoofah.qpon","shalakobiarchy.com","mildhide.pro","eavailandpro.com","cland.fyi","d4bx2if8xmi89.cloudfront.net","nappyonsetstiffness.com","llvpn.com","gingalbarky.com","dcbbwymp1bhlf.cloudfront.net","gukahdbam.com","d3jzhqnvnvdy34.cloudfront.net","yougetwhatyoupayfor.net","boxypluckunrelated.com","pumaqmqix.com","coolishrocked.com","chubbyexemplaryhardiness.com","clammyendearedkeg.com","dgaf2ncy4dtan.cloudfront.net","epidermispushupvariable.com","tacitmsl.shop","overloadenjoy.com","hardenteiid.com","ymqhrliivzqq24if4r.cfd","weirdopt.com","preferencenail.com","professionaltrafficmonitor.com","torchfriendlypay.com","indelicatedepictunderage.com","skinnycrawlinglax.com","sourshaped.com","paupsoborofoow.net","rusinsawbill.com","sewdialogueconcealment.com","wainseustyle.com","monetiseup.tech","aidennagib.com","al5sm.com","succubmisship.com","crampleadspace.com","foldclankcelery.com","astronautlividlyreformer.com","trivial-final.com","pl28126626.effectivegatecpm.com","seedtag.com","lijit.com","tremorhub.com","fwmrm.net","pubmine.com","staticaly.com","emxdgt.com","smartclip.net","commonvivacious.com","hentaigold.net","mediumdirt.com","zebradiomate.com","nickeldefiancepriest.com","push-sdk.com","judicialimpatientgenerator.com","ornery-possible.com","sombernewspaper.com","folioleformism.com","effectivegatecpm.com","anotherantiadblockurl.theblank.net","nsd.ar","adingo.jp","clmbtech.com","mgcdn.xyz","imacdn.com","spooksmoop.qpon","gainsayacrasinconical.qpon","dwflepmky.com","hfdrqetkq.com","adz2pro.com","severe-capital.com","giriudog.com","damagedface.com","roughremove.com","sturdy-town.com","heartyquit.com","buttery-sick.com","hdwetwindle.com","clutteredclaim.com","deliciouslip.com","contentabc.com","exoclick.com","glisteningtrouble.com","selfassured-celebration.com","vector26060.com","vntjfxxewlclre.com","media-analytic.com","kktc-vip139.com","nextclass.pro","extrovertedlecture.com","faenasplaidie.com","allicesoggier.com","ferruleloimic.com","satellitefetidtelegraph.com","betiseburnut.com","knucklemonthsedifice.com","padsims.com","nitropay.com","amazon-adsystem.com","sharethrough.com","postrelease.co","adsrvr.org","casalemedia.com","postrelease.com","fastclick.net","smaato.net","marphezis.com","smilewanted.com","the-ozone-project.com","cootlogix.com","ecologystoter.com","grouchy-lay.com","pricklyassociation.com","hoggiesatieno.com"],"css":".ad-topMobile,.ad,.ads-container,.ads,.adsbygalaksion,.adsbygoogle,.code-block,.display-banner,.radio-ad,#radio_content,#content *[class*=\"bg-ssp-\"],#adplus-anchor,#fixedban,#noktaplayercontainer,#p_6314647,#psdn-slot,#stickyplayervideoclose,#teaser1,#teaser3,*[class^=\"ad-\"],*[class^=\"ad_\"],*[class$=\"-ad\"],*[class$=\"_ad\"],*[class*=\"-ad-\"],*[class*=\"_ad_\"],*[class^=\"ads-\"],*[class^=\"ads_\"],*[class$=\"-ads\"]:not(.hide-ads),*[class$=\"_ads\"],*[class*=\"-ads-\"],*[class*=\"_ads_\"],*[data-adunit],*[data-google-query-id],*[id*=\"_ad_\"],*[id*=\"-ad-\"],*[id^=\"ad_\"],*[id^=\"ad-\"],*[id$=\"_ad\"],*[id$=\"-ad\"],*[id*=\"_ads_\"],*[id*=\"-ads-\"],*[id^=\"ads_\"],*[id^=\"ads-\"],*[id$=\"_ads\"],*[id$=\"-ads\"],*[id^=\"pf-\"],*[id^=\"sfw-banner-\"],*[id^=\"publift-\"],iframe[src*=\"adata\"],iframe[src*=\"ad.\"],iframe[src*=\"ads.\"],iframe[src*=\"/ad\"],iframe[src*=\"/A=\"],iframe[src*=\"/click\"],iframe[src*=\"?click\"],iframe[src*=\"?banner\"],iframe[src*=\"=click\"],iframe[src*=\"clickurl=\"],iframe[src*=\".atwola.\"],iframe[src*=\"spinbox.\"],iframe[src*=\"transfer.go\"],iframe[src*=\"adfarm\"],iframe[src*=\"adfarmadSpace\"],iframe[src*=\"adserver\"],iframe[src*=\"adjuggler\"],iframe[src*=\".banner\"],iframe[src*=\"bluestreak\"],iframe[src*=\"doubleclick\"],iframe[src*=\"/rd.\"],iframe[src*=\"/0AD\"],iframe[src*=\".falkaq.\"],iframe[src*=\"connextra.\"],iframe[src*=\"tracksponsor.\"],iframe[data-aa],script[src*=\"doubleclick\"] + div,script[src*=\"romanticwait\"] + div,.empower-ad,*[data-empower-id],#empowerplayercontainer,*[id^=\"bg-ssp-\"],.google-auto-placed,*[data-ad-format],*[data-adtrack-id],div:has(> iframe[src*=\"radioonline\"]),.rev-src,#Arpian-ads,iframe[id^=\"bg_\"],.adv,#vi-smartbanner,*[data-ad-slot],html > iframe,div:has(> [prclck]),[prclck],a[href*=\"gotrackier\"],body > nav:not([id]):not([class]):not([style]) > a[style]:first-child:last-child,body > section:not([id]):not([class]):not([style]) > span:first-child:last-child > a[style],html > ins,.kln:has(> script),.adblock_title,.adblock_subtitle,div[id]:has(div[id] h4.adblock_title),div:has([data-izone]),script[src*=\"trotolhonor.com\"] + iframe,.custom-html-widget:has(script[src*=\"separatelysmackfibber\"]),#content a[href*=\"kit-food.com\"],*[pa-slot-container],*[id^=\"exo_slider\"],.exo-native-widget-outer-container,iframe[src*=\"a.magsrv.com\"],#theradios_content,script[src*=\"dummieseardrum\"] + iframe,.ts-im-container,.adxp-sticky,div[id*=\"ScriptRoot\"],#catfishAd,[id*=\"_pop-qqgo\"],div:has(> script[src*=\"tingisincused.com\"]),.ob-widget-items-container:has([data-adv-id]),div:has(> #close-ad),script[src*=\"ungreen\"] + iframe,body > div[id]:has(div div div div .adblock_title),.nxiyd,div[data-shb],.lm-adblock-notfic-container {position: fixed!important;display: none!important;opacity: 0!important;top: -99999px!important;left: -99999px!important;right: unset!important;bottom: unset!important;visibility: hidden!important;z-index: -1000!important;pointer-events: none!important;height: 0!important;width: 0!important;max-height: 0!important;min-height: 0!important;max-width: 0!important;min-width: 0!important;overflow: hidden!important;transform: translate(-99999px, -99999px) scale(0)!important;} .fixed div.relative:has(div > button svg.lucide-x):has(> canvas.absolute) {overflow: auto; max-height: 100vh;} body:has(div[id] h4.adblock_title) {overflow: unset !important;}","urls":["https://cdn.jsdelivr.net/npm/disable-devtool","https://asuracomic.net/api/ads","https://static.cloudflareinsights.com/beacon.min.js","https://manhuaplus.org/themes/liliana/css/ad.css","https://www.asianovel.net/wp-content/plugins/advanced-ads"]}
1
+ {"hosts":["enrtx.com","boringegotistical.com","frs2c.com","rcdn-web.com","mks98.com","navyrecentuproot.com","faxro.com","nn125.com","dumpledfaints.cfd","itsmyphotos.com","techtrunch.com","juicyads.com","itsmyphotoalbum.com","micetrack-stronix.online","app.adjust.com","cleanhero.co","chaturbate.com","vpntoggle.app","2wgg.com","brightcloudvalley.com","abedworthlesscure.com","willingnessdrizzleleverage.com","orchestrabruisereason.com","autoimageco.com","trafficpowerhouse.com","f0113.com","corevibe-network.com","overturncogentconcealment.com","inexhaustiblenormcall.com","auntiesurfeatable.com","dysenteryanywhere.com","mobizento.com","cisaqauwin.com","brolackview.ink","rankjerryrounion.com","besetadmiredbates.com","royaldepotscrewdriver.com","tmaiads.com","churchilltopless.com","imkirh.com","offsetacrefalsify.com","mugaccomplish.com","dsungx.com","trafgordkat.ink","essencereferencetummy.com","nacterr.com","mobiryno.com","dsbcks.com","devimaro.com","refpa96041.com","dsapgq.com","truserfs.com","netguardst.com","slonroeoutumn.com","trafficboostnow.com","iccku.com","aviruvpnapp.com","v12ong.com","i-00.com","happyleafmotion.com","theajack.github.io","profitablecpmratenetwork.com","privbrsr.com","shopee.com.my","fizzyacerbitymellow.com","jugglingoverfedparalyze.com","dscenn.com","topofferlinks.com","youhim.me","takklesoft.com","1trk.org","tart-excitement.pro","dsatrd.com","techsmartideas.com","devymera.com","stylish-airport.com","smartshowtr.com","dd133.com","aliexpress.com","shopee.vn","shop","qpon","top","cfd","pubfuture-ad.com","tsyndicate.com","bidgear.com","googlesyndication.com","rlcdn.com","rfihub.com","doubleclick.net","viglink.com","acscdn.com","netpub.media","radioonlinehd.net","pubadx.one","pemsrv.com","magsrv.com","pure-device-app.com","thejack.github.io","aqle3.com","flytechb.com","roledale.com","e-planning.net","360yield.com","creativecdn.com","cpmrevenuegate.com","id5-sync.com","33across.com","nicelybacked.com","app-lite.com","giftsacred.com","wugroansaghadry.com","dm2d.com","baltitilaite.com","topworkredbay.shop","typhonsdiscal.top","bassaqueued.top","hlnymphon.shop","vidiconmaskers.shop","hungrycedula.shop","ekamsply.com","bmndx.com","rtmark.net","stathome.org","outbrain.com","junksrane.shop","hdbknoologygoularo.cfd","boltedacyetic.cfd","bekisspolars.click","tembeyeaned.cyou","kismetrosland.life","d3n7ct9nohphbs.cloudfront.net","stoolsocman.top","malthuscorno.shop","farcivinage.shop","fixatealaloi.top","footlogmerida.shop","attalidhatters.shop","ichthusthar.top","vingtunacroter.top","carbarnbonang.shop","duppedbawsunt.life","jaspersfamilia.cyou","outheelrelict.com","cinderycandor.com","coaphumewy.net","vntsm.io","ad-delivery.net","a-ads.com","adskeeper.com","goomaphy.com","t7cp4fldl.com","endowmentoverhangutmost.com","ccg90.com","vlitag.com","addthis.com","mreadercdn.com","drokpasewer.com","gorgeirido.com","adschill.com","upblowcorbed.top","seisorsverbile.top","dependsmoscow.com","hottedholster.com","pubfuture.com","xylidichiatus.shop","jzbvwqeowwwoz.top","yockingdey.shop","infolinks.com","prospectprefer.com","benchsuited.com","busyexit.com","realsrvcdn.com","adhub.digital","stoachdarts.com","godpvqnszo.com","zuhempih.com","prplad.com","openx.net","socdm.com","redcapsunlime.com","cebidsbessel.com","akalibalboas.com","objectsgteau.com","vdo.ai","imasdk.googleapis.com","noshelfrequired.com","weinsteinandmiller.com","arhatsfenman.com","bihalvegoldi.com","walkeralacrityfavorite.com","topcpmcreativeformat.com","chaungourtee.com","tektosfolic.com","suffarilbf.com","earthenicings.com","trotolhonor.com","zqvee2re50mr.com","waisheph.com","groapeeque.com","genuinelyunfit.com","impedegrimy.com","umbretalen.com","guigebichir.website","divvyprorata.com","dummieseardrum.com","hbcdn.net","falcatayamalka.com","ribwortjulep.com","noritesfarrago.com","admatic.com.tr","ppcnt.pro","sowfootsolent.com","%20sowfootsolent.com%20","flarby.com","web0.eu","codensmilax.com","d28bcu8ltt2bxh.cloudfront.net","y8z5nv0slz06vj2k5vh6akv7dj2c8aj62zhj2v7zj8vp0zq7fj2gf4mv6zsb.me","xlviirdr.com","org.uk","funnelgloveaffable.com","wordsnought.com","fictionfittinglad.com","wrestcut.com","obediencechainednoun.com","scratchconsonant.com","pestholy.com","mv.netprotect","microsoftonline.com","securly.com","t-mobile.at","bihussfoob.net","doruffleton.com","tenmrwwk.com","fcoexcuf.com","yxextvgvbbhfuff.com","crwdcntrl.net","mcheaprjnve.com","btcijivtsvph.com","yssmiccrhxiru.com","brand-display.com","ads.linkedin.com","xwnutgihjjkadbu.com","affec.tv","coshafvl.com","ymajpuqag.com","x7i0.com","pbumqtbxf.com","prplads.com","crockerydestructivespoken.com","parzoom.com","lwonclbench.com","purpleads.io","abrhydona.com","taxismaned.top","viewyentreat.guru","foramscoypou.com","188.42.84.12","taiiwin.vin","licensekey2018.com","caribedkurukh.com","tzegilo.com","casibom.io","jubusvaleur.top","intimalsejoin.top","squeaksgridded.top","cussingversate.top","newcrystalcommunications.com","gypperywyling.com","wpadmngr.com","yandex.ru","fpyf8.com","can.re","flinttovaria.com","bitonclick.com","fuzzyvisuals.com","mimamsaslews.com","naupsithizeekee.com","lakeletbothria.com","flairadscpc.com","mbidadm.com","23.109.170.2","orsedebebeeru.com","shopboyreminds.com","shakhasewn.com","ad-m.asia","pubmatic.com","invstatic101.creativecdn.com","cinarra.com","analytics.yahoo.com","blismedia.com","w55c.net","antiadblocksystems.com","d3cod80thn7qnd.cloudfront.net","ndrrbpgmjpsng.com","uwolvsazk.com","chaseherbalpasty.com","adsco.re","lojvicwu.com","qqwtwpdvhoq.com","pushaffiliate.net","lavangataled.com","betteradsystem.com","d2kk0o3fr7ed01.cloudfront.net","abtfliping.top","eloawiphi.net","dantaradiohd.net","liadm.com","wylin.ai","visageagar.com","unslylysmug.cfd","murathernias.com","hattyrhombi.com","a-zzz.com","pumeloricing.com","sondeliseafolk.com","jatosbathkol.com","links.services.disqus.com","tempest.services.disqus.com","muthfourre.com","koaptouw.com","exinesriles.com","lowseelor.com","sporulekakis.com","upstandingstoriessuited.com","avalanchetremorunfilled.com","crowbarrinds.com","salutetutortwiddling.com","mxhnkn.pro","blurbreimbursetrombone.com","awwagqorqpty.com","clobberprocurertightwad.com","coosync.com","bncloudfl.com","bullionglidingscuttle.com","btoomlalk.com","x8.games","mplmncb.com","shakingtacklingunpeeled.com","bankingbloatedcaptive.com","xibet.com","divisiondrearilyunfiled.com","isolatedovercomepasted.com","9bet.net","chilihandshakewing.com","cupbearergrowllurch.com","campfirecroutondecorator.com","profitsfly.com","kulroakonsu.net","trypsinneutral.com","massifbramble.com","babistmucuses.com","urgingslaurae.com","greatmidship.com","oxbet.com","excavatenearbywand.com","ropsumemu.com","whoanebsos.net","lanky-bar.com","glizauvo.net","teksishe.net","dirtsower.cyou","spokanchap.com","viewdeos.com","fafeyrfqyxwivk.com","rdipmrbwgvk.com","d11enq2rymy0yl.cloudfront.net","aukveygibngnjg.com","xadsmart.com","bqpvduxtfhwsd.com","qjeirnapocqcy.com","zxomvphodwdpcs.com","murozwuddtow.com","msincsayqmji.com","recordedthereby.com","proftrafficcounter.com","sympathizecrewfrugality.com","capaciousdrewreligion.com","jobetartane.com","amon1.net","bulkconflictpeculiarities.com","zodiacdinner.com","peanutrefusesplit.com","ectypedechlog.com","dapcerevis.shop","captorbaryton.com","wilfreddrear.shop","cowpencinclis.com","arvigorothan.com","ondingfoute.com","ccoyaballots.com","betowelumph.com","protrafficinspector.com","cassabahotcake.top","craxzapas.com","ovologysnoops.com","mysidaebetire.com","oaphoace.net","scotiawinze.com","tiercedthae.com","h12-media.com","craniolgozzan.com","cuinageaquilid.com","beyliksyowler.com","tylulewe.com","ohgriforkvan.com","dinwhozi.com","stoopeddiscourse.com","laxativestuckunclog.com","earringsatisfiedsplice.com","childlessporcupinevaluables.com","footbathmockerpurse.com","janitorprecisiontrio.com","dodgyfactoidprecut.com","syriacgrumose.com","alvanhaybox.com","berthfrankly.com","appointeeivyspongy.com","flaxdescale.com","flatjeep.com","dtscout.com","scakuvap.com","occasionedcaneturner.com","highperformanceformat.com","aiharsoreersu.net","madurird.com","causoupushoutho.xyz","couphaithuph.net","dawac.com","bobapsoabauns.com","vooculok.com","jmeoyypc.xyz","unasonoric.com","corvoidhas.com","tripsisvellums.com","zoeacaring.com","radioonlinehd.s3.amazonaws.com","sparersetnean.shop","gekeebsirs.com","myesutdnuyddu.com","ohacnvhxgst.com","deliciouslip.com","dental-human.com","pricklymine.com","pointlessplan.pro","coafeerapheepho.net","calculatingvoice.com","pointedpleasure.com","ellipticaltrack.com","visariomedia.com","d13k7prax1yi04.cloudfront.net","xcafcyxddc.com","pbljxppwurd.com","forsungxylols.com","streamtheworld.com","rubiconproject.com","adtelligent.com","zemanta.com","adswizz.com","chambulwacs.com","onclckmn.com","wry-boss.com","1xbetm.info","runative-syndicate.com","vealedincite.com","a11ybar.com","optvz.com","afcdn.net","gloutanacard.com","gollarpulsus.com","ungreeninwrit.com","centricgaffkya.com","errandsracket.com","dipppyruiners.top","parrbetire.com","outoctillerytor.com","spacemancreativedom.net","ptougeegnep.net","ptichoolsougn.net","driverhugoverblown.com","hotbcoharu.cc","trck.house","diagramjawlineunhappy.com","hotbjumelo.today","partners-show.com","vaikijie.net","bossedmarlier.help","medullagrooved.com","revbid.net","slavirappels.com","wkvvzeqlaqooz.top","d3mzokty951c5w.cloudfront.net","displayvertising.com","kalingacurvant.com","warmupposaune.com","d3mr7y154d2qg5.cloudfront.net","ipxgpcjii.com","unfretarara.com","intellipopup.com","fotgjbrvuzw.com","boodybasalt.com","unluckasserta.com","popcash.net","bvtpk.com","sacwumsf.com","alfredatitres.com","jads.co","waust.at","yellowishgather.com","e695de9aef.com","612fc22a02.com","e5ce73abf6.com","d980ffe9b6.com","ezodn.com","bluekai.com","go.ezodn.com","22hgc.com","ampproject.org","refreshmould.com","kettledroopingcontinuation.com","lhuojsddipcncs.com","wnkiamnb.com","defroststringbenignity.com","klpuqtvdxxqf.com","edhpczkm.com","heartyquit.com","normal-place.com","caroakitab.com","abdalminhag.com","gerentstaperly.com","bobsleddomesticglandular.com","d3g5ovfngjw9bw.cloudfront.net","cdn4ads.com","cwggydrmj.xyz","loajawun.com","cyetwkoxmijucj.xyz","airingsjerky.com","nucleindinkly.com","horoutavitamin.click","lmcomments.com","stiffenromano.com","xylylicpeteca.com","toxinspalsied.com","3eb3f81b36.com","metricswpsh.com","edcc0994fe.com","multstorage.com","ntvpforever.com","capndr.com","61d7a302a1.com","0491166852.com","7021678b65.6d1e5b5068.com","chnsrv.com","tapioni.com","limbycocking.cfd","mt8kj35uxjq8o4zlgy.cfd","detoxifylagoonsnugness.com","synochaauca.com","tl7x928g7l3ppnqnc7ngy8wue3qgkvnb.cfd","amselragman.com","doesnscapha.com","uby9w6k4vjyf8ebinxq8zmk7wyimi81fyl.cfd","pueblossedilia.com","79iqviv5n83lzgy64.cfd","utysolomonaut.com","ukankingwithea.com","dh8azcl753e1e.cloudfront.net","d1pk6uu6wqrpce.cloudfront.net","peuru.com","brahmsflidge.com","rigelcabda.com","niterforeact.com","hizliresim.com","poppeanwivers.com","theetheks.com","mikratoyotas.com","woewornsequel.com","ueuee.com","renamereptiliantrance.com","bb2r.com","richads.com","becorsolaom.com","twinrdengine.com","mappersavarish.com","corylussunroof.com","68s8.com","ptumesukrerd.net","oursoonethair.net","xkqaqnuhoxlqnmb.com","repayedsweet.com","scatylems.com","globinspapaya.shop","jatobacutikin.com","strombugi.com","21wiz.com","embolicpenlop.com","mgid.com","sashingdermoid.com","ml314.com","bushsurprising.com","explorerfutile.com","earmuffpostnasalrisotto.com","crittereasilyhangover.com","kpybmavaxoj.com","deductgreedyheadroom.com","xfidfuxidr.in","bundlemoviepumice.com","sacodnajroh.com","tzokruogxo.com","browsecoherentunrefined.com","cpylzuozp.com","cosedcost.com","mournersamoa.com","ossetbulimus.com","lawzyscapoid.com","ads-twitter.com","connect.facebook.com","cdn.adjust.com","conventionalresponse.com","knownfeel.com","modest-significance.com","stupid-police.com","untimely-proof.pro","worrisome-sea.com","necessary-jury.com","starkknife.com","simplistictheory.pro","gentlefieldpattern.com","unnaturalcamera.pro","strong-training.com","grown-committee.com","expensiveincident.com","lone-horror.com","bewitched-display.pro","optimal-neat.pro","longtermeffective.com","hurtful-message.com","trafficbass.com","anysize.pro","3nbf4.com","gizokraijaw.net","forfrogadiertor.com","rebopsmurly.com","shalakobiarchy.com","mildhide.pro","eavailandpro.com","cland.fyi","d4bx2if8xmi89.cloudfront.net","nappyonsetstiffness.com","hogtiesturret.com","llvpn.com","gingalbarky.com","dcbbwymp1bhlf.cloudfront.net","gukahdbam.com","d3jzhqnvnvdy34.cloudfront.net","yougetwhatyoupayfor.net","boxypluckunrelated.com","pumaqmqix.com","coolishrocked.com","chubbyexemplaryhardiness.com","clammyendearedkeg.com","dgaf2ncy4dtan.cloudfront.net","epidermispushupvariable.com","tacitmsl.shop","overloadenjoy.com","endlesshandbaglinked.com","hardenteiid.com","ymqhrliivzqq24if4r.cfd","weirdopt.com","preferencenail.com","professionaltrafficmonitor.com","torchfriendlypay.com","indelicatedepictunderage.com","skinnycrawlinglax.com","sourshaped.com","paupsoborofoow.net","hdbtop.com","adsboosters.xyz","rusinsawbill.com","sewdialogueconcealment.com","wainseustyle.com","monetiseup.tech","aidennagib.com","al5sm.com","succubmisship.com","crampleadspace.com","foldclankcelery.com","astronautlividlyreformer.com","trivial-final.com","pl28126626.effectivegatecpm.com","seedtag.com","lijit.com","tremorhub.com","fwmrm.net","pubmine.com","staticaly.com","emxdgt.com","smartclip.net","commonvivacious.com","hentaigold.net","hethsminter.com","mediumdirt.com","zebradiomate.com","nickeldefiancepriest.com","push-sdk.com","judicialimpatientgenerator.com","ornery-possible.com","sombernewspaper.com","spendsdetachment.com","portalfluently.co","workdeadlinededicate.com","biographygridetelegram.com","genipspillion.com","folioleformism.com","effectivegatecpm.com","anotherantiadblockurl.theblank.net","nsd.ar","adingo.jp","clmbtech.com","mgcdn.xyz","imacdn.com","dwflepmky.com","hfdrqetkq.com","adz2pro.com","severe-capital.com","giriudog.com","damagedface.com","roughremove.com","sturdy-town.com","buttery-sick.com","hdwetwindle.com","recheckcaulite.com","clutteredclaim.com","contentabc.com","exoclick.com","glisteningtrouble.com","selfassured-celebration.com","vector26060.com","vntjfxxewlclre.com","media-analytic.com","kktc-vip139.com","frierinputs.cfd","coordinatedwave.pro","nextclass.pro","extrovertedlecture.com","faenasplaidie.com","allicesoggier.com","maturebelt.com","ferruleloimic.com","emanatelaxism.com","satellitefetidtelegraph.com","betiseburnut.com","knucklemonthsedifice.com","padsims.com","stoothchapon.com","elflockhormigo.com","3lift.com","nitropay.com","amazon-adsystem.com","sharethrough.com","postrelease.co","adsrvr.org","casalemedia.com","postrelease.com","fastclick.net","smaato.net","marphezis.com","smilewanted.com","the-ozone-project.com","cootlogix.com","lmqrawimfqccph.com","ecologystoter.com","grouchy-lay.com","pricklyassociation.com","hoggiesatieno.com","fascparbate.com","effectivecpmnetwork.com","profitablecpmrate.com"],"css":".ad-topMobile,.ad,.ads-container,.ads,.adsbygalaksion,.adsbygoogle,.code-block,.display-banner,.radio-ad,#radio_content,#content *[class*=\"bg-ssp-\"],#adplus-anchor,#fixedban,#noktaplayercontainer,#p_6314647,#psdn-slot,#stickyplayervideoclose,#teaser1,#teaser3,*[class^=\"ad-\"],*[class^=\"ad_\"],*[class$=\"-ad\"],*[class$=\"_ad\"],*[class*=\"-ad-\"],*[class*=\"_ad_\"],*[class^=\"ads-\"],*[class^=\"ads_\"],*[class$=\"-ads\"]:not(.hide-ads),*[class$=\"_ads\"],*[class*=\"-ads-\"],*[class*=\"_ads_\"],*[data-adunit],*[data-google-query-id],*[id*=\"_ad_\"],*[id*=\"-ad-\"],*[id^=\"ad_\"],*[id^=\"ad-\"],*[id$=\"_ad\"],*[id$=\"-ad\"],*[id*=\"_ads_\"],*[id*=\"-ads-\"],*[id^=\"ads_\"],*[id^=\"ads-\"],*[id$=\"_ads\"],*[id$=\"-ads\"],*[id^=\"pf-\"],*[id^=\"sfw-banner-\"],*[id^=\"publift-\"],iframe[src*=\"adata\"],iframe[src*=\"ad.\"],iframe[src*=\"ads.\"],iframe[src*=\"/ad\"],iframe[src*=\"/A=\"],iframe[src*=\"/click\"],iframe[src*=\"?click\"],iframe[src*=\"?banner\"],iframe[src*=\"=click\"],iframe[src*=\"clickurl=\"],iframe[src*=\".atwola.\"],iframe[src*=\"spinbox.\"],iframe[src*=\"transfer.go\"],iframe[src*=\"adfarm\"],iframe[src*=\"adfarmadSpace\"],iframe[src*=\"adserver\"],iframe[src*=\"adjuggler\"],iframe[src*=\".banner\"],iframe[src*=\"bluestreak\"],iframe[src*=\"doubleclick\"],iframe[src*=\"/rd.\"],iframe[src*=\"/0AD\"],iframe[src*=\".falkaq.\"],iframe[src*=\"connextra.\"],iframe[src*=\"tracksponsor.\"],iframe[data-aa],script[src*=\"doubleclick\"] + div,script[src*=\"romanticwait\"] + div,.empower-ad,*[data-empower-id],#empowerplayercontainer,*[id^=\"bg-ssp-\"],.google-auto-placed,*[data-ad-format],*[data-adtrack-id],div:has(> iframe[src*=\"radioonline\"]),.rev-src,#Arpian-ads,iframe[id^=\"bg_\"],.adv,#vi-smartbanner,*[data-ad-slot],html > iframe,div:has(> [prclck]),[prclck],a[href*=\"gotrackier\"],body > nav:not([id]):not([class]):not([style]) > a[style]:first-child:last-child,body > section:not([id]):not([class]):not([style]) > span:first-child:last-child > a[style],html > ins,.kln:has(> script),.adblock_title,.adblock_subtitle,div[id]:has(div[id] h4.adblock_title),div:has([data-izone]),script[src*=\"trotolhonor.com\"] + iframe,.custom-html-widget:has(script[src*=\"separatelysmackfibber\"]),#content a[href*=\"kit-food.com\"],*[pa-slot-container],*[id^=\"exo_slider\"],.exo-native-widget-outer-container,iframe[src*=\"a.magsrv.com\"],#theradios_content,script[src*=\"dummieseardrum\"] + iframe,.ts-im-container,.adxp-sticky,div[id*=\"ScriptRoot\"],#catfishAd,[id*=\"_pop-qqgo\"],div:has(> script[src*=\"tingisincused.com\"]),.ob-widget-items-container:has([data-adv-id]),div:has(> #close-ad),script[src*=\"ungreen\"] + iframe,body > div[id]:has(div div div div .adblock_title),.nxiyd,div[data-shb],.lm-adblock-notfic-container {position: fixed!important;display: none!important;opacity: 0!important;top: -99999px!important;left: -99999px!important;right: unset!important;bottom: unset!important;visibility: hidden!important;z-index: -1000!important;pointer-events: none!important;height: 0!important;width: 0!important;max-height: 0!important;min-height: 0!important;max-width: 0!important;min-width: 0!important;overflow: hidden!important;transform: translate(-99999px, -99999px) scale(0)!important;} .fixed div.relative:has(div > button svg.lucide-x):has(> canvas.absolute) {overflow: auto; max-height: 100vh;} body:has(div[id] h4.adblock_title) {overflow: unset !important;}","urls":["https://cdn.jsdelivr.net/npm/disable-devtool","https://asuracomic.net/api/ads","https://static.cloudflareinsights.com/beacon.min.js","https://manhuaplus.org/themes/liliana/css/ad.css","https://www.asianovel.net/wp-content/plugins/advanced-ads"]}
package/index.js CHANGED
@@ -1 +1 @@
1
- (function(_,J){typeof exports=="object"&&typeof module<"u"?J(exports):typeof define=="function"&&define.amd?define(["exports"],J):(_=typeof globalThis<"u"?globalThis:_||self,J(_._trackkun_={}))})(this,(function(_){"use strict";function J(a){let e=!1;return new Promise((t,r)=>{Promise.all(a.map(async n=>{const i=await n;!e&&i&&(e=!0,t(i))})).then(()=>{e||t(void 0)})})}const ot=/(vol(ume)?|season)(\s*|-|\.)(\d+)/i,lt=/^S([1-9])\s/i,ct=/(ch(ap(t(er)?|\.)?|\.)?|#|episode\.?|capitolo\.?|capitulo\.?|bölüm\.?)(\s*|-)(\d+([-~_,.]\d+)?)/i,ut=/\d+([-~_,.]\d+)?/,pt=/[-~_,]/;function ht(a){const e=a.match(ot);if(e)return{volStr:e[0],volValueStr:e[4]};const t=a.match(lt);return t?{volStr:t[0],volValueStr:t[1]}:{}}function z(a){if(!a)return;if(!isNaN(+a))return{chap:+a};const{volStr:e,volValueStr:t}=ht(a),r=e?a.replace(e,"").trim():a,n=r.match(ct)?.[6]??r.match(ut)?.[0];if(!n)return;const i=+n.replace(pt,".");if(isNaN(i))return;const s=e&&t&&!isNaN(+t)?+t:void 0;return{vol:s===void 0||s<=0?void 0:s,chap:i}}function gt(){return Math.random().toString(16).slice(2)}async function dt({addListener:a,removeListener:e,transform:t,filter:r,handler:n,onTimeout:i,timeout:s,once:c}){return new Promise(o=>{a(p);const l=()=>c===!0&&e(p),u=s?setTimeout(()=>{l(),o(void 0),i?.()},s):void 0;async function p(g,...h){g=t?t(g):g,g!==void 0&&(!r||r(g,...h))&&(l(),o(g),n?.(g,...h),u&&clearTimeout(u))}})}async function ft(a){return(await dt({addListener:e=>window.addEventListener("message",e),removeListener:e=>window.removeEventListener("message",e),...a}))?.data}async function mt(a){const{receiverWindow:e,timeout:t,targetOrigin:r,event:n,args:i}=a,s={reqId:gt(),event:n,args:i};return(e||window)?.postMessage(s,r??"*"),(await ft({filter:c=>c?.data?.resId===s.reqId,timeout:t??3e4,once:!0}))?.result}function U(a,e){return mt({event:"tk:fetchResult",args:{url:a},timeout:e?.timeoutMs??15e3})}async function A(a,e,t){const r=await t(()=>{a=0});if(r!==void 0)return r;if(!(a<=0))return await new Promise(n=>{setTimeout(async()=>{const i=await A(a-1,e,t);n(i)},e)})}async function K(a,e,t=0){const r=e.root??document.documentElement,n=e.timeoutMs??1e4;return A(e.lazy===!0?n/50:0,50,()=>{const i=e.all===!0?Array.from(r.querySelectorAll(a)):r.querySelector(a)??void 0;return(e.all?!i?.length:!i)?void 0:i})}function V(a,e){if(a instanceof HTMLOptionElement){const t=a.parentElement instanceof HTMLOptGroupElement?a.parentElement.parentElement:a.parentElement;if(!t||!(t instanceof HTMLSelectElement))return;const r=a.getAttribute("value")||"";if(t.value===r)return;t.value=r,t.dispatchEvent(new Event("change"));return}a instanceof HTMLAnchorElement&&e?.preventDefault!==!1&&a.addEventListener("click",t=>t.preventDefault(),{once:!0}),a.click(),a.dispatchEvent(new PointerEvent("pointerdown",{bubbles:!0,cancelable:!0,pointerType:"mouse",button:0})),a.dispatchEvent(new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window,button:0}))}function ie(a,e){if(typeof a.checkVisibility=="function")return a.checkVisibility({opacityProperty:!0,visibilityProperty:!1,contentVisibilityAuto:!1});const t=window.getComputedStyle(a);if(t.display==="none"||t.opacity&&parseFloat(t.opacity)<.1)return!1;if(!e)return!0;const r=a.parentElement;return!r||r===e?!0:ie(r,e)}function wt(a,e){return a>=280&&e>=50||a>=160&&e>=280}var F;(function(a){a[a.manga=1]="manga",a[a.novel=2]="novel",a[a.anime=3]="anime"})(F||(F={}));async function vt(a,e){const t=["NAV","ASIDE","FOOTER","HEADER","BR","HR","BUTTON","A"],r="img:not(nav img, header img, footer img, aside img), canvas",n=e?.timeoutMs,i=e?.include,s=e?.paraSel,c=!i||i.includes(F.manga),o=!i||i.includes(F.novel);let l=0;return await A(n/50,50,()=>{const h=u();if(h){if(c&&g(h,e?.validateImgSize))return F.manga;if(o&&l++%3===0&&p(h))return F.novel}});function u(){for(const h of a.split(",")){const m=document.querySelector(h);if(m)return m}}function p(h){const m=[`p:not(${t.map(b=>`${b} p`).join(",")})`,s].filter(Boolean).join(",");if(!h.querySelector(m)&&(!s||!h.matches(s)))return!1;let w=0,v=0,y=0;return f(h);function f(b){const D=b.tagName;if(t.includes(D)||!ie(b)||window.getComputedStyle(b).position==="fixed")return!1;if(D==="P"||s&&b.matches(s))return w+=b.textContent.split(" ").filter(Boolean).length,v++,y=0,!c&&w>50||v>10&&w>120||v>5&&w>250||w>400;v>0&&++y>4&&(v=0,w=0);const C=Array.from(b.children);for(let I=0;I<C.length;I++)if(f(C[I]))return!0;return!1}}function g(h,m){const w=Array.from(h.querySelectorAll(r));if(m===!1)return w.length>0;const v=Math.min(window.innerWidth*.9,500);let y=0;for(let f=0;f<w.length;f++){const b=w[f];if(!ie(b,h))continue;const{width:D,height:C}=b.getBoundingClientRect();if(wt(D,C)&&(D>=v||(y+=C,y>=v)))return!0}return!1}}function X(a){if(a)try{return JSON.parse(a)}catch{return}}const ve={text:Re,attr:St,"attr-contain":Ct,value:xt,row:Mt,"bg-image":Dt,json:Tt},yt={pattern:Pt,remove:It,atob:Bt,json:$e};function d(a,e){if(a)return ye(a,e,Rt)}function Y(a,e){if(a)return ye(a,e,$t)}function ye(a,e,t){if(!a)return;const r=a.split("||").map(n=>n.trim()).filter(Boolean);for(const n of r){const i=bt(n);if(!i)continue;const s=t(e??document.documentElement,i);if(s)return s}}function bt(a){const[e,t,...r]=a.split("|");if(!t)return;const n=t?.startsWith("[")&&t.endsWith("]")?t.substring(1,t.length-1).split(","):[t];return{selector:e||void 0,extractors:n.map(oe),transformers:r.map(oe)}}function oe(a){const e=a.indexOf(":"),t=e!==-1;return{fn:t?a.substring(0,e):a,param:t?a.substring(e+1):""}}function Rt(a,e){if(!e.selector)return be(a,e);const t=jt(e.selector);for(const r of t){const n=Array.from(a.querySelectorAll(r));for(const i of n){const s=be(i,e);if(s)return s}}}function $t(a,e){const t=e.selector?Array.from(a.querySelectorAll(e.selector)):[a],r=[];for(const n of t)for(const i of e.extractors){const s=ve[i.fn],c=s(n,i.param),o=c?le(c,e.transformers):void 0;if(o){r.push(o);break}}if(r.length)return r}function be(a,e){for(const t of e.extractors){const r=ve[t.fn],n=r(a,t.param);if(n)return le(n,e.transformers)}}function le(a,e){let t=a;for(const r of e){if(!t)return;const n=yt[r.fn];n&&(t=n(t,r.param)?.trim())}return t}function Re(a){return Array.from(a.childNodes).filter(e=>e.nodeType===3).map(e=>N(e.textContent)).filter(Boolean).join(" ").trim()||N(a.textContent)}function St(a,e){return N(a.getAttribute(e))}function Ct(a,e){let t=a.getAttribute(e);if(!t){const r=a.getAttributeNames().find(n=>n.includes(e));r&&(t=a.getAttribute(r))}return N(t)}function xt(a){return a.value}function Mt(a,e){if(!e)return;const t=N(a.textContent)?.toLowerCase(),r=e.toLowerCase();if(!(t!==r&&t!==`${r}:`))return N(a.nextElementSibling?.textContent??a.nextSibling?.textContent)}function Dt(a){const e=getComputedStyle(a).backgroundImage;if(!(!e||!e.startsWith("url(")))return e.slice(5,-2)||void 0}function Tt(a,e){const t=Re(a);if(t)return $e(t,e)}function $e(a,e){const t=Q(X(a),e),r=typeof t;if(r==="string")return N(t)||a;if(r==="number"||r==="boolean")return t+""}function Q(a,e){if(!a||!e)return;const t=e.indexOf("."),r=t!==-1,n=r?e.substring(0,t):e,i=r?e.substring(t+1):void 0;try{const s=a[n];return i?Q(s,i):s}catch{return}}function N(a){if(a)return a?.replace(/(\n|\t)/g," ").trim()||void 0}function Pt(a,e){if(e)try{return a.replace(new RegExp(e,"i"),"$1")}catch{}return a}function It(a,e){if(e)try{return a.replaceAll(new RegExp(e,"gi"),"")}catch{}return a}function Bt(a){try{return window.atob(a)}catch{return a}}function jt(a){const e=[];let t="",r=!1;for(let i=0;i<a.length;i++){const s=a[i];if(s==="["?r=!0:s==="]"&&(r=!1),s===","&&!r){const c=t.trim();c.length>0&&e.push(c),t=""}else t+=s}const n=t.trim();return n.length>0&&e.push(n),e}function ce(a,e){const t=document;if(a.startsWith("//")){const r=document.evaluate(a,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;return r instanceof HTMLElement?r:void 0}return t.querySelector(a)??void 0}var At=(a=>(a[a.reading=1]="reading",a[a.paused=2]="paused",a[a.plan=3]="plan",a[a.completed=4]="completed",a[a.dropped=5]="dropped",a[a.deleted=6]="deleted",a))(At||{}),Et=(a=>(a[a.ok=1]="ok",a[a.hidden=2]="hidden",a[a.deleted=3]="deleted",a))(Et||{}),Lt=(a=>(a[a.aggregator=0]="aggregator",a[a.scanlator=1]="scanlator",a))(Lt||{}),Se=(a=>(a.id="id",a.name="name",a.slug="slug",a))(Se||{}),ae=(a=>(a.blank="about:blank",a.title="meta.title",a.reader="meta.reader",a))(ae||{}),H=(a=>(a[a.manga=1]="manga",a[a.novel=2]="novel",a[a.anime=3]="anime",a))(H||{}),Ut=(a=>(a[a.pending=0]="pending",a[a.completed=1]="completed",a[a.offline=2]="offline",a[a.incompat=3]="incompat",a))(Ut||{});function q(a=0){return new Promise(e=>setTimeout(e,a))}function ue(a){if(a)return parseInt(a.replace(/\D*/,""))||void 0}const Ot=/\d+[a-z]+\d+/i,zt=/[a-z]+\d+[a-z]+/i,qt=/^\d{5,}$/;function Ce(a){if(!a)return;const e=[];a.split(/[-_]/).forEach(r=>{const n=r.split(".").filter(i=>i&&!zt.test(i)&&!Ot.test(i)&&!qt.test(i)).join(".");n&&e.push(n)});const t=e.join(" ");return z(t)}async function pe(a,e){return new Promise(t=>{const r=new Image;r.crossOrigin="anonymous",r.onerror=()=>t(void 0),r.onload=async()=>{if(r.naturalWidth<=1){t(void 0);return}const n=Math.max(1,r.naturalWidth/(e?.maxWidth??240)),i=r.naturalWidth/n,s=r.naturalHeight/n,c=document.createElement("canvas"),o=c.getContext("2d");c.width=i,c.height=s;const l=/iPad|iPhone|iPod/.test(navigator.userAgent);try{o.drawImage(r,0,0,i,s);const u=((e?.fixCanvas!==!1?Nt():void 0)??HTMLCanvasElement.prototype.toDataURL).call(c,l?"image/jpeg":"image/webp",l?.99:.8);t(u.length<1e3?void 0:u.split(",").slice(-1)[0])}catch{t(void 0)}},r.src=a})}function Nt(){const a=document.createElement("template");a.innerHTML="<iframe></iframe>";const e=a.content.querySelector("iframe");if(e){e?.style.setProperty("style","none"),document.body.appendChild(e);const t=e?.contentWindow?.HTMLCanvasElement?.prototype?.toDataURL;if(document.body.removeChild(e),t)return t}return HTMLCanvasElement.prototype.toDataURL}async function Wt(a,e=240){const t=await kt(a);if(t)return await new Promise(async r=>{const n=pe(t,{maxWidth:e,fixCanvas:!1}),i=setTimeout(()=>r(void 0),100),s=await n;clearTimeout(i),r(s)})}async function kt(a){if(a.startsWith("blob:"))return a;try{const e=await fetch(a);if(e.status>=400)return;const t=await e.blob();return t.size<1e3?void 0:URL.createObjectURL(t)}catch{return}}function P(a,e){if(e==="")return a;if(!e)return;const t=e.split("||").map(r=>r.trim()).filter(Boolean);for(const r of t){const[n,...i]=r.split("|"),s=Q(a,n);if(typeof s=="number"||s){if(typeof s!="string")return s;const c=s.replace(/(\n|\t)/g," ").trim();if(c){const o=le(c,i.map(oe));if(o)return o}}}}function re(a){if(a?.startsWith("window")){const e=a.indexOf(".");return e===-1?void 0:P(window,a.substring(e+1))}return X(a?d(a):document.querySelector("pre")?.textContent)}function E(a,e){if(typeof a=="number")return e?e(a):a}function T(a,e){if(typeof a=="string")return e?e(a):a}function Z(a,e){const t=a.map(l=>({...l,vol:l.vol===0?void 0:l.vol}));t.sort((l,u)=>l.vol===void 0||u.vol===void 0?u.chap-l.chap:u.vol-l.vol||u.chap-l.chap);const r={},n={};for(let l=t.length-1;l>=0;l--){const u=t[l],p=u.group??"";r[p]=(r[p]??0)+1;const g=u.lang??"";u.vol!==void 0?n[g]=u.vol:n[g]!==void 0&&(u.inferVol=n[g])}const i=[],s={},c=e?.preferGroup,o=l=>l.lang??"";for(const l of t){const u=o(l),p=s[u],g=i[p];if(!(g&&g.chap===l.chap&&(g.vol===l.vol||g.vol===void 0||l.vol===void 0))){s[u]=i.length,i.push(l);continue}if(!c){g.vol===void 0&&l.vol!=null&&(i[p]=l);continue}g.group!==c&&(l.group==c||g.group&&!l.group||r[l.group??""]>r[g.group??""])&&(i[p]=l)}return i}const _t=/^(a|an|one|last|\d+)\s*([a-z]+)/,Jt=/^(\d+)\s*([a-z]+)/,Vt=/^\d+$/,Ft=[{seconds:1,short:"s",locales:{en:"sec",vi:"gi\xE2y",tr:"ikinci",es:"segundo",ja:"\u79D2",ko:"\uCD08",zh:"\u79D2",id:"detik",pt:"segundo"}},{seconds:60,short:"m",locales:{en:"min",vi:"ph\xFAt",tr:"dakika",es:"minuto",ja:"\u5206",ko:"\uBD84",zh:"\u5206",id:"menit",pt:"minuto"}},{seconds:3600,short:"h",locales:{en:"hour",vi:"gi\u1EDD",tr:"saat",fr:"heure",it:"ora",es:"hora",ja:"\u6642\u9593",ko:"\uC2DC\uAC04",zh:"\u5C0F\u65F6",id:"jam",pt:"hora"}},{seconds:86400,short:"d",locales:{en:"day",vi:"ng\xE0y",tr:"g\xFCn",fr:"jour",it:"giorno",es:"d\xEDa",ja:"\u65E5",ko:"\uC77C",zh:"\u5929",id:"hari",pt:"dia"}},{seconds:604800,short:"w",locales:{en:"week",vi:"tu\u1EA7n",tr:"hafta",fr:"semaine",it:"settimana",es:"semana",ja:"\u9031\u9593",ko:"\uC8FC",zh:"\u5468",id:"minggu",pt:"semana"}},{seconds:2592e3,short:"mo",locales:{en:"month",vi:"th\xE1ng",tr:"ay",fr:"mois",it:"mese",es:"mes",ja:"\u30F6\u6708",ko:"\uAC1C\uC6D4",zh:"\u6708",id:"bulan",pt:"m\xEAs"}},{seconds:31536e3,short:"y",locales:{en:"year",vi:"n\u0103m",tr:"yil",fr:"an",it:"anno",es:"a\xF1o",ja:"\u5E74",ko:"\uB144",zh:"\u5E74",id:"tahun",pt:"ano"}}],Ht=["a","an","one","last"];function xe(a,e="en"){if(!a)return;const t=a.toLowerCase().trim().replace(/ago$/,"").trim(),r=Date.now();if(t.includes("now"))return r;if(t.includes("yesterday"))return r-864e5;if(Vt.test(t))return Number(t);const n=new Date(t);if(!isNaN(n.getTime())){const s=n.getTime();return n.getHours()===0&&n.getMinutes()===0&&n.getSeconds()===0?Math.min(r,s+432e5):s}const i=e==="en"?t.match(_t):t.match(Jt);if(i){const[,s,c]=i,o=e==="en"&&Ht.includes(s)?1:Number(s);if(isNaN(o))return;const l=Ft.find(u=>c===u.short||u.locales[e]&&c.startsWith(u.locales[e])||c.startsWith(u.locales.en));if(l)return r-o*l.seconds*1e3}}function Gt(a,e=location.origin){if(!a)return;const t=new URL(a.startsWith("//")?`${location.protocol}${a}`:a,location.origin+location.pathname).toString();return t.startsWith(e)?t.replace(e,""):t}function W(a,{slug:e,id:t,lang:r}){if(!a)return"/";let n=a;return e&&(n=n.replace("{titleSlug}",e)),t&&(n=n.replace("{titleId}",t)),r&&(n=n.replace("{lang}",r)),n.endsWith("/")||(n+="/"),n.startsWith("/")||(n="/"+n),n}function he(a){if(!a)return;let e=a;e.startsWith("//")&&(e=`https:${e}`);try{return new URL(e)}catch{return}}function O(a){if(!(!a||typeof a!="string"))return a.includes("//")?he(a)?.pathname:a}function Kt(a,e){if(!a)return!1;const t=a.split(".").slice(0,3),r=e.split(".");for(let n=0;n<t.length;n++){const i=+t[n],s=+r[n];if(i!==s)return i>s}return!1}function Xt(a,e){const t=[...e],r=[];let n=!1,i=0;const s=Math.min(a.length,100);for(let o=0;o<s;o++){if(i>=10/2){const h=10-r.length;if(h>0){const m=o+h<=a.length?a.slice(o,o+h):t.slice(0,h);r.push(...m)}break}const l=a[o],u=l.id!==void 0,p=t.findIndex(h=>u&&h.id===l.id||h.slug===l.slug||h.name==l.name),g=p===-1?void 0:t.splice(p,1)[0];!g||g.chapters[0]?.chap!==l.chapters[0]?.chap?(n=!0,r.push({...l,changed:!0})):(i++,r.push(l))}if(!n)return{hasMore:!1,rawReleases:[]};if(r.length<=10)return{hasMore:!!a[a.length-1]?.changed,rawReleases:r};const c=[];for(let o=0;o<r.length;o++){const l=r[o];(l.changed||o<10)&&c.push(l)}return{hasMore:e.length<2||e.length-t.length<2,rawReleases:c}}function Yt(a,e){const t={};return a.forEach(r=>{const n=r.chapters.reduce((i,s)=>{const c=s.lang||e||"";return i[c]||(i[c]=[]),i[c].push(s),i},{});Object.entries(n).forEach(([i,s])=>{const c=`${r.slug}:${i}`;t[c]?(t[c].chapters.push(...s),Z(t[c].chapters)):t[c]={...r,lang:i===""?void 0:i,chapters:s}})}),Object.values(t)}function Me(a,e){const t=a[0]===e?a.substring(1):a;return t[t.length-1]===e?t.substring(0,t.length-1):t}var B=(a=>(a.title="title",a.reader="reader",a.releases="releases",a.chapters="chapters",a.search="search",a))(B||{}),Qt=Object.defineProperty,Zt=(a,e,t)=>e in a?Qt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,L=(a,e,t)=>Zt(a,typeof e!="symbol"?e+"":e,t);class ne{constructor(e){L(this,"headless"),L(this,"siteId"),L(this,"spec"),L(this,"siteMeta"),L(this,"tags"),L(this,"context"),L(this,"appVersion"),L(this,"isGeneric",!1),L(this,"methodsMap",{[B.title]:()=>this.getRawTitleData(),[B.reader]:()=>this.getRawReaderData(),[B.releases]:()=>this.getRawReleasesData(),[B.search]:()=>this.getRawSearchData(),[B.chapters]:()=>this.getRawChaptersData()}),L(this,"normalizedTagsMap"),this.siteId=e.siteId,this.spec=e.spec,this.siteMeta=e.siteMeta,this.tags=e.tags,this.context=e.context??{},this.headless=e.headless===!0,this.appVersion=e.appVersion}async getRawPageByType(e,t=!1,r=!1){this.isGeneric=r;const n=await this.methodsMap[e](),i=!n&&(e===B.title||e===B.reader)&&await ta(this.spec);if(!((r||!t)&&!n&&!i))return{type:e,is404:i,specId:this.spec.id,siteName:this.getSiteName(e,n),favUrl:ra(),htmlLang:na(),url:location.href,data:this.siteMeta.oneshot&&n?this.transformOneshot(e,n):n,spec:this.spec,context:this.context}}transformOneshot(e,t){if(e==="title"){const r=t.firstUrl;if(!r)return t;const{slug:n}=this.parseReaderUrl(this.siteMeta.readerBase,new URL(r).pathname,r);return{...t,hasMoreChapters:void 0,chapters:[{chap:0,slug:n}]}}if(e==="reader"){const r=t;return{...r,chap:0,title:{...r.title,hasMoreChapters:void 0,chapters:[{chap:0,slug:r.slug}]}}}return t}parseReaderUrl(e,t,r){const n=!this.siteId,i=t.includes("/");let s=e;if(i&&!s&&(s=this.siteMeta.readerBase),s.startsWith("/")||(s="/"+s),s.endsWith("/")||(s=s+"/"),!i)return n?{basePath:"",slug:`${s}${t}`}:{basePath:s,slug:t};const c=s.includes("{");let o=t;if(o[0]!=="/"&&(o.includes("/")||n&&!c))try{o=new URL(t,location.href).pathname}catch{}if(o.endsWith("/")&&(o=o.slice(0,-1)),c){const l=s.split("/").filter(Boolean),u=o.split("/").filter(Boolean);if(l.length<u.length){const p=u[l.indexOf("{lang}")]?.toLowerCase(),g=u[l.indexOf("{titleId}")],h=u[l.indexOf("{titleSlug}")];if(n)return{basePath:"",slug:o,lang:p,titleId:g,titleSlug:h};if(s=s.replace("{lang}",p).replace("{titleId}",g).replace("{titleSlug}",h),o.startsWith(s))return{basePath:s,slug:o.replace(s,""),lang:p,titleId:g,titleSlug:h}}}else if(!n&&o.startsWith(s))return{basePath:s,slug:o.replace(s,"")};return{basePath:"",slug:o}}parseTitleUrl(e){if(typeof e!="string")return{};const t=O(e);if(t===void 0)return{};if(this.siteMeta.single)return{slug:Me(t,"/")};const r=t?.split("/").filter(Boolean);if(!r?.length)return{};const n=this.siteMeta.titleBase.split("/").filter(Boolean),i=n.indexOf("{slug}");return(i===-1?r.length-n.length>=1:r.length===n.length)?{id:r[n.indexOf("{id}")],slug:this.siteId?i===-1?r.slice(n.length).join("/"):r[i]:t}:{slug:t}}finalizeRawReleasesData(e){const t=this.spec.releases?.title?.lang?this.siteMeta.defaultLang:void 0,r=Yt(e.rawReleases,t);if(r.length)return this.context.oldRawReleases?Xt(r,this.context.oldRawReleases):{rawReleases:r,hasMore:!0}}getTagIdsFromNames(e){if(!e?.length)return;const t=this.normalizedTagsMap??(this.normalizedTagsMap=ea(this.tags)),r=e.map(n=>t[ge(n)]).filter(Boolean);return r.length===0?void 0:Array.from(new Set(r)).sort((n,i)=>n-i)}getSiteName(e,t){if(t&&this.siteMeta.single){if(e===B.title)return t.name;if(e===B.reader)return t.title.name}const r=this.spec.name,n=(r&&d(r))??d('meta[property="og:site_name"]|attr:content');return n&&n.length>2?n:void 0}isAppVersionNewerThan(e){return this.appVersion==="ext"||Kt(this.appVersion,e)}}L(ne,"specId"),L(ne,"siteId");function ea(a){const e={};return a.forEach(({id:t,name:r,altNames:n})=>{e[ge(r)]=t,n&&n.forEach(i=>{e[ge(i)]=t})}),e}function ge(a){const e=a.toLowerCase().replaceAll(/[^a-z0-9\s]/gi,"").trim().replaceAll(/\s+/g," ");return e[e.length-1]==="s"?e.substring(0,e.length-1):e}async function ta(a){return aa()===404||a[404]&&await K(a[404],{lazy:!0,timeoutMs:5e3})?!0:document.title.toLowerCase().includes("not found")}function aa(){try{return window.performance.getEntries().find(a=>a.entryType==="navigation")?.responseStatus}catch{return}}function ra(){return d('link[rel="icon"][sizes="32x32"],link[rel="icon"][sizes="192x192"],link[rel="apple-touch-icon"]|attr:href || link[rel="icon"]|attr:href')}function na(){return d("html|attr:lang")||"en"}class M extends ne{async getRawReleasesData(){const e=await this.getRawReleases();if(e?.length)return this.finalizeRawReleasesData({rawReleases:e})}async getRawReleases(){const e=this.spec?.releases?.title;if(!e)return;if(e.json){const c=(await this.queryJsonRawReleases(T(e.json),e))?.filter(o=>o.chapters.length);return c?.length?c:void 0}const t=e.chapter,r=await K(e.sel,{lazy:!0,all:!0});if(!r?.length)return;const n=Date.now(),i=r.slice(0,100).map(c=>{const o=d(e.url??(c.tagName==="A"?"|attr:href":"a|attr:href"),c),l=O(o),u=d(e.name,c)??d("img|attr:alt",c),p=d(e.at,c);if(!l||!u)return;const g=xe(p,this.siteMeta.defaultLang);return{titleEl:c,id:d(e.id,c),path:l,name:u,lang:d(e.lang,c)?.toLowerCase(),at:g?Math.min(g,n):void 0}}).filter(Boolean);if(!i.length)return;const s=[];return await Promise.all(i.map(async c=>{const{path:o,titleEl:l,lang:u,at:p,...g}=c,{id:h,slug:m}=this.parseTitleUrl(o);if(!m)return;const w=g.id||h,v=this.queryChapters({chapterSpec:t,root:l,titleInfo:{id:w,slug:m,name:c?.name,lang:u}});v&&s.push({slug:m,chapters:u||p?v.map(y=>({...y,elIndex:void 0,lang:y.lang??u,ts:y.ts??p})):v,...g,id:w})})),s}getRawTitleData(){return this.getTitleData(this.spec.title)}async getTitleData(e){if(!e||!await this.isTitlePage(e)||this.spec[404]&&document.querySelector(this.spec[404]))return;const{id:t,slug:r}=this.parseTitleUrl(location.pathname);if(this.siteMeta.single?r===void 0:!r)return;const n=t||d(e.id),i=typeof e.chapter=="string"?{sel:e.chapter}:e.chapter,s=(await this.getChaptersResult(e.chapter,{lazy:!!this.context.includeHiddenChapters||(i?.lazy??!0),titleInfo:{id:n,slug:r,name:d(e.name??"h1|text")},includeHiddenChapters:this.context.includeHiddenChapters}))?.chapters,c=d(e.name??"h1|text");if(!c)return;const o=await this.getValidImgSrc(e.img,c),l=o&&this.context.includeImgBytes?await Wt(o):void 0,u=this.getFirstChapterUrl(),p=e.firstBtn,g=Y(e.tags)?.map(w=>w.split(",")).flat().map(w=>w.trim()).filter(Boolean),h=d(e.type),m=Y(e.langs)?.map(w=>w.toLowerCase());return{id:n||d(e.id),url:location.origin+location.pathname,slug:r,name:c,langs:m?.length?m:e.langs&&this.siteMeta.defaultLang?[this.siteMeta.defaultLang]:void 0,tags:this.getTagIdsFromNames([...g??[],...h?[h]:[]]),chapters:s??[],hasMoreChapters:!s?.length&&!e.chapter||(e.hasMore?!!document.querySelector(e.hasMore):void 0)||(!this.context.includeHiddenChapters&&i?.allBtn?!!ce(i.allBtn):void 0),img:o,imgBytes:l,firstUrl:u,firstBtn:!u&&p&&document.querySelector(p)?p:void 0,trackers:this.getTrackersMap(e.trackers)}}getTrackersMap(e){if(!e)return;const t=typeof e=="boolean"||e.mal===""?'a[href*="myanimelist.net"]|attr:href':e.mal,r=typeof e=="boolean"||e.anl===""?'a[href*="anilist.co"]|attr:href':e.anl,n=d(t),i=d(r);if(!n&&!i)return;const s={};return n&&(s.mal=n.split("?")[0].split("#")[0].split("manga/").slice(-1)[0].split("/")[0]),i&&(s.anl=i.split("?")[0].split("#")[0].split("manga/").slice(-1)[0].split("/")[0]),s}getFirstChapterUrl(){const e=d(this.spec.title?.first);if(e){if(e.startsWith("http"))return e;try{return new URL(e,location.href).href}catch{return}}}getValidImgSrc(e,t){return A(33,30,()=>{const r=d(e)||d(`img[alt="${t.replaceAll('"','\\"')}"]|[attr:data-src,attr-contain:src]`);return!r||r.startsWith("data:")?void 0:document.querySelector(`img[srcset*="${r}"]`)?r.split(" ")[0]:r})}resolveReaderTitleSpec(){const e=this.spec.reader?.title;return typeof e=="string"?{sel:e}:e}getRawReaderTitleData(e){const t=this.resolveReaderTitleSpec();if(!t)return;const r=t.sel?document.querySelector(t.sel)??void 0:void 0;if(t.sel&&!r)return;const n=d(t.name??"|text",r);if(!n)return;const i=Gt(d(t.img,r));if(e?.slug){let l=this.siteMeta.titleBase;if(e?.id&&(l=l.replace("{id}",e.id)),!l.includes("{"))return l=l.includes("{slug}")?l.replace("{slug}",e.slug):`${l}/${e.slug}`,this.siteMeta.trailing&&!l.endsWith("/")&&(l+="/"),{name:n,img:i,url:new URL(l,location.origin).href,slug:e.slug,id:e.id||d(t.id,r)}}const s=d(t.url??"|attr:href",r),{slug:c,id:o}=this.parseTitleUrl(s);if(!(!n||!s||(this.siteMeta.single?c===void 0:!c)))return{name:n,img:i,url:new URL(s,location.origin).href,slug:c,id:o||d(t.id,r)||e?.id}}async getRawReaderData(){const{spec:e,siteMeta:t}=this;if(!e?.reader||!await this.isReaderPage(e.reader,!!e.generic))return;const r=this.siteMeta.noReader?void 0:await this.getReaderType(e.reader);if(!r&&!this.isAppVersionNewerThan("6.7.0"))return;const n=this.parseReaderUrl(t.readerBase,location.pathname,location.href),{slug:i,basePath:s,lang:c}=n,o=this.getRawReaderTitleData({id:n.titleId,slug:n.titleSlug});if(!o)return;const l=d(e.reader.group),{id:u,slug:p}=o,g=e.reader?.chapter,h=!!this.context.disableLazyChapters,m=!!this.context.includeHiddenChapters,w=(await this.getChaptersResult(g,{titleInfo:{id:u,slug:p,name:o.name,lang:c},lazy:m||!h,includeHiddenChapters:m,timeoutMs:m?3e3:25e3,includeIndex:!0,basePath:s}))?.chapters,v=d(e.reader.label??"h1|text"),y=v?.toLowerCase().replace(o.name.toLowerCase(),"").trim(),f=this.siteMeta.oneshot?{chap:0}:y?z(y):void 0;if(!f)return;const b=e.reader.prev?this.findAdjacentChapter({spec:e.reader.prev,basePath:s,titleUrl:o.url,titleName:o.name}):void 0,D=e.reader.next?this.findAdjacentChapter({spec:e.reader.next,basePath:s,titleUrl:o.url,titleName:o.name}):void 0,C=u??(()=>{const I=this.spec.reader?.title;if(typeof I=="string"||!I?.id)return;const j=I.sel?document.querySelector(I.sel)??void 0:void 0;if(!(I.sel&&!j))return d(I.id,j)})();return this.finalizeRawReaderData({...f,contentType:r,name:r===H.novel&&v&&v.split(" ").filter(Boolean).length>(v.toLowerCase().includes("vol")?4:2)?v:void 0,lang:c??d(e.reader.lang)?.toLowerCase()??(e.reader.lang?this.siteMeta.defaultLang:void 0),slug:i,basePath:s,group:l??d(e.reader.group),imgs:Y(e.reader.imgs),title:{id:C,url:o.url,slug:p,name:o.name,langs:c?[c]:void 0,img:o.img,chapters:w??[],hasMoreChapters:!w?.length&&!m&&!!this.context.disableLazyChapters&&!!(typeof g=="string"||g?.sel)}},{prev:b,next:D})}async getRawChaptersData(){const e=this.siteMeta.chapters;if(e===ae.blank)return;const t=this.context.lang,r=e===ae.reader,n=!e||e===ae.title,i=r?(await this.getRawReaderData())?.title:n?await this.getRawTitleData():void 0;if((r||n)&&!i)return;const s=await(async()=>{if(i?.chapters.length&&!i.hasMoreChapters)return i.chapters;const o={id:i?.id??this.context.rawId,slug:i?.slug??this.context.titleSlug,name:i?.name,lang:t},l=this.spec.chapters;if(l?.chapter?.json&&!l?.pages)return await this.getRawChaptersFromJson({chapterSpec:l.chapter,pagingSpec:l.paging,titleInfo:o});const u=l?.chapter??(n?this.spec.title?.chapter:void 0),p=l?.pages;return u?await this.getRawChaptersFromDom({chapterSpec:typeof u=="string"?{sel:u}:u,pagesSpec:p,titleInfo:o}):i?.chapters})();if(!s)return;const c=t?s.filter(o=>!o.lang||o.lang===t):s;return{chapters:c,title:i?{...i,chapters:[]}:await this.getTitleData(this.spec.chapters?.title),hasMore:!1,asc:!1,total:c.length}}async getRawChaptersFromDom({chapterSpec:e,pagesSpec:t,titleInfo:r}){const n=W(this.siteMeta.readerBase,r),i=await this.getChaptersResult(e,{titleInfo:r,lazy:!0,includeHiddenChapters:!0,basePath:n});if(!i||!t)return i?.chapters;const s=i.chapters,c=this.context.after??this.context.startAfter;if(c&&s[s.length-1].chap-1<=c.chap)return s;let o=s[0]?.slug;const l=async R=>{if(e.json){const $=await this.queryJsonChapters({chapterSpec:e,titleInfo:r,page:R});return $&&$[0].slug!==o?$:void 0}await q(100);for(let $=0;$<140;$++){await q(50);const x=e.json?await this.queryJsonChapters({chapterSpec:e,titleInfo:r,page:R}):this.queryChapters({chapterSpec:e,titleInfo:r,basePath:n}),S=x?.[0].slug;if(!(!S||S===o))return o=S,x}},u=t?.num??"|text";let p=1;const g=()=>{if(t.sel){const R=p+1;return Array.from(document.querySelectorAll(t.sel)).find($=>ue(d(u,$))===R)}if(t.nextBtn){const R=document.querySelector(t.nextBtn);if(R&&!R.disabled)return R}};if(!c){for(;;){const R=g();if(!R)break;V(R),p++;const $=await l(p);if(!$)break;s.push(...$)}return this.organizeChapters(s)}const h=c.chap;if(h>=s[s.length-1].chap)return s;const m=()=>!g();if(m())return s;const w=()=>{const R=[],$=t.sel?Array.from(document.querySelectorAll(t.sel)):void 0;return $?.length&&$.length>1&&$.forEach(x=>{const S=ue(d(u,x));S&&R.push({el:x,page:S})}),R},v=()=>{const R=t.lastBtn?document.querySelector(t.lastBtn):void 0;return R?.disabled?void 0:R},y=async()=>(await A(100,70,()=>m()?!0:void 0),w().sort((R,$)=>$.page-R.page)[0].page);if(h<=1){const R=v();if(R){V(R);const $=await y();return await l($)}}let f={chapters:s,page:1},b;const D=()=>{const R=f.chapters[f.chapters.length-1].chap;if(!b){const S=Math.abs(R-h);return f.page+Math.floor(S/f.chapters.length)+1}const $=b.chapters[0].chap,x=(h-$)/(R-$);return Math.max(f.page+1,Math.min(b.page-1,b.page-Math.round((b.page-f.page)*x)))},C=()=>Math.max(f.page+1,Math.ceil(f.chapters[0].chap/f.chapters.length)),I=()=>{const R=w(),$=p+1;if(t.nextBtn&&!R.some(S=>S.page===$)){const S=document.querySelector(t.nextBtn);S&&!S.disabled&&R.push({page:p+1,el:S})}const x=p-1;if(x>0&&t.prevBtn&&!R.some(S=>S.page===x)){const S=document.querySelector(t.prevBtn);S&&!S.disabled&&R.push({page:p-1,el:S})}return R},j=R=>{const $=I(),x=$.find(k=>k.page===R);if(x)return x;const S=$.sort((k,we)=>Math.abs(R-k.page)-Math.abs(R-we.page))[0],te=S?Math.abs(S.page-R):void 0;if(!b){const k=v();if(k){if(!te)return{el:k,page:1e3,isLast:!0};const we=C();if(te>Math.abs(we-R))return{el:k,page:1e3,isLast:!0}}}if(S&&S.page>f.page&&(!b||b.page>S.page))return S},G=await(async()=>{for(;;){const R=D(),$=j(R);if(!$)return f.chapters;V($.el),p=$.isLast?await y()??1e3:$.page;const x=await l(p);if(!x)return;const S=x[x.length-1].chap;if(x[0].chap>h&&h>=S||S>h&&($.isLast||m()))return x;const te={chapters:x,page:p};if(x[0].chap<=h?b=te:f=te,b&&Math.abs(b.page-f.page)<=1)return f.chapters}})();return G&&G[0].chap!==s[0].chap?[s[0],...G]:G}async getRawChaptersFromJson({chapterSpec:e,pagingSpec:t,titleInfo:r}){const n=W(this.siteMeta.readerBase,r),i=await this.queryJsonChaptersResult({chapterSpec:e,pagingSpec:t,titleInfo:r});if(!i)return;const{chapters:s,total:c,fetchUrl:o,limit:l}=i;if(!s.length||l>=c||!t||!t.pageKey&&!t.skipKey)return s;const u=this.context.after??this.context.startAfter;if(u&&s[s.length-1].chap-1<=u.chap)return s;const p=t.limitValue??l,g=Math.ceil(c/p),h=p<l,m=h?1:0,w=o&&t.limitKey&&t.limitValue?o.replace(new RegExp(`${t.limitKey}=\\d+`),`${t.limitKey}=${t.limitValue}`):o??location.href,v=(await Promise.all(Array.from({length:g-m},async(y,f)=>{let b=w;t.pageKey?t.pageKey.split("||").map(C=>C.trim()).forEach(C=>{b=b.replace(new RegExp(`(\\?|&)${C}=\\d+`),I=>`${I[0]}${C}=${f+1+m}`)}):t.skipKey&&t.skipKey.split("||").map(C=>C.trim()).forEach(C=>{b=b.replace(new RegExp(`(\\?|&)${C}=\\d+`),I=>`${I[0]}${C}=${(f+m)*p}`)});const D=await this.fetch(b);return this.parseJsonChapters(D,{chapterSpec:e,basePath:n})??[]}))).flat();return v.length?this.organizeChapters(h?v:[...s,...v]):s}async getRawSearchData(){const e=this.spec.search,t=this.context.lang;if(!e)return;const r=typeof e.title=="string"?{sel:e.title}:e.title;if(r.json){const l=await this.queryJsonRawReleases(T(r.json),r,t);return l?.length?{rawReleases:l}:void 0}e.delay?await q(e.delay):e.loading&&await q(500);const{chapter:n}=r,i=[],s=e.lazy?e.empty||e.loading?550:100:1;let c=0;const o=await A(s,50,()=>{const l=Array.from(document.querySelectorAll(r.sel));if(l.length||e.empty&&document.querySelector(e.empty)||e.loading&&!document.querySelector(e.loading)&&++c>=3)return l});if(o)return await Promise.all(o.map(async l=>{const u=d(r.url??(l.tagName==="A"?"|attr:href":"a|attr:href"),l),p=O(u),g=d(r.name,l)??d("img|attr:alt",l),{slug:h,id:m}=this.parseTitleUrl(p);if(!p||!g||!h)return;const w=d(r.lang,l);w&&t&&w!==t||i.push({id:m||d(r.id,l),slug:h,name:g,img:d(r.img??"img|[attr:data-src,attr-contain:src]",l),lang:w,chapters:n?this.queryChapters({chapterSpec:typeof n=="string"?{sel:n}:n,root:l,titleInfo:{id:m,slug:h,name:g,lang:w}})??[]:[]})})),{rawReleases:i}}async queryJsonRawReleases(e,t,r){const n=e&&(e.startsWith("http")||e.startsWith("/"))?(await this.getFetchResult(e))?.value:re(e),i=typeof t=="string"?{sel:t}:t,s=P(n,i.sel);if(!s?.length||!Array.isArray(s))return;const c=[];return s.forEach(o=>{const l=T(P(o,i.lang))?.toLowerCase();if(l&&r&&l!==r)return;const u=P(o,i.url),{id:p,slug:g}=E(u,f=>({id:void 0,slug:f+""}))??this.parseTitleUrl(O(u)),h=T(P(o,i.name));if(!g||!h)return;const m=p||P(o,i.id),w=E(m,f=>f+"")??T(m),v=i.chapter&&typeof i.chapter!="string"?this.parseJsonChapters(o,{chapterSpec:i.chapter,basePath:W(this.siteMeta.readerBase,{id:w,slug:g,lang:l})}):void 0,y=T(P(o,i.img),f=>{try{return new URL(f,location.origin).href}catch{return}});c.push({id:w,slug:g,name:h,lang:l,img:y,chapters:v??[]})}),c}parseJsonChapters(e,t){return this.parseJsonChaptersResult(e,t)?.chapters}parseJsonChaptersResult(e,t){if(!e)return;const r=P(e,t.chapterSpec.sel);if(!r)return;const n=Array.isArray(r)?r:[r];if(!n?.length)return;const i=[];if(n.forEach(c=>{const o=this.parseJsonChapter(c,t);o&&i.push(o)}),!i.length)return;const s=E(P(e,t.pagingSpec?.lastPage));return{chapters:this.organizeChapters(i),limit:n.length,total:s&&s>1?s*n.length:E(P(e,t.pagingSpec?.total))??n.length}}parseJsonChapter(e,{chapterSpec:t,basePath:r}){const n=P(e,t.label),i=E(n,m=>({vol:void 0,chap:m}))??z(T(n));if(!i)return;const s=P(e,t.url),c=T(s)??E(s,m=>m+""),o=c?this.parseChapterUrl(r,c):void 0,l=i.vol??P(e,t.vol),u=E(l)??T(l,m=>+m),p=P(e,t.id),g=P(e,t.at),h=g?new Date(g).getTime():void 0;return{slug:o?.slug,vol:u||void 0,chap:i.chap,id:T(p)??E(p,m=>m+""),lang:T(P(e,t.lang))?.toLowerCase(),group:T(P(e,t.group)),ts:h||void 0}}async queryJsonChapters(e){return(await this.queryJsonChaptersResult(e))?.chapters}async queryJsonChaptersResult(e){const{chapterSpec:t,pagingSpec:r}=e;let n,i;if(typeof t.json=="string"&&(t.json.startsWith("http")||t.json.startsWith("/"))){const c=this.replaceDynamicParams(t.json,e.titleInfo),o=await this.getFetchResult(e.page?c.replace("{page}",e.page+""):c);if(!o)return;n=o.url,i=o.value}else i=re(T(t.json));const s=this.parseJsonChaptersResult(i,{chapterSpec:t,pagingSpec:r,basePath:W(this.siteMeta.readerBase,e.titleInfo)});return s?{...s,fetchUrl:n}:void 0}replaceDynamicParams(e,t){let r=e;return t.slug&&(r=r.replace("{titleSlug}",t.slug)),t.id&&(r=r.replace("{titleId}",t.id)),t.lang&&(r=r.replace("{lang}",t.lang)),r}queryChapters(e){return this.queryChaptersResult(e)?.chapters}queryChaptersResult({root:e,chapterSpec:t,titleInfo:r,basePath:n,includeIndex:i,group:s,minSize:c}){const o=this.replaceDynamicParams(t.sel,r),l=Array.from((e??document.documentElement)?.querySelectorAll(o));if(c&&l.length<=c)return;const u=(l??[]).map((y,f)=>{const b=y.tagName;return{id:d(t.id,y),url:d(t.url??(b==="A"?"|attr:href":b==="OPTION"?"|attr:value":"a|attr:href"),y),label:d(t.label??"|text",y)?.toLowerCase(),vol:d(t.vol,y),at:d(t.at,y),lang:d(t.lang,y),group:d(t.group,y),elIndex:f}}),p=r.name?.toLowerCase(),g=p&&!!u[0]?.label?.startsWith(p),h=u.map(({label:y,vol:f})=>{if(!y)return;const b=g?y?.replace(p,"").trim():y,D=z(b);if(!D||D.vol!==void 0||!f)return D;const C=z(f)?.vol;return C?{...D,vol:C}:D}),m=Date.now(),w=[],v=n??W(this.siteMeta.readerBase,r);if(h.forEach((y,f)=>{if(!y)return;const{id:b,url:D,at:C,lang:I,group:j,elIndex:G}=u[f],R=xe(C,this.siteMeta.defaultLang),$={...y,id:b,lang:I?.toLowerCase(),group:j,ts:R?Math.min(m,R):void 0};i&&($.elIndex=G);const x=D?this.parseChapterUrl(v,D):void 0;x&&($.slug=x.slug,x.lang&&($.lang=x.lang)),w.push($)}),!!w.length)return{chapters:this.organizeChapters(w,s??this.context.preferGroup),size:w.length}}async getChaptersResult(e,{root:t,titleInfo:r,includeHiddenChapters:n=!1,lazy:i=!0,timeoutMs:s,includeIndex:c,basePath:o,preferGroup:l}){const u=typeof e=="string"?{sel:e}:e,p=u?.sel;if(!u||p===void 0||u.trigger&&!n)return;const g=u?.json?p:this.replaceDynamicParams(p,r);let h;if(n){if(u.trigger){if(h=await K(u.trigger,{timeoutMs:5e3,lazy:!0}),!h)return}else if(u.allBtn){const v=u.allBtn;i?await A(100,100,()=>{const y=ce(v);return y?(h=y,!0):(t??document).querySelector(g)||void 0}):h=ce(v)||void 0}}if(u?.json){h&&V(h);const v=await this.queryJsonChaptersResult({chapterSpec:u,titleInfo:r});return this.dismissHiddenReaderChapters({chapterSpec:u,triggerEl:h,root:t}),v?{chapters:v.chapters,size:v.total}:void 0}const m=h&&u.allBtn?(t??document.documentElement)?.querySelectorAll(g).length:void 0;let w=0;return await A(i?s?s/10:33:1,300,async()=>{w!==1&&w%10<=1&&h&&(V(h),await q(50)),w+=1;const v=this.queryChaptersResult({chapterSpec:{sel:g,...u},basePath:o,titleInfo:r,includeIndex:c,group:l,minSize:m});if(v)return this.dismissHiddenReaderChapters({chapterSpec:u,triggerEl:h,root:t}),v})}dismissHiddenReaderChapters({chapterSpec:e,root:t,triggerEl:r}){const n=(e.dismiss?(t??document.body).querySelector(e.dismiss):void 0)??r;n&&V(n)}parseChapterUrl(e,t){if(t?.startsWith("#")||t?.startsWith("/#")||t?.includes("javascript"))return;if(t?.startsWith("http")&&!t.includes(`//${location.hostname}/`))return{slug:t};const r=O(t);if(r)return this.parseReaderUrl(e,r,t)}async isTitlePage(e){return!(!e||(e.sel||e.lazy)&&!await K(e.sel??e.name?.split("|")?.[0]??"h1",{lazy:!!e.lazy}))}async isReaderPage(e,t){const r=e?.sel;return t&&!r?!1:!r||!!await K(r,{lazy:!!e.lazy})}async getReaderType(e){const t=e.content;return t?vt(t,{paraSel:e?.para,validateImgSize:!this.headless,timeoutMs:15e3,include:this.isGeneric?[H.novel,H.manga]:this.siteMeta.contentTypes??[H.manga]}):e.imgs||e.imgDivs?H.manga:void 0}findAdjacentChapter({spec:e,basePath:t,titleUrl:r,titleName:n}){if(typeof e=="string"){const l=this.getAdjacentChapterSlug(d(e),{titleUrl:r,basePath:t}),u=Ce(l);return u?{...u,slug:l}:void 0}const i=e.sel?document.querySelector(e.sel)??void 0:void 0;if(e.sel&&!i)return;const s=e.url?this.getAdjacentChapterSlug(d(e.url,i),{basePath:t,titleUrl:r}):void 0,c=d(e.label,i)?.toLowerCase().replace(n.toLowerCase(),""),o=z(c)??Ce(s);if(o)return s===void 0?o:{...o,slug:s}}getAdjacentChapterSlug(e,t){if(!e||e.startsWith("#")||e.startsWith("/#")||e.includes("javascript"))return;const r=O(e);if(r&&!(r===location.pathname||t.titleUrl===r||t.titleUrl===`${location.origin}${r}`))return this.parseReaderUrl(t.basePath,r,e).slug||void 0}finalizeRawReaderData(e,t={}){const{prev:r,next:n}=t,i=e.title.chapters;if(!i.length)return r||n?{...e,prev:r,next:n}:e;let s,c,o,l;for(let u=0;u<i.length&&!(s&&(!r||o)&&!n&&l);u++){const p=i[u];!s&&de(e,p)?(s=p,c=u):!o&&r&&de(r,p)?o=p:!l&&n&&de(n,p)&&(l=p)}return c!==void 0&&(o??(o=i[c+1]),l??(l=i[c-1])),o&&!o.slug&&r?.slug&&(o.slug=r.slug),l&&!l.slug&&n?.slug&&(l.slug=n.slug),s&&!s.slug&&(s.slug=e.slug),{...e,inferVol:s?.inferVol,group:e.group??s?.group,prev:o,next:l}}organizeChapters(e,t){return Z(e,{preferGroup:t??this.context.preferGroup})}getFetchResult(e){return U(e)}async fetch(e){try{const t=await fetch(e,{signal:AbortSignal.timeout(2e4)});return t.ok?await t.json():void 0}catch{return}}}function de(a,e){return a.slug&&a.slug==e.slug||a.chap===e.chap&&(a.vol===e.vol||a.vol===void 0)}var sa=Object.defineProperty,ia=(a,e,t)=>e in a?sa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,oa=(a,e,t)=>ia(a,e+"",t);class De extends M{async getRawReaderData(){const e=`https://${location.host}/api/`,[t,r]=await Promise.all([U(`${e}manga/info`),U(`${e}read/chapter`)]),n=t?.value,i=r?.value;if(!n||!i)return;const s=this.parseReaderUrl(this.siteMeta.readerBase,location.pathname,location.href);if(!s)return;const c=z(i.readChapter?.title);if(c)return this.finalizeRawReaderData({basePath:s.basePath,slug:s.slug,...c,imgs:i.readChapter.pages.map(o=>new URL(o.image,location.origin).href),title:{url:`${location.origin}/manga/${n.id}`,slug:n.id,name:n.title,tags:this.getTagIdsFromNames([n.type].filter(Boolean)),chapters:this.organizeChapters(n.chapters.map(o=>({slug:o.id,chap:o.number})))}})}}oa(De,"specId","atsu");var la=Object.defineProperty,ca=(a,e,t)=>e in a?la(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ua=(a,e,t)=>ca(a,e+"",t);class Te extends M{async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=window.pages,r=t?.map(n=>n?.image).filter(Boolean);if(!(!Array.isArray(r)||!r.length))return{...e,imgs:r,isWebtoon:t.some(n=>n.height/n.width>2)}}}ua(Te,"specId","dynasty");var pa=Object.defineProperty,ha=(a,e,t)=>e in a?pa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ga=(a,e,t)=>ha(a,e+"",t);class Pe extends M{async getRawReaderData(){const e=await super.getRawReaderData();if(!e||!e.imgs?.length)return e;const t=await A(100,50,()=>window.g_th);if(!t)return{...e,imgs:void 0};const r=e.imgs[0],n=r.lastIndexOf("/"),i=n===-1?"":r.substring(0,n+1),s=n===-1?r:r.substring(n+1),c=T(d(".total_pages|text"),p=>+p)||1,o=s.substring(s.lastIndexOf(".")+1),l={j:"jpg",p:"png",w:"webp",g:"gif",b:"bmp"},u=Array.from({length:c},(p,g)=>`${i}${g+1}.${l[t[g+1]?.[0]]??o}`);return{...e,imgs:u}}}ga(Pe,"specId","imhen");var da=Object.defineProperty,fa=(a,e,t)=>e in a?da(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ma=(a,e,t)=>fa(a,e+"",t);class Ie extends M{async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=this.spec.chapters?.chapter;if(!t)return e;const r=await U(`https://api.spacely.tech/manhwa/comixto/info/${e.title.slug}`);if(!r?.value)return e;const n=this.parseJsonChapters(r.value,{chapterSpec:t,basePath:W(e.basePath,{slug:e.title.slug})});return n?.length?this.finalizeRawReaderData({...e,title:{...e.title,chapters:n}}):e}}ma(Ie,"specId","inkora");var wa=Object.defineProperty,va=(a,e,t)=>e in a?wa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ya=(a,e,t)=>va(a,e+"",t);class Be extends M{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=this.spec.chapters?.chapter;if(t){const r=await U(`https://yuzuki.${location.hostname}/api/v2/series/{id}`);if(r){const n=this.parseJsonChapters(r.value,{chapterSpec:t,basePath:W(this.siteMeta.readerBase,{slug:e.slug})});if(n)return{...e,chapters:n}}}return{...e,hasMoreChapters:!0}}async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=ba();return{...e,title:{...e.title,img:je(e.title.slug),chapters:t}}}async getRawSearchData(){const e=await super.getRawSearchData();if(e)return{...e,rawReleases:e.rawReleases.map(t=>({...t,img:je(t.slug)}))}}}ya(Be,"specId","kagane");function je(a){return`https://api.${location.hostname}/api/v1/series/${a}/thumbnail`}function ba(){const a=["initialChapters"],e=Array.from(document.querySelectorAll("script:not([src])"));for(let t=0;t<e.length;t++){const r=e[t].textContent;if(r)for(const n of a){const i=r.indexOf(n);if(i===-1)continue;const s=r.slice(i),c=X(s.slice(s.indexOf("[{"),s.indexOf('}],\\"cached_at')+2).replaceAll("\\",""));if(!c?.length||!Array.isArray(c))return[];try{const o=[];return c.map(l=>{const u=z(l.name);u&&o.push({...u,slug:l.id,ts:l.created?new Date(l.created).getTime():void 0})}),Z(o)}catch{return[]}}}return[]}var Ra=Object.defineProperty,$a=(a,e,t)=>e in a?Ra(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Sa=(a,e,t)=>$a(a,e+"",t);class fe extends M{async getRawReleasesData(){const e=this.getNewSiteMeta(this.spec.releases?.title),t=await super.getRawReleasesData();if(t)return{...t,siteMeta:e}}async getRawTitleData(){if(!await this.isTitlePage(this.spec.title))return;const e=this.getNewSiteMeta(this.spec.title,`${location.origin}${location.pathname}`),t=await super.getRawTitleData();if(t)return{...t,siteMeta:e}}async getRawReaderData(){if(!await this.isReaderPage(this.spec.reader,this.spec.generic))return;const e=this.getNewSiteMeta(this.spec.reader?.title),t=await super.getRawReaderData();if(t)return{...t,siteMeta:e}}async getRawSearchData(){const e=this.getNewSiteMeta(this.spec.search?.title),t=await super.getRawSearchData();if(t)return{...t,siteMeta:e}}getNewSiteMeta(e,t){if(t??(t=Ca(e)),!t)return;if(!this.siteId){const s={...this.siteMeta,releases:null,titleBase:"",readerBase:"",titleIdType:Se.name,trailing:t.endsWith("/"),defaultLang:d("html|attr:lang")||"en"};return this.siteMeta=s,s}const r=this.extractBasePath(t),n=this.siteMeta;if(n.titleBase===r)return;const i={...n,titleBase:r,readerBase:n.readerBase.replace(n.titleBase,r)};return this.siteMeta=i,i}extractBasePath(e){const t=e.startsWith("/")?e:O(e);return Me(t,"/").split("/").slice(0,-1).join("/")}}Sa(fe,"specId","madara");function Ca(a){if(!a)return;const e=typeof a=="string",t=e?a:a.sel,r=t?document.querySelector(t)??void 0:void 0;return d(e?"|attr:href":a.url,r)}var xa=Object.defineProperty,Ma=(a,e,t)=>e in a?xa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Da=(a,e,t)=>Ma(a,e+"",t);class Ae extends M{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=await Ee(this.context.preferGroup),r=new Set;return t.forEach(({lang:n})=>{n&&r.add(n)}),{...e,chapters:t,langs:r.size?Array.from(r):[this.siteMeta.defaultLang||"en"]}}async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=await Ee(e.group||this.context.preferGroup),r=t[0]?.lang;return this.finalizeRawReaderData({...e,lang:r,title:{...e.title,chapters:t,langs:r?[r]:void 0}})}}Da(Ae,"specId","mangaball");async function Ee(a){const e=await A(100,50,()=>{try{return ALL_CHAPTERS.length?ALL_CHAPTERS:void 0}catch{return}});if(!e)return[];const t=[];return e.forEach(r=>{r.translations.forEach(n=>{const i=n.volume;t.push({chap:r.number_float,vol:i>0?i:void 0,slug:n.id,lang:n.language,group:n.group?.name,ts:new Date(n.date).getTime()})})}),Z(t,{preferGroup:a})}var Ta=Object.defineProperty,Pa=(a,e,t)=>e in a?Ta(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ia=(a,e,t)=>Pa(a,e+"",t);const Ba={a:.1,b:.2,c:.3,d:.4};class Le extends M{parseTitleUrl(e){return{slug:O(e)?.split("/").filter(Boolean)[1]}}async getRawReleases(){const e=re()?.data;if(!e)return;const t=[];return e.forEach(({relationships:r,attributes:n,id:i})=>{const s=r.find(({type:p})=>p==="manga"),c=se(n.volume),o=ee(n.chapter);if(o===void 0)return;const{title:l}=s.attributes,u=l.en??Object.values(l)[0];t.push({slug:s.id,name:u,chapters:[{slug:n.externalUrl||i,vol:c,chap:o,lang:n.translatedLanguage,ts:new Date(n.readableAt).valueOf()}]})}),t}async getRawTitleData(){const e=`https://api.${location.host}/manga/`;let[t,r]=await Promise.all([U(`${e}{id}`,{timeoutMs:5e3}),U(`${e}{id}/feed`,{timeoutMs:5e3})]);if(!t||!r){const[o,l]=await Promise.all([this.fetch(`${e}{id}`),this.fetch(`${e}{id}/feed`)]);if(!o||!l)return;t={url:"",value:o},r={url:"",value:l}}const n=r.value.data?.map?.(o=>{const{attributes:l,id:u}=o;if(typeof l!="object"||typeof u!="string"||!u)return;const{externalUrl:p,title:g,volume:h,chapter:m,translatedLanguage:w}=l;return{slug:p||u,label:g||void 0,vol:se(h),chap:ee(m),lang:w||"en",ts:new Date(l.readableAt).valueOf()}}).filter(o=>o?.chap!=null)??[],{data:i}=t.value;if(!i)return;const s=Oe({data:i,getTagIdsFromNames:o=>this.getTagIdsFromNames(o)});if(!s)return;const c=this.context.includeImgBytes&&s.img?await pe(s.img):void 0;return{...s,imgBytes:c,chapters:this.organizeChapters(n),hasMoreChapters:(r.value.total||0)>(r.value.limit||0)}}async getRawReaderData(){const e="https://api.mangadex.org/",[t,r,n]=await Promise.all([U(`${e}chapter/{id}`),U(`${e}at-home/server/{id}`),U(`${e}manga/{id}/aggregate`)]);if(!t||!r||!n)return;const i=t.value.data,{volume:s,chapter:c,externalUrl:o,translatedLanguage:l}=i.attributes||{},{baseUrl:u,chapter:{data:p,dataSaver:g,hash:h}}=r.value,m=i.relationships?.find?.(j=>j.type==="manga");if(!m)return;const w=Oe({data:m,getTagIdsFromNames:j=>this.getTagIdsFromNames(j)});if(!w||typeof n.value.volumes!="object")return;const v=Ue(n.value,{preferGroup:this.context.preferGroup})??[];(typeof c!="string"||c==="none")&&!v.length&&v.push({chap:0,slug:i.id});const y=v.findIndex(j=>j.slug===i.id),f=i.relationships?.find?.(j=>j.type==="scanlation_group"),b=u.endsWith("/")?u:u+"/",D=!!localStorage.getItem("md")?.includes?.('"dataSaver":true'),C=`${b}${D?"data-saver":"data"}/`,I=((D?g:p)??[]).map?.(j=>`${C}${h}/${j}`)??[];return{externalUrl:o,vol:se(s),inferVol:v[y]?.inferVol,chap:ee(c)||0,imgs:I,lang:l,slug:i.id,prev:v[y+1],next:v[y-1],basePath:"/chapter/",group:f?.attributes?.name,groupUrl:f?.attributes?.website,isWebtoon:m?.attributes?.tags?.some(j=>j.attributes.name.en==="Long Strip"),title:{...w,chapters:v}}}async getRawChaptersData(){const e=re();if(!e)return;let t;try{t=Ue(e,{preferGroup:this.context.preferGroup})}catch{return}if(t)return{chapters:t,lang:this.context.lang??"en",asc:!1,hasMore:!1,total:t.length}}}Ia(Le,"specId","mangadex");function se(a){const e=ee(a);return e!==0?e:void 0}function ee(a){if(typeof a!="string"||a==="none")return;const e=parseFloat(a);if(e!==e)return;const t=a[a.length-1];return e+(Ba[t]??0)}function Ue(a,{preferGroup:e}){if(typeof a.volumes!="object")return;const t=Object.values(a.volumes).map(({volume:r,chapters:n})=>{const i=se(r);return Object.values(n).map(({id:s,chapter:c})=>{const o=ee(c);if(o!==void 0)return{vol:i,chap:o,slug:s}})}).flat().filter(Boolean).reverse();return Z(t,{preferGroup:e})}function Oe({data:a,getTagIdsFromNames:e}){const{id:t,attributes:r,relationships:n}=a;if(!t||typeof t!="string"||typeof r!="object")return;const{title:i,availableTranslatedLanguages:s,altTitles:c,tags:o,contentRating:l}=r;if(typeof i!="object"||s&&!Array.isArray(s))return;const u=Object.values(i)[0];if(!u||typeof u!="string")return;const p=ja(),g=(s??[])?.map?.(f=>typeof f=="string"?f:void 0).filter(Boolean)??[],h=g.filter(f=>f&&(!p||p.includes(f))),m=c?.map?.(f=>{const[[,b]=[]]=Object.entries(f);return b}),w=n?.find?.(f=>f.type==="cover_art")?.attributes?.fileName,v=w?`https://mangadex.org/covers/${t}/${w}.256.jpg`:void 0,y=(o||[]).map(f=>f?.attributes?.name?.en).concat(l).filter(Boolean);return{url:`${location.origin}/title/${t}`,slug:t,name:u,altNames:m,langs:h.length>0?h:g.length>0?g:["en"],img:v,tags:e(y)}}function ja(){const a=localStorage.getItem("md");if(!a)return;const e=X(a);if(e)try{const t=e?.userPreferences?.filteredLanguages;return t?.length?t:void 0}catch{return}}var Aa=Object.defineProperty,Ea=(a,e,t)=>e in a?Aa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,La=(a,e,t)=>Ea(a,e+"",t);class ze extends M{async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=new URLSearchParams(location.search).get("source"),r=await U(`/api/${t==="user"?"uploads":"chapters"}/${e.slug}/images`);if(!r)return;const n=r.value.images?.map?.(s=>s.url),i=T(Q(r.value,"manga.title"));return{...e,slug:t?`${e.slug}?source=${t}`:e.slug,imgs:n,title:{...e.title,name:i??e.title.name}}}parseJsonChapter(e,t){const r=super.parseJsonChapter(e,t),n=P(e,"source")==="user";if(!(!r||!n))return r.slug+="?source=user",r}}La(ze,"specId","mangadot");var Ua=Object.defineProperty,Oa=(a,e,t)=>e in a?Ua(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,za=(a,e,t)=>Oa(a,e+"",t);class qe extends M{async getRawReleasesData(){const e=await super.getRawReleasesData();return e&&e.rawReleases.forEach(t=>t.chapters.forEach(r=>{r.lang??(r.lang="en")})),e}async getRawTitleData(){if(!this.headless){const r=location.pathname.split("/").filter(Boolean)[1];if(r.includes(".")){location.href=location.href.replace(r,r.split(".")[1]),await q(1e4);return}}const e=await super.getRawTitleData();if(!e)return;const t=await this.getFetchResult("/api/titles/{id}");return t?{...e,id:t.params?.id??T(t.value.data?.hid),langs:qa(t.value.data?.languages)}:e}async getRawReaderData(){const e=location.pathname.split("/").filter(Boolean),t=e[1]?.split(".")?.[1],r=ue(e[2]);if(!this.headless&&t&&r!==void 0){const o=await this.fetch(`${location.origin}${this.siteMeta.chapters?.replace("{titleId}",t).replace("{lang}","en")}`);if(o){window.$mpChaptersRes=o;const l=(await this.getRawChaptersFromJson({chapterSpec:{...this.spec.chapters.chapter,json:"window.$mpChaptersRes"},pagingSpec:this.spec.chapters?.paging,titleInfo:{}}))?.find(u=>u.chap===r)?.slug;if(l){location.href=`${location.origin}/${this.siteMeta.readerBase.replace("{titleSlug}",t)}/${l}`,await q(1e4);return}}location.href=`${location.origin}/${this.siteMeta.titleBase}/${t}`,await q(1e4);return}if(!await A(60,50,()=>{if(!document.querySelector(".reader--state"))return!0}))return;const n=await super.getRawReaderData();if(!n)return;const i=await this.getFetchResult(`/api/chapters/${n.slug}`);if(!i)return n;const s=i.value.data;n.title.id=T(s.title?.hid),n.title.name=s?.title?.name??n.title.name,n.title.langs=s?.title?.languages,n.lang=T(s?.language),n.prev=Ne(s?.prev)??n.prev,n.next=Ne(s?.next)??n.next;const c=s.pages?.map?.(o=>T(o?.url))?.filter(Boolean);return n.imgs=c?.length?c:void 0,n}parseJsonChapter(e,t){const r=super.parseJsonChapter(e,t);if(!(!r||r.group!=="unofficial"))return{...r,group:void 0}}}za(qe,"specId","mangafire2");function qa(a){const e=a?.map(t=>T(t))?.filter(Boolean);return e?.length?e:void 0}function Ne(a){const e=E(a?.id,r=>r+""),t=E(a?.number);return e&&t!==void 0?{slug:e,chap:t}:void 0}var Na=Object.defineProperty,Wa=(a,e,t)=>e in a?Na(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,We=(a,e,t)=>Wa(a,typeof e!="symbol"?e+"":e,t);class ke extends M{constructor(){super(...arguments),We(this,"isVariantSite",location.hostname!=="www.mangago.me")}async getRawTitleData(){const e=await super.getRawTitleData();if(!e||!this.isVariantSite)return e;const t=d('a[href*="/status/"]|attr:href|remove:/$|remove:.+/');if(t)return{...e,slug:t}}async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;if(this.spec.reader?.lstripBtn&&document.querySelector(this.spec.reader.lstripBtn))return e;if(!this.isAppVersionNewerThan("6.7.0")){const r=await this.getReaderImgs();return!r?.length||r.length<=5?e:{...e,imgs:r}}if(!this.isVariantSite&&this.spec.reader?.paging&&!document.querySelector("#reader-nav"))return e;const t=await this.getReaderImgs();return t&&t.length>5?{...e,imgs:t}:{...e,contentType:void 0}}getRawReaderTitleData(e){if(!this.isVariantSite)return super.getRawReaderTitleData(e);const t=d('a[href*="/read-manga/"]|attr:href'),r=t?t.split("/read-manga/")[1].split("/")[0]:d('.page script|text|pattern:.+mid="(.+)",.+');if(r)return{slug:r,name:r.replaceAll("_"," ").replaceAll(" s ","'s ").replaceAll(" t ","'t ").split(" ").filter(Boolean).map(n=>`${n[0].toUpperCase()}${n.substring(1)}`).join(" "),url:`https://www.mangago.me/read-manga/${r}`}}parseReaderUrl(e,t,r){if(!this.isVariantSite){const{slug:n,basePath:i}=super.parseReaderUrl(e,t,r),s=n.split("/").filter(Boolean),c=s[s.length-1];return{basePath:i,slug:c.startsWith("pg-")?s.slice(0,-1).join("/"):n}}return{basePath:"",slug:`${location.origin}/${t.split("/").filter(Boolean).slice(0,3).join("/")}${this.siteMeta.trailing?"/":""}`}}async getReaderImgs(){const e=await A(100,20,()=>window.imgsrcs),t=window.CryptoJS,r=t.enc.Hex.parse("e11adc3949ba59abbe56e057f20f883e"),n={iv:t.enc.Hex.parse("1234567890abcdef1234567890abcdef"),padding:t.pad.ZeroPadding};return t.AES.decrypt(e,r,n).toString(t.enc.Utf8).split(",").filter(Boolean)}}We(ke,"specId","mangago");var ka=Object.defineProperty,_a=(a,e,t)=>e in a?ka(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ja=(a,e,t)=>_a(a,e+"",t);class _e extends M{parseTitleUrl(e){return{slug:O(e)?.split("/").filter(Boolean)[1]}}}Ja(_e,"specId","mangapill");var Va=Object.defineProperty,Fa=(a,e,t)=>e in a?Va(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ha=(a,e,t)=>Fa(a,e+"",t);class Je extends M{async getRawTitleData(){const e=await super.getRawTitleData();return e&&{...e,chapters:e.chapters.map(t=>({...t,slug:t.slug?.split("/").filter(Boolean).slice(-1)[0]}))}}}Ha(Je,"specId","mangaplus");var Ga=Object.defineProperty,Ka=(a,e,t)=>e in a?Ga(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Xa=(a,e,t)=>Ka(a,e+"",t);class Ve extends fe{async getRawReaderData(){const e=await super.getRawReaderData();if(e)return{...e,title:{...e.title,id:await this.getReaderTitleId()}}}async getReaderTitleId(){const e=await window.HISTORY?.getStored?.();if(!e||typeof e!="object")return;const t=Object.values(e).filter(Boolean);if(!t.length)return;t.sort((n,i)=>i.time-n.time);const r=t[0].manga_ID;return T(r)??E(r,n=>n+"")}}Xa(Ve,"specId","mangastream");var Ya=Object.defineProperty,Qa=(a,e,t)=>e in a?Ya(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Za=(a,e,t)=>Qa(a,e+"",t);class Fe extends M{async getRawReaderData(){const e=await super.getRawReaderData();return!e||!e.title.chapters.length?e:{...e,prev:e.prev?{...e.prev,slug:me(e.title.slug,e.prev.slug)}:void 0,next:e.next?{...e.next,slug:me(e.title.slug,e.next.slug)}:void 0,title:{...e.title,chapters:e.title.chapters.map(t=>({...t,slug:me(e.title.slug,t.slug)}))}}}}Za(Fe,"specId","mangatime");function me(a,e){if(e)return`/manga/${a}/chapter-${e}`}var er=Object.defineProperty,tr=(a,e,t)=>e in a?er(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ar=(a,e,t)=>tr(a,e+"",t);class He extends M{async getRawReaderData(){const e=await super.getRawReaderData();if(e?.imgs?.length!==1)return e;e.slug.includes("//")&&(e.slug=Ge(e.slug).split("/").filter(Boolean)[3]);const t=E(document.querySelector("select.index-page,.page_select select")?.childElementCount,h=>h);if(!t||t<=1)return e;const[r]=e.imgs,n=r.split(/\d+\.[a-z]{3,5}$/i)?.[0];if(!n)return e;const i=(+(d(".page_select .select|text")||"1")||1)-1,s=r.replace(n,""),[c,o]=s.split("."),l=c.length,u=+c-i,p=u+t-1,g=[];for(let h=u;h<=p;h++)g.push(`${n}${(h+"").padStart(l,"0")}${o?`.${o}`:""}`);return{...e,imgs:g}}parseChapterUrl(e,t){return this.parseReaderUrl(e,Ge(t),t)}}ar(He,"specId","mangatown");function Ge(a){return a.replace(location.origin,"").replace("//","/")}var rr=Object.defineProperty,nr=(a,e,t)=>e in a?rr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,sr=(a,e,t)=>nr(a,e+"",t);class Ke extends M{async getRawReaderData(){const e=await super.getRawReaderData();return e&&{...e,slug:e.slug.split("/").slice(0,-1).join("/")||e.slug.split("/")[0]}}}sr(Ke,"specId","mangaworld");var ir=Object.defineProperty,or=(a,e,t)=>e in a?ir(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,lr=(a,e,t)=>or(a,e+"",t);class Xe extends M{async getRawTitleData(){const e=await super.getRawTitleData();if(e)return{...e,hasMoreChapters:e.chapters.length===50}}}lr(Xe,"specId","mgeko");var cr=Object.defineProperty,ur=(a,e,t)=>e in a?cr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,pr=(a,e,t)=>ur(a,e+"",t);class Ye extends M{async getRawReaderData(){const e=await A(200,50,()=>{const i=window.mangaReader;return i?.scanData&&i?.mangaData?i:void 0});if(!e)return;const{scanData:t,mangaData:r}=e,n=`/${this.siteMeta.readerBase}/`;return this.finalizeRawReaderData({basePath:n,chap:t.chapterNum,slug:t.slug,imgs:t.pages,title:{name:t.chapterTitle,slug:t.manga,url:`${location.origin}/${this.siteMeta.titleBase}/${t.manga}`,chapters:this.parseJsonChapters(r,{basePath:n,chapterSpec:{sel:"chapters",label:"num",url:"slug"}})??[]}})}}pr(Ye,"specId","moins");var hr=Object.defineProperty,gr=(a,e,t)=>e in a?hr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,dr=(a,e,t)=>gr(a,e+"",t);class Qe extends ne{async getRawReleasesData(){}async getRawSearchData(){}async getRawTitleData(){const e=d("h1.title .pretty, h1.title|text"),t=d("#cover img|[attr:data-src,attr-contain:src]");if(e)return{name:e,slug:location.pathname.split("/").filter(Boolean).slice(-1)[0],url:location.origin+location.pathname,img:t,imgBytes:this.context.includeImgBytes&&t?await pe(t):void 0,chapters:[{slug:"1",chap:0}]}}async getRawReaderData(){const e=d("#image-container img|[attr:data-src,attr-contain:src]"),t=he(e);if(!t)return;const r=t.origin,n=this.parseReaderUrl(this.siteMeta.readerBase,location.pathname,location.href);if(n?.titleSlug)try{const i=await fetch(`${location.origin}/api/v2/galleries/${n.titleSlug}`);if(!i.ok)return;const s=await i.json();if(!s)return;const c=P(s,"title.pretty")||P(s,"title.english")||s?.title?.[Object.keys(s.title)[0]];if(!c)return;const o=T(P(s,"cover.path"),u=>`https://t2.${location.hostname}${u.startsWith("/")?u:`/${u}`}`),l=s.pages.map(u=>{const p=u.path;return`${r}${p.startsWith("/")?p:`/${p}`}`});return{chap:0,slug:"1",basePath:`/g/${n.titleSlug}/`,imgs:l,title:{name:c,slug:n.titleSlug,url:`${location.origin}/g/${n.titleSlug}`,chapters:[{slug:"1",chap:0}],img:o}}}catch{return}}async getRawChaptersData(){const e=await this.getRawTitleData();if(!e)return;const{chapters:t,...r}=e;return{title:{...r,chapters:[]},chapters:t}}}dr(Qe,"specId","nhentai");var fr=Object.defineProperty,mr=(a,e,t)=>e in a?fr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,wr=(a,e,t)=>mr(a,e+"",t);class Ze extends M{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;e.chapters.length&&!e.hasMoreChapters&&(e.hasMoreChapters=e.chapters.length===15&&e.chapters[e.chapters.length-1].chap>1);const t=await this.getFetchResult(`https://api.${location.host}/chapters?languages=true`);if(!t)return e;const r=t.value?.data?.languages?.map?.(n=>n?.id)?.filter(Boolean);return r?.length?{...e,langs:r}:e}parseJsonChapter(e,t){const r=super.parseJsonChapter(e,t);if(!r)return;const n=E(Q(e,"group.id"),i=>i+"");return n?{...r,slug:`${r.slug}?group=${n}`}:r}}wr(Ze,"specId","scansgg");var vr=Object.defineProperty,yr=(a,e,t)=>e in a?vr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,br=(a,e,t)=>yr(a,e+"",t);class et extends M{async queryJsonChapters(e){const t=await super.queryJsonChapters(e);if(t)return t.map(r=>({...r,slug:r.slug?`ch-${+r.slug||r.chap}`:r.slug}))}}br(et,"specId","stone");var Rr=Object.defineProperty,$r=(a,e,t)=>e in a?Rr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Sr=(a,e,t)=>$r(a,e+"",t);class tt extends M{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=Y(".info-detail__row > .genre-btn,.info__right .stats__row:first-child|text")?.map(r=>[r,...r.split(" ")]).flat();return at({...e,tags:this.getTagIdsFromNames(t)??[]},".episode-header .episode-cnt")}async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=`${location.origin}/series/${e.title.slug}/info`;return{...e,title:{...at({...e.title,url:t,tags:[]},".episode-list .js-ep-cnt"),hasMoreChapters:!1}}}parseTitleUrl(e){if(!e)return{};const t=e.split("/").filter(Boolean);return{slug:t[1]??t[0]}}}Sr(tt,"specId","tapas");function at(a,e){const t=Cr(e)>20;return{...a,chapters:t?[]:a.chapters,hasMoreChapters:t}}function Cr(a){return+(document.querySelector(a)?.textContent?.trim().split(" ")[0]||0)}var xr=Object.defineProperty,Mr=(a,e,t)=>e in a?xr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Dr=(a,e,t)=>Mr(a,e+"",t);class rt extends M{async getRawTitleData(){const e=new URLSearchParams(location.search),t=e.get("episode_no"),r=e.get("title_no");if(t||!r)return;const n=await super.getRawTitleData();if(!n)return;const i=location.hostname.startsWith("m."),s=location.pathname.split("/")[1];return{...n,slug:`${n.slug}?title_no=${r}`,id:r,langs:s?[s]:void 0,chapters:i?[]:n.chapters.map(c=>({...c,lang:s})),hasMoreChapters:i||(document.querySelector(".paginate")?.childElementCount??1)>1}}async getRawReaderData(){const e=new URLSearchParams(location.search),t=e.get("episode_no"),r=e.get("title_no"),n=t?+t:void 0;if(!t||!r||typeof n!="number"||isNaN(n))return;const i=document.title.split("|")[1]?.trim();if(!i)return;const s=location.pathname.split("/"),c=`${s.slice(0,4).join("/")}/list?title_no=${r}`,o=this.queryChapters({chapterSpec:{sel:"#sequence_scroll li.eg-flick-panel,#toolbar .episode_lst li[data-episode-no]",url:"a|attr:href",label:"|attr:data-episode-no || a|attr:href|pattern:.+episode_no=(\\d+).*"},titleInfo:{id:r,slug:c,name:i}}),l=s[1];return{chap:n,lang:l,slug:`${location.pathname}?title_no=${r}&episode_no=${t}`,basePath:"",imgs:await this.getReaderImgs(),isWebtoon:!0,title:{id:r,url:c,slug:c,name:i,langs:[l],chapters:(o??[]).map(u=>({...u,lang:l})),hasMoreChapters:!1}}}async getReaderImgs(){const e=Y("#_imageList img|[attr:data-url,attr:src]");return e?.length?e:await A(100,50,()=>window.__viewerState__?.scrollViewerParam?.imageList?.map(({url:t})=>t).filter(Boolean))}parseReaderUrl(e,t,r){if(!r)return{basePath:"",slug:t};if(r.startsWith("http://")||r.startsWith("https://")){const n=he(r);return{basePath:"",slug:n.pathname+n.search}}return{basePath:"",slug:r}}}Dr(rt,"specId","webtoon");const Tr=[De,Te,Pe,Ie,Be,fe,Ae,Le,qe,ke,_e,Je,Ve,Xe,ze,Fe,He,Ke,Ye,Qe,Ze,et,tt,rt];function nt(a){const e=Tr.find(t=>t.specId===a.spec.id)??M;return new e(a)}async function Pr(a){const{spec:e,type:t}=a;let r=a.siteMeta??e?.meta;if(e&&r){a.siteVariant&&(r={...r,...a.siteVariant});const n=t?[t]:st(r,e.generic);if(!n.length)return;const i=nt({...a,spec:e,siteMeta:r});return await J(n.map(s=>i.getRawPageByType(s,n.length===1)))}return await J((a.genericSpecs??[]).map(n=>{if(!n.meta||!n.generic)return[];const i=t?[t]:st(n.meta,n.generic);if(!i.length)return[];const s=nt({...a,spec:n,siteMeta:n.meta});return i.map(c=>s.getRawPageByType(c,!1,!0))}).flat())}function st(a,e){if(location.pathname==="/")return a.single?[B.title]:[];const{titleBase:t,readerBase:r}=a,n=location.pathname.split("/").filter(Boolean),i=it(n,r),s=it(n,t);if(i&&s)return[B.reader,B.title];const c=[];return!s&&(i!==!1||e)&&c.push(B.reader),!i&&(s!==!1||e)&&c.push(B.title),!c.length&&e?[B.reader,B.title]:c}function it(a,e){if(!e)return;const t=e.split("/").filter(Boolean),r=t.indexOf("{slug}"),n=r===t.length-1,i=!n&&r!==-1;if(n&&(t.pop(),!t.length))return;const s=a.length-t.length;if(i?s<0:s<=0)return!1;let c=!1;for(let o=0;o<t.length;o++){const l=t[o];if(l[0]!=="{"){if(l!==a[o])return!1;c=!0}}if(c&&s===(i?0:1))return!0}_.PageType=B,_.scrape=Pr}));
1
+ (function(k,_){typeof exports=="object"&&typeof module<"u"?_(exports):typeof define=="function"&&define.amd?define(["exports"],_):(k=typeof globalThis<"u"?globalThis:k||self,_(k._trackkun_={}))})(this,(function(k){"use strict";function _(a){let e=!1;return new Promise((t,r)=>{Promise.all(a.map(async n=>{const i=await n;!e&&i&&(e=!0,t(i))})).then(()=>{e||t(void 0)})})}const it=/(vol(ume)?|season)(\s*|-|\.)(\d+)/i,ot=/^S([1-9])\s/i,lt=/(ch(ap(t(er)?|\.)?|\.)?|#|episode\.?|capitolo\.?|capitulo\.?|bölüm\.?)(\s*|-)(\d+([-~_,.]\d+)?)/i,ct=/\d+([-~_,.]\d+)?/,ut=/[-~_,]/;function pt(a){const e=a.match(it);if(e)return{volStr:e[0],volValueStr:e[4]};const t=a.match(ot);return t?{volStr:t[0],volValueStr:t[1]}:{}}function q(a){if(!a)return;if(!isNaN(+a))return{chap:+a};const{volStr:e,volValueStr:t}=pt(a),r=e?a.replace(e,"").trim():a,n=r.match(lt)?.[6]??r.match(ct)?.[0];if(!n)return;const i=+n.replace(ut,".");if(isNaN(i))return;const s=e&&t&&!isNaN(+t)?+t:void 0;return{vol:s===void 0||s<=0?void 0:s,chap:i}}function gt(){return Math.random().toString(16).slice(2)}async function ht({addListener:a,removeListener:e,transform:t,filter:r,handler:n,onTimeout:i,timeout:s,once:c}){return new Promise(o=>{a(p);const l=()=>c===!0&&e(p),u=s?setTimeout(()=>{l(),o(void 0),i?.()},s):void 0;async function p(h,...g){h=t?t(h):h,h!==void 0&&(!r||r(h,...g))&&(l(),o(h),n?.(h,...g),u&&clearTimeout(u))}})}async function dt(a){return(await ht({addListener:e=>window.addEventListener("message",e),removeListener:e=>window.removeEventListener("message",e),...a}))?.data}async function ft(a){const{receiverWindow:e,timeout:t,targetOrigin:r,event:n,args:i}=a,s={reqId:gt(),event:n,args:i};return(e||window)?.postMessage(s,r??"*"),(await dt({filter:c=>c?.data?.resId===s.reqId,timeout:t??3e4,once:!0}))?.result}function U(a,e){return ft({event:"tk:fetchResult",args:{url:a},timeout:e?.timeoutMs??15e3})}async function A(a,e,t){const r=await t(()=>{a=0});if(r!==void 0)return r;if(!(a<=0))return await new Promise(n=>{setTimeout(async()=>{const i=await A(a-1,e,t);n(i)},e)})}async function K(a,e,t=0){const r=e.root??document.documentElement,n=e.timeoutMs??1e4;return A(e.lazy===!0?n/50:0,50,()=>{const i=e.all===!0?Array.from(r.querySelectorAll(a)):r.querySelector(a)??void 0;return(e.all?!i?.length:!i)?void 0:i})}function V(a,e){if(a instanceof HTMLOptionElement){const t=a.parentElement instanceof HTMLOptGroupElement?a.parentElement.parentElement:a.parentElement;if(!t||!(t instanceof HTMLSelectElement))return;const r=a.getAttribute("value")||"";if(t.value===r)return;t.value=r,t.dispatchEvent(new Event("change"));return}a instanceof HTMLAnchorElement&&e?.preventDefault!==!1&&a.addEventListener("click",t=>t.preventDefault(),{once:!0}),a.click(),a.dispatchEvent(new PointerEvent("pointerdown",{bubbles:!0,cancelable:!0,pointerType:"mouse",button:0})),a.dispatchEvent(new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window,button:0}))}function ie(a,e){if(typeof a.checkVisibility=="function")return a.checkVisibility({opacityProperty:!0,visibilityProperty:!1,contentVisibilityAuto:!1});const t=window.getComputedStyle(a);if(t.display==="none"||t.opacity&&parseFloat(t.opacity)<.1)return!1;if(!e)return!0;const r=a.parentElement;return!r||r===e?!0:ie(r,e)}function mt(a,e){return a>=280&&e>=50||a>=160&&e>=280}var J;(function(a){a[a.manga=1]="manga",a[a.novel=2]="novel",a[a.anime=3]="anime"})(J||(J={}));async function wt(a,e){const t=["NAV","ASIDE","FOOTER","HEADER","BR","HR","BUTTON","A"],r="img:not(nav img, header img, footer img, aside img), canvas",n=e?.timeoutMs,i=e?.include,s=e?.paraSel,c=!i||i.includes(J.manga),o=!i||i.includes(J.novel);let l=0;return await A(n/50,50,()=>{const g=u();if(g){if(c&&h(g,e?.validateImgSize))return J.manga;if(o&&l++%3===0&&p(g))return J.novel}});function u(){for(const g of a.split(",")){const m=document.querySelector(g);if(m)return m}}function p(g){const m=[`p:not(${t.map(b=>`${b} p`).join(",")})`,s].filter(Boolean).join(",");if(!g.querySelector(m)&&(!s||!g.matches(s)))return!1;let w=0,v=0,y=0;return f(g);function f(b){const M=b.tagName;if(t.includes(M)||!ie(b)||window.getComputedStyle(b).position==="fixed")return!1;if(M==="P"||s&&b.matches(s))return w+=b.textContent.split(" ").filter(Boolean).length,v++,y=0,!c&&w>50||v>10&&w>120||v>5&&w>250||w>400;v>0&&++y>4&&(v=0,w=0);const C=Array.from(b.children);for(let I=0;I<C.length;I++)if(f(C[I]))return!0;return!1}}function h(g,m){const w=Array.from(g.querySelectorAll(r));if(m===!1)return w.length>0;const v=Math.min(window.innerWidth*.9,500);let y=0;for(let f=0;f<w.length;f++){const b=w[f];if(!ie(b,g))continue;const{width:M,height:C}=b.getBoundingClientRect();if(mt(M,C)&&(M>=v||(y+=C,y>=v)))return!0}return!1}}function X(a){if(a)try{return JSON.parse(a)}catch{return}}const ve={text:Re,attr:$t,"attr-contain":St,value:Ct,row:xt,"bg-image":Mt,json:Dt},vt={pattern:Tt,remove:Pt,atob:It,json:$e};function d(a,e){if(a)return ye(a,e,bt)}function Y(a,e){if(a)return ye(a,e,Rt)}function ye(a,e,t){if(!a)return;const r=a.split("||").map(n=>n.trim()).filter(Boolean);for(const n of r){const i=yt(n);if(!i)continue;const s=t(e??document.documentElement,i);if(s)return s}}function yt(a){const[e,t,...r]=a.split("|");if(!t)return;const n=t?.startsWith("[")&&t.endsWith("]")?t.substring(1,t.length-1).split(","):[t];return{selector:e||void 0,extractors:n.map(oe),transformers:r.map(oe)}}function oe(a){const e=a.indexOf(":"),t=e!==-1;return{fn:t?a.substring(0,e):a,param:t?a.substring(e+1):""}}function bt(a,e){if(!e.selector)return be(a,e);const t=Bt(e.selector);for(const r of t){const n=Array.from(a.querySelectorAll(r));for(const i of n){const s=be(i,e);if(s)return s}}}function Rt(a,e){const t=e.selector?Array.from(a.querySelectorAll(e.selector)):[a],r=[];for(const n of t)for(const i of e.extractors){const s=ve[i.fn],c=s(n,i.param),o=c?le(c,e.transformers):void 0;if(o){r.push(o);break}}if(r.length)return r}function be(a,e){for(const t of e.extractors){const r=ve[t.fn],n=r(a,t.param);if(n)return le(n,e.transformers)}}function le(a,e){let t=a;for(const r of e){if(!t)return;const n=vt[r.fn];n&&(t=n(t,r.param)?.trim())}return t}function Re(a){return Array.from(a.childNodes).filter(e=>e.nodeType===3).map(e=>N(e.textContent)).filter(Boolean).join(" ").trim()||N(a.textContent)}function $t(a,e){return N(a.getAttribute(e))}function St(a,e){let t=a.getAttribute(e);if(!t){const r=a.getAttributeNames().find(n=>n.includes(e));r&&(t=a.getAttribute(r))}return N(t)}function Ct(a){return a.value}function xt(a,e){if(!e)return;const t=N(a.textContent)?.toLowerCase(),r=e.toLowerCase();if(!(t!==r&&t!==`${r}:`))return N(a.nextElementSibling?.textContent??a.nextSibling?.textContent)}function Mt(a){const e=getComputedStyle(a).backgroundImage;if(!(!e||!e.startsWith("url(")))return e.slice(5,-2)||void 0}function Dt(a,e){const t=Re(a);if(t)return $e(t,e)}function $e(a,e){const t=Q(X(a),e),r=typeof t;if(r==="string")return N(t)||a;if(r==="number"||r==="boolean")return t+""}function Q(a,e){if(!a||!e)return;const t=e.indexOf("."),r=t!==-1,n=r?e.substring(0,t):e,i=r?e.substring(t+1):void 0;try{const s=a[n];return i?Q(s,i):s}catch{return}}function N(a){if(a)return a?.replace(/(\n|\t)/g," ").trim()||void 0}function Tt(a,e){if(e)try{return a.replace(new RegExp(e,"i"),"$1")}catch{}return a}function Pt(a,e){if(e)try{return a.replaceAll(new RegExp(e,"gi"),"")}catch{}return a}function It(a){try{return window.atob(a)}catch{return a}}function Bt(a){const e=[];let t="",r=!1;for(let i=0;i<a.length;i++){const s=a[i];if(s==="["?r=!0:s==="]"&&(r=!1),s===","&&!r){const c=t.trim();c.length>0&&e.push(c),t=""}else t+=s}const n=t.trim();return n.length>0&&e.push(n),e}function ce(a,e){const t=document;if(a.startsWith("//")){const r=document.evaluate(a,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;return r instanceof HTMLElement?r:void 0}return t.querySelector(a)??void 0}var jt=(a=>(a[a.reading=1]="reading",a[a.paused=2]="paused",a[a.plan=3]="plan",a[a.completed=4]="completed",a[a.dropped=5]="dropped",a[a.deleted=6]="deleted",a))(jt||{}),At=(a=>(a[a.ok=1]="ok",a[a.hidden=2]="hidden",a[a.deleted=3]="deleted",a))(At||{}),Et=(a=>(a[a.aggregator=0]="aggregator",a[a.scanlator=1]="scanlator",a))(Et||{}),Se=(a=>(a.id="id",a.name="name",a.slug="slug",a))(Se||{}),ae=(a=>(a.blank="about:blank",a.title="meta.title",a.reader="meta.reader",a))(ae||{}),F=(a=>(a[a.manga=1]="manga",a[a.novel=2]="novel",a[a.anime=3]="anime",a))(F||{}),Lt=(a=>(a[a.pending=0]="pending",a[a.completed=1]="completed",a[a.offline=2]="offline",a[a.incompat=3]="incompat",a))(Lt||{});function z(a=0){return new Promise(e=>setTimeout(e,a))}function ue(a){if(a)return parseInt(a.replace(/\D*/,""))||void 0}const Ut=/\d+[a-z]+\d+/i,Ot=/[a-z]+\d+[a-z]+/i,qt=/^\d{5,}$/;function Ce(a){if(!a)return;const e=[];a.split(/[-_]/).forEach(r=>{const n=r.split(".").filter(i=>i&&!Ot.test(i)&&!Ut.test(i)&&!qt.test(i)).join(".");n&&e.push(n)});const t=e.join(" ");return q(t)}async function pe(a,e){return new Promise(t=>{const r=new Image;r.crossOrigin="anonymous",r.onerror=()=>t(void 0),r.onload=async()=>{if(r.naturalWidth<=1){t(void 0);return}const n=Math.max(1,r.naturalWidth/(e?.maxWidth??240)),i=r.naturalWidth/n,s=r.naturalHeight/n,c=document.createElement("canvas"),o=c.getContext("2d");c.width=i,c.height=s;const l=/iPad|iPhone|iPod/.test(navigator.userAgent);try{o.drawImage(r,0,0,i,s);const u=((e?.fixCanvas!==!1?zt():void 0)??HTMLCanvasElement.prototype.toDataURL).call(c,l?"image/jpeg":"image/webp",l?.99:.8);t(u.length<1e3?void 0:u.split(",").slice(-1)[0])}catch{t(void 0)}},r.src=a})}function zt(){const a=document.createElement("template");a.innerHTML="<iframe></iframe>";const e=a.content.querySelector("iframe");if(e){e?.style.setProperty("style","none"),document.body.appendChild(e);const t=e?.contentWindow?.HTMLCanvasElement?.prototype?.toDataURL;if(document.body.removeChild(e),t)return t}return HTMLCanvasElement.prototype.toDataURL}async function Nt(a,e=240){const t=await Wt(a);if(t)return await new Promise(async r=>{const n=pe(t,{maxWidth:e,fixCanvas:!1}),i=setTimeout(()=>r(void 0),100),s=await n;clearTimeout(i),r(s)})}async function Wt(a){if(a.startsWith("blob:"))return a;try{const e=await fetch(a);if(e.status>=400)return;const t=await e.blob();return t.size<1e3?void 0:URL.createObjectURL(t)}catch{return}}function P(a,e){if(e==="")return a;if(!e)return;const t=e.split("||").map(r=>r.trim()).filter(Boolean);for(const r of t){const[n,...i]=r.split("|"),s=Q(a,n);if(typeof s=="number"||s){if(typeof s!="string")return s;const c=s.replace(/(\n|\t)/g," ").trim();if(c){const o=le(c,i.map(oe));if(o)return o}}}}function re(a){if(a?.startsWith("window")){const e=a.indexOf(".");return e===-1?void 0:P(window,a.substring(e+1))}return X(a?d(a):document.querySelector("pre")?.textContent)}function E(a,e){if(typeof a=="number")return e?e(a):a}function D(a,e){if(typeof a=="string")return e?e(a):a}function Z(a,e){const t=a.map(l=>({...l,vol:l.vol===0?void 0:l.vol}));t.sort((l,u)=>l.vol===void 0||u.vol===void 0?u.chap-l.chap:u.vol-l.vol||u.chap-l.chap);const r={},n={};for(let l=t.length-1;l>=0;l--){const u=t[l],p=u.group??"";r[p]=(r[p]??0)+1;const h=u.lang??"";u.vol!==void 0?n[h]=u.vol:n[h]!==void 0&&(u.inferVol=n[h])}const i=[],s={},c=e?.preferGroup,o=l=>l.lang??"";for(const l of t){const u=o(l),p=s[u],h=i[p];if(!(h&&h.chap===l.chap&&(h.vol===l.vol||h.vol===void 0||l.vol===void 0))){s[u]=i.length,i.push(l);continue}if(!c){h.vol===void 0&&l.vol!=null&&(i[p]=l);continue}h.group!==c&&(l.group==c||h.group&&!l.group||r[l.group??""]>r[h.group??""])&&(i[p]=l)}return i}const kt=/^(a|an|one|last|\d+)\s*([a-z]+)/,_t=/^(\d+)\s*([a-z]+)/,Vt=/^\d+$/,Jt=[{seconds:1,short:"s",locales:{en:"sec",vi:"gi\xE2y",tr:"ikinci",es:"segundo",ja:"\u79D2",ko:"\uCD08",zh:"\u79D2",id:"detik",pt:"segundo"}},{seconds:60,short:"m",locales:{en:"min",vi:"ph\xFAt",tr:"dakika",es:"minuto",ja:"\u5206",ko:"\uBD84",zh:"\u5206",id:"menit",pt:"minuto"}},{seconds:3600,short:"h",locales:{en:"hour",vi:"gi\u1EDD",tr:"saat",fr:"heure",it:"ora",es:"hora",ja:"\u6642\u9593",ko:"\uC2DC\uAC04",zh:"\u5C0F\u65F6",id:"jam",pt:"hora"}},{seconds:86400,short:"d",locales:{en:"day",vi:"ng\xE0y",tr:"g\xFCn",fr:"jour",it:"giorno",es:"d\xEDa",ja:"\u65E5",ko:"\uC77C",zh:"\u5929",id:"hari",pt:"dia"}},{seconds:604800,short:"w",locales:{en:"week",vi:"tu\u1EA7n",tr:"hafta",fr:"semaine",it:"settimana",es:"semana",ja:"\u9031\u9593",ko:"\uC8FC",zh:"\u5468",id:"minggu",pt:"semana"}},{seconds:2592e3,short:"mo",locales:{en:"month",vi:"th\xE1ng",tr:"ay",fr:"mois",it:"mese",es:"mes",ja:"\u30F6\u6708",ko:"\uAC1C\uC6D4",zh:"\u6708",id:"bulan",pt:"m\xEAs"}},{seconds:31536e3,short:"y",locales:{en:"year",vi:"n\u0103m",tr:"yil",fr:"an",it:"anno",es:"a\xF1o",ja:"\u5E74",ko:"\uB144",zh:"\u5E74",id:"tahun",pt:"ano"}}],Ft=["a","an","one","last"];function xe(a,e="en"){if(!a)return;const t=a.toLowerCase().trim().replace(/ago$/,"").trim(),r=Date.now();if(t.includes("now"))return r;if(t.includes("yesterday"))return r-864e5;if(Vt.test(t))return Number(t);const n=new Date(t);if(!isNaN(n.getTime())){const s=n.getTime();return n.getHours()===0&&n.getMinutes()===0&&n.getSeconds()===0?Math.min(r,s+432e5):s}const i=e==="en"?t.match(kt):t.match(_t);if(i){const[,s,c]=i,o=e==="en"&&Ft.includes(s)?1:Number(s);if(isNaN(o))return;const l=Jt.find(u=>c===u.short||u.locales[e]&&c.startsWith(u.locales[e])||c.startsWith(u.locales.en));if(l)return r-o*l.seconds*1e3}}function Ht(a,e=location.origin){if(!a)return;const t=new URL(a.startsWith("//")?`${location.protocol}${a}`:a,location.origin+location.pathname).toString();return t.startsWith(e)?t.replace(e,""):t}function H(a,{slug:e,id:t,lang:r}){if(!a)return"/";let n=a;return e&&(n=n.replace("{titleSlug}",e)),t&&(n=n.replace("{titleId}",t)),r&&(n=n.replace("{lang}",r)),n.endsWith("/")||(n+="/"),n.startsWith("/")||(n="/"+n),n}function ge(a){if(!a)return;let e=a;e.startsWith("//")&&(e=`https:${e}`);try{return new URL(e)}catch{return}}function O(a){if(!(!a||typeof a!="string"))return a.includes("//")?ge(a)?.pathname:a}function Gt(a,e){if(!a)return!1;const t=a.split(".").slice(0,3),r=e.split(".");for(let n=0;n<t.length;n++){const i=+t[n],s=+r[n];if(i!==s)return i>s}return!1}function Kt(a,e){const t=[...e],r=[];let n=!1,i=0;const s=Math.min(a.length,100);for(let o=0;o<s;o++){if(i>=10/2){const g=10-r.length;if(g>0){const m=o+g<=a.length?a.slice(o,o+g):t.slice(0,g);r.push(...m)}break}const l=a[o],u=l.id!==void 0,p=t.findIndex(g=>u&&g.id===l.id||g.slug===l.slug||g.name==l.name),h=p===-1?void 0:t.splice(p,1)[0];!h||h.chapters[0]?.chap!==l.chapters[0]?.chap?(n=!0,r.push({...l,changed:!0})):(i++,r.push(l))}if(!n)return{hasMore:!1,rawReleases:[]};if(r.length<=10)return{hasMore:!!a[a.length-1]?.changed,rawReleases:r};const c=[];for(let o=0;o<r.length;o++){const l=r[o];(l.changed||o<10)&&c.push(l)}return{hasMore:e.length<2||e.length-t.length<2,rawReleases:c}}function Xt(a,e){const t={};return a.forEach(r=>{const n=r.chapters.reduce((i,s)=>{const c=s.lang||e||"";return i[c]||(i[c]=[]),i[c].push(s),i},{});Object.entries(n).forEach(([i,s])=>{const c=`${r.slug}:${i}`;t[c]?(t[c].chapters.push(...s),Z(t[c].chapters)):t[c]={...r,lang:i===""?void 0:i,chapters:s}})}),Object.values(t)}function Me(a,e){const t=a[0]===e?a.substring(1):a;return t[t.length-1]===e?t.substring(0,t.length-1):t}var B=(a=>(a.title="title",a.reader="reader",a.releases="releases",a.chapters="chapters",a.search="search",a))(B||{}),Yt=Object.defineProperty,Qt=(a,e,t)=>e in a?Yt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,L=(a,e,t)=>Qt(a,typeof e!="symbol"?e+"":e,t);class ne{constructor(e){L(this,"headless"),L(this,"siteId"),L(this,"spec"),L(this,"siteMeta"),L(this,"tags"),L(this,"context"),L(this,"appVersion"),L(this,"isGeneric",!1),L(this,"methodsMap",{[B.title]:()=>this.getRawTitleData(),[B.reader]:()=>this.getRawReaderData(),[B.releases]:()=>this.getRawReleasesData(),[B.search]:()=>this.getRawSearchData(),[B.chapters]:()=>this.getRawChaptersData()}),L(this,"normalizedTagsMap"),this.siteId=e.siteId,this.spec=e.spec,this.siteMeta=e.siteMeta,this.tags=e.tags,this.context=e.context??{},this.headless=e.headless===!0,this.appVersion=e.appVersion}async getRawPageByType(e,t=!1,r=!1){this.isGeneric=r;const n=await this.methodsMap[e](),i=!n&&(e===B.title||e===B.reader)&&await ea(this.spec);if(!((r||!t)&&!n&&!i))return{type:e,is404:i,specId:this.spec.id,siteName:this.getSiteName(e,n),favUrl:aa(),htmlLang:ra(),url:location.href,data:this.siteMeta.oneshot&&n?this.transformOneshot(e,n):n,spec:this.spec,context:this.context}}transformOneshot(e,t){if(e==="title"){const r=t.firstUrl;if(!r)return t;const{slug:n}=this.parseReaderUrl(this.siteMeta.readerBase,new URL(r).pathname,r);return{...t,hasMoreChapters:void 0,chapters:[{chap:0,slug:n}]}}if(e==="reader"){const r=t;return{...r,chap:0,title:{...r.title,hasMoreChapters:void 0,chapters:[{chap:0,slug:r.slug}]}}}return t}parseReaderUrl(e,t,r){const n=!this.siteId,i=t.includes("/");let s=e;if(i&&!s&&(s=this.siteMeta.readerBase),s.startsWith("/")||(s="/"+s),s.endsWith("/")||(s=s+"/"),!i)return n?{basePath:"",slug:`${s}${t}`}:{basePath:s,slug:t};const c=s.includes("{");let o=t;if(o[0]!=="/"&&(o.includes("/")||n&&!c))try{o=new URL(t,location.href).pathname}catch{}if(o.endsWith("/")&&(o=o.slice(0,-1)),c){const l=s.split("/").filter(Boolean),u=o.split("/").filter(Boolean);if(l.length<u.length){const p=u[l.indexOf("{lang}")]?.toLowerCase(),h=u[l.indexOf("{titleId}")],g=u[l.indexOf("{titleSlug}")];if(n)return{basePath:"",slug:o,lang:p,titleId:h,titleSlug:g};if(s=s.replace("{lang}",p).replace("{titleId}",h).replace("{titleSlug}",g),o.startsWith(s))return{basePath:s,slug:o.replace(s,""),lang:p,titleId:h,titleSlug:g}}}else if(!n&&o.startsWith(s))return{basePath:s,slug:o.replace(s,"")};return{basePath:"",slug:o}}parseTitleUrl(e){if(typeof e!="string")return{};const t=O(e);if(t===void 0)return{};if(this.siteMeta.single)return{slug:Me(t,"/")};const r=t?.split("/").filter(Boolean);if(!r?.length)return{};const n=this.siteMeta.titleBase.split("/").filter(Boolean),i=n.indexOf("{slug}");return(i===-1?r.length-n.length>=1:r.length===n.length)?{id:r[n.indexOf("{id}")],slug:this.siteId?i===-1?r.slice(n.length).join("/"):r[i]:t}:{slug:t}}finalizeRawReleasesData(e){const t=this.spec.releases?.title?.lang?this.siteMeta.defaultLang:void 0,r=Xt(e.rawReleases,t);if(r.length)return this.context.oldRawReleases?Kt(r,this.context.oldRawReleases):{rawReleases:r,hasMore:!0}}getTagIdsFromNames(e){if(!e?.length)return;const t=this.normalizedTagsMap??(this.normalizedTagsMap=Zt(this.tags)),r=e.map(n=>t[he(n)]).filter(Boolean);return r.length===0?void 0:Array.from(new Set(r)).sort((n,i)=>n-i)}getSiteName(e,t){if(t&&this.siteMeta.single){if(e===B.title)return t.name;if(e===B.reader)return t.title.name}const r=this.spec.name,n=(r&&d(r))??d('meta[property="og:site_name"]|attr:content');return n&&n.length>2?n:void 0}isAppVersionNewerThan(e){return this.appVersion==="ext"||Gt(this.appVersion,e)}}L(ne,"specId"),L(ne,"siteId");function Zt(a){const e={};return a.forEach(({id:t,name:r,altNames:n})=>{e[he(r)]=t,n&&n.forEach(i=>{e[he(i)]=t})}),e}function he(a){const e=a.toLowerCase().replaceAll(/[^a-z0-9\s]/gi,"").trim().replaceAll(/\s+/g," ");return e[e.length-1]==="s"?e.substring(0,e.length-1):e}async function ea(a){return ta()===404||a[404]&&await K(a[404],{lazy:!0,timeoutMs:5e3})?!0:document.title.toLowerCase().includes("not found")}function ta(){try{return window.performance.getEntries().find(a=>a.entryType==="navigation")?.responseStatus}catch{return}}function aa(){return d('link[rel="icon"][sizes="32x32"],link[rel="icon"][sizes="192x192"],link[rel="apple-touch-icon"]|attr:href || link[rel="icon"]|attr:href')}function ra(){return d("html|attr:lang")||"en"}class T extends ne{async getRawReleasesData(){const e=await this.getRawReleases();if(e?.length)return this.finalizeRawReleasesData({rawReleases:e})}async getRawReleases(){const e=this.spec?.releases?.title;if(!e)return;if(e.json){const c=(await this.queryJsonRawReleases(D(e.json),e))?.filter(o=>o.chapters.length);return c?.length?c:void 0}const t=e.chapter,r=await K(e.sel,{lazy:!0,all:!0});if(!r?.length)return;const n=Date.now(),i=r.slice(0,100).map(c=>{const o=d(e.url??(c.tagName==="A"?"|attr:href":"a|attr:href"),c),l=O(o),u=d(e.name,c)??d("img|attr:alt",c),p=d(e.at,c);if(!l||!u)return;const h=xe(p,this.siteMeta.defaultLang);return{titleEl:c,id:d(e.id,c),path:l,name:u,lang:d(e.lang,c)?.toLowerCase(),at:h?Math.min(h,n):void 0}}).filter(Boolean);if(!i.length)return;const s=[];return await Promise.all(i.map(async c=>{const{path:o,titleEl:l,lang:u,at:p,...h}=c,{id:g,slug:m}=this.parseTitleUrl(o);if(!m)return;const w=h.id||g,v=this.queryChapters({chapterSpec:t,root:l,titleInfo:{id:w,slug:m,name:c?.name,lang:u}});v&&s.push({slug:m,chapters:u||p?v.map(y=>({...y,elIndex:void 0,lang:y.lang??u,ts:y.ts??p})):v,...h,id:w})})),s}getRawTitleData(){return this.getTitleData(this.spec.title)}async getTitleData(e){if(!e||!await this.isTitlePage(e)||this.spec[404]&&document.querySelector(this.spec[404]))return;const{id:t,slug:r}=this.parseTitleUrl(location.pathname);if(this.siteMeta.single?r===void 0:!r)return;const n=t||d(e.id),i=typeof e.chapter=="string"?{sel:e.chapter}:e.chapter,s=(await this.getChaptersResult(e.chapter,{lazy:!!this.context.includeHiddenChapters||(i?.lazy??!0),titleInfo:{id:n,slug:r,name:d(e.name??"h1|text")},includeHiddenChapters:this.context.includeHiddenChapters}))?.chapters,c=d(e.name??"h1|text");if(!c)return;const o=await this.getValidImgSrc(e.img,c),l=o&&this.context.includeImgBytes?await Nt(o):void 0,u=this.getFirstChapterUrl(),p=e.firstBtn,h=Y(e.tags)?.map(w=>w.split(",")).flat().map(w=>w.trim()).filter(Boolean),g=d(e.type),m=Y(e.langs)?.map(w=>w.toLowerCase());return{id:n||d(e.id),url:location.origin+location.pathname,slug:r,name:c,langs:m?.length?m:e.langs&&this.siteMeta.defaultLang?[this.siteMeta.defaultLang]:void 0,tags:this.getTagIdsFromNames([...h??[],...g?[g]:[]]),chapters:s??[],hasMoreChapters:!s?.length&&!e.chapter||(e.hasMore?!!document.querySelector(e.hasMore):void 0)||(!this.context.includeHiddenChapters&&i?.allBtn?!!ce(i.allBtn):void 0),img:o,imgBytes:l,firstUrl:u,firstBtn:!u&&p&&document.querySelector(p)?p:void 0,trackers:this.getTrackersMap(e.trackers)}}getTrackersMap(e){if(!e)return;const t=typeof e=="boolean"||e.mal===""?'a[href*="myanimelist.net"]|attr:href':e.mal,r=typeof e=="boolean"||e.anl===""?'a[href*="anilist.co"]|attr:href':e.anl,n=d(t),i=d(r);if(!n&&!i)return;const s={};return n&&(s.mal=n.split("?")[0].split("#")[0].split("manga/").slice(-1)[0].split("/")[0]),i&&(s.anl=i.split("?")[0].split("#")[0].split("manga/").slice(-1)[0].split("/")[0]),s}getFirstChapterUrl(){const e=d(this.spec.title?.first);if(e){if(e.startsWith("http"))return e;try{return new URL(e,location.href).href}catch{return}}}getValidImgSrc(e,t){return A(33,30,()=>{const r=d(e)||d(`img[alt="${t.replaceAll('"','\\"')}"]|[attr:data-src,attr-contain:src]`);return!r||r.startsWith("data:")?void 0:document.querySelector(`img[srcset*="${r}"]`)?r.split(" ")[0]:r})}resolveReaderTitleSpec(){const e=this.spec.reader?.title;return typeof e=="string"?{sel:e}:e}getRawReaderTitleData(e){const t=this.resolveReaderTitleSpec();if(!t)return;const r=t.sel?document.querySelector(t.sel)??void 0:void 0;if(t.sel&&!r)return;const n=d(t.name??"|text",r);if(!n)return;const i=Ht(d(t.img,r));if(e?.slug){let l=this.siteMeta.titleBase;if(e?.id&&(l=l.replace("{id}",e.id)),!l.includes("{"))return l=l.includes("{slug}")?l.replace("{slug}",e.slug):`${l}/${e.slug}`,this.siteMeta.trailing&&!l.endsWith("/")&&(l+="/"),{name:n,img:i,url:new URL(l,location.origin).href,slug:e.slug,id:e.id||d(t.id,r)}}const s=d(t.url??"|attr:href",r),{slug:c,id:o}=this.parseTitleUrl(s);if(!(!n||!s||(this.siteMeta.single?c===void 0:!c)))return{name:n,img:i,url:new URL(s,location.origin).href,slug:c,id:o||d(t.id,r)||e?.id}}async getRawReaderData(){const{spec:e,siteMeta:t}=this;if(!e?.reader||!await this.isReaderPage(e.reader,!!e.generic))return;const r=this.siteMeta.noReader?void 0:await this.getReaderType(e.reader);if(!r&&!this.isAppVersionNewerThan("6.7.0"))return;const n=this.parseReaderUrl(t.readerBase,location.pathname,location.href),{slug:i,basePath:s,lang:c}=n,o=this.getRawReaderTitleData({id:n.titleId,slug:n.titleSlug});if(!o)return;const l=d(e.reader.group),{id:u,slug:p}=o,h=e.reader?.chapter,g=!!this.context.disableLazyChapters,m=!!this.context.includeHiddenChapters,w=(await this.getChaptersResult(h,{titleInfo:{id:u,slug:p,name:o.name,lang:c},lazy:m||!g,includeHiddenChapters:m,timeoutMs:m?3e3:25e3,includeIndex:!0,basePath:s}))?.chapters,v=d(e.reader.label??"h1|text"),y=v?.toLowerCase().replace(o.name.toLowerCase(),"").trim(),f=this.siteMeta.oneshot?{chap:0}:y?q(y):void 0;if(!f)return;const b=e.reader.prev?this.findAdjacentChapter({spec:e.reader.prev,basePath:s,titleUrl:o.url,titleName:o.name}):void 0,M=e.reader.next?this.findAdjacentChapter({spec:e.reader.next,basePath:s,titleUrl:o.url,titleName:o.name}):void 0,C=u??(()=>{const I=this.spec.reader?.title;if(typeof I=="string"||!I?.id)return;const j=I.sel?document.querySelector(I.sel)??void 0:void 0;if(!(I.sel&&!j))return d(I.id,j)})();return this.finalizeRawReaderData({...f,contentType:r,name:r===F.novel&&v&&v.split(" ").filter(Boolean).length>(v.toLowerCase().includes("vol")?4:2)?v:void 0,lang:c??d(e.reader.lang)?.toLowerCase()??(e.reader.lang?this.siteMeta.defaultLang:void 0),slug:i,basePath:s,group:l??d(e.reader.group),imgs:Y(e.reader.imgs),title:{id:C,url:o.url,slug:p,name:o.name,langs:c?[c]:void 0,img:o.img,chapters:w??[],hasMoreChapters:!w?.length&&!m&&!!this.context.disableLazyChapters&&!!(typeof h=="string"||h?.sel)}},{prev:b,next:M})}async getRawChaptersData(){const e=this.siteMeta.chapters;if(e===ae.blank)return;const t=this.context.lang,r=e===ae.reader,n=!e||e===ae.title,i=r?(await this.getRawReaderData())?.title:n?await this.getRawTitleData():void 0;if((r||n)&&!i)return;const s=await(async()=>{if(i?.chapters.length&&!i.hasMoreChapters)return i.chapters;const o={id:i?.id??this.context.rawId,slug:i?.slug??this.context.titleSlug,name:i?.name,lang:t},l=this.spec.chapters;if(l?.chapter?.json&&!l?.pages)return await this.getRawChaptersFromJson({chapterSpec:l.chapter,pagingSpec:l.paging,titleInfo:o});const u=l?.chapter??(n?this.spec.title?.chapter:void 0),p=l?.pages;return u?await this.getRawChaptersFromDom({chapterSpec:typeof u=="string"?{sel:u}:u,pagesSpec:p,titleInfo:o}):i?.chapters})();if(!s)return;const c=t?s.filter(o=>!o.lang||o.lang===t):s;return{chapters:c,title:i?{...i,chapters:[]}:await this.getTitleData(this.spec.chapters?.title),hasMore:!1,asc:!1,total:c.length}}async getRawChaptersFromDom({chapterSpec:e,pagesSpec:t,titleInfo:r}){const n=H(this.siteMeta.readerBase,r),i=await this.getChaptersResult(e,{titleInfo:r,lazy:!0,includeHiddenChapters:!0,basePath:n});if(!i||!t)return i?.chapters;const s=i.chapters,c=this.context.after??this.context.startAfter;if(c&&s[s.length-1].chap-1<=c.chap)return s;let o=s[0]?.slug;const l=async R=>{if(e.json){const $=await this.queryJsonChapters({chapterSpec:e,titleInfo:r,page:R});return $&&$[0].slug!==o?$:void 0}await z(100);for(let $=0;$<140;$++){await z(50);const x=e.json?await this.queryJsonChapters({chapterSpec:e,titleInfo:r,page:R}):this.queryChapters({chapterSpec:e,titleInfo:r,basePath:n}),S=x?.[0].slug;if(!(!S||S===o))return o=S,x}},u=t?.num??"|text";let p=1;const h=()=>{if(t.sel){const R=p+1;return Array.from(document.querySelectorAll(t.sel)).find($=>ue(d(u,$))===R)}if(t.nextBtn){const R=document.querySelector(t.nextBtn);if(R&&!R.disabled)return R}};if(!c){for(;;){const R=h();if(!R)break;V(R),p++;const $=await l(p);if(!$)break;s.push(...$)}return this.organizeChapters(s)}const g=c.chap;if(g>=s[s.length-1].chap)return s;const m=()=>!h();if(m())return s;const w=()=>{const R=[],$=t.sel?Array.from(document.querySelectorAll(t.sel)):void 0;return $?.length&&$.length>1&&$.forEach(x=>{const S=ue(d(u,x));S&&R.push({el:x,page:S})}),R},v=()=>{const R=t.lastBtn?document.querySelector(t.lastBtn):void 0;return R?.disabled?void 0:R},y=async()=>(await A(100,70,()=>m()?!0:void 0),w().sort((R,$)=>$.page-R.page)[0].page);if(g<=1){const R=v();if(R){V(R);const $=await y();return await l($)}}let f={chapters:s,page:1},b;const M=()=>{const R=f.chapters[f.chapters.length-1].chap;if(!b){const S=Math.abs(R-g);return f.page+Math.floor(S/f.chapters.length)+1}const $=b.chapters[0].chap,x=(g-$)/(R-$);return Math.max(f.page+1,Math.min(b.page-1,b.page-Math.round((b.page-f.page)*x)))},C=()=>Math.max(f.page+1,Math.ceil(f.chapters[0].chap/f.chapters.length)),I=()=>{const R=w(),$=p+1;if(t.nextBtn&&!R.some(S=>S.page===$)){const S=document.querySelector(t.nextBtn);S&&!S.disabled&&R.push({page:p+1,el:S})}const x=p-1;if(x>0&&t.prevBtn&&!R.some(S=>S.page===x)){const S=document.querySelector(t.prevBtn);S&&!S.disabled&&R.push({page:p-1,el:S})}return R},j=R=>{const $=I(),x=$.find(W=>W.page===R);if(x)return x;const S=$.sort((W,we)=>Math.abs(R-W.page)-Math.abs(R-we.page))[0],te=S?Math.abs(S.page-R):void 0;if(!b){const W=v();if(W){if(!te)return{el:W,page:1e3,isLast:!0};const we=C();if(te>Math.abs(we-R))return{el:W,page:1e3,isLast:!0}}}if(S&&S.page>f.page&&(!b||b.page>S.page))return S},G=await(async()=>{for(;;){const R=M(),$=j(R);if(!$)return f.chapters;V($.el),p=$.isLast?await y()??1e3:$.page;const x=await l(p);if(!x)return;const S=x[x.length-1].chap;if(x[0].chap>g&&g>=S||S>g&&($.isLast||m()))return x;const te={chapters:x,page:p};if(x[0].chap<=g?b=te:f=te,b&&Math.abs(b.page-f.page)<=1)return f.chapters}})();return G&&G[0].chap!==s[0].chap?[s[0],...G]:G}async getRawChaptersFromJson({chapterSpec:e,pagingSpec:t,titleInfo:r}){const n=H(this.siteMeta.readerBase,r),i=await this.queryJsonChaptersResult({chapterSpec:e,pagingSpec:t,titleInfo:r});if(!i)return;const{chapters:s,total:c,fetchUrl:o,limit:l}=i;if(!s.length||l>=c||!t||!t.pageKey&&!t.skipKey)return s;const u=this.context.after??this.context.startAfter;if(u&&s[s.length-1].chap-1<=u.chap)return s;const p=t.limitValue??l,h=Math.ceil(c/p),g=p<l,m=g?1:0,w=o&&t.limitKey&&t.limitValue?o.replace(new RegExp(`${t.limitKey}=\\d+`),`${t.limitKey}=${t.limitValue}`):o??location.href,v=(await Promise.all(Array.from({length:h-m},async(y,f)=>{let b=w;t.pageKey?t.pageKey.split("||").map(C=>C.trim()).forEach(C=>{b=b.replace(new RegExp(`(\\?|&)${C}=\\d+`),I=>`${I[0]}${C}=${f+1+m}`)}):t.skipKey&&t.skipKey.split("||").map(C=>C.trim()).forEach(C=>{b=b.replace(new RegExp(`(\\?|&)${C}=\\d+`),I=>`${I[0]}${C}=${(f+m)*p}`)});const M=await this.fetch(b);return this.parseJsonChapters(M,{chapterSpec:e,basePath:n})??[]}))).flat();return v.length?this.organizeChapters(g?v:[...s,...v]):s}async getRawSearchData(){const e=this.spec.search,t=this.context.lang;if(!e)return;const r=typeof e.title=="string"?{sel:e.title}:e.title;if(r.json){const l=await this.queryJsonRawReleases(D(r.json),r,t);return l?.length?{rawReleases:l}:void 0}e.delay?await z(e.delay):e.loading&&await z(500);const{chapter:n}=r,i=[],s=e.lazy?e.empty||e.loading?550:100:1;let c=0;const o=await A(s,50,()=>{const l=Array.from(document.querySelectorAll(r.sel));if(l.length||e.empty&&document.querySelector(e.empty)||e.loading&&!document.querySelector(e.loading)&&++c>=3)return l});if(o)return await Promise.all(o.map(async l=>{const u=d(r.url??(l.tagName==="A"?"|attr:href":"a|attr:href"),l),p=O(u),h=d(r.name,l)??d("img|attr:alt",l),{slug:g,id:m}=this.parseTitleUrl(p);if(!p||!h||!g)return;const w=d(r.lang,l);w&&t&&w!==t||i.push({id:m||d(r.id,l),slug:g,name:h,img:d(r.img??"img|[attr:data-src,attr-contain:src]",l),lang:w,chapters:n?this.queryChapters({chapterSpec:typeof n=="string"?{sel:n}:n,root:l,titleInfo:{id:m,slug:g,name:h,lang:w}})??[]:[]})})),{rawReleases:i}}async queryJsonRawReleases(e,t,r){const n=e&&(e.startsWith("http")||e.startsWith("/"))?(await this.getFetchResult(e))?.value:re(e),i=typeof t=="string"?{sel:t}:t,s=P(n,i.sel);if(!s?.length||!Array.isArray(s))return;const c=[];return s.forEach(o=>{const l=D(P(o,i.lang))?.toLowerCase();if(l&&r&&l!==r)return;const u=P(o,i.url),{id:p,slug:h}=E(u,f=>({id:void 0,slug:f+""}))??this.parseTitleUrl(O(u)),g=D(P(o,i.name));if(!h||!g)return;const m=p||P(o,i.id),w=E(m,f=>f+"")??D(m),v=i.chapter&&typeof i.chapter!="string"?this.parseJsonChapters(o,{chapterSpec:i.chapter,basePath:H(this.siteMeta.readerBase,{id:w,slug:h,lang:l})}):void 0,y=D(P(o,i.img),f=>{try{return new URL(f,location.origin).href}catch{return}});c.push({id:w,slug:h,name:g,lang:l,img:y,chapters:v??[]})}),c}parseJsonChapters(e,t){return this.parseJsonChaptersResult(e,t)?.chapters}parseJsonChaptersResult(e,t){if(!e)return;const r=P(e,t.chapterSpec.sel);if(!r)return;const n=Array.isArray(r)?r:[r];if(!n?.length)return;const i=[];if(n.forEach(c=>{const o=this.parseJsonChapter(c,t);o&&i.push(o)}),!i.length)return;const s=E(P(e,t.pagingSpec?.lastPage));return{chapters:this.organizeChapters(i),limit:n.length,total:s&&s>1?s*n.length:E(P(e,t.pagingSpec?.total))??n.length}}parseJsonChapter(e,{chapterSpec:t,basePath:r}){const n=P(e,t.label),i=E(n,m=>({vol:void 0,chap:m}))??q(D(n));if(!i)return;const s=P(e,t.url),c=D(s)??E(s,m=>m+""),o=c?this.parseChapterUrl(r,c):void 0,l=i.vol??P(e,t.vol),u=E(l)??D(l,m=>+m),p=P(e,t.id),h=P(e,t.at),g=h?new Date(h).getTime():void 0;return{slug:o?.slug,vol:u||void 0,chap:i.chap,id:D(p)??E(p,m=>m+""),lang:D(P(e,t.lang))?.toLowerCase(),group:D(P(e,t.group)),ts:g||void 0}}async queryJsonChapters(e){return(await this.queryJsonChaptersResult(e))?.chapters}async queryJsonChaptersResult(e){const{chapterSpec:t,pagingSpec:r}=e;let n,i;if(typeof t.json=="string"&&(t.json.startsWith("http")||t.json.startsWith("/"))){const c=this.replaceDynamicParams(t.json,e.titleInfo),o=await this.getFetchResult(e.page?c.replace("{page}",e.page+""):c);if(!o)return;n=o.url,i=o.value}else i=re(D(t.json));const s=this.parseJsonChaptersResult(i,{chapterSpec:t,pagingSpec:r,basePath:H(this.siteMeta.readerBase,e.titleInfo)});return s?{...s,fetchUrl:n}:void 0}replaceDynamicParams(e,t){let r=e;return t.slug&&(r=r.replace("{titleSlug}",t.slug)),t.id&&(r=r.replace("{titleId}",t.id)),t.lang&&(r=r.replace("{lang}",t.lang)),r}queryChapters(e){return this.queryChaptersResult(e)?.chapters}queryChaptersResult({root:e,chapterSpec:t,titleInfo:r,basePath:n,includeIndex:i,group:s,minSize:c}){const o=this.replaceDynamicParams(t.sel,r),l=Array.from((e??document.documentElement)?.querySelectorAll(o));if(c&&l.length<=c)return;const u=(l??[]).map((y,f)=>{const b=y.tagName;return{id:d(t.id,y),url:d(t.url??(b==="A"?"|attr:href":b==="OPTION"?"|attr:value":"a|attr:href"),y),label:d(t.label??"|text",y)?.toLowerCase(),vol:d(t.vol,y),at:d(t.at,y),lang:d(t.lang,y),group:d(t.group,y),elIndex:f}}),p=r.name?.toLowerCase(),h=p&&!!u[0]?.label?.startsWith(p),g=u.map(({label:y,vol:f})=>{if(!y)return;const b=h?y?.replace(p,"").trim():y,M=q(b);if(!M||M.vol!==void 0||!f)return M;const C=q(f)?.vol;return C?{...M,vol:C}:M}),m=Date.now(),w=[],v=n??H(this.siteMeta.readerBase,r);if(g.forEach((y,f)=>{if(!y)return;const{id:b,url:M,at:C,lang:I,group:j,elIndex:G}=u[f],R=xe(C,this.siteMeta.defaultLang),$={...y,id:b,lang:I?.toLowerCase(),group:j,ts:R?Math.min(m,R):void 0};i&&($.elIndex=G);const x=M?this.parseChapterUrl(v,M):void 0;x&&($.slug=x.slug,x.lang&&($.lang=x.lang)),w.push($)}),!!w.length)return{chapters:this.organizeChapters(w,s??this.context.preferGroup),size:w.length}}async getChaptersResult(e,{root:t,titleInfo:r,includeHiddenChapters:n=!1,lazy:i=!0,timeoutMs:s,includeIndex:c,basePath:o,preferGroup:l}){const u=typeof e=="string"?{sel:e}:e,p=u?.sel;if(!u||p===void 0||u.trigger&&!n)return;const h=u?.json?p:this.replaceDynamicParams(p,r);let g;if(n){if(u.trigger){if(g=await K(u.trigger,{timeoutMs:5e3,lazy:!0}),!g)return}else if(u.allBtn){const v=u.allBtn;i?await A(100,100,()=>{const y=ce(v);return y?(g=y,!0):(t??document).querySelector(h)||void 0}):g=ce(v)||void 0}}if(u?.json){g&&V(g);const v=await this.queryJsonChaptersResult({chapterSpec:u,titleInfo:r});return this.dismissHiddenReaderChapters({chapterSpec:u,triggerEl:g,root:t}),v?{chapters:v.chapters,size:v.total}:void 0}const m=g&&u.allBtn?(t??document.documentElement)?.querySelectorAll(h).length:void 0;let w=0;return await A(i?s?s/10:33:1,300,async()=>{w!==1&&w%10<=1&&g&&(V(g),await z(50)),w+=1;const v=this.queryChaptersResult({chapterSpec:{sel:h,...u},basePath:o,titleInfo:r,includeIndex:c,group:l,minSize:m});if(v)return this.dismissHiddenReaderChapters({chapterSpec:u,triggerEl:g,root:t}),v})}dismissHiddenReaderChapters({chapterSpec:e,root:t,triggerEl:r}){const n=(e.dismiss?(t??document.body).querySelector(e.dismiss):void 0)??r;n&&V(n)}parseChapterUrl(e,t){if(t?.startsWith("#")||t?.startsWith("/#")||t?.includes("javascript"))return;if(t?.startsWith("http")&&!t.includes(`//${location.hostname}/`))return{slug:t};const r=O(t);if(r)return this.parseReaderUrl(e,r,t)}async isTitlePage(e){return!(!e||(e.sel||e.lazy)&&!await K(e.sel??e.name?.split("|")?.[0]??"h1",{lazy:!!e.lazy}))}async isReaderPage(e,t){const r=e?.sel;return t&&!r?!1:!r||!!await K(r,{lazy:!!e.lazy})}async getReaderType(e){const t=e.content;return t?wt(t,{paraSel:e?.para,validateImgSize:!this.headless,timeoutMs:15e3,include:this.isGeneric?[F.novel,F.manga]:this.siteMeta.contentTypes??[F.manga]}):e.imgs||e.imgDivs?F.manga:void 0}findAdjacentChapter({spec:e,basePath:t,titleUrl:r,titleName:n}){if(typeof e=="string"){const l=this.getAdjacentChapterSlug(d(e),{titleUrl:r,basePath:t}),u=Ce(l);return u?{...u,slug:l}:void 0}const i=e.sel?document.querySelector(e.sel)??void 0:void 0;if(e.sel&&!i)return;const s=e.url?this.getAdjacentChapterSlug(d(e.url,i),{basePath:t,titleUrl:r}):void 0,c=d(e.label,i)?.toLowerCase().replace(n.toLowerCase(),""),o=q(c)??Ce(s);if(o)return s===void 0?o:{...o,slug:s}}getAdjacentChapterSlug(e,t){if(!e||e.startsWith("#")||e.startsWith("/#")||e.includes("javascript"))return;const r=O(e);if(r&&!(r===location.pathname||t.titleUrl===r||t.titleUrl===`${location.origin}${r}`))return this.parseReaderUrl(t.basePath,r,e).slug||void 0}finalizeRawReaderData(e,t={}){const{prev:r,next:n}=t,i=e.title.chapters;if(!i.length)return r||n?{...e,prev:r,next:n}:e;let s,c,o,l;for(let u=0;u<i.length&&!(s&&(!r||o)&&!n&&l);u++){const p=i[u];!s&&de(e,p)?(s=p,c=u):!o&&r&&de(r,p)?o=p:!l&&n&&de(n,p)&&(l=p)}return c!==void 0&&(o??(o=i[c+1]),l??(l=i[c-1])),o&&!o.slug&&r?.slug&&(o.slug=r.slug),l&&!l.slug&&n?.slug&&(l.slug=n.slug),s&&!s.slug&&(s.slug=e.slug),{...e,inferVol:s?.inferVol,group:e.group??s?.group,prev:o,next:l}}organizeChapters(e,t){return Z(e,{preferGroup:t??this.context.preferGroup})}getFetchResult(e){return U(e)}async fetch(e){try{const t=await fetch(e,{signal:AbortSignal.timeout(2e4)});return t.ok?await t.json():void 0}catch{return}}}function de(a,e){return a.slug&&a.slug==e.slug||a.chap===e.chap&&(a.vol===e.vol||a.vol===void 0)}var na=Object.defineProperty,sa=(a,e,t)=>e in a?na(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ia=(a,e,t)=>sa(a,e+"",t);class De extends T{async getRawReaderData(){const e=`https://${location.host}/api/`,[t,r]=await Promise.all([U(`${e}manga/info`),U(`${e}read/chapter`)]),n=t?.value,i=r?.value;if(!n||!i)return;const s=this.parseReaderUrl(this.siteMeta.readerBase,location.pathname,location.href);if(!s)return;const c=q(i.readChapter?.title);if(c)return this.finalizeRawReaderData({basePath:s.basePath,slug:s.slug,...c,imgs:i.readChapter.pages.map(o=>new URL(o.image,location.origin).href),title:{url:`${location.origin}/manga/${n.id}`,slug:n.id,name:n.title,tags:this.getTagIdsFromNames([n.type].filter(Boolean)),chapters:this.organizeChapters(n.chapters.map(o=>({slug:o.id,chap:o.number})))}})}}ia(De,"specId","atsu");var oa=Object.defineProperty,la=(a,e,t)=>e in a?oa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ca=(a,e,t)=>la(a,e+"",t);class Te extends T{async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=window.pages,r=t?.map(n=>n?.image).filter(Boolean);if(!(!Array.isArray(r)||!r.length))return{...e,imgs:r,isWebtoon:t.some(n=>n.height/n.width>2)}}}ca(Te,"specId","dynasty");var ua=Object.defineProperty,pa=(a,e,t)=>e in a?ua(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ga=(a,e,t)=>pa(a,e+"",t);class Pe extends T{async getRawReaderData(){const e=await super.getRawReaderData();if(!e||!e.imgs?.length)return e;const t=await A(100,50,()=>window.g_th);if(!t)return{...e,imgs:void 0};const r=e.imgs[0],n=r.lastIndexOf("/"),i=n===-1?"":r.substring(0,n+1),s=n===-1?r:r.substring(n+1),c=D(d(".total_pages|text"),p=>+p)||1,o=s.substring(s.lastIndexOf(".")+1),l={j:"jpg",p:"png",w:"webp",g:"gif",b:"bmp"},u=Array.from({length:c},(p,h)=>`${i}${h+1}.${l[t[h+1]?.[0]]??o}`);return{...e,imgs:u}}}ga(Pe,"specId","imhen");var ha=Object.defineProperty,da=(a,e,t)=>e in a?ha(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,fa=(a,e,t)=>da(a,e+"",t);class Ie extends T{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=this.spec.chapters?.chapter;if(t){const r=await U(`https://yuzuki.${location.hostname}/api/v2/series/{id}`);if(r){const n=this.parseJsonChapters(r.value,{chapterSpec:t,basePath:H(this.siteMeta.readerBase,{slug:e.slug})});if(n)return{...e,chapters:n}}}return{...e,hasMoreChapters:!0}}async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=ma();return{...e,title:{...e.title,img:Be(e.title.slug),chapters:t}}}async getRawSearchData(){const e=await super.getRawSearchData();if(e)return{...e,rawReleases:e.rawReleases.map(t=>({...t,img:Be(t.slug)}))}}}fa(Ie,"specId","kagane");function Be(a){return`https://api.${location.hostname}/api/v1/series/${a}/thumbnail`}function ma(){const a=["initialChapters"],e=Array.from(document.querySelectorAll("script:not([src])"));for(let t=0;t<e.length;t++){const r=e[t].textContent;if(r)for(const n of a){const i=r.indexOf(n);if(i===-1)continue;const s=r.slice(i),c=X(s.slice(s.indexOf("[{"),s.indexOf('}],\\"cached_at')+2).replaceAll("\\",""));if(!c?.length||!Array.isArray(c))return[];try{const o=[];return c.map(l=>{const u=q(l.name);u&&o.push({...u,slug:l.id,ts:l.created?new Date(l.created).getTime():void 0})}),Z(o)}catch{return[]}}}return[]}var wa=Object.defineProperty,va=(a,e,t)=>e in a?wa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ya=(a,e,t)=>va(a,e+"",t);class fe extends T{async getRawReleasesData(){const e=this.getNewSiteMeta(this.spec.releases?.title),t=await super.getRawReleasesData();if(t)return{...t,siteMeta:e}}async getRawTitleData(){if(!await this.isTitlePage(this.spec.title))return;const e=this.getNewSiteMeta(this.spec.title,`${location.origin}${location.pathname}`),t=await super.getRawTitleData();if(t)return{...t,siteMeta:e}}async getRawReaderData(){if(!await this.isReaderPage(this.spec.reader,this.spec.generic))return;const e=this.getNewSiteMeta(this.spec.reader?.title),t=await super.getRawReaderData();if(t)return{...t,siteMeta:e}}async getRawSearchData(){const e=this.getNewSiteMeta(this.spec.search?.title),t=await super.getRawSearchData();if(t)return{...t,siteMeta:e}}getNewSiteMeta(e,t){if(t??(t=ba(e)),!t)return;if(!this.siteId){const s={...this.siteMeta,releases:null,titleBase:"",readerBase:"",titleIdType:Se.name,trailing:t.endsWith("/"),defaultLang:d("html|attr:lang")||"en"};return this.siteMeta=s,s}const r=this.extractBasePath(t),n=this.siteMeta;if(n.titleBase===r)return;const i={...n,titleBase:r,readerBase:n.readerBase.replace(n.titleBase,r)};return this.siteMeta=i,i}extractBasePath(e){const t=e.startsWith("/")?e:O(e);return Me(t,"/").split("/").slice(0,-1).join("/")}}ya(fe,"specId","madara");function ba(a){if(!a)return;const e=typeof a=="string",t=e?a:a.sel,r=t?document.querySelector(t)??void 0:void 0;return d(e?"|attr:href":a.url,r)}var Ra=Object.defineProperty,$a=(a,e,t)=>e in a?Ra(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Sa=(a,e,t)=>$a(a,e+"",t);class je extends T{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=await Ae(this.context.preferGroup),r=new Set;return t.forEach(({lang:n})=>{n&&r.add(n)}),{...e,chapters:t,langs:r.size?Array.from(r):[this.siteMeta.defaultLang||"en"]}}async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=await Ae(e.group||this.context.preferGroup),r=t[0]?.lang;return this.finalizeRawReaderData({...e,lang:r,title:{...e.title,chapters:t,langs:r?[r]:void 0}})}}Sa(je,"specId","mangaball");async function Ae(a){const e=await A(100,50,()=>{try{return ALL_CHAPTERS.length?ALL_CHAPTERS:void 0}catch{return}});if(!e)return[];const t=[];return e.forEach(r=>{r.translations.forEach(n=>{const i=n.volume;t.push({chap:r.number_float,vol:i>0?i:void 0,slug:n.id,lang:n.language,group:n.group?.name,ts:new Date(n.date).getTime()})})}),Z(t,{preferGroup:a})}var Ca=Object.defineProperty,xa=(a,e,t)=>e in a?Ca(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ma=(a,e,t)=>xa(a,e+"",t);const Da={a:.1,b:.2,c:.3,d:.4};class Ee extends T{parseTitleUrl(e){return{slug:O(e)?.split("/").filter(Boolean)[1]}}async getRawReleases(){const e=re()?.data;if(!e)return;const t=[];return e.forEach(({relationships:r,attributes:n,id:i})=>{const s=r.find(({type:p})=>p==="manga"),c=se(n.volume),o=ee(n.chapter);if(o===void 0)return;const{title:l}=s.attributes,u=l.en??Object.values(l)[0];t.push({slug:s.id,name:u,chapters:[{slug:n.externalUrl||i,vol:c,chap:o,lang:n.translatedLanguage,ts:new Date(n.readableAt).valueOf()}]})}),t}async getRawTitleData(){const e=`https://api.${location.host}/manga/`;let[t,r]=await Promise.all([U(`${e}{id}`,{timeoutMs:5e3}),U(`${e}{id}/feed`,{timeoutMs:5e3})]);if(!t||!r){const[o,l]=await Promise.all([this.fetch(`${e}{id}`),this.fetch(`${e}{id}/feed`)]);if(!o||!l)return;t={url:"",value:o},r={url:"",value:l}}const n=r.value.data?.map?.(o=>{const{attributes:l,id:u}=o;if(typeof l!="object"||typeof u!="string"||!u)return;const{externalUrl:p,title:h,volume:g,chapter:m,translatedLanguage:w}=l;return{slug:p||u,label:h||void 0,vol:se(g),chap:ee(m),lang:w||"en",ts:new Date(l.readableAt).valueOf()}}).filter(o=>o?.chap!=null)??[],{data:i}=t.value;if(!i)return;const s=Ue({data:i,getTagIdsFromNames:o=>this.getTagIdsFromNames(o)});if(!s)return;const c=this.context.includeImgBytes&&s.img?await pe(s.img):void 0;return{...s,imgBytes:c,chapters:this.organizeChapters(n),hasMoreChapters:(r.value.total||0)>(r.value.limit||0)}}async getRawReaderData(){const e="https://api.mangadex.org/",[t,r,n]=await Promise.all([U(`${e}chapter/{id}`),U(`${e}at-home/server/{id}`),U(`${e}manga/{id}/aggregate`)]);if(!t||!r||!n)return;const i=t.value.data,{volume:s,chapter:c,externalUrl:o,translatedLanguage:l}=i.attributes||{},{baseUrl:u,chapter:{data:p,dataSaver:h,hash:g}}=r.value,m=i.relationships?.find?.(j=>j.type==="manga");if(!m)return;const w=Ue({data:m,getTagIdsFromNames:j=>this.getTagIdsFromNames(j)});if(!w||typeof n.value.volumes!="object")return;const v=Le(n.value,{preferGroup:this.context.preferGroup})??[];(typeof c!="string"||c==="none")&&!v.length&&v.push({chap:0,slug:i.id});const y=v.findIndex(j=>j.slug===i.id),f=i.relationships?.find?.(j=>j.type==="scanlation_group"),b=u.endsWith("/")?u:u+"/",M=!!localStorage.getItem("md")?.includes?.('"dataSaver":true'),C=`${b}${M?"data-saver":"data"}/`,I=((M?h:p)??[]).map?.(j=>`${C}${g}/${j}`)??[];return{externalUrl:o,vol:se(s),inferVol:v[y]?.inferVol,chap:ee(c)||0,imgs:I,lang:l,slug:i.id,prev:v[y+1],next:v[y-1],basePath:"/chapter/",group:f?.attributes?.name,groupUrl:f?.attributes?.website,isWebtoon:m?.attributes?.tags?.some(j=>j.attributes.name.en==="Long Strip"),title:{...w,chapters:v}}}async getRawChaptersData(){const e=re();if(!e)return;let t;try{t=Le(e,{preferGroup:this.context.preferGroup})}catch{return}if(t)return{chapters:t,lang:this.context.lang??"en",asc:!1,hasMore:!1,total:t.length}}}Ma(Ee,"specId","mangadex");function se(a){const e=ee(a);return e!==0?e:void 0}function ee(a){if(typeof a!="string"||a==="none")return;const e=parseFloat(a);if(e!==e)return;const t=a[a.length-1];return e+(Da[t]??0)}function Le(a,{preferGroup:e}){if(typeof a.volumes!="object")return;const t=Object.values(a.volumes).map(({volume:r,chapters:n})=>{const i=se(r);return Object.values(n).map(({id:s,chapter:c})=>{const o=ee(c);if(o!==void 0)return{vol:i,chap:o,slug:s}})}).flat().filter(Boolean).reverse();return Z(t,{preferGroup:e})}function Ue({data:a,getTagIdsFromNames:e}){const{id:t,attributes:r,relationships:n}=a;if(!t||typeof t!="string"||typeof r!="object")return;const{title:i,availableTranslatedLanguages:s,altTitles:c,tags:o,contentRating:l}=r;if(typeof i!="object"||s&&!Array.isArray(s))return;const u=Object.values(i)[0];if(!u||typeof u!="string")return;const p=Ta(),h=(s??[])?.map?.(f=>typeof f=="string"?f:void 0).filter(Boolean)??[],g=h.filter(f=>f&&(!p||p.includes(f))),m=c?.map?.(f=>{const[[,b]=[]]=Object.entries(f);return b}),w=n?.find?.(f=>f.type==="cover_art")?.attributes?.fileName,v=w?`https://mangadex.org/covers/${t}/${w}.256.jpg`:void 0,y=(o||[]).map(f=>f?.attributes?.name?.en).concat(l).filter(Boolean);return{url:`${location.origin}/title/${t}`,slug:t,name:u,altNames:m,langs:g.length>0?g:h.length>0?h:["en"],img:v,tags:e(y)}}function Ta(){const a=localStorage.getItem("md");if(!a)return;const e=X(a);if(e)try{const t=e?.userPreferences?.filteredLanguages;return t?.length?t:void 0}catch{return}}var Pa=Object.defineProperty,Ia=(a,e,t)=>e in a?Pa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ba=(a,e,t)=>Ia(a,e+"",t);class Oe extends T{async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=new URLSearchParams(location.search).get("source"),r=await U(`/api/${t==="user"?"uploads":"chapters"}/${e.slug}/images`);if(!r)return;const n=r.value.images?.map?.(s=>s.url),i=D(Q(r.value,"manga.title"));return{...e,slug:t?`${e.slug}?source=${t}`:e.slug,imgs:n,title:{...e.title,name:i??e.title.name}}}parseJsonChapter(e,t){const r=super.parseJsonChapter(e,t),n=P(e,"source")==="user";if(!(!r||!n))return r.slug+="?source=user",r}}Ba(Oe,"specId","mangadot");var ja=Object.defineProperty,Aa=(a,e,t)=>e in a?ja(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ea=(a,e,t)=>Aa(a,e+"",t);class qe extends T{async getRawReleasesData(){const e=await super.getRawReleasesData();return e&&e.rawReleases.forEach(t=>t.chapters.forEach(r=>{r.lang??(r.lang="en")})),e}async getRawTitleData(){if(!this.headless){const r=location.pathname.split("/").filter(Boolean)[1];if(r.includes(".")){location.href=location.href.replace(r,r.split(".")[1]),await z(1e4);return}}const e=await super.getRawTitleData();if(!e)return;const t=await this.getFetchResult("/api/titles/{id}");return t?{...e,id:t.params?.id??D(t.value.data?.hid),langs:La(t.value.data?.languages)}:e}async getRawReaderData(){const e=location.pathname.split("/").filter(Boolean),t=e[1]?.split(".")?.[1],r=ue(e[2]);if(!this.headless&&t&&r!==void 0){const o=await this.fetch(`${location.origin}${this.siteMeta.chapters?.replace("{titleId}",t).replace("{lang}","en")}`);if(o){window.$mpChaptersRes=o;const l=(await this.getRawChaptersFromJson({chapterSpec:{...this.spec.chapters.chapter,json:"window.$mpChaptersRes"},pagingSpec:this.spec.chapters?.paging,titleInfo:{}}))?.find(u=>u.chap===r)?.slug;if(l){location.href=`${location.origin}/${this.siteMeta.readerBase.replace("{titleSlug}",t)}/${l}`,await z(1e4);return}}location.href=`${location.origin}/${this.siteMeta.titleBase}/${t}`,await z(1e4);return}if(!await A(60,50,()=>{if(!document.querySelector(".reader--state"))return!0}))return;const n=await super.getRawReaderData();if(!n)return;const i=await this.getFetchResult(`/api/chapters/${n.slug}`);if(!i)return n;const s=i.value.data;n.title.id=D(s.title?.hid),n.title.name=s?.title?.name??n.title.name,n.title.langs=s?.title?.languages,n.lang=D(s?.language),n.prev=ze(s?.prev)??n.prev,n.next=ze(s?.next)??n.next;const c=s.pages?.map?.(o=>D(o?.url))?.filter(Boolean);return n.imgs=c?.length?c:void 0,n}parseJsonChapter(e,t){const r=super.parseJsonChapter(e,t);if(!(!r||r.group!=="unofficial"))return{...r,group:void 0}}}Ea(qe,"specId","mangafire2");function La(a){const e=a?.map(t=>D(t))?.filter(Boolean);return e?.length?e:void 0}function ze(a){const e=E(a?.id,r=>r+""),t=E(a?.number);return e&&t!==void 0?{slug:e,chap:t}:void 0}var Ua=Object.defineProperty,Oa=(a,e,t)=>e in a?Ua(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ne=(a,e,t)=>Oa(a,typeof e!="symbol"?e+"":e,t);class We extends T{constructor(){super(...arguments),Ne(this,"isVariantSite",location.hostname!=="www.mangago.me")}async getRawTitleData(){const e=await super.getRawTitleData();if(!e||!this.isVariantSite)return e;const t=d('a[href*="/status/"]|attr:href|remove:/$|remove:.+/');if(t)return{...e,slug:t}}async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;if(this.spec.reader?.lstripBtn&&document.querySelector(this.spec.reader.lstripBtn))return e;if(!this.isAppVersionNewerThan("6.7.0")){const r=await this.getReaderImgs();return!r?.length||r.length<=5?e:{...e,imgs:r}}if(!this.isVariantSite&&this.spec.reader?.paging&&!document.querySelector("#reader-nav"))return e;const t=await this.getReaderImgs();return t&&t.length>5?{...e,imgs:t}:{...e,contentType:void 0}}getRawReaderTitleData(e){if(!this.isVariantSite)return super.getRawReaderTitleData(e);const t=d('a[href*="/read-manga/"]|attr:href'),r=t?t.split("/read-manga/")[1].split("/")[0]:d('.page script|text|pattern:.+mid="(.+)",.+');if(r)return{slug:r,name:r.replaceAll("_"," ").replaceAll(" s ","'s ").replaceAll(" t ","'t ").split(" ").filter(Boolean).map(n=>`${n[0].toUpperCase()}${n.substring(1)}`).join(" "),url:`https://www.mangago.me/read-manga/${r}`}}parseReaderUrl(e,t,r){if(!this.isVariantSite){const{slug:n,basePath:i}=super.parseReaderUrl(e,t,r),s=n.split("/").filter(Boolean),c=s[s.length-1];return{basePath:i,slug:c.startsWith("pg-")?s.slice(0,-1).join("/"):n}}return{basePath:"",slug:`${location.origin}/${t.split("/").filter(Boolean).slice(0,3).join("/")}${this.siteMeta.trailing?"/":""}`}}async getReaderImgs(){const e=await A(100,20,()=>window.imgsrcs),t=window.CryptoJS,r=t.enc.Hex.parse("e11adc3949ba59abbe56e057f20f883e"),n={iv:t.enc.Hex.parse("1234567890abcdef1234567890abcdef"),padding:t.pad.ZeroPadding};return t.AES.decrypt(e,r,n).toString(t.enc.Utf8).split(",").filter(Boolean)}}Ne(We,"specId","mangago");var qa=Object.defineProperty,za=(a,e,t)=>e in a?qa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Na=(a,e,t)=>za(a,e+"",t);class ke extends T{parseTitleUrl(e){return{slug:O(e)?.split("/").filter(Boolean)[1]}}}Na(ke,"specId","mangapill");var Wa=Object.defineProperty,ka=(a,e,t)=>e in a?Wa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,_a=(a,e,t)=>ka(a,e+"",t);class _e extends T{async getRawTitleData(){const e=await super.getRawTitleData();return e&&{...e,chapters:e.chapters.map(t=>({...t,slug:t.slug?.split("/").filter(Boolean).slice(-1)[0]}))}}}_a(_e,"specId","mangaplus");var Va=Object.defineProperty,Ja=(a,e,t)=>e in a?Va(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Fa=(a,e,t)=>Ja(a,e+"",t);class Ve extends fe{async getRawReaderData(){const e=await super.getRawReaderData();if(e)return{...e,title:{...e.title,id:await this.getReaderTitleId()}}}async getReaderTitleId(){const e=await window.HISTORY?.getStored?.();if(!e||typeof e!="object")return;const t=Object.values(e).filter(Boolean);if(!t.length)return;t.sort((n,i)=>i.time-n.time);const r=t[0].manga_ID;return D(r)??E(r,n=>n+"")}}Fa(Ve,"specId","mangastream");var Ha=Object.defineProperty,Ga=(a,e,t)=>e in a?Ha(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Ka=(a,e,t)=>Ga(a,e+"",t);class Je extends T{async getRawReaderData(){const e=await super.getRawReaderData();return!e||!e.title.chapters.length?e:{...e,prev:e.prev?{...e.prev,slug:me(e.title.slug,e.prev.slug)}:void 0,next:e.next?{...e.next,slug:me(e.title.slug,e.next.slug)}:void 0,title:{...e.title,chapters:e.title.chapters.map(t=>({...t,slug:me(e.title.slug,t.slug)}))}}}}Ka(Je,"specId","mangatime");function me(a,e){if(e)return`/manga/${a}/chapter-${e}`}var Xa=Object.defineProperty,Ya=(a,e,t)=>e in a?Xa(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Qa=(a,e,t)=>Ya(a,e+"",t);class Fe extends T{async getRawReaderData(){const e=await super.getRawReaderData();if(e?.imgs?.length!==1)return e;e.slug.includes("//")&&(e.slug=He(e.slug).split("/").filter(Boolean)[3]);const t=E(document.querySelector("select.index-page,.page_select select")?.childElementCount,g=>g);if(!t||t<=1)return e;const[r]=e.imgs,n=r.split(/\d+\.[a-z]{3,5}$/i)?.[0];if(!n)return e;const i=(+(d(".page_select .select|text")||"1")||1)-1,s=r.replace(n,""),[c,o]=s.split("."),l=c.length,u=+c-i,p=u+t-1,h=[];for(let g=u;g<=p;g++)h.push(`${n}${(g+"").padStart(l,"0")}${o?`.${o}`:""}`);return{...e,imgs:h}}parseChapterUrl(e,t){return this.parseReaderUrl(e,He(t),t)}}Qa(Fe,"specId","mangatown");function He(a){return a.replace(location.origin,"").replace("//","/")}var Za=Object.defineProperty,er=(a,e,t)=>e in a?Za(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,tr=(a,e,t)=>er(a,e+"",t);class Ge extends T{async getRawReaderData(){const e=await super.getRawReaderData();return e&&{...e,slug:e.slug.split("/").slice(0,-1).join("/")||e.slug.split("/")[0]}}}tr(Ge,"specId","mangaworld");var ar=Object.defineProperty,rr=(a,e,t)=>e in a?ar(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,nr=(a,e,t)=>rr(a,e+"",t);class Ke extends T{async getRawTitleData(){const e=await super.getRawTitleData();if(e)return{...e,hasMoreChapters:e.chapters.length===50}}}nr(Ke,"specId","mgeko");var sr=Object.defineProperty,ir=(a,e,t)=>e in a?sr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,or=(a,e,t)=>ir(a,e+"",t);class Xe extends T{async getRawReaderData(){const e=await A(200,50,()=>{const i=window.mangaReader;return i?.scanData&&i?.mangaData?i:void 0});if(!e)return;const{scanData:t,mangaData:r}=e,n=`/${this.siteMeta.readerBase}/`;return this.finalizeRawReaderData({basePath:n,chap:t.chapterNum,slug:t.slug,imgs:t.pages,title:{name:t.chapterTitle,slug:t.manga,url:`${location.origin}/${this.siteMeta.titleBase}/${t.manga}`,chapters:this.parseJsonChapters(r,{basePath:n,chapterSpec:{sel:"chapters",label:"num",url:"slug"}})??[]}})}}or(Xe,"specId","moins");var lr=Object.defineProperty,cr=(a,e,t)=>e in a?lr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,ur=(a,e,t)=>cr(a,e+"",t);class Ye extends ne{async getRawReleasesData(){}async getRawSearchData(){}async getRawTitleData(){const e=d("h1.title .pretty, h1.title|text"),t=d("#cover img|[attr:data-src,attr-contain:src]");if(e)return{name:e,slug:location.pathname.split("/").filter(Boolean).slice(-1)[0],url:location.origin+location.pathname,img:t,imgBytes:this.context.includeImgBytes&&t?await pe(t):void 0,chapters:[{slug:"1",chap:0}]}}async getRawReaderData(){const e=d("#image-container img|[attr:data-src,attr-contain:src]"),t=ge(e);if(!t)return;const r=t.origin,n=this.parseReaderUrl(this.siteMeta.readerBase,location.pathname,location.href);if(n?.titleSlug)try{const i=await fetch(`${location.origin}/api/v2/galleries/${n.titleSlug}`);if(!i.ok)return;const s=await i.json();if(!s)return;const c=P(s,"title.pretty")||P(s,"title.english")||s?.title?.[Object.keys(s.title)[0]];if(!c)return;const o=D(P(s,"cover.path"),u=>`https://t2.${location.hostname}${u.startsWith("/")?u:`/${u}`}`),l=s.pages.map(u=>{const p=u.path;return`${r}${p.startsWith("/")?p:`/${p}`}`});return{chap:0,slug:"1",basePath:`/g/${n.titleSlug}/`,imgs:l,title:{name:c,slug:n.titleSlug,url:`${location.origin}/g/${n.titleSlug}`,chapters:[{slug:"1",chap:0}],img:o}}}catch{return}}async getRawChaptersData(){const e=await this.getRawTitleData();if(!e)return;const{chapters:t,...r}=e;return{title:{...r,chapters:[]},chapters:t}}}ur(Ye,"specId","nhentai");var pr=Object.defineProperty,gr=(a,e,t)=>e in a?pr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,hr=(a,e,t)=>gr(a,e+"",t);class Qe extends T{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;e.chapters.length&&!e.hasMoreChapters&&(e.hasMoreChapters=e.chapters.length===15&&e.chapters[e.chapters.length-1].chap>1);const t=await this.getFetchResult(`https://api.${location.host}/chapters?languages=true`);if(!t)return e;const r=t.value?.data?.languages?.map?.(n=>n?.id)?.filter(Boolean);return r?.length?{...e,langs:r}:e}parseJsonChapter(e,t){const r=super.parseJsonChapter(e,t);if(!r)return;const n=E(Q(e,"group.id"),i=>i+"");return n?{...r,slug:`${r.slug}?group=${n}`}:r}}hr(Qe,"specId","scansgg");var dr=Object.defineProperty,fr=(a,e,t)=>e in a?dr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,mr=(a,e,t)=>fr(a,e+"",t);class Ze extends T{async queryJsonChapters(e){const t=await super.queryJsonChapters(e);if(t)return t.map(r=>({...r,slug:r.slug?`ch-${+r.slug||r.chap}`:r.slug}))}}mr(Ze,"specId","stone");var wr=Object.defineProperty,vr=(a,e,t)=>e in a?wr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,yr=(a,e,t)=>vr(a,e+"",t);class et extends T{async getRawTitleData(){const e=await super.getRawTitleData();if(!e)return;const t=Y(".info-detail__row > .genre-btn,.info__right .stats__row:first-child|text")?.map(r=>[r,...r.split(" ")]).flat();return tt({...e,tags:this.getTagIdsFromNames(t)??[]},".episode-header .episode-cnt")}async getRawReaderData(){const e=await super.getRawReaderData();if(!e)return;const t=`${location.origin}/series/${e.title.slug}/info`;return{...e,title:{...tt({...e.title,url:t,tags:[]},".episode-list .js-ep-cnt"),hasMoreChapters:!1}}}parseTitleUrl(e){if(!e)return{};const t=e.split("/").filter(Boolean);return{slug:t[1]??t[0]}}}yr(et,"specId","tapas");function tt(a,e){const t=br(e)>20;return{...a,chapters:t?[]:a.chapters,hasMoreChapters:t}}function br(a){return+(document.querySelector(a)?.textContent?.trim().split(" ")[0]||0)}var Rr=Object.defineProperty,$r=(a,e,t)=>e in a?Rr(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t,Sr=(a,e,t)=>$r(a,e+"",t);class at extends T{async getRawTitleData(){const e=new URLSearchParams(location.search),t=e.get("episode_no"),r=e.get("title_no");if(t||!r)return;const n=await super.getRawTitleData();if(!n)return;const i=location.hostname.startsWith("m."),s=location.pathname.split("/")[1];return{...n,slug:`${n.slug}?title_no=${r}`,id:r,langs:s?[s]:void 0,chapters:i?[]:n.chapters.map(c=>({...c,lang:s})),hasMoreChapters:i||(document.querySelector(".paginate")?.childElementCount??1)>1}}async getRawReaderData(){const e=new URLSearchParams(location.search),t=e.get("episode_no"),r=e.get("title_no"),n=t?+t:void 0;if(!t||!r||typeof n!="number"||isNaN(n))return;const i=document.title.split("|")[1]?.trim();if(!i)return;const s=location.pathname.split("/"),c=`${s.slice(0,4).join("/")}/list?title_no=${r}`,o=this.queryChapters({chapterSpec:{sel:"#sequence_scroll li.eg-flick-panel,#toolbar .episode_lst li[data-episode-no]",url:"a|attr:href",label:"|attr:data-episode-no || a|attr:href|pattern:.+episode_no=(\\d+).*"},titleInfo:{id:r,slug:c,name:i}}),l=s[1];return{chap:n,lang:l,slug:`${location.pathname}?title_no=${r}&episode_no=${t}`,basePath:"",imgs:await this.getReaderImgs(),isWebtoon:!0,title:{id:r,url:c,slug:c,name:i,langs:[l],chapters:(o??[]).map(u=>({...u,lang:l})),hasMoreChapters:!1}}}async getReaderImgs(){const e=Y("#_imageList img|[attr:data-url,attr:src]");return e?.length?e:await A(100,50,()=>window.__viewerState__?.scrollViewerParam?.imageList?.map(({url:t})=>t).filter(Boolean))}parseReaderUrl(e,t,r){if(!r)return{basePath:"",slug:t};if(r.startsWith("http://")||r.startsWith("https://")){const n=ge(r);return{basePath:"",slug:n.pathname+n.search}}return{basePath:"",slug:r}}}Sr(at,"specId","webtoon");const Cr=[De,Te,Pe,Ie,fe,je,Ee,qe,We,ke,_e,Ve,Ke,Oe,Je,Fe,Ge,Xe,Ye,Qe,Ze,et,at];function rt(a){const e=Cr.find(t=>t.specId===a.spec.id)??T;return new e(a)}async function xr(a){const{spec:e,type:t}=a;let r=a.siteMeta??e?.meta;if(e&&r){a.siteVariant&&(r={...r,...a.siteVariant});const n=t?[t]:nt(r,e.generic);if(!n.length)return;const i=rt({...a,spec:e,siteMeta:r});return await _(n.map(s=>i.getRawPageByType(s,n.length===1)))}return await _((a.genericSpecs??[]).map(n=>{if(!n.meta||!n.generic)return[];const i=t?[t]:nt(n.meta,n.generic);if(!i.length)return[];const s=rt({...a,spec:n,siteMeta:n.meta});return i.map(c=>s.getRawPageByType(c,!1,!0))}).flat())}function nt(a,e){if(location.pathname==="/")return a.single?[B.title]:[];const{titleBase:t,readerBase:r}=a,n=location.pathname.split("/").filter(Boolean),i=st(n,r),s=st(n,t);if(i&&s)return[B.reader,B.title];const c=[];return!s&&(i!==!1||e)&&c.push(B.reader),!i&&(s!==!1||e)&&c.push(B.title),!c.length&&e?[B.reader,B.title]:c}function st(a,e){if(!e)return;const t=e.split("/").filter(Boolean),r=t.indexOf("{slug}"),n=r===t.length-1,i=!n&&r!==-1;if(n&&(t.pop(),!t.length))return;const s=a.length-t.length;if(i?s<0:s<=0)return!1;let c=!1;for(let o=0;o<t.length;o++){const l=t[o];if(l[0]!=="{"){if(l!==a[o])return!1;c=!0}}if(c&&s===(i?0:1))return!0}k.PageType=B,k.scrape=xr}));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "trackkun-dom",
3
3
  "author": "endyquang",
4
- "version": "2.35.0",
4
+ "version": "2.36.0",
5
5
  "license": "UNLICENSED",
6
6
  "description": "MP DOM parser & configurations",
7
7
  "main": "index.js",