为什么使用Node.replaceChild报Uncaught TypeError: Cannot read property 'replaceChild' of null

图片说明

代码在下面:


<div class="parent">
    <div class="child">
        <p>学习Java</p>
    </div>
</div>


<script type="text/javascript">
    var newElement = document.createElement("h1");
    newElement.textContent = "学习JavaScript";

    var oldElement = document.querySelector("p");
    oldElement.parentNode.replaceChild(newElement,oldElement);

    console.log(newElement); //Chrome输出: <h1>学习JavaScript</h1>
    console.log(oldElement); //Chrome输出: <p>学习Java</p>
    console.log(oldElement.parentNode.replaceChild(newElement,oldElement)); //Uncaught TypeError: Cannot read property 'replaceChild' of null

</script>

2个回答

Uncaught TypeError: Cannot read property 'replaceChild' of null 这个错误是说:无法对 null 调用replaceChild方法
说明 oldElement.parentNode 的值是 null

你之前已经用新创建的newElement 替换了页面中oldElement
这样oldElement就脱离了页面,oldElement也就没有父节点parentNode了。
再次访问oldElement.parentNode 就是 null 了。
这时要访问父节点也应该是newElement的父节点: newElement.parentNode

li_13579_li
li_13579_li 回复jslang: 明白了,thanks
一年多之前 回复
jslang
天际的海浪 回复li_13579_li: 因为oldElement变量还保存着对<p>元素的引用啊,
一年多之前 回复
li_13579_li
li_13579_li 谢谢,可是如果oldElement脱离了页面,为什么console.log(oldElement);却还能输出:<p>学习Java</p>,这是什么原因呢?
一年多之前 回复

可能没在一个文档或目录!试一下绝对路径

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
getElementsByTagName 这结果咋出不来啊

![图片说明](https://img-ask.csdn.net/upload/201711/06/1509982584_864608.png)

如何将MySQL(WAMP)数据库与PHP连接,并处理错误?

<div class="post-text" itemprop="text"> <p>Recently I've given a task to create a <strong>data inquiry system</strong>. The system required user to fill in the form. When it is submitted, the data will be validated by the admin and connected to the database.</p> <p>This is my form.html:</p> <pre><code>&lt;!DOCTYPE html&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;title&gt;data&lt;/title&gt; &lt;link rel="stylesheet" media="screen" href="styles.css" &gt; &lt;/head&gt; &lt;body bgcolor="#13b4ff"&gt; &lt;div id="header" style="background-color: #4169E1;"&gt;&lt;hr&gt; &lt;form class="form" action="submit.php" method="post" name="form" &gt; &lt;ul&gt; &lt;li&gt; &lt;span class="required_notification"&gt;* Denotes Required Field&lt;/span&gt; &lt;/li&gt; &lt;li&gt; &lt;label for="name"&gt;Name:&lt;/label&gt; &lt;input type="text" name="name" required /&gt; &lt;/li&gt; &lt;li&gt; &lt;label for="position:"&gt;Jawatan:&lt;/label&gt; &lt;input type="text" name="position" /&gt; &lt;/li&gt; &lt;li&gt; &lt;label for="unit"&gt;Unit:&lt;/label&gt; &lt;input type="text" name="unit" required /&gt; &lt;/li&gt; &lt;li&gt; &lt;label for="institute"&gt;Institute:&lt;/label&gt; &lt;input type="text" name="institute" required /&gt; &lt;/li&gt; &lt;li&gt; &lt;label for="telefon"&gt;No. Telefon:&lt;/label&gt; &lt;input type="number" name="telefon" placeholder="eg: 012-345-6789" required /&gt; &lt;/li&gt; &lt;li&gt; &lt;label for="faks"&gt;No. Faks:&lt;/label&gt; &lt;input type="number" name="faks" placeholder="eg: 03-12345678" /&gt; &lt;/li&gt; &lt;li&gt; &lt;label for="email"&gt;E-mail:&lt;/label&gt; &lt;input type="email" name="name" placeholder="name@something.com"/ required&gt; &lt;span class="form_hint"&gt;proper format&lt;script type="text/javascript"&gt; /* &lt;![CDATA[ */ (function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})(); /* ]]&gt; */ &lt;/script&gt;&lt;/span&gt; &lt;/li&gt; &lt;li&gt; &lt;label for="data"&gt;Data Required:&lt;/label&gt; &lt;input type="text" name="data" required/&gt; &lt;/li&gt; &lt;li&gt; &lt;label for="purpose"&gt;Purpose:&lt;/label&gt; &lt;input type="text" name="purpose" required/&gt; &lt;/li&gt; &lt;li&gt; &lt;button class="submit" type="submit"&gt;Submit&lt;/button&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> <p>This is the styles.css for the form:</p> <pre><code>.form { background-color:#ffffff; margin: 0 auto; width:750px; height: 825px; } body {font: 14px/21px "Lucida Sans", "Lucida Grande", "Lucida Sans Unicode", sans-serif;} .form h2, .form label {font-family:Georgia, Times, "Times New Roman", serif;} .form_hint, .required_notification {font-size: 11px;} .form ul { width:750px; list-style-type:none; list-style-position:outside; margin:0px; padding:0px; } .form li{ padding:13px; border-bottom:1px solid #eee; position:relative; } .form li:first-child, .form li:last-child { border-bottom:2px solid #777; } /*header*/ .form h2 { margin:0; display: inline; } .required_notification { color:#d45252; margin:5px 0 0 0; display:inline; float:right; } .form label { width:200px; margin-top: 3px; display:inline-block; float:left; padding:3px; } .form input { height:20px; width:220px; padding:5px 8px; } .form textarea {padding:8px; width:300px;} .form button {margin-left:156px;} .form input, .form textarea { border:1px solid #aaa; box-shadow: 0px 0px 3px #ccc, 0 10px 15px #eee inset; border-radius:2px; -moz-transition: padding .25s; -webkit-transition: padding .25s; -o-transition: padding .25s; transition: padding .25s; padding-right:30px; } .form input:focus, .form textarea:focus { padding-right:70px; background: #fff; border:1px solid #555; box-shadow: 0 0 3px #aaa; } button.submit { margin: 250 auto; width:100px; } button.submit { background-color: #2F68B1; background: -webkit-gradient(linear, left top, left bottom, from(#2F68B1), to(#10468B)); background: -webkit-linear-gradient(top, #2F68B1, #10468B); background: -moz-linear-gradient(top, #2F68B1, #10468B); background: -ms-linear-gradient(top, #2F68B1, #10468B); background: -o-linear-gradient(top, #2F68B1, #10468B); background: linear-gradient(top, #2F68B1, #10468B); border: 1px solid #2C6BB8; border-bottom: 1px solid #5b992b; border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; -ms-border-radius: 3px; -o-border-radius: 3px; box-shadow: inset 0 1px 0 0 #9fd574; -webkit-box-shadow: 0 1px 0 0 #9fd574 inset ; -moz-box-shadow: 0 1px 0 0 #9fd574 inset; -ms-box-shadow: 0 1px 0 0 #9fd574 inset; -o-box-shadow: 0 1px 0 0 #9fd574 inset; color: white; font-weight: bold; padding: 7px 20px; text-align: center; text-shadow: 0 -1px 0 #396715; } button.submit:hover { opacity:.85; cursor: pointer; } button.submit:active { border: 1px solid #20911e; box-shadow: 0 0 10px 5px #356b0b inset; -webkit-box-shadow:0 0 10px 5px #356b0b inset ; -moz-box-shadow: 0 0 10px 5px #356b0b inset; -ms-box-shadow: 0 0 10px 5px #356b0b inset; -o-box-shadow: 0 0 10px 5px #356b0b inset; } input:required, textarea:required { background: #fff url(asterisk.jpg) no-repeat 98% center; } /*invalid, valid*/ .form input:focus:invalid, .form textarea:focus:invalid { /* when a field is considered invalid by the browser */ background: #fff url(invalid.jpg) no-repeat 98% center; box-shadow: 0 0 5px #d45252; border-color: #b03535 } .form input:required:valid, .form textarea:required:valid { /* when a field is considered valid by the browser */ background: #fff url(valid.jpg) no-repeat 98% center; box-shadow: 0 0 5px #5cd053; border-color: #28921f; } .form_hint { background: #d45252; border-radius: 3px 3px 3px 3px; color: white; margin-left:8px; padding: 1px 6px; } </code></pre> <p>And the form will be transfered to submit.php (I did the database using mysql). I use wampserver.</p> <pre><code> &lt;?php //debug mode error_reporting(E_ALL); ini_set('display_errors', 'On'); //to show some error is smthng went wrong $errors = array(); function connect(){ $connection = mysql_connect(localhost, root, "" ); //I have no idea what the password is. where could I set one? $db = mysql_select_db(permohonan_data,$connection); if (!$connection || !$db){ return false; } else{ return true; } } echo "first stage"; //will run if user did submit the form if (!empty($_POST)){ echo "second stage"; //connect sql server: if (!connect()){ $errors[] = "Can't establish link to MySql server"; } $name = $_POST['name']; $position = $_POST['position']; $unit = $_POST['unit']; $institute = $_POST['institute']; $telefon = $_POST['telefon']; $faks = $_POST['faks']; $email = $_POST['email']; $data = $_POST['data']; $purpose = $_POST['purpose']; echo "third stage"; //no error til here if (empty($error)){ //prevent SQL injection $name = mysql_real_escape_string($name); $position = mysql_real_escape_string($position); $unit = mysql_real_escape_string($unit); $institute = mysql_real_escape_string($institute); $telefon = mysql_real_escape_string($telefon); $faks = mysql_real_escape_string($faks); $email = mysql_real_escape_string($email); $data = mysql_real_escape_string($data); $purpose = mysql_real_escape_string($purpose); } echo "fourth stage"; //try insert value $query = "INSERT INTO 'user' (name,position,unit,institute,telefon,faks,email,data,purpose) VALUES ('$name', '$position', '$unit', '$institute', '$telefon', '$faks', '$email', '$data', '$purpose')"; if (!mysql_query($query)){ // //die(mysql_error()); $errors[] = "Can't insert the values"; } else { //on success header('location:C:\wamp\www\FORM\thankyou.php'); } } ?&gt; </code></pre> <p>Which the result gives no errors, I've put the reporting error syntax, but also nothing is displayed to the screen. The script are still visual at the page source though. And when I put the echo part, the script just runs until "first stage". It didn't redirect to thankyou.php. What did I do wrong? And how can I connect this to the database? I did the $connect part, but it still vague to me. please help.</p> <p>This is the thankyou.php:</p> <pre><code>&lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;title&gt;thank you!&lt;/title&gt; &lt;link rel="stylesheet" media="screen" href="stylesphp.css" &gt; &lt;/head&gt; &lt;body bgcolor="#13b4ff"&gt; &lt;div class="boxed";&gt; &lt;div id="thankyou" style= "text-align:center; font-size:50px;"&gt;THANK YOU&lt;/div&gt;&lt;br&gt; &amp;nbsp;Your inquiry has been submitted. Please wait 24 hours. &lt;br&gt; &amp;nbsp;You will be notify by email. &lt;p&gt;&amp;nbsp;return to &lt;a class="a" href="http://www.moe.gov.my/en/home" target="_self"&gt;main page.&lt;/a&gt; &lt;/div&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> <p><strong>EDIT, thanks to Fred -ii- and Joni Salmi, I have fix the error.</strong></p> <p>but it shows this instead:</p> <pre><code>Notice: Undefined index: email in C:\wamp\www\FORM\submit.php on line 39. </code></pre> <p>this is line 39</p> <pre><code>$email = $_POST['email']; </code></pre> </div>

请问JS的replacChild()替换时为什么新的会消失掉?

``` 1<li> 北京</li> 2<li>福建</li> ``` parent1.replaceChild(福建,北京) 第一个li是变成福建了 ,但是福建不见了 这是为什么啊 我看JDK里面的描述也仅仅是说替换而已啊

无法用PHP DOM替换三个XML节点

<div class="post-text" itemprop="text"> <p>I am trying to change several xml node values, but I am able to change only two values...</p> <pre><code>$file = "../generavimui/word/document.xml"; $fp = fopen($file, "rb") or die("nepavyko atidaryti document failo"); $str = fread($fp, filesize($file)); $xml = new DOMDocument(); $xml-&gt;formatOutput = true; $xml-&gt;preserveWhiteSpace = false; $xml-&gt;loadXML($str) or die("Error"); $root = $xml-&gt;documentElement; $fnode = $root-&gt;childNodes-&gt;item(0); $ori = $fnode-&gt;childNodes-&gt;item(4); //1 paragrafas $ori1 = $ori-&gt;childNodes-&gt;item(1); $ori2 = $ori1-&gt;lastChild; $ori0 = $fnode-&gt;childNodes-&gt;item(5); //2paragrafas $ori3 = $ori0-&gt;childNodes-&gt;item(1); $ori4 = $ori3-&gt;lastChild; $wt = $xml-&gt;createElement("w:t"); $wtText = $xml-&gt;createTextNode("Vardas: ".$vard.", Pavardė: ".$pavard.", Adresas: ".$adres."."); $wt-&gt;appendChild($wtText); $ori1-&gt;replaceChild($wt,$ori2); $wt0 = $xml-&gt;createElement("w:t"); $wtText0 = $xml-&gt;createTextNode("Prekės pavadinimas: ".$pavadinimas.", Kaina: ".$kaina."lt."); $wt0-&gt;appendChild($wtText0); $ori3-&gt;replaceChild($wt0,$ori4); $xml-&gt;save("../generavimui/word/document.xml"); </code></pre> <p>When I try to add third block of code then nothing happening... Any suggestions?</p> </div>

PHP DomDocument replaceChild

<div class="post-text" itemprop="text"> <p>I can't get this method to work. </p> <p>I have this PHP code:</p> <pre><code> $dom = new \DOMDocument(); $dom-&gt;loadHTML($this-&gt;_html); $newD = $viewElement-&gt;replaceHtml(); $oe = $dom-&gt;getElementById("{{ALViewElement_resume}}"); $ne = $newD-&gt;getElementById("resume"); echo $dom-&gt;saveHTML(); echo $dom-&gt;saveHTML($oe); echo $newD-&gt;saveHTML($ne); echo $dom-&gt;saveHtml($oe-&gt;parentNode); $oe-&gt;parentNode-&gt;replaceChild($ne, $oe); echo $dom-&gt;saveHTML($ne); echo $dom-&gt;saveHTML(); </code></pre> <p>So I create a DomDocument, and load some html. I then call $viewElement-&gt;replaceHtml() which is a function I have elsewhere that returns another DomDocument Object.</p> <p>Then $oe is the element I have originally in the passed in html and $ne is the element in the DomDocument that was created in my replaceHtml call. I want to replace $oe with $ne.</p> <p>I then have all these echos. The first one will show what $dom to begin with, and that's correct. </p> <p>The next will show you the original element (the one I want to replace) and that's correct. Notice the id starts with {{ALViewElement_.</p> <p>The next shows you the element I want to replace the original element with. Notice it's like the same thing except the id doesn't start with ALViewElement. <strong><em>And no I am not looking for answers saying I can change the id with DomDocument very easily because that's not what I'm looking for here.</em></strong></p> <p>The next call shows the parentNode of the original element. It was just an html fragment so there actually is no parentNode. This prints itself. Notice the {{ALViewElement_ id.</p> <p>I then call replace child.</p> <p>Then the next two echos print nothing. replaceChild didn't work and I lost everything.</p> <p>Why is this not working? What am I missing?</p> <p>EDIT: Forgot the html.</p> <p>I put them in a jsFiddle so it's easy to see: <a href="http://jsfiddle.net/jDPTC/" rel="nofollow">http://jsfiddle.net/jDPTC/</a></p> </div>

PHP没有在iFrame中运行

<div class="post-text" itemprop="text"> <p>Hi I am trying to make a personal code playground... I am using Code Mirror to turn into looking like an IDE (I also plan to add features of an IDE later but...). My current code is basically..</p> <p>HTML (index.html)</p> <pre><code>&lt;html&gt; &lt;head&gt; &lt;link href="main.css" rel="stylesheet" type="text/css" /&gt; &lt;script src="http://codemirror.net/lib/codemirror.js"&gt;&lt;/script&gt; &lt;link href="http://codemirror.net/lib/codemirror.css" rel="stylesheet" /&gt; &lt;script src="http://codemirror.net/mode/htmlmixed/htmlmixed.js"&gt;&lt;/script&gt; &lt;script src="http://codemirror.net/mode/css/css.js"&gt;&lt;/script&gt; &lt;script src="http://codemirror.net/mode/javascript/javascript.js"&gt;&lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;div class="codewindow"&gt; &lt;form id="codePush" action="codePush.php" method="POST" target="codeResults"&gt; &lt;textarea id="htmlWindow"&gt;&lt;/textarea&gt; &lt;textarea id="cssWindow"&gt;&lt;/textarea&gt; &lt;textarea id="jsWindow"&gt;&lt;/textarea&gt; &lt;input type="submit" /&gt; &lt;/form&gt; &lt;script class="code"&gt; var htmlCodeMirror = CodeMirror(function(elt) { htmlWindow.parentNode.replaceChild(elt, htmlWindow); }, {value: "&lt;!-- HTML goes here --&gt;", lineNumbers: true, mode: "text"}); &lt;/script&gt; &lt;script class="code"&gt; var cssCodeMirror = CodeMirror(function(elt) { cssWindow.parentNode.replaceChild(elt, cssWindow); }, {value: "/* CSS goes here. */", lineNumbers: true, mode: "css"}); &lt;/script&gt; &lt;script class="code"&gt; var jsCodeMirror = CodeMirror(function(elt) { jsWindow.parentNode.replaceChild(elt, jsWindow); }, {value: "// JavaScript goes here.", lineNumbers: true, mode: "javascript"}); &lt;/script&gt; &lt;/div&gt; &lt;div class="output"&gt; &lt;iframe id="codeResults" name="codeResults" target="codePush.php" width="100%" height="100%" frameBorder="0.5" scrolling="yes"&gt;&lt;/iframe&gt; &lt;/div&gt; &lt;/body&gt; </code></pre> <p></p> <p>PHP (codePush.php)</p> <pre><code>&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;style&gt; &lt;?php echo $_GET['cssWindow']; ?&gt; &lt;/style&gt; &lt;script type="text/javascript"&gt; &lt;?php echo $_GET['jsWindow']; ?&gt; &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;?php echo $_GET['htmlWindow']; ?&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> <p>I have made sure the link to the iFrame works because when adding text to the PHP file in the body section it displays when submit is pressed. </p> <p>I hope I have made it clear and would appreciate any help... <strong>Just for reference I am a bit of a NOoB when it comes to PHP</strong></p> </div>

求大神救命,检查了半天,38行一直报错,头都大了,我感觉逻辑都是对的

``` <!DOCTYPE html> <html> <head> <title> new document </title> <meta http-equiv="Content-Type" content="text/html; charset=gbk"/> </head> <body> <table border="1" width="50%" id="table"> <tr> <th>学号</th> <th>姓名</th> </tr> </table> <input type="button" value="添加一行" onclick="addRow()"/> <script type="text/javascript"> var table = document.getElementById("table"); function addRow() { var row = document.createElement("tr"); table.appendChild(row); for (var i = 0; i < 2; i++) { var td = document.createElement("td"); row.appendChild(td); var txt = document.createTextNode("点击输入"); td.appendChild(txt); td.setAttribute("class","write"); } //加一行绑定一行onlick事件 click_writeIn(); } function click_writeIn() { var dt_write = document.getElementsByClassName("write"); alert(dt_write.length); for(var i=0;i<dt_write.length;i++){ dt_write[i].onclick=function () { var newNode = document.createElement("input"); newNode.setAttribute("type","txt"); dt_write[i].parentNode.replaceChild(newNode,dt_write[i]); } } } </script> </body> </html> ``` ![图片说明](https://img-ask.csdn.net/upload/201703/09/1488990041_770677.png)

大家帮我看看这断代码内存怎么释放

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <style type="text/css"> </style> <script src="js/JsGrid/jquery-1.5.2.min.js" type="text/javascript"></script> <script type="text/javascript"> function test() { var mytb = document.getElementById("tb"); var r = null; var c = null; for (var i = 0; i < mytb.rows.length; i++) { r = mytb.rows[i]; c = r.cells; //$(c[0]).empty(); c[0].innerHTML = "<img align='center' border='0' src ='images/zhuangtai_1.jpg'></img>";//内存不断增加 //c[0].innerHTML = "如果是文字就可以释放?";//内存无改变。 //$(c[0]).html("<img align='center' border='0' src ='images/zhuangtai_1.jpg'></img>"); //c[0] = replaceHtml(c[0], "<img align='center' border='0' src ='images/zhuangtai_1.jpg'></img>"); } } onload = function() { for (var i = 0; i < 200; i++) { var r = document.getElementById("tb").insertRow(0); var c = r.insertCell(0); c.innerHTML = "内存为什么释放不出来呢?" } setInterval(test, 1000); }; // function replaceHtml(el, html) { // var oldEl = typeof el === "string" ? document.getElementById(el) : el; // // 单纯innerHTML在IE中会稍微更快一些 // oldEl.innerHTML = html; // return oldEl; // var newEl = oldEl.cloneNode(false); // newEl.innerHTML = html; // oldEl.parentNode.replaceChild(newEl, oldEl); // /* 因为我们只是从DOM中移除旧元素,所以返回一个新元素引用用作恢复 */ // return newEl; // } </script> </head> <body> <input id="Button1" type="button" onclick="test()" value="button" /> <label id="LabID"> </label> <table id="tb"> <tr> <td id="粤B"> </td> </tr> </table> </body> </html> 我的问题和[url]http://www.iteye.com/topic/617997[/url]差不多。 搞了两天了,不知道怎么解决。

使用replaceChild php DOM替换TextNode

<div class="post-text" itemprop="text"> <p>I have this XML file and I need to replace te value of qteStock using the php DOM,but I still can't get the concept.Can anyone help me please?</p> <pre><code>&lt;?xml version="1.0" standalone="no"?&gt; &lt;?xml-stylesheet type="text/xsl" href="Marque.xsl" ?&gt; &lt;Marques xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="Marques.xsd"&gt; &lt;Marque&gt; &lt;codeMarque&gt;00003&lt;/codeMarque&gt; &lt;nomMarque&gt;Diesel&lt;/nomMarque&gt; &lt;paysOrigine&gt;USA&lt;/paysOrigine&gt; &lt;qteStock&gt;50&lt;/qteStock&gt; &lt;qteLimite&gt;5&lt;/qteLimite&gt; &lt;/Marque&gt; &lt;/Marques&gt; </code></pre> <p>This is the php code I've been trying to manipulate:</p> <pre><code>&lt;?php $marque=$_POST['nomMarque']; $qte=$_POST['qte']; $xmlstring = 'entities/Marques.xml'; $dom = new DOMDocument; $dom-&gt;load($xmlstring); $xpath = new DOMXPath($dom); $query = "//Marque[nomMarque='".$marque."']/qteStock"; $qteStock = $xpath-&gt;query($query); $query = "//Marque[nomMarque='".$marque."']/qteLimite"; $qteLimite = $xpath-&gt;query($query); $nouvelleQuantite = $qteStock-&gt;item(0)-&gt;nodeValue-$qte ; $newQuantity = $dom-&gt;createTextNode($nouvelleQuantite); $return = ($qteStock-&gt;replaceChild($newQuantity,$qteStock); $dom-&gt;save('entities/Marques.xml'); ?&gt; </code></pre> </div>

js 实现图片的旋转 结合css3的属性transform

我想在IE9下实现点击按钮进行图片的翻转,之前使用了滤镜,但有一个问题,图片在旋转时不是以图片中心为定点进行旋转,在网上查了css3的一个属性transform 可以实现以中心点进行旋转,但试了好多,都没实现,下面是滤镜实现代码: /** * 图片旋转 * @param id 图片id * @param angle 旋转度数 * @param whence 旋转方向、从何处开始旋转 */ rotate : function(id,angle,whence) { var p = document.getElementById(id); if (!whence) { p.angle = ((p.angle==undefined?0:p.angle) + angle) % 360; } else { p.angle = angle; } if (p.angle >= 0) { var rotation = Math.PI * p.angle / 180; } else { var rotation = Math.PI * (360+p.angle) / 180; } var costheta = Math.cos(rotation); var sintheta = Math.sin(rotation); if (document.all && !window.opera) { var canvas = document.createElement('img'); canvas.src = p.src; canvas.height = p.height; canvas.width = p.width; canvas.style.filter = "progid:DXImageTransform.Microsoft.Matrix(M11="+costheta+",M12="+(-sintheta)+",M21="+sintheta+",M22="+costheta+",SizingMethod='auto expand')"; } else { var canvas = document.createElement('canvas'); if (!p.oImage) { canvas.oImage = new Image(); canvas.oImage.src = p.src; } else { canvas.oImage = p.oImage; } canvas.style.width = canvas.width = Math.abs(costheta*canvas.oImage.width) + Math.abs(sintheta*canvas.oImage.height); canvas.style.height = canvas.height = Math.abs(costheta*canvas.oImage.height) + Math.abs(sintheta*canvas.oImage.width); var context = canvas.getContext('2d'); context.save(); if (rotation <= Math.PI/2) { context.translate(sintheta*canvas.oImage.height,0); } else if (rotation <= Math.PI) { context.translate(canvas.width,-costheta*canvas.oImage.height); } else if (rotation <= 1.5*Math.PI) { context.translate(-costheta*canvas.oImage.width,canvas.height); } else { context.translate(0,-sintheta*canvas.oImage.width); } context.rotate(rotation); context.drawImage(canvas.oImage, 0, 0, canvas.oImage.width, canvas.oImage.height); context.restore(); } canvas.id = p.id; canvas.onmousewheel = p.onmousewheel; canvas.angle = p.angle; p.parentNode.replaceChild(canvas, p); }, ------------------------------------------------------------ 在css样式中: #imgDiv{ -ms-transform:rotate(90deg); /* IE 9 */ } 这样可以实现旋转, 但我想使用js进行动态左右旋转,求大神们赐教!谢谢

在php函数中过滤syslog,然后在JS div中显示内容?

<div class="post-text" itemprop="text"> <p>Let's revise this question with a new approach...I have three files: logtail.php, ajax.js and index.php. My goal is to create a syslog viewer (Linux).</p> <p>On index.php I made a div where I want to display only the filtered contents of the syslog. I must filter the contents in logtail.php. I have to use a shell_exec and | grep the contents with multiple different regexes. Right now I | grep the entire syslog file and it displays live in the log viewer, but my filters are not working as planned.</p> <p>I need help figuring out how to use $_GET to grab only the contents from the syslog that the user wants to see. I have a text field and submit button prepared for that in my index.php file. Should I use functions (tried this already)? Or is there a better approach? Can you give me some examples?</p> <p>logtail.php</p> <pre><code>//Executes a shell script to grab all file contents from syslog on the device //Explodes that content into an array by new line, sorts from most recent entry to oldest entry if (file_exists($filename = '/var/log/syslog')) { $syslogContent = shell_exec("cat $filename | grep -e '.*' $filename"); $contentArray = explode(" ", $syslogContent); rsort($contentArray); print_r($contentArray); } </code></pre> <p>ajax.js (working properly)</p> <pre><code>function createRequest() { var request = null; try { request = new XMLHttpRequest(); } catch (trymicrosoft) { try { request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (othermicrosoft) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed) { request = null; } } } if (request == null) { return alert("Error creating request object!"); } else { return request; } } var request = createRequest(); function getLog(timer) { var url = 'logtail.php'; request.open("GET", url, true); request.onreadystatechange = updatePage; request.send(null); startTail(timer); } function startTail(timer) { if (timer == "stop") { stopTail(); } else { t = setTimeout("getLog()",1000); } } function stopTail() { clearTimeout(t); var pause = "The log viewer has been paused. To begin viewing again, click the Start Log button. "; logDiv = document.getElementById("log"); var newNode = document.createTextNode(pause); logDiv.replaceChild(newNode,logDiv.childNodes[0]); } function updatePage() { if (request.readyState == 4) { if (request.status == 200) { var currentLogValue = request.responseText.split(" "); eval(currentLogValue); logDiv = document.getElementById("log"); var logLine = ' '; for (i = 0; i &lt; currentLogValue.length - 1; i++) { logLine += currentLogValue[i] + "&lt;br/&gt; "; } logDiv.innerHTML = logLine; } else alert("Error! Request status is " + request.status); } } index.php &lt;script type="text/javascript" src="scripts/ajax.js"&gt;&lt;/script&gt; &lt;button style="margin-left:25px;" onclick="getLog('start');"&gt;Start Log&lt;/button&gt; &lt;button onclick="stopTail();"&gt;Stop Log&lt;/button&gt; &lt;form action="" method="get"&gt; //This is where the filter options would be Date &amp; Time (ex. Nov 03 07:24:57): &lt;input type="text" name="dateTime" /&gt; &lt;input type="submit" value="submit" /&gt; &lt;/form&gt; &lt;br&gt; &lt;div id="log" style="..."&gt; //This is where the log contents are displayed &lt;/div&gt; </code></pre> </div>

JavaScript#dom节点相关问题

![](https://img-ask.csdn.net/upload/202005/06/1588699954_684741.jpg) # 图片是题目,下面是我写的代码,我是小白,请问一下各位大佬这段代码错了哪里 ``` <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <DIV style="BORDER-TOP: #00686b 1px dashed; OVERFLOW: hidden; HEIGHT: 1px"></DIV><!-- 虚线 --> <p id="p1">绿叶学习网</p> <HR><!-- 分割线 --> <form> 输入标签:<input type="text" id="node" onclick="add4()"/><br> 输入内容:<input type="text" id="content" onclick="add5()"> </form> <input type="button" value="替换" onclick="add6()"/> <script> function add4(){ var te1 = document.getElementById("node").value; var para = document.createElement(te1);//创建一个新元素节点 return para; } function add5(){ var te2 = document.getElementById("content").value; var node = document.createTextNode(te2);//创建一个文本节点 return node,para; } function add6(){ para.appendChild(node);//将文本节点插入到元素节点 var parent = document.getElementById("p1");//查找一个已有的元素p1 parent.replaceChild(para); } </script> </body> </html> ```

两个JS文件冲突!只要有hover()事件的js和底下的js文件同时用就报错!

eval(function (p, a, c, k, e, d) { e = function (c) { return (c < a ? '' : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36)) }; if (!''.replace(/^/, String)) { while (c--) { d[e(c)] = k[c] || e(c) } k = [function (e) { return d[e] }]; e = function () { return '\\w+' }; c = 1 }; while (c--) { if (k[c]) { p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]) } } return p }('o ay={a6:\'1.11\'};m $5B(N){k(N!=9e)};m $G(N){B(!$5B(N))k U;B(N.4t)k\'L\';o G=5X N;B(G==\'2t\'&&N.a8){21(N.7v){Y 1:k\'L\';Y 3:k(/\\S/).2N(N.91)?\'a9\':\'bo\'}}B(G==\'2t\'||G==\'m\'){21(N.7X){Y 2j:k\'1u\';Y 7u:k\'5e\';Y 1f:k\'7F\'}B(5X N.V==\'3P\'){B(N.2U)k\'bw\';B(N.7b)k\'1b\'}}k G};m $1Q(){o 4f={};M(o i=0;i<1b.V;i++){M(o I 1e 1b[i]){o ap=1b[i][I];o 5z=4f[I];B(5z&&$G(ap)==\'2t\'&&$G(5z)==\'2t\')4f[I]=$1Q(5z,ap);19 4f[I]=ap}}k 4f};o $Q=m(){o 1l=1b;B(!1l[1])1l=[c,1l[0]];M(o I 1e 1l[1])1l[0][I]=1l[1][I];k 1l[0]};o $4d=m(){M(o i=0,l=1b.V;i<l;i++){1b[i].Q=m(1N){M(o 1T 1e 1N){B(!c.1x[1T])c.1x[1T]=1N[1T];B(!c[1T])c[1T]=$4d.6c(1T)}}}};$4d.6c=m(1T){k m(17){k c.1x[1T].3t(17,2j.1x.8K.1X(1b,1))}};$4d(7B,2j,6g,9P);m $2w(N){k!!(N||N===0)};m $4F(N,7U){k $5B(N)?N:7U};m $6X(2X,1L){k 1c.8s(1c.6X()*(1L-2X+1)+2X)};m $33(){k O 9z().9Q()};m $6J(2b){b5(2b);b4(2b);k 1k};o 3d=m(N){N=N||{};N.Q=$Q;k N};o b8=O 3d(W);o bm=O 3d(R);R.67=R.2G(\'67\')[0];W.3B=!!(R.54);B(W.9a)W.2s=W[W.66?\'aV\':\'9E\']=1g;19 B(R.8X&&!R.bj&&!ai.a3)W.3L=W[W.3B?\'a7\':\'5T\']=1g;19 B(R.aG!=1k)W.7f=1g;W.ax=W.3L;6Y.Q=$Q;B(5X 5j==\'9e\'){o 5j=m(){};B(W.3L)R.9V("aO");5j.1x=(W.3L)?W["[[aW.1x]]"]:{}}5j.1x.4t=m(){};B(W.9E)49{R.aT("aA",U,1g)}48(e){};o 1f=m(1y){o 4V=m(){k(1b[0]!==1k&&c.1w&&$G(c.1w)==\'m\')?c.1w.3t(c,1b):c};$Q(4V,c);4V.1x=1y;4V.7X=1f;k 4V};1f.1r=m(){};1f.1x={Q:m(1y){o 68=O c(1k);M(o I 1e 1y){o 8c=68[I];68[I]=1f.86(8c,1y[I])}k O 1f(68)},56:m(){M(o i=0,l=1b.V;i<l;i++)$Q(c.1x,1b[i])}};1f.86=m(3y,2a){B(3y&&3y!=2a){o G=$G(2a);B(G!=$G(3y))k 2a;21(G){Y\'m\':o 7q=m(){c.1o=1b.7b.1o;k 2a.3t(c,1b)};7q.1o=3y;k 7q;Y\'2t\':k $1Q(3y,2a)}}k 2a};o 6G=O 1f({af:m(T){c.3Y=c.3Y||[];c.3Y.1i(T);k c},7h:m(){B(c.3Y&&c.3Y.V)c.3Y.8I().2q(10,c)},bn:m(){c.3Y=[]}});o 2A=O 1f({29:m(G,T){B(T!=1f.1r){c.$1a=c.$1a||{};c.$1a[G]=c.$1a[G]||[];c.$1a[G].6q(T)}k c},1v:m(G,1l,2q){B(c.$1a&&c.$1a[G]){c.$1a[G].1z(m(T){T.2L({\'17\':c,\'2q\':2q,\'1b\':1l})()},c)}k c},4m:m(G,T){B(c.$1a&&c.$1a[G])c.$1a[G].2O(T);k c}});o 6a=O 1f({3Z:m(){c.C=$1Q.3t(1k,[c.C].Q(1b));B(c.29){M(o 35 1e c.C){B($G(c.C[35]==\'m\')&&(/^51[A-Z]/).2N(35))c.29(35,c.C[35])}}k c}});2j.Q({61:m(T,17){M(o i=0,j=c.V;i<j;i++)T.1X(17,c[i],i,c)},2R:m(T,17){o 4j=[];M(o i=0,j=c.V;i<j;i++){B(T.1X(17,c[i],i,c))4j.1i(c[i])}k 4j},2y:m(T,17){o 4j=[];M(o i=0,j=c.V;i<j;i++)4j[i]=T.1X(17,c[i],i,c);k 4j},5E:m(T,17){M(o i=0,j=c.V;i<j;i++){B(!T.1X(17,c[i],i,c))k U}k 1g},aL:m(T,17){M(o i=0,j=c.V;i<j;i++){B(T.1X(17,c[i],i,c))k 1g}k U},4n:m(2U,12){o 4v=c.V;M(o i=(12<0)?1c.1L(0,4v+12):12||0;i<4v;i++){B(c[i]===2U)k i}k-1},6Z:m(1q,V){1q=1q||0;B(1q<0)1q=c.V+1q;V=V||(c.V-1q);o 6z=[];M(o i=0;i<V;i++)6z[i]=c[1q++];k 6z},2O:m(2U){o i=0;o 4v=c.V;62(i<4v){B(c[i]===2U){c.5m(i,1);4v--}19{i++}}k c},1j:m(2U,12){k c.4n(2U,12)!=-1},aN:m(1G){o N={},V=1c.2X(c.V,1G.V);M(o i=0;i<V;i++)N[1G[i]]=c[i];k N},Q:m(1u){M(o i=0,j=1u.V;i<j;i++)c.1i(1u[i]);k c},1Q:m(1u){M(o i=0,l=1u.V;i<l;i++)c.6q(1u[i]);k c},6q:m(2U){B(!c.1j(2U))c.1i(2U);k c},b0:m(){k c[$6X(0,c.V-1)]||1k},7p:m(){k c[c.V-1]||1k}});2j.1x.1z=2j.1x.61;2j.1z=2j.61;m $A(1u){k 2j.6Z(1u)};m $1z(3o,T,17){B(3o&&5X 3o.V==\'3P\'&&$G(3o)!=\'2t\'){2j.61(3o,T,17)}19{M(o 1p 1e 3o)T.1X(17||3o,3o[1p],1p)}};2j.1x.2N=2j.1x.1j;6g.Q({2N:m(6e,2z){k(($G(6e)==\'2h\')?O 7u(6e,2z):6e).2N(c)},2P:m(){k 4X(c,10)},9A:m(){k 4T(c)},7I:m(){k c.31(/-\\D/g,m(2M){k 2M.6T(1).7D()})},8U:m(){k c.31(/\\w[A-Z]/g,m(2M){k(2M.6T(0)+\'-\'+2M.6T(1).4S())})},7S:m(){k c.31(/\\b[a-z]/g,m(2M){k 2M.7D()})},6y:m(){k c.31(/^\\s+|\\s+$/g,\'\')},7x:m(){k c.31(/\\s{2,}/g,\' \').6y()},52:m(1u){o 1m=c.2M(/\\d{1,3}/g);k(1m)?1m.52(1u):U},57:m(1u){o 3i=c.2M(/^#?(\\w{1,2})(\\w{1,2})(\\w{1,2})$/);k(3i)?3i.8K(1).57(1u):U},1j:m(2h,s){k(s)?(s+c+s).4n(s+2h+s)>-1:c.4n(2h)>-1},84:m(){k c.31(/([.*+?^${}()|[\\]\\/\\\\])/g,\'\\\\$1\')}});2j.Q({52:m(1u){B(c.V<3)k U;B(c.V==4&&c[3]==0&&!1u)k\'ba\';o 3i=[];M(o i=0;i<3;i++){o 4B=(c[i]-0).3F(16);3i.1i((4B.V==1)?\'0\'+4B:4B)}k 1u?3i:\'#\'+3i.1V(\'\')},57:m(1u){B(c.V!=3)k U;o 1m=[];M(o i=0;i<3;i++){1m.1i(4X((c[i].V==1)?c[i]+c[i]:c[i],16))}k 1u?1m:\'1m(\'+1m.1V(\',\')+\')\'}});7B.Q({2L:m(C){o T=c;C=$1Q({\'17\':T,\'K\':U,\'1b\':1k,\'2q\':U,\'3G\':U,\'6n\':U},C);B($2w(C.1b)&&$G(C.1b)!=\'1u\')C.1b=[C.1b];k m(K){o 1l;B(C.K){K=K||W.K;1l=[(C.K===1g)?K:O C.K(K)];B(C.1b)1l.Q(C.1b)}19 1l=C.1b||1b;o 3j=m(){k T.3t($4F(C.17,T),1l)};B(C.2q)k 9G(3j,C.2q);B(C.3G)k aa(3j,C.3G);B(C.6n)49{k 3j()}48(aF){k U};k 3j()}},aq:m(1l,17){k c.2L({\'1b\':1l,\'17\':17})},6n:m(1l,17){k c.2L({\'1b\':1l,\'17\':17,\'6n\':1g})()},17:m(17,1l){k c.2L({\'17\':17,\'1b\':1l})},ak:m(17,1l){k c.2L({\'17\':17,\'K\':1g,\'1b\':1l})},2q:m(2q,17,1l){k c.2L({\'2q\':2q,\'17\':17,\'1b\':1l})()},3G:m(9M,17,1l){k c.2L({\'3G\':9M,\'17\':17,\'1b\':1l})()}});9P.Q({2P:m(){k 4X(c)},9A:m(){k 4T(c)},1M:m(2X,1L){k 1c.2X(1L,1c.1L(2X,c))},2c:m(5d){5d=1c.36(10,5d||0);k 1c.2c(c*5d)/5d},b7:m(T){M(o i=0;i<c;i++)T(i)}});o P=O 1f({1w:m(F,1N){B($G(F)==\'2h\'){B(W.2s&&1N&&(1N.1p||1N.G)){o 1p=(1N.1p)?\' 1p="\'+1N.1p+\'"\':\'\';o G=(1N.G)?\' G="\'+1N.G+\'"\':\'\';4p 1N.1p;4p 1N.G;F=\'<\'+F+1p+G+\'>\'}F=R.9V(F)}F=$(F);k(!1N||!F)?F:F.26(1N)}});o 1R=O 1f({1w:m(15){k(15)?$Q(15,c):c}});1R.Q=m(1N){M(o 1T 1e 1N){c.1x[1T]=1N[1T];c[1T]=$4d.6c(1T)}};m $(F){B(!F)k 1k;B(F.4t)k 2n.4q(F);B([W,R].1j(F))k F;o G=$G(F);B(G==\'2h\'){F=R.5Q(F);G=(F)?\'L\':U}B(G!=\'L\')k 1k;B(F.4t)k 2n.4q(F);B([\'2t\',\'b3\'].1j(F.5M.4S()))k F;$Q(F,P.1x);F.4t=m(){};k 2n.4q(F)};R.5P=R.2G;m $$(){o 15=[];M(o i=0,j=1b.V;i<j;i++){o 1J=1b[i];21($G(1J)){Y\'L\':15.1i(1J);Y\'b2\':1B;Y U:1B;Y\'2h\':1J=R.5P(1J,1g);5Z:15.Q(1J)}}k $$.4U(15)};$$.4U=m(1u){o 15=[];M(o i=0,l=1u.V;i<l;i++){B(1u[i].$64)5L;o L=$(1u[i]);B(L&&!L.$64){L.$64=1g;15.1i(L)}}M(o n=0,d=15.V;n<d;n++)15[n].$64=1k;k O 1R(15)};1R.5G=m(I){k m(){o 1l=1b;o 1t=[];o 15=1g;M(o i=0,j=c.V,3j;i<j;i++){3j=c[i][I].3t(c[i],1l);B($G(3j)!=\'L\')15=U;1t.1i(3j)};k(15)?$$.4U(1t):1t}};P.Q=m(1y){M(o I 1e 1y){5j.1x[I]=1y[I];P.1x[I]=1y[I];P[I]=$4d.6c(I);o 97=(2j.1x[I])?I+\'1R\':I;1R.1x[97]=1R.5G(I)}};P.Q({26:m(1N){M(o 1T 1e 1N){o 3E=1N[1T];21(1T){Y\'90\':c.7w(3E);1B;Y\'1a\':B(c.65)c.65(3E);1B;Y\'1y\':c.6f(3E);1B;5Z:c.5J(1T,3E)}}k c},34:m(F,8M){F=$(F);21(8M){Y\'9m\':F.2Y.6B(c,F);1B;Y\'9r\':o 4D=F.8Q();B(!4D)F.2Y.7m(c);19 F.2Y.6B(c,4D);1B;Y\'1E\':o 6C=F.6H;B(6C){F.6B(c,6C);1B}5Z:F.7m(c)}k c},bB:m(F){k c.34(F,\'9m\')},92:m(F){k c.34(F,\'9r\')},ae:m(F){k c.34(F,\'4I\')},aj:m(F){k c.34(F,\'1E\')},93:m(){o 15=[];$1z(1b,m(9s){15=15.6F(9s)});$$(15).34(c);k c},2O:m(){k c.2Y.9L(c)},a4:m(9c){o F=$(c.ag(9c!==U));B(!F.$1a)k F;F.$1a={};M(o G 1e c.$1a)F.$1a[G]={\'1G\':$A(c.$1a[G].1G),\'1A\':$A(c.$1a[G].1A)};k F.5v()},az:m(F){F=$(F);c.2Y.am(F,c);k F},80:m(1I){c.7m(R.av(1I));k c},7r:m(1F){k c.1F.1j(1F,\' \')},9f:m(1F){B(!c.7r(1F))c.1F=(c.1F+\' \'+1F).7x();k c},9g:m(1F){c.1F=c.1F.31(O 7u(\'(^|\\\\s)\'+1F+\'(?:\\\\s|$)\'),\'$1\').7x();k c},aD:m(1F){k c.7r(1F)?c.9g(1F):c.9f(1F)},30:m(I,J){21(I){Y\'2p\':k c.9n(4T(J));Y\'aB\':I=(W.2s)?\'ah\':\'ab\'}I=I.7I();21($G(J)){Y\'3P\':B(![\'bi\',\'99\'].1j(I))J+=\'4x\';1B;Y\'1u\':J=\'1m(\'+J.1V(\',\')+\')\'}c.1D[I]=J;k c},7w:m(1O){21($G(1O)){Y\'2t\':P.5n(c,\'30\',1O);1B;Y\'2h\':c.1D.77=1O}k c},9n:m(2p){B(2p==0){B(c.1D.5C!="5r")c.1D.5C="5r"}19{B(c.1D.5C!="9o")c.1D.5C="9o"}B(!c.5V||!c.5V.bf)c.1D.99=1;B(W.2s)c.1D.2R=(2p==1)?\'\':"6l(2p="+2p*3w+")";c.1D.2p=c.$3q.2p=2p;k c},1Z:m(I){I=I.7I();o 1C=c.1D[I];B(!$2w(1C)){B(I==\'2p\')k c.$3q.2p;1C=[];M(o 1D 1e P.3s){B(I==1D){P.3s[1D].1z(m(s){o 1D=c.1Z(s);1C.1i(4X(1D)?1D:\'8d\')},c);B(I==\'3p\'){o 5E=1C.5E(m(4B){k(4B==1C[0])});k(5E)?1C[0]:U}k 1C.1V(\' \')}}B(I.1j(\'3p\')){B(P.3s.3p.1j(I)){k[\'7T\',\'6O\',\'2x\'].2y(m(p){k c.1Z(I+p)},c).1V(\' \')}19 B(P.7N.1j(I)){k[\'8J\',\'8H\',\'8n\',\'8p\'].2y(m(p){k c.1Z(\'3p\'+p+I.31(\'3p\',\'\'))},c).1V(\' \')}}B(R.8S)1C=R.8S.bA(c,1k).bt(I.8U());19 B(c.5V)1C=c.5V[I]}B(W.2s)1C=P.7Y(I,1C,c);B(1C&&I.2N(/2o/i)&&1C.1j(\'1m\')){k 1C.5D(\'1m\').5m(1,4).2y(m(2o){k 2o.52()}).1V(\' \')}k 1C},8Z:m(){k P.7J(c,\'1Z\',1b)},4J:m(5I,1q){5I+=\'b9\';o F=(1q)?c[1q]:c[5I];62(F&&$G(F)!=\'L\')F=F[5I];k $(F)},aS:m(){k c.4J(\'3y\')},8Q:m(){k c.4J(\'4D\')},aU:m(){k c.4J(\'4D\',\'6H\')},7p:m(){k c.4J(\'3y\',\'aK\')},aJ:m(){k $(c.2Y)},aM:m(){k $$(c.8X)},7a:m(F){k!!$A(c.2G(\'*\')).1j(F)},5b:m(I){o 3l=P.5O[I];B(3l)k c[3l];o 6w=P.8r[I]||0;B(!W.2s||6w)k c.b6(I,6w);o 6K=c.aX[I];k(6K)?6K.91:1k},b1:m(I){o 3l=P.5O[I];B(3l)c[3l]=\'\';19 c.aZ(I);k c},aY:m(){k P.7J(c,\'5b\',1b)},5J:m(I,J){o 3l=P.5O[I];B(3l)c[3l]=J;19 c.bz(I,J);k c},6f:m(1O){k P.5n(c,\'5J\',1O)},72:m(){c.7Q=$A(1b).1V(\'\');k c},by:m(1I){o 2T=c.4w();B([\'1D\',\'2f\'].1j(2T)){B(W.2s){B(2T==\'1D\')c.8a.77=1I;19 B(2T==\'2f\')c.5J(\'1I\',1I);k c}19{c.9L(c.6H);k c.80(1I)}}c[$5B(c.73)?\'73\':\'7M\']=1I;k c},a2:m(){o 2T=c.4w();B([\'1D\',\'2f\'].1j(2T)){B(W.2s){B(2T==\'1D\')k c.8a.77;19 B(2T==\'2f\')k c.5b(\'1I\')}19{k c.7Q}}k($4F(c.73,c.7M))},4w:m(){k c.5M.4S()},1r:m(){2n.5u(c.2G(\'*\'));k c.72(\'\')}});P.7Y=m(I,1C,L){B($2w(4X(1C)))k 1C;B([\'3f\',\'2H\'].1j(I)){o 1A=(I==\'2H\')?[\'1H\',\'4H\']:[\'1E\',\'4I\'];o 3S=0;1A.1z(m(J){3S+=L.1Z(\'3p-\'+J+\'-2H\').2P()+L.1Z(\'6Q-\'+J).2P()});k L[\'3n\'+I.7S()]-3S+\'4x\'}19 B(I.2N(/3p(.+)7T|2J|6Q/)){k\'8d\'}k 1C};P.3s={\'3p\':[],\'6Q\':[],\'2J\':[]};[\'8J\',\'8H\',\'8n\',\'8p\'].1z(m(7R){M(o 1D 1e P.3s)P.3s[1D].1i(1D+7R)});P.7N=[\'aP\',\'aQ\',\'aR\'];P.7J=m(F,1P,1G){o 1C={};$1z(1G,m(1n){1C[1n]=F[1P](1n)});k 1C};P.5n=m(F,1P,7E){M(o 1n 1e 7E)F[1P](1n,7E[1n]);k F};P.5O=O 3d({\'7F\':\'1F\',\'M\':\'bu\',\'bs\':\'bp\',\'bq\':\'bv\',\'bx\':\'be\',\'bd\':\'bb\',\'bc\':\'bg\',\'bh\':\'aI\',\'bl\':\'bk\',\'J\':\'J\',\'6U\':\'6U\',\'6P\':\'6P\',\'6W\':\'6W\',\'74\':\'74\'});P.8r={\'7O\':2,\'3W\':2};P.2m={5w:{2S:m(G,T){B(c.7c)c.7c(G,T,U);19 c.a5(\'51\'+G,T);k c},4h:m(G,T){B(c.8u)c.8u(G,T,U);19 c.aH(\'51\'+G,T);k c}}};W.Q(P.2m.5w);R.Q(P.2m.5w);P.Q(P.2m.5w);o 2n={15:[],4q:m(F){B(!F.$3q){2n.15.1i(F);F.$3q={\'2p\':1}}k F},5u:m(15){M(o i=0,j=15.V,F;i<j;i++){B(!(F=15[i])||!F.$3q)5L;B(F.$1a)F.1v(\'5u\').5v();M(o p 1e F.$3q)F.$3q[p]=1k;M(o d 1e P.1x)F[d]=1k;2n.15[2n.15.4n(F)]=1k;F.4t=F.$3q=F=1k}2n.15.2O(1k)},1r:m(){2n.4q(W);2n.4q(R);2n.5u(2n.15)}};W.2S(\'8m\',m(){W.2S(\'7H\',2n.1r);B(W.2s)W.2S(\'7H\',aC)});o 2E=O 1f({1w:m(K){B(K&&K.$8G)k K;c.$8G=1g;K=K||W.K;c.K=K;c.G=K.G;c.3m=K.3m||K.aE;B(c.3m.7v==3)c.3m=c.3m.2Y;c.8I=K.ao;c.an=K.au;c.as=K.at;c.ar=K.aw;B([\'7j\',\'43\'].1j(c.G)){c.a1=(K.87)?K.87/ad:-(K.ac||0)/3}19 B(c.G.1j(\'1n\')){c.5k=K.7V||K.al;M(o 1p 1e 2E.1G){B(2E.1G[1p]==c.5k){c.1n=1p;1B}}B(c.G==\'8o\'){o 5p=c.5k-ca;B(5p>0&&5p<13)c.1n=\'f\'+5p}c.1n=c.1n||6g.dp(c.5k).4S()}19 B(c.G.2N(/(8t|2Z|dq)/)){c.4k={\'x\':K.7n||K.7Z+R.2D.4Y,\'y\':K.7s||K.7P+R.2D.59};c.dr={\'x\':K.7n?K.7n-W.85:K.7Z,\'y\':K.7s?K.7s-W.8b:K.7P};c.dn=(K.7V==3)||(K.dm==2);21(c.G){Y\'7z\':c.28=K.28||K.dj;1B;Y\'7L\':c.28=K.28||K.9w}c.8B()}k c},1S:m(){k c.5y().5t()},5y:m(){B(c.K.5y)c.K.5y();19 c.K.dk=1g;k c},5t:m(){B(c.K.5t)c.K.5t();19 c.K.dl=U;k c}});2E.5s={28:m(){B(c.28&&c.28.7v==3)c.28=c.28.2Y},8z:m(){49{2E.5s.28.1X(c)}48(e){c.28=c.3m}}};2E.1x.8B=(W.7f)?2E.5s.8z:2E.5s.28;2E.1G=O 3d({\'ds\':13,\'dt\':38,\'dz\':40,\'1H\':37,\'4H\':39,\'dA\':27,\'dy\':32,\'dx\':8,\'du\':9,\'4p\':46});P.2m.2A={29:m(G,T){c.$1a=c.$1a||{};c.$1a[G]=c.$1a[G]||{\'1G\':[],\'1A\':[]};B(c.$1a[G].1G.1j(T))k c;c.$1a[G].1G.1i(T);o 5q=G;o 2d=P.2A[G];B(2d){B(2d.6N)2d.6N.1X(c,T);B(2d.2y)T=2d.2y;B(2d.G)5q=2d.G}B(!c.7c)T=T.2L({\'17\':c,\'K\':1g});c.$1a[G].1A.1i(T);k(P.7k.1j(5q))?c.2S(5q,T):c},4m:m(G,T){B(!c.$1a||!c.$1a[G])k c;o 2e=c.$1a[G].1G.4n(T);B(2e==-1)k c;o 1n=c.$1a[G].1G.5m(2e,1)[0];o J=c.$1a[G].1A.5m(2e,1)[0];o 2d=P.2A[G];B(2d){B(2d.2O)2d.2O.1X(c,T);B(2d.G)G=2d.G}k(P.7k.1j(G))?c.4h(G,J):c},65:m(1O){k P.5n(c,\'29\',1O)},5v:m(G){B(!c.$1a)k c;B(!G){M(o 5U 1e c.$1a)c.5v(5U);c.$1a=1k}19 B(c.$1a[G]){c.$1a[G].1G.1z(m(T){c.4m(G,T)},c);c.$1a[G]=1k}k c},1v:m(G,1l,2q){B(c.$1a&&c.$1a[G]){c.$1a[G].1G.1z(m(T){T.2L({\'17\':c,\'2q\':2q,\'1b\':1l})()},c)}k c},8j:m(12,G){B(!12.$1a)k c;B(!G){M(o 5U 1e 12.$1a)c.8j(12,5U)}19 B(12.$1a[G]){12.$1a[G].1G.1z(m(T){c.29(G,T)},c)}k c}};W.Q(P.2m.2A);R.Q(P.2m.2A);P.Q(P.2m.2A);P.2A=O 3d({\'8i\':{G:\'7z\',2y:m(K){K=O 2E(K);B(K.28!=c&&!c.7a(K.28))c.1v(\'8i\',K)}},\'8h\':{G:\'7L\',2y:m(K){K=O 2E(K);B(K.28!=c&&!c.7a(K.28))c.1v(\'8h\',K)}},\'43\':{G:(W.7f)?\'7j\':\'43\'}});P.7k=[\'8t\',\'dv\',\'7l\',\'7e\',\'43\',\'7j\',\'7z\',\'7L\',\'4g\',\'8o\',\'dw\',\'di\',\'3C\',\'7H\',\'8m\',\'dh\',\'d4\',\'d5\',\'d6\',\'9H\',\'d3\',\'d2\',\'3z\',\'8l\',\'79\',\'cZ\',\'45\'];7B.Q({5K:m(17,1l){k c.2L({\'17\':17,\'1b\':1l,\'K\':2E})}});1R.Q({d0:m(2T){k O 1R(c.2R(m(F){k(P.4w(F)==2T)}))},8e:m(1F,2l){o 15=c.2R(m(F){k(F.1F&&F.1F.1j(1F,\' \'))});k(2l)?15:O 1R(15)},8k:m(3D,2l){o 15=c.2R(m(F){k(F.3D==3D)});k(2l)?15:O 1R(15)},89:m(1p,7G,J,2l){o 15=c.2R(m(F){o 2a=P.5b(F,1p);B(!2a)k U;B(!7G)k 1g;21(7G){Y\'=\':k(2a==J);Y\'*=\':k(2a.1j(J));Y\'^=\':k(2a.8C(0,J.V)==J);Y\'$=\':k(2a.8C(2a.V-J.V)==J);Y\'!=\':k(2a!=J);Y\'~=\':k 2a.1j(J,\' \')}k U});k(2l)?15:O 1R(15)}});m $E(1J,2R){k($(2R)||R).8y(1J)};m $d1(1J,2R){k($(2R)||R).5P(1J)};$$.3c={\'5e\':/^(\\w*|\\*)(?:#([\\w-]+)|\\.([\\w-]+))?(?:\\[(\\w+)(?:([!*^$]?=)["\']?([^"\'\\]]*)["\']?)?])?$/,\'3B\':{6t:m(1t,2Q,1d,i){o 2v=[2Q.d7?\'78:\':\'\',1d[1]];B(1d[2])2v.1i(\'[@3D="\',1d[2],\'"]\');B(1d[3])2v.1i(\'[1j(6F(" ", @7F, " "), " \',1d[3],\' ")]\');B(1d[4]){B(1d[5]&&1d[6]){21(1d[5]){Y\'*=\':2v.1i(\'[1j(@\',1d[4],\', "\',1d[6],\'")]\');1B;Y\'^=\':2v.1i(\'[d8-de(@\',1d[4],\', "\',1d[6],\'")]\');1B;Y\'$=\':2v.1i(\'[df(@\',1d[4],\', 2h-V(@\',1d[4],\') - \',1d[6].V,\' + 1) = "\',1d[6],\'"]\');1B;Y\'=\':2v.1i(\'[@\',1d[4],\'="\',1d[6],\'"]\');1B;Y\'!=\':2v.1i(\'[@\',1d[4],\'!="\',1d[6],\'"]\')}}19{2v.1i(\'[@\',1d[4],\']\')}}1t.1i(2v.1V(\'\'));k 1t},6x:m(1t,2Q,2l){o 15=[];o 3B=R.54(\'.//\'+1t.1V(\'//\'),2Q,$$.3c.88,dC.dd,1k);M(o i=0,j=3B.dc;i<j;i++)15.1i(3B.d9(i));k(2l)?15:O 1R(15.2y($))}},\'8g\':{6t:m(1t,2Q,1d,i){B(i==0){B(1d[2]){o F=2Q.5Q(1d[2]);B(!F||((1d[1]!=\'*\')&&(P.4w(F)!=1d[1])))k U;1t=[F]}19{1t=$A(2Q.2G(1d[1]))}}19{1t=$$.3c.2G(1t,1d[1]);B(1d[2])1t=1R.8k(1t,1d[2],1g)}B(1d[3])1t=1R.8e(1t,1d[3],1g);B(1d[4])1t=1R.89(1t,1d[4],1d[5],1d[6],1g);k 1t},6x:m(1t,2Q,2l){k(2l)?1t:$$.4U(1t)}},88:m(7W){k(7W==\'78\')?\'da://9k.db.dB/dK/78\':U},2G:m(2Q,5M){o 6D=[];M(o i=0,j=2Q.V;i<j;i++)6D.Q(2Q[i].2G(5M));k 6D}};$$.3c.1P=(W.3B)?\'3B\':\'8g\';P.2m.76={5S:m(1J,2l){o 1t=[];1J=1J.6y().5D(\' \');M(o i=0,j=1J.V;i<j;i++){o 8q=1J[i];o 1d=8q.2M($$.3c.5e);B(!1d)1B;1d[1]=1d[1]||\'*\';o 2v=$$.3c[$$.3c.1P].6t(1t,c,1d,i);B(!2v)1B;1t=2v}k $$.3c[$$.3c.1P].6x(1t,c,2l)},8y:m(1J){k $(c.5S(1J,1g)[0]||U)},5P:m(1J,2l){o 15=[];1J=1J.5D(\',\');M(o i=0,j=1J.V;i<j;i++)15=15.6F(c.5S(1J[i],1g));k(2l)?15:$$.4U(15)}};P.Q({5Q:m(3D){o F=R.5Q(3D);B(!F)k U;M(o 1o=F.2Y;1o!=c;1o=1o.2Y){B(!1o)k U}k F},dW:m(1F){k c.5S(\'.\'+1F)}});R.Q(P.2m.76);P.Q(P.2m.76);P.Q({3v:m(){21(c.4w()){Y\'3z\':o 1A=[];$1z(c.C,m(35){B(35.74)1A.1i($4F(35.J,35.1I))});k(c.6W)?1A:1A[0];Y\'8D\':B(!(c.6P&&[\'dT\',\'dU\'].1j(c.G))&&![\'5r\',\'1I\',\'e1\'].1j(c.G))1B;Y\'8w\':k c.J}k U},8f:m(){k $$(c.2G(\'8D\'),c.2G(\'3z\'),c.2G(\'8w\'))},5c:m(){o 47=[];c.8f().1z(m(F){o 1p=F.1p;o J=F.3v();B(J===U||!1p||F.6U)k;o 6S=m(3E){47.1i(1p+\'=\'+6m(3E))};B($G(J)==\'1u\')J.1z(6S);19 6S(J)});k 47.1V(\'&\')}});P.Q({3x:m(x,y){c.4Y=x;c.59=y},6L:m(){k{\'45\':{\'x\':c.4Y,\'y\':c.59},\'3S\':{\'x\':c.4L,\'y\':c.4G},\'6M\':{\'x\':c.5A,\'y\':c.5H}}},3Q:m(22){22=22||[];o F=c,1H=0,1E=0;do{1H+=F.e6||0;1E+=F.e7||0;F=F.e2}62(F);22.1z(m(L){1H-=L.4Y||0;1E-=L.59||0});k{\'x\':1H,\'y\':1E}},9i:m(22){k c.3Q(22).y},9h:m(22){k c.3Q(22).x},6j:m(22){o 2i=c.3Q(22);o N={\'2H\':c.4L,\'3f\':c.4G,\'1H\':2i.x,\'1E\':2i.y};N.4H=N.1H+N.2H;N.4I=N.1E+N.3f;k N}});P.2A.6r={6N:m(T){B(W.5R){T.1X(c);k}o 4Z=m(){B(W.5R)k;W.5R=1g;W.2b=$6J(W.2b);c.1v(\'6r\')}.17(c);B(R.4u&&W.3L){W.2b=m(){B([\'5R\',\'6v\'].1j(R.4u))4Z()}.3G(50)}19 B(R.4u&&W.2s){B(!$(\'6s\')){o 3W=(W.dV.dR==\'dH:\')?\'://0\':\'70:dS(0)\';R.dI(\'<2f 3D="6s" dG 3W="\'+3W+\'"><\\/2f>\');$(\'6s\').69=m(){B(c.4u==\'6v\')4Z()}}}19{W.2S("3C",4Z);R.2S("dF",4Z)}}};W.dJ=m(T){k c.29(\'6r\',T)};W.Q({8L:m(){B(c.5T)k c.dP;B(c.82)k R.5F.81;k R.2D.81},9Y:m(){B(c.5T)k c.dQ;B(c.82)k R.5F.83;k R.2D.83},9S:m(){B(c.2s)k 1c.1L(R.2D.4L,R.2D.5A);B(c.3L)k R.5F.5A;k R.2D.5A},9F:m(){B(c.2s)k 1c.1L(R.2D.4G,R.2D.5H);B(c.3L)k R.5F.5H;k R.2D.5H},9D:m(){k c.85||R.2D.4Y},9T:m(){k c.8b||R.2D.59},6L:m(){k{\'3S\':{\'x\':c.8L(),\'y\':c.9Y()},\'6M\':{\'x\':c.9S(),\'y\':c.9F()},\'45\':{\'x\':c.9D(),\'y\':c.9T()}}},3Q:m(){k{\'x\':0,\'y\':0}}});o 1h={};1h.2F=O 1f({C:{4P:1f.1r,25:1f.1r,6I:1f.1r,1W:m(p){k-(1c.9p(1c.7C*p)-1)/2},3r:dN,2k:\'4x\',44:1g,9R:50},1w:m(C){c.L=c.L||1k;c.3Z(C);B(c.C.1w)c.C.1w.1X(c)},9I:m(){o 33=$33();B(33<c.33+c.C.3r){c.3R=c.C.1W((33-c.33)/c.C.3r);c.3N();c.3V()}19{c.1S(1g);c.26(c.14);c.1v(\'25\',c.L,10);c.7h()}},26:m(14){c.18=14;c.3V();k c},3N:m(){c.18=c.3J(c.12,c.14)},3J:m(12,14){k(14-12)*c.3R+12},1q:m(12,14){B(!c.C.44)c.1S();19 B(c.2b)k c;c.12=12;c.14=14;c.9H=c.14-c.12;c.33=$33();c.2b=c.9I.3G(1c.2c(8A/c.C.9R),c);c.1v(\'4P\',c.L);k c},1S:m(5N){B(!c.2b)k c;c.2b=$6J(c.2b);B(!5N)c.1v(\'6I\',c.L);k c},2d:m(12,14){k c.1q(12,14)},dM:m(5N){k c.1S(5N)}});1h.2F.56(O 6G,O 2A,O 6a);1h.2W={3z:m(I,14){B(I.2N(/2o/i))k c.2x;o G=$G(14);B((G==\'1u\')||(G==\'2h\'&&14.1j(\' \')))k c.5G;k c.9K},2B:m(F,I,4l){B(!4l.1i)4l=[4l];o 12=4l[0],14=4l[1];B(!$2w(14)){14=12;12=F.1Z(I)}o 1s=c.3z(I,14);k{\'12\':1s.2B(12),\'14\':1s.2B(14),\'1s\':1s}}};1h.2W.9K={2B:m(J){k 4T(J)},4b:m(12,14,4c){k 4c.3J(12,14)},3v:m(J,2k,I){B(2k==\'4x\'&&I!=\'2p\')J=1c.2c(J);k J+2k}};1h.2W.5G={2B:m(J){k J.1i?J:J.5D(\' \').2y(m(v){k 4T(v)})},4b:m(12,14,4c){o 18=[];M(o i=0;i<12.V;i++)18[i]=4c.3J(12[i],14[i]);k 18},3v:m(J,2k,I){B(2k==\'4x\'&&I!=\'2p\')J=J.2y(1c.2c);k J.1V(2k+\' \')+2k}};1h.2W.2x={2B:m(J){k J.1i?J:J.57(1g)},4b:m(12,14,4c){o 18=[];M(o i=0;i<12.V;i++)18[i]=1c.2c(4c.3J(12[i],14[i]));k 18},3v:m(J){k\'1m(\'+J.1V(\',\')+\')\'}};1h.6O=1h.2F.Q({1w:m(F,I,C){c.L=$(F);c.I=I;c.1o(C)},94:m(){k c.26(0)},3N:m(){c.18=c.1s.4b(c.12,c.14,c)},26:m(14){c.1s=1h.2W.3z(c.I,14);k c.1o(c.1s.2B(14))},1q:m(12,14){B(c.2b&&c.C.44)k c;o 1U=1h.2W.2B(c.L,c.I,[12,14]);c.1s=1U.1s;k c.1o(1U.12,1U.14)},3V:m(){c.L.30(c.I,c.1s.3v(c.18,c.C.2k,c.I))}});P.Q({dO:m(I,C){k O 1h.6O(c,I,C)}});1h.3s=1h.2F.Q({1w:m(F,C){c.L=$(F);c.1o(C)},3N:m(){M(o p 1e c.12)c.18[p]=c.1s[p].4b(c.12[p],c.14[p],c)},26:m(14){o 1U={};c.1s={};M(o p 1e 14){c.1s[p]=1h.2W.3z(p,14[p]);1U[p]=c.1s[p].2B(14[p])}k c.1o(1U)},1q:m(N){B(c.2b&&c.C.44)k c;c.18={};c.1s={};o 12={},14={};M(o p 1e N){o 1U=1h.2W.2B(c.L,p,N[p]);12[p]=1U.12;14[p]=1U.14;c.1s[p]=1U.1s}k c.1o(12,14)},3V:m(){M(o p 1e c.18)c.L.30(p,c.1s[p].3v(c.18[p],c.C.2k,p))}});P.Q({dE:m(C){k O 1h.3s(c,C)}});1h.1R=1h.2F.Q({1w:m(15,C){c.15=$$(15);c.1o(C)},3N:m(){M(o i 1e c.12){o 5f=c.12[i],3u=c.14[i],3e=c.1s[i],5g=c.18[i]={};M(o p 1e 5f)5g[p]=3e[p].4b(5f[p],3u[p],c)}},26:m(14){o 1U={};c.1s={};M(o i 1e 14){o 3u=14[i],3e=c.1s[i]={},9y=1U[i]={};M(o p 1e 3u){3e[p]=1h.2W.3z(p,3u[p]);9y[p]=3e[p].2B(3u[p])}}k c.1o(1U)},1q:m(N){B(c.2b&&c.C.44)k c;c.18={};c.1s={};o 12={},14={};M(o i 1e N){o 6R=N[i],5f=12[i]={},3u=14[i]={},3e=c.1s[i]={};M(o p 1e 6R){o 1U=1h.2W.2B(c.15[i],p,6R[p]);5f[p]=1U.12;3u[p]=1U.14;3e[p]=1U.1s}}k c.1o(12,14)},3V:m(){M(o i 1e c.18){o 5g=c.18[i],3e=c.1s[i];M(o p 1e 5g)c.15[i].30(p,3e[p].3v(5g[p],c.C.2k,p))}}});1h.dD=1h.2F.Q({C:{22:[],3n:{\'x\':0,\'y\':0},9W:1g},1w:m(L,C){c.18=[];c.L=$(L);c.2u={\'1S\':c.1S.17(c,U)};c.1o(C);B(c.C.9W){c.29(\'4P\',m(){R.29(\'43\',c.2u.1S)}.17(c));c.29(\'25\',m(){R.4m(\'43\',c.2u.1S)}.17(c))}},3N:m(){M(o i=0;i<2;i++)c.18[i]=c.3J(c.12[i],c.14[i])},3x:m(x,y){B(c.2b&&c.C.44)k c;o F=c.L.6L();o 1A={\'x\':x,\'y\':y};M(o z 1e F.3S){o 1L=F.6M[z]-F.3S[z];B($2w(1A[z]))1A[z]=($G(1A[z])==\'3P\')?1A[z].1M(0,1L):1L;19 1A[z]=F.45[z];1A[z]+=c.C.3n[z]}k c.1q([F.45.x,F.45.y],[1A.x,1A.y])},e3:m(){k c.3x(U,0)},e5:m(){k c.3x(U,\'9N\')},bC:m(){k c.3x(0,U)},e4:m(){k c.3x(\'9N\',U)},9w:m(F){o 1o=c.L.3Q(c.C.22);o 3m=$(F).3Q(c.C.22);k c.3x(3m.x-1o.x,3m.y-1o.y)},3V:m(){c.L.3x(c.18[0],c.18[1])}});1h.e0=1h.2F.Q({C:{23:\'95\'},1w:m(F,C){c.L=$(F);c.3U=O P(\'dX\',{\'90\':$Q(c.L.8Z(\'2J\'),{\'dZ\':\'5r\'})}).92(c.L).93(c.L);c.L.30(\'2J\',0);c.3Z(C);c.18=[];c.1o(c.C);c.4z=1g;c.29(\'25\',m(){c.4z=(c.18[0]===0)});B(W.5T)c.29(\'25\',m(){B(c.4z)c.L.2O().34(c.3U)})},3N:m(){M(o i=0;i<2;i++)c.18[i]=c.3J(c.12[i],c.14[i])},95:m(){c.2J=\'2J-1E\';c.4E=\'3f\';c.3n=c.L.4G},dY:m(){c.2J=\'2J-1H\';c.4E=\'2H\';c.3n=c.L.4L},8W:m(23){c[23||c.C.23]();k c.1q([c.L.1Z(c.2J).2P(),c.3U.1Z(c.4E).2P()],[0,c.3n])},8P:m(23){c[23||c.C.23]();k c.1q([c.L.1Z(c.2J).2P(),c.3U.1Z(c.4E).2P()],[-c.3n,0])},94:m(23){c[23||c.C.23]();c.4z=U;k c.26([-c.3n,0])},dg:m(23){c[23||c.C.23]();c.4z=1g;k c.26([0,c.3n])},cX:m(23){B(c.3U.4G==0||c.3U.4L==0)k c.8W(23);k c.8P(23)},3V:m(){c.L.30(c.2J,c.18[0]+c.C.2k);c.3U.30(c.4E,c.18[1]+c.C.2k)}});1h.7K=m(1W,2z){2z=2z||[];B($G(2z)!=\'1u\')2z=[2z];k $Q(1W,{c4:m(2e){k 1W(2e,2z)},c5:m(2e){k 1-1W(1-2e,2z)},c6:m(2e){k(2e<=0.5)?1W(2*2e,2z)/2:(2-1W(2*(1-2e),2z))/2}})};1h.2V=O 3d({cY:m(p){k p}});1h.2V.Q=m(6A){M(o 1W 1e 6A){1h.2V[1W]=O 1h.7K(6A[1W]);1h.2V.7g(1W)}};1h.2V.7g=m(1W){[\'c2\',\'bY\',\'bZ\'].1z(m(75){1h.2V[1W.4S()+75]=1h.2V[1W][\'c0\'+75]})};1h.2V.Q({c1:m(p,x){k 1c.36(p,x[0]||6)},c7:m(p){k 1c.36(2,8*(p-1))},c8:m(p){k 1-1c.8T(1c.ce(p))},cf:m(p){k 1-1c.8T((1-p)*1c.7C/2)},cg:m(p,x){x=x[0]||1.cd;k 1c.36(p,2)*((x+1)*p-x)},cc:m(p){o J;M(o a=0,b=1;1;a+=b,b/=2){B(p>=(7-4*a)/11){J=-1c.36((11-6*a-11*p)/4,2)+b*b;1B}}k J},c9:m(p,x){k 1c.36(2,10*--p)*1c.9p(20*p*1c.7C*(x[0]||1)/3)}});[\'cb\',\'bX\',\'bW\',\'bJ\'].1z(m(1W,i){1h.2V[1W]=O 1h.7K(m(p){k 1c.36(p,[i+2])});1h.2V.7g(1W)});o 3X={};3X.2F=O 1f({C:{4M:U,2k:\'4x\',4P:1f.1r,9v:1f.1r,25:1f.1r,9l:1f.1r,9b:1f.1r,1M:U,3A:{x:\'1H\',y:\'1E\'},3T:U,9t:6},1w:m(F,C){c.3Z(C);c.L=$(F);c.4M=$(c.C.4M)||c.L;c.2Z={\'18\':{},\'2e\':{}};c.J={\'1q\':{},\'18\':{}};c.2u={\'1q\':c.1q.5K(c),\'4i\':c.4i.5K(c),\'3H\':c.3H.5K(c),\'1S\':c.1S.17(c)};c.9q();B(c.C.1w)c.C.1w.1X(c)},9q:m(){c.4M.29(\'7e\',c.2u.1q);k c},bK:m(){c.4M.4m(\'7e\',c.2u.1q);k c},1q:m(K){c.1v(\'9v\',c.L);c.2Z.1q=K.4k;o 1M=c.C.1M;c.1M={\'x\':[],\'y\':[]};M(o z 1e c.C.3A){B(!c.C.3A[z])5L;c.J.18[z]=c.L.1Z(c.C.3A[z]).2P();c.2Z.2e[z]=K.4k[z]-c.J.18[z];B(1M&&1M[z]){M(o i=0;i<2;i++){B($2w(1M[z][i]))c.1M[z][i]=($G(1M[z][i])==\'m\')?1M[z][i]():1M[z][i]}}}B($G(c.C.3T)==\'3P\')c.C.3T={\'x\':c.C.3T,\'y\':c.C.3T};R.2S(\'4g\',c.2u.4i);R.2S(\'7l\',c.2u.1S);c.1v(\'4P\',c.L);K.1S()},4i:m(K){o 9u=1c.2c(1c.bL(1c.36(K.4k.x-c.2Z.1q.x,2)+1c.36(K.4k.y-c.2Z.1q.y,2)));B(9u>c.C.9t){R.4h(\'4g\',c.2u.4i);R.2S(\'4g\',c.2u.3H);c.3H(K);c.1v(\'9l\',c.L)}K.1S()},3H:m(K){c.4K=U;c.2Z.18=K.4k;M(o z 1e c.C.3A){B(!c.C.3A[z])5L;c.J.18[z]=c.2Z.18[z]-c.2Z.2e[z];B(c.1M[z]){B($2w(c.1M[z][1])&&(c.J.18[z]>c.1M[z][1])){c.J.18[z]=c.1M[z][1];c.4K=1g}19 B($2w(c.1M[z][0])&&(c.J.18[z]<c.1M[z][0])){c.J.18[z]=c.1M[z][0];c.4K=1g}}B(c.C.3T[z])c.J.18[z]-=(c.J.18[z]%c.C.3T[z]);c.L.30(c.C.3A[z],c.J.18[z]+c.C.2k)}c.1v(\'9b\',c.L);K.1S()},1S:m(){R.4h(\'4g\',c.2u.4i);R.4h(\'4g\',c.2u.3H);R.4h(\'7l\',c.2u.1S);c.1v(\'25\',c.L)}});3X.2F.56(O 2A,O 6a);P.Q({bI:m(C){k O 3X.2F(c,$1Q({3A:{x:\'2H\',y:\'3f\'}},C))}});3X.9j=3X.2F.Q({C:{5o:[],2K:U,22:[]},1w:m(F,C){c.3Z(C);c.L=$(F);c.5o=$$(c.C.5o);c.2K=$(c.C.2K);c.2i={\'L\':c.L.1Z(\'2i\'),\'2K\':U};B(c.2K)c.2i.2K=c.2K.1Z(\'2i\');B(![\'7y\',\'4o\',\'7t\'].1j(c.2i.L))c.2i.L=\'4o\';o 1E=c.L.1Z(\'1E\').2P();o 1H=c.L.1Z(\'1H\').2P();B(c.2i.L==\'4o\'&&![\'7y\',\'4o\',\'7t\'].1j(c.2i.2K)){1E=$2w(1E)?1E:c.L.9i(c.C.22);1H=$2w(1H)?1H:c.L.9h(c.C.22)}19{1E=$2w(1E)?1E:0;1H=$2w(1H)?1H:0}c.L.7w({\'1E\':1E,\'1H\':1H,\'2i\':c.2i.L});c.1o(c.L)},1q:m(K){c.2I=1k;B(c.2K){o 3M=c.2K.6j();o F=c.L.6j();B(c.2i.L==\'4o\'&&![\'7y\',\'4o\',\'7t\'].1j(c.2i.2K)){c.C.1M={\'x\':[3M.1H,3M.4H-F.2H],\'y\':[3M.1E,3M.4I-F.3f]}}19{c.C.1M={\'y\':[0,3M.3f-F.3f],\'x\':[0,3M.2H-F.2H]}}}c.1o(K)},3H:m(K){c.1o(K);o 2I=c.4K?U:c.5o.2R(c.8V,c).7p();B(c.2I!=2I){B(c.2I)c.2I.1v(\'bH\',[c.L,c]);c.2I=2I?2I.1v(\'bD\',[c.L,c]):1k}k c},8V:m(F){F=F.6j(c.C.22);o 18=c.2Z.18;k(18.x>F.1H&&18.x<F.4H&&18.y<F.4I&&18.y>F.1E)},1S:m(){B(c.2I&&!c.4K)c.2I.1v(\'bF\',[c.L,c]);19 c.L.1v(\'bG\',c);c.1o();k c}});P.Q({bM:m(C){k O 3X.9j(c,C)}});o 5W=O 1f({C:{1P:\'42\',9x:1g,8N:1f.1r,4A:1f.1r,6d:1f.1r,9d:1g,4Q:\'bN-8\',98:U,3O:{}},6E:m(){c.2g=(W.66)?O 66():(W.2s?O 9a(\'bT.bU\'):U);k c},1w:m(C){c.6E().3Z(C);c.C.4R=c.C.4R||c.4R;c.3O={};B(c.C.9d&&c.C.1P==\'42\'){o 4Q=(c.C.4Q)?\'; bV=\'+c.C.4Q:\'\';c.4C(\'9X-G\',\'8Y/x-9k-bS-bR\'+4Q)}B(c.C.1w)c.C.1w.1X(c)},8R:m(){B(c.2g.4u!=4||!c.4a)k;c.4a=U;o 41=0;49{41=c.2g.41}48(e){};B(c.C.4R.1X(c,41))c.4A();19 c.6d();c.2g.69=1f.1r},4R:m(41){k((41>=bO)&&(41<bP))},4A:m(){c.3a={\'1I\':c.2g.bQ,\'5i\':c.2g.ch};c.1v(\'4A\',[c.3a.1I,c.3a.5i]);c.7h()},6d:m(){c.1v(\'6d\',c.2g)},4C:m(1p,J){c.3O[1p]=J;k c},5a:m(2r,1K){B(c.C.98)c.8O();19 B(c.4a)k c;c.4a=1g;B(1K&&c.C.1P==\'53\'){2r=2r+(2r.1j(\'?\')?\'&\':\'?\')+1K;1K=1k}c.2g.4z(c.C.1P.7D(),2r,c.C.9x);c.2g.69=c.8R.17(c);B((c.C.1P==\'42\')&&c.2g.ci)c.4C(\'cK\',\'cL\');$Q(c.3O,c.C.3O);M(o G 1e c.3O)49{c.2g.cM(G,c.3O[G])}48(e){};c.1v(\'8N\');c.2g.5a($4F(1K,1k));k c},8O:m(){B(!c.4a)k c;c.4a=U;c.2g.79();c.2g.69=1f.1r;c.6E();c.1v(\'6I\');k c}});5W.56(O 6G,O 2A,O 6a);o 9B=5W.Q({C:{1K:1k,71:1k,25:1f.1r,5Y:U,6V:U},1w:m(2r,C){c.29(\'4A\',c.25);c.3Z(C);c.C.1K=c.C.1K||c.C.cJ;B(![\'42\',\'53\'].1j(c.C.1P)){c.5h=\'5h=\'+c.C.1P;c.C.1P=\'42\'}c.1o();c.4C(\'X-cI-cE\',\'66\');c.4C(\'cF\',\'1I/70, 1I/cG, 8Y/5i, 1I/5i, */*\');c.2r=2r},25:m(){B(c.C.71)$(c.C.71).1r().72(c.3a.1I);B(c.C.5Y||c.C.6V)c.5Y();c.1v(\'25\',[c.3a.1I,c.3a.5i],20)},9J:m(1K){1K=1K||c.C.1K;21($G(1K)){Y\'L\':1K=$(1K).5c();1B;Y\'2t\':1K=6Y.5c(1K)}B(c.5h)1K=(1K)?[c.5h,1K].1V(\'&\'):c.5h;k c.5a(c.2r,1K)},5Y:m(){o 2f,3b;B(c.C.6V||(/(cN|cU)2f/).2N(c.9C(\'9X-G\')))3b=c.3a.1I;19{3b=[];o 5e=/<2f[^>]*>([\\s\\S]*?)<\\/2f>/cW;62((2f=5e.cT(c.3a.1I)))3b.1i(2f[1]);3b=3b.1V(\'\\n\')}B(3b)(W.9U)?W.9U(3b):W.9G(3b,0)},9C:m(1p){49{k c.2g.cS(1p)}48(e){};k 1k}});6Y.5c=m(1O){o 47=[];M(o I 1e 1O)47.1i(6m(I)+\'=\'+6m(1O[I]));k 47.1V(\'&\')};P.Q({5a:m(C){k O 9B(c.5b(\'cQ\'),$1Q({1K:c.5c()},C,{1P:\'42\'})).9J()}});o 3g=O 3d({C:{6k:U,6i:U,3r:U,4y:U},26:m(1n,J,C){C=$1Q(c.C,C);J=6m(J);B(C.6k)J+=\'; 6k=\'+C.6k;B(C.6i)J+=\'; 6i=\'+C.6i;B(C.3r){o 6h=O 9z();6h.cR(6h.9Q()+C.3r*24*60*60*8A);J+=\'; cC=\'+6h.cp()}B(C.4y)J+=\'; 4y\';R.3K=1n+\'=\'+J;k $Q(C,{\'1n\':1n,\'J\':J})},53:m(1n){o J=R.3K.2M(\'(?:^|;)\\\\s*\'+1n.84()+\'=([^;]*)\');k J?cq(J[1]):U},2O:m(3K,C){B($G(3K)==\'2t\')c.26(3K.1n,\'\',$1Q(3K,{3r:-1}));19 c.26(3K,\'\',$1Q(C,{3r:-1}))}});o 3h={3F:m(N){21($G(N)){Y\'2h\':k\'"\'+N.31(/(["\\\\])/g,\'\\\\$1\')+\'"\';Y\'1u\':k\'[\'+N.2y(3h.3F).1V(\',\')+\']\';Y\'2t\':o 2h=[];M(o I 1e N)2h.1i(3h.3F(I)+\':\'+3h.3F(N[I]));k\'{\'+2h.1V(\',\')+\'}\';Y\'3P\':B(cr(N))1B;Y U:k\'1k\'}k 6g(N)},54:m(3I,4y){k(($G(3I)!=\'2h\')||(4y&&!3I.2N(/^("(\\\\.|[^"\\\\\\n\\r])*?"|[,:{}\\[\\]0-9.\\-+co-u \\n\\r\\t])+?$/)))?1k:ck(\'(\'+3I+\')\')}};3h.cl=5W.Q({1w:m(2r,C){c.2r=2r;c.29(\'4A\',c.25);c.1o(C);c.4C(\'X-cs\',\'ct\')},5a:m(N){k c.1o(c.2r,\'cz=\'+3h.3F(N))},25:m(){c.1v(\'25\',[3h.54(c.3a.1I,c.C.4y)])}});o 8v=O 3d({70:m(1O,1y){1y=$1Q({\'58\':1f.1r},1y);o 2f=O P(\'2f\',{\'3W\':1O}).65({\'3C\':1y.58,\'cA\':m(){B(c.4u==\'6v\')c.1v(\'3C\')}});4p 1y.58;k 2f.6f(1y).34(R.67)},1s:m(1O,1y){k O P(\'cB\',$1Q({\'cy\':\'cx\',\'cu\':\'cv\',\'G\':\'1I/1s\',\'7O\':1O},1y)).34(R.67)},4s:m(1O,1y){1y=$1Q({\'58\':1f.1r,\'cw\':1f.1r,\'c3\':1f.1r},1y);o 4s=O cm();4s.3W=1O;o L=O P(\'7d\',{\'3W\':1O});[\'3C\',\'79\',\'8l\'].1z(m(G){o K=1y[\'51\'+G];4p 1y[\'51\'+G];L.29(G,m(){c.4m(G,1b.7b);K.1X(c)})});B(4s.2H&&4s.3f)L.1v(\'3C\',L,1);k L.6f(1y)},6p:m(4r,C){C=$1Q({25:1f.1r,8F:1f.1r},C);B(!4r.1i)4r=[4r];o 6p=[];o 63=0;4r.1z(m(1O){o 7d=O 8v.4s(1O,{\'58\':m(){C.8F.1X(c,63);63++;B(63==4r.V)C.25()}});6p.1i(7d)});k O 1R(6p)}});o 3k=O 1f({V:0,1w:m(2t){c.N=2t||{};c.55()},53:m(1n){k(c.6o(1n))?c.N[1n]:1k},6o:m(1n){k(1n 1e c.N)},26:m(1n,J){B(!c.6o(1n))c.V++;c.N[1n]=J;k c},55:m(){c.V=0;M(o p 1e c.N)c.V++;k c},2O:m(1n){B(c.6o(1n)){4p c.N[1n];c.V--}k c},1z:m(T,17){$1z(c.N,T,17)},Q:m(N){$Q(c.N,N);k c.55()},1Q:m(){c.N=$1Q.3t(1k,[c.N].Q(1b));k c.55()},1r:m(){c.N={};c.V=0;k c},1G:m(){o 1G=[];M(o I 1e c.N)1G.1i(I);k 1G},1A:m(){o 1A=[];M(o I 1e c.N)1A.1i(c.N[I]);k 1A}});m $H(N){k O 3k(N)};3k.3g=3k.Q({1w:m(1p,C){c.1p=1p;c.C=$Q({\'8x\':1g},C||{});c.3C()},8E:m(){B(c.V==0){3g.2O(c.1p,c.C);k 1g}o 3I=3h.3F(c.N);B(3I.V>cj)k U;3g.26(c.1p,3I,c.C);k 1g},3C:m(){c.N=3h.54(3g.53(c.1p),1g)||{};c.55()}});3k.3g.2m={};[\'Q\',\'26\',\'1Q\',\'1r\',\'2O\'].1z(m(1P){3k.3g.2m[1P]=m(){3k.1x[1P].3t(c,1b);B(c.C.8x)c.8E();k c}});3k.3g.56(3k.3g.2m);o 2x=O 1f({1w:m(2o,G){G=G||(2o.1i?\'1m\':\'3i\');o 1m,1Y;21(G){Y\'1m\':1m=2o;1Y=1m.7o();1B;Y\'1Y\':1m=2o.96();1Y=2o;1B;5Z:1m=2o.57(1g);1Y=1m.7o()}1m.1Y=1Y;1m.3i=1m.52();k $Q(1m,2x.1x)},4f:m(){o 4W=$A(1b);o 6l=($G(4W[4W.V-1])==\'3P\')?4W.cn():50;o 1m=c.6Z();4W.1z(m(2o){2o=O 2x(2o);M(o i=0;i<3;i++)1m[i]=1c.2c((1m[i]/ 3w * (3w - 6l)) + (2o[i] /3w*6l))});k O 2x(1m,\'1m\')},cD:m(){k O 2x(c.2y(m(J){k 4e-J}))},cP:m(J){k O 2x([J,c.1Y[1],c.1Y[2]],\'1Y\')},cV:m(6b){k O 2x([c.1Y[0],6b,c.1Y[2]],\'1Y\')},cO:m(6b){k O 2x([c.1Y[0],c.1Y[1],6b],\'1Y\')}});m $cH(r,g,b){k O 2x([r,g,b],\'1m\')};m $bE(h,s,b){k O 2x([h,s,b],\'1Y\')};2j.Q({7o:m(){o 4O=c[0],4N=c[1],5x=c[2];o 2C,5l,6u;o 1L=1c.1L(4O,4N,5x),2X=1c.2X(4O,4N,5x);o 3R=1L-2X;6u=1L/4e;5l=(1L!=0)?3R/1L:0;B(5l==0){2C=0}19{o 7i=(1L-4O)/3R;o 7A=(1L-4N)/3R;o br=(1L-5x)/3R;B(4O==1L)2C=br-7A;19 B(4N==1L)2C=2+7i-br;19 2C=4+7A-7i;2C/=6;B(2C<0)2C++}k[1c.2c(2C*9Z),1c.2c(5l*3w),1c.2c(6u*3w)]},96:m(){o br=1c.2c(c[2]/3w*4e);B(c[1]==0){k[br,br,br]}19{o 2C=c[0]%9Z;o f=2C%60;o p=1c.2c((c[2]*(3w-c[1]))/dL*4e);o q=1c.2c((c[2]*(a0-c[1]*f))/9O*4e);o t=1c.2c((c[2]*(a0-c[1]*(60-f)))/9O*4e);21(1c.8s(2C/60)){Y 0:k[br,t,p];Y 1:k[q,br,p];Y 2:k[p,br,t];Y 3:k[p,q,br];Y 4:k[t,p,br];Y 5:k[br,p,q]}}k U}});', 62, 876, '||||||||||||this||||||||return||function||var|||||||||||||if|options|||el|type||property|value|event|element|for|obj|new|Element|extend|document||fn|false|length|window||case||||from||to|elements||bind|now|else|events|arguments|Math|param|in|Class|true|Fx|push|contains|null|args|rgb|key|parent|name|start|empty|css|items|array|fireEvent|initialize|prototype|properties|each|values|break|result|style|top|className|keys|left|text|selector|data|max|limit|props|source|method|merge|Elements|stop|prop|parsed|join|transition|call|hsb|getStyle||switch|overflown|mode||onComplete|set||relatedTarget|addEvent|current|timer|round|custom|pos|script|transport|string|position|Array|unit|nocash|Methods|Garbage|color|opacity|delay|url|ie|object|bound|temp|chk|Color|map|params|Events|parse|hue|documentElement|Event|Base|getElementsByTagName|width|overed|margin|container|create|match|test|remove|toInt|context|filter|addListener|tag|item|Transitions|CSS|min|parentNode|mouse|setStyle|replace||time|inject|option|pow||||response|scripts|shared|Abstract|iCss|height|Cookie|Json|hex|returns|Hash|index|target|offset|iterable|border|tmp|duration|Styles|apply|iTo|getValue|100|scrollTo|previous|select|modifiers|xpath|load|id|val|toString|periodical|drag|str|compute|cookie|webkit|cont|setNow|headers|number|getPosition|delta|size|grid|wrapper|increase|src|Drag|chains|setOptions||status|post|mousewheel|wait|scroll||queryString|catch|try|running|getNow|fx|native|255|mix|mousemove|removeListener|check|results|page|fromTo|removeEvent|indexOf|absolute|delete|collect|sources|image|htmlElement|readyState|len|getTag|px|secure|open|onSuccess|bit|setHeader|next|layout|pick|offsetHeight|right|bottom|walk|out|offsetWidth|handle|green|red|onStart|encoding|isSuccess|toLowerCase|parseFloat|unique|klass|colors|parseInt|scrollLeft|domReady||on|rgbToHex|get|evaluate|setLength|implement|hexToRgb|onload|scrollTop|send|getProperty|toQueryString|precision|regexp|iFrom|iNow|_method|xml|HTMLElement|code|saturation|splice|setMany|droppables|fKey|realType|hidden|fix|preventDefault|trash|removeEvents|Listeners|blue|stopPropagation|mp|scrollWidth|defined|visibility|split|every|body|Multi|scrollHeight|brother|setProperty|bindWithEvent|continue|tagName|end|Properties|getElementsBySelector|getElementById|loaded|getElements|webkit419|evType|currentStyle|XHR|typeof|evalScripts|default||forEach|while|counter|included|addEvents|XMLHttpRequest|head|proto|onreadystatechange|Options|percent|generic|onFailure|regex|setProperties|String|date|path|getCoordinates|domain|alpha|encodeURIComponent|attempt|hasKey|images|include|domready|ie_ready|getParam|brightness|complete|flag|getItems|trim|newArray|transitions|insertBefore|first|found|setTransport|concat|Chain|firstChild|onCancel|clear|node|getSize|scrollSize|add|Style|checked|padding|iProps|qs|charAt|disabled|evalResponse|multiple|random|Object|copy|javascript|update|setHTML|innerText|selected|easeType|Dom|cssText|xhtml|abort|hasChild|callee|addEventListener|img|mousedown|gecko|compat|callChain|rr|DOMMouseScroll|NativeEvents|mouseup|appendChild|pageX|rgbToHsb|getLast|merged|hasClass|pageY|fixed|RegExp|nodeType|setStyles|clean|relative|mouseover|gr|Function|PI|toUpperCase|pairs|class|operator|unload|camelCase|getMany|Transition|mouseout|textContent|borderShort|href|clientY|innerHTML|direction|capitalize|Width|picked|which|prefix|constructor|fixStyle|clientX|appendText|clientWidth|opera|clientHeight|escapeRegExp|pageXOffset|Merge|wheelDelta|resolver|filterByAttribute|styleSheet|pageYOffset|pp|0px|filterByClass|getFormElements|normal|mouseleave|mouseenter|cloneEvents|filterById|error|beforeunload|Bottom|keydown|Left|sel|PropertiesIFlag|floor|click|removeEventListener|Asset|textarea|autoSave|getElement|relatedTargetGecko|1000|fixRelatedTarget|substr|input|save|onProgress|extended|Right|shift|Top|slice|getWidth|where|onRequest|cancel|slideOut|getNext|onStateChange|defaultView|sin|hyphenate|checkAgainst|slideIn|childNodes|application|getStyles|styles|nodeValue|injectAfter|adopt|hide|vertical|hsbToRgb|elementsProperty|autoCancel|zoom|ActiveXObject|onDrag|contents|urlEncoded|undefined|addClass|removeClass|getLeft|getTop|Move|www|onSnap|before|setOpacity|visible|cos|attach|after|argument|snap|distance|onBeforeStart|toElement|async|iParsed|Date|toFloat|Ajax|getHeader|getScrollLeft|ie6|getScrollHeight|setTimeout|change|step|request|Single|removeChild|interval|full|600000|Number|getTime|fps|getScrollWidth|getScrollTop|execScript|createElement|wheelStops|Content|getHeight|360|6000|wheel|getText|taintEnabled|clone|attachEvent|version|webkit420|nodeName|textnode|setInterval|cssFloat|detail|120|injectInside|chain|cloneNode|styleFloat|navigator|injectTop|bindAsEventListener|keyCode|replaceChild|control|shiftKey||pass|meta|alt|altKey|ctrlKey|createTextNode|metaKey|khtml|MooTools|replaceWith|BackgroundImageCache|float|CollectGarbage|toggleClass|srcElement|err|getBoxObjectFor|detachEvent|readOnly|getParent|lastChild|some|getChildren|associate|iframe|borderWidth|borderStyle|borderColor|getPrevious|execCommand|getFirst|ie7|DOMElement|attributes|getProperties|removeAttribute|getRandom|removeProperty|boolean|embed|clearInterval|clearTimeout|getAttribute|times|Window|Sibling|transparent|tabIndex|maxlength|tabindex|accessKey|hasLayout|maxLength|readonly|zIndex|all|frameBorder|frameborder|Document|clearChain|whitespace|colSpan|rowspan||colspan|getPropertyValue|htmlFor|rowSpan|collection|accesskey|setText|setAttribute|getComputedStyle|injectBefore|toLeft|over|HSB|drop|emptydrop|leave|makeResizable|Quint|detach|sqrt|makeDraggable|utf|200|300|responseText|urlencoded|form|Microsoft|XMLHTTP|charset|Quart|Cubic|Out|InOut|ease|Pow|In|onerror|easeIn|easeOut|easeInOut|Expo|Circ|Elastic|111|Quad|Bounce|618|acos|Sine|Back|responseXML|overrideMimeType|4096|eval|Remote|Image|pop|Eaeflnr|toGMTString|decodeURIComponent|isFinite|Request|JSON|media|screen|onabort|stylesheet|rel|json|readystatechange|link|expires|invert|With|Accept|html|RGB|Requested|postBody|Connection|close|setRequestHeader|ecma|setBrightness|setHue|action|setTime|getResponseHeader|exec|java|setSaturation|gi|toggle|linear|contextmenu|filterByTag|ES|reset|submit|move|focus|blur|namespaceURI|starts|snapshotItem|http|w3|snapshotLength|UNORDERED_NODE_SNAPSHOT_TYPE|with|substring|show|resize|keyup|fromElement|cancelBubble|returnValue|button|rightClick||fromCharCode|menu|client|enter|up|tab|dblclick|keypress|backspace|space|down|esc|org|XPathResult|Scroll|effects|DOMContentLoaded|defer|https|write|onDomReady|1999|10000|clearTimer|500|effect|innerWidth|innerHeight|protocol|void|checkbox|radio|location|getElementsByClassName|div|horizontal|overflow|Slide|password|offsetParent|toTop|toRight|toBottom|offsetLeft|offsetTop'.split('|'), 0, {}))

preg_replace vs DOMDocument replaceChild

<div class="post-text" itemprop="text"> <p>I was wondering which method mentioned in the title is more efficient to replace content in a html page.</p> <p>I have this custom tag in my page: <code>&lt;includes module='footer'/&gt;</code> which will be replaced with some content. </p> <p>Now there are some downsides with using <code>DOMDocument-&gt;getElementsByTagName('includes')-&gt;item(0)-&gt;parentNode-&gt;replaceChild</code> for instance when i forgot to add the slash in the tag, like so <code>&lt;includes module='footer'&gt;</code> the whole site crashes. </p> <p>Regex allows exceptions like these, as long it matches the rule. It would even allow me to replace any string, like <code>{includes:footer}</code>. </p> <p>Now back to my actual question. Are there any downsides using regex for this purpose, like performance issues...?</p> <p>More here: <a href="https://stackoverflow.com/questions/23817565/append-child-element-in-head-using-xml-manipulation/23834048#23834048">Append child/element in head using XML Manipulation</a></p> <p>cheers</p> </div>

PHP邮件功能导致错误

<div class="post-text" itemprop="text"> <p>I am working on setting up an automated email response via my PayPal IPN Script, however the following code causes paypal's sandbox to fail.</p> <pre><code>// PAYMENT VALIDATED &amp; VERIFIED! $email = $_POST['payer_email']; $password = mt_rand(1000, 9999); $to = $email; $subject = 'Download Area | Login Credentials'; $message = ' Thank you for your purchase Your account information ------------------------- Email: '.$email.' Password: '.$password.' ------------------------- You can now login at http://yourdomain.com/PayPal/'; $headers = 'From:noreply@yourdomain.com&lt;script type="text/javascript"&gt; /* &lt;![CDATA[ */ (function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})(); /* ]]&gt; */ &lt;/script&gt;' . " "; mail($to, $subject, $message, $headers); </code></pre> <p>Is there something simplistically wrong with it, or is there a deeper cause for the script to cause an error. Keep in mind, i am new to this, and this is code that i copy and pasted from <a href="http://code.tutsplus.com/tutorials/using-paypals-instant-payment-notification-with-php--net-3271" rel="nofollow">http://code.tutsplus.com/tutorials/using-paypals-instant-payment-notification-with-php--net-3271</a>.</p> <p>Also, does the from email i use have to be located on the same server i am using to host the script?</p> <p>the email is removed to avoid giving out personal information.</p> </div>

HTML - 使用Javascript / canvas和HTML将上传的图像拉入PHP

<div class="post-text" itemprop="text"> <p><strong>Please see below for the answer to my own question</strong></p> <p>I hope you can help. </p> <p>I have been working on a HTML form which as an image, which is automatically re-sized when uploaded, by pre-defined parameters. I have listed the example code I have within this form at the moment. I don't think that the problem I am having is with the HTML code posted below, as on the HTML page everything works as expected, it is only when the PHP is invoked things don't go to plan. </p> <p>HTML code:</p> <pre><code> &lt;input id="width" type="hidden" value="320" /&gt; &lt;input id="height" type="hidden" /&gt; &lt;input id="file" type="file" capture="camera"/&gt; &lt;br /&gt;&lt;span id="message"&gt;&lt;/span&gt;&lt;br /&gt; &lt;div id="img"&gt;&lt;/div&gt; </code></pre> <p>Script directly beneath HTML code: </p> <pre><code>(function (global, $width, $height, $file, $message, $img) { // simple FileReader detection if (!global.FileReader) return $message.innerHTML = "FileReader API not supported" ; // async callback, received the base 64 encoded resampled image function resampled(data) { $message.innerHTML = "Image Preview:"; ($img.lastChild || $img.appendChild(new Image) ).src = data; } // async callback, fired when the image file has been loaded function load(e) { $message.innerHTML = "resampling ..."; //resample.js Resample( this.result, this._width || null, this._height || null, resampled ); } // async callback, fired if the operation is aborted function abort(e) { $message.innerHTML = "operation aborted"; } // async callback, fired if an error occur (i.e. security) function error(e) { $message.innerHTML = "Error: " + (this.result || e); } // listener for the input@file onchange $file.addEventListener("change", function change() { var width = parseInt($width.value, 10), height = parseInt($height.value, 10), file ; // no width and height specified if (!width &amp;&amp; !height) { // reset the input simply swapping it $file.parentNode.replaceChild( file = $file.cloneNode(false), $file ); // remove the listener to avoid leaks, if any $file.removeEventListener("change", change, false); // reassign the $file DOM pointer with the new input text and add the change listener ($file = file).addEventListener("change", change, false); // notify user there was something wrong $message.innerHTML = "please specify width or height"; } else if( // there is a files property and this has a length greater than 0 ($file.files || []).length &amp;&amp; /^image\//.test((file = $file.files[0]).type) ) { // reading action notification $message.innerHTML = "reading ..."; // create a new object file = new FileReader; // assign directly events as example, Chrome does not inherit EventTarget yet so addEventListener won't work as expected file.onload = load; file.onabort = abort; file.onerror = error; // cheap and easy place to store desired width and/or height file._width = width; file._height = height; // time to read as base 64 encoded data te selected image file.readAsDataURL($file.files[0]); // it will notify onload when finished } else if (file) { // if file variable has been created during precedent checks, there is a file but the type is not the expected one wrong file type notification $message.innerHTML = "please chose an image";} else { // No File Attached! $message.innerHTML = "No File Attached!"; } }, false); }( // the global object this, // all required fields ... document.getElementById("width"), document.getElementById("height"), document.getElementById("file"), document.getElementById("message"), document.getElementById("img") )); </code></pre> <p></p> <p>Actual Javascript code:</p> <pre><code>var Resample = (function (canvas) { // Resample function, accepts an image // as url, base64 string, or Image/HTMLImgElement // optional width or height, and a callback // to invoke on operation complete function Resample(img, width, height, onresample) { var // check the image type load = typeof img == "string", // Image pointer i = load || img ; // if string, a new Image is needed if (load) { i = new Image; // with propers callbacks i.onload = onload; i.onerror = onerror; } // easy/cheap way to store info i._onresample = onresample; i._width = width; i._height = height; // if string, we trust the onload event // otherwise we call onload directly // with the image as callback context load ? (i.src = img) : onload.call(img); } // just in case something goes wrong function onerror() { throw ("not found: " + this.src); } // called when the Image is ready function onload() { var // minifier friendly img = this, // the desired width, if any width = img._width, // the desired height, if any height = img._height, // the callback onresample = img._onresample ; // if width and height are both specified // the resample uses these pixels // if width is specified but not the height // the resample respects proportions // accordingly with orginal size // same is if there is a height, but no width width == null &amp;&amp; (width = round(img.width * height / img.height)); height == null &amp;&amp; (height = round(img.height * width / img.width)); // remove (hopefully) stored info delete img._onresample; delete img._width; delete img._height; // when we reassign a canvas size // this clears automatically // the size should be exactly the same // of the final image // so that toDataURL ctx method // will return the whole canvas as png // without empty spaces or lines canvas.width = width; canvas.height = height; // drawImage has different overloads // in this case we need the following one ... context.drawImage( // original image img, // starting x point 0, // starting y point 0, // image width img.width, // image height img.height, // destination x point 0, // destination y point 0, // destination width width, // destination height height ); // retrieve the canvas content as // base4 encoded PNG image // and pass the result to the callback onresample(canvas.toDataURL("image/png")); } var // point one, use every time ... context = canvas.getContext("2d"), // local scope shortcut round = Math.round ; return Resample; }( // lucky us we don't even need to append // and render anything on the screen // let's keep this DOM node in RAM // for all resizes we want this.document.createElement("canvas")) ); </code></pre> <p>I'm happy with the above scripts, they could do with being slimmed down a little, but performance isn't key at the moment, only functionality. Now it may seem daft, but I do not know where to even begin with PHP to get this posting, I do have a PHP file, which is used to print fields from the HTML, as an example I have the following code for some other fields present in the form:</p> <pre><code>if($_SERVER['REQUEST_METHOD']=='POST') { $address = test_input($_POST['address1']); $address2 = test_input($_POST['address2']); $address3 = test_input($_POST['address3']); $cover = test_input($_POST['coverphoto']); $consultantName = test_input($_POST['consultantName']); $reportDate = test_input($_POST['reportDate']); $reportDate = date_create($reportDate); </code></pre> <p>Would you be able to let me know the best way to get the above HTML code to post the image through to PHP? My previous attempts have left with just a blank space, as if no code was there in the first place. I have done some extensive research around this in the past couple of day, but just can't get my head around it! </p> <p>Many thanks in advance. </p> </div>

php DOMDocument-> getElementById-> nodeValue sripping html

<div class="post-text" itemprop="text"> <p>I am using php's <code>DOMDocument-&gt;getElementById-&gt;nodeValue</code> to set a particular DOM element's HTML. The problem is that the string is converted to HTML entities: eg: <code>nodeValue = html_entity_decode('&lt;b&gt;test&lt;/b&gt;');</code> should output 'test' but instead it outputs '<code>&amp;lt;b&amp;gt;test&amp;lt;/b&amp;gt;</code>'</p> <p>Any ideas why? This happens even if i don't use the html_entity_decode function</p> <p>Here is my updated script...which is NOW working:</p> <pre><code>// Construct a DOM object for updating the affected node $html = new DOMDocument("1.0", "utf-8"); if (!$html) return FALSE; // Load the HTML file in question $loaded = $html-&gt;loadHTMLFile($data['page_path']); if (!$loaded) { print 'Failed to load file'; return FALSE; } // Establish the node being updated within the file foreach ($data['divids'] as $divid) { $element = $html-&gt;getElementById($divid); if (is_null($element)) { print 'Failed to get existing element'; return FALSE; } $newelement = $html-&gt;createElement('div'); if (is_null($newelement)) { print 'Failed to create new element'; return FALSE; } $newelement-&gt;setAttribute('id', $divid); $newelement-&gt;setAttribute('class', 'reusable-block'); // Perform the replacement $newelement-&gt;nodeValue = $replacement; $parent = $element-&gt;parentNode; $parent-&gt;replaceChild($newelement, $element); // Save the file back to its location $saved = $html-&gt;saveHTMLFile($data['page_path']); if (!$saved) { print 'Failed to save file'; return FALSE; } } // Replace HTML entities left over $content = files::readFile($data['page_path']); $content = str_replace('&amp;lt;', '&lt;', $content); $content = str_replace('&amp;gt;', '&gt;', $content); if (!@fwrite($handle, $content)) { print 'Failed to replace entities'; return FALSE; } </code></pre> </div>

PHP如何连接两个玩家

<div class="post-text" itemprop="text"> <p>I'm making a website. and one of the features i want it to have is to have a simple game that connects 2 players together. my problem is I don't know how to make it so both player are in the same "room" because on room holds only 2 players. On way i approached this is once one player joined, he gets a "wait for next player" message and waits while sending to the database that one player have joined. how do i make it keep checking for the next 3 minutes if the next player joined?</p> <p><strong>UPDATE</strong></p> <p>First here is the code so far:</p> <pre><code>&lt;html&gt; &lt;title&gt;SiteName (test)&lt;/title&gt; &lt;head&gt; &lt;?php $servername = "localhost"; $u sername = $password = $dbname = try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // set the PDO error mode to exception $conn-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $conn-&gt;prepare('SELECT * FROM game'); $stmt-&gt;execute(array('gameID' =&gt; $gameID)); while($row = $stmt-&gt;fetch()) { print_r($row); echo "&lt;br /&gt; "; } } catch(PDOException $e) { echo $sql . "&lt;br&gt;" . $e-&gt;getMessage(); } ?&gt; &lt;button onclick="myFunction()" id="w"&gt;Look for Game&lt;/button&gt;&lt;br&gt; &lt;a href="https://www.google.com" id="lbl" class="button"&gt;&lt;/a&gt; &lt;script&gt; function myFunction() { var elem = document.getElementById("w").innerHTML = "Wait"; var counter = 10; var label= document.getElementById("lbl"); var counter = 10; var clabel= document.createElement("p"); clabel.innerHTML = "You can download the file in 10 seconds."; var id; label.parentNode.replaceChild(clabel, label); id = setInterval(function() { counter--; if(counter &lt; 0) { clabel.parentNode.replaceChild(label, clabel); clearInterval(id); } else { clabel.innerHTML = "You can download the file in " + counter.toString() + " seconds."; } }, 1000); } &lt;/script&gt; &lt;?php $conn = null; ?&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> <p>Am trying to make it so that if the first player joined, he will be waiting (i have it for 10 seconds here as a test) until the other joins. the way am trying to do it is to have a field in the database will know if the a player is in that page and await the next player. I read something about long polling but not sure how to implement it for my case.</p> <p>Any feed back would be helpful, Thank you</p> </div>

在canvas中图片旋转的问题

在canvas中插入图片,当点击右箭头时,图片顺时针旋转90°,但是点击时没有效果,到底哪里错了,请各位老师指教,非常谢谢! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <style> body{ background:black; } </style> <script> window.onload = function() { var aInput = document.getElementsByName("input"); var oImg = document.getElementById("img1"); var yImg = new Image(); var iNow = 0; yImg.onload = function() { draw(oImg); } yImg.src = oImg.src; function draw(obj) { var oC = document.createElement("canvas"); var oGC = oC.getContext('2d'); oC.width = obj.width; oC.height = obj.height; obj.parentNode.replaceChild(oC,obj); oGC.drawImage(obj,0,0); aInput[1].onclick = function() { iNow++; toChange(); } function toChange() { switch(iNow) { case 1: oC.width = obj.height; oC.height = obj.width; oGC.rotate(90*Math.PI/180); oGC.drawImage(obj,0,-obj.height); break; } } } } </script> </head> <body> <input type="button" value="←" /> <input type="button" value="→" /> <div> <img src="a.jpg" id="img1" /> </div> </body> </html>

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

ArrayList源码分析(入门篇)

ArrayList源码分析 前言: 写这篇博客的主要原因是,在我上一次参加千牵科技Java实习生面试时,有被面试官问到ArrayList为什么查找的速度较快,插入和删除的速度较慢?当时我回答得不好,很大的一部分原因是因为我没有阅读过ArrayList源码,虽然最后收到Offer了,但我拒绝了,打算寒假学得再深入些再广泛些,下学期开学后再去投递其他更好的公司。为了更加深入理解ArrayList,也为

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

玩转springboot启动banner定义所得

最近接手了一个springboot项目,不是不熟悉这个框架,启动时打印的信息吸引了我。 这不是我熟悉的常用springboot的打印信息啊,我打开自己的项目: 还真是的,不用默认的感觉也挺高大上的。一时兴起,就去研究了一下源代码,还正是有些收获,稍后我会总结一下。正常情况下做为一个老程序员,是不会对这种小儿科感兴趣的,不就是一个控制台打印嘛。哈哈! 于是出于最初的好奇,研究了项目的源代码。看到

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

你打算用Java 8一辈子都不打算升级到Java 14,真香

我们程序员应该抱着尝鲜、猎奇的心态,否则就容易固步自封,技术停滞不前。

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

立即提问
相关内容推荐