alexx876

Untitled

Oct 30th, 2018
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 110.97 KB | None | 0 0
  1. 18:23 30.10.2018 wall-149094324_1249027 sul <!DOCTYPE html><!--
  2.  
  3.  
  4. Exception: Deadlock found when trying to get lock; try restarting transaction in file /www/likeme.pro/!define/system/core/db.php on line 62
  5. Stack trace:
  6.  1. Exception-&gt;() /www/likeme.pro/!define/system/core/db.php:62
  7.  2. do_query() /www/likeme.pro/!define/system/core/model.php:33
  8.  3. Model-&gt;insert() /www/likeme.pro/!define/sites/likeme/packages/payments/models/payments.php:24
  9.  4. Payments-&gt;pay() /www/likeme.pro/!define/sites/likeme/packages/task/controllers/ClientController.php:156
  10.  5. Task_ClientController-&gt;getPlaystop() /www/likeme.pro/!define/sites/likeme/packages/task/controllers/ClientController.php:169
  11.  6. Task_ClientController-&gt;callPlaystop() /www/likeme.pro/!define/system/core/call.php:16
  12.  7. call_user_func_array() /www/likeme.pro/!define/system/core/call.php:16
  13.  8. call() /www/likeme.pro/!define/sites/likeme/packages/vk/controllers/ClientController.php:303
  14.  9. Vk_ClientController-&gt;postIndex() /www/likeme.pro/!define/system/core/routing.php:75
  15. 10. routing() /www/likeme.pro/!define/!define.php:88
  16. 11. require_once() /www/likeme.pro/index.php:27
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28. --><html>
  29.   <head>
  30.     <meta charset="utf-8">
  31.     <meta name="robots" content="noindex,nofollow"/>
  32.     <title>Whoops! There was an error.</title>
  33.  
  34.     <style>body {
  35.   font: 12px "Helvetica Neue", helvetica, arial, sans-serif;
  36.   color: #131313;
  37.   background: #eeeeee;
  38.   padding:0;
  39.   margin: 0;
  40.   max-height: 100%;
  41.  
  42.   text-rendering: optimizeLegibility;
  43. }
  44.   a {
  45.     text-decoration: none;
  46.   }
  47.  
  48. .panel {
  49.     overflow-y: scroll;
  50.     height: 100%;
  51.     position: fixed;
  52.     margin: 0;
  53.     left: 0;
  54.     top: 0;
  55. }
  56.  
  57. .branding {
  58.   position: absolute;
  59.   top: 10px;
  60.   right: 20px;
  61.   color: #777777;
  62.   font-size: 10px;
  63.     z-index: 100;
  64. }
  65.   .branding a {
  66.     color: #e95353;
  67.   }
  68.  
  69. header {
  70.   color: white;
  71.   box-sizing: border-box;
  72.   background-color: #2a2a2a;
  73.   padding: 35px 40px;
  74.   max-height: 180px;
  75.   overflow: hidden;
  76.   transition: 0.5s;
  77. }
  78.  
  79.   header.header-expand {
  80.     max-height: 1000px;
  81.   }
  82.  
  83.   .exc-title {
  84.     margin: 0;
  85.     color: #bebebe;
  86.     font-size: 14px;
  87.   }
  88.     .exc-title-primary {
  89.       color: #e95353;
  90.     }
  91.  
  92.     .exc-message {
  93.       font-size: 20px;
  94.       word-wrap: break-word;
  95.       margin: 4px 0 0 0;
  96.       color: white;
  97.     }
  98.       .exc-message span {
  99.         display: block;
  100.       }
  101.       .exc-message-empty-notice {
  102.         color: #a29d9d;
  103.         font-weight: 300;
  104.       }
  105.  
  106. .details-container {
  107.   left: 30%;
  108.   width: 70%;
  109.   background: #fafafa;
  110. }
  111.   .details {
  112.     padding: 5px;
  113.   }
  114.  
  115.     .details-heading {
  116.       color: #4288CE;
  117.       font-weight: 300;
  118.       padding-bottom: 10px;
  119.       margin-bottom: 10px;
  120.       border-bottom: 1px solid rgba(0, 0, 0, .1);
  121.     }
  122.  
  123.     .details pre.sf-dump {
  124.       white-space: pre;
  125.       word-wrap: inherit;
  126.     }
  127.  
  128.     .details pre.sf-dump,
  129.     .details pre.sf-dump .sf-dump-num,
  130.     .details pre.sf-dump .sf-dump-const,
  131.     .details pre.sf-dump .sf-dump-str,
  132.     .details pre.sf-dump .sf-dump-note,
  133.     .details pre.sf-dump .sf-dump-ref,
  134.     .details pre.sf-dump .sf-dump-public,
  135.     .details pre.sf-dump .sf-dump-protected,
  136.     .details pre.sf-dump .sf-dump-private,
  137.     .details pre.sf-dump .sf-dump-meta,
  138.     .details pre.sf-dump .sf-dump-key,
  139.     .details pre.sf-dump .sf-dump-index {
  140.       color: #463C54;
  141.     }
  142.  
  143. .left-panel {
  144.   width: 30%;
  145.   background: #ded8d8;
  146. }
  147.  
  148.   .frames-description {
  149.     background: rgba(0, 0, 0, .05);
  150.     padding: 8px 15px;
  151.     color: #a29d9d;
  152.     font-size: 11px;
  153.   }
  154.  
  155.   .frames-description.frames-description-application {
  156.     text-align: center;
  157.     font-size: 12px;
  158.   }
  159.   .frames-container.frames-container-application .frame:not(.frame-application) {
  160.     display: none;
  161.   }
  162.  
  163.   .frames-tab {
  164.     color: #a29d9d;
  165.     display: inline-block;
  166.     padding: 4px 8px;
  167.     margin: 0 2px;
  168.     border-radius: 3px;
  169.   }
  170.  
  171.   .frames-tab.frames-tab-active {
  172.     background-color: #2a2a2a;
  173.     color: #bebebe;
  174.   }
  175.  
  176.   .frame {
  177.     padding: 14px;
  178.     cursor: pointer;
  179.     transition: all 0.1s ease;
  180.     background: #eeeeee;
  181.   }
  182.     .frame:not(:last-child) {
  183.       border-bottom: 1px solid rgba(0, 0, 0, .05);
  184.     }
  185.  
  186.     .frame.active {
  187.       box-shadow: inset -5px 0 0 0 #4288CE;
  188.       color: #4288CE;
  189.     }
  190.  
  191.     .frame:not(.active):hover {
  192.       background: #BEE9EA;
  193.     }
  194.  
  195.     .frame-method-info {
  196.       margin-bottom: 10px;
  197.     }
  198.  
  199.     .frame-class, .frame-function, .frame-index {
  200.       font-size: 14px;
  201.     }
  202.  
  203.     .frame-index {
  204.       float: left;
  205.     }
  206.  
  207.     .frame-method-info {
  208.       margin-left: 24px;
  209.     }
  210.  
  211.     .frame-index {
  212.       font-size: 11px;
  213.       color: #a29d9d;
  214.       background-color: rgba(0, 0, 0, .05);
  215.       height: 18px;
  216.       width: 18px;
  217.       line-height: 18px;
  218.       border-radius: 5px;
  219.       padding: 0 1px 0 1px;
  220.       text-align: center;
  221.       display: inline-block;
  222.     }
  223.  
  224.     .frame-application .frame-index {
  225.       background-color: #2a2a2a;
  226.       color: #bebebe;
  227.     }
  228.  
  229.     .frame-file {
  230.       font-family: "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace;
  231.       color: #a29d9d;
  232.     }
  233.  
  234.       .frame-file .editor-link {
  235.         color: #a29d9d;
  236.       }
  237.  
  238.     .frame-line {
  239.       font-weight: bold;
  240.     }
  241.  
  242.     .frame-line:before {
  243.       content: ":";
  244.     }
  245.  
  246.     .frame-code {
  247.       padding: 5px;
  248.       background: #303030;
  249.       display: none;
  250.     }
  251.  
  252.     .frame-code.active {
  253.       display: block;
  254.     }
  255.  
  256.     .frame-code .frame-file {
  257.       color: #a29d9d;
  258.       padding: 12px 6px;
  259.  
  260.       border-bottom: none;
  261.     }
  262.  
  263.     .code-block {
  264.       padding: 10px;
  265.       margin: 0;
  266.       border-radius: 6px;
  267.       box-shadow: 0 3px 0 rgba(0, 0, 0, .05),
  268.                   0 10px 30px rgba(0, 0, 0, .05),
  269.                   inset 0 0 1px 0 rgba(255, 255, 255, .07);
  270.       -moz-tab-size: 4;
  271.       -o-tab-size: 4;
  272.       tab-size: 4;
  273.     }
  274.  
  275.     .linenums {
  276.       margin: 0;
  277.       margin-left: 10px;
  278.     }
  279.  
  280.     .frame-comments {
  281.       border-top: none;
  282.       margin-top: 15px;
  283.  
  284.       font-size: 12px;
  285.     }
  286.  
  287.     .frame-comments.empty {
  288.     }
  289.  
  290.     .frame-comments.empty:before {
  291.       content: "No comments for this stack frame.";
  292.       font-weight: 300;
  293.       color: #a29d9d;
  294.     }
  295.  
  296.     .frame-comment {
  297.       padding: 10px;
  298.       color: #e3e3e3;
  299.       border-radius: 6px;
  300.       background-color: rgba(255, 255, 255, .05);
  301.     }
  302.       .frame-comment a {
  303.         font-weight: bold;
  304.         text-decoration: none;
  305.       }
  306.         .frame-comment a:hover {
  307.           color: #4bb1b1;
  308.         }
  309.  
  310.     .frame-comment:not(:last-child) {
  311.       border-bottom: 1px dotted rgba(0, 0, 0, .3);
  312.     }
  313.  
  314.     .frame-comment-context {
  315.       font-size: 10px;
  316.       color: white;
  317.     }
  318.  
  319. .delimiter {
  320.   display: inline-block;
  321. }
  322.  
  323. .data-table-container label {
  324.   font-size: 16px;
  325.   color: #303030;
  326.   font-weight: bold;
  327.   margin: 10px 0;
  328.  
  329.   display: block;
  330.  
  331.   margin-bottom: 5px;
  332.   padding-bottom: 5px;
  333. }
  334.   .data-table {
  335.     width: 100%;
  336.     margin-bottom: 10px;
  337.   }
  338.  
  339.   .data-table tbody {
  340.     font: 13px "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace;
  341.   }
  342.  
  343.   .data-table thead {
  344.     display: none;
  345.   }
  346.  
  347.   .data-table tr {
  348.     padding: 5px 0;
  349.   }
  350.  
  351.   .data-table td:first-child {
  352.     width: 20%;
  353.     min-width: 130px;
  354.     overflow: hidden;
  355.     font-weight: bold;
  356.     color: #463C54;
  357.     padding-right: 5px;
  358.  
  359.   }
  360.  
  361.   .data-table td:last-child {
  362.     width: 80%;
  363.     -ms-word-break: break-all;
  364.     word-break: break-all;
  365.     word-break: break-word;
  366.     -webkit-hyphens: auto;
  367.     -moz-hyphens: auto;
  368.     hyphens: auto;
  369.   }
  370.  
  371.   .data-table span.empty {
  372.     color: rgba(0, 0, 0, .3);
  373.     font-weight: 300;
  374.   }
  375.   .data-table label.empty {
  376.     display: inline;
  377.   }
  378.  
  379. .handler {
  380.   padding: 4px 0;
  381.   font: 14px "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace;
  382. }
  383.  
  384. /* prettify code style
  385. Uses the Doxy theme as a base */
  386. pre .str, code .str { color: #BCD42A; }  /* string  */
  387. pre .kwd, code .kwd { color: #4bb1b1;  font-weight: bold; }  /* keyword*/
  388. pre .com, code .com { color: #888; font-weight: bold; } /* comment */
  389. pre .typ, code .typ { color: #ef7c61; }  /* type  */
  390. pre .lit, code .lit { color: #BCD42A; }  /* literal */
  391. pre .pun, code .pun { color: #fff; font-weight: bold;  } /* punctuation  */
  392. pre .pln, code .pln { color: #e9e4e5; }  /* plaintext  */
  393. pre .tag, code .tag { color: #4bb1b1; }  /* html/xml tag  */
  394. pre .htm, code .htm { color: #dda0dd; }  /* html tag */
  395. pre .xsl, code .xsl { color: #d0a0d0; }  /* xslt tag */
  396. pre .atn, code .atn { color: #ef7c61; font-weight: normal;} /* html/xml attribute name */
  397. pre .atv, code .atv { color: #bcd42a; }  /* html/xml attribute value  */
  398. pre .dec, code .dec { color: #606; }  /* decimal  */
  399. pre.code-block, code.code-block, .frame-args.code-block, .frame-args.code-block samp {
  400.   font-family: "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace;
  401.   background: #333;
  402.   color: #e9e4e5;
  403. }
  404.   pre.code-block {
  405.     white-space: pre-wrap;
  406.   }
  407.  
  408.   pre.code-block a, code.code-block a {
  409.     text-decoration:none;
  410.   }
  411.  
  412.   .linenums li {
  413.     color: #A5A5A5;
  414.   }
  415.  
  416.   .linenums li.current{
  417.     background: rgba(255, 100, 100, .07);
  418.   }
  419.     .linenums li.current.active {
  420.       background: rgba(255, 100, 100, .17);
  421.     }
  422.  
  423. pre:not(.prettyprinted) {
  424.   padding-left: 60px;
  425. }
  426.  
  427. #plain-exception {
  428.   display: none;
  429. }
  430.  
  431. #copy-button {
  432.   cursor: pointer;
  433.   border: 0;
  434. }
  435.  
  436. .clipboard {
  437.   opacity: .8;
  438.   background: none;
  439.  
  440.   color: rgba(255, 255, 255, 0.1);
  441.   box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.1);
  442.  
  443.   border-radius: 3px;
  444.  
  445.   outline: none !important;
  446. }
  447.  
  448.   .clipboard:hover {
  449.     box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.3);
  450.     color: rgba(255, 255, 255, 0.3);
  451.   }
  452.  
  453. /* inspired by githubs kbd styles */
  454. kbd {
  455.   -moz-border-bottom-colors: none;
  456.   -moz-border-left-colors: none;
  457.   -moz-border-right-colors: none;
  458.   -moz-border-top-colors: none;
  459.   background-color: #fcfcfc;
  460.   border-color: #ccc #ccc #bbb;
  461.   border-image: none;
  462.   border-style: solid;
  463.   border-width: 1px;
  464.   color: #555;
  465.   display: inline-block;
  466.   font-size: 11px;
  467.   line-height: 10px;
  468.   padding: 3px 5px;
  469.   vertical-align: middle;
  470. }
  471.  
  472.  
  473. /* == Media queries */
  474.  
  475. /* Expand the spacing in the details section */
  476. @media (min-width: 1000px) {
  477.   .details, .frame-code {
  478.     padding: 20px 40px;
  479.   }
  480.  
  481.   .details-container {
  482.     left: 32%;
  483.     width: 68%;
  484.   }
  485.  
  486.   .frames-container {
  487.     margin: 5px;
  488.   }
  489.  
  490.   .left-panel {
  491.     width: 32%;
  492.   }
  493. }
  494.  
  495. .tooltipped {
  496.   position: relative
  497. }
  498. .tooltipped:after {
  499.   position: absolute;
  500.   z-index: 1000000;
  501.   display: none;
  502.   padding: 5px 8px;
  503.   color: #fff;
  504.   text-align: center;
  505.   text-decoration: none;
  506.   text-shadow: none;
  507.   text-transform: none;
  508.   letter-spacing: normal;
  509.   word-wrap: break-word;
  510.   white-space: pre;
  511.   pointer-events: none;
  512.   content: attr(aria-label);
  513.   background: rgba(0, 0, 0, 0.8);
  514.   border-radius: 3px;
  515.   -webkit-font-smoothing: subpixel-antialiased
  516. }
  517. .tooltipped:before {
  518.   position: absolute;
  519.   z-index: 1000001;
  520.   display: none;
  521.   width: 0;
  522.   height: 0;
  523.   color: rgba(0, 0, 0, 0.8);
  524.   pointer-events: none;
  525.   content: "";
  526.   border: 5px solid transparent
  527. }
  528. .tooltipped:hover:before,
  529. .tooltipped:hover:after,
  530. .tooltipped:active:before,
  531. .tooltipped:active:after,
  532. .tooltipped:focus:before,
  533. .tooltipped:focus:after {
  534.   display: inline-block;
  535.   text-decoration: none
  536. }
  537. .tooltipped-s:after {
  538.   top: 100%;
  539.   right: 50%;
  540.   margin-top: 5px
  541. }
  542. .tooltipped-s:before {
  543.   top: auto;
  544.   right: 50%;
  545.   bottom: -5px;
  546.   margin-right: -5px;
  547.   border-bottom-color: rgba(0, 0, 0, 0.8)
  548. }
  549.  
  550. pre.sf-dump {
  551.   padding: 0px !important;
  552.   margin: 0px !important;
  553. }
  554.  
  555. .search-for-help {
  556.   width: 85%;
  557.   padding: 0;
  558.   margin: 10px 0;
  559.   list-style-type: none;
  560.   display: inline-block;
  561. }
  562.   .search-for-help li {
  563.     display: inline-block;
  564.     margin-right: 5px;
  565.   }
  566.   .search-for-help li:last-child {
  567.     margin-right: 0;
  568.   }
  569.     .search-for-help li a {
  570.  
  571.     }
  572.       .search-for-help li a i {
  573.         width: 16px;
  574.         height: 16px;
  575.         overflow: hidden;
  576.         display: block;
  577.       }
  578.       .search-for-help li a svg {
  579.         fill: #fff;
  580.       }
  581.       .search-for-help li a svg path {
  582.         background-size: contain;
  583.       }
  584. </style>
  585.   </head>
  586.   <body>
  587.  
  588.     <div class="Whoops container">
  589.       <div class="stack-container">
  590.  
  591.         <div class="panel left-panel cf ">
  592.   <header>
  593.   <div class="exception">
  594.   <div class="exc-title">
  595.                   <span class="exc-title-primary">Exception</span>
  596.                 </div>
  597.  
  598.   <div class="exc-message">
  599.           <span>Deadlock found when trying to get lock; try restarting transaction</span>
  600.    
  601.     <ul class="search-for-help">
  602.             <li>
  603.         <a rel="noopener noreferrer" target="_blank" href="https://google.com/search?q=Exception+Deadlock+found+when+trying+to+get+lock%3B+try+restarting+transaction" title="Search for help on Google.">
  604.           <!-- Google icon by Alfredo H, from https://www.iconfinder.com/alfredoh -->
  605.           <!-- Creative Commons (Attribution 3.0 Unported) -->
  606.           <!-- http://creativecommons.org/licenses/by/3.0/ -->
  607.           <svg class="google" height="16" viewBox="0 0 512 512" width="16" xmlns="http://www.w3.org/2000/svg">
  608.             <path d="M457.732 216.625c2.628 14.04 4.063 28.743 4.063 44.098C461.795 380.688 381.48 466 260.205 466c-116.024 0-210-93.977-210-210s93.976-210 210-210c56.703 0 104.076 20.867 140.44 54.73l-59.205 59.197v-.135c-22.046-21.002-50-31.762-81.236-31.762-69.297 0-125.604 58.537-125.604 127.84 0 69.29 56.306 127.97 125.604 127.97 62.87 0 105.653-35.966 114.46-85.313h-114.46v-81.902h197.528z"/>
  609.           </svg>
  610.         </a>
  611.       </li>
  612.       <li>
  613.         <a rel="noopener noreferrer" target="_blank" href="https://duckduckgo.com/?q=Exception+Deadlock+found+when+trying+to+get+lock%3B+try+restarting+transaction" title="Search for help on DuckDuckGo.">
  614.           <!-- DuckDuckGo icon by IconBaandar Team, from https://www.iconfinder.com/iconbaandar -->
  615.           <!-- Creative Commons (Attribution 3.0 Unported) -->
  616.           <!-- http://creativecommons.org/licenses/by/3.0/ -->
  617.           <svg class="duckduckgo" height="16" viewBox="150 150 1675 1675" width="16" xmlns="http://www.w3.org/2000/svg">
  618.             <path d="M1792 1024c0 204.364-80.472 398.56-224.955 543.04-144.483 144.48-338.68 224.95-543.044 224.95-204.36 0-398.56-80.47-543.04-224.95-144.48-144.482-224.95-338.676-224.95-543.04 0-204.365 80.47-398.562 224.96-543.045C625.44 336.47 819.64 256 1024 256c204.367 0 398.565 80.47 543.05 224.954C1711.532 625.437 1792 819.634 1792 1024zm-270.206 497.787C1654.256 1389.327 1728 1211.36 1728 1024c0-187.363-73.74-365.332-206.203-497.796C1389.332 393.74 1211.363 320 1024 320s-365.33 73.742-497.795 206.205C393.742 658.67 320 836.637 320 1024c0 187.36 73.744 365.326 206.206 497.787C658.67 1654.25 836.638 1727.99 1024 1727.99c187.362 0 365.33-73.74 497.794-206.203z"/>
  619.             <path d="M1438.64 1177.41c0-.03-.005-.017-.01.004l.01-.004z"/>
  620.             <path d="M1499.8 976.878c.03-.156-.024-.048-.11.107l.11-.107z"/>
  621.             <path d="M1105.19 991.642zm-68.013-376.128c-8.087-10.14-18.028-19.965-29.89-29.408-13.29-10.582-29-20.76-47.223-30.443-35.07-18.624-74.482-31.61-115.265-38.046-39.78-6.28-80.84-6.256-120.39.917l1.37 31.562c1.8.164 7.7 3.9 14.36 8.32-20.68 5.94-39.77 14.447-39.48 39.683l.2 17.48 17.3-1.73c29.38-2.95 60.17-2.06 90.32 2.61 9.21 1.42 18.36 3.2 27.38 5.32l-4.33 1.15c-20.45 5.58-38.93 12.52-54.25 20.61-46.28 24.32-75.51 60.85-90.14 108.37-14.14 45.95-14.27 101.81-2.72 166.51l.06.06c15.14 84.57 64.16 316.39 104.11 505.39 19.78 93.59 37.38 176.83 47.14 224.4 3.26 15.84 5.03 31.02 5.52 45.52.3 9.08.09 17.96-.58 26.62-.45 5.8-1.11 11.51-1.96 17.112l31.62 4.75c.71-4.705 1.3-9.494 1.76-14.373 48.964 10.517 99.78 16.05 151.88 16.05 60.68 0 119.61-7.505 175.91-21.64 3.04 6.08 6.08 12.19 9.11 18.32l28.62-14.128c-2.11-4.27-4.235-8.55-6.37-12.84-23.005-46.124-47.498-93.01-68.67-133.534-15.39-29.466-29.01-55.53-39.046-75.58-26.826-53.618-53.637-119.47-68.28-182.368-8.78-37.705-13.128-74.098-10.308-105.627-15.31-6.28-26.69-11.8-31.968-15.59l-.01.015c-14.22-10.2-31.11-28.12-41.82-49.717-8.618-17.376-13.4-37.246-10.147-57.84 3.17-19.84 27.334-46.714 57.843-67.46v-.063c26.554-18.05 58.75-32.506 86.32-34.31 7.835-.51 16.31-1.008 23.99-1.45 33.45-1.95 50.243-2.93 84.475-11.42 10.88-2.697 26.19-6.56 43.53-11.09 2.364-40.7-5.947-87.596-21.04-133.234-22.004-66.53-58.68-131.25-97.627-170.21-12.543-12.55-28.17-22.79-45.9-30.933-16.88-7.753-35.64-13.615-55.436-17.782zm-10.658 178.553s6.77-42.485 58.39-33.977c27.96 4.654 37.89 29.833 37.89 29.833s-25.31-14.46-44.95-14.198c-40.33.53-51.35 18.342-51.35 18.342zm-240.45-18.802c48.49-19.853 72.11 11.298 72.11 11.298s-35.21-15.928-69.46 5.59c-34.19 21.477-32.92 43.452-32.92 43.452s-18.17-40.5 30.26-60.34zm296.5 95.4c0-6.677 2.68-12.694 7.01-17.02 4.37-4.37 10.42-7.074 17.1-7.074 6.73 0 12.79 2.7 17.15 7.05 4.33 4.33 7.01 10.36 7.01 17.05 0 6.74-2.7 12.81-7.07 17.18-4.33 4.33-10.37 7.01-17.1 7.01-6.68 0-12.72-2.69-17.05-7.03-4.36-4.37-7.07-10.43-7.07-17.16zm-268.42 51.27c0-8.535 3.41-16.22 8.93-21.738 5.55-5.55 13.25-8.982 21.81-8.982 8.51 0 16.18 3.415 21.7 8.934 5.55 5.55 8.98 13.25 8.98 21.78 0 8.53-3.44 16.23-8.98 21.79-5.52 5.52-13.19 8.93-21.71 8.93-8.55 0-16.26-3.43-21.82-8.99-5.52-5.52-8.93-13.2-8.93-21.74z"/>
  622.             <path d="M1102.48 986.34zm390.074-64.347c-28.917-11.34-74.89-12.68-93.32-3.778-11.5 5.567-35.743 13.483-63.565 21.707-25.75 7.606-53.9 15.296-78.15 21.702-17.69 4.67-33.3 8.66-44.4 11.435-34.92 8.76-52.05 9.77-86.17 11.78-7.84.46-16.48.97-24.48 1.5-28.12 1.86-60.97 16.77-88.05 35.4v.06c-31.12 21.4-55.77 49.12-59.01 69.59-3.32 21.24 1.56 41.74 10.35 59.67 10.92 22.28 28.15 40.77 42.66 51.29l.01-.02c5.38 3.9 16.98 9.6 32.6 16.08 26.03 10.79 63.2 23.76 101.25 34.23 43.6 11.99 89.11 21.05 121.69 20.41 34.26-.69 77.73-10.52 114.54-24.67 22.15-8.52 42.21-18.71 56.88-29.58 17.85-13.22 28.7-28.42 28.4-44.74-.07-3.89-.72-7.63-1.97-11.21l-.02.01c-11.6-33.06-50.37-23.59-105.53-10.12-46.86 11.445-107.94 26.365-169.01 20.434-32.56-3.167-54.45-10.61-67.88-20.133-5.96-4.224-9.93-8.67-12.18-13.11-1.96-3.865-2.68-7.84-2.33-11.714.39-4.42 2.17-9.048 5.1-13.57l-.05-.03c7.86-12.118 23.082-9.72 43.93-6.43 25.91 4.08 58.2 9.172 99.013-3.61 39.63-12.378 87.76-29.9 131.184-47.39 42.405-17.08 80.08-34.078 100.74-46.18 25.46-14.87 37.57-29.428 40.59-42.866 2.725-12.152-.89-22.48-8.903-31.07-5.87-6.29-14.254-11.31-23.956-15.115z"/>
  623.           </svg>
  624.         </a>
  625.       </li>
  626.       <li>
  627.         <a rel="noopener noreferrer" target="_blank" href="https://stackoverflow.com/search?q=Exception+Deadlock+found+when+trying+to+get+lock%3B+try+restarting+transaction" title="Search for help on Stack Overflow.">
  628.           <!-- Stack Overflow icon by Picons.me, from https://www.iconfinder.com/Picons -->
  629.           <!-- Free for commercial use -->
  630.           <svg class="stackoverflow" height="16" viewBox="-1163 1657.697 56.693 56.693" width="16" xmlns="http://www.w3.org/2000/svg">
  631.             <path d="M-1126.04 1689.533l-16.577-9.778 2.088-3.54 16.578 9.778zM-1127.386 1694.635l-18.586-4.996 1.068-3.97 18.586 4.995zM-1127.824 1700.137l-19.165-1.767.378-4.093 19.165 1.767zM-1147.263 1701.293h19.247v4.11h-19.247z"/>
  632.             <path d="M-1121.458 1710.947s0 .96-.032.96v.016h-30.796s-.96 0-.96-.016h-.032v-20.03h3.288v16.805h25.244v-16.804h3.288v19.07zM-1130.667 1667.04l10.844 15.903-3.396 2.316-10.843-15.903zM-1118.313 1663.044l3.29 18.963-4.05.703-3.29-18.963z"/>
  633.           </svg>
  634.         </a>
  635.       </li>
  636.     </ul>
  637.  
  638.     <span id="plain-exception">Exception thrown with message &quot;Deadlock found when trying to get lock; try restarting transaction&quot;
  639.  
  640. Stacktrace:
  641. #10 Exception in /www/likeme.pro/!define/system/core/db.php:62
  642. #9 do_query in /www/likeme.pro/!define/system/core/model.php:33
  643. #8 Model:insert in /www/likeme.pro/!define/sites/likeme/packages/payments/models/payments.php:24
  644. #7 Payments:pay in /www/likeme.pro/!define/sites/likeme/packages/task/controllers/ClientController.php:156
  645. #6 Task_ClientController:getPlaystop in /www/likeme.pro/!define/sites/likeme/packages/task/controllers/ClientController.php:169
  646. #5 Task_ClientController:callPlaystop in /www/likeme.pro/!define/system/core/call.php:16
  647. #4 call_user_func_array in /www/likeme.pro/!define/system/core/call.php:16
  648. #3 call in /www/likeme.pro/!define/sites/likeme/packages/vk/controllers/ClientController.php:303
  649. #2 Vk_ClientController:postIndex in /www/likeme.pro/!define/system/core/routing.php:75
  650. #1 routing in /www/likeme.pro/!define/!define.php:88
  651. #0 require_once in /www/likeme.pro/index.php:27
  652. </span>
  653.     <button id="copy-button" class="clipboard" data-clipboard-text="Exception thrown with message &quot;Deadlock found when trying to get lock; try restarting transaction&quot;
  654. Stacktrace:
  655. #10 Exception in /www/likeme.pro/!define/system/core/db.php:62
  656. #9 do_query in /www/likeme.pro/!define/system/core/model.php:33
  657. #8 Model:insert in /www/likeme.pro/!define/sites/likeme/packages/payments/models/payments.php:24
  658. #7 Payments:pay in /www/likeme.pro/!define/sites/likeme/packages/task/controllers/ClientController.php:156
  659. #6 Task_ClientController:getPlaystop in /www/likeme.pro/!define/sites/likeme/packages/task/controllers/ClientController.php:169
  660. #5 Task_ClientController:callPlaystop in /www/likeme.pro/!define/system/core/call.php:16
  661. #4 call_user_func_array in /www/likeme.pro/!define/system/core/call.php:16
  662. #3 call in /www/likeme.pro/!define/sites/likeme/packages/vk/controllers/ClientController.php:303
  663. #2 Vk_ClientController:postIndex in /www/likeme.pro/!define/system/core/routing.php:75
  664. #1 routing in /www/likeme.pro/!define/!define.php:88
  665. #0 require_once in /www/likeme.pro/index.php:27
  666. " title="Copy exception details to clipboard">
  667.       COPY
  668.     </button>
  669.   </div>
  670. </div>
  671. </header>
  672. <div class="frames-description ">
  673.       <span>
  674.         Stack frames (11)
  675.     </span>
  676.   </div>
  677. <div class="frames-container ">
  678.     <div class="frame active " id="frame-line-0">
  679.       <span class="frame-index">10</span>
  680.       <div class="frame-method-info">
  681.         <span class="frame-class"><div class="delimiter">Exception</div></span>
  682.         <span class="frame-function"><div class="delimiter"></div></span>
  683.       </div>
  684.  
  685.     <div class="frame-file">
  686.         <div class="delimiter">&hellip;</div>/<div class="delimiter">!define</div>/<div class="delimiter">system</div>/<div class="delimiter">core</div>/<div class="delimiter">db.php</div><!--
  687.   --><span class="frame-line">62</span>
  688.     </div>
  689.   </div>
  690.   <div class="frame  " id="frame-line-1">
  691.       <span class="frame-index">9</span>
  692.       <div class="frame-method-info">
  693.         <span class="frame-class"><div class="delimiter"></div></span>
  694.         <span class="frame-function"><div class="delimiter">do_query</div></span>
  695.       </div>
  696.  
  697.     <div class="frame-file">
  698.         <div class="delimiter">&hellip;</div>/<div class="delimiter">!define</div>/<div class="delimiter">system</div>/<div class="delimiter">core</div>/<div class="delimiter">model.php</div><!--
  699.   --><span class="frame-line">33</span>
  700.     </div>
  701.   </div>
  702.   <div class="frame  " id="frame-line-2">
  703.       <span class="frame-index">8</span>
  704.       <div class="frame-method-info">
  705.         <span class="frame-class"><div class="delimiter">Model</div></span>
  706.         <span class="frame-function"><div class="delimiter">insert</div></span>
  707.       </div>
  708.  
  709.     <div class="frame-file">
  710.         <div class="delimiter">&hellip;</div>/<div class="delimiter">!define</div>/<div class="delimiter">sites</div>/<div class="delimiter">likeme</div>/<div class="delimiter">packages</div>/<div class="delimiter">payments</div>/<div class="delimiter">models</div>/<div class="delimiter">payments.php</div><!--
  711.   --><span class="frame-line">24</span>
  712.     </div>
  713.   </div>
  714.   <div class="frame  " id="frame-line-3">
  715.       <span class="frame-index">7</span>
  716.       <div class="frame-method-info">
  717.         <span class="frame-class"><div class="delimiter">Payments</div></span>
  718.         <span class="frame-function"><div class="delimiter">pay</div></span>
  719.       </div>
  720.  
  721.     <div class="frame-file">
  722.         <div class="delimiter">&hellip;</div>/<div class="delimiter">!define</div>/<div class="delimiter">sites</div>/<div class="delimiter">likeme</div>/<div class="delimiter">packages</div>/<div class="delimiter">task</div>/<div class="delimiter">controllers</div>/<div class="delimiter">ClientController.php</div><!--
  723.   --><span class="frame-line">156</span>
  724.     </div>
  725.   </div>
  726.   <div class="frame  " id="frame-line-4">
  727.       <span class="frame-index">6</span>
  728.       <div class="frame-method-info">
  729.         <span class="frame-class"><div class="delimiter">Task_ClientController</div></span>
  730.         <span class="frame-function"><div class="delimiter">getPlaystop</div></span>
  731.       </div>
  732.  
  733.     <div class="frame-file">
  734.         <div class="delimiter">&hellip;</div>/<div class="delimiter">!define</div>/<div class="delimiter">sites</div>/<div class="delimiter">likeme</div>/<div class="delimiter">packages</div>/<div class="delimiter">task</div>/<div class="delimiter">controllers</div>/<div class="delimiter">ClientController.php</div><!--
  735.   --><span class="frame-line">169</span>
  736.     </div>
  737.   </div>
  738.   <div class="frame  " id="frame-line-5">
  739.       <span class="frame-index">5</span>
  740.       <div class="frame-method-info">
  741.         <span class="frame-class"><div class="delimiter">Task_ClientController</div></span>
  742.         <span class="frame-function"><div class="delimiter">callPlaystop</div></span>
  743.       </div>
  744.  
  745.     <div class="frame-file">
  746.         <div class="delimiter">&hellip;</div>/<div class="delimiter">!define</div>/<div class="delimiter">system</div>/<div class="delimiter">core</div>/<div class="delimiter">call.php</div><!--
  747.   --><span class="frame-line">16</span>
  748.     </div>
  749.   </div>
  750.   <div class="frame  " id="frame-line-6">
  751.       <span class="frame-index">4</span>
  752.       <div class="frame-method-info">
  753.         <span class="frame-class"><div class="delimiter"></div></span>
  754.         <span class="frame-function"><div class="delimiter">call_user_func_array</div></span>
  755.       </div>
  756.  
  757.     <div class="frame-file">
  758.         <div class="delimiter">&hellip;</div>/<div class="delimiter">!define</div>/<div class="delimiter">system</div>/<div class="delimiter">core</div>/<div class="delimiter">call.php</div><!--
  759.   --><span class="frame-line">16</span>
  760.     </div>
  761.   </div>
  762.   <div class="frame  " id="frame-line-7">
  763.       <span class="frame-index">3</span>
  764.       <div class="frame-method-info">
  765.         <span class="frame-class"><div class="delimiter"></div></span>
  766.         <span class="frame-function"><div class="delimiter">call</div></span>
  767.       </div>
  768.  
  769.     <div class="frame-file">
  770.         <div class="delimiter">&hellip;</div>/<div class="delimiter">!define</div>/<div class="delimiter">sites</div>/<div class="delimiter">likeme</div>/<div class="delimiter">packages</div>/<div class="delimiter">vk</div>/<div class="delimiter">controllers</div>/<div class="delimiter">ClientController.php</div><!--
  771.   --><span class="frame-line">303</span>
  772.     </div>
  773.   </div>
  774.   <div class="frame  " id="frame-line-8">
  775.       <span class="frame-index">2</span>
  776.       <div class="frame-method-info">
  777.         <span class="frame-class"><div class="delimiter">Vk_ClientController</div></span>
  778.         <span class="frame-function"><div class="delimiter">postIndex</div></span>
  779.       </div>
  780.  
  781.     <div class="frame-file">
  782.         <div class="delimiter">&hellip;</div>/<div class="delimiter">!define</div>/<div class="delimiter">system</div>/<div class="delimiter">core</div>/<div class="delimiter">routing.php</div><!--
  783.   --><span class="frame-line">75</span>
  784.     </div>
  785.   </div>
  786.   <div class="frame  " id="frame-line-9">
  787.       <span class="frame-index">1</span>
  788.       <div class="frame-method-info">
  789.         <span class="frame-class"><div class="delimiter"></div></span>
  790.         <span class="frame-function"><div class="delimiter">routing</div></span>
  791.       </div>
  792.  
  793.     <div class="frame-file">
  794.         <div class="delimiter">&hellip;</div>/<div class="delimiter">!define</div>/<div class="delimiter">!define.php</div><!--
  795.   --><span class="frame-line">88</span>
  796.     </div>
  797.   </div>
  798.   <div class="frame  " id="frame-line-10">
  799.       <span class="frame-index">0</span>
  800.       <div class="frame-method-info">
  801.         <span class="frame-class"><div class="delimiter"></div></span>
  802.         <span class="frame-function"><div class="delimiter">require_once</div></span>
  803.       </div>
  804.  
  805.     <div class="frame-file">
  806.         <div class="delimiter">&hellip;</div>/<div class="delimiter">index.php</div><!--
  807.   --><span class="frame-line">27</span>
  808.     </div>
  809.   </div>
  810. </div></div>
  811.         <div class="panel details-container cf">
  812.   <div class="frame-code-container ">
  813.             <div class="frame-code active" id="frame-code-0">
  814.         <div class="frame-file">
  815.                                 <strong><div class="delimiter"></div>/<div class="delimiter">www</div>/<div class="delimiter">likeme.pro</div>/<div class="delimiter">!define</div>/<div class="delimiter">system</div>/<div class="delimiter">core</div>/<div class="delimiter">db.php</div></strong>
  816.                   </div>
  817.                     <pre id="frame-code-linenums-0" class="code-block linenums:43">    try {
  818.         $result = $callback();
  819.         do_query(&#039;COMMIT&#039;);
  820.     } catch (Exception $e) {
  821.         do_query(&#039;ROLLBACK&#039;);
  822.     }
  823.     do_query(&#039;SET AUTOCOMMIT=1&#039;);
  824.     return $result;
  825. }
  826.  
  827. function do_query($sql, $params = null)
  828. {
  829.     $connection = Globals::get(&#039;db.current&#039;);
  830.     if (is_array($params)) {
  831.         $sql = prepare_sql($sql, $params);
  832.     }
  833.     Event::fire(Event::AppDbQuery, $sql);
  834.     $q = mysqli_query(Globals::get(&#039;db.handlers.&#039; . $connection), $sql);
  835.     if (!$q) {
  836.         throw new Exception(mysqli_error(Globals::get(&#039;db.handlers.&#039; . $connection)));
  837.         //xd(mysqli_error(Globals::get(&#039;db.handlers.&#039; . $connection)));
  838.     }
  839.     return $q;
  840. }
  841.  
  842. function get_last_insert_id()
  843. {
  844.     $connection = Globals::get(&#039;db.current&#039;);
  845.     return mysqli_insert_id(Globals::get(&#039;db.handlers.&#039; . $connection));
  846. }
  847.  
  848. function get_item($id, $table, $field = &#039;id&#039;, $cache = false) //TODO CACHE SUPPORT
  849. {
  850.     $result = null;
  851.     $sql = &#039;SELECT * FROM ^table WHERE ^field = :id LIMIT 1&#039;;
  852.     $q = do_query($sql, [&#039;^table&#039; =&gt; $table, &#039;^field&#039; =&gt; $field, &#039;:id&#039; =&gt; $id]);
  853.     if ($q) {
  854.         $result = mysqli_fetch_assoc($q);
  855.     }
  856.     return $result;
  857. </pre>
  858.  
  859.                  
  860.                
  861.                 <div class="frame-comments empty">
  862.                   </div>
  863.  
  864.       </div>
  865.             <div class="frame-code " id="frame-code-1">
  866.         <div class="frame-file">
  867.                                 <strong><div class="delimiter"></div>/<div class="delimiter">www</div>/<div class="delimiter">likeme.pro</div>/<div class="delimiter">!define</div>/<div class="delimiter">system</div>/<div class="delimiter">core</div>/<div class="delimiter">model.php</div></strong>
  868.                   </div>
  869.                     <pre id="frame-code-linenums-1" class="code-block linenums:14">    {
  870.         return new static();
  871.     }
  872.  
  873.     public static function get($id, $field = null)
  874.     {
  875.         return get_item($id, static::$table, $field);
  876.     }
  877.  
  878.     public static function getAsOptions()
  879.     {
  880.         return array_map(function ($item) {
  881.             return $item[&#039;name&#039;];
  882.         }, get_rows_ids(&#039;select * from ^table&#039;, [&#039;^table&#039; =&gt; static::$table]));
  883.     }
  884.  
  885.     public static function insert($data)
  886.     {
  887.         //xdd(get_insert($data, static::$table));
  888.         return do_query(get_insert($data, static::$table));
  889.     }
  890.  
  891.     public static function update($data)
  892.     {
  893.         return do_query(get_update($data, static::$table));
  894.     }
  895.  
  896.     public static function delete($id)
  897.     {
  898.         return do_query(get_delete($id, static::$table));
  899.     }
  900. }</pre>
  901.  
  902.                  
  903.                
  904.                 <div class="frame-comments empty">
  905.                   </div>
  906.  
  907.       </div>
  908.             <div class="frame-code " id="frame-code-2">
  909.         <div class="frame-file">
  910.                                 <strong><div class="delimiter"></div>/<div class="delimiter">www</div>/<div class="delimiter">likeme.pro</div>/<div class="delimiter">!define</div>/<div class="delimiter">sites</div>/<div class="delimiter">likeme</div>/<div class="delimiter">packages</div>/<div class="delimiter">payments</div>/<div class="delimiter">models</div>/<div class="delimiter">payments.php</div></strong>
  911.                   </div>
  912.                     <pre id="frame-code-linenums-2" class="code-block linenums:5">{
  913.     protected static $table = &#039;payments&#039;;
  914.  
  915.     public static function pay($user_id, $amount, $type, $status = PAYMENTS_STATUS::DONE, $extra_id = null, $addition_info = [])
  916.     {
  917.         if (!in_array($type, array_values(Enum::getConstList(PAYMENT_TYPE::class)))) return false;
  918.         if (!in_array($status, array_values(Enum::getConstList(PAYMENTS_STATUS::class)))) return false;
  919.         if ($amount == 0) return false;
  920.  
  921.         //Loging
  922.         $q[] = static::insert([
  923.             &#039;extra_id&#039; =&gt; $extra_id,
  924.             &#039;user_id&#039; =&gt; $user_id,
  925.             &#039;amount&#039; =&gt; $amount,
  926.             &#039;type&#039; =&gt; $type,
  927.             &#039;status&#039; =&gt; $status,
  928.             &#039;addition_info&#039; =&gt; $addition_info,
  929.             &#039;canceled_info&#039; =&gt; [],
  930.             &#039;date_created&#039; =&gt; now()
  931.         ]);
  932.  
  933.         return true;
  934.     }
  935.  
  936.     public static function cancel($id, $info = [])
  937.     {
  938.         static::update([
  939.             &#039;id&#039; =&gt; $id,
  940.             &#039;status&#039; =&gt; PAYMENTS_STATUS::CANCELED,
  941.             &#039;date_canceled&#039; =&gt; now(),
  942.             &#039;canceled_info&#039; =&gt; $info
  943.         ]);
  944.     }
  945.  
  946.     public static function getBadgeClass($status)
  947.     {
  948.         $css[] = &#039;badge&#039;;
  949.         switch ($status) {
  950.             case PAYMENTS_STATUS::DONE:
  951.                 $css[] = &#039;badge-neutral&#039;;</pre>
  952.  
  953.                  
  954.                
  955.                 <div class="frame-comments empty">
  956.                   </div>
  957.  
  958.       </div>
  959.             <div class="frame-code " id="frame-code-3">
  960.         <div class="frame-file">
  961.                                 <strong><div class="delimiter"></div>/<div class="delimiter">www</div>/<div class="delimiter">likeme.pro</div>/<div class="delimiter">!define</div>/<div class="delimiter">sites</div>/<div class="delimiter">likeme</div>/<div class="delimiter">packages</div>/<div class="delimiter">task</div>/<div class="delimiter">controllers</div>/<div class="delimiter">ClientController.php</div></strong>
  962.                   </div>
  963.                     <pre id="frame-code-linenums-3" class="code-block linenums:137">            /*
  964.             //$payment = Payments::get($task[&#039;id&#039;], &#039;extra_id&#039;); //WITH STATUS RESERVED
  965.             $payment = get_row(&#039;select * from ^table where extra_id=:task_id and status=:status and JSON_CONTAINS_PATH(addition_info,&quot;one&quot;,&quot;$.task&quot;)&#039;, [
  966.                 &#039;^table&#039; =&gt; &#039;payments&#039;,
  967.                 &#039;:task_id&#039; =&gt; $task[&#039;id&#039;],
  968.                 &#039;:status&#039; =&gt; PAYMENTS_STATUS::RESERVED
  969.             ]);
  970.             $task[&#039;price&#039;] = call_user_func_array(array($module, &#039;calculatePrice&#039;), [$coefficient, $task[&#039;count_done&#039;], $params, $price_info]);
  971.             $task[&#039;date_stop&#039;] = now();
  972.             if ($payment) {
  973.                 Payments::cancel($payment[&#039;id&#039;], [&#039;task&#039; =&gt; $task]);
  974.                 Payments::pay($task[&#039;user_id&#039;], -1 * $task[&#039;price&#039;], PAYMENT_TYPE::SERVICE_PAY, PAYMENTS_STATUS::DONE, $task[&#039;id&#039;], [&#039;task&#039; =&gt; $task]);
  975.             }*/
  976.             if (!$task = Task::stop($task)) return $this-&gt;error(&quot;ERROR&quot;);
  977.  
  978.         } else {
  979.             $task[&#039;date_start&#039;] = now();
  980.             $task[&#039;price&#039;] = call_user_func_array(array($module, &#039;calculatePrice&#039;), [$coefficient, $task[&#039;count_need&#039;], $params, $price_info]);
  981.             if (Auth::user()[&#039;balance&#039;] &lt; $task[&#039;price&#039;]) return [&#039;notify&#039; =&gt; [&#039;msg&#039; =&gt; lang(&#039;task.notify.havent_money&#039;), &#039;color&#039; =&gt; &#039;danger&#039;]];
  982.             Payments::pay($task[&#039;user_id&#039;], -1 * $task[&#039;price&#039;], PAYMENT_TYPE::SERVICE_PAY, PAYMENTS_STATUS::RESERVED, $task[&#039;id&#039;], [&#039;task&#039; =&gt; $task]);
  983.         }
  984.  
  985.         do_query(get_update($task, &#039;tasks&#039;));
  986.  
  987.         return is_api() ? [&#039;success&#039; =&gt; 1] : [
  988.             &#039;row&#039; =&gt; View::make(&#039;client.client_list_item_row&#039;, [&#039;item&#039; =&gt; $task]),
  989.             &#039;notify&#039; =&gt; [&#039;msg&#039; =&gt; lang(&#039;task.notify.run_success&#039;), &#039;color&#039; =&gt; &#039;primary&#039;]
  990.         ];
  991.     }
  992.  
  993.     public function callPlaystop()
  994.     {
  995.         return $this-&gt;getPlaystop();
  996.     }
  997.  
  998. }</pre>
  999.  
  1000.                  
  1001.                
  1002.                 <div class="frame-comments empty">
  1003.                   </div>
  1004.  
  1005.       </div>
  1006.             <div class="frame-code " id="frame-code-4">
  1007.         <div class="frame-file">
  1008.                                 <strong><div class="delimiter"></div>/<div class="delimiter">www</div>/<div class="delimiter">likeme.pro</div>/<div class="delimiter">!define</div>/<div class="delimiter">sites</div>/<div class="delimiter">likeme</div>/<div class="delimiter">packages</div>/<div class="delimiter">task</div>/<div class="delimiter">controllers</div>/<div class="delimiter">ClientController.php</div></strong>
  1009.                   </div>
  1010.                     <pre id="frame-code-linenums-4" class="code-block linenums:150">            if (!$task = Task::stop($task)) return $this-&gt;error(&quot;ERROR&quot;);
  1011.  
  1012.         } else {
  1013.             $task[&#039;date_start&#039;] = now();
  1014.             $task[&#039;price&#039;] = call_user_func_array(array($module, &#039;calculatePrice&#039;), [$coefficient, $task[&#039;count_need&#039;], $params, $price_info]);
  1015.             if (Auth::user()[&#039;balance&#039;] &lt; $task[&#039;price&#039;]) return [&#039;notify&#039; =&gt; [&#039;msg&#039; =&gt; lang(&#039;task.notify.havent_money&#039;), &#039;color&#039; =&gt; &#039;danger&#039;]];
  1016.             Payments::pay($task[&#039;user_id&#039;], -1 * $task[&#039;price&#039;], PAYMENT_TYPE::SERVICE_PAY, PAYMENTS_STATUS::RESERVED, $task[&#039;id&#039;], [&#039;task&#039; =&gt; $task]);
  1017.         }
  1018.  
  1019.         do_query(get_update($task, &#039;tasks&#039;));
  1020.  
  1021.         return is_api() ? [&#039;success&#039; =&gt; 1] : [
  1022.             &#039;row&#039; =&gt; View::make(&#039;client.client_list_item_row&#039;, [&#039;item&#039; =&gt; $task]),
  1023.             &#039;notify&#039; =&gt; [&#039;msg&#039; =&gt; lang(&#039;task.notify.run_success&#039;), &#039;color&#039; =&gt; &#039;primary&#039;]
  1024.         ];
  1025.     }
  1026.  
  1027.     public function callPlaystop()
  1028.     {
  1029.         return $this-&gt;getPlaystop();
  1030.     }
  1031.  
  1032. }</pre>
  1033.  
  1034.                  
  1035.                
  1036.                 <div class="frame-comments empty">
  1037.                   </div>
  1038.  
  1039.       </div>
  1040.             <div class="frame-code " id="frame-code-5">
  1041.         <div class="frame-file">
  1042.                                 <strong><div class="delimiter"></div>/<div class="delimiter">www</div>/<div class="delimiter">likeme.pro</div>/<div class="delimiter">!define</div>/<div class="delimiter">system</div>/<div class="delimiter">core</div>/<div class="delimiter">call.php</div></strong>
  1043.                   </div>
  1044.                     <pre id="frame-code-linenums-5" class="code-block linenums:1">&lt;?php
  1045. function call()
  1046. {
  1047.     $args = func_get_args();
  1048.     if (sizeof($args) == 0) return;
  1049.     $path = array_shift($args);
  1050.     list($package, $controller0, $action0) = explode(&#039;.&#039;, $path);
  1051.     $controller = ucfirst($controller0) . &#039;Controller&#039;;
  1052.     $action = &#039;call&#039; . ucfirst($action0);
  1053.     $inc_path = get_site_packages_path() . $package . &#039;/controllers/&#039; . $controller . &#039;.php&#039;;
  1054.     if (file_exists($inc_path)) {
  1055.         include_once $inc_path;
  1056.         $controller1 = ucfirst($package) . &#039;_&#039; . $controller;
  1057.         if (class_exists($controller1)) $controller = $controller1;
  1058.         $controller_object = new $controller;
  1059.         return call_user_func_array(array($controller_object, $action), $args);
  1060.     }
  1061.     return [&#039;errors&#039; =&gt; [&#039;PACKAGE_NOT_FOUND&#039;]];
  1062. }</pre>
  1063.  
  1064.                  
  1065.                
  1066.                 <div class="frame-comments empty">
  1067.                   </div>
  1068.  
  1069.       </div>
  1070.             <div class="frame-code " id="frame-code-6">
  1071.         <div class="frame-file">
  1072.                                 <strong><div class="delimiter"></div>/<div class="delimiter">www</div>/<div class="delimiter">likeme.pro</div>/<div class="delimiter">!define</div>/<div class="delimiter">system</div>/<div class="delimiter">core</div>/<div class="delimiter">call.php</div></strong>
  1073.                   </div>
  1074.                     <pre id="frame-code-linenums-6" class="code-block linenums:1">&lt;?php
  1075. function call()
  1076. {
  1077.     $args = func_get_args();
  1078.     if (sizeof($args) == 0) return;
  1079.     $path = array_shift($args);
  1080.     list($package, $controller0, $action0) = explode(&#039;.&#039;, $path);
  1081.     $controller = ucfirst($controller0) . &#039;Controller&#039;;
  1082.     $action = &#039;call&#039; . ucfirst($action0);
  1083.     $inc_path = get_site_packages_path() . $package . &#039;/controllers/&#039; . $controller . &#039;.php&#039;;
  1084.     if (file_exists($inc_path)) {
  1085.         include_once $inc_path;
  1086.         $controller1 = ucfirst($package) . &#039;_&#039; . $controller;
  1087.         if (class_exists($controller1)) $controller = $controller1;
  1088.         $controller_object = new $controller;
  1089.         return call_user_func_array(array($controller_object, $action), $args);
  1090.     }
  1091.     return [&#039;errors&#039; =&gt; [&#039;PACKAGE_NOT_FOUND&#039;]];
  1092. }</pre>
  1093.  
  1094.                  
  1095.                
  1096.                 <div class="frame-comments empty">
  1097.                   </div>
  1098.  
  1099.       </div>
  1100.             <div class="frame-code " id="frame-code-7">
  1101.         <div class="frame-file">
  1102.                                 <strong><div class="delimiter"></div>/<div class="delimiter">www</div>/<div class="delimiter">likeme.pro</div>/<div class="delimiter">!define</div>/<div class="delimiter">sites</div>/<div class="delimiter">likeme</div>/<div class="delimiter">packages</div>/<div class="delimiter">vk</div>/<div class="delimiter">controllers</div>/<div class="delimiter">ClientController.php</div></strong>
  1103.                   </div>
  1104.                     <pre id="frame-code-linenums-7" class="code-block linenums:284">            $attrs[&#039;user_id&#039;] = Auth::user()[&#039;id&#039;];
  1105.             $attrs[&#039;date_created&#039;] = $attrs[&#039;date_updated&#039;] = now();
  1106.             $attrs[&#039;date_updated&#039;] = $attrs[&#039;date_created&#039;];
  1107.         }
  1108.  
  1109.         $task_id = do_insert($attrs, $this-&gt;table, true);
  1110.  
  1111.         $new = 0;
  1112.         if (empty($attrs[&#039;id&#039;])) {
  1113.             $new = 1;
  1114.             $attrs[&#039;id&#039;] = $task_id;
  1115.         }
  1116.  
  1117.         $this-&gt;write_logs(&#039;try_playstop&#039;,$attrs[&#039;id&#039;]);
  1118.        
  1119.         //Autostart
  1120.         if (isset($_REQUEST[&#039;autostart&#039;]) &amp;&amp; in_array($_REQUEST[&#039;autostart&#039;], [&#039;on&#039;, 1]) &amp;&amp; ($new || $item[&#039;status&#039;] == TASK_STATUS::WAITING)) {
  1121.             $_REQUEST[&#039;id&#039;] = $attrs[&#039;id&#039;];
  1122.             $this-&gt;write_logs(&#039;playstop&#039;,$attrs[&#039;id&#039;]);
  1123.             call(&#039;task.client.playstop&#039;);
  1124.         }
  1125.  
  1126.         return [&#039;success&#039; =&gt; !$new ? lang(&#039;app.notify.save_success&#039;) : lang(&#039;app.notify.add_success&#039;), &#039;id&#039; =&gt; $attrs[&#039;id&#039;]];
  1127.     }
  1128. }
  1129.  
  1130. //TODO ΠžΠ’Π”ΠΠ•Πœ ID тасков Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ с base64(xor()) Ρ‡Ρ‚ΠΎ Π½Π΅ Π΅Π±Π½ΡƒΠ»ΠΈ стату
  1131.  
  1132. //{&quot;sex&quot;:0,&quot;age0&quot;:0,&quot;age1&quot;:0,&quot;country_id&quot;:0,&quot;city_id&quot;:0}
  1133. //{&quot;views&quot;:&quot;0&quot;,&quot;sex&quot;:-1,&quot;age0&quot;:0,&quot;age1&quot;:0,&quot;country_id&quot;:0,&quot;city_id&quot;:0}</pre>
  1134.  
  1135.                  
  1136.                
  1137.                 <div class="frame-comments empty">
  1138.                   </div>
  1139.  
  1140.       </div>
  1141.             <div class="frame-code " id="frame-code-8">
  1142.         <div class="frame-file">
  1143.                                 <strong><div class="delimiter"></div>/<div class="delimiter">www</div>/<div class="delimiter">likeme.pro</div>/<div class="delimiter">!define</div>/<div class="delimiter">system</div>/<div class="delimiter">core</div>/<div class="delimiter">routing.php</div></strong>
  1144.                   </div>
  1145.                     <pre id="frame-code-linenums-8" class="code-block linenums:56">            $args2 = array($d[&#039;controller&#039;], $d[&#039;action&#039;]);
  1146.             Event::fire(Event::AppControllerActionInit, $args2);
  1147.  
  1148.             //CSRF Protection
  1149.             $html = null;
  1150.  
  1151.             if (property_exists($controller_object, $d[&#039;action&#039;] . &#039;CSRF&#039;)) {
  1152.                 $checkCSRF = $controller_object::${$d[&#039;action&#039;] . &#039;CSRF&#039;};
  1153.             } elseif (property_exists($controller_object, &#039;csrf&#039;)) {
  1154.                 $checkCSRF = $controller_object::${&#039;csrf&#039;};
  1155.             } else {
  1156.                 $checkCSRF = Config::get(&#039;csrf.enable&#039;);
  1157.             }
  1158.  
  1159.             if (in_array($d[&#039;type&#039;], [&#039;post&#039;, &#039;xhrPost&#039;]) &amp;&amp; $checkCSRF &amp;&amp; CSRF::invalid()) {
  1160.                 header(&#039;HTTP/1.0 403 Forbidden&#039;);
  1161.                 $csrf_args = [&#039;url&#039; =&gt; $d, &#039;html&#039; =&gt; &amp;$html];
  1162.                 Event::fire(Event::AppCSRF, $csrf_args);
  1163.             } else {
  1164.                 $html = $controller_object-&gt;{$d[&#039;action&#039;]}();
  1165.             }
  1166.             //END
  1167.  
  1168.             set_render_value(&#039;content&#039;, $html);
  1169.  
  1170.             $args3 = array($d[&#039;controller&#039;], $d[&#039;action&#039;]);
  1171.             Event::fire(Event::AppControllerActionFinish, $arg3);
  1172.             Event::fire(Event::AppLayoutInit);
  1173.             ob_start();
  1174.             if (is_string($html)) {
  1175.                 $layout = isset($controller_object::$layout) ? $controller_object::$layout : &#039;default&#039;;
  1176.                 $layout = str_replace(&#039;.&#039;, &#039;/&#039;, $layout);
  1177.                 $layout_path = _SITE_VIEWS_ . $layout . &#039;.tpl.php&#039;;
  1178.                 if (file_exists($layout_path)) {
  1179.                     include_once $layout_path;
  1180.                 }
  1181.             } else {
  1182.                 header(&#039;Content-Type: application/json&#039;);
  1183.                 echo json_encode($html, JSON_UNESCAPED_UNICODE);
  1184.             }
  1185. </pre>
  1186.  
  1187.                  
  1188.                
  1189.                 <div class="frame-comments empty">
  1190.                   </div>
  1191.  
  1192.       </div>
  1193.             <div class="frame-code " id="frame-code-9">
  1194.         <div class="frame-file">
  1195.                                 <strong><div class="delimiter"></div>/<div class="delimiter">www</div>/<div class="delimiter">likeme.pro</div>/<div class="delimiter">!define</div>/<div class="delimiter">!define.php</div></strong>
  1196.                   </div>
  1197.                     <pre id="frame-code-linenums-9" class="code-block linenums:69">Autoinc::register();
  1198.  
  1199. $default = Config::get(&#039;db.default&#039;);
  1200. if (Config::get(&quot;db.connections.{$default}.auto&quot;)) {
  1201.     db_connect($default);
  1202. }
  1203.  
  1204. //Enable Cache
  1205. if (Config::get(&#039;app.cache.status&#039;)) {
  1206.     Cache::init(Config::get(&#039;app.cache.host&#039;), Config::get(&#039;app.cache.port&#039;));
  1207. }
  1208.  
  1209. Lang::setLocale(Config::get(&#039;app.language.default&#039;));
  1210.  
  1211. Event::fire(Event::AppInit);
  1212.  
  1213. CSRF::init(Config::get(&#039;csrf.namespace&#039;));
  1214.  
  1215. routing();
  1216.  
  1217. Event::fire(Event::AppFinish);
  1218.  </pre>
  1219.  
  1220.                  
  1221.                
  1222.                 <div class="frame-comments empty">
  1223.                   </div>
  1224.  
  1225.       </div>
  1226.             <div class="frame-code " id="frame-code-10">
  1227.         <div class="frame-file">
  1228.                                 <strong><div class="delimiter"></div>/<div class="delimiter">www</div>/<div class="delimiter">likeme.pro</div>/<div class="delimiter">index.php</div></strong>
  1229.                   </div>
  1230.                     <pre id="frame-code-linenums-10" class="code-block linenums:8">define(&#039;SITE_NAME&#039;, &#039;likeme&#039;);
  1231. define(&#039;INDEX_PATH&#039;, __DIR__);
  1232. define(&#039;ASSETS_PATH&#039;, INDEX_PATH . &#039;/socialup.shop/&#039;);
  1233. }else
  1234. if ($domain==&#039;socialup.vip&#039;)
  1235. {
  1236. define(&#039;SITE_NAME&#039;, &#039;likeme&#039;);
  1237. define(&#039;INDEX_PATH&#039;, __DIR__);
  1238. define(&#039;ASSETS_PATH&#039;, INDEX_PATH . &#039;/socialup.vip/&#039;);
  1239. }
  1240. else
  1241. {
  1242. define(&#039;SITE_NAME&#039;, &#039;likeme&#039;);
  1243. define(&#039;INDEX_PATH&#039;, __DIR__);
  1244. define(&#039;ASSETS_PATH&#039;, INDEX_PATH . &#039;/assets/&#039;);
  1245. }
  1246.  
  1247. require_once &#039;vendor/autoload.php&#039;;
  1248.  
  1249. require_once &#039;!define/!define.php&#039;;</pre>
  1250.  
  1251.                  
  1252.                
  1253.                 <div class="frame-comments empty">
  1254.                   </div>
  1255.  
  1256.       </div>
  1257.   </div>
  1258. <div class="details">
  1259.   <h2 class="details-heading">Environment &amp; details:</h2>
  1260.  
  1261.   <div class="data-table-container" id="data-tables">
  1262.           <div class="data-table" id="sg-get-data">
  1263.                     <label>GET Data</label>
  1264.             <table class="data-table">
  1265.               <thead>
  1266.                 <tr>
  1267.                   <td class="data-table-k">Key</td>
  1268.                   <td class="data-table-v">Value</td>
  1269.                 </tr>
  1270.               </thead>
  1271.                           <tr>
  1272.                 <td>r</td>
  1273.                 <td>vk.client</td>
  1274.               </tr>
  1275.                           <tr>
  1276.                 <td>api_key</td>
  1277.                 <td>3b95b367e09fb6fabc4aa34563c59a4d</td>
  1278.               </tr>
  1279.                         </table>
  1280.               </div>
  1281.           <div class="data-table" id="sg-post-data">
  1282.                     <label>POST Data</label>
  1283.             <table class="data-table">
  1284.               <thead>
  1285.                 <tr>
  1286.                   <td class="data-table-k">Key</td>
  1287.                   <td class="data-table-v">Value</td>
  1288.                 </tr>
  1289.               </thead>
  1290.                           <tr>
  1291.                 <td>autostart</td>
  1292.                 <td>1</td>
  1293.               </tr>
  1294.                           <tr>
  1295.                 <td>url</td>
  1296.                 <td>https://vk.com/wall-149094324_1249027</td>
  1297.               </tr>
  1298.                           <tr>
  1299.                 <td>count_need</td>
  1300.                 <td>5000</td>
  1301.               </tr>
  1302.                           <tr>
  1303.                 <td>action_interval</td>
  1304.                 <td>0</td>
  1305.               </tr>
  1306.                           <tr>
  1307.                 <td>name</td>
  1308.                 <td>wall-149094324_1249027</td>
  1309.               </tr>
  1310.                           <tr>
  1311.                 <td>sex</td>
  1312.                 <td>-1</td>
  1313.               </tr>
  1314.                         </table>
  1315.               </div>
  1316.           <div class="data-table" id="sg-files">
  1317.                     <label class="empty">Files</label>
  1318.             <span class="empty">empty</span>
  1319.               </div>
  1320.           <div class="data-table" id="sg-cookies">
  1321.                     <label class="empty">Cookies</label>
  1322.             <span class="empty">empty</span>
  1323.               </div>
  1324.           <div class="data-table" id="sg-session">
  1325.                     <label>Session</label>
  1326.             <table class="data-table">
  1327.               <thead>
  1328.                 <tr>
  1329.                   <td class="data-table-k">Key</td>
  1330.                   <td class="data-table-v">Value</td>
  1331.                 </tr>
  1332.               </thead>
  1333.                           <tr>
  1334.                 <td>__csrf</td>
  1335.                 <td>E1CB-0F51-F4DA-8351-5EDB-80E5-8D6B-0190-4116-9B8F</td>
  1336.               </tr>
  1337.                           <tr>
  1338.                 <td>app.auth.user</td>
  1339.                 <td>98</td>
  1340.               </tr>
  1341.                         </table>
  1342.               </div>
  1343.           <div class="data-table" id="sg-serverrequest-data">
  1344.                     <label>Server/Request Data</label>
  1345.             <table class="data-table">
  1346.               <thead>
  1347.                 <tr>
  1348.                   <td class="data-table-k">Key</td>
  1349.                   <td class="data-table-v">Value</td>
  1350.                 </tr>
  1351.               </thead>
  1352.                           <tr>
  1353.                 <td>USER</td>
  1354.                 <td>nginx</td>
  1355.               </tr>
  1356.                           <tr>
  1357.                 <td>HOME</td>
  1358.                 <td>/var/lib/nginx</td>
  1359.               </tr>
  1360.                           <tr>
  1361.                 <td>FCGI_ROLE</td>
  1362.                 <td>RESPONDER</td>
  1363.               </tr>
  1364.                           <tr>
  1365.                 <td>QUERY_STRING</td>
  1366.                 <td>r=vk.client&amp;api_key=3b95b367e09fb6fabc4aa34563c59a4d</td>
  1367.               </tr>
  1368.                           <tr>
  1369.                 <td>REQUEST_METHOD</td>
  1370.                 <td>POST</td>
  1371.               </tr>
  1372.                           <tr>
  1373.                 <td>CONTENT_TYPE</td>
  1374.                 <td>application/x-www-form-urlencoded</td>
  1375.               </tr>
  1376.                           <tr>
  1377.                 <td>CONTENT_LENGTH</td>
  1378.                 <td>130</td>
  1379.               </tr>
  1380.                           <tr>
  1381.                 <td>SCRIPT_NAME</td>
  1382.                 <td>/index.php</td>
  1383.               </tr>
  1384.                           <tr>
  1385.                 <td>REQUEST_URI</td>
  1386.                 <td>/?r=vk.client&amp;api_key=3b95b367e09fb6fabc4aa34563c59a4d</td>
  1387.               </tr>
  1388.                           <tr>
  1389.                 <td>DOCUMENT_URI</td>
  1390.                 <td>/index.php</td>
  1391.               </tr>
  1392.                           <tr>
  1393.                 <td>DOCUMENT_ROOT</td>
  1394.                 <td>/www/likeme.pro</td>
  1395.               </tr>
  1396.                           <tr>
  1397.                 <td>SERVER_PROTOCOL</td>
  1398.                 <td>HTTP/1.1</td>
  1399.               </tr>
  1400.                           <tr>
  1401.                 <td>GATEWAY_INTERFACE</td>
  1402.                 <td>CGI/1.1</td>
  1403.               </tr>
  1404.                           <tr>
  1405.                 <td>SERVER_SOFTWARE</td>
  1406.                 <td>nginx/1.12.2</td>
  1407.               </tr>
  1408.                           <tr>
  1409.                 <td>REMOTE_ADDR</td>
  1410.                 <td>172.68.245.62</td>
  1411.               </tr>
  1412.                           <tr>
  1413.                 <td>REMOTE_PORT</td>
  1414.                 <td>32252</td>
  1415.               </tr>
  1416.                           <tr>
  1417.                 <td>SERVER_ADDR</td>
  1418.                 <td>195.201.168.176</td>
  1419.               </tr>
  1420.                           <tr>
  1421.                 <td>SERVER_PORT</td>
  1422.                 <td>80</td>
  1423.               </tr>
  1424.                           <tr>
  1425.                 <td>SERVER_NAME</td>
  1426.                 <td>socialup.shop</td>
  1427.               </tr>
  1428.                           <tr>
  1429.                 <td>HTTP_X_REAL_IP</td>
  1430.                 <td>172.68.245.62</td>
  1431.               </tr>
  1432.                           <tr>
  1433.                 <td>REDIRECT_STATUS</td>
  1434.                 <td>200</td>
  1435.               </tr>
  1436.                           <tr>
  1437.                 <td>SCRIPT_FILENAME</td>
  1438.                 <td>/www/likeme.pro/index.php</td>
  1439.               </tr>
  1440.                           <tr>
  1441.                 <td>HTTP_HOST</td>
  1442.                 <td>socialup.shop</td>
  1443.               </tr>
  1444.                           <tr>
  1445.                 <td>HTTP_CONNECTION</td>
  1446.                 <td>Keep-Alive</td>
  1447.               </tr>
  1448.                           <tr>
  1449.                 <td>HTTP_ACCEPT_ENCODING</td>
  1450.                 <td>gzip</td>
  1451.               </tr>
  1452.                           <tr>
  1453.                 <td>HTTP_CF_IPCOUNTRY</td>
  1454.                 <td>BZ</td>
  1455.               </tr>
  1456.                           <tr>
  1457.                 <td>HTTP_X_FORWARDED_FOR</td>
  1458.                 <td>190.115.18.248</td>
  1459.               </tr>
  1460.                           <tr>
  1461.                 <td>HTTP_CF_RAY</td>
  1462.                 <td>471ee24db44c8f57-DME</td>
  1463.               </tr>
  1464.                           <tr>
  1465.                 <td>HTTP_CONTENT_LENGTH</td>
  1466.                 <td>130</td>
  1467.               </tr>
  1468.                           <tr>
  1469.                 <td>HTTP_X_FORWARDED_PROTO</td>
  1470.                 <td>http</td>
  1471.               </tr>
  1472.                           <tr>
  1473.                 <td>HTTP_CF_VISITOR</td>
  1474.                 <td>{&quot;scheme&quot;:&quot;http&quot;}</td>
  1475.               </tr>
  1476.                           <tr>
  1477.                 <td>HTTP_ACCEPT</td>
  1478.                 <td>*/*</td>
  1479.               </tr>
  1480.                           <tr>
  1481.                 <td>HTTP_CONTENT_TYPE</td>
  1482.                 <td>application/x-www-form-urlencoded</td>
  1483.               </tr>
  1484.                           <tr>
  1485.                 <td>HTTP_CF_CONNECTING_IP</td>
  1486.                 <td>190.115.18.248</td>
  1487.               </tr>
  1488.                           <tr>
  1489.                 <td>PHP_SELF</td>
  1490.                 <td>/index.php</td>
  1491.               </tr>
  1492.                           <tr>
  1493.                 <td>REQUEST_TIME_FLOAT</td>
  1494.                 <td>1540913016.0332</td>
  1495.               </tr>
  1496.                           <tr>
  1497.                 <td>REQUEST_TIME</td>
  1498.                 <td>1540913016</td>
  1499.               </tr>
  1500.                         </table>
  1501.               </div>
  1502.           <div class="data-table" id="sg-environment-variables">
  1503.                     <label class="empty">Environment Variables</label>
  1504.             <span class="empty">empty</span>
  1505.               </div>
  1506.       </div>
  1507.  
  1508.     <div class="data-table-container" id="handlers">
  1509.     <label>Registered Handlers</label>
  1510.           <div class="handler active">
  1511.         0. Whoops\Handler\PrettyPageHandler      </div>
  1512.       </div>
  1513.  
  1514. </div>
  1515. </div>
  1516.       </div>
  1517.     </div>
  1518.  
  1519.     <script>var r=null;window.PR_SHOULD_USE_CONTINUATION=!0;
  1520. (function(){function O(a){function i(d){var a=d.charCodeAt(0);if(a!==92)return a;var f=d.charAt(1);return(a=s[f])?a:"0"<=f&&f<="7"?parseInt(d.substring(1),8):f==="u"||f==="x"?parseInt(d.substring(2),16):d.charCodeAt(1)}function g(d){if(d<32)return(d<16?"\\x0":"\\x")+d.toString(16);d=String.fromCharCode(d);return d==="\\"||d==="-"||d==="]"||d==="^"?"\\"+d:d}function j(d){var a=d.substring(1,d.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),d=[],f=
  1521. a[0]==="^",b=["["];f&&b.push("^");for(var f=f?1:0,c=a.length;f<c;++f){var h=a[f];if(/\\[bdsw]/i.test(h))b.push(h);else{var h=i(h),e;f+2<c&&"-"===a[f+1]?(e=i(a[f+2]),f+=2):e=h;d.push([h,e]);e<65||h>122||(e<65||h>90||d.push([Math.max(65,h)|32,Math.min(e,90)|32]),e<97||h>122||d.push([Math.max(97,h)&-33,Math.min(e,122)&-33]))}}d.sort(function(d,a){return d[0]-a[0]||a[1]-d[1]});a=[];c=[];for(f=0;f<d.length;++f)h=d[f],h[0]<=c[1]+1?c[1]=Math.max(c[1],h[1]):a.push(c=h);for(f=0;f<a.length;++f)h=a[f],b.push(g(h[0])),
  1522. h[1]>h[0]&&(h[1]+1>h[0]&&b.push("-"),b.push(g(h[1])));b.push("]");return b.join("")}function t(d){for(var a=d.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=a.length,i=[],c=0,h=0;c<b;++c){var e=a[c];e==="("?++h:"\\"===e.charAt(0)&&(e=+e.substring(1))&&(e<=h?i[e]=-1:a[c]=g(e))}for(c=1;c<i.length;++c)-1===i[c]&&(i[c]=++z);for(h=c=0;c<b;++c)e=a[c],e==="("?(++h,i[h]||(a[c]="(?:")):"\\"===e.charAt(0)&&(e=+e.substring(1))&&e<=h&&
  1523. (a[c]="\\"+i[e]);for(c=0;c<b;++c)"^"===a[c]&&"^"!==a[c+1]&&(a[c]="");if(d.ignoreCase&&w)for(c=0;c<b;++c)e=a[c],d=e.charAt(0),e.length>=2&&d==="["?a[c]=j(e):d!=="\\"&&(a[c]=e.replace(/[A-Za-z]/g,function(d){d=d.charCodeAt(0);return"["+String.fromCharCode(d&-33,d|32)+"]"}));return a.join("")}for(var z=0,w=!1,k=!1,m=0,b=a.length;m<b;++m){var o=a[m];if(o.ignoreCase)k=!0;else if(/[a-z]/i.test(o.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){w=!0;k=!1;break}}for(var s={b:8,t:9,n:10,v:11,
  1524. f:12,r:13},q=[],m=0,b=a.length;m<b;++m){o=a[m];if(o.global||o.multiline)throw Error(""+o);q.push("(?:"+t(o)+")")}return RegExp(q.join("|"),k?"gi":"g")}function P(a,i){function g(a){switch(a.nodeType){case 1:if(j.test(a.className))break;for(var b=a.firstChild;b;b=b.nextSibling)g(b);b=a.nodeName.toLowerCase();if("br"===b||"li"===b)t[k]="\n",w[k<<1]=z++,w[k++<<1|1]=a;break;case 3:case 4:b=a.nodeValue,b.length&&(b=i?b.replace(/\r\n?/g,"\n"):b.replace(/[\t\n\r ]+/g," "),t[k]=b,w[k<<1]=z,z+=b.length,w[k++<<
  1525. 1|1]=a)}}var j=/(?:^|\s)nocode(?:\s|$)/,t=[],z=0,w=[],k=0;g(a);return{a:t.join("").replace(/\n$/,""),d:w}}function E(a,i,g,j){i&&(a={a:i,e:a},g(a),j.push.apply(j,a.g))}function x(a,i){function g(a){for(var k=a.e,m=[k,"pln"],b=0,o=a.a.match(t)||[],s={},q=0,d=o.length;q<d;++q){var v=o[q],f=s[v],u=void 0,c;if(typeof f==="string")c=!1;else{var h=j[v.charAt(0)];if(h)u=v.match(h[1]),f=h[0];else{for(c=0;c<z;++c)if(h=i[c],u=v.match(h[1])){f=h[0];break}u||(f="pln")}if((c=f.length>=5&&"lang-"===f.substring(0,
  1526. 5))&&!(u&&typeof u[1]==="string"))c=!1,f="src";c||(s[v]=f)}h=b;b+=v.length;if(c){c=u[1];var e=v.indexOf(c),p=e+c.length;u[2]&&(p=v.length-u[2].length,e=p-c.length);f=f.substring(5);E(k+h,v.substring(0,e),g,m);E(k+h+e,c,F(f,c),m);E(k+h+p,v.substring(p),g,m)}else m.push(k+h,f)}a.g=m}var j={},t;(function(){for(var g=a.concat(i),k=[],m={},b=0,o=g.length;b<o;++b){var s=g[b],q=s[3];if(q)for(var d=q.length;--d>=0;)j[q.charAt(d)]=s;s=s[1];q=""+s;m.hasOwnProperty(q)||(k.push(s),m[q]=r)}k.push(/[\S\s]/);t=
  1527. O(k)})();var z=i.length;return g}function l(a){var i=[],g=[];a.tripleQuotedStrings?i.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,r,"'\""]):a.multiLineStrings?i.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,r,"'\"`"]):i.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,r,"\"'"]);a.verbatimStrings&&
  1528. g.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,r]);var j=a.hashComments;j&&(a.cStyleComments?(j>1?i.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,r,"#"]):i.push(["com",/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\n\r]*)/,r,"#"]),g.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,r])):i.push(["com",/^#[^\n\r]*/,r,"#"]));a.cStyleComments&&(g.push(["com",/^\/\/[^\n\r]*/,r]),g.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,
  1529. r]));a.regexLiterals&&g.push(["lang-regex",/^(?:^^\.?|[+-]|[!=]={0,2}|#|%=?|&&?=?|\(|\*=?|[+-]=|->|\/=?|::?|<<?=?|>{1,3}=?|[,;?@[{~]|\^\^?=?|\|\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(j=a.types)&&g.push(["typ",j]);a=(""+a.keywords).replace(/^ | $/g,"");a.length&&g.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),r]);i.push(["pln",/^\s+/,r," \r\n\t\u00a0"]);g.push(["lit",
  1530. /^@[$_a-z][\w$@]*/i,r],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,r],["pln",/^[$_a-z][\w$@]*/i,r],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,r,"0123456789"],["pln",/^\\[\S\s]?/,r],["pun",/^.[^\s\w"$'./@\\`]*/,r]);return x(i,g)}function G(a,i,g){function j(a){switch(a.nodeType){case 1:if(z.test(a.className))break;if("br"===a.nodeName)t(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)j(a);break;case 3:case 4:if(g){var b=
  1531. a.nodeValue,f=b.match(n);if(f){var i=b.substring(0,f.index);a.nodeValue=i;(b=b.substring(f.index+f[0].length))&&a.parentNode.insertBefore(k.createTextNode(b),a.nextSibling);t(a);i||a.parentNode.removeChild(a)}}}}function t(a){function i(a,b){var d=b?a.cloneNode(!1):a,e=a.parentNode;if(e){var e=i(e,1),f=a.nextSibling;e.appendChild(d);for(var g=f;g;g=f)f=g.nextSibling,e.appendChild(g)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=i(a.nextSibling,0),f;(f=a.parentNode)&&f.nodeType===
  1532. 1;)a=f;b.push(a)}for(var z=/(?:^|\s)nocode(?:\s|$)/,n=/\r\n?|\n/,k=a.ownerDocument,m=k.createElement("li");a.firstChild;)m.appendChild(a.firstChild);for(var b=[m],o=0;o<b.length;++o)j(b[o]);i===(i|0)&&b[0].setAttribute("value",i);var s=k.createElement("ol");s.className="linenums";for(var i=Math.max(0,i-1|0)||0,o=0,q=b.length;o<q;++o)m=b[o],m.className="L"+(o+i)%10,m.firstChild||m.appendChild(k.createTextNode("\u00a0")),s.appendChild(m);a.appendChild(s)}function n(a,i){for(var g=i.length;--g>=0;){var j=
  1533. i[g];A.hasOwnProperty(j)?C.console&&console.warn("cannot override language handler %s",j):A[j]=a}}function F(a,i){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(i)?"default-markup":"default-code";return A[a]}function H(a){var i=a.h;try{var g=P(a.c,a.i),j=g.a;a.a=j;a.d=g.d;a.e=0;F(i,j)(a);var t=/\bMSIE\s(\d+)/.exec(navigator.userAgent),t=t&&+t[1]<=8,i=/\n/g,n=a.a,w=n.length,g=0,k=a.d,m=k.length,j=0,b=a.g,o=b.length,s=0;b[o]=w;var q,d;for(d=q=0;d<o;)b[d]!==b[d+2]?(b[q++]=b[d++],b[q++]=b[d++]):d+=2;o=q;
  1534. for(d=q=0;d<o;){for(var v=b[d],f=b[d+1],u=d+2;u+2<=o&&b[u+1]===f;)u+=2;b[q++]=v;b[q++]=f;d=u}b.length=q;var c=a.c,h;if(c)h=c.style.display,c.style.display="none";try{for(;j<m;){var e=k[j+2]||w,p=b[s+2]||w,u=Math.min(e,p),l=k[j+1],D;if(l.nodeType!==1&&(D=n.substring(g,u))){t&&(D=D.replace(i,"\r"));l.nodeValue=D;var y=l.ownerDocument,x=y.createElement("span");x.className=b[s+1];var B=l.parentNode;B.replaceChild(x,l);x.appendChild(l);g<e&&(k[j+1]=l=y.createTextNode(n.substring(u,e)),B.insertBefore(l,
  1535. x.nextSibling))}g=u;g>=e&&(j+=2);g>=p&&(s+=2)}}finally{if(c)c.style.display=h}}catch(A){C.console&&console.log(A&&A.stack?A.stack:A)}}var C=window,y=["break,continue,do,else,for,if,return,while"],B=[[y,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],I=[B,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],
  1536. J=[B,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],K=[J,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],B=[B,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],
  1537. L=[y,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],M=[y,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],y=[y,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],N=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,
  1538. Q=/\S/,R=l({keywords:[I,K,B,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+L,M,y],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};n(R,["default-code"]);n(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",
  1539. /^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);n(x([["pln",/^\s+/,r," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,r,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],
  1540. ["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);n(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);n(l({keywords:I,hashComments:!0,cStyleComments:!0,types:N}),["c","cc","cpp","cxx","cyc","m"]);n(l({keywords:"null,true,false"}),["json"]);n(l({keywords:K,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:N}),
  1541. ["cs"]);n(l({keywords:J,cStyleComments:!0}),["java"]);n(l({keywords:y,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);n(l({keywords:L,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py"]);n(l({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);n(l({keywords:M,hashComments:!0,
  1542. multiLineStrings:!0,regexLiterals:!0}),["rb"]);n(l({keywords:B,cStyleComments:!0,regexLiterals:!0}),["js"]);n(l({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);n(x([],[["str",/^[\S\s]+/]]),["regex"]);var S=C.PR={createSimpleLexer:x,registerLangHandler:n,sourceDecorator:l,
  1543. PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:C.prettyPrintOne=function(a,i,g){var j=document.createElement("pre");j.innerHTML=a;g&&G(j,g,!0);H({h:i,j:g,c:j,i:1});return j.innerHTML},prettyPrint:C.prettyPrint=function(a){function i(){var u;for(var g=C.PR_SHOULD_USE_CONTINUATION?k.now()+250:Infinity;m<j.length&&
  1544. k.now()<g;m++){var c=j[m],h=c.className;if(s.test(h)&&!q.test(h)){for(var e=!1,p=c.parentNode;p;p=p.parentNode)if(f.test(p.tagName)&&p.className&&s.test(p.className)){e=!0;break}if(!e){c.className+=" prettyprinted";var h=h.match(o),n;if(e=!h){for(var e=c,p=void 0,l=e.firstChild;l;l=l.nextSibling)var t=l.nodeType,p=t===1?p?e:l:t===3?Q.test(l.nodeValue)?e:p:p;e=(n=p===e?void 0:p)&&v.test(n.tagName)}e&&(h=n.className.match(o));h&&(h=h[1]);u=d.test(c.tagName)?1:(e=(e=c.currentStyle)?e.whiteSpace:document.defaultView&&
  1545. document.defaultView.getComputedStyle?document.defaultView.getComputedStyle(c,r).getPropertyValue("white-space"):0)&&"pre"===e.substring(0,3),e=u;(p=(p=c.className.match(/\blinenums\b(?::(\d+))?/))?p[1]&&p[1].length?+p[1]:!0:!1)&&G(c,p,e);b={h:h,c:c,j:p,i:e};H(b)}}}m<j.length?setTimeout(i,250):a&&a()}for(var g=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],j=[],n=0;n<g.length;++n)for(var l=0,w=g[n].length;l<w;++l)j.push(g[n][l]);var g=
  1546. r,k=Date;k.now||(k={now:function(){return+new Date}});var m=0,b,o=/\blang(?:uage)?-([\w.]+)(?!\S)/,s=/\bprettyprint\b/,q=/\bprettyprinted\b/,d=/pre|xmp/i,v=/^code$/i,f=/^(?:pre|code|xmp)$/i;i()}};typeof define==="function"&&define.amd&&define("google-code-prettify",[],function(){return S})})();
  1547. </script>
  1548.     <script>/* Zepto v1.1.3 - zepto event ajax form ie - zeptojs.com/license */
  1549. var Zepto=function(){function L(t){return null==t?String(t):j[T.call(t)]||"object"}function Z(t){return"function"==L(t)}function $(t){return null!=t&&t==t.window}function _(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function D(t){return"object"==L(t)}function R(t){return D(t)&&!$(t)&&Object.getPrototypeOf(t)==Object.prototype}function M(t){return"number"==typeof t.length}function k(t){return s.call(t,function(t){return null!=t})}function z(t){return t.length>0?n.fn.concat.apply([],t):t}function F(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function q(t){return t in f?f[t]:f[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function H(t,e){return"number"!=typeof e||c[F(t)]?e:e+"px"}function I(t){var e,n;return u[t]||(e=a.createElement(t),a.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),u[t]=n),u[t]}function V(t){return"children"in t?o.call(t.children):n.map(t.childNodes,function(t){return 1==t.nodeType?t:void 0})}function U(n,i,r){for(e in i)r&&(R(i[e])||A(i[e]))?(R(i[e])&&!R(n[e])&&(n[e]={}),A(i[e])&&!A(n[e])&&(n[e]=[]),U(n[e],i[e],r)):i[e]!==t&&(n[e]=i[e])}function B(t,e){return null==e?n(t):n(t).filter(e)}function J(t,e,n,i){return Z(e)?e.call(t,n,i):e}function X(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}function W(e,n){var i=e.className,r=i&&i.baseVal!==t;return n===t?r?i.baseVal:i:void(r?i.baseVal=n:e.className=n)}function Y(t){var e;try{return t?"true"==t||("false"==t?!1:"null"==t?null:/^0/.test(t)||isNaN(e=Number(t))?/^[\[\{]/.test(t)?n.parseJSON(t):t:e):t}catch(i){return t}}function G(t,e){e(t);for(var n in t.childNodes)G(t.childNodes[n],e)}var t,e,n,i,C,N,r=[],o=r.slice,s=r.filter,a=window.document,u={},f={},c={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},l=/^\s*<(\w+|!)[^>]*>/,h=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,p=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,d=/^(?:body|html)$/i,m=/([A-Z])/g,g=["val","css","html","text","data","width","height","offset"],v=["after","prepend","before","append"],y=a.createElement("table"),x=a.createElement("tr"),b={tr:a.createElement("tbody"),tbody:y,thead:y,tfoot:y,td:x,th:x,"*":a.createElement("div")},w=/complete|loaded|interactive/,E=/^[\w-]*$/,j={},T=j.toString,S={},O=a.createElement("div"),P={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},A=Array.isArray||function(t){return t instanceof Array};return S.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var i,r=t.parentNode,o=!r;return o&&(r=O).appendChild(t),i=~S.qsa(r,e).indexOf(t),o&&O.removeChild(t),i},C=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},N=function(t){return s.call(t,function(e,n){return t.indexOf(e)==n})},S.fragment=function(e,i,r){var s,u,f;return h.test(e)&&(s=n(a.createElement(RegExp.$1))),s||(e.replace&&(e=e.replace(p,"<$1></$2>")),i===t&&(i=l.test(e)&&RegExp.$1),i in b||(i="*"),f=b[i],f.innerHTML=""+e,s=n.each(o.call(f.childNodes),function(){f.removeChild(this)})),R(r)&&(u=n(s),n.each(r,function(t,e){g.indexOf(t)>-1?u[t](e):u.attr(t,e)})),s},S.Z=function(t,e){return t=t||[],t.__proto__=n.fn,t.selector=e||"",t},S.isZ=function(t){return t instanceof S.Z},S.init=function(e,i){var r;if(!e)return S.Z();if("string"==typeof e)if(e=e.trim(),"<"==e[0]&&l.test(e))r=S.fragment(e,RegExp.$1,i),e=null;else{if(i!==t)return n(i).find(e);r=S.qsa(a,e)}else{if(Z(e))return n(a).ready(e);if(S.isZ(e))return e;if(A(e))r=k(e);else if(D(e))r=[e],e=null;else if(l.test(e))r=S.fragment(e.trim(),RegExp.$1,i),e=null;else{if(i!==t)return n(i).find(e);r=S.qsa(a,e)}}return S.Z(r,e)},n=function(t,e){return S.init(t,e)},n.extend=function(t){var e,n=o.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach(function(n){U(t,n,e)}),t},S.qsa=function(t,e){var n,i="#"==e[0],r=!i&&"."==e[0],s=i||r?e.slice(1):e,a=E.test(s);return _(t)&&a&&i?(n=t.getElementById(s))?[n]:[]:1!==t.nodeType&&9!==t.nodeType?[]:o.call(a&&!i?r?t.getElementsByClassName(s):t.getElementsByTagName(e):t.querySelectorAll(e))},n.contains=function(t,e){return t!==e&&t.contains(e)},n.type=L,n.isFunction=Z,n.isWindow=$,n.isArray=A,n.isPlainObject=R,n.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},n.inArray=function(t,e,n){return r.indexOf.call(e,t,n)},n.camelCase=C,n.trim=function(t){return null==t?"":String.prototype.trim.call(t)},n.uuid=0,n.support={},n.expr={},n.map=function(t,e){var n,r,o,i=[];if(M(t))for(r=0;r<t.length;r++)n=e(t[r],r),null!=n&&i.push(n);else for(o in t)n=e(t[o],o),null!=n&&i.push(n);return z(i)},n.each=function(t,e){var n,i;if(M(t)){for(n=0;n<t.length;n++)if(e.call(t[n],n,t[n])===!1)return t}else for(i in t)if(e.call(t[i],i,t[i])===!1)return t;return t},n.grep=function(t,e){return s.call(t,e)},window.JSON&&(n.parseJSON=JSON.parse),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(t,e){j["[object "+e+"]"]=e.toLowerCase()}),n.fn={forEach:r.forEach,reduce:r.reduce,push:r.push,sort:r.sort,indexOf:r.indexOf,concat:r.concat,map:function(t){return n(n.map(this,function(e,n){return t.call(e,n,e)}))},slice:function(){return n(o.apply(this,arguments))},ready:function(t){return w.test(a.readyState)&&a.body?t(n):a.addEventListener("DOMContentLoaded",function(){t(n)},!1),this},get:function(e){return e===t?o.call(this):this[e>=0?e:e+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return r.every.call(this,function(e,n){return t.call(e,n,e)!==!1}),this},filter:function(t){return Z(t)?this.not(this.not(t)):n(s.call(this,function(e){return S.matches(e,t)}))},add:function(t,e){return n(N(this.concat(n(t,e))))},is:function(t){return this.length>0&&S.matches(this[0],t)},not:function(e){var i=[];if(Z(e)&&e.call!==t)this.each(function(t){e.call(this,t)||i.push(this)});else{var r="string"==typeof e?this.filter(e):M(e)&&Z(e.item)?o.call(e):n(e);this.forEach(function(t){r.indexOf(t)<0&&i.push(t)})}return n(i)},has:function(t){return this.filter(function(){return D(t)?n.contains(this,t):n(this).find(t).size()})},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!D(t)?t:n(t)},last:function(){var t=this[this.length-1];return t&&!D(t)?t:n(t)},find:function(t){var e,i=this;return e="object"==typeof t?n(t).filter(function(){var t=this;return r.some.call(i,function(e){return n.contains(e,t)})}):1==this.length?n(S.qsa(this[0],t)):this.map(function(){return S.qsa(this,t)})},closest:function(t,e){var i=this[0],r=!1;for("object"==typeof t&&(r=n(t));i&&!(r?r.indexOf(i)>=0:S.matches(i,t));)i=i!==e&&!_(i)&&i.parentNode;return n(i)},parents:function(t){for(var e=[],i=this;i.length>0;)i=n.map(i,function(t){return(t=t.parentNode)&&!_(t)&&e.indexOf(t)<0?(e.push(t),t):void 0});return B(e,t)},parent:function(t){return B(N(this.pluck("parentNode")),t)},children:function(t){return B(this.map(function(){return V(this)}),t)},contents:function(){return this.map(function(){return o.call(this.childNodes)})},siblings:function(t){return B(this.map(function(t,e){return s.call(V(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return n.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=I(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var e=Z(t);if(this[0]&&!e)var i=n(t).get(0),r=i.parentNode||this.length>1;return this.each(function(o){n(this).wrapAll(e?t.call(this,o):r?i.cloneNode(!0):i)})},wrapAll:function(t){if(this[0]){n(this[0]).before(t=n(t));for(var e;(e=t.children()).length;)t=e.first();n(t).append(this)}return this},wrapInner:function(t){var e=Z(t);return this.each(function(i){var r=n(this),o=r.contents(),s=e?t.call(this,i):t;o.length?o.wrapAll(s):r.append(s)})},unwrap:function(){return this.parent().each(function(){n(this).replaceWith(n(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(e){return this.each(function(){var i=n(this);(e===t?"none"==i.css("display"):e)?i.show():i.hide()})},prev:function(t){return n(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return n(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0===arguments.length?this.length>0?this[0].innerHTML:null:this.each(function(e){var i=this.innerHTML;n(this).empty().append(J(this,t,e,i))})},text:function(e){return 0===arguments.length?this.length>0?this[0].textContent:null:this.each(function(){this.textContent=e===t?"":""+e})},attr:function(n,i){var r;return"string"==typeof n&&i===t?0==this.length||1!==this[0].nodeType?t:"value"==n&&"INPUT"==this[0].nodeName?this.val():!(r=this[0].getAttribute(n))&&n in this[0]?this[0][n]:r:this.each(function(t){if(1===this.nodeType)if(D(n))for(e in n)X(this,e,n[e]);else X(this,n,J(this,i,t,this.getAttribute(n)))})},removeAttr:function(t){return this.each(function(){1===this.nodeType&&X(this,t)})},prop:function(e,n){return e=P[e]||e,n===t?this[0]&&this[0][e]:this.each(function(t){this[e]=J(this,n,t,this[e])})},data:function(e,n){var i=this.attr("data-"+e.replace(m,"-$1").toLowerCase(),n);return null!==i?Y(i):t},val:function(t){return 0===arguments.length?this[0]&&(this[0].multiple?n(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value):this.each(function(e){this.value=J(this,t,e,this.value)})},offset:function(t){if(t)return this.each(function(e){var i=n(this),r=J(this,t,e,i.offset()),o=i.offsetParent().offset(),s={top:r.top-o.top,left:r.left-o.left};"static"==i.css("position")&&(s.position="relative"),i.css(s)});if(0==this.length)return null;var e=this[0].getBoundingClientRect();return{left:e.left+window.pageXOffset,top:e.top+window.pageYOffset,width:Math.round(e.width),height:Math.round(e.height)}},css:function(t,i){if(arguments.length<2){var r=this[0],o=getComputedStyle(r,"");if(!r)return;if("string"==typeof t)return r.style[C(t)]||o.getPropertyValue(t);if(A(t)){var s={};return n.each(A(t)?t:[t],function(t,e){s[e]=r.style[C(e)]||o.getPropertyValue(e)}),s}}var a="";if("string"==L(t))i||0===i?a=F(t)+":"+H(t,i):this.each(function(){this.style.removeProperty(F(t))});else for(e in t)t[e]||0===t[e]?a+=F(e)+":"+H(e,t[e])+";":this.each(function(){this.style.removeProperty(F(e))});return this.each(function(){this.style.cssText+=";"+a})},index:function(t){return t?this.indexOf(n(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return t?r.some.call(this,function(t){return this.test(W(t))},q(t)):!1},addClass:function(t){return t?this.each(function(e){i=[];var r=W(this),o=J(this,t,e,r);o.split(/\s+/g).forEach(function(t){n(this).hasClass(t)||i.push(t)},this),i.length&&W(this,r+(r?" ":"")+i.join(" "))}):this},removeClass:function(e){return this.each(function(n){return e===t?W(this,""):(i=W(this),J(this,e,n,i).split(/\s+/g).forEach(function(t){i=i.replace(q(t)," ")}),void W(this,i.trim()))})},toggleClass:function(e,i){return e?this.each(function(r){var o=n(this),s=J(this,e,r,W(this));s.split(/\s+/g).forEach(function(e){(i===t?!o.hasClass(e):i)?o.addClass(e):o.removeClass(e)})}):this},scrollTop:function(e){if(this.length){var n="scrollTop"in this[0];return e===t?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=e}:function(){this.scrollTo(this.scrollX,e)})}},scrollLeft:function(e){if(this.length){var n="scrollLeft"in this[0];return e===t?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=e}:function(){this.scrollTo(e,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),i=this.offset(),r=d.test(e[0].nodeName)?{top:0,left:0}:e.offset();return i.top-=parseFloat(n(t).css("margin-top"))||0,i.left-=parseFloat(n(t).css("margin-left"))||0,r.top+=parseFloat(n(e[0]).css("border-top-width"))||0,r.left+=parseFloat(n(e[0]).css("border-left-width"))||0,{top:i.top-r.top,left:i.left-r.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||a.body;t&&!d.test(t.nodeName)&&"static"==n(t).css("position");)t=t.offsetParent;return t})}},n.fn.detach=n.fn.remove,["width","height"].forEach(function(e){var i=e.replace(/./,function(t){return t[0].toUpperCase()});n.fn[e]=function(r){var o,s=this[0];return r===t?$(s)?s["inner"+i]:_(s)?s.documentElement["scroll"+i]:(o=this.offset())&&o[e]:this.each(function(t){s=n(this),s.css(e,J(this,r,t,s[e]()))})}}),v.forEach(function(t,e){var i=e%2;n.fn[t]=function(){var t,o,r=n.map(arguments,function(e){return t=L(e),"object"==t||"array"==t||null==e?e:S.fragment(e)}),s=this.length>1;return r.length<1?this:this.each(function(t,a){o=i?a:a.parentNode,a=0==e?a.nextSibling:1==e?a.firstChild:2==e?a:null,r.forEach(function(t){if(s)t=t.cloneNode(!0);else if(!o)return n(t).remove();G(o.insertBefore(t,a),function(t){null==t.nodeName||"SCRIPT"!==t.nodeName.toUpperCase()||t.type&&"text/javascript"!==t.type||t.src||window.eval.call(window,t.innerHTML)})})})},n.fn[i?t+"To":"insert"+(e?"Before":"After")]=function(e){return n(e)[t](this),this}}),S.Z.prototype=n.fn,S.uniq=N,S.deserializeValue=Y,n.zepto=S,n}();window.Zepto=Zepto,void 0===window.$&&(window.$=Zepto),function(t){function l(t){return t._zid||(t._zid=e++)}function h(t,e,n,i){if(e=p(e),e.ns)var r=d(e.ns);return(s[l(t)]||[]).filter(function(t){return!(!t||e.e&&t.e!=e.e||e.ns&&!r.test(t.ns)||n&&l(t.fn)!==l(n)||i&&t.sel!=i)})}function p(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function d(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function m(t,e){return t.del&&!u&&t.e in f||!!e}function g(t){return c[t]||u&&f[t]||t}function v(e,i,r,o,a,u,f){var h=l(e),d=s[h]||(s[h]=[]);i.split(/\s/).forEach(function(i){if("ready"==i)return t(document).ready(r);var s=p(i);s.fn=r,s.sel=a,s.e in c&&(r=function(e){var n=e.relatedTarget;return!n||n!==this&&!t.contains(this,n)?s.fn.apply(this,arguments):void 0}),s.del=u;var l=u||r;s.proxy=function(t){if(t=j(t),!t.isImmediatePropagationStopped()){t.data=o;var i=l.apply(e,t._args==n?[t]:[t].concat(t._args));return i===!1&&(t.preventDefault(),t.stopPropagation()),i}},s.i=d.length,d.push(s),"addEventListener"in e&&e.addEventListener(g(s.e),s.proxy,m(s,f))})}function y(t,e,n,i,r){var o=l(t);(e||"").split(/\s/).forEach(function(e){h(t,e,n,i).forEach(function(e){delete s[o][e.i],"removeEventListener"in t&&t.removeEventListener(g(e.e),e.proxy,m(e,r))})})}function j(e,i){return(i||!e.isDefaultPrevented)&&(i||(i=e),t.each(E,function(t,n){var r=i[t];e[t]=function(){return this[n]=x,r&&r.apply(i,arguments)},e[n]=b}),(i.defaultPrevented!==n?i.defaultPrevented:"returnValue"in i?i.returnValue===!1:i.getPreventDefault&&i.getPreventDefault())&&(e.isDefaultPrevented=x)),e}function T(t){var e,i={originalEvent:t};for(e in t)w.test(e)||t[e]===n||(i[e]=t[e]);return j(i,t)}var n,e=1,i=Array.prototype.slice,r=t.isFunction,o=function(t){return"string"==typeof t},s={},a={},u="onfocusin"in window,f={focus:"focusin",blur:"focusout"},c={mouseenter:"mouseover",mouseleave:"mouseout"};a.click=a.mousedown=a.mouseup=a.mousemove="MouseEvents",t.event={add:v,remove:y},t.proxy=function(e,n){if(r(e)){var i=function(){return e.apply(n,arguments)};return i._zid=l(e),i}if(o(n))return t.proxy(e[n],e);throw new TypeError("expected function")},t.fn.bind=function(t,e,n){return this.on(t,e,n)},t.fn.unbind=function(t,e){return this.off(t,e)},t.fn.one=function(t,e,n,i){return this.on(t,e,n,i,1)};var x=function(){return!0},b=function(){return!1},w=/^([A-Z]|returnValue$|layer[XY]$)/,E={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};t.fn.delegate=function(t,e,n){return this.on(e,t,n)},t.fn.undelegate=function(t,e,n){return this.off(e,t,n)},t.fn.live=function(e,n){return t(document.body).delegate(this.selector,e,n),this},t.fn.die=function(e,n){return t(document.body).undelegate(this.selector,e,n),this},t.fn.on=function(e,s,a,u,f){var c,l,h=this;return e&&!o(e)?(t.each(e,function(t,e){h.on(t,s,a,e,f)}),h):(o(s)||r(u)||u===!1||(u=a,a=s,s=n),(r(a)||a===!1)&&(u=a,a=n),u===!1&&(u=b),h.each(function(n,r){f&&(c=function(t){return y(r,t.type,u),u.apply(this,arguments)}),s&&(l=function(e){var n,o=t(e.target).closest(s,r).get(0);return o&&o!==r?(n=t.extend(T(e),{currentTarget:o,liveFired:r}),(c||u).apply(o,[n].concat(i.call(arguments,1)))):void 0}),v(r,e,u,a,s,l||c)}))},t.fn.off=function(e,i,s){var a=this;return e&&!o(e)?(t.each(e,function(t,e){a.off(t,i,e)}),a):(o(i)||r(s)||s===!1||(s=i,i=n),s===!1&&(s=b),a.each(function(){y(this,e,s,i)}))},t.fn.trigger=function(e,n){return e=o(e)||t.isPlainObject(e)?t.Event(e):j(e),e._args=n,this.each(function(){"dispatchEvent"in this?this.dispatchEvent(e):t(this).triggerHandler(e,n)})},t.fn.triggerHandler=function(e,n){var i,r;return this.each(function(s,a){i=T(o(e)?t.Event(e):e),i._args=n,i.target=a,t.each(h(a,e.type||e),function(t,e){return r=e.proxy(i),i.isImmediatePropagationStopped()?!1:void 0})}),r},"focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(e){t.fn[e]=function(t){return t?this.bind(e,t):this.trigger(e)}}),["focus","blur"].forEach(function(e){t.fn[e]=function(t){return t?this.bind(e,t):this.each(function(){try{this[e]()}catch(t){}}),this}}),t.Event=function(t,e){o(t)||(e=t,t=e.type);var n=document.createEvent(a[t]||"Events"),i=!0;if(e)for(var r in e)"bubbles"==r?i=!!e[r]:n[r]=e[r];return n.initEvent(t,i,!0),j(n)}}(Zepto),function(t){function l(e,n,i){var r=t.Event(n);return t(e).trigger(r,i),!r.isDefaultPrevented()}function h(t,e,i,r){return t.global?l(e||n,i,r):void 0}function p(e){e.global&&0===t.active++&&h(e,null,"ajaxStart")}function d(e){e.global&&!--t.active&&h(e,null,"ajaxStop")}function m(t,e){var n=e.context;return e.beforeSend.call(n,t,e)===!1||h(e,n,"ajaxBeforeSend",[t,e])===!1?!1:void h(e,n,"ajaxSend",[t,e])}function g(t,e,n,i){var r=n.context,o="success";n.success.call(r,t,o,e),i&&i.resolveWith(r,[t,o,e]),h(n,r,"ajaxSuccess",[e,n,t]),y(o,e,n)}function v(t,e,n,i,r){var o=i.context;i.error.call(o,n,e,t),r&&r.rejectWith(o,[n,e,t]),h(i,o,"ajaxError",[n,i,t||e]),y(e,n,i)}function y(t,e,n){var i=n.context;n.complete.call(i,e,t),h(n,i,"ajaxComplete",[e,n]),d(n)}function x(){}function b(t){return t&&(t=t.split(";",2)[0]),t&&(t==f?"html":t==u?"json":s.test(t)?"script":a.test(t)&&"xml")||"text"}function w(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function E(e){e.processData&&e.data&&"string"!=t.type(e.data)&&(e.data=t.param(e.data,e.traditional)),!e.data||e.type&&"GET"!=e.type.toUpperCase()||(e.url=w(e.url,e.data),e.data=void 0)}function j(e,n,i,r){return t.isFunction(n)&&(r=i,i=n,n=void 0),t.isFunction(i)||(r=i,i=void 0),{url:e,data:n,success:i,dataType:r}}function S(e,n,i,r){var o,s=t.isArray(n),a=t.isPlainObject(n);t.each(n,function(n,u){o=t.type(u),r&&(n=i?r:r+"["+(a||"object"==o||"array"==o?n:"")+"]"),!r&&s?e.add(u.name,u.value):"array"==o||!i&&"object"==o?S(e,u,i,n):e.add(n,u)})}var i,r,e=0,n=window.document,o=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,s=/^(?:text|application)\/javascript/i,a=/^(?:text|application)\/xml/i,u="application/json",f="text/html",c=/^\s*$/;t.active=0,t.ajaxJSONP=function(i,r){if(!("type"in i))return t.ajax(i);var f,h,o=i.jsonpCallback,s=(t.isFunction(o)?o():o)||"jsonp"+ ++e,a=n.createElement("script"),u=window[s],c=function(e){t(a).triggerHandler("error",e||"abort")},l={abort:c};return r&&r.promise(l),t(a).on("load error",function(e,n){clearTimeout(h),t(a).off().remove(),"error"!=e.type&&f?g(f[0],l,i,r):v(null,n||"error",l,i,r),window[s]=u,f&&t.isFunction(u)&&u(f[0]),u=f=void 0}),m(l,i)===!1?(c("abort"),l):(window[s]=function(){f=arguments},a.src=i.url.replace(/\?(.+)=\?/,"?$1="+s),n.head.appendChild(a),i.timeout>0&&(h=setTimeout(function(){c("timeout")},i.timeout)),l)},t.ajaxSettings={type:"GET",beforeSend:x,success:x,error:x,complete:x,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:u,xml:"application/xml, text/xml",html:f,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0},t.ajax=function(e){var n=t.extend({},e||{}),o=t.Deferred&&t.Deferred();for(i in t.ajaxSettings)void 0===n[i]&&(n[i]=t.ajaxSettings[i]);p(n),n.crossDomain||(n.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(n.url)&&RegExp.$2!=window.location.host),n.url||(n.url=window.location.toString()),E(n),n.cache===!1&&(n.url=w(n.url,"_="+Date.now()));var s=n.dataType,a=/\?.+=\?/.test(n.url);if("jsonp"==s||a)return a||(n.url=w(n.url,n.jsonp?n.jsonp+"=?":n.jsonp===!1?"":"callback=?")),t.ajaxJSONP(n,o);var j,u=n.accepts[s],f={},l=function(t,e){f[t.toLowerCase()]=[t,e]},h=/^([\w-]+:)\/\//.test(n.url)?RegExp.$1:window.location.protocol,d=n.xhr(),y=d.setRequestHeader;if(o&&o.promise(d),n.crossDomain||l("X-Requested-With","XMLHttpRequest"),l("Accept",u||"*/*"),(u=n.mimeType||u)&&(u.indexOf(",")>-1&&(u=u.split(",",2)[0]),d.overrideMimeType&&d.overrideMimeType(u)),(n.contentType||n.contentType!==!1&&n.data&&"GET"!=n.type.toUpperCase())&&l("Content-Type",n.contentType||"application/x-www-form-urlencoded"),n.headers)for(r in n.headers)l(r,n.headers[r]);if(d.setRequestHeader=l,d.onreadystatechange=function(){if(4==d.readyState){d.onreadystatechange=x,clearTimeout(j);var e,i=!1;if(d.status>=200&&d.status<300||304==d.status||0==d.status&&"file:"==h){s=s||b(n.mimeType||d.getResponseHeader("content-type")),e=d.responseText;try{"script"==s?(1,eval)(e):"xml"==s?e=d.responseXML:"json"==s&&(e=c.test(e)?null:t.parseJSON(e))}catch(r){i=r}i?v(i,"parsererror",d,n,o):g(e,d,n,o)}else v(d.statusText||null,d.status?"error":"abort",d,n,o)}},m(d,n)===!1)return d.abort(),v(null,"abort",d,n,o),d;if(n.xhrFields)for(r in n.xhrFields)d[r]=n.xhrFields[r];var T="async"in n?n.async:!0;d.open(n.type,n.url,T,n.username,n.password);for(r in f)y.apply(d,f[r]);return n.timeout>0&&(j=setTimeout(function(){d.onreadystatechange=x,d.abort(),v(null,"timeout",d,n,o)},n.timeout)),d.send(n.data?n.data:null),d},t.get=function(){return t.ajax(j.apply(null,arguments))},t.post=function(){var e=j.apply(null,arguments);return e.type="POST",t.ajax(e)},t.getJSON=function(){var e=j.apply(null,arguments);return e.dataType="json",t.ajax(e)},t.fn.load=function(e,n,i){if(!this.length)return this;var a,r=this,s=e.split(/\s/),u=j(e,n,i),f=u.success;return s.length>1&&(u.url=s[0],a=s[1]),u.success=function(e){r.html(a?t("<div>").html(e.replace(o,"")).find(a):e),f&&f.apply(r,arguments)},t.ajax(u),this};var T=encodeURIComponent;t.param=function(t,e){var n=[];return n.add=function(t,e){this.push(T(t)+"="+T(e))},S(n,t,e),n.join("&").replace(/%20/g,"+")}}(Zepto),function(t){t.fn.serializeArray=function(){var n,e=[];return t([].slice.call(this.get(0).elements)).each(function(){n=t(this);var i=n.attr("type");"fieldset"!=this.nodeName.toLowerCase()&&!this.disabled&&"submit"!=i&&"reset"!=i&&"button"!=i&&("radio"!=i&&"checkbox"!=i||this.checked)&&e.push({name:n.attr("name"),value:n.val()})}),e},t.fn.serialize=function(){var t=[];return this.serializeArray().forEach(function(e){t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.value))}),t.join("&")},t.fn.submit=function(e){if(e)this.bind("submit",e);else if(this.length){var n=t.Event("submit");this.eq(0).trigger(n),n.isDefaultPrevented()||this.get(0).submit()}return this}}(Zepto),function(t){"__proto__"in{}||t.extend(t.zepto,{Z:function(e,n){return e=e||[],t.extend(e,t.fn),e.selector=n||"",e.__Z=!0,e},isZ:function(e){return"array"===t.type(e)&&"__Z"in e}});try{getComputedStyle(void 0)}catch(e){var n=getComputedStyle;window.getComputedStyle=function(t){try{return n(t)}catch(e){return null}}}}(Zepto);
  1550. </script>
  1551.     <script>/*!
  1552.  * clipboard.js v1.5.3
  1553.  * https://zenorocha.github.io/clipboard.js
  1554.  *
  1555.  * Licensed MIT Β© Zeno Rocha
  1556.  */
  1557. !function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Clipboard=t()}}(function(){var t,e,n;return function t(e,n,r){function o(a,c){if(!n[a]){if(!e[a]){var s="function"==typeof require&&require;if(!c&&s)return s(a,!0);if(i)return i(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var l=n[a]={exports:{}};e[a][0].call(l.exports,function(t){var n=e[a][1][t];return o(n?n:t)},l,l.exports,t,e,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(t,e,n){var r=t("matches-selector");e.exports=function(t,e,n){for(var o=n?t:t.parentNode;o&&o!==document;){if(r(o,e))return o;o=o.parentNode}}},{"matches-selector":2}],2:[function(t,e,n){function r(t,e){if(i)return i.call(t,e);for(var n=t.parentNode.querySelectorAll(e),r=0;r<n.length;++r)if(n[r]==t)return!0;return!1}var o=Element.prototype,i=o.matchesSelector||o.webkitMatchesSelector||o.mozMatchesSelector||o.msMatchesSelector||o.oMatchesSelector;e.exports=r},{}],3:[function(t,e,n){function r(t,e,n,r){var i=o.apply(this,arguments);return t.addEventListener(n,i),{destroy:function(){t.removeEventListener(n,i)}}}function o(t,e,n,r){return function(n){var o=i(n.target,e,!0);o&&(Object.defineProperty(n,"target",{value:o}),r.call(t,n))}}var i=t("closest");e.exports=r},{closest:1}],4:[function(t,e,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.function=function(t){var e=Object.prototype.toString.call(t);return"[object Function]"===e}},{}],5:[function(t,e,n){function r(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!c.string(e))throw new TypeError("Second argument must be a String");if(!c.function(n))throw new TypeError("Third argument must be a Function");if(c.node(t))return o(t,e,n);if(c.nodeList(t))return i(t,e,n);if(c.string(t))return a(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function o(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}function i(t,e,n){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,n)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,n)})}}}function a(t,e,n){return s(document.body,t,e,n)}var c=t("./is"),s=t("delegate");e.exports=r},{"./is":4,delegate:3}],6:[function(t,e,n){function r(t){var e;if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName)t.select(),e=t.value;else{var n=window.getSelection(),r=document.createRange();r.selectNodeContents(t),n.removeAllRanges(),n.addRange(r),e=n.toString()}return e}e.exports=r},{}],7:[function(t,e,n){function r(){}r.prototype={on:function(t,e,n){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){function r(){o.off(t,r),e.apply(n,arguments)}var o=this;return r._=e,this.on(t,r,n)},emit:function(t){var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),r=0,o=n.length;for(r;o>r;r++)n[r].fn.apply(n[r].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),r=n[t],o=[];if(r&&e)for(var i=0,a=r.length;a>i;i++)r[i].fn!==e&&r[i].fn._!==e&&o.push(r[i]);return o.length?n[t]=o:delete n[t],this}},e.exports=r},{}],8:[function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}n.__esModule=!0;var i=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),a=t("select"),c=r(a),s=function(){function t(e){o(this,t),this.resolveOptions(e),this.initSelection()}return t.prototype.resolveOptions=function t(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.action=e.action,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""},t.prototype.initSelection=function t(){if(this.text&&this.target)throw new Error('Multiple attributes declared, use either "target" or "text"');if(this.text)this.selectFake();else{if(!this.target)throw new Error('Missing required attributes, use either "target" or "text"');this.selectTarget()}},t.prototype.selectFake=function t(){var e=this;this.removeFake(),this.fakeHandler=document.body.addEventListener("click",function(){return e.removeFake()}),this.fakeElem=document.createElement("textarea"),this.fakeElem.style.position="absolute",this.fakeElem.style.left="-9999px",this.fakeElem.style.top=(window.pageYOffset||document.documentElement.scrollTop)+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,document.body.appendChild(this.fakeElem),this.selectedText=c.default(this.fakeElem),this.copyText()},t.prototype.removeFake=function t(){this.fakeHandler&&(document.body.removeEventListener("click"),this.fakeHandler=null),this.fakeElem&&(document.body.removeChild(this.fakeElem),this.fakeElem=null)},t.prototype.selectTarget=function t(){this.selectedText=c.default(this.target),this.copyText()},t.prototype.copyText=function t(){var e=void 0;try{e=document.execCommand(this.action)}catch(n){e=!1}this.handleResult(e)},t.prototype.handleResult=function t(e){e?this.emitter.emit("success",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)}):this.emitter.emit("error",{action:this.action,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})},t.prototype.clearSelection=function t(){this.target&&this.target.blur(),window.getSelection().removeAllRanges()},t.prototype.destroy=function t(){this.removeFake()},i(t,[{key:"action",set:function t(){var e=arguments.length<=0||void 0===arguments[0]?"copy":arguments[0];if(this._action=e,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function t(){return this._action}},{key:"target",set:function t(e){if(void 0!==e){if(!e||"object"!=typeof e||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');this._target=e}},get:function t(){return this._target}}]),t}();n.default=s,e.exports=n.default},{select:6}],9:[function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function a(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}n.__esModule=!0;var c=t("./clipboard-action"),s=r(c),u=t("tiny-emitter"),l=r(u),f=t("good-listener"),d=r(f),h=function(t){function e(n,r){o(this,e),t.call(this),this.resolveOptions(r),this.listenClick(n)}return i(e,t),e.prototype.resolveOptions=function t(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText},e.prototype.listenClick=function t(e){var n=this;this.listener=d.default(e,"click",function(t){return n.onClick(t)})},e.prototype.onClick=function t(e){this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new s.default({action:this.action(e.target),target:this.target(e.target),text:this.text(e.target),trigger:e.target,emitter:this})},e.prototype.defaultAction=function t(e){return a("action",e)},e.prototype.defaultTarget=function t(e){var n=a("target",e);return n?document.querySelector(n):void 0},e.prototype.defaultText=function t(e){return a("text",e)},e.prototype.destroy=function t(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)},e}(l.default);n.default=h,e.exports=n.default},{"./clipboard-action":8,"good-listener":5,"tiny-emitter":7}]},{},[9])(9)});</script>
  1558.     <script>Zepto(function($) {
  1559.   var $leftPanel      = $('.left-panel');
  1560.   var $frameContainer = $('.frames-container');
  1561.   var $appFramesTab   = $('#application-frames-tab');
  1562.   var $allFramesTab   = $('#all-frames-tab');
  1563.   var $container      = $('.details-container');
  1564.   var $activeLine     = $frameContainer.find('.frame.active');
  1565.   var $activeFrame    = $container.find('.frame-code.active');
  1566.   var $ajaxEditors    = $('.editor-link[data-ajax]');
  1567.   var $header         = $('header');
  1568.  
  1569.   $header.on('mouseenter', function () {
  1570.     if ($header.find('.exception').height() >= 145) {
  1571.       $header.addClass('header-expand');
  1572.     }
  1573.   });
  1574.   $header.on('mouseleave', function () {
  1575.     $header.removeClass('header-expand');
  1576.   });
  1577.  
  1578.   /*
  1579.    * add prettyprint classes to our current active codeblock
  1580.    * run prettyPrint() to highlight the active code
  1581.    * scroll to the line when prettyprint is done
  1582.    * highlight the current line
  1583.    */
  1584.   var renderCurrentCodeblock = function(id) {
  1585.  
  1586.     // remove previous codeblocks so we only render the active one
  1587.     $('.code-block').removeClass('prettyprint');
  1588.  
  1589.     // pass the id in when we can for speed
  1590.     if (typeof(id) === 'undefined' || typeof(id) === 'object') {
  1591.       var id = /frame\-line\-([\d]*)/.exec($activeLine.attr('id'))[1];
  1592.     }
  1593.  
  1594.     $('#frame-code-linenums-' + id).addClass('prettyprint');
  1595.     $('#frame-code-args-' + id).addClass('prettyprint');
  1596.  
  1597.     prettyPrint(highlightCurrentLine);
  1598.  
  1599.   }
  1600.  
  1601.   /*
  1602.    * Highlight the active and neighboring lines for the current frame
  1603.    * Adjust the offset to make sure that line is veritcally centered
  1604.    */
  1605.  
  1606.   var highlightCurrentLine = function() {
  1607.     var activeLineNumber = +($activeLine.find('.frame-line').text());
  1608.     var $lines           = $activeFrame.find('.linenums li');
  1609.     var firstLine        = +($lines.first().val());
  1610.  
  1611.     // We show more code than needed, purely for proper syntax highlighting
  1612.     // Let’s hide a big chunk of that code and then scroll the remaining block
  1613.     $activeFrame.find('.code-block').first().css({
  1614.       maxHeight: 345,
  1615.       overflow: 'hidden',
  1616.     });
  1617.  
  1618.     var $offset = $($lines[activeLineNumber - firstLine - 10]);
  1619.     if ($offset.length > 0) {
  1620.       $offset[0].scrollIntoView();
  1621.     }
  1622.  
  1623.     $($lines[activeLineNumber - firstLine - 1]).addClass('current');
  1624.     $($lines[activeLineNumber - firstLine]).addClass('current active');
  1625.     $($lines[activeLineNumber - firstLine + 1]).addClass('current');
  1626.  
  1627.     $container.scrollTop(0);
  1628.  
  1629.   }
  1630.  
  1631.   /*
  1632.    * click handler for loading codeblocks
  1633.    */
  1634.  
  1635.   $frameContainer.on('click', '.frame', function() {
  1636.  
  1637.     var $this  = $(this);
  1638.     var id     = /frame\-line\-([\d]*)/.exec($this.attr('id'))[1];
  1639.     var $codeFrame = $('#frame-code-' + id);
  1640.  
  1641.     if ($codeFrame) {
  1642.  
  1643.       $activeLine.removeClass('active');
  1644.       $activeFrame.removeClass('active');
  1645.  
  1646.       $this.addClass('active');
  1647.       $codeFrame.addClass('active');
  1648.  
  1649.       $activeLine  = $this;
  1650.       $activeFrame = $codeFrame;
  1651.  
  1652.       renderCurrentCodeblock(id);
  1653.  
  1654.     }
  1655.  
  1656.   });
  1657.  
  1658.   var clipboard = new Clipboard('.clipboard');
  1659.   var showTooltip = function(elem, msg) {
  1660.     elem.setAttribute('class', 'clipboard tooltipped tooltipped-s');
  1661.     elem.setAttribute('aria-label', msg);
  1662.   };
  1663.  
  1664.   clipboard.on('success', function(e) {
  1665.       e.clearSelection();
  1666.  
  1667.       showTooltip(e.trigger, 'Copied!');
  1668.   });
  1669.  
  1670.   clipboard.on('error', function(e) {
  1671.       showTooltip(e.trigger, fallbackMessage(e.action));
  1672.   });
  1673.  
  1674.   var btn = document.querySelector('.clipboard');
  1675.  
  1676.   btn.addEventListener('mouseleave', function(e) {
  1677.     e.currentTarget.setAttribute('class', 'clipboard');
  1678.     e.currentTarget.removeAttribute('aria-label');
  1679.   });
  1680.  
  1681.   function fallbackMessage(action) {
  1682.     var actionMsg = '';
  1683.     var actionKey = (action === 'cut' ? 'X' : 'C');
  1684.  
  1685.     if (/Mac/i.test(navigator.userAgent)) {
  1686.         actionMsg = 'Press ⌘-' + actionKey + ' to ' + action;
  1687.     } else {
  1688.         actionMsg = 'Press Ctrl-' + actionKey + ' to ' + action;
  1689.     }
  1690.  
  1691.     return actionMsg;
  1692.   }
  1693.  
  1694.   function scrollIntoView($node, $parent) {
  1695.     var nodeOffset = $node.offset();
  1696.     var nodeTop = nodeOffset.top;
  1697.     var nodeBottom = nodeTop + nodeOffset.height;
  1698.     var parentScrollTop = $parent.scrollTop();
  1699.     var parentHeight = $parent.height();
  1700.  
  1701.     if (nodeTop < 0) {
  1702.      $parent.scrollTop(parentScrollTop + nodeTop);
  1703.    } else if (nodeBottom > parentHeight) {
  1704.       $parent.scrollTop(parentScrollTop + nodeBottom - parentHeight);
  1705.     }
  1706.   }
  1707.  
  1708.   $(document).on('keydown', function(e) {
  1709.     var applicationFrames = $frameContainer.hasClass('frames-container-application'),
  1710.         frameClass = applicationFrames ? '.frame.frame-application' : '.frame';
  1711.  
  1712.       if(e.ctrlKey || e.which === 74  || e.which === 75) {
  1713.           // CTRL+Arrow-UP/k and Arrow-Down/j support:
  1714.           // 1) select the next/prev element
  1715.           // 2) make sure the newly selected element is within the view-scope
  1716.           // 3) focus the (right) container, so arrow-up/down (without ctrl) scroll the details
  1717.           if (e.which === 38 /* arrow up */ || e.which === 75 /* k */) {
  1718.               $activeLine.prev(frameClass).click();
  1719.               scrollIntoView($activeLine, $leftPanel);
  1720.               $container.focus();
  1721.               e.preventDefault();
  1722.           } else if (e.which === 40 /* arrow down */ || e.which === 74 /* j */) {
  1723.               $activeLine.next(frameClass).click();
  1724.               scrollIntoView($activeLine, $leftPanel);
  1725.               $container.focus();
  1726.               e.preventDefault();
  1727.           }
  1728.       } else if (e.which == 78 /* n */) {
  1729.       if ($appFramesTab.length) {
  1730.         setActiveFramesTab($('.frames-tab:not(.frames-tab-active)'));
  1731.       }
  1732.     }
  1733.   });
  1734.  
  1735.   // Render late enough for highlightCurrentLine to be ready
  1736.   renderCurrentCodeblock();
  1737.  
  1738.   // Avoid to quit the page with some protocol (e.g. IntelliJ Platform REST API)
  1739.   $ajaxEditors.on('click', function(e){
  1740.     e.preventDefault();
  1741.     $.get(this.href);
  1742.   });
  1743.  
  1744.   // Symfony VarDumper: Close the by default expanded objects
  1745.   $('.sf-dump-expanded')
  1746.     .removeClass('sf-dump-expanded')
  1747.     .addClass('sf-dump-compact');
  1748.   $('.sf-dump-toggle span').html('&#9654;');
  1749.  
  1750.   // Make the given frames-tab active
  1751.   function setActiveFramesTab($tab) {
  1752.     $tab.addClass('frames-tab-active');
  1753.  
  1754.     if ($tab.attr('id') == 'application-frames-tab') {
  1755.       $frameContainer.addClass('frames-container-application');
  1756.       $allFramesTab.removeClass('frames-tab-active');
  1757.     } else {
  1758.       $frameContainer.removeClass('frames-container-application');
  1759.       $appFramesTab.removeClass('frames-tab-active');
  1760.     }
  1761.   }
  1762.  
  1763.   $('a.frames-tab').on('click', function(e) {
  1764.     e.preventDefault();
  1765.     setActiveFramesTab($(this));
  1766.   });
  1767. });
  1768. </script>
  1769.   </body>
  1770. </html>
Add Comment
Please, Sign In to add comment