//version: 1.3.5 01-30-2010
//for Opera and FF
// ==UserScript==
// @author Losstarot
// @name Wilczy Licznik Dodanych Skili
// @include http://w...content-available-to-author-only...s.com/wanderer/idarionis.php*
// @include http://i...content-available-to-author-only...s.com/wanderer/idarionis.php*
// ==/UserScript==
if ( document.getElementById ( 'umiejetnosci' ) )
{
//**********************************************************
/**
*
* Javascript cookies
* http://w...content-available-to-author-only...t.info/
*
**/
function CookieHandler( ) {
this .setCookie = function ( name, value, seconds) {
if ( typeof ( seconds) != 'undefined' ) {
var date = new Date ( ) ;
date.setTime ( date.getTime ( ) + ( seconds* 1000 ) ) ;
var expires = "; expires=" + date.toGMTString ( ) ; }
else { var expires = "" ; }
document.cookie = name+ "=" + value+ expires+ "; path=/" ; }
this .getCookie = function ( name) {
name = name + "=" ;
var carray = document.cookie .split ( ';' ) ;
for ( var i= 0 ; i < carray.length ; i++ ) {
var c = carray[ i] ;
while ( c.charAt ( 0 ) == ' ' ) c = c.substring ( 1 , c.length ) ;
if ( c.indexOf ( name) == 0 ) return c.substring ( name.length , c.length ) ; }
return null ; }
this .deleteCookie = function ( name) {
this .setCookie ( name, "" , - 1 ) ; }
}
//**********************************************************
var Cookies = new CookieHandler( ) ;
var browser = navigator.appName ;
var wlds_table1 = new Array ( ) ; // zawiera poszczegolne skile z ciasteczka
var wlds_table2 = new Array ( ) ; // zawiera % poszczegolnych skili z ciasteczka
var wlds_table3 = new Array ( ) ; // zawiera poszczegolne skile aktualne
var wlds_table4 = new Array ( ) ; // zawiera % poszczegolnych skili aktualne
var wlds_table5 = new Array ( ) ; // innerHTML'e poszczegolnych skili
var wlds_table6 = new Array ( ) ; // zawiera podzielona tresc skila
var wlds_table7 = new Array ( ) ; // zawiera podzielona tresc skila
var wlds_table8 = new Array ( ) ; // zawiera dane licznika energii z ciasteczka
var wlds_table9 = new Array ( ) ; // zawiera dane z ciasteczka / dzielone na 3
// pobiera imie
var playername = document.getElementById ( "informacje" ) .getElementsByTagName ( "div" ) [ 0 ] .getElementsByTagName ( "p" ) [ 0 ] .getElementsByTagName ( "a" ) [ 0 ] .innerHTML ;
playername = playername.replace ( 'Sir ' , '' ) ;
playername = playername.replace ( 'Lady ' , '' ) ;
playername = playername.replace ( 'Lord ' , '' ) ;
playername = playername.replace ( 'Brn ' , '' ) ;
playername = playername.replace ( 'Hr ' , '' ) ;
playername = playername.replace ( 'Mrk ' , '' ) ;
playername = playername.replace ( ' ' , '' ) ; playername = playername.replace ( ' ' , '' ) ;
// licznik walk
if ( Cookies.getCookie ( playername + '_btl_count' ) ) { var btl_count = Cookies.getCookie ( playername + '_btl_count' ) ; }
else { var btl_count = 0 ; Cookies.setCookie ( playername + '_btl_count' , btl_count, 365 * 60 * 60 ) ; } ;
// zlicza ilosc pokazanych skili
var li_num = document.getElementById ( 'umiejetnosci' ) .getElementsByTagName ( "ul" ) [ 0 ] .getElementsByTagName ( "li" ) .length ;
// sprawdza czy jest ciasteczko i ewentualnie pobiera je i rozdziela lub tworzy puste
if ( Cookies.getCookie ( playername + '_wlds' ) ) {
} else {
Cookies.setCookie ( playername + '_wlds' , 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + '_' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + '_' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 + ',' + 0 , 365 * 60 * 60 ) ;
} ;
var cook_data0_wlds = Cookies.getCookie ( playername + '_wlds' ) ;
wlds_table9 = cook_data0_wlds.split ( "_" , 3 ) ;
wlds_table1 = wlds_table9[ 0 ] .split ( "," , li_num ) ;
wlds_table2 = wlds_table9[ 1 ] .split ( "," , li_num ) ;
wlds_table8 = wlds_table9[ 2 ] .split ( "," , li_num ) ;
wlds_table3[ 0 ] = 0 ; wlds_table3[ 1 ] = 0 ; wlds_table3[ 2 ] = 0 ; wlds_table3[ 3 ] = 0 ; wlds_table3[ 4 ] = 0 ; wlds_table3[ 5 ] = 0 ; wlds_table3[ 6 ] = 0 ; wlds_table3[ 7 ] = 0 ; wlds_table3[ 8 ] = 0 ; wlds_table3[ 9 ] = 0 ; wlds_table3[ 10 ] = 0 ; wlds_table3[ 11 ] = 0 ;
wlds_table4[ 0 ] = 0 ; wlds_table4[ 1 ] = 0 ; wlds_table4[ 2 ] = 0 ; wlds_table4[ 3 ] = 0 ; wlds_table4[ 4 ] = 0 ; wlds_table4[ 5 ] = 0 ; wlds_table4[ 6 ] = 0 ; wlds_table4[ 7 ] = 0 ; wlds_table4[ 8 ] = 0 ; wlds_table4[ 9 ] = 0 ; wlds_table4[ 10 ] = 0 ; wlds_table4[ 11 ] = 0 ;
var set_new = function ( ) {
Cookies.setCookie ( playername + '_wlds' ,
wlds_table3[ 0 ] + ',' + wlds_table3[ 1 ] + ',' + wlds_table3[ 2 ] + ',' + wlds_table3[ 3 ] + ',' + wlds_table3[ 4 ] + ',' + wlds_table3[ 5 ] + ',' + wlds_table3[ 6 ] + ',' + wlds_table3[ 7 ] + ',' + wlds_table3[ 8 ] + ',' + wlds_table3[ 9 ] + ',' + wlds_table3[ 10 ] + ',' + wlds_table3[ 11 ] + '_' + wlds_table4[ 0 ] + ',' + wlds_table4[ 1 ] + ',' + wlds_table4[ 2 ] + ',' + wlds_table4[ 3 ] + ',' + wlds_table4[ 4 ] + ',' + wlds_table4[ 5 ] + ',' + wlds_table4[ 6 ] + ',' + wlds_table4[ 7 ] + ',' + wlds_table4[ 8 ] + ',' + wlds_table4[ 9 ] + ',' + wlds_table4[ 10 ] + ',' + wlds_table4[ 11 ] + '_' + btl_count + ',' + btl_count + ',' + btl_count + ',' + btl_count + ',' + btl_count + ',' + btl_count + ',' + btl_count + ',' + btl_count + ',' + btl_count + ',' + btl_count + ',' + btl_count + ',' + btl_count, 365 * 60 * 60 ) ;
location.reload ( ) ;
} ;
var set_one_skl_zero = function ( ) {
Cookies.setCookie ( playername + '_wlds' , wlds_table1[ 0 ] + ',' + wlds_table1[ 1 ] + ',' + wlds_table1[ 2 ] + ',' + wlds_table1[ 3 ] + ',' + wlds_table1[ 4 ] + ',' + wlds_table1[ 5 ] + ',' + wlds_table1[ 6 ] + ',' + wlds_table1[ 7 ] + ',' + wlds_table1[ 8 ] + ',' + wlds_table1[ 9 ] + ',' + wlds_table1[ 10 ] + ',' + wlds_table1[ 11 ] + '_' + wlds_table2[ 0 ] + ',' + wlds_table2[ 1 ] + ',' + wlds_table2[ 2 ] + ',' + wlds_table2[ 3 ] + ',' + wlds_table2[ 4 ] + ',' + wlds_table2[ 5 ] + ',' + wlds_table2[ 6 ] + ',' + wlds_table2[ 7 ] + ',' + wlds_table2[ 8 ] + ',' + wlds_table2[ 9 ] + ',' + wlds_table2[ 10 ] + ',' + wlds_table2[ 11 ] + '_' + wlds_table9[ 2 ] , 365 * 60 * 60 ) ;
location.reload ( ) ;
} ;
var set_one_btl_zero = function ( ) {
Cookies.setCookie ( playername + '_wlds' , wlds_table9[ 0 ] + '_' + wlds_table9[ 1 ] + '_' + wlds_table8[ 0 ] + ',' + wlds_table8[ 1 ] + ',' + wlds_table8[ 2 ] + ',' + wlds_table8[ 3 ] + ',' + wlds_table8[ 4 ] + ',' + wlds_table8[ 5 ] + ',' + wlds_table8[ 6 ] + ',' + wlds_table8[ 7 ] + ',' + wlds_table8[ 8 ] + ',' + wlds_table8[ 9 ] + ',' + wlds_table8[ 10 ] + ',' + wlds_table8[ 11 ] , 365 * 60 * 60 ) ;
location.reload ( ) ;
} ;
if ( browser == 'Opera' ) {
} else {
unsafeWindow.wlds_table1 = wlds_table1;
unsafeWindow.wlds_table2 = wlds_table2;
unsafeWindow.wlds_table3 = wlds_table3;
unsafeWindow.wlds_table4 = wlds_table4;
unsafeWindow.wlds_table8 = wlds_table8;
unsafeWindow.wlds_table9 = wlds_table9;
unsafeWindow.set_new = set_new;
unsafeWindow.set_one_skl_zero = set_one_skl_zero;
unsafeWindow.set_one_btl_zero = set_one_btl_zero;
} ;
var i= 0 ;
for ( i= 0 ; i<= li_num- 1 ; i++ ) {
wlds_table5[ i] = document.getElementById ( 'umiejetnosci' ) .getElementsByTagName ( "ul" ) [ 0 ] .getElementsByTagName ( "li" ) [ i] .innerHTML ;
wlds_table5[ i] = wlds_table5[ i] .replace ( '+' , '@' ) ;
var x0 = wlds_table5[ i] .search ( "@" ) ;
wlds_table5[ i] = wlds_table5[ i] .replace ( '@' , '+' ) ;
// pobiera dane skili
wlds_table3[ i] = wlds_table5[ i] .substr ( x0- 5 , 4 ) ;
wlds_table3[ i] = wlds_table3[ i] .replace ( ')' , '' ) ;
wlds_table3[ i] = wlds_table3[ i] .replace ( '(' , '' ) ;
wlds_table3[ i] = wlds_table3[ i] .replace ( ' ' , '' ) ;
wlds_table4[ i] = wlds_table5[ i] .substr ( x0+ 1 , 3 ) ;
wlds_table4[ i] = wlds_table4[ i] .replace ( '%' , '' ) ;
var x1; var x2;
wlds_table1[ i] = parseFloat( wlds_table1[ i] ) ;
wlds_table2[ i] = parseFloat( wlds_table2[ i] ) ;
wlds_table3[ i] = parseFloat( wlds_table3[ i] ) ;
wlds_table4[ i] = parseFloat( wlds_table4[ i] ) ;
wlds_table8[ i] = parseFloat( wlds_table8[ i] ) ;
if ( wlds_table1[ i] == wlds_table3[ i] ) { x1 = 0 ; } ;
if ( wlds_table1[ i] < wlds_table3[ i] ) { x1 = wlds_table3[ i] - wlds_table1[ i] ; } ;
if ( wlds_table1[ i] > wlds_table3[ i] ) { x1 = 100 - wlds_table1[ i] + wlds_table3[ i] ; } ;
if ( wlds_table2[ i] == wlds_table4[ i] ) { x2 = 0 ; } ;
if ( wlds_table2[ i] < wlds_table4[ i] ) { x2 = wlds_table4[ i] - wlds_table2[ i] ; } ;
if ( wlds_table2[ i] > wlds_table4[ i] ) { x2 = 100 - wlds_table2[ i] + wlds_table4[ i] ; } ;
var x6 = btl_count - wlds_table8[ i] ;
var x4 = wlds_table5[ i] .substr ( x0- 11 , 5 ) ;
var x5 = x4.replace ( ' ' , '<span id="skl_num_' + i + '_wlds" class="LgreenJ" style="cursor:pointer" title="zeruj ten skill"> -set 0-</span>,<span id="btl_num_' + i + '_wlds" class="LgreenJ" style="cursor:pointer" title="liczba stoczonych walk, kliknij aby wyzerować">btl:<span style="color: #cccc99;">' + x6 + '</span></span></br>' ) ;
wlds_table5[ i] = wlds_table5[ i] .replace ( x4, x5) ;
wlds_table6 = wlds_table5[ i] .split ( '+' , 2 ) ;
wlds_table7 = wlds_table6[ 1 ] .split ( '%' , 3 ) ;
document.getElementById ( 'umiejetnosci' ) .getElementsByTagName ( "ul" ) [ 0 ] .getElementsByTagName ( "li" ) [ i] .innerHTML = wlds_table6[ 0 ] + '+<span class="LgreenJ">' + x1 + '</span>' + ', ' + wlds_table7[ 0 ] + '% +<span class="LgreenJ">' + x2 + '</span>' ;
if ( wlds_table7[ 1 ] .match ( 'Awans!' ) ) { ; }
else {
wlds_table7[ 3 ] = document.getElementById ( 'umiejetnosci' ) .getElementsByTagName ( "ul" ) [ 0 ] .getElementsByTagName ( "li" ) [ i] .innerHTML ;
document.getElementById ( 'umiejetnosci' ) .getElementsByTagName ( "ul" ) [ 0 ] .getElementsByTagName ( "li" ) [ i] .innerHTML = wlds_table7[ 3 ] + wlds_table7[ 1 ] + '%' + wlds_table7[ 2 ] ;
} ;
var set_click_wlds = document.getElementById ( 'skl_num_' + i + '_wlds' ) ;
set_click_wlds.setAttribute ( 'onclick' , 'wlds_table1[' + i+ '] = wlds_table3[' + i+ '];wlds_table2[' + i+ '] = wlds_table4[' + i+ '];set_one_skl_zero()' ) ;
var set_click_wlds = document.getElementById ( 'btl_num_' + i + '_wlds' ) ;
set_click_wlds.setAttribute ( 'onclick' , 'wlds_table8[' + i+ '] = ' + btl_count + ';set_one_btl_zero()' ) ;
} ; // koniec for
var umiej_wlds = document.getElementById ( 'umiejetnosci' ) .getElementsByTagName ( "ul" ) [ 0 ] .innerHTML ;
var set_wlds = '<div id="set1_id_wlds" style="cursor:pointer"><span class="LgreenJ" title="zeruj wszystkie skille">Set all skills 0</span></div>' ;
document.getElementById ( 'umiejetnosci' ) .getElementsByTagName ( "ul" ) [ 0 ] .innerHTML = set_wlds + umiej_wlds;
var set_click_wlds= document.getElementById ( "set1_id_wlds" ) ;
set_click_wlds.setAttribute ( 'onclick' , 'set_new()' ) ;
} ; // your code goes here
Ly92ZXJzaW9uOiAxLjMuNSAwMS0zMC0yMDEwCi8vZm9yIE9wZXJhIGFuZCBGRgovLyA9PVVzZXJTY3JpcHQ9PQovLyBAYXV0aG9yICAgICAgIExvc3N0YXJvdAovLyBAbmFtZSAgICAgICAgIFdpbGN6eSBMaWN6bmlrIERvZGFueWNoIFNraWxpCi8vIEBpbmNsdWRlICAgICAgaHR0cDovL3cuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLnMuY29tL3dhbmRlcmVyL2lkYXJpb25pcy5waHAqCi8vIEBpbmNsdWRlICAgICAgaHR0cDovL2kuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLnMuY29tL3dhbmRlcmVyL2lkYXJpb25pcy5waHAqCi8vID09L1VzZXJTY3JpcHQ9PQoKaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VtaWVqZXRub3NjaScpKQp7Ci8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovKioKKgoqICBKYXZhc2NyaXB0IGNvb2tpZXMKKiAgaHR0cDovL3cuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLnQuaW5mby8KKgoqKi8KZnVuY3Rpb24gQ29va2llSGFuZGxlcigpIHsKCXRoaXMuc2V0Q29va2llID0gZnVuY3Rpb24gKG5hbWUsIHZhbHVlLCBzZWNvbmRzKSB7CgkJaWYgKHR5cGVvZihzZWNvbmRzKSAhPSAndW5kZWZpbmVkJykgewoJCQl2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7CgkJCWRhdGUuc2V0VGltZShkYXRlLmdldFRpbWUoKSArIChzZWNvbmRzKjEwMDApKTsKCQkJdmFyIGV4cGlyZXMgPSAiOyBleHBpcmVzPSIgKyBkYXRlLnRvR01UU3RyaW5nKCk7CQl9CgkJZWxzZSB7CQkJdmFyIGV4cGlyZXMgPSAiIjsJCX0KCQlkb2N1bWVudC5jb29raWUgPSBuYW1lKyI9Iit2YWx1ZStleHBpcmVzKyI7IHBhdGg9LyI7CX0KCXRoaXMuZ2V0Q29va2llID0gZnVuY3Rpb24gKG5hbWUpIHsKCQluYW1lID0gbmFtZSArICI9IjsKCQl2YXIgY2FycmF5ID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCc7Jyk7CgkJZm9yKHZhciBpPTA7aSA8IGNhcnJheS5sZW5ndGg7aSsrKSB7CgkJCXZhciBjID0gY2FycmF5W2ldOwoJCQl3aGlsZSAoYy5jaGFyQXQoMCk9PScgJykgYyA9IGMuc3Vic3RyaW5nKDEsYy5sZW5ndGgpOwoJCQlpZiAoYy5pbmRleE9mKG5hbWUpID09IDApIHJldHVybiBjLnN1YnN0cmluZyhuYW1lLmxlbmd0aCxjLmxlbmd0aCk7CQl9CgkJcmV0dXJuIG51bGw7CX0KCXRoaXMuZGVsZXRlQ29va2llID0gZnVuY3Rpb24gKG5hbWUpIHsKCQl0aGlzLnNldENvb2tpZShuYW1lLCAiIiwgLTEpOwl9Cn0KLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCnZhciBDb29raWVzID0gbmV3IENvb2tpZUhhbmRsZXIoKTsKdmFyIGJyb3dzZXIgPSBuYXZpZ2F0b3IuYXBwTmFtZTsKCnZhciB3bGRzX3RhYmxlMSA9IG5ldyBBcnJheSgpOyAgLy8gemF3aWVyYSBwb3N6Y3plZ29sbmUgc2tpbGUgeiBjaWFzdGVjemthCnZhciB3bGRzX3RhYmxlMiA9IG5ldyBBcnJheSgpOyAgLy8gemF3aWVyYSAlIHBvc3pjemVnb2xueWNoIHNraWxpIHogY2lhc3RlY3prYQoKdmFyIHdsZHNfdGFibGUzID0gbmV3IEFycmF5KCk7ICAvLyB6YXdpZXJhIHBvc3pjemVnb2xuZSBza2lsZSBha3R1YWxuZQp2YXIgd2xkc190YWJsZTQgPSBuZXcgQXJyYXkoKTsgIC8vIHphd2llcmEgJSBwb3N6Y3plZ29sbnljaCBza2lsaSBha3R1YWxuZQoKdmFyIHdsZHNfdGFibGU1ID0gbmV3IEFycmF5KCk7ICAvLyBpbm5lckhUTUwnZSBwb3N6Y3plZ29sbnljaCBza2lsaQp2YXIgd2xkc190YWJsZTYgPSBuZXcgQXJyYXkoKTsgIC8vIHphd2llcmEgcG9kemllbG9uYSB0cmVzYyBza2lsYQp2YXIgd2xkc190YWJsZTcgPSBuZXcgQXJyYXkoKTsgIC8vIHphd2llcmEgcG9kemllbG9uYSB0cmVzYyBza2lsYQp2YXIgd2xkc190YWJsZTggPSBuZXcgQXJyYXkoKTsgIC8vIHphd2llcmEgZGFuZSBsaWN6bmlrYSBlbmVyZ2lpIHogY2lhc3RlY3prYQoKdmFyIHdsZHNfdGFibGU5ID0gbmV3IEFycmF5KCk7ICAvLyB6YXdpZXJhIGRhbmUgeiBjaWFzdGVjemthIC8gZHppZWxvbmUgbmEgMwoKLy8gcG9iaWVyYSBpbWllCnZhciBwbGF5ZXJuYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImluZm9ybWFjamUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZGl2IilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInAiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpWzBdLmlubmVySFRNTDsKcGxheWVybmFtZSA9IHBsYXllcm5hbWUucmVwbGFjZSgnU2lyICcsJycpOwpwbGF5ZXJuYW1lID0gcGxheWVybmFtZS5yZXBsYWNlKCdMYWR5ICcsJycpOwpwbGF5ZXJuYW1lID0gcGxheWVybmFtZS5yZXBsYWNlKCdMb3JkICcsJycpOwpwbGF5ZXJuYW1lID0gcGxheWVybmFtZS5yZXBsYWNlKCdCcm4gJywnJyk7CnBsYXllcm5hbWUgPSBwbGF5ZXJuYW1lLnJlcGxhY2UoJ0hyICcsJycpOwpwbGF5ZXJuYW1lID0gcGxheWVybmFtZS5yZXBsYWNlKCdNcmsgJywnJyk7CnBsYXllcm5hbWUgPSBwbGF5ZXJuYW1lLnJlcGxhY2UoJyAnLCcnKTtwbGF5ZXJuYW1lID0gcGxheWVybmFtZS5yZXBsYWNlKCcgJywnJyk7CgovLyBsaWN6bmlrIHdhbGsKaWYoQ29va2llcy5nZXRDb29raWUocGxheWVybmFtZSArICdfYnRsX2NvdW50Jykpewl2YXIgYnRsX2NvdW50ID0gQ29va2llcy5nZXRDb29raWUocGxheWVybmFtZSArICdfYnRsX2NvdW50Jyk7CX0KZWxzZXsJdmFyIGJ0bF9jb3VudCA9IDA7CUNvb2tpZXMuc2V0Q29va2llKHBsYXllcm5hbWUgKyAnX2J0bF9jb3VudCcsIGJ0bF9jb3VudCwgMzY1KjYwKjYwKTsJfTsKCgovLyB6bGljemEgaWxvc2MgcG9rYXphbnljaCBza2lsaQp2YXIgbGlfbnVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VtaWVqZXRub3NjaScpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ1bCIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaSIpLmxlbmd0aDsKCi8vIHNwcmF3ZHphIGN6eSBqZXN0IGNpYXN0ZWN6a28gaSBld2VudHVhbG5pZSBwb2JpZXJhIGplIGkgcm96ZHppZWxhIGx1YiB0d29yenkgcHVzdGUKaWYoQ29va2llcy5nZXRDb29raWUocGxheWVybmFtZSArICdfd2xkcycpKXsKfSBlbHNlewpDb29raWVzLnNldENvb2tpZShwbGF5ZXJuYW1lICsgJ193bGRzJywgMCArICcsJyArIDAgKyAnLCcgKyAwICsgJywnICsgMCArICcsJyArIDAgKyAnLCcgKyAwICsgJywnICsgMCArICcsJyArIDAgKyAnLCcgKyAwICsgJywnICsgMCArICcsJyArIDAgKyAnLCcgKyAwICsgJywnICsgMCArICdfJyArIDAgKyAnLCcgKyAwICsgJywnICsgMCArICcsJyArIDAgKyAnLCcgKyAwICsgJywnICsgMCArICcsJyArIDAgKyAnLCcgKyAwICsgJywnICsgMCArICcsJyArIDAgKyAnLCcgKyAwICsgJywnICsgMCArICcsJyArIDAgKyAnXycgKyAwICsgJywnICsgMCArICcsJyArIDAgKyAnLCcgKyAwICsgJywnICsgMCArICcsJyArIDAgKyAnLCcgKyAwICsgJywnICsgMCArICcsJyArIDAgKyAnLCcgKyAwICsgJywnICsgMCArICcsJyArIDAgKyAnLCcgKyAwLCAzNjUqNjAqNjApOwp9OwoKCgp2YXIgY29va19kYXRhMF93bGRzID0gQ29va2llcy5nZXRDb29raWUocGxheWVybmFtZSArICdfd2xkcycpOwp3bGRzX3RhYmxlOSA9IGNvb2tfZGF0YTBfd2xkcy5zcGxpdCgiXyIsIDMgKTsKCndsZHNfdGFibGUxID0gd2xkc190YWJsZTlbMF0uc3BsaXQoIiwiLCBsaV9udW0gKTsKCndsZHNfdGFibGUyID0gd2xkc190YWJsZTlbMV0uc3BsaXQoIiwiLCBsaV9udW0gKTsKCndsZHNfdGFibGU4ID0gd2xkc190YWJsZTlbMl0uc3BsaXQoIiwiLCBsaV9udW0gKTsKCndsZHNfdGFibGUzWzBdID0gMDt3bGRzX3RhYmxlM1sxXSA9IDA7d2xkc190YWJsZTNbMl0gPSAwO3dsZHNfdGFibGUzWzNdID0gMDt3bGRzX3RhYmxlM1s0XSA9IDA7d2xkc190YWJsZTNbNV0gPSAwO3dsZHNfdGFibGUzWzZdID0gMDt3bGRzX3RhYmxlM1s3XSA9IDA7d2xkc190YWJsZTNbOF0gPSAwO3dsZHNfdGFibGUzWzldID0gMDt3bGRzX3RhYmxlM1sxMF0gPSAwO3dsZHNfdGFibGUzWzExXSA9IDA7CndsZHNfdGFibGU0WzBdID0gMDt3bGRzX3RhYmxlNFsxXSA9IDA7d2xkc190YWJsZTRbMl0gPSAwO3dsZHNfdGFibGU0WzNdID0gMDt3bGRzX3RhYmxlNFs0XSA9IDA7d2xkc190YWJsZTRbNV0gPSAwO3dsZHNfdGFibGU0WzZdID0gMDt3bGRzX3RhYmxlNFs3XSA9IDA7d2xkc190YWJsZTRbOF0gPSAwO3dsZHNfdGFibGU0WzldID0gMDt3bGRzX3RhYmxlNFsxMF0gPSAwO3dsZHNfdGFibGU0WzExXSA9IDA7Cgp2YXIgc2V0X25ldyA9IGZ1bmN0aW9uKCl7CgpDb29raWVzLnNldENvb2tpZShwbGF5ZXJuYW1lICsgJ193bGRzJywgCndsZHNfdGFibGUzWzBdICsgJywnICsgd2xkc190YWJsZTNbMV0gKyAnLCcgKyB3bGRzX3RhYmxlM1syXSArICcsJyArIHdsZHNfdGFibGUzWzNdICsgJywnICsgd2xkc190YWJsZTNbNF0gKyAnLCcgKyB3bGRzX3RhYmxlM1s1XSArICcsJyArIHdsZHNfdGFibGUzWzZdICsgJywnICsgd2xkc190YWJsZTNbN10gKyAnLCcgKyB3bGRzX3RhYmxlM1s4XSArICcsJyArIHdsZHNfdGFibGUzWzldICsgJywnICsgd2xkc190YWJsZTNbMTBdICsgJywnICsgd2xkc190YWJsZTNbMTFdICsgJ18nICsgd2xkc190YWJsZTRbMF0gKyAnLCcgKyB3bGRzX3RhYmxlNFsxXSArICcsJyArIHdsZHNfdGFibGU0WzJdICsgJywnICsgd2xkc190YWJsZTRbM10gKyAnLCcgKyB3bGRzX3RhYmxlNFs0XSArICcsJyArIHdsZHNfdGFibGU0WzVdICsgJywnICsgd2xkc190YWJsZTRbNl0gKyAnLCcgKyB3bGRzX3RhYmxlNFs3XSArICcsJyArIHdsZHNfdGFibGU0WzhdICsgJywnICsgd2xkc190YWJsZTRbOV0gKyAnLCcgKyB3bGRzX3RhYmxlNFsxMF0gKyAnLCcgKyB3bGRzX3RhYmxlNFsxMV0gKyAnXycgKyBidGxfY291bnQgKyAnLCcgKyBidGxfY291bnQgKyAnLCcgKyBidGxfY291bnQgKyAnLCcgKyBidGxfY291bnQgKyAnLCcgKyBidGxfY291bnQgKyAnLCcgKyBidGxfY291bnQgKyAnLCcgKyBidGxfY291bnQgKyAnLCcgKyBidGxfY291bnQgKyAnLCcgKyBidGxfY291bnQgKyAnLCcgKyBidGxfY291bnQgKyAnLCcgKyBidGxfY291bnQgKyAnLCcgKyBidGxfY291bnQsIDM2NSo2MCo2MCk7Cgpsb2NhdGlvbi5yZWxvYWQoKTsKfTsKCnZhciBzZXRfb25lX3NrbF96ZXJvID0gZnVuY3Rpb24oKXsKCkNvb2tpZXMuc2V0Q29va2llKHBsYXllcm5hbWUgKyAnX3dsZHMnLCB3bGRzX3RhYmxlMVswXSArICcsJyArIHdsZHNfdGFibGUxWzFdICsgJywnICsgd2xkc190YWJsZTFbMl0gKyAnLCcgKyB3bGRzX3RhYmxlMVszXSArICcsJyArIHdsZHNfdGFibGUxWzRdICsgJywnICsgd2xkc190YWJsZTFbNV0gKyAnLCcgKyB3bGRzX3RhYmxlMVs2XSArICcsJyArIHdsZHNfdGFibGUxWzddICsgJywnICsgd2xkc190YWJsZTFbOF0gKyAnLCcgKyB3bGRzX3RhYmxlMVs5XSArICcsJyArIHdsZHNfdGFibGUxWzEwXSArICcsJyArIHdsZHNfdGFibGUxWzExXSArICdfJyArIHdsZHNfdGFibGUyWzBdICsgJywnICsgd2xkc190YWJsZTJbMV0gKyAnLCcgKyB3bGRzX3RhYmxlMlsyXSArICcsJyArIHdsZHNfdGFibGUyWzNdICsgJywnICsgd2xkc190YWJsZTJbNF0gKyAnLCcgKyB3bGRzX3RhYmxlMls1XSArICcsJyArIHdsZHNfdGFibGUyWzZdICsgJywnICsgd2xkc190YWJsZTJbN10gKyAnLCcgKyB3bGRzX3RhYmxlMls4XSArICcsJyArIHdsZHNfdGFibGUyWzldICsgJywnICsgd2xkc190YWJsZTJbMTBdICsgJywnICsgd2xkc190YWJsZTJbMTFdICsgJ18nICsgd2xkc190YWJsZTlbMl0sIDM2NSo2MCo2MCk7Cgpsb2NhdGlvbi5yZWxvYWQoKTsKfTsKCnZhciBzZXRfb25lX2J0bF96ZXJvID0gZnVuY3Rpb24oKXsKCkNvb2tpZXMuc2V0Q29va2llKHBsYXllcm5hbWUgKyAnX3dsZHMnLCB3bGRzX3RhYmxlOVswXSArICdfJyArIHdsZHNfdGFibGU5WzFdICsgJ18nICsgd2xkc190YWJsZThbMF0gKyAnLCcgKyB3bGRzX3RhYmxlOFsxXSArICcsJyArIHdsZHNfdGFibGU4WzJdICsgJywnICsgd2xkc190YWJsZThbM10gKyAnLCcgKyB3bGRzX3RhYmxlOFs0XSArICcsJyArIHdsZHNfdGFibGU4WzVdICsgJywnICsgd2xkc190YWJsZThbNl0gKyAnLCcgKyB3bGRzX3RhYmxlOFs3XSArICcsJyArIHdsZHNfdGFibGU4WzhdICsgJywnICsgd2xkc190YWJsZThbOV0gKyAnLCcgKyB3bGRzX3RhYmxlOFsxMF0gKyAnLCcgKyB3bGRzX3RhYmxlOFsxMV0sIDM2NSo2MCo2MCk7Cgpsb2NhdGlvbi5yZWxvYWQoKTsKfTsKCmlmKGJyb3dzZXIgPT0gJ09wZXJhJyl7Cn0gZWxzZXsKdW5zYWZlV2luZG93LndsZHNfdGFibGUxID0gd2xkc190YWJsZTE7CnVuc2FmZVdpbmRvdy53bGRzX3RhYmxlMiA9IHdsZHNfdGFibGUyOwp1bnNhZmVXaW5kb3cud2xkc190YWJsZTMgPSB3bGRzX3RhYmxlMzsKdW5zYWZlV2luZG93LndsZHNfdGFibGU0ID0gd2xkc190YWJsZTQ7CnVuc2FmZVdpbmRvdy53bGRzX3RhYmxlOCA9IHdsZHNfdGFibGU4Owp1bnNhZmVXaW5kb3cud2xkc190YWJsZTkgPSB3bGRzX3RhYmxlOTsKdW5zYWZlV2luZG93LnNldF9uZXcgPSBzZXRfbmV3Owp1bnNhZmVXaW5kb3cuc2V0X29uZV9za2xfemVybyA9IHNldF9vbmVfc2tsX3plcm87CnVuc2FmZVdpbmRvdy5zZXRfb25lX2J0bF96ZXJvID0gc2V0X29uZV9idGxfemVybzsKfTsKCnZhciBpPTA7CmZvciAoaT0wO2k8PWxpX251bS0xO2krKyl7CndsZHNfdGFibGU1W2ldID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VtaWVqZXRub3NjaScpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ1bCIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaSIpW2ldLmlubmVySFRNTDsKCndsZHNfdGFibGU1W2ldID0gd2xkc190YWJsZTVbaV0ucmVwbGFjZSgnKycsJ0AnKTsKdmFyIHgwID0gd2xkc190YWJsZTVbaV0uc2VhcmNoKCJAIik7CndsZHNfdGFibGU1W2ldID0gd2xkc190YWJsZTVbaV0ucmVwbGFjZSgnQCcsJysnKTsKCi8vIHBvYmllcmEgZGFuZSBza2lsaQp3bGRzX3RhYmxlM1tpXSA9IHdsZHNfdGFibGU1W2ldLnN1YnN0cih4MC01LDQpOwp3bGRzX3RhYmxlM1tpXSA9IHdsZHNfdGFibGUzW2ldLnJlcGxhY2UoJyknLCcnKTsKd2xkc190YWJsZTNbaV0gPSB3bGRzX3RhYmxlM1tpXS5yZXBsYWNlKCcoJywnJyk7CndsZHNfdGFibGUzW2ldID0gd2xkc190YWJsZTNbaV0ucmVwbGFjZSgnICcsJycpOwp3bGRzX3RhYmxlNFtpXSA9IHdsZHNfdGFibGU1W2ldLnN1YnN0cih4MCsxLDMpOwp3bGRzX3RhYmxlNFtpXSA9IHdsZHNfdGFibGU0W2ldLnJlcGxhY2UoJyUnLCcnKTsKCnZhciB4MTt2YXIgeDI7CndsZHNfdGFibGUxW2ldID0gcGFyc2VGbG9hdCh3bGRzX3RhYmxlMVtpXSk7CndsZHNfdGFibGUyW2ldID0gcGFyc2VGbG9hdCh3bGRzX3RhYmxlMltpXSk7CndsZHNfdGFibGUzW2ldID0gcGFyc2VGbG9hdCh3bGRzX3RhYmxlM1tpXSk7CndsZHNfdGFibGU0W2ldID0gcGFyc2VGbG9hdCh3bGRzX3RhYmxlNFtpXSk7CndsZHNfdGFibGU4W2ldID0gcGFyc2VGbG9hdCh3bGRzX3RhYmxlOFtpXSk7CgppZih3bGRzX3RhYmxlMVtpXSA9PSB3bGRzX3RhYmxlM1tpXSl7eDEgPSAwO307CmlmKHdsZHNfdGFibGUxW2ldIDwgd2xkc190YWJsZTNbaV0pe3gxID0gd2xkc190YWJsZTNbaV0gLSB3bGRzX3RhYmxlMVtpXTt9OwppZih3bGRzX3RhYmxlMVtpXSA+IHdsZHNfdGFibGUzW2ldKXt4MSA9IDEwMCAtIHdsZHNfdGFibGUxW2ldICsgd2xkc190YWJsZTNbaV07fTsKaWYod2xkc190YWJsZTJbaV0gPT0gd2xkc190YWJsZTRbaV0pe3gyID0gMDt9OwppZih3bGRzX3RhYmxlMltpXSA8IHdsZHNfdGFibGU0W2ldKXt4MiA9IHdsZHNfdGFibGU0W2ldIC0gd2xkc190YWJsZTJbaV07fTsKaWYod2xkc190YWJsZTJbaV0gPiB3bGRzX3RhYmxlNFtpXSl7eDIgPSAxMDAgLSB3bGRzX3RhYmxlMltpXSArIHdsZHNfdGFibGU0W2ldO307Cgp2YXIgeDYgPSBidGxfY291bnQgLSB3bGRzX3RhYmxlOFtpXTsKCnZhciB4NCA9IHdsZHNfdGFibGU1W2ldLnN1YnN0cih4MC0xMSw1KTsKdmFyIHg1ID0geDQucmVwbGFjZSgnICcsJzxzcGFuIGlkPSJza2xfbnVtXycrIGkgKyAnX3dsZHMiIGNsYXNzPSJMZ3JlZW5KIiBzdHlsZT0iY3Vyc29yOnBvaW50ZXIiIHRpdGxlPSJ6ZXJ1aiB0ZW4gc2tpbGwiPiAtc2V0IDAtPC9zcGFuPiw8c3BhbiBpZD0iYnRsX251bV8nKyBpICsgJ193bGRzIiBjbGFzcz0iTGdyZWVuSiIgc3R5bGU9ImN1cnNvcjpwb2ludGVyIiB0aXRsZT0ibGljemJhIHN0b2N6b255Y2ggd2Fsaywga2xpa25paiBhYnkgd3l6ZXJvd2EmIzI2MzsiPmJ0bDo8c3BhbiBzdHlsZT0iY29sb3I6ICNjY2NjOTk7Ij4nICsgeDYgKyAnPC9zcGFuPjwvc3Bhbj48L2JyPicpOwp3bGRzX3RhYmxlNVtpXSA9IHdsZHNfdGFibGU1W2ldLnJlcGxhY2UoeDQseDUpOwp3bGRzX3RhYmxlNiA9IHdsZHNfdGFibGU1W2ldLnNwbGl0KCcrJywgMik7CndsZHNfdGFibGU3ID0gd2xkc190YWJsZTZbMV0uc3BsaXQoJyUnLCAzKTsKCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bWllamV0bm9zY2knKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidWwiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGkiKVtpXS5pbm5lckhUTUwgPSB3bGRzX3RhYmxlNlswXSArICcrPHNwYW4gY2xhc3M9IkxncmVlbkoiPicgKyB4MSArICc8L3NwYW4+JyArICcsICcgKyB3bGRzX3RhYmxlN1swXSArICclICs8c3BhbiBjbGFzcz0iTGdyZWVuSiI+JyArIHgyICsgJzwvc3Bhbj4nOwppZih3bGRzX3RhYmxlN1sxXS5tYXRjaCgnQXdhbnMhJykpezt9CmVsc2V7CndsZHNfdGFibGU3WzNdID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VtaWVqZXRub3NjaScpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ1bCIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaSIpW2ldLmlubmVySFRNTDsKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VtaWVqZXRub3NjaScpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ1bCIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaSIpW2ldLmlubmVySFRNTCA9ICB3bGRzX3RhYmxlN1szXSArIHdsZHNfdGFibGU3WzFdICsgJyUnICsgd2xkc190YWJsZTdbMl07Cn07Cgp2YXIgc2V0X2NsaWNrX3dsZHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2tsX251bV8nKyBpICsgJ193bGRzJyk7IApzZXRfY2xpY2tfd2xkcy5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnd2xkc190YWJsZTFbJytpKyddID0gd2xkc190YWJsZTNbJytpKyddO3dsZHNfdGFibGUyWycraSsnXSA9IHdsZHNfdGFibGU0WycraSsnXTtzZXRfb25lX3NrbF96ZXJvKCknKTsKdmFyIHNldF9jbGlja193bGRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bF9udW1fJysgaSArICdfd2xkcycpOyAKc2V0X2NsaWNrX3dsZHMuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ3dsZHNfdGFibGU4WycraSsnXSA9ICcgKyBidGxfY291bnQgKyAnO3NldF9vbmVfYnRsX3plcm8oKScpOwp9OyAgLy8ga29uaWVjIGZvcgoKdmFyIHVtaWVqX3dsZHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW1pZWpldG5vc2NpJykuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInVsIilbMF0uaW5uZXJIVE1MOwp2YXIgc2V0X3dsZHMgPSAnPGRpdiBpZD0ic2V0MV9pZF93bGRzIiBzdHlsZT0iY3Vyc29yOnBvaW50ZXIiPjxzcGFuIGNsYXNzPSJMZ3JlZW5KIiB0aXRsZT0iemVydWogd3N6eXN0a2llIHNraWxsZSI+U2V0IGFsbCBza2lsbHMgMDwvc3Bhbj48L2Rpdj4nOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW1pZWpldG5vc2NpJykuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInVsIilbMF0uaW5uZXJIVE1MID0gIHNldF93bGRzICsgdW1pZWpfd2xkczsKCnZhciBzZXRfY2xpY2tfd2xkcz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0MV9pZF93bGRzIik7IApzZXRfY2xpY2tfd2xkcy5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnc2V0X25ldygpJyk7CgoKCgoKfTsvLyB5b3VyIGNvZGUgZ29lcyBoZXJl