Content-Type: multipart/related; start=; boundary=----------ErB68XVJ5v7SXrP1mR67FN Content-Location: http://hu.wikipedia.org/wiki/ÖBB_2016 Subject: =?utf-8?Q?=C3=96BB=202016=20-=20Wikip=C3=A9dia?= MIME-Version: 1.0 ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename*=utf-8''%C3%96BB_2016.htm Content-Type: text/html; charset=utf-8; name*=utf-8''%C3%96BB_2016.htm Content-Id: Content-Location: http://hu.wikipedia.org/wiki/ÖBB_2016 Content-Transfer-Encoding: Quoted-Printable =C3=96BB 2016 - Wikip=C3=A9dia = = =

=C3=96BB 2016

A Wikip=C3=A9di=C3=A1b=C3=B3l, a szabad enciklop=C3= =A9di=C3=A1b=C3=B3l.

=
=C3=96BB 2016
3D"=C3=96BB
Gy=C3=A1rt=C3=B3: Siemens
Gy=C3=A1rt=C3=A1sban: 2002-2004
Tengelyelrendez=C3=A9s: Bo'Bo'
Nyomt=C3=A1vols=C3=A1g: 1435 mm
Legnagyobb sebess=C3=A9g: 140 km/h
=C3=9Ctk=C3=B6z=C5=91k k=C3=B6z=C3=B6tti hossz: 19 275 mm
Szolg=C3=A1lati t=C3=B6meg: 80 t
N=C3=A9vleges teljes=C3=ADtm=C3=A9ny: 2000 kW

A 2016-os sorozat=C3=BA mozdony az =C3=96BB nagy teljes=C3=ADtm=C3=A9n= y=C5=B1 d=C3=ADzelmozdonya. Beceneve Herkules.

Tartalomjegyz=C3=A9k

[szerkeszt=C3=A9s] T=C3=B6rt=C3=A9nete

Az =C3=96BB 1991-ben minteg= y k=C3=A9tmilli=C3=A1rd schilling el=C5=91ir=C3=A1nyzattal 110 d=C3=ADzelmozdo= ny beszerz=C3=A9s=C3=A9t hat=C3=A1rozta el, h=C3=A1rom teljes=C3=ADt= m=C3=A9nykateg=C3=B3ri=C3=A1ban. A p=C3=A1ly=C3=A1zati ki=C3=ADr=C3=A1s,= tervez=C3=A9s kivitelez=C3=A9s kem=C3=A9ny id=C5=91szaka ut=C3=A1n hama= rosan felt=C5=B1nt az =C3=96BB Wiener Neustadt-i vontat=C3=A1= si =C3=BCzemegys=C3=A9g=C3=A9n=C3=A9l ezek egyike a 2016 sorozat=C3= =BA d=C3=ADzel-villamos mozdony. Az =C3=96BB ezzel az elavult, m=C3=A1r = nem is az =E2=80=9E=C3=96BB Standard=E2=80=9D-nak megfelel=C5=91en karba= ntartott =C3=96BB 2043, =C3=96BB 2143 sorozat=C3=A1t k=C3=ADv=C3=A1nja felv=C3= =A1ltani. A mozdony a m=C3=A1r szok=C3=A1ss=C3=A1 v=C3=A1lt m=C3=B3don a= benne rejl=C5=91 er=C5=91re utal=C3=B3 szimbolikus =E2=80=9EHercules= =E2=80=9D nevet kapta.

=

[szerkeszt=C3=A9s] Technikai jellemz=C5=91k

A mozdony konstrukci=C3=B3j=C3=A1t, a szem=C3=A9lyvonati, ingavonati =C3=A9s tehervonati = szolg=C3=A1lat, a vonali tolat=C3=B3szolg=C3=A1lat ell=C3=A1t=C3=A1sa a = C2 oszt=C3=A1ly=C3=BA vonalakon, valamint a gy=C3=A1rt=C3=B3 SIEMENS-= KRAUSS-MAFFEI gy=C3=A1rt=C3=A1si tapasztalatai =C3=A9s az =C3=96BB e= l=C5=91=C3=ADr=C3=A1sai a nemzetk=C3=B6zi k=C3=B6zleked=C3=A9sre hat=C3=A1= rozt=C3=A1k meg. A mozdony a DB (n=C3=A9met), az SZ (szlov=C3=A9n) vasutak el=C5=91=C3=ADr=C3=A1sai is te= kintettel =C3=A9p=C3=BClt meg. A szerkezeti r=C3=A9szek fel=C3=A9p=C3=AD= t=C3=A9s=C3=A9ben el=C5=91=C3=ADr=C3=A1sszer=C5=B1en val=C3=B3sult meg a= z =C3=A9p=C3=ADt=C5=91szekr=C3=A9ny elv, az egyes egys=C3=A9gekhe= z val=C3=B3 k=C3=B6nny=C5=B1 hozz=C3=A1f=C3=A9rhet=C5=91s=C3=A9g, csere = lehet=C5=91s=C3=A9ge, =C3=A1tgondolt hibakeres=C3=A9si, karbantart=C3=A1= si koncepci=C3=B3. A j=C3=A1rm=C5=B1 r=C3=A9szleteiben visszat=C3=BCkr=C3= =B6z=C5=91dik a gy=C3=A1rt=C3=B3 EuroSprinter, majd Taurus villamos mozdony gy=C3=A1rt=C3=A1si t= apasztalata, az ott m=C3=A1r j=C3=B3l bev=C3=A1lt szerkezeti r=C3=A9szek= alkalmaz=C3=A1sa, adott esetben tov=C3=A1bbfejleszt=C3=A9se. A mozdonyo= k egym=C3=A1s k=C3=B6z=C3=B6tt t=C3=A1vvez=C3=A9relhet=C5=91k, =C3=A9s a= z =C3=96BB UIC k=C3=A1bel, buszrendszeren alapul=C3=B3 t=C3=A1vvez=C3=A9= rl=C3=A9si koncepci=C3=B3j=C3=A1nak megfelel=C5=91en m=C3=A1s j=C3=A1rm=C5= =B1vekkel t=C3=A1vvez=C3=A9relhet=C5=91s=C3=A9g =C3=A9s inform=C3=A1ci=C3= =B3s kapcsolat l=C3=A9tes=C3=ADthet=C5=91.

[szerkeszt=C3=A9s] Gy=C3=A1rt=C3=A1s

A villamos r=C3=A9szek =C3=A9s a gy=C3=A1rt=C3=A1s felel=C5=91se az <= a href=3D"/w/index.php?title=3DErlangen&action=3Dedit&redlink=3D= 1" class=3D"new" title=3D"Erlangen (meg=C3=ADratlan sz=C3=B3cikk)">Erlan= gen-i Siemens Transportation System, a mechanikus r=C3=A9szek= felel=C5=91se a Siemens Krauss-Maffei Lokomotiven GmbH (M=C3=BCnchen), de egyes = r=C3=A9szek, pl. a forg=C3=B3v=C3=A1zak Siemens SGP Verkehrstechnik G= mbH (Graz) k=C3=B6zrem=C5=B1= k=C3=B6d=C3=A9s=C3=A9vel val=C3=B3sultak meg, =C3=A9s a gy=C3=A1rt=C3=A1= s is itt folyik.

=

[szerkeszt=C3=A9s] Er=C5=91=C3=A1tvitel

A mozdony er=C5=91=C3=A1tvitele a h=C3=A1romf=C3=A1zis=C3=BA d=C3=ADz= el-gener=C3=A1toros, egyen=C3=A1ram=C3=BA k=C3=B6zbens=C5=91 k=C3=B6rrel= rendelkez=C5=91 aszinkron vontat=C3=B3motoros technik=C3=A1ra =C3=A9p=C3= =BCl. K=C3=BCls=C5=91 form=C3=A1ja, sz=C3=ADnez=C3=A9se, az =C3=96BB egy= =C3=BCttm=C5=B1k=C3=B6d=C3=A9s=C3=A9vel a nagy sebess=C3=A9gnek legmegfe= lel=C5=91bb orr-forma kik=C3=A9pz=C3=A9ssel, term=C3=A9szetesen tekintet= tel a m=C3=A1r kialakult szerkezeti elrendez=C3=A9sek k=C3=B6vetelm=C3=A9= nyeire, alakult ki.

A d=C3=ADzelmotor mechanikai energi=C3=A1j=C3=A1t a r=C3=A1 k=C3=B6zv= etlen=C3=BCl szerelt h=C3=A1romf=C3=A1zis=C3=BA gener=C3=A1tor alak=C3=AD= tja =C3=A1t villamos energi=C3=A1v=C3=A1, amelyet egy vez=C3=A9reletlen = hat=C3=A1g=C3=BA di=C3=B3d=C3=A1s h=C3=ADdkapcsol=C3=A1s alak=C3=ADt =C3= =A1t a k=C3=B6zbens=C5=91 k=C3=B6r egyenfesz=C3=BClts=C3=A9g=C3=A9v=C3=A9= . A k=C3=B6zbens=C5=91 k=C3=B6r egyenfesz=C3=BClts=C3=A9g=C3=A9t a motor= k=C3=B6ri =C3=A1ramir=C3=A1ny=C3=ADt=C3=B3k alak=C3=ADtj=C3=A1k =C3=A1t = az aszinkron vontat=C3=B3motorok t=C3=A1pl=C3=A1l=C3=A1s=C3=A1hoz sz=C3=BC= ks=C3=A9ges h=C3=A1romf=C3=A1zis=C3=BA v=C3=A1ltoz=C3=B3 fesz=C3=BClts=C3= =A9g=C5=B1 =C3=A9s frekvenci=C3=A1j=C3=BA v=C3=A1ltakoz=C3=B3 =C3=A1ramm= =C3=A1. Ugyancsak a k=C3=B6zbens=C5=91 k=C3=B6r d=C3=ADzelmotor v=C3=A1l= toz=C3=B3 fordulatsz=C3=A1m=C3=A1t=C3=B3l f=C3=BCgg=C5=91 nagy =C3=A9s i= ngadoz=C3=B3 egyenfesz=C3=BClts=C3=A9g=C3=A9t alak=C3=ADtj=C3=A1k =C3=A1= t a seg=C3=A9d=C3=BCzemi =C3=A1ramir=C3=A1ny=C3=ADt=C3=B3k, stabiliz=C3=A1= lva a seg=C3=A9d=C3=BCzemi h=C3=A1romf=C3=A1zis=C3=BA motorok hajt=C3=A1= s=C3=A1hoz sz=C3=BCks=C3=A9ges h=C3=A1romf=C3=A1zis=C3=BA 60 Hz/400V, va= lamint 2=E2=80=A660 Hz/0=E2=80=A6440V, 3AC =C3=A1ramm=C3=A1. A vonat ene= rgiaell=C3=A1t=C3=A1sa is a k=C3=B6zbens=C5=91 k=C3=B6r egyenfesz=C3=BCl= ts=C3=A9g=C3=A9r=C5=91l t=C3=A1pl=C3=A1lkozik, a motork=C3=B6ri =C3=A1ra= mir=C3=A1ny=C3=ADt=C3=B3kkal p=C3=A1rhuzamosan kapcsoltan. Villamos f=C3= =A9kez=C3=A9skor, amikor az energia=C3=A1raml=C3=A1s ir=C3=A1nya megford= ul, akkor a vontat=C3=B3motorok k=C3=B6zbens=C5=91 k=C3=B6rbe a motork=C3= =B6ri =C3=A1ramir=C3=A1ny=C3=ADt=C3=B3kon kereszt=C3=BCl visszat=C3=A1pl= =C3=A1lt villamos energi=C3=A1ja a f=C3=A9kellen=C3=A1ll=C3=A1sokon alak= ul =C3=A1t h=C5=91v=C3=A9. A mozdony vez=C3=A9rl=C3=A9stechnik=C3=A1ja a= zonban a vesztess=C3=A9gek cs=C3=B6kkent=C3=A9se =C3=A9rdek=C3=A9ben sor= rendez. A visszat=C3=A1pl=C3=A1lt energia el=C5=91sz=C3=B6r a vonatf=C5=B1= t=C3=A9sre =C3=A9s a seg=C3=A9d=C3=BCzem t=C3=A1pl=C3=A1l=C3=A1s=C3=A1ra= ford=C3=ADt=C3=B3dik, csak a marad=C3=A9k ker=C3=BCl vesztess=C3=A9gk=C3= =A9nt h=C5=91energia form=C3=A1j=C3=A1ban a k=C3=B6rnyezetbe.

[szerkeszt=C3=A9s] D=C3=ADzelmotor

A d=C3=AD= zelmotor MTU gy=C3=A1rtm=C3=A1ny, Friedrichshafenbe= n k=C3=A9sz=C3=BClt, t=C3=ADpusa 16V 4000 R41, n=C3=A9gy=C3=BC= tem=C5=B1, k=C3=B6zvetlen befecskendez=C3=A9ses, k=C3=A9t v=C3=ADzk=C3=B6= r=C3=B6s, turb=C3=B3felt=C3=B6lt=C5=91s kivitel. A motor =C3=BAn. Comm= on-Rail elektronikus befecskendez=C5=91 rendszere lehet=C5=91v=C3=A9= teszi a befecskendez=C3=A9si folyamat =C3=BCzemviszonyoknak legmegfelel= =C5=91bb, jellegg=C3=B6rbemez=C5=91 szerinti optim=C3=A1lis vez=C3=A9rl=C3= =A9s=C3=A9t, ca. 195 g/kWh fajlagos t=C3=BCzel=C5=91anyag fogyaszt=C3=A1= s mellett, ami a motor k=C3=A1rosanyag kibocs=C3=A1t=C3=A1s=C3=A1t is mi= nimaliz=C3=A1lja.

[szerkeszt=C3=A9s] F=C5=91gener=C3=A1tor

A f=C5=91gener=C3=A1tor egy oldalon csap=C3=A1gyazott, k=C3=BCls=C5=91= gerjeszt=C3=A9ses, =C3=B6nszell=C5=91z=C3=A9s=C5=B1, egybe=C3=A9p=C3=AD= tett gerjeszt=C5=91g=C3=A9ppel ell=C3=A1tott kivitel. A kefe n=C3=A9lk=C3= =BCli forg=C3=B3 egyenir=C3=A1ny=C3=ADt=C3=B3 szint=C3=A9n a minim=C3=A1= lis karbantart=C3=A1s ig=C3=A9nyess=C3=A9gre val=C3=B3 t=C3=B6rekv=C3=A9= s egyik biztos=C3=ADt=C3=A9ka.

[szerkeszt=C3=A9s] =C3=81ramir=C3=A1ny=C3=ADt=C3=B3

Az =C3=A1ramir=C3=A1ny=C3=ADt=C3=B3 berendez=C3=A9sek f=C3=A1zismodul= jai GTO tirisztorok, kompakt fel=C3=A9p=C3=ADt=C3=A9s, a szabadonfut=C3=B3= di=C3=B3d=C3=A1kkal integr=C3=A1lt, v=C3=ADzh=C5=B1t=C3=A9ses kivitelbe= n k=C3=A9sz=C3=BCltek.

[szerkeszt=C3=A9s] F=C3=A1zismodul

A f=C3=A1zismodul, amely a Taurus koncepci=C3=B3j=C3=A1ra =C3=A9p=C3=BCl, csak = egy GTO-t tartalmaz, =C3=A9s a f=C3=A9k=C3=BCzem szaggat=C3=B3, valamint= a seg=C3=A9d=C3=BCzem moduljai is hasonl=C3=B3, kev=C3=A9s, kapcsol=C3=A1= stechnikai elemet tartalmaz=C3=B3 kivitelben val=C3=B3sultak meg. A beme= n=C5=91 =C3=A1ramir=C3=A1ny=C3=ADt=C3=B3 vez=C3=A9reletlen di=C3=B3d=C3=A1= s kivitel=C5=B1. Az =C3=B6sszes elektronikai elem modul=C3=A1ris rendsze= rben van =C3=B6sszefogva. Az =C3=B6sszes elektronikai elem, norm=C3=A1l = h=C5=B1t=C5=91v=C3=ADz haszn=C3=A1lati lehet=C5=91s=C3=A9g=C3=A9nek bizt= os=C3=ADt=C3=A1sa c=C3=A9lj=C3=A1b=C3=B3l, a GTO-k keramikus szigetel=C3= =A9ssel vannak ell=C3=A1tva, =C3=A9s ennek el=C5=91nye, hogy nem sz=C3=BC= ks=C3=A9ges a szigetel=C5=91k=C3=A9pess=C3=A9g folyamatos ellen=C5=91rz=C3= =A9se, de a hideg =C3=BCzemre tekintettel, fagy=C3=A1ll=C3=B3 folyad=C3=A9= kot is be kell keverni.

Az =C3=A1ramir=C3=A1ny=C3=ADt=C3=B3 vez=C3=A9rl=C3=A9s magas =C3=BCte= mfrekci=C3=A1ja =C3=A9s az impulzusminta optimaliz=C3=A1lt, hogy a vonta= t=C3=B3motorok termikus vesztess=C3=A9ge minim=C3=A1lis legyen. A vontat= =C3=B3motorok kalick=C3=A1s rendszer=C5=B1 r=C3=B6vidre z=C3=A1rt forg=C3= =B3r=C3=A9sz=C5=B1 aszinkron kivitelben k=C3=A9sz=C3=BCltek, =C3=A9s a f= =C5=91=C3=A1ramk=C3=B6rbe motork=C3=B6ri fojt=C3=B3tekercs n=C3=A9lk=C3=BC= l vannak bek=C3=B6tve. A vasvesztes=C3=A9g cs=C3=B6kkent=C3=A9se c=C3=A9= lj=C3=A1b=C3=B3l a motorok pr=C3=A9selt dinam=C3=B3 lemezszerkezettel k=C3= =A9sz=C3=BCltek.

[szerkeszt=C3=A9s] Seg=C3=A9d=C3=BCzem

A mozdony a k=C3=B6vetkez=C5=91 fed=C3=A9lzeti fesz=C3=BClts=C3=A9gek= kel rendelkezik:

  • DC 24 V egyen=C3=A1ram
  • DC 24 V dieselmotor ind=C3=ADt=C3=A1s
  • 3AC 440 V 60 Hz v=C3=A1ltoz=C3=B3 frekvencia, a k=C3=B6zponti szell=C5= =91z=C5=91ventill=C3=A1tor =C3=A1ramell=C3=A1t=C3=A1s=C3=A1hoz
  • 3AC 440 V 60 Hz fix frekvencia, az egy=C3=A9b fogyaszt=C3=B3k =C3=A1= ramell=C3=A1t=C3=A1s=C3=A1hoz

A seg=C3=A9d=C3=BCzemi =C3=A1ramir=C3=A1ny=C3=ADt=C3=B3k elt=C3=A9r=C5= =91en a f=C5=91=C3=BCzemi =C3=A1ramir=C3=A1ny=C3=ADt=C3=B3kt=C3=B3l, mod= ernebb, szint=C3=A9n v=C3=ADzh=C5=B1t=C3=A9ses IGBT-tranzisz= toros kialak=C3=ADt=C3=A1s=C3=BA. Az energiaell=C3=A1t=C3=A1s k=C3=A9= t l=C3=A9p=C3=A9sben t=C3=B6rt=C3=A9nik, els=C5=91k=C3=A9nt egy fesz=C3=BC= lts=C3=A9gcs=C3=B6kkent=C5=91 kapcsol=C3=A1s stabil 670 V fesz=C3=BClts=C3= =A9get =C3=A1ll=C3=ADt el=C5=91 a seg=C3=A9d=C3=BCzemi =C3=BAgynevezett = ELFA-k=C3=B6zbens=C5=91k=C3=B6r sz=C3=A1m=C3=A1ra. Ez biztos=C3=AD= tja a k=C3=A9t egym=C3=A1st=C3=B3l f=C3=BCggetlen=C3=BCl szab=C3=A1lyozh= at=C3=B3 fesz=C3=BClts=C3=A9g=C5=B1 =C3=A9s frekvenci=C3=A1j=C3=BA seg=C3= =A9d=C3=BCzemi fesz=C3=BClts=C3=A9g el=C5=91=C3=A1ll=C3=ADt=C3=A1s=C3=A1= nak lehet=C5=91s=C3=A9g=C3=A9t. A h=C5=B1t=C5=91ventill=C3=A1tor, a h=C5= =B1t=C3=A9si ig=C3=A9nyt=C5=91l f=C3=BCgg=C5=91en, 0=E2=80=A6440 V, 2=E2= =80=A660 Hz frekvenci=C3=A1j=C3=BA =C3=A1rammal t=C3=A1pl=C3=A1lhat=C3=B3= , ezzel minimaliz=C3=A1lhat=C3=B3 a h=C5=B1t=C3=A9sre ford=C3=ADtott ene= rgia, valamint a zajcs=C3=B6kkent=C3=A9s is hat=C3=A1sos.

A seg=C3=A9d=C3=BCzem m=C3=A1sik k=C3=B6re a 440V fesz=C3=BClts=C3=A9= g=C5=B1, fix frekvenci=C3=A1j=C3=BA h=C3=A1l=C3=B3zat. Az =C3=A1ramk=C3=B6= rbe a potenci=C3=A1lisan lev=C3=A1laszthat=C3=B3s=C3=A1g =C3=A9s a kimen= =C5=91 fesz=C3=BClts=C3=A9g jav=C3=ADt=C3=A1sa c=C3=A9lj=C3=A1b=C3=B3l t= ranszform=C3=A1tor =C3=A9s egy fix frekvenci=C3=A1j=C3=BA szinusz sz=C5=B1= r=C5=91 ker=C3=BClt be=C3=A9p=C3=ADt=C3=A9sre.

Szem=C3=A9lysz=C3=A1ll=C3=ADt=C3=B3 vonatok energiaell=C3=A1t=C3=A1s=C3= =A1hoz egy egyf=C3=A1zis=C3=BA 50 Hz frekvenci=C3=A1j=C3=BA 1000 V fesz=C3= =BClts=C3=A9g=C5=B1, 400 kVA teljes=C3=ADtm=C3=A9ny=C5=B1 energiaforr=C3= =A1s =C3=A1ll rendelkez=C3=A9sre. Az energia=C3=A1talak=C3=ADt=C3=A1st i= tt is egy a motork=C3=B6ri f=C3=A1zismodulokkal hasonl=C3=B3 =C3=A1ramir= =C3=A1ny=C3=ADt=C3=B3 v=C3=A9gzi. A potenci=C3=A1lis lev=C3=A1laszt=C3=A1= st transzform=C3=A1tor, a sz=C5=B1r=C3=A9st pedig egy be=C3=A9p=C3=ADtet= t sz=C5=B1r=C5=91 biztos=C3=ADtja. A berendez=C3=A9sek egy k=C3=BCl=C3=B6= n szekr=C3=A9nyben az alv=C3=A1zszerkezet alatt helyezkednek el.

=

[szerkeszt=C3=A9s] Mechanikus r=C3=A9szek

A mozdonyszekr=C3=A9ny hegesztett szerkezet, az alv=C3=A1zszerkezet p= edig ugyancsak hegesztett szekr=C3=A9nyszerkezetes kivitel. A keresztir=C3= =A1ny=C3=BA merevs=C3=A9get az er=C5=91s homlokgerend=C3=A1k, valamint a= forg=C3=B3v=C3=A1z kir=C3=A1lycsap kereszttart=C3=B3i =C3=A9s motor ker= eszt-t=C3=A1mok biztos=C3=ADtj=C3=A1k. A szekr=C3=A9nyszerkezet oldalfal= ai, a vezet=C5=91f=C3=BClke falai, valamint a tet=C5=91szerkezet elemei = mind tehervisel=C5=91 elemekk=C3=A9nt vannak kik=C3=A9pezve, =C3=A9s sze= rves r=C3=A9szei a mozdony szil=C3=A1rds=C3=A1g=C3=A1t alkot=C3=B3 eleme= knek. A k=C3=B6z=C3=A9pr=C3=A9sz=C3=A9n helyezkedik a d=C3=ADzelmotor-f=C5= =91gener=C3=A1tor g=C3=A9pcsoport, ezzel kedvez=C5=91 s=C3=BAlyeloszt=C3= =A1st is biztos=C3=ADtva. A balesetes emel=C3=A9s c=C3=A9ljaira konvenci= on=C3=A1lis emel=C5=91pontok szolg=C3=A1lnak, a forg=C3=B3v=C3=A1z keres= zttart=C3=B3k k=C3=B6rnyezet=C3=A9ben. Ez az =C3=96BB szabv=C3=A1nyos, c= sapszeges kivitel. A f=C5=91g=C3=A9pcsoport tart=C3=B3szerkezet=C3=A9nek= meghosszabb=C3=ADt=C3=A1s=C3=A1ban ker=C3=BClt a f=C5=91=C3=A1ramk=C3=B6= ri h=C5=B1t=C5=91modul, a f=C3=A9kszerkezeti =C3=A1llv=C3=A1ny, valamint= k=C3=BCl=C3=B6nb=C3=B6z=C5=91 konzolok az alv=C3=A1zszerkezettel =C3=B6= sszehangoltan, a padl=C3=B3 alatti berendez=C3=A9sek elhelyez=C3=A9s=C3=A9= re.

A g=C3=A9pt=C3=A9r h=C3=A1rom r=C3=A9szre osztott, amelyek egym=C3=A1= st=C3=B3l ajt=C3=B3kkal elv=C3=A1lasztottak.

Ebbe ker=C3=BCltek a mechanikus, villamos =C3=A9s leveg=C5=91s berend= ez=C3=A9sek els=C5=91dlegesen a k=C3=B6z=C3=A9pr=C3=A9szre orient=C3=A1l= tan elhelyez=C3=A9sre, =C3=ADgy a motort=C3=A9r mindk=C3=A9t oldal=C3=A1= n a szabad k=C3=B6zleked=C3=A9s biztos=C3=ADtott. A motort=C3=A9rben a k= omplett motor =C3=A9s felszerel=C3=A9sei, h=C5=B1t=C5=91ventill=C3=A1tor= hajt=C3=A1s hidrosztatikus szivatty=C3=BAja, a hangtomp=C3=ADt=C3=B3, l= eveg=C5=91- =C3=A9s kipufog=C3=B3 cs=C3=B6vek stb. nyertek helyet. A mot= ort=C3=A9r szell=C5=91z=C3=A9s=C3=A9t a gener=C3=A1tor biztos=C3=ADtja. = A h=C5=B1t=C5=91 ter=C3=A9ben nyert elhelyez=C3=A9st a d=C3=ADzelmotor h= =C5=B1t=C5=91berendez=C3=A9se, kiegyenl=C3=ADt=C5=91 tart=C3=A1ly hidros= ztatikus motor, ventil=C3=A1tor. A villamos t=C3=A9rben a f=C3=A9kszerke= zeti =C3=A1llv=C3=A1ny, k=C3=B6zponti elektronikai szekr=C3=A9ny, leveg=C5= =91sz=C5=B1r=C5=91 kapott helyet. Az =C3=B6sszes szerkezeti elem a k=C3=B6= nny=C5=B1 szerelhet=C5=91s=C3=A9g =C3=A9rdek=C3=A9ben a tet=C5=91szerkez= et lev=C3=A9tele ut=C3=A1n ki- =C3=A9s beemelhet=C5=91. A forg=C3=B3v=C3= =A1z konzekvens tov=C3=A1bbfejleszt=C3=A9se a DB 152, a Taurus el=C5=91d mozdony forg=C3=B3v=C3=A1= z=C3=A1nak. Maga a forg=C3=B3v=C3=A1z tehervisel=C5=91 szerkezete hegesz= tett szekr=C3=A9nyszerkezetes megold=C3=A1ssal k=C3=A9sz=C3=BClt. Az =C3= =B6sszes szerkezeti eleme a hossz=C3=BA =C3=A9lettartam jegy=C3=A9ben gu= mi-f=C3=A9m megold=C3=A1ssal kialak=C3=ADtott, =C3=A9s a tengely=C3=A1gy= vezet=C3=A9s k=C3=BCl=C3=B6n=C3=B6s tekintettel a kis sugar=C3=BA =C3=AD= vekben val=C3=B3 fut=C3=A1s k=C3=B6r=C3=BClm=C3=A9nyeire k=C3=A9sz=C3=BC= lt. A mozdonyszekr=C3=A9ny a forg=C3=B3v=C3=A1zon flexicoil csavarr=C3= =BAg=C3=B3kon t=C3=A1maszkodik meg, de ennek egy=C3=A9bk=C3=A9nt is = kit=C5=B1n=C5=91 stabilit=C3=A1s=C3=A1t a hidraulikus leng=C3=A9scsillap= =C3=ADt=C3=B3k m=C3=A9g tov=C3=A1bb jav=C3=ADtj=C3=A1k. A von=C3=B3er=C5= =91 =C3=A1tad=C3=A1st kir=C3=A1lycsapszeges megold=C3=A1s biztos=C3=ADtj= a, a von=C3=B3er=C5=91 =C3=A1tad=C3=B3 elemek kialak=C3=ADt=C3=A1sa hely= e pedig olyan, hogy a von=C3=B3er=C5=91 kifejt=C3=A9s hat=C3=A1s=C3=A1ra= l=C3=A9trej=C3=B6v=C5=91 tengelynyom=C3=A1s v=C3=A1ltoz=C3=A1s minim=C3= =A1lis legyen.

A mozdonyra k=C3=BCl=C3=B6nleges, a Taurus mozdony=C3=A9val azonos mu= nkaem=C3=A9szt=C5=91s =C3=BCtk=C3=B6z=C5=91k=C3=A9sz=C3=BCl=C3=A9ket sze= reltek. Ez 1 MJ energia felv=C3=A9tel=C3=A9re alkalmas, =C3=A9s mintegy = 40 km/h =C3=BCtk=C3=B6z=C3=A9si sebess=C3=A9gig m=C5=B1k=C3=B6d=C5=91k=C3= =A9pes.

Az =C3=96BB probl=C3=A9m=C3=A1it ismerve, nem k=C3=BCl=C3=B6n=C3=B6s,= hogy k=C3=BCl=C3=B6n el=C5=91=C3=ADr=C3=A1ssal szab=C3=A1lyozta a gy=C3= =A1rt=C3=B3 fel=C3=A9 a h=C3=B3- p=C3=A1lyakotr=C3=B3 kialak=C3=ADt=C3=A1= s=C3=A1t. Ezzel nemcsak a mozdony v=C3=A9delm=C3=A9t, hanem a hat=C3=A1s= oss=C3=A1g=C3=A1val t=C3=A9li h=C3=B3t=C3=B6r=C5=91 menetek sz=C3=A1m=C3= =A1t is cs=C3=B6kkenteni k=C3=ADv=C3=A1nta.

[szerkeszt=C3=A9s] Vezet=C5=91=C3=A1ll=C3=A1s

Az ember-g=C3=A9p kapcsolat =C3=A9s munkak=C3=B6r=C3=BClm=C3=A9nyek s= zempontj=C3=A1b=C3=B3l igen fontos elem a vezet=C5=91=C3=A1ll=C3=A1s, am= ely a DB =C3=A9s =C3=96BB korszer=C5=B1 vezet=C5=91=C3=A1ll=C3=A1s t=C3=AD= pus=C3=A1nak a d=C3=ADzel-villamos mozdonyra adopt=C3=A1lt v=C3=A1ltozat= =C3=A1t val=C3=B3s=C3=ADtja meg.

[szerkeszt=C3=A9s] Leveg=C5=91s berendez=C3=A9sek, f=C3=A9= k

A korszer=C5=B1 =C3=A9p=C3=ADt=C3=A9si elveknek megfelel=C5=91en az =C3= =B6sszes leveg=C5=91s berendez=C3=A9s egy =C3=A1llv=C3=A1nyon =C3=B6ssze= fogva ker=C3=BClt elhelyez=C3=A9sre. A s=C5=B1r=C3=ADtett leveg=C5=91 el= l=C3=A1t=C3=A1st egy h=C3=A1romf=C3=A1zis=C3=BA motorral hajtott csavark= ompresszor biztos=C3=ADtja, amelyhez egy k=C3=A9tkamr=C3=A1s l=C3=A9gsz=C3= =A1r=C3=ADt=C3=B3 berendez=C3=A9s csatlakozik.

A f=C3=A9kberendez=C3=A9s szok=C3=A1sos, indirekt, =C3=B6nm=C5=B1k=C3= =B6d=C5=91 l=C3=A9gnyom=C3=A1sos, tov=C3=A1bb=C3=A1 k=C3=B6zvetlen f=C3=A9= kberendez=C3=A9sb=C5=91l =C3=A1ll. A j=C3=A1rm=C5=B1 r=C3=B6gz=C3=ADt=C3= =A9s=C3=A9r=C5=91l rug=C3=B3er=C5=91t=C3=A1rol=C3=B3s f=C3=A9k gondoskod= ik.

[szerkeszt=C3=A9s] Ir=C3=A1ny=C3=ADt=C3=A1stechnika

A j=C3=A1rm=C5=B1 ir=C3=A1ny=C3=ADt=C3=A1stechnika a legkorszer=C5=B1= bb sz=C3=A1m=C3=ADt=C3=A1stechnikai elemek felhaszn=C3=A1l=C3=A1s=C3=A1v= al, a Siemens 32 bit ada= tsz=C3=A9less=C3=A9g=C5=B1 SIBAS 32 t=C3=ADpus=C3=A1ra =C3=A9p=C3= =BCl, a mozdony =C3=B6sszes vez=C3=A9rl=C3=A9si, szab=C3=A1lyoz=C3=A1si = =C3=A9s diagnosztikai funkci=C3=B3it ell=C3=A1tja. A rendszer k=C3=B6zpo= ntja a k=C3=B6zponti vez=C3=A9rl=C5=91 egys=C3=A9g.

Ebben az eddigi megold=C3=A1sokban decentraliz=C3=A1ltan elhelyezett = egys=C3=A9gek, hajt=C3=A1svez=C3=A9rl=C3=A9s, k=C3=B6zponti diagnosztika= , mozdonyvez=C3=A9rl=C5=91 egys=C3=A9gek vannak =C3=B6sszefogva. Az adat= =C3=A1tvitel a nemzetk=C3=B6zi norm=C3=A1knak megfelel=C5=91 Train Co= mmunication Network (TCN), k=C3=A9t komponensb=C5=91l a Wire Trai= n Bus: vonatbusz (WTB) =C3=A9s Multifunction Vehicle Bus': j=C3=A1= rm=C5=B1busz (MVB) buszrendszerekb=C5=91l tev=C5=91dik =C3=B6ssze, redun= d=C3=A1ns kivitelben. A kezel=C5=91szervek, =C3=A9s egy=C3=A9b nem sz=C3= =A1m=C3=ADt=C3=A1stechnikai elemek adatforgalm=C3=A1r=C3=B3l a=E2=80=A6<= /i>

[szerkeszt=C3=A9s] Modellvas=C3=BAt

"Hercules" mozdonyt HO m=C3=A9retar=C3=A1nyban a M=C3=A4rk= lin, Tri= x, Roco<= /a> =C3=A9s = Piko, N m=C3=A9retar=C3=A1nyban Fleischmann, TT = m=C3=A9retar=C3=A1nyban a Piko =C3=A9s a K=C3=BChn Modell gy=C3=A1rt.

[szerkeszt=C3=A9s] <= span class=3D"mw-headline">K=C3=BCls=C5=91 hivatkoz=C3=A1sok

=

[szerkeszt=C3=A9s] Forr=C3=A1sok

A lap eredeti c=C3=ADme: =E2=80=9Ehttp://hu.wikipedia.org/wiki/%C3%96BB_2016=E2=80=9D=
Szem=C3=A9lyes eszk=C3=B6z=C3=B6k
------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=favicon.ico Content-Type: image/x-icon; name=favicon.ico Content-Location: http://hu.wikipedia.org/favicon.ico Content-Transfer-Encoding: Base64 AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAA AAAAAAAAEAAAAAAAAAAEAgQAhIOEAMjHyABIR0gA6ejpAGlqaQCpqKkAKCgoAPz9 /AAZGBkAmJiYANjZ2ABXWFcAent6ALm6uQA8OjwAiIiIiIiIiIiIiI4oiL6IiIiI gzuIV4iIiIhndo53KIiIiB/WvXoYiIiIfEZfWBSIiIEGi/foqoiIgzuL84i9iIjp GIoMiEHoiMkos3FojmiLlUipYliEWIF+iDe0GoRa7D6GPbjcu1yIiIiIiIiIiIiI iIiIiIiIiIiIiIiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=shared.css Content-Type: text/css; charset=utf-8; name=shared.css Content-Location: http://hu.wikipedia.org/skins-1.5/common/shared.css?179 Content-Transfer-Encoding: 8bit /** * CSS in this file is used by *all* skins (that have any CSS at all). Be * careful what you put in here, since what looks good in one skin may not in * another, but don't ignore the poor non-Monobook users either. */ .mw-plusminus-null { color: #aaa; } .texvc { direction: ltr; unicode-bidi: embed; } img.tex { vertical-align: middle; } span.texhtml { font-family: serif; } /* add a bit of margin space between the preview and the toolbar */ /* this replaces the ugly


we used to insert into the page source */ #wikiPreview.ontop { margin-bottom: 1em; } /* Stop floats from intruding into edit area in previews */ #toolbar, #wpTextbox1 { clear: both; } div#mw-js-message { margin: 1em 5%; padding: 0.5em 2.5%; border: solid 1px #ddd; background-color: #fcfcfc; } /* Edit section links */ .editsection { float: right; margin-left: 5px; } /** * File histories */ table.filehistory { border:1px solid #ccc; border-collapse:collapse; } table.filehistory th, table.filehistory td { padding: 0 0.2em 0 0.2em; vertical-align:top; border:1px solid #ccc; } table.filehistory th { text-align: left; } table.filehistory td.mw-imagepage-filesize, table.filehistory th.mw-imagepage-filesize { white-space:nowrap; } table.filehistory td.filehistory-selected { font-weight: bold; } /* * rev_deleted stuff */ li span.deleted, span.history-deleted { text-decoration: line-through; color: #888; font-style: italic; } /** * Forms */ body.ltr td.mw-label { text-align: right; } body.ltr td.mw-input { text-align: left; } body.ltr td.mw-submit { text-align: left; } body.rtl td.mw-label { text-align: left; } body.rtl td.mw-input { text-align: right; } body.rtl td.mw-submit { text-align: right; } td.mw-label { vertical-align: top; } td.mw-submit { white-space: nowrap; } /** * Image captions */ body.rtl .thumbcaption { text-align:right; } body.rtl .magnify { float:left; } body.ltr .thumbcaption { text-align:left; } body.ltr .magnify { float:right; } /** * Hidden categories */ .mw-hidden-cats-hidden { display: none; } .catlinks-allhidden { display: none; } /* Convenience links to edit block, delete and protect reasons */ p.mw-ipb-conveniencelinks, p.mw-protect-editreasons, p.mw-filedelete-editreasons, p.mw-delete-editreasons { font-size: 90%; float: right; } /* Search results */ div.searchresult { font-size: 95%; width:38em; } .mw-search-results li { padding-bottom: 1em; } .mw-search-result-data { color: green; font-size: 97%; } div#mw-search-interwiki { float: right; width: 18em; border-style: solid; border-color: #AAAAAA; border-width: 1px; margin-top: 2ex; } div#mw-search-interwiki li { font-size: 95%; } .mw-search-interwiki-more { float: right; font-size: 90%; } span.searchalttitle { font-size: 95%; } div.searchdidyoumean { font-size: 127%; padding-bottom:1ex; padding-top:1ex; } /* * UserRights stuff */ .mw-userrights-disabled { color: #888; } table.mw-userrights-groups * td,table.mw-userrights-groups * th { padding-right: 1.5em; } /* * OpenSearch ajax suggestions */ .os-suggest { overflow: auto; overflow-x: hidden; position: absolute; top: 0px; left: 0px; width: 0px; background-color: white; background-color: Window; border-style: solid; border-color: #AAAAAA; border-width: 1px; z-index:99; visibility:hidden; font-size:95%; } table.os-suggest-results { font-size: 95%; cursor: pointer; border: 0; border-collapse: collapse; width: 100%; } td.os-suggest-result, td.os-suggest-result-hl { white-space: nowrap; background-color: white; background-color: Window; color: black; color: WindowText; padding: 2px; } td.os-suggest-result-hl, td.os-suggest-result-hl-webkit { background-color: #4C59A6; color: white; } td.os-suggest-result-hl { /* System colors are misimplemented in Safari 3.0 and earlier, making highlighted text illegible... */ background-color: Highlight; color: HighlightText; } .os-suggest-toggle { position: relative; left: 1ex; font-size: 65%; } .os-suggest-toggle-def { position: absolute; top: 0px; left: 0px; font-size: 65%; visibility: hidden; } /* Page history styling */ /* the auto-generated edit comments */ .autocomment { color: gray; } #pagehistory .history-user { margin-left: 0.4em; margin-right: 0.2em; } #pagehistory span.minor { font-weight: bold; } #pagehistory li { border: 1px solid white; } #pagehistory li.selected { background-color: #f9f9f9; border: 1px dashed #aaa; } /* * Special:ListGroupRights styling * Special:Statistics styling */ table.mw-listgrouprights-table, table.mw-statistics-table { border: 1px solid #ccc; border-collapse: collapse; } table.mw-listgrouprights-table tr { vertical-align: top; } table.mw-listgrouprights-table td, table.mw-listgrouprights-table th, table.mw-statistics-table td, table.mw-statistics-table th { padding: 0.5em 0.2em 0.5em 0.2em; border: 1px solid #ccc; } td.mw-statistics-numbers { text-align: right; } /* Special:SpecialPages styling */ h4.mw-specialpagesgroup { background-color: #dcdcdc; padding: 2px; margin: .3em 0em 0em 0em; } .mw-specialpagerestricted { font-weight: bold; } #shared-image-dup, #shared-image-conflict { font-style: italic; } /* Special:EmailUser styling */ table.mw-emailuser-table { width: 98%; } td#mw-emailuser-sender, td#mw-emailuser-recipient { font-weight: bold; } ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=commonPrint.css Content-Type: text/css; charset=utf-8; name=commonPrint.css Content-Location: http://hu.wikipedia.org/skins-1.5/common/commonPrint.css?179 Content-Transfer-Encoding: 8bit /* ** MediaWiki Print style sheet for CSS2-capable browsers. ** Copyright Gabriel Wicke, http://www.aulinx.de/ ** ** Derived from the plone (http://plone.org/) styles ** Copyright Alexander Limi */ /* Thanks to A List Apart (http://alistapart.com/) for useful extras */ a.stub, a.new{ color:#ba0000; text-decoration:none; } #toc { /*border:1px solid #2f6fab;*/ border:1px solid #aaaaaa; background-color:#f9f9f9; padding:5px; } .tocindent { margin-left: 2em; } .tocline { margin-bottom: 0px; } /* images */ div.floatright { float: right; clear: right; margin: 0; position:relative; border: 0.5em solid White; border-width: 0.5em 0 0.8em 1.4em; } div.floatright p { font-style: italic;} div.floatleft { float: left; margin: 0.3em 0.5em 0.5em 0; position:relative; border: 0.5em solid White; border-width: 0.5em 1.4em 0.8em 0; } div.floatleft p { font-style: italic; } /* thumbnails */ div.thumb { margin-bottom: 0.5em; border-style: solid; border-color: White; width: auto; overflow: hidden; } div.thumb div { border:1px solid #cccccc; padding: 3px !important; background-color:#f9f9f9; font-size: 94%; text-align: center; } div.thumb div a img { border:1px solid #cccccc; } div.thumb div div.thumbcaption { border: none; padding: 0.3em 0 0.1em 0; } div.magnify { display: none; } div.tright { float: right; clear: right; border-width: 0.5em 0 0.8em 1.4em; } div.tleft { float: left; margin-right:0.5em; border-width: 0.5em 1.4em 0.8em 0; } img.thumbborder { border: 1px solid #dddddd; } /* table standards */ table.rimage { float:right; width:1pt; position:relative; margin-left:1em; margin-bottom:1em; text-align:center; } body { background: White; /*font-size: 11pt !important;*/ color: Black; margin: 0; padding: 0; } .noprint, div#jump-to-nav, div.top, div#column-one, #colophon, .editsection, .toctoggle, .tochidden, div#f-poweredbyico, div#f-copyrightico, li#viewcount, li#about, li#disclaimer, li#privacy { /* Hides all the elements irrelevant for printing */ display: none; } ul { list-style-type: square; } #content { background: none; border: none ! important; padding: 0 ! important; margin: 0 ! important; } #footer { background : white; color : black; border-top: 1px solid black; } h1, h2, h3, h4, h5, h6 { font-weight: bold; } p, .documentDescription { margin: 1em 0 ! important; line-height: 1.2em; } .tocindent p { margin: 0 0 0 0 ! important; } pre { border: 1pt dashed black; white-space: pre; font-size: 8pt; overflow: auto; padding: 1em 0; background : white; color : black; } table.listing, table.listing td { border: 1pt solid black; border-collapse: collapse; } a { color: Black !important; background: none !important; padding: 0 !important; } a:link, a:visited { color: #520; background: transparent; text-decoration: underline; } #content a.external.text:after, #content a.external.autonumber:after { /* Expand URLs for printing */ content: " (" attr(href) ") "; } #globalWrapper { width: 100% !important; min-width: 0 !important; } #content { background : white; color : black; } #column-content { margin: 0 !important; } #column-content #content { padding: 1em; margin: 0 !important; } /* MSIE/Win doesn't understand 'inherit' */ a, a.external, a.new, a.stub { color: black ! important; text-decoration: none ! important; } /* Continue ... */ a, a.external, a.new, a.stub { color: inherit ! important; text-decoration: inherit ! important; } img { border: none; } img.tex { vertical-align: middle; } span.texhtml { font-family: serif; } #siteNotice { display: none; } table.gallery { border: 1px solid #cccccc; margin: 2px; padding: 2px; background-color:#ffffff; } table.gallery tr { vertical-align:top; } div.gallerybox { border: 1px solid #cccccc; margin: 2px; background-color:#f9f9f9; width: 150px; } div.gallerybox div.thumb { text-align: center; border: 1px solid #cccccc; margin: 2px; } div.gallerytext { font-size: 94%; padding: 2px 4px; } /* ** Diff rendering */ table.diff { background:white; } td.diff-otitle { background:#ffffff; } td.diff-ntitle { background:#ffffff; } td.diff-addedline { background:#ccffcc; font-size: smaller; border: solid 2px black; } td.diff-deletedline { background:#ffffaa; font-size: smaller; border: dotted 2px black; } td.diff-context { background:#eeeeee; font-size: smaller; } .diffchange { color: silver; font-weight: bold; text-decoration: underline; } ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=headbg.jpg Content-Type: image/jpeg; name=headbg.jpg Content-Location: http://hu.wikipedia.org/skins-1.5/monobook/headbg.jpg Content-Transfer-Encoding: Base64 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 pqmqalFqtJUGrOhqk4mqUtJqampqa/RqapquqRhbcdOIbqoSWMoZnG01aiZjs3Gf tdoO6lFFFFFFFFJRRRRRytyX9LwVBqmpqUclytrcHACgBSUqKJRRQALZYAFFABQB SUUUlFFHK2XClAAAFABCoUAAAABQAFACoFAqKAhl2c6KXHu6AiZdkpKWkprGFopR FSlAEUAARQAAABFEVAAAKKKKKKAKKTU1TU1KkAoqDWDWE1NTU0NTQ1NV1gqFSWZT WzU1NTU1KWpOVv6WxSiiiiiikoooooooXkDgoopKWjkF4ABRAoACgABQBAUAEKKK KSiilLAoAFBBQAAAAAARQAQUAAAEyZoopfLVgkpRQUsKAAAAAAAAAAAAAFAUUUUU UUUUUUUAAAUUUmpRRRQFFFFFAJRRqUUUUUUUUUUampRSgBRRRRRRRRRRRRRQKBRS UUUoAABRQAUAFAAAFFABRRRRQFFFAFFFAUUAUACoUUFAABQAUAAUAoIqSlFFFLEK gUUUUAAoAioqCoKICiCgAAAAAAAAAAAAAAAIogKAAAAIoAigAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAD//Z ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=bullet.gif Content-Type: image/gif; name=bullet.gif Content-Location: http://hu.wikipedia.org/skins-1.5/monobook/bullet.gif Content-Transfer-Encoding: Base64 R0lGODlhBQANAIAAAGOMnP///yH5BAEAAAEALAAAAAAFAA0AAAIJjI+pu+APo4Sp ADs= ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=external.png Content-Type: image/png; name=external.png Content-Location: http://hu.wikipedia.org/skins-1.5/monobook/external.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAFVBMVEVmmcwzmcyZ zP8AZswAZv////////9E6giVAAAAB3RSTlP///////8AGksDRgAAADhJREFUGFcl y0ESAEAEA0Ei6/9P3sEcVB8kmrwFyni0bOeyyDpy9JTLEaOhQq7Ongf5FeMhHS/4 AVnsAZubxDVmAAAAAElFTkSuQmCC ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=user.gif Content-Type: image/gif; name=user.gif Content-Location: http://hu.wikipedia.org/skins-1.5/monobook/user.gif Content-Transfer-Encoding: Base64 R0lGODlhEAAQAPcAAFtJMlpJNFxIMU5OTm2XH3aIVJNkK5FmMJZnPbt6NIZzXId0 XpVwQZRzR5p7VI1+baZ3Tdl+Kt1/LIO2JYe5K4q8M4idYZKBbJK/QLqddZfDR5rF TZ/HVqfMZanNacKVWuKVQ+ejVuelVu21bPC/e5+XjKOjo7rXhr3aiM+1kNi4icff m8rio83jqNHmrtXotOPEl/HDg/LKjvfaq/ngut3Z1Nvrwd/tx/vqz+Hh4erq6v// /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAEAADsALAAAAAAQABAAAAh4AHcIHEiwoMEdFxRcOFhQ QQMGBwQwFLjAQQoYHwwAmPggA40ZMRIEmFhChQwSISIMmLjDhAgQEhCwFAih5kwT JkbgIDFg5UETL1gUIGFBQwWfBE3ccLHihAUOGChMQCrQhI0WE1B02OCBwNSCPcOK 7TmzrNmzOwICADs= ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=main.css Content-Type: text/css; charset=utf-8; name=main.css Content-Location: http://hu.wikipedia.org/skins-1.5/monobook/main.css?179 Content-Transfer-Encoding: 8bit /* ** MediaWiki 'monobook' style sheet for CSS2-capable browsers. ** Copyright Gabriel Wicke - http://wikidev.net/ ** License: GPL (http://www.gnu.org/copyleft/gpl.html) ** ** Loosely based on http://www.positioniseverything.net/ordered-floats.html by Big John ** and the Plone 2.0 styles, see http://plone.org/ (Alexander Limi,Joe Geldart & Tom Croucher, ** Michael Zeltner and Geir Bækholt) ** All you guys rock :) */ #column-content { width: 100%; float: right; margin: 0 0 .6em -12.2em; padding: 0; } #content { margin: 2.8em 0 0 12.2em; padding: 0 1em 1em 1em; position: relative; z-index: 2; } #column-one { padding-top: 160px; } #content { background: white; color: black; border: 1px solid #aaa; border-right: none; line-height: 1.5em; } /* the left column width is specified in class .portlet */ /* Font size: ** We take advantage of keyword scaling- browsers won't go below 9px ** More at http://www.w3.org/2003/07/30-font-size ** http://style.cleverchimp.com/font_size_intervals/altintervals.html */ body { font: x-small sans-serif; background: #f9f9f9 url(headbg.jpg) 0 0 no-repeat; color: black; margin: 0; padding: 0; } /* scale back up to a sane default */ #globalWrapper { font-size: 127%; width: 100%; margin: 0; padding: 0; } .visualClear { clear: both; } /* general styles */ table { font-size: 100%; color: black; /* we don't want the bottom borders of

s to be visible through floated tables */ background-color: white; } fieldset table { /* but keep table layouts in forms clean... */ background: none; } a { text-decoration: none; color: #002bb8; background: none; } a:visited { color: #5a3696; } a:active { color: #faa700; } a:hover { text-decoration: underline; } a.stub { color: #772233; } a.new, #p-personal a.new { color: #ba0000; } a.new:visited, #p-personal a.new:visited { color: #a55858; } img { border: none; vertical-align: middle; } p { margin: .4em 0 .5em 0; line-height: 1.5em; } p img { margin: 0; } hr { height: 1px; color: #aaa; background-color: #aaa; border: 0; margin: .2em 0 .2em 0; } h1, h2, h3, h4, h5, h6 { color: black; background: none; font-weight: normal; margin: 0; padding-top: .5em; padding-bottom: .17em; border-bottom: 1px solid #aaa; } h1 { font-size: 188%; } h1 .editsection { font-size: 53%; } h2 { font-size: 150%; } h2 .editsection { font-size: 67%; } h3, h4, h5, h6 { border-bottom: none; font-weight: bold; } h3 { font-size: 132%; } h3 .editsection { font-size: 76%; font-weight: normal; } h4 { font-size: 116%; } h4 .editsection { font-size: 86%; font-weight: normal; } h5 { font-size: 100%; } h5 .editsection { font-weight: normal; } h6 { font-size: 80%; } h6 .editsection { font-size: 125%; font-weight: normal; } ul { line-height: 1.5em; list-style-type: square; margin: .3em 0 0 1.5em; padding: 0; list-style-image: url(bullet.gif); } ol { line-height: 1.5em; margin: .3em 0 0 3.2em; padding: 0; list-style-image: none; } li { margin-bottom: .1em; } dt { font-weight: bold; margin-bottom: .1em; } dl { margin-top: .2em; margin-bottom: .5em; } dd { line-height: 1.5em; margin-left: 2em; margin-bottom: .1em; } fieldset { border: 1px solid #2f6fab; margin: 1em 0 1em 0; padding: 0 1em 1em; line-height: 1.5em; } fieldset.nested { margin: 0 0 0.5em 0; padding: 0 0.5em 0.5em; } legend { padding: .5em; font-size: 95%; } form { border: none; margin: 0; } textarea { width: 100%; padding: .1em; } input.historysubmit { padding: 0 .3em .3em .3em !important; font-size: 94%; cursor: pointer; height: 1.7em !important; margin-left: 1.6em; } select { vertical-align: top; } abbr, acronym, .explain { border-bottom: 1px dotted black; color: black; background: none; cursor: help; } q { font-family: Times, "Times New Roman", serif; font-style: italic; } /* disabled for now blockquote { font-family: Times, "Times New Roman", serif; font-style: italic; }*/ code { background-color: #f9f9f9; } pre { padding: 1em; border: 1px dashed #2f6fab; color: black; background-color: #f9f9f9; line-height: 1.1em; } /* ** the main content area */ #siteSub { display: none; } #jump-to-nav { display: none; } #contentSub, #contentSub2 { font-size: 84%; line-height: 1.2em; margin: 0 0 1.4em 1em; color: #7d7d7d; width: auto; } span.subpages { display: block; } /* Some space under the headers in the content area */ #bodyContent h1, #bodyContent h2 { margin-bottom: .6em; } #bodyContent h3, #bodyContent h4, #bodyContent h5 { margin-bottom: .3em; } .firstHeading { margin-bottom: .1em; /* These two rules hack around bug 2013 (fix for more limited bug 11325). When bug 2013 is fixed properly, they should be removed. */ line-height: 1.2em; padding-bottom: 0; } /* user notification thing */ .usermessage { background-color: #ffce7b; border: 1px solid #ffa500; color: black; font-weight: bold; margin: 2em 0 1em; padding: .5em 1em; vertical-align: middle; } #siteNotice { text-align: center; font-size: 95%; padding: 0 .9em; } #siteNotice p { margin: 0; padding: 0; } .success { color: green; font-size: larger; } .error { color: red; font-size: larger; } .errorbox, .successbox { font-size: larger; border: 2px solid; padding: .5em 1em; float: left; margin-bottom: 2em; color: #000; } .errorbox { border-color: red; background-color: #fff2f2; } .successbox { border-color: green; background-color: #dfd; } .errorbox h2, .successbox h2 { font-size: 1em; font-weight: bold; display: inline; margin: 0 .5em 0 0; border: none; } .catlinks { border: 1px solid #aaa; background-color: #f9f9f9; padding: 5px; margin-top: 1em; clear: both; } /* currently unused, intended to be used by a metadata box in the bottom-right corner of the content area */ .documentDescription { /* The summary text describing the document */ font-weight: bold; display: block; margin: 1em 0; line-height: 1.5em; } .documentByLine { text-align: right; font-size: 90%; clear: both; font-weight: normal; color: #76797c; } /* emulate center */ .center { width: 100%; text-align: center; } *.center * { margin-left: auto; margin-right: auto; } /* small for tables and similar */ .small, .small * { font-size: 94%; } table.small { font-size: 100%; } /* ** content styles */ #toc, .toc, .mw-warning { border: 1px solid #aaa; background-color: #f9f9f9; padding: 5px; font-size: 95%; } #toc h2, .toc h2 { display: inline; border: none; padding: 0; font-size: 100%; font-weight: bold; } #toc #toctitle, .toc #toctitle, #toc .toctitle, .toc .toctitle { text-align: center; } #toc ul, .toc ul { list-style-type: none; list-style-image: none; margin-left: 0; padding-left: 0; text-align: left; } #toc ul ul, .toc ul ul { margin: 0 0 0 2em; } #toc .toctoggle, .toc .toctoggle { font-size: 94%; } .mw-warning { margin-left: 50px; margin-right: 50px; text-align: center; } /* images */ div.floatright, table.floatright { clear: right; float: right; position: relative; margin: 0 0 .5em .5em; border: 0; /* border: .5em solid white; border-width: .5em 0 .8em 1.4em; */ } div.floatright p { font-style: italic; } div.floatleft, table.floatleft { float: left; clear: left; position: relative; margin: 0 .5em .5em 0; border: 0; /* margin: .3em .5em .5em 0; border: .5em solid white; border-width: .5em 1.4em .8em 0; */ } div.floatleft p { font-style: italic; } /* thumbnails */ div.thumb { margin-bottom: .5em; border-style: solid; border-color: white; width: auto; } div.thumbinner { border: 1px solid #ccc; padding: 3px !important; background-color: #f9f9f9; font-size: 94%; text-align: center; overflow: hidden; } html .thumbimage { border: 1px solid #ccc; } html .thumbcaption { border: none; text-align: left; line-height: 1.4em; padding: 3px !important; font-size: 94%; } div.magnify { float: right; border: none !important; background: none !important; } div.magnify a, div.magnify img { display: block; border: none !important; background: none !important; } div.tright { clear: right; float: right; border-width: .5em 0 .8em 1.4em; } div.tleft { float: left; clear: left; margin-right: .5em; border-width: .5em 1.4em .8em 0; } img.thumbborder { border: 1px solid #dddddd; } .hiddenStructure { display: none; } /* ** classes for special content elements like town boxes ** intended to be referenced directly from the wiki src */ /* ** User styles */ /* table standards */ table.rimage { float: right; position: relative; margin-left: 1em; margin-bottom: 1em; text-align: center; } .toccolours { border: 1px solid #aaa; background-color: #f9f9f9; padding: 5px; font-size: 95%; } /* ** edit views etc */ .special li { line-height: 1.4em; margin: 0; padding: 0; } /* ** keep the whitespace in front of the ^=, hides rule from konqueror ** this is css3, the validator doesn't like it when validating as css2 */ #bodyContent a.external, #bodyContent a[href ^="gopher://"] { background: url(external.png) center right no-repeat; padding-right: 13px; } #bodyContent a[href ^="https://"], .link-https { background: url(lock_icon.gif) center right no-repeat; padding-right: 16px; } #bodyContent a[href ^="mailto:"], .link-mailto { background: url(mail_icon.gif) center right no-repeat; padding-right: 18px; } #bodyContent a[href ^="news://"] { background: url(news_icon.png) center right no-repeat; padding-right: 18px; } #bodyContent a[href ^="ftp://"], .link-ftp { background: url(file_icon.gif) center right no-repeat; padding-right: 18px; } #bodyContent a[href ^="irc://"], #bodyContent a.extiw[href ^="irc://"], .link-irc { background: url(discussionitem_icon.gif) center right no-repeat; padding-right: 18px; } #bodyContent a.external[href $=".ogg"], #bodyContent a.external[href $=".OGG"], #bodyContent a.external[href $=".mid"], #bodyContent a.external[href $=".MID"], #bodyContent a.external[href $=".midi"], #bodyContent a.external[href $=".MIDI"], #bodyContent a.external[href $=".mp3"], #bodyContent a.external[href $=".MP3"], #bodyContent a.external[href $=".wav"], #bodyContent a.external[href $=".WAV"], #bodyContent a.external[href $=".wma"], #bodyContent a.external[href $=".WMA"], .link-audio { background: url("audio.png") center right no-repeat; padding-right: 13px; } #bodyContent a.external[href $=".ogm"], #bodyContent a.external[href $=".OGM"], #bodyContent a.external[href $=".avi"], #bodyContent a.external[href $=".AVI"], #bodyContent a.external[href $=".mpeg"], #bodyContent a.external[href $=".MPEG"], #bodyContent a.external[href $=".mpg"], #bodyContent a.external[href $=".MPG"], .link-video { background: url("video.png") center right no-repeat; padding-right: 13px; } #bodyContent a.external[href $=".pdf"], #bodyContent a.external[href $=".PDF"], #bodyContent a.external[href *=".pdf#"], #bodyContent a.external[href *=".PDF#"], #bodyContent a.external[href *=".pdf?"], #bodyContent a.external[href *=".PDF?"], .link-document { background: url("document.png") center right no-repeat; padding-right: 12px; } /* disable interwiki styling */ #bodyContent a.extiw, #bodyContent a.extiw:active { color: #36b; background: none; padding: 0; } #bodyContent a.external { color: #36b; } /* this can be used in the content area to switch off special external link styling */ #bodyContent .plainlinks a { background: none !important; padding: 0 !important; } /* ** Structural Elements */ /* ** general portlet styles (elements in the quickbar) */ .portlet { border: none; margin: 0 0 .5em; padding: 0; float: none; width: 11.6em; overflow: hidden; } .portlet h4 { font-size: 95%; font-weight: normal; white-space: nowrap; } .portlet h5 { background: transparent; padding: 0 1em 0 .5em; display: inline; height: 1em; text-transform: lowercase; font-size: 91%; font-weight: normal; white-space: nowrap; } .portlet h6 { background: #ffae2e; border: 1px solid #2f6fab; border-style: solid solid none solid; padding: 0 1em 0 1em; text-transform: lowercase; display: block; font-size: 1em; height: 1.2em; font-weight: normal; white-space: nowrap; } .pBody { font-size: 95%; background-color: white; color: black; border-collapse: collapse; border: 1px solid #aaa; padding: 0 .8em .3em .5em; } .portlet h1, .portlet h2, .portlet h3, .portlet h4 { margin: 0; padding: 0; } .portlet ul { line-height: 1.5em; list-style-type: square; list-style-image: url(bullet.gif); font-size: 95%; } .portlet li { padding: 0; margin: 0; } /* ** Logo properties */ #p-logo { top: 0; left: 0; position: absolute; /*needed to use z-index */ z-index: 3; height: 155px; width: 12em; overflow: visible; } #p-logo h5 { display: none; } #p-logo a, #p-logo a:hover { display: block; height: 155px; width: 12.2em; background-repeat: no-repeat; background-position: 35% 50% !important; text-decoration: none; } /* ** Search portlet */ #p-search { position: relative; z-index: 3; } input.searchButton { margin-top: 1px; font-size: 95%; } #searchGoButton { padding-left: .5em; padding-right: .5em; font-weight: bold; } #searchInput { width: 10.9em; margin: 0; font-size: 95%; } #p-search .pBody { padding: .5em .4em .4em .4em; text-align: center; } /* ** the personal toolbar */ #p-personal { position: absolute; left: 0; top: 0; z-index: 0; } #p-personal { width: 100%; white-space: nowrap; padding: 0; margin: 0; border: none; background: none; overflow: visible; line-height: 1.2em; } #p-personal h5 { display: none; } #p-personal .portlet, #p-personal .pBody { z-index: 0; padding: 0; margin: 0; border: none; overflow: visible; background: none; } /* this is the ul contained in the portlet */ #p-personal ul { border: none; line-height: 1.4em; color: #2f6fab; padding: 0 2em 0 3em; margin: 0; text-align: right; list-style: none; z-index: 0; background: none; cursor: default; } #p-personal li { z-index: 0; border: none; padding: 0; display: inline; color: #2f6fab; margin-left: 1em; line-height: 1.2em; background: none; } #p-personal li a { text-decoration: none; color: #005896; padding-bottom: .2em; background: none; } #p-personal li a:hover { background-color: white; padding-bottom: .2em; text-decoration: none; } #p-personal li.active a:hover { background-color: transparent; } /* the icon in front of the user name, single quotes in bg url to hide it from iemac */ li#pt-userpage, li#pt-anonuserpage, li#pt-login { background: url(user.gif) top left no-repeat; padding-left: 20px; text-transform: none; } #p-personal ul { text-transform: lowercase; } #p-personal li.active { font-weight: bold; } /* ** the page-related actions- page/talk, edit etc */ #p-cactions { position: absolute; top: 1.3em; left: 11.5em; margin: 0; white-space: nowrap; width: 76%; line-height: 1.1em; overflow: visible; background: none; border-collapse: collapse; padding-left: 1em; list-style: none; font-size: 95%; } #p-cactions ul { list-style: none; } #p-cactions li { display: inline; border: 1px solid #aaa; border-bottom: none; padding: 0 0 .1em 0; margin: 0 .3em 0 0; overflow: visible; background: white; } #p-cactions li.selected { border-color: #fabd23; padding: 0 0 .2em 0; font-weight: bold; } #p-cactions li a { background-color: #fbfbfb; color: #002bb8; border: none; padding: 0 .8em .3em; position: relative; z-index: 0; margin: 0; text-decoration: none; } #p-cactions li.selected a { z-index: 3; padding: 0 1em .2em!important; background-color: white; } #p-cactions .new a { color: #ba0000; } #p-cactions li a:hover { z-index: 3; text-decoration: none; background-color: white; } #p-cactions h5 { display: none; } #p-cactions li.istalk { margin-right: 0; } #p-cactions li.istalk a { padding-right: .5em; } #p-cactions #ca-addsection a { padding-left: .4em; padding-right: .4em; } /* offsets to distinguish the tab groups */ li#ca-talk { margin-right: 1.6em; } li#ca-watch, li#ca-unwatch, li#ca-varlang-0, li#ca-print { margin-left: 1.6em; } #p-cactions .pBody { font-size: 1em; background-color: transparent; color: inherit; border-collapse: inherit; border: 0; padding: 0; } #p-cactions .hiddenStructure { display: none; } #p-cactions li a { text-transform: lowercase; } /* ** the remaining portlets */ #p-tbx, #p-lang { position: relative; z-index: 3; } /* TODO: #t-iscite is only used by the Cite extension, come up with some * system which allows extensions to add to this file on the fly */ #t-ispermalink, #t-iscite { color: #999; } /* ** footer */ #footer { background-color: white; border-top: 1px solid #fabd23; border-bottom: 1px solid #fabd23; margin: .6em 0 1em 0; padding: .4em 0 1.2em 0; text-align: center; font-size: 90%; } #footer li { display: inline; margin: 0 1.3em; } #f-poweredbyico, #f-copyrightico { margin: 0 8px; position: relative; top: -2px; /* Bump it up just a tad */ } #f-poweredbyico { float: right; height: 1%; } #f-copyrightico { float: left; height: 1%; } /* js pref toc */ #preftoc { margin: 0; padding: 0; width: 100%; clear: both; } #preftoc li { background-color: #f0f0f0; color: #000; } #preftoc li { margin: 1px -2px 1px 2px; float: left; padding: 2px 0 3px 0; border: 1px solid #fff; border-right-color: #716f64; border-bottom: 0; position: relative; white-space: nowrap; list-style-type: none; list-style-image: none; z-index: 3; } #preftoc li.selected { font-weight: bold; background-color: #f9f9f9; border: 1px solid #aaa; border-bottom: none; cursor: default; top: 1px; padding-top: 2px; margin-right: -3px; } #preftoc > li.selected { top: 2px; } #preftoc a, #preftoc a:active { display: block; color: #000; padding: 0 .7em; position: relative; text-decoration: none; } #preftoc li.selected a { cursor: default; text-decoration: none; } #prefcontrol { padding-top: 2em; clear: both; } #preferences { margin: 0; border: 1px solid #aaa; clear: both; padding: 1.5em; background-color: #F9F9F9; } .prefsection { border: none; padding: 0; margin: 0; } .prefsection fieldset { border: 1px solid #aaa; float: left; margin-right: 2em; } .prefsection legend { font-weight: bold; } .prefsection table, .prefsection legend { background-color: #F9F9F9; } .mainLegend { display: none; } div.prefsectiontip { font-size: x-small; padding: .2em 2em; color: #666; } .btnSavePrefs { font-weight: bold; padding-left: .3em; padding-right: .3em; } .preferences-login { clear: both; margin-bottom: 1.5em; } .prefcache { font-size: 90%; margin-top: 2em; } div#userloginForm form, div#userlogin form#userlogin2 { margin: 0 3em 1em 0; border: 1px solid #aaa; clear: both; padding: 1.5em 2em; background-color: #f9f9f9; float: left; } .rtl div#userloginForm form, .rtl div#userlogin form#userlogin2 { float: right; } div#userloginForm table, div#userlogin form#userlogin2 table { background-color: #f9f9f9; } div#userloginForm h2, div#userlogin form#userlogin2 h2 { padding-top: 0; } div#userlogin .captcha, div#userloginForm .captcha { border: 1px solid #bbb; padding: 1.5em 2em; background-color: white; } #loginend, #signupend { clear: both; } #userloginprompt, #languagelinks { font-size: 85%; } #login-sectiontip { font-size: 85%; line-height: 1.2; padding-top: 2em; } #userlogin .loginText, #userlogin .loginPassword { width: 12em; } #userloginlink a, #wpLoginattempt, #wpCreateaccount { font-weight: bold; } /* ** IE/Mac fixes, hope to find a validating way to move this ** to a separate stylesheet. This would work but doesn't validate: ** @import("IEMacFixes.css"); */ /* tabs: border on the a, not the div */ * > html #p-cactions li { border: none; } * > html #p-cactions li a { border: 1px solid #aaa; border-bottom: none; } * > html #p-cactions li.selected a { border-color: #fabd23; } /* footer icons need a fixed width */ * > html #f-poweredbyico, * > html #f-copyrightico { width: 88px; } * > html #bodyContent, * > html #bodyContent pre { overflow-x: auto; width: 100%; padding-bottom: 25px; } /* more IE fixes */ /* float/negative margin brokenness */ * html #footer {margin-top: 0;} * html #column-content { display: inline; margin-bottom: 0; } * html div.editsection { font-size: smaller; } #pagehistory li.selected { position: relative; } /* Mac IE 5.0 fix; floated content turns invisible */ * > html #column-content { float: none; } * > html #column-one { position: absolute; left: 0; top: 0; } * > html #footer { margin-left: 13.2em; } .redirectText { font-size: 150%; margin: 5px; } .printfooter { display: none; } .not-patrolled { background-color: #ffa; } div.patrollink { clear: both; font-size: 75%; text-align: right; } span.newpage, span.minor, span.bot { font-weight: bold; } span.unpatrolled { font-weight: bold; color: red; } .sharedUploadNotice { font-style: italic; } span.updatedmarker { color: black; background-color: #0f0; } table.gallery { border: 1px solid #ccc; margin: 2px; padding: 2px; background-color: white; } table.gallery tr { vertical-align: top; } table.gallery td { vertical-align: top; background-color: #f9f9f9; border: solid 2px white; } /* Keep this temporarily so that cached pages will display right */ table.gallery td.galleryheader { text-align: center; font-weight: bold; } table.gallery caption { font-weight: bold; } div.gallerybox { margin: 2px; } div.gallerybox div.thumb { text-align: center; border: 1px solid #ccc; margin: 2px; } div.gallerytext { overflow: hidden; font-size: 94%; padding: 2px 4px; } span.comment { font-style: italic; } span.changedby { font-size: 95%; } .previewnote { text-indent: 3em; color: #c00; border-bottom: 1px solid #aaa; padding-bottom: 1em; margin-bottom: 1em; } .previewnote p { margin: 0; padding: 0; } .editExternally { border: 1px solid gray; background-color: #ffffff; padding: 3px; margin-top: 0.5em; float: left; font-size: small; text-align: center; } .editExternallyHelp { font-style: italic; color: gray; } .toggle { margin-left: 2em; text-indent: -2em; } /* Classes for EXIF data display */ table.mw_metadata { font-size: 0.8em; margin-left: 0.5em; margin-bottom: 0.5em; width: 300px; } table.mw_metadata caption { font-weight: bold; } table.mw_metadata th { font-weight: normal; } table.mw_metadata td { padding: 0.1em; } table.mw_metadata { border: none; border-collapse: collapse; } table.mw_metadata td, table.mw_metadata th { text-align: center; border: 1px solid #aaaaaa; padding-left: 0.1em; padding-right: 0.1em; } table.mw_metadata th { background-color: #f9f9f9; } table.mw_metadata td { background-color: #fcfcfc; } table.collapsed tr.collapsable { display: none; } /* filetoc */ ul#filetoc { text-align: center; border: 1px solid #aaaaaa; background-color: #f9f9f9; padding: 5px; font-size: 95%; margin-bottom: 0.5em; margin-left: 0; margin-right: 0; } #filetoc li { display: inline; list-style-type: none; padding-right: 2em; } input#wpSummary { width: 80%; } /* @bug 1714 */ input#wpSave, input#wpDiff { margin-right: 0.33em; } #wpSave { font-weight: bold; } /* Classes for article validation */ table.revisionform_default { border: 1px solid #000000; } table.revisionform_focus { border: 1px solid #000000; background-color:#00BBFF; } tr.revision_tr_default { background-color:#EEEEEE; } tr.revision_tr_first { background-color:#DDDDDD; } p.revision_saved { color: green; font-weight:bold; } #mw_trackbacks { border: solid 1px #bbbbff; background-color: #eeeeff; padding: 0.2em; } /* Allmessages table */ #allmessagestable th { background-color: #b2b2ff; } #allmessagestable tr.orig { background-color: #ffe2e2; } #allmessagestable tr.new { background-color: #e2ffe2; } #allmessagestable tr.def { background-color: #f0f0ff; } /* noarticletext */ div.noarticletext { border: 1px solid #ccc; background: #fff; padding: .2em 1em; color: #000; } div#searchTargetContainer { left: 10px; top: 10px; width: 90%; background: white; } div#searchTarget { padding: 3px; margin: 5px; background: #F0F0F0; border: solid 1px blue; } div#searchTarget ul li { list-style: none; } div#searchTarget ul li:before { color: orange; content: "\00BB \0020"; } div#searchTargetHide { float:right; border:solid 1px black; background:#DCDCDC; padding:2px; } div.multipageimagenavbox { border: solid 1px silver; padding: 4px; margin: 1em; background: #f0f0f0; } div.multipageimagenavbox div.thumb { border: none; margin-left: 2em; margin-right: 2em; } div.multipageimagenavbox hr { margin: 6px; } table.multipageimage td { text-align: center; } /** Special:Version */ table#sv-ext, table#sv-hooks, table#sv-software { margin: 1em; padding:0em; } #sv-ext td, #sv-hooks td, #sv-software td, #sv-ext th, #sv-hooks th, #sv-software th { border: 1px solid #A0A0A0; padding: 0 0.15em 0 0.15em; } #sv-ext th, #sv-hooks th, #sv-software th { background-color: #F0F0F0; color: black; padding: 0 0.15em 0 0.15em; } tr.sv-space{ height: 0.8em; border:none; } tr.sv-space td { display: none; } /* Table pager (e.g. Special:Imagelist) - remove underlines from the navigation link - collapse borders - set the borders to outsets (similar to Special:Allmessages) - remove line wrapping for all td and th, set background color - restore line wrapping for the last two table cells (description and size) */ .TablePager_nav a { text-decoration: none; } .TablePager { border-collapse: collapse; } .TablePager, .TablePager td, .TablePager th { border: 1px solid #aaaaaa; padding: 0 0.15em 0 0.15em; } .TablePager th { background-color: #eeeeff } .TablePager td { background-color: #ffffff } .TablePager tr:hover td { background-color: #eeeeff } .imagelist td, .imagelist th { white-space: nowrap } .imagelist .TablePager_col_links { background-color: #eeeeff } .imagelist .TablePager_col_img_description { white-space: normal } .imagelist th.TablePager_sort { background-color: #ccccff } .templatesUsed { margin-top: 1.5em; } .mw-summary-preview { margin: 0.1em 0; } /* Friendlier slave lag warnings */ div.mw-lag-warn-normal, div.mw-lag-warn-high { padding: 3px; text-align: center; margin: 3px auto; } div.mw-lag-warn-normal { border: 1px solid #FFCC66; background-color: #FFFFCC; } div.mw-lag-warn-high { font-weight: bold; border: 2px solid #FF0033; background-color: #FFCCCC; } /* Recreating-deleted-page/reupload file warning and log entries */ div#mw-upload-deleted-warn, div#mw-deleted-notice, div#mw-recreate-deleted-warn { padding: 3px; margin-bottom: 3px; border: 2px solid #2F6FAB; } div#mw-upload-deleted-warn ul li, div#mw-deleted-notice ul li, div#mw-recreate-deleted-warn ul li { font-size: 90%; } .MediaTransformError { background-color: #ccc; padding: 0.1em; } .MediaTransformError td { text-align: center; vertical-align: middle; font-size: 90%; } /** Special:Search stuff */ div#mw-search-interwiki-caption { text-align: center; font-weight: bold; font-size: 95%; } .mw-search-interwiki-project { font-size: 97%; text-align: left; padding-left: 0.2em; padding-right: 0.15em; padding-bottom: 0.2em; padding-top: 0.15em; background: #cae8ff; } span.searchmatch { font-weight: bold; color: red; } /* God-damned hack for the crappy layout */ .os-suggest { font-size: 127%; } ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=main.css Content-Type: text/css; charset=utf-8; name=main.css Content-Location: http://hu.wikipedia.org/skins-1.5/chick/main.css?179 Content-Transfer-Encoding: 8bit /* ** MediaWiki 'chick' style sheet for PDAs or other small-screen devices. ** Copyright Timwi ** License: GPL (http://www.gnu.org/copyleft/gpl.html) ** ** Loosely based on Monobook by Gabriel Wicke */ body { font-family: sans-serif; color: Black; margin: 0; padding: 0.3em; } a { color: #002bb8; } a:visited { color: #5a3696; } a:active { color: #ffa500; } a.stub { color: #772233; } a.new, #p-personal a.new { color:#ba0000; } a.new:visited, #p-personal a.new:visited { color:#a55858; } img { border: none; vertical-align: middle; } p { margin: 0.4em 0em 0.5em 0em; line-height: 1.5em; } p img { margin: 0; } hr { height: 1px; color: #aaaaaa; background-color: #aaaaaa; border: 0; margin: 0.2em 0 0.2em 0; } h1, h2, h3, h4, h5, h6 { color: Black; background: none; font-weight: normal; margin: 0; padding-top: 0.5em; padding-bottom: 0.17em; border-bottom: 1px solid #aaaaaa; } .editsection { font-weight: normal; } h1 { font-size: 188%; } h1 .editsection { font-size: 53.2%; } h2 { font-size: 150%; } h2 .editsection { font-size: 66.7%; } h3, h4, h5, h6 { border-bottom: none; font-weight: bold; } h3 { font-size: 132%; } h3 .editsection { font-size: 75.8%; } h4 { font-size: 116%; } h4 .editsection { font-size: 86.2%; } h5 { font-size: 100%; } h6 { font-size: 80%; } h6 .editsection { font-size: 125%; } ul { line-height: 1.5em; margin: 0.3em 0 0 1.5em; padding:0; } ol { line-height: 1.5em; margin: 0.3em 0 0 3.2em; padding:0; list-style-image: none; } li { margin-bottom: 0.1em; } dt { font-weight: bold; margin-bottom: 0.1em; } dl{ margin-top: 0.2em; margin-bottom: 0.5em; } dd { line-height: 1.5em; margin-left: 2em; margin-bottom: 0.1em; } fieldset { border: 1px solid #2f6fab; margin: 1em 0em 1em 0em; padding: 0em 1em 1em 1em; line-height: 1.5em; } legend { background: White; padding: 0.5em; font-size: 95%; } form { border: none; margin: 0; } textarea { border: 1px solid #2f6fab; color: Black; background-color: white; width: 100%; padding: 0.1em; overflow: auto; } /* hide this from ie/mac and konq2.2 */ @media All { head:first-child+body input { visibility: visible; border: 1px solid #2f6fab; color: Black; background-color: white; vertical-align: middle; padding: 0.2em; } } input.historysubmit { padding: 0 0.3em 0.3em 0.3em !important; font-size: 94%; cursor: pointer; height: 1.7em !important; margin-left: 1.6em; } input[type="radio"], input[type="checkbox"] { border:none; } select { border: 1px solid #2f6fab; color: Black; vertical-align: top; } abbr, acronym, .explain { border-bottom: 1px dotted Black; color: Black; background: none; cursor: help; } q { font-family: Times, "Times New Roman", serif; font-style: italic; } code { background-color: #f9f9f9; } pre { padding: 1em; border: 1px dashed #2f6fab; color: Black; background-color: #f9f9f9; line-height: 1.1em; } /* ** the main content area */ span.subpages { display: block; } /* Some space under the headers in the content area */ #bodyContent h1, #bodyContent h2 { margin-bottom:0.6em; } #bodyContent h3, #bodyContent h4, #bodyContent h5 { margin-bottom: 0.3em; } .firstHeading { margin-bottom:0.1em; } /* user notification thing */ .usermessage { background-color: #ffce7b; border: 1px solid #ffa500; color: Black; font-weight: bold; margin: 0.1em 0 0 0; padding: 2px 5px; vertical-align: middle; } #siteNotice { text-align: center; font-size: 95%; padding: 0 0.9em 0 0.9em; } #siteNotice p { margin: 0; padding: 0; } .error { color: red; font-size: larger; } .catlinks { border:1px solid #aaaaaa; background-color:#f9f9f9; padding: 2px 5px; margin: 0.1em 0 0 0; clear: both; } .catlinks { margin: 0; padding: 0; } /* currently unused, intended to be used by a metadata box in the bottom-right corner of the content area */ .documentDescription { /* The summary text describing the document */ font-weight: bold; display: block; margin: 1em 0em; line-height: 1.5em; } .documentByLine { text-align: right; font-size: 90%; clear: both; font-weight: normal; color: #76797c; } /* emulate center */ .center { width: 100%; text-align: center; } *.center * { margin-left: auto; margin-right: auto; } /* small for tables and similar */ .small, .small * { font-size: 94%; } table.small { font-size: 100% } /* ** content styles */ #toc { /*border:1px solid #2f6fab;*/ border:1px solid #aaaaaa; background-color:#f9f9f9; padding:5px; font-size: 95%; } #toc ul { margin-left: 2em; } #toc .toctoggle { font-size: 94%; } #toc .editsection { margin-top: 0.7em; font-size: 94%; } /* images */ div.floatright, table.floatright { clear: right; float: right; margin: 0; position: relative; border: 0.5em solid White; border-width: 0.5em 0 0.8em 1.4em; } div.floatright p { font-style: italic; } div.floatleft, table.floatleft { float: left; clear: left; margin: 0.3em 0.5em 0.5em 0; position: relative; border: 0.5em solid White; border-width: 0.5em 1.4em 0.8em 0; } div.floatleft p { font-style: italic; } /* thumbnails */ div.thumb { margin-bottom: 0.5em; border-style: solid; border-color: White; width: auto; } div.thumb div { border:1px solid #cccccc; padding: 3px !important; background-color:#f9f9f9; font-size: 94%; text-align: center; overflow: hidden; } div.thumb div a img { border:1px solid #cccccc; } div.thumb div div.thumbcaption { border: none; text-align: left; line-height: 1.4em; padding: 0.3em 0 0.1em 0; } div.magnify { float: right; border: none !important; background: none !important; } div.magnify a, div.magnify img { display: block; border: none !important; background: none !important; } div.tright { clear: right; float: right; border-width: 0.5em 0 0.8em 1.4em; } div.tleft { float: left; clear: left; margin-right:0.5em; border-width: 0.5em 1.4em 0.8em 0; } img.thumbborder { border: 1px solid #dddddd; } .hiddenStructure { display: none; } /* ** classes for special content elements like town boxes ** intended to be referenced directly from the wiki src */ /* ** User styles */ /* table standards */ table.rimage { float:right; position:relative; margin-left:1em; margin-bottom:1em; text-align:center; } .toccolours { border:1px solid #aaaaaa; background-color:#f9f9f9; padding:5px; font-size: 95%; } /* ** edit views etc */ .special li { line-height: 1.4em; margin: 0; padding: 0; } a.external { color: #3366bb; } div#footer { text-align: center; } ul#f-list li { list-style: none; text-align: center; } div.portlet { margin: 0.5em 0; } .redirectText { font-size:150%; margin:5px; } ul.special li.not-patrolled, ol.special li.not-patrolled { background-color: #ffa; } div.patrollink { font-size: 75%; text-align: right; } span.newpage, span.minor { font-weight: bold; } span.updatedmarker { color:black; background-color:#00FF00; } table.gallery { border: 1px solid #cccccc; margin: 2px; padding: 2px; background-color:#ffffff; } table.gallery tr { vertical-align:top; } table.gallery td { vertical-align:top; background-color:#f9f9f9; border: solid 2px white; } div.gallerybox { margin: 2px; width: 150px; } div.gallerybox div.thumb { text-align: center; border: 1px solid #cccccc; margin: 2px; } div.gallerytext { overflow: hidden; font-size: 94%; padding: 2px 4px; } #xjump-to-nav { display: none; } .templatesUsed { margin-top: 1.5em; } /* Recreating-deleted-page/reupload file warning and log entries */ div#mw-upload-deleted-warn ul li, div#mw-deleted-notice ul li, div#mw-recreate-deleted-warn ul li { font-size: 95%; } .printfooter { display: none; } #footer { background-color: white; border-top: 1px solid #fabd23; border-bottom: 1px solid #fabd23; margin: .6em 0 1em 0; padding: .4em 0 1.2em 0; text-align: center; font-size: 90%; } #f-poweredbyico, #f-copyrightico { display: inline; } ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=index.css Content-Type: text/css; charset=utf-8; name=index.css Content-Location: http://hu.wikipedia.org/w/index.php?title=MediaWiki:Common.css&usemsgcache=yes&ctype=text/css&smaxage=2678400&action=raw&maxage=2678400 Content-Transfer-Encoding: 8bit /* Közös CSS az összes skinnek [[en:MediaWiki:Common.css]] */ /* == Táblázatok == */ /* let's make a class that deals with tables better Any complaints, please message Ta bu shi da yu */ table.prettytable { border-collapse: collapse; background: #f9f9f9; margin-left: 10px; margin-right: 10px; margin-top: 5px; margin-bottom: 5px; padding: 5px; vertical-align: top; text-align: left; } table.prettytable td, table.prettytable th { border: 1px solid #ccc; } table.prettytable th { background: #efefef; font-weight: bold; text-align: center; } table.prettytable table td, table.prettytable table th { border: 0px none #fff; } table.prettytable table.prettytable td, table.prettytable table.prettytable th { border: 1px solid #ccc; } /* Alternate version of pretty table styling class. We'll remove the extra when we're done deciding all this. */ table.wikitable { margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaaaaa solid; border-collapse: collapse; } table.wikitable th, table.wikitable td { border: 1px #aaaaaa solid; padding: 0.2em; } table.wikitable th { background: #f2f2f2; text-align: center; } table.wikitable caption { margin-left: inherit; margin-right: inherit; } table.collapsible { overflow: hidden; } /* == Sablonstílusok == */ /* Merge template style */ .messagebox { border: 1px solid #aaaaaa; background-color: #f9f9f9; width: 85%; margin: 0 auto 1em auto; padding: .2em; text-align: justify; } .messagebox.merge { border: 1px solid #cf9fff; background-color: #f5edf5; text-align: center; } .messagebox.cleanup { border: 1px solid #9f9fff; background-color: #efefff; text-align: center; } .messagebox.standard-talk { border: 1px solid #c0c090; background-color: #f8eaba; } .messagebox.nested-talk { border: 1px solid #c0c090; background-color: #f8eaba; width: 100%; margin: 2px 4px 2px 4px; } .infobox { border: 1px solid #aaaaaa; background-color: #f9f9f9; margin-bottom: 0.5em; margin-left: 1em; padding: .2em; float: right; clear: right; text-align: left; } .infobox tr { vertical-align: top; } .infobox caption { margin-left: inherit; } .infobox.bordered { border-collapse: collapse; } .infobox.bordered td, .infobox.bordered th { border: 1px solid #aaaaaa; } .infobox.sisterproject { width: 22em; } /* Style for "notices" */ .notice { text-align: justify; margin: 1em; padding: 0.2em; } #disambig { border-top: 3px double #cccccc; border-bottom: 3px double #cccccc; } #spoiler { border-top: 2px solid #ddd; border-bottom:2px solid #ddd; } /* Standard talk template style */ .Talk-Notice { border: 1px solid #C0C090; background-color: #F8EABA; margin-bottom: 3px; width: 85%; border-spacing: 3px; margin-left: auto; margin-right: auto; } /* Make template background appear correctly on all browsers */ .Talk-Notice td { background: inherit; } #mw-recreate-deleted-warn { background: lightGoldenRodYellow; border: 2px solid red; } /* ==[[Wikipédia:Sablonegységesítés]]== */ /* Article message box template styles */ table.ambox { margin: 0 10%; /* Will not overlap with other elements */ border-collapse: collapse; background: #fbfbfb; border: 1px solid #aaa; border-left: 10px solid #1e90ff; /* Default "notice" blue */ } table.ambox th.ambox-text, table.ambox td.ambox-text { /* The message body cell(s) */ padding: 0.25em 0.5em; /* 0.5em left/right */ width: 100%; /* Make all templates the same width regardless of text size */ } table.ambox td.ambox-image { /* The left image cell */ padding: 2px 0px 2px 0.5em; /* 0.5em left, 0px right */ text-align: center; } table.ambox td.ambox-imageright { /* The right image cell */ padding: 2px 4px 2px 0px; /* 0px left, 4px right */ text-align: center; } * html table.ambox td.ambox-image { height: 1%; } *:first-child+html table.ambox td.ambox-image { height: 1%; } div.ambox-image-inner { width: 52px; } table.ambox-notice { border-left: 10px solid #1e90ff; /* Blue */ } table.ambox-delete, table.ambox-serious { border-left: 10px solid #b22222; /* Red */ } table.ambox-content { border-left: 10px solid #f28500; /* Orange */ } table.ambox-style { border-left: 10px solid #f4c430; /* Yellow */ } table.ambox-merge { border-left: 10px solid #9932cc; /* Purple */ } table.ambox-growth { border-left: 10px solid #228b22; /* Forest green */ } table.ambox-protection { border-left: 10px solid #bba; /* Gray */ } table.ambox-mini { /* small floating box variant */ float: right; clear: right; margin: 0 0 0 1em; width: 25%; } /* === Multimédiasablon-stílusok === */ /* Class for links with loudspeaker icon next to them */ .audiolink a{ background: url("http://upload.wikimedia.org/wikipedia/commons/thumb/8/8a/Loudspeaker.svg/11px-Loudspeaker.svg.png") center left no-repeat !important; padding-left: 16px !important; padding-right: 0 !important; } /* Icons for medialist templates [[Template:Listen]], [[Template:Multi-listen_start]], [[Template:Video]], [[Template:Multi-video_start]] */ div.listenlist { background: url("http://upload.wikimedia.org/wikipedia/commons/thumb/a/a6/Gnome-speakernotes.png/30px-Gnome-speakernotes.png"); padding-left: 40px; } div.videolist, div.multivideolist { background: url("http://upload.wikimedia.org/wikipedia/en/thumb/2/20/Tango-video-x-generic.png/40px-Tango-video-x-generic.png"); padding-left: 50px; } /* Style rules for media list templates */ div.medialist { min-height: 50px; margin: 1em; background-position: top left; background-repeat: no-repeat; } div.medialist ul { list-style-type: none; list-style-image: none; margin: 0; } div.medialist ul li { padding-bottom: 0.5em; } div.medialist ul li li { font-size: 91%; padding-bottom: 0; } /* == rquote sablon == */ table.rquote { font-family: Garamond, "Adobe Garamond Pro", "GaramondPremrPro", "ITC Garamond Std Book", "Stempel Garamond LT Pro", AGaramond, Galliard, serif; font-style: italic; font-size: 135%; line-height: 135%; background-color: inherit; border-collapse: collapse; border-style: none; } .rquote .forras {font-family: Verdana sans-serif;} table.rquote i { font-style: normal; } table.rquote p.forras { line-height: 1em; text-align: right; font-style: normal; font-size: 76%; } table.rquote p.forras i { font-style: normal; } table.floatleft, table.floatright { margin: .5em .75em; } table.floatcenter { margin: .5em auto; } /* == [[Wikipédia:CommonsTicker|CommonsTicker]] stílus == */ /* links */ .tickerDiffLink { } /* diff links in ticker */ .tickerMiscLink { } /* misc links in ticker */ /* remove list bullets */ .tickerList ul, .tickerList ul li { list-style: none; text-indent:-2em; margin-left:2em; text-align:left; } .tickerList ul ul, .tickerList ul ul li { list-style: none; text-indent:0; margin-left:1.5em; text-align:left; } /* per-type styles */ .tickerEntry_deleted { } /* entry for image deletion */ .tickerEntry_restored { } /* entry for restored image */ .tickerEntry_replaced { } /* entry for image replacement */ .tickerEntry_tagged { } /* entry for adding/removing problem tags */ .tickerEntry_redir { } /* entry for critical redirection (fot tag redirects) */ .tickerEntry_recat { } /* entry for critical re-categorization (for tag categories) */ .tickerEntry_notify { } /* entry for global notifications */ .tickerEntry_changed { } /* entry for generic change */ /* per-status styles */ .tickerStatus_done { text-decoration:line-through; } /* strike through when entry has been handeled */ .tickerStatus_megoldva { text-decoration:line-through; } /* strike through when entry has been handeled */ /* per-action styles */ .tickerAction_deleted:before { content:" TÖRL "; color: #FF0000; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_restored:before { content:" VISSZA "; color: #00BB00; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_deletedRev:before { content:" -RÉGI "; color: #DDAAAA; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_replaced:before { content:" CSERE "; color: #CC88FF; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_replacedOwn:before { content:" FRISS "; color: #EEAAFF; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_addedBad:before { content:" +SzT "; color: #FF8800; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_removedBad:before { content:" -SzT "; color: #00BB00; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_addedGood:before { content:" +OK "; color: #00BB00; font-family:monospace; font-weight:bold; font-size:100%; } .tickerAction_removedGood:before { content:" -OK "; color: #FF8800; font-family:monospace; font-weight:bold; font-size:100%; } /* ticker usage list */ .tickerUsage { font-size:80%; } /* entry applies to a template used by multiple images */ .tickerTemplateEntry { font-weight: bold; } /* entry applies to sub-entries, i.e. images that use a specific template */ .tickerSubEntry { } /* minor entry styles */ .tickerMinorEntry { color:#666; } /* minor entry */ .tickerMinorEntry a, .tickerMinorEntry a:link, .tickerMinorEntry a:visited { color:#669; } #bodyContent .tickerMinorEntry a.extiw, #bodyContent .tickerMinorEntry a.extiw:link, #bodyContent .tickerMinorEntry a.extiw:visited { color:#669; } /* == Friss változtatásoknál a betűszámláló betűi == */ /***** ** Bytecounter colours *****/ strong.mw-plusminus-neg { color: #c00; } span.mw-plusminus-neg { color: #900; } span.mw-plusminus-pos { color: #060; } /* == Lábjegyzetek == */ /* Két oszlopba; csak Firefox és Safari */ ol.references { font-size: 85%; column-count: 2; -moz-column-count:2; -webkit-column-count: 2; column-gap: 3em; -moz-column-gap: 3em; -webkit-column-gap: 3em; } ol.references > li { -webkit-column-break-inside: avoid; } .ref-1col ol.references { column-count: 1; -moz-column-count:1; -webkit-column-count: 1; } /* Kijelölt hivatkozásnak kék háttér */ ol.references li:target { background-color: #DEF; } sup.reference:target { background-color: #DEF; } /* Felső indexek relatív pozicionálása, hogy ne növeljék meg a sorközt */ sup.reference { vertical-align: baseline; position: relative; bottom: 1ex; } /* ==Redirekt listában dőlt betűs== */ .redirect-in-category, .allpagesredirect { font-style:italic; } /* == [[Sablon:Edittools|Edittools]] gombok == */ #specialchars a { color: black; background-color: #ccddee !important; text-decoration: none; border: thin #006699 outset; padding: 0.1em; } #specialchars a:hover, .my-buttons a:active { background-color: #bbccdd; border-style: inset; } /* Special characters list below edit window works better without underlining */ #specialchars a, #editpage-specialchars a { text-decoration: none; } #specialchars a:hover, #editpage-specialchars a:hover { text-decoration: underline; } /* == Külső linkek ikonjai == */ #bodyContent a.external[href$=".pdf"], #bodyContent a.external[href*=".pdf?"], #bodyContent a.external[href*=".pdf#"], #bodyContent a.external[href$=".PDF"], #bodyContent a.external[href*=".PDF?"], #bodyContent a.external[href*=".PDF#"] { background:transparent url(http://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Icons-mini-file_acrobat.gif/15px-Icons-mini-file_acrobat.gif) no-repeat scroll right center; padding-right:16px; } /* === Nyilacska nélküli külső linkek === */ /*Add formatting to make sure that "external references" from [[Template:Ref]] do not get URL expansion, not even when printed. The mechanism up to MediaWiki 1.4 was that the HTML code contained a SPAN following the anchor A; this SPAN had the class "urlexpansion", which was not displayed on screen, but was shown when the medium was "print". The rules below ensure (a) that there is no extra padding to the right of the anchor (displayed as "[]"), (b) that there is no "external link arrow" for the link, and (c) that this SPAN of class "urlexpansion" is never shown. ~~~~ */ .plainlinksneverexpand { background: none ! important; padding: 0 ! important; } .plainlinksneverexpand .urlexpansion { display : none ! important; } /* Make sure that ext links displayed within "plainlinksneverexpand" don't get the arrow... */ .plainlinksneverexpand a { background: none !important; padding: 0 !important } /* With MediaWiki 1.5, the mechanism has changed: instead of a SPAN of class "urlexpansion" following the anchor A, the anchor itself now has class "external autonumber" and the expansion is inserted when printing (see the common printing style sheet at http://en.wikipedia.org/skins-1.5/common/commonPrint.css) using the ":after" pseudo- element of CSS. We have to switch this off for links due to Template:Ref! ~~~~ */ .plainlinksneverexpand a.external.text:after { display: none !important; } .plainlinksneverexpand a.external.autonumber:after { display: none !important; } /* Remove padding from external links displayed without icon */ #bodyContent .plainlinks a {padding: 0 !important} /* Nyilacska nélküli külső linkek (lásd az en:MediaWiki:Common.css-ben a plainlinksneverexpand osztályt a részletesebb magyarázatért */ .nincslinkikon { background: none ! important; padding: 0 ! important; } .nincslinkikon a { background: none ! important; padding: 0 ! important; } .nincslinkikon .urlexpansion { display : none ! important; } .nincslinkikon a.external.autonumber:after { display: none !important } /* try adding here, this had no effect in [[MediaWiki:Common.css]] */ .plainlinksneverexpand a.external.text:after { display: none !important } /* == Patrolling == */ li.not-patrolled { background: none; border-left: 2px solid red; padding-left: 5px; /* list-style-image: url(http://upload.wikimedia.org/wikipedia/commons/thumb/8/84/Important-3.svg/5px-Important-3.svg.png); */ } /* == Navigáció == */ /* A kinyit-becsuk mechanizmus része, a többi a monobook.js-ben található */ div.Boxmerge, div.NavFrame { margin: 0px; padding: 2px; border: 1px solid #aaaaaa; text-align: center; border-collapse: collapse; font-size: 95%; } div.Boxmerge div.NavFrame { border-style: none; border-style: hidden; } div.NavFrame + div.NavFrame { border-top-style: none; border-top-style: hidden; } div.NavPic { background-color: #ffffff; margin: 0px; padding: 2px; float: left; } div.NavFrame div.NavHead { height: 1.6em; font-weight: bold; font-size: 100%; background-color: #efefef; position:relative; } div.NavFrame p { font-size: 100%; } div.NavFrame div.NavContent { font-size: 100%; } div.NavFrame div.NavContent p { font-size: 100%; } div.NavEnd { margin: 0px; padding: 0px; line-height: 1px; clear: both; } a.NavToggle { position:absolute; top:0px; right:3px; font-weight:normal; font-size:smaller; } .NavLeft div.NavFrame div.NavHead { padding-left: 4em; } .NavLeft a.NavToggle { right:auto; left:3px; } /* == Keretes szövegek == */ /* keretes szovegek, div class="keretjobb" ... */ div.keretjobb { float:right; background: #cccccc; width: 33%; border: 5px groove gray; padding: 1em; margin: 1em; font-size: smaller; } div.keretbal { float:left; background: #cccccc; width: 33%; border: 5px groove gray; padding: 1em; margin: 1em; font-size: smaller; } /* == Diff lapok == */ /* diff formázás */ /* normál méretű betűk */ td.diff-addedline, td.diff-deletedline, td.diff-context { font-size: 100%; } /* az eltérések kiemelése vastagon, aláhúzva, színesen */ span.diffchange { color: red; font-weight: bold; text-decoration: underline; } /* Accessibility experiment: make diff changes not just colour-based */ .diffchange { font-weight: bold; background-color: inherit; } td.diff-addedline, td.diff-deletedline, td.diff-context { font-size: 85%; color: inherit; } /* == Tartalomjegyzék == */ /* Allow limiting of which header levels are shown in a TOC;
, for instance, will limit to showing ==headings== and ===headings=== but no further (as long as there are no =headings= on the page, which there shouldn't be according to the MoS). */ .toclimit-2 .toclevel-2 {display:none;} .toclimit-3 .toclevel-3 {display:none;} .toclimit-4 .toclevel-4 {display:none;} .toclimit-5 .toclevel-5 {display:none;} .toclimit-6 .toclevel-6 {display:none;} .toclimit-7 .toclevel-7 {display:none;} /* == Bugfixek == */ /* floatoknak feher kerete van, ettol a transparent szetcsuszik --[[user:grin|2004.11.23.]] */ div.floatright, table.floatright { clear: right; float: right; margin: 0.5em 0 0.8em 1.4em; position: relative; border-width: 0; } div.floatleft, table.floatleft { float: left; margin: 0.3em 0.5em 0.5em 0; position: relative; border-width: 0; } /* RTL usernevek ne zavarják össze az RC és egyéb listákat */ span.changedby, span.comment { unicode-bidi:embed } /* Ne folyjon ki a keretből a hosszú sor (helyette vízszintes scrollbar). Gecko-s böngészőkben. */ pre { overflow: auto; } /* becsukható táblázatok nem működnek, ha overflow:auto van bennük */ .row-collapsed pre { overflow: hidden; background-color: transparent; } /* Ne legyen kihagyott hely a Special:Allpages listájában szereplő cikkcímek és az elválasztó között (http://bugzilla.wikimedia.org/show_bug.cgi?id=5565) */ table.allpageslist {border-collapse: collapse; border-spacing: 0} table.allpageslist td {padding: 0} /* === IE Unicode bugfixek === */ .IPA { /* IE only ( http://www.ibloomstudios.com/articles/the_ie7_css_hack/ ) */ font-family: "Chrysanthi Unicode", "Doulos SIL", Gentium, GentiumAlt, Code2000, "TITUS Cyberbit Basic", "DejaVu Sans", "Bitstream Cyberbit", "Arial Unicode MS", "Lucida Sans Unicode", "Hiragino Kaku Gothic Pro", "Matrix Unicode"; } .IPA:lang(en) { font-family: inherit; } .IPA:empty { /* Safari */ font-family: inherit; } .polytonic { font-family: Athena, Gentium, "Palatino Linotype", "Arial Unicode MS", "Lucida Sans Unicode", "Lucida Grande", Code2000; font-family /**/:inherit; } /* === Sitenotice fix === */ #mw-dismissable-notice td:first-child {width:95%;} #mw-dismissable-notice td:last-child {width:5%;} * html #mw-dismissable-notice td {width:95%;} /* * Új infobox (pl. magyar település infobox) */ .ujinfobox { border: 1px solid #aaaaaa; color: black; margin: 0 0 0.5em 1em; background-color: #f9f9f9; padding: 5px; float: right; clear: right; width: 272px; text-align: left; vertical-align: top; font-size: 90%; padding: 5px; } .ujinfobox th { vertical-align:top; text-align:left; } .ujinfobox th a { color:black; } .ujinfobox .fejlec { height:40px; vertical-align:middle; text-align:center; font-size:150%; font-weight:bolder; line-height:1.2em; color:#000 } .ujinfobox td { padding: 0px; } /* * Az új infoboxok ikonjai */ .autopalyainfobox { background: url("http://upload.wikimedia.org/wikipedia/commons/5/57/Picto_infobox_motorway.png") no-repeat top right; } * html .autopalyainfobox { background: none; } .fociinfobox { background: url("http://upload.wikimedia.org/wikipedia/commons/a/a8/Picto_infobox_football.png") no-repeat top right; } * html .fociinfobox { background: none; } .hidinfobox { background: url("http://upload.wikimedia.org/wikipedia/commons/8/87/Picto_infobox_bridge.png") no-repeat top right; } * html .hidinfobox { background: none; } .kepregenyinfobox { background: url("http://upload.wikimedia.org/wikipedia/hu/6/64/Speech_balloon_for_infobox.png") no-repeat top right; } * html .kepregenyinfobox { background: none; } .telepulesinfobox { background: url("http://upload.wikimedia.org/wikipedia/commons/7/7a/Picto_infobox_map.png") no-repeat top right; } * html .telepulesinfobox { background: none; } .videojatekinfobox { background: url("http://upload.wikimedia.org/wikipedia/commons/2/2d/Picto_infobox_gamepad.png") no-repeat bottom right; } * html .videojatekinfobox { background: none; } .zeneiinfobox { background: url("http://upload.wikimedia.org/wikipedia/commons/6/60/Picto_infobox_music.png") no-repeat top right; } * html .zeneiinfobox { background: none; } /* * Knávom, azaz a kínai nevek átírását váltogató mechanika. */ .kinai-szoveg .hidden { display: none; } /* * Az új navboxok stílusa */ /* default skin for navigation boxes */ table.navbox { /* navbox container style */ border:1px solid #aaa; width:100%; margin:auto; clear:both; font-size:92%; text-align:center; padding:1px; } table.navbox + table.navbox { margin-top:-1px; /* single pixel border between adjacent navboxes (doesn't work for IE6, but that's okay) */ } .navbox-title, .navbox-abovebelow, table.navbox th { text-align:center; /* title and above/below styles */ padding-left:1em; padding-right:1em; } .navbox-group { /* group style */ white-space:nowrap; text-align:right; font-weight:bold; padding-left:1em; padding-right:1em; } .navbox, .navbox-subgroup { background:#fdfdfd; /* Background color */ } .navbox-list { border-color:#fdfdfd; /* Must match background color */ } .navbox-title, table.navbox th { background:#ccccff; /* Level 1 color */ } .navbox-abovebelow, .navbox-group, .navbox-subgroup .navbox-title { background:#ddddff; /* Level 2 color */ } .navbox-subgroup .navbox-group, .navbox-subgroup .navbox-abovebelow { background:#e6e6ff; /* Level 3 color */ } .navbox-even { background:#f7f7f7; /* Even row striping */ } .navbox-odd { background:transparent; /* Odd row striping */ } @media print { .navbox { display: none; } } /* Új navboxok stílusának vége */ /* Filminfóbox */ .filminfobox { background: url("http://upload.wikimedia.org/wikipedia/commons/e/ea/Picto_infobox_cinema.png") no-repeat top right; } * html .filminfobox { background: none; } ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=index.css Content-Type: text/css; charset=utf-8; name=index.css Content-Location: http://hu.wikipedia.org/w/index.php?title=MediaWiki:Print.css&usemsgcache=yes&ctype=text/css&smaxage=2678400&action=raw&maxage=2678400 Content-Transfer-Encoding: 8bit #privacy, #about, #disclaimer, .editlink, .noprint, .metadata, .dablink, .editsection, .editsectionmoved { display: none } ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=index.css Content-Type: text/css; charset=utf-8; name=index.css Content-Location: http://hu.wikipedia.org/w/index.php?title=MediaWiki:Handheld.css&usemsgcache=yes&ctype=text/css&smaxage=2678400&action=raw&maxage=2678400 Content-Transfer-Encoding: 8bit /* CSS placed here will affect handheld devices based on the skin configured in $wgHandheldStyle */ ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=Monobook-bullet.png Content-Type: image/png; name=Monobook-bullet.png Content-Location: http://upload.wikimedia.org/wikipedia/en/1/18/Monobook-bullet.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAAkAAAANAQMAAABBztZFAAAABlBMVEUAAwBjjJzG 2b5OAAAAAXRSTlMAQObYZgAAABBJREFUCNdjYMAG7FARAwMADXkBNzRuJgIAAAAA SUVORK5CYII= ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=index.css Content-Type: text/css; charset=utf-8; name=index.css Content-Location: http://hu.wikipedia.org/w/index.php?title=MediaWiki:Monobook.css&usemsgcache=yes&ctype=text/css&smaxage=2678400&action=raw&maxage=2678400 Content-Transfer-Encoding: 8bit /* Közös (skinfüggetlen) css: [[MediaWiki:Common.css]] __TOC__ */ /* == Általános == === Adománygyűjtés linkje === */ #siteNotice { margin-top:5px; padding-left: 4px; font-style: italic; text-align: center; } table#mw-dismissable-notice, tr#mw-dismissable-notice, td#mw-dismissable-notice { background: transparent; } /* === Háttérszín === */ /* Make all non-namespace pages have a light blue content area. This is done by setting the background color for all #content areas to light blue and then overriding it for any #content enclosed in a .ns-0 (main namespace). I then do the same for the "tab" background colors. --Lupo */ #content { background: #F8FCFF; /* a light blue */ } #content div.thumb { border-color: #F8FCFF; } .ns-0 * #content { background: white; } #mytabs li { background: #F8FCFF; } .ns-0 * #mytabs li { background: white; } #mytabs li a { background-color: #F8FCFF; } .ns-0 * #mytabs li a { background-color: white; } #p-cactions li a { background-color: #F8FCFF; } .ns-0 * #p-cactions li a { background-color: white; } .ns-0 * #content div.thumb { border-color: white; } table.diff, td.diff-otitle, td.diff-ntitle { background-color: transparent; } /* === Alcím === */ /* "A Wikipédiából, a szabad enciklopédiából." szöveg */ #siteSub { display: inline; font-size: 120%; font-weight: normal; } #bodyContent #siteSub a { color: #000; text-decoration: none; background-color: transparent; background-image: none; padding-right: 0; } /* === Egyéb === */ /* Bold 'edit this page' link to encourage newcomers */ #ca-edit a { font-weight: bold !important; } /* Display "User $1, you are already logged in!" ([[MediaWiki:Alreadyloggedin]]) in red and bold */ div.alreadyloggedin { color: red; font-weight: bold; } #pt-login { font-weight: bold; font-size: 110%; } form#userlogin { float: left; padding: 1em 1em .7em 1em; background-color: #ffffe6; border: 2px solid #fc6; color: #000; margin-right: 2em; } form#userlogin table { float: left; background-color: #ffffe6; color: #000; } p.error { font-weight: bold; } .framedpicture img { border: 1px solid #aaa; } /* class for preformatted text without ugly borders */ .plain-pre pre { border: none; background-color:inherit; } /* Kategóriák tartalma */ div #mw-pages table, div #mw-subcategories table { background-color: transparent } /* Kategóriák tartalma, csoportonkénti fejléc */ div #mw-pages table h3, div #mw-subcategories table h3 { border-bottom: 1px dotted #aaa; width: 7em; margin-top: 1em; } /* == Cikkek tartalma == */ /* === Főoldal === */ .mainpage body { height:100%; } .mainpage td.section { vertical-align: top; width: 50%; border:1px solid #dddddd; background-color: #f9f9ff; } .mainpage div.section { position: relative; /* IE background fix */ border:1px solid #dddddd; background-color: #f9f9ff; padding: 1px; margin-bottom: 2px; } .mainpage h2.title { border:1px solid #aaaaaa; background-color: cornflowerblue; color:white; padding:.1em; text-align:center; font-weight:bold; font-size:100%; margin-bottom:0px; border-bottom: none; } .mainpage div.subsection { position: relative; /* IE background fix */ } .mainpage div.subsection h2 { border-bottom: 1px dotted gray; } .mainpage div.content { padding:0.5em; text-align:left } .mainpage h2.boxtitle { border-bottom: 1px dotted gray; font-size: 135%; font-weight: bold; color: black; padding: 0.2em; margin-bottom: 0.7em; } /* listák, kísérleti jelleggel */ .mainpage-lang { text-align:center; font-size: 95%; } .mainpage-lang dt { text-align:left; font-size:smaller; } .mainpage-lang dd { display:inline; padding: 0; margin: 0; white-space: nowrap; } #lang-100000.mainpage-lang dd { font-size: larger; } #lang-1000.mainpage-lang dd { font-size: smaller; } /* === Tartalomjegyzék === */ /* .toccolours added here because version in monobook/main.css wasn't being used by the print style */ .toccolours { border:1px solid #aaaaaa; background-color:#f9f9f9; padding:5px; font-size: 95%; } /* === Képek === */ /* Makes the background of a framed image white instead of gray. */ /* Only visible with transparent images. */ /* See #Framed_image_background_color */ div.thumb div a img { background-color:#ffffff; } /* === Beszélő Wikipédia === */ /* To position the spoken article link at the top of page Commented out while sitenotice present */ #spoken { position: absolute; float: right; text-align: right; font-size: 90%; right: 0; z-index: 1; background: none; border-bottom-style: none; top: -2.2em; display: block !important; } /* === Kiemelt szócikk státusz csillag === */ /* For positioning icons at top-right, used in Templates "Spoken Article" and "Featured Article" */ div.topicon { position:absolute; z-index:100; top:10px; display: block !important; } /* === Koordinátasablonok === */ #coordinates { position:absolute; z-index:1; border:none; background:none; right:30px; top:3.7em; /* float:right; */ margin:0.0em; padding:0.0em; /* line-height:1.5em; */ text-align:right; text-indent:0; font-size:85%; text-transform:none; white-space:nowrap; } * html #coordinates { /* IE6 only */ margin-top:0.5em; } *:first-child+html #coordinates { /* IE7 only */ margin-top:0.5em; } /* == ??? == */ #p-nav h5 { display: none; } .portlet a { text-decoration: none; } .portlet a:hover { text-decoration: underline; } #p-nav .pBody { padding-right: 0; } #p-nav a { display: block; width: 100%; } /* == Szerkesztés linkek a cím mögé == */ .editsectionmoved { float: none; margin-left: 0.5em; vertical-align: baseline; line-height: 1em; } /* main.css .editsection sizes * 0.9 */ h1 .editsectionmoved { font-size: 48%; } h2 .editsectionmoved { font-size: 60%; } h3 .editsectionmoved { font-size: 68%; font-weight: normal; } h4 .editsectionmoved { font-size: 77%; font-weight: normal; } h5 .editsectionmoved { font-size: 90%; font-weight: normal; } h6 .editsectionmoved { font-size: 112%; font-weight: normal; } /* IE-only rules: .editsection sizes * 0.95 */ * html h1 .editsectionmoved { font-size: 46%; } * html h2 .editsectionmoved { font-size: 57%; } * html h3 .editsectionmoved { font-size: 65%; } * html h4 .editsectionmoved { font-size: 73%; } * html h5 .editsectionmoved { font-size: 77%; } * html h6 .editsectionmoved { font-size: 106%; } /* == Kiemelt linkek elé csillag == */ .portlet li { list-style-image: url("http://upload.wikimedia.org/wikipedia/en/1/18/Monobook-bullet.png"); } li.FA { list-style-image: url("http://upload.wikimedia.org/wikipedia/en/d/d4/Monobook-bullet-star.png"); } @media print { .editsectionmoved { display:none; } div.topicon { display:none; } .foszocikk { display:none; } } ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=index.css Content-Type: text/css; charset=utf-8; name=index.css Content-Location: http://hu.wikipedia.org/w/index.php?title=-&action=raw&maxage=2678400&gen=css Content-Transfer-Encoding: 8bit /* generated user stylesheet */ a.new, #quickbar a.new { color: #CC2200; } ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=wikibits.js Content-Type: application/x-javascript; charset=utf-8; name=wikibits.js Content-Location: http://hu.wikipedia.org/skins-1.5/common/wikibits.js?179 Content-Transfer-Encoding: Base64 Ly8gTWVkaWFXaWtpIEphdmFTY3JpcHQgc3VwcG9ydCBmdW5jdGlvbnMKCnZhciBj bGllbnRQQyA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTsgLy8g R2V0IGNsaWVudCBpbmZvCnZhciBpc19nZWNrbyA9IC9nZWNrby8udGVzdCggY2xp ZW50UEMgKSAmJgoJIS9raHRtbHxzcG9vZmVyfG5ldHNjYXBlXC83XC4wLy50ZXN0 KGNsaWVudFBDKTsKdmFyIHdlYmtpdF9tYXRjaCA9IGNsaWVudFBDLm1hdGNoKC9h cHBsZXdlYmtpdFwvKFxkKykvKTsKaWYgKHdlYmtpdF9tYXRjaCkgewoJdmFyIGlz X3NhZmFyaSA9IGNsaWVudFBDLmluZGV4T2YoJ2FwcGxld2Via2l0JykgIT0gLTEg JiYKCQljbGllbnRQQy5pbmRleE9mKCdzcG9vZmVyJykgPT0gLTE7Cgl2YXIgaXNf c2FmYXJpX3dpbiA9IGlzX3NhZmFyaSAmJiBjbGllbnRQQy5pbmRleE9mKCd3aW5k b3dzJykgIT0gLTE7Cgl2YXIgd2Via2l0X3ZlcnNpb24gPSBwYXJzZUludCh3ZWJr aXRfbWF0Y2hbMV0pOwp9CnZhciBpc19raHRtbCA9IG5hdmlnYXRvci52ZW5kb3Ig PT0gJ0tERScgfHwKCSggZG9jdW1lbnQuY2hpbGROb2RlcyAmJiAhZG9jdW1lbnQu YWxsICYmICFuYXZpZ2F0b3IudGFpbnRFbmFibGVkICk7Ci8vIEZvciBhY2Nlc3Nr ZXlzOyBub3RlIHRoYXQgRkYzKyBpcyBpbmNsdWRlZCBoZXJlIQp2YXIgaXNfZmYy ID0gL2ZpcmVmb3hcL1syLTldfG1pbmVmaWVsZFwvMy8udGVzdCggY2xpZW50UEMg KTsKLy8gVGhlc2UgYXJlbid0IHVzZWQgaGVyZSwgYnV0IHNvbWUgY3VzdG9tIHNj cmlwdHMgcmVseSBvbiB0aGVtCnZhciBpc19mZjJfd2luID0gaXNfZmYyICYmIGNs aWVudFBDLmluZGV4T2YoJ3dpbmRvd3MnKSAhPSAtMTsKdmFyIGlzX2ZmMl94MTEg PSBpc19mZjIgJiYgY2xpZW50UEMuaW5kZXhPZigneDExJykgIT0gLTE7CmlmIChj bGllbnRQQy5pbmRleE9mKCdvcGVyYScpICE9IC0xKSB7Cgl2YXIgaXNfb3BlcmEg PSB0cnVlOwoJdmFyIGlzX29wZXJhX3ByZXNldmVuID0gd2luZG93Lm9wZXJhICYm ICFkb2N1bWVudC5jaGlsZE5vZGVzOwoJdmFyIGlzX29wZXJhX3NldmVuID0gd2lu ZG93Lm9wZXJhICYmIGRvY3VtZW50LmNoaWxkTm9kZXM7Cgl2YXIgaXNfb3BlcmFf OTUgPSAvb3BlcmFcLyg5Lls1LTldfFsxLTldWzAtOV0pLy50ZXN0KCBjbGllbnRQ QyApOwp9CgovLyBHbG9iYWwgZXh0ZXJuYWwgb2JqZWN0cyB1c2VkIGJ5IHRoaXMg c2NyaXB0LgovKmV4dGVybiB0YSwgc3R5bGVwYXRoLCBza2luICovCgovLyBhZGQg YW55IG9ubG9hZCBmdW5jdGlvbnMgaW4gdGhpcyBob29rIChwbGVhc2UgZG9uJ3Qg aGFyZC1jb2RlIGFueSBldmVudHMgaW4gdGhlIHhodG1sIHNvdXJjZSkKdmFyIGRv bmVPbmxvYWRIb29rOwoKaWYgKCF3aW5kb3cub25sb2FkRnVuY3RzKSB7Cgl2YXIg b25sb2FkRnVuY3RzID0gW107Cn0KCmZ1bmN0aW9uIGFkZE9ubG9hZEhvb2soaG9v a0Z1bmN0KSB7CgkvLyBBbGxvd3MgYWRkLW9uIHNjcmlwdHMgdG8gYWRkIG9ubG9h ZCBmdW5jdGlvbnMKCWlmKCFkb25lT25sb2FkSG9vaykgewoJCW9ubG9hZEZ1bmN0 c1tvbmxvYWRGdW5jdHMubGVuZ3RoXSA9IGhvb2tGdW5jdDsKCX0gZWxzZSB7CgkJ aG9va0Z1bmN0KCk7ICAvLyBidWcgaW4gTVNJRSBzY3JpcHQgbG9hZGluZwoJfQp9 CgpmdW5jdGlvbiBob29rRXZlbnQoaG9va05hbWUsIGhvb2tGdW5jdCkgewoJaWYg KHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKSB7CgkJd2luZG93LmFkZEV2ZW50TGlz dGVuZXIoaG9va05hbWUsIGhvb2tGdW5jdCwgZmFsc2UpOwoJfSBlbHNlIGlmICh3 aW5kb3cuYXR0YWNoRXZlbnQpIHsKCQl3aW5kb3cuYXR0YWNoRXZlbnQoIm9uIiAr IGhvb2tOYW1lLCBob29rRnVuY3QpOwoJfQp9CgpmdW5jdGlvbiBpbXBvcnRTY3Jp cHQocGFnZSkgewoJcmV0dXJuIGltcG9ydFNjcmlwdFVSSSh3Z1NjcmlwdCArICc/ YWN0aW9uPXJhdyZjdHlwZT10ZXh0L2phdmFzY3JpcHQmdGl0bGU9JyArIGVuY29k ZVVSSUNvbXBvbmVudChwYWdlLnJlcGxhY2UoLyAvZywnXycpKSk7Cn0KIAp2YXIg bG9hZGVkU2NyaXB0cyA9IHt9OyAvLyBpbmNsdWRlZC1zY3JpcHRzIHRyYWNrZXIK ZnVuY3Rpb24gaW1wb3J0U2NyaXB0VVJJKHVybCkgewoJaWYgKGxvYWRlZFNjcmlw dHNbdXJsXSkgewoJCXJldHVybiBudWxsOwoJfQoJbG9hZGVkU2NyaXB0c1t1cmxd ID0gdHJ1ZTsKCXZhciBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0 Jyk7CglzLnNldEF0dHJpYnV0ZSgnc3JjJyx1cmwpOwoJcy5zZXRBdHRyaWJ1dGUo J3R5cGUnLCd0ZXh0L2phdmFzY3JpcHQnKTsKCWRvY3VtZW50LmdldEVsZW1lbnRz QnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQocyk7CglyZXR1cm4gczsK fQogCmZ1bmN0aW9uIGltcG9ydFN0eWxlc2hlZXQocGFnZSkgewoJcmV0dXJuIGlt cG9ydFN0eWxlc2hlZXRVUkkod2dTY3JpcHQgKyAnP2FjdGlvbj1yYXcmY3R5cGU9 dGV4dC9jc3MmdGl0bGU9JyArIGVuY29kZVVSSUNvbXBvbmVudChwYWdlLnJlcGxh Y2UoLyAvZywnXycpKSk7Cn0KIApmdW5jdGlvbiBpbXBvcnRTdHlsZXNoZWV0VVJJ KHVybCkgewoJcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVN0eWxlU2hlZXQgPyBkb2N1 bWVudC5jcmVhdGVTdHlsZVNoZWV0KHVybCkgOiBhcHBlbmRDU1MoJ0BpbXBvcnQg IicgKyB1cmwgKyAnIjsnKTsKfQogCmZ1bmN0aW9uIGFwcGVuZENTUyh0ZXh0KSB7 Cgl2YXIgcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7CglzLnR5 cGUgPSAndGV4dC9jc3MnOwoJcy5yZWwgPSAnc3R5bGVzaGVldCc7CglpZiAocy5z dHlsZVNoZWV0KSBzLnN0eWxlU2hlZXQuY3NzVGV4dCA9IHRleHQgLy9JRQoJZWxz ZSBzLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQgKyAn JykpIC8vU2FmYXJpIHNvbWV0aW1lcyBib3JrcyBvbiBudWxsCglkb2N1bWVudC5n ZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKHMpOwoJ cmV0dXJuIHM7Cn0KCi8vIHNwZWNpYWwgc3R5bGVzaGVldCBsaW5rcwppZiAodHlw ZW9mIHN0eWxlcGF0aCAhPSAndW5kZWZpbmVkJyAmJiB0eXBlb2Ygc2tpbiAhPSAn dW5kZWZpbmVkJykgewoJaWYgKGlzX29wZXJhX3ByZXNldmVuKSB7CgkJaW1wb3J0 U3R5bGVzaGVldFVSSShzdHlsZXBhdGgrJy8nK3NraW4rJy9PcGVyYTZGaXhlcy5j c3MnKTsKCX0gZWxzZSBpZiAoaXNfb3BlcmFfc2V2ZW4gJiYgIWlzX29wZXJhXzk1 KSB7CgkJaW1wb3J0U3R5bGVzaGVldFVSSShzdHlsZXBhdGgrJy8nK3NraW4rJy9P cGVyYTdGaXhlcy5jc3MnKTsKCX0gZWxzZSBpZiAoaXNfa2h0bWwpIHsKCQlpbXBv cnRTdHlsZXNoZWV0VVJJKHN0eWxlcGF0aCsnLycrc2tpbisnL0tIVE1MRml4ZXMu Y3NzJyk7Cgl9Cn0KCmlmICh3Z0JyZWFrRnJhbWVzKSB7CgkvLyBVbi10cmFwIHVz IGZyb20gZnJhbWVzZXRzCglpZiAod2luZG93LnRvcCAhPSB3aW5kb3cpIHsKCQl3 aW5kb3cudG9wLmxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uOwoJfQp9CgovLyBm b3IgZW5oYW5jZWQgUmVjZW50Q2hhbmdlcwpmdW5jdGlvbiB0b2dnbGVWaXNpYmls aXR5KF9sZXZlbElkLCBfb3RoZXJJZCwgX2xpbmtJZCkgewoJdmFyIHRoaXNMZXZl bCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKF9sZXZlbElkKTsKCXZhciBvdGhl ckxldmVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoX290aGVySWQpOwoJdmFy IGxpbmtMZXZlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKF9saW5rSWQpOwoJ aWYgKHRoaXNMZXZlbC5zdHlsZS5kaXNwbGF5ID09ICdub25lJykgewoJCXRoaXNM ZXZlbC5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKCQlvdGhlckxldmVsLnN0eWxl LmRpc3BsYXkgPSAnbm9uZSc7CgkJbGlua0xldmVsLnN0eWxlLmRpc3BsYXkgPSAn aW5saW5lJzsKCX0gZWxzZSB7CgkJdGhpc0xldmVsLnN0eWxlLmRpc3BsYXkgPSAn bm9uZSc7CgkJb3RoZXJMZXZlbC5zdHlsZS5kaXNwbGF5ID0gJ2lubGluZSc7CgkJ bGlua0xldmVsLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Cgl9Cn0KCmZ1bmN0aW9u IHNob3dUb2NUb2dnbGUoKSB7CglpZiAoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUp IHsKCQkvLyBVc2VzIERPTSBjYWxscyB0byBhdm9pZCBkb2N1bWVudC53cml0ZSAr IFhIVE1MIGlzc3VlcwoKCQl2YXIgbGlua0hvbGRlciA9IGRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKCd0b2N0aXRsZScpOwoJCWlmICghbGlua0hvbGRlcikgewoJCQly ZXR1cm47CgkJfQoKCQl2YXIgb3V0ZXJTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxl bWVudCgnc3BhbicpOwoJCW91dGVyU3Bhbi5jbGFzc05hbWUgPSAndG9jdG9nZ2xl JzsKCgkJdmFyIHRvZ2dsZUxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdh Jyk7CgkJdG9nZ2xlTGluay5pZCA9ICd0b2dnbGVsaW5rJzsKCQl0b2dnbGVMaW5r LmNsYXNzTmFtZSA9ICdpbnRlcm5hbCc7CgkJdG9nZ2xlTGluay5ocmVmID0gJ2ph dmFzY3JpcHQ6dG9nZ2xlVG9jKCknOwoJCXRvZ2dsZUxpbmsuYXBwZW5kQ2hpbGQo ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodG9jSGlkZVRleHQpKTsKCgkJb3V0ZXJT cGFuLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdbJykpOwoJ CW91dGVyU3Bhbi5hcHBlbmRDaGlsZCh0b2dnbGVMaW5rKTsKCQlvdXRlclNwYW4u YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ10nKSk7CgoJCWxp bmtIb2xkZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJyAn KSk7CgkJbGlua0hvbGRlci5hcHBlbmRDaGlsZChvdXRlclNwYW4pOwoKCQl2YXIg Y29va2llUG9zID0gZG9jdW1lbnQuY29va2llLmluZGV4T2YoImhpZGV0b2M9Iik7 CgkJaWYgKGNvb2tpZVBvcyA+IC0xICYmIGRvY3VtZW50LmNvb2tpZS5jaGFyQXQo Y29va2llUG9zICsgOCkgPT0gMSkgewoJCQl0b2dnbGVUb2MoKTsKCQl9Cgl9Cn0K CmZ1bmN0aW9uIGNoYW5nZVRleHQoZWwsIG5ld1RleHQpIHsKCS8vIFNhZmFyaSB3 b3JrIGFyb3VuZAoJaWYgKGVsLmlubmVyVGV4dCkgewoJCWVsLmlubmVyVGV4dCA9 IG5ld1RleHQ7Cgl9IGVsc2UgaWYgKGVsLmZpcnN0Q2hpbGQgJiYgZWwuZmlyc3RD aGlsZC5ub2RlVmFsdWUpIHsKCQllbC5maXJzdENoaWxkLm5vZGVWYWx1ZSA9IG5l d1RleHQ7Cgl9Cn0KCmZ1bmN0aW9uIHRvZ2dsZVRvYygpIHsKCXZhciB0b2MgPSBk b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9jJykuZ2V0RWxlbWVudHNCeVRhZ05h bWUoJ3VsJylbMF07Cgl2YXIgdG9nZ2xlTGluayA9IGRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCd0b2dnbGVsaW5rJyk7CgoJaWYgKHRvYyAmJiB0b2dnbGVMaW5rICYm IHRvYy5zdHlsZS5kaXNwbGF5ID09ICdub25lJykgewoJCWNoYW5nZVRleHQodG9n Z2xlTGluaywgdG9jSGlkZVRleHQpOwoJCXRvYy5zdHlsZS5kaXNwbGF5ID0gJ2Js b2NrJzsKCQlkb2N1bWVudC5jb29raWUgPSAiaGlkZXRvYz0wIjsKCX0gZWxzZSB7 CgkJY2hhbmdlVGV4dCh0b2dnbGVMaW5rLCB0b2NTaG93VGV4dCk7CgkJdG9jLnN0 eWxlLmRpc3BsYXkgPSAnbm9uZSc7CgkJZG9jdW1lbnQuY29va2llID0gImhpZGV0 b2M9MSI7Cgl9Cn0KCnZhciBtd0VkaXRCdXR0b25zID0gW107CnZhciBtd0N1c3Rv bUVkaXRCdXR0b25zID0gW107IC8vIGVnIHRvIGFkZCBpbiBNZWRpYVdpa2k6Q29t bW9uLmpzCgpmdW5jdGlvbiBlc2NhcGVRdW90ZXModGV4dCkgewoJdmFyIHJlID0g bmV3IFJlZ0V4cCgiJyIsImciKTsKCXRleHQgPSB0ZXh0LnJlcGxhY2UocmUsIlxc JyIpOwoJcmUgPSBuZXcgUmVnRXhwKCJcXG4iLCJnIik7Cgl0ZXh0ID0gdGV4dC5y ZXBsYWNlKHJlLCJcXG4iKTsKCXJldHVybiBlc2NhcGVRdW90ZXNIVE1MKHRleHQp Owp9CgpmdW5jdGlvbiBlc2NhcGVRdW90ZXNIVE1MKHRleHQpIHsKCXZhciByZSA9 IG5ldyBSZWdFeHAoJyYnLCJnIik7Cgl0ZXh0ID0gdGV4dC5yZXBsYWNlKHJlLCIm YW1wOyIpOwoJcmUgPSBuZXcgUmVnRXhwKCciJywiZyIpOwoJdGV4dCA9IHRleHQu cmVwbGFjZShyZSwiJnF1b3Q7Iik7CglyZSA9IG5ldyBSZWdFeHAoJzwnLCJnIik7 Cgl0ZXh0ID0gdGV4dC5yZXBsYWNlKHJlLCImbHQ7Iik7CglyZSA9IG5ldyBSZWdF eHAoJz4nLCJnIik7Cgl0ZXh0ID0gdGV4dC5yZXBsYWNlKHJlLCImZ3Q7Iik7Cgly ZXR1cm4gdGV4dDsKfQoKCi8qKgogKiBTZXQgdGhlIGFjY2Vzc2tleSBwcmVmaXgg YmFzZWQgb24gYnJvd3NlciBkZXRlY3Rpb24uCiAqLwp2YXIgdG9vbHRpcEFjY2Vz c0tleVByZWZpeCA9ICdhbHQtJzsKaWYgKGlzX29wZXJhKSB7Cgl0b29sdGlwQWNj ZXNzS2V5UHJlZml4ID0gJ3NoaWZ0LWVzYy0nOwp9IGVsc2UgaWYgKCFpc19zYWZh cmlfd2luICYmIGlzX3NhZmFyaSAmJiB3ZWJraXRfdmVyc2lvbiA+IDUyNikgewoJ dG9vbHRpcEFjY2Vzc0tleVByZWZpeCA9ICdjdHJsLWFsdC0nOwp9IGVsc2UgaWYg KCFpc19zYWZhcmlfd2luICYmIChpc19zYWZhcmkKCQl8fCBjbGllbnRQQy5pbmRl eE9mKCdtYWMnKSAhPSAtMQoJCXx8IGNsaWVudFBDLmluZGV4T2YoJ2tvbnF1ZXJv cicpICE9IC0xICkpIHsKCXRvb2x0aXBBY2Nlc3NLZXlQcmVmaXggPSAnY3RybC0n Owp9IGVsc2UgaWYgKGlzX2ZmMikgewoJdG9vbHRpcEFjY2Vzc0tleVByZWZpeCA9 ICdhbHQtc2hpZnQtJzsKfQp2YXIgdG9vbHRpcEFjY2Vzc0tleVJlZ2V4cCA9IC9c WyhjdHJsLSk/KGFsdC0pPyhzaGlmdC0pPyhlc2MtKT8oLilcXSQvOwoKLyoqCiAq IEFkZCB0aGUgYXBwcm9wcmlhdGUgcHJlZml4IHRvIHRoZSBhY2Nlc3NrZXkgc2hv d24gaW4gdGhlIHRvb2x0aXAuCiAqIElmIHRoZSBub2RlTGlzdCBwYXJhbWV0ZXIg aXMgZ2l2ZW4sIG9ubHkgdGhvc2Ugbm9kZXMgYXJlIHVwZGF0ZWQ7CiAqIG90aGVy d2lzZSwgYWxsIHRoZSBub2RlcyB0aGF0IHdpbGwgcHJvYmFibHkgaGF2ZSBhY2Nl c3NrZXlzIGJ5CiAqIGRlZmF1bHQgYXJlIHVwZGF0ZWQuCiAqCiAqIEBwYXJhbSBB cnJheSBub2RlTGlzdCAtLSBsaXN0IG9mIGVsZW1lbnRzIHRvIHVwZGF0ZQogKi8K ZnVuY3Rpb24gdXBkYXRlVG9vbHRpcEFjY2Vzc0tleXMoIG5vZGVMaXN0ICkgewoJ aWYgKCAhbm9kZUxpc3QgKSB7CgkJLy8gc2tpbnMgd2l0aG91dCBhICJjb2x1bW4t b25lIiBlbGVtZW50IGRvbid0IHNlZW0gdG8gaGF2ZSBsaW5rcyB3aXRoIGFjY2Vz c2tleXMgZWl0aGVyCgkJdmFyIGNvbHVtbk9uZSA9IGRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCJjb2x1bW4tb25lIik7CgkJaWYgKCBjb2x1bW5PbmUgKQoJCQl1cGRh dGVUb29sdGlwQWNjZXNzS2V5cyggY29sdW1uT25lLmdldEVsZW1lbnRzQnlUYWdO YW1lKCJhIikgKTsKCQkvLyB0aGVzZSBhcmUgcmFyZSBlbm91Z2ggdGhhdCBubyBz dWNoIG9wdGltaXphdGlvbiBpcyBuZWVkZWQKCQl1cGRhdGVUb29sdGlwQWNjZXNz S2V5cyggZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IikgKTsK CQl1cGRhdGVUb29sdGlwQWNjZXNzS2V5cyggZG9jdW1lbnQuZ2V0RWxlbWVudHNC eVRhZ05hbWUoImxhYmVsIikgKTsKCQlyZXR1cm47Cgl9CgoJZm9yICggdmFyIGkg PSAwOyBpIDwgbm9kZUxpc3QubGVuZ3RoOyBpKysgKSB7CgkJdmFyIGVsZW1lbnQg PSBub2RlTGlzdFtpXTsKCQl2YXIgdGlwID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUo InRpdGxlIik7CgkJaWYgKCB0aXAgJiYgdG9vbHRpcEFjY2Vzc0tleVJlZ2V4cC5l eGVjKHRpcCkgKSB7CgkJCXRpcCA9IHRpcC5yZXBsYWNlKHRvb2x0aXBBY2Nlc3NL ZXlSZWdleHAsCgkJCQkJICAiWyIrdG9vbHRpcEFjY2Vzc0tleVByZWZpeCsiJDVd Iik7CgkJCWVsZW1lbnQuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIHRpcCApOwoJCX0K CX0KfQoKLyoqCiAqIEFkZCBhIGxpbmsgdG8gb25lIG9mIHRoZSBwb3J0bGV0IG1l bnVzIG9uIHRoZSBwYWdlLCBpbmNsdWRpbmc6CiAqCiAqIHAtY2FjdGlvbnM6IENv bnRlbnQgYWN0aW9ucyAoc2hvd24gYXMgdGFicyBhYm92ZSB0aGUgbWFpbiBjb250 ZW50IGluIE1vbm9ib29rKQogKiBwLXBlcnNvbmFsOiBQZXJzb25hbCB0b29scyAo c2hvd24gYXQgdGhlIHRvcCByaWdodCBvZiB0aGUgcGFnZSBpbiBNb25vYm9vaykK ICogcC1uYXZpZ2F0aW9uOiBOYXZpZ2F0aW9uCiAqIHAtdGI6IFRvb2xib3gKICoK ICogVGhpcyBmdW5jdGlvbiBleGlzdHMgZm9yIHRoZSBjb252ZW5pZW5jZSBvZiBj dXN0b20gSlMgYXV0aG9ycy4gIEFsbAogKiBidXQgdGhlIGZpcnN0IHRocmVlIHBh cmFtZXRlcnMgYXJlIG9wdGlvbmFsLCB0aG91Z2ggcHJvdmlkaW5nIGF0CiAqIGxl YXN0IGFuIGlkIGFuZCBhIHRvb2x0aXAgaXMgcmVjb21tZW5kZWQuCiAqCiAqIEJ5 IGRlZmF1bHQgdGhlIG5ldyBsaW5rIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGVuZCBv ZiB0aGUgbGlzdC4gIFRvCiAqIGFkZCB0aGUgbGluayBiZWZvcmUgYSBnaXZlbiBl eGlzdGluZyBpdGVtLCBwYXNzIHRoZSBET00gbm9kZSBvZgogKiB0aGF0IGl0ZW0g KGVhc2lseSBvYnRhaW5lZCB3aXRoIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCkp IGFzIHRoZQogKiBuZXh0bm9kZSBwYXJhbWV0ZXI7IHRvIGFkZCB0aGUgbGluayBf YWZ0ZXJfIGFuIGV4aXN0aW5nIGl0ZW0sIHBhc3MKICogdGhlIG5vZGUncyBuZXh0 U2libGluZyBpbnN0ZWFkLgogKgogKiBAcGFyYW0gU3RyaW5nIHBvcnRsZXQgLS0g aWQgb2YgdGhlIHRhcmdldCBwb3J0bGV0ICgicC1jYWN0aW9ucyIsICJwLXBlcnNv bmFsIiwgInAtbmF2aWdhdGlvbiIgb3IgInAtdGIiKQogKiBAcGFyYW0gU3RyaW5n IGhyZWYgLS0gbGluayBVUkwKICogQHBhcmFtIFN0cmluZyB0ZXh0IC0tIGxpbmsg dGV4dCAod2lsbCBiZSBhdXRvbWF0aWNhbGx5IGxvd2VyY2FzZWQgYnkgQ1NTIGZv ciBwLWNhY3Rpb25zIGluIE1vbm9ib29rKQogKiBAcGFyYW0gU3RyaW5nIGlkIC0t IGlkIG9mIHRoZSBuZXcgaXRlbSwgc2hvdWxkIGJlIHVuaXF1ZSBhbmQgcHJlZmVy YWJseSBoYXZlIHRoZSBhcHByb3ByaWF0ZSBwcmVmaXggKCJjYS0iLCAicHQtIiwg Im4tIiBvciAidC0iKQogKiBAcGFyYW0gU3RyaW5nIHRvb2x0aXAgLS0gdGV4dCB0 byBzaG93IHdoZW4gaG92ZXJpbmcgb3ZlciB0aGUgbGluaywgd2l0aG91dCBhY2Nl c3NrZXkgc3VmZml4CiAqIEBwYXJhbSBTdHJpbmcgYWNjZXNza2V5IC0tIGFjY2Vz c2tleSB0byBhY3RpdmF0ZSB0aGlzIGxpbmsgKG9uZSBjaGFyYWN0ZXIsIHRyeSB0 byBhdm9pZCBjb25mbGljdHMpCiAqIEBwYXJhbSBOb2RlIG5leHRub2RlIC0tIHRo ZSBET00gbm9kZSBiZWZvcmUgd2hpY2ggdGhlIG5ldyBpdGVtIHNob3VsZCBiZSBh ZGRlZCwgc2hvdWxkIGJlIGFub3RoZXIgaXRlbSBpbiB0aGUgc2FtZSBsaXN0CiAq CiAqIEByZXR1cm4gTm9kZSAtLSB0aGUgRE9NIG5vZGUgb2YgdGhlIG5ldyBpdGVt IChhbiBMSSBlbGVtZW50KSBvciBudWxsCiAqLwpmdW5jdGlvbiBhZGRQb3J0bGV0 TGluayhwb3J0bGV0LCBocmVmLCB0ZXh0LCBpZCwgdG9vbHRpcCwgYWNjZXNza2V5 LCBuZXh0bm9kZSkgewoJdmFyIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ ZChwb3J0bGV0KTsKCWlmICggIW5vZGUgKSByZXR1cm4gbnVsbDsKCW5vZGUgPSBu b2RlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCAidWwiIClbMF07CglpZiAoICFub2Rl ICkgcmV0dXJuIG51bGw7CgoJdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVt ZW50KCAiYSIgKTsKCWxpbmsuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZVRl eHROb2RlKCB0ZXh0ICkgKTsKCWxpbmsuaHJlZiA9IGhyZWY7CgoJdmFyIGl0ZW0g PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAibGkiICk7CglpdGVtLmFwcGVuZENo aWxkKCBsaW5rICk7CglpZiAoIGlkICkgaXRlbS5pZCA9IGlkOwoKCWlmICggYWNj ZXNza2V5ICkgewoJCWxpbmsuc2V0QXR0cmlidXRlKCAiYWNjZXNza2V5IiwgYWNj ZXNza2V5ICk7CgkJdG9vbHRpcCArPSAiIFsiK2FjY2Vzc2tleSsiXSI7Cgl9Cglp ZiAoIHRvb2x0aXAgKSB7CgkJbGluay5zZXRBdHRyaWJ1dGUoICJ0aXRsZSIsIHRv b2x0aXAgKTsKCX0KCWlmICggYWNjZXNza2V5ICYmIHRvb2x0aXAgKSB7CgkJdXBk YXRlVG9vbHRpcEFjY2Vzc0tleXMoIG5ldyBBcnJheSggbGluayApICk7Cgl9CgoJ aWYgKCBuZXh0bm9kZSAmJiBuZXh0bm9kZS5wYXJlbnROb2RlID09IG5vZGUgKQoJ CW5vZGUuaW5zZXJ0QmVmb3JlKCBpdGVtLCBuZXh0bm9kZSApOwoJZWxzZQoJCW5v ZGUuYXBwZW5kQ2hpbGQoIGl0ZW0gKTsgIC8vIElFIGNvbXBhdGliaWxpdHkgKD8p CgoJcmV0dXJuIGl0ZW07Cn0KCgovKioKICogU2V0IHVwIGFjY2Vzc2tleXMvdG9v bHRpcHMgZnJvbSB0aGUgZGVwcmVjYXRlZCB0YSBhcnJheS4gIElmIGRvSWQKICog aXMgc3BlY2lmaWVkLCBvbmx5IHNldCB1cCBmb3IgdGhhdCBpZC4gIE5vdGUgdGhh dCB0aGlzIGZ1bmN0aW9uIGlzCiAqIGRlcHJlY2F0ZWQgYW5kIHdpbGwgbm90IGJl IHN1cHBvcnRlZCBpbmRlZmluaXRlbHkgLS0gdXNlCiAqIHVwZGF0ZVRvb2x0aXBB Y2Nlc3NLZXkoKSBpbnN0ZWFkLgogKgogKiBAcGFyYW0gbWl4ZWQgZG9JZCBzdHJp bmcgb3IgbnVsbAogKi8KZnVuY3Rpb24gYWtleXR0KCBkb0lkICkgewoJLy8gQSBs b3Qgb2YgdXNlciBzY3JpcHRzIChhbmQgc29tZSBvZiB0aGUgY29kZSBiZWxvdykg YnJlYWsgaWYKCS8vIHRhIGlzbid0IGRlZmluZWQsIHNvIHdlIG1ha2Ugc3VyZSBp dCBpcy4gIEV4cGxpY3RseSB1c2luZwoJLy8gd2luZG93LnRhIGF2b2lkcyBhICJ0 YSBpcyBub3QgZGVmaW5lZCIgZXJyb3IuCglpZiAoIXdpbmRvdy50YSkgd2luZG93 LnRhID0gbmV3IEFycmF5OwoKCS8vIE1ha2UgYSBsb2NhbCwgcG9zc2libHkgcmVz dHJpY3RlZCwgY29weSB0byBhdm9pZCBjbG9iYmVyaW5nCgkvLyB0aGUgb3JpZ2lu YWwuCgl2YXIgdGE7CglpZiAoIGRvSWQgKSB7CgkJdGEgPSBbZG9JZF07Cgl9IGVs c2UgewoJCXRhID0gd2luZG93LnRhOwoJfQoKCS8vIE5vdyBkZWFsIHdpdGggZXZp bCBkZXByZWNhdGVkIHRhCgl2YXIgd2F0Y2hDaGVja2JveEV4aXN0cyA9IGRvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKCAnd3BXYXRjaHRoaXMnICkgPyB0cnVlIDogZmFs c2U7Cglmb3IgKHZhciBpZCBpbiB0YSkgewoJCXZhciBuID0gZG9jdW1lbnQuZ2V0 RWxlbWVudEJ5SWQoaWQpOwoJCWlmIChuKSB7CgkJCXZhciBhID0gbnVsbDsKCQkJ dmFyIGFrID0gJyc7CgkJCS8vIEFyZSB3ZSBwdXR0aW5nIGFjY2Vzc2tleSBpbiBp dAoJCQlpZiAodGFbaWRdWzBdLmxlbmd0aCA+IDApIHsKCQkJCS8vIElzIHRoaXMg b2JqZWN0IGEgb2JqZWN0PyBJZiBub3QgYXNzdW1lIGl0J3MgdGhlIG5leHQgY2hp bGQuCgoJCQkJaWYgKG4ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PSAiYSIpIHsK CQkJCQlhID0gbjsKCQkJCX0gZWxzZSB7CgkJCQkJYSA9IG4uY2hpbGROb2Rlc1sw XTsKCQkJCX0KCQkJIAkvLyBEb24ndCBhZGQgYW4gYWNjZXNza2V5IGZvciB0aGUg d2F0Y2ggdGFiIGlmIHRoZSB3YXRjaAoJCQkgCS8vIGNoZWNrYm94IGlzIGFsc28g YXZhaWxhYmxlLgoJCQkJaWYgKGEgJiYgKChpZCAhPSAnY2Etd2F0Y2gnICYmIGlk ICE9ICdjYS11bndhdGNoJykgfHwgIXdhdGNoQ2hlY2tib3hFeGlzdHMpKSB7CgkJ CQkJYS5hY2Nlc3NLZXkgPSB0YVtpZF1bMF07CgkJCQkJYWsgPSAnIFsnK3Rvb2x0 aXBBY2Nlc3NLZXlQcmVmaXgrdGFbaWRdWzBdKyddJzsKCQkJCX0KCQkJfSBlbHNl IHsKCQkJCS8vIFdlIGRvbid0IGNhcmUgd2hhdCB0eXBlIHRoZSBvYmplY3QgaXMg d2hlbiBhc3NpZ25pbmcgdG9vbHRpcAoJCQkJYSA9IG47CgkJCQlhayA9ICcnOwoJ CQl9CgoJCQlpZiAoYSkgewoJCQkJYS50aXRsZSA9IHRhW2lkXVsxXSthazsKCQkJ fQoJCX0KCX0KfQoKdmFyIGNoZWNrYm94ZXM7CnZhciBsYXN0Q2hlY2tib3g7Cgpm dW5jdGlvbiBzZXR1cENoZWNrYm94U2hpZnRDbGljaygpIHsKCWNoZWNrYm94ZXMg PSBbXTsKCWxhc3RDaGVja2JveCA9IG51bGw7Cgl2YXIgaW5wdXRzID0gZG9jdW1l bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lucHV0Jyk7CglhZGRDaGVja2JveENs aWNrSGFuZGxlcnMoaW5wdXRzKTsKfQoKZnVuY3Rpb24gYWRkQ2hlY2tib3hDbGlj a0hhbmRsZXJzKGlucHV0cywgc3RhcnQpIHsKCWlmICggIXN0YXJ0KSBzdGFydCA9 IDA7CgoJdmFyIGZpbmlzaCA9IHN0YXJ0ICsgMjUwOwoJaWYgKCBmaW5pc2ggPiBp bnB1dHMubGVuZ3RoICkKCQlmaW5pc2ggPSBpbnB1dHMubGVuZ3RoOwoKCWZvciAo IHZhciBpID0gc3RhcnQ7IGkgPCBmaW5pc2g7IGkrKyApIHsKCQl2YXIgY2IgPSBp bnB1dHNbaV07CgkJaWYgKCAhY2IudHlwZSB8fCBjYi50eXBlLnRvTG93ZXJDYXNl KCkgIT0gJ2NoZWNrYm94JyApCgkJCWNvbnRpbnVlOwoJCXZhciBlbmQgPSBjaGVj a2JveGVzLmxlbmd0aDsKCQljaGVja2JveGVzW2VuZF0gPSBjYjsKCQljYi5pbmRl eCA9IGVuZDsKCQljYi5vbmNsaWNrID0gY2hlY2tib3hDbGlja0hhbmRsZXI7Cgl9 CgoJaWYgKCBmaW5pc2ggPCBpbnB1dHMubGVuZ3RoICkgewoJCXNldFRpbWVvdXQo IGZ1bmN0aW9uICgpIHsKCQkJYWRkQ2hlY2tib3hDbGlja0hhbmRsZXJzKGlucHV0 cywgZmluaXNoKTsKCQl9LCAyMDAgKTsKCX0KfQoKZnVuY3Rpb24gY2hlY2tib3hD bGlja0hhbmRsZXIoZSkgewoJaWYgKHR5cGVvZiBlID09ICd1bmRlZmluZWQnKSB7 CgkJZSA9IHdpbmRvdy5ldmVudDsKCX0KCWlmICggIWUuc2hpZnRLZXkgfHwgbGFz dENoZWNrYm94ID09PSBudWxsICkgewoJCWxhc3RDaGVja2JveCA9IHRoaXMuaW5k ZXg7CgkJcmV0dXJuIHRydWU7Cgl9Cgl2YXIgZW5kU3RhdGUgPSB0aGlzLmNoZWNr ZWQ7Cgl2YXIgc3RhcnQsIGZpbmlzaDsKCWlmICggdGhpcy5pbmRleCA8IGxhc3RD aGVja2JveCApIHsKCQlzdGFydCA9IHRoaXMuaW5kZXggKyAxOwoJCWZpbmlzaCA9 IGxhc3RDaGVja2JveDsKCX0gZWxzZSB7CgkJc3RhcnQgPSBsYXN0Q2hlY2tib3g7 CgkJZmluaXNoID0gdGhpcy5pbmRleCAtIDE7Cgl9Cglmb3IgKHZhciBpID0gc3Rh cnQ7IGkgPD0gZmluaXNoOyArK2kgKSB7CgkJY2hlY2tib3hlc1tpXS5jaGVja2Vk ID0gZW5kU3RhdGU7Cgl9CglsYXN0Q2hlY2tib3ggPSB0aGlzLmluZGV4OwoJcmV0 dXJuIHRydWU7Cn0KCmZ1bmN0aW9uIHRvZ2dsZV9lbGVtZW50X2FjdGl2YXRpb24o aWRhLGlkYikgewoJaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCkgewoJCXJl dHVybjsKCX0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkYSkuZGlzYWJsZWQ9 dHJ1ZTsKCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkYikuZGlzYWJsZWQ9ZmFs c2U7Cn0KCmZ1bmN0aW9uIHRvZ2dsZV9lbGVtZW50X2NoZWNrKGlkYSxpZGIpIHsK CWlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQpIHsKCQlyZXR1cm47Cgl9Cglk b2N1bWVudC5nZXRFbGVtZW50QnlJZChpZGEpLmNoZWNrZWQ9dHJ1ZTsKCWRvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKGlkYikuY2hlY2tlZD1mYWxzZTsKfQoKLyoKCVdy aXR0ZW4gYnkgSm9uYXRoYW4gU25vb2ssIGh0dHA6Ly93d3cuc25vb2suY2Evam9u YXRoYW4KCUFkZC1vbnMgYnkgUm9iZXJ0IE55bWFuLCBodHRwOi8vd3d3LnJvYmVy dG55bWFuLmNvbQoJQXV0aG9yIHNheXMgIlRoZSBjcmVkaXQgY29tbWVudCBpcyBh bGwgaXQgdGFrZXMsIG5vIGxpY2Vuc2UuIEdvIGNyYXp5IHdpdGggaXQhOi0pIgoJ RnJvbSBodHRwOi8vd3d3LnJvYmVydG55bWFuLmNvbS8yMDA1LzExLzA3L3RoZS11 bHRpbWF0ZS1nZXRlbGVtZW50c2J5Y2xhc3NuYW1lLwoqLwpmdW5jdGlvbiBnZXRF bGVtZW50c0J5Q2xhc3NOYW1lKG9FbG0sIHN0clRhZ05hbWUsIG9DbGFzc05hbWVz KXsKCXZhciBhcnJFbGVtZW50cyA9IChzdHJUYWdOYW1lID09ICIqIiAmJiBvRWxt LmFsbCk/IG9FbG0uYWxsIDogb0VsbS5nZXRFbGVtZW50c0J5VGFnTmFtZShzdHJU YWdOYW1lKTsKCXZhciBhcnJSZXR1cm5FbGVtZW50cyA9IG5ldyBBcnJheSgpOwoJ dmFyIGFyclJlZ0V4cENsYXNzTmFtZXMgPSBuZXcgQXJyYXkoKTsKCWlmKHR5cGVv ZiBvQ2xhc3NOYW1lcyA9PSAib2JqZWN0Iil7CgkJZm9yKHZhciBpPTA7IGk8b0Ns YXNzTmFtZXMubGVuZ3RoOyBpKyspewoJCQlhcnJSZWdFeHBDbGFzc05hbWVzW2Fy clJlZ0V4cENsYXNzTmFtZXMubGVuZ3RoXSA9CgkJCQluZXcgUmVnRXhwKCIoXnxc XHMpIiArIG9DbGFzc05hbWVzW2ldLnJlcGxhY2UoL1wtL2csICJcXC0iKSArICIo XFxzfCQpIik7CgkJfQoJfQoJZWxzZXsKCQlhcnJSZWdFeHBDbGFzc05hbWVzW2Fy clJlZ0V4cENsYXNzTmFtZXMubGVuZ3RoXSA9CgkJCW5ldyBSZWdFeHAoIihefFxc cykiICsgb0NsYXNzTmFtZXMucmVwbGFjZSgvXC0vZywgIlxcLSIpICsgIihcXHN8 JCkiKTsKCX0KCXZhciBvRWxlbWVudDsKCXZhciBiTWF0Y2hlc0FsbDsKCWZvcih2 YXIgaj0wOyBqPGFyckVsZW1lbnRzLmxlbmd0aDsgaisrKXsKCQlvRWxlbWVudCA9 IGFyckVsZW1lbnRzW2pdOwoJCWJNYXRjaGVzQWxsID0gdHJ1ZTsKCQlmb3IodmFy IGs9MDsgazxhcnJSZWdFeHBDbGFzc05hbWVzLmxlbmd0aDsgaysrKXsKCQkJaWYo IWFyclJlZ0V4cENsYXNzTmFtZXNba10udGVzdChvRWxlbWVudC5jbGFzc05hbWUp KXsKCQkJCWJNYXRjaGVzQWxsID0gZmFsc2U7CgkJCQlicmVhazsKCQkJfQoJCX0K CQlpZihiTWF0Y2hlc0FsbCl7CgkJCWFyclJldHVybkVsZW1lbnRzW2FyclJldHVy bkVsZW1lbnRzLmxlbmd0aF0gPSBvRWxlbWVudDsKCQl9Cgl9CglyZXR1cm4gKGFy clJldHVybkVsZW1lbnRzKQp9CgpmdW5jdGlvbiByZWRpcmVjdFRvRnJhZ21lbnQo ZnJhZ21lbnQpIHsKCXZhciBtYXRjaCA9IG5hdmlnYXRvci51c2VyQWdlbnQubWF0 Y2goL0FwcGxlV2ViS2l0XC8oXGQrKS8pOwoJaWYgKG1hdGNoKSB7CgkJdmFyIHdl YktpdFZlcnNpb24gPSBwYXJzZUludChtYXRjaFsxXSk7CgkJaWYgKHdlYktpdFZl cnNpb24gPCA0MjApIHsKCQkJLy8gUmVsZWFzZWQgU2FmYXJpIHcvIFdlYktpdCA0 MTguOS4xIG1lc3NlcyB1cCBob3JyaWJseQoJCQkvLyBOaWdodGxpZXMgb2YgNDIw KyBhcmUgb2sKCQkJcmV0dXJuOwoJCX0KCX0KCWlmIChpc19nZWNrbykgewoJCS8v IE1vemlsbGEgbmVlZHMgdG8gd2FpdCB1bnRpbCBhZnRlciBsb2FkLCBvdGhlcndp c2UgdGhlIHdpbmRvdyBkb2Vzbid0IHNjcm9sbAoJCWFkZE9ubG9hZEhvb2soZnVu Y3Rpb24gKCkgewoJCQlpZiAod2luZG93LmxvY2F0aW9uLmhhc2ggPT0gIiIpCgkJ CQl3aW5kb3cubG9jYXRpb24uaGFzaCA9IGZyYWdtZW50OwoJCX0pOwoJfSBlbHNl IHsKCQlpZiAod2luZG93LmxvY2F0aW9uLmhhc2ggPT0gIiIpCgkJCXdpbmRvdy5s b2NhdGlvbi5oYXNoID0gZnJhZ21lbnQ7Cgl9Cn0KCi8qCiAqIFRhYmxlIHNvcnRp bmcgc2NyaXB0IGJhc2VkIG9uIG9uZSAoYykgMTk5Ny0yMDA2IFN0dWFydCBMYW5n cmlkZ2UgYW5kIEpvb3N0CiAqIGRlIFZhbGs6CiAqIGh0dHA6Ly93d3cuam9vc3Rk ZXZhbGsubmwvY29kZS9zb3J0YWJsZS10YWJsZS8KICogaHR0cDovL3d3dy5rcnlv Z2VuaXgub3JnL2NvZGUvYnJvd3Nlci9zb3J0dGFibGUvCiAqCiAqIEB0b2RvIGRv bid0IGJyZWFrIG9uIGNvbHNwYW5zL3Jvd3NwYW5zIChidWcgODAyOCkKICogQHRv ZG8gbGFuZ3VhZ2Utc3BlY2lmaWMgZGlnaXQgZ3JvdXBpbmcvZGVjaW1hbHMgKGJ1 ZyA4MDYzKQogKiBAdG9kbyBzdXBwb3J0IGFsbCBhY2NlcHRlZCBkYXRlIGZvcm1h dHMgKGJ1ZyA4MjI2KQogKi8KCnZhciB0c19pbWFnZV9wYXRoID0gc3R5bGVwYXRo KyIvY29tbW9uL2ltYWdlcy8iOwp2YXIgdHNfaW1hZ2VfdXAgPSAic29ydF91cC5n aWYiOwp2YXIgdHNfaW1hZ2VfZG93biA9ICJzb3J0X2Rvd24uZ2lmIjsKdmFyIHRz X2ltYWdlX25vbmUgPSAic29ydF9ub25lLmdpZiI7CnZhciB0c19ldXJvcGVhbmRh dGUgPSB3Z0NvbnRlbnRMYW5ndWFnZSAhPSAiZW4iOyAvLyBUaGUgbm9uLUFtZXJp Y2FuLWluY2xpbmVkIGNhbiBjaGFuZ2UgdG8gInRydWUiCnZhciB0c19hbHRlcm5h dGVfcm93X2NvbG9ycyA9IGZhbHNlOwoKZnVuY3Rpb24gc29ydGFibGVzX2luaXQo KSB7Cgl2YXIgaWRudW0gPSAwOwoJLy8gRmluZCBhbGwgdGFibGVzIHdpdGggY2xh c3Mgc29ydGFibGUgYW5kIG1ha2UgdGhlbSBzb3J0YWJsZQoJdmFyIHRhYmxlcyA9 IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoZG9jdW1lbnQsICJ0YWJsZSIsICJzb3J0 YWJsZSIpOwoJZm9yICh2YXIgdGkgPSAwOyB0aSA8IHRhYmxlcy5sZW5ndGggOyB0 aSsrKSB7CgkJaWYgKCF0YWJsZXNbdGldLmlkKSB7CgkJCXRhYmxlc1t0aV0uc2V0 QXR0cmlidXRlKCdpZCcsJ3NvcnRhYmxlX3RhYmxlX2lkXycraWRudW0pOwoJCQkr K2lkbnVtOwoJCX0KCQl0c19tYWtlU29ydGFibGUodGFibGVzW3RpXSk7Cgl9Cn0K CmZ1bmN0aW9uIHRzX21ha2VTb3J0YWJsZSh0YWJsZSkgewoJdmFyIGZpcnN0Um93 OwoJaWYgKHRhYmxlLnJvd3MgJiYgdGFibGUucm93cy5sZW5ndGggPiAwKSB7CgkJ aWYgKHRhYmxlLnRIZWFkICYmIHRhYmxlLnRIZWFkLnJvd3MubGVuZ3RoID4gMCkg ewoJCQlmaXJzdFJvdyA9IHRhYmxlLnRIZWFkLnJvd3NbdGFibGUudEhlYWQucm93 cy5sZW5ndGgtMV07CgkJfSBlbHNlIHsKCQkJZmlyc3RSb3cgPSB0YWJsZS5yb3dz WzBdOwoJCX0KCX0KCWlmICghZmlyc3RSb3cpIHJldHVybjsKCgkvLyBXZSBoYXZl IGEgZmlyc3Qgcm93OiBhc3N1bWUgaXQncyB0aGUgaGVhZGVyLCBhbmQgbWFrZSBp dHMgY29udGVudHMgY2xpY2thYmxlIGxpbmtzCglmb3IgKHZhciBpID0gMDsgaSA8 IGZpcnN0Um93LmNlbGxzLmxlbmd0aDsgaSsrKSB7CgkJdmFyIGNlbGwgPSBmaXJz dFJvdy5jZWxsc1tpXTsKCQlpZiAoKCIgIitjZWxsLmNsYXNzTmFtZSsiICIpLmlu ZGV4T2YoIiB1bnNvcnRhYmxlICIpID09IC0xKSB7CgkJCWNlbGwuaW5uZXJIVE1M ICs9ICcmbmJzcDsmbmJzcDs8YSBocmVmPSIjIiBjbGFzcz0ic29ydGhlYWRlciIg b25jbGljaz0idHNfcmVzb3J0VGFibGUodGhpcyk7cmV0dXJuIGZhbHNlOyI+PHNw YW4gY2xhc3M9InNvcnRhcnJvdyI+PGltZyBzcmM9IicrIHRzX2ltYWdlX3BhdGgg KyB0c19pbWFnZV9ub25lICsgJyIgYWx0PSImZGFycjsiLz48L3NwYW4+PC9hPic7 CgkJfQoJfQoJaWYgKHRzX2FsdGVybmF0ZV9yb3dfY29sb3JzKSB7CgkJdHNfYWx0 ZXJuYXRlKHRhYmxlKTsKCX0KfQoKZnVuY3Rpb24gdHNfZ2V0SW5uZXJUZXh0KGVs KSB7CglpZiAodHlwZW9mIGVsID09ICJzdHJpbmciKSByZXR1cm4gZWw7CglpZiAo dHlwZW9mIGVsID09ICJ1bmRlZmluZWQiKSB7IHJldHVybiBlbCB9OwoJaWYgKGVs LnRleHRDb250ZW50KSByZXR1cm4gZWwudGV4dENvbnRlbnQ7IC8vIG5vdCBuZWVk ZWQgYnV0IGl0IGlzIGZhc3RlcgoJaWYgKGVsLmlubmVyVGV4dCkgcmV0dXJuIGVs LmlubmVyVGV4dDsgICAgIC8vIElFIGRvZXNuJ3QgaGF2ZSB0ZXh0Q29udGVudAoJ dmFyIHN0ciA9ICIiOwoKCXZhciBjcyA9IGVsLmNoaWxkTm9kZXM7Cgl2YXIgbCA9 IGNzLmxlbmd0aDsKCWZvciAodmFyIGkgPSAwOyBpIDwgbDsgaSsrKSB7CgkJc3dp dGNoIChjc1tpXS5ub2RlVHlwZSkgewoJCQljYXNlIDE6IC8vRUxFTUVOVF9OT0RF CgkJCQlzdHIgKz0gdHNfZ2V0SW5uZXJUZXh0KGNzW2ldKTsKCQkJCWJyZWFrOwoJ CQljYXNlIDM6CS8vVEVYVF9OT0RFCgkJCQlzdHIgKz0gY3NbaV0ubm9kZVZhbHVl OwoJCQkJYnJlYWs7CgkJfQoJfQoJcmV0dXJuIHN0cjsKfQoKZnVuY3Rpb24gdHNf cmVzb3J0VGFibGUobG5rKSB7CgkvLyBnZXQgdGhlIHNwYW4KCXZhciBzcGFuID0g bG5rLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzcGFuJylbMF07CgoJdmFyIHRkID0g bG5rLnBhcmVudE5vZGU7Cgl2YXIgdHIgPSB0ZC5wYXJlbnROb2RlOwoJdmFyIGNv bHVtbiA9IHRkLmNlbGxJbmRleDsKCgl2YXIgdGFibGUgPSB0ci5wYXJlbnROb2Rl OwoJd2hpbGUgKHRhYmxlICYmICEodGFibGUudGFnTmFtZSAmJiB0YWJsZS50YWdO YW1lLnRvTG93ZXJDYXNlKCkgPT0gJ3RhYmxlJykpCgkJdGFibGUgPSB0YWJsZS5w YXJlbnROb2RlOwoJaWYgKCF0YWJsZSkgcmV0dXJuOwoKCS8vIFdvcmsgb3V0IGEg dHlwZSBmb3IgdGhlIGNvbHVtbgoJaWYgKHRhYmxlLnJvd3MubGVuZ3RoIDw9IDEp IHJldHVybjsKCgkvLyBTa2lwIHRoZSBmaXJzdCByb3cgaWYgdGhhdCdzIHdoZXJl IHRoZSBoZWFkaW5ncyBhcmUKCXZhciByb3dTdGFydCA9ICh0YWJsZS50SGVhZCAm JiB0YWJsZS50SGVhZC5yb3dzLmxlbmd0aCA+IDAgPyAwIDogMSk7CgoJdmFyIGl0 bSA9ICIiOwoJZm9yICh2YXIgaSA9IHJvd1N0YXJ0OyBpIDwgdGFibGUucm93cy5s ZW5ndGg7IGkrKykgewoJCWlmICh0YWJsZS5yb3dzW2ldLmNlbGxzLmxlbmd0aCA+ IGNvbHVtbikgewoJCQlpdG0gPSB0c19nZXRJbm5lclRleHQodGFibGUucm93c1tp XS5jZWxsc1tjb2x1bW5dKTsKCQkJaXRtID0gaXRtLnJlcGxhY2UoL15bXHNceGEw XSsvLCAiIikucmVwbGFjZSgvW1xzXHhhMF0rJC8sICIiKTsKCQkJaWYgKGl0bSAh PSAiIikgYnJlYWs7CgkJfQoJfQoKCXZhciBzb3J0Zm4gPSB0c19zb3J0X2Nhc2Vp bnNlbnNpdGl2ZTsKCWlmIChpdG0ubWF0Y2goL15cZFxkW1wvLiAtXVthLXpBLVpd ezN9W1wvLiAtXVxkXGRcZFxkJC8pKQoJCXNvcnRmbiA9IHRzX3NvcnRfZGF0ZTsK CWVsc2UgaWYgKGl0bS5tYXRjaCgvXlxkXGRbXC8uLV1cZFxkW1wvLi1dXGRcZFxk XGQkLykpCgkJc29ydGZuID0gdHNfc29ydF9kYXRlOwoJZWxzZSBpZiAoaXRtLm1h dGNoKC9eXGRcZFtcLy4tXVxkXGRbXC8uLV1cZFxkJC8pKQoJCXNvcnRmbiA9IHRz X3NvcnRfZGF0ZTsKCS8vIHBvdW5kIGRvbGxhciBldXJvIHllbiBjdXJyZW5jeSBj ZW50cwoJZWxzZSBpZiAoaXRtLm1hdGNoKC8oXltcdTAwYTMkXHUyMGFjXHUwMGE0 XHUwMGE1XXxcdTAwYTIkKS8pKQoJCXNvcnRmbiA9IHRzX3NvcnRfY3VycmVuY3k7 CgkvLyBXZSBhbGxvdyBhIHRyYWlsaW5nIHBlcmNlbnQgc2lnbiwgd2hpY2ggd2Ug anVzdCBzdHJpcC4gIFRoaXMgd29ya3MgZmluZQoJLy8gaWYgcGVyY2VudHMgYW5k IHJlZ3VsYXIgbnVtYmVycyBhcmVuJ3QgYmVpbmcgbWl4ZWQuCgllbHNlIGlmIChp dG0ubWF0Y2goL15bKy1dP1xkW1xkLF0qKFwuW1xkLF0qKT8oW2VFXVsrLV0/XGRb XGQsXSopP1wlPyQvKSB8fAoJaXRtLm1hdGNoKC9eWystXT9cLlxkW1xkLF0qKFtl RV1bKy1dP1xkW1xkLF0qKT9cJT8kLykgfHwKCWl0bS5tYXRjaCgvXjB4W1xkYS1m XSskL2kpKQoJCXNvcnRmbiA9IHRzX3NvcnRfbnVtZXJpYzsKCgl2YXIgcmV2ZXJz ZSA9IChzcGFuLmdldEF0dHJpYnV0ZSgic29ydGRpciIpID09ICdkb3duJyk7CgoJ dmFyIG5ld1Jvd3MgPSBuZXcgQXJyYXkoKTsKCWZvciAodmFyIGogPSByb3dTdGFy dDsgaiA8IHRhYmxlLnJvd3MubGVuZ3RoOyBqKyspIHsKCQl2YXIgcm93ID0gdGFi bGUucm93c1tqXTsKCQl2YXIga2V5VGV4dCA9IHRzX2dldElubmVyVGV4dChyb3cu Y2VsbHNbY29sdW1uXSk7CgkJdmFyIG9sZEluZGV4ID0gKHJldmVyc2UgPyAtaiA6 IGopOwoKCQluZXdSb3dzW25ld1Jvd3MubGVuZ3RoXSA9IG5ldyBBcnJheShyb3cs IGtleVRleHQsIG9sZEluZGV4KTsKCX0KCgluZXdSb3dzLnNvcnQoc29ydGZuKTsK Cgl2YXIgYXJyb3dIVE1MOwoJaWYgKHJldmVyc2UpIHsKCQlhcnJvd0hUTUwgPSAn PGltZyBzcmM9IicrIHRzX2ltYWdlX3BhdGggKyB0c19pbWFnZV9kb3duICsgJyIg YWx0PSImZGFycjsiLz4nOwoJCW5ld1Jvd3MucmV2ZXJzZSgpOwoJCXNwYW4uc2V0 QXR0cmlidXRlKCdzb3J0ZGlyJywndXAnKTsKCX0gZWxzZSB7CgkJYXJyb3dIVE1M ID0gJzxpbWcgc3JjPSInKyB0c19pbWFnZV9wYXRoICsgdHNfaW1hZ2VfdXAgKyAn IiBhbHQ9IiZ1YXJyOyIvPic7CgkJc3Bhbi5zZXRBdHRyaWJ1dGUoJ3NvcnRkaXIn LCdkb3duJyk7Cgl9CgoJLy8gV2UgYXBwZW5kQ2hpbGQgcm93cyB0aGF0IGFscmVh ZHkgZXhpc3QgdG8gdGhlIHRib2R5LCBzbyBpdCBtb3ZlcyB0aGVtIHJhdGhlciB0 aGFuIGNyZWF0aW5nIG5ldyBvbmVzCgkvLyBkb24ndCBkbyBzb3J0Ym90dG9tIHJv d3MKCWZvciAodmFyIGkgPSAwOyBpIDwgbmV3Um93cy5sZW5ndGg7IGkrKykgewoJ CWlmICgoIiAiK25ld1Jvd3NbaV1bMF0uY2xhc3NOYW1lKyIgIikuaW5kZXhPZigi IHNvcnRib3R0b20gIikgPT0gLTEpCgkJCXRhYmxlLnRCb2RpZXNbMF0uYXBwZW5k Q2hpbGQobmV3Um93c1tpXVswXSk7Cgl9CgkvLyBkbyBzb3J0Ym90dG9tIHJvd3Mg b25seQoJZm9yICh2YXIgaSA9IDA7IGkgPCBuZXdSb3dzLmxlbmd0aDsgaSsrKSB7 CgkJaWYgKCgiICIrbmV3Um93c1tpXVswXS5jbGFzc05hbWUrIiAiKS5pbmRleE9m KCIgc29ydGJvdHRvbSAiKSAhPSAtMSkKCQkJdGFibGUudEJvZGllc1swXS5hcHBl bmRDaGlsZChuZXdSb3dzW2ldWzBdKTsKCX0KCgkvLyBEZWxldGUgYW55IG90aGVy IGFycm93cyB0aGVyZSBtYXkgYmUgc2hvd2luZwoJdmFyIHNwYW5zID0gZ2V0RWxl bWVudHNCeUNsYXNzTmFtZSh0ciwgInNwYW4iLCAic29ydGFycm93Iik7Cglmb3Ig KHZhciBpID0gMDsgaSA8IHNwYW5zLmxlbmd0aDsgaSsrKSB7CgkJc3BhbnNbaV0u aW5uZXJIVE1MID0gJzxpbWcgc3JjPSInKyB0c19pbWFnZV9wYXRoICsgdHNfaW1h Z2Vfbm9uZSArICciIGFsdD0iJmRhcnI7Ii8+JzsKCX0KCXNwYW4uaW5uZXJIVE1M ID0gYXJyb3dIVE1MOwoKCWlmICh0c19hbHRlcm5hdGVfcm93X2NvbG9ycykgewoJ CXRzX2FsdGVybmF0ZSh0YWJsZSk7Cgl9Cn0KCmZ1bmN0aW9uIHRzX2RhdGVUb1Nv cnRLZXkoZGF0ZSkgewkKCS8vIHkyayBub3RlczogdHdvIGRpZ2l0IHllYXJzIGxl c3MgdGhhbiA1MCBhcmUgdHJlYXRlZCBhcyAyMFhYLCBncmVhdGVyIHRoYW4gNTAg YXJlIHRyZWF0ZWQgYXMgMTlYWAoJaWYgKGRhdGUubGVuZ3RoID09IDExKSB7CgkJ c3dpdGNoIChkYXRlLnN1YnN0cigzLDMpLnRvTG93ZXJDYXNlKCkpIHsKCQkJY2Fz ZSAiamFuIjogdmFyIG1vbnRoID0gIjAxIjsgYnJlYWs7CgkJCWNhc2UgImZlYiI6 IHZhciBtb250aCA9ICIwMiI7IGJyZWFrOwoJCQljYXNlICJtYXIiOiB2YXIgbW9u dGggPSAiMDMiOyBicmVhazsKCQkJY2FzZSAiYXByIjogdmFyIG1vbnRoID0gIjA0 IjsgYnJlYWs7CgkJCWNhc2UgIm1heSI6IHZhciBtb250aCA9ICIwNSI7IGJyZWFr OwoJCQljYXNlICJqdW4iOiB2YXIgbW9udGggPSAiMDYiOyBicmVhazsKCQkJY2Fz ZSAianVsIjogdmFyIG1vbnRoID0gIjA3IjsgYnJlYWs7CgkJCWNhc2UgImF1ZyI6 IHZhciBtb250aCA9ICIwOCI7IGJyZWFrOwoJCQljYXNlICJzZXAiOiB2YXIgbW9u dGggPSAiMDkiOyBicmVhazsKCQkJY2FzZSAib2N0IjogdmFyIG1vbnRoID0gIjEw IjsgYnJlYWs7CgkJCWNhc2UgIm5vdiI6IHZhciBtb250aCA9ICIxMSI7IGJyZWFr OwoJCQljYXNlICJkZWMiOiB2YXIgbW9udGggPSAiMTIiOyBicmVhazsKCQkJLy8g ZGVmYXVsdDogdmFyIG1vbnRoID0gIjAwIjsKCQl9CgkJcmV0dXJuIGRhdGUuc3Vi c3RyKDcsNCkrbW9udGgrZGF0ZS5zdWJzdHIoMCwyKTsKCX0gZWxzZSBpZiAoZGF0 ZS5sZW5ndGggPT0gMTApIHsKCQlpZiAodHNfZXVyb3BlYW5kYXRlID09IGZhbHNl KSB7CgkJCXJldHVybiBkYXRlLnN1YnN0cig2LDQpK2RhdGUuc3Vic3RyKDAsMikr ZGF0ZS5zdWJzdHIoMywyKTsKCQl9IGVsc2UgewoJCQlyZXR1cm4gZGF0ZS5zdWJz dHIoNiw0KStkYXRlLnN1YnN0cigzLDIpK2RhdGUuc3Vic3RyKDAsMik7CgkJfQoJ fSBlbHNlIGlmIChkYXRlLmxlbmd0aCA9PSA4KSB7CgkJeXIgPSBkYXRlLnN1YnN0 cig2LDIpOwoJCWlmIChwYXJzZUludCh5cikgPCA1MCkgeyAKCQkJeXIgPSAnMjAn K3lyOyAKCQl9IGVsc2UgeyAKCQkJeXIgPSAnMTknK3lyOyAKCQl9CgkJaWYgKHRz X2V1cm9wZWFuZGF0ZSA9PSB0cnVlKSB7CgkJCXJldHVybiB5citkYXRlLnN1YnN0 cigzLDIpK2RhdGUuc3Vic3RyKDAsMik7CgkJfSBlbHNlIHsKCQkJcmV0dXJuIHly K2RhdGUuc3Vic3RyKDAsMikrZGF0ZS5zdWJzdHIoMywyKTsKCQl9Cgl9CglyZXR1 cm4gIjAwMDAwMDAwIjsKfQoKZnVuY3Rpb24gdHNfcGFyc2VGbG9hdChudW0pIHsK CWlmICghbnVtKSByZXR1cm4gMDsKCW51bSA9IHBhcnNlRmxvYXQobnVtLnJlcGxh Y2UoLywvZywgIiIpKTsKCXJldHVybiAoaXNOYU4obnVtKSA/IDAgOiBudW0pOwp9 CgpmdW5jdGlvbiB0c19zb3J0X2RhdGUoYSxiKSB7Cgl2YXIgYWEgPSB0c19kYXRl VG9Tb3J0S2V5KGFbMV0pOwoJdmFyIGJiID0gdHNfZGF0ZVRvU29ydEtleShiWzFd KTsKCXJldHVybiAoYWEgPCBiYiA/IC0xIDogYWEgPiBiYiA/IDEgOiBhWzJdIC0g YlsyXSk7Cn0KCmZ1bmN0aW9uIHRzX3NvcnRfY3VycmVuY3koYSxiKSB7Cgl2YXIg YWEgPSB0c19wYXJzZUZsb2F0KGFbMV0ucmVwbGFjZSgvW14wLTkuLF0vZywnJykp OwoJdmFyIGJiID0gdHNfcGFyc2VGbG9hdChiWzFdLnJlcGxhY2UoL1teMC05Lixd L2csJycpKTsKCXJldHVybiAoYWEgIT0gYmIgPyBhYSAtIGJiIDogYVsyXSAtIGJb Ml0pOwp9CgpmdW5jdGlvbiB0c19zb3J0X251bWVyaWMoYSxiKSB7Cgl2YXIgYWEg PSB0c19wYXJzZUZsb2F0KGFbMV0pOwoJdmFyIGJiID0gdHNfcGFyc2VGbG9hdChi WzFdKTsKCXJldHVybiAoYWEgIT0gYmIgPyBhYSAtIGJiIDogYVsyXSAtIGJbMl0p Owp9CgpmdW5jdGlvbiB0c19zb3J0X2Nhc2VpbnNlbnNpdGl2ZShhLGIpIHsKCXZh ciBhYSA9IGFbMV0udG9Mb3dlckNhc2UoKTsKCXZhciBiYiA9IGJbMV0udG9Mb3dl ckNhc2UoKTsKCXJldHVybiAoYWEgPCBiYiA/IC0xIDogYWEgPiBiYiA/IDEgOiBh WzJdIC0gYlsyXSk7Cn0KCmZ1bmN0aW9uIHRzX3NvcnRfZGVmYXVsdChhLGIpIHsK CXJldHVybiAoYVsxXSA8IGJbMV0gPyAtMSA6IGFbMV0gPiBiWzFdID8gMSA6IGFb Ml0gLSBiWzJdKTsKfQoKZnVuY3Rpb24gdHNfYWx0ZXJuYXRlKHRhYmxlKSB7Cgkv LyBUYWtlIG9iamVjdCB0YWJsZSBhbmQgZ2V0IGFsbCBpdCdzIHRib2RpZXMuCgl2 YXIgdGFibGVCb2RpZXMgPSB0YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJv ZHkiKTsKCS8vIExvb3AgdGhyb3VnaCB0aGVzZSB0Ym9kaWVzCglmb3IgKHZhciBp ID0gMDsgaSA8IHRhYmxlQm9kaWVzLmxlbmd0aDsgaSsrKSB7CgkJLy8gVGFrZSB0 aGUgdGJvZHksIGFuZCBnZXQgYWxsIGl0J3Mgcm93cwoJCXZhciB0YWJsZVJvd3Mg PSB0YWJsZUJvZGllc1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidHIiKTsKCQkv LyBMb29wIHRocm91Z2ggdGhlc2Ugcm93cwoJCS8vIFN0YXJ0IGF0IDEgYmVjYXVz ZSB3ZSB3YW50IHRvIGxlYXZlIHRoZSBoZWFkaW5nIHJvdyB1bnRvdWNoZWQKCQlm b3IgKHZhciBqID0gMDsgaiA8IHRhYmxlUm93cy5sZW5ndGg7IGorKykgewoJCQkv LyBDaGVjayBpZiBqIGlzIGV2ZW4sIGFuZCBhcHBseSBjbGFzc2VzIGZvciBib3Ro IHBvc3NpYmxlIHJlc3VsdHMKCQkJdmFyIG9sZENsYXNzZXMgPSB0YWJsZVJvd3Nb al0uY2xhc3NOYW1lLnNwbGl0KCIgIik7CgkJCXZhciBuZXdDbGFzc05hbWUgPSAi IjsKCQkJZm9yICh2YXIgayA9IDA7IGsgPCBvbGRDbGFzc2VzLmxlbmd0aDsgaysr KSB7CgkJCQlpZiAob2xkQ2xhc3Nlc1trXSAhPSAiIiAmJiBvbGRDbGFzc2VzW2td ICE9ICJldmVuIiAmJiBvbGRDbGFzc2VzW2tdICE9ICJvZGQiKQoJCQkJCW5ld0Ns YXNzTmFtZSArPSBvbGRDbGFzc2VzW2tdICsgIiAiOwoJCQl9CgkJCXRhYmxlUm93 c1tqXS5jbGFzc05hbWUgPSBuZXdDbGFzc05hbWUgKyAoaiAlIDIgPT0gMCA/ICJl dmVuIiA6ICJvZGQiKTsKCQl9Cgl9Cn0KCi8qCiAqIEVuZCBvZiB0YWJsZSBzb3J0 aW5nIGNvZGUKICovCiAKIAovKioKICogQWRkIGEgY3V0ZSBsaXR0bGUgYm94IGF0 IHRoZSB0b3Agb2YgdGhlIHNjcmVlbiB0byBpbmZvcm0gdGhlIHVzZXIgb2YKICog c29tZXRoaW5nLCByZXBsYWNpbmcgYW55IHByZWV4aXN0aW5nIG1lc3NhZ2UuCiAq CiAqIEBwYXJhbSBTdHJpbmcgLW9yLSBEb20gT2JqZWN0IG1lc3NhZ2UgSFRNTCB0 byBiZSBwdXQgaW5zaWRlIHRoZSByaWdodCBkaXYKICogQHBhcmFtIFN0cmluZyBj bGFzc05hbWUgICBVc2VkIGluIGFkZGluZyBhIGNsYXNzOyBzaG91bGQgYmUgZGlm ZmVyZW50IGZvciBlYWNoCiAqICAgY2FsbCB0byBhbGxvdyBDU1MvSlMgdG8gaGlk ZSBkaWZmZXJlbnQgYm94ZXMuICBudWxsID0gbm8gY2xhc3MgdXNlZC4KICogQHJl dHVybiBCb29sZWFuICAgICAgIFRydWUgb24gc3VjY2VzcywgZmFsc2Ugb24gZmFp bHVyZQogKi8KZnVuY3Rpb24ganNNc2coIG1lc3NhZ2UsIGNsYXNzTmFtZSApIHsK CWlmICggIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkICkgewoJCXJldHVybiBmYWxz ZTsKCX0KCS8vIFdlIHNwZWNpYWwtY2FzZSBza2luIHN0cnVjdHVyZXMgcHJvdmlk ZWQgYnkgdGhlIHNvZnR3YXJlLiAgU2tpbnMgdGhhdAoJLy8gY2hvb3NlIHRvIGFi YW5kb24gb3Igc2lnbmlmaWNhbnRseSBtb2RpZnkgb3VyIGZvcm1hdHRpbmcgY2Fu IGp1c3QgZGVmaW5lCgkvLyBhbiBtdy1qcy1tZXNzYWdlIGRpdiB0byBzdGFydCB3 aXRoLgoJdmFyIG1lc3NhZ2VEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgg J213LWpzLW1lc3NhZ2UnICk7CglpZiAoICFtZXNzYWdlRGl2ICkgewoJCW1lc3Nh Z2VEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCAnZGl2JyApOwoJCWlmICgg ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoICdjb2x1bW4tY29udGVudCcgKQoJCSYm IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAnY29udGVudCcgKSApIHsKCQkJLy8g TW9ub0Jvb2ssIHByZXN1bWFibHkKCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo ICdjb250ZW50JyApLmluc2VydEJlZm9yZSgKCQkJCW1lc3NhZ2VEaXYsCgkJCQlk b2N1bWVudC5nZXRFbGVtZW50QnlJZCggJ2NvbnRlbnQnICkuZmlyc3RDaGlsZAoJ CQkpOwoJCX0gZWxzZSBpZiAoIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250 ZW50JykKCQkmJiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggJ2FydGljbGUnICkg KSB7CgkJCS8vIE5vbi1Nb25vYm9vayBidXQgc3RpbGwgcmVjb2duaXphYmxlIChv bGQtc3R5bGUpCgkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAnYXJ0aWNsZScp Lmluc2VydEJlZm9yZSgKCQkJCW1lc3NhZ2VEaXYsCgkJCQlkb2N1bWVudC5nZXRF bGVtZW50QnlJZCggJ2FydGljbGUnICkuZmlyc3RDaGlsZAoJCQkpOwoJCX0gZWxz ZSB7CgkJCXJldHVybiBmYWxzZTsKCQl9Cgl9CgoJbWVzc2FnZURpdi5zZXRBdHRy aWJ1dGUoICdpZCcsICdtdy1qcy1tZXNzYWdlJyApOwoJaWYoIGNsYXNzTmFtZSAp IHsKCQltZXNzYWdlRGl2LnNldEF0dHJpYnV0ZSggJ2NsYXNzJywgJ213LWpzLW1l c3NhZ2UtJytjbGFzc05hbWUgKTsKCX0KCQoJaWYgKHR5cGVvZiBtZXNzYWdlID09 PSAnb2JqZWN0JykgewoJCXdoaWxlIChtZXNzYWdlRGl2Lmhhc0NoaWxkTm9kZXMo KSkgLy8gUmVtb3ZlIG9sZCBjb250ZW50CgkJCW1lc3NhZ2VEaXYucmVtb3ZlQ2hp bGQobWVzc2FnZURpdi5maXJzdENoaWxkKTsKCQltZXNzYWdlRGl2LmFwcGVuZENo aWxkIChtZXNzYWdlKTsgLy8gQXBwZW5kIG5ldyBjb250ZW50Cgl9CgllbHNlIHsK CQltZXNzYWdlRGl2LmlubmVySFRNTCA9IG1lc3NhZ2U7Cgl9CglyZXR1cm4gdHJ1 ZTsKfQoKLyoqCiAqIEluamVjdCBhIGN1dGUgbGl0dGxlIHByb2dyZXNzIHNwaW5u ZXIgYWZ0ZXIgdGhlIHNwZWNpZmllZCBlbGVtZW50CiAqCiAqIEBwYXJhbSBlbGVt ZW50IEVsZW1lbnQgdG8gaW5qZWN0IGFmdGVyCiAqIEBwYXJhbSBpZCBJZGVudGlm aWVyIHN0cmluZyAoZm9yIHVzZSB3aXRoIHJlbW92ZVNwaW5uZXIoKSwgYmVsb3cp CiAqLwpmdW5jdGlvbiBpbmplY3RTcGlubmVyKCBlbGVtZW50LCBpZCApIHsKCXZh ciBzcGlubmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggImltZyIgKTsKCXNw aW5uZXIuaWQgPSAibXctc3Bpbm5lci0iICsgaWQ7CglzcGlubmVyLnNyYyA9IHN0 eWxlcGF0aCArICIvY29tbW9uL2ltYWdlcy9zcGlubmVyLmdpZiI7CglzcGlubmVy LmFsdCA9IHNwaW5uZXIudGl0bGUgPSAiLi4uIjsKCWlmKCBlbGVtZW50Lm5leHRT aWJsaW5nICkgewoJCWVsZW1lbnQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoIHNw aW5uZXIsIGVsZW1lbnQubmV4dFNpYmxpbmcgKTsKCX0gZWxzZSB7CgkJZWxlbWVu dC5wYXJlbnROb2RlLmFwcGVuZENoaWxkKCBzcGlubmVyICk7Cgl9Cn0KCi8qKgog KiBSZW1vdmUgYSBwcm9ncmVzcyBzcGlubmVyIGFkZGVkIHdpdGggaW5qZWN0U3Bp bm5lcigpCiAqCiAqIEBwYXJhbSBpZCBJZGVudGlmaWVyIHN0cmluZwogKi8KZnVu Y3Rpb24gcmVtb3ZlU3Bpbm5lciggaWQgKSB7Cgl2YXIgc3Bpbm5lciA9IGRvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKCAibXctc3Bpbm5lci0iICsgaWQgKTsKCWlmKCBz cGlubmVyICkgewoJCXNwaW5uZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggc3Bp bm5lciApOwoJfQp9CgpmdW5jdGlvbiBydW5PbmxvYWRIb29rKCkgewoJLy8gZG9u J3QgcnVuIGFueXRoaW5nIGJlbG93IHRoaXMgZm9yIG5vbi1kb20gYnJvd3NlcnMK CWlmIChkb25lT25sb2FkSG9vayB8fCAhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk ICYmIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKSkgewoJCXJldHVybjsK CX0KCgkvLyBzZXQgdGhpcyBiZWZvcmUgcnVubmluZyBhbnkgaG9va3MsIHNpbmNl IGFueSBlcnJvcnMgYmVsb3cKCS8vIG1pZ2h0IGNhdXNlIHRoZSBmdW5jdGlvbiB0 byB0ZXJtaW5hdGUgcHJlbWF0dXJlbHkKCWRvbmVPbmxvYWRIb29rID0gdHJ1ZTsK Cgl1cGRhdGVUb29sdGlwQWNjZXNzS2V5cyggbnVsbCApOwoJYWtleXR0KCBudWxs ICk7CglzZXR1cENoZWNrYm94U2hpZnRDbGljaygpOwoJc29ydGFibGVzX2luaXQo KTsKCgkvLyBSdW4gYW55IGFkZGVkLW9uIGZ1bmN0aW9ucwoJZm9yICh2YXIgaSA9 IDA7IGkgPCBvbmxvYWRGdW5jdHMubGVuZ3RoOyBpKyspIHsKCQlvbmxvYWRGdW5j dHNbaV0oKTsKCX0KfQoKLyoqCiAqIEFkZCBhbiBldmVudCBoYW5kbGVyIHRvIGFu IGVsZW1lbnQKICoKICogQHBhcmFtIEVsZW1lbnQgZWxlbWVudCBFbGVtZW50IHRv IGFkZCBoYW5kbGVyIHRvCiAqIEBwYXJhbSBTdHJpbmcgYXR0YWNoIEV2ZW50IHRv IGF0dGFjaCB0bwogKiBAcGFyYW0gY2FsbGFibGUgaGFuZGxlciBFdmVudCBoYW5k bGVyIGNhbGxiYWNrCiAqLwpmdW5jdGlvbiBhZGRIYW5kbGVyKCBlbGVtZW50LCBh dHRhY2gsIGhhbmRsZXIgKSB7CglpZiggd2luZG93LmFkZEV2ZW50TGlzdGVuZXIg KSB7CgkJZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCBhdHRhY2gsIGhhbmRsZXIs IGZhbHNlICk7Cgl9IGVsc2UgaWYoIHdpbmRvdy5hdHRhY2hFdmVudCApIHsKCQll bGVtZW50LmF0dGFjaEV2ZW50KCAnb24nICsgYXR0YWNoLCBoYW5kbGVyICk7Cgl9 Cn0KCi8qKgogKiBBZGQgYSBjbGljayBldmVudCBoYW5kbGVyIHRvIGFuIGVsZW1l bnQKICoKICogQHBhcmFtIEVsZW1lbnQgZWxlbWVudCBFbGVtZW50IHRvIGFkZCBo YW5kbGVyIHRvCiAqIEBwYXJhbSBjYWxsYWJsZSBoYW5kbGVyIEV2ZW50IGhhbmRs ZXIgY2FsbGJhY2sKICovCmZ1bmN0aW9uIGFkZENsaWNrSGFuZGxlciggZWxlbWVu dCwgaGFuZGxlciApIHsKCWFkZEhhbmRsZXIoIGVsZW1lbnQsICdjbGljaycsIGhh bmRsZXIgKTsKfQovL25vdGU6IGFsbCBza2lucyBzaG91bGQgY2FsbCBydW5Pbmxv YWRIb29rKCkgYXQgdGhlIGVuZCBvZiBodG1sIG91dHB1dCwKLy8gICAgICBzbyB0 aGUgYmVsb3cgc2hvdWxkIGJlIHJlZHVuZGFudC4gSXQncyB0aGVyZSBqdXN0IGlu IGNhc2UuCmhvb2tFdmVudCgibG9hZCIsIHJ1bk9ubG9hZEhvb2spOwo= ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=ajax.js Content-Type: application/x-javascript; charset=utf-8; name=ajax.js Content-Location: http://hu.wikipedia.org/skins-1.5/common/ajax.js?179 Content-Transfer-Encoding: Base64 Ly8gcmVtb3RlIHNjcmlwdGluZyBsaWJyYXJ5Ci8vIChjKSBjb3B5cmlnaHQgMjAw NSBtb2Rlcm5tZXRob2QsIGluYwp2YXIgc2FqYXhfZGVidWdfbW9kZSA9IGZhbHNl Owp2YXIgc2FqYXhfcmVxdWVzdF90eXBlID0gIkdFVCI7CgovKioKKiBpZiBzYWph eF9kZWJ1Z19tb2RlIGlzIHRydWUsIHRoaXMgZnVuY3Rpb24gb3V0cHV0cyBnaXZl biB0aGUgbWVzc2FnZSBpbnRvIAoqIHRoZSBlbGVtZW50IHdpdGggaWQgPSBzYWph eF9kZWJ1ZzsgaWYgbm8gc3VjaCBlbGVtZW50IGV4aXN0cyBpbiB0aGUgZG9jdW1l bnQsIAoqIGl0IGlzIGluamVjdGVkLgoqLwpmdW5jdGlvbiBzYWpheF9kZWJ1Zyh0 ZXh0KSB7CglpZiAoIXNhamF4X2RlYnVnX21vZGUpIHJldHVybiBmYWxzZTsKCgl2 YXIgZT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NhamF4X2RlYnVnJyk7CgoJ aWYgKCFlKSB7CgkJZT0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOwoJCWUu Y2xhc3NOYW1lPSAnc2FqYXhfZGVidWcnOwoJCWUuaWQ9ICdzYWpheF9kZWJ1Zyc7 CgoJCXZhciBiPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIp WzBdOwoKCQlpZiAoYi5maXJzdENoaWxkKSBiLmluc2VydEJlZm9yZShlLCBiLmZp cnN0Q2hpbGQpOwoJCWVsc2UgYi5hcHBlbmRDaGlsZChlKTsKCX0KCgl2YXIgbT0g ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CgltLmFwcGVuZENoaWxkKCBk b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSggdGV4dCApICk7CgoJZS5hcHBlbmRDaGls ZCggbSApOwoKCXJldHVybiB0cnVlOwp9CgovKioKKiBjb21wYXRpYmlsaXR5IHdy YXBwZXIgZm9yIGNyZWF0aW5nIGEgbmV3IFhNTEh0dHBSZXF1ZXN0IG9iamVjdC4K Ki8KZnVuY3Rpb24gc2FqYXhfaW5pdF9vYmplY3QoKSB7CglzYWpheF9kZWJ1Zygi c2FqYXhfaW5pdF9vYmplY3QoKSBjYWxsZWQuLiIpCgl2YXIgQTsKCXRyeSB7CgkJ Ly8gVHJ5IHRoZSBuZXcgc3R5bGUgYmVmb3JlIEFjdGl2ZVggc28gd2UgZG9uJ3QK CQkvLyB1bm5lY2Vzc2FyaWx5IHRyaWdnZXIgd2FybmluZ3MgaW4gSUUgNyB3aGVu CgkJLy8gc2V0IHRvIHByb21wdCBhYm91dCBBY3RpdmVYIHVzYWdlCgkJQSA9IG5l dyBYTUxIdHRwUmVxdWVzdCgpOwoJfSBjYXRjaCAoZSkgewoJCXRyeSB7CgkJCUE9 bmV3IEFjdGl2ZVhPYmplY3QoIk1zeG1sMi5YTUxIVFRQIik7CgkJfSBjYXRjaCAo ZSkgewoJCQl0cnkgewoJCQkJQT1uZXcgQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0 LlhNTEhUVFAiKTsKCQkJfSBjYXRjaCAob2MpIHsKCQkJCUE9bnVsbDsKCQkJfQoJ CX0KCX0KCWlmICghQSkKCQlzYWpheF9kZWJ1ZygiQ291bGQgbm90IGNyZWF0ZSBj b25uZWN0aW9uIG9iamVjdC4iKTsKCglyZXR1cm4gQTsKfQoKLyoqCiogUGVyZm9y bSBhbiBhamF4IGNhbGwgdG8gbWVkaWF3aWtpLiBDYWxscyBhcmUgaGFuZGVsZWQg YnkgQWpheERpc3BhdGNoZXIucGhwCiogICBmdW5jX25hbWUgLSB0aGUgbmFtZSBv ZiB0aGUgZnVuY3Rpb24gdG8gY2FsbC4gTXVzdCBiZSByZWdpc3RlcmVkIGluICR3 Z0FqYXhFeHBvcnRMaXN0CiogICBhcmdzIC0gYW4gYXJyYXkgb2YgYXJndW1lbnRz IHRvIHRoYXQgZnVuY3Rpb24KKiAgIHRhcmdldCAtIHRoZSB0YXJnZXQgdGhhdCB3 aWxsIGhhbmRsZSB0aGUgcmVzdWx0IG9mIHRoZSBjYWxsLiBJZiB0aGlzIGlzIGEg ZnVuY3Rpb24sCiogICAgICAgICAgICBpZiB3aWxsIGJlIGNhbGxlZCB3aXRoIHRo ZSBYTUxIdHRwUmVxdWVzdCBhcyBhIHBhcmFtZXRlcjsgaWYgaXQncyBhbiBpbnB1 dAoqICAgICAgICAgICAgZWxlbWVudCwgaXRzIHZhbHVlIHdpbGwgYmUgc2V0IHRv IHRoZSByZXN1bHRUZXh0OyBpZiBpdCdzIGFub3RoZXIgdHlwZSBvZgoqICAgICAg ICAgICAgZWxlbWVudCwgaXRzIGlubmVySFRNTCB3aWxsIGJlIHNldCB0byB0aGUg cmVzdWx0VGV4dC4KKgoqIEV4YW1wbGU6CiogICAgc2FqYXhfZG9fY2FsbCgnZG9G b28nLCBbMSwgMiwgM10sIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaG93Rm9v IikpOwoqCiogVGhpcyB3aWxsIGNhbGwgdGhlIGRvRm9vIGZ1bmN0aW9uIHZpYSBN ZWRpYVdpa2kncyBBamF4RGlzcGF0Y2hlciwgd2l0aAoqICgxLCAyLCAzKSBhcyB0 aGUgcGFyYW1ldGVyIGxpc3QsIGFuZCB3aWxsIHNob3cgdGhlIHJlc3VsdCBpbiB0 aGUgZWxlbWVudAoqIHdpdGggaWQgPSBzaG93Rm9vCiovCmZ1bmN0aW9uIHNhamF4 X2RvX2NhbGwoZnVuY19uYW1lLCBhcmdzLCB0YXJnZXQpIHsKCXZhciBpLCB4LCBu OwoJdmFyIHVyaTsKCXZhciBwb3N0X2RhdGE7Cgl1cmkgPSB3Z1NlcnZlciArCgkJ KCh3Z1NjcmlwdCA9PSBudWxsKSA/ICh3Z1NjcmlwdFBhdGggKyAiL2luZGV4LnBo cCIpIDogd2dTY3JpcHQpICsKCQkiP2FjdGlvbj1hamF4IjsKCWlmIChzYWpheF9y ZXF1ZXN0X3R5cGUgPT0gIkdFVCIpIHsKCQlpZiAodXJpLmluZGV4T2YoIj8iKSA9 PSAtMSkKCQkJdXJpID0gdXJpICsgIj9ycz0iICsgZW5jb2RlVVJJQ29tcG9uZW50 KGZ1bmNfbmFtZSk7CgkJZWxzZQoJCQl1cmkgPSB1cmkgKyAiJnJzPSIgKyBlbmNv ZGVVUklDb21wb25lbnQoZnVuY19uYW1lKTsKCQlmb3IgKGkgPSAwOyBpIDwgYXJn cy5sZW5ndGg7IGkrKykKCQkJdXJpID0gdXJpICsgIiZyc2FyZ3NbXT0iICsgZW5j b2RlVVJJQ29tcG9uZW50KGFyZ3NbaV0pOwoJCS8vdXJpID0gdXJpICsgIiZyc3Ju ZD0iICsgbmV3IERhdGUoKS5nZXRUaW1lKCk7CgkJcG9zdF9kYXRhID0gbnVsbDsK CX0gZWxzZSB7CgkJcG9zdF9kYXRhID0gInJzPSIgKyBlbmNvZGVVUklDb21wb25l bnQoZnVuY19uYW1lKTsKCQlmb3IgKGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkr KykKCQkJcG9zdF9kYXRhID0gcG9zdF9kYXRhICsgIiZyc2FyZ3NbXT0iICsgZW5j b2RlVVJJQ29tcG9uZW50KGFyZ3NbaV0pOwoJfQoJeCA9IHNhamF4X2luaXRfb2Jq ZWN0KCk7CglpZiAoIXgpIHsKCQlhbGVydCgiQUpBWCBub3Qgc3VwcG9ydGVkIik7 CgkJcmV0dXJuIGZhbHNlOwoJfQoKCXRyeSB7CgkJeC5vcGVuKHNhamF4X3JlcXVl c3RfdHlwZSwgdXJpLCB0cnVlKTsKCX0gY2F0Y2ggKGUpIHsKCQlpZiAod2luZG93 LmxvY2F0aW9uLmhvc3RuYW1lID09ICJsb2NhbGhvc3QiKSB7CgkJCWFsZXJ0KCJZ b3VyIGJyb3dzZXIgYmxvY2tzIFhNTEh0dHBSZXF1ZXN0IHRvICdsb2NhbGhvc3Qn LCB0cnkgdXNpbmcgYSByZWFsIGhvc3RuYW1lIGZvciBkZXZlbG9wbWVudC90ZXN0 aW5nLiIpOwoJCX0KCQl0aHJvdyBlOwoJfQoJaWYgKHNhamF4X3JlcXVlc3RfdHlw ZSA9PSAiUE9TVCIpIHsKCQl4LnNldFJlcXVlc3RIZWFkZXIoIk1ldGhvZCIsICJQ T1NUICIgKyB1cmkgKyAiIEhUVFAvMS4xIik7CgkJeC5zZXRSZXF1ZXN0SGVhZGVy KCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNv ZGVkIik7Cgl9Cgl4LnNldFJlcXVlc3RIZWFkZXIoIlByYWdtYSIsICJjYWNoZT15 ZXMiKTsKCXguc2V0UmVxdWVzdEhlYWRlcigiQ2FjaGUtQ29udHJvbCIsICJuby10 cmFuc2Zvcm0iKTsKCXgub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7 CgkJaWYgKHgucmVhZHlTdGF0ZSAhPSA0KQoJCQlyZXR1cm47CgoJCXNhamF4X2Rl YnVnKCJyZWNlaXZlZCAoIiArIHguc3RhdHVzICsgIiAiICsgeC5zdGF0dXNUZXh0 ICsgIikgIiArIHgucmVzcG9uc2VUZXh0KTsKCgkJLy9pZiAoeC5zdGF0dXMgIT0g MjAwKQoJCS8vCWFsZXJ0KCJFcnJvcjogIiArIHguc3RhdHVzICsgIiAiICsgeC5z dGF0dXNUZXh0ICsgIjogIiArIHgucmVzcG9uc2VUZXh0KTsKCQkvL2Vsc2UKCgkJ aWYgKCB0eXBlb2YoIHRhcmdldCApID09ICdmdW5jdGlvbicgKSB7CgkJCXRhcmdl dCggeCApOwoJCX0KCQllbHNlIGlmICggdHlwZW9mKCB0YXJnZXQgKSA9PSAnb2Jq ZWN0JyApIHsKCQkJaWYgKCB0YXJnZXQudGFnTmFtZSA9PSAnSU5QVVQnICkgewoJ CQkJaWYgKHguc3RhdHVzID09IDIwMCkgdGFyZ2V0LnZhbHVlPSB4LnJlc3BvbnNl VGV4dDsKCQkJCS8vZWxzZSBhbGVydCgiRXJyb3I6ICIgKyB4LnN0YXR1cyArICIg IiArIHguc3RhdHVzVGV4dCArICIgKCIgKyB4LnJlc3BvbnNlVGV4dCArICIpIik7 CgkJCX0KCQkJZWxzZSB7CgkJCQlpZiAoeC5zdGF0dXMgPT0gMjAwKSB0YXJnZXQu aW5uZXJIVE1MID0geC5yZXNwb25zZVRleHQ7CgkJCQllbHNlIHRhcmdldC5pbm5l ckhUTUw9ICI8ZGl2IGNsYXNzPSdlcnJvcic+RXJyb3I6ICIgKyB4LnN0YXR1cyAr ICIgIiArIHguc3RhdHVzVGV4dCArICIgKCIgKyB4LnJlc3BvbnNlVGV4dCArICIp PC9kaXY+IjsKCQkJfQoJCX0KCQllbHNlIHsKCQkJYWxlcnQoImJhZCB0YXJnZXQg Zm9yIHNhamF4X2RvX2NhbGw6IG5vdCBhIGZ1bmN0aW9uIG9yIG9iamVjdDogIiAr IHRhcmdldCk7CgkJfQoKCQlyZXR1cm47Cgl9CgoJc2FqYXhfZGVidWcoZnVuY19u YW1lICsgIiB1cmkgPSAiICsgdXJpICsgIiAvIHBvc3QgPSAiICsgcG9zdF9kYXRh KTsKCXguc2VuZChwb3N0X2RhdGEpOwoJc2FqYXhfZGVidWcoZnVuY19uYW1lICsg IiB3YWl0aW5nLi4iKTsKCWRlbGV0ZSB4OwoKCXJldHVybiB0cnVlOwp9CgovKioK ICogQHJldHVybiBib29sZWFuIHdoZXRoZXIgdGhlIGJyb3dzZXIgc3VwcG9ydHMg WE1MSHR0cFJlcXVlc3QKICovCmZ1bmN0aW9uIHdmU3VwcG9ydHNBamF4KCkgewoJ dmFyIHJlcXVlc3QgPSBzYWpheF9pbml0X29iamVjdCgpOwoJdmFyIHN1cHBvcnRz QWpheCA9IHJlcXVlc3QgPyB0cnVlIDogZmFsc2U7CglkZWxldGUgcmVxdWVzdDsK CXJldHVybiBzdXBwb3J0c0FqYXg7Cn0KCg== ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=mwsuggest.js Content-Type: application/x-javascript; charset=utf-8; name=mwsuggest.js Content-Location: http://hu.wikipedia.org/skins-1.5/common/mwsuggest.js?179 Content-Transfer-Encoding: Base64 LyoKICogT3BlblNlYXJjaCBhamF4IHN1Z2dlc3Rpb24gZW5naW5lIGZvciBNZWRp YVdpa2kKICogCiAqIHVzZXMgY29yZSBNZWRpYVdpa2kgb3BlbiBzZWFyY2ggc3Vw cG9ydCB0byBmZXRjaCBzdWdnZXN0aW9ucwogKiBhbmQgc2hvdyB0aGVtIGJlbG93 IHNlYXJjaCBib3hlcyBhbmQgb3RoZXIgaW5wdXRzCiAqCiAqIGJ5IFJvYmVydCBT dG9qbmljIChBcHJpbCAyMDA4KQogKi8KIAovLyBzZWFyY2hfYm94X2lkIC0+IFJl c3VsdHMgb2JqZWN0IAp2YXIgb3NfbWFwID0ge307Ci8vIGNhY2hlZCBkYXRhLCB1 cmwgLT4ganNvbl90ZXh0CnZhciBvc19jYWNoZSA9IHt9OwovLyBnbG9iYWwgdmFy aWFibGVzIGZvciBzdWdnZXN0X2tleXByZXNzCnZhciBvc19jdXJfa2V5cHJlc3Nl ZCA9IDA7CnZhciBvc19sYXN0X2tleXByZXNzID0gMDsKdmFyIG9zX2tleXByZXNz ZWRfY291bnQgPSAwOwovLyB0eXBlOiBUaW1lcgp2YXIgb3NfdGltZXIgPSBudWxs OwovLyB0aWUgbW91c2Vkb3duL3VwIGV2ZW50cwp2YXIgb3NfbW91c2VfcHJlc3Nl ZCA9IGZhbHNlOwp2YXIgb3NfbW91c2VfbnVtID0gLTE7Ci8vIGlmIHRydWUsIHRo ZSBsYXN0IGNoYW5nZSB3YXMgbWFkZSBieSBtb3VzZSAoYW5kIG5vdCBrZXlib2Fy ZCkKdmFyIG9zX21vdXNlX21vdmVkID0gZmFsc2U7Ci8vIGRlbGF5IGJldHdlZW4g a2V5cHJlc3MgYW5kIHN1Z2dlc3Rpb24gKGluIG1zKQp2YXIgb3Nfc2VhcmNoX3Rp bWVvdXQgPSAyNTA7Ci8vIHRoZXNlIHBhaXJzIG9mIGlucHV0cy9mb3JtcyB3aWxs IGJlIGF1dG9sb2FkZWQgYXQgc3RhcnR1cAp2YXIgb3NfYXV0b2xvYWRfaW5wdXRz ID0gbmV3IEFycmF5KCdzZWFyY2hJbnB1dCcsICdzZWFyY2hJbnB1dDInLCAncG93 ZXJTZWFyY2hUZXh0JywgJ3NlYXJjaFRleHQnKTsKdmFyIG9zX2F1dG9sb2FkX2Zv cm1zID0gbmV3IEFycmF5KCdzZWFyY2hmb3JtJywgJ3NlYXJjaGZvcm0yJywgJ3Bv d2Vyc2VhcmNoJywgJ3NlYXJjaCcgKTsKLy8gaWYgd2Ugc3RvcHBlZCB0aGUgc2Vy dmljZQp2YXIgb3NfaXNfc3RvcHBlZCA9IGZhbHNlOwovLyBtYXggbGluZXMgdG8g c2hvdyBpbiBzdWdnZXN0IHRhYmxlCnZhciBvc19tYXhfbGluZXNfcGVyX3N1Z2dl c3QgPSA3OwovLyBudW1iZXIgb2Ygc3RlcHMgdG8gYW5pbWF0ZSBleHBhbnNpb24v Y29udHJhY3Rpb24gb2YgY29udGFpbmVyIHdpZHRoCnZhciBvc19hbmltYXRpb25f c3RlcHMgPSA2OwovLyBudW0gb2YgcGl4ZWxzIG9mIHNtYWxsZXN0IHN0ZXAKdmFy IG9zX2FuaW1hdGlvbl9taW5fc3RlcCA9IDI7Ci8vIGRlbGF5IGJldHdlZW4gc3Rl cHMgKGluIG1zKQp2YXIgb3NfYW5pbWF0aW9uX2RlbGF5ID0gMzA7Ci8vIG1heCB3 aWR0aCBvZiBjb250YWluZXIgaW4gcGVyY2VudCBvZiBub3JtYWwgc2l6ZSAoMSA9 PSAxMDAlKSAKdmFyIG9zX2NvbnRhaW5lcl9tYXhfd2lkdGggPSAyOwovLyBjdXJy ZW50bHkgYWN0aXZlIGFuaW1hdGlvbiB0aW1lcgp2YXIgb3NfYW5pbWF0aW9uX3Rp bWVyID0gbnVsbDsKCi8qKiBUaW1lb3V0IHRpbWVyIGNsYXNzIHRoYXQgd2lsbCBm ZXRjaCB0aGUgcmVzdWx0cyAqLyAKZnVuY3Rpb24gb3NfVGltZXIoaWQscixxdWVy eSl7Cgl0aGlzLmlkID0gaWQ7Cgl0aGlzLnIgPSByOwoJdGhpcy5xdWVyeSA9IHF1 ZXJ5OwkKfQoKLyoqIFRpbWVyIHVzZXIgdG8gYW5pbWF0ZSBleHBhbnNpb24vY29u dHJhY3Rpb24gb2YgY29udGFpbmVyIHdpZHRoICovCmZ1bmN0aW9uIG9zX0FuaW1h dGlvblRpbWVyKHIsIHRhcmdldCl7Cgl0aGlzLnIgPSByOwoJdmFyIGN1cnJlbnQg PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyLmNvbnRhaW5lcikub2Zmc2V0V2lk dGg7Cgl0aGlzLmluYyA9IE1hdGgucm91bmQoKHRhcmdldC1jdXJyZW50KSAvIG9z X2FuaW1hdGlvbl9zdGVwcyk7CglpZih0aGlzLmluYyA8IG9zX2FuaW1hdGlvbl9t aW5fc3RlcCAmJiB0aGlzLmluYyA+PTApCgkJdGhpcy5pbmMgPSBvc19hbmltYXRp b25fbWluX3N0ZXA7IC8vIG1pbmltYWwgYW5pbWF0aW9uIHN0ZXAKCWlmKHRoaXMu aW5jID4gLW9zX2FuaW1hdGlvbl9taW5fc3RlcCAmJiB0aGlzLmluYyA8MCkKCQl0 aGlzLmluYyA9IC1vc19hbmltYXRpb25fbWluX3N0ZXA7Cgl0aGlzLnRhcmdldCA9 IHRhcmdldDsKfQoKLyoqIFByb3BlcnR5IGNsYXNzIGZvciBzaW5nbGUgc2VhcmNo IGJveCAqLwpmdW5jdGlvbiBvc19SZXN1bHRzKG5hbWUsIGZvcm1uYW1lKXsJCgl0 aGlzLnNlYXJjaGZvcm0gPSBmb3JtbmFtZTsgLy8gaWQgb2YgdGhlIHNlYXJjaGZv cm0KCXRoaXMuc2VhcmNoYm94ID0gbmFtZTsgLy8gaWQgb2YgdGhlIHNlYXJjaGJv eAoJdGhpcy5jb250YWluZXIgPSBuYW1lKyJTdWdnZXN0IjsgLy8gZGl2IHRoYXQg aG9sZHMgcmVzdWx0cwoJdGhpcy5yZXN1bHRUYWJsZSA9IG5hbWUrIlJlc3VsdCI7 IC8vIGlkIGJhc2UgZm9yIHRoZSByZXN1bHQgdGFibGUgKCtudW0gPSB0YWJsZSBy b3cpCgl0aGlzLnJlc3VsdFRleHQgPSBuYW1lKyJSZXN1bHRUZXh0IjsgLy8gaWQg YmFzZSBmb3IgdGhlIHNwYW5zIHdpdGhpbiByZXN1bHQgdGFibGVzICgrbnVtKQoJ dGhpcy50b2dnbGUgPSBuYW1lKyJUb2dnbGUiOyAvLyBkaXYgdGhhdCBoYXMgdGhl IHRvZ2dsZSAoZW5hYmxlL2Rpc2FibGUpIGxpbmsKCXRoaXMucXVlcnkgPSBudWxs OyAvLyBsYXN0IHByb2Nlc3NlZCBxdWVyeQoJdGhpcy5yZXN1bHRzID0gbnVsbDsg IC8vIHBhcnNlZCB0aXRsZXMKCXRoaXMucmVzdWx0Q291bnQgPSAwOyAvLyBudW1i ZXIgb2YgcmVzdWx0cwoJdGhpcy5vcmlnaW5hbCA9IG51bGw7IC8vIHF1ZXJ5IHRo YXQgdXNlciBlbnRlcmVkIAoJdGhpcy5zZWxlY3RlZCA9IC0xOyAvLyB3aGljaCBy ZXN1bHQgaXMgc2VsZWN0ZWQKCXRoaXMuY29udGFpbmVyQ291bnQgPSAwOyAvLyBu dW1iZXIgb2YgcmVzdWx0cyB2aXNpYmxlIGluIGNvbnRhaW5lciAKCXRoaXMuY29u dGFpbmVyUm93ID0gMDsgLy8gaGVpZ2h0IG9mIHJlc3VsdCBmaWVsZCBpbiB0aGUg Y29udGFpbmVyCgl0aGlzLmNvbnRhaW5lclRvdGFsID0gMDsgLy8gdG90YWwgaGVp Z2h0IG9mIHRoZSBjb250YWluZXIgd2lsbCBhbGwgcmVzdWx0cwoJdGhpcy52aXNp YmxlID0gZmFsc2U7IC8vIGlmIGNvbnRhaW5lciBpcyB2aXNpYmxlCn0KCi8qKiBI aWRlIHJlc3VsdHMgZGl2ICovCmZ1bmN0aW9uIG9zX2hpZGVSZXN1bHRzKHIpewoJ dmFyIGMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyLmNvbnRhaW5lcik7Cglp ZihjICE9IG51bGwpCgkJYy5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7Cgly LnZpc2libGUgPSBmYWxzZTsKCXIuc2VsZWN0ZWQgPSAtMTsKfQoKLyoqIFNob3cg cmVzdWx0cyBkaXYgKi8KZnVuY3Rpb24gb3Nfc2hvd1Jlc3VsdHMocil7CglpZihv c19pc19zdG9wcGVkKQoJCXJldHVybjsKCW9zX2ZpdENvbnRhaW5lcihyKTsKCXZh ciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5jb250YWluZXIpOwoJci5z ZWxlY3RlZCA9IC0xOwoJaWYoYyAhPSBudWxsKXsKCQljLnNjcm9sbFRvcCA9IDA7 CgkJYy5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOwoJCXIudmlzaWJsZSA9 IHRydWU7Cgl9CQp9CgpmdW5jdGlvbiBvc19vcGVyYVdpZHRoRml4KHgpewoJLy8g VE9ETzogYmV0dGVyIGNzczIgaW5jb21wYXRpYmlsaXR5IGRldGVjdGlvbiBoZXJl CglpZihpc19vcGVyYSB8fCBpc19raHRtbCB8fCBuYXZpZ2F0b3IudXNlckFnZW50 LnRvTG93ZXJDYXNlKCkuaW5kZXhPZignZmlyZWZveC8xJykhPS0xKXsKCQlyZXR1 cm4gMzA7IC8vIG9wZXJhJmtvbnF1ZXJvciAmIG9sZCBmaXJlZm94IGRvbid0IHVu ZGVyc3RhbmQgb3ZlcmZsb3cteCwgZXN0aW1hdGUgc2Nyb2xsYmFyIHdpZHRoCgl9 CQoJcmV0dXJuIDA7Cn0KCmZ1bmN0aW9uIG9zX2VuY29kZVF1ZXJ5KHZhbHVlKXsK ICBpZiAoZW5jb2RlVVJJQ29tcG9uZW50KSB7CiAgICByZXR1cm4gZW5jb2RlVVJJ Q29tcG9uZW50KHZhbHVlKTsKICB9CiAgaWYoZXNjYXBlKSB7CiAgICByZXR1cm4g ZXNjYXBlKHZhbHVlKTsKICB9CiAgcmV0dXJuIG51bGw7Cn0KZnVuY3Rpb24gb3Nf ZGVjb2RlVmFsdWUodmFsdWUpewogIGlmIChkZWNvZGVVUklDb21wb25lbnQpIHsK ICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpOwogIH0KICBpZih1 bmVzY2FwZSl7CiAgCXJldHVybiB1bmVzY2FwZSh2YWx1ZSk7CiAgfQogIHJldHVy biBudWxsOwp9CgovKiogQnJvd2VyLWRlcGVuZGVudCBmdW5jdGlvbnMgdG8gZmlu ZCB3aW5kb3cgaW5uZXIgc2l6ZSwgYW5kIHNjcm9sbCBzdGF0dXMgKi8KZnVuY3Rp b24gZl9jbGllbnRXaWR0aCgpIHsKCXJldHVybiBmX2ZpbHRlclJlc3VsdHMgKAoJ CXdpbmRvdy5pbm5lcldpZHRoID8gd2luZG93LmlubmVyV2lkdGggOiAwLAoJCWRv Y3VtZW50LmRvY3VtZW50RWxlbWVudCA/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVu dC5jbGllbnRXaWR0aCA6IDAsCgkJZG9jdW1lbnQuYm9keSA/IGRvY3VtZW50LmJv ZHkuY2xpZW50V2lkdGggOiAwCgkpOwp9CmZ1bmN0aW9uIGZfY2xpZW50SGVpZ2h0 KCkgewoJcmV0dXJuIGZfZmlsdGVyUmVzdWx0cyAoCgkJd2luZG93LmlubmVySGVp Z2h0ID8gd2luZG93LmlubmVySGVpZ2h0IDogMCwKCQlkb2N1bWVudC5kb2N1bWVu dEVsZW1lbnQgPyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0 IDogMCwKCQlkb2N1bWVudC5ib2R5ID8gZG9jdW1lbnQuYm9keS5jbGllbnRIZWln aHQgOiAwCgkpOwp9CmZ1bmN0aW9uIGZfc2Nyb2xsTGVmdCgpIHsKCXJldHVybiBm X2ZpbHRlclJlc3VsdHMgKAoJCXdpbmRvdy5wYWdlWE9mZnNldCA/IHdpbmRvdy5w YWdlWE9mZnNldCA6IDAsCgkJZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ID8gZG9j dW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQgOiAwLAoJCWRvY3VtZW50 LmJvZHkgPyBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQgOiAwCgkpOwp9CmZ1bmN0 aW9uIGZfc2Nyb2xsVG9wKCkgewoJcmV0dXJuIGZfZmlsdGVyUmVzdWx0cyAoCgkJ d2luZG93LnBhZ2VZT2Zmc2V0ID8gd2luZG93LnBhZ2VZT2Zmc2V0IDogMCwKCQlk b2N1bWVudC5kb2N1bWVudEVsZW1lbnQgPyBkb2N1bWVudC5kb2N1bWVudEVsZW1l bnQuc2Nyb2xsVG9wIDogMCwKCQlkb2N1bWVudC5ib2R5ID8gZG9jdW1lbnQuYm9k eS5zY3JvbGxUb3AgOiAwCgkpOwp9CmZ1bmN0aW9uIGZfZmlsdGVyUmVzdWx0cyhu X3dpbiwgbl9kb2NlbCwgbl9ib2R5KSB7Cgl2YXIgbl9yZXN1bHQgPSBuX3dpbiA/ IG5fd2luIDogMDsKCWlmIChuX2RvY2VsICYmICghbl9yZXN1bHQgfHwgKG5fcmVz dWx0ID4gbl9kb2NlbCkpKQoJCW5fcmVzdWx0ID0gbl9kb2NlbDsKCXJldHVybiBu X2JvZHkgJiYgKCFuX3Jlc3VsdCB8fCAobl9yZXN1bHQgPiBuX2JvZHkpKSA/IG5f Ym9keSA6IG5fcmVzdWx0Owp9CgovKiogR2V0IHRoZSBoZWlnaHQgYXZhaWxhYmxl IGZvciB0aGUgcmVzdWx0cyBjb250YWluZXIgKi8KZnVuY3Rpb24gb3NfYXZhaWxh YmxlSGVpZ2h0KHIpewoJdmFyIGFic1RvcCA9IGRvY3VtZW50LmdldEVsZW1lbnRC eUlkKHIuY29udGFpbmVyKS5zdHlsZS50b3A7Cgl2YXIgcHggPSBhYnNUb3AubGFz dEluZGV4T2YoInB4Iik7CglpZihweCA+IDApCgkJYWJzVG9wID0gYWJzVG9wLnN1 YnN0cmluZygwLHB4KTsKCXJldHVybiBmX2NsaWVudEhlaWdodCgpIC0gKGFic1Rv cCAtIGZfc2Nyb2xsVG9wKCkpOwp9CgoKLyoqIEdldCBlbGVtZW50IGFic29sdXRl IHBvc2l0aW9uIHtsZWZ0LHRvcH0gKi8KZnVuY3Rpb24gb3NfZ2V0RWxlbWVudFBv c2l0aW9uKGVsZW1JRCl7Cgl2YXIgb2Zmc2V0VHJhaWwgPSBkb2N1bWVudC5nZXRF bGVtZW50QnlJZChlbGVtSUQpOwoJdmFyIG9mZnNldExlZnQgPSAwOwoJdmFyIG9m ZnNldFRvcCA9IDA7Cgl3aGlsZSAob2Zmc2V0VHJhaWwpewoJCW9mZnNldExlZnQg Kz0gb2Zmc2V0VHJhaWwub2Zmc2V0TGVmdDsKCQlvZmZzZXRUb3AgKz0gb2Zmc2V0 VHJhaWwub2Zmc2V0VG9wOwoJCW9mZnNldFRyYWlsID0gb2Zmc2V0VHJhaWwub2Zm c2V0UGFyZW50OwoJfQoJaWYgKG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZign TWFjJykgIT0gLTEgJiYgdHlwZW9mIGRvY3VtZW50LmJvZHkubGVmdE1hcmdpbiAh PSAndW5kZWZpbmVkJyl7CgkJb2Zmc2V0TGVmdCArPSBkb2N1bWVudC5ib2R5Lmxl ZnRNYXJnaW47CgkJb2Zmc2V0VG9wICs9IGRvY3VtZW50LmJvZHkudG9wTWFyZ2lu OwoJfQoJcmV0dXJuIHtsZWZ0Om9mZnNldExlZnQsdG9wOm9mZnNldFRvcH07Cn0K Ci8qKiBDcmVhdGUgdGhlIGNvbnRhaW5lciBkaXYgdGhhdCB3aWxsIGhvbGQgdGhl IHN1Z2dlc3RlZCB0aXRsZXMgKi8KZnVuY3Rpb24gb3NfY3JlYXRlQ29udGFpbmVy KHIpewoJdmFyIGMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKCXZh ciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5zZWFyY2hib3gpOwoJdmFy IHBvcyA9IG9zX2dldEVsZW1lbnRQb3NpdGlvbihyLnNlYXJjaGJveCk7CQoJdmFy IGxlZnQgPSBwb3MubGVmdDsKCXZhciB0b3AgPSBwb3MudG9wICsgcy5vZmZzZXRI ZWlnaHQ7CgljLmNsYXNzTmFtZSA9ICJvcy1zdWdnZXN0IjsKCWMuc2V0QXR0cmli dXRlKCJpZCIsIHIuY29udGFpbmVyKTsJCglkb2N1bWVudC5ib2R5LmFwcGVuZENo aWxkKGMpOyAKCQoJLy8gZHluYW1pY2FsbHkgZ2VuZXJhdGVkIHN0eWxlIHBhcmFt cwkKCS8vIElFIHdvcmthcm91bmQsIGNhbm5vdCBleHBsaWNpdGVseSBzZXQgInN0 eWxlIiBhdHRyaWJ1dGUKCWMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyLmNv bnRhaW5lcik7CgljLnN0eWxlLnRvcCA9IHRvcCsicHgiOwoJYy5zdHlsZS5sZWZ0 ID0gbGVmdCsicHgiOwoJYy5zdHlsZS53aWR0aCA9IHMub2Zmc2V0V2lkdGgrInB4 IjsKCQoJLy8gbW91c2UgZXZlbnQgaGFuZGxlcnMKCWMub25tb3VzZW92ZXIgPSBm dW5jdGlvbihldmVudCkgeyBvc19ldmVudE1vdXNlb3ZlcihyLnNlYXJjaGJveCwg ZXZlbnQpOyB9OwoJYy5vbm1vdXNlbW92ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7IG9z X2V2ZW50TW91c2Vtb3ZlKHIuc2VhcmNoYm94LCBldmVudCk7IH07CgljLm9ubW91 c2Vkb3duID0gZnVuY3Rpb24oZXZlbnQpIHsgcmV0dXJuIG9zX2V2ZW50TW91c2Vk b3duKHIuc2VhcmNoYm94LCBldmVudCk7IH07CgljLm9ubW91c2V1cCA9IGZ1bmN0 aW9uKGV2ZW50KSB7IG9zX2V2ZW50TW91c2V1cChyLnNlYXJjaGJveCwgZXZlbnQp OyB9OwoJcmV0dXJuIGM7Cn0KCi8qKiBjaGFuZ2UgY29udGFpbmVyIGhlaWdodCB0 byBmaXQgdG8gc2NyZWVuICovCmZ1bmN0aW9uIG9zX2ZpdENvbnRhaW5lcihyKXsJ Cgl2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIuY29udGFpbmVyKTsK CXZhciBoID0gb3NfYXZhaWxhYmxlSGVpZ2h0KHIpIC0gMjA7Cgl2YXIgaW5jID0g ci5jb250YWluZXJSb3c7CgloID0gcGFyc2VJbnQoaC9pbmMpICogaW5jOwoJaWYo aCA8ICgyICogaW5jKSAmJiByLnJlc3VsdENvdW50ID4gMSkgLy8gbWluOiB0d28g cmVzdWx0cwoJCWggPSAyICogaW5jOwkKCWlmKChoL2luYykgPiBvc19tYXhfbGlu ZXNfcGVyX3N1Z2dlc3QgKQoJCWggPSBpbmMgKiBvc19tYXhfbGluZXNfcGVyX3N1 Z2dlc3Q7CglpZihoIDwgci5jb250YWluZXJUb3RhbCl7CgkJYy5zdHlsZS5oZWln aHQgPSBoICsicHgiOwoJCXIuY29udGFpbmVyQ291bnQgPSBwYXJzZUludChNYXRo LnJvdW5kKGgvaW5jKSk7Cgl9IGVsc2V7CgkJYy5zdHlsZS5oZWlnaHQgPSByLmNv bnRhaW5lclRvdGFsKyJweCI7CgkJci5jb250YWluZXJDb3VudCA9IHIucmVzdWx0 Q291bnQ7Cgl9Cn0KLyoqIElmIHNvbWUgZW50cmllcyBhcmUgbG9uZ2VyIHRoYW4g dGhlIGJveCwgcmVwbGFjZSB0ZXh0IHdpdGggIi4uLiIgKi8KZnVuY3Rpb24gb3Nf dHJpbVJlc3VsdFRleHQocil7CgkvLyBmaW5kIG1heCB3aWR0aCwgZmlyc3Qgc2Vl IGlmIHdlIGNvdWxkIGV4cGFuZCB0aGUgY29udGFpbmVyIHRvIGZpdCBpdAoJdmFy IG1heFcgPSAwOwoJZm9yKHZhciBpPTA7aTxyLnJlc3VsdENvdW50O2krKyl7CgkJ dmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyLnJlc3VsdFRleHQraSk7 CgkJaWYoZS5vZmZzZXRXaWR0aCA+IG1heFcpCgkJCW1heFcgPSBlLm9mZnNldFdp ZHRoOwoJfQoJdmFyIHcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyLmNvbnRh aW5lcikub2Zmc2V0V2lkdGg7Cgl2YXIgZml4ID0gMDsKCWlmKHIuY29udGFpbmVy Q291bnQgPCByLnJlc3VsdENvdW50KXsJCQoJCWZpeCA9IDIwOyAvLyBnaXZlIDIw cHggZm9yIHNjcm9sbGJhcgkJCgl9IGVsc2UKCQlmaXggPSBvc19vcGVyYVdpZHRo Rml4KHcpOwoJaWYoZml4IDwgNCkKCQlmaXggPSA0OyAvLyBiYXNpYyBwYWRkaW5n CgltYXhXICs9IGZpeDsKCQoJLy8gcmVzaXplIGNvbnRhaW5lciB0byBmaXQgbW9y ZSBkYXRhIGlmIHBlcm1pdHRlZAkKCXZhciBub3JtVyA9IGRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKHIuc2VhcmNoYm94KS5vZmZzZXRXaWR0aDsKCXZhciBwcm9wID0g bWF4VyAvIG5vcm1XOwoJaWYocHJvcCA+IG9zX2NvbnRhaW5lcl9tYXhfd2lkdGgp CgkJcHJvcCA9IG9zX2NvbnRhaW5lcl9tYXhfd2lkdGg7CgllbHNlIGlmKHByb3Ag PCAxKQoJCXByb3AgPSAxOwoJdmFyIG5ld1cgPSBNYXRoLnJvdW5kKCBub3JtVyAq IHByb3AgKTsgCglpZiggdyAhPSBuZXdXICl7CQoJCXcgPSBuZXdXOwoJCWlmKCBv c19hbmltYXRpb25fdGltZXIgIT0gbnVsbCApCgkJCWNsZWFySW50ZXJ2YWwob3Nf YW5pbWF0aW9uX3RpbWVyLmlkKQoJCW9zX2FuaW1hdGlvbl90aW1lciA9IG5ldyBv c19BbmltYXRpb25UaW1lcihyLHcpOwoJCW9zX2FuaW1hdGlvbl90aW1lci5pZCA9 IHNldEludGVydmFsKCJvc19hbmltYXRlQ2hhbmdlV2lkdGgoKSIsb3NfYW5pbWF0 aW9uX2RlbGF5KTsKCQl3IC09IGZpeDsgLy8gdGhpcyBtdWNoIGlzIHJlc2VydmVk Cgl9CgkKCS8vIHRyaW0gcmVzdWx0cwoJaWYodyA8IDEwKQoJCXJldHVybjsKCWZv cih2YXIgaT0wO2k8ci5yZXN1bHRDb3VudDtpKyspewoJCXZhciBlID0gZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoci5yZXN1bHRUZXh0K2kpOwoJCXZhciByZXBsYWNl ID0gMTsKCQl2YXIgbGFzdFcgPSBlLm9mZnNldFdpZHRoKzE7CgkJdmFyIGl0ZXJh dGlvbiA9IDA7CgkJdmFyIGNoYW5nZWRUZXh0ID0gZmFsc2U7CgkJd2hpbGUoZS5v ZmZzZXRXaWR0aCA+IHcgJiYgKGUub2Zmc2V0V2lkdGggPCBsYXN0VyB8fCBpdGVy YXRpb248MikpewoJCQljaGFuZ2VkVGV4dCA9IHRydWU7CgkJCWxhc3RXID0gZS5v ZmZzZXRXaWR0aDsKCQkJdmFyIGwgPSBlLmlubmVySFRNTDsJCQkKCQkJZS5pbm5l ckhUTUwgPSBsLnN1YnN0cmluZygwLGwubGVuZ3RoLXJlcGxhY2UpKyIuLi4iOwoJ CQlpdGVyYXRpb24rKzsKCQkJcmVwbGFjZSA9IDQ7IC8vIGhvdyBtYW55IGNoYXJz IHRvIHJlcGxhY2UKCQl9CgkJaWYoY2hhbmdlZFRleHQpewoJCQkvLyBzaG93IGhp bnQgZm9yIHRyaW1tZWQgdGl0bGVzCgkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlk KHIucmVzdWx0VGFibGUraSkuc2V0QXR0cmlidXRlKCJ0aXRsZSIsci5yZXN1bHRz W2ldKTsKCQl9Cgl9Cn0KCi8qKiBJbnZva2VkIG9uIHRpbWVyIHRvIGFuaW1hdGUg Y2hhbmdlIGluIGNvbnRhaW5lciB3aWR0aCAqLwpmdW5jdGlvbiBvc19hbmltYXRl Q2hhbmdlV2lkdGgoKXsKCXZhciByID0gb3NfYW5pbWF0aW9uX3RpbWVyLnI7Cgl2 YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIuY29udGFpbmVyKTsKCXZh ciB3ID0gYy5vZmZzZXRXaWR0aDsKCXZhciBpbmMgPSBvc19hbmltYXRpb25fdGlt ZXIuaW5jOwoJdmFyIHRhcmdldCA9IG9zX2FuaW1hdGlvbl90aW1lci50YXJnZXQ7 Cgl2YXIgbncgPSB3ICsgaW5jOwoJaWYoIChpbmMgPiAwICYmIG53ID49IHRhcmdl dCkgfHwgKGluYyA8PSAwICYmIG53IDw9IHRhcmdldCkgKXsKCQkvLyBmaW5pc2hl ZCAhCgkJYy5zdHlsZS53aWR0aCA9IHRhcmdldCsicHgiOwoJCWNsZWFySW50ZXJ2 YWwob3NfYW5pbWF0aW9uX3RpbWVyLmlkKQoJCW9zX2FuaW1hdGlvbl90aW1lciA9 IG51bGw7Cgl9IGVsc2V7CgkJLy8gaW4tcHJvZ3Jlc3MKCQljLnN0eWxlLndpZHRo ID0gbncrInB4IjsKCX0KfQoKLyoqIEhhbmRsZXMgZGF0YSBmcm9tIFhNTEh0dHBS ZXF1ZXN0LCBhbmQgdXBkYXRlcyB0aGUgc3VnZ2VzdCByZXN1bHRzICovCmZ1bmN0 aW9uIG9zX3VwZGF0ZVJlc3VsdHMociwgcXVlcnksIHRleHQsIGNhY2hlS2V5KXsJ IAoJb3NfY2FjaGVbY2FjaGVLZXldID0gdGV4dDsKCXIucXVlcnkgPSBxdWVyeTsK CXIub3JpZ2luYWwgPSBxdWVyeTsKCWlmKHRleHQgPT0gIiIpewoJCXIucmVzdWx0 cyA9IG51bGw7CgkJci5yZXN1bHRDb3VudCA9IDA7CgkJb3NfaGlkZVJlc3VsdHMo cik7Cgl9IGVsc2V7CQkKCQl0cnkgewoJCQl2YXIgcCA9IGV2YWwoJygnK3RleHQr JyknKTsgLy8gc2ltcGxlIGpzb24gcGFyc2UsIGNvdWxkIGRvIGEgc2FmZXIgb25l CgkJCWlmKHAubGVuZ3RoPDIgfHwgcFsxXS5sZW5ndGggPT0gMCl7CgkJCQlyLnJl c3VsdHMgPSBudWxsOwoJCQkJci5yZXN1bHRDb3VudCA9IDA7CgkJCQlvc19oaWRl UmVzdWx0cyhyKTsKCQkJCXJldHVybjsKCQkJfQkJCgkJCXZhciBjID0gZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoci5jb250YWluZXIpOwoJCQlpZihjID09IG51bGwp CgkJCQljID0gb3NfY3JlYXRlQ29udGFpbmVyKHIpOwkJCQoJCQljLmlubmVySFRN TCA9IG9zX2NyZWF0ZVJlc3VsdFRhYmxlKHIscFsxXSk7CgkJCS8vIGluaXQgY29u dGFpbmVyIHRhYmxlIHNpemVzCgkJCXZhciB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu dEJ5SWQoci5yZXN1bHRUYWJsZSk7CQkKCQkJci5jb250YWluZXJUb3RhbCA9IHQu b2Zmc2V0SGVpZ2h0OwkKCQkJci5jb250YWluZXJSb3cgPSB0Lm9mZnNldEhlaWdo dCAvIHIucmVzdWx0Q291bnQ7CgkJCW9zX2ZpdENvbnRhaW5lcihyKTsKCQkJb3Nf dHJpbVJlc3VsdFRleHQocik7CQkJCQoJCQlvc19zaG93UmVzdWx0cyhyKTsKCQl9 IGNhdGNoKGUpewoJCQkvLyBiYWQgcmVzcG9uc2UgZnJvbSBzZXJ2ZXIgb3Igc3Vj aAoJCQlvc19oaWRlUmVzdWx0cyhyKTsJCQkKCQkJb3NfY2FjaGVbY2FjaGVLZXld ID0gbnVsbDsKCQl9Cgl9CQp9CgovKiogQ3JlYXRlIHRoZSByZXN1bHQgdGFibGUg dG8gYmUgcGxhY2VkIGluIHRoZSBjb250YWluZXIgZGl2ICovCmZ1bmN0aW9uIG9z X2NyZWF0ZVJlc3VsdFRhYmxlKHIsIHJlc3VsdHMpewoJdmFyIGMgPSBkb2N1bWVu dC5nZXRFbGVtZW50QnlJZChyLmNvbnRhaW5lcik7Cgl2YXIgd2lkdGggPSBjLm9m ZnNldFdpZHRoIC0gb3Nfb3BlcmFXaWR0aEZpeChjLm9mZnNldFdpZHRoKTsJCgl2 YXIgaHRtbCA9ICI8dGFibGUgY2xhc3M9XCJvcy1zdWdnZXN0LXJlc3VsdHNcIiBp ZD1cIiIrci5yZXN1bHRUYWJsZSsiXCIgc3R5bGU9XCJ3aWR0aDogIit3aWR0aCsi cHg7XCI+IjsKCXIucmVzdWx0cyA9IG5ldyBBcnJheSgpOwoJci5yZXN1bHRDb3Vu dCA9IHJlc3VsdHMubGVuZ3RoOwoJZm9yKGk9MDtpPHJlc3VsdHMubGVuZ3RoO2kr Kyl7CgkJdmFyIHRpdGxlID0gb3NfZGVjb2RlVmFsdWUocmVzdWx0c1tpXSk7CgkJ ci5yZXN1bHRzW2ldID0gdGl0bGU7CgkJaHRtbCArPSAiPHRyPjx0ZCBjbGFzcz1c Im9zLXN1Z2dlc3QtcmVzdWx0XCIgaWQ9XCIiK3IucmVzdWx0VGFibGUraSsiXCI+ PHNwYW4gaWQ9XCIiK3IucmVzdWx0VGV4dCtpKyJcIj4iK3RpdGxlKyI8L3NwYW4+ PC90ZD48L3RyPiI7Cgl9CglodG1sKz0iPC90YWJsZT4iCglyZXR1cm4gaHRtbDsK fQoKLyoqIEZldGNoIG5hbWVzcGFjZXMgZnJvbSBjaGVja2JveGVzIG9yIGhpZGRl biBmaWVsZHMgaW4gdGhlIHNlYXJjaCBmb3JtLAogICAgaWYgbm9uZSBkZWZpbmVk IHVzZSB3Z1NlYXJjaE5hbWVzcGFjZXMgZ2xvYmFsICovCmZ1bmN0aW9uIG9zX2dl dE5hbWVzcGFjZXMocil7CQoJdmFyIG5hbWVzcGFjZXMgPSAiIjsKCXZhciBlbGVt ZW50cyA9IGRvY3VtZW50LmZvcm1zW3Iuc2VhcmNoZm9ybV0uZWxlbWVudHM7Cglm b3IoaT0wOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspewoJCXZhciBuYW1lID0g ZWxlbWVudHNbaV0ubmFtZTsKCQlpZih0eXBlb2YgbmFtZSAhPSAndW5kZWZpbmVk JyAmJiBuYW1lLmxlbmd0aCA+IDIgCgkJJiYgbmFtZVswXT09J24nICYmIG5hbWVb MV09PSdzJyAKCQkmJiAoKGVsZW1lbnRzW2ldLnR5cGU9PSdjaGVja2JveCcgJiYg ZWxlbWVudHNbaV0uY2hlY2tlZCkgCgkJIAl8fCAoZWxlbWVudHNbaV0udHlwZT09 J2hpZGRlbicgJiYgZWxlbWVudHNbaV0udmFsdWU9PSIxIikpICl7CgkJCWlmKG5h bWVzcGFjZXMhPSIiKQoJCQkJbmFtZXNwYWNlcys9InwiOwoJCQluYW1lc3BhY2Vz Kz1uYW1lLnN1YnN0cmluZygyKTsKCQl9Cgl9CglpZihuYW1lc3BhY2VzID09ICIi KQoJCW5hbWVzcGFjZXMgPSB3Z1NlYXJjaE5hbWVzcGFjZXMuam9pbigifCIpOwoJ cmV0dXJuIG5hbWVzcGFjZXM7Cn0KCi8qKiBVcGRhdGUgcmVzdWx0cyBpZiB1c2Vy IGhhc24ndCBhbHJlYWR5IHR5cGVkIHNvbWV0aGluZyBlbHNlICovCmZ1bmN0aW9u IG9zX3VwZGF0ZUlmUmVsZXZhbnQociwgcXVlcnksIHRleHQsIGNhY2hlS2V5KXsK CXZhciB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5zZWFyY2hib3gpOwoJ aWYodCAhPSBudWxsICYmIHQudmFsdWUgPT0gcXVlcnkpeyAvLyBjaGVjayBpZiBy ZXNwb25zZSBpcyBzdGlsbCByZWxldmFudAkgICAgICAgIAkJCQoJCW9zX3VwZGF0 ZVJlc3VsdHMociwgcXVlcnksIHRleHQsIGNhY2hlS2V5KTsKCX0KCXIucXVlcnkg PSBxdWVyeTsKfQoKLyoqIEZldGNoIHJlc3VsdHMgYWZ0ZXIgc29tZSB0aW1lb3V0 ICovCmZ1bmN0aW9uIG9zX2RlbGF5ZWRGZXRjaCgpewoJaWYob3NfdGltZXIgPT0g bnVsbCkKCQlyZXR1cm47Cgl2YXIgciA9IG9zX3RpbWVyLnI7Cgl2YXIgcXVlcnkg PSBvc190aW1lci5xdWVyeTsKCW9zX3RpbWVyID0gbnVsbDsKCXZhciBwYXRoID0g d2dNV1N1Z2dlc3RUZW1wbGF0ZS5yZXBsYWNlKCJ7bmFtZXNwYWNlc30iLG9zX2dl dE5hbWVzcGFjZXMocikpCgkJCQkJCQkgIAkgIC5yZXBsYWNlKCJ7ZGJuYW1lfSIs d2dEQm5hbWUpCgkJCQkJCQkgIAkgIC5yZXBsYWNlKCJ7c2VhcmNoVGVybXN9Iixv c19lbmNvZGVRdWVyeShxdWVyeSkpOwoJCgkvLyB0cnkgdG8gZ2V0IGZyb20gY2Fj aGUsIGlmIG5vdCBmZXRjaCB1c2luZyBhamF4Cgl2YXIgY2FjaGVkID0gb3NfY2Fj aGVbcGF0aF07CglpZihjYWNoZWQgIT0gbnVsbCl7CgkJb3NfdXBkYXRlSWZSZWxl dmFudChyLCBxdWVyeSwgY2FjaGVkLCBwYXRoKTsKCX0gZWxzZXsJCQkJCQkJCQkg IAoJCXZhciB4bWxodHRwID0gc2FqYXhfaW5pdF9vYmplY3QoKTsKCQlpZih4bWxo dHRwKXsKCQkJdHJ5IHsJCQkKCQkJCXhtbGh0dHAub3BlbigiR0VUIiwgcGF0aCwg dHJ1ZSk7CgkJCQl4bWxodHRwLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigp ewoJCSAgICAgICAgCWlmICh4bWxodHRwLnJlYWR5U3RhdGU9PTQgJiYgdHlwZW9m IG9zX3VwZGF0ZUlmUmVsZXZhbnQgPT0gJ2Z1bmN0aW9uJykgewkgICAgICAgIAkJ CgkJICAgICAgICAJCW9zX3VwZGF0ZUlmUmVsZXZhbnQociwgcXVlcnksIHhtbGh0 dHAucmVzcG9uc2VUZXh0LCBwYXRoKTsKCSAgICAgICAgCQl9CgkgICAgICAJCX07 CgkgICAgIAkJeG1saHR0cC5zZW5kKG51bGwpOyAgICAgCQoJICAgICAJfSBjYXRj aCAoZSkgewoJCQkJaWYgKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSA9PSAibG9j YWxob3N0IikgewoJCQkJCWFsZXJ0KCJZb3VyIGJyb3dzZXIgYmxvY2tzIFhNTEh0 dHBSZXF1ZXN0IHRvICdsb2NhbGhvc3QnLCB0cnkgdXNpbmcgYSByZWFsIGhvc3Ru YW1lIGZvciBkZXZlbG9wbWVudC90ZXN0aW5nLiIpOwoJCQkJfQoJCQkJdGhyb3cg ZTsKCQkJfQoJCX0KCX0KfQoKLyoqIEluaXQgdGltZWQgdXBkYXRlIHZpYSBvc19k ZWxheWVkVXBkYXRlKCkgKi8KZnVuY3Rpb24gb3NfZmV0Y2hSZXN1bHRzKHIsIHF1 ZXJ5LCB0aW1lb3V0KXsKCWlmKHF1ZXJ5ID09ICIiKXsKCQlvc19oaWRlUmVzdWx0 cyhyKTsKCQlyZXR1cm47Cgl9IGVsc2UgaWYocXVlcnkgPT0gci5xdWVyeSkKCQly ZXR1cm47IC8vIG5vIGNoYW5nZQoJCglvc19pc19zdG9wcGVkID0gZmFsc2U7IC8v IG1ha2Ugc3VyZSB3ZSdyZSBydW5uaW5nCgkKCS8qIHZhciBjYWNoZUtleSA9IHdn REJuYW1lKyI6IitxdWVyeTsgCgl2YXIgY2FjaGVkID0gb3NfY2FjaGVbY2FjaGVL ZXldOwoJaWYoY2FjaGVkICE9IG51bGwpewoJCW9zX3VwZGF0ZVJlc3VsdHMocix3 Z0RCbmFtZSxxdWVyeSxjYWNoZWQpOwoJCXJldHVybjsKCX0gKi8KCQoJLy8gY2Fu Y2VsIGFueSBwZW5kaW5nIGZldGNoZXMKCWlmKG9zX3RpbWVyICE9IG51bGwgJiYg b3NfdGltZXIuaWQgIT0gbnVsbCkKCQljbGVhclRpbWVvdXQob3NfdGltZXIuaWQp OwoJLy8gc2NoZWR1bGUgZGVsYXllZCBmZXRjaGluZyBvZiByZXN1bHRzCQoJaWYo dGltZW91dCAhPSAwKXsKCQlvc190aW1lciA9IG5ldyBvc19UaW1lcihzZXRUaW1l b3V0KCJvc19kZWxheWVkRmV0Y2goKSIsdGltZW91dCkscixxdWVyeSk7Cgl9IGVs c2V7CQkKCQlvc190aW1lciA9IG5ldyBvc19UaW1lcihudWxsLHIscXVlcnkpOwoJ CW9zX2RlbGF5ZWRGZXRjaCgpOyAvLyBkbyBpdCBub3chCgl9Cgp9Ci8qKiBDaGFu Z2UgdGhlIGhpZ2hsaWdodGVkIHJvdyAoaS5lLiBzdWdnZXN0aW9uKSwgZnJvbSBw b3NpdGlvbiBjdXIgdG8gbmV4dCAqLwpmdW5jdGlvbiBvc19jaGFuZ2VIaWdobGln aHQociwgY3VyLCBuZXh0LCB1cGRhdGVTZWFyY2hCb3gpewoJaWYgKG5leHQgPj0g ci5yZXN1bHRDb3VudCkKCQluZXh0ID0gci5yZXN1bHRDb3VudC0xOwoJaWYgKG5l eHQgPCAtMSkKCQluZXh0ID0gLTE7ICAgCglyLnNlbGVjdGVkID0gbmV4dDsKICAg CWlmIChjdXIgPT0gbmV4dCkKICAgIAlyZXR1cm47IC8vIG5vdGhpbmcgdG8gZG8u CiAgICAKICAgIGlmKGN1ciA+PSAwKXsKICAgIAl2YXIgY3VyUm93ID0gZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoci5yZXN1bHRUYWJsZSArIGN1cik7CiAgICAJaWYo Y3VyUm93ICE9IG51bGwpCiAgICAJCWN1clJvdy5jbGFzc05hbWUgPSAib3Mtc3Vn Z2VzdC1yZXN1bHQiOwogICAgfQogICAgdmFyIG5ld1RleHQ7CiAgICBpZihuZXh0 ID49IDApewogICAgCXZhciBuZXh0Um93ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 SWQoci5yZXN1bHRUYWJsZSArIG5leHQpOwogICAgCWlmKG5leHRSb3cgIT0gbnVs bCkKICAgIAkJbmV4dFJvdy5jbGFzc05hbWUgPSBvc19IaWdobGlnaHRDbGFzcygp OwogICAgCW5ld1RleHQgPSByLnJlc3VsdHNbbmV4dF07CiAgICB9IGVsc2UKICAg IAluZXdUZXh0ID0gci5vcmlnaW5hbDsKICAgIAkKICAgIC8vIGFkanVzdCB0aGUg c2Nyb2xsYmFyIGlmIGFueQogICAgaWYoci5jb250YWluZXJDb3VudCA8IHIucmVz dWx0Q291bnQpewogICAgCXZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo ci5jb250YWluZXIpOwogICAgCXZhciB2U3RhcnQgPSBjLnNjcm9sbFRvcCAvIHIu Y29udGFpbmVyUm93OwogICAgCXZhciB2RW5kID0gdlN0YXJ0ICsgci5jb250YWlu ZXJDb3VudDsKICAgIAlpZihuZXh0IDwgdlN0YXJ0KQogICAgCQljLnNjcm9sbFRv cCA9IG5leHQgKiByLmNvbnRhaW5lclJvdzsKICAgIAllbHNlIGlmKG5leHQgPj0g dkVuZCkKICAgIAkJYy5zY3JvbGxUb3AgPSAobmV4dCAtIHIuY29udGFpbmVyQ291 bnQgKyAxKSAqIHIuY29udGFpbmVyUm93OwogICAgfQogICAgCQogICAgLy8gdXBk YXRlIHRoZSBjb250ZW50cyBvZiB0aGUgc2VhcmNoIGJveAogICAgaWYodXBkYXRl U2VhcmNoQm94KXsKICAgIAlvc191cGRhdGVTZWFyY2hRdWVyeShyLG5ld1RleHQp OwkKICAgIH0KfQoKZnVuY3Rpb24gb3NfSGlnaGxpZ2h0Q2xhc3MoKSB7Cgl2YXIg bWF0Y2ggPSBuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9BcHBsZVdlYktpdFwv KFxkKykvKTsKCWlmIChtYXRjaCkgewoJCXZhciB3ZWJLaXRWZXJzaW9uID0gcGFy c2VJbnQobWF0Y2hbMV0pOwoJCWlmICh3ZWJLaXRWZXJzaW9uIDwgNTIzKSB7CgkJ CS8vIENTUyBzeXN0ZW0gaGlnaGxpZ2h0IGNvbG9ycyBicm9rZW4gb24gb2xkIFNh ZmFyaQoJCQkvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/ aWQ9NjEyOQoJCQkvLyBTYWZhcmkgMy4wLjQsIDMuMSBrbm93biBvawoJCQlyZXR1 cm4gIm9zLXN1Z2dlc3QtcmVzdWx0LWhsLXdlYmtpdCI7CgkJfQoJfQoJcmV0dXJu ICJvcy1zdWdnZXN0LXJlc3VsdC1obCI7Cn0KCmZ1bmN0aW9uIG9zX3VwZGF0ZVNl YXJjaFF1ZXJ5KHIsbmV3VGV4dCl7Cglkb2N1bWVudC5nZXRFbGVtZW50QnlJZChy LnNlYXJjaGJveCkudmFsdWUgPSBuZXdUZXh0OwogICAgci5xdWVyeSA9IG5ld1Rl eHQ7Cn0KCi8qKiBGaW5kIGV2ZW50IHRhcmdldCAqLwpmdW5jdGlvbiBvc19nZXRU YXJnZXQoZSl7CglpZiAoIWUpIGUgPSB3aW5kb3cuZXZlbnQ7CglpZiAoZS50YXJn ZXQpIHJldHVybiBlLnRhcmdldDsKCWVsc2UgaWYgKGUuc3JjRWxlbWVudCkgcmV0 dXJuIGUuc3JjRWxlbWVudDsKCWVsc2UgcmV0dXJuIG51bGw7Cn0KCgoKLyoqKioq KioqKioqKioqKioqKioqCiAqICBLZXlib2FyZCBldmVudHMgCiAqKioqKioqKioq KioqKioqKioqKi8gCgovKiogRXZlbnQgaGFuZGxlciB0aGF0IHdpbGwgZmV0Y2gg cmVzdWx0cyBvbiBrZXl1cCAqLwpmdW5jdGlvbiBvc19ldmVudEtleXVwKGUpewoJ dmFyIHRhcmcgPSBvc19nZXRUYXJnZXQoZSk7Cgl2YXIgciA9IG9zX21hcFt0YXJn LmlkXTsKCWlmKHIgPT0gbnVsbCkKCQlyZXR1cm47IC8vIG5vdCBvdXIgZXZlbnQK CQkKCS8vIHNvbWUgYnJvd3NlcnMgd29uJ3QgZ2VuZXJhdGUga2V5cHJlc3NlZCBm b3IgYXJyb3cga2V5cywgY2F0Y2ggaXQgCglpZihvc19rZXlwcmVzc2VkX2NvdW50 ID09IDApewoJCW9zX3Byb2Nlc3NLZXkocixvc19jdXJfa2V5cHJlc3NlZCx0YXJn KTsKCX0KCXZhciBxdWVyeSA9IHRhcmcudmFsdWU7Cglvc19mZXRjaFJlc3VsdHMo cixxdWVyeSxvc19zZWFyY2hfdGltZW91dCk7Cn0KCi8qKiBjYXRjaCBhcnJvd3Mg dXAvZG93biBhbmQgZXNjYXBlIHRvIGhpZGUgdGhlIHN1Z2dlc3Rpb25zICovCmZ1 bmN0aW9uIG9zX3Byb2Nlc3NLZXkocixrZXlwcmVzc2VkLHRhcmcpewoJaWYgKGtl eXByZXNzZWQgPT0gNDApeyAvLyBBcnJvdyBEb3duCiAgICAJaWYgKHIudmlzaWJs ZSkgeyAgICAgIAkJCiAgICAgIAkJb3NfY2hhbmdlSGlnaGxpZ2h0KHIsIHIuc2Vs ZWN0ZWQsIHIuc2VsZWN0ZWQrMSwgdHJ1ZSk7ICAgICAgCQkKICAgIAl9IGVsc2Ug aWYob3NfdGltZXIgPT0gbnVsbCl7CiAgICAJCS8vIHVzZXIgd2FudHMgdG8gZ2V0 IHN1Z2dlc3Rpb25zIG5vdwogICAgCQlyLnF1ZXJ5ID0gIiI7CgkJCW9zX2ZldGNo UmVzdWx0cyhyLHRhcmcudmFsdWUsMCk7CiAgICAJfQogIAl9IGVsc2UgaWYgKGtl eXByZXNzZWQgPT0gMzgpeyAvLyBBcnJvdyBVcAogIAkJaWYgKHIudmlzaWJsZSl7 CiAgCQkJb3NfY2hhbmdlSGlnaGxpZ2h0KHIsIHIuc2VsZWN0ZWQsIHIuc2VsZWN0 ZWQtMSwgdHJ1ZSk7CiAgCQl9CiAgCX0gZWxzZSBpZihrZXlwcmVzc2VkID09IDI3 KXsgLy8gRXNjYXBlCiAgCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyLnNlYXJj aGJveCkudmFsdWUgPSByLm9yaWdpbmFsOwogIAkJci5xdWVyeSA9IHIub3JpZ2lu YWw7CiAgCQlvc19oaWRlUmVzdWx0cyhyKTsKICAJfSBlbHNlIGlmKHIucXVlcnkg IT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5zZWFyY2hib3gpLnZhbHVlKXsK ICAJCS8vIG9zX2hpZGVSZXN1bHRzKHIpOyAvLyBkb24ndCBzaG93IG9sZCBzdWdn ZXN0aW9ucwogIAl9Cn0KCi8qKiBXaGVuIGtleXMgaXMgaGVsZCBkb3duIHVzZSBh IHRpbWVyIHRvIG91dHB1dCByZWd1bGFyIGV2ZW50cyAqLwpmdW5jdGlvbiBvc19l dmVudEtleXByZXNzKGUpewkKCXZhciB0YXJnID0gb3NfZ2V0VGFyZ2V0KGUpOwoJ dmFyIHIgPSBvc19tYXBbdGFyZy5pZF07CglpZihyID09IG51bGwpCgkJcmV0dXJu OyAvLyBub3Qgb3VyIGV2ZW50CgkKCXZhciBrZXlwcmVzc2VkID0gb3NfY3VyX2tl eXByZXNzZWQ7CglpZihrZXlwcmVzc2VkID09IDM4IHx8IGtleXByZXNzZWQgPT0g NDApewoJCXZhciBkID0gbmV3IERhdGUoKQoJCXZhciBub3cgPSBkLmdldFRpbWUo KTsKCQlpZihub3cgLSBvc19sYXN0X2tleXByZXNzIDwgMTIwKXsKCQkJb3NfbGFz dF9rZXlwcmVzcyA9IG5vdzsKCQkJcmV0dXJuOwoJCX0KCX0KCQoJb3Nfa2V5cHJl c3NlZF9jb3VudCsrOwoJb3NfcHJvY2Vzc0tleShyLGtleXByZXNzZWQsdGFyZyk7 Cn0KCi8qKiBDYXRjaCB0aGUga2V5IGNvZGUgKEZpcmVmb3ggYnVnKSAgKi8KZnVu Y3Rpb24gb3NfZXZlbnRLZXlkb3duKGUpewoJaWYgKCFlKSBlID0gd2luZG93LmV2 ZW50OwoJdmFyIHRhcmcgPSBvc19nZXRUYXJnZXQoZSk7Cgl2YXIgciA9IG9zX21h cFt0YXJnLmlkXTsKCWlmKHIgPT0gbnVsbCkKCQlyZXR1cm47IC8vIG5vdCBvdXIg ZXZlbnQKCQkJCglvc19tb3VzZV9tb3ZlZCA9IGZhbHNlOwoKCW9zX2N1cl9rZXlw cmVzc2VkID0gKHdpbmRvdy5FdmVudCkgPyBlLndoaWNoIDogZS5rZXlDb2RlOwoJ b3NfbGFzdF9rZXlwcmVzcyA9IDA7Cglvc19rZXlwcmVzc2VkX2NvdW50ID0gMDsK fQoKLyoqIEV2ZW50OiBsb3NzIG9mIGZvY3VzIG9mIGlucHV0IGJveCAqLwpmdW5j dGlvbiBvc19ldmVudEJsdXIoZSl7CQoJdmFyIHRhcmcgPSBvc19nZXRUYXJnZXQo ZSk7Cgl2YXIgciA9IG9zX21hcFt0YXJnLmlkXTsKCWlmKHIgPT0gbnVsbCkKCQly ZXR1cm47IC8vIG5vdCBvdXIgZXZlbnQKCWlmKCFvc19tb3VzZV9wcmVzc2VkKQkK CQlvc19oaWRlUmVzdWx0cyhyKTsKfQoKLyoqIEV2ZW50OiBmb2N1cyAoY2F0Y2gg b25seSB3aGVuIHN0b3BwZWQpICovCmZ1bmN0aW9uIG9zX2V2ZW50Rm9jdXMoZSl7 CgkvLyBub3RoaW5nIGhhcHBlbnMgaGVyZT8KfQoKCgovKioqKioqKioqKioqKioq KioqKioKICogIE1vdXNlIGV2ZW50cyAKICoqKioqKioqKioqKioqKioqKioqLyAK Ci8qKiBNb3VzZSBvdmVyIHRoZSBjb250YWluZXIgKi8KZnVuY3Rpb24gb3NfZXZl bnRNb3VzZW92ZXIoc3JjSWQsIGUpewoJdmFyIHRhcmcgPSBvc19nZXRUYXJnZXQo ZSk7CQoJdmFyIHIgPSBvc19tYXBbc3JjSWRdOwoJaWYociA9PSBudWxsIHx8ICFv c19tb3VzZV9tb3ZlZCkKCQlyZXR1cm47IC8vIG5vdCBvdXIgZXZlbnQKCXZhciBu dW0gPSBvc19nZXROdW1iZXJTdWZmaXgodGFyZy5pZCk7CglpZihudW0gPj0gMCkK CQlvc19jaGFuZ2VIaWdobGlnaHQocixyLnNlbGVjdGVkLG51bSxmYWxzZSk7CgkJ CQkJCn0KCi8qIEdldCByb3cgd2hlcmUgdGhlIGV2ZW50IG9jY3VyZWQgKGZyb20g aXRzIGlkKSAqLwpmdW5jdGlvbiBvc19nZXROdW1iZXJTdWZmaXgoaWQpewoJdmFy IG51bSA9IGlkLnN1YnN0cmluZyhpZC5sZW5ndGgtMik7CglpZiggISAobnVtLmNo YXJBdCgwKSA+PSAnMCcgJiYgbnVtLmNoYXJBdCgwKSA8PSAnOScpICkKCQludW0g PSBudW0uc3Vic3RyaW5nKDEpOwoJaWYob3NfaXNOdW1iZXIobnVtKSkKCQlyZXR1 cm4gcGFyc2VJbnQobnVtKTsKCWVsc2UKCQlyZXR1cm4gLTE7Cn0KCi8qKiBTYXZl IG1vdXNlIG1vdmUgYXMgbGFzdCBhY3Rpb24gKi8KZnVuY3Rpb24gb3NfZXZlbnRN b3VzZW1vdmUoc3JjSWQsIGUpewoJb3NfbW91c2VfbW92ZWQgPSB0cnVlOwp9Cgov KiogTW91c2UgYnV0dG9uIGhlbGQgZG93biwgcmVnaXN0ZXIgcG9zc2libGUgY2xp Y2sgICovCmZ1bmN0aW9uIG9zX2V2ZW50TW91c2Vkb3duKHNyY0lkLCBlKXsKCXZh ciB0YXJnID0gb3NfZ2V0VGFyZ2V0KGUpOwoJdmFyIHIgPSBvc19tYXBbc3JjSWRd OwoJaWYociA9PSBudWxsKQoJCXJldHVybjsgLy8gbm90IG91ciBldmVudAoJdmFy IG51bSA9IG9zX2dldE51bWJlclN1ZmZpeCh0YXJnLmlkKTsKCQoJb3NfbW91c2Vf cHJlc3NlZCA9IHRydWU7CglpZihudW0gPj0gMCl7CgkJb3NfbW91c2VfbnVtID0g bnVtOwoJCS8vIG9zX3VwZGF0ZVNlYXJjaFF1ZXJ5KHIsci5yZXN1bHRzW251bV0p OwoJfQoJLy8ga2VlcCB0aGUgZm9jdXMgb24gdGhlIHNlYXJjaCBmaWVsZAoJZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoci5zZWFyY2hib3gpLmZvY3VzKCk7CgkKCXJl dHVybiBmYWxzZTsgLy8gcHJldmVudHMgc2VsZWN0aW9uCn0KCi8qKiBNb3VzZSBi dXR0b24gcmVsZWFzZWQsIGNoZWNrIGZvciBjbGljayBvbiBzb21lIHJvdyAqLwpm dW5jdGlvbiBvc19ldmVudE1vdXNldXAoc3JjSWQsIGUpewoJdmFyIHRhcmcgPSBv c19nZXRUYXJnZXQoZSk7Cgl2YXIgciA9IG9zX21hcFtzcmNJZF07CglpZihyID09 IG51bGwpCgkJcmV0dXJuOyAvLyBub3Qgb3VyIGV2ZW50Cgl2YXIgbnVtID0gb3Nf Z2V0TnVtYmVyU3VmZml4KHRhcmcuaWQpOwoJCQoJaWYobnVtID49IDAgJiYgb3Nf bW91c2VfbnVtID09IG51bSl7CgkJb3NfdXBkYXRlU2VhcmNoUXVlcnkocixyLnJl c3VsdHNbbnVtXSk7CgkJb3NfaGlkZVJlc3VsdHMocik7CgkJZG9jdW1lbnQuZ2V0 RWxlbWVudEJ5SWQoci5zZWFyY2hmb3JtKS5zdWJtaXQoKTsKCX0KCW9zX21vdXNl X3ByZXNzZWQgPSBmYWxzZTsKCS8vIGtlZXAgdGhlIGZvY3VzIG9uIHRoZSBzZWFy Y2ggZmllbGQKCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHIuc2VhcmNoYm94KS5m b2N1cygpOwp9CgovKiogQ2hlY2sgaWYgeCBpcyBhIHZhbGlkIGludGVnZXIgKi8K ZnVuY3Rpb24gb3NfaXNOdW1iZXIoeCl7CglpZih4ID09ICIiIHx8IGlzTmFOKHgp KQoJCXJldHVybiBmYWxzZTsKCWZvcih2YXIgaT0wO2k8eC5sZW5ndGg7aSsrKXsK CQl2YXIgYyA9IHguY2hhckF0KGkpOwoJCWlmKCAhIChjID49ICcwJyAmJiBjIDw9 ICc5JykgKQoJCQlyZXR1cm4gZmFsc2U7Cgl9CglyZXR1cm4gdHJ1ZTsKfQoKCi8q KiBXaGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCBoaWRlIGV2ZXJ5dGhpbmcsIGNh bmNlbCB1cGRhdGVzLi4uICovCmZ1bmN0aW9uIG9zX2V2ZW50T25zdWJtaXQoZSl7 Cgl2YXIgdGFyZyA9IG9zX2dldFRhcmdldChlKTsKCglvc19pc19zdG9wcGVkID0g dHJ1ZTsKCS8vIGtpbGwgdGltZWQgcmVxdWVzdHMKCWlmKG9zX3RpbWVyICE9IG51 bGwgJiYgb3NfdGltZXIuaWQgIT0gbnVsbCl7CgkJY2xlYXJUaW1lb3V0KG9zX3Rp bWVyLmlkKTsKCQlvc190aW1lciA9IG51bGw7Cgl9CgkvLyBIaWRlIGFsbCBzdWdn ZXN0aW9ucwoJZm9yKGk9MDtpPG9zX2F1dG9sb2FkX2lucHV0cy5sZW5ndGg7aSsr KXsKCQl2YXIgciA9IG9zX21hcFtvc19hdXRvbG9hZF9pbnB1dHNbaV1dOwoJCWlm KHIgIT0gbnVsbCl7CgkJCXZhciBiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo ci5zZWFyY2hmb3JtKTsKCQkJaWYoYiAhPSBudWxsICYmIGIgPT0gdGFyZyl7IAoJ CQkJLy8gc2V0IHF1ZXJ5IHZhbHVlIHNvIHRoZSBoYW5kbGVyIHdvbid0IHRyeSB0 byBmZXRjaCBhZGRpdGlvbmFsIHJlc3VsdHMKCQkJCXIucXVlcnkgPSBkb2N1bWVu dC5nZXRFbGVtZW50QnlJZChyLnNlYXJjaGJveCkudmFsdWU7CgkJCX0JCQkKCQkJ b3NfaGlkZVJlc3VsdHMocik7CgkJfQoJfQoJcmV0dXJuIHRydWU7Cn0KCmZ1bmN0 aW9uIG9zX2hvb2tFdmVudChlbGVtZW50LCBob29rTmFtZSwgaG9va0Z1bmN0KSB7 CglpZiAoZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKSB7CgkJZWxlbWVudC5hZGRF dmVudExpc3RlbmVyKGhvb2tOYW1lLCBob29rRnVuY3QsIGZhbHNlKTsKCX0gZWxz ZSBpZiAod2luZG93LmF0dGFjaEV2ZW50KSB7CgkJZWxlbWVudC5hdHRhY2hFdmVu dCgib24iICsgaG9va05hbWUsIGhvb2tGdW5jdCk7Cgl9Cn0KCi8qKiBJbml0IFJl c3VsdCBvYmplY3RzIGFuZCBldmVudCBoYW5kbGVycyAqLwpmdW5jdGlvbiBvc19p bml0SGFuZGxlcnMobmFtZSwgZm9ybW5hbWUsIGVsZW1lbnQpewoJdmFyIHIgPSBu ZXcgb3NfUmVzdWx0cyhuYW1lLCBmb3JtbmFtZSk7CQoJLy8gZXZlbnQgaGFuZGxl cgoJb3NfaG9va0V2ZW50KGVsZW1lbnQsICJrZXl1cCIsIGZ1bmN0aW9uKGV2ZW50 KSB7IG9zX2V2ZW50S2V5dXAoZXZlbnQpOyB9KTsKCW9zX2hvb2tFdmVudChlbGVt ZW50LCAia2V5ZG93biIsIGZ1bmN0aW9uKGV2ZW50KSB7IG9zX2V2ZW50S2V5ZG93 bihldmVudCk7IH0pOwoJb3NfaG9va0V2ZW50KGVsZW1lbnQsICJrZXlwcmVzcyIs IGZ1bmN0aW9uKGV2ZW50KSB7IG9zX2V2ZW50S2V5cHJlc3MoZXZlbnQpOyB9KTsK CW9zX2hvb2tFdmVudChlbGVtZW50LCAiYmx1ciIsIGZ1bmN0aW9uKGV2ZW50KSB7 IG9zX2V2ZW50Qmx1cihldmVudCk7IH0pOwoJb3NfaG9va0V2ZW50KGVsZW1lbnQs ICJmb2N1cyIsIGZ1bmN0aW9uKGV2ZW50KSB7IG9zX2V2ZW50Rm9jdXMoZXZlbnQp OyB9KTsKCWVsZW1lbnQuc2V0QXR0cmlidXRlKCJhdXRvY29tcGxldGUiLCJvZmYi KTsKCS8vIHN0b3BwaW5nIGhhbmRsZXIKCW9zX2hvb2tFdmVudChkb2N1bWVudC5n ZXRFbGVtZW50QnlJZChmb3JtbmFtZSksICJzdWJtaXQiLCBmdW5jdGlvbihldmVu dCl7IHJldHVybiBvc19ldmVudE9uc3VibWl0KGV2ZW50KTsgfSk7Cglvc19tYXBb bmFtZV0gPSByOyAKCS8vIHRvZ2dsZSBsaW5rCglpZihkb2N1bWVudC5nZXRFbGVt ZW50QnlJZChyLnRvZ2dsZSkgPT0gbnVsbCl7CgkJLy8gVE9ETzogZGlzYWJsZSB0 aGlzIHdoaWxlIHdlIGZpZ3VyZSBvdXQgYSB3YXkgZm9yIHRoaXMgdG8gd29yayBp biBhbGwgYnJvd3NlcnMgCgkJLyogaWYobmFtZT09J3NlYXJjaElucHV0Jyl7CgkJ CS8vIHNwZWNpYWwgY2FzZTogcGxhY2UgYWJvdmUgdGhlIG1haW4gc2VhcmNoIGJv eAoJCQl2YXIgdCA9IG9zX2NyZWF0ZVRvZ2dsZShyLCJvcy1zdWdnZXN0LXRvZ2ds ZSIpOwoJCQl2YXIgc2VhcmNoQm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk KCdzZWFyY2hCb2R5Jyk7CgkJCXZhciBmaXJzdCA9IHNlYXJjaEJvZHkucGFyZW50 Tm9kZS5maXJzdENoaWxkLm5leHRTaWJsaW5nLmFwcGVuZENoaWxkKHQpOwoJCX0g ZWxzZXsKCQkJLy8gZGVmYXVsdDogcGxhY2UgYmVsb3cgc2VhcmNoIGJveCB0byB0 aGUgcmlnaHQKCQkJdmFyIHQgPSBvc19jcmVhdGVUb2dnbGUociwib3Mtc3VnZ2Vz dC10b2dnbGUtZGVmIik7CgkJCXZhciB0b3AgPSBlbGVtZW50Lm9mZnNldFRvcCAr IGVsZW1lbnQub2Zmc2V0SGVpZ2h0OwoJCQl2YXIgbGVmdCA9IGVsZW1lbnQub2Zm c2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGg7CgkJCXQuc3R5bGUucG9zaXRp b24gPSAiYWJzb2x1dGUiOwoJCQl0LnN0eWxlLnRvcCA9IHRvcCArICJweCI7CgkJ CXQuc3R5bGUubGVmdCA9IGxlZnQgKyAicHgiOwoJCQllbGVtZW50LnBhcmVudE5v ZGUuYXBwZW5kQ2hpbGQodCk7CgkJCS8vIG9ubHkgbm93IHdpZHRoIGdldHMgY2Fs Y3VsYXRlZCwgc2hpZnQgcmlnaHQKCQkJbGVmdCAtPSB0Lm9mZnNldFdpZHRoOwoJ CQl0LnN0eWxlLmxlZnQgPSBsZWZ0ICsgInB4IjsKCQkJdC5zdHlsZS52aXNpYmls aXR5ID0gInZpc2libGUiOwoJCX0gKi8KCX0KCQp9CgovKiogUmV0dXJuIHRoZSBz cGFuIGVsZW1lbnQgdGhhdCBjb250YWlucyB0aGUgdG9nZ2xlIGxpbmsgKi8KZnVu Y3Rpb24gb3NfY3JlYXRlVG9nZ2xlKHIsY2xhc3NOYW1lKXsKCXZhciB0ID0gZG9j dW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwoJdC5jbGFzc05hbWUgPSBjbGFz c05hbWU7Cgl0LnNldEF0dHJpYnV0ZSgiaWQiLCByLnRvZ2dsZSk7Cgl2YXIgbGlu ayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKCWxpbmsuc2V0QXR0cmli dXRlKCJocmVmIiwiamF2YXNjcmlwdDp2b2lkKDApOyIpOwoJbGluay5vbmNsaWNr ID0gZnVuY3Rpb24oKXsgb3NfdG9nZ2xlKHIuc2VhcmNoYm94LHIuc2VhcmNoZm9y bSkgfTsKCXZhciBtc2cgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh3Z01XU3Vn Z2VzdE1lc3NhZ2VzWzBdKTsKCWxpbmsuYXBwZW5kQ2hpbGQobXNnKTsKCXQuYXBw ZW5kQ2hpbGQobGluayk7CglyZXR1cm4gdDsgCQp9CgovKiogQ2FsbCB3aGVuIHVz ZXIgY2xpY2tzIG9uIHNvbWUgb2YgdGhlIHRvZ2dsZSBsaW5rcyAqLwpmdW5jdGlv biBvc190b2dnbGUoaW5wdXRJZCxmb3JtTmFtZSl7CglyID0gb3NfbWFwW2lucHV0 SWRdOwoJdmFyIG1zZyA9ICcnOwoJaWYociA9PSBudWxsKXsKCQlvc19lbmFibGVT dWdnZXN0aW9uc09uKGlucHV0SWQsZm9ybU5hbWUpOwoJCXIgPSBvc19tYXBbaW5w dXRJZF07CgkJbXNnID0gd2dNV1N1Z2dlc3RNZXNzYWdlc1swXTsJCQoJfSBlbHNl ewoJCW9zX2Rpc2FibGVTdWdnZXN0aW9uc09uKGlucHV0SWQsZm9ybU5hbWUpOwoJ CW1zZyA9IHdnTVdTdWdnZXN0TWVzc2FnZXNbMV07Cgl9CgkvLyBjaGFuZ2UgbWVz c2FnZQoJdmFyIGxpbmsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyLnRvZ2ds ZSkuZmlyc3RDaGlsZDsKCWxpbmsucmVwbGFjZUNoaWxkKGRvY3VtZW50LmNyZWF0 ZVRleHROb2RlKG1zZyksbGluay5maXJzdENoaWxkKTsKfQoKLyoqIENhbGwgdGhp cyB0byBlbmFibGUgc3VnZ2VzdGlvbnMgb24gaW5wdXQgKGlkPWlucHV0SWQpLCBv biBhIGZvcm0gKG5hbWU9Zm9ybU5hbWUpICovCmZ1bmN0aW9uIG9zX2VuYWJsZVN1 Z2dlc3Rpb25zT24oaW5wdXRJZCwgZm9ybU5hbWUpewoJb3NfaW5pdEhhbmRsZXJz KCBpbnB1dElkLCBmb3JtTmFtZSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW5w dXRJZCkgKTsKfQoKLyoqIENhbGwgdGhpcyB0byBkaXNhYmxlIHN1Z2dlc3Rpb3Mg b24gaW5wdXQgYm94IChpZD1pbnB1dElkKSAqLwpmdW5jdGlvbiBvc19kaXNhYmxl U3VnZ2VzdGlvbnNPbihpbnB1dElkKXsKCXIgPSBvc19tYXBbaW5wdXRJZF07Cglp ZihyICE9IG51bGwpewoJCS8vIGNhbmNlbC9oaWRlIHJlc3VsdHMKCQlvc190aW1l ciA9IG51bGw7CgkJb3NfaGlkZVJlc3VsdHMocik7CgkJLy8gdHVybiBhdXRvY29t cGxldGUgb24gIQoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlucHV0SWQpLnNl dEF0dHJpYnV0ZSgiYXV0b2NvbXBsZXRlIiwib24iKTsKCQkvLyByZW1vdmUgZGVz Y3JpcHRvcgkKCQlvc19tYXBbaW5wdXRJZF0gPSBudWxsOwoJfQp9CgovKiogSW5p dGlhbGl6YXRpb24sIGNhbGwgdXBvbiBwYWdlIG9ubG9hZCAqLwpmdW5jdGlvbiBv c19NV1N1Z2dlc3RJbml0KCkgewoJZm9yKGk9MDtpPG9zX2F1dG9sb2FkX2lucHV0 cy5sZW5ndGg7aSsrKXsKCQl2YXIgaWQgPSBvc19hdXRvbG9hZF9pbnB1dHNbaV07 CgkJdmFyIGZvcm0gPSBvc19hdXRvbG9hZF9mb3Jtc1tpXTsKCQllbGVtZW50ID0g ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIGlkICk7CgkJaWYoZWxlbWVudCAhPSBu dWxsKQoJCQlvc19pbml0SGFuZGxlcnMoaWQsZm9ybSxlbGVtZW50KTsKCX0JCn0K Cmhvb2tFdmVudCgibG9hZCIsIG9zX01XU3VnZ2VzdEluaXQpOwo= ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=index.js Content-Type: text/javascript; charset=utf-8; name=index.js Content-Location: http://hu.wikipedia.org/w/index.php?title=-&action=raw&gen=js&useskin=monobook Content-Transfer-Encoding: Quoted-Printable /* generated javascript */ var skin =3D 'monobook'; var stylepath =3D '/skins-1.5'; /* MediaWiki:Common.js */ /* Any JavaScript here will be loaded for all users on every page load. = */ /** * Seg=C3=A9df=C3=BCggv=C3=A9nyek */ function addLoadEvent(func) { addOnloadHook(func); } var hasClass =3D (function () { var reCache =3D {}; return function (element, className) { return (reCache[className] ? reCache[className] : (reCache[classNa= me] =3D new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element= .className); }; })(); function getCookie(name) { var cookieText; var cookiePos =3D document.cookie.indexOf(name + '=3D'); if(cookiePos!=3D-1) { var results =3D document.cookie.match(name+'=3D(.*?)(;|$)'); if(results) cookieText =3D unescape(results[1]); return cookieText; } else return null; } function setCookie(name, text, expires) { if(text) { if(expires) { document.cookie =3D name + '=3D' + escape(text) + '; expires=3D= ' + expires.toUTCString() + '; path=3D/'; } else { document.cookie =3D name + '=3D' + escape(text) + '; path=3D/';= } } else { document.cookie =3D name + '=3D; expires=3DThu, 01-Jan-1970 00:00:= 01 GMT; path=3D/'; // delete cookie } } /** * Elrejthet=C5=91 =C3=BCzenetek */ function hideElement(e) { var name =3D this.id.slice(5); // 'hide-' elhagy=C3=A1sa var element =3D document.getElementById(name); var expires =3D new Date(); expires.setTime( expires.getTime() + (7*24*60*60*1000) ); // 1 h=C3=A9= t = setCookie('hide-' + name, '1', expires); element.style.display =3D "none"; this.style.display =3D "none"; return false; } function addHideButton(element) { var isHidden =3D getCookie('hide-' + element.id); if(isHidden) { element.style.display =3D "none"; } else { var button =3D document.createElement( "a" ); button.setAttribute( "id", "hide-" + element.id); button.setAttribute( "class", "hideButton" ); button.setAttribute( "href", "#" ); button.setAttribute( "title", "=C3=9Czenet elrejt=C3=A9se egy h=C3= =A9tre" ); button.onclick =3D hideElement; button.appendChild( document.createTextNode("[elrejt]") ); element.appendChild( button ); } } /** * WikiMiniAtlas */ importScriptURI( 'http://meta.wikimedia.org/w/index.php?title=3DMediaWik= i:Wikiminiatlas.js' + '&action=3Draw&ctype=3Dtext/javascript&dontcountme=3Ds&sma= xage=3D3600'); /** * Tart=C3=B3s blokkol=C3=A1s */ //Cookie based blocking offers greater control such as upload-only block= s, but can be more = //easily defeated. //For usage instructions please see [[commons:MediaWiki talk:Cookieblock= .js]]. function checkevilbit() { var ca =3D document.cookie.split(';'); for(var i=3D0;i < ca.length;i++) { var c =3D ca[i]; if(c.replace(/^\s+|\s+$/g,"") =3D=3D "evilbit=3DTrue") { document.getElementById("wpSave").disabled=3Dtrue; document.getElementsByName("wpUpload")[0].disabled=3Dtrue } = if(c =3D=3D "evilbit=3DUpload") { document.getElementsByName("wpUpload")[0].disabled=3Dtrue } = } } addOnloadHook(checkevilbit); /** * Nincslicenc sablon besz=C3=BAr=C3=A1sa felt=C3=B6lt=C3=A9skor */ // code to add a temporary license template if user leaves the license d= rop-down at = // its default setting and no template is present in the upload descript= ion // based on ForceSummary() function ForceLicenseInstall(){ // Check browser capabilities if(!document.forms || !document.getElementById) return; // User explicitly turned it off if (typeof noForceLicense !=3D 'undefined') return; if(!document.forms.upload) return; document.forms.upload.wpUpload.onclick =3D ForceLicense; }; function ForceLicense(){ if ((document.forms.upload.wpLicense.selectedIndex =3D=3D 0) && (!/\= {\{[^{}]+\}\}/.test(document.forms.upload.wpUploadDescription.value))) {= document.forms.upload.wpUploadDescription.value +=3D ("\n=3D=3DL= icenc=3D=3D\n{"+"{nincslicenc}"+"}"); } return true; }; addOnloadHook(ForceLicenseInstall); /* Enable selecting last item in license drop-down */ function licenseSelectorEnableLast() { var selector =3D document.getElementById("wpLicense"); if ((selector) && (selector.selectedIndex !=3D selector.options.length= - 1 )) { // call original handler licenseSelectorCheck(); } } function licenseSelectorEnableLastInstall() { var selector =3D document.getElementById("wpLicense"); if (selector) { selector.options[selector.options.length-1].style.disabled =3D 'fals= e'; selector.onchange =3D licenseSelectorEnableLast; } } addOnloadHook(licenseSelectorEnableLastInstall); /** * Leg=C3=B6rd=C3=BCl=C5=91 men=C3=BC =C3=A9s extra gombok az edittools-= ba */ if (document.URL.indexOf("action=3Dedit") > 0 || document.URL.indexOf("a= ction=3Dsubmit") > 0 || decodeURIComponent(document.URL).indexOf("Speci=C3= =A1lis:Felt=C3=B6lt=C3=A9s") > 0) { // Listbox to select edit tools function addCharSubsetMenu() { var specialchars =3D document.getElementById('specialchars'); if (specialchars) { var menu =3D document.createElement('select'); menu.style.display =3D 'inline'; menu.onchange =3D function() { chooseCharSubset(menu.options[menu.selectedIndex].value); } var specialCharacterTypes =3D new Object(); var l =3D document.getElementById('specialchars').getElementsByTag= Name('p'); for (var i =3D 0; i < l.length; i++) { var title =3D l[i].title; var opt =3D document.createElement('option'); opt.appendChild(document.createTextNode(title)); opt.value =3D i; specialCharacterTypes[title] =3D opt; } if(typeof(allowedSpecialCharacterTypes) =3D=3D 'undefined') { for (var i =3D 0; i < l.length; i++) { menu.appendChild(specialCharacterTypes[l[i].title]); } chooseCharSubset(0); } else { for(var i =3D 0; i < allowedSpecialCharacterTypes.length; i++) {= if(typeof(specialCharacterTypes[allowedSpecialCharacterTypes[i= ]]) !=3D 'undefined') { menu.appendChild(specialCharacterTypes[allowedSpecialCharact= erTypes[i]]); } } chooseCharSubset(specialCharacterTypes[allowedSpecialCharacterTy= pes[0]].value); } specialchars.insertBefore(menu, specialchars.firstChild); } } function chooseCharSubset(s) { var l =3D document.getElementById('specialchars').getElementsByTagNa= me('p'); for (var i =3D 0; i < l.length ; i++) { l[i].style.display =3D (i =3D=3D s) ? 'inline' : 'none'; } } // Extra buttons for the edit toolbar, based on en:User:MarkS/extraedi= tbuttons.js function InsertButtonsToToolBar() { //Redirect mwCustomEditButtons[mwCustomEditButtons.length] =3D { "imageFile": "http://upload.wikimedia.org/wikipedia/en/c/c8/Button= _redirect.png", "speedTip": "=C3=81tir=C3=A1ny=C3=ADt=C3=A1s", "tagOpen": "#=C3=81TIR=C3=81NY=C3=8DT=C3=81S [[", "tagClose": "]]", "sampleText": "C=C3=A9l" } //Strike-Out Button mwCustomEditButtons[mwCustomEditButtons.length] =3D { "imageFile": "http://upload.wikimedia.org/wikipedia/en/c/c9/Button= _strike.png", "speedTip": "=C3=81th=C3=BAzott sz=C3=B6veg", "tagOpen": "", "tagClose": "", "sampleText": "=C3=81th=C3=BAzott sz=C3=B6veg" } //Small Text mwCustomEditButtons[mwCustomEditButtons.length] =3D { "imageFile": "http://upload.wikimedia.org/wikipedia/commons/1/17/B= utton_small_2.png", "speedTip": "Apr=C3=B3bet=C5=B1s sz=C3=B6veg", "tagOpen": "", "tagClose": "", "sampleText": "Apr=C3=B3bet=C5=B1s sz=C3=B6veg" } //Code mwCustomEditButtons[mwCustomEditButtons.length] =3D { "imageFile": "http://upload.wikimedia.org/wikipedia/commons/3/30/T= t_icon.png", "speedTip": "=C3=8Dr=C3=B3g=C3=A9p-sz=C3=B6veg", "tagOpen": "", "tagClose": "", "sampleText": "Fix sz=C3=A9less=C3=A9g=C5=B1 sz=C3=B6veg" } //Reference link button mwCustomEditButtons[mwCustomEditButtons.length] =3D { "imageFile": "http://upload.wikimedia.org/wikipedia/commons/c/c4/B= utton_ref.png", "speedTip": "Forr=C3=A1shivatkoz=C3=A1s", "tagOpen": "", "tagClose": "", "sampleText": "Hivatkoz=C3=A1s sz=C3=B6veg=C3=A9nek helye" } //Reference button mwCustomEditButtons[mwCustomEditButtons.length] =3D { "imageFile": "http://upload.wikimedia.org/wikipedia/commons/f/fe/B= utton_refs.png", "speedTip": "Forr=C3=A1shivatkoz=C3=A1s l=C3=A1br=C3=A9sz", "tagOpen": "", "tagClose": "", "sampleText": "" } // Template button mwCustomEditButtons[mwCustomEditButtons.length] =3D { "imageFile": "http://upload.wikimedia.org/wikipedia/commons/e/eb/B= utton_plantilla.png", "speedTip": "Sablon", "tagOpen": "{{", "tagClose": "}}", "sampleText": "p=C3=A9lda sablon" } if(mwEditButtons[9] && mwEditButtons[9].imageId =3D=3D 'mw-editbutto= n-signature') mwEditButtons[9].tagOpen =3D "=E2=80=93 ~~" + "~~"; } addOnloadHook(addCharSubsetMenu); addOnloadHook(InsertButtonsToToolBar); } /** * =C3=89kezetes karakterek bejelentkez=C3=A9shez */ function insertText(box, string) { box.focus(); if (document.selection && document.selection.createRange) { // IE/Oper= a var range =3D document.selection.createRange(); range.text =3D string; } else if (box.selectionStart || box.selectionStart =3D=3D '0') { // M= ozilla var startPos =3D box.selectionStart; var endPos =3D box.selectionEnd; box.value =3D box.value.substring(0, startPos) + string + box.value.= substring(endPos, box.value.length); } } if (window['wgCanonicalSpecialPageName'] && wgCanonicalSpecialPageName =3D= =3D "Userlogin") { function installLoginChars() { window['loginbox'] =3D document.getElementById('wpName1'); var loginchars =3D document.getElementById('loginchars'); if (loginchars) { var hunchars =3D "=C3=A1=C3=A9=C3=AD=C3=B3=C3=B6=C5=91=C3=BA=C3=BC= =C5=B1=C3=81=C3=89=C3=8D=C3=93=C3=96=C5=90=C3=9A=C3=9C=C5=B0".split('');= for (var i =3D 0, str =3D ''; i < hunchars.length; i++) { str +=3D '' + hunchars[i] + ' '; } = loginchars.innerHTML +=3D str; loginchars.style.display =3D "block"; } } addOnloadHook(installLoginChars); } /** * Navig=C3=A1ci=C3=B3s kapcsol=C3=B3 (kinyit/becsuk) */ // =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D // BEGIN Dynamic Navigation Bars (experimantal) = // set up the words in your language var NavigationBarHide =3D '=E2=96=B2 becsuk'; var NavigationBarShow =3D '=E2=96=BC kinyit'; = // set up max count of Navigation Bars on page, // if there are more, all will be hidden // NavigationBarShowDefault =3D 0; // all bars will be hidden // NavigationBarShowDefault =3D 1; // on pages with more than 1 bar all= bars will be hidden var NavigationBarShowDefault =3D 0; = = // shows and hides content and picture (if available) of navigation bar= s // Parameters: // indexNavigationBar: the index of navigation bar to be toggled function toggleNavigationBar(indexNavigationBar) { var NavToggle =3D document.getElementById("NavToggle" + indexNavigat= ionBar); var NavFrame =3D document.getElementById("NavFrame" + indexNavigatio= nBar); = if (!NavFrame || !NavToggle) { return false; } = // if shown now if (NavToggle.firstChild.data =3D=3D NavigationBarHide) { for ( var NavChild =3D NavFrame.firstChild; NavChild !=3D null; NavChild =3D NavChild.nextSibling ) { if (NavChild.className =3D=3D 'NavPic') { NavChild.style.display =3D 'none'; } if (NavChild.className =3D=3D 'NavContent') { NavChild.style.display =3D 'none'; } } NavToggle.firstChild.data =3D NavigationBarShow; = // if hidden now } else if (NavToggle.firstChild.data =3D=3D NavigationBarShow) { for ( var NavChild =3D NavFrame.firstChild; NavChild !=3D null; NavChild =3D NavChild.nextSibling ) { if (NavChild.className =3D=3D 'NavPic') { NavChild.style.display =3D 'block'; } if (NavChild.className =3D=3D 'NavContent') { NavChild.style.display =3D 'block'; } } NavToggle.firstChild.data =3D NavigationBarHide; } } = // adds show/hide-button to navigation bars function createNavigationBarToggleButton() { var indexNavigationBar =3D 0; // iterate over all < div >-elements for( var i=3D0; = NavFrame =3D document.getElementsByTagName("div")[i]; = i++ ) { // if found a navigation bar if (NavFrame.className =3D=3D "NavFrame") { = indexNavigationBar++; var NavToggle =3D document.createElement("a"); NavToggle.className =3D 'NavToggle'; NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBa= r); NavToggle.setAttribute('href', 'javascript:toggleNavigationB= ar(' + indexNavigationBar + ');'); = var NavToggleText =3D document.createTextNode(NavigationBarH= ide); NavToggle.appendChild(NavToggleText); // Find the NavHead and attach the toggle link (Must be this= complicated because Moz's firstChild handling is borked) for( var j=3D0; = j < NavFrame.childNodes.length; = j++ ) { if (NavFrame.childNodes[j].className =3D=3D "NavHead") { NavFrame.childNodes[j].appendChild(NavToggle); } } NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar)= ; } } // if more Navigation Bars found than Default: hide all if (NavigationBarShowDefault < indexNavigationBar) { for( var i=3D1; = i<=3DindexNavigationBar; = i++ ) { toggleNavigationBar(i); } } = } = if (!fCreateNavigationBarToggleButton) addLoadEvent(createNavigationBar= ToggleButton); var fCreateNavigationBarToggleButton =3D 1; = // END Dynamic Navigation Bars // =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D /* =3D=3D=3D Table (collapsible) =3D=3D=3D */ /** Collapsible tables *************************************************= ******** * * Description: Allows tables to be collapsed, showing only the header.= See * Wikipedia:NavFrame. * Maintainers: User:R. Koot */ var autoCollapse =3D 2; var collapseCaption =3D "=E2=96=B2 becsuk"; var expandCaption =3D "=E2=96=BC kinyit"; // browser detection magic; Gecko < 1.8 does not know visibility:collaps= e var gecko_rvi =3D navigator.userAgent.toLowerCase().indexOf('rv:'); var gecko_rv =3D (gecko_rvi =3D=3D -1) ? 0 : parseFloat(navigator.userAg= ent.toLowerCase().substring(gecko_rvi+3, gecko_rvi+6)); function collapseTable( tableIndex ) { var Button =3D document.getElementById( "collapseButton" + tableInde= x ); var Table =3D document.getElementById( "collapsibleTable" + tableInd= ex ); if ( !Table || !Button ) { return false; } var Rows =3D Table.getElementsByTagName( "tr" ); = if ( Button.firstChild.data =3D=3D collapseCaption ) { if(is_gecko && gecko_rv >=3D 1.8) { for ( var i =3D 1; i < Rows.length; i++ ) { Rows[i].style.visibility =3D 'collapse'; Rows[i].className +=3D ' row-collapsed'; } } else { for ( var i =3D 1; i < Rows.length; i++ ) { Rows[i].style.display =3D 'none'; } } Button.firstChild.data =3D expandCaption; } else { if(is_gecko && gecko_rv >=3D 1.8) { for ( var i =3D 1; i < Rows.length; i++ ) { Rows[i].style.visibility =3D 'visible'; Rows[i].className.replace(/\s*\brow-collapsed\b/g, ''); } } else { for ( var i =3D 1; i < Rows.length; i++ ) { Rows[i].style.display =3D Rows[0].style.display; } } Button.firstChild.data =3D collapseCaption; } } function createCollapseButtons() { var tableIndex =3D 0; var NavigationBoxes =3D new Object(); var Tables =3D document.getElementsByTagName( "table" ); for ( var i =3D 0; i < Tables.length; i++ ) { if ( hasClass( Tables[i], "collapsible" ) ) { NavigationBoxes[ tableIndex ] =3D Tables[i]; Tables[i].setAttribute( "id", "collapsibleTable" + tableInde= x ); var Button =3D document.createElement( "span" ); var ButtonLink =3D document.createElement( "a" ); var ButtonText =3D document.createTextNode( collapseCaption = ); Button.style.styleFloat =3D "right"; Button.style.cssFloat =3D "right"; Button.style.fontWeight =3D "normal"; Button.style.textAlign =3D "right"; Button.style.width =3D "6em"; ButtonLink.setAttribute( "id", "collapseButton" + tableIndex= ); ButtonLink.setAttribute( "href", "javascript:collapseTable("= + tableIndex + ");" ); ButtonLink.appendChild( ButtonText ); Button.appendChild( ButtonLink ); var Header =3D Tables[i].getElementsByTagName( "tr" )[0].get= ElementsByTagName( "th" )[0]; /* only add button and increment count if there is a header = row to work with */ if (Header) { Header.insertBefore( Button, Header.childNodes[0] ); tableIndex++; } } } for ( var i =3D 0; i < tableIndex; i++ ) { if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex= >=3D autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) )= { collapseTable( i ); } } } if (!fCreateCollapseButtons) addOnloadHook( createCollapseButtons ); var fCreateCollapseButtons =3D 1; /** * C=C3=ADmek jav=C3=ADt=C3=A1sa */ // For pages that have something like Template:Lowercase, replace the ti= tle, but only if it is cut-and-pasteable as a valid wikilink. // (for instance iPod's title is updated. But C# is not an equivalent // wikilink, so C Sharp doesn't have its main title changed) // Likewise for users who have selected the U.K. date format ("1 March")= the = // titles of day-of-the-year articles will appear in that style. Users w= ith any // other date setting are not affected. // // The function looks for a banner like this: = //
... title= ...
// An element with id=3DDisableRealTitle disables the function. // var disableRealTitle =3D 0; // users can set disableRealTitle =3D 1 loca= lly to disable. if (wgIsArticle) { // don't display the RealTitle when editing, since it= is apparently inconsistent (doesn't show when editing sections, doesn't= show when not previewing) function fixArticleTitle() { var realTitleBanner =3D document.getElementById("RealTitleBanner"); var realTitle =3D document.getElementById("RealTitle"); if (realTitleBanner && realTitle && !document.getElementById("Disabl= eRealTitle") && !disableRealTitle) { var realTitleHTML =3D realTitle.innerHTML; realTitleText =3D pickUpText(realTitle); = var isPasteable =3D 0; //var containsHTML =3D //gi, "") ); // contains HTML that will be ignored whe= n cut-n-pasted as a wikilink // calculate whether the title is pasteable var verifyTitle =3D realTitleText.replace(/^ +/, ""); // tri= m left spaces verifyTitle =3D verifyTitle.charAt(0).toUpperCase() + verifyTitle.= substring(1, verifyTitle.length); // uppercase first character // if the namespace prefix is there, remove it on our verification= copy. If it isn't there, add it to the original realValue copy. if (wgNamespaceNumber !=3D 0) { var localNamespace =3D wgPageName.split(':')[0]; if (wgCanonicalNamespace =3D=3D verifyTitle.substr(0, wgCanonica= lNamespace.length).replace(/ /g, "_") && verifyTitle.charAt(wgCanonicalN= amespace.length) =3D=3D ":") { verifyTitle =3D verifyTitle.substr(wgCanonicalNamespace.length= + 1); } else if (localNamespace =3D=3D verifyTitle.substr(0, localName= space.length).replace(/ /g, "_") && verifyTitle.charAt(localNamespace.le= ngth) =3D=3D ":") { verifyTitle =3D verifyTitle.substr(localNamespace.length + 1);= } else { realTitleText =3D localNamespace.replace(/_/g, " ") + ":" + re= alTitleText; realTitleHTML =3D localNamespace.replace(/_/g, " ") + ":" + re= alTitleHTML; } } // verify whether wgTitle matches verifyTitle =3D verifyTitle.replace(/[\s_]+/g, " "); // under= scores and multiple spaces to single spaces verifyTitle =3D verifyTitle.replace(/^\s+/, "").replace(/\s+$/, ""= ); // trim left and right spaces verifyTitle =3D verifyTitle.charAt(0).toUpperCase() + verifyTitle.= substring(1, verifyTitle.length); // uppercase first character if (verifyTitle =3D=3D wgTitle) isPasteable =3D 1; var h1 =3D document.getElementsByTagName("h1")[0]; if (h1 && isPasteable) { h1.innerHTML =3D containsTooMuchHTML ? realTitleText : realTitle= HTML; if (!containsTooMuchHTML) realTitleBanner.style.display =3D "none"; } document.title =3D realTitleText + " - Wikip=C3=A9dia"; } } = // similar to innerHTML, but only returns the text portions of the ins= ides, excludes HTML function pickUpText(aParentElement) { var str =3D ""; = function pickUpTextInternal(aElement) { var child =3D aElement.firstChild; while (child) { if (child.nodeType =3D=3D 1) // ELEMENT_NODE = pickUpTextInternal(child); else if (child.nodeType =3D=3D 3) // TEXT_NODE str +=3D child.nodeValue; = child =3D child.nextSibling; } } = pickUpTextInternal(aParentElement); return str; } addOnloadHook(fixArticleTitle); } /** * IRC login */ // this script looks for the element with id "irclogon", and replaces it= s contents = // with a login form that redirects to the wikizine CGI:IRC gateway if(document.getElementById && !document.location.href.match("action=3Ded= it") && !document.location.href.match("action=3Dsubmit")) { function loadLoginForm() { var box =3D document.getElementById("irclogin"); if(box ) { box.innerHTML =3D '
'; } } = function nickify(s) { if(s =3D=3D null) { return "anon" + Math.floor(Math.random()*100); } s =3D s.toLowerCase(); s =3D s.replace(" ", "_"); s =3D s.replace(/=C3=A1/g, 'a'); s =3D s.replace(/=C3=A9/g, 'e'); s =3D s.replace(/=C3=AD/g, 'i'); s =3D s.replace(/[=C3=B3=C5=91]/g, 'o'); s =3D s.replace(/[=C3=BA=C5=B1]/g, 'u'); s =3D s.replace(/[^a-z0-9_-]/g, ''); return s; } = function setJs() { if(navigator.product =3D=3D 'Gecko') { document.loginform["interface"].value =3D 'mozilla'; } else if(window.opera && document.childNodes) { document.loginform["interface"].value =3D 'opera7'; } else if(navigator.appName =3D=3D 'Microsoft Internet Explorer' && navigator.userAgent.indexOf("Mac_PowerPC") > 0) { document.loginform["interface"].value =3D 'konqueror'; } else if(navigator.appName =3D=3D 'Microsoft Internet Explorer') { document.loginform["interface"].value =3D 'ie'; } else if(navigator.appName =3D=3D 'Konqueror') { document.loginform["interface"].value =3D 'konqueror'; } else if(window.opera) { document.loginform["interface"].value =3D 'opera'; } } = addOnloadHook(loadLoginForm); } /** * Inform=C3=A1ci=C3=B3s sablon beilleszt=C3=A9se a sz=C3=B6vegdobozba f= elt=C3=B6lt=C3=A9skor */ function insertInfoTemplate() { var editbox =3D document.getElementById('wpUploadDescription'); if (!editbox) return; if (editbox.value !=3D '') return; editbox.rows =3D 9; // make it large enough to fit the template editbox.value =3D "{{Inform=C3=A1ci=C3=B3\n" + "| le=C3=ADr=C3=A1s =3D \n" + "| forr=C3=A1s =3D \n" + "| d=C3=A1tum =3D \n" + "| helysz=C3=ADn =3D \n" + "| szerz=C5=91 =3D \n" + "| enged=C3=A9ly =3D \n" + "| m=C3=A1s v=C3=A1ltozatok =3D \n" + "}}"; } addOnloadHook(insertInfoTemplate); /** * =C3=96sszefoglal=C3=B3ra figyelmeztet=C5=91 prompt anonimoknak */ function IsLoggedIn() { // If there is no login button, assume we're logged in return document.getElementById('pt-login') =3D=3D null; } // some code to check whether I've added an Edit Summary // somewhat copied from [[User:ABCD/monobook.js]] function ForceSummaryInstall(){ // Check browser capabilities if(!document.forms || !document.getElementById) return; // User explicitly turned it off if (typeof noForceSummary !=3D 'undefined') return; // User is logged in if(IsLoggedIn()) return; if(!/&action=3Dedit/.test(window.location.href) && !/&action=3Dsubmi= t/.test(window.location.href)) return; if(/§ion=3Dnew/.test(window.location.href)) return; if(!document.forms.editform) return; document.forms.editform.wpSave.onclick =3D ForceSummary; }; function ForceSummary(){ var summary =3D document.forms.editform.wpSummary; if(!summary.value.replace(/^(\/\*.*\*\/)? *(.*) *$/,'$2')){ var r =3D prompt('K=C3=A9r=C3=BCnk, =C3=ADrj egy r=C3=B6vid szerke= szt=C3=A9si\n =C3=B6sszefoglal=C3=B3t a v=C3=A1ltoztat=C3=A1saidr=C3=B3l= :', summary.value); if(r =3D=3D null) return false; summary.value =3D r; } return true; }; addOnloadHook(ForceSummaryInstall); /** * V=C3=A1ltoztathat=C3=B3 rendez=C3=A9s=C5=B1 t=C3=A1bl=C3=A1zatok: =C3= =A9kezetes bet=C5=B1k, magyar =C3=ADr=C3=A1sm=C3=B3d=C3=BA sz=C3=A1mok r= endez=C3=A9se */ function strip_basic_latin_accents(s) { s =3D s.replace(/[=C3=A1=C3=A4=C3=A2=C3=A3=C3=A5=C3=A0=C4=81=C4=83=C4= =85]/g, 'a'); s =3D s.replace(/[=C3=A7=C4=87=C4=89=C4=8B=C4=8D]/g, 'c'); s =3D s.replace(/[=C4=8F=C4=91]/g, 'd'); s =3D s.replace(/[=C3=A8=C3=A9=C3=AA=C3=AB=C4=93=C4=95=C4=97=C4=99=C4= =9B]/g, 'e'); s =3D s.replace(/[=C4=9D=C4=9F=C4=A1=C4=A3]/g, 'g'); s =3D s.replace(/[=C4=A5=C4=A7]/g, 'h'); s =3D s.replace(/[=C3=AC=C3=AD=C3=AE=C3=AF=C4=A9=C4=AB=C4=AD=C4=AF=C4= =B1]/g, 'i'); s =3D s.replace(/[=C4=B5]/g, 'j'); s =3D s.replace(/[=C4=B7=C4=B8]/g, 'k'); s =3D s.replace(/[=C4=BA=C4=BC=C4=BE=C5=80=C5=82]/g, 'l'); s =3D s.replace(/[=C3=B1=C5=84=C5=86=C5=88=C5=89=C5=8B]/g, 'n'); s =3D s.replace(/[=C3=B2=C3=B3=C3=B4=C3=B5=C3=B6=C3=B8=C5=8D=C5=8F=C5= =91]/g, 'o'); s =3D s.replace(/[=C5=95=C5=97=C5=99]/g, 'r'); s =3D s.replace(/[=C5=9B=C5=9D=C5=9F=C5=A1]/g, 's'); s =3D s.replace(/[=C5=A3=C5=A5=C5=A7]/g, 't'); s =3D s.replace(/[=C3=B9=C3=BA=C3=BB=C3=BC=C5=A9=C5=AB=C5=AD=C5=AF=C5= =B1=C5=B3]/g, 'u'); s =3D s.replace(/[=C5=B5]/g, 'w'); s =3D s.replace(/[=C3=BD=C3=BF=C5=B7]/g, 'y'); s =3D s.replace(/[=C5=BA=C5=BC=C5=BE]/g, 'z'); s =3D s.replace(/[=C3=A6]/g, 'ae'); s =3D s.replace(/[=C4=B3]/g, 'ij'); s =3D s.replace(/[=C5=93]/g, 'oe'); return s; } function ts_sort_caseinsensitive(a,b) { var aa =3D strip_basic_latin_accents(a[1].toLowerCase()); var bb =3D strip_basic_latin_accents(b[1].toLowerCase()); return (aa < bb ? -1 : aa > bb ? 1 : a[2] - b[2]); } function ts_parseFloat(num) { if (!num) return 0; num =3D num.replace(/[\s\xa0.]/g, ''); /* ezreseket elv=C3=A1laszt=C3=B3= whitespace, pont ki */ num =3D num.replace(/,/, '.'); /* Tizedesvessz=C5=91 -> tizedespont */= num =3D parseFloat(num); return (isNaN(num) ? 0 : num); } /* Eredeti v=C3=A1ltozat: http://svn.wikimedia.org/viewvc/mediawiki/trun= k/phase3/skins/common/wikibits.js */ /* Ha az eredeti v=C3=A1ltozat frissebb az ittenin=C3=A9l, friss=C3=ADte= ni kell a helyi v=C3=A1ltoztat=C3=A1sok megtart=C3=A1s=C3=A1val */ function ts_resortTable(lnk) { var span =3D lnk.getElementsByTagName("span")[0]; var td =3D lnk.parentNode; var tr =3D td.parentNode; var column =3D td.cellIndex; var table =3D tr.parentNode; while (table && !(table.tagName && table.tagName.toLowerCase() =3D=3D= "table")) { table =3D table.parentNode; } if (!table) { return; } if (table.rows.length <=3D 1) { return; } var rowStart =3D table.tHead && table.tHead.rows.length > 0 ? 0 : 1;= var itm =3D ""; for (var i =3D rowStart; i < table.rows.length; i++) { if (table.rows[i].cells.length > column) { itm =3D ts_getInnerText(table.rows[i].cells[column]); itm =3D itm.replace(/^[\s\xa0]+/, "").replace(/[\s\xa0]+$/, = ""); if (itm !=3D "") { break; } } } sortfn =3D ts_sort_caseinsensitive; if (itm.match(/^\d\d[\/. -][a-zA-Z]{3}[\/. -]\d\d\d\d$/)) { sortfn =3D ts_sort_date; } if (itm.match(/^\d\d[\/.-]\d\d[\/.-]\d\d\d\d$/)) { sortfn =3D ts_sort_date; } if (itm.match(/^\d\d[\/.-]\d\d[\/.-]\d\d$/)) { sortfn =3D ts_sort_date; } if (itm.match(/^[\u00a3$\u20ac]/)) { sortfn =3D ts_sort_currency; } if (itm.match(/^[\d\s\xa0.,]+\%?$/)) { /* Ebben a sorban van k=C3=BC= l=C3=B6nbs=C3=A9g a huwikin */ sortfn =3D ts_sort_numeric; } var reverse =3D span.getAttribute("sortdir") =3D=3D "down"; var newRows =3D new Array; for (var j =3D rowStart; j < table.rows.length; j++) { var row =3D table.rows[j]; var keyText =3D ts_getInnerText(row.cells[column]); var oldIndex =3D reverse ? - j : j; newRows[newRows.length] =3D new Array(row, keyText, oldIndex); } newRows.sort(sortfn); var arrowHTML; if (reverse) { arrowHTML =3D "3D\"↓\"/"; newRows.reverse(); span.setAttribute("sortdir", "up"); } else { arrowHTML =3D ""; span.setAttribute("sortdir", "down"); } for (var i =3D 0; i < newRows.length; i++) { if ((" " + newRows[i][0].className + " ").indexOf(" sortbottom "= ) =3D=3D -1) { table.tBodies[0].appendChild(newRows[i][0]); } } for (var i =3D 0; i < newRows.length; i++) { if ((" " + newRows[i][0].className + " ").indexOf(" sortbottom "= ) !=3D -1) { table.tBodies[0].appendChild(newRows[i][0]); } } var spans =3D getElementsByClassName(tr, "span", "sortarrow"); for (var i =3D 0; i < spans.length; i++) { spans[i].innerHTML =3D "3D\"↓\"/"; } span.innerHTML =3D arrowHTML; ts_alternate(table); } /** * A Sablon:K=C3=A9pdia m=C5=B1k=C3=B6d=C3=A9s=C3=A9hez sz=C3=BCks=C3=A9= ges k=C3=B3d */ function kepValtas(group, remindex, shwindex) { document.getElementById("kepDiaCs"+group+"Kep"+remindex).style.display= =3D"none"; document.getElementById("kepDiaCs"+group+"Kep"+shwindex).style.display= =3D"inline"; } = function kepDia(){ if (document.URL.match(/printable/g)) return; var bc=3Ddocument.getElementById("bodyContent"); if( !bc ) bc =3D document.getElementById("mw_contentholder"); if( !bc ) return; var divs=3Dbc.getElementsByTagName("td"); var i =3D 0, j =3D 0; var units, search; var currentimage; var UnitNode; for (i =3D 0; i < divs.length ; i++) { if (divs[i].className !=3D "kepDia") continue; UnitNode=3Dundefined; search=3Ddivs[i].getElementsByTagName("div"); for (j =3D 0; j < search.length ; j++) { if (search[j].className !=3D "kepDiaKepek") continue; UnitNode=3Dsearch[j]; break; } if (UnitNode=3D=3Dundefined) continue; units=3DArray(); for (j =3D 0 ; j < UnitNode.childNodes.length ; j++ ) { var temp =3D UnitNode.childNodes[j]; if (temp.className=3D=3D"center") units.push(temp); } for (j =3D 0 ; j < units.length ; j++) { currentimage=3Dunits[j]; currentimage.id=3D"kepDiaCs"+i+"Kep"+j; var imghead =3D document.createElement("div"); var leftlink; var rightlink; if (j !=3D 0) { leftlink =3D document.createElement("a"); leftlink.href =3D "javascript:kepValtas("+i+","+j+","+(j-1)+");"= ; leftlink.innerHTML=3D"=E2=97=80"; } else { leftlink =3D document.createElement("span"); leftlink.innerHTML=3D" "; } if (j !=3D units.length - 1) { rightlink =3D document.createElement("a"); rightlink.href =3D "javascript:kepValtas("+i+","+j+","+(j+1)+");= "; rightlink.innerHTML=3D"=E2=96=B6"; } else { rightlink =3D document.createElement("span"); rightlink.innerHTML=3D" "; } var comment =3D document.createElement("tt"); comment.innerHTML =3D "("+ (j+1) + "/" + units.length + ")"; with(imghead) { style.fontSize=3D"110%"; style.fontweight=3D"bold"; appendChild(leftlink); appendChild(comment); appendChild(rightlink); } currentimage.insertBefore(imghead,currentimage.childNodes[0]); if (j !=3D 0) currentimage.style.display=3D"none"; } } } = addOnloadHook(kepDia); /* * Kn=C3=A1vom, azaz a k=C3=ADnai nevek =C3=A1t=C3=ADr=C3=A1s=C3=A1t v=C3= =A1ltogat=C3=B3 mechanika. * * [[Sablon:K=C3=ADnai]] stb. */ importScript('User:Chery/k=C3=ADnai.js'); /* * K=C3=A9thas=C3=A1bos forr=C3=A1slista kikapcsol=C3=A1sa, ha <4 forr=C3= =A1s van */ if (is_gecko || webkit_match) { addOnloadHook(function dynamicMultiColumn() { var reflists =3D getElementsByClassName(document, "ol", "references"= ); for (var i =3D 0; i < reflists.length; i++) { var l =3D 0 for (var j =3D 0; j < reflists[i].childNodes.length; j++) { if (reflists[i].childNodes[j].nodeType =3D=3D 1) l++; } if (l < 4) { reflists[i].style.columnCount =3D 1; reflists[i].style.MozColumnCount =3D 1; reflists[i].style.WebkitColumnCount =3D 1; } } }); } /* MediaWiki:Monobook.js */ /***********************************************************************= *********************** * Ezek a szkriptek csak Monobook skin alatt futnak le. = * * A nem kifejezetten Monobook-specifikus szkripteket a [[MediaWiki:Co= mmon.js]]-be =C3=ADrd! * ************************************************************************= **********************/ /** Interwiki links to featured articles *******************************= ******** * * Description: Highlights interwiki links to featured articles (or * equivalents) by changing the bullet before the interwiki= link * into a star. * Maintainers: [[User:R. Koot]] */ = function LinkFA() = { if ( document.getElementById( "p-lang" ) ) { var InterwikiLinks =3D document.getElementById( "p-lang" ).getElemen= tsByTagName( "li" ); = for ( var i =3D 0; i < InterwikiLinks.length; i++ ) { if ( document.getElementById( InterwikiLinks[i].className + "-fa" = ) ) { InterwikiLinks[i].className +=3D " FA"; InterwikiLinks[i].title =3D "Ez a cikk kiemelt st=C3=A1tuszt kap= ott egy m=C3=A1sik nyelv=C5=B1 Wikip=C3=A9di=C3=A1ban."; } } } } = addOnloadHook( LinkFA ); /* =3D=3D Szerkeszt=C5=91gombok a c=C3=ADm m=C3=B6g=C3=B6tt; extra szerkesz= t=C5=91gomb a f=C5=91c=C3=ADm mellett =3D=3D */ // moves section edit links to the right side of the section title = // (see also the rules for .editsectionmoved in Monobook.css) // adds section edit link for the lead section next to the main (h1) tit= le // shows the contents of [[MediaWiki:Editintro-section-0]] above the edi= t box if used // (unless the lead section is the same as the whole article) // var oldEditsectionLinks=3Dtrue disables the function. if(document.getElementById && document.createElement) { function moveSectionEditLinks() { if(typeof oldEditsectionLinks !=3D 'undefined' && oldEditsectionLink= s =3D=3D true) return; var headings =3D false; // no need to show info about how to edit th= e whole page if there are no sections var sectioneditlinks =3D false; // if there are section edit links, = we can safely show the lead section edit link /* move section edit links */ var body =3D document.getElementById("bodyContent"); // we iterate through headers until we find a section header for(var i=3D1; i<=3D6; i++) { var h =3D body.getElementsByTagName('h'+i); for(var j=3D0; j" = is impossible to catch } var href =3D edit.firstChild.href + "§ion=3D0"; if(headings) href +=3D "&editintro=3DMediaWiki:Editintro-section-0";= var title =3D document.getElementsByTagName('h1')[0]; if(!title || title.className !=3D "firstHeading") return; // make su= re this is the main title var edit0 =3D document.createElement('span'); edit0.className =3D "editsectionmoved"; if(is_opera) { edit0.style.fontSize =3D "x-small"; edit0.style.fontWeight =3D "normal"; edit0.style.marginLeft =3D "0.5em"; edit0.style.verticalAlign =3D "baseline"; edit0.style.lineHeight =3D "1em"; } edit0.innerHTML =3D '[szerkeszt=C3=A9s]'; title.appendChild(document.createTextNode(" ")); title.appendChild(edit0); } addOnloadHook(moveSectionEditLinks); } /* =3D=3D C=C3=ADmek elrejt=C3=A9se =3D=3D */ function hideArticleTitle() { if (document.getElementById("HideTitle")) { var h1 =3D document.getElementsByTagName("h1")[0]; if (h1) { h1.style.display =3D "none"; } var siteSub =3D document.getElementById("siteSub"); if (siteSub) { siteSub.style.display =3D "none"; } } } addOnloadHook(hideArticleTitle); /* =3D=3DKezd=C5=91lap jav=C3=ADt=C3=A1s=3D=3D */ /** Kezd=C5=91lap jav=C3=ADt=C3=A1sok **********************************= *********************** * * Description: Various layout fixes for the main page, including= an * additional link to the complete list of languages= available * and the renaming of the 'Article' to to 'Main Pag= e'. * Forr=C3=A1s: en:Common.js */ function mainPageRenameNamespaceTab() { try { document.getElementById( 'ca-nstab-main' ).firstChild.textConten= t =3D 'Kezd=C5=91lap'; } catch(e) { return; } } function mainPageAppendCompleteListLink() { try { var node =3D document.getElementById( "p-lang" ) .getElementsByTagName('div')[0] .getElementsByTagName('ul')[0]; var aNode =3D document.createElement( 'a' ); var liNode =3D document.createElement( 'li' ); aNode.appendChild( document.createTextNode( 'Teljes lista' ) ); aNode.setAttribute( 'href' , 'http://meta.wikimedia.org/wiki/Lis= t_of_Wikipedias' ); liNode.appendChild( aNode ); liNode.className =3D 'interwiki-completelist'; node.appendChild( liNode ); } catch(e) { // lets just ignore what's happened return; } } if ( wgTitle =3D=3D 'Kezd=C5=91lap' && ( wgNamespaceNumber =3D=3D 0 || w= gNamespaceNumber =3D=3D 1 ) ) { addOnloadHook( mainPageRenameNamespaceTab ); } if ( wgTitle =3D=3D 'Kezd=C5=91lap' && wgNamespaceNumber =3D=3D 0 ) { addOnloadHook( mainPageAppendCompleteListLink ); } /* =3D=3D Koordin=C3=A1t=C3=A1k igaz=C3=ADt=C3=A1sa =3D=3D */ function alignCoord() { if(!document.getElementById) return; var bodyContent =3D document.getElementById('bodyContent'); var coordinates =3D document.getElementById('coordinates'); if(!coordinates || !bodyContent) return; bodyContent.insertBefore(coordinates, bodyContent.firstChild); coordinates.style.top =3D 'auto'; } addOnloadHook(alignCoord); /* * Er=C5=91forr=C3=A1stakar=C3=A9kos =C3=BCzenet az adminoknak a Betawiki= n val=C3=B3 MediaWiki-fel=C3=BClet-ford=C3=ADt=C3=A1sra */ function betaWikiSign() { if(document.getElementById && wgPageName.match("MediaWiki:")) { var box =3D document.getElementById("siteSub"); if(box ) { box.innerHTML =3D '
Ha olyan =C3= =BCzenetet ford=C3=ADtasz, amely nem Wikip=C3=A9dia-specifikus, akkor az= t a Betawikiben tedd, hogy =C3=ADgy minden magyar nyelv=C5=B1 Wik= imedia-projekt sz=C3=A1m=C3=A1ra el=C3=A9rhet=C5=91 legyen! (=E2=86=92ezen =C3=BCzenet megtekint=C3=A9se a Betawikiben, szerkeszt=C3=A9s)
'; } } } addOnloadHook(betaWikiSign); /** Kib=C5=91v=C3=ADtett keres=C5=91lap */ function SpecialSearchEnhanced() { var createOption =3D function(site, action, mainQ, addQ, addV) { var opt =3D document.createElement('option'); opt.appendChild(document.createTextNode(site)); searchEngines[searchEngines.length] =3D [action, mainQ, addQ, addV];= return opt; } = var searchForm =3D null; if (document.forms['powersearch']) { searchForm =3D document.forms['powersearch']; } else if (document.forms['search']) { searchForm =3D document.forms['search']; } = if(searchForm) { if (searchForm.lsearchbox) { var searchBox =3D searchForm.lsearchbox; } else { var searchBox =3D searchForm.search; } var selectBox =3D document.createElement('select'); selectBox.id =3D 'searchEngine'; searchForm.onsubmit =3D function() { var optSelected =3D searchEngines[document.getElementById('searchE= ngine').selectedIndex]; searchForm.action =3D optSelected[0]; searchBox.name =3D optSelected[1]; searchForm.title.value =3D optSelected[3]; searchForm.title.name =3D optSelected[2]; } selectBox.appendChild(createOption('Wikip=C3=A9dia', wgScriptPath + = '/index.php', 'search', 'title', 'Special:Search')); selectBox.appendChild(createOption('Google', 'http://www.google.com/= search', 'q', 'sitesearch', 'hu.wikipedia.org')); selectBox.appendChild(createOption('Yahoo', 'http://search.yahoo.com= /search', 'p', 'vs', 'hu.wikipedia.org')); selectBox.appendChild(createOption('Windows Live', 'http://search.li= ve.com/results.aspx', 'q', 'q1', 'site:http://hu.wikipedia.org')); selectBox.appendChild(createOption('Wikiwix', 'http://www.wikiwix.co= m/', 'action', 'lang', 'hu')); searchBox.style.marginLeft =3D '0px'; if (document.getElementById('loadStatus')) { var lStat =3D document.getElementById('loadStatus'); } else { var lStat =3D searchForm.fulltext; } lStat.parentNode.insertBefore(selectBox, lStat); } } = var searchEngines =3D []; addOnloadHook(SpecialSearchEnhanced); ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=250px-Austria_2016_01.jpg Content-Type: image/jpeg; name=250px-Austria_2016_01.jpg Content-Location: http://upload.wikimedia.org/wikipedia/commons/thumb/b/b2/Austria_2016_01.jpg/250px-Austria_2016_01.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAQEAtAC0AAD/4R3+RXhpZgAASUkqAAgAAAAJAA8BAgAGAAAA egAAABABAgAUAAAAgAAAABIBAwABAAAAAQAAABoBBQABAAAAoAAAABsBBQABAAAA qAAAACgBAwABAAAAAgAAADIBAgAUAAAAsAAAABMCAwABAAAAAQAAAGmHBAABAAAA xAAAAGoHAABDYW5vbgBDYW5vbiBQb3dlclNob3QgQTgwAAAAAAAAAAAAAAAAALQA AAABAAAAtAAAAAEAAAAyMDA0OjA0OjE3IDE3OjI1OjM0AB8AmoIFAAEAAACGAwAA nYIFAAEAAACOAwAAAJAHAAQAAAAwMjIwA5ACABQAAAA+AgAABJACABQAAABSAgAA AZEHAAQAAAABAgMAApEFAAEAAABuAwAAAZIKAAEAAAB2AwAAApIFAAEAAAB+AwAA BJIKAAEAAACWAwAABZIFAAEAAACeAwAAB5IDAAEAAAAFAAAACZIDAAEAAAAYAAAA CpIFAAEAAACmAwAAfJIHAG4DAACuAwAAhpIHAAgBAABmAgAAAKAHAAQAAAAwMTAw AaADAAEAAAABAAAAAqADAAEAAADgCAAAA6ADAAEAAACoBgAABaAEAAEAAAA0BwAA DqIFAAEAAAAcBwAAD6IFAAEAAAAkBwAAEKIDAAEAAAACAAAAF6IDAAEAAAACAAAA AKMHAAEAAAADAAAAAaQDAAEAAAAAAAAAAqQDAAEAAAAAAAAAA6QDAAEAAAAAAAAA BKQFAAEAAAAsBwAABqQDAAEAAAAAAAAAAAAAADIwMDQ6MDQ6MTcgMTc6MjU6MzQA MjAwNDowNDoxNyAxNzoyNTozNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAA AQAAAB8BAAAgAAAAiwAAACAAAAABAAAA9AEAAC0AAAAKAAAAAAAAAAMAAACAAAAA IAAAAAcCAAAgAAAAEAABAAMALgAAAHQEAAACAAMABAAAANAEAAADAAMABAAAANgE AAAEAAMAIgAAAOAEAAAAAAMABgAAACQFAAAAAAMABAAAADAFAAASAAMAHAAAADgF AAATAAMABAAAAHAFAAAGAAIAIAAAAHgFAAAHAAIAGAAAAJgFAAAIAAQAAQAAAFiR DwAJAAIAIAAAALAFAAAQAAQAAQAAAAAANAEYAAEAAAEAANAFAAAZAAMAAQAAAAEA AAANAAMAIgAAANAGAAAAAAAAXAACAAAAAwAFAAAAAAAEAAAAAQAAAAEAAAAAAAAA AAASAAMAAQABQAEA/////+0C+gAgAIEAwAAAAAAAAAAAAAAAAAD//wAA4AjgCAAA AAAAAAAA/3//fwAAAAACAAcCHgHXAAAEAAAAAAAARAAAAMAA+gCLAB8BAAAAAAAA AAAEAAAAAAAAAAAAAAAAAAAAAQDiAQAAiwAgAQAAAAAAAPoAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQDgCKgG4AjUAJkBJgBm/gAAmgFm/gAA mgFm/gAAmgHX/9f/1/8AAAAAAAApACkAKQAGAAEAAAAAAAAAAABJTUc6UG93ZXJT aG90IEE4MCBKUEVHAAAAAAAAAAAAAEZpcm13YXJlIFZlcnNpb24gMS4wMAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQA CQBEAUcBRwFAAUEBRQE/AT4BQAFAAAAAAADx/wEAAAAKAAAAEAAAALD/+AAQAPD/ /gMAAAAAAAAAAAAA0wAAAAAASUkqAK4DAAAAqyIAGAEAAEAAGgDSAAAA4AgAAOAI AAAEAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAEQAwABAAAA4AgAAAIQAwABAAAA qAYAAAAAAAAGAAMBAwABAAAABgAAABoBBQABAAAAuAcAABsBBQABAAAAwAcAACgB AwABAAAAAgAAAAECBAABAAAA9AcAAAICBAABAAAAghUAAAAAAAC0AAAAAQAAALQA AAABAAAAAAIAAAAAAAAAAAACAAAACAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA IAD/2P/bAIQACQYGCAYFCQgHCAoJCQsNFg8NDAwNHBMVEBYhHSMiIRwgHyQpNCwk JzEnHh8tPS0xNjc6OjoiKj9EPjhCMzc5NgEJCQkMCgwUDAwUDwoKCg8aGgoKGhpP GhoaGhpPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09P/8AAEQgA eACgAwEhAAIRAQMRAf/EAaIAAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCxAA AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAk M2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlq c3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6AQADAQEBAQEBAQEBAAAA AAAAAQIDBAUGBwgJCgsRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXET IjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJ SlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5 +v/aAAwDAQACEQMRAD8A4LS7rekQRiOMNjPH5V0hjedI4oP9ZM6xp7ljgfzqI72/ App2v0ezPcLO3SysoLaIYjhjWNR7AYFTZrrOe4E5GB3pyIEQKvQDApMBm3zXDZOw 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 ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename*=utf-8''50px-%C3%96bblogo.gif Content-Type: image/gif; name*=utf-8''50px-%C3%96bblogo.gif Content-Location: http://upload.wikimedia.org/wikipedia/hu/thumb/4/4c/Öbblogo.gif/50px-Öbblogo.gif Content-Transfer-Encoding: Base64 R0lGODlhMgASAPUAAOMAHuQBI+QHKOULK+UQL+YVM+YZNuceO+giPecnQeglQegq Rek0Teo6UulBV+tEWutJXutMYexSZuxWauxYa+1fcu1jc+5odO5rfO50fvB1hPB6 h/B7iPCCjfGFk/KKlvKRnfKWoPOcpfOjrPSrtPWzufa4vva7wvfFyvjLzfjO0fjT 1fjW2fna3Pne4Pnh4/rn6Prt7Pvx7/vy8fz49/z+/ausrQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAUAADYALAAAAAAyABIAAAb+wJpwRooUAoFEqXO5gGhC WSdDpW5AJZhQGJtWMxysdkt+WQbIwKBjEQQWqe0LkU4LBo+40EWvIwcOemURdQYZ Gm4HI1BCcwECBwgHB2gADS97B48GCJJHAQwuZDQXaQ4gKR9oBSATH3KaBigvtCUL jySZAQUntC+2SCNkJkcCGFoiBAAEHhYBBy2NmgeiWxhIIHt0BixkHkgdZBJIDVpm EBAgLQqPwjUv09VCFQAB7i6x0dZIImSaAiGE0JghYwaUawAsQHFEQIOHhxiOKNCH T41DiAYCIOhWA4obAijIkBkhwNKMd338PHqlS+UjDyKRgBS5hWSABifhPRLAc4D+ m5uYavD5M6DoTwb6hBRzR1MDkgkLt404QbUEoQDZhGoqIILqiRLjAoQTCAHJgxg0 XdwK0O/dtKBCVBQwqTUANzIr5jJAK4REsQ4yyMBoY3eFNADQyLDIuLdGi1gchbTI mGBMjRkTkAiYUIIFCxIP0mxg5AgajdMxOLh5cHKogRWnacjwULJBYEYsGiABMEDS zwASLLtgByiC8QZoBLTVKcBBBAgRkD/KihfC73q8LcDVih2A93rGTjo+0P37owu3 RcIQAcFA0QMSSIjfAoOCg/v4IWCQT38C/vz7BbYFI1vIwAIKKLQwn0gxxCBDgw8u WGCDFDpI04UYZqjhhhcCBgEAOw== ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=25px-P_transport-lightblue.png Content-Type: image/png; name=25px-P_transport-lightblue.png Content-Location: http://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/P_transport-lightblue.png/25px-P_transport-lightblue.png Content-Transfer-Encoding: Base64 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 ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=Wiki.png Content-Type: image/png; name=Wiki.png Content-Location: http://upload.wikimedia.org/wikipedia/hu/b/bc/Wiki.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAIcAAACbCAQAAADi+kBhAAAACXBIWXMAAA7DAAAO wwHHb6hkAAADGGlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjaY2BgnuDo4uTK JMDAUFBUUuQe5BgZERmlwH6egY2BmYGBgYGBITG5uMAxIMCHgYGBIS8/L5UBFTAy MHy7xsDIwMDAcFnX0cXJlYE0wJpcUFTCwMBwgIGBwSgltTiZgYHhCwMDQ3p5SUEJ AwNjDAMDg0hSdkEJAwNjAQMDg0h2SJAzAwNjCwMDE09JakUJAwMDg3N+QWVRZnpG iYKhpaWlgmNKflKqQnBlcUlqbrGCZ15yflFBflFiSWoKAwMD1A4GBgYGXpf8EgX3 xMw8BSMDVQYqg4jIKAUICxE+CDEESC4tKoMHJQODAIMCgwGDA0MAQyJDPcMChqMM bxjFGV0YSxlXMN5jEmMKYprAdIFZmDmSeSHzGxZLlg6WW6x6rK2s99gs2aaxfWMP Z9/NocTRxfGFM5HzApcj1xZuTe4FPFI8U3mFeCfxCfNN45fhXyygI7BD0FXwilCq 0A/hXhEVkb2i4aJfxCaJG4lfkaiQlJM8JpUvLS19QqZMVl32llyfvIv8H4WtioVK ekpvldeqFKiaqP5UO6jepRGqqaT5QeuA9iSdVF0rPUG9V/pHDBYY1hrFGNuayJsy m740u2C+02KJ5QSrOutcmzjbQDtXe2sHY0cdJzVnJRcFV3k3BXdlD3VPXS8Tbxsf d99gvwT//ID6wIlBS4N3hVwMfRnOFCEXaRUVEV0RMzN2T9yDBLZE3aSw5IaUNak3 0zkyLDIzs+ZmX8xlz7PPryjYVPiuWLskq3RV2ZsK/cqSql01jLVedVPrHzbqNdU0 n22VaytsP9op3VXUfbpXta+x/+5Em0mzJ/+dGj/t8AyNmf2zvs9JmHt6vvmCpYtE Frcu+bYsc/m9lSGrTq9xWbtvveWGbZtMNm/ZarJt+w6rnft3u+45uy9s/4ODOYd+ Hmk/Jn58xUnrU+fOJJ/9dX7SRe1LR68kXv13fc5Nm1t379TfU75/4mHeY7En+59l vhB5efB1/lv5dxc+NH0y/fzq64Lv4T8Ffp360/rP8f9/AA0ADzT6lvFdAAAAIGNI Uk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAADudSURBVHja 7L15nFTlmff9PUvtS1evdDcNNFuDgNAsDSouuCBuiaiRaMxCYhJNnEw0ybyTkIXH yZPJZJMxk2eeN5kYjZmJiUkGTaISN0BREVEWQZYGuulu6L2rumuvs9zvH3XX6Spk Fz+ZeZ/n9Efsqq5zn3Ou+1p+1++67rsUwf89ig5R9PPej96KbR//9ubL7bue/PPY 9+uOD2i5wIGK5yp/7z73EtDP1U3uUQYCDfPVu5PL8cZ4+fyLF/P46Z3Zo7SrcTQl Rrl1+XHmZFCJKgG9wp1ytfpeUU0zN2aoanh6fKb11GuvVCemmOdS1OdEHAnFrOu/ onqp7/KycRfRx0/pHffOou1PNydOY2703nomK9VKWEmzdeuBBVbp3+Narl6/ILUo Mz7r6QiMqEr4lallwuf3uTJ3H3hc++7LrcHMXPu/kDjiHuPi3L3V1/o0QYbHWE0P Ia3fs9d16nM7w9ZH7Q+FJ0fKlLJ07tA/1/6AAccolBHFV5X7UPbW5IJMMIeGgkmK JH7CVFKrDH9459Xl3/X/+45BIaqsBvuvLo4BxVuZuf3AlwMTavg1r5JgEwMo4rwN Fz56W/TU5786K3zX3NkTSCPocndNDda8OpJyB9Sg6tOoCszt+3D/NfVeFRUvGueR YS9eTDpRmE0th8sHv9+6oO5fAx3Z4f7hbfbV4q8ojoOqNiv75R23b3FVsJP/IAaA Ii7acsv9d245nRF26H9W6/k255GmnnmL1G/S5fKp5SJghLQK70Rv2Taa6EPBxsTC ZggvbsLMwsMDvIHGkhXNNw1n3EcXf8re0ZOptf4q4uhR07Wu69N/0zE7Rw2Ps5Es rqwrYbvmbrt79cc2nt4omaODI29zJfPIEmJ+ffo2HYUMHjJkgTAZuqinDxUbwWwm 0IdGG//JTvYR44NUoLpCrsS0l74VOJD5Vle82vKctdkoxdqlnL6RaOIi/WuJa/dR xQT+hccYz5Dpemr+oyOD4zu/fegkrlPt9e7RUpquVmkVbJ335PfOm/Nhysmh4MOm gwxjUInxIF/CS4KXuZQK+lGBPnRqSPIQz9CBys3cShoVPwpxhnDFFl8ws1UR7jMw GvFexdHl913v/VZ81k7CLKSPZ5lInK91L/jmQw+d8uJ1fdcfnJB26WVlFd4GfUJw TFjPEceLhyMoPMRlNKPyJo/wADkgxibmM5EUb9PKYnqZipsButlIK25mozEbDZUR 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 AAAASUVORK5CYII= ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=poweredby_mediawiki_88x31.png Content-Type: image/png; name=poweredby_mediawiki_88x31.png Content-Location: http://hu.wikipedia.org/skins-1.5/common/images/poweredby_mediawiki_88x31.png Content-Transfer-Encoding: Base64 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 NgAAAABJRU5ErkJggg== ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename=wikimedia-button.png Content-Type: image/png; name=wikimedia-button.png Content-Location: http://hu.wikipedia.org/images/wikimedia-button.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFgAAAAfCAMAAABUFvrSAAAAA3NCSVQICAjb4U/g AAAAilBMVEVjZGeGh4nn6+yZmZni5uTW1taAgYNtbnGkpKYBhbLd3t1svZdCroKt rq/Cv79ztMs7ncDMzMy5t7enzL3Hx8h6e37l5eXw8PDK0dOVwtOozdsfkrnKk47E 1tUNiba8RjxKs4bN3eKawM2SybIslr5Yp8TV4N+80dbY5Oek08O5zNJ+wqW20cf2 9vZ09tAFAAAACXBIWXMAAArwAAAK8AFCrDSYAAACh0lEQVR4Xs3RiZKbMAwGYMu3 zX2T+072fP/XqwSUppM0bLfdmf1DxlhmvhGCRV8UFmVfkm8Ig/0beLnZbJYfcuNK T8Htr6BLcvuBCAv5o/Pf4HjTJ/4AbCyICVhRXk6JUssBXiqVpK16FCvyXJcPHvgJ n5xLVD7CydqdHsKEWjsN7x3B2QC3Kun2k5mE29Rhh4eiH3JcHOgN1vt/h/fIXN7C bZEtl8us2IbFauH6YRirFBO0Wqa6K1bM5gzLQDvGtNKMGdEqrcmrRth7fyIlCMPt M26et2EYUGlxwZ0w3jKDz2WWeVSZ9Z5glltGBY8B8LERtHgwLPeUHsZJ7FfoYc/o 0vq2X+Ms8Chj1gD+he/gCjzBMasMq6hgbdSJwtCSsaiCK3jh1i8FgWFwfg0pxQXh mceAYZkwLO5hMGUPx2DtLWxZLlg2wFJKhC9FBwZ+gFcES0zOhGxZJaVleKmqUrKD VV+QGACJo6ClqgDwDjPC87cRHjveS0rVSimiAZalAdXBQ4ExkEAfTyGcd2WjRhhn PDv3o5AdvN3N6OPJT4fguq4T51J5uIJf65RK9efTw3Pn3PwcjHBwnq+dS+qHiadg zvkT9nc8o9zDwWp3xEns+MOU412W3Z72MKcG0119CF7lITjIXepw6nesSliuhS0B Ig48ByEzDaXW+Z9gnqC0QOoJf3x+xN3pXpMRt23FJXAuFHBdRpFQXEbl3Y4bCj85 TJrMZrMkXXduc5syaoSHpsGLVl2WStRNE5XNTQjuQj1TEKUk5N7CGiypNApcc4BY aVClju7CQ+bY6YCn8+ZusmsArk8ewEQn6WKxOCZz3kzDXEzB71fhT7sn/v4/QvBN vjv8RfkBEHe0Bwh42FAAAAAASUVORK5CYII= ------------ErB68XVJ5v7SXrP1mR67FN Content-Disposition: inline; filename*=utf-8''%C3%96BB%202016.png Content-Type: image/png; name*=utf-8''%C3%96BB%202016.png Content-Location: http://stats.wikipedia.hu/huwp_counter.png-Wikipédia-:ÖBB 2016 Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAABlBMVEUAAAD///+l 2Z/dAAAACklEQVQI12NoAAAAggCB3UNq9AAAAABJRU5ErkJggg== ------------ErB68XVJ5v7SXrP1mR67FN--