1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. bernd670

Beiträge von bernd670

  • Knoblix - Das Knobelspiel - Beta 1.0.1

    • bernd670
    • 27. Mai 2009 um 20:09

    Nettes Spiel!

    2 kleine Anmerkungen:

    1. Die Hotkey's sollten deaktivert werden wenn das Fenster mit dem Spiel nicht aktiv ist, sonst ist es so schwer in einem andern Fenster den Cursor zu bewegen.
    2. Standard schreibt man hinten mit "d".

    Falls noch jemand Probleme mit Level 2 u./o. 3 hat:

    Lösung Level 2


    7o 1r 1o 9r 1o 3r 2u 2l 8u 9r 4o 4r 2o 2r 2u 3r 4o 1l 1o 5l 1o 3l 3r 1u 4r

    Lösung Level 3


    2r 12u 1r 2u 4l 1o 1u 6r 3o 1r 1o 2l 2o 1l 6o 2r 5o 2l 2o 5r 1o 2r 1u 1o 2l 1u 3l 2u 1r 3u 3r 1u 4r 1o 4r 4u 2r 2o 8r 6o 6l

  • _FFOpenURL und 10.x.x.x Adressen

    • bernd670
    • 27. Mai 2009 um 19:01

    Na wenn's nicht mehr ist:

    Spoiler anzeigen
    [autoit]

    Func __FFIsURL(ByRef $URL)
    Return (StringRegExp($URL, '^^((ht|f)tp(s?)\:\/\/|~/|/)([\w]+:\w+@)?(([a-zA-Z]{1}([\w\-]+\.)+([\w]{2,5}))|(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|(localhost))(:[\d]{1,5})?((/?\w+/)+|/?)(\w+\.[\w]{3,4})?((\?\w+=\w+)?(&\w+=\w+)*)?') Or _
    StringLeft($URL, 6) = "about:" Or _
    StringLeft($URL, 7) = "chrome:" Or _
    StringLeft($URL, 8) = "file:///")
    EndFunc ;==>__FFIsURL

    [/autoit]

    Edit: Localhost eingetragen!

  • Backup unter Windows

    • bernd670
    • 27. Mai 2009 um 18:10
    Zitat von alfred

    Hab jetzt nicht alles gelesen ( :rolleyes: ), aber ich benutze robocopy - ist im W2003 Resource Kit enthalten... bei Heise und Wintotal gibts ne gute Anleitung dafür.

    Leider hab ich das Problem, dass bei einigen Dateien der Zeitstempel falsch kopiert wird 8|
    Manche Dateien sind auf dem Ziel-System um 1 sek älter bzw. neuer als auf meinen (Quell-)PC...
    Das bringt mich noch zum Durchdrehen :( Zeit ist auf beiden synchronisert... vermute es liegt an den verschiedenen Filesystemen oder an der Übertragungsdauer :?:
    (PC -> NAS) - naja... ansonsten ist robocopy aber echt nicht schlecht ;)

    Mit dem Filesystem liegst Du bei deiner Vermutung richte wurde hier auch schon mal diskutiert!

  • udp paket an sich selber senden?

    • bernd670
    • 27. Mai 2009 um 16:54

    Bevor hier noch jemand was illegales macht! Closed!

  • _FFOpenURL und 10.x.x.x Adressen

    • bernd670
    • 27. Mai 2009 um 13:31

    Stilgar, normalerweise ist eine URL auch gültig wenn statt des Hosts die IP-Adresse enthalten ist.

  • Datum über Kommandozeilenparameter übergeben

    • bernd670
    • 27. Mai 2009 um 11:50

    Hallo,

    na klar hilft das weiter.
    Im 1. Script hast Du $Datum einmal als Control und zur gleichen Zeit als String verwendet und in der Funktion Startbutton nicht das Controlfeld ausgelesen.
    Im 2. Script hast Du die Anzahl der übergebenen Parameter ausgegeben und nicht den 1. Paramter.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <EditConstants.au3>
    #Include <Date.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1) ; Change to OnEvent mode
    $mainwindow = GUICreate("Auto Changer", 400, 320)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateLabel("Datum : ",180, 220)
    $Datum= GUICtrlCreateDate("",180, 240, 150, 20)
    $DTM_SETFORMAT_ = 0x1032
    $style = "yyyy/MM/dd"
    GUICtrlSendMsg($Datum, $DTM_SETFORMAT_, 0, $style)
    ;$Datum=_DateTimeFormat($Datum,0)
    GUICtrlSetOnEvent($Datum, "Datum")

    [/autoit] [autoit][/autoit] [autoit]

    ;Start-Button zur Bestätigung
    $Startbutton = GUICtrlCreateButton("Script-Start", 50, 270, 90)
    GUICtrlSetOnEvent($Startbutton, "Startbutton")

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(1000) ; Idle around
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func Datum()
    $szDatum=GUICtrlRead($Datum)
    RUN("notepad.exe")
    WinWaitActive("Unbenannt - Editor")
    $szDatum=_DateTimeFormat($szDatum,0)
    Send($szDatum)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Startbutton()
    RUN('AutoIt3.exe Test2.au3 ' & GUICtrlRead($Datum))
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func CLOSEClicked()
    Exit
    EndFunc

    [/autoit]
    Test2.au3
    [autoit]

    RUN("notepad.exe")
    WinWaitActive("Unbenannt - Editor")
    Send($CmdLine[1])

    [/autoit]
  • Datum über Kommandozeilenparameter übergeben

    • bernd670
    • 27. Mai 2009 um 11:19

    Hallo,

    bitte den Quellcode zu zur Verfügung stellen das man zumindest ein lauffähiges Testprogramm hat, man ist sonst immer länger damit beschäftigt ein lauffähiges Programm zu schreiben als sich mit dem Fehler zu beschäftigen.

  • µit - März

    • bernd670
    • 27. Mai 2009 um 07:26
    Zitat von Andy

    Hallo Bernd,
    habe meinen Fehler gefunden...

    Spoiler anzeigen
    [autoit]


    FileInstall(".\Sudoku.dll", @ScriptDir & "\Sudoku.dll", 0)

    [/autoit] [autoit][/autoit] [autoit]

    Global $szfield, $m, $t, $k = 0,$solve,$gesamt=0
    $dll=DllOpen("Sudoku.dll")
    ConsoleWrite("Lösen von 35000 Sudokus......Vorgang läuft...." & @CRLF)
    $t = TimerInit()

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To 35000
    $m = TimerInit()
    $szfield = FileReadLine("vielesudokus.txt", $i) ;36000 sudokus
    $m = TimerInit()
    $arDLL = DllCall($dll, "str", "SudokuSolve", "str", $szfield)
    If IsArray($arDLL) Then $solve = $arDLL[0]
    If $k > 5000 Then ;alle 5 sekunden info in die konsole
    $gesamt+=$k
    $k = 0
    ConsoleWrite("Nach " & Int(($gesamt) / 1000) & " Sekunden wurden " & $i & " Sudokus gelöst" & @CRLF)
    Else
    $k = $k + TimerDiff($m)
    EndIf
    Next
    ConsoleWrite("Gesamtzeit: " & Int($k) & " MilliSekunden Durchschnitt: "&int($i/$k*1000)&@crlf)
    Exit

    [/autoit]


    Habe das Script eben nochmal durchlaufen lassen, dein Ergebnis wurde in etwa bestätigt. Weiss der Henker, hab wahrscheinlich nur die 2 von der 236 Sudokus/Sekunde vergessen 8|

    Also ist deine Backtrack- DLL über den dicken Daumen achzig- bis hundert mal schneller wie ein mit Strategien arbeitendes AutoIt-Script.

    Alles anzeigen

    Deine vielen TimerInit im Script lassen eher vermuten das Du vorher die komplette Schleife gemessen hast, was ein Test mit deiner Routine auch bestätigt, ich komme dann auch nur auf 22 Sudoku/s. FileReadLine und die ganzen Ausgaben schlagen natürlich bei einer Routine die im ms-Bereich arbeitet ganz schon zu Buche. ;)

    Man sollte immer nur die zu Testende Funktion messen, selbst eine Rechnung und eine Ausgabe kann das Ergebnis unter umständen schon erheblich verfälschen.

    Spoiler anzeigen
    [autoit]

    FileInstall(".\Sudoku.dll", @ScriptDir & "\Sudoku.dll", 0)

    [/autoit] [autoit][/autoit] [autoit]

    Global $szfield, $m, $t, $k = 0,$solve,$gesamt=0
    $dll=DllOpen("Sudoku.dll")
    ConsoleWrite("Lösen von 35000 Sudokus......Vorgang läuft...." & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    $k = 0
    $gesamt = 0
    For $i = 1 To 35000
    $szfield = FileReadLine("vielesudokus.txt", $i) ;36000 sudokus
    $m = TimerInit()
    $arDLL = DllCall($dll, "str", "SudokuSolve", "str", $szfield)
    $k += TimerDiff($m)
    If IsArray($arDLL) Then $solve = $arDLL[0]
    If $k >= 5000 Then ;alle 5 sekunden info in die konsole
    $gesamt+=$k
    $k = 0
    ConsoleWrite("Nach " & Int(($gesamt) / 1000) & " Sekunden wurden " & $i & " Sudokus gelöst" & @CRLF)
    EndIf
    Next
    $gesamt+=$k

    [/autoit] [autoit][/autoit] [autoit]

    ConsoleWrite("Gesamtzeit: " & Int($gesamt) & " MilliSekunden Durchschnitt: "&int($i/($gesamt/1000)) & " Sudokus/s" &@crlf)

    [/autoit] [autoit][/autoit] [autoit]

    DllClose($dll)
    Exit

    [/autoit]
  • µit - März

    • bernd670
    • 26. Mai 2009 um 22:18

    Hallo,

    kannst Du mir mal bitte die Testroutine zeigen mit der Du meine DLL getestet hast. Wenn ich die DLL auf die 48072 17er Sudoku's loslasse kommt dieses Ergebnis raus.

    48072 Sudoku's in 198179.552350606 ms = 242.567910916229 Sudoku's/Sek

    Hier ist meine Testroutine:

    Spoiler anzeigen
    [autoit]

    $szSodukos = FileRead("sudoku17.txt") ; http://people.csse.uwa.edu.au/gordon/sudoku17

    [/autoit] [autoit][/autoit] [autoit]

    $hDLL = DllOpen("Sudoku.dll")

    [/autoit] [autoit][/autoit] [autoit]

    Local $aszSodukos = StringSplit($szSodukos, @CRLF, 3)

    [/autoit] [autoit][/autoit] [autoit]

    $iSudokus = 0
    $tComplete = 0
    For $i = 0 To UBound($aszSodukos) - 1
    If $aszSodukos[$i] = "" Then ContinueLoop
    $iSudokus += 1

    [/autoit] [autoit][/autoit] [autoit]

    $tRunning = TimerInit()
    $arDLL = DllCall($hDLL, "str", "SudokuSolve", "str", $aszSodukos[$i])
    $tTimeDiff = TimerDiff($tRunning)
    If IsArray($arDLL) Then $szSolve = $arDLL[0]
    $tComplete += $tTimeDiff
    ConsoleWrite("Sudoku " & $iSudokus & " :" & @TAB & $szSolve & @TAB & $tTimeDiff & " ms" & @CRLF)
    Next
    ConsoleWrite($iSudokus & " Sudoku's in " & $tComplete & " ms = " & $iSudokus / ($tComplete / 1000) & " Sudoku's/Sek" & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    DllClose($hDLL)

    [/autoit]
  • RegExp - ArrayPattern

    • bernd670
    • 25. Mai 2009 um 22:55

    Hallo,

    meinst Du das so, oder hab ich da was falsch verstanden!

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;~ Local $pattern = "(?:\$[\d\w]+\[\d+\](?:\[\d+\])?\s*=\s*)" & _
    ;~ "(\[(?:(?:\s*(?:\x22|')[^\x22']+(?:\x22|')\s*?,?)*|(?:\s*(?:\$[\d\w]+)\s*),?)*\]|" & _
    ;~ "\[(?:\[(?:(?:\s*(?:\x22|')[^\x22']+(?:\x22|')\s*?,?)*|\s*\$[\d\w]+\s*,?)*\][\s,]*)*\])"
    Local $pattern = "(?:\$[\d\w]+\[[\[\d+\]]+\]+)|(?:\$[\d\w]+)"

    [/autoit] [autoit][/autoit] [autoit]

    Local $test1D = "Local $IrgendwasVor, $Array[33] = [" & Chr(0x22) & "{UP}" & Chr(0x22) & ",$bla_1 , $_blub]"

    [/autoit] [autoit][/autoit] [autoit]

    Local $test2D = "Local $IrgendwasVor, $AccelKeys[5][2] = [[" & Chr(0x22) & "{UP}" & Chr(0x22) & _
    ", $1Up], [" & Chr(0x22) & "{DOWN}" & Chr(0x22) & ", $1Down], ['{TAB}', $1Tab]" & _
    ", ['+{TAB}', $1STab], ['{Enter}', $1Enter]], $IrgendwasNach"

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; check ob Array-Deklaration enthalten
    Local $ret = StringRegExp($test1D, $pattern, 3), $sOut = ''
    _ArrayDisplay($ret)
    If IsArray($ret) Then
    For $i = 0 To UBound($ret) -1
    $sOut &= $ret[$i] & ', '
    Next
    ConsoleWrite(StringTrimRight($sOut, 2) & @CRLF & @CRLF)
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; wenn ja, im Array enthaltene Variablen selektieren
    ;~ If IsArray($ret) Then
    ;~ ConsoleWrite($ret[0] & @CRLF) ; Arrayinhalt ausgeben
    ;~ $ret = StringRegExp($ret[0], '\$[\d\w]+', 3)
    ;~ If IsArray($ret) Then
    ;~ For $i = 0 To UBound($ret) -1
    ;~ $sOut &= $ret[$i] & ', '
    ;~ Next
    ;~ ConsoleWrite(StringTrimRight($sOut, 2) & @CRLF & @CRLF)
    ;~ EndIf
    ;~ EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Local $ret = StringRegExp($test2D, $pattern, 3)
    _ArrayDisplay($ret)
    If IsArray($ret) Then
    For $i = 0 To UBound($ret) -1
    $sOut &= $ret[$i] & ', '
    Next
    ConsoleWrite(StringTrimRight($sOut, 2) & @CRLF)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; wenn ja, im Array enthaltene Variablen selektieren
    ;~ If IsArray($ret) Then
    ;~ $sOut = ''
    ;~ ConsoleWrite($ret[0] & @CRLF) ; Arrayinhalt ausgeben
    ;~ $ret = StringRegExp($ret[0], '\$[\d\w]+', 3)
    ;~ If IsArray($ret) Then
    ;~ For $i = 0 To UBound($ret) -1
    ;~ $sOut &= $ret[$i] & ', '
    ;~ Next
    ;~ ConsoleWrite(StringTrimRight($sOut, 2) & @CRLF)
    ;~ EndIf
    ;~ EndIf

    [/autoit]
  • Ordner nach Anzahl löschen

    • bernd670
    • 25. Mai 2009 um 10:41

    Hallo,

    dafür gibt es bei DirRemove den recurse-Paramter, damit werden alle Dateien und Unterordner gelöscht.
    Einfach so machen wie es in @Oscar's Script steht dann klappt das schon.

  • A3LGDIPlus.au3 oder GTASPIDER HILF!!! xD

    • bernd670
    • 25. Mai 2009 um 07:02

    Normalerweise fehlt aber nur ein Unterstrich im Namen.

  • A3LGDIPlus.au3 oder GTASPIDER HILF!!! xD

    • bernd670
    • 24. Mai 2009 um 22:35

    Hallo,

    PaulIA's Auto3Lib wurde in AutoIt übernommen, nur die Funktionsnamen und hin und wieder die Paramter unterscheiden sich etwas.

  • Ordner nach Anzahl löschen

    • bernd670
    • 24. Mai 2009 um 21:04

    Hallo,

    der DirRemove-Befehl steht bei Oscar schon im Script, er ist wohl nur aus Testgründen deaktiviert.
    Du musst nur die Zeile wieder aktivieren dann sollte es gehen.

    Mit anderer Lösung meinte er das was ich im Beitrag davor geschrieben habe, dass funktioniert so nicht.

  • µit - März

    • bernd670
    • 24. Mai 2009 um 19:40

    Hallo,

    da ich eine solche Routine schon mal mit c++ in einer DLL umgesetzt hatte, habe ich mich heute mal hingesetzt und das ganze nach AutoIt portiert.

    Hier meine Lösung:

    Spoiler anzeigen
    [autoit]

    ; http://moritz.faui2k3.org/de/yasss

    [/autoit] [autoit][/autoit] [autoit]

    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $bDebug = False

    [/autoit] [autoit][/autoit] [autoit]

    Const $ciStackElements = 5

    [/autoit] [autoit][/autoit] [autoit]

    Dim $arSheet[9][9][10] ; Spielfeld
    Dim $arStack[1][$ciStackElements] ; Stack zum zwischenspeichern der Spielfelder bei der Lösungsfindung

    [/autoit] [autoit][/autoit] [autoit]

    ; --------------------------------------------------------
    ; $arStack[n][0] = kopie von $arSheet (als String)
    ; $arStack[n][1] = kopie von $iSeverity
    ; $arStack[n][2] = kopie von $iSolutions
    ; $arStack[n][3] = kopie von $bUniqueSheet
    ; $arStack[n][4] = kopie $bCountSolutions
    ; -------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    Global $iSeverity ; Schwierigkeitsgrad
    Global $iSolutions ; Anzahl der möglichen Lösungen
    Global $bUniqueSheet ; ist True wenn das Spielblatt einmalig ist
    Global $bCountSolutions ; ist True wenn die Lösungsmöglichkeiten gezählt werden sollen

    [/autoit] [autoit][/autoit] [autoit]

    $szSodukos = "506020903008000500000000000600285009000903000800761004000000000004000300201050607" & @CRLF
    $szSodukos &= "000300800640800050875000001500070206000090000209080005400000769020008013007005000" & @CRLF
    $szSodukos &= "050060001004800070800000052200057030000000000030690005790000008010006500500030060" & @CRLF
    $szSodukos &= "000060080020000000001000000070000102500030000000000400004201000300700600000000050" & @CRLF
    $szSodukos &= "000000000005010700070602090009020800060835010004070500030408020001090400000000000" & @CRLF
    $szSodukos &= "060090050704050609000362000006005700982030546003600100000246000601070308050010060" & @CRLF
    $szSodukos &= "007000000000010000000040005000008900400000000906007000008609000000000050030000041" & @CRLF
    $szSodukos &= "530070000600195000098000060800060003400803001700020006060000280000419005000080079" & @CRLF
    $szSodukos &= "100050000006009000080200004040030008007000060900000100030800002000004050000010700" & @CRLF
    $szSodukos &= "000000103900050000000000800060020070001000000000300000000001460720000050000800000" & @CRLF
    $szSodukos &= "000670900360005028805002100020506004009407000700100583070054261000703000084090050" & @CRLF
    $szSodukos &= "628009000109056004500872001900510467807000030060020900004907103000201709091000280" & @CRLF
    $szSodukos &= "076930000000108400300026000045080130010567090200310058068002005704000982020003710" & @CRLF
    $szSodukos &= "120500360300009020007208004019000873403897001002350400000000087850016900200980140" & @CRLF
    $szSodukos &= "906020100020050460000009730004260070700030608030871204800700041213000090490308006" & @CRLF
    $szSodukos &= "007000300050908004900030060070004080102070900000500006800010000000000405060007000" & @CRLF
    $szSodukos &= "060070008900104070003000500200007000008050906030900020000600010805000000000030007" & @CRLF
    $szSodukos &= "000400050107000000000060003800003000001070904060900080040030001900502030006000700" & @CRLF
    $szSodukos &= "004010050050900208300006000020000100000403000005000060000700005901004030070060900" & @CRLF
    $szSodukos &= "500000006004902010070050900020004060900060803007100000000080200401000000000006070" & @CRLF
    $szSodukos &= "009050200500000004000907000000204000100000005003010600035060720010000080074080510" & @CRLF
    $szSodukos &= "700100002010070000008005300800000650006809000400300000009004000503600000000003071" & @CRLF
    $szSodukos &= "200000140001209000500800000600700003070060000002004800009005000408100000000008067" & @CRLF
    $szSodukos &= "000300150309001000200800000008009000100502000002000046600400007040060000005003200" & @CRLF
    $szSodukos &= "003500100000010050700004008240000800000809002000700600000006009000200407015007000" & @CRLF
    $szSodukos &= "000003050060004008800170000000710042040008700009005800790800000003050070004000200" & @CRLF
    $szSodukos &= "000000000009040602087006010020004038040039000010008046064003050003050401000000000" & @CRLF
    $szSodukos &= "000007002010000000000250108002030090006405000800090005004000609000500007607002840" & @CRLF
    $szSodukos &= "000000000073080500092003070004070800708036020900000000000019650010000290000240000" & @CRLF
    $szSodukos &= "060050002800000010000002600000020000500903208007010394006074000010006050200035000" & @CRLF
    $szSodukos &= "004002080002000401500070060820040007060005100700000000090000023003098000000201600" & @CRLF
    $szSodukos &= "000000000205980430006207009000030280040000000000090170009508006502460790000000000" & @CRLF
    $szSodukos &= "000000800000640005009700004248000601060009000971000403003100008000570006000000700" & @CRLF
    $szSodukos &= "000000020000008539000596080000000350051000700904700200402810000500040000086300000" & @CRLF
    $szSodukos &= "000020000020000100365840070001050020840000000003060080214680030070000500000010000" & @CRLF
    $szSodukos &= "100020008020004070003500600005400000300000407002006010004305700030000080000060009" & @CRLF
    $szSodukos &= "000670900360005028805002100020506004009407000700100583070054261000703000084090050" & @CRLF
    $szSodukos &= "628009000109056004500872001900510467807000030060020900004907103000201709091000280" & @CRLF
    $szSodukos &= "076930000000108400300026000045080130010567090200310058068002005704000982020003710" & @CRLF
    $szSodukos &= "120500360300009020007208004019000873403897001002350400000000087850016900200980140" & @CRLF
    $szSodukos &= "906020100020050460000009730004260070700030608030871204800700041213000090490308006" & @CRLF
    $szSodukos &= "007000300050908004900030060070004080102070900000500006800010000000000405060007000" & @CRLF
    $szSodukos &= "060070008900104070003000500200007000008050906030900020000600010805000000000030007" & @CRLF
    $szSodukos &= "000000000005010700070602090009020800060835010004070500030408020001090400000000000" & @CRLF
    $szSodukos &= "004010050050900208300006000020000100000403000005000060000700005901004030070060900" & @CRLF
    $szSodukos &= "500000006004902010070050900020004060900060803007100000000080200401000000000006070" & @CRLF
    $szSodukos &= "000000103000050000000000800060020070001000000000300000000001460720000050000800000" & @CRLF
    $szSodukos &= "100050000006009000080200004040030008007000060900000100030800002000004050000010700" & @CRLF
    $szSodukos &= "000300800640800050805000001500070206000090000209080005400000709020008013007005000" & @CRLF
    $szSodukos &= "050060001004800070800000052200057030000000000030690005790000008010006500500030060" & @CRLF
    $szSodukos &= "000000000005010700070602090009020800060835010004070500030408000001090400000000000" & @CRLF
    $szSodukos &= "060090050000050609000362000006005700982030546003600100000246000601070308050010060" & @CRLF
    $szSodukos &= "007000000000010000000040005000008900400000000906007000008609000000000050030000040" & @CRLF
    $szSodukos &= "530070000600005000098000060800060003400803001700020006060000280000400005000080079" & @CRLF
    $szSodukos &= "100050000006009000080200004040030008007000060900000100030800002000004050000010700" & @CRLF
    $szSodukos &= "000000000000000000000000000000000000000000000000000000000000000000000000000000000" & @CRLF

    [/autoit] [autoit][/autoit] [autoit]

    Local $aszSodukos = StringSplit($szSodukos, @CRLF, 3)
    If $bDebug Then _ArrayDisplay($aszSodukos)

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To UBound($aszSodukos) - 1
    If $aszSodukos[$i] = "" Then ContinueLoop
    $tRunning = TimerInit()
    ConsoleWrite($aszSodukos[$i] & @TAB & SudokuSolve($aszSodukos[$i]) & @TAB & TimerDiff($tRunning) & " ms" & @CRLF)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    Func SudokuSolve($acField)
    Local $iRow, $iCol
    $acField = StringSplit($acField, "", 2)

    [/autoit] [autoit][/autoit] [autoit]

    Init()
    ResetArrays()

    [/autoit] [autoit][/autoit] [autoit]

    For $iRow = 0 To 8
    For $iCol = 0 To 8
    If $bDebug Then ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iVal = ' & Int($acField[$iRow * 9 + $iCol]) & ' $iRow = ' & $iRow & ' $iCol = ' & $iCol & @CRLF)
    SetCell(Int($acField[$iRow * 9 + $iCol]), $iRow, $iCol) ; Wert eintragen
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit]

    AutoPlay()

    [/autoit] [autoit][/autoit] [autoit]

    Return GetSudokuString()
    EndFunc ;==>SudokuSolve

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Initialisiert die Array mit Anfangswerten
    Func ResetArrays()
    ClearSheet($arSheet)
    EndFunc ;==>ResetArrays

    [/autoit] [autoit][/autoit] [autoit]

    ; Startwerte für Variablen setzten
    Func Init()
    $iSeverity = 0
    $iSolutions = 0
    $bUniqueSheet = False
    $bCountSolutions = False
    EndFunc ;==>Init

    [/autoit] [autoit][/autoit] [autoit]

    ; Spiel automatisch durchspielen
    Func AutoPlay()
    Local $bSimplePlay = True

    [/autoit] [autoit][/autoit] [autoit]

    While $bSimplePlay ; Solange Spielen bis kein Wert mehr gesetzt wird
    $bSimplePlay = BitOR(AutoPlayModeOne(), AutoPlayModeTwo())
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    If IsUnsolvable() Then Return False ; Falls unlösbar, beenden

    [/autoit] [autoit][/autoit] [autoit]

    If IsSolved() Then
    $iSolutions += 1
    Return True
    Else
    Return AutoPlayTrialAndError()
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Return True
    EndFunc ;==>AutoPlay

    [/autoit] [autoit][/autoit] [autoit]

    ; Wert aus Zelle auslesen
    Func GetCell($iRow, $iCol)
    Return Int($arSheet[$iRow][$iCol][0])
    EndFunc ;==>GetCell

    [/autoit] [autoit][/autoit] [autoit]

    ; Wert in Zelle setzen
    Func SetCell($iVal, $iRow, $iCol)
    Local $iBRow, $iBCol

    [/autoit] [autoit][/autoit] [autoit]

    If $bDebug Then ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iVal = ' & $iVal & ' $iRow = ' & $iRow & ' $iCol = ' & $iCol & @CRLF) ;### Debug Console

    [/autoit] [autoit][/autoit] [autoit]

    If IsAllowedValue($iVal, $iRow, $iCol) Then
    $arSheet[$iRow][$iCol][0] = $iVal

    [/autoit] [autoit][/autoit] [autoit]

    For $iIndex = 0 To 8
    $arSheet[$iRow][$iIndex][$iVal] = False ; Dieser Wert ist in der Zeile und ...
    $arSheet[$iIndex][$iCol][$iVal] = False ; in der Spalte und ...
    $iBRow = 3 * Int($iRow / 3) + Int($iIndex / 3)
    $iBCol = 3 * Int($iCol / 3) + Int(Mod($iIndex, 3))
    $arSheet[$iBRow][$iBCol][$iVal] = False ; im Block nicht mehr erlaubt
    $arSheet[$iRow][$iCol][$iIndex + 1] = False ; Die Zelle als belegt markieren
    Next
    EndIf
    EndFunc ;==>SetCell

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Spielmodus 1 - Sucht alle Felder in denen nur noch ein
    ; Wert reinpasst und trägt den Wert ein
    Func AutoPlayModeOne()
    Local $bRetFlag = False ; ist True wenn mindestens 1 Wert gesetzt wurde
    Local $iCheck, $iValSet

    [/autoit] [autoit][/autoit] [autoit]

    For $iRow = 0 To 8
    For $iCol = 0 To 8
    If GetCell($iRow, $iCol) = 0 Then
    $iCheck = 0
    $iValSet = 0
    For $iVal = 1 To 9
    If IsAllowedValue($iVal, $iRow, $iCol) Then
    $iValSet = $iVal
    $iCheck += 1
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    If $iCheck = 1 Then ; Feld gefunden
    SetCell($iValSet, $iRow, $iCol) ; Wert eintragen
    $iSeverity += 2
    $bRetFlag = True
    EndIf
    EndIf
    Next
    Next
    If Not $bRetFlag Then $iSeverity += 1

    [/autoit] [autoit][/autoit] [autoit]

    Return $bRetFlag
    EndFunc ;==>AutoPlayModeOne

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Spielmodus 2 - sucht alle Zeilen, Spalten und Blocks nach
    ; Zellen in den nur noch 1 Wert möglich ist
    Func AutoPlayModeTwo()
    Local $bRetFlag = False ; ist True wenn mindestens 1 Wert gesetzt wurde
    Local $iVBlock, $iHBlock

    [/autoit] [autoit][/autoit] [autoit]

    ; zuerst Zeilenweise
    For $iRow = 0 To 8
    Local $arCheck[9] = [0, 0, 0, 0, 0, 0, 0, 0, 0]

    [/autoit] [autoit][/autoit] [autoit]

    For $iCol = 0 To 8
    If GetCell($iRow, $iCol) = 0 Then
    For $iVal = 1 To 9
    If IsAllowedValue($iVal, $iRow, $iCol) Then
    $arCheck[$iVal - 1] += 1
    EndIf
    Next
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    For $iVal = 1 To 9
    If $arCheck[$iVal - 1] = 1 Then ; Feld gefunden
    For $iCol = 0 To 8
    If IsAllowedValue($iVal, $iRow, $iCol) Then
    SetCell($iVal, $iRow, $iCol) ; Wert eintragen
    $iSeverity += 2
    $bRetFlag = True
    EndIf
    Next
    EndIf
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ; jetzt Spaltenweise
    For $iCol = 0 To 8
    Local $arCheck[9] = [0, 0, 0, 0, 0, 0, 0, 0, 0]

    [/autoit] [autoit][/autoit] [autoit]

    For $iRow = 0 To 8
    If GetCell($iRow, $iCol) = 0 Then
    For $iVal = 1 To 9
    If IsAllowedValue($iVal, $iRow, $iCol) Then
    $arCheck[$iVal - 1] += 1
    EndIf
    Next
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    For $iVal = 1 To 9
    If $arCheck[$iVal - 1] = 1 Then ; Feld gefunden
    For $iRow = 0 To 8
    If IsAllowedValue($iVal, $iRow, $iCol) Then
    SetCell($iVal, $iRow, $iCol) ; Wert eintragen
    $iSeverity += 2
    $bRetFlag = True
    EndIf
    Next
    EndIf
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ; zuletzt Blockweise
    For $iBlock = 0 To 8
    Local $arCheck[9] = [0, 0, 0, 0, 0, 0, 0, 0, 0]
    $iVBlock = 3 * Int($iBlock / 3) ; Block in vertikaler Richtung
    $iHBlock = 3 * Int(Mod($iBlock, 3)) ; Block in horizontaler Richtung

    [/autoit] [autoit][/autoit] [autoit]

    For $iCell = 0 To 8
    $iRow = $iVBlock + Int(Mod($iCell, 3))
    $iCol = $iHBlock + Int($iCell / 3)
    If GetCell($iRow, $iCol) = 0 Then
    For $iVal = 1 To 9
    If IsAllowedValue($iVal, $iRow, $iCol) Then
    $arCheck[$iVal - 1] += 1
    EndIf
    Next
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    For $iVal = 1 To 9
    If $arCheck[$iVal - 1] = 1 Then ; Feld gefunden
    For $iCell = 0 To 8
    $iRow = $iVBlock + Int(Mod($iCell, 3))
    $iCol = $iHBlock + Int($iCell / 3)
    If IsAllowedValue($iVal, $iRow, $iCol) Then
    SetCell($iVal, $iRow, $iCol) ; Wert eintragen
    $iSeverity += 2
    $bRetFlag = True
    EndIf
    Next
    EndIf
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit]

    If Not $bRetFlag Then $iSeverity += 1

    [/autoit] [autoit][/autoit] [autoit]

    Return $bRetFlag
    EndFunc ;==>AutoPlayModeTwo

    [/autoit] [autoit][/autoit] [autoit]

    ; Spielt nach dem trial and Error Verfahren
    Func AutoPlayTrialAndError()
    Dim $arTempSheet[9][9][10]
    Dim $arSolutionSheet[9][9][10]
    Local $iTempSeverity, $iTempSolutions
    Local $iSolutionSeverity, $iSolutionSolutions

    [/autoit] [autoit][/autoit] [autoit]

    Local $bSolved = False

    [/autoit] [autoit][/autoit] [autoit]

    If IsUnsolvable() Then Return False
    $iSeverity += 7
    ClearSheet($arSolutionSheet)

    [/autoit] [autoit][/autoit] [autoit]

    For $iRow = 0 To 8
    For $iCol = 0 To 8
    If GetCell($iRow, $iCol) = 0 Then
    For $iVal = 1 To 9
    If IsAllowedValue($iVal, $iRow, $iCol) Then
    PushSheet() ; Aktuelles Blatt auf den Stack legen
    SetCell($iVal, $iRow, $iCol)
    If AutoPlay() Then
    $bSolved = True
    If $bCountSolutions Then
    ConsoleWrite(GetSudokuString() & @CRLF)
    If $bDebug Then ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iSolutions = ' & $iSolutions & @CRLF) ;### Debug Console
    If $bUniqueSheet And ($iSolutions > 1) Then
    Return True
    EndIf
    CopySheet($arSheet, $arSolutionSheet)
    $iSolutionSeverity = $iSeverity
    $iSolutionSolutions = $iSolutions
    PopSheet()
    $iSolutions = $iSolutionSolutions
    Else
    Return True
    EndIf
    Else
    PopSheet()
    EndIf
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    If $bSolved Then
    CopySheet($arSolutionSheet, $arSheet)
    $iSeverity = $iSolutionSeverity
    $iSolutions = $iSolutionSolutions
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Return $bSolved
    EndIf
    Next
    Next
    Return False
    EndFunc ;==>AutoPlayTrialAndError

    [/autoit] [autoit][/autoit] [autoit]

    ; Gibt True zurück wenn der Wert in der Zelle möglich ist
    Func IsAllowedValue($iVal, $iRow, $iCol)
    Return $arSheet[$iRow][$iCol][$iVal]
    EndFunc ;==>IsAllowedValue

    [/autoit] [autoit][/autoit] [autoit]

    ; Gibt True zurück wenn das Spiel gelöst ist
    Func IsSolved()
    For $iRow = 0 To 8
    For $iCol = 0 To 8
    If GetCell($iRow, $iCol) = 0 Then Return False
    Next
    Next
    If $bDebug Then GetSudokuString()

    [/autoit] [autoit][/autoit] [autoit]

    Return True
    EndFunc ;==>IsSolved

    [/autoit] [autoit][/autoit] [autoit]

    ; Gibt True zurück wenn das Spiel unlösbar ist
    Func IsUnsolvable()
    Local $bSolvable

    [/autoit] [autoit][/autoit] [autoit]

    For $iRow = 0 To 8
    For $iCol = 0 To 8
    $bSolvable = False
    If GetCell($iRow, $iCol) = 0 Then
    For $iVal = 1 To 9
    $bSolvable = BitOR($bSolvable, $arSheet[$iRow][$iCol][$iVal])
    Next
    If Not $bSolvable Then Return True
    EndIf
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit]

    Return False
    EndFunc ;==>IsUnsolvable

    [/autoit] [autoit][/autoit] [autoit]

    ; Gibt den Inhalt des Soduko als String zurück
    Func GetSudokuString()
    Local $strOuput = ""

    [/autoit] [autoit][/autoit] [autoit]

    For $iRow = 0 To 8
    For $iCol = 0 To 8
    $strOuput &= String(GetCell($iRow, $iCol)); & " "
    Next
    ;~ $strOuput &= @CRLF
    Next
    If $bDebug Then
    ConsoleWrite($strOuput & @CRLF)
    Sleep(500)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Return $strOuput
    EndFunc ;==>ShowSudoku

    [/autoit] [autoit][/autoit] [autoit]

    ; Daten im Stack speichern
    Func PushSheet()
    Local $iCountStack

    [/autoit] [autoit][/autoit] [autoit]

    $arStack[0][0] += 1

    [/autoit] [autoit][/autoit] [autoit]

    $iCountStack = $arStack[0][0]

    [/autoit] [autoit][/autoit] [autoit]

    If UBound($arStack) <= $iCountStack Then ReDim $arStack[$iCountStack + 5][$ciStackElements]

    [/autoit] [autoit][/autoit] [autoit]

    $arStack[$iCountStack][0] = ""
    For $iRow = 0 To 8
    For $iCol = 0 To 8
    For $iVal = 0 To 9
    $arStack[$iCountStack][0] &= String(Int($arSheet[$iRow][$iCol][$iVal]))
    Next
    Next
    Next
    If $bDebug Then ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : ' & $arStack[$iCountStack][0] & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    $arStack[$iCountStack][1] = $iSeverity
    $arStack[$iCountStack][2] = $iSolutions
    $arStack[$iCountStack][3] = $bUniqueSheet
    $arStack[$iCountStack][4] = $bCountSolutions
    ;~ If $bDebug Then _ArrayDisplay($arStack)
    If $bDebug Then ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iSolutions = ' & $iSolutions & @CRLF) ;### Debug Console
    EndFunc ;==>PushSheet

    [/autoit] [autoit][/autoit] [autoit]

    ; Daten vom Stack holen
    Func PopSheet()
    Local $iCountStack = $arStack[0][0]

    [/autoit] [autoit][/autoit] [autoit]

    If $iCountStack Then
    For $iRow = 0 To 8
    For $iCol = 0 To 8
    For $iVal = 0 To 9
    $arSheet[$iRow][$iCol][$iVal] = Int(StringMid($arStack[$iCountStack][0], $iRow * 90 + $iCol * 10 + $iVal + 1, 1))
    Next
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit]

    $iSeverity = $arStack[$iCountStack][1]
    $iSolutions = $arStack[$iCountStack][2]
    $bUniqueSheet = $arStack[$iCountStack][3]
    $bCountSolutions = $arStack[$iCountStack][4]

    [/autoit] [autoit][/autoit] [autoit]

    $arStack[0][0] -= 1

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ReDim $arStack[$iCountStack][$ciStackElements]
    ;~ _ArrayDisplay($arStack)
    EndIf
    EndFunc ;==>PopSheet

    [/autoit] [autoit][/autoit] [autoit]

    Func CopySheet($arSource, ByRef $arDestination)
    For $iRow = 0 To 8
    For $iCol = 0 To 8
    For $iVal = 0 To 9
    $arDestination[$iRow][$iCol][$iVal] = $arSource[$iRow][$iCol][$iVal]
    Next
    Next
    Next
    EndFunc ;==>CopySheet

    [/autoit] [autoit][/autoit] [autoit]

    Func ClearSheet(ByRef $arDestination)
    For $iRow = 0 To 8
    For $iCol = 0 To 8
    $arDestination[$iRow][$iCol][0] = 0
    For $iVal = 1 To 9
    $arDestination[$iRow][$iCol][$iVal] = $iVal
    Next
    Next
    Next
    EndFunc ;==>ClearSheet

    [/autoit] [autoit][/autoit] [autoit]

    Func SwapSheets(ByRef $arSheet1, ByRef $arSheet2)
    Dim $arTempSheet[9][9][10]

    [/autoit] [autoit][/autoit] [autoit]

    CopySheet($arSheet1, $arTempSheet)
    CopySheet($arSheet2, $arSheet1)
    CopySheet($arTempSheet, $arSheet2)
    EndFunc ;==>SwapSheets

    [/autoit]

    BugFix , für dein Sudoko gibt es übrigens 1905 Lösungsmöglichkeiten! :thumbup:

    Spoiler anzeigen

    516427983378196542429538761647285139152943876893761254735619428964872315281354697
    516427983378196542429538761647285139152943876893761254765319428984672315231854697
    516427983378196542429538761647285139152943876893761254935672418764819325281354697
    516427983378196542429538761647285139152943876893761254965372418784619325231854697
    516427983378196542492538176643285719127943865859761234735619428964872351281354697
    516427983378196542492538176643285719127943865859761234765319428984672351231854697
    516427983378196542492538716643285179127943865859761234735619428964872351281354697
    516427983378196542492538716643285179127943865859761234765319428984672351231854697
    516427983378196542492538761643285179127943856859761234735619428964872315281354697
    516427983378196542492538761643285179127943856859761234765319428984672315231854697
    516427983378196542492538761643285179127943856859761234935672418764819325281354697
    516427983378196542492538761643285179127943856859761234965372418784619325231854697
    516427983378196542492538761647285139125943876839761254753619428964872315281354697
    516427983378196542492538761647285139125943876839761254763819425954672318281354697
    516427983378196542492538761647285139125943876839761254953672418764819325281354697
    516427983378196542492538761647285139125943876839761254963872415754619328281354697
    516427983378619542429538761647285139152943876893761254735196428964872315281354697
    516427983378619542429538761647285139152943876893761254765392418984176325231854697
    516427983378619542429538761647285139152943876893761254935176428764892315281354697
    516427983378619542429538761647285139152943876893761254965372418784196325231854697
    516427983378619542492538176643285719127943865859761234735196428964872351281354697
    516427983378619542492538176643285719127943865859761234735896421964172358281354697
    516427983378619542492538176643285719127943865859761234785396421964172358231854697
    516427983378619542492538176643285719127943865859761234935176428764892351281354697
    516427983378619542492538176643285719127943865859761234935876421764192358281354697
    516427983378619542492538176643285719127943865859761234985376421764192358231854697
    516427983378619542492538716643285179127943865859761234735196428964872351281354697
    516427983378619542492538716643285179127943865859761234735896421964172358281354697
    516427983378619542492538716643285179127943865859761234785396421964172358231854697
    516427983378619542492538716643285179127943865859761234935176428764892351281354697
    516427983378619542492538716643285179127943865859761234935876421764192358281354697
    516427983378619542492538716643285179127943865859761234985376421764192358231854697
    516427983378619542492538761643285179127943856859761234735196428964872315281354697
    516427983378619542492538761643285179127943856859761234765392418984176325231854697
    516427983378619542492538761643285179127943856859761234935176428764892315281354697
    516427983378619542492538761643285179127943856859761234965372418784196325231854697
    516427983378619542492538761647285139125943876839761254753196428964872315281354697
    516427983378619542492538761647285139125943876839761254763892415954176328281354697
    516427983378619542492538761647285139125943876839761254953176428764892315281354697
    516427983378619542492538761647285139125943876839761254963872415754196328281354697
    516427983428396571379518426647285139152943768893761254765134892984672315231859647
    516427983428396571379518426647285139152943768893761254765139842984672315231854697
    516427983428396571397518426643285719172943865859761234785634192964172358231859647
    516427983428396571397518426643285719172943865859761234785639142964172358231854697
    516427983428639571379518426647285139152943768893761254735196842964872315281354697
    516427983428639571379518426647285139152943768893761254935176842764892315281354697
    516427983428639571397518426643285719172943865859761234735896142964172358281354697
    516427983428639571397518426643285719172943865859761234765392148984176352231854697
    516427983428639571397518426643285719172943865859761234785396142964172358231854697
    516427983428639571397518426643285719172943865859761234935876142764192358281354697
    516427983428639571397518426643285719172943865859761234965372148784196352231854697
    516427983428639571397518426643285719172943865859761234985376142764192358231854697
    516427983428639571397518462643285719172943856859761234765392148984176325231854697
    516427983428639571397518462643285719172943856859761234965372148784196325231854697
    516427983428639571739518426643285719172943865895761234357896142964172358281354697
    516427983428639571739518426647285139152943768893761254375196842964872315281354697
    516427983428639571739518462643285719172943856895761234367892145954176328281354697
    516427983428639571793518426647285139152943768839761254375196842964872315281354697
    516427983428639571937518426643285719172943865859761234395876142764192358281354697
    516427983428639571937518426643285719172943865895761234359876142764192358281354697
    516427983428639571937518462643285719172943856895761234369872145754196328281354697
    516427983428639571973518426647285139152943768839761254395176842764892315281354697
    516427983438196572729538146643285719172943865895761234357619428964872351281354697
    516427983438196572792538146643285719127943865859761234365879421974612358281354697
    516427983438196572792538146643285719127943865859761234375619428964872351281354697
    516427983438196572927538146643285719172943865859761234365879421794612358281354697
    516427983438196572927538146643285719172943865895761234369872451754619328281354697
    516427983438196572927538461643285719172943856859761234395672148764819325281354697
    516427983438196572927538461643285719172943856859761234395674128764812395281359647
    516427983438196572927538461643285719172943856895761234359672148764819325281354697
    516427983438196572927538461643285719172943856895761234359674128764812395281359647
    516427983438196572927538461643285719172943856895761234369872145754619328281354697
    516427983438196572927538461643285719172943856895761234369874125754612398281359647
    516427983438196572972538146643285719127943865859761234365879421794612358281354697
    516427983438196572972538146643285719127943865895761234369872451754619328281354697
    516427983438196572972538416647285139125943768893761254359672841764819325281354697
    516427983438196572972538416647285139125943768893761254359674821764812395281359647
    516427983438196572972538461643285719127943856859761234395672148764819325281354697
    516427983438196572972538461643285719127943856859761234395674128764812395281359647
    516427983438196572972538461643285719127943856895761234359672148764819325281354697
    516427983438196572972538461643285719127943856895761234359674128764812395281359647
    516427983438196572972538461643285719127943856895761234369872145754619328281354697
    516427983438196572972538461643285719127943856895761234369874125754612398281359647
    516427983438619572729538146643285719172943865895761234357196428964872351281354697
    516427983438619572729538146643285719172943865895761234357896421964172358281354697
    516427983438619572729538146643285719172943865895761234367192458954876321281354697
    516427983438619572729538146643285719172943865895761234367892451954176328281354697
    516427983438619572729538461643285719172943856895761234367892145954176328281354697
    516427983438619572792538146643285719127943865859761234375196428964872351281354697
    516427983438619572792538146643285719127943865859761234375896421964172358281354697
    516427983438619572927538146643285719172943865859761234395176428764892351281354697
    516427983438619572927538146643285719172943865859761234395876421764192358281354697
    516427983438619572927538146643285719172943865895761234359176428764892351281354697
    516427983438619572927538146643285719172943865895761234359876421764192358281354697
    516427983438619572927538146643285719172943865895761234369172458754896321281354697
    516427983438619572927538146643285719172943865895761234369872451754196328281354697
    516427983438619572927538461643285719172943856895761234369872145754196328281354697
    516427983438619572972538146643285719127943865859761234395176428764892351281354697
    516427983438619572972538146643285719127943865859761234395876421764192358281354697
    516427983438619572972538146643285719127943865895761234359176428764892351281354697
    516427983438619572972538146643285719127943865895761234359876421764192358281354697
    516427983438619572972538146643285719127943865895761234369172458754896321281354697
    516427983438619572972538146643285719127943865895761234369872451754196328281354697
    516427983438619572972538416647285139125943768893761254369172845754896321281354697
    516427983438619572972538461643285719127943856895761234369872145754196328281354697
    516427983478396512392518746643285179127943865859761234765139428984672351231854697
    516427983478396512392518746643285179127943865859761234785639421964172358231854697
    516427983478396521329518476647285139152943768893761254765134892984672315231859647
    516427983478396521329518476647285139152943768893761254765139842984672315231854697
    516427983478396521392518476643285719127943865859761234785634192964172358231859647
    516427983478396521392518476643285719127943865859761234785639142964172358231854697
    516427983478396521392518746643285179127943865859761234785639412964172358231854697
    516427983478639512329518476647285139152943768893761254765392841984176325231854697
    516427983478639512329518476647285139152943768893761254965372841784196325231854697
    516427983478639512392518476647285139125943768839761254763192845954876321281354697
    516427983478639512392518476647285139125943768839761254963172845754896321281354697
    516427983478639512392518746643285179127943865859761234735196428964872351281354697
    516427983478639512392518746643285179127943865859761234735896421964172358281354697
    516427983478639512392518746643285179127943865859761234785396421964172358231854697
    516427983478639512392518746643285179127943865859761234935176428764892351281354697
    516427983478639512392518746643285179127943865859761234935876421764192358281354697
    516427983478639512392518746643285179127943865859761234985376421764192358231854697
    516427983478639512932518476647285139125943768893761254369172845754896321281354697
    516427983478639512932518746643285179127943865859761234395176428764892351281354697
    516427983478639512932518746643285179127943865859761234395876421764192358281354697
    516427983478639512932518746643285179127943865895761234359176428764892351281354697
    516427983478639512932518746643285179127943865895761234359876421764192358281354697
    516427983478639512932518746643285179127943865895761234369172458754896321281354697
    516427983478639512932518746643285179127943865895761234369872451754196328281354697
    516427983478639521329518476647285139152943768893761254735196842964872315281354697
    516427983478639521329518476647285139152943768893761254935176842764892315281354697
    516427983478639521392518476643285719127943865859761234735896142964172358281354697
    516427983478639521392518476643285719127943865859761234765392148984176352231854697
    516427983478639521392518476643285719127943865859761234785396142964172358231854697
    516427983478639521392518476643285719127943865859761234935876142764192358281354697
    516427983478639521392518476643285719127943865859761234965372148784196352231854697
    516427983478639521392518476643285719127943865859761234985376142764192358231854697
    516427983478639521392518476647285139125943768839761254753196842964872315281354697
    516427983478639521392518476647285139125943768839761254763192845954876312281354697
    516427983478639521392518476647285139125943768839761254953176842764892315281354697
    516427983478639521392518476647285139125943768839761254963172845754896312281354697
    516427983478639521392518746643285179127943865859761234735896412964172358281354697
    516427983478639521392518746643285179127943865859761234765392418984176352231854697
    516427983478639521392518746643285179127943865859761234785396412964172358231854697
    516427983478639521392518746643285179127943865859761234935876412764192358281354697
    516427983478639521392518746643285179127943865859761234965372418784196352231854697
    516427983478639521392518746643285179127943865859761234985376412764192358231854697
    516427983478639521923518476647285139152943768839761254395176842764892315281354697
    516427983478639521932518476643285719127943865859761234395876142764192358281354697
    516427983478639521932518476643285719127943865895761234359876142764192358281354697
    516427983478639521932518476647285139125943768893761254359176842764892315281354697
    516427983478639521932518476647285139125943768893761254369172845754896312281354697
    516427983478639521932518746643285179127943865859761234395876412764192358281354697
    516427983478639521932518746643285179127943865895761234359876412764192358281354697
    516427983478639521932518746643285179127943865895761234369172458754896312281354697
    516427983498136572327598146643285719172943865859761234735619428964872351281354697
    516427983498136572327598146643285719172943865859761234765319428984672351231854697
    516427983498136572327598461643285719172943856859761234935672148764819325281354697
    516427983498136572327598461643285719172943856859761234935674128764812395281359647
    516427983498136572327598461643285719172943856859761234965372148784619325231854697
    516427983498136572327598461643285719172943856859761234965374128784612395231859647
    516427983498136572372598146643285719127943865859761234735619428964872351281354697
    516427983498136572372598146643285719127943865859761234765319428984672351231854697
    516427983498136572372598416647285139125943768839761254953672841764819325281354697
    516427983498136572372598416647285139125943768839761254953674821764812395281359647
    516427983498136572372598461643285719127943856859761234935672148764819325281354697
    516427983498136572372598461643285719127943856859761234935674128764812395281359647
    516427983498136572372598461643285719127943856859761234965372148784619325231854697
    516427983498136572372598461643285719127943856859761234965374128784612395231859647
    516427983498136572732598146643285719127943865859761234365879421974612358281354697
    516427983498136572732598146643285719127943865859761234375619428964872351281354697
    516427983498316572327598146643285719172943865859761234765139428984672351231854697
    516427983498316572327598146643285719172943865859761234785639421964172358231854697
    516427983498316572372598146643285719127943865859761234765139428984672351231854697
    516427983498316572372598146643285719127943865859761234785639421964172358231854697
    516427983728639541439518726643285179172943865895761234357896412964172358281354697
    516427983728639541439518726643285179172943865895761234367192458954876312281354697
    516427983728639541439518762643285179172943856895761234357196428964872315281354697
    516427983728639541439518762643285179172943856895761234367892415954176328281354697
    516427983728639541439518762647285139152943876893761254375196428964872315281354697
    516427983728639541493518762647285139152943876839761254375196428964872315281354697
    516427983738196542429538176643285719172943865895761234357619428964872351281354697
    516427983738196542429538716643285179172943865895761234357619428964872351281354697
    516427983738196542429538761643285179172943856895761234357619428964872315281354697
    516427983738196542429538761643285179172943856895761234367819425954672318281354697
    516427983738196542429538761647285139152943876893761254375619428964872315281354697
    516427983738196542492538176643285719127943865859761234365879421974612358281354697
    516427983738196542492538176643285719127943865859761234375619428964872351281354697
    516427983738196542492538716643285179127943865859761234365879421974612358281354697
    516427983738196542492538716643285179127943865859761234375619428964872351281354697
    516427983738196542492538761643285179127943856859761234375619428964872315281354697
    516427983738619542429538176643285719172943865895761234357196428964872351281354697
    516427983738619542429538176643285719172943865895761234357896421964172358281354697
    516427983738619542429538176643285719172943865895761234367192458954876321281354697
    516427983738619542429538176643285719172943865895761234367892451954176328281354697
    516427983738619542429538716643285179172943865895761234357196428964872351281354697
    516427983738619542429538716643285179172943865895761234357896421964172358281354697
    516427983738619542429538716643285179172943865895761234367192458954876321281354697
    516427983738619542429538716643285179172943865895761234367892451954176328281354697
    516427983738619542429538761643285179172943856895761234357196428964872315281354697
    516427983738619542429538761643285179172943856895761234367892415954176328281354697
    516427983738619542429538761647285139152943876893761254375196428964872315281354697
    516427983738619542492538176643285719127943865859761234375196428964872351281354697
    516427983738619542492538176643285719127943865859761234375896421964172358281354697
    516427983738619542492538716643285179127943865859761234375196428964872351281354697
    516427983738619542492538716643285179127943865859761234375896421964172358281354697
    516427983738619542492538761643285179127943856859761234375196428964872315281354697
    516427983798136542423598761647285139152943876839761254375619428964872315281354697
    516427983798136542432598176643285719127943865859761234365879421974612358281354697
    516427983798136542432598176643285719127943865859761234375619428964872351281354697
    516427983798136542432598716643285179127943865859761234365879421974612358281354697
    516427983798136542432598716643285179127943865859761234375619428964872351281354697
    516427983798136542432598761643285179127943856859761234375619428964872315281354697
    516427983978136542423598761647285139152943876839761254395672418764819325281354697
    516427983978136542432598176643285719127943865859761234365879421794612358281354697
    516427983978136542432598176643285719127943865895761234369872451754619328281354697
    516427983978136542432598716643285179127943865859761234365879421794612358281354697
    516427983978136542432598716643285179127943865895761234369872451754619328281354697
    516427983978136542432598761643285179127943856859761234395672418764819325281354697
    516427983978136542432598761643285179127943856895761234359672418764819325281354697
    516427983978136542432598761643285179127943856895761234369872415754619328281354697
    516427983978136542432598761647285139125943876893761254359672418764819325281354697
    516427983978136542432598761647285139125943876893761254369872415754619328281354697
    516428973328179546479536812647285139152943768893761254735692481964817325281354697
    516428973328179546479536812647285139152943768893761254765392481984617325231854697
    516428973328179546479536821647285139152943768893761254935617482764892315281354697
    516428973328179546479536821647285139152943768893761254965317482784692315231854697
    516428973328179546497536128643285719172943865859761234735692481964817352281354697
    516428973328179546497536128643285719172943865859761234765392481984617352231854697
    516428973328179546497536128643285719172943865859761234935617482764892351281354697
    516428973328179546497536128643285719172943865859761234965317482784692351231854697
    516428973328179546497536182643285719172943865859761234935617428764892351281354697
    516428973328179546497536182643285719172943865859761234965317428784692351231854697
    516428973328197546479536812647285139152943768893761254935672481764819325281354697
    516428973328197546479536812647285139152943768893761254965372481784619325231854697
    516428973328197546479536821647285139152943768893761254735619482964872315281354697
    516428973328197546479536821647285139152943768893761254765319482984672315231854697
    516428973328197546497536128643285719172943865859761234735619482964872351281354697
    516428973328197546497536128643285719172943865859761234765319482984672351231854697
    516428973328197546497536128643285719172943865859761234935672481764819352281354697
    516428973328197546497536128643285719172943865859761234965372481784619352231854697
    516428973328197546497536182643285719172943865859761234735619428964872351281354697
    516428973328197546497536182643285719172943865859761234765319428984672351231854697
    516428973378196542429537816647285139152943768893761254935672481764819325281354697
    516428973378196542429537816647285139152943768893761254965372481784619325231854697
    516428973378196542429537861647285139152943786893761254735619428964872315281354697
    516428973378196542429537861647285139152943786893761254765319428984672315231854697
    516428973378196542429537861647285139152943786893761254935672418764819325281354697
    516428973378196542429537861647285139152943786893761254965372418784619325231854697
    516428973378196542492537168643285719127943856859761234935672481764819325281354697
    516428973378196542492537168643285719127943856859761234965372481784619325231854697
    516428973378196542492537186643285719127943865859761234735619428964872351281354697
    516428973378196542492537186643285719127943865859761234765319428984672351231854697
    516428973378196542492537816647285139125943768839761254763819425954672381281354697
    516428973378196542492537816647285139125943768839761254953672481764819325281354697
    516428973378196542492537861647285139125943786839761254753619428964872315281354697
    516428973378196542492537861647285139125943786839761254763819425954672318281354697
    516428973378196542492537861647285139125943786839761254953672418764819325281354697
    516428973378196542492537861647285139125943786839761254963872415754619328281354697
    516428973378619542429537816647285139152943768893761254735896421964172385281354697
    516428973378619542429537816647285139152943768893761254765392481984176325231854697
    516428973378619542429537816647285139152943768893761254785396421964172385231854697
    516428973378619542429537816647285139152943768893761254935876421764192385281354697
    516428973378619542429537816647285139152943768893761254965372481784196325231854697
    516428973378619542429537816647285139152943768893761254985376421764192385231854697
    516428973378619542429537861647285139152943786893761254735196428964872315281354697
    516428973378619542429537861647285139152943786893761254765392418984176325231854697
    516428973378619542429537861647285139152943786893761254935176428764892315281354697
    516428973378619542429537861647285139152943786893761254965372418784196325231854697
    516428973378619542492537168643285719127943856859761234735896421964172385281354697
    516428973378619542492537168643285719127943856859761234765392481984176325231854697
    516428973378619542492537168643285719127943856859761234785396421964172385231854697
    516428973378619542492537168643285719127943856859761234935876421764192385281354697
    516428973378619542492537168643285719127943856859761234965372481784196325231854697
    516428973378619542492537168643285719127943856859761234985376421764192385231854697
    516428973378619542492537186643285719127943865859761234735196428964872351281354697
    516428973378619542492537186643285719127943865859761234735896421964172358281354697
    516428973378619542492537186643285719127943865859761234785396421964172358231854697
    516428973378619542492537186643285719127943865859761234935176428764892351281354697
    516428973378619542492537186643285719127943865859761234935876421764192358281354697
    516428973378619542492537186643285719127943865859761234985376421764192358231854697
    516428973378619542492537816647285139125943768839761254753896421964172385281354697
    516428973378619542492537816647285139125943768839761254763192485954876321281354697
    516428973378619542492537816647285139125943768839761254953876421764192385281354697
    516428973378619542492537816647285139125943768839761254963172485754896321281354697
    516428973378619542492537861647285139125943786839761254753196428964872315281354697
    516428973378619542492537861647285139125943786839761254763892415954176328281354697
    516428973378619542492537861647285139125943786839761254953176428764892315281354697
    516428973378619542492537861647285139125943786839761254963872415754196328281354697
    516428973398176542427539168643285719172943856859761234735692481964817325281354697
    516428973398176542427539168643285719172943856859761234765392481984617325231854697
    516428973398176542427539186643285719172943865859761234935617428764892351281354697
    516428973398176542427539186643285719172943865859761234965317428784692351231854697
    516428973398176542472539168643285719127943856859761234735692481964817325281354697
    516428973398176542472539168643285719127943856859761234765392481984617325231854697
    516428973398176542472539186643285719127943865859761234935617428764892351281354697
    516428973398176542472539186643285719127943865859761234965317428784692351231854697
    516428973398176542472539816647285139125943768839761254753692481964817325281354697
    516428973398176542472539816647285139125943768839761254963817425754692381281354697
    516428973398176542472539861647285139125943786839761254753692418964817325281354697
    516428973398176542472539861647285139125943786839761254763892415954617328281354697
    516428973398176542472539861647285139125943786839761254953617428764892315281354697
    516428973398176542472539861647285139125943786839761254963817425754692318281354697
    516428973398617542427539168643285719172943856859761234735896421964172385281354697
    516428973398617542427539168643285719172943856859761234765392481984176325231854697
    516428973398617542427539168643285719172943856859761234785396421964172385231854697
    516428973398617542427539168643285719172943856859761234935876421764192385281354697
    516428973398617542427539168643285719172943856859761234965372481784196325231854697
    516428973398617542427539168643285719172943856859761234985376421764192385231854697
    516428973398617542427539186643285719172943865859761234735196428964872351281354697
    516428973398617542427539186643285719172943865859761234735896421964172358281354697
    516428973398617542427539186643285719172943865859761234785396421964172358231854697
    516428973398617542427539186643285719172943865859761234935176428764892351281354697
    516428973398617542427539186643285719172943865859761234935876421764192358281354697
    516428973398617542427539186643285719172943865859761234985376421764192358231854697
    516428973398617542472539168643285719127943856859761234735896421964172385281354697
    516428973398617542472539168643285719127943856859761234765392481984176325231854697
    516428973398617542472539168643285719127943856859761234785396421964172385231854697
    516428973398617542472539168643285719127943856859761234935876421764192385281354697
    516428973398617542472539168643285719127943856859761234965372481784196325231854697
    516428973398617542472539168643285719127943856859761234985376421764192385231854697
    516428973398617542472539186643285719127943865859761234735196428964872351281354697
    516428973398617542472539186643285719127943865859761234735896421964172358281354697
    516428973398617542472539186643285719127943865859761234785396421964172358231854697
    516428973398617542472539186643285719127943865859761234935176428764892351281354697
    516428973398617542472539186643285719127943865859761234935876421764192358281354697
    516428973398617542472539186643285719127943865859761234985376421764192358231854697
    516428973398617542472539816647285139125943768839761254753896421964172385281354697
    516428973398617542472539816647285139125943768839761254763192485954876321281354697
    516428973398617542472539816647285139125943768839761254953876421764192385281354697
    516428973398617542472539816647285139125943768839761254963172485754896321281354697
    516428973398617542472539861647285139125943786839761254753196428964872315281354697
    516428973398617542472539861647285139125943786839761254763892415954176328281354697
    516428973398617542472539861647285139125943786839761254953176428764892315281354697
    516428973398617542472539861647285139125943786839761254963872415754196328281354697
    516428973428379516379516842647285139152943768893761254985637421764192385231854697
    516428973428379561379516428647285139152943786893761254965137842784692315231854697
    516428973428379561379516842647285139152943786893761254965137428784692315231854697
    516428973428379561397516428643285719172943856859761234985637142764192385231854697
    516428973428397516379516842647285139152943768893761254785639421964172385231854697
    516428973428397561379516428647285139152943786893761254765134892984672315231859647
    516428973428397561379516428647285139152943786893761254765139842984672315231854697
    516428973428397561379516842647285139152943786893761254765139428984672315231854697
    516428973428397561397516428643285719172943856859761234785634192964172385231859647
    516428973428397561397516428643285719172943856859761234785639142964172385231854697
    516428973438179526729536148643285719172943865895761234357692481964817352281354697
    516428973438179526729536148643285719172943865895761234367892451954617382281354697
    516428973438179526729536481643285719172943865895761234357692148964817352281354697
    516428973438179526729536841647285139152943768893761254365897412974612385281354697
    516428973438179526792536148643285719127943865859761234375692481964817352281354697
    516428973438179526792536481643285719127943865859761234365897142974612358281354697
    516428973438179526792536481643285719127943865859761234375692148964817352281354697
    516428973438179526927536148643285719172943865859761234365817492784692351291354687
    516428973438179526927536148643285719172943865859761234385617492764892351291354687
    516428973438179526927536148643285719172943865859761234395617482764892351281354697
    516428973438179526927536148643285719172943865895761234359617482764892351281354697
    516428973438179526927536148643285719172943865895761234369817452754692381281354697
    516428973438179526927536481643285719172943865859761234365897142794612358281354697
    516428973438179526972536148643285719127943865859761234365817492784692351291354687
    516428973438179526972536148643285719127943865859761234385617492764892351291354687
    516428973438179526972536148643285719127943865859761234395617482764892351281354697
    516428973438179526972536148643285719127943865895761234359617482764892351281354697
    516428973438179526972536148643285719127943865895761234369817452754692381281354697
    516428973438179526972536481643285719127943865859761234365897142794612358281354697
    516428973438179526972536481647285139125943768893761254359617842764892315281354697
    516428973438179526972536841647285139125943768893761254359617482764892315281354697
    516428973438179562729536148643285719172943856895761234357692481964817325281354697
    516428973438179562729536418647285139152943786893761254375692841964817325281354697
    516428973438179562729536481643285719172943856895761234357692148964817325281354697
    516428973438179562729536481643285719172943856895761234367892145954617328281354697
    516428973438179562729536841647285139152943786893761254375692418964817325281354697
    516428973438179562792536148643285719127943856859761234365897421974612385281354697
    516428973438179562792536148643285719127943856859761234375692481964817325281354697
    516428973438179562792536481643285719127943856859761234375692148964817325281354697
    516428973438179562927536148643285719172943856859761234365897421784612395291354687
    516428973438179562927536148643285719172943856859761234365897421794612385281354697
    516428973438179562927536148643285719172943856859761234385697421764812395291354687
    516428973438179562927536148643285719172943856895761234369817425754692381281354697
    516428973438179562972536148643285719127943856859761234365897421784612395291354687
    516428973438179562972536148643285719127943856859761234365897421794612385281354697
    516428973438179562972536148643285719127943856859761234385697421764812395291354687
    516428973438179562972536148643285719127943856895761234369817425754692381281354697
    516428973438179562972536841647285139125943786893761254359617428764892315281354697
    516428973438179562972536841647285139125943786893761254369817425754692318281354697
    516428973438197526729536148643285719172943865895761234357619482964872351281354697
    516428973438197526729536148643285719172943865895761234367819452954672381281354697
    516428973438197526729536481647285139152943768893761254375614892964872315281359647
    516428973438197526729536481647285139152943768893761254375619842964872315281354697
    516428973438197526729536841647285139152943768893761254365879412974612385281354697
    516428973438197526729536841647285139152943768893761254375619482964872315281354697
    516428973438197526792536148643285719127943865859761234375619482964872351281354697
    516428973438197526792536481643285719127943865859761234365874192974612358281359647
    516428973438197526792536481643285719127943865859761234365879142974612358281354697
    516428973438197526927536148643285719172943865859761234365872491784619352291354687
    516428973438197526927536148643285719172943865859761234385672491764819352291354687
    516428973438197526927536148643285719172943865859761234395672481764819352281354697
    516428973438197526927536148643285719172943865895761234359672481764819352281354697
    516428973438197526927536148643285719172943865895761234369872451754619382281354697
    516428973438197526927536481643285719172943865859761234365874192794612358281359647
    516428973438197526927536481643285719172943865859761234365879142794612358281354697
    516428973438197526927536481643285719172943865859761234395672148764819352281354697
    516428973438197526927536481643285719172943865895761234359672148764819352281354697
    516428973438197526927536481643285719172943865895761234369874152754612398281359647
    516428973438197526972536148643285719127943865859761234365872491784619352291354687
    516428973438197526972536148643285719127943865859761234385672491764819352291354687
    516428973438197526972536148643285719127943865859761234395672481764819352281354697
    516428973438197526972536148643285719127943865895761234359672481764819352281354697
    516428973438197526972536148643285719127943865895761234369872451754619382281354697
    516428973438197526972536481643285719127943865859761234365874192794612358281359647
    516428973438197526972536481643285719127943865859761234365879142794612358281354697
    516428973438197526972536481643285719127943865859761234395672148764819352281354697
    516428973438197526972536481643285719127943865895761234359672148764819352281354697
    516428973438197526972536481643285719127943865895761234369874152754612398281359647
    516428973438197526972536481647285139125943768893761254359674812764812395281359647
    516428973438197526972536841647285139125943768893761254369872415754619382281354697
    516428973438197562729536148643285719172943856895761234367819425954672381281354697
    516428973438197562729536841647285139152943786893761254375619428964872315281354697
    516428973438197562792536148643285719127943856859761234365879421974612385281354697
    516428973438197562927536148643285719172943856859761234365872491784619325291354687
    516428973438197562927536148643285719172943856859761234365879421784612395291354687
    516428973438197562927536148643285719172943856859761234365879421794612385281354697
    516428973438197562927536148643285719172943856859761234385672491764819325291354687
    516428973438197562927536148643285719172943856859761234385679421764812395291354687
    516428973438197562927536148643285719172943856859761234395672481764819325281354697
    516428973438197562927536148643285719172943856895761234359672481764819325281354697
    516428973438197562927536481643285719172943856859761234395672148764819325281354697
    516428973438197562927536481643285719172943856859761234395674128764812395281359647
    516428973438197562927536481643285719172943856895761234359672148764819325281354697
    516428973438197562927536481643285719172943856895761234359674128764812395281359647
    516428973438197562927536481643285719172943856895761234369872145754619328281354697
    516428973438197562927536481643285719172943856895761234369874125754612398281359647
    516428973438197562972536148643285719127943856859761234365872491784619325291354687
    516428973438197562972536148643285719127943856859761234365879421784612395291354687
    516428973438197562972536148643285719127943856859761234365879421794612385281354697
    516428973438197562972536148643285719127943856859761234385672491764819325291354687
    516428973438197562972536148643285719127943856859761234385679421764812395291354687
    516428973438197562972536148643285719127943856859761234395672481764819325281354697
    516428973438197562972536148643285719127943856895761234359672481764819325281354697
    516428973438197562972536418647285139125943786893761254359672841764819325281354697
    516428973438197562972536418647285139125943786893761254359674821764812395281359647
    516428973438197562972536481643285719127943856859761234395672148764819325281354697
    516428973438197562972536481643285719127943856859761234395674128764812395281359647
    516428973438197562972536481643285719127943856895761234359672148764819325281354697
    516428973438197562972536481643285719127943856895761234359674128764812395281359647
    516428973438197562972536481643285719127943856895761234369872145754619328281354697
    516428973438197562972536481643285719127943856895761234369874125754612398281359647
    516428973438197562972536841647285139125943786893761254359672418764819325281354697
    516428973438197562972536841647285139125943786893761254369872415754619328281354697
    516428973478139526329576481647285139152943768893761254935617842764892315281354697
    516428973478139526329576481647285139152943768893761254965317842784692315231854697
    516428973478139526329576841647285139152943768893761254935617482764892315281354697
    516428973478139526329576841647285139152943768893761254965317482784692315231854697
    516428973478139526392576148643285719127943865859761234735692481964817352281354697
    516428973478139526392576148643285719127943865859761234765392481984617352231854697
    516428973478139526392576148643285719127943865859761234935617482764892351281354697
    516428973478139526392576148643285719127943865859761234965317482784692351231854697
    516428973478139526392576481643285719127943865859761234735692148964817352281354697
    516428973478139526392576481643285719127943865859761234765392148984617352231854697
    516428973478139526392576481647285139125943768839761254953617842764892315281354697
    516428973478139526392576841647285139125943768839761254763892415954617382281354697
    516428973478139526392576841647285139125943768839761254953617482764892315281354697
    516428973478139526923576481647285139152943768839761254395617842764892315281354697
    516428973478139526923576841647285139152943768839761254365817492784692315291354687
    516428973478139526923576841647285139152943768839761254365897412784612395291354687
    516428973478139526923576841647285139152943768839761254365897412794612385281354697
    516428973478139526923576841647285139152943768839761254385617492764892315291354687
    516428973478139526923576841647285139152943768839761254385697412764812395291354687
    516428973478139526923576841647285139152943768839761254395617482764892315281354697
    516428973478139526932576148643285719127943865859761234365817492784692351291354687
    516428973478139526932576148643285719127943865859761234385617492764892351291354687
    516428973478139526932576148643285719127943865859761234395617482764892351281354697
    516428973478139526932576148643285719127943865895761234359617482764892351281354697
    516428973478139526932576148643285719127943865895761234369817452754692381281354697
    516428973478139526932576481643285719127943865859761234365897142794612358281354697
    516428973478139526932576481647285139125943768893761254359617842764892315281354697
    516428973478139526932576841647285139125943768893761254359617482764892315281354697
    516428973478139562329576418647285139152943786893761254735692841964817325281354697
    516428973478139562329576418647285139152943786893761254765392841984617325231854697
    516428973478139562329576841647285139152943786893761254735692418964817325281354697
    516428973478139562329576841647285139152943786893761254765392418984617325231854697
    516428973478139562329576841647285139152943786893761254935617428764892315281354697
    516428973478139562329576841647285139152943786893761254965317428784692315231854697
    516428973478139562392576148643285719127943856859761234735692481964817325281354697
    516428973478139562392576148643285719127943856859761234765392481984617325231854697
    516428973478139562392576418647285139125943786839761254753692841964817325281354697
    516428973478139562392576481643285719127943856859761234735692148964817325281354697
    516428973478139562392576481643285719127943856859761234765392148984617325231854697
    516428973478139562392576841647285139125943786839761254753692418964817325281354697
    516428973478139562392576841647285139125943786839761254763892415954617328281354697
    516428973478139562392576841647285139125943786839761254953617428764892315281354697
    516428973478139562392576841647285139125943786839761254963817425754692318281354697
    516428973478139562923576841647285139152943786839761254395617428764892315281354697
    516428973478139562932576148643285719127943856859761234365897421784612395291354687
    516428973478139562932576148643285719127943856859761234365897421794612385281354697
    516428973478139562932576148643285719127943856859761234385697421764812395291354687
    516428973478139562932576148643285719127943856895761234369817425754692381281354697
    516428973478139562932576841647285139125943786893761254359617428764892315281354697
    516428973478139562932576841647285139125943786893761254369817425754692318281354697
    516428973478319526329576481647285139152943768893761254965137842784692315231854697
    516428973478319526329576841647285139152943768893761254965137482784692315231854697
    516428973478319526329576841647285139152943768893761254985637412764192385231854697
    516428973478319526392576148643285719127943865859761234965137482784692351231854697
    516428973478319526392576481643285719127943865859761234985637142764192358231854697
    516428973478319562329576841647285139152943786893761254965137428784692315231854697
    516428973478319562392576148643285719127943856859761234985637421764192385231854697
    516428973478396512329517846647285139152943768893761254785639421964172385231854697
    516428973478396521329517468647285139152943786893761254765134892984672315231859647
    516428973478396521329517468647285139152943786893761254765139842984672315231854697
    516428973478396521329517486647285139152943768893761254765134892984672315231859647
    516428973478396521329517486647285139152943768893761254765139842984672315231854697
    516428973478396521329517846647285139152943768893761254765139482984672315231854697
    516428973478396521329517846647285139152943768893761254785639412964172385231854697
    516428973478396521392517468643285719127943856859761234785634192964172385231859647
    516428973478396521392517468643285719127943856859761234785639142964172385231854697
    516428973478396521392517486643285719127943865859761234785634192964172358231859647
    516428973478396521392517486643285719127943865859761234785639142964172358231854697
    516428973478639512329517468647285139152943786893761254765392841984176325231854697
    516428973478639512329517468647285139152943786893761254965372841784196325231854697
    516428973478639512329517486647285139152943768893761254765392841984176325231854697
    516428973478639512329517486647285139152943768893761254965372841784196325231854697
    516428973478639512329517846647285139152943768893761254735896421964172385281354697
    516428973478639512329517846647285139152943768893761254765392481984176325231854697
    516428973478639512329517846647285139152943768893761254785396421964172385231854697
    516428973478639512329517846647285139152943768893761254935876421764192385281354697
    516428973478639512329517846647285139152943768893761254965372481784196325231854697
    516428973478639512329517846647285139152943768893761254985376421764192385231854697
    516428973478639512392517468647285139125943786839761254763192845954876321281354697
    516428973478639512392517468647285139125943786839761254963172845754896321281354697
    516428973478639512392517486647285139125943768839761254763192845954876321281354697
    516428973478639512392517486647285139125943768839761254963172845754896321281354697
    516428973478639512392517846647285139125943768839761254753896421964172385281354697
    516428973478639512392517846647285139125943768839761254763192485954876321281354697
    516428973478639512392517846647285139125943768839761254953876421764192385281354697
    516428973478639512392517846647285139125943768839761254963172485754896321281354697
    516428973478639512923517846647285139152943768839761254365872491784196325291354687
    516428973478639512923517846647285139152943768839761254395876421764192385281354697
    516428973478639512932517468647285139125943786893761254369172845754896321281354697
    516428973478639512932517486647285139125943768893761254369172845754896321281354697
    516428973478639512932517846647285139125943768893761254359876421764192385281354697
    516428973478639512932517846647285139125943768893761254369172485754896321281354697
    516428973478639521329517468647285139152943786893761254735196842964872315281354697
    516428973478639521329517468647285139152943786893761254935176842764892315281354697
    516428973478639521329517486647285139152943768893761254735196842964872315281354697
    516428973478639521329517486647285139152943768893761254935176842764892315281354697
    516428973478639521329517846647285139152943768893761254735196482964872315281354697
    516428973478639521329517846647285139152943768893761254735896412964172385281354697
    516428973478639521329517846647285139152943768893761254785396412964172385231854697
    516428973478639521329517846647285139152943768893761254935176482764892315281354697
    516428973478639521329517846647285139152943768893761254935876412764192385281354697
    516428973478639521329517846647285139152943768893761254985376412764192385231854697
    516428973478639521392517468643285719127943856859761234735896142964172385281354697
    516428973478639521392517468643285719127943856859761234785396142964172385231854697
    516428973478639521392517468643285719127943856859761234935876142764192385281354697
    516428973478639521392517468643285719127943856859761234985376142764192385231854697
    516428973478639521392517468647285139125943786839761254753196842964872315281354697
    516428973478639521392517468647285139125943786839761254763192845954876312281354697
    516428973478639521392517468647285139125943786839761254953176842764892315281354697
    516428973478639521392517468647285139125943786839761254963172845754896312281354697
    516428973478639521392517486643285719127943865859761234735896142964172358281354697
    516428973478639521392517486643285719127943865859761234765392148984176352231854697
    516428973478639521392517486643285719127943865859761234785396142964172358231854697
    516428973478639521392517486643285719127943865859761234935876142764192358281354697
    516428973478639521392517486643285719127943865859761234965372148784196352231854697
    516428973478639521392517486643285719127943865859761234985376142764192358231854697
    516428973478639521392517486647285139125943768839761254753196842964872315281354697
    516428973478639521392517486647285139125943768839761254763192845954876312281354697
    516428973478639521392517486647285139125943768839761254953176842764892315281354697
    516428973478639521392517486647285139125943768839761254963172845754896312281354697
    516428973478639521392517846647285139125943768839761254753196482964872315281354697
    516428973478639521392517846647285139125943768839761254753896412964172385281354697
    516428973478639521392517846647285139125943768839761254763192485954876312281354697
    516428973478639521392517846647285139125943768839761254763892415954176382281354697
    516428973478639521392517846647285139125943768839761254953176482764892315281354697
    516428973478639521392517846647285139125943768839761254953876412764192385281354697
    516428973478639521392517846647285139125943768839761254963172485754896312281354697
    516428973478639521392517846647285139125943768839761254963872415754196382281354697
    516428973478639521923517468647285139152943786839761254395176842764892315281354697
    516428973478639521923517486647285139152943768839761254395176842764892315281354697
    516428973478639521923517846647285139152943768839761254385176492764892315291354687
    516428973478639521923517846647285139152943768839761254395176482764892315281354697
    516428973478639521923517846647285139152943768839761254395876412764192385281354697
    516428973478639521932517468643285719127943856859761234395876142764192385281354697
    516428973478639521932517468643285719127943856895761234359876142764192385281354697
    516428973478639521932517468643285719127943856895761234369872145754196382281354697
    516428973478639521932517468647285139125943786893761254359176842764892315281354697
    516428973478639521932517468647285139125943786893761254369172845754896312281354697
    516428973478639521932517486643285719127943865859761234395876142764192358281354697
    516428973478639521932517486643285719127943865895761234359876142764192358281354697
    516428973478639521932517486647285139125943768893761254359176842764892315281354697
    516428973478639521932517486647285139125943768893761254369172845754896312281354697
    516428973478639521932517846647285139125943768893761254359176482764892315281354697
    516428973478639521932517846647285139125943768893761254359876412764192385281354697
    516428973478639521932517846647285139125943768893761254369172485754896312281354697
    516428973478639521932517846647285139125943768893761254369872415754196382281354697
    516428973498137526327596148643285719172943865859761234735619482964872351281354697
    516428973498137526327596148643285719172943865859761234765319482984672351231854697
    516428973498137526327596148643285719172943865859761234935672481764819352281354697
    516428973498137526327596148643285719172943865859761234965372481784619352231854697
    516428973498137526327596481643285719172943865859761234935672148764819352281354697
    516428973498137526327596481643285719172943865859761234965372148784619352231854697
    516428973498137526372596148643285719127943865859761234735619482964872351281354697
    516428973498137526372596148643285719127943865859761234765319482984672351231854697
    516428973498137526372596148643285719127943865859761234935672481764819352281354697
    516428973498137526372596148643285719127943865859761234965372481784619352231854697
    516428973498137526372596481643285719127943865859761234935672148764819352281354697
    516428973498137526372596481643285719127943865859761234965372148784619352231854697
    516428973498137526372596481647285139125943768839761254753614892964872315281359647
    516428973498137526372596481647285139125943768839761254753619842964872315281354697
    516428973498137526372596481647285139125943768839761254953674812764812395281359647
    516428973498137526372596841647285139125943768839761254753619482964872315281354697
    516428973498137526372596841647285139125943768839761254963872415754619382281354697
    516428973498137526723596481647285139152943768839761254375614892964872315281359647
    516428973498137526723596481647285139152943768839761254375619842964872315281354697
    516428973498137526723596841647285139152943768839761254365879412974612385281354697
    516428973498137526723596841647285139152943768839761254375619482964872315281354697
    516428973498137526732596148643285719127943865859761234375619482964872351281354697
    516428973498137526732596481643285719127943865859761234365874192974612358281359647
    516428973498137526732596481643285719127943865859761234365879142974612358281354697
    516428973498137562327596148643285719172943856859761234935672481764819325281354697
    516428973498137562327596148643285719172943856859761234965372481784619325231854697
    516428973498137562327596481643285719172943856859761234935672148764819325281354697
    516428973498137562327596481643285719172943856859761234935674128764812395281359647
    516428973498137562327596481643285719172943856859761234965372148784619325231854697
    516428973498137562327596481643285719172943856859761234965374128784612395231859647
    516428973498137562372596148643285719127943856859761234935672481764819325281354697
    516428973498137562372596148643285719127943856859761234965372481784619325231854697
    516428973498137562372596418647285139125943786839761254953672841764819325281354697
    516428973498137562372596418647285139125943786839761254953674821764812395281359647
    516428973498137562372596481643285719127943856859761234935672148764819325281354697
    516428973498137562372596481643285719127943856859761234935674128764812395281359647
    516428973498137562372596481643285719127943856859761234965372148784619325231854697
    516428973498137562372596481643285719127943856859761234965374128784612395231859647
    516428973498137562372596841647285139125943786839761254753619428964872315281354697
    516428973498137562372596841647285139125943786839761254763819425954672318281354697
    516428973498137562372596841647285139125943786839761254953672418764819325281354697
    516428973498137562372596841647285139125943786839761254963872415754619328281354697
    516428973498137562723596841647285139152943786839761254375619428964872315281354697
    516428973498137562732596148643285719127943856859761234365879421974612385281354697
    516428973498317526327596148643285719172943865859761234765139482984672351231854697
    516428973498317526327596481643285719172943865859761234785634192964172358231859647
    516428973498317526327596481643285719172943865859761234785639142964172358231854697
    516428973498317526372596148643285719127943865859761234765139482984672351231854697
    516428973498317526372596481643285719127943865859761234785634192964172358231859647
    516428973498317526372596481643285719127943865859761234785639142964172358231854697
    516428973498317562327596148643285719172943856859761234785639421964172385231854697
    516428973498317562372596148643285719127943856859761234785639421964172385231854697
    516428973498376521327519468643285719172943856859761234985637142764192385231854697
    516428973498376521327519486643285719172943865859761234985637142764192358231854697
    516428973498376521372519468643285719127943856859761234985637142764192385231854697
    516428973498376521372519486643285719127943865859761234985637142764192358231854697
    516428973498637512372519468647285139125943786839761254763192845954876321281354697
    516428973498637512372519468647285139125943786839761254963172845754896321281354697
    516428973498637512372519486647285139125943768839761254763192845954876321281354697
    516428973498637512372519486647285139125943768839761254963172845754896321281354697
    516428973498637512372519846647285139125943768839761254753896421964172385281354697
    516428973498637512372519846647285139125943768839761254763192485954876321281354697
    516428973498637512372519846647285139125943768839761254953876421764192385281354697
    516428973498637512372519846647285139125943768839761254963172485754896321281354697
    516428973498637512723519846647285139152943768839761254375896421964172385281354697
    516428973498637521327519468643285719172943856859761234735896142964172385281354697
    516428973498637521327519468643285719172943856859761234785396142964172385231854697
    516428973498637521327519468643285719172943856859761234935876142764192385281354697
    516428973498637521327519468643285719172943856859761234985376142764192385231854697
    516428973498637521327519486643285719172943865859761234735896142964172358281354697
    516428973498637521327519486643285719172943865859761234765392148984176352231854697
    516428973498637521327519486643285719172943865859761234785396142964172358231854697
    516428973498637521327519486643285719172943865859761234935876142764192358281354697
    516428973498637521327519486643285719172943865859761234965372148784196352231854697
    516428973498637521327519486643285719172943865859761234985376142764192358231854697
    516428973498637521372519468643285719127943856859761234735896142964172385281354697
    516428973498637521372519468643285719127943856859761234785396142964172385231854697
    516428973498637521372519468643285719127943856859761234935876142764192385281354697
    516428973498637521372519468643285719127943856859761234985376142764192385231854697
    516428973498637521372519468647285139125943786839761254753196842964872315281354697
    516428973498637521372519468647285139125943786839761254763192845954876312281354697
    516428973498637521372519468647285139125943786839761254953176842764892315281354697
    516428973498637521372519468647285139125943786839761254963172845754896312281354697
    516428973498637521372519486643285719127943865859761234735896142964172358281354697
    516428973498637521372519486643285719127943865859761234765392148984176352231854697
    516428973498637521372519486643285719127943865859761234785396142964172358231854697
    516428973498637521372519486643285719127943865859761234935876142764192358281354697
    516428973498637521372519486643285719127943865859761234965372148784196352231854697
    516428973498637521372519486643285719127943865859761234985376142764192358231854697
    516428973498637521372519486647285139125943768839761254753196842964872315281354697
    516428973498637521372519486647285139125943768839761254763192845954876312281354697
    516428973498637521372519486647285139125943768839761254953176842764892315281354697
    516428973498637521372519486647285139125943768839761254963172845754896312281354697
    516428973498637521372519846647285139125943768839761254753196482964872315281354697
    516428973498637521372519846647285139125943768839761254753896412964172385281354697
    516428973498637521372519846647285139125943768839761254763192485954876312281354697
    516428973498637521372519846647285139125943768839761254763892415954176382281354697
    516428973498637521372519846647285139125943768839761254953176482764892315281354697
    516428973498637521372519846647285139125943768839761254953876412764192385281354697
    516428973498637521372519846647285139125943768839761254963172485754896312281354697
    516428973498637521372519846647285139125943768839761254963872415754196382281354697
    516428973498637521723519468647285139152943786839761254375196842964872315281354697
    516428973498637521723519486647285139152943768839761254375196842964872315281354697
    516428973498637521723519846647285139152943768839761254375196482964872315281354697
    516428973498637521723519846647285139152943768839761254375896412964172385281354697
    516428973498637521732519468643285719127943856859761234375896142964172385281354697
    516428973498637521732519486643285719127943865859761234375896142964172358281354697
    516428973728139546439576128643285719172943865895761234357692481964817352281354697
    516428973728139546439576128643285719172943865895761234367892451954617382281354697
    516428973728139546439576182643285719172943865895761234367892451954617328281354697
    516428973728139546439576812647285139152943768893761254365897421974612385281354697
    516428973728139546439576812647285139152943768893761254375692481964817325281354697
    516428973728139546439576821647285139152943768893761254365897412974612385281354697
    516428973728139546493576812647285139152943768839761254365897421974612385281354697
    516428973728139546493576812647285139152943768839761254375692481964817325281354697
    516428973728139546493576821647285139152943768839761254365897412974612385281354697
    516428973728639541439517826647285139152943768893761254375196482964872315281354697
    516428973728639541439517826647285139152943768893761254375896412964172385281354697
    516428973728639541439517862647285139152943786893761254375196428964872315281354697
    516428973728639541493517826647285139152943768839761254375196482964872315281354697
    516428973728639541493517826647285139152943768839761254375896412964172385281354697
    516428973728639541493517862647285139152943786839761254375196428964872315281354697
    516428973738196542429537168643285719172943856895761234367819425954672381281354697
    516428973738196542429537186643285719172943865895761234357619428964872351281354697
    516428973738196542429537816647285139152943768893761254365879421974612385281354697
    516428973738196542429537861647285139152943786893761254375619428964872315281354697
    516428973738196542492537168643285719127943856859761234365879421974612385281354697
    516428973738196542492537186643285719127943865859761234365879421974612358281354697
    516428973738196542492537186643285719127943865859761234375619428964872351281354697
    516428973738619542429537168643285719172943856895761234357896421964172385281354697
    516428973738619542429537168643285719172943856895761234367192485954876321281354697
    516428973738619542429537186643285719172943865895761234357196428964872351281354697
    516428973738619542429537186643285719172943865895761234357896421964172358281354697
    516428973738619542429537186643285719172943865895761234367192458954876321281354697
    516428973738619542429537186643285719172943865895761234367892451954176328281354697
    516428973738619542429537816647285139152943768893761254375896421964172385281354697
    516428973738619542429537861647285139152943786893761254375196428964872315281354697
    516428973738619542492537168643285719127943856859761234375896421964172385281354697
    516428973738619542492537186643285719127943865859761234375196428964872351281354697
    516428973738619542492537186643285719127943865859761234375896421964172358281354697
    516428973798136542423579816647285139152943768839761254365897421974612385281354697
    516428973798136542423579816647285139152943768839761254375692481964817325281354697
    516428973798136542423579861647285139152943786839761254375692418964817325281354697
    516428973798136542423597816647285139152943768839761254365879421974612385281354697
    516428973798136542423597861647285139152943786839761254375619428964872315281354697
    516428973798136542432579168643285719127943856859761234365897421974612385281354697
    516428973798136542432579168643285719127943856859761234375692481964817325281354697
    516428973798136542432579186643285719127943865859761234365897421974612358281354697
    516428973798136542432597168643285719127943856859761234365879421974612385281354697
    516428973798136542432597186643285719127943865859761234365879421974612358281354697
    516428973798136542432597186643285719127943865859761234375619428964872351281354697
    516428973928137546437596128643285719172943865859761234365872491784619352291354687
    516428973928137546437596128643285719172943865859761234385672491764819352291354687
    516428973928137546437596128643285719172943865859761234395672481764819352281354697
    516428973928137546437596128643285719172943865895761234359672481764819352281354697
    516428973928137546437596128643285719172943865895761234369872451754619382281354697
    516428973928137546437596182643285719172943865859761234365879421794612358281354697
    516428973928137546437596182643285719172943865895761234369872451754619328281354697
    516428973928137546473596812647285139152943768839761254365872491784619325291354687
    516428973928137546473596812647285139152943768839761254365879421784612395291354687
    516428973928137546473596812647285139152943768839761254365879421794612385281354697
    516428973928137546473596812647285139152943768839761254385672491764819325291354687
    516428973928137546473596812647285139152943768839761254385679421764812395291354687
    516428973928137546473596812647285139152943768839761254395672481764819325281354697
    516428973928137546473596821647285139152943768839761254365879412784612395291354687
    516428973928137546473596821647285139152943768839761254365879412794612385281354697
    516428973928137546473596821647285139152943768839761254385679412764812395291354687
    516428973928637541473519826647285139152943768839761254385176492764892315291354687
    516428973928637541473519826647285139152943768839761254395176482764892315281354697
    516428973928637541473519826647285139152943768839761254395876412764192385281354697
    516428973928637541473519862647285139152943786839761254395176428764892315281354697
    516428973938176542427539168643285719172943856859761234365897421784612395291354687
    516428973938176542427539168643285719172943856859761234365897421794612385281354697
    516428973938176542427539168643285719172943856859761234385697421764812395291354687
    516428973938176542427539168643285719172943856895761234369817425754692381281354697
    516428973938176542427539186643285719172943865859761234365897421794612358281354697
    516428973938176542427539186643285719172943865859761234395617428764892351281354697
    516428973938176542427539186643285719172943865895761234359617428764892351281354697
    516428973938176542472539168643285719127943856859761234365897421784612395291354687
    516428973938176542472539168643285719127943856859761234365897421794612385281354697
    516428973938176542472539168643285719127943856859761234385697421764812395291354687
    516428973938176542472539168643285719127943856895761234369817425754692381281354697
    516428973938176542472539186643285719127943865859761234365897421794612358281354697
    516428973938176542472539186643285719127943865859761234395617428764892351281354697
    516428973938176542472539186643285719127943865895761234359617428764892351281354697
    516428973938176542472539816647285139125943768893761254369817425754692381281354697
    516428973938176542472539861647285139125943786893761254359617428764892315281354697
    516428973938176542472539861647285139125943786893761254369817425754692318281354697
    516428973938617542427539168643285719172943856859761234365872491784196325291354687
    516428973938617542427539168643285719172943856859761234395876421764192385281354697
    516428973938617542427539168643285719172943856895761234359876421764192385281354697
    516428973938617542427539168643285719172943856895761234369172485754896321281354697
    516428973938617542427539186643285719172943865859761234395176428764892351281354697
    516428973938617542427539186643285719172943865859761234395876421764192358281354697
    516428973938617542427539186643285719172943865895761234359176428764892351281354697
    516428973938617542427539186643285719172943865895761234359876421764192358281354697
    516428973938617542427539186643285719172943865895761234369172458754896321281354697
    516428973938617542427539186643285719172943865895761234369872451754196328281354697
    516428973938617542472539168643285719127943856859761234365872491784196325291354687
    516428973938617542472539168643285719127943856859761234395876421764192385281354697
    516428973938617542472539168643285719127943856895761234359876421764192385281354697
    516428973938617542472539168643285719127943856895761234369172485754896321281354697
    516428973938617542472539186643285719127943865859761234395176428764892351281354697
    516428973938617542472539186643285719127943865859761234395876421764192358281354697
    516428973938617542472539186643285719127943865895761234359176428764892351281354697
    516428973938617542472539186643285719127943865895761234359876421764192358281354697
    516428973938617542472539186643285719127943865895761234369172458754896321281354697
    516428973938617542472539186643285719127943865895761234369872451754196328281354697
    516428973938617542472539816647285139125943768893761254359876421764192385281354697
    516428973938617542472539816647285139125943768893761254369172485754896321281354697
    516428973938617542472539861647285139125943786893761254359176428764892315281354697
    516428973938617542472539861647285139125943786893761254369872415754196328281354697
    516428973978136542423579816647285139152943768839761254365897421784612395291354687
    516428973978136542423579816647285139152943768839761254365897421794612385281354697
    516428973978136542423579816647285139152943768839761254385697421764812395291354687
    516428973978136542423579861647285139152943786839761254395617428764892315281354697
    516428973978136542423597816647285139152943768839761254365872491784619325291354687
    516428973978136542423597816647285139152943768839761254365879421784612395291354687
    516428973978136542423597816647285139152943768839761254365879421794612385281354697
    516428973978136542423597816647285139152943768839761254385672491764819325291354687
    516428973978136542423597816647285139152943768839761254385679421764812395291354687
    516428973978136542423597816647285139152943768839761254395672481764819325281354697
    516428973978136542423597861647285139152943786839761254395672418764819325281354697
    516428973978136542432579168643285719127943856859761234365897421784612395291354687
    516428973978136542432579168643285719127943856859761234365897421794612385281354697
    516428973978136542432579168643285719127943856859761234385697421764812395291354687
    516428973978136542432579168643285719127943856895761234369817425754692381281354697
    516428973978136542432579186643285719127943865859761234365897421794612358281354697
    516428973978136542432579186643285719127943865859761234395617428764892351281354697
    516428973978136542432579186643285719127943865895761234359617428764892351281354697
    516428973978136542432579816647285139125943768893761254369817425754692381281354697
    516428973978136542432579861647285139125943786893761254359617428764892315281354697
    516428973978136542432579861647285139125943786893761254369817425754692318281354697
    516428973978136542432597168643285719127943856859761234365872491784619325291354687
    516428973978136542432597168643285719127943856859761234365879421784612395291354687
    516428973978136542432597168643285719127943856859761234365879421794612385281354697
    516428973978136542432597168643285719127943856859761234385672491764819325291354687
    516428973978136542432597168643285719127943856859761234385679421764812395291354687
    516428973978136542432597168643285719127943856859761234395672481764819325281354697
    516428973978136542432597168643285719127943856895761234359672481764819325281354697
    516428973978136542432597186643285719127943865859761234365879421794612358281354697
    516428973978136542432597186643285719127943865895761234369872451754619328281354697
    516428973978136542432597816647285139125943768893761254359672481764819325281354697
    516428973978136542432597861647285139125943786893761254359672418764819325281354697
    516428973978136542432597861647285139125943786893761254369872415754619328281354697
    516824973328179546479536812647285139152943768893761254765392481984617325231458697
    516824973328179546479536821647285139152943768893761254965317482784692315231458697
    516824973328179546497536128643285719172943865859761234765392481984617352231458697
    516824973328179546497536128643285719172943865859761234965317482784692351231458697
    516824973328179546497536182643285719172943865859761234965317428784692351231458697
    516824973328197546479536812647285139152943768893761254965372481784619325231458697
    516824973328197546479536812647285139152943768893761254965378421784612395231459687
    516824973328197546479536821647285139152943768893761254765318492984672315231459687
    516824973328197546479536821647285139152943768893761254765319482984672315231458697
    516824973328197546479536821647285139152943768893761254965378412784612395231459687
    516824973328197546497536128643285719172943865859761234765318492984672351231459687
    516824973328197546497536128643285719172943865859761234765319482984672351231458697
    516824973328197546497536128643285719172943865859761234965372481784619352231458697
    516824973328197546497536182643285719172943865859761234765319428984672351231458697
    516824973378196542429537816647285139152943768893761254965372481784619325231458697
    516824973378196542429537816647285139152943768893761254965378421784612395231459687
    516824973378196542429537861647285139152943786893761254765319428984672315231458697
    516824973378196542429537861647285139152943786893761254965372418784619325231458697
    516824973378196542492537168643285719127943856859761234965372481784619325231458697
    516824973378196542492537168643285719127943856859761234965378421784612395231459687
    516824973378196542492537186643285719127943865859761234765319428984672351231458697
    516824973378619542429537816647285139152943768893761254765392481984176325231458697
    516824973378619542429537816647285139152943768893761254785396421964172385231458697
    516824973378619542429537816647285139152943768893761254965372481784196325231458697
    516824973378619542429537816647285139152943768893761254985376421764192385231458697
    516824973378619542429537861647285139152943786893761254765392418984176325231458697
    516824973378619542429537861647285139152943786893761254965372418784196325231458697
    516824973378619542492537168643285719127943856859761234765392481984176325231458697
    516824973378619542492537168643285719127943856859761234785396421964172385231458697
    516824973378619542492537168643285719127943856859761234965372481784196325231458697
    516824973378619542492537168643285719127943856859761234985376421764192385231458697
    516824973378619542492537186643285719127943865859761234785396421964172358231458697
    516824973378619542492537186643285719127943865859761234985376421764192358231458697
    516824973398176542427539168643285719172943856859761234765392481984617325231458697
    516824973398176542427539186643285719172943865859761234965317428784692351231458697
    516824973398176542472539168643285719127943856859761234765392481984617325231458697
    516824973398176542472539186643285719127943865859761234965317428784692351231458697
    516824973398617542427539168643285719172943856859761234765392481984176325231458697
    516824973398617542427539168643285719172943856859761234785396421964172385231458697
    516824973398617542427539168643285719172943856859761234965372481784196325231458697
    516824973398617542427539168643285719172943856859761234985376421764192385231458697
    516824973398617542427539186643285719172943865859761234785396421964172358231458697
    516824973398617542427539186643285719172943865859761234985376421764192358231458697
    516824973398617542472539168643285719127943856859761234765392481984176325231458697
    516824973398617542472539168643285719127943856859761234785396421964172385231458697
    516824973398617542472539168643285719127943856859761234965372481784196325231458697
    516824973398617542472539168643285719127943856859761234985376421764192385231458697
    516824973398617542472539186643285719127943865859761234785396421964172358231458697
    516824973398617542472539186643285719127943865859761234985376421764192358231458697
    516824973428379516379516842647285139152943768893761254985637421764192385231458697
    516824973428379561379516428647285139152943786893761254965137842784692315231458697
    516824973428379561379516842647285139152943786893761254965137428784692315231458697
    516824973428379561397516428643285719172943856859761234985637142764192385231458697
    516824973428397516379516842647285139152943768893761254785632491964178325231459687
    516824973428397516379516842647285139152943768893761254785639421964172385231458697
    516824973428397561379516428647285139152943786893761254765139842984672315231458697
    516824973428397561379516842647285139152943786893761254765139428984672315231458697
    516824973428397561397516428643285719172943856859761234785639142964172385231458697
    516824973438179562927536481643285719172943856859761234365497128784612395291358647
    516824973438179562972536481643285719127943856859761234365497128784612395291358647
    516824973438197526792536481643285719127943865859761234365472198974618352281359647
    516824973438197526792536481643285719127943865859761234365478192974612358281359647
    516824973438197526927536481643285719172943865859761234365472198784619352291358647
    516824973438197526927536481643285719172943865859761234365472198794618352281359647
    516824973438197526927536481643285719172943865859761234365478192794612358281359647
    516824973438197526927536481643285719172943865895761234369472158754618392281359647
    516824973438197526927536481643285719172943865895761234369478152754612398281359647
    516824973438197526972536481643285719127943865859761234365472198784619352291358647
    516824973438197526972536481643285719127943865859761234365472198794618352281359647
    516824973438197526972536481643285719127943865859761234365478192794612358281359647
    516824973438197526972536481643285719127943865895761234369472158754618392281359647
    516824973438197526972536481643285719127943865895761234369478152754612398281359647
    516824973438197526972536481647285139125943768893761254369472815754618392281359647
    516824973438197562729536418647285139152943786893761254365472891974618325281359647
    516824973438197562792536481643285719127943856859761234365472198974618325281359647
    516824973438197562927536481643285719172943856859761234365472198784619325291358647
    516824973438197562927536481643285719172943856859761234365472198794618325281359647
    516824973438197562927536481643285719172943856859761234365479128784612395291358647
    516824973438197562927536481643285719172943856895761234369478125754612398281359647
    516824973438197562972536481643285719127943856859761234365472198784619325291358647
    516824973438197562972536481643285719127943856859761234365472198794618325281359647
    516824973438197562972536481643285719127943856859761234365479128784612395291358647
    516824973438197562972536481643285719127943856895761234369478125754612398281359647
    516824973478139526329576481647285139152943768893761254965317842784692315231458697
    516824973478139526329576841647285139152943768893761254965317482784692315231458697
    516824973478139526392576148643285719127943865859761234765392481984617352231458697
    516824973478139526392576148643285719127943865859761234965317482784692351231458697
    516824973478139526392576481643285719127943865859761234765392148984617352231458697
    516824973478139526923576481647285139152943768839761254365417892784692315291358647
    516824973478139526923576481647285139152943768839761254365497812784612395291358647
    516824973478139562329576418647285139152943786893761254765392841984617325231458697
    516824973478139562329576841647285139152943786893761254765392418984617325231458697
    516824973478139562329576841647285139152943786893761254965317428784692315231458697
    516824973478139562392576148643285719127943856859761234765392481984617325231458697
    516824973478139562392576481643285719127943856859761234765392148984617325231458697
    516824973478139562923576418647285139152943786839761254365497821784612395291358647
    516824973478139562932576481643285719127943856859761234365497128784612395291358647
    516824973478319526329576481647285139152943768893761254965137842784692315231458697
    516824973478319526329576841647285139152943768893761254965137482784692315231458697
    516824973478319526329576841647285139152943768893761254985637412764192385231458697
    516824973478319526392576148643285719127943865859761234965137482784692351231458697
    516824973478319526392576481643285719127943865859761234985637142764192358231458697
    516824973478319562329576841647285139152943786893761254965137428784692315231458697
    516824973478319562392576148643285719127943856859761234985637421764192385231458697
    516824973478396512329517846647285139152943768893761254785632491964178325231459687
    516824973478396512329517846647285139152943768893761254785639421964172385231458697
    516824973478396521329517468647285139152943786893761254765139842984672315231458697
    516824973478396521329517486647285139152943768893761254765139842984672315231458697
    516824973478396521329517846647285139152943768893761254765138492984672315231459687
    516824973478396521329517846647285139152943768893761254765139482984672315231458697
    516824973478396521329517846647285139152943768893761254785639412964172385231458697
    516824973478396521392517468643285719127943856859761234785639142964172385231458697
    516824973478396521392517486643285719127943865859761234785639142964172358231458697
    516824973478639512329517468647285139152943786893761254765392841984176325231458697
    516824973478639512329517468647285139152943786893761254965372841784196325231458697
    516824973478639512329517486647285139152943768893761254765392841984176325231458697
    516824973478639512329517486647285139152943768893761254965372841784196325231458697
    516824973478639512329517846647285139152943768893761254765392481984176325231458697
    516824973478639512329517846647285139152943768893761254785396421964172385231458697
    516824973478639512329517846647285139152943768893761254965372481784196325231458697
    516824973478639512329517846647285139152943768893761254985376421764192385231458697
    516824973478639512923517468647285139152943786839761254365472891784196325291358647
    516824973478639512923517486647285139152943768839761254365472891784196325291358647
    516824973478639521329517846647285139152943768893761254785396412964172385231458697
    516824973478639521329517846647285139152943768893761254985376412764192385231458697
    516824973478639521392517468643285719127943856859761234785396142964172385231458697
    516824973478639521392517468643285719127943856859761234985376142764192385231458697
    516824973478639521392517486643285719127943865859761234765392148984176352231458697
    516824973478639521392517486643285719127943865859761234785396142964172358231458697
    516824973478639521392517486643285719127943865859761234965372148784196352231458697
    516824973478639521392517486643285719127943865859761234985376142764192358231458697
    516824973478639521932517468643285719127943856859761234385476192764192385291358647
    516824973478639521932517486643285719127943865859761234365472198784196352291358647
    516824973478639521932517486643285719127943865859761234385476192764192358291358647
    516824973498137526327596148643285719172943865859761234765318492984672351231459687
    516824973498137526327596148643285719172943865859761234765319482984672351231458697
    516824973498137526327596148643285719172943865859761234965372481784619352231458697
    516824973498137526327596481643285719172943865859761234965372148784619352231458697
    516824973498137526372596148643285719127943865859761234765318492984672351231459687
    516824973498137526372596148643285719127943865859761234765319482984672351231458697
    516824973498137526372596148643285719127943865859761234965372481784619352231458697
    516824973498137526372596481643285719127943865859761234965372148784619352231458697
    516824973498137526372596481647285139125943768839761254763412895954678312281359647
    516824973498137526372596481647285139125943768839761254963472815754618392281359647
    516824973498137526732596481643285719127943865859761234365472198974618352281359647
    516824973498137526732596481643285719127943865859761234365478192974612358281359647
    516824973498137562327596148643285719172943856859761234965372481784619325231458697
    516824973498137562327596148643285719172943856859761234965378421784612395231459687
    516824973498137562327596481643285719172943856859761234965372148784619325231458697
    516824973498137562372596148643285719127943856859761234965372481784619325231458697
    516824973498137562372596148643285719127943856859761234965378421784612395231459687
    516824973498137562372596418647285139125943786839761254763412895954678321281359647
    516824973498137562372596481643285719127943856859761234965372148784619325231458697
    516824973498137562723596418647285139152943786839761254365472891974618325281359647
    516824973498137562732596481643285719127943856859761234365472198974618325281359647
    516824973498317526327596148643285719172943865859761234765138492984672351231459687
    516824973498317526327596148643285719172943865859761234765139482984672351231458697
    516824973498317526327596148643285719172943865859761234785632491964178352231459687
    516824973498317526327596481643285719172943865859761234785639142964172358231458697
    516824973498317526372596148643285719127943865859761234765138492984672351231459687
    516824973498317526372596148643285719127943865859761234765139482984672351231458697
    516824973498317526372596148643285719127943865859761234785632491964178352231459687
    516824973498317526372596481643285719127943865859761234785639142964172358231458697
    516824973498317562327596148643285719172943856859761234785632491964178325231459687
    516824973498317562327596148643285719172943856859761234785639421964172385231458697
    516824973498317562372596148643285719127943856859761234785632491964178325231459687
    516824973498317562372596148643285719127943856859761234785639421964172385231458697
    516824973498376521327519468643285719172943856859761234985637142764192385231458697
    516824973498376521327519486643285719172943865859761234985637142764192358231458697
    516824973498376521372519468643285719127943856859761234985637142764192385231458697
    516824973498376521372519486643285719127943865859761234985637142764192358231458697
    516824973498637521327519468643285719172943856859761234785396142964172385231458697
    516824973498637521327519468643285719172943856859761234985376142764192385231458697
    516824973498637521327519486643285719172943865859761234765392148984176352231458697
    516824973498637521327519486643285719172943865859761234785396142964172358231458697
    516824973498637521327519486643285719172943865859761234965372148784196352231458697
    516824973498637521327519486643285719172943865859761234985376142764192358231458697
    516824973498637521372519468643285719127943856859761234785396142964172385231458697
    516824973498637521372519468643285719127943856859761234985376142764192385231458697
    516824973498637521372519486643285719127943865859761234765392148984176352231458697
    516824973498637521372519486643285719127943865859761234785396142964172358231458697
    516824973498637521372519486643285719127943865859761234965372148784196352231458697
    516824973498637521372519486643285719127943865859761234985376142764192358231458697
    516827943328194576479536812647285139152943768893761254965372481784619325231458697
    516827943328194576479536812647285139152943768893761254965378421784612395231459687
    516827943328194576479536821647285139152943768893761254765318492984672315231459687
    516827943328194576479536821647285139152943768893761254765319482984672315231458697
    516827943328194576479536821647285139152943768893761254965378412784612395231459687
    516827943328194576497536128643285719172943865859761234765318492984672351231459687
    516827943328194576497536128643285719172943865859761234765319482984672351231458697
    516827943328194576497536128643285719172943865859761234965372481784619352231458697
    516827943328194576497536182643285719172943865859761234765319428984672351231458697
    516827943328419576479536812647285139152943768893761254735692481964178325281354697
    516827943328419576479536812647285139152943768893761254735698421964172385281354697
    516827943328419576479536812647285139152943768893761254935672481764198325281354697
    516827943328419576479536812647285139152943768893761254935678421764192385281354697
    516827943328419576479536821647285139152943768893761254735698412964172385281354697
    516827943328419576479536821647285139152943768893761254935678412764192385281354697
    516827943328419576497536128643285719172943865859761234735692481964178352281354697
    516827943328419576497536128643285719172943865859761234935672481764198352281354697
    516827943328419576497536182643285719172943865859761234735698421964172358281354697
    516827943328419576497536182643285719172943865859761234935678421764192358281354697
    516827943378194526429536871647285139152943768893761254765318492984672315231459687
    516827943378194526429536871647285139152943768893761254765319482984672315231458697
    516827943378194526429536871647285139152943768893761254965378412784612395231459687
    516827943378194526492536178643285719127943865859761234765318492984672351231459687
    516827943378194526492536178643285719127943865859761234765319482984672351231458697
    516827943378194526492536178643285719127943865859761234965372481784619352231458697
    516827943378194526492536718643285179127943865859761234765318492984672351231459687
    516827943378194526492536718643285179127943865859761234765319482984672351231458697
    516827943378194526492536718643285179127943865859761234965372481784619352231458697
    516827943378194526492536781643285179127943865859761234965372418784619352231458697
    516827943378194562429536718647285139152943876893761254965372481784619325231458697
    516827943378194562429536718647285139152943876893761254965378421784612395231459687
    516827943378194562429536781647285139152943876893761254765319428984672315231458697
    516827943378194562429536781647285139152943876893761254965372418784619325231458697
    516827943378194562429536871647285139152943786893761254765319428984672315231458697
    516827943378194562429536871647285139152943786893761254965372418784619325231458697
    516827943378194562492536178643285719127943856859761234965372481784619325231458697
    516827943378194562492536178643285719127943856859761234965378421784612395231459687
    516827943378194562492536718643285179127943856859761234965372481784619325231458697
    516827943378194562492536718643285179127943856859761234965378421784612395231459687
    516827943378194562492536781643285179127943856859761234765319428984672315231458697
    516827943378194562492536781643285179127943856859761234965372418784619325231458697
    516827943378419526429536871647285139152943768893761254735698412964172385281354697
    516827943378419526429536871647285139152943768893761254935678412764192385281354697
    516827943378419526492536178643285719127943865859761234735692481964178352281354697
    516827943378419526492536178643285719127943865859761234935672481764198352281354697
    516827943378419526492536718643285179127943865859761234735692481964178352281354697
    516827943378419526492536718643285179127943865859761234935672481764198352281354697
    516827943378419526492536781643285179127943865859761234735692418964178352281354697
    516827943378419526492536781643285179127943865859761234735698412964172358281354697
    516827943378419526492536781643285179127943865859761234935672418764198352281354697
    516827943378419526492536781643285179127943865859761234935678412764192358281354697
    516827943378419526492536871647285139125943768839761254753698412964172385281354697
    516827943378419526492536871647285139125943768839761254763192485954678312281354697
    516827943378419526492536871647285139125943768839761254953678412764192385281354697
    516827943378419526492536871647285139125943768839761254963172485754698312281354697
    516827943378419562429536718647285139152943876893761254735692481964178325281354697
    516827943378419562429536718647285139152943876893761254735698421964172385281354697
    516827943378419562429536718647285139152943876893761254935672481764198325281354697
    516827943378419562429536718647285139152943876893761254935678421764192385281354697
    516827943378419562429536781647285139152943876893761254735692418964178325281354697
    516827943378419562429536781647285139152943876893761254935672418764198325281354697
    516827943378419562429536871647285139152943786893761254735692418964178325281354697
    516827943378419562429536871647285139152943786893761254935672418764198325281354697
    516827943378419562492536178643285719127943856859761234735692481964178325281354697
    516827943378419562492536178643285719127943856859761234735698421964172385281354697
    516827943378419562492536178643285719127943856859761234935672481764198325281354697
    516827943378419562492536178643285719127943856859761234935678421764192385281354697
    516827943378419562492536718643285179127943856859761234735692481964178325281354697
    516827943378419562492536718643285179127943856859761234735698421964172385281354697
    516827943378419562492536718643285179127943856859761234935672481764198325281354697
    516827943378419562492536718643285179127943856859761234935678421764192385281354697
    516827943378419562492536718647285139125943876839761254753692481964178325281354697
    516827943378419562492536718647285139125943876839761254753698421964172385281354697
    516827943378419562492536718647285139125943876839761254763192485954678321281354697
    516827943378419562492536718647285139125943876839761254763198425954672381281354697
    516827943378419562492536718647285139125943876839761254953672481764198325281354697
    516827943378419562492536718647285139125943876839761254953678421764192385281354697
    516827943378419562492536718647285139125943876839761254963172485754698321281354697
    516827943378419562492536718647285139125943876839761254963178425754692381281354697
    516827943378419562492536781643285179127943856859761234735692418964178325281354697
    516827943378419562492536781643285179127943856859761234935672418764198325281354697
    516827943378419562492536781647285139125943876839761254753692418964178325281354697
    516827943378419562492536781647285139125943876839761254763198425954672318281354697
    516827943378419562492536781647285139125943876839761254953672418764198325281354697
    516827943378419562492536781647285139125943876839761254963178425754692318281354697
    516827943378419562492536871647285139125943786839761254753692418964178325281354697
    516827943378419562492536871647285139125943786839761254763198425954672318281354697
    516827943378419562492536871647285139125943786839761254953672418764198325281354697
    516827943378419562492536871647285139125943786839761254963178425754692318281354697
    516827943398416572427539168643285719172943856859761234735692481964178325281354697
    516827943398416572427539168643285719172943856859761234735698421964172385281354697
    516827943398416572427539168643285719172943856859761234935672481764198325281354697
    516827943398416572427539168643285719172943856859761234935678421764192385281354697
    516827943398416572427539186643285719172943865859761234735698421964172358281354697
    516827943398416572427539186643285719172943865859761234935678421764192358281354697
    516827943398416572472539168643285719127943856859761234735692481964178325281354697
    516827943398416572472539168643285719127943856859761234735698421964172385281354697
    516827943398416572472539168643285719127943856859761234935672481764198325281354697
    516827943398416572472539168643285719127943856859761234935678421764192385281354697
    516827943398416572472539186643285719127943865859761234735698421964172358281354697
    516827943398416572472539186643285719127943865859761234935678421764192358281354697
    516827943398416572472539816647285139125943768839761254753692481964178325281354697
    516827943398416572472539816647285139125943768839761254753698421964172385281354697
    516827943398416572472539816647285139125943768839761254763192485954678321281354697
    516827943398416572472539816647285139125943768839761254763198425954672381281354697
    516827943398416572472539816647285139125943768839761254953672481764198325281354697
    516827943398416572472539816647285139125943768839761254953678421764192385281354697
    516827943398416572472539816647285139125943768839761254963172485754698321281354697
    516827943398416572472539816647285139125943768839761254963178425754692381281354697
    516827943398416572472539861647285139125943786839761254753692418964178325281354697
    516827943398416572472539861647285139125943786839761254763198425954672318281354697
    516827943398416572472539861647285139125943786839761254953672418764198325281354697
    516827943398416572472539861647285139125943786839761254963178425754692318281354697
    516827943398614572427539168643285719172943856859761234765392481984176325231458697
    516827943398614572427539168643285719172943856859761234785396421964172385231458697
    516827943398614572427539168643285719172943856859761234965372481784196325231458697
    516827943398614572427539168643285719172943856859761234985376421764192385231458697
    516827943398614572427539186643285719172943865859761234785396421964172358231458697
    516827943398614572427539186643285719172943865859761234985376421764192358231458697
    516827943398614572472539168643285719127943856859761234765392481984176325231458697
    516827943398614572472539168643285719127943856859761234785396421964172385231458697
    516827943398614572472539168643285719127943856859761234965372481784196325231458697
    516827943398614572472539168643285719127943856859761234985376421764192385231458697
    516827943398614572472539186643285719127943865859761234785396421964172358231458697
    516827943398614572472539186643285719127943865859761234985376421764192358231458697
    516827943428396571379514826647285139152943768893761254765138492984672315231459687
    516827943428396571379514826647285139152943768893761254765139482984672315231458697
    516827943428396571379514826647285139152943768893761254785639412964172385231458697
    516827943428396571379514862647285139152943786893761254765139428984672315231458697
    516827943428639571379514826647285139152943768893761254785396412964172385231458697
    516827943428639571379514826647285139152943768893761254985376412764192385231458697
    516827943428639571379514862647285139152943786893761254765392418984176325231458697
    516827943428639571379514862647285139152943786893761254965372418784196325231458697
    516827943478396512329514768647285139152943876893761254785632491964178325231459687
    516827943478396512329514768647285139152943876893761254785639421964172385231458697
    516827943478396512329514876647285139152943768893761254785632491964178325231459687
    516827943478396512329514876647285139152943768893761254785639421964172385231458697
    516827943478396512392514768643285179127943856859761234785632491964178325231459687
    516827943478396512392514768643285179127943856859761234785639421964172385231458697
    516827943478396512392514786643285179127943865859761234765139428984672351231458697
    516827943478396512392514786643285179127943865859761234785639421964172358231458697
    516827943478396521329514768647285139152943876893761254765138492984672315231459687
    516827943478396521329514768647285139152943876893761254765139482984672315231458697
    516827943478396521329514768647285139152943876893761254785639412964172385231458697
    516827943478396521329514876647285139152943768893761254765138492984672315231459687
    516827943478396521329514876647285139152943768893761254765139482984672315231458697
    516827943478396521329514876647285139152943768893761254785639412964172385231458697
    516827943478396521392514768643285179127943856859761234765138492984672315231459687
    516827943478396521392514768643285179127943856859761234765139482984672315231458697
    516827943478396521392514768643285179127943856859761234785639412964172385231458697
    516827943478396521392514786643285179127943865859761234785639412964172358231458697
    516827943478639512329514768647285139152943876893761254765392481984176325231458697
    516827943478639512329514768647285139152943876893761254785396421964172385231458697
    516827943478639512329514768647285139152943876893761254965372481784196325231458697
    516827943478639512329514768647285139152943876893761254985376421764192385231458697
    516827943478639512329514876647285139152943768893761254765392481984176325231458697
    516827943478639512329514876647285139152943768893761254785396421964172385231458697
    516827943478639512329514876647285139152943768893761254965372481784196325231458697
    516827943478639512329514876647285139152943768893761254985376421764192385231458697
    516827943478639512392514768643285179127943856859761234765392481984176325231458697
    516827943478639512392514768643285179127943856859761234785396421964172385231458697
    516827943478639512392514768643285179127943856859761234965372481784196325231458697
    516827943478639512392514768643285179127943856859761234985376421764192385231458697
    516827943478639512392514786643285179127943865859761234785396421964172358231458697
    516827943478639512392514786643285179127943865859761234985376421764192358231458697
    516827943478639521329514768647285139152943876893761254785396412964172385231458697
    516827943478639521329514768647285139152943876893761254985376412764192385231458697
    516827943478639521329514876647285139152943768893761254785396412964172385231458697
    516827943478639521329514876647285139152943768893761254985376412764192385231458697
    516827943478639521392514768643285179127943856859761234785396412964172385231458697
    516827943478639521392514768643285179127943856859761234985376412764192385231458697
    516827943478639521392514786643285179127943865859761234765392418984176352231458697
    516827943478639521392514786643285179127943865859761234785396412964172358231458697
    516827943478639521392514786643285179127943865859761234965372418784196352231458697
    516827943478639521392514786643285179127943865859761234985376412764192358231458697
    516827943498136572327594168643285719172943856859761234965372481784619325231458697
    516827943498136572327594168643285719172943856859761234965378421784612395231459687
    516827943498136572327594186643285719172943865859761234765319428984672351231458697
    516827943498136572372594168643285719127943856859761234965372481784619325231458697
    516827943498136572372594168643285719127943856859761234965378421784612395231459687
    516827943498136572372594186643285719127943865859761234765319428984672351231458697
    516827943498316572327594168643285719172943856859761234785632491964178325231459687
    516827943498316572327594168643285719172943856859761234785639421964172385231458697
    516827943498316572327594186643285719172943865859761234765139428984672351231458697
    516827943498316572327594186643285719172943865859761234785639421964172358231458697
    516827943498316572372594168643285719127943856859761234785632491964178325231459687
    516827943498316572372594168643285719127943856859761234785639421964172385231458697
    516827943498316572372594186643285719127943865859761234765139428984672351231458697
    516827943498316572372594186643285719127943865859761234785639421964172358231458697
    516827943728439516439516728643285179172943865895761234357692481964178352281354697
    516827943728439516439516728643285179172943865895761234367198452954672381281354697
    516827943728439516439516782643285179172943865895761234357698421964172358281354697
    516827943728439516439516782643285179172943865895761234367192458954678321281354697
    516827943728439516439516872647285139152943768893761254375692481964178325281354697
    516827943728439516439516872647285139152943768893761254375698421964172385281354697
    516827943728439516493516872647285139152943768839761254375692481964178325281354697
    516827943728439516493516872647285139152943768839761254375698421964172385281354697
    516827943728439561439516728643285179172943856895761234357698412964172385281354697
    516827943728439561439516728643285179172943856895761234367192485954678312281354697
    516827943728439561439516728647285139152943876893761254375698412964172385281354697
    516827943728439561439516782643285179172943856895761234357692418964178325281354697
    516827943728439561439516782643285179172943856895761234367198425954672318281354697
    516827943728439561439516782647285139152943876893761254375692418964178325281354697
    516827943728439561439516872647285139152943786893761254375692418964178325281354697
    516827943728439561493516728647285139152943876839761254375698412964172385281354697
    516827943728439561493516782647285139152943876839761254375692418964178325281354697
    516827943728439561493516872647285139152943786839761254375692418964178325281354697
    516827943738419526429536178643285719172943865895761234357692481964178352281354697
    516827943738419526429536178643285719172943865895761234367198452954672381281354697
    516827943738419526429536718643285179172943865895761234357692481964178352281354697
    516827943738419526429536718643285179172943865895761234367198452954672381281354697
    516827943738419526429536781643285179172943865895761234357692418964178352281354697
    516827943738419526429536781643285179172943865895761234357698412964172358281354697
    516827943738419526429536781643285179172943865895761234367192458954678312281354697
    516827943738419526429536781643285179172943865895761234367198452954672318281354697
    516827943738419526429536871647285139152943768893761254375698412964172385281354697
    516827943738419526492536178643285719127943865859761234375692481964178352281354697
    516827943738419526492536718643285179127943865859761234375692481964178352281354697
    516827943738419526492536781643285179127943865859761234375692418964178352281354697
    516827943738419526492536781643285179127943865859761234375698412964172358281354697
    516827943738419562429536178643285719172943856895761234357692481964178325281354697
    516827943738419562429536178643285719172943856895761234357698421964172385281354697
    516827943738419562429536178643285719172943856895761234367192485954678321281354697
    516827943738419562429536178643285719172943856895761234367198425954672381281354697
    516827943738419562429536718643285179172943856895761234357692481964178325281354697
    516827943738419562429536718643285179172943856895761234357698421964172385281354697
    516827943738419562429536718643285179172943856895761234367192485954678321281354697
    516827943738419562429536718643285179172943856895761234367198425954672381281354697
    516827943738419562429536718647285139152943876893761254375692481964178325281354697
    516827943738419562429536718647285139152943876893761254375698421964172385281354697
    516827943738419562429536781643285179172943856895761234357692418964178325281354697
    516827943738419562429536781643285179172943856895761234367198425954672318281354697
    516827943738419562429536781647285139152943876893761254375692418964178325281354697
    516827943738419562429536871647285139152943786893761254375692418964178325281354697
    516827943738419562492536178643285719127943856859761234375692481964178325281354697
    516827943738419562492536178643285719127943856859761234375698421964172385281354697
    516827943738419562492536718643285179127943856859761234375692481964178325281354697
    516827943738419562492536718643285179127943856859761234375698421964172385281354697
    516827943738419562492536781643285179127943856859761234375692418964178325281354697
    516827943798436512423519768647285139152943876839761254375692481964178325281354697
    516827943798436512423519768647285139152943876839761254375698421964172385281354697
    516827943798436512423519876647285139152943768839761254375692481964178325281354697
    516827943798436512423519876647285139152943768839761254375698421964172385281354697
    516827943798436512432519768643285179127943856859761234375692481964178325281354697
    516827943798436512432519768643285179127943856859761234375698421964172385281354697
    516827943798436512432519786643285179127943865859761234375698421964172358281354697
    516827943798436521423519768647285139152943876839761254375698412964172385281354697
    516827943798436521423519876647285139152943768839761254375698412964172385281354697
    516827943798436521432519768643285179127943856859761234375698412964172385281354697
    516827943798436521432519786643285179127943865859761234375692418964178352281354697
    516827943798436521432519786643285179127943865859761234375698412964172358281354697
    516827943928436571473519826647285139152943768839761254365178492784692315291354687
    516827943928436571473519826647285139152943768839761254395678412764192385281354697
    516827943928436571473519862647285139152943786839761254395672418764198325281354697
    516827943938416572427539168643285719172943856859761234385672491764198325291354687
    516827943938416572427539168643285719172943856859761234395672481764198325281354697
    516827943938416572427539168643285719172943856859761234395678421764192385281354697
    516827943938416572427539168643285719172943856895761234359672481764198325281354697
    516827943938416572427539168643285719172943856895761234359678421764192385281354697
    516827943938416572427539168643285719172943856895761234369172485754698321281354697
    516827943938416572427539168643285719172943856895761234369178425754692381281354697
    516827943938416572427539186643285719172943865859761234395678421764192358281354697
    516827943938416572427539186643285719172943865895761234359678421764192358281354697
    516827943938416572427539186643285719172943865895761234369172458754698321281354697
    516827943938416572472539168643285719127943856859761234385672491764198325291354687
    516827943938416572472539168643285719127943856859761234395672481764198325281354697
    516827943938416572472539168643285719127943856859761234395678421764192385281354697
    516827943938416572472539168643285719127943856895761234359672481764198325281354697
    516827943938416572472539168643285719127943856895761234359678421764192385281354697
    516827943938416572472539168643285719127943856895761234369172485754698321281354697
    516827943938416572472539168643285719127943856895761234369178425754692381281354697
    516827943938416572472539186643285719127943865859761234395678421764192358281354697
    516827943938416572472539186643285719127943865895761234359678421764192358281354697
    516827943938416572472539186643285719127943865895761234369172458754698321281354697
    516827943938416572472539816647285139125943768893761254359672481764198325281354697
    516827943938416572472539816647285139125943768893761254359678421764192385281354697
    516827943938416572472539816647285139125943768893761254369172485754698321281354697
    516827943938416572472539816647285139125943768893761254369178425754692381281354697
    516827943938416572472539861647285139125943786893761254359672418764198325281354697
    516827943938416572472539861647285139125943786893761254369178425754692318281354697
    516827943978436512423519768647285139152943876839761254385672491764198325291354687
    516827943978436512423519768647285139152943876839761254395672481764198325281354697
    516827943978436512423519768647285139152943876839761254395678421764192385281354697
    516827943978436512423519876647285139152943768839761254385672491764198325291354687
    516827943978436512423519876647285139152943768839761254395672481764198325281354697
    516827943978436512423519876647285139152943768839761254395678421764192385281354697
    516827943978436512432519768643285179127943856859761234385672491764198325291354687
    516827943978436512432519768643285179127943856859761234395672481764198325281354697
    516827943978436512432519768643285179127943856859761234395678421764192385281354697
    516827943978436512432519768643285179127943856895761234359672481764198325281354697
    516827943978436512432519768643285179127943856895761234359678421764192385281354697
    516827943978436512432519768643285179127943856895761234369172485754698321281354697
    516827943978436512432519768643285179127943856895761234369178425754692381281354697
    516827943978436512432519768647285139125943876893761254359672481764198325281354697
    516827943978436512432519768647285139125943876893761254359678421764192385281354697
    516827943978436512432519768647285139125943876893761254369172485754698321281354697
    516827943978436512432519768647285139125943876893761254369178425754692381281354697
    516827943978436512432519786643285179127943865859761234395678421764192358281354697
    516827943978436512432519786643285179127943865895761234359678421764192358281354697
    516827943978436512432519786643285179127943865895761234369172458754698321281354697
    516827943978436512432519876647285139125943768893761254359672481764198325281354697
    516827943978436512432519876647285139125943768893761254359678421764192385281354697
    516827943978436512432519876647285139125943768893761254369172485754698321281354697
    516827943978436512432519876647285139125943768893761254369178425754692381281354697
    516827943978436521423519768647285139152943876839761254365178492784692315291354687
    516827943978436521423519768647285139152943876839761254395678412764192385281354697
    516827943978436521423519876647285139152943768839761254365178492784692315291354687
    516827943978436521423519876647285139152943768839761254395678412764192385281354697
    516827943978436521432519768643285179127943856859761234365178492784692315291354687
    516827943978436521432519768643285179127943856859761234395678412764192385281354697
    516827943978436521432519768643285179127943856895761234359678412764192385281354697
    516827943978436521432519768643285179127943856895761234369172485754698312281354697
    516827943978436521432519768647285139125943876893761254359678412764192385281354697
    516827943978436521432519768647285139125943876893761254369172485754698312281354697
    516827943978436521432519786643285179127943865859761234395672418764198352281354697
    516827943978436521432519786643285179127943865859761234395678412764192358281354697
    516827943978436521432519786643285179127943865895761234359672418764198352281354697
    516827943978436521432519786643285179127943865895761234359678412764192358281354697
    516827943978436521432519786643285179127943865895761234369172458754698312281354697
    516827943978436521432519786643285179127943865895761234369178452754692318281354697
    516827943978436521432519876647285139125943768893761254359678412764192385281354697
    516827943978436521432519876647285139125943768893761254369172485754698312281354697
    576124983418396572329578416647285139152943768893761254765432891984617325231859647
    576124983418396572329578416647285139152943768893761254965437821784612395231859647
    576124983418396572392578461643285719127943856859761234765432198984617325231859647
    576124983418396572392578461643285719127943856859761234965437128784612395231859647
    576124983428396571319578426647285139152943768893761254965437812784612395231859647
    576124983438697512912538476647285139125943768893761254359476821764812395281359647
    576124983438697521912538476643285719127943865859761234365472198794816352281359647
    576124983438697521912538476643285719127943865895761234369472158754816392281359647
    576124983438697521912538476647285139125943768893761254359476812764812395281359647
    576124983438697521912538476647285139125943768893761254369472815754816392281359647
    576124983498376521312598476643285719127943865859761234765432198984617352231859647
    576124983498637512312598476647285139125943768839761254763412895954876321281359647
    576124983498637512312598476647285139125943768839761254953476821764812395281359647
    576124983498637521312598476647285139125943768839761254753416892964872315281359647
    576124983498637521312598476647285139125943768839761254763412895954876312281359647
    576124983498637521312598476647285139125943768839761254953476812764812395281359647
    576124983498637521312598476647285139125943768839761254963472815754816392281359647
    576128943128439576439576128643285719712943865895761234357692481964817352281354697
    576128943128439576439576128643285719712943865895761234367892451954617382281354697
    576128943128439576439576182643285719712943865895761234367892451954617328281354697
    576128943138479526429536178643285719712943865895761234357692481964817352281354697
    576128943138479526429536178643285719712943865895761234367892451954617382281354697
    576128943138479526429536718643285179712943865895761234357692481964817352281354697
    576128943138479526429536718643285179712943865895761234367892451954617382281354697
    576128943138479526429536781643285179712943865895761234357692418964817352281354697
    576128943138479562429536178643285719712943856895761234357692481964817325281354697
    576128943138479562429536718643285179712943856895761234357692481964817325281354697
    576128943138479562429536781643285179712943856895761234357692418964817325281354697
    576128943138479562429536781643285179712943856895761234367892415954617328281354697
    576128943138496572429537168643285719712943856895761234367819425954672381281354697
    576128943138496572429537186643285719712943865895761234357619428964872351281354697
    576128943138497526429536178643285719712943865895761234357619482964872351281354697
    576128943138497526429536178643285719712943865895761234367819452954672381281354697
    576128943138497526429536718643285179712943865895761234357619482964872351281354697
    576128943138497526429536718643285179712943865895761234367819452954672381281354697
    576128943138497526429536781643285179712943865895761234367819452954672318281354697
    576128943138497562429536178643285719712943856895761234367819425954672381281354697
    576128943138497562429536718643285179712943856895761234367819425954672381281354697
    576128943138497562429536781643285179712943856895761234357619428964872315281354697
    576128943138497562429536781643285179712943856895761234367819425954672318281354697
    576128943318479526429536871647285139152943768893761254935617482764892315281354697
    576128943318479526429536871647285139152943768893761254965317482784692315231854697
    576128943318479526492536178643285719127943865859761234735692481964817352281354697
    576128943318479526492536178643285719127943865859761234765392481984617352231854697
    576128943318479526492536178643285719127943865859761234935617482764892351281354697
    576128943318479526492536178643285719127943865859761234965317482784692351231854697
    576128943318479526492536718643285179127943865859761234735692481964817352281354697
    576128943318479526492536718643285179127943865859761234765392481984617352231854697
    576128943318479526492536718643285179127943865859761234935617482764892351281354697
    576128943318479526492536718643285179127943865859761234965317482784692351231854697
    576128943318479526492536781643285179127943865859761234735692418964817352281354697
    576128943318479526492536781643285179127943865859761234765392418984617352231854697
    576128943318479526492536871647285139125943768839761254763892415954617382281354697
    576128943318479526492536871647285139125943768839761254953617482764892315281354697
    576128943318479562429536718647285139152943876893761254735692481964817325281354697
    576128943318479562429536718647285139152943876893761254765392481984617325231854697
    576128943318479562429536781647285139152943876893761254735692418964817325281354697
    576128943318479562429536781647285139152943876893761254765392418984617325231854697
    576128943318479562429536781647285139152943876893761254935617428764892315281354697
    576128943318479562429536781647285139152943876893761254965317428784692315231854697
    576128943318479562429536871647285139152943786893761254735692418964817325281354697
    576128943318479562429536871647285139152943786893761254765392418984617325231854697
    576128943318479562429536871647285139152943786893761254935617428764892315281354697
    576128943318479562429536871647285139152943786893761254965317428784692315231854697
    576128943318479562492536178643285719127943856859761234735692481964817325281354697
    576128943318479562492536178643285719127943856859761234765392481984617325231854697
    576128943318479562492536718643285179127943856859761234735692481964817325281354697
    576128943318479562492536718643285179127943856859761234765392481984617325231854697
    576128943318479562492536718647285139125943876839761254753692481964817325281354697
    576128943318479562492536718647285139125943876839761254963817425754692381281354697
    576128943318479562492536781643285179127943856859761234735692418964817325281354697
    576128943318479562492536781643285179127943856859761234765392418984617325231854697
    576128943318479562492536781643285179127943856859761234935617428764892315281354697
    576128943318479562492536781643285179127943856859761234965317428784692315231854697
    576128943318479562492536781647285139125943876839761254753692418964817325281354697
    576128943318479562492536781647285139125943876839761254763892415954617328281354697
    576128943318479562492536781647285139125943876839761254953617428764892315281354697
    576128943318479562492536781647285139125943876839761254963817425754692318281354697
    576128943318479562492536871647285139125943786839761254753692418964817325281354697
    576128943318479562492536871647285139125943786839761254763892415954617328281354697
    576128943318479562492536871647285139125943786839761254953617428764892315281354697
    576128943318479562492536871647285139125943786839761254963817425754692318281354697
    576128943318496572429537816647285139152943768893761254935672481764819325281354697
    576128943318496572429537816647285139152943768893761254965372481784619325231854697
    576128943318496572429537861647285139152943786893761254735619428964872315281354697
    576128943318496572429537861647285139152943786893761254765319428984672315231854697
    576128943318496572429537861647285139152943786893761254935672418764819325281354697
    576128943318496572429537861647285139152943786893761254965372418784619325231854697
    576128943318496572492537168643285719127943856859761234935672481764819325281354697
    576128943318496572492537168643285719127943856859761234965372481784619325231854697
    576128943318496572492537186643285719127943865859761234735619428964872351281354697
    576128943318496572492537186643285719127943865859761234765319428984672351231854697
    576128943318496572492537816647285139125943768839761254763819425954672381281354697
    576128943318496572492537816647285139125943768839761254953672481764819325281354697
    576128943318496572492537861647285139125943786839761254753619428964872315281354697
    576128943318496572492537861647285139125943786839761254763819425954672318281354697
    576128943318496572492537861647285139125943786839761254953672418764819325281354697
    576128943318496572492537861647285139125943786839761254963872415754619328281354697
    576128943318497526429536871647285139152943768893761254735619482964872315281354697
    576128943318497526429536871647285139152943768893761254765319482984672315231854697
    576128943318497526492536178643285719127943865859761234735619482964872351281354697
    576128943318497526492536178643285719127943865859761234765319482984672351231854697
    576128943318497526492536178643285719127943865859761234935672481764819352281354697
    576128943318497526492536178643285719127943865859761234965372481784619352231854697
    576128943318497526492536718643285179127943865859761234735619482964872351281354697
    576128943318497526492536718643285179127943865859761234765319482984672351231854697
    576128943318497526492536718643285179127943865859761234935672481764819352281354697
    576128943318497526492536718643285179127943865859761234965372481784619352231854697
    576128943318497526492536781643285179127943865859761234935672418764819352281354697
    576128943318497526492536781643285179127943865859761234965372418784619352231854697
    576128943318497526492536871647285139125943768839761254753619482964872315281354697
    576128943318497526492536871647285139125943768839761254963872415754619382281354697
    576128943318497562429536718647285139152943876893761254935672481764819325281354697
    576128943318497562429536718647285139152943876893761254965372481784619325231854697
    576128943318497562429536781647285139152943876893761254735619428964872315281354697
    576128943318497562429536781647285139152943876893761254765319428984672315231854697
    576128943318497562429536781647285139152943876893761254935672418764819325281354697
    576128943318497562429536781647285139152943876893761254965372418784619325231854697
    576128943318497562429536871647285139152943786893761254735619428964872315281354697
    576128943318497562429536871647285139152943786893761254765319428984672315231854697
    576128943318497562429536871647285139152943786893761254935672418764819325281354697
    576128943318497562429536871647285139152943786893761254965372418784619325231854697
    576128943318497562492536178643285719127943856859761234935672481764819325281354697
    576128943318497562492536178643285719127943856859761234965372481784619325231854697
    576128943318497562492536718643285179127943856859761234935672481764819325281354697
    576128943318497562492536718643285179127943856859761234965372481784619325231854697
    576128943318497562492536718647285139125943876839761254763819425954672381281354697
    576128943318497562492536718647285139125943876839761254953672481764819325281354697
    576128943318497562492536781643285179127943856859761234735619428964872315281354697
    576128943318497562492536781643285179127943856859761234765319428984672315231854697
    576128943318497562492536781643285179127943856859761234935672418764819325281354697
    576128943318497562492536781643285179127943856859761234965372418784619325231854697
    576128943318497562492536781647285139125943876839761254753619428964872315281354697
    576128943318497562492536781647285139125943876839761254763819425954672318281354697
    576128943318497562492536781647285139125943876839761254953672418764819325281354697
    576128943318497562492536781647285139125943876839761254963872415754619328281354697
    576128943318497562492536871647285139125943786839761254753619428964872315281354697
    576128943318497562492536871647285139125943786839761254763819425954672318281354697
    576128943318497562492536871647285139125943786839761254953672418764819325281354697
    576128943318497562492536871647285139125943786839761254963872415754619328281354697
    576128943318694572429537816647285139152943768893761254985376421764812395231459687
    576128943318694572492537168643285719127943856859761234985376421764812395231459687
    576128943328479516419536872647285139152943768893761254735692481964817325281354697
    576128943328479516419536872647285139152943768893761254765392481984617325231854697
    576128943328479561419536728647285139152943876893761254935617482764892315281354697
    576128943328479561419536728647285139152943876893761254965317482784692315231854697
    576128943328479561419536782647285139152943876893761254735692418964817325281354697
    576128943328479561419536782647285139152943876893761254765392418984617325231854697
    576128943328479561419536782647285139152943876893761254935617428764892315281354697
    576128943328479561419536782647285139152943876893761254965317428784692315231854697
    576128943328479561419536872647285139152943786893761254735692418964817325281354697
    576128943328479561419536872647285139152943786893761254765392418984617325231854697
    576128943328479561419536872647285139152943786893761254935617428764892315281354697
    576128943328479561419536872647285139152943786893761254965317428784692315231854697
    576128943328496571419537826647285139152943768893761254735619482964872315281354697
    576128943328496571419537826647285139152943768893761254765319482984672315231854697
    576128943328496571419537862647285139152943786893761254735619428964872315281354697
    576128943328496571419537862647285139152943786893761254765319428984672315231854697
    576128943328496571419537862647285139152943786893761254935672418764819325281354697
    576128943328496571419537862647285139152943786893761254965372418784619325231854697
    576128943328497516419536872647285139152943768893761254935672481764819325281354697
    576128943328497516419536872647285139152943768893761254965372481784619325231854697
    576128943328497561419536728647285139152943876893761254735619482964872315281354697
    576128943328497561419536728647285139152943876893761254765319482984672315231854697
    576128943328497561419536782647285139152943876893761254735619428964872315281354697
    576128943328497561419536782647285139152943876893761254765319428984672315231854697
    576128943328497561419536782647285139152943876893761254935672418764819325281354697
    576128943328497561419536782647285139152943876893761254965372418784619325231854697
    576128943328497561419536872647285139152943786893761254735619428964872315281354697
    576128943328497561419536872647285139152943786893761254765319428984672315231854697
    576128943328497561419536872647285139152943786893761254935672418764819325281354697
    576128943328497561419536872647285139152943786893761254965372418784619325231854697
    576128943328694571419537826647285139152943768893761254785316492964872315231459687
    576128943328694571419537826647285139152943768893761254985376412764812395231459687
    576128943398476512412539768643285179127943856859761234735692481964817325281354697
    576128943398476512412539768643285179127943856859761234765392481984617325231854697
    576128943398476512412539768647285139125943876839761254753692481964817325281354697
    576128943398476512412539768647285139125943876839761254963817425754692381281354697
    576128943398476512412539786643285179127943865859761234935617428764892351281354697
    576128943398476512412539786643285179127943865859761234965317428784692351231854697
    576128943398476512412539876647285139125943768839761254753692481964817325281354697
    576128943398476512412539876647285139125943768839761254963817425754692381281354697
    576128943398476521412539768643285179127943856859761234935617482764892315281354697
    576128943398476521412539768643285179127943856859761234965317482784692315231854697
    576128943398476521412539768647285139125943876839761254763892415954617382281354697
    576128943398476521412539768647285139125943876839761254953617482764892315281354697
    576128943398476521412539786643285179127943865859761234735692418964817352281354697
    576128943398476521412539786643285179127943865859761234765392418984617352231854697
    576128943398476521412539876647285139125943768839761254763892415954617382281354697
    576128943398476521412539876647285139125943768839761254953617482764892315281354697
    576128943418396572329574816647285139152943768893761254765832491984617325231459687
    576128943418396572329574816647285139152943768893761254785632491964817325231459687
    576128943418396572329574816647285139152943768893761254965837421784612395231459687
    576128943418396572329574816647285139152943768893761254985637421764812395231459687
    576128943418396572392574168643285719127943856859761234765832491984617325231459687
    576128943418396572392574168643285719127943856859761234785632491964817325231459687
    576128943418396572392574168643285719127943856859761234965837421784612395231459687
    576128943418396572392574168643285719127943856859761234985637421764812395231459687
    576128943428396571319574826647285139152943768893761254965837412784612395231459687
    576128943428396571319574826647285139152943768893761254985637412764812395231459687
    576128943498376512312594768643285179127943856859761234765832491984617325231459687
    576128943498376512312594768643285179127943856859761234785632491964817325231459687
    576128943498376512312594768643285179127943856859761234965837421784612395231459687
    576128943498376512312594768643285179127943856859761234985637421764812395231459687
    576128943498376521312594768643285179127943856859761234965837412784612395231459687
    576128943498376521312594768643285179127943856859761234985637412764812395231459687
    576128943498637512312594768643285179127943856859761234985376421764812395231459687
    576128943498637521312594768643285179127943856859761234785316492964872315231459687
    576128943498637521312594768643285179127943856859761234985376412764812395231459687
    576128943918436572423579816647285139152943768839761254365897421784612395291354687
    576128943918436572423579816647285139152943768839761254365897421794612385281354697
    576128943918436572423579816647285139152943768839761254385697421764812395291354687
    576128943918436572423579861647285139152943786839761254395617428764892315281354697
    576128943918436572423597816647285139152943768839761254365872491784619325291354687
    576128943918436572423597816647285139152943768839761254365879421784612395291354687
    576128943918436572423597816647285139152943768839761254365879421794612385281354697
    576128943918436572423597816647285139152943768839761254385672491764819325291354687
    576128943918436572423597816647285139152943768839761254385679421764812395291354687
    576128943918436572423597816647285139152943768839761254395672481764819325281354697
    576128943918436572423597861647285139152943786839761254395672418764819325281354697
    576128943918436572432579168643285719127943856859761234365897421784612395291354687
    576128943918436572432579168643285719127943856859761234365897421794612385281354697
    576128943918436572432579168643285719127943856859761234385697421764812395291354687
    576128943918436572432579168643285719127943856895761234369817425754692381281354697
    576128943918436572432579186643285719127943865859761234365897421794612358281354697
    576128943918436572432579186643285719127943865859761234395617428764892351281354697
    576128943918436572432579186643285719127943865895761234359617428764892351281354697
    576128943918436572432579816647285139125943768893761254369817425754692381281354697
    576128943918436572432579861647285139125943786893761254359617428764892315281354697
    576128943918436572432579861647285139125943786893761254369817425754692318281354697
    576128943918436572432597168643285719127943856859761234365872491784619325291354687
    576128943918436572432597168643285719127943856859761234365879421784612395291354687
    576128943918436572432597168643285719127943856859761234365879421794612385281354697
    576128943918436572432597168643285719127943856859761234385672491764819325291354687
    576128943918436572432597168643285719127943856859761234385679421764812395291354687
    576128943918436572432597168643285719127943856859761234395672481764819325281354697
    576128943918436572432597168643285719127943856895761234359672481764819325281354697
    576128943918436572432597186643285719127943865859761234365879421794612358281354697
    576128943918436572432597186643285719127943865895761234369872451754619328281354697
    576128943918436572432597816647285139125943768893761254359672481764819325281354697
    576128943918436572432597861647285139125943786893761254359672418764819325281354697
    576128943918436572432597861647285139125943786893761254369872415754619328281354697
    576128943918437526423596871647285139152943768839761254365879412784612395291354687
    576128943918437526423596871647285139152943768839761254365879412794612385281354697
    576128943918437526423596871647285139152943768839761254385679412764812395291354687
    576128943918437526432596178643285719127943865859761234365872491784619352291354687
    576128943918437526432596178643285719127943865859761234385672491764819352291354687
    576128943918437526432596178643285719127943865859761234395672481764819352281354697
    576128943918437526432596178643285719127943865895761234359672481764819352281354697
    576128943918437526432596178643285719127943865895761234369872451754619382281354697
    576128943918437526432596718643285179127943865859761234365872491784619352291354687
    576128943918437526432596718643285179127943865859761234385672491764819352291354687
    576128943918437526432596718643285179127943865859761234395672481764819352281354697
    576128943918437526432596718643285179127943865895761234359672481764819352281354697
    576128943918437526432596718643285179127943865895761234369872451754619382281354697
    576128943918437526432596781643285179127943865859761234365879412794612358281354697
    576128943918437526432596781643285179127943865859761234395672418764819352281354697
    576128943918437526432596781643285179127943865895761234359672418764819352281354697
    576128943918437526432596871647285139125943768893761254369872415754619382281354697
    576128943918437562423596718647285139152943876839761254365872491784619325291354687
    576128943918437562423596718647285139152943876839761254365879421784612395291354687
    576128943918437562423596718647285139152943876839761254365879421794612385281354697
    576128943918437562423596718647285139152943876839761254385672491764819325291354687
    576128943918437562423596718647285139152943876839761254385679421764812395291354687
    576128943918437562423596718647285139152943876839761254395672481764819325281354697
    576128943918437562423596781647285139152943876839761254395672418764819325281354697
    576128943918437562423596871647285139152943786839761254395672418764819325281354697
    576128943918437562432596178643285719127943856859761234365872491784619325291354687
    576128943918437562432596178643285719127943856859761234365879421784612395291354687
    576128943918437562432596178643285719127943856859761234365879421794612385281354697
    576128943918437562432596178643285719127943856859761234385672491764819325291354687
    576128943918437562432596178643285719127943856859761234385679421764812395291354687
    576128943918437562432596178643285719127943856859761234395672481764819325281354697
    576128943918437562432596178643285719127943856895761234359672481764819325281354697
    576128943918437562432596718643285179127943856859761234365872491784619325291354687
    576128943918437562432596718643285179127943856859761234365879421784612395291354687
    576128943918437562432596718643285179127943856859761234365879421794612385281354697
    576128943918437562432596718643285179127943856859761234385672491764819325291354687
    576128943918437562432596718643285179127943856859761234385679421764812395291354687
    576128943918437562432596718643285179127943856859761234395672481764819325281354697
    576128943918437562432596718643285179127943856895761234359672481764819325281354697
    576128943918437562432596718647285139125943876893761254359672481764819325281354697
    576128943918437562432596781643285179127943856859761234395672418764819325281354697
    576128943918437562432596781643285179127943856895761234359672418764819325281354697
    576128943918437562432596781643285179127943856895761234369872415754619328281354697
    576128943918437562432596781647285139125943876893761254359672418764819325281354697
    576128943918437562432596781647285139125943876893761254369872415754619328281354697
    576128943918437562432596871647285139125943786893761254359672418764819325281354697
    576128943918437562432596871647285139125943786893761254369872415754619328281354697
    576128943928436571413579826647285139152943768839761254365817492784692315291354687
    576128943928436571413579826647285139152943768839761254365897412784612395291354687
    576128943928436571413579826647285139152943768839761254365897412794612385281354697
    576128943928436571413579826647285139152943768839761254385617492764892315291354687
    576128943928436571413579826647285139152943768839761254385697412764812395291354687
    576128943928436571413579826647285139152943768839761254395617482764892315281354697
    576128943928436571413579862647285139152943786839761254395617428764892315281354697
    576128943928436571413597826647285139152943768839761254365879412784612395291354687
    576128943928436571413597826647285139152943768839761254365879412794612385281354697
    576128943928436571413597826647285139152943768839761254385679412764812395291354687
    576128943928436571413597862647285139152943786839761254395672418764819325281354697
    576128943928437516413596872647285139152943768839761254365872491784619325291354687
    576128943928437516413596872647285139152943768839761254365879421784612395291354687
    576128943928437516413596872647285139152943768839761254365879421794612385281354697
    576128943928437516413596872647285139152943768839761254385672491764819325291354687
    576128943928437516413596872647285139152943768839761254385679421764812395291354687
    576128943928437516413596872647285139152943768839761254395672481764819325281354697
    576128943928437561413596728647285139152943876839761254365879412784612395291354687
    576128943928437561413596728647285139152943876839761254365879412794612385281354697
    576128943928437561413596728647285139152943876839761254385679412764812395291354687
    576128943928437561413596782647285139152943876839761254395672418764819325281354697
    576128943928437561413596872647285139152943786839761254395672418764819325281354697
    576128943938476512412539768643285179127943856859761234365897421784612395291354687
    576128943938476512412539768643285179127943856859761234365897421794612385281354697
    576128943938476512412539768643285179127943856859761234385697421764812395291354687
    576128943938476512412539768643285179127943856895761234369817425754692381281354697
    576128943938476512412539768647285139125943876893761254369817425754692381281354697
    576128943938476512412539786643285179127943865859761234365897421794612358281354697
    576128943938476512412539786643285179127943865859761234395617428764892351281354697
    576128943938476512412539786643285179127943865895761234359617428764892351281354697
    576128943938476512412539876647285139125943768893761254369817425754692381281354697
    576128943938476521412539768643285179127943856859761234365817492784692315291354687
    576128943938476521412539768643285179127943856859761234365897412784612395291354687
    576128943938476521412539768643285179127943856859761234365897412794612385281354697
    576128943938476521412539768643285179127943856859761234385617492764892315291354687
    576128943938476521412539768643285179127943856859761234385697412764812395291354687
    576128943938476521412539768643285179127943856859761234395617482764892315281354697
    576128943938476521412539768643285179127943856895761234359617482764892315281354697
    576128943938476521412539768647285139125943876893761254359617482764892315281354697
    576128943938476521412539786643285179127943865859761234365897412794612358281354697
    576128943938476521412539786643285179127943865895761234369817452754692318281354697
    576128943938476521412539876647285139125943768893761254359617482764892315281354697
    576428913328179546419536872647285139152943768893761254735692481964817325281354697
    576428913328179546419536872647285139152943768893761254765392481984617325231854697
    576428913328197546419536872647285139152943768893761254935672481764819325281354697
    576428913328197546419536872647285139152943768893761254965372481784619325231854697
    576428913398176542412539768643285179127943856859761234735692481964817325281354697
    576428913398176542412539768643285179127943856859761234765392481984617325231854697
    576428913398176542412539768647285139125943876839761254753692481964817325281354697
    576428913398176542412539768647285139125943876839761254963817425754692381281354697
    576428913398176542412539786643285179127943865859761234935617428764892351281354697
    576428913398176542412539786643285179127943865859761234965317428784692351231854697
    576428913398176542412539876647285139125943768839761254753692481964817325281354697
    576428913398176542412539876647285139125943768839761254963817425754692381281354697
    576428913398617542412539768643285179127943856859761234735896421964172385281354697
    576428913398617542412539768643285179127943856859761234765392481984176325231854697
    576428913398617542412539768643285179127943856859761234785396421964172385231854697
    576428913398617542412539768643285179127943856859761234935876421764192385281354697
    576428913398617542412539768643285179127943856859761234965372481784196325231854697
    576428913398617542412539768643285179127943856859761234985376421764192385231854697
    576428913398617542412539768647285139125943876839761254753896421964172385281354697
    576428913398617542412539768647285139125943876839761254763192485954876321281354697
    576428913398617542412539768647285139125943876839761254953876421764192385281354697
    576428913398617542412539768647285139125943876839761254963172485754896321281354697
    576428913398617542412539786643285179127943865859761234735196428964872351281354697
    576428913398617542412539786643285179127943865859761234735896421964172358281354697
    576428913398617542412539786643285179127943865859761234785396421964172358231854697
    576428913398617542412539786643285179127943865859761234935176428764892351281354697
    576428913398617542412539786643285179127943865859761234935876421764192358281354697
    576428913398617542412539786643285179127943865859761234985376421764192358231854697
    576428913398617542412539876647285139125943768839761254753896421964172385281354697
    576428913398617542412539876647285139125943768839761254763192485954876321281354697
    576428913398617542412539876647285139125943768839761254953876421764192385281354697
    576428913398617542412539876647285139125943768839761254963172485754896321281354697
    576428913418379526392516748643285179127943865859761234965137482784692351231854697
    576428913418379562329516748647285139152943876893761254985637421764192385231854697
    576428913418379562392516748643285179127943856859761234985637421764192385231854697
    576428913418396572329517846647285139152943768893761254785639421964172385231854697
    576428913418397526392516748643285179127943865859761234765139482984672351231854697
    576428913418397562329516748647285139152943876893761254785639421964172385231854697
    576428913418397562392516748643285179127943856859761234785639421964172385231854697
    576428913418639572329517468647285139152943786893761254765392841984176325231854697
    576428913418639572329517468647285139152943786893761254965372841784196325231854697
    576428913418639572329517486647285139152943768893761254765392841984176325231854697
    576428913418639572329517486647285139152943768893761254965372841784196325231854697
    576428913418639572329517846647285139152943768893761254735896421964172385281354697
    576428913418639572329517846647285139152943768893761254765392481984176325231854697
    576428913418639572329517846647285139152943768893761254785396421964172385231854697
    576428913418639572329517846647285139152943768893761254935876421764192385281354697
    576428913418639572329517846647285139152943768893761254965372481784196325231854697
    576428913418639572329517846647285139152943768893761254985376421764192385231854697
    576428913418639572392517468647285139125943786839761254763192845954876321281354697
    576428913418639572392517468647285139125943786839761254963172845754896321281354697
    576428913418639572392517486647285139125943768839761254763192845954876321281354697
    576428913418639572392517486647285139125943768839761254963172845754896321281354697
    576428913418639572392517846647285139125943768839761254753896421964172385281354697
    576428913418639572392517846647285139125943768839761254763192485954876321281354697
    576428913418639572392517846647285139125943768839761254953876421764192385281354697
    576428913418639572392517846647285139125943768839761254963172485754896321281354697
    576428913418639572923517846647285139152943768839761254365872491784196325291354687
    576428913418639572923517846647285139152943768839761254395876421764192385281354697
    576428913418639572932517468647285139125943786893761254369172845754896321281354697
    576428913418639572932517486647285139125943768893761254369172845754896321281354697
    576428913418639572932517846647285139125943768893761254359876421764192385281354697
    576428913418639572932517846647285139125943768893761254369172485754896321281354697
    576428913428139576319576482647285139152943768893761254735692841964817325281354697
    576428913428139576319576482647285139152943768893761254765392841984617325231854697
    576428913428139576319576842647285139152943768893761254735692481964817325281354697
    576428913428139576319576842647285139152943768893761254765392481984617325231854697
    576428913428139576913576842647285139152943768839761254365897421784612395291354687
    576428913428139576913576842647285139152943768839761254365897421794612385281354697
    576428913428139576913576842647285139152943768839761254385697421764812395291354687
    576428913428319576319576842647285139152943768893761254985637421764192385231854697
    576428913438179526129536748643285179712943865895761234357692481964817352281354697
    576428913438179526129536748643285179712943865895761234367892451954617382281354697
    576428913438179526912536748643285179127943865859761234365817492784692351291354687
    576428913438179526912536748643285179127943865859761234385617492764892351291354687
    576428913438179526912536748643285179127943865859761234395617482764892351281354697
    576428913438179526912536748643285179127943865895761234359617482764892351281354697
    576428913438179526912536748643285179127943865895761234369817452754692381281354697
    576428913438179562129536748643285179712943856895761234357692481964817325281354697
    576428913438179562912536748643285179127943856859761234365897421784612395291354687
    576428913438179562912536748643285179127943856859761234365897421794612385281354697
    576428913438179562912536748643285179127943856859761234385697421764812395291354687
    576428913438179562912536748643285179127943856895761234369817425754692381281354697
    576428913438179562912536748647285139125943876893761254369817425754692381281354697
    576428913438196572912537468647285139125943786893761254359672841764819325281354697
    576428913438196572912537468647285139125943786893761254359674821764812395281359647
    576428913438196572912537486647285139125943768893761254359672841764819325281354697
    576428913438196572912537486647285139125943768893761254359674821764812395281359647
    576428913438196572912537846647285139125943768893761254359672481764819325281354697
    576428913438197526129536748643285179712943865895761234357619482964872351281354697
    576428913438197526129536748643285179712943865895761234367819452954672381281354697
    576428913438197526912536748643285179127943865859761234365872491784619352291354687
    576428913438197526912536748643285179127943865859761234385672491764819352291354687
    576428913438197526912536748643285179127943865859761234395672481764819352281354697
    576428913438197526912536748643285179127943865895761234359672481764819352281354697
    576428913438197526912536748643285179127943865895761234369872451754619382281354697
    576428913438197562129536748643285179712943856895761234367819425954672381281354697
    576428913438197562912536478647285139125943786893761254359672841764819325281354697
    576428913438197562912536478647285139125943786893761254359674821764812395281359647
    576428913438197562912536748643285179127943856859761234365872491784619325291354687
    576428913438197562912536748643285179127943856859761234365879421784612395291354687
    576428913438197562912536748643285179127943856859761234365879421794612385281354697
    576428913438197562912536748643285179127943856859761234385672491764819325291354687
    576428913438197562912536748643285179127943856859761234385679421764812395291354687
    576428913438197562912536748643285179127943856859761234395672481764819325281354697
    576428913438197562912536748643285179127943856895761234359672481764819325281354697
    576428913438197562912536748647285139125943876893761254359672481764819325281354697
    576428913438619572912537468647285139125943786893761254369172845754896321281354697
    576428913438619572912537486647285139125943768893761254369172845754896321281354697
    576428913438619572912537846647285139125943768893761254359876421764192385281354697
    576428913438619572912537846647285139125943768893761254369172485754896321281354697
    576428913498136572312579468647285139125943786839761254753692841964817325281354697
    576428913498136572312579486647285139125943768839761254753692841964817325281354697
    576428913498136572312579846647285139125943768839761254753692481964817325281354697
    576428913498136572312579846647285139125943768839761254963817425754692381281354697
    576428913498136572312597468647285139125943786839761254953672841764819325281354697
    576428913498136572312597468647285139125943786839761254953674821764812395281359647
    576428913498136572312597486647285139125943768839761254953672841764819325281354697
    576428913498136572312597486647285139125943768839761254953674821764812395281359647
    576428913498136572312597846647285139125943768839761254763819425954672381281354697
    576428913498136572312597846647285139125943768839761254953672481764819325281354697
    576428913498137526312596748643285179127943865859761234735619482964872351281354697
    576428913498137526312596748643285179127943865859761234765319482984672351231854697
    576428913498137526312596748643285179127943865859761234935672481764819352281354697
    576428913498137526312596748643285179127943865859761234965372481784619352231854697
    576428913498137562312596478647285139125943786839761254953672841764819325281354697
    576428913498137562312596478647285139125943786839761254953674821764812395281359647
    576428913498137562312596748643285179127943856859761234935672481764819325281354697
    576428913498137562312596748643285179127943856859761234965372481784619325231854697
    576428913498137562312596748647285139125943876839761254763819425954672381281354697
    576428913498137562312596748647285139125943876839761254953672481764819325281354697
    576428913498317526312596748643285179127943865859761234765139482984672351231854697
    576428913498317562312596748643285179127943856859761234785639421964172385231854697
    576428913918637542423519768647285139152943876839761254365872491784196325291354687
    576428913918637542423519768647285139152943876839761254395876421764192385281354697
    576428913918637542423519876647285139152943768839761254365872491784196325291354687
    576428913918637542423519876647285139152943768839761254395876421764192385281354697
    576428913918637542432519768643285179127943856859761234365872491784196325291354687
    576428913918637542432519768643285179127943856859761234395876421764192385281354697
    576428913918637542432519768643285179127943856895761234359876421764192385281354697
    576428913918637542432519768643285179127943856895761234369172485754896321281354697
    576428913918637542432519768647285139125943876893761254359876421764192385281354697
    576428913918637542432519768647285139125943876893761254369172485754896321281354697
    576428913918637542432519786643285179127943865859761234395176428764892351281354697
    576428913918637542432519786643285179127943865859761234395876421764192358281354697
    576428913918637542432519786643285179127943865895761234359176428764892351281354697
    576428913918637542432519786643285179127943865895761234359876421764192358281354697
    576428913918637542432519786643285179127943865895761234369172458754896321281354697
    576428913918637542432519786643285179127943865895761234369872451754196328281354697
    576428913918637542432519876647285139125943768893761254359876421764192385281354697
    576428913918637542432519876647285139125943768893761254369172485754896321281354697
    576428913928137546413596872647285139152943768839761254365872491784619325291354687
    576428913928137546413596872647285139152943768839761254365879421784612395291354687
    576428913928137546413596872647285139152943768839761254365879421794612385281354697
    576428913928137546413596872647285139152943768839761254385672491764819325291354687
    576428913928137546413596872647285139152943768839761254385679421764812395291354687
    576428913928137546413596872647285139152943768839761254395672481764819325281354697
    576428913938176542412539768643285179127943856859761234365897421784612395291354687
    576428913938176542412539768643285179127943856859761234365897421794612385281354697
    576428913938176542412539768643285179127943856859761234385697421764812395291354687
    576428913938176542412539768643285179127943856895761234369817425754692381281354697
    576428913938176542412539768647285139125943876893761254369817425754692381281354697
    576428913938176542412539786643285179127943865859761234365897421794612358281354697
    576428913938176542412539786643285179127943865859761234395617428764892351281354697
    576428913938176542412539786643285179127943865895761234359617428764892351281354697
    576428913938176542412539876647285139125943768893761254369817425754692381281354697
    576428913938617542412539768643285179127943856859761234365872491784196325291354687
    576428913938617542412539768643285179127943856859761234395876421764192385281354697
    576428913938617542412539768643285179127943856895761234359876421764192385281354697
    576428913938617542412539768643285179127943856895761234369172485754896321281354697
    576428913938617542412539768647285139125943876893761254359876421764192385281354697
    576428913938617542412539768647285139125943876893761254369172485754896321281354697
    576428913938617542412539786643285179127943865859761234395176428764892351281354697
    576428913938617542412539786643285179127943865859761234395876421764192358281354697
    576428913938617542412539786643285179127943865895761234359176428764892351281354697
    576428913938617542412539786643285179127943865895761234359876421764192358281354697
    576428913938617542412539786643285179127943865895761234369172458754896321281354697
    576428913938617542412539786643285179127943865895761234369872451754196328281354697
    576428913938617542412539876647285139125943768893761254359876421764192385281354697
    576428913938617542412539876647285139125943768893761254369172485754896321281354697
    576824913328179546419536872647285139152943768893761254765392481984617325231458697
    576824913328197546419536872647285139152943768893761254965372481784619325231458697
    576824913328197546419536872647285139152943768893761254965378421784612395231459687
    576824913398176542412539768643285179127943856859761234765392481984617325231458697
    576824913398176542412539786643285179127943865859761234965317428784692351231458697
    576824913398617542412539768643285179127943856859761234765392481984176325231458697
    576824913398617542412539768643285179127943856859761234785396421964172385231458697
    576824913398617542412539768643285179127943856859761234965372481784196325231458697
    576824913398617542412539768643285179127943856859761234985376421764192385231458697
    576824913398617542412539786643285179127943865859761234785396421964172358231458697
    576824913398617542412539786643285179127943865859761234985376421764192358231458697
    576824913418379526392516748643285179127943865859761234965137482784692351231458697
    576824913418379562329516748647285139152943876893761254985637421764192385231458697
    576824913418379562392516748643285179127943856859761234985637421764192385231458697
    576824913418396572329517846647285139152943768893761254785632491964178325231459687
    576824913418396572329517846647285139152943768893761254785639421964172385231458697
    576824913418397526392516748643285179127943865859761234765138492984672351231459687
    576824913418397526392516748643285179127943865859761234765139482984672351231458697
    576824913418397526392516748643285179127943865859761234785632491964178352231459687
    576824913418397562329516748647285139152943876893761254785632491964178325231459687
    576824913418397562329516748647285139152943876893761254785639421964172385231458697
    576824913418397562392516748643285179127943856859761234785632491964178325231459687
    576824913418397562392516748643285179127943856859761234785639421964172385231458697
    576824913418639572329517468647285139152943786893761254765392841984176325231458697
    576824913418639572329517468647285139152943786893761254965372841784196325231458697
    576824913418639572329517486647285139152943768893761254765392841984176325231458697
    576824913418639572329517486647285139152943768893761254965372841784196325231458697
    576824913418639572329517846647285139152943768893761254765392481984176325231458697
    576824913418639572329517846647285139152943768893761254785396421964172385231458697
    576824913418639572329517846647285139152943768893761254965372481784196325231458697
    576824913418639572329517846647285139152943768893761254985376421764192385231458697
    576824913418639572923517468647285139152943786839761254365472891784196325291358647
    576824913418639572923517486647285139152943768839761254365472891784196325291358647
    576824913428139576319576482647285139152943768893761254765392841984617325231458697
    576824913428139576319576842647285139152943768893761254765392481984617325231458697
    576824913428139576913576482647285139152943768839761254365497821784612395291358647
    576824913428319576319576842647285139152943768893761254985637421764192385231458697
    576824913498136572312597468647285139125943786839761254763412895954678321281359647
    576824913498136572312597486647285139125943768839761254763412895954678321281359647
    576824913498137526312596748643285179127943865859761234765318492984672351231459687
    576824913498137526312596748643285179127943865859761234765319482984672351231458697
    576824913498137526312596748643285179127943865859761234965372481784619352231458697
    576824913498137562312596478647285139125943786839761254763412895954678321281359647
    576824913498137562312596748643285179127943856859761234965372481784619325231458697
    576824913498137562312596748643285179127943856859761234965378421784612395231459687
    576824913498317526312596748643285179127943865859761234765138492984672351231459687
    576824913498317526312596748643285179127943865859761234765139482984672351231458697
    576824913498317526312596748643285179127943865859761234785632491964178352231459687
    576824913498317562312596748643285179127943856859761234785632491964178325231459687
    576824913498317562312596748643285179127943856859761234785639421964172385231458697

  • Schleifenproblem

    • bernd670
    • 24. Mai 2009 um 16:31

    Wenn Du meine letzten Beitrag gelesen hättest, hättest Du auch gesehen das ich da StringTrim durch StringReplace ersetzt habe. ;)

  • Schleifenproblem

    • bernd670
    • 24. Mai 2009 um 16:18

    Hallo,

    bei mir bricht's nicht ab, dein $avArray brauchst Du aber nicht jedesmal neu zu machen das kann ruhig ausserhalb der Schleife beschrieben werden.

    In der codiert.txt steht bei mir "BFAFABFAFABFAFABFAFABFAFABFAFABFAFABFAFABFAFAM9L9LGBFAFAM9L9LGBFAFAM9L9LGBFAFAM9L9LG"


    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_UseAnsi=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include<Array.au3>
    #include<String.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $test = FileRead("eingang.txt"); "1A2B3C4D5E6"
    $test = StringReplace(StringReplace($test, @LF, ""), @CR, "")
    $1_len = StringLen($test)
    ;MsgBox(0, "Stringlänge:", $1_len) ; diese Zeile nur zum testen

    [/autoit] [autoit][/autoit] [autoit]

    $pass = FileRead("passwort.txt"); "94736"
    $pass = StringReplace(StringReplace($pass, @LF, ""), @CR, "")
    $2_len = StringLen($pass)
    ;MsgBox(0, "Stringlänge Passwort:", $2_len) ; diese Zeile nur zum testen

    [/autoit] [autoit][/autoit] [autoit]

    $zwischensumme = Ceiling($1_len / $2_len)
    MsgBox(0, "Stringlänge Zwischenlänge:", $zwischensumme) ; diese Zeile nur zum testen

    [/autoit] [autoit][/autoit] [autoit]

    $anwenderpass = _StringRepeat($pass,$zwischensumme)
    ;~ MsgBox(0, "Stringlänge Anwendung:", $anwenderpass) ; diese Zeile nur zum testen

    [/autoit] [autoit][/autoit] [autoit]

    ; Array: senkrecht / waagerecht
    ; alle 37 Zeichen werden in 37 Zeilen dargestellt, wobei das erste Zeichen immer an das Ende rutscht.
    Local $avArray[38][38]
    Local $avTemp[38] = [" ","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","."]
    For $x = 0 To 37
    $y = 37-$x
    For $z = 0 To 37
    $y += 1
    If $y>37 Then $y=0
    $avArray[$x][$y] = $avTemp[$z]
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 to $1_len Step +1
    $v_s = StringMid($test, $i, 1)
    ;~ MsgBox(0, "aus Test:", $v_s) ; diese Zeile nur zum testen
    $v_w = StringMid($anwenderpass, $i, 1) ; diese Zeile nur zum testen
    ;MsgBox(0, "aus Passwort:", $v_w)

    [/autoit] [autoit][/autoit] [autoit]

    ; senkrecht
    $s_Index = _ArraySearch($avArray, $v_s, 0, 0, 0, 1)
    ;~ ConsoleWrite("$w_Index: " & $s_Index & @CRLF) ; diese Zeile nur zum testen
    ; waagerecht
    $w_Index = _ArraySearch($avArray, $v_w, 0, 0, 0, 1)
    ;~ ConsoleWrite("$w_Index: " & $w_Index & @CRLF) ; diese Zeile nur zum testen
    ;MsgBox(0,"Array-Zahlen","Array-Zahlen: " & $s_Index & " - " & $w_Index & @CRLF & "Mathe Zahlen: " & $s_Index +1 & " - " & $w_Index +1) ; diese Zeile nur zum testen

    [/autoit] [autoit][/autoit] [autoit]

    ;MsgBox(0,"Schnittmenge", $avArray[($s_Index)][($w_Index)]) ; diese Zeile nur zum testen
    FileOpen("codiert.txt",1)
    sleep(50)
    FileWrite("codiert.txt", $avArray[($s_Index)][($w_Index)])
    sleep(50)
    FileClose("codiert.txt")
    sleep(50)
    Next
    Exit

    [/autoit]

    Edit: lass dir mal den Wert von $s_index ausgeben!

  • Schleifenproblem

    • bernd670
    • 24. Mai 2009 um 15:48

    StringStripCR entfernt aber kein @CRLF

  • Schleifenproblem

    • bernd670
    • 24. Mai 2009 um 15:35

    Hallo,

    kann es sein das Du ein Zeilenumbruch in deinen Dateien hast?!

    Probiers mal so:

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_UseAnsi=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include<Array.au3>
    #include<String.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $test = FileRead("eingang.txt"); "1A2B3C4D5E6"
    If StringRight($test,2) = @CRLF Then $test = StringTrimRight($test, 2)
    $1_len = StringLen($test)
    ;MsgBox(0, "Stringlänge:", $1_len) ; diese Zeile nur zum testen

    [/autoit] [autoit][/autoit] [autoit]

    $pass = FileRead("passwort.txt"); "94736"
    If StringRight($pass,2) = @CRLF Then $pass = StringTrimRight($pass, 2)
    $2_len = StringLen($pass)
    ;MsgBox(0, "Stringlänge Passwort:", $2_len) ; diese Zeile nur zum testen

    [/autoit] [autoit][/autoit] [autoit]

    $zwischensumme = Ceiling($1_len / $2_len)
    ;~ MsgBox(0, "Stringlänge Zwischenlänge:", $zwischensumme) ; diese Zeile nur zum testen

    [/autoit] [autoit][/autoit] [autoit]

    $anwenderpass = _StringRepeat($pass,$zwischensumme)
    ;~ MsgBox(0, "Stringlänge Anwendung:", $anwenderpass) ; diese Zeile nur zum testen

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 to $1_len Step +1
    $v_s = StringMid($test, $i, 1)
    ;~ MsgBox(0, "aus Test:", $v_s) ; diese Zeile nur zum testen
    $v_w = StringMid($anwenderpass, $i, 1) ; diese Zeile nur zum testen
    ;MsgBox(0, "aus Passwort:", $v_w)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Array: senkrecht / waagerecht
    ; alle 37 Zeichen werden in 37 Zeilen dargestellt, wobei das erste Zeichen immer an das Ende rutscht.
    Local $avArray[38][38]
    Local $avTemp[38] = [" ","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","."]
    For $x = 0 To 37
    $y = 37-$x
    For $z = 0 To 37
    $y += 1
    If $y>37 Then $y=0
    $avArray[$x][$y] = $avTemp[$z]
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ; senkrecht
    $s_Index = _ArraySearch($avArray, $v_s, 0, 0, 0, 1)
    ;~ ConsoleWrite("$w_Index: " & $s_Index & @CRLF) ; diese Zeile nur zum testen
    ; waagerecht
    $w_Index = _ArraySearch($avArray, $v_w, 0, 0, 0, 1)
    ;~ ConsoleWrite("$w_Index: " & $w_Index & @CRLF) ; diese Zeile nur zum testen
    ;MsgBox(0,"Array-Zahlen","Array-Zahlen: " & $s_Index & " - " & $w_Index & @CRLF & "Mathe Zahlen: " & $s_Index +1 & " - " & $w_Index +1) ; diese Zeile nur zum testen

    [/autoit] [autoit][/autoit] [autoit]

    ;MsgBox(0,"Schnittmenge", $avArray[($s_Index)][($w_Index)]) ; diese Zeile nur zum testen
    FileOpen("codiert.txt",1)
    sleep(50)
    FileWrite("codiert.txt", $avArray[($s_Index)][($w_Index)])
    sleep(50)
    FileClose("codiert.txt")
    sleep(50)
    Next
    Exit

    [/autoit]
  • Ordner nach Anzahl löschen

    • bernd670
    • 24. Mai 2009 um 10:51

    Hallo,

    da reicht doch z.B. ein

    [autoit]

    DirRemove("2009.05.24*",1)

    [/autoit]


    um alle Verzeichnisse vom 2009.05.24 zu löschen!

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™