PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  xfc@sFdZddlZddlZdddYZdZdd dYZdZd d!d YZd Zd d"d YZ dZ dd#dYZ dZ dZ idZdZdZxqeedeedeedeedeedeedeeddeGHedZqdS($sAFind the maximum recursion limit that prevents interpreter termination. This script finds the maximum safe recursion limit on a particular platform. If you need to change the recursion limit on your system, this script will tell you a safe upper bound. To use the new limit, call sys.setrecursionlimit(). This module implements several ways to create infinite recursion in Python. Different implementations end up pushing different numbers of C stack frames, depending on how many calls through Python's abstract C API occur. After each round of tests, it prints a message: "Limit of NNNN is fine". The highest printed value of "NNNN" is therefore the highest potentially safe limit for your system (which depends on the OS, architecture, but also the compilation flags). Please note that it is practically impossible to test all possible recursion paths in the interpreter, so the results of this test should not be trusted blindly -- although they give a good hint of which values are reasonable. NOTE: When the C stack space allocated by your system is exceeded due to excessive recursion, exact behaviour depends on the platform, although the interpreter will always fail in a likely brutal way: either a segmentation fault, a MemoryError, or just a silent abort. NB: A program that does not use __methods__ can set a higher limit. iNtRecursiveBlowup1cBseZdZRS(cCs|jdS(N(t__init__(tself((s9/usr/lib64/python2.7/Tools/scripts/find_recursionlimit.pyR$s(t__name__t __module__R(((s9/usr/lib64/python2.7/Tools/scripts/find_recursionlimit.pyR#scCstS(N(R(((s9/usr/lib64/python2.7/Tools/scripts/find_recursionlimit.pyt test_init'stRecursiveBlowup2cBseZdZRS(cCs t|S(N(trepr(R((s9/usr/lib64/python2.7/Tools/scripts/find_recursionlimit.pyt__repr__+s(RRR(((s9/usr/lib64/python2.7/Tools/scripts/find_recursionlimit.pyR*scCs ttS(N(RR(((s9/usr/lib64/python2.7/Tools/scripts/find_recursionlimit.pyt test_repr.stRecursiveBlowup4cBseZdZRS(cCs||S(N((Rtx((s9/usr/lib64/python2.7/Tools/scripts/find_recursionlimit.pyt__add__2s(RRR (((s9/usr/lib64/python2.7/Tools/scripts/find_recursionlimit.pyR 1scCsttS(N(R (((s9/usr/lib64/python2.7/Tools/scripts/find_recursionlimit.pyttest_add5stRecursiveBlowup5cBseZdZRS(cCs t||S(N(tgetattr(Rtattr((s9/usr/lib64/python2.7/Tools/scripts/find_recursionlimit.pyt __getattr__9s(RRR(((s9/usr/lib64/python2.7/Tools/scripts/find_recursionlimit.pyR8scCs tjS(N(RR(((s9/usr/lib64/python2.7/Tools/scripts/find_recursionlimit.pyt test_getattr<stRecursiveBlowup6cBseZdZRS(cCs||d||dS(Nii((Rtitem((s9/usr/lib64/python2.7/Tools/scripts/find_recursionlimit.pyt __getitem__@s(RRR(((s9/usr/lib64/python2.7/Tools/scripts/find_recursionlimit.pyR?scCs tdS(Ni(R(((s9/usr/lib64/python2.7/Tools/scripts/find_recursionlimit.pyt test_getitemCscCstS(N(t test_recurse(((s9/usr/lib64/python2.7/Tools/scripts/find_recursionlimit.pyRFscCsyddl}Wntk r)dGHdSXd}xvtjD]h}y||}w=Wn1tk rx!tdD]}|g}qqWnX|j|dd|||s4