<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>No Rest For The Weekend &#187; javascript</title>
	<atom:link href="http://www.norestfortheweekend.com/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.norestfortheweekend.com</link>
	<description>Time is an illusion. Weekends doubly so.</description>
	<lastBuildDate>Thu, 02 Feb 2012 15:30:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Webkit doesn&#8217;t fire the load event on images</title>
		<link>http://www.norestfortheweekend.com/2011/04/30/webkit-doesnt-fire-the-load-event-on-images/</link>
		<comments>http://www.norestfortheweekend.com/2011/04/30/webkit-doesnt-fire-the-load-event-on-images/#comments</comments>
		<pubDate>Sat, 30 Apr 2011 17:47:19 +0000</pubDate>
		<dc:creator>markstickley</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[img]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[load]]></category>
		<category><![CDATA[load event]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://www.norestfortheweekend.com/?p=192</guid>
		<description><![CDATA[Well that&#8217;s not strictly true. The full headline reads something like this: Webkit doesn&#8217;t fire the load event on images when you change the src attribute and the new src is the same as the old That seems reasonable That seems like reasonable behaviour. I mean, the image is already loaded. Changing the src attribute [...]]]></description>
			<content:encoded><![CDATA[<p>Well that&#8217;s not strictly true. The full headline reads something like this:</p>
<p><strong>Webkit doesn&#8217;t fire the <code>load</code> event on images when you change the <code>src</code> attribute and the new <code>src</code> is the same as the old</strong></p>
<h3>That seems reasonable</h3>
<p>That seems like reasonable behaviour. I mean, the image is already loaded. Changing the <code>src</code> attribute to it&#8217;s <em>current value</em> isn&#8217;t really changing it at all. It&#8217;s staying the same. If the <code>src</code> is the same and the image is already loaded, why fire the <code>load</code> event? You would only want to do that if the image was reloaded but doing that would be pointless as it&#8217;s already loaded. Loading it again would be a waste of bandwidth and make the experience feel slower; not what browser manufacturers are aiming for.</p>
<p>So what&#8217;s the big deal?</p>
<h3>Inherently lazy</h3>
<p>Developers like myself are inherently lazy. I don&#8217;t mean we&#8217;re workshy, but rather we always look for the easiest, cleanest solution to problems. This behaviour in WebKit fails twice on this count.</p>
<ol>
<li>It&#8217;s inconsistent with other browsers. I have to work around it, potentially adding browser-specific code. That&#8217;s not good.</li>
<li>It forces me to add extra code to cope with it&#8217;s specific requirements. Let me explain:</li>
</ol>
<p>If I was writing for a JS-guaranteed environment this wouldn&#8217;t be such a problem but I&#8217;m a conscientious sort of guy and realise that not everyone will have the benefits of a modern browser with all the options set to &#8216;awesome&#8217;. I want to cater for the JS-disadvantaged as well.</p>
<p>Let&#8217;s assume I&#8217;m writing a carousel for a photo slideshow that shows 4 pictures at a time. I want to show the first 4 pictures by default so that at least some content appears even for the non-JS users. Then, using non-intrusive JS I augment the slideshow to add next / previous buttons and the ability to click the image to enlarge it in a lightbox.</p>
<p>To avoid repeating a lot of code in a setup function that would also be present in the next/previous function I can write a single function to set the page of the carousel, setting up the images and their click events.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> picturesPerPage <span style="color: #339933;">=</span> <span style="color: #CC0000;">4</span><span style="color: #339933;">,</span>
    pictures <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#pictures img'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> loadGalleryCarouselPage <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>pagenumber<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> imageStart <span style="color: #339933;">=</span> pagenumber<span style="color: #339933;">*</span>picturesPerPage<span style="color: #339933;">;</span>
    pictures.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> picture <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span>pictures<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
            pictureContainer <span style="color: #339933;">=</span> picture.<span style="color: #660066;">parent</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        picture.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>carouseldata.<span style="color: #660066;">images</span><span style="color: #009900;">&#91;</span>imageStart<span style="color: #339933;">+</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            picture.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            picture.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'load'</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                pictureContainer.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'loading'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                picture.<span style="color: #660066;">unbind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'load'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            pictureContainer.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'loading'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            picture.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'src'</span><span style="color: #339933;">,</span>carouseldata.<span style="color: #660066;">images</span><span style="color: #009900;">&#91;</span>imageStart<span style="color: #339933;">+</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">thumbnailurl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            picture.<span style="color: #660066;">unbind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            picture.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                e.<span style="color: #660066;">preventDefault</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                pictureLink.<span style="color: #660066;">fancybox</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
                    <span style="color: #3366CC;">&quot;href&quot;</span><span style="color: #339933;">:</span> carouseldata.<span style="color: #660066;">images</span><span style="color: #009900;">&#91;</span>imageStart<span style="color: #339933;">+</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">imageurl</span>
                <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
loadGalleryCarouselPage<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>I&#8217;m using <a href="http://jquery.com/">JQuery</a> and <a href="http://fancybox.net/">Fancybox</a> for this example.</p>
<p>So what we have there is a function that loops over the four <code>img</code> tags, pulls information out of an array (<code>carouseldata</code>) based on the page offset passed as an argument, sets up click and load listeners and changes the image&#8217;s <code>src</code> attribute. This will work for any page at any time. In theory we could add a &#8216;jump to page&#8217; option where the user could choose the page number to skip to. But we won&#8217;t.</p>
<p>This is especially handy as we can simply call <code>loadGalleryCarouselPage(0);</code> to set up the event listeners when the page first loads without having to duplicate most of the lines elsewhere. We even get a natty little loading spinner if we take advantage of the <code>loading</code> class that is set.</p>
<h3>Making things difficult</h3>
<p>When the page loads it&#8217;s a bit of a race. The results of this function varies between refreshes for me. If the image has not yet loaded when the JS runs then it works fine. If the image has already loaded, however, here&#8217;s what happens:</p>
<ol>
<li>A <code>load</code> event listener is set</li>
<li>The <code>loading</code> class is applied which shows a spinner and hides the image</li>
<li>The <code>src</code> of the <code>img</code> is set</li>
<li>The <code>load</code> event DOES NOT FIRE in WebKit because the image is already loaded</li>
<li>The picture remains hidden and the spinner keeps spinning even though the image is loaded</li>
</ol>
<p>And that is frustrating.</p>
<p>It&#8217;s an intermittent problem though, only when loading race conditions fail. Here&#8217;s another situation where it happens every time.</p>
<h3>The dead cert.</h3>
<p>The total number of images in the carousel doesn&#8217;t divide perfectly by four, so on the final page there are only two images showing. The final two of the four <code>img</code> elements are hidden from view. They are hidden rather than removed because:</p>
<ol>
<li>They act as spacers so that other elements flow around them correctly</li>
<li>The <code>img</code> tag needs to stay so that we can easily change the <code>src</code> attribute if the user navigates back to a page with 4 images on it.</li>
</ol>
<p>So say we&#8217;re on page 9 of 10 and click &#8216;Next&#8217;. Images 1 &#038; 2 are updated to show the final two pictures and images 3 &#038; 4 are hidden. Importantly: the <code>src</code> attributes of images 3 &#038; 4 don&#8217;t change. When we click &#8216;Previous&#8217;, images 1 &#038; 2 are changed back but 3 &#038; 4 are stuck with the loading spinner. That&#8217;s because, like before, the <code>src</code> was already set and it was equal to the new value.</p>
<h3>Working around it</h3>
<p>We could set the hidden images to a transparent .gif or .png instead of hiding them which would solve the second problem but because we want the images showing for non-JS users when the page loads we can&#8217;t use that technique to fix this. Also, downloading that extra image means extra bandwidth and latency times that we&#8217;d rather not have to deal with.</p>
<p>It turns out that setting the <code>src</code> to <code>''</code> (empty string) immediately before setting the image url will fix the problem. But! It causes the images (and consequently their container) to collapse to zero width and height in Firefox while the new images are loading which looks really bad if you&#8217;re trying to navigate a slideshow.</p>
<p>Here&#8217;s my solution:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> picturesPerPage <span style="color: #339933;">=</span> <span style="color: #CC0000;">4</span><span style="color: #339933;">,</span>
    pictures <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#pictures img'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> loadGalleryCarouselPage <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>pagenumber<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> imageStart <span style="color: #339933;">=</span> pagenumber<span style="color: #339933;">*</span>picturesPerPage<span style="color: #339933;">;</span>
    pictures.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> picture <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span>pictures<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
            pictureContainer <span style="color: #339933;">=</span> picture.<span style="color: #660066;">parent</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        picture.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>carouseldata.<span style="color: #660066;">images</span><span style="color: #009900;">&#91;</span>imageStart<span style="color: #339933;">+</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            picture.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            picture.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'load'</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                pictureContainer.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'loading'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                picture.<span style="color: #660066;">unbind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'load'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            pictureContainer.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'loading'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            picture.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'src'</span><span style="color: #339933;">,</span>carouseldata.<span style="color: #660066;">images</span><span style="color: #009900;">&#91;</span>imageStart<span style="color: #339933;">+</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">thumbnailurl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            picture.<span style="color: #660066;">unbind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            picture.<span style="color: #660066;">bind</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'click'</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                e.<span style="color: #660066;">preventDefault</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                pictureLink.<span style="color: #660066;">fancybox</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
                    <span style="color: #3366CC;">&quot;href&quot;</span><span style="color: #339933;">:</span> carouseldata.<span style="color: #660066;">images</span><span style="color: #009900;">&#91;</span>imageStart<span style="color: #339933;">+</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">imageurl</span>
                <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
            picture.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'src'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>$.<span style="color: #660066;">browser</span>.<span style="color: #660066;">webkit</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#pictures img'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'src'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
loadGalleryCarouselPage<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>I added an <code>else</code> so that if there aren&#8217;t enough pictures to fill all the <code>img</code> tags the <code>src</code> of the unused images is set to an empty string. There will always be at least one image on each page so there will always be an image at full height to prop up the carousel container while those hidden <code>img</code> tags are primed to receive more content.</p>
<p>I also added a little <code>if</code> block directly before initialising the carousel, at the bottom. If the browser is webkit-powered then it&#8217;ll loop over the <code>img</code> tags and prime them (set their <code>src</code> to empty) before initialisation. Because this is done using JS, non-JS users will still see the images.</p>
<h3>Grumpy</h3>
<p>I&#8217;m grumpy about having to put in that extra, browser specific code. Setting the <code>src</code> to an empty string seems hacky. But it works and the logic is still clean and minimal. So it&#8217;ll do.</p>
<p>I hope that helps anyone having image loading javascript issues. And as usual I&#8217;d be interested to hear if you have any alternative / better solutions!</p>
<div class="furtherreading">
Check out the carousel in action <a href="http://www.qkschool.org.uk">here</a>.
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.norestfortheweekend.com/2011/04/30/webkit-doesnt-fire-the-load-event-on-images/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Regex for an email address</title>
		<link>http://www.norestfortheweekend.com/2010/10/13/regex-for-an-email-address/</link>
		<comments>http://www.norestfortheweekend.com/2010/10/13/regex-for-an-email-address/#comments</comments>
		<pubDate>Wed, 13 Oct 2010 13:21:53 +0000</pubDate>
		<dc:creator>markstickley</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[email address]]></category>
		<category><![CDATA[regular expression]]></category>

		<guid isPermaLink="false">http://www.norestfortheweekend.com/?p=138</guid>
		<description><![CDATA[I may have found what I am classing as a definitive email regular expression...]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s something that I&#8217;ve come up against several times and each time I google for it I turn up a different result.</p>
<p>How do you validate an email address?</p>
<p>Obviously you want to use a <a href="http://en.wikipedia.org/wiki/Regular_expression">regular expression</a>, but given the specification for <a href="http://en.wikipedia.org/wiki/Email_address">email address</a>es that&#8217;s going to be one really complicated line of code.</p>
<p>Following a user&#8217;s complaint that they could not register with our site with their (perfectly legitimate) address because of our validation, today&#8217;s search yielded more success <a href=http://atlantic-drugs.net/products/viagra.htm>viagra</a> usual. Near the bottom of the <a href="http://cpansearch.perl.org/src/RJBS/Email-Valid-0.184/lib/Email/Valid.pm">source</a> of the <a href="http://search.cpan.org/~rjbs/Email-Valid-0.184/lib/Email/Valid.pm">Perl Email::Valid module</a> there is a very long regular expression which I have lifted directly and placed in this page.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">/^</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span><span style="color: #009900;">&#40;</span>\040<span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;&gt;@,;:</span><span style="color: #3366CC;">&quot;.<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\[</span><span style="color: #000099; font-weight: bold;">\]</span><span style="color: #000099; font-weight: bold;">\0</span>00-<span style="color: #000099; font-weight: bold;">\0</span>37<span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff]+(?![^(<span style="color: #000099; font-weight: bold;">\0</span>40)&lt;&gt;@,;:&quot;</span>.\\\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span>\000<span style="color: #339933;">-</span>\037\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">|</span><span style="color: #3366CC;">&quot;[^<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\0</span>15&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #3366CC;">&quot;]*)*&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\.<span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span><span style="color: #009900;">&#40;</span>\040<span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;&gt;@,;:</span><span style="color: #3366CC;">&quot;.<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\[</span><span style="color: #000099; font-weight: bold;">\]</span><span style="color: #000099; font-weight: bold;">\0</span>00-<span style="color: #000099; font-weight: bold;">\0</span>37<span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff]+(?![^(<span style="color: #000099; font-weight: bold;">\0</span>40)&lt;&gt;@,;:&quot;</span>.\\\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span>\000<span style="color: #339933;">-</span>\037\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">|</span><span style="color: #3366CC;">&quot;[^<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\0</span>15&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #3366CC;">&quot;]*)*&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*@</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span><span style="color: #009900;">&#40;</span>\040<span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;&gt;@,;:</span><span style="color: #3366CC;">&quot;.<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\[</span><span style="color: #000099; font-weight: bold;">\]</span><span style="color: #000099; font-weight: bold;">\0</span>00-<span style="color: #000099; font-weight: bold;">\0</span>37<span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff]+(?![^(<span style="color: #000099; font-weight: bold;">\0</span>40)&lt;&gt;@,;:&quot;</span>.\\\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span>\000<span style="color: #339933;">-</span>\037\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\.<span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span><span style="color: #009900;">&#40;</span>\040<span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;&gt;@,;:</span><span style="color: #3366CC;">&quot;.<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\[</span><span style="color: #000099; font-weight: bold;">\]</span><span style="color: #000099; font-weight: bold;">\0</span>00-<span style="color: #000099; font-weight: bold;">\0</span>37<span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff]+(?![^(<span style="color: #000099; font-weight: bold;">\0</span>40)&lt;&gt;@,;:&quot;</span>.\\\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span>\000<span style="color: #339933;">-</span>\037\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*|</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span><span style="color: #009900;">&#40;</span>\040<span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;&gt;@,;:</span><span style="color: #3366CC;">&quot;.<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\[</span><span style="color: #000099; font-weight: bold;">\]</span><span style="color: #000099; font-weight: bold;">\0</span>00-<span style="color: #000099; font-weight: bold;">\0</span>37<span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff]+(?![^(<span style="color: #000099; font-weight: bold;">\0</span>40)&lt;&gt;@,;:&quot;</span>.\\\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span>\000<span style="color: #339933;">-</span>\037\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">|</span><span style="color: #3366CC;">&quot;[^<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\0</span>15&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #3366CC;">&quot;]*)*&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;&gt;@,;:</span><span style="color: #3366CC;">&quot;.<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\[</span><span style="color: #000099; font-weight: bold;">\]</span><span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff<span style="color: #000099; font-weight: bold;">\0</span>00-<span style="color: #000099; font-weight: bold;">\0</span>10<span style="color: #000099; font-weight: bold;">\0</span>12-<span style="color: #000099; font-weight: bold;">\0</span>37]*(?:(?:<span style="color: #000099; font-weight: bold;">\(</span>[^<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\0</span>15()]*(?:(?:<span style="color: #000099; font-weight: bold;">\\</span>[^<span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff]|<span style="color: #000099; font-weight: bold;">\(</span>[^<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\0</span>15()]*(?:<span style="color: #000099; font-weight: bold;">\\</span>[^<span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff][^<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\0</span>15()]*)*<span style="color: #000099; font-weight: bold;">\)</span>)[^<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\0</span>15()]*)*<span style="color: #000099; font-weight: bold;">\)</span>|&quot;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #3366CC;">&quot;]*(?:<span style="color: #000099; font-weight: bold;">\\</span>[^<span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff][^<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\0</span>15&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #3366CC;">&quot;)[^()&lt;&gt;@,;:&quot;</span>.\\\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span>\x80<span style="color: #339933;">-</span>\xff\000<span style="color: #339933;">-</span>\010\012<span style="color: #339933;">-</span>\037<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*&lt;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:@</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span><span style="color: #009900;">&#40;</span>\040<span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;&gt;@,;:</span><span style="color: #3366CC;">&quot;.<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\[</span><span style="color: #000099; font-weight: bold;">\]</span><span style="color: #000099; font-weight: bold;">\0</span>00-<span style="color: #000099; font-weight: bold;">\0</span>37<span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff]+(?![^(<span style="color: #000099; font-weight: bold;">\0</span>40)&lt;&gt;@,;:&quot;</span>.\\\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span>\000<span style="color: #339933;">-</span>\037\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\.<span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span><span style="color: #009900;">&#40;</span>\040<span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;&gt;@,;:</span><span style="color: #3366CC;">&quot;.<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\[</span><span style="color: #000099; font-weight: bold;">\]</span><span style="color: #000099; font-weight: bold;">\0</span>00-<span style="color: #000099; font-weight: bold;">\0</span>37<span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff]+(?![^(<span style="color: #000099; font-weight: bold;">\0</span>40)&lt;&gt;@,;:&quot;</span>.\\\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span>\000<span style="color: #339933;">-</span>\037\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:,</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*@</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span><span style="color: #009900;">&#40;</span>\040<span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;&gt;@,;:</span><span style="color: #3366CC;">&quot;.<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\[</span><span style="color: #000099; font-weight: bold;">\]</span><span style="color: #000099; font-weight: bold;">\0</span>00-<span style="color: #000099; font-weight: bold;">\0</span>37<span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff]+(?![^(<span style="color: #000099; font-weight: bold;">\0</span>40)&lt;&gt;@,;:&quot;</span>.\\\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span>\000<span style="color: #339933;">-</span>\037\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\.<span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span><span style="color: #009900;">&#40;</span>\040<span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;&gt;@,;:</span><span style="color: #3366CC;">&quot;.<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\[</span><span style="color: #000099; font-weight: bold;">\]</span><span style="color: #000099; font-weight: bold;">\0</span>00-<span style="color: #000099; font-weight: bold;">\0</span>37<span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff]+(?![^(<span style="color: #000099; font-weight: bold;">\0</span>40)&lt;&gt;@,;:&quot;</span>.\\\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span>\000<span style="color: #339933;">-</span>\037\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*:</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span><span style="color: #009900;">&#40;</span>\040<span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;&gt;@,;:</span><span style="color: #3366CC;">&quot;.<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\[</span><span style="color: #000099; font-weight: bold;">\]</span><span style="color: #000099; font-weight: bold;">\0</span>00-<span style="color: #000099; font-weight: bold;">\0</span>37<span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff]+(?![^(<span style="color: #000099; font-weight: bold;">\0</span>40)&lt;&gt;@,;:&quot;</span>.\\\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span>\000<span style="color: #339933;">-</span>\037\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">|</span><span style="color: #3366CC;">&quot;[^<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\0</span>15&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #3366CC;">&quot;]*)*&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\.<span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span><span style="color: #009900;">&#40;</span>\040<span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;&gt;@,;:</span><span style="color: #3366CC;">&quot;.<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\[</span><span style="color: #000099; font-weight: bold;">\]</span><span style="color: #000099; font-weight: bold;">\0</span>00-<span style="color: #000099; font-weight: bold;">\0</span>37<span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff]+(?![^(<span style="color: #000099; font-weight: bold;">\0</span>40)&lt;&gt;@,;:&quot;</span>.\\\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span>\000<span style="color: #339933;">-</span>\037\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">|</span><span style="color: #3366CC;">&quot;[^<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\0</span>15&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #3366CC;">&quot;]*)*&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*@</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span><span style="color: #009900;">&#40;</span>\040<span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;&gt;@,;:</span><span style="color: #3366CC;">&quot;.<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\[</span><span style="color: #000099; font-weight: bold;">\]</span><span style="color: #000099; font-weight: bold;">\0</span>00-<span style="color: #000099; font-weight: bold;">\0</span>37<span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff]+(?![^(<span style="color: #000099; font-weight: bold;">\0</span>40)&lt;&gt;@,;:&quot;</span>.\\\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span>\000<span style="color: #339933;">-</span>\037\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\.<span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span><span style="color: #009900;">&#40;</span>\040<span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;&gt;@,;:</span><span style="color: #3366CC;">&quot;.<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\[</span><span style="color: #000099; font-weight: bold;">\]</span><span style="color: #000099; font-weight: bold;">\0</span>00-<span style="color: #000099; font-weight: bold;">\0</span>37<span style="color: #000099; font-weight: bold;">\x</span>80-<span style="color: #000099; font-weight: bold;">\x</span>ff]+(?![^(<span style="color: #000099; font-weight: bold;">\0</span>40)&lt;&gt;@,;:&quot;</span>.\\\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span>\000<span style="color: #339933;">-</span>\037\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015\<span style="color: #009900;">&#91;</span>\<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">|</span>\<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">?:</span>\\<span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\x80<span style="color: #339933;">-</span>\xff<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">^</span>\\\x80<span style="color: #339933;">-</span>\xff\n\015<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>\<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span>\040\t<span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*&gt;</span><span style="color: #009900;">&#41;</span>$<span style="color: #339933;">/</span></pre></div></div>

<p>I won&#8217;t lie to you: I haven&#8217;t dissected it to manually confirm that it does what it should, but it has been successful so far in the tests I&#8217;ve thrown at it. It also works in Javascript which, for me, is a massive win.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.norestfortheweekend.com/2010/10/13/regex-for-an-email-address/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Console.log for all!</title>
		<link>http://www.norestfortheweekend.com/2009/12/12/console-log-for-all/</link>
		<comments>http://www.norestfortheweekend.com/2009/12/12/console-log-for-all/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 19:47:01 +0000</pubDate>
		<dc:creator>markstickley</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[console.log]]></category>
		<category><![CDATA[firebug]]></category>

		<guid isPermaLink="false">http://www.norestfortheweekend.com/?p=110</guid>
		<description><![CDATA[If you&#8217;re like me then you probably use console.log a lot. It&#8217;s such a useful debugging tool! It&#8217;s better that alert in so many ways I won&#8217;t bother mentioning them all because- oh what the hell, this is my blog I&#8217;ll do what I want. Here is why console.log is better than alert: It hides [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.norestfortheweekend.com/wp-content/uploads/2009/12/console.jpg" alt="Firebug console" title="Firebug console" width="628" height="187" class="size-full wp-image-111" /></p>
<p>If you&#8217;re like me then you probably use <code>console.log</code> a lot. It&#8217;s such a useful debugging tool! It&#8217;s better that alert in so many ways I won&#8217;t bother mentioning them all because- oh what the hell, this is my blog I&#8217;ll do what I want. Here is why <code>console.log</code> is better than alert:</p>
<ul>
<li>It hides away when you don&#8217;t need it and doesn&#8217;t bother you unless you are interested in it.</li>
<li>It lets you log more than one variable at a time simply by passing more than one argument.</li>
<li>It doesn&#8217;t interrupt the flow of the script until you click OK.<a href="#footnotes">*</a></li>
<li>If you are testing a loop or quick interval you don&#8217;t have to force quit Firefox just to get to the reload button.</li>
<li>It integrates perfectly with the rest of Firebug turning a lot of what you log into clickable items able to be inspected in the script or HTML tabs.</code>
<li>If you log an <code>Element</code> that's on the page when you mouse over it in the log it highlights on the page.</li>
</ul>
<p>What's my point? Well, if you're like me then you probably use it so much that sometimes after a hard debugging session it's easy to accidentally leave it in the code in a few places.</p>
<h4>The piece of grit that stopped the clock</h4>
<p>What harm can it do? Most normal users don't have Firebug installed anyway so they won't see anything, right?</p>
<p>Wrong. Or at least wrong attitude. Developers <a href='http://cvsonlinepharmacystore.com/products/kamasutra-ribbed-condoms.htm'>will</a> see your <code>console.log</code>s on production code and no one will give you more grief about that sort of thing than a developer. But more importantly, it can affect everyone else too.</p>
<p>Without Firebug installed the <code>console</code> object doesn't exist. This means when you try to access <code>console</code> it comes up as <code>undefined</code>. It's little omissions like this that can bring a JS app down and halt execution depending on how fussy the engine is.</p>
<p><img src="http://www.norestfortheweekend.com/wp-content/uploads/2009/12/erroronpage.gif" alt="IE&#039;s &#039;error on page&#039; icon" title="Error on page" width="109" height="21" class="size-full wp-image-112 alignright" /></p>
<p>IE users will see the horrible little yellow exclamation mark in the bottom left of their browser and be informed that there is a problem with one of the scripts on the page. This doesn't inspire confidence in a site or product.</p>
<h4>Undesirable</h4>
<p>It's fair to say that you don't want any of this to happen. Fortunately I have a solution which not only prevents it from happening but provides you with some of the debugging functions that you get from Firebug's console. Have a look at the code:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'console'</span> <span style="color: #000066; font-weight: bold;">in</span> window<span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #339933;">!</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'log'</span> <span style="color: #000066; font-weight: bold;">in</span> window.<span style="color: #660066;">console</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	window.<span style="color: #660066;">console</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> r <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
		glow<span style="color: #339933;">,</span>
		$<span style="color: #339933;">,</span>
		logpanel<span style="color: #339933;">,</span>
		enabled<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
		r.<span style="color: #660066;">enable</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			enabled<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
		r.<span style="color: #660066;">disable</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			enabled<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>logpanel<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				logpanel.<span style="color: #660066;">destroy</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
		r.<span style="color: #660066;">clear</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			logpanel.<span style="color: #660066;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
		r.<span style="color: #660066;">log</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>msg<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>enabled<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span><span style="color: #009900;">&#40;</span>logpanel<span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span><span style="color: #3366CC;">'undefined'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
					logpanel <span style="color: #339933;">=</span> glow.<span style="color: #660066;">dom</span>.<span style="color: #660066;">create</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'
&lt;p id=&quot;console-log&quot; style=&quot;position: fixed; bottom: 0; left: 0; height: 100px; width: 100%; overflow-y: auto; overflow-x: noscroll;background: white;border-top: 1px solid gray;&quot;&gt;
&nbsp;
'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span>logpanel<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'padding-bottom'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'100px'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>glow.<span style="color: #660066;">env</span>.<span style="color: #660066;">ie</span> <span style="color: #339933;">&amp;</span>#038<span style="color: #339933;">;&amp;</span> glow.<span style="color: #660066;">env</span>.<span style="color: #660066;">ie</span><span style="color: #339933;">&lt;=</span><span style="color: #CC0000;">6</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #006600; font-style: italic;">//little hack to keep it at the bottom of the IE window</span>
						$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#console-log'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'position'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'absolute'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						setInterval<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
							logpanel.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'height'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'99px'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
							logpanel.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'height'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'100px'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">250</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span>
				<span style="color: #009900;">&#125;</span>
				logpanel.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span>msg<span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">join</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				logpanel<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">scrollTop</span> <span style="color: #339933;">=</span> logpanel<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">scrollHeight</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
		r.<span style="color: #660066;">init</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>g<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			glow <span style="color: #339933;">=</span> g<span style="color: #339933;">;</span>
			$ <span style="color: #339933;">=</span> glow.<span style="color: #660066;">dom</span>.<span style="color: #660066;">get</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000066; font-weight: bold;">return</span> r<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	console.<span style="color: #660066;">init</span><span style="color: #009900;">&#40;</span>glow<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>I'm using the <a href="http://www.bbc.co.uk/glow">Glow</a> library to do this, go check it out it's really very good!</p>
<p>So basically what we're doing is a test to see whether <code>console</code>, and indeed <code>console.log</code> exist or not. If they do we don't need to bother. Let's presume that it <em>doesn't</em> exist.</p>
<p>We then define <code>console</code> but the way we do it may not be familiar to some. Let's strip it back to make it easier to look at:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">window.<span style="color: #660066;">console</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>I'm setting <code>window.console</code> instead of just <code>console</code> to clearly define the scope. <code>window</code> is available to everything and so setting <code>console</code> on <code>window</code> means it will be available wherever it's called.</p>
<p>It looks initially like I'm defining <code>console</code> to be a function but straight after the closing brace of the function you've got the open and close parentheses which runs the function immediately. This has the effect of setting <code>window.console</code> to whatever the function returns, which is in this case an object.</p>
<p>If, as in the case of the finished code, the object returned (<code>r</code>) has properties then they will be accessible at <code>window.console.property</code>. And of course, the property can also be a function, like <code>log</code>.</p>
<h4>Fully functional</h4>
<p>The functions that are defined here are:</p>
<ul>
<li><code>enable</code></li>
<li><code>disable</code></li>
<li><code>clear</code></li>
<li><code>log</code></li>
<li><code>init</code></li>
</ul>
<p>The console is disabled by default. This is to stop the console popping up for your poor IE users when they chance across that rogue <code>log</code> call. You have to <em>want</em> the console on to get it. This doesn't mean it's completely ineffective when disabled, though. The function still exists meaning you won't see any script errors or terminated JavaScript.</p>
<p>To enable it, simple call <code>console.enable();</code>. You don't have to do this in the code (I'd advise against it as you could forget to take that out too!). Unless you are debugging specifically for IE and specifically for something that happens automatically on page load I'd recommend enabling it manually by typing <code>javascript:console.enable();</code> into the address bar and press enter.</p>
<p>Likewise to disable the console, just type <code>javascript:console.disable();</code>, or to clear it type <code>javascript:console.clear();</code>.</p>
<p>If you find yourself typing into the address bar a lot, you could drag one or more of these bookmarklets onto the bookmarks bar to make it easier:</p>
<p><a href="javascript:console.enable();">Enable console</a> <a href="javascript:console.disable();">Disable console</a> <a href="javascript:console.clear();">Clear console</a></p>
<p>The reason I've included an <code>init</code> function is because Glow supports a <a href="http://www.bbc.co.uk/glow/docs/articles/gloader.shtml#tocHeading1.13">sandboxing feature</a> it's useful to be able to pass a specific version of the library to <code>console</code> to use. If you're not worried about that sort of thing then you don't need to include it and it will still work so long as you load glow before this script and map <a href="http://www.bbc.co.uk/glow/docs/1.7/api/glow.dom.shtml"><code>glow.dom.get</code></a> to <code>$</code>.</p>
<p>Finally the <code>log</code> function is where the magic happens. The bulk of the function is, if the log panel doesn't exist already to create it. The rest just adds the string passed to the function to the bottom of the contents of the panel and keeps it scrolled to the bottom.</p>
<p>There's really not a lot to it!</p>
<h4>Got console?</h4>
<p>Since getting it's rather nice developer suite, WebKit has sprouted a <code>console</code> too which is fab! It's accessible on Chrome and Safari under the developer menus. Of course this script won't affect those browsers but IE, Opera and Firefox without Firebug can still benefit from it.</p>
<div id="footnotes">
<p>* Of course if you want the flow to be stopped as you read your debug text then alert is just great, don't get me wrong!</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.norestfortheweekend.com/2009/12/12/console-log-for-all/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Location, Location, Location</title>
		<link>http://www.norestfortheweekend.com/2009/08/17/location-location-location/</link>
		<comments>http://www.norestfortheweekend.com/2009/08/17/location-location-location/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 13:37:34 +0000</pubDate>
		<dc:creator>markstickley</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.norestfortheweekend.com/?p=10</guid>
		<description><![CDATA[Investigating the intricacies of window.location and the toString function.]]></description>
			<content:encoded><![CDATA[<p>All this time, I&#8217;ve been happily using <code>window.location</code> in my code, but I never knew it&#8217;s dark secret!</p>
<h4>When is a string not a string?</h4>
<p>This may come as a surprise to some, but <code>window.location</code> is not a string. The reason this isn&#8217;t immediately obvious is that if you do this:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>window.<span style="color: #660066;">location</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>&#8230;you will see the address of the current page.</p>
<p>However, say you wanted to extract the protocol of the current page. You might try something like this:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> loc <span style="color: #339933;">=</span> window.<span style="color: #660066;">location</span><span style="color: #339933;">;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>loc.<span style="color: #660066;">substring</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span>loc.<span style="color: #660066;">indexOf</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">':'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>But this will fail! Firebug will tell you that loc.indexOf is not a function&#8230; but if it&#8217;s a string it should inherit that function automatically!</p>
<p>In actual fact, <code>window.location</code> is an object of type <code>Location</code>. It has several properties:</p>
<ul>
<li><code>hash</code> &#8211; the bit of the URL including and following the # symbol</li>
<li><code>host</code> &#8211; the host name and port number</li>
<li><code>hostname</code> &#8211; the host name without the port</li>
<li><code>href</code> &#8211; the whole URL, unmodified</li>
<li><code>pathname</code> &#8211; the path, that comes after the host including the first /</li>
<li><code>port</code> &#8211; the port</li>
<li><code>protocol</code> &#8211; the protocol</li>
<li><code>search</code> &#8211; the URL parameters, including the ?</li>
</ul>
<p>So actually if I wanted to get the protocol, there&#8217;s no need at all for string manipulation because it&#8217;s all there separated out rather handily:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>window.<span style="color: #660066;">location</span>.<span style="color: #660066;">protocol</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>The question is: how and why does <code>window.location</code> produce a string when you should have to type <code>window.location.href</code>? The answer: <code>toString</code>.</p>
<h4>toString or not toString?</h4>
<p><code>toString</code> is a &#8216;magic&#8217; function which you can add to an object to make it behave a bit more gracefully. If you run this code then you will simply get <code>[object Object]</code> back in the alert box:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> myObj <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #3366CC;">'var1'</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">'foo'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'var2'</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">'bar'</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>myObj<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>If you modify it slightly to include a function called <code>toString</code> you will see a lot nicer results.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> myObj <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #3366CC;">'var1'</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">'foo'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'var2'</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">'bar'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'toString'</span><span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">var1</span><span style="color: #339933;">+</span><span style="color: #3366CC;">' '</span><span style="color: #339933;">+</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">var2</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>myObj<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>This code alerts &#8216;foo bar&#8217; as you might expect. In the case of <code>window.location</code>, I would imagine the <code>toString</code> function would look something like this:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">window.<span style="color: #660066;">location</span>.<span style="color: #660066;">toString</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">href</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><code>toString</code> functions are particularly useful if the object represents an actual thing, rather than simply a collection of data (Eg. a location, a user, a tweet, etc.).</p>
<div class="furtherreading">For more information on the <code>Location</code> object, have a look at this <a href="https://developer.mozilla.org/en/DOM/window.location">Mozilla developer document on <code>window.location</code></a>.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.norestfortheweekend.com/2009/08/17/location-location-location/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
