
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">   
    <meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">window.NREUM||(NREUM={});NREUM.info = {"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"b0216f3ff3","applicationID":"3434714","transactionName":"YlxWbBBZWkUDB0IMXlsWdWsyF0RZERAZAV5WTFldDExCXwcTUxcfVEpEQA==","queueTime":0,"applicationTime":315,"ttGuid":"C4301D39935F9350","agent":""}</script><script type="text/javascript">window.NREUM||(NREUM={}),__nr_require=function(e,t,n){function r(n){if(!t[n]){var o=t[n]={exports:{}};e[n][0].call(o.exports,function(t){var o=e[n][1][t];return r(o||t)},o,o.exports)}return t[n].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o<n.length;o++)r(n[o]);return r}({1:[function(e,t,n){function r(){}function o(e,t,n){return function(){return i(e,[f.now()].concat(u(arguments)),t?null:this,n),t?void 0:this}}var i=e("handle"),a=e(2),u=e(3),c=e("ee").get("tracer"),f=e("loader"),s=NREUM;"undefined"==typeof window.newrelic&&(newrelic=s);var p=["setPageViewName","setCustomAttribute","setErrorHandler","finished","addToTrace","inlineHit","addRelease"],d="api-",l=d+"ixn-";a(p,function(e,t){s[t]=o(d+t,!0,"api")}),s.addPageAction=o(d+"addPageAction",!0),s.setCurrentRouteName=o(d+"routeName",!0),t.exports=newrelic,s.interaction=function(){return(new r).get()};var m=r.prototype={createTracer:function(e,t){var n={},r=this,o="function"==typeof t;return i(l+"tracer",[f.now(),e,n],r),function(){if(c.emit((o?"":"no-")+"fn-start",[f.now(),r,o],n),o)try{return t.apply(this,arguments)}catch(e){throw c.emit("fn-err",[arguments,this,e],n),e}finally{c.emit("fn-end",[f.now()],n)}}}};a("setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","),function(e,t){m[t]=o(l+t)}),newrelic.noticeError=function(e){"string"==typeof e&&(e=new Error(e)),i("err",[e,f.now()])}},{}],2:[function(e,t,n){function r(e,t){var n=[],r="",i=0;for(r in e)o.call(e,r)&&(n[i]=t(r,e[r]),i+=1);return n}var o=Object.prototype.hasOwnProperty;t.exports=r},{}],3:[function(e,t,n){function r(e,t,n){t||(t=0),"undefined"==typeof n&&(n=e?e.length:0);for(var r=-1,o=n-t||0,i=Array(o<0?0:o);++r<o;)i[r]=e[t+r];return i}t.exports=r},{}],4:[function(e,t,n){t.exports={exists:"undefined"!=typeof window.performance&&window.performance.timing&&"undefined"!=typeof window.performance.timing.navigationStart}},{}],ee:[function(e,t,n){function r(){}function o(e){function t(e){return e&&e instanceof r?e:e?c(e,u,i):i()}function n(n,r,o,i){if(!d.aborted||i){e&&e(n,r,o);for(var a=t(o),u=m(n),c=u.length,f=0;f<c;f++)u[f].apply(a,r);var p=s[y[n]];return p&&p.push([b,n,r,a]),a}}function l(e,t){v[e]=m(e).concat(t)}function m(e){return v[e]||[]}function w(e){return p[e]=p[e]||o(n)}function g(e,t){f(e,function(e,n){t=t||"feature",y[n]=t,t in s||(s[t]=[])})}var v={},y={},b={on:l,emit:n,get:w,listeners:m,context:t,buffer:g,abort:a,aborted:!1};return b}function i(){return new r}function a(){(s.api||s.feature)&&(d.aborted=!0,s=d.backlog={})}var u="nr@context",c=e("gos"),f=e(2),s={},p={},d=t.exports=o();d.backlog=s},{}],gos:[function(e,t,n){function r(e,t,n){if(o.call(e,t))return e[t];var r=n();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!1}),r}catch(i){}return e[t]=r,r}var o=Object.prototype.hasOwnProperty;t.exports=r},{}],handle:[function(e,t,n){function r(e,t,n,r){o.buffer([e],r),o.emit(e,t,n)}var o=e("ee").get("handle");t.exports=r,r.ee=o},{}],id:[function(e,t,n){function r(e){var t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===window?0:a(e,i,function(){return o++})}var o=1,i="nr@id",a=e("gos");t.exports=r},{}],loader:[function(e,t,n){function r(){if(!x++){var e=h.info=NREUM.info,t=d.getElementsByTagName("script")[0];if(setTimeout(s.abort,3e4),!(e&&e.licenseKey&&e.applicationID&&t))return s.abort();f(y,function(t,n){e[t]||(e[t]=n)}),c("mark",["onload",a()+h.offset],null,"api");var n=d.createElement("script");n.src="https://"+e.agent,t.parentNode.insertBefore(n,t)}}function o(){"complete"===d.readyState&&i()}function i(){c("mark",["domContent",a()+h.offset],null,"api")}function a(){return E.exists&&performance.now?Math.round(performance.now()):(u=Math.max((new Date).getTime(),u))-h.offset}var u=(new Date).getTime(),c=e("handle"),f=e(2),s=e("ee"),p=window,d=p.document,l="addEventListener",m="attachEvent",w=p.XMLHttpRequest,g=w&&w.prototype;NREUM.o={ST:setTimeout,SI:p.setImmediate,CT:clearTimeout,XHR:w,REQ:p.Request,EV:p.Event,PR:p.Promise,MO:p.MutationObserver};var v=""+location,y={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-1071.min.js"},b=w&&g&&g[l]&&!/CriOS/.test(navigator.userAgent),h=t.exports={offset:u,now:a,origin:v,features:{},xhrWrappable:b};e(1),d[l]?(d[l]("DOMContentLoaded",i,!1),p[l]("load",r,!1)):(d[m]("onreadystatechange",o),p[m]("onload",r)),c("mark",["firstbyte",u],null,"api");var x=0,E=e(4)},{}]},{},["loader"]);</script>
    <meta name="viewport" content="width=device-width, initial-scale=1">   
    <meta http-equiv="X-Frame-Options" content="allow">
    <title>The 2017 Atlantic Hurricane Season: Insurance Coverage for Harvey, Irma, Jose, and Maria | Blank Rome LLP - JDSupra</title>
    <meta name="description" content="The 2017 Atlantic hurricane season is already one of the most devastating in history. In late August, Harvey struck at the heart of Houston, Texas, and dropped 51.88 inches of rainfall..." />
    <link rel="image_src" href="https://www.jdsupra.com/showThumbnail.aspx?img=15443_296.jpg" />   
    <meta property="og:title" content="The 2017 Atlantic Hurricane Season: Insurance Coverage for Harvey, Irma, Jose, and Maria | JD Supra" /> 
    <meta property="og:url" content="http://www.jdsupra.com/legalnews/the-2017-atlantic-hurricane-season-63868/" />
    <meta property="og:image" content="https://www.jdsupra.com/showThumbnail.aspx?img=15443_296.jpg&size=og" />
    <meta property="og:site_name" content="JD Supra" />
    <meta property="og:description" content= "The 2017 Atlantic hurricane season is already one of the most devastating in history. In late August, Harvey struck at the heart of Houston, Texas,..." />   
    <meta property="fb:app_id" content="87741124305">
    <meta property="og:type" content="article" />
    
    
        
        
    
    
    
       
    <meta name="twitter:card" content="summary"> 
    <meta name="twitter:title" content="The 2017 Atlantic Hurricane Season: Insurance Coverage for Harvey, Irma, Jose, and Maria">    
    <meta name="twitter:description" content="The 2017 Atlantic hurricane season is already one of the most devastating in history. In late August, Harvey struck at the heart of Houston, Texas, and dropped 51.88 inches of rainfall in Texas,...">  
    <meta name="twitter:image" content="https://www.jdsupra.com/showThumbnail.aspx?img=15443_296.jpg&amp;size=hr">    
    <meta name="twitter:site" content="@jdsupra"> 
    <meta name="twitter:creator" content="@blankromellp">   
       
      
     
    
    
    <link rel="alternate" href="http://www.jdsupra.com/oembed/index.asmx/GetOembedObject?url=http%3a%2f%2fwww.jdsupra.com%2flegalnews%2fthe-2017-atlantic-hurricane-season-63868%2f" type="text/xml+oembed" />
    <link rel="canonical" href="http://www.jdsupra.com/legalnews/the-2017-atlantic-hurricane-season-63868/" />
    <link rel="shortcut icon" href="/img/fav-jdsupra.ico" />
        <!-- 2016 rebrand styles -->
<link href="https://fonts.googleapis.com/css?family=Libre+Franklin:400,700" rel="stylesheet">
<link rel="stylesheet" href="/theme/jds-main/jds-main.min.css?v=1.4">
<script src="https://use.fontawesome.com/315ebb095a.js"></script>
       
    <link href="/inc/css/video-js-5-11-5.min.css" rel="stylesheet" /> 
    <script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-1583108-1', 'auto');
ga('send', 'pageview');

</script>


</head>

<body id="docviewer" class="cf  ">
<span id="pageNameDebug"></span>

<header class="bg-white cf fixed bb b--light-gray shadow-1 w-100 z-999 top-0">
<nav class="cf f6 relative">
    <div class="fl-l pv2 pv3-l">
        <div class="cf">
            <div class="hamburger dn-l fr menu-toggle">
                <div class="dib v-mid"><span class="line"></span><span class="line"></span><span class="line"></span></div>
                <div class="dib v-mid ttu red f5 mt2 mb1 pr3">Menu</div>
            </div>
            <a href="/" class="fl pl2 pl3-m pl4-l"><img src="/img/logo/logo-jdsupra-opt.svg" alt="JD Supra" class="dib v-mid" onerror="this.src='/img/logo/jdsupra-logo-web-sm.png'; this.onerror=null;"></a><!--svg fallback for ie8-->
        </div>
    </div>
    <div class="bt bn-l b--black-30 nav-block navmenu pv3-ns fr-l">        
        <div class="dib-l megadropdown">
            <a class="link mid-gray mr2 mr3-l pb3" href="/law-news/" onclick="ga('send', 'event', 'topnav', 'topnav-news', 'topnav-news');">News &amp; Insights <span class="light-red caret"></span> </a>

            <div class="pv3 submenu topNavLawNews tl">
                <div class="mw8-ns center cf">                                   
                    <div class="fl w-100 w-third-ns pa2">
                       <div class="fl"><i class="fa fa-bolt fa-lg ba br-100 pa3 mr1 mb2 red tc mt1 w1 h1" aria-hidden="true"></i></div> 
                        <ul class="list fl mt1 pl2">
                            <li class="ttu red f5 mt2 mb1">Popular</li>
                            <li><a href="/law-news/labor-employment/" class="lnk" onclick="ga('send', 'event', 'topnav', 'topnav-news-col1', 'topnav-news-col1');">Labor & Employment</a></li>        
<li><a href="/law-news/finance-banking-law/" class="lnk" onclick="ga('send', 'event', 'topnav', 'topnav-news-col1', 'topnav-news-col1');">Finance & Banking</a></li>
<li><a href="/law-news/ip-law/" class="lnk" onclick="ga('send', 'event', 'topnav', 'topnav-news-col1', 'topnav-news-col1');">Intellectual Property</a></li>
<li><a href="/law-news/health-law/" class="lnk" onclick="ga('send', 'event', 'topnav', 'topnav-news-col1', 'topnav-news-col1');">Health &amp; Healthcare</a></li>
<li><a href="/law-news/environmental-law/" class="lnk" onclick="ga('send', 'event', 'topnav', 'topnav-news-col1', 'topnav-news-col1');">Environmental Issues</a></li>


                            <li><a href="/browse/legal-news.aspx" class="red">more&hellip;</a></li>
                        </ul>
                    </div>
                    <div class="fl w-100 w-third-ns pa2">
                       <div class="fl"><i class="fa fa-briefcase fa-lg ba br-100 pa3 mr1 mb2 red tc mt1 w1 h1" aria-hidden="true"></i></div> 
                        <ul class="list fl mt1 pl2">
                            <li class="ttu red f5 mt2 mb1">Business</li>
                            <li><a href="/law-news/insurance-law/" onclick="ga('send', 'event', 'topnav', 'topnav-news-col2', 'topnav-news-col2');">Insurance</a></li>
                            <li><a href="/law-news/commercial-real-estate/" onclick="ga('send', 'event', 'topnav', 'topnav-news-col2', 'topnav-news-col2');">Commercial Real Estate</a></li>        
                            <li><a href="/topics/corporate-taxes/" onclick="ga('send', 'event', 'topnav', 'topnav-news-col2', 'topnav-news-col2');">Corporate Taxes</a></li>
                            <li><a href="/law-news/immigration-law/" onclick="ga('send', 'event', 'topnav', 'topnav-news-col2', 'topnav-news-col2');">Immigration</a></li>
                            <li><a href="/law-news/securities-law/" onclick="ga('send', 'event', 'topnav', 'topnav-news-col2', 'topnav-news-col2');">Securities</a></li>                                    
                            <li><a href="/browse/legal-news.aspx" class="red" onclick="ga('send', 'event', 'topnav', 'topnav-news-col2', 'topnav-news-col2');">more&hellip;</a></li>
                        </ul>
                    </div>
                    <div class="fl w-100 w-third-ns pa2">
                       <div class="fl"><i class="fa fa-user fa-2 fa-lg ba br-100 pa3 mr1 mb2 red tc mt1 w1 h1" aria-hidden="true"></i></div> 
                        <ul class="list fl mt1 pl2">
                            <li class="ttu red f5 mt2 mb1">Personal</li>        
                            <li><a href="/law-news/residential-real-estate-law/" onclick="ga('send', 'event', 'topnav', 'topnav-news-col2', 'topnav-news-col3');">Residential Real Estate</a></li>
                            <li><a href="/topics/estate-planning/" onclick="ga('send', 'event', 'topnav', 'topnav-news-col2', 'topnav-news-col3');">Estate Planning</a></li>
                            <li><a href="/law-news/civil-rights/" onclick="ga('send', 'event', 'topnav', 'topnav-news-col2', 'topnav-news-col3');">Civil Rights</a></li>
                            <li><a href="/topics/income-taxes/" onclick="ga('send', 'event', 'topnav', 'topnav-news-col2', 'topnav-news-col3');">Personal Taxes</a></li>
                            <li><a href="/law-news/bankruptcy-law/" onclick="ga('send', 'event', 'topnav', 'topnav-news-col2', 'topnav-news-col3');">Bankruptcy</a></li>
                            <li><a href="/browse/legal-news.aspx" class="red" onclick="ga('send', 'event', 'topnav', 'topnav-news-col2', 'topnav-news-col3');">more&hellip;</a></li>
                        </ul>
                   </div>
               </div>              
                <div class="tc mt3 mb4"><a href="/law-news/" class="ba b--red br-pill ph4 pv2 red">Jump to: Latest Updates &raquo;</a></div> 
            </div> 
        </div>
        <div class="dib-l megadropdown">
            <a class="link mid-gray mr2 mr3-l pb3" href="/topics/popular/" onclick="ga('send', 'event', 'topnav', 'topnav-trending', 'topNav-Trending');">Trending [<span class="light-red">7</span>] <span class="light-red caret"></span></a>
            <div class="pt4 pb3 submenu topNavTrending tl">
                <div class="mw8 center">
                    <ol class="list list-number">
                        <li><a href="/legalnews/popular-reads-on-jd-supra-18205/" class="lnk" onclick="ga('send', 'event', 'topnav', 'topnav-trending', 'topnav-trending');">Popular Reads on JD Supra</a></li>
<li><a href="/topics/general-data-protection-regulation-gdpr/" class="lnk" onclick="ga('send', 'event', 'topnav', 'topnav-trending', 'topnav-trending');">[Channel] Latest Guidance on the EU's GDPR</a></li>
<li><a href="/topics/patents/" class="lnk" onclick="ga('send', 'event', 'topnav', 'topnav-trending', 'topnav-trending');">[Channel] Patents: Latest on Litigation, Infringement, USPTO...</a></li>
<li><a href="/topics/employer-liability-issues/" class="lnk" onclick="ga('send', 'event', 'topnav', 'topnav-trending', 'topnav-trending');">[Channel] Employer Liability Issues: Hiring & Firing, EEOC, Wage & Hour...</a></li>
<li><a href="/topics/cryptocurrency/" class="lnk" onclick="ga('send', 'event', 'topnav', 'topnav-trending', 'topnav-trending');">[Channel] Cryptocurrency: Blockchain, Bitcoin, ICOs, Regulation...</a></li>
<li><a href="/topics/risk-management/" class="lnk" onclick="ga('send', 'event', 'topnav', 'topnav-trending', 'topnav-trending');">[Channel] Risk Management: Compliance, Cybersecurity, Corp Culture, Ethics...</a></li>
<li><a href="http://www.jdsupra.com/follow/manageyourinterests/" class="lnk" onclick="ga('send', 'event', 'topnav', 'topnav-trending', 'topnav-trending');">Build a Morning News Brief: Easy, No Clutter, Free!</a></li>

                                                  
                    </ol>
                    <div class="tc mt3 mb4"><a href="/browse/legal-news.aspx" class="ba b--red br-pill ph4 pv2 red">Browse All Law News Topics &raquo;</a></div>                                   
                </div>
            </div>             
        </div>
        <div class="dib-l megadropdown">
            <a class="link mid-gray mr2 mr3-l pb3" href="/findauthor/" onclick="ga('send', 'event', 'topnav', 'topnav-findauthor', 'topnav-findauthor');">Find Author <span class="light-red caret"></span></a>
            <div class="pv3 submenu topNavFindLawyer tl">
                <div class="mw8-ns center cf">                                   
                    <div class="fl w-100 w-third-ns pa2">
                       <div class="fl"><i class="fa fa-building-o fa-lg ba br-100 pa3 mr1 mb2 red tc mt1 w1 h1" aria-hidden="true"></i></div> 
                        <ul class="list fl mt1 pl2">
                            <li class="ttu red f5 mt2 mb1">By Business Matters</li>
                            <li><a href="/findauthor/Labor-Employment-Law/" onclick="ga('send', 'event', 'topnav', 'topnav-findauthor-col1', 'topnav-findauthor-col1');">Labor & Employment</a></li>
                            <li><a href="/findauthor/Finance-Banking/" onclick="ga('send', 'event', 'topnav', 'topnav-findauthor-col1', 'topnav-findauthor-col1');">Finance & Banking</a></li>
                            <li><a href="/findauthor/Intellectual-Property/" onclick="ga('send', 'event', 'topnav', 'topnav-findauthor-col1', 'topnav-findauthor-col1');">Intellectual Property</a></li>                                                                         
                            <li><a href="/findauthor/Insurance/" onclick="ga('send', 'event', 'topnav', 'topnav-findauthor-col1', 'topnav-findauthor-col1');">Insurance</a></li>
                            <li><a href="/findauthor/Taxation/" onclick="ga('send', 'event', 'topnav', 'topnav-findauthor-col1', 'topnav-findauthor-col1');">Taxes</a></li>
                            <li><a href="/findauthor/" class="red" onclick="ga('send', 'event', 'topnav', 'topnav-findauthor-col1', 'topnav-findauthor-col1');">See All Subjects &raquo;</a></li>
                        </ul>
                    </div>
                    <div class="fl w-100 w-third-ns pa2">
                       <div class="fl"><i class="fa fa-user fa-lg ba br-100 pa3 mr1 mb2 red tc mt1 w1 h1" aria-hidden="true"></i></div> 
                        <ul class="list fl mt1 pl2">
                            <li class="ttu red f5 mt2 mb1">By Personal Issues</li>
                            <li><a href="/findauthor/Civil-Rights/" onclick="ga('send', 'event', 'topnav', 'topnav-findauthor-col2', 'topnav-findauthor-col2');">Civil Rights</a></li>
                            <li><a href="/findauthor/Family-Law/" onclick="ga('send', 'event', 'topnav', 'topnav-findauthor-col2', 'topnav-findauthor-col2');">Family Matters</a></li>
                            <li><a href="/findauthor/Personal-Injury/" onclick="ga('send', 'event', 'topnav', 'topnav-findauthor-col2', 'topnav-findauthor-col2');">Personal Injury</a></li>
                            <li><a href="/findauthor/Wills-Trusts-Estate-Planning/" onclick="ga('send', 'event', 'topnav', 'topnav-findauthor-col2', 'topnav-findauthor-col2');">Wills, Trusts, & Estate Planning</a></li>
                            <li><a href="/findauthor/Workers-Compensation/" onclick="ga('send', 'event', 'topnav', 'topnav-findauthor-col2', 'topnav-findauthor-col2');">Worker&rsquo;s Compensation</a></li>
                            <li><a href="/findauthor/" class="red" onclick="ga('send', 'event', 'topnav', 'topnav-findauthor-col2', 'topnav-findauthor-col2');">See All Subjects &raquo;</a></li>
                        </ul>
                    </div>
                    <div class="fl w-100 w-third-ns pa2">
                       <div class="fl"><i class="fa fa-map-marker fa-lg ba br-100 pa3 mr1 mb2 red tc mt1 w1 h1" aria-hidden="true"></i></div> 
                        <ul class="list fl mt1 pl2">
                            <li class="ttu red f5 mt2 mb1">By Location</li>
                            <li><a href="/findauthor/United-States/California/" onclick="ga('send', 'event', 'topnav', 'topnav-findauthor-col3', 'topnav-findauthor-col3');">California</a></li>
                            <li><a href="/findauthor/United-States/New-York/" onclick="ga('send', 'event', 'topnav', 'topnav-findauthor-col3', 'topnav-findauthor-col3');">New York</a></li>
                            <li><a href="/findauthor/United-States/Texas/" onclick="ga('send', 'event', 'topnav', 'topnav-findauthor-col3', 'topnav-findauthor-col3');">Texas</a></li>
                            <li><a href="/findauthor/Canada/" onclick="ga('send', 'event', 'topnav', 'topnav-findauthor-col3', 'topnav-findauthor-col3');">Canada</a></li>
                            <li><a href="/findauthor/United-Kingdom/" onclick="ga('send', 'event', 'topnav', 'topnav-findauthor-col3', 'topnav-findauthor-col3');">United Kingdom</a></li>
                            <li><a href="/findauthor/" class="red" onclick="ga('send', 'event', 'topnav', 'topnav-findauthor-col3', 'topnav-findauthor-col3');">See All Locations &raquo;</a></li>
                        </ul>
                   </div>
               </div>
            </div>
        </div>
        <div class="dib-l megadropdown">
            <a class="link mid-gray mr2 mr3-l pb3" href="/follow/manageyourinterests/" onclick="ga('send', 'event', 'topnav', 'topnav-subscribe', 'topnav-subscribe');">Subscribe <span class="light-red caret"></span></a>
            <div class="pt3 pb2 submenu topNavFollow tl">
                <div class="mw7-l mw8-m center cf ph3">
                    <div class="fl-ns w-50-m w-third-l mb2 pr4-ns">
                        <i class="fa fa-envelope-o fa-lg ba br-100 pa3 mr1 red tc mt1 w1 h1" aria-hidden="true"></i> 
                        <a href="/follow/manageyourinterests/" onclick="ga('send', 'event', 'follow', 'Topnav Email Link - Subscribe', 'Custom Email Digests');">Custom Email Digests</a>
                        <h1 class="f6 dn db-m db-l mid-gray fw5">Build a custom email digest by following topics, people, and firms published on JD Supra.</h1>
                    </div>
                    <div class="fl-ns w-50-m w-two-thirds-l">
                        <div class="fl-ns w-50-ns"><i class="fa fa-twitter fa-lg ba br-100 pa3 mr1 mb2 red tc mt1 w1 h1" aria-hidden="true"></i>  <a href="/legal-news/twitter-law-feeds.aspx" onclick="ga('send', 'event', 'topnav', 'topnav-subscribe-twitter', 'topnav-subscribe-twitter');">Twitter</a></div>
                        <div class="fl-ns w-50-ns"><i class="fa fa-rss fa-lg ba br-100 pa3 mr1 mb2 red tc mt1 w1 h1" aria-hidden="true"></i>  <a href="/legal-news/rss-law-feeds.aspx" onclick="ga('send', 'event', 'topnav', 'topnav-subscribe-rss', 'topnav-subscribe-rss');">RSS</a></div>
                        <div class="fl-ns w-50-ns"><i class="fa fa-mobile fa-lg ba br-100 pa3 mr1 mb2 red tc mt1 w1 h1" aria-hidden="true"></i>  <a href="/legal-news/mobile-law-feeds.aspx" onclick="ga('send', 'event', 'topnav', 'topnav-subscribe-iphone', 'topnav-subscribe-iphone');">iPhone</a></div>
                        <div class="fl-ns w-50-ns"><i class="fa fa-file-code-o fa-lg ba br-100 pa3 mr1 mb2 red tc mt1 w1 h1" aria-hidden="true"></i>  <a href="/legal-news/publisher-law-feeds.aspx" onclick="ga('send', 'event', 'topnav', 'topnav-subscribe-publisher', 'topnav-subscribe-publisher');">Feeds for Publishers</a></div> 
                    </div>                                
                </div>
            </div>
        </div>
        <div class="dib-l"><a class="link mid-gray mr3 pb3" href="/perspective/media-query.aspx" onclick="ga('send', 'event', 'topnav', 'topnav-reporters', 'topnav-reporters');">For Reporters</a></div>
        <div class="dib-l">
            <form id="UniSearchForm" name="UniSearchForm" action="/search/searchResults.aspx" method="get" onsubmit="return checkSearch();">
            <input type="text" id="sTerm" name="sTerm" value="Search All Docs" onfocus="this.value='';" class="br2 ba b--light-silver dib gray v-mid w5 pa2 f7"  />
            <input type="image" src="/img/svg/icon-search.svg" class="dib v-mid" alt="Search" />
            </form>          
        </div> 
        <div class="dib-l megadropdown ph2">
            <a onclick="ga('send', 'event', 'topnav', 'topnav-mgmtacct', 'topnav-mgmtacct');" class="pb3"><img src="/img/svg/icon-gear.svg" class="dib v-mid" alt="icon-gear"><span class="dn-l">My Account</span></a>

            <div class="pv3 submenu topNavAccount">
            <div class="fr-l w-20-l">
                <ul class="list">
                        
                     
                        <li><a href="/login.aspx" onclick="ga('send', 'event', 'topnav', 'topnav-login', 'topnav-login');">Log In</a></li>
                        <li><a href="/follow/manageyourinterests/" onclick="ga('send', 'event', 'topnav', 'topnav-feedmanage', 'topnav-feedmanage');">Manage My Feeds</a></li>
                    
                </ul> 
            </div></div>
        </div>                                               
    </div><!--end nav-block-->
 </nav><!--end new header-->

<!--MEGA MENU-->        

</header>  
<div class="bg-slant gradient bg-custom"></div>   

<div class="nt7 relative">
    <!--CMS links-->
    
    <!--  -->
    <!--  -->
    

    <!--Owner Message-->
    

<div class="bg-white cf center mw8 pa3 pa4-ns w-100 w-90-m w-80-l shadow-1-ns mb4">
    <form method="post" action="/legalnews/the-2017-atlantic-hurricane-season-63868/" id="superForm">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMjEzNzU5MjY0Nw9kFjZmDxYCHgRUZXh0BXNUaGUgMjAxNyBBdGxhbnRpYyBIdXJyaWNhbmUgU2Vhc29uOiBJbnN1cmFuY2UgQ292ZXJhZ2UgZm9yIEhhcnZleSwgSXJtYSwgSm9zZSwgYW5kIE1hcmlhIHwgQmxhbmsgUm9tZSBMTFAgLSBKRFN1cHJhZAIBDxYCHwAF4QE8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iVGhlIDIwMTcgQXRsYW50aWMgaHVycmljYW5lIHNlYXNvbiBpcyBhbHJlYWR5IG9uZSBvZiB0aGUgbW9zdCBkZXZhc3RhdGluZyBpbiBoaXN0b3J5LiBJbiBsYXRlIEF1Z3VzdCwgSGFydmV5IHN0cnVjayBhdCB0aGUgaGVhcnQgb2YgSG91c3RvbiwgVGV4YXMsIGFuZCBkcm9wcGVkIDUxLjg4IGluY2hlcyBvZiByYWluZmFsbC4uLiIgLz5kAgIPFgIfAAVcPGxpbmsgcmVsPSJpbWFnZV9zcmMiIGhyZWY9Imh0dHBzOi8vd3d3Lmpkc3VwcmEuY29tL3Nob3dUaHVtYm5haWwuYXNweD9pbWc9MTU0NDNfMjk2LmpwZyIgLz5kAgMPFgIfAAWKATxtZXRhIHByb3BlcnR5PSJvZzp0aXRsZSIgY29udGVudD0iVGhlIDIwMTcgQXRsYW50aWMgSHVycmljYW5lIFNlYXNvbjogSW5zdXJhbmNlIENvdmVyYWdlIGZvciBIYXJ2ZXksIElybWEsIEpvc2UsIGFuZCBNYXJpYSB8IEpEIFN1cHJhIiAvPmQCBA8WAh8ABW88bWV0YSBwcm9wZXJ0eT0ib2c6dXJsIiBjb250ZW50PSJodHRwOi8vd3d3Lmpkc3VwcmEuY29tL2xlZ2FsbmV3cy90aGUtMjAxNy1hdGxhbnRpYy1odXJyaWNhbmUtc2Vhc29uLTYzODY4LyIgLz5kAgUPFgIfAAVrPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlIiBjb250ZW50PSJodHRwczovL3d3dy5qZHN1cHJhLmNvbS9zaG93VGh1bWJuYWlsLmFzcHg/aW1nPTE1NDQzXzI5Ni5qcGcmc2l6ZT1vZyIgLz5kAgYPFgIfAAXEATxtZXRhIHByb3BlcnR5PSJvZzpkZXNjcmlwdGlvbiIgY29udGVudD0gIlRoZSAyMDE3IEF0bGFudGljIGh1cnJpY2FuZSBzZWFzb24gaXMgYWxyZWFkeSBvbmUgb2YgdGhlIG1vc3QgZGV2YXN0YXRpbmcgaW4gaGlzdG9yeS4gSW4gbGF0ZSBBdWd1c3QsIEhhcnZleSBzdHJ1Y2sgYXQgdGhlIGhlYXJ0IG9mIEhvdXN0b24sIFRleGFzLC4uLiIgLz5kAgcPFgIfAAUtPG1ldGEgcHJvcGVydHk9Im9nOnR5cGUiIGNvbnRlbnQ9ImFydGljbGUiIC8+ZAIQDxYCHwAFLDxtZXRhIG5hbWU9InR3aXR0ZXI6Y2FyZCIgY29udGVudD0ic3VtbWFyeSI+ZAIRDxYCHwAFfjxtZXRhIG5hbWU9InR3aXR0ZXI6dGl0bGUiIGNvbnRlbnQ9IlRoZSAyMDE3IEF0bGFudGljIEh1cnJpY2FuZSBTZWFzb246IEluc3VyYW5jZSBDb3ZlcmFnZSBmb3IgSGFydmV5LCBJcm1hLCBKb3NlLCBhbmQgTWFyaWEiPmQCEg8WAh8ABfEBPG1ldGEgbmFtZT0idHdpdHRlcjpkZXNjcmlwdGlvbiIgY29udGVudD0iVGhlIDIwMTcgQXRsYW50aWMgaHVycmljYW5lIHNlYXNvbiBpcyBhbHJlYWR5IG9uZSBvZiB0aGUgbW9zdCBkZXZhc3RhdGluZyBpbiBoaXN0b3J5LiBJbiBsYXRlIEF1Z3VzdCwgSGFydmV5IHN0cnVjayBhdCB0aGUgaGVhcnQgb2YgSG91c3RvbiwgVGV4YXMsIGFuZCBkcm9wcGVkIDUxLjg4IGluY2hlcyBvZiByYWluZmFsbCBpbiBUZXhhcywuLi4iPmQCEw8WAh8ABW48bWV0YSBuYW1lPSJ0d2l0dGVyOmltYWdlIiBjb250ZW50PSJodHRwczovL3d3dy5qZHN1cHJhLmNvbS9zaG93VGh1bWJuYWlsLmFzcHg/aW1nPTE1NDQzXzI5Ni5qcGcmYW1wO3NpemU9aHIiPmQCFA8WAh8ABS08bWV0YSBuYW1lPSJ0d2l0dGVyOnNpdGUiIGNvbnRlbnQ9IkBqZHN1cHJhIj5kAhUPFgIfAAU2PG1ldGEgbmFtZT0idHdpdHRlcjpjcmVhdG9yIiBjb250ZW50PSJAYmxhbmtyb21lbGxwIj4gZAIWDxYCHgdWaXNpYmxlaGQCFw8WAh8BaGQCGA8WAh8BaGQCGQ8WAh8BaGQCGg8WAh8BaGQCGw8WAh8ABcoBPGxpbmsgcmVsPSJhbHRlcm5hdGUiIGhyZWY9Imh0dHA6Ly93d3cuamRzdXByYS5jb20vb2VtYmVkL2luZGV4LmFzbXgvR2V0T2VtYmVkT2JqZWN0P3VybD1odHRwJTNhJTJmJTJmd3d3Lmpkc3VwcmEuY29tJTJmbGVnYWxuZXdzJTJmdGhlLTIwMTctYXRsYW50aWMtaHVycmljYW5lLXNlYXNvbi02Mzg2OCUyZiIgdHlwZT0idGV4dC94bWwrb2VtYmVkIiAvPmQCHA8WAh8ABWo8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cDovL3d3dy5qZHN1cHJhLmNvbS9sZWdhbG5ld3MvdGhlLTIwMTctYXRsYW50aWMtaHVycmljYW5lLXNlYXNvbi02Mzg2OC8iIC8+ZAIdDxYCHwBlZAIeDxYCHwBlZAIhDxYCHwFoZAIoEGRkFhYCAQ8PFgIfAWhkZAICDxYCHwAFHzx0aW1lPlNlcHRlbWJlciAyOCwgMjAxNzwvdGltZT5kAgMPFgIfAAVYVGhlIDIwMTcgQXRsYW50aWMgSHVycmljYW5lIFNlYXNvbjogSW5zdXJhbmNlIENvdmVyYWdlIGZvciBIYXJ2ZXksIElybWEsIEpvc2UsIGFuZCBNYXJpYWQCBA9kFgICAQ8WAh8ABX88aDEgY2xhc3M9ImRvY19uYW1lIGYyLW5zIGYzIG12MCI+VGhlIDIwMTcgQXRsYW50aWMgSHVycmljYW5lIFNlYXNvbjogSW5zdXJhbmNlIENvdmVyYWdlIGZvciBIYXJ2ZXksIElybWEsIEpvc2UsIGFuZCBNYXJpYTwvaDE+ZAIFDxYCHwAFDkJsYW5rIFJvbWUgTExQZAIHDxYCHwFnZAIJD2QWCgIBDxYCHwAFjAE8c2NyaXB0IHR5cGU9IklOL1NoYXJlIiBkYXRhLXVybD0iaHR0cDovL3d3dy5qZHN1cHJhLmNvbS9sZWdhbG5ld3MvdGhlLTIwMTctYXRsYW50aWMtaHVycmljYW5lLXNlYXNvbi02Mzg2OC8iIGRhdGEtY291bnRlcj0icmlnaHQiPjwvc2NyaXB0PmQCAw8WAh8ABbMBPGEgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9zaGFyZSIgdXJsPSJodHRwOi8vd3d3Lmpkc3VwcmEuY29tL2xlZ2FsbmV3cy90aGUtMjAxNy1hdGxhbnRpYy1odXJyaWNhbmUtc2Vhc29uLTYzODY4LyIgY2xhc3M9InR3aXR0ZXItc2hhcmUtYnV0dG9uIiBkYXRhLWNvdW50PSJob3Jpem9udGFsIj5Ud2VldDwvYT5kAgUPFgIfAAXZATxkaXYgY2xhc3M9ImZiLWxpa2UgZGliIG1iMSBtcjMgdi10b3AiIGRhdGEtaHJlZj0iaHR0cDovL3d3dy5qZHN1cHJhLmNvbS9sZWdhbG5ld3MvdGhlLTIwMTctYXRsYW50aWMtaHVycmljYW5lLXNlYXNvbi02Mzg2OC8iIGRhdGEtc2VuZD0iZmFsc2UiIGRhdGEtbGF5b3V0PSJidXR0b25fY291bnQiIGRhdGEtd2lkdGg9IjQ3IiBkYXRhLXNob3ctZmFjZXM9ImZhbHNlIj48L2Rpdj5kAgcPFgIfAAWVATxkaXYgY2xhc3M9ImctcGx1c29uZSIgZGF0YS1hbm5vdGF0aW9uPSJub25lIiBocmVmPSJodHRwOi8vd3d3Lmpkc3VwcmEuY29tL2xlZ2FsbmV3cy90aGUtMjAxNy1hdGxhbnRpYy1odXJyaWNhbmUtc2Vhc29uLTYzODY4LyIgc2l6ZT0ibWVkaXVtIiA+PC9kaXY+ZAILD2QWAgIBDxYCHwAF+QE8aWZyYW1lIHNyYz0iLy93d3cuamRzdXByYS5jb20vcG9zdC9jb250ZW50Vmlld2VyRW1iZWQuYXNweD9maWQ9NjVjMWQ1ZWYtNWVjZS00NDExLTg4MjgtMmMyM2ZlYmI4MzBjIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSI2MjAiIGZyYW1lYm9yZGVyPSIxIiBzdHlsZT0iYm9yZGVyOiAycHggc29saWQgI2NjYzsgb3ZlcmZsb3cteDpoaWRkZW4gIWltcG9ydGFudDsgb3ZlcmZsb3c6aGlkZGVuOyIgc2Nyb2xsaW5nPSJhdXRvIj48L2lmcmFtZT5kAgwPDxYCHwFnZBYIAgEPDxYCHwFnZBYCAgEPFgIfAAXoD1RoZSAyMDE3IEF0bGFudGljIGh1cnJpY2FuZSBzZWFzb24gaXMgYWxyZWFkeSBvbmUgb2YgdGhlIG1vc3QgZGV2YXN0YXRpbmcgaW4gaGlzdG9yeS4gSW4gbGF0ZSBBdWd1c3QsIEhhcnZleSBzdHJ1Y2sgYXQgdGhlIGhlYXJ0IG9mIEhvdXN0b24sIFRleGFzLCBhbmQgZHJvcHBlZCA1MS44OCBpbmNoZXMgb2YgcmFpbmZhbGwgaW4gVGV4YXMsIHRoZSBoaWdoZXN0IHJhaW5mYWxsIHRvdGFsIHRvIGRhdGUgZm9yIGFueSBBdGxhbnRpYyB0cm9waWNhbCBjeWNsb25lIGluIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCB0aGUgZmlmdGggaGlnaGVzdCByYWluZmFsbCB0b3RhbCBmb3IgYSB0cm9waWNhbCBjeWNsb25lIGluIHRoZSBBdGxhbnRpYyBiYXNpbi4gSXJtYSBmb2xsb3dlZCBjbG9zZWx5IG9uIEhhcnZleeKAmXMgaGVlbHMgaW4gZWFybHkgU2VwdGVtYmVyLiBJcm1hIGNsb2NrZWQgdGhlIHN0cm9uZ2VzdCB3aW5kIHNwZWVkIG9mIGFueSBodXJyaWNhbmUgdG8gZm9ybSBpbiB0aGUgQXRsYW50aWMgaW4gbW9yZSB0aGFuIGEgZGVjYWRlLCB3cmVha2VkIGhhdm9jIGluIHRoZSBDYXJpYmJlYW4sIHRoZSBGbG9yaWRhIEtleXMsIGFuZCB1cCB0aGUgRmxvcmlkYSBwZW5pbnN1bGEuIFN0b3JtIHN1cmdlIGFmZmVjdGVkIG1hbnkgYXJlYXMgaW4gdGhlIHNvdXRoZWFzdGVybiBVbml0ZWQgU3RhdGVzIGluY2x1ZGluZyBKYWNrc29udmlsbGUsIFNhdmFubmFoLCBhbmQgcG9ydGlvbnMgb2YgU291dGggQ2Fyb2xpbmEuIEpvc2UgYnJvdWdodCB0cm9waWNhbCBzdG9ybSB3aW5kcyB0byBsb3dlciBOZXcgRW5nbGFuZCBhbmQgaGlnaCBzdXJmIGFsb25nIG11Y2ggb2YgdGhlIEF0bGFudGljLiBNYXJpYSBoYW1tZXJlZCBQdWVydG8gUmljbywgdGhlIENhcmliYmVhbiwgYW5kIGhlYWRlZCB3ZXN0d2FyZC4gVGhlc2Ugc3Rvcm1zIGhhdmUgYWxyZWFkeSBjYXVzZWQgbG9zcyBvZiBsaWZlLCBkZXN0cnVjdGlvbiwgYW5kIGRpc2xvY2F0aW9uIG9uIGEgbWFzc2l2ZSBzY2FsZS48L3A+PC9wPg08L3A+PC9wPg0KPHA+PHA+PHA+PC9wPjwvcD4NCjxwPjxwPjxwPjwvcD48L3A+DTwvcD48L3A+DQo8cD48cD48cD48L3A+PC9wPg0KPHA+PHA+PHA+VGhlIGVjb25vbWljIGltcGFjdCBvZiB0aGVzZSBzdG9ybXMgd2lsbCBiZSBmZWx0IGJ5IGJ1c2luZXNzZXMgYW5kIGluZGl2aWR1YWxzIGFjcm9zcyB0aGUgY291bnRyeSBmb3Igc29tZSB0aW1lLiBPYnZpb3VzbHksIG1hbnkgYnVzaW5lc3NlcyBoYXZlIHN1ZmZlcmVkIGRpcmVjdCBkYW1hZ2UgdG8gcHJvcGVydHkgYW5kIGxvc3QgaW5jb21lIGR1ZSB0byB0aGUgcmVzdWx0aW5nIGludGVycnVwdGlvbiBvZiB0aGVpciBvcGVyYXRpb25zLCBidXQgbWFueSBvdGhlciBidXNpbmVzc2VzIGhhdmUgYWxzbyBsb3N0IHN1YnN0YW50aWFsIGluY29tZSBkdWUgdG8gZXZhY3VhdGlvbiBvcmRlcnMsIGRpc3J1cHRpb24gb2YgdXRpbGl0eSBzZXJ2aWNlLCBkaXNydXB0aW9uIG9mIG1hc3MgdHJhbnNpdCBvbiB3aGljaCB0aGVpciBlbXBsb3llZXMgcmVseSB0byBnZXQgdG8gYW5kIGZyb20gd29yaywgYW5kIGRpc3J1cHRpb24gb2YgdGhlIG9wZXJhdGlvbnMgb2Yga2V5IHN1cHBsaWVycyBvciBjdXN0b21lcnMuIEVhcmx5IGxvc3MgZXN0aW1hdGVzIGhhdmUgbm93IHJlYWNoZWQgJDE3MCBiaWxsaW9uLCBhbmQgc3VyZWx5IHdpbGwgZ28gaGlnaGVyLiBBcyB0aGUgc2l0dWF0aW9uIHN0YWJpbGl6ZXMgYW5kIHRoZSBmb2N1cyB0dXJucyB0byBlY29ub21pYyByZWNvdmVyeSwgYnVzaW5lc3NlcyB3aWxsIGJlZ2luIHRvIGV4YW1pbmUgdGhlaXIgb3BlcmF0aW9ucywgYXNzZXNzIHRoZWlyIGxvc3NlcywgYW5kIGxvb2sgdG8gdGhlaXIgaW5zdXJhbmNlIGZvciBjb21wZW5zYXRpb24uPC9wPjwvcD4NPC9wPjwvcD4NCjxwPjxwPjxwPjwvcD48L3A+DQo8cD48cD48cD48L3A+PC9wPg08L3A+PC9wPg0KPHA+PHA+PHA+PC9wPjwvcD4NCjxwPjxwPjxwPlBsZWFzZSBzZWUgZnVsbCBwdWJsaWNhdGlvbiBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gZAIDDxYCHwAF7QE8YSBjbGFzcz0iZGIgYnItcGlsbCBiZy15ZWxsb3cgcHYyIHBoNCB0YyBmdzcgZjQgVmlld1BERkJ0biIgaHJlZj0iaHR0cDovL3d3dy5qZHN1cHJhLmNvbS9wb3N0L2ZpbGVTZXJ2ZXIuYXNweD9mTmFtZT02NWMxZDVlZi01ZWNlLTQ0MTEtODgyOC0yYzIzZmViYjgzMGMucGRmIj48aW1nIGNsYXNzPSJidG4taW1nIiBzcmM9Ii9pbWcvaWNvbi1wZGYtZG93bmxvYWQuZ2lmIiAvPiZuYnNwO0Rvd25sb2FkIFBERjwvYT5kAgUPFgIfAAXB8gYNCjxub3NjcmlwdD4NClRIRSAyMDE3IEFUTEFOVElDIA0KSFVSUklDQU5FIFNFQVNPTjoNCkluc3VyYW5jZSBDb3ZlcmFnZSBmb3IgSGFydmV5LCANCklybWEsIEpvc2UsIGFuZCBNYXJpYQ0KQlk6DQpKb2huIEUuIEhlaW50eiANCjIwMi40MjAuNTM3MyANCkpIZWludHpAQmxhbmtSb21lLmNvbQ0KSmFyZWQgWm9sYSANCjIxMi44ODUuNTIwOSAgDQpKWm9sYUBCbGFua1JvbWUuY29tIA0Kd3d3LmJsYW5rcm9tZS5jb20NClRBQkxFIE9GIENPTlRFTlRTDQpJTlRST0RVQ1RJT04gICAgMQ0KVFlQRVMgT0YgUE9MSUNJRVMgVEhBVCBNQVkgQVBQTFkgIDENCkNPVkVSQUdFIEZPUiBQSFlTSUNBTCBEQU1BR0UgVE8gT1IgREVTVFJVQ1RJT04gT0YgUFJPUEVSVFkgIDINCiBBLuKAgkNvdmVyYWdlIGZvciBSZWFsIFByb3BlcnR5ICAyDQogQi7igIJDb3ZlcmFnZSBmb3IgUGVyc29uYWwgUHJvcGVydHkgIDINCiBDLuKAgkNvdmVyYWdlIGZvciBDb3N0cyBJbmN1cnJlZCB0byBQcmV2ZW50IExvc3MgIDINCkNPVkVSQUdFIEFORCBFWENMVVNJT05TIEZPUiBQQVJUSUNVTEFSIENBVVNFUyBPRiBMT1NTICAzDQogQS7igIJUaGUgU2NvcGUgb2YgdGhlIOKAnEZsb29k4oCdIEV4Y2x1c2lvbiAgMw0KIEIu4oCCIExpbWl0YXRpb25zIG9uIEZsb29kIEV4Y2x1c2lvbnMgV2hlcmUgQ292ZXJlZCBDYXVzZXMgIA0KQWxzbyBDb250cmlidXRlZCB0byB0aGUgSW5zdXJlZOKAmXMgTG9zcyAgNQ0KIEMu4oCCQW50aS1Db25jdXJyZW50IENhdXNhdGlvbiBMYW5ndWFnZSAgNw0KQ09WRVJBR0UgRk9SIExPU1QgQlVTSU5FU1MgIDcNCiBBLuKAgkJ1c2luZXNzIEludGVycnVwdGlvbiAgNw0KICAxLuKAgkNvdmVyYWdlIHdpdGhvdXQgUGh5c2ljYWwgRGFtYWdlICA4DQogIDIu4oCCQ292ZXJhZ2Ugd2l0aCBEYW1hZ2UsIGJ1dCBOb3QgdG8gSW5zdXJlZCBQcm9wZXJ0eSAgOA0KICAzLuKAgkNvdmVyYWdlIGZvciBMb3NzZXMgSW5jdXJyZWQgRHVyaW5nIHRoZSBJbnRlcnJ1cHRpb24gb2YgT3BlcmF0aW9ucyAgOQ0KIEIu4oCCQ29udGluZ2VudCBCdXNpbmVzcyBJbnRlcnJ1cHRpb24gIDkNCiBDLuKAgkNpdmlsIEF1dGhvcml0eSAgIDEwDQogRC7igIJJbmdyZXNzIG9yIEVncmVzcyAgMTENCiBFLuKAglNlcnZpY2UgSW50ZXJydXB0aW9uICAxMg0KIEYu4oCCRXh0cmEgRXhwZW5zZSAgIDEzDQpUSEUgTlVNQkVSIE9GIE9DQ1VSUkVOQ0VTLCBERURVQ1RJQkxFUywgQU5EIExBQkVMUyAgMTMNCk1BS0lORyBBIENPVkVSQUdFIENMQUlNICAxNQ0KIEEu4oCCVGhlIER1dHkgdG8gUHJvdmlkZSBOb3RpY2UgIDE1DQogQi7igIJUaGUgRHV0eSB0byBDb29wZXJhdGUgIDE1DQogQy7igIJQcm9vZnMgb2YgTG9zcyAgIDE2DQogRC7igIJFeGFtaW5hdGlvbnMgdW5kZXIgT2F0aCAgMTYNCiBFLuKAgkNvbnRyYWN0dWFsIExpbWl0YXRpb25zIFBlcmlvZHMgIDE3DQpMT1NUIE9SIERFU1RST1lFRCBJTlNVUkFOQ0UgUE9MSUNJRVMgIDE4DQpQUk9WSU5HIFRIRSBBTU9VTlQgT0YgVEhFIExPU1MgIDE4DQogQS7igIJTdGVwcyB0byBUYWtlICAgMTgNCiBCLuKAgk1lYXN1cmluZyBCdXNpbmVzcyBJbnRlcnJ1cHRpb24gTG9zc2VzICAxOQ0KIEMu4oCCVGhlIEFwcHJhaXNhbCBQcm9jZXNzICAxOQ0KQ09OQ0xVU0lPTiAgICAxOQ0KQUJPVVQgVEhFIEFVVEhPUlMgICAyMA0KVGhlIDIwMTcgQXRsYW50aWMgSHVycmljYW5lIFNlYXNvbjsgSW5zdXJhbmNlIENvdmVyYWdlIGZvciBIYXJ2ZXksIElybWEsIEpvc2UsIGFuZCBNYXJpYSDigKIgUGFnZSAxDQpJTlRST0RVQ1RJT04NClRoZSAyMDE3IEF0bGFudGljIGh1cnJpY2FuZSBzZWFzb24gaXMgYWxyZWFkeSBvbmUgb2YgdGhlIG1vc3QgDQpkZXZhc3RhdGluZyBpbiBoaXN0b3J5LiBJbiBsYXRlIEF1Z3VzdCwgSGFydmV5IHN0cnVjayBhdCB0aGUgaGVhcnQgDQpvZiBIb3VzdG9uLCBUZXhhcywgYW5kIGRyb3BwZWQgNTEuODggaW5jaGVzIG9mIHJhaW5mYWxsIGluIFRleGFzLCANCnRoZSBoaWdoZXN0IHJhaW5mYWxsIHRvdGFsIHRvIGRhdGUgZm9yIGFueSBBdGxhbnRpYyB0cm9waWNhbCBjeWNsb25lIA0KaW4gdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIHRoZSBmaWZ0aCBoaWdoZXN0IHJhaW5mYWxsIHRvdGFsIGZvciBhIA0KdHJvcGljYWwgY3ljbG9uZSBpbiB0aGUgQXRsYW50aWMgYmFzaW4uIElybWEgZm9sbG93ZWQgY2xvc2VseSBvbiANCkhhcnZleeKAmXMgaGVlbHMgaW4gZWFybHkgU2VwdGVtYmVyLiBJcm1hIGNsb2NrZWQgdGhlIHN0cm9uZ2VzdCANCndpbmQgc3BlZWQgb2YgYW55IGh1cnJpY2FuZSB0byBmb3JtIGluIHRoZSBBdGxhbnRpYyBpbiBtb3JlIA0KdGhhbiBhIGRlY2FkZSwgd3JlYWtlZCBoYXZvYyBpbiB0aGUgQ2FyaWJiZWFuLCB0aGUgRmxvcmlkYSANCktleXMsIGFuZCB1cCB0aGUgRmxvcmlkYSBwZW5pbnN1bGEuIFN0b3JtIHN1cmdlIGFmZmVjdGVkIG1hbnkgDQphcmVhcyBpbiB0aGUgc291dGhlYXN0ZXJuIFVuaXRlZCBTdGF0ZXMgaW5jbHVkaW5nIEphY2tzb252aWxsZSwgDQpTYXZhbm5haCwgYW5kIHBvcnRpb25zIG9mIFNvdXRoIENhcm9saW5hLiBKb3NlIGJyb3VnaHQgdHJvcGljYWwgDQpzdG9ybSB3aW5kcyB0byBsb3dlciBOZXcgRW5nbGFuZCBhbmQgaGlnaCBzdXJmIGFsb25nIG11Y2ggb2YgDQp0aGUgQXRsYW50aWMuIE1hcmlhIGhhbW1lcmVkIFB1ZXJ0byBSaWNvLCB0aGUgQ2FyaWJiZWFuLCBhbmQgDQpoZWFkZWQgd2VzdHdhcmQuIFRoZXNlIHN0b3JtcyBoYXZlIGFscmVhZHkgY2F1c2VkIGxvc3Mgb2YgbGlmZSwgDQpkZXN0cnVjdGlvbiwgYW5kIGRpc2xvY2F0aW9uIG9uIGEgbWFzc2l2ZSBzY2FsZS4NClRoZSBlY29ub21pYyBpbXBhY3Qgb2YgdGhlc2Ugc3Rvcm1zIHdpbGwgYmUgZmVsdCBieSBidXNpbmVzc2VzIA0KYW5kIGluZGl2aWR1YWxzIGFjcm9zcyB0aGUgY291bnRyeSBmb3Igc29tZSB0aW1lLiBPYnZpb3VzbHksIA0KbWFueSBidXNpbmVzc2VzIGhhdmUgc3VmZmVyZWQgZGlyZWN0IGRhbWFnZSB0byBwcm9wZXJ0eSBhbmQgDQpsb3N0IGluY29tZSBkdWUgdG8gdGhlIHJlc3VsdGluZyBpbnRlcnJ1cHRpb24gb2YgdGhlaXIgb3BlcmF0aW9ucywgDQpidXQgbWFueSBvdGhlciBidXNpbmVzc2VzIGhhdmUgYWxzbyBsb3N0IHN1YnN0YW50aWFsIGluY29tZSANCmR1ZSB0byBldmFjdWF0aW9uIG9yZGVycywgZGlzcnVwdGlvbiBvZiB1dGlsaXR5IHNlcnZpY2UsIGRpc3J1cHRpb24gDQpvZiBtYXNzIHRyYW5zaXQgb24gd2hpY2ggdGhlaXIgZW1wbG95ZWVzIHJlbHkgdG8gZ2V0IHRvIGFuZCANCmZyb20gd29yaywgYW5kIGRpc3J1cHRpb24gb2YgdGhlIG9wZXJhdGlvbnMgb2Yga2V5IHN1cHBsaWVycyBvciANCmN1c3RvbWVycy4gRWFybHkgbG9zcyBlc3RpbWF0ZXMgaGF2ZSBub3cgcmVhY2hlZCAkMTcwIGJpbGxpb24sIA0KYW5kIHN1cmVseSB3aWxsIGdvIGhpZ2hlci4gQXMgdGhlIHNpdHVhdGlvbiBzdGFiaWxpemVzIGFuZCB0aGUgZm9jdXMgDQp0dXJucyB0byBlY29ub21pYyByZWNvdmVyeSwgYnVzaW5lc3NlcyB3aWxsIGJlZ2luIHRvIGV4YW1pbmUgDQp0aGVpciBvcGVyYXRpb25zLCBhc3Nlc3MgdGhlaXIgbG9zc2VzLCBhbmQgbG9vayB0byB0aGVpciBpbnN1cmFuY2UgDQpmb3IgY29tcGVuc2F0aW9uLiANClRoZXJlIGlzIG5vIGRvdWJ0IHRoYXQgcmVjb3ZlcmluZyBpbnN1cmFuY2UgZm9yIG1hbnkgb2YgdGhlc2UgDQpsb3NzZXMgd2lsbCBiZSBhcyBjb21wbGljYXRlZCBhbmQgY2hhbGxlbmdpbmcgYXMgaGFzIGJlZW4gdGhlIA0KY2FzZSB3aXRoIDkvMTEsIEh1cnJpY2FuZSBLYXRyaW5hLCBhbmQgU3VwZXJzdG9ybSBTYW5keS4gDQpTcGVjaWZpY2FsbHksIHByb3BlcnR5IGluc3VyYW5jZSwgaW5jbHVkaW5nIGJ1c2luZXNzIGludGVycnVwdGlvbiANCmFuZCBjb250aW5nZW50IGJ1c2luZXNzIGludGVycnVwdGlvbiBjb3ZlcmFnZXMsIHByb3RlY3QgYWdhaW5zdCANCm1vcmUgdGhhbiBqdXN0IHBoeXNpY2FsIGRhbWFnZSB0byBhbmQgbG9zcyBvZiBwcm9wZXJ0eS4gU3VjaCANCmluc3VyYW5jZSBhbHNvIG9mdGVuIHByb3RlY3RzIGZpbmFuY2lhbCBsb3NzZXMgYXJpc2luZyBmcm9tIGFuIA0KaW5hYmlsaXR5IHRvIGNvbmR1Y3QgYnVzaW5lc3MgKGVpdGhlciBhdCBhbGwgb3IgYXQgdGhlIHNhbWUgbGV2ZWxzIGFzIA0KYmVmb3JlKTsgdGhlIGV4dHJhIGV4cGVuc2VzIGluY3VycmVkIGluIGRlYWxpbmcgd2l0aCB0aGUgZWZmZWN0cyANCm9mIGEgZGlzYXN0ZXIsIGluY2x1ZGluZyBtb25leSBzcGVudCB0byBtaW5pbWl6ZSBhbnkgZGFtYWdlIA0KYW5kIGxvc3NlczsgYW5kIHRoZSBjb3N0cyBpbmN1cnJlZCBpbiBlc3RhYmxpc2hpbmcgdGhlIGV4dGVudCBvZiANCnRoZSBsb3NzZXMuIE1vcmVvdmVyLCBjb250aW5nZW50IGJ1c2luZXNzIGludGVycnVwdGlvbiBjb3ZlcmFnZSANCm9mdGVuIGNvbnRhaW5lZCBpbiBmaXJzdC1wYXJ0eSBwcm9wZXJ0eSBwb2xpY2llcyBtYXkgcHJvdmlkZSANCmNvdmVyYWdlIHdoZW4gYSBidXNpbmVzcyBmYWNlcyBsb3NzIGR1ZSB0byBpdHMgc3VwcGxpZXJz4oCZIGluYWJpbGl0eSANCnRvIHByb3ZpZGUgbmVlZGVkIHBhcnRzIGFuZCByZXNvdXJjZXMsIG9yIGl0cyBjdXN0b21lcnPigJkgaW5hYmlsaXR5IA0KdG8gdGFrZSBkZWxpdmVyeSBvZiBwcm9kdWN0IGJlY2F1c2Ugb2YgdGhlIGRhbWFnZSB0byB0aGVpciANCm93biBidXNpbmVzcyB2ZW50dXJlcy4gT3RoZXIgdHlwZXMgb2YgaW5zdXJhbmNlIHRoYXQgYWxzbyBtYXkgDQpyZXNwb25kIGluY2x1ZGUgcG9saWNpZXMgZm9yIHRyYWRlIGRpc3J1cHRpb24sIGV2ZW50IGNhbmNlbGxhdGlvbiwgDQphbmQgZGlyZWN0b3JzIGFuZCBvZmZpY2Vycy4gU3BlY2lmaWMgcG9saWN5IGxhbmd1YWdlIGFuZCBwYXJ0aWN1bGFyIA0KY2lyY3Vtc3RhbmNlcyBtYXkgaW1wYWN0IHRoZSBhdmFpbGFiaWxpdHkgYW5kIHNjb3BlIG9mIGNvdmVyYWdlIA0Kc2lnbmlmaWNhbnRseS4gSW5kZWVkLCBob3cgbG9zcyBpcyBjaGFyYWN0ZXJpemVkIG1heSBhZmZlY3QgdGhlIA0KYXBwbGljYWJpbGl0eSBhbmQgYW1vdW50IG9mIGRlZHVjdGlibGVzLCBzdWItbGltaXRzLCBhbmQgY292ZXJhZ2UgDQpleHRlbnNpb25zLg0KQSBidXNpbmVzcyB0aGF0IGZhY2VzIGxvc3NlcyBmcm9tIGFueSBtYWpvciBzdG9ybSBldmVudCBzaG91bGQgDQppbW1lZGlhdGVseSBjb25zaWRlciBob3cgaXRzIGluc3VyYW5jZSB3aWxsIHJlc3BvbmQsIGFzc2VzcyANCml0cyBpbnN1cmFuY2UgcG9saWNpZXMsIGFuZCBkZXZlbG9wIGEgcGxhbiB0byBkZXRlcm1pbmUgYW5kIA0KZG9jdW1lbnQgbG9zc2VzIHRoYXQgd2VyZSBvciB3aWxsIGJlIHN1c3RhaW5lZCBiZWNhdXNlIG9mIHRoZSANCmRpc2FzdGVyLiBFeHBlcmllbmNlIHRlbGxzIHVzIHRoYXQgZXZlbiBzb3BoaXN0aWNhdGVkIGJ1c2luZXNzZXMgDQp1bmtub3dpbmdseSBjb21taXQgZXJyb3JzIGluIGFzc2Vzc2luZyBhbmQgZG9jdW1lbnRpbmcgdGhlaXIgDQpsb3NzZXMgb3IgaW50ZXJwcmV0aW5nIHRoZWlyIGluc3VyYW5jZSBwb2xpY2llcyB0aGF0IGxhdGVyIGxpbWl0IA0Kb3IgZXZlbiBiYXIgcG90ZW50aWFsIGluc3VyYW5jZSByZWNvdmVyeSwgYW5kIHRoYXQgaW5zdXJlcnMgDQpmcmVxdWVudGx5IHVzZSBpbml0aWFsIGNoYXJhY3Rlcml6YXRpb25zIG9yIOKAnGxhYmVsc+KAnSBhcyBhIGJhc2lzIHRvIA0KcmVzdHJpY3Qgb3IgZWxpbWluYXRlIGNvdmVyYWdlLg0KQXMgYSBzdGFydGluZyBwb2ludCBmb3IgdGhhdCBhc3Nlc3NtZW50LCB0aGlzIHdoaXRlIHBhcGVyIA0KZGlzY3Vzc2VzIGlzc3VlcyBjb21tb24gdG8gbW9zdCBwb2xpY2llcywgaW5jbHVkaW5nOiB3aGV0aGVyIA0KZGFtYWdlIG9yIGxvc3Mgd2FzIGNhdXNlZCBieSB3aW5kIG9yIGZsb29kLCB3aGVyZSBkYW1hZ2UgDQpjYXVzZWQgYnkgZmxvb2QgbWF5IGJlIGV4Y2x1ZGVkOyB0aGUgaW1wYWN0IG9mIOKAnE5hbWVkIA0KV2luZHN0b3Jt4oCdIHByb3Zpc2lvbnMgb24gdGhlIGV4dGVudCBvZiBjb3ZlcmFnZTsgY292ZXJhZ2UgZm9yIA0KbG9zcyBjYXVzZWQgYnkgdGhlIGRpc3J1cHRpb24gb2YgdXRpbGl0eSBzZXJ2aWNlczsgY292ZXJhZ2UgZm9yIA0KbG9zcyBhdHRyaWJ1dGVkIHRvIGxhY2sgb2YgaW5ncmVzcyBvciBlZ3Jlc3MgdG8gaW5zdXJlZCBmYWNpbGl0aWVzLCANCnRvIGV2YWN1YXRpb24gb3JkZXJzLCBvciB0byBvdGhlciBvcmRlcnMgb2YgY2l2aWwgYXV0aG9yaXRpZXM7IGFuZCANCmNvdmVyYWdlIGZvciBsb3NzIHJlc3VsdGluZyBmcm9tIGRhbWFnZSB0byBrZXkgc3VwcGxpZXJzIG9yIA0KY3VzdG9tZXJzLiBJdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0IHBvbGljeSB0ZXJtcyB2YXJ5IHdpZGVseSwgDQphbmQgdGhlcmUgaXMgbm8gc3Vic3RpdHV0ZSBmb3IgY2FyZWZ1bCBwb2xpY3kgYW5hbHlzaXMuIA0KVFlQRVMgT0YgUE9MSUNJRVMgVEhBVCBNQVkgQVBQTFkNCkluc3VyYW5jZSBmb3IgbG9zc2VzIGNhdXNlZCBieSBkaXNhc3RlcnMgc3VjaCBhcyB0aGUgMjAxNyBBdGxhbnRpYyANCmh1cnJpY2FuZXMgYW5kIHJlbGF0ZWQgd2VhdGhlciBldmVudHMgY2FuIGJlIHByb3ZpZGVkIHVuZGVyIA0Kc2V2ZXJhbCBkaWZmZXJlbnQgdHlwZXMgb2YgaW5zdXJhbmNlIHBvbGljaWVzLiBUaGlzIGNvdmVyYWdlIGlzIA0Kbm90IG9ubHkgcHJvdmlkZWQgdW5kZXIgdGhlIG9yZGluYXJ5IOKAnHByb3BlcnR54oCdIHBvbGljeS4gSXQgYWxzbyANCm1heSBiZSBwcm92aWRlZCB1bmRlciBvdGhlciBwb2xpY2llcywgc3VjaCBhcyB0aG9zZSBwcm92aWRpbmcgDQpjb3ZlcmFnZSBmb3Ig4oCcZW52aXJvbm1lbnRhbOKAnSBsb3NzZXMsIOKAnG1hcml0aW1l4oCdIGxvc3NlcywgYW5kIA0K4oCcd2FyZWhvdXNl4oCdIGxvc3Nlcy4gVGh1cywgaXQgaXMgaW1wb3J0YW50IGZvciBhbiBpbnN1cmVkIHRvIA0KcmV2aWV3IGFsbCBvZiBpdHMgcG9saWNpZXMgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIHRoZSBleHRlbnQgb2YgaXRzIA0KY292ZXJhZ2UuIE1hbnkgcHJvcGVydHkgaW5zdXJhbmNlIHBvbGljaWVzIGNvdmVyIGxvc3NlcyB0byByZWFsIA0KcHJvcGVydHkgY2F1c2VkIGJ5IGFsbCBwZXJpbHMuIFNvbWUgcG9saWNpZXMgY292ZXIgYWxsIGNhdXNlcyBvZiANCmxvc3Mgbm90IGV4cHJlc3NseSBleGNsdWRlZC4gQmVjYXVzZSBvZiB0aGUgYnJlYWR0aCBvZiBjb3ZlcmFnZSANCmFmZm9yZGVkIGJ5IGFuIOKAnGFsbCByaXNr4oCdIHBvbGljeSwgdGhlIGJ1cmRlbiBvZiBwcm9vZiBzaGlmdHMgdG8gdGhlIA0KaW5zdXJlciB0byBzaG93IHRoYXQgdGhlIGxvc3MgaXMgbm90IGNvdmVyZWQsIG9uY2UgdGhlIGluc3VyZWQgDQpkZW1vbnN0cmF0ZXMgaXQgaGFzIHN1ZmZlcmVkIGEgbG9zcy4gU2VlLCBlLmcuLCBOb3J0aHJvcCBHcnVtbWFuIA0KQ29ycC4gdi4gRmFjdG9yeSBNdXQuIElucy4gQ28uLCA4MDUgRi4gU3VwcC4gMmQgOTQ1LCA5NTAgKEMuRC4gDQpDYWwuIDIwMTEpICjigJxJdCBpcyB3ZWxsIHNldHRsZWQgdGhhdCBhbiBpbnN1cmVkIHVuZGVyIGFuIGFsbCByaXNrcyANCnBvbGljeSBjYW4g4oCYcmVhc29uYWJseSBleHBlY3TigJkgY292ZXJhZ2UgZm9yIGFsbCBsb3NzZXMgdGhhdCBhcmUgbm90IA0KY2xlYXJseSBleGNsdWRlZCBvciBsaW1pdGVkLuKAnSkuDQpUaGUgMjAxNyBBdGxhbnRpYyBIdXJyaWNhbmUgU2Vhc29uOyBJbnN1cmFuY2UgQ292ZXJhZ2UgZm9yIEhhcnZleSwgSXJtYSwgSm9zZSwgYW5kIE1hcmlhIOKAoiBQYWdlIDINCkJ5IGNvbXBhcmlzb24sIGEgc2Vjb25kIHR5cGUgb2YgcHJvcGVydHkgaW5zdXJhbmNl4oCUYSDigJxuYW1lZCANCnBlcmlsc+KAnSBwb2xpY3nigJRjb3ZlcnMgb25seSB0aG9zZSBwZXJpbHMgZXhwcmVzc2x5IGxpc3RlZC4gQm90aCANCnR5cGVzIG9mIHBvbGljaWVzIG1heSBjb250YWluIGV4Y2x1c2lvbnMgZm9yIHdlYXRoZXIgY29uZGl0aW9ucy4gDQpBYnNlbnQgYSBjbGVhciBleGNsdXNpb24sIGNvdmVyYWdlIG1heSBiZSBhZmZvcmRlZC4gDQpDT1ZFUkFHRSBGT1IgUEhZU0lDQUwgREFNQUdFIFRPIE9SIA0KREVTVFJVQ1RJT04gT0YgUFJPUEVSVFkNCkEuIENvdmVyYWdlIGZvciBSZWFsIFByb3BlcnR5DQpGaXJzdC1wYXJ0eSBwcm9wZXJ0eSBwb2xpY2llcyBnZW5lcmFsbHkgcHJvdmlkZSBpbnN1cmFuY2UgZm9yIA0K4oCcZGlyZWN0IHBoeXNpY2FsIGxvc3Mgb2Ygb3IgZGFtYWdlIHRvIHByb3BlcnR5LuKAnSBUcmFkaXRpb25hbCANCmxvc3NlcyB1bmRlciBmaXJzdC1wYXJ0eSBwcm9wZXJ0eSBwb2xpY2llcyBpbnZvbHZlIHRhbmdpYmxlIA0KcHJvcGVydHksIGluY2x1ZGluZyBidWlsZGluZ3MsIHBlcm1hbmVudGx5IGluc3RhbGxlZCBtYWNoaW5lcnkgDQpvciBlcXVpcG1lbnQsIGludmVudG9yeSwgYW5kIGZpeHR1cmVzLiBUaGV5IG1heSBhbHNvIGludm9sdmUgDQpwZXJzb25hbCBwcm9wZXJ0eSBvd25lZCBieSB0aGUgaW5zdXJlZCB0aGF0IGlzIHVzZWQgdG8gc2VydmljZSANCmFuZCBtYWludGFpbiBidWlsZGluZ3MgYW5kIHByZW1pc2VzLCBzdWNoIGFzIGZpcmUgZXh0aW5ndWlzaGluZyANCmVxdWlwbWVudC4gU3VjaCBpbnN1cmFuY2UgZ2VuZXJhbGx5IGV4Y2x1ZGVzIGludGFuZ2libGUgbG9zc2VzLiANCkhvd2V2ZXIsIHNvbWUgY2FzZXMgaG9sZCB0aGF0IGlmIHRoZSBwcm9wZXJ0eSBpcyByZW5kZXJlZCANCnVudXNhYmxlLCBzdWNoIGFzIGJ5IHRoZSBwcmVzZW5jZSBvZiBjb250YW1pbmFudHMsIGEgZmlyc3QtcGFydHkgDQpwcm9wZXJ0eSBwb2xpY3kgbWF5IHByb3ZpZGUgY292ZXJhZ2UuDQpBbiBpbnN1cmVkIG11c3QgaGF2ZSBhbiDigJxpbnN1cmFibGUgaW50ZXJlc3TigJ0gaW4gdGhlIHByb3BlcnR5IGF0IA0KdGhlIHRpbWUgb2YgdGhlIGNvdmVyZWQgaW5jaWRlbnQsIHN1Y2ggYXMgYSBmaXJlIG9yIGFuIGVhcnRocXVha2UuIA0KU2VlLCBlLmcuLCBGbGEuIFN0YXQuICYjMTY3OyA2MjcuNDA1LiBDb3VydHMgaW50ZXJwcmV0IOKAnGluc3VyYWJsZSANCmludGVyZXN04oCdIGZhaXJseSBicm9hZGx5LCBhbmQgdGhlIGNvbmNlcHQgbWF5IGVuY29tcGFzcyANCmNvbnRpbmdlbnQgYW5kIGJlbmVmaWNpYWwgaW50ZXJlc3RzLiBUaGUgaW5zdXJlZCBkb2VzIG5vdCBoYXZlIA0KdG8gb3duIG9yIGxlYXNlIHRoZSBwcm9wZXJ0eSB0byBoYXZlIGFuIGluc3VyYWJsZSBpbnRlcmVzdC4gU2VlIA0KWnVyaWNoIEFtLiBJbnMuIENvLiB2LiBBQk0gSW5kdXMuLCBJbmMuLCAzOTcgRi4zZCAxNTgsIDE2NS02OCAoMmQgDQpDaXIuIDIwMDUpIChhbiBpbnN1cmVkLCB3aGljaCBwcm92aWRlZCBlbmdpbmVlcmluZyBhbmQgamFuaXRvcmlhbCANCnNlcnZpY2VzIHRvIG5lYXJseSBhbGwgb2YgdGhlIFdvcmxkIFRyYWRlIENlbnRlciAo4oCcV1RD4oCdKSB0ZW5hbnRzIA0KYW5kIGFsc28gdXNlZCBhbmQvb3IgbGVhc2VkIGNvbW1vbiBhcmVhcyBhdCB0aGUgV1RDLCBoYWQgDQphbiDigJxpbnN1cmFibGUgaW50ZXJlc3TigJ0gaW4gdGhlIGFyZWFzIHRoYXQgaXQgdXNlZCBvciBvY2N1cGllZCkuIA0KQSBmaW5hbmNpYWwgaW50ZXJlc3QgaW4gdGhlIGNvbnRpbnVlZCBleGlzdGVuY2Ugb2YgdGhlIHByb3BlcnR5IA0Kd2lsbCBjb25zdGl0dXRlIGFuIGluc3VyYWJsZSBpbnRlcmVzdCBhcyB3ZWxsLiBTZWUgWnVyaWNoIEFtLiBJbnMuIA0KQ28uIHYuIEZlbGlwZSBHcmltYmVyZyBGaW5lIEFydCwgMjAwOCBVLlMuIERpc3QuIExFWElTIDEwNTQ0LCBhdCANCioxOC0xOSAoUy5ELk4uWS4gRmViLiAxMywgMjAwOCkgKOKAnEFuIGluc3VyYWJsZSBpbnRlcmVzdCBpbiBwcm9wZXJ0eSANCmRlcGVuZHMgb24gd2hldGhlciB0aGUgcGVyc29uIGhhcyBhIHRpdGxlIHRvLCBsaWVuIHVwb24sIG9yIA0KcG9zc2Vzc2lvbiBvZiB0aGUgcHJvcGVydHksIGFuZCB3aGV0aGVyIOKAmGJ5IHRoZSBleGlzdGVuY2Ugb2YgDQpbdGhlIHByb3BlcnR5XSBoZSB3aWxsIGdhaW4gYW4gYWR2YW50YWdlLCBvciBieSB0aGUgZGVzdHJ1Y3Rpb24gb2YgDQp3aGljaCBoZSB3aWxsIHN1ZmZlciBhIGxvc3Mu4oCZ4oCdIChjaXRhdGlvbiBvbWl0dGVkKSk7IExhbmNlbGxvdHRpIHYuIE1kLiANCkNhcy4gQ28uLCAyNjAgTi5KLiBTdXBlci4gNTc5LCA1ODQgKDE5OTIpIChpbnN1cmVkIGhhcyBpbnN1cmFibGUgDQppbnRlcmVzdCBpbiBwcm9wZXJ0eSBpZiBwcm9wZXJ0eeKAmXMgbG9zcyBvciBkZXN0cnVjdGlvbiByZXN1bHRzIGluIA0KZWNvbm9taWMgb3IgcGVjdW5pYXJ5IGxvc3MpLg0KQi4gQ292ZXJhZ2UgZm9yIFBlcnNvbmFsIFByb3BlcnR5DQpNb3N0IHByb3BlcnR5IGluc3VyYW5jZSBwb2xpY2llcyBhbHNvIGluc3VyZSBwZXJzb25hbCBwcm9wZXJ0eS4gDQpUaGlzIGNvdmVyYWdlIHVzdWFsbHkgaXMgcHJvdmlkZWQgdW5kZXIgYW4g4oCcdW5zY2hlZHVsZWQgDQpwZXJzb25hbCBwcm9wZXJ0eeKAnSBwcm92aXNpb24uIFRoaXMgcHJvdmlzaW9uIHR5cGljYWxseSBwcm92aWRlcyANCmNvdmVyYWdlIGZvciB1bnNjaGVkdWxlZCBwZXJzb25hbCBwcm9wZXJ0eSB0aGF0IGlzIOKAnHVzdWFsIG9yIA0KaW5jaWRlbnRhbCB0byB0aGUgb2NjdXBhbmN5IG9mIHRoZSBwcmVtaXNlc+KAnSBvciDigJx1c2VkIGJ5IGFuIA0KaW5zdXJlZCB3aGlsZSBvbiB0aGUgZGVzY3JpYmVkIHByZW1pc2VzLuKAnSBIb3dldmVyLCBjZXJ0YWluIA0KdHlwZXMgb2YgcHJvcGVydHkgdGhhdCBhcmUgZWFzaWx5IG1vdmFibGUgdXN1YWxseSB3aWxsIGJlIGNvdmVyZWQgDQpvbmx5IHVuZGVyIOKAnGZsb2F0ZXLigJ0gcG9saWNpZXMgb3Ig4oCcZmxvYXRlcuKAnSBlbmRvcnNlbWVudHMgdG8gDQp0aGUgcHJvcGVydHkgcG9saWN5LiBUaGVzZSBwb2xpY2llcyBvciBlbmRvcnNlbWVudHMgd2lsbCBjb3ZlciANCmJ1c2luZXNzIHBlcnNvbmFsIHByb3BlcnR5LCBpbmNsdWRpbmcgZnVybml0dXJlLCBtYWNoaW5lcnksIGFuZCANCnN0b2NrLCBhdCBsZWFzdCB0byB0aGUgZXh0ZW50IHRoYXQgdGhlc2UgaXRlbXMgYXJlIGZvdW5kIHdpdGhpbiANCjEwMCBmZWV0IG9mIHRoZSBpbnN1cmVkIHByZW1pc2VzLg0KQy4gIENvdmVyYWdlIGZvciBDb3N0cyBJbmN1cnJlZCB0byBQcmV2ZW50IExvc3MNClByb3BlcnR5IHBvbGljaWVzIGFsc28gdHlwaWNhbGx5IGNvbnRhaW4gcHJvdmlzaW9ucyB0aGF0IHByb3ZpZGUgDQpyZWltYnVyc2VtZW50IGZvciBwcmV2ZW50YXRpdmUgbWVhc3VyZXMgdGFrZW4gdG8gYXZvaWQgbG9zcy4gDQpIaXN0b3JpY2FsbHksIHRoZXNlIHByb3Zpc2lvbnMgYXJlIGtub3duIGFzIOKAnHN1ZSBhbmQgbGFib3LigJ0gDQpwcm92aXNpb25zICh0aGUgd29yZCDigJxzdWXigJ0gaGFzIHRoZSBub3ctb2Jzb2xldGUgbWVhbmluZyBvZiDigJx0byANCmdvIGluIHB1cnN1aXQgb2bigJ0pLiBUb2RheSwgc3VjaCBwcm92aXNpb25zIGFyZSBvZnRlbiByZWZlcnJlZCB0byBhcyANCuKAnGV4cGVuc2VzIHRvIHByZXZlbnQgbG9zc+KAnSBwcm92aXNpb25zLiBUaGlzIGNvdmVyYWdlIGNvbW1vbmx5IA0KYXBwbGllcyB3aGVuLCBmb3IgZXhhbXBsZSwgYW4gaW5zdXJlZCBib2FyZHMgdXAgaXRzIHdpbmRvd3MgdG8gDQpwcmV2ZW50IGRhbWFnZS4gVGhlIGluc3VyZWQgaXMgZW50aXRsZWQgdG8gcmVpbWJ1cnNlbWVudCBmb3IgDQp0aGVzZSBjb3N0cyByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIGNvdmVyZWQgcHJvcGVydHkgYWN0dWFsbHkgDQpzdWZmZXJzIGRhbWFnZSBmcm9tIGEgY292ZXJlZCBwZXJpbC4gQ2YuIFJveWFsIEluZGVtLiBDby4gdi4gDQpHcnVuYmVyZywgNTUzIE4uWS5TLjJkIDUyNywgNTI5IChBcHAuIERpdi4gMTk5MCkgKGFuIGluc3VyZWQgDQplbnRpdGxlZCB0byBjb3ZlcmFnZSB1bmRlciBpdHMgaG9tZW93bmVycyBwb2xpY3kgZm9yIGV4cGVuc2VzIA0KaW5jdXJyZWQgdG8gcHJldmVudCBpbW1pbmVudCBjb2xsYXBzZSBvZiBob21lIGJlY2F1c2Ug4oCcdGhlIA0KcG9saWN5IHBsYWNlcyBhbiBhZmZpcm1hdGl2ZSBkdXR5IG9uIHRoZSBpbnN1cmVkIHRvIG1haW50YWluIGFuZCANCnJlcGFpciBhbGwgY292ZXJlZCBwcm9wZXJ0eSBpbiB0aGUgZXZlbnQgb2YgYW55IGxvc3PigJ0pOyBzZWUgYWxzbyANClp1cmljaCBJbnMuIENvLiB2LiBQYXRlbWFuLCA2OTIgRi4gU3VwcC4gMzcxLCAzNzUgKEQuTi5KLiAxOTg3KSANCijigJxVbmRlciB0aGlzIHByb3Zpc2lvbiB0aGUgdW5kZXJ3cml0ZXIgaXMgbGlhYmxlIGZvciBhbGwgY29zdHMgDQpleHBlbmRlZCBieSB0aGUgaW5zdXJlZCBpbiBwcmV2ZW50aW5nIG9yIGFtZWxpb3JhdGluZyBhIGxvc3MgDQp3aGljaCB0aGUgdW5kZXJ3cml0ZXIgd291bGQgYmUgcmVxdWlyZWQgdG8gcGF5LuKAnSkuDQpUaGUg4oCcc3VlIGFuZCBsYWJvcuKAnSBjbGF1c2UgdHlwaWNhbGx5IGlzIHJlZ2FyZGVkIGFzIGEgZGlzdGluY3QgDQp0eXBlIG9mIGNvdmVyYWdlIHN1cHBsZW1lbnRpbmcgYSBwcm9wZXJ0eSBpbnN1cmFuY2UgcG9saWN5LiANClRoZSBjbGF1c2UgaXMgZGVzaWduZWQgdG8gcHJvdGVjdCB0aGUgaW5zdXJlcuKAmXMgaW50ZXJlc3QgYnkgDQpyZWR1Y2luZyBhbmQgbWl0aWdhdGluZyB0aGUgcmlzayBvZiBkYW1hZ2UgZnJvbSBhIGNvdmVyZWQgbG9zcy4gDQpBY2NvcmRpbmdseSwgZGVkdWN0aWJsZXMgYXBwbGljYWJsZSB0byBvdGhlciB0eXBlcyBvZiBjb3ZlcmFnZSANCnByb3ZpZGVkIGJ5IHRoZSBwb2xpY3kgc2hvdWxkIG5vdCBhcHBseSB0byB0aGUg4oCcc3VlIGFuZCBsYWJvcuKAnSANCmNvdmVyYWdlLCBhbmQgdGhlIGluc3VyZWQgc2hvdWxkIHJlY2VpdmUgZnVsbCByZWltYnVyc2VtZW50IA0KZnJvbSB0aGUgaW5zdXJlciBmb3IgdGhlc2UgZXhwZW5zZXMuIFNlZSwgZS5nLiwgQW0uIEhvbWUgDQpBc3N1cmFuY2UgQ28uIHYuIEouIEYuIFNoZWEgQ28uLCA0NDUgRi4gU3VwcC4gMzY1LCAzNjktNzAgKEQuRC5DLiANCjE5NzgpIChEZWR1Y3RpYmxlIGRvZXMgbm90IGFwcGx5IHRvIHN1ZSBhbmQgbGFib3IgY292ZXJhZ2UgDQpiZWNhdXNlIGl0IHdvdWxkIGJlIOKAnGluY29uc2lzdGVudCB0byBwbGFjZSBhbiBhZmZpcm1hdGl2ZSANCm9ibGlnYXRpb24gb2YgdGhpcyBuYXR1cmUgb24gdGhlIGluc3VyZWRzIGZvciB0aGUgYmVuZWZpdCBvZiB0aGUgDQppbnN1cmVyIGFuZCB0aGVuIGFkZGl0aW9uYWxseeKAieKApuKAiXJlcXVpcmUgdGhlIGluc3VyZWRzIHRvIHBheSBmb3IgDQp0aGUgZmlyc3QgW3BvcnRpb25dIG9mIHRoZSBjb3N0IGluIHByb3ZpZGluZyB0aGlzIGJlbmVmaXQu4oCdKTsgc2VlIGFsc28gDQpXLiAmYW1wOyBDbGF5LCBMTEMgdi4gTGFuZG1hcmsgQW0uIElucy4gQ28uLCAyMDExIFdMIDMyMTc0MCwgYXQgDQoqNCAoVy5ELiBXYXNoLiBKYW4uIDI4LCAyMDExKSAoYWRvcHRpbmcgU2hlYSkuIOKAnFN1ZSBhbmQgbGFib3LigJ0gDQpjbGF1c2VzIGFyZSBzdXBwbGVtZW50YXJ5IHRvIHRoZSBpbnN1cmFuY2UgY29udHJhY3QgYW5kLCBhcyANCnN1Y2gsIGFtb3VudHMgcGFpZCB1bmRlciB0aGlzIGNsYXVzZSB3aWxsIGdlbmVyYWxseSBub3QgY291bnQgDQphZ2FpbnN0IGFuIGluc3VyZWTigJlzIHBvbGljeSBsaW1pdHMsIGJhcnJpbmcgcG9saWN5IGxhbmd1YWdlIHRvIHRoZSANCmNvbnRyYXJ5LiBTZWUgZ2VuZXJhbGx5IE0uIEouIFJ1ZG9scGggQ29ycC4gdi4gTHVtYmVyIE11dC4gRmlyZSANCklucy4gQ28uLCAzNzEgRi4gU3VwcC4gMTMyNSwgMTMyNyAoRS5ELk4uWS4gMTk3NCkuDQpUaGUgMjAxNyBBdGxhbnRpYyBIdXJyaWNhbmUgU2Vhc29uOyBJbnN1cmFuY2UgQ292ZXJhZ2UgZm9yIEhhcnZleSwgSXJtYSwgSm9zZSwgYW5kIE1hcmlhIOKAoiBQYWdlIDMNCkV2ZW4gYWJzZW50IGEg4oCcc3VlIGFuZCBsYWJvcuKAnSBjbGF1c2UgaW4gaXRzIHByb3BlcnR5IHBvbGljeSwgYW4gDQppbnN1cmVkIG1heSBiZSBhYmxlIHRvIHJlbHkgb24gdGhlIGNvbW1vbiBsYXcgb2YgbWl0aWdhdGlvbiANCm9mIGRhbWFnZXMgb3IgbG9zcyB0byByZWNvdmVyIGNvc3RzIGluY3VycmVkIHRvIGF2b2lkIGluc3VyZWQgDQpsb3NzZXMuIENvdXJ0cyBsb25nIGhhdmUgcmVjb2duaXplZCB0aGF0IGlmIGFuIGluc3VyZWQgdGFrZXMgc3RlcHMgDQp0byBwcmV2ZW50IG9yIG1pbmltaXplIGRhbWFnZSB0byBjb3ZlcmVkIHByb3BlcnR5LCBpdHMgaW5zdXJlciANCnNob3VsZCBwYXkuIFNlZSwgZS5nLiwgU2xheSBXYXJlaG91c2luZyBDby4gdi4gUmVsaWFuY2UgSW5zLiBDby4sIA0KNDcxIEYuMmQgMTM2NCwgMTM2Ny02OCAoOHRoIENpci4gMTk3MykgKOKAnFtUXWhlIG9ibGlnYXRpb24gdG8gcGF5IA0KdGhlIGV4cGVuc2VzIG9mIHByb3RlY3RpbmcgdGhlIGV4cG9zZWQgcHJvcGVydHkgbWF5IGFyaXNlIGZyb20gDQplaXRoZXIgdGhlIGluc3VyYW5jZSBhZ3JlZW1lbnQgaXRzZWxmIG9yIGFuIGltcGxpZWQgZHV0eSB1bmRlciANCnRoZSBwb2xpY3kgY29udHJhY3QgYmFzZWQgdXBvbiBnZW5lcmFsIHByaW5jaXBsZXMgb2YgbGF3IGFuZCANCmVxdWl0eS7igJ0gKGNpdGF0aW9ucyBvbWl0dGVkKSk7IFdpbmtsZXIgdi4gR3JlYXQgQW0uIElucy4gQ28uLCA0NDcgDQpGLiBTdXBwLiAxMzUsIDE0MiAoRS5ELk4uWS4gMTk3OCkgKElmIGluc3VyZWQgaGFkIHJhaXNlZCBoaXMgaG91c2UgDQp0byBhdm9pZCBmbG9vZCBkYW1hZ2UsIGluc3VyZXIgd291bGQgaGF2ZSB0byBwYXkgZXhwZW5zZXMgDQpiZWNhdXNlIOKAnHRoZSBkdXR5IHRvIHByb3RlY3QgdGhlIHByb3BlcnR5IGZyb20gZnVydGhlciBkYW1hZ2UgDQppbXBsaWVzIGEgcmVzcG9uc2liaWxpdHkgb24gdGhlIGluc3VyZXLigJlzIHBhcnQgdG8gcGF5IGZvciB0aGUgY29zdCANCm9mIHJlYXNvbmFibGUgcHJvdGVjdGl2ZSBtZWFzdXJlcy7igJ0pOyBzZWUgYWxzbyBNY05laWxhYiwgSW5jLiB2LiANCk4uIFJpdmVyIElucy4gQ28uLCA2NDUgRi4gU3VwcC4gNTI1LCA1NTEgKEQuTi5KLiAxOTg2KSAo4oCcW0ldbiBjYXNlcyANCndoZXJlIGFuIGluc3VyZWQgdGFrZXMgc3RlcHMgdG8gbWluaW1pemUgdGhlIGhhcm0gYWxyZWFkeSANCmluY3VycmVkLCB0aGUgaW5zdXJlZCBpcyBsZXNzZW5pbmcgYW4gYWxyZWFkeSB2ZXN0ZWQgZGFtYWdlIA0KcmVjb3ZlcnkgcmlnaHQgYW5kIGlzLCB0aGVyZWZvcmUsIGVudGl0bGVkIHRvIHJlaW1idXJzZW1lbnQgZm9yIGl0cyANCnJlYXNvbmFibGUgZXhwZW5zZXMgZnJvbSBpdHMgaW5zdXJlci7igJ0pLg0KQ09WRVJBR0UgQU5EIEVYQ0xVU0lPTlMgRk9SIFBBUlRJQ1VMQVIgDQpDQVVTRVMgT0YgTE9TUw0KVGhlcmUgYXJlIG1hbnkgcG9zc2libGUgY2F1c2VzIG9mIGxvc3Mgc3RlbW1pbmcgZnJvbSANCmh1cnJpY2FuZXM6IHdpbmQsIHdpbmQtZHJpdmVuIHJhaW4sIHN0b3JtIHN1cmdlLCBmbG9vZGluZywgcG93ZXIgDQpvdXRhZ2VzLCBvcmRlcnMgYnkgY2l2aWwgYXV0aG9yaXR5LCBhbmQgbG9vdGluZ+KAlGp1c3QgdG8gbmFtZSBhIA0KZmV3LiBJbiBzb21lIGNhc2VzLCBtb3JlIHRoYW4gb25lIGNhdXNlIG1heSBoYXZlIGNvbnRyaWJ1dGVkIA0KdG8gYW4gaW5zdXJlZOKAmXMgbG9zc2VzLiBJbmRlZWQsIG9uZSBpc3N1ZSBsaWtlbHkgdG8gYXJpc2UgcmVsYXRlcyANCnRvIHRoZSBxdWVzdGlvbiBvZiB3aGV0aGVyIGxvc3NlcyB3ZXJlIGNhdXNlZCBieSBhIOKAnE5hbWVkIA0KV2luZHN0b3Jt4oCdIG9yIOKAnE5hbWVkIFN0b3JtLuKAnSBNYW55IHBvbGljaWVzIGhhdmUgZGVkdWN0aWJsZXMgDQp0aGF0IHNwZWNpZmljYWxseSBhcHBseSB0byDigJxOYW1lZCBTdG9ybXPigJ0gYW5kIOKAnE5hbWVkIA0KV2luZHN0b3Jtc+KAnSB0aGF0IGFyZSBoaWdoZXIgdGhhbiBkZWR1Y3RpYmxlcyB0aGF0IGFwcGx5IHRvIA0Kb3RoZXIgcGVyaWxzIG9yIGNhdXNlcyBvZiBsb3NzLiBUaHVzLCBmYWN0dWFsIHF1ZXN0aW9ucyBtYXkgYXJpc2UuIA0KUmVjZW50bHksIGluIGEgY292ZXJhZ2UgZGlzcHV0ZSByZWdhcmRpbmcgU3VwZXJzdG9ybSBTYW5keSwgYSANCk5ldyBKZXJzZXkganVkZ2UgcnVsZWQgdGhhdCBhICQxMDAgbWlsbGlvbiBzdWJsaW1pdCBmb3IgZmxvb2QgDQpsb3NzZXMgZGlkIG5vdCBhcHBseSB0byBOZXcgSmVyc2V5IFRyYW5zaXQgQ29ycG9yYXRpb27igJlzIGxvc3NlcyANCmRlc3BpdGUgYSBzdXJnZSBvZiB3YXRlciBvbiB0cmFja3MsIGJyaWRnZXMsIHR1bm5lbHMsIGFuZCBwb3dlciANCnN0YXRpb25zLCBiZWNhdXNlIHRoZSBwb2xpY3nigJlzIGRlZmluaXRpb24gb2Yg4oCcbmFtZWQgd2luZHN0b3Jt4oCdIA0KaW5jbHVkZWQgY292ZXJhZ2UgZm9yIHN0b3JtIHN1cmdlLiBTZWUgTmV3IEplcnNleSBUcmFuc2l0IENvcnAuIA0Kdi4gQ2VydGFpbiBVbmRlcndyaXRlcnMgYXQgTGxveWTigJlzIExvbmRvbiwgTm8uIEVTWC1MLTAwNjk3Ny0xNCANCihOLkouIFN1cGVyLikuIEhvd2V2ZXIsIHdoZW4gZmFjZWQgd2l0aCBkaWZmZXJlbnQgZmFjdHVhbCANCnNjZW5hcmlvcywgaXQgbWF5IGJlbmVmaXQgaW5zdXJlZHMgdG8gYXZvaWQgY2hhcmFjdGVyaXppbmcgYSANCnN0b3JtIGFzIGEg4oCcbmFtZWQgc3Rvcm0u4oCdIEluIEFSRS1FYXN0IFJpdmVyIFNjaWVuY2UgUGFyaywgTExDIA0Kdi4gTGV4aW5ndG9uIEluc3VyYW5jZSBDby4sIENhc2UgTm8uOiBOby4gQ1YxMy0wMTgzNy1CUk8gKEMuRC4gDQpDYS4gMjAxNCksIExleGluZ3RvbiBhcmd1ZWQgYSBoaWdoIGRlZHVjdGlibGUgZm9yIG5hbWVkIHN0b3JtcyANCmFwcGxpZWQgdG8gdGhlIG93bmVy4oCZcyBkYW1hZ2UgY2xhaW0gYmVjYXVzZSBpdCB3YXMgY2F1c2VkIA0KYnkg4oCcYSBtYXNzaXZlIHdhbGwgb2Ygd2F0ZXLigJ0gU2FuZHkgdW5sZWFzaGVkIGRheXMgZWFybGllci4gQVJFIA0KY29udGVuZGVkLCBhbmQgYSBqdXJ5IGFncmVlZCwgdGhhdCB0aGUgYmVsb3ctZ3JvdW5kIHBhcmtpbmcgDQpnYXJhZ2UgYmVjYW1lIGZsb29kZWQgYWZ0ZXIgU2FuZHkgd2FzIHJlY2xhc3NpZmllZCBmcm9tIGEgDQpodXJyaWNhbmUgdG8gYSBwb3N0LXRyb3BpY2FsIGN5Y2xvbmUsIHByZWNsdWRpbmcgdGhlIG5hbWVkIHN0b3JtIA0KcHJvdmlzaW9uIGZyb20gYXBwbHlpbmcuDQpBbiBpbnN1cmVkIG5lZWRzIHRvIGNhcmVmdWxseSBhc3Nlc3MgaXRzIHBvbGljaWVzIGFuZCB0aGUgcHJlY2lzZSANCmNhdXNlKHMpIG9mIGl0cyBwYXJ0aWN1bGFyIGxvc3MgYmVmb3JlIGl0IGNoYXJhY3Rlcml6ZXMgdGhhdCBjYXVzZS4gDQpEaWZmZXJlbnQgY2hhcmFjdGVyaXphdGlvbnMgY2FuIGhhdmUgc2lnbmlmaWNhbnQgaW1wYWN0cyBvbiB0aGUgDQpkZWR1Y3RpYmxlcyBhbmQgc3ViLWxpbWl0cyBvZiBsaWFiaWxpdHkuIENhc3VhbGx5IGxhYmVsaW5nIHRoaXMgc3Rvcm0gDQphIOKAnGh1cnJpY2FuZeKAnSBvciBhIOKAnGZsb29kLOKAnSBlaXRoZXIgaW50ZXJuYWxseSBvciBleHRlcm5hbGx5IG1heSBiZSANCmluYWNjdXJhdGUgaW4gdGhlIGNvbnRleHQgb2Ygc3BlY2lmaWMgbG9zc2VzIGFuZCBuZWdhdGl2ZWx5IGltcGFjdCANCmNvdmVyYWdlLCBwYXJ0aWN1bGFybHkgYmVjYXVzZSBkYW1hZ2UgbWF5IGhhdmUgdGFrZW4gcGxhY2UgDQpiZWZvcmUgb3IgYWZ0ZXIgdGhlIHN0b3JtIHdhcyBkZXNpZ25hdGVkIGFzIGEg4oCcaHVycmljYW5l4oCdIGFuZCANCmJlY2F1c2Ug4oCcZmxvb2TigJ0gZGVmaW5pdGlvbnMgdmFyeS4gDQpJdCBpcyBsaWtlbHkgdGhhdCBpbnN1cmVycyB3aWxsIHJlc3BvbmQgdG8gbWFueSBodXJyaWNhbmUtcmVsYXRlZCANCmNvdmVyYWdlIGNsYWltcyBieSBhcmd1aW5nIHRoYXQgdmFyaW91cyBleGNsdXNpb25zIGJhciBvciBsaW1pdCANCmNvdmVyYWdlLiBCYXNlZCBvbiB0aGUgc3Rvcm0gYW5kIHRoZSBtYW5uZXIgaW4gd2hpY2ggaW5zdXJlcnMgDQpoYXZlIHJlc3BvbmRlZCB0byBwYXN0IGNhdGFzdHJvcGhpYyB3ZWF0aGVyLXJlbGF0ZWQgY2xhaW1zLCANCndlIGV4cGVjdCB0aGF0IGluc3VyZXJzIHdpbGwgYXR0ZW1wdCB0byBkZW55IGNvdmVyYWdlIGJhc2VkIA0Kb24g4oCcZmxvb2TigJ0gb3Ig4oCcd2F0ZXLigJ0gZXhjbHVzaW9ucy4gSWYgYW4gaW5zdXJlciBpbnZva2VzIHN1Y2ggDQphbiBleGNsdXNpb24sIHRoZSBmaXJzdCBzdGVwIHdpbGwgYmUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIA0KZXhjbHVzaW9uIGFwcGxpZXMgdG8gYW55IGNvbnRyaWJ1dGluZyBjYXVzZSBvZiB0aGUgaW5zdXJlZOKAmXMgbG9zcy4gDQpJZiBubyBjYXVzZSBvZiBhbiBpbnN1cmVk4oCZcyBsb3NzIGlzIGV4Y2x1ZGVkLCB0aGVuIHRoZSBuZWVkIGZvciBhIA0KY2F1c2F0aW9uIGFuYWx5c2lzIGlzIG1vb3QuIElmLCBob3dldmVyLCBhbiBleGNsdXNpb24gYXBwbGllcyB0byANCmEgY29udHJpYnV0aW5nIGNhdXNlIG9mIHRoZSBpbnN1cmVk4oCZcyBsb3NzLCBhIGNhdXNhdGlvbiBhbmFseXNpcyANCm11c3QgYmUgcGVyZm9ybWVkIHRvIGRldGVybWluZSB0aGUgc2NvcGUgb2YgY292ZXJlZCBsb3NzLiANCldoaWxlIHRoZSBhbmFseXNpcyBmb3IgZGV0ZXJtaW5pbmcgdGhlIGNhdXNlIG9mIGxvc3MgdmFyaWVzLCBzdWNoIA0KYSBkZXRlcm1pbmF0aW9uIGZyZXF1ZW50bHkgaW52b2x2ZXMgY29tcGxleCBpc3N1ZXMgb2YgZmFjdC4NCkEuIFRoZSBTY29wZSBvZiB0aGUg4oCcRmxvb2TigJ0gRXhjbHVzaW9uDQpTb21lIHBvbGljaWVzIGNvdmVyIHRoZSBwZXJpbCBvZiB3aW5kIGJ1dCBub3QgdGhlIHBlcmlsIG9mIGZsb29kLiANCkV2ZW4gaW4gdGhvc2UgcG9saWNpZXMgdGhhdCBwdXJwb3J0IHRvIGV4Y2x1ZGUg4oCcRmxvb2TigJ0gbG9zc2VzLCANCnRoZSBkZWZpbml0aW9uIG9mIOKAnEZsb29k4oCdIG1heSBiZSBuYXJyb3cgb3IgdW5jbGVhci4gVG8gZXZhbHVhdGUgDQphIOKAnEZsb29k4oCdIGV4Y2x1c2lvbiwgaXQgaXMgY3JpdGljYWwgdG8gYW5hbHl6ZSB0aGUgcHJlY2lzZSBwb2xpY3kgDQpsYW5ndWFnZSBpbiB0aGUgY29udGV4dCBvZiB0aGUgcG9saWN5IGFzIGEgd2hvbGUuIFRoZSBleGNsdXNpb24gDQptYXkgY29udHJhZGljdCBhbm90aGVyIHBhcnQgb2YgdGhlIHBvbGljeSByZW5kZXJpbmcgdGhlIGV4Y2x1c2lvbiANCmFtYmlndW91cyBhbmQgaW5vcGVyYWJsZS4gTm90d2l0aHN0YW5kaW5nLCBvbmUgY3VycmVudCANCmNvbW1lcmNpYWwgcHJvcGVydHkgcG9saWNpZXMgZXhjbHVkZXMg4oCcRmxvb2Qs4oCdIHdoaWNoIHRoZSBwb2xpY3kgDQpkZWZpbmVzIGFzIGZvbGxvd3M6DQrigJwgRmxvb2TigJ0gbWVhbnMgcmlzaW5nIHdhdGVyLCBzdXJmYWNlIHdhdGVyLCB3YXZlcywgdGlkYWwgDQp3YXRlciwgdGlkYWwgd2F2ZSBvciB0c3VuYW1pOyByaXNpbmcsIG92ZXJmbG93aW5nIG9yIGFueSANCmJyZWFjaCBvZiBzdHJlYW1zLCByaXZlcnMsIGxha2VzLCByZXNlcnZvaXJzLCBvciBvdGhlciANCmJvZGllcyBvZiB3YXRlcjsgb3Igc3ByYXkgZnJvbSBhbnkgb2YgdGhlIGZvcmVnb2luZywgYWxsIA0Kd2hldGhlciBkcml2ZW4gYnkgd2luZCBvciBub3QuDQpTZWUgTGliZXJ0eSBNdXR1YWwgU3BlY2ltZW4gUHJvcGVydHkgUG9saWN5IChyZXZpc2VkIEFwcmlsIDI0LCANCjIwMDkpLg0KVGhlIDIwMTcgQXRsYW50aWMgSHVycmljYW5lIFNlYXNvbjsgSW5zdXJhbmNlIENvdmVyYWdlIGZvciBIYXJ2ZXksIElybWEsIEpvc2UsIGFuZCBNYXJpYSDigKIgUGFnZSA0DQpJbiBhZGRpdGlvbiB0byB0aGUgZGVmaW5pdGlvbiBvZiBmbG9vZCwgc29tZSBwb2xpY2llcyBtYXkgY29udGFpbiANCmxhbmd1YWdlIHJlZ2FyZGluZyDigJxoaWdoIGhhemFyZCBmbG9vZCB6b25lcyzigJ0gd2hpY2ggb25lIHBvbGljeSANCmRlZmluZXMgYXMgZm9sbG93czoNCkFueSBSZWFsIGFuZCBQZXJzb25hbCBwcm9wZXJ0eSBsb2NhdGVkIGluIGEgRmxvb2QgWm9uZSANCm9yIFNwZWNpYWwgRmxvb2QgSGF6YXJkIEFyZWEgc2hvd24gb24gYSBGSEJNIG9yIEZJUk0gDQptYXAgYW5kIGRlc2lnbmF0ZWQgYXMg4oCcQSwgQU8sIEExLTMwLCBBRSwgQTk5LCBBSCwgQVIsIA0KViwgVjEtVjMwLCBWRSwgb3IgVk8s4oCdIGJ5IHRoZSBGZWRlcmFsIEVtZXJnZW5jeSBBZ2VuY3kgDQoo4oCcRkVNQeKAnSkgb3IgZm9yZWlnbiBlcXVpdmFsZW50Lg0KU2VlIFp1cmljaCBTcGVjaW1lbiBQcm9wZXJ0eSBQb2xpY3kgKHJldmlzZWQgQXVndXN0IDIwMTEpLg0KU29tZSBwcmltYXJ5IHBvbGljaWVzLCBhbmQgdW1icmVsbGEgb3IgZXhjZXNzIHBvbGljaWVzLCBtYXkgDQpub3QgaW5jbHVkZSB0aGUgcGhyYXNlIOKAnHdoZXRoZXIgZHJpdmVuIGJ5IHdpbmQgb3Igbm90LuKAnSBBbHNvLCANCmRlcGVuZGluZyBvbiB0aGUgZGVncmVlIG9mIGZsb29kIHJpc2sgZmFjZWQgYnkgdGhlIGJ1c2luZXNzLCANCml0IG1heSBiZSBwb3NzaWJsZSB0byBwdXJjaGFzZSBjb3ZlcmFnZSBmb3IgZmxvb2RzIGFzIGFuIA0KZW5kb3JzZW1lbnQgdG8gdGhlIGJ1c2luZXNz4oCZIGNvbW1lcmNpYWwgcHJvcGVydHkgcG9saWN5IG9yIA0KYnkgcHVyY2hhc2luZyBhIHN1cHBsZW1lbnRhbCBwb2xpY3kuIFNlZSBQYXJrIENvdW50cnkgQ2x1YiBvZiANCkJ1ZmZhbG8sIEluYy4gdi4gVG93ZXIgSW5zLiBDby4gb2YgTi5ZLiwgODkzIE4uWS5TLjJkIDQwOCAoQXBwLiBEaXYuIA0KMjAwOSkuIFdoZW4gZmxvb2QgY292ZXJhZ2UgaXMgcHVyY2hhc2VkLCBpdCBtYXkgYmUgc3ViamVjdCB0byBhIA0Kc2VwYXJhdGUgZGVkdWN0aWJsZSBhbmQgbWF5IGNvbnRhaW4gYSBzdWItbGltaXQgb2YgbGlhYmlsaXR5LiBTZWUgDQpTdGV3YXJ0IEVudGVycy4sIEluYy4gdi4gUlNVSSBJbmRlbS4gQ28uLCA2MTQgRi4zZCAxMTcsIDEyMCAoNXRoIA0KQ2lyLiAyMDEwKSAocHJpbWFyeSBwb2xpY3kgcHJvdmlkaW5nIGZvciBzdWItbGltaXQgb2YgJDEwIG1pbGxpb24gDQphZ2dyZWdhdGUgZm9yIGZsb29kIHBlciBwb2xpY3kgeWVhcikuDQpBcyBkaXNjdXNzZWQgYWJvdmUsIHRoZSBidXJkZW4gb2YgcHJvb2Ygc2hpZnRzIHRvIHRoZSBpbnN1cmVyIHRvIA0Kc2hvdyB0aGF0IHRoZSBsb3NzIGlzIG5vdCBjb3ZlcmVkIHVuZGVyIGFuIOKAnGFsbCByaXNr4oCdIHBvbGljeSBvbmNlIA0KYW4gaW5zdXJlZCBzaG93cyB0aGF0IGl0IGhhcyBzdWZmZXJlZCBhIGxvc3MuIFRvIGJlIGVmZmVjdGl2ZSwgYW4gDQppbnN1cmVy4oCZcyBpbnRlcnByZXRhdGlvbiBvZiBpdHMgY292ZXJhZ2UgZXhjbHVzaW9uIG11c3QgYmUgdGhlIA0Kb25seSByZWFzb25hYmxlIG9uZS4gU2VlIFJKQyBSZWFsdHkgSG9sZGluZyBDb3JwLiB2LiBSZXB1YmxpYyANCkZyYW5rbGluIElucy4gQ28uLCAyIE4uWS4zZCAxNTgsMTY1ICgyMDA0KSAoY29uZmlybWluZyB0aGF0IOKAnGFuIA0KZXhjbHVzaW9uIGluIGFuIGluc3VyYW5jZSBwb2xpY3kgY2FuIG5lZ2F0ZSBjb3ZlcmFnZSBvbmx5IHdoZXJlIA0KaXQgaXMgc3RhdGVkIOKAmGluIGNsZWFyIGFuZCB1bm1pc3Rha2FibGUgbGFuZ3VhZ2UgW2FuZF0gaXMgc3ViamVjdCANCnRvIG5vIG90aGVyIHJlYXNvbmFibGUgaW50ZXJwcmV0YXRpb24u4oCZ4oCdIChxdW90aW5nIENvbnTigJlsIENhcy4gQ28uIA0Kdi4gUmFwaWQtQW0uIENvcnAuLCA4MCBOLlkuMmQgNjQwLCA2NTIgKDE5OTMpKSk7IEZsb21lcmZlbHQgdi4gDQpDYXJkaWVsbG8sIDIwMiBOLkouIDQzMiwgNDQyICgyMDEwKSAo4oCcW0VdeGNsdXNpb25zIGFyZSBvcmRpbmFyaWx5IA0Kc3RyaWN0bHkgY29uc3RydWVkIGFnYWluc3QgdGhlIGluc3VyZXIsIGFuZCBpZiB0aGVyZSBpcyBtb3JlIHRoYW4gDQpvbmUgcG9zc2libGUgaW50ZXJwcmV0YXRpb24gb2YgdGhlIGxhbmd1YWdlLCBjb3VydHMgYXBwbHkgdGhlIA0KbWVhbmluZyB0aGF0IHN1cHBvcnRzIGNvdmVyYWdlIHJhdGhlciB0aGFuIHRoZSBvbmUgdGhhdCANCmxpbWl0cyBpdC7igJ0gKGNpdGF0aW9ucyBvbWl0dGVkKSk7IEFsbHN0YXRlIElucy4gQ28uIHYuIEJhcnJvbiwgMjY5IA0KQ29ubi4gMzk0LCA0MDYgKDIwMDQpICjigJzigJhbV11oZW4gdGhlIHdvcmRzIG9mIGFuIGluc3VyYW5jZSANCmNvbnRyYWN0IGFyZSwgd2l0aG91dCB2aW9sZW5jZSwgc3VzY2VwdGlibGUgb2YgdHdvIFtlcXVhbGx5IA0KcmVhc29uYWJsZV0gaW50ZXJwcmV0YXRpb25zLCB0aGF0IHdoaWNoIHdpbGwgc3VzdGFpbiB0aGUgY2xhaW0gDQphbmQgY292ZXIgdGhlIGxvc3MgbXVzdCwgaW4gcHJlZmVyZW5jZSwgYmUgYWRvcHRlZOKAieKApuKAiS4gW1RdaGlzIHJ1bGUgDQpvZiBjb25zdHJ1Y3Rpb24gZmF2b3JhYmxlIHRvIHRoZSBpbnN1cmVkIGV4dGVuZHMgdG8gZXhjbHVzaW9uIA0KY2xhdXNlcy7igJnigJ0gKHF1b3RpbmcgVHJhdmVsZXJzIElucy4gQ28uIHYuIE5hbWVyb3csIDI2MSBDb25uLiA3ODQsIA0KNzk2ICgyMDAyKSkpLiANCkluc3VyZXJzIHdpbGwgbGlrZWx5IGNvbnRlbmQgdGhhdCBhbnkgaW5zdXJlZOKAmXMgaW50ZXJwcmV0YXRpb24gDQpzdWdnZXN0aW5nIHRoYXQgYW4gaW5zdXJlciBpbnRlbmRlZCBhIOKAnEZsb29k4oCdIGV4Y2x1c2lvbiANCnRvIGluY2x1ZGUgKGkuZS4sIG5vdCBleGNsdWRlKSB3aW5kLWRyaXZlbiBzdG9ybSBzdXJnZSBpcyANCnVucmVhc29uYWJsZS4gU3VjaCBhcmd1bWVudHMgbWF5IGRlcGVuZCB1cG9uIHRoZSBwcmVjaXNlIA0KcG9saWN5IGxhbmd1YWdlIGFuZCwgcG90ZW50aWFsbHksIHRoZSB1bmRlcndyaXRpbmcgZXhjaGFuZ2VzIA0KYmV0d2VlbiB0aGVtIGFuZCB0aGUgaW5zdXJhbmNlIGJyb2tlci4gU29tZSBvciBhbGwgb2YgdGhlIA0KZm9sbG93aW5nIGZhY3RzIG1heSBpbmZsdWVuY2UgdGhvc2UgYXJndW1lbnRzOiAoMSkgdGhlIOKAnEZsb29k4oCdIA0KZXhjbHVzaW9uIG1heSBleGNsdWRlIHdhdGVyIGRhbWFnZSByZXN1bHRpbmcgZnJvbSBjZXJ0YWluIHR5cGVzIA0Kb2Ygd2F0ZXIgZXZlbnRzLCBzdWNoIGFzIOKAnHN1cmZhY2Ugd2F0ZXLigJ0gYW5kIOKAnHNld2VyIGJhY2t1cCzigJ0gDQpidXQgbWF5IG5vdCBleGNsdWRlIOKAnHN0b3JtIHN1cmdl4oCdIG9yIOKAnHdpbmQtZHJpdmVuIHdhdGVy4oCdOyAgDQooMikgdGhlIGluc3VyZXIgb3IgaW5zdXJhbmNlIGJyb2tlciBtYXkgaGF2ZSBkZWZpbmVkIGZsb29kIGFuZCANCndpbmQtZHJpdmVuIHdhdGVyIGFzIOKAnE5hbWVkIFdpbmRzdG9ybSzigJ0gYnV0IG1heSBub3QgaGF2ZSANCmV4Y2x1ZGVkIE5hbWVkIFdpbmRzdG9ybSBmcm9tIGNvdmVyYWdlOyAoMykgdGhlIGluc3VyZXIgb3IgDQppbnN1cmFuY2UgYnJva2VyIG1heSBub3QgaGF2ZSBpbmNsdWRlZCB0aGUgcGhyYXNlIOKAnHdoZXRoZXIgDQpkcml2ZW4gYnkgd2luZCBvciBub3TigJ0gaW4gdGhlIHBvbGljeeKAmXMgZmxvb2QgZXhjbHVzaW9uLCBkZXNwaXRlIA0KdXNpbmcgdGhlIHBocmFzZSBpbiBhbm90aGVyIHByb3Zpc2lvbiB3aXRoaW4gdGhlIHBvbGljeTsgIA0KKDQpIHRoZSBpbnN1cmFuY2UgYnJva2VyIG1heSBoYXZlIGluY2x1ZGVkIHN0b3JtIHN1cmdlIGluIA0K4oCcTmFtZWQgV2luZHN0b3Jt4oCdIHJpc2sgYW5hbHlzZXMgaW4gcHJvY3VyaW5nIGNvdmVyYWdlOyBvciANCig1KSB0aGUgaW5zdXJlciBoYWQgYXZhaWxhYmxlIHRvIGl0IGNsZWFyIGFsdGVybmF0aXZlIGxhbmd1YWdlIA0KY29tbW9ubHkgdXNlZCBpbiBwb2xpY2llcyB0byBpbmRpY2F0ZSB0aGUgaW5jbHVzaW9uIG9mIHdpbmQtDQpkcml2ZW4gc3Rvcm0gc3VyZ2UgaW4gdGhlIGRlZmluaXRpb24gb2YgZmxvb2QsIGJ1dCBkaWQgbm90IHVzZSAgDQp0aGF0IGNsZWFyZXIgbGFuZ3VhZ2UgaW4gdGhlIHN1YmplY3QgcG9saWN5LiANCkFuIGluc3VyZWQgbWF5IHBvc3Nlc3Mgc2V2ZXJhbCBhcmd1bWVudHMgdGhhdCBhIHBvbGljeeKAmXMg4oCcRmxvb2TigJ0gDQpleGNsdXNpb24gZG9lcyBub3QgYmFyIHdhdGVyIGRhbWFnZSByZXN1bHRpbmcgZnJvbSBhIHN0b3JtIA0Kc3VyZ2UuIFNlZSwgZS5nLiwgRGUgTWFyaW5pcyB2LiBUb3dlciBJbnMuIENvLiBvZiBOLlkuLCA3NzQgTi5ZLlMuMmQgDQo0MzYsIDQzOCAoQXBwLiBEaXYuIDIwMDQpIChpbnN1cmVyIHNvdWdodCB0byBhdm9pZCBpbnN1cmVk4oCZcyB3aW5kLQ0Kc3Rvcm0gY292ZXJhZ2UgY2xhaW0gYnkgcmVseWluZyBvbiBhIOKAnFdhdGVyIERhbWFnZeKAnSBleGNsdXNpb247IA0KaW5zdXJlcuKAmXMgc3VtbWFyeSBqdWRnbWVudCBtb3Rpb24gZGVuaWVkIGJlY2F1c2UgaW5zdXJlciANCuKAnGZhaWxlZCB0byBlc3RhYmxpc2ggYSBwcmltYSBmYWNpZSBjYXNlIHRoYXQgdGhlIHBvbGljeSBkaWQgbm90IA0KY292ZXIgdGhlIGxvc3MgY2xhaW1lZC7igJ0pOyBzZWUgYWxzbyBQbGF0ZWsgdi4gVG93biBvZiBIYW1idXJnLCANCjk0OCBOLlkuUy4yZCA3OTcsIDc5OC05OSAoQXBwLiBEaXYuIDIwMTIpICh3YXRlciBkYW1hZ2UgDQpleGNsdXNpb24gZGlkIG5vdCBleGNsdWRlIGNvdmVyYWdlIHdoZW4gZXhwbG9zaW9uIGFsc28gY2F1c2VkIA0KbG9zcyk7IE5ldyBKZXJzZXkgVHJhbnNpdCBDb3JwLiBOby4gRVNYLUwtMDA2OTc3LTE0IChyZWZ1c2luZyANCnRvIGFwcGx5IGEg4oCcZmxvb2TigJ0gc3VibGltaXQgYmVjYXVzZSB0aGUgcG9saWN54oCZcyDigJxuYW1lZCBzdG9ybeKAnSANCmRlZmluaXRpb24gaW5jbHVkZWQg4oCcc3Rvcm0gc3VyZ2XigJ0pLiBCdXQgc2VlIE5vcnRocm9wIEdydW1tYW4gDQpDb3JwLiB2LiBGYWN0b3J5IE11dC4gSW5zLiBDby4sIDU2MyBGLjNkIDc3NyAoOXRoIENpci4gMjAwOSkgDQooaW51bmRhdGlvbiBmcm9tIHRoZSBLYXRyaW5hIHN0b3JtIHN1cmdlIGZpdCB3aXRoaW4gZGVmaW5pdGlvbiBvZiANCuKAnEZsb29k4oCdIGluIGV4Y2VzcyBwb2xpY3kpLg0KQ2F1c2F0aW9uIGRldGVybWluYXRpb25zIGFuZCBzdWJzZXF1ZW50IGFsbG9jYXRpb24gb2YgDQpodXJyaWNhbmUtcmVsYXRlZCBsb3NzZXMgYmV0d2VlbiBjb3ZlcmVkIGFuZCB1bmNvdmVyZWQgY2F1c2VzIA0Kd2lsbCBnZW5lcmFsbHkgaW52b2x2ZSBjb21wbGV4IHF1ZXN0aW9ucyBvZiBmYWN0IGFuZCB0aGUgaW5zdXJlciANCndpbGwgZnJlcXVlbnRseSBiZWFyIHRoZSBidXJkZW4gb2YgcHJvdmluZyB3aGljaCBwb3J0aW9ucyBvZiANCnRoZSBpbnN1cmVk4oCZcyB0b3RhbCBsb3NzIGFyZSBleGNsdWRlZCwgaWYgYW55LiBTZWUsIGUuZy4sIE5vcnRocm9wIA0KR3J1bW1hbiBDb3JwLiB2LiBGYWN0b3J5IE11dC4gSW5zLiBDby4sIDgwNSBGLiBTdXBwLiAyZCA5NDUsIA0KOTU1IChDLkQuIENhbC4gMjAxMSkgKG9uY2UgaW5zdXJlZCBzdWJtaXRzIGNsYWltIHRoYXQgaXQg4oCcc3VmZmVyZWQgDQphIGxvc3MgaW4gZXhjZXNzIG9mIHRoZSBFeGNlc3MgUG9saWN54oCZc+KAieKApuKAiWF0dGFjaG1lbnQgcG9pbnTigInigKbigIl0aGUgDQpidXJkZW7igInigKbigIlzaGlmdHMgdG8gW3RoZSBpbnN1cmVyXSB0byBwcm92ZSB3aGljaCBsb3NzZXMgYXJlIGV4Y2x1ZGVkIA0KYnkgaXRzIEV4Y2VzcyBQb2xpY3ku4oCdKTsgUGVwc2lDbywgSW5jLiB2LiBDb2504oCZbCBDYXMuIENvLiwgNjQwIEYuIFN1cHAuIA0KNjU2LCA2NjEtNjIgKFMuRC5OLlkuIDE5ODYpIChpbnN1cmVyIGJlYXJzIHRoZSBidXJkZW4gb2YgcHJvdmluZyANCndoYXQgcG9ydGlvbiBvZiBsb3NzIGlzIHN1YmplY3QgdG8gYWxsb2NhdGlvbiwgaWYgYW55KS4NClRoZSAyMDE3IEF0bGFudGljIEh1cnJpY2FuZSBTZWFzb247IEluc3VyYW5jZSBDb3ZlcmFnZSBmb3IgSGFydmV5LCBJcm1hLCBKb3NlLCBhbmQgTWFyaWEg4oCiIFBhZ2UgNQ0KQi4gIExpbWl0YXRpb25zIG9uIEZsb29kIEV4Y2x1c2lvbnMgV2hlcmUgQ292ZXJlZCANCkNhdXNlcyBBbHNvIENvbnRyaWJ1dGVkIHRvIHRoZSBJbnN1cmVk4oCZcyBMb3NzDQpBbiBpbXBvcnRhbnQgaXNzdWUgdGhhdCBtYXkgYXJpc2UgaW4gY29ubmVjdGlvbiB3aXRoIHRoZSANCmRldmFzdGF0aW9uIGZyb20gaHVycmljYW5lcyBpcyB3aGV0aGVyIOKAnEZsb29k4oCdIGV4Y2x1c2lvbnMgDQpsaW1pdCBjbGFpbXMgZm9yIGxvc3NlcyB0aGF0IGhhdmUgbW9yZSB0aGFuIG9uZSBjb250cmlidXRpbmcgDQpjYXVzZSBvZiBsb3NzLiANCkNvdXJ0cyBpbiB0aGUgR3VsZiBDb2FzdCByZWdpb24gYWRkcmVzc2VkIGNhdXNhdGlvbiBpc3N1ZXMgaW4gDQp0aGUgYWZ0ZXJtYXRoIG9mIEh1cnJpY2FuZSBLYXRyaW5hLiBJbiBWYW5kZXJicm9vayB2LiBVbml0cmluIA0KUHJlZmVycmVkIElucy4gQ28uIChJbiByZSBLYXRyaW5hIENhbmFsIEJyZWFjaGVzIExpdGlnYXRpb24pIDQ5NSANCkYuM2QgMTkxICg1dGggQ2lyLiAyMDA3KSwgdGhlIEZpZnRoIENpcmN1aXQgcHJlZGljdGVkIHRoYXQgdGhlIA0KTG91aXNpYW5hIFN1cHJlbWUgQ291cnQgd291bGQgZmluZCB0aGF0IHdhdGVyIGRhbWFnZSBmcm9tIA0KSHVycmljYW5lIEthdHJpbmEgd2FzIGNhdXNlZCBvbmx5IGJ5IGZsb29kIChhIGNhdXNlIG9mdGVuIA0KZXhjbHVkZWQgZnJvbSBjb3ZlcmFnZSkgYW5kIHRoYXQsIHRoZXJlZm9yZSwgbm8gbXVsdGlwbGUgY2F1c2UgDQphbmFseXNpcyB3YXMgbmVjZXNzYXJ5LiBJZC4gYXQgMjIxLTIzLiBUaGUgaW5zdXJlZHMsIGhvd2V2ZXIsIA0KYXJndWVkIHRoYXQgbmVnbGlnZW50IGRlc2lnbiwgY29uc3RydWN0aW9uLCBhbmQgbWFpbnRlbmFuY2UgDQpvZiBsZXZlZXMsIHJhdGhlciB0aGFuIGZsb29kLCBjYXVzZWQgdGhlIGRhbWFnZS4gSWQuIGF0IDIyMy4gDQpNYW55IGNvdXJ0cyBoYXZlIHNob3duIGEgd2lsbGluZ25lc3MgdG8gYXBwbHkgYSBtdWx0aXBsZSBjYXVzZSANCmFuYWx5c2lzIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBkYW1hZ2UgY2F1c2VkIGJ5IEh1cnJpY2FuZSANCkthdHJpbmEgaXMgY292ZXJlZCB3aGVyZSB0aGUgaW5zdXJlZCBhcmd1ZXMgdGhhdCBhbm90aGVyIG5hdHVyYWwgDQpjYXVzZSwgc3VjaCBhcyB3aW5kLCBjb250cmlidXRlZCB0byBvciBjYXVzZWQgaXRzIGRhbWFnZSBpbiANCmNvbmNlcnQgd2l0aCBmbG9vZC4gU2VlLCBlLmcuLCBMZW9uYXJkIHYuIE5hdGlvbndpZGUgTXV0LiBJbnMuIENvLiwgDQo0OTkgRi4zZCA0MTksIDQyOS0zMSAoNXRoIENpci4gMjAwNyk7IFR1ZXBrZXIgdi4gU3RhdGUgRmFybSBGaXJlICZhbXA7IA0KQ2FzLiBDby4sIDUwNyBGLjNkIDM0NiwgMzU2ICg1dGggQ2lyLiAyMDA3KS4NCldoaWxlIG5vdCBhIHdlYXRoZXItcmVsYXRlZCBjb3ZlcmFnZSBkZWNpc2lvbiwgTmV3IFlvcmvigJlzIA0KY2F1c2F0aW9uIHRlc3Qgd2FzIGNsZWFybHkgZXNwb3VzZWQgaW4gYSBjb3ZlcmFnZSBtYXR0ZXIgdGhhdCANCmFyb3NlIGluIHRoZSBjb250ZXh0IG9mIGEgZmlyZSBsb3NzIGFuZCBzdWJzZXF1ZW50IERlcGFydG1lbnQgDQpvZiBCdWlsZGluZ3MgVmFjYXRlIE9yZGVyLiBJbiBUaHJvZ3MgTmVjayBCYWdlbHMsIEluYy4gdi4gR0EgDQpJbnN1cmFuY2UgQ28uIG9mIE5ldyBZb3JrLCA2NzEgTi5ZLlMuMmQgNjYgKEFwcC4gRGl2LiAxOTk4KSwgDQp0aGUgaW5zdXJlZCBiYWdlbCBzaG9wIHNvdWdodCBjb3ZlcmFnZSBmb3IgcHJvcGVydHkgZGFtYWdlIA0KYW5kIHRoZSByZXN1bHRhbnQgbG9zdCBidXNpbmVzcy4gSWQuIGF0IDY3LTY4LiBUaGUgaW5zdXJlciBkZW5pZWQgDQpjb3ZlcmFnZSBmb3IgbW9zdCBvZiB0aGUgY2xhaW0gYmFzZWQgb24gYSDigJxsYXcgb3Igb3JkaW5hbmNl4oCdIA0KZXhjbHVzaW9uIHRoYXQgcHVycG9ydGVkIHRvIGJhciBjb3ZlcmFnZSBmb3IgbG9zc2VzIHRoYXQgDQphcm9zZSBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGZyb20gdGhlIGVuZm9yY2VtZW50IG9mIGEgbGF3IG9yIA0Kb3JkaW5hbmNlLiBJZC4gYXQgNjguIEluIGRldGVybWluaW5nIHdoZXRoZXIgdGhlIGluc3VyZWTigJlzIGxvc3NlcyANCndlcmUgY2F1c2VkIGJ5IGEgY292ZXJlZCBldmVudCwgdGhlIEFwcGVsbGF0ZSBEaXZpc2lvbiwgRmlyc3QgDQpEZXBhcnRtZW50IGV4cGxhaW5lZDoNCkluIGRldGVybWluaW5nIHdoZXRoZXIgYSBwYXJ0aWN1bGFyIGxvc3Mgd2FzIGNhdXNlZCBieSANCmFuIGV2ZW50IGNvdmVyZWQgYnkgYW4gaW5zdXJhbmNlIHBvbGljeSB3aGVyZSBvdGhlciwgDQpub25jb3ZlcmVkIGV2ZW50cyBvcGVyYXRlIG1vcmUgY2xvc2VseSBpbiB0aW1lIG9yIA0Kc3BhY2UgaW4gcHJvZHVjaW5nIHRoZSBsb3NzLCB0aGUgcXVlc3Rpb24gb2Ygd2hldGhlciANCnRoZSBjb3ZlcmVkIGV2ZW50IHdhcyBzdWZmaWNpZW50bHkgcHJveGltYXRlIHRvIHRoZSBsb3NzIA0KdG8gcmVxdWlyZSB0aGF0IHRoZSBpbnN1cmVyIGNvbXBlbnNhdGUgdGhlIGluc3VyZWQgd2lsbCANCmRlcGVuZCBvbiB3aGV0aGVyIGl0IHdhcyB0aGUgZG9taW5hbnQgYW5kIGVmZmljaWVudCANCmNhdXNlLg0KSWQuIEluIHNvIGV4cGxhaW5pbmcsIHRoZSBjb3VydCBoZWxkIHRoYXQgZmlyZSB3YXMgdGhlIGVmZmljaWVudCANCmNhdXNlIG9mIGFsbCBvZiB0aGUgbG9zc2VzIGZvciB3aGljaCB0aGUgaW5zdXJlZCBzb3VnaHQgY292ZXJhZ2UuIA0KSWQuIGF0IDY5LiBUaGUgY29zdCBvZiByZW1vdmluZyBwcm9wZXJ0eSwgdGhlIGltcHJvdmVtZW50cyANCnRoYXQgY291bGQgbm90IGJlIHJlbW92ZWQsIGFuZCB0aGUgbG9zdCBidXNpbmVzcyDigJzigJhuZWNlc3NhcmlseSANCmZvbGxvd1tlZF3igJnigJ0gZnJvbSB0aGUgY292ZXJlZCBmaXJlLiBJZC4gKGNpdGF0aW9uIG9taXR0ZWQpLg0KQXBwbHlpbmcgdGhlIGVmZmljaWVudCBwcm94aW1hdGUgY2F1c2UgdGVzdCwgTmV3IFlvcmsgY291cnRzIA0KbXVzdCBub3QsIGhvd2V2ZXIsIGV4YW1pbmUgb3IgaWRlbnRpZnkg4oCcdGhlIGV2ZW50IHRoYXQgbWVyZWx5IA0Kc2V0W3NdIHRoZSBzdGFnZSBmb3IgW2FdIGxhdGVyIGV2ZW50LuKAnSBLb3NpY2ggdi4gTWV0cm8uIFByb3AuICZhbXA7IENhcy4gDQpJbnMuIENvLiwgNjI2IE4uWS5TLjJkIDYxOCwgNjE4ICgxOTk1KSAoaW50ZXJuYWwgcXVvdGF0aW9uIG1hcmtzIA0Kb21pdHRlZCkuIOKAnE9ubHkgdGhlIG1vc3QgZGlyZWN0IGFuZCBvYnZpb3VzIFtlZmZpY2llbnRdIGNhdXNlIA0Kc2hvdWxkIGJlIGxvb2tlZCB0byBmb3IgcHVycG9zZXMgb2YgdGhlIGV4Y2x1c2lvbmFyeSBjbGF1c2Uu4oCdIA0KS3VsYSB2LiBTdGF0ZSBGYXJtIEZpcmUgJmFtcDsgQ2FzLiBDby4sIDYyOCBOLlkuUy4yZCA5ODgsIDk5MSAoMTk5NSkuIA0K4oCcV2hlbiB0aGUgY291cnQgaW50ZXJwcmV0cyBhbiBpbnN1cmFuY2UgcG9saWN5IGV4Y2x1ZGluZyBmcm9tIA0KY292ZXJhZ2UgYW55IGluanVyaWVzIOKAmGNhdXNlZCBieeKAmSBhIGNlcnRhaW4gY2xhc3Mgb2YgY29uZGl0aW9ucywgDQp0aGUgY2F1c2F0aW9uIGlucXVpcnkgc3RvcHMgYXQgdGhlIGVmZmljaWVudCBwaHlzaWNhbCBjYXVzZSBvZiANCnRoZSBsb3NzOyBpdCBkb2VzIG5vdCB0cmFjZSBldmVudHMgYmFjayB0byB0aGVpciBtZXRhcGh5c2ljYWwgDQpiZWdpbm5pbmdzLuKAnSBLaW1taW5zIEluZHVzLiBTZXJ2LiBDb3JwLiB2LiBSZWxpYW5jZSBJbnMuIENvLiwgDQoxOSBGLjNkIDc4LCA4MSAoMmQgQ2lyLjE5OTQpIChpbnRlcm5hbCBjaXRhdGlvbnMgYW5kIHNlbGVjdGVkIA0KcXVvdGF0aW9uIG1hcmtzIG9taXR0ZWQpLiANCkFwcGx5aW5nIHRoZSBzdGFuZGFyZHMgc2V0IGZvcnRoIGFib3ZlLCBjb3VydHMgYWRkcmVzc2luZyANCmNhdXNhdGlvbiB1bmRlciBOZXcgWW9yayBsYXcgaW4gY29ubmVjdGlvbiB3aXRoIDkvMTEgY292ZXJhZ2UgDQpjbGFpbXMgZm91bmQgaW4gdGhlIGluc3VyZWRz4oCZIGZhdm9yLiBTZWUgT2NlYW4gUGFydG5lcnMgdi4gTm9ydGggDQpSaXZlciBJbnMuIENvLiwgNTQ2IEYuIFN1cHAuIDJkIDEwMSwgMTE1IChTLkQuTi5ZIDIwMDgpIChyZWplY3RpbmcgDQp0aGUgaW5zdXJlcuKAmXMgYXNzZXJ0aW9uIHRoYXQgdGhlIHBvbGljeeKAmXMgY29sbGFwc2UgZXhjbHVzaW9uIGJhcnJlZCANCmNvdmVyYWdlIGJlY2F1c2UgdGhlIGNsb3VkIG9mIHBhcnRpY3VsYXRlIG1hdHRlciBlbWFuYXRpbmcgDQpmcm9tIHRoZSB0b3dlcnMgd2FzIHRoZSBlZmZpY2llbnQgcHJveGltYXRlIGNhdXNlIG9mIHRoZSANCmluc3VyZWTigJlzIGxvc3MsIG5vdCB0aGUgdG93ZXJz4oCZIGNvbGxhcHNlKTsgUGFya3MgUmVhbCBFc3RhdGUgdi4gDQpTdC4gUGF1bCBGaXJlICZhbXA7IE1hcmluZSBJbnMuIENvLiwgNDcyIEYuM2QgMzMsIDQ4LTkgKDJkIENpci4gMjAwNikgDQooc2FtZSkuDQpDb3VydHMgaGF2ZSBoaXN0b3JpY2FsbHkgdGFrZW4gZGlmZmVyaW5nIGFwcHJvYWNoZXMgd2hlbiANCmFkZHJlc3NpbmcgY292ZXJhZ2UgaW4gc2l0dWF0aW9ucyB3aGVyZSBtdWx0aXBsZSBjYXVzZXMgbWF5IA0KaGF2ZSBjYXVzZWQgdGhlIGxvc3MuIE9uZSBvZiB0aGUgZmlyc3QgZGVjaXNpb25zIHRvIGFkZHJlc3MgDQp0aGlzIGlzc3VlIHdhcyBTYWJlbGxhIHYuIFdpc2xlciA1OSBDYWwuIDJkIDIxICgxOTYzKS4gVGhlcmUsIGEgDQpidWlsZGluZyBjb250cmFjdG9yIGhhZCBjb25zdHJ1Y3RlZCBhIGhvdXNlIGFuZCBuZWdsaWdlbnRseSANCmluc3RhbGxlZCBhIHNld2VyIGxpbmUuIE5lZ2xpZ2VudCBpbnN0YWxsYXRpb24gd2FzIGEgY292ZXJlZCBwZXJpbCANCnVuZGVyIHRoZSBpbnN1cmFuY2UgcG9saWN5LiBUaGUgc2V3ZXIgbGluZSBldmVudHVhbGx5IHJ1cHR1cmVkLCANCmNhdXNpbmcgd2F0ZXIgdG8gc2F0dXJhdGUgdGhlIGdyb3VuZCBzdXJyb3VuZGluZyB0aGUgaW5zdXJlZHPigJkgDQpob21lLCByZXN1bHRpbmcgaW4gc3Vic2lkZW5jZSwgYW4gZXhjbHVkZWQgcGVyaWwuIFRvIGRldGVybWluZSANCmNvdmVyYWdlLCB0aGUgQ2FsaWZvcm5pYSBTdXByZW1lIENvdXJ0IGZpcnN0IGFzY2VydGFpbmVkIHRoZSANCmluc3VyZWRz4oCZIGNhdXNlIG9mIGxvc3MuIFRoZSBjb3VydCBzdGF0ZWQgdGhlIHRlc3QgYXMgZm9sbG93czoNClRoZSAyMDE3IEF0bGFudGljIEh1cnJpY2FuZSBTZWFzb247IEluc3VyYW5jZSBDb3ZlcmFnZSBmb3IgSGFydmV5LCBJcm1hLCBKb3NlLCBhbmQgTWFyaWEg4oCiIFBhZ2UgNg0K4oCcW0ldbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgbG9zcyBpcyB3aXRoaW4gYW4gZXhjZXB0aW9uIA0KaW4gYSBwb2xpY3ksIHdoZXJlIHRoZXJlIGlzIGEgY29uY3VycmVuY2Ugb2YgZGlmZmVyZW50IA0KY2F1c2VzLCB0aGUgZWZmaWNpZW50IGNhdXNl4oCUdGhlIG9uZSB0aGF0IHNldHMgb3RoZXJzIA0KaW4gbW90aW9u4oCUaXMgdGhlIGNhdXNlIHRvIHdoaWNoIHRoZSBsb3NzIGlzIHRvIGJlIA0KYXR0cmlidXRlZCwgdGhvdWdoIHRoZSBvdGhlciBjYXVzZXMgbWF5IGZvbGxvdyBpdCwgYW5kIA0Kb3BlcmF0ZSBtb3JlIGltbWVkaWF0ZWx5IGluIHByb2R1Y2luZyB0aGUgZGlzYXN0ZXIu4oCdIA0KSWQuIGF0IDMxIChjaXRhdGlvbiBvbWl0dGVkKS4NCkluIEdpbGxpcyB2LiBTdW4gSW5zdXJhbmNlIE9mZmljZSwgTHRkLiAyMzggQ2FsLiBBcHAuIDJkIDQwOCANCigxOTY1KSwgdGhlIGNvdXJ0IGFwcGxpZWQgdGhlIGVmZmljaWVudCBwcm94aW1hdGUgY2F1c2UgdGVzdCB0byANCmEgd2luZHN0b3JtLiBUaGVyZSwgdGhlIGluc3VyZWQsIGFuIG93bmVyIG9mIGRvY2tpbmcgZmFjaWxpdGllcywgDQpzdWZmZXJlZCBleHRlbnNpdmUgZGFtYWdlIGZyb20gYSB3aW5kc3Rvcm0gdGhhdCBjYXVzZWQgYSANCnBvcnRpb24gb2YgdGhlIGZhY2lsaXRpZXMgdG8gYmVjb21lIHN1Ym1lcmdlZCBpbiB0aGUgb2NlYW4uIElkLiANCmF0IDQxMC0xMS4gVGhlIGluc3VyZWTigJlzIHBvbGljeSBjb3ZlcmVkIGxvc3MgY2F1c2VkIGJ5IHdpbmQsIA0KYnV0IGV4Y2x1ZGVkIGxvc3MgY2F1c2VkIGJ5IHdhdGVyIG9yIHdhdmVzLiBJZC4gYXQgNDE1LiBUaGUgDQpjb3VydCwgcmVseWluZyBvbiBTYWJlbGxhLCBjb25jbHVkZWQgdGhhdCB3aW5kIHdhcyB0aGUgZWZmaWNpZW50IA0KcHJveGltYXRlIGNhdXNlIG9mIHRoZSBpbnN1cmVk4oCZcyBsb3NzIGFuZCwgdGhlcmVmb3JlLCB0aGUgcG9saWN5IA0KY292ZXJlZCBpdHMgbG9zcy4gSWQuIGF0IDQxNi0yNS4gTGlrZXdpc2UsIE1hc3NhY2h1c2V0dHPigJkgaGlnaGVzdCANCmNvdXJ0IGFwcGxpZWQgdGhlIGVmZmljaWVudCBwcm94aW1hdGUgY2F1c2UgdGVzdCBhbmQgZm91bmQgdGhhdCBhIA0KaG9tZW93bmVy4oCZcyBwb2xpY3kgdGhhdCBpbmNsdWRlZCBhIHBvbGx1dGlvbiBleGNsdXNpb24gcHJvdmlkZWQgDQpjb3ZlcmFnZSBmb3IgZGFtYWdlIHRvIG9pbC1jb250YW1pbmF0ZWQgcHJvcGVydHkuIEp1c3NpbSANCnYuIE1hc3MuIEJheSBJbnMuIENvLiwgNDE1IE1hc3MuIDI0LCAyNS0zMSAoMTk5MykuIFRoZSBjb3VydCANCnJlYXNvbmVkIHRoYXQgYSB0aGlyZCBwYXJ0eeKAmXMgbmVnbGlnZW5jZSB3aGVuIHB1bXBpbmcgb2lsIGFuZCANCm5vdCB0aGUgcmVsZWFzZSBvZiBhIHBvbGx1dGFudCB3YXMgdGhlIGVmZmljaWVudCBwcm94aW1hdGUgY2F1c2UgDQpvZiB0aGUgZGFtYWdlLiBJZC4gDQpTb21lIHN0YXRlcyBmb2xsb3cgYSDigJxjb25jdXJyZW50IGNhdXNhdGlvbuKAnSB0ZXN0LCBhcyBvcHBvc2VkIHRvIA0KYW4gZWZmaWNpZW50IHByb3hpbWF0ZSBjYXVzZSB0ZXN0LiBVbmRlciBhIGNvbmN1cnJlbnQgY2F1c2F0aW9uIA0KdGVzdCwgY292ZXJhZ2UgaXMgYWZmb3JkZWQgcHJvdmlkZWQgdGhhdCBvbmUgb2YgdGhlIGNvbnRyaWJ1dGluZyANCmNhdXNlcyBpcyBpbnN1cmVkLCBldmVuIGlmIG90aGVyIGNvbnRyaWJ1dGluZyBjYXVzZXMgYXJlIG5vdCANCmluc3VyZWQuIEZsb3JpZGEsIGZvciBleGFtcGxlLCBmb2xsb3dzIHRoZSBjb25jdXJyZW50IGNhdXNhdGlvbiANCmRvY3RyaW5lLCBhcyBjb25maXJtZWQgYnkgdGhlIEZsb3JpZGEgU3VwcmVtZSBDb3VydCBpbiBTZWJvIHYuIA0KQW1lcmljYW4gSG9tZSBBc3N1cmFuY2UgQ28uLCAyMDggU28uM2QgNjk0IChGbGEuIDIwMTYpLiBUaGUgDQpjYXNlIGludm9sdmVkIGEgaG9tZW93bmVyIHdobyBzdWZmZXJlZCBleHRlbnNpdmUgZGFtYWdlIHRvIA0KaGlzIGhvbWUgZHVlIHRvIGxlYWtzIGR1cmluZyByYWluc3Rvcm1zLiBXaGVuIFNlYm8gcmVwb3J0ZWQgDQp0aGUgd2F0ZXIgZGFtYWdlIHRvIGhpcyBpbnN1cmFuY2UgY29tcGFueSwgdGhlIGluc3VyZXIgZGVuaWVkIA0KY292ZXJhZ2UgYXNzZXJ0aW5nIHRoYXQgY29uc3RydWN0aW9uIGRlZmVjdHMgd2VyZSB0aGUgcHJpbWFyeSANCmNhdXNlIG9mIHRoZSBkYW1hZ2UgYW5kIHRoYXQgdGhlIHBvbGljeSBleHByZXNzbHkgZXhjbHVkZWQgDQpkYW1hZ2UgZHVlIHRvIGZhdWx0eSwgaW5hZGVxdWF0ZSwgb3IgZGVmZWN0aXZlIHBsYW5uaW5nLiBJbiANCmFkb3B0aW5nIHRoZSBjb25jdXJyZW50IGNhdXNhdGlvbiB0ZXN0IG92ZXIgdGhlIGVmZmljaWVudCANCnByb3hpbWF0ZSBjYXVzZSB0ZXN0LCB0aGUgY291cnQgcmVhc29uZWQgdGhhdDogDQpbVF1oZXJlIGlzIG5vIHJlYXNvbmFibGUgd2F5IHRvIGRpc3Rpbmd1aXNoIHRoZSANCnByb3hpbWF0ZSBjYXVzZSBvZiBTZWJv4oCZcyBwcm9wZXJ0eSBsb3Nz4oCUdGhlIHJhaW4gYW5kIA0KY29uc3RydWN0aW9uIGRlZmVjdHMgYWN0ZWQgaW4gY29uY2VydCB0byBjcmVhdGUgdGhlIA0KZGVzdHJ1Y3Rpb24gb2YgU2Vib+KAmXMgaG9tZS4gQXMgc3VjaCwgaXQgd291bGQgbm90IGJlIA0KZmVhc2libGUgdG8gYXBwbHkgdGhlIEVQQyBkb2N0cmluZSBiZWNhdXNlIG5vIGVmZmljaWVudCANCmNhdXNlIGNhbiBiZSBkZXRlcm1pbmVkLg0KU2VibywgMjA4IFNvLjNkIGF0IDcwMC4gDQpUaGUgU2VibyBDb3VydCBoZWxkIHRoYXQgdGhlIGNvbmN1cnJlbnQgY2F1c2UgZG9jdHJpbmUgYXBwbGllcyANCnRvIFNlYm/igJlzIGNhc2UsIHJlamVjdGluZyB0aGUgU2Vjb25kIERpc3RyaWN04oCZcyBjb25jZXJuIHRoYXQg4oCcYSANCmNvdmVyZWQgcGVyaWwgY2FuIHVzdWFsbHkgYmUgZm91bmQgc29tZXdoZXJlIGluIHRoZSBjaGFpbiBvZiANCmNhdXNhdGlvbiwgYW5kIHRvIGFwcGx5IHRoZSBjb25jdXJyZW50IGNhdXNhdGlvbiBhbmFseXNpcyB3b3VsZCANCmVmZmVjdGl2ZWx5IG51bGxpZnkgYWxsIGV4Y2x1c2lvbnMgaW4gYW4gYWxsLXJpc2sgcG9saWN5LuKAnSBUaHVzLCB1bmRlciANCkZsb3JpZGEgbGF3LCBhbiBpbnN1cmVkIG1heSByZWNvdmVyIHdoZXJlIHR3byBvciBtb3JlIHBlcmlscyANCmNvbnRyaWJ1dGUgdG8gYSBsb3NzIGFuZCBhdCBsZWFzdCBvbmUgb2YgdGhlIGNhdXNlcyBpcyBub3QgZXhjbHVkZWQgDQp1bmRlciB0aGUgdGVybXMgb2YgdGhlIHBvbGljeS4gRm9yIGV4YW1wbGUsIHdpbmQgYW5kIHJhaW4gZnJvbSBhIA0KaHVycmljYW5lIGJvdGggY2F1c2UgbG9zcyB0byBhbiBpbnN1cmVk4oCZcyBob21lLiBJZiB3aW5kIGlzIG5vdCBhbiANCmV4Y2x1ZGVkIGNhdXNlIHVuZGVyIHRoZSBwb2xpY3kgKHdoaWNoIGl0IGFsbW9zdCBuZXZlciBpcykgYW5kIA0KbG9zcyBjYXVzZWQgYnkgZmxvb2RpbmcgaXMgZXhjbHVkZWQsIHB1cnN1YW50IHRvIHRoZSBjb25jdXJyZW50IA0KY2F1c2UgdGVzdCwgdGhlIGxvc3Mgd2lsbCBiZSBjb3ZlcmVkLg0KTmV3IEplcnNleSBjb3VydHMgaGF2ZSBhcHBsaWVkIGEgdmVyc2lvbiBvZiB0aGUgY29uY3VycmVudCANCmNhdXNhdGlvbiB0ZXN0LiBJbiBTaW1vbmV0dGkgdi4gU2VsZWN0aXZlIEluc3VyYW5jZSBDby4gMzcyIE4uSi4gDQpTdXBlci4gNDIxICgyMDA0KSwgaG9tZW93bmVycyBicm91Z2h0IGFuIGFjdGlvbiBhZ2FpbnN0IHRoZWlyIA0KaW5zdXJlciB0byByZWNvdmVyIGZvciBtb2xkIGRhbWFnZSB0aGF0IGEgcmFpbnN0b3JtIGFsbGVnZWRseSANCmNhdXNlZC4gVGhlIGFsbC1yaXNrIGhvbWVvd25lcuKAmXMgcG9saWN5IGF0IGlzc3VlIGNvdmVyZWQgDQrigJzigJhkaXJlY3TigInigKbigIlwaHlzaWNhbCBsb3NzIHRvIHByb3BlcnR5LuKAmeKAnSBJZC4gYXQgNDIyLiBUaGUgcG9saWN5IA0KY292ZXJlZCBsb3NzZXMgY2F1c2VkIGJ5IGEgcmFpbnN0b3JtLCBidXQgZXhjbHVkZWQgY292ZXJhZ2UgDQpmb3IgbG9zc2VzIGNhdXNlZCBieSBtb2xkIGFuZCBieSBmYXVsdHkgZGVzaWduLCB3b3JrbWFuc2hpcCANCmFuZCBtYWludGVuYW5jZS4gSWQuIGF0IDQyNi4gVGhlIGluc3VyZXIgY29udGVuZGVkIHRoYXQgZmF1bHR5IA0Kd29ya21hbnNoaXAgY2F1c2VkIHRoZSBsb3NzIHJhdGhlciB0aGFuLCBvciBpbiBhZGRpdGlvbiB0bywgdGhlIA0Kc3Rvcm0gaXRzZWxmLiBJZC4gYXQgNDI4Lg0KVGhlIGNvdXJ0IHJldmVyc2VkIHRoZSBncmFudCBvZiB0aGUgaW5zdXJlcuKAmXMgbW90aW9uIGZvciANCnN1bW1hcnkganVkZ21lbnQsIGhvbGRpbmcgdGhhdCBhIHF1ZXN0aW9uIG9mIGZhY3QgZXhpc3RlZCBhcyB0byANCndoZXRoZXIgc29tZSBvciBhbGwgb2YgdGhlIGRhbWFnZSwgaW5jbHVkaW5nIG1vbGQsIHdhcyBjYXVzZWQgDQpieSB0aGUgcmFpbnN0b3JtLiBJZC4gYXQgNDMxLiBUaGUgY291cnQgaGVsZCB0aGF0IGNvbmN1cnJlbnQgDQpjYXVzYXRpb24gd2FzIG5vdCBhbiBhYnNvbHV0ZSBiYXIgdG8gcmVjb3Zlcnk6DQpUaGUgZmFjdCB0aGF0IHR3byBvciBtb3JlIGlkZW50aWZpYWJsZSBjYXVzZXPigJRvbmUgYSANCmNvdmVyZWQgZXZlbnQgYW5kIG9uZSBleGNsdWRlZOKAlG1heSBjb250cmlidXRlIHRvIGEgDQpzaW5nbGUgcHJvcGVydHkgbG9zcyBkb2VzIG5vdCBuZWNlc3NhcmlseSBiYXIgY292ZXJhZ2UuDQpJZC4gV2l0aCByZXNwZWN0IHRvIGNvbmN1cnJlbnQgY2F1c2F0aW9uLCB0aGUgY291cnQgaGVsZCB0aGF0IA0K4oCcW3ddaGVyZSBpbmNsdWRlZCBhbmQgZXhjbHVkZWQgY2F1c2VzIG9jY3VyIGNvbmN1cnJlbnRseSwgaXQgaXMgDQpmb3IgdGhlIGZhY3RmaW5kZXIgdG8gZGV0ZXJtaW5lIHdoaWNoIHBhcnQgb2YgdGhlIGRhbWFnZSB3YXMgDQpkdWUgdG8gdGhlIGluY2x1ZGVkIGNhdXNlIG9mIGxvc3MgYW5kIGZvciB3aGljaCB0aGUgaW5zdXJlZCANCmNhbiByZWNvdmVyLuKAnSBJZC4gVGhlIGNvdXJ0IGZ1cnRoZXIgaGVsZCB0aGF0LCB3aXRoIHJlc3BlY3QgdG8gDQpzZXF1ZW50aWFsIGNhdXNlcyBvZiBsb3NzLCDigJxvdXIgY291cnRzIGhhdmUgZGV0ZXJtaW5lZCB0aGF0IGFuIA0KaW5zdXJlZCBkZXNlcnZlcyBjb3ZlcmFnZSB3aGVyZSB0aGUgaW5jbHVkZWQgY2F1c2Ugb2YgbG9zcyBpcyANCmVpdGhlciB0aGUgZmlyc3Qgb3IgbGFzdCBzdGVwIGluIHRoZSBjaGFpbiBvZiBjYXVzYXRpb24gd2hpY2ggbGVhZHMgDQp0byB0aGUgbG9zcy7igJ0gSWQuOyBzZWUgYWxzbyBGcmFua2xpbiBQYWNrYWdpbmcgQ28uIHYuIENhbC4gVW5pb24gDQpJbnMuIENvLiwgMTcxIE4uSi4gU3VwZXIuIDE4OCwgMTkxLTkyICgxOTc5KSAodmFuZGFscyBicm9rZSBpbnRvIA0Kd2FyZWhvdXNlIGFuZCBjYXVzZWQgZmxvb2QgdGhhdCBkYW1hZ2VkIGludmVudG9yeTsgdmFuZGFsaXNtLCANCmEgY292ZXJlZCBjYXVzZSBvZiBsb3NzLCB3YXMgcHJveGltYXRlIGNhdXNlIGV2ZW4gdGhvdWdoIA0KcG9saWN5IGV4Y2x1ZGVkIHdhdGVyIGRhbWFnZSk7IFB1aGxvdnNreSwgMjAxMiBOLkouIFN1cGVyLiANClVucHViLiBMRVhJUyBhdCAqMjQgKFRoZSDigJzigJhyZWdhcmRsZXNzIG9mIGFueSBvdGhlciBjYXVzZSBvciANClRoZSAyMDE3IEF0bGFudGljIEh1cnJpY2FuZSBTZWFzb247IEluc3VyYW5jZSBDb3ZlcmFnZSBmb3IgSGFydmV5LCBJcm1hLCBKb3NlLCBhbmQgTWFyaWEg4oCiIFBhZ2UgNw0KZXZlbnTigJkgbGFuZ3VhZ2UgZG9lcyBub3QgbW9kaWZ5IG9yIHBlcnRhaW4gdG8gdGhlc2UgZXhjbHVzaW9ucy4gDQpBY2NvcmRpbmdseSwgaWYgdGhlIOKAmGVmZmljaWVudCBvciBwcmVkb21pbmFudCBjYXVzZeKAmSBvZiBwbGFpbnRpZmbigJlzIA0KbG9zcyBpcyBhIGNvdmVyZWQgcGVyaWwsIHRoZW4gdGhlIGZhY3QgdGhhdCBhbiBleGNsdWRlZCBwZXJpbCBtYXkgDQpoYXZlIGFsc28gY29udHJpYnV0ZWQgdG8gdGhlIGxvc3MsIGRvZXMgbm90IHZpdGlhdGUgY292ZXJhZ2Uu4oCdKS4gDQpUZXhhcyBhcHBsaWVzIGEgdmFyaWF0aW9uIG9mIHRoZSBjb25jdXJyZW50IGNhdXNlIHJ1bGUgdGhhdCANCnBsYWNlcyBhbiBldmlkZW50aWFyeSBidXJkZW4gb24gdGhlIGluc3VyZWQgdG8gY29tZSBmb3J3YXJkIA0Kd2l0aCBzb21lIHByb29mIHRoYXQgd291bGQgcHJvdmlkZSBhIHJlYXNvbmFibGUgYmFzaXMgZm9yIA0KYXBwb3J0aW9uaW5nIHRoZSBsb3NzIGJldHdlZW4gYSBjb3ZlcmVkIGNhdXNlIGFuZCBhbiBleGNsdWRlZCANCmNhdXNlLiBTZWUgV2FsbGlzIHYuIFVuaXRlZCBTZXJ2cy4gQXV0by4gQXNz4oCZbiwgMiBTLlcuM2QgMzAwLCANCjMwMuKAkzAzIChUZXguIEFwcC4gMTk5OSkuIFRoZSBldmlkZW50aWFyeSBzdGFuZGFyZCBpcyBsb3cgYW5kIA0KaW5zdXJlZHMgY2FuIGVhc2lseSBtZWV0IGl0IHdpdGggYSByZWFzb25hYmxlIGFzc2Vzc21lbnQuIA0KQy4gQW50aS1Db25jdXJyZW50IENhdXNhdGlvbiBMYW5ndWFnZQ0KU3Vic3RhbnRpYWwgZGViYXRlIGhhcyBhcmlzZW4gb3ZlciB0aGUgeWVhcnMgYWJvdXQgdGhlIA0KYXBwcm9wcmlhdGUgY2F1c2F0aW9uIHRlc3QuIEFjY29yZGluZ2x5LCBzb21lIGluc3VyZXJzIGF0dGVtcHQgDQp0byBhZGRyZXNzIHRoZSBjYXVzYXRpb24gcmVxdWlyZW1lbnQgYnkgbW9kaWZ5aW5nIHRoZWlyIHBvbGljaWVzLiANCkEgcmVjZW50IGNvbW1lcmNpYWwgcHJvcGVydHkgcG9saWN5IGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgDQpwcm92aXNpb246DQpXZSB3aWxsIG5vdCBwYXkgZm9yIGxvc3Mgb3IgZGFtYWdlIGNhdXNlZCBkaXJlY3RseSBvciANCmluZGlyZWN0bHkgYnkgYW55IG9mIHRoZSBmb2xsb3dpbmcuIFN1Y2ggbG9zcyBvciBkYW1hZ2UgDQppcyBleGNsdWRlZCByZWdhcmRsZXNzIG9mIGFueSBvdGhlciBjYXVzZSBvciBldmVudCB0aGF0IA0KY29udHJpYnV0ZXMgY29uY3VycmVudGx5IG9yIGluIGFueSBzZXF1ZW5jZSB0byB0aGUgbG9zcy4gDQpJU08gUHJvcGVydGllcywgSW5jLCBDb21tZXJjaWFsIFByb3BlcnR5LCBDYXVzZXMgb2YgTG9zcyDigJMgDQpTcGVjaWFsIEZvcm0sIEZvcm0gQ1AgMTAgMzAgMDYgMDcgKDIwMDcpOyBzZWUgYWxzbyBUcmF2ZWxlcnMgDQpCdXNpbmVzc293bmVycyBQcm9wZXJ0eSBDb3ZlcmFnZSBTcGVjaWFsIEZvcm0sIEZvcm0gTVAgVDEgMDIgDQowMiAwNSAoMjAwNCkgKHJlbmV3ZWQgMjAxMikuDQpTdWNoIHRlcm1zIGFyZSBvZnRlbiByZWZlcnJlZCB0byBhcyDigJxhbnRpLWNvbmN1cnJlbnQgY2F1c2F0aW9uIA0KbGFuZ3VhZ2Uu4oCdIFRoZSBGaWZ0aCBDaXJjdWl0IHByZWRpY3RlZCB0aGF0IGF0IGxlYXN0IG9uZSANCmp1cmlzZGljdGlvbiB3b3VsZCB1cGhvbGQgc3VjaCBsYW5ndWFnZSB0byBwcmVjbHVkZSBhcHBsaWNhdGlvbiANCm9mIHRoZSBlZmZpY2llbnQgcHJveGltYXRlIGNhdXNlIGRvY3RyaW5lIHRvIHdhdGVyIGRhbWFnZSANCmNhdXNlZCBieSBIdXJyaWNhbmUgS2F0cmluYS4gU2VlIExlb25hcmQsIDQ5OSBGLjNkIGF0IDQyOS0zNjsgDQpUdWVwa2VyLCA1MDcgRi4zZCBhdCAzNTY7IHNlZSBhbHNvIFN0ZXdhcnQgRW50ZXJzLiwgNjE0IEYuM2QgYXQgDQoxMjUtMjcgKGFudGktY29uY3VycmVudCBjYXVzYXRpb24gY2xhdXNlIGRpZCBub3QgYmFyIGluc3VyZWTigJlzIA0KcmVjb3ZlcnkgZm9yIGRhbWFnZSBjYXVzZWQgYnkgY29tYmluYXRpb24gb2YgZmxvb2QgYW5kIHdpbmQpOyANCmNmLiBDb3JiYW4gdi4gVW5pdGVkIFNlcnZzLiBBdXRvLiBBc3PigJluLCAyMCBTby4gM2QgNjAxLCA2MTYtMTggDQooTWlzcy4gMjAwOSkgKGFudGktY29uY3VycmVudCBjYXVzZSBwcm92aXNpb24gbm90IGFwcGxpY2FibGUgDQpiZWNhdXNlIHdpbmQgYW5kIGZsb29kIGRhbWFnZSBkaWQgbm90IOKAnGNvbnRlbXBvcmFuZW91c2x5IA0KY29udmVyZ2UsIG9wZXJhdGluZyBpbiBjb25qdW5jdGlvbiwgdG8gY2F1c2UgZGFtYWdlIHJlc3VsdGluZyANCmluIGxvc3MgdG8gdGhlIGluc3VyZWQgcHJvcGVydHks4oCdIGJ1dCByYXRoZXIgaW5zdXJlZCBwcm9wZXJ0eSB3YXMgDQrigJxzZXBhcmF0ZWx5IGRhbWFnZWTigJ0gYnkgYSBjb3ZlcmVkIGFuZCBleGNsdWRlZCBwZXJpbCkuIA0KT3RoZXIganVyaXNkaWN0aW9ucyBoYXZlIGZvdW5kIHRoYXQgc3RhdHV0b3J5IGFuZCBwdWJsaWMgcG9saWN5IA0KbGltaXRhdGlvbnMgcHJlY2x1ZGVkIGFudGktY29uY3VycmVudCBjYXVzYXRpb24gbGFuZ3VhZ2UgYXQgbGVhc3QgDQppbiBzb21lIGNpcmN1bXN0YW5jZXMuIFNlZSwgZS5nLiwgRGUgQnJ1eW4gdi4gU3VwZXJpb3IgQ291cnQsIA0KMTU4IENhbC4gQXBwLiA0dGggMTIxMywgMTIyMyAoMjAwOCkgKOKAnFtBXW4gaW5zdXJlciBtYXkgbGltaXQgDQpjb3ZlcmFnZSB0byBzb21lLCBidXQgbm90IGFsbCwgbWFuaWZlc3RhdGlvbnMgb2YgYSBnaXZlbiBwZXJpbCwgYXMgDQpsb25nIGFzIOKAmFthXSByZWFzb25hYmxlIGluc3VyZWQgd291bGQgcmVhZGlseSB1bmRlcnN0YW5kIGZyb20gDQp0aGUgcG9saWN5IGxhbmd1YWdlIHdoaWNoIHBlcmlscyBhcmUgY292ZXJlZCBhbmQgd2hpY2ggYXJlIG5vdC7igJnigJ0gDQoocXVvdGluZyBKdWxpYW4gdi4gSGFydGZvcmQgVW5kZXJ3cml0ZXJzIElucy4gQ28uLCAzNSBDYWwuIDR0aCANCjc0NywgNzU5ICgyMDA1KSkpOyBjZi4gTGFuZHJ5IHYuIExhLiBDaXRpemVucyBQcm9wLiBJbnMuIENvLiwgOTY0IFNvLiANCjJkIDQ2MywgNDg0IChMYS4gQ3QuIEFwcC4gMjAwNykgKHVuZGVyIExhLiBSZXYuIFN0YXQuICYjMTY3OyAyMjo2OTUsIA0KaWYgdGhlIGVmZmljaWVudCBwcm94aW1hdGUgY2F1c2Ugb2YgdGhlIGluc3VyZWTigJlzIGRhbWFnZSBmcm9tIA0KSHVycmljYW5lIFJpdGEgd2FzIHdpbmQsIHJhaW4sIG9yIGhhaWwgKGFsbCBjb3ZlcmVkIHBlcmlscyksIGluc3VyZXIgDQppcyBsaWFibGUgZm9yIGZ1bGwgZmFjZSB2YWx1ZSBvZiB0aGUgaW5zdXJlZCBwcm9wZXJ0eSB3aXRob3V0IG9mZnNldCANCmZvciBkYW1hZ2UgY2F1c2VkIGJ5IHVuY292ZXJlZCBwZXJpbCBvZiBmbG9vZCBldmVuIHRob3VnaCB0aGUgDQpwb2xpY3kgY29udGFpbnMgYW50aS1jb25jdXJyZW50IGNhdXNhdGlvbiBsYW5ndWFnZSksIGFmZuKAmWQgaW4gcGFydCANCmFuZCB2YWNhdGVkIGluIHBhcnQgb24gb3RoZXIgZ3JvdW5kcywgOTgzIFNvLiAyZCA2NiAoTGEuIDIwMDgpLiANCkJ1dCBzZWUgUGV0cmljayB2LiBTdGF0ZSBGYXJtIEZpcmUgJmFtcDsgQ2FzLiBDby4sIDIwMTAgTi5KLiBTdXBlci4gDQpVbnB1Yi4gTEVYSVMgMTk2NCwgYXQgKjE2LTE3ICgyMDEwKSAoYW50aS1zZXF1ZW50aWFsIGNsYXVzZSBkb2VzIA0Kbm90IHZpb2xhdGUgTmV3IEplcnNleSBwdWJsaWMgcG9saWN5KTsgQWxhbWlhIHYuIE5hdGlvbndpZGUgTXV0LiANCkZpcmUgSW5zLiBDbywgNDk1IEYuIFN1cHAuIDJkIDM2MiAoUy5ELk4uWS4gMjAwNykuDQpVbmRlciBjZXJ0YWluIGNpcmN1bXN0YW5jZXMsIGNvdXJ0cyBoYXZlIGZvdW5kIGFudGktY29uY3VycmVudCANCmNhdXNhdGlvbiBsYW5ndWFnZSBhbWJpZ3VvdXMgYW5kIGhhdmUgY29uc3RydWVkIHRoZSBsYW5ndWFnZSANCmluIGZhdm9yIG9mIGNvdmVyYWdlIGZvciB0aGUgaW5zdXJlZC4gU2VlLCBlLmcuLCBCcm9va2x5biBCcmlkZ2UsIA0KSW5jLiB2LiBTLkMuIElucy4gQ28uLCAzMDkgUy5DLiAxNDEsIDE0My00NSAoMTk5MikgKGFudGktY29uY3VycmVudCANCmxhbmd1YWdlIGluIGFuIGluc3VyYW5jZSBwb2xpY3ksIHdoZW4gcmVhZCBpbiBjb25qdW5jdGlvbiANCndpdGggYSBwb3dlciBmYWlsdXJlIGV4Y2x1c2lvbiwgd2FzIGFtYmlndW91cyBhcyB0byB3aGV0aGVyIA0KaXQgZXhjbHVkZWQgbG9zcyBkdWUgdG8gc3BvaWxhZ2Ugb2YgaW5zdXJlZCBncm9jZXJ5IHN0b3Jl4oCZcyANCmludmVudG9yeSBhZnRlciBnZW5lcmFsIHBvd2VyIGZhaWx1cmUgY2F1c2VkIGJ5IEh1cnJpY2FuZSANCkh1Z28pLiBBY2NvcmRpbmdseSwgaW5zdXJlZHMgc2hvdWxkIHJldmlldyB0aGUgd29yZGluZyBvZiB0aGVpciANCnBvbGljaWVzIGNhcmVmdWxseSB0byBkZXRlcm1pbmUgd2hldGhlciBhbnRpLWNvbmN1cnJlbnQgbGFuZ3VhZ2UgDQpnb3Zlcm5zLCBvciB3aGV0aGVyIGEgY29tbW9uIGxhdyB0ZXN0IHdvdWxkIGFwcGx5Lg0KSW4gYW55IGV2ZW50LCDigJxbdF1oZSBncmVhdCBtYWpvcml0eSBvZiBjYXNlcyBhZGRyZXNzaW5nIGNhdXNhdGlvbiANCmRpc3B1dGVzIHVuZGVyIGFuIGluc3VyYW5jZSBwb2xpY3kgaG9sZCB0aGF0IHRoZSBjYXVzYWwgDQpyZWxhdGlvbnNoaXAgb2YgYSBsb3NzIHRvIGEgcGFydGljdWxhciBhbGxlZ2VkIGluc3RydW1lbnRhbGl0eSBpcyBhIA0KcXVlc3Rpb24gb2YgZmFjdC7igJ0gNyBMZWUgUi4gUnVzcyAmYW1wOyBUaG9tYXMgRi4gU2VnYWxsYSwgQ291Y2ggb24gDQpJbnN1cmFuY2UgM2QgJiMxNjc7IDEwMTo1OSAoMjAwNikuIFRoaXMgbWVhbnMsIG9mIGNvdXJzZSwgdGhhdCBhbiANCmluc3VyZXIgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGF1dG9tYXRpY2FsbHkgcmVqZWN0IGNvdmVyYWdlIG9uIA0KdGhlIG5vdGlvbiANCkNPVkVSQUdFIEZPUiBMT1NUIEJVU0lORVNTIA0KVGhvdXNhbmRzIG9mIGJ1c2luZXNzZXMgc3VmZmVyZWQgZGlzcnVwdGlvbiBvZiB0aGVpciBvcGVyYXRpb25zIA0KYW5kIGxvc3QgaW5jb21lIGFzIGEgcmVzdWx0IG9mIEhhcnZleSwgSXJtYSwgSm9zZSwgYW5kIE1hcmlhLCANCmFuZCB0aGUgMjAxNyBBdGxhbnRpYyBIdXJyaWNhbmUgU2Vhc29uIGhhcyBub3QgeWV0IGVuZGVkLiANCk1hbnkgcHJvcGVydHkgaW5zdXJhbmNlIHBvbGljaWVzIGFsc28gcHJvdmlkZSDigJx0aW1lIGVsZW1lbnTigJ0gDQpjb3ZlcmFnZSB0aGF0IHByb3RlY3RzIGFnYWluc3Qgc3VjaCBsb3NzZXMuIA0KQS4gQnVzaW5lc3MgSW50ZXJydXB0aW9uDQrigJxCdXNpbmVzcyBJbnRlcnJ1cHRpb27igJ0gY292ZXJhZ2UgdHlwaWNhbGx5IHJlaW1idXJzZXMgdGhlIA0KaW5zdXJlZCBmb3IgdGhlIGFtb3VudCBvZiBncm9zcyBlYXJuaW5ncyBtaW51cyBub3JtYWwgZXhwZW5zZXMgDQp0aGF0IHRoZSBpbnN1cmVkIHdvdWxkIGhhdmUgZWFybmVkIGJ1dCBmb3IgdGhlIGludGVycnVwdGlvbiBvZiANCnRoZSBpbnN1cmVk4oCZcyBidXNpbmVzcyAodGhhdCBpcywgaXRzIHByb2ZpdHMpLiBTZWUsIGUuZy4sIFBlbm5iYXJyIA0KVGhlIDIwMTcgQXRsYW50aWMgSHVycmljYW5lIFNlYXNvbjsgSW5zdXJhbmNlIENvdmVyYWdlIGZvciBIYXJ2ZXksIElybWEsIEpvc2UsIGFuZCBNYXJpYSDigKIgUGFnZSA4DQpDb3JwLiB2LiBJbnMuIENvLiBvZiBOLiBBbS4sIDk3NiBGLjJkIDE0NSwgMTU0ICgzZCBDaXIuIDE5OTIpICh0aGUgDQpwdXJwb3NlIG9mIGJ1c2luZXNzIGludGVycnVwdGlvbiBpbnN1cmFuY2UgaXMg4oCcdG8gcmV0dXJuIHRvIHRoZSANCmluc3VyZWQgdGhhdCBhbW91bnQgb2YgcHJvZml0IHRoYXQgd291bGQgaGF2ZSBiZWVuIGVhcm5lZCANCmR1cmluZyB0aGUgcGVyaW9kIG9mIGludGVycnVwdGlvbiBoYWQgYSBjYXN1YWx0eSBub3Qgb2NjdXJyZWQu4oCdKTsgDQpIb3dhcmQgU3RvcmVzIENvcnAuIHYuIEZvcmVtb3N0IElucy4gQ28uLCA0NDEgTi5ZLlMuMmQgNjc0LCANCjY3NiAoQXBwLiBEaXYuIDE5ODEpICjigJxUaGUgcHVycG9zZSBvZiBidXNpbmVzcyBpbnRlcnJ1cHRpb24gDQppbnN1cmFuY2UgaXMgdG8gaW5kZW1uaWZ5IHRoZSBpbnN1cmVkIGFnYWluc3QgbG9zc2VzIGFyaXNpbmcgZnJvbSANCmluYWJpbGl0eSB0byBjb250aW51ZSBub3JtYWwgYnVzaW5lc3Mgb3BlcmF0aW9uIGFuZCBmdW5jdGlvbnMgDQpkdWUgdG8gdGhlIGRhbWFnZSBzdXN0YWluZWQgYXMgYSByZXN1bHQgb2YgdGhlIGhhemFyZCBpbnN1cmVkIA0KYWdhaW5zdC7igJ0pLCBhZmbigJlkLCA0MzkgTi5FLjJkIDM5NyAoTi5ZLiAxOTgyKTsgY2YuIFBydWRlbnRpYWwgTE1JIA0KQ29tbWVyY2lhbCBJbnMuIENvLiB2LiBDb2xsZXRvbiBFbnRlcnMuLCA5NzYgRi4yZCA3MjcgKDR0aCBDaXIuIA0KMTk5MikgKHVuZGVyIFNvdXRoIENhcm9saW5hIGxhdywgYnVzaW5lc3MgaW50ZXJydXB0aW9uIGluc3VyYW5jZSANCmRpZCBub3QgY292ZXIgZXhwZWN0ZWQgcHJvZml0cyB0aGF0IGhvdGVsIGNvdWxkIGhhdmUgcmVhbGl6ZWQgaWYgDQppdCBjb3VsZCBoYXZlIGFjY29tbW9kYXRlZCB0aGUgaW5mbHV4IG9mIHRlbXBvcmFyeSB3b3JrZXJzIA0KY29taW5nIHRvIHRoZSBhcmVhIHRvIHJlc3BvbmQgdG8gdGhlIGh1cnJpY2FuZSwgaGFkIHRoZSBob3RlbCANCm5vdCBpdHNlbGYgYmVlbiBkYW1hZ2VkOyBpbnN1cmVkIGNvdWxkIG5vdCBiZW5lZml0IGZyb20gdGhlIA0KaW5zdXJlZCBwZXJpbCBidXQgY291bGQgb25seSBiZSDigJxwdXTigInigKbigIlpbiB0aGUgZWFybmluZ3MgcG9zaXRpb24gaXQgDQp3b3VsZCBoYXZlIGJlZW4gaW4gaGFkIHRoZSBpbnN1cmVkIHBlcmlsIG5vdCBvY2N1cnJlZOKAnSkuDQpCdXNpbmVzcyBpbnRlcnJ1cHRpb24gY292ZXJhZ2UgcHJvdmlzaW9ucyB0eXBpY2FsbHkgYXBwbHkgZXZlbiANCndoZW4gYW4gaW5zdXJlZCBpcyBmb3JjZWQgdG8gcmVsb2NhdGUgaW4gb3JkZXIgdG8ga2VlcCBpdHMgDQpidXNpbmVzcyBnb2luZyBvciB0byBtaW5pbWl6ZSBpdHMgb3ZlcmFsbCBsb3NzLiBTZWUsIGUuZy4sIEFtLiBNZWQuIA0KSW1hZ2luZyBDb3JwLiB2LiBTdC4gUGF1bCBGaXJlICZhbXA7IE1hcmluZSBJbnMuIENvLiwgOTQ5IEYuMmQgNjkwLCANCjY5Mi05MyAoM2QgQ2lyLiAxOTkxKSAoaW5zdXJlZCByZW9wZW5lZCBhdCBhbiBhbHRlcm5hdGUgbG9jYXRpb24sIA0KYnV0IGVhcm5lZCBsZXNzIHRoYW4gaXQgb3RoZXJ3aXNlIHdvdWxkIGhhdmU7IGluc3VyZXIgb2JsaWdhdGVkIA0KdG8gaW5kZW1uaWZ5IGluc3VyZWQgd2hpbGUgYnVzaW5lc3MgY29udGludWVkIGF0IGxlc3MtdGhhbi0NCm5vcm1hbCBsZXZlbCkuIA0KMS4gQ292ZXJhZ2Ugd2l0aG91dCBQaHlzaWNhbCBEYW1hZ2UNCk1hbnkgYnVzaW5lc3NlcyBoYXZlIGluY3VycmVkIHN1YnN0YW50aWFsIGxvc3NlcyBhcyBhIHJlc3VsdCBvZiANCnRoZSBodXJyaWNhbmVzIGV2ZW4gdGhvdWdoIHRoZXkgc3VmZmVyZWQgbm8gZGlyZWN0IHByb3BlcnR5IA0KZGFtYWdlLiBUaGUgZWZmZWN0cyBvZiB0aGUgaHVycmljYW5lcyB3aWxsIGxpa2VseSBiZSBmZWx0IGFjcm9zcyANCnRoZSBjb3VudHJ5LCB3ZWxsIGJleW9uZCB0aGUgYXJlYXMgdGhhdCBzdWZmZXJlZCBhIGRpcmVjdCBoaXQuIA0KV2hpbGUgc29tZSBpbnN1cmFuY2UgcG9saWNpZXMgd2lsbCBub3QgcmVzcG9uZCB0byBzdWNoIGxvc3NlcywgDQpvdGhlciBwb2xpY2llcyBtYXkgcmVzcG9uZCBhbmQgcHJvdmlkZSBzdWJzdGFudGlhbCBlY29ub21pYyANCnJlY292ZXJ5LiBTZWUsIGUuZy4sIENpbmNpbm5hdGkgSW5zLiBDby4gdi4gV2FzaGVyICZhbXA7IFJlZnJpZ2VyYXRpb24gDQpTdXBwbHkgQ28uLCAyMDA4IFUuUy4gRGlzdC4gTEVYSVMgMTEyNDY0IChTLkQuIEFsYS4gQXVnLiA4LCAyMDA4KSANCihzdXNwZW5zaW9uIG9mIG9wZXJhdGlvbnMgYXQgYSB3YXJlaG91c2UgZGFtYWdlZCBieSBIdXJyaWNhbmUgDQpLYXRyaW5hIGNvdWxkIHdhcnJhbnQgY292ZXJhZ2UgZm9yIGJ1c2luZXNzIGxvc3NlcyBhdCBkaXN0cmlidXRpb24gDQphbmQgcmV0YWlsIG91dGxldHMgdGhhdCBkaWQgbm90IHN1c3RhaW4gZGFtYWdlKTsgc2VlIGFsc28gUlRHIA0KRnVybml0dXJlIENvcnAuIHYuIEluZHVzLiBSaXNrIEluc3VyZXJzLCA2MTYgRi4gU3VwcC4gMmQgMTI1OCwgDQoxMjY0LTY2IChTLkQuIEZsYS4gMjAwOCkgKGlzc3VlcyBvZiBmYWN0IGV4aXN0ZWQgYXMgdG8gd2hldGhlciANCmRlZHVjdGlibGUgYXBwbGllZCB0byBsb3NzZXMgY2F1c2VkIGJ5IEh1cnJpY2FuZXMgQ2hhcmxleSwgDQpGcmFuY2VzLCBhbmQgSmVhbm5lIHRoYXQgd2VyZSBub3QgYXR0cmlidXRhYmxlIHRvIHBoeXNpY2FsIA0KZGFtYWdlIHRvIGluc3VyZWTigJlzIHByb3BlcnR5KTsgRm91bnRhaW4gUG93ZXJib2F0IEluZHVzLiwgSW5jLiANCnYuIFJlbGlhbmNlIElucy4gQ28uLCAxMTkgRi4gU3VwcC4gMmQgNTUyLCA1NTYtNTcgKEUuRC5OLkMuIDIwMDApIA0KKG5vIHBoeXNpY2FsIGRhbWFnZSByZXF1aXJlZCB0byB0cmlnZ2VyIGJ1c2luZXNzIGludGVycnVwdGlvbiANCmNvdmVyYWdlIGFmdGVyIEh1cnJpY2FuZSBGbG95ZCk7IEhhbXB0b24gRm9vZHMsIEluYy4gdi4gQWV0bmEgDQpDYXMuICZhbXA7IFN1ci4gQ28uLCA3ODcgRi4yZCAzNDksIDM1MS01MiAoOHRoIENpci4gMTk4NikgKGNvdmVyYWdlIGZvciANCmJ1c2luZXNzIGludGVycnVwdGlvbiBsb3NzIG9mIGludmVudG9yeSBvZiBncm9jZXJ5IHN0b3JlIGdyYW50ZWQgDQp3aGVuIHN0b3JlIHdhcyBmb3JjZWQgdG8gc2VsbCBpbnZlbnRvcnkgYXQgc2FsdmFnZSB2YWx1ZSBkdWUgdG8gDQppbW1pbmVudCBkYW1hZ2UgdG8gdGhlIHN0b3Jl4oCZcyBwcmVtaXNlcyBkZXNwaXRlIHRoZSBwcmVtaXNlcyANCm5vdCBiZWluZyBjb3ZlcmVkIHVuZGVyIHRoZSBwb2xpY3kpOyBTbG9hbiB2LiBQaG9lbml4IG9mIEhhcnRmb3JkIA0KSW5zLiBDby4sIDQ2IE1pY2guIEFwcC4gNDYgKDE5NzMpIChjb3ZlcmFnZSBleGlzdGVkIGJlY2F1c2UgDQppbnN1cmluZyBhZ3JlZW1lbnRzIGluIGJ1c2luZXNzIGludGVycnVwdGlvbiBwb2xpY2llcyBub3Qgb25seSANCmNvbnRhaW5lZCB3b3JkcyDigJxkYW1hZ2XigJ0gYW5kIOKAnGRlc3RydWN0aW9uLOKAnSBidXQgYWxzbyBpbmNsdWRlZCANCndvcmQg4oCcbG9zcyzigJ0gb3Igb3RoZXJ3aXNlIGVuY29tcGFzc2VkIGFuIGludGVycHJldGF0aW9uIHRoYXQgDQpkaWQgbm90IHJlcXVpcmUg4oCccGh5c2ljYWzigJ0gZGFtYWdlIG9yIGRlc3RydWN0aW9uIHRvIHByb3BlcnR5KTsgDQpBbGxlbiBQYXJrIFRoZWF0cmUgQ28uIHYuIE1pY2guIE1pbGxlcnMgTXV0LiBJbnMuIENvLiwgNDggTWljaC4gDQpBcHAuIDE5OSwgMjAxICgxOTczKSAo4oCcSWYgdGhlIGluc3VyZXIgd2FudGVkIHRvIGJlIHN1cmUgdGhhdCANCnRoZSBwYXltZW50IG9mIGJ1c2luZXNzIGludGVycnVwdGlvbiBiZW5lZml0cyBoYWQgdG8gYmUgDQphY2NvbXBhbmllZCBieSBwaHlzaWNhbCBkYW1hZ2UgaXQgd2FzIGl0cyBidXJkZW4gdG8gc2F5IHNvIA0KdW5lcXVpdm9jYWxseS7igJ0pOyBQcmVzc21hbiB2LiBBZXRuYSBDYXMuICZhbXA7IFN1ci4gQ28uLCA1NzQgQS4yZCA3NTcgDQooUi5JLiAxOTkwKSAoaW5zdXJlZCBjb3VsZCByZWNvdmVyIGZvciBidXNpbmVzcyBpbnRlcnJ1cHRpb24gbG9zc2VzIA0KY2F1c2VkIGJ5IGEgcG93ZXIgb3V0YWdlIGZyb20gYSB0cmVlIGZhbGxpbmcgb24gYSBwb3dlciBsaW5lKTsgDQpNY01haG9uIEJvb2tzLCBJbmMuIHYuIE5hdGlvbndpZGUgUHJvcC4gJmFtcDsgQ2FzLiBJbnMuIENvLiwgTm8uIA0KMTk5Mi0wNi0yMzIsIDE5OTMgV0wgMTMwMzE2OCAoRGVsLiBDdC4gQ29tLiBQbC4gSnVuLiA5LCAxOTkzKSANCihjb3ZlcmFnZSBmb3IgYnVzaW5lc3MgaW50ZXJydXB0aW9uIGNhdXNlZCBieSBwb3dlciBvdXRhZ2UgDQpmcm9tIGEgZmlyZSkuDQoyLiAgQ292ZXJhZ2Ugd2l0aCBEYW1hZ2UsIGJ1dCBOb3QgdG8gIA0KSW5zdXJlZCBQcm9wZXJ0eQ0KSW5zdXJlcnMgc3RpbGwgbWF5IGRlbnkgdGltZS1lbGVtZW50IGNvdmVyYWdlIGV2ZW4gaWYgcGh5c2ljYWwgDQppbmp1cnkgdG8gdGFuZ2libGUgcHJvcGVydHkgaGFzIGluY3VycmVkLCBpZiB0aGUgcGh5c2ljYWwgaW5qdXJ5IHdhcyANCm5vdCBjb3ZlcmVkLCBvciBpZiB0aGUgcHJvcGVydHkgZGlkIG5vdCBiZWxvbmcgdG8gdGhlIGluc3VyZWQuIA0KV2FrZWZlcm4gRm9vZCBDb3JwLiB2LiBMaWJlcnR5IE11dC4gRmlyZSBJbnMuIENvLiwgNDA2IE4uSi4gU3VwZXIuIA0KNTI0LCA1NDAgKDIwMDkpIChlbGVjdHJpY2FsIGdyaWQgd2FzIOKAnHBoeXNpY2FsbHkgZGFtYWdlZOKAnSB3aGVuIA0KdGhlIGdyaWQsIGl0cyBjb21wb25lbnQgZ2VuZXJhdG9ycywgYW5kIHRyYW5zbWlzc2lvbiBsaW5lcyB3ZXJlIA0KaW5jYXBhYmxlIG9mIHBlcmZvcm1pbmcgdGhlIGVzc2VudGlhbCBmdW5jdGlvbiBvZiBwcm92aWRpbmcgDQplbGVjdHJpY2l0eSkuIEhvd2V2ZXIsIHNvbWUgY291cnRzIGhhdmUgaW50ZXJwcmV0ZWQgYnVzaW5lc3MgDQppbnRlcnJ1cHRpb24gaW5zdXJhbmNlIHRvIGNvdmVyIGFuIGluc3VyZWTigJlzIGxvc3QgcHJvZml0cyBjYXVzZWQgDQpieSBwaHlzaWNhbCBkYW1hZ2UgZnJvbSBhIHdpbmRzdG9ybSB0byB1bmNvdmVyZWQgcHJvcGVydHkuIA0KSW4gU291dGhlYXN0IE1lbnRhbCBIZWFsdGggQ2VudGVyLCBJbmMuIHYuIFBhY2lmaWMgSW5zdXJhbmNlIA0KQ28uIDQzOSBGLiBTdXBwLiAyZCA4MzEgKFcuRC4gVGVubi4gMjAwNiksIGEgaGVhdnkgcmFpbiBhbmQgDQp3aW5kc3Rvcm0gKHJlZmVycmVkIHRvIGJ5IHRoZSBjb21tdW5pdHkgYXMg4oCcSHVycmljYW5lIEVsdmlz4oCdKSANCmRlc3Ryb3llZCBhIG51bWJlciBvZiBlbGVjdHJpY2FsIHRvd2Vycywga25vY2tpbmcgb3V0IHBvd2VyIA0KYW5kIGNhdXNpbmcgZXh0ZW5zaXZlIGRhdGEgbG9zcyBmcm9tIHRoZSBpbnN1cmVk4oCZcyBjb21wdXRlciANCm5ldHdvcmsuIEFzIGEgcmVzdWx0LCB0aGUgaW5zdXJlZCB3YXMgZm9yY2VkIHRvIHRlbXBvcmFyaWx5IA0Kc3VzcGVuZCBpdHMgcGhhcm1hY2V1dGljYWwgb3BlcmF0aW9ucywgY2F1c2luZyBhIHNpZ25pZmljYW50IA0KbG9zcyBvZiBidXNpbmVzcyBpbmNvbWUuIFRoZSBwcm9wZXJ0eSBkYW1hZ2Ugc2VjdGlvbiBvZiB0aGUgDQpwb2xpY3kgdW5hbWJpZ3VvdXNseSBleGNsdWRlZCBjb3ZlcmFnZSBmb3IgcGh5c2ljYWwgZGFtYWdlIHRvIA0KcHJvcGVydHkgY2F1c2VkIGJ5IGVpdGhlciBwb3dlciBmYWlsdXJlIG9yIGNvbXB1dGVyIGhhcmR3YXJlIA0KbWFsZnVuY3Rpb24uIElkLiBhdCA4MzYsIDgzOS4gVGhlIGNvdXJ0IGNvbmNsdWRlZCwgaG93ZXZlciwgdGhhdCANCnRoZSBsYW5ndWFnZSBpbiB0aGUgYnVzaW5lc3MgaW50ZXJydXB0aW9uIHNlY3Rpb24gb2YgdGhlIHBvbGljeSANCndhcyBhbWJpZ3VvdXMgYXMgdG8gd2hldGhlciBpdCBjb250ZW1wbGF0ZWQgY292ZXJhZ2UgZm9yIA0KdGhlIGluc3VyZWTigJlzIGxvc3QgcHJvZml0cyBjYXVzZWQgYnkgcG93ZXIgZmFpbHVyZSBhbmQgY29tcHV0ZXIgDQptYWxmdW5jdGlvbiBhbmQgY29uc3RydWVkIHRoYXQgYW1iaWd1aXR5IGluIGZhdm9yIG9mIGNvdmVyYWdlLiANCklkLiBhdCA4Mzk7IHNlZSBhbHNvIFdha2VmZXJuIEZvb2QsIDQwNiBOLkouIFN1cGVyLiBBdCA1NDAuIA0KVGhlIDIwMTcgQXRsYW50aWMgSHVycmljYW5lIFNlYXNvbjsgSW5zdXJhbmNlIENvdmVyYWdlIGZvciBIYXJ2ZXksIElybWEsIEpvc2UsIGFuZCBNYXJpYSDigKIgUGFnZSA5DQpJbiBhIGNhc2UgYXJpc2luZyBvdXQgb2YgSHVycmljYW5lIEthdHJpbmEsIHRoZSBjb3VydCBmb3VuZCB0aGF0IA0KdGhlIGluc3VyZWQgbWVkaWNhbCBwcmFjdGljZSBjb3VsZCByZWNvdmVyIHRoZSBsb3N0IGluY29tZSANCmF0dHJpYnV0YWJsZSB0byBpdHMgaG9zcGl0YWwgcHJhY3RpY2UsIGV2ZW4gdGhvdWdoIGl0cyBzZXJ2aWNlcyANCndlcmUgbm90IHByb3ZpZGVkIG9uIHRoZSBpbnN1cmVkIHByZW1pc2VzLiBJdGVsZCwgQmVybnN0ZWluICZhbXA7IA0KQXNzb2NzLiwgTExDIHYuIEhhbm92ZXIgSW5zLiBHcnAuLCAyMDA5IFUuUy4gRGlzdC4gTEVYSVMgNzE1MzksIGF0IA0KKjctMTAgKEUuRC4gTGEuIEF1Zy4gMTIsIDIwMDkpLg0KMy4gIENvdmVyYWdlIGZvciBMb3NzZXMgSW5jdXJyZWQgRHVyaW5nIHRoZSANCkludGVycnVwdGlvbiBvZiBPcGVyYXRpb25zDQpBcyBhIHJlc3VsdCBvZiB0aGUgaHVycmljYW5lcywgbWFueSBpbnN1cmVkcyBhcmUgbGlrZWx5IHRvIGhhdmUgDQpzdWZmZXJlZCBhbiBpbW1lZGlhdGUgY2Vzc2F0aW9uIG9mIGFsbCBidXNpbmVzcyBvcGVyYXRpb25zIA0KZm9sbG93ZWQgYnkgYSBwYXJ0aWFsIHJlc3VtcHRpb24gb2Ygb3BlcmF0aW9ucyBvbiBhIGxpbWl0ZWQgYmFzaXMgDQpiZWZvcmUgcmV0dXJuaW5nIHRvIG5vcm1hbCBvcGVyYXRpb25zLiBCdXNpbmVzcyBpbnRlcnJ1cHRpb24gDQpjb3ZlcmFnZSBvcmRpbmFyaWx5IGNvdmVycyBsb3NzZXMgaW5jdXJyZWQgZHVyaW5nIHRoZSB0aW1lIA0KcmVxdWlyZWQgdG8gcmVwYWlyLCByZXBsYWNlLCBvciByZXN0b3JlIGRhbWFnZWQgcHJvcGVydHkuIFVuZGVyIA0Kc29tZSBwb2xpY2llcywgY292ZXJhZ2UgbWF5IG5vdCBleHRlbmQgdG8gdGhlaXIgZnVsbCByZXBhaXIgDQpwZXJpb2QgaWYgdGhlIGluc3VyZWQgcmVzdW1lcyBwYXJ0aWFsIG9wZXJhdGlvbnMgYmVmb3JlIHRoZSANCmRhbWFnZWQgcHJvcGVydHkgaXMgZnVsbHkgcmVwYWlyZWQuIE9uIHRoZSBvdGhlciBoYW5kLCBjb3ZlcmFnZSANCm1heSBiZSBleHRlbmRlZCBiZXlvbmQgdGhlIHJlcGFpciBvciByZXBsYWNlIHBlcmlvZCB0byBpbmNsdWRlIA0KdGhlIGFkZGl0aW9uYWwgdGltZSB0aGF0IG1heSBiZSByZXF1aXJlZCB0byByZXR1cm4gdG8gbm9ybWFsIA0Kb3BlcmF0aW9ucy4gQ29tcGFyZSBPbWFoYSBQYXBlciBTdG9jayBDby4gdi4gSGFyYm9yIElucy4gDQpDby4sIDU5NiBGLjJkIDI4MywgMjg5ICg4dGggQ2lyLiAxOTc5KSAoZmluZGluZyBjb3ZlcmFnZSB1bmRlciANCuKAnHBhcnRpYWwgc3VzcGVuc2lvbiBvZiBidXNpbmVzc+KAnSBwcm92aXNpb24gd2hlbiBhIGZpcmUgcGFydGlhbGx5IA0KaW50ZXJydXB0ZWQgaW5zdXJlZOKAmXMgcHJvY2Vzc2luZyBwbGFudCksIGFuZCBBenRhciBDb3JwLiB2LiBVLlMuIA0KRmlyZSBJbnMuIENvLiwgMjI0IFAuM2QgOTYwLCA5NjggKEFyaXouIEN0LiBBcHAuIDIwMTApIChub3RpbmcgdGhhdCANCuKAnGludGVycnVwdGlvbuKAnSBkb2VzIG5vdCByZXF1aXJlIHRoYXQgYSBidXNpbmVzcyBiZSB1bmFibGUgdG8gDQpmdW5jdGlvbiwgYW5kIHRoYXQgZGVjcmVhc2VkIHBhdHJvbmFnZSBjb3VsZCBxdWFsaWZ5IGFzIGJ1c2luZXNzIA0KaW50ZXJydXB0aW9uKSwgd2l0aCBGb3Jlc3R2aWV3IFRoZSBCZWF1dGlmdWwsIEluYy4gdi4gQWxsIE5hdGlvbiANCklucy4gQ28uLCA3MDQgTi5XLjJkIDc3MyAoTWlubi4gQ3QuIEFwcC4gMjAwNSkgKGhvbGRpbmcgdGhhdCANCmxvc3Mgb2YgYnVzaW5lc3MgaW5jb21lIGR1ZSB0byBhIHBhcnRpYWwgc3VzcGVuc2lvbiBvZiBidXNpbmVzcyANCm9wZXJhdGlvbnMgYWZ0ZXIgYSBodXJyaWNhbmUgd2FzIG5vdCBjb3ZlcmVkIHVuZGVyIGEgYnVzaW5lc3MgDQppbnRlcnJ1cHRpb24gcG9saWN5IGVuZG9yc2VtZW50KS4NCkZvciBleGFtcGxlLCBpbiBMZXhpbmd0b24gSW5zdXJhbmNlIENvLiB2LiBJc2xhbmQgUmVjcmVhdGlvbmFsIA0KRGV2ZWxvcG1lbnQgQ29ycC4gNzA2IFMuVy4yZCA3NTQgKFRleC4gQXBwLiAxOTg2KSwgdGhlIGluc3VyZWQgDQpvd25lZCBhIHJlc3RhdXJhbnQgdGhhdCB3YXMgc2V2ZXJlbHkgZGFtYWdlZCBpbiBhIHN0b3JtLiBVcG9uIA0KcmVvcGVuaW5nLCBpdCB0b29rIHNpeCBtb250aHMgZm9yIHRoZSByZXN0YXVyYW50IHRvIHJldHVybiB0byB0aGUgDQpwcmUtc3Rvcm0gdm9sdW1lIG9mIGJ1c2luZXNzLiBUaGUgaW5zdXJlZCBzb3VnaHQgdG8gcmVjb3ZlciANCml0cyBsb3NzZXMgaW5jdXJyZWQgZHVyaW5nIHRoZSB0aW1lIGl0IHdhcyBjbG9zZWQgYW5kIGZvciB0aGUgDQpsb3NzZXMgaXQgaW5jdXJyZWQgaW4gcmV0dXJuaW5nIHRvIGl0cyBwcmlvciBidXNpbmVzcyB2b2x1bWUuIFRoZSANCmNvdXJ0IGJyb2FkbHkgaW50ZXJwcmV0ZWQgdGhlIHBvbGljeSB0byBwcm90ZWN0IHRoZSByZWFzb25hYmxlIA0KZXhwZWN0YXRpb25zIG9mIHRoZSBpbnN1cmVkLiBCZWNhdXNlIHRoZSBwb2xpY3kgZGlkIG5vdCBleHBsaWNpdGx5IA0KZXhjbHVkZSB0aGUgcGVyaW9kIG9mIHJlY292ZXJ5IGFmdGVyIHJlc3VtcHRpb24gb2Ygb3BlcmF0aW9uLCANCnRoZSBjb3VydCBoZWxkIHRoYXQgdGhlIGluc3VyZWQgd2FzIGVudGl0bGVkIHRvIHJlY292ZXIgZm9yIHRoZSANCmxvc3MgaXQgc3VmZmVyZWQgZHVyaW5nIGl0cyBjbG9zdXJlIGFuZCBhbHNvIGR1cmluZyB0aGUgbW9udGhzIA0KdGhhdCBmb2xsb3dlZCB1bnRpbCBpdHMgbG9zdCBidXNpbmVzcyB2b2x1bWUgd2FzIHJlY292ZXJlZC4gIA0KSWQuIGF0IDc1NS01Ni4gDQpJbiBBbWVyaWNhbiBNZWRpY2FsIEltYWdpbmcgQ29ycC4gdi4gU3QuIFBhdWwgRmlyZSAmYW1wOyBNYXJpbmUgDQpJbnN1cmFuY2UgQ28uLCA5NDkgRi4yZCA2OTAsIDY5Mi05MyAoM2QgQ2lyLiAxOTkxKSwsIGZpcmUgZGFtYWdlIA0KcmVuZGVyZWQgdGhlIGluc3VyZWTigJlzIHVsdHJhc291bmQgaGVhZHF1YXJ0ZXJzIHVudXNhYmxlLiANClRoZSBpbnN1cmVk4oCZcyBidXNpbmVzcyBpbnRlcnJ1cHRpb24gcG9saWN5IHByb3ZpZGVkIGNvdmVyYWdlIA0KZm9yIOKAnG5lY2Vzc2FyeSBvciBwb3RlbnRpYWwgc3VzcGVuc2lvbuKAnSBvZiBvcGVyYXRpb25zLiBJdCBhbHNvIA0KcmVxdWlyZWQgdGhlIGluc3VyZWQgdG8gcmVkdWNlIGl0cyBsb3NzIGlmIHBvc3NpYmxlIGJ5IOKAnHJlc3VtaW5nIA0Kb3BlcmF0aW9ucy7igJ0gVW5kZXIgdGhlIHBvbGljeSwgdGhlIGluc3VyZXIgd2FzIG9ibGlnYXRlZCB0byANCmluZGVtbmlmeSB0aGUgaW5zdXJlZCB1bnRpbCBpdCByZXR1cm5lZCB0byDigJxub3JtYWwgYnVzaW5lc3MgDQpvcGVyYXRpb25zLuKAnSBUaGUgaW5zdXJlZCByZW9wZW5lZCBhdCBhbiBhbHRlcm5hdGUgbG9jYXRpb24gDQpyYXRoZXIgdGhhbiBzdWZmZXIgdGhlIGV4dGVuc2l2ZSBsb3NzZXMgdGhhdCBhIGxlbmd0aHkgY29tcGxldGUgDQpjbG9zdXJlIG9mIGl0cyBidXNpbmVzcyB3b3VsZCBoYXZlIGNhdXNlZCBhbmQgaW4gY29tcGxpYW5jZSANCndpdGggdGhlIG1pdGlnYXRpb24gcmVxdWlyZW1lbnRzIG9mIHRoZSBwb2xpY3kuIEFzIGEgcmVzdWx0LCANCnRoZSBpbnN1cmVkIGluY3VycmVkIGV4dHJhIGV4cGVuc2VzIGFuZCBlYXJuZWQgbGVzcyB0aGFuIGl0IA0Kb3RoZXJ3aXNlIHdvdWxkIGhhdmUuIFRoZSBkaXN0cmljdCBjb3VydCBjb25jbHVkZWQgdGhhdCBvbmNlIA0KdGhlIGluc3VyZWQgaGFkIHJlb3BlbmVkIGZvciBidXNpbmVzcywgcmVjb3ZlcnkgZm9yIHRoZSBmdXJ0aGVyIA0KcGVyaW9kIG9mIG9wZXJhdGlvbiB3aXRoIHJlZHVjZWQgZWFybmluZ3Mgd2FzIHByZWNsdWRlZC4gDQpUaGUgVGhpcmQgQ2lyY3VpdCByZWplY3RlZCB0aGlzIGNvbmNsdXNpb24uIElkLiBUaGUgYXBwZWFsIGNvdXJ0IA0KcmVhc29uZWQgdGhhdCB0aGUgcGxhaW4gbGFuZ3VhZ2Ugb2YgdGhlIHBvbGljeSByZXF1aXJpbmcgdGhlIA0KaW5zdXJlciB0byBpbmRlbW5pZnkgdGhlIGluc3VyZWQgdW50aWwgaXQgcmV0dXJuZWQgdG8g4oCcbm9ybWFsIA0KYnVzaW5lc3Mgb3BlcmF0aW9uc+KAnSBuZWNlc3NhcmlseSBpbXBsaWVkIHRoYXQgdGhlIGluc3VyZXIgd2FzIA0Kb2JsaWdhdGVkIHRvIGluZGVtbmlmeSB0aGUgaW5zdXJlZCBmb3IgbG9zc2VzIGluY3VycmVkIHdoaWxlIA0KYnVzaW5lc3MgY29udGludWVkLCBhbGJlaXQgYXQgYSBsZXNzLXRoYW4tbm9ybWFsIGxldmVsLCBpbiBhbiBlZmZvcnQgDQp0byBtaW5pbWl6ZSBpdHMgbG9zc2VzLiBJZC4gYXQgNjkzLiBCYXJyaW5nIHJlY292ZXJ5IG9mIGFuIGluc3VyZWTigJlzIA0KbG9zcyBvZiBlYXJuaW5ncyBhbmQgZXh0cmEgZXhwZW5zZXMgcmVzdWx0aW5nIGZyb20gaXRzIGVmZm9ydHMgdG8gDQptaW5pbWl6ZSBpdHMgbG9zc2VzIHdvdWxkIGVsaW1pbmF0ZSB0aGUgaW5zdXJlZOKAmXMgbW90aXZhdGlvbiB0byANCm1pdGlnYXRlLiBPcnJpbGwsIENvcmRlbGwsICZhbXA7IEJlYXJ5LCBMLkwuQy4gdi4gQ05BIElucy4gQ28uLCAyMDA5IFUuUy4gDQpEaXN0LiBMRVhJUyAyMDg2NywgYXQgKjcgOCAoRS5ELiBMYS4gTWFyLiAxNiwgMjAwOSkgKHB1YmxpYyBwb2xpY3kgDQphbmQgcHVycG9zZSBvZiBpbnN1cmluZyBidXNpbmVzcyBpbmNvbWUgbG9zc2VzIGFyZSBiZXN0IHNlcnZlZCANCmluIHByb3ZpZGluZyBjb3ZlcmFnZSB3aGVyZSBpbnN1cmVkIG1pdGlnYXRlZCBkYW1hZ2VzKS4NCkIuIENvbnRpbmdlbnQgQnVzaW5lc3MgSW50ZXJydXB0aW9uDQpNYW55IGJ1c2luZXNzZXMgaGF2ZSBzdWZmZXJlZCBsb3NzZXMgYmVjYXVzZSB0aGUgb3BlcmF0aW9ucyBvZiANCnRoZWlyIHN1cHBsaWVycyBvciBjdXN0b21lcnMgd2VyZSBkaXNydXB0ZWQgYnkgdGhlIGh1cnJpY2FuZXMuIA0KRm9yIGV4YW1wbGUsIHJlLXRyYW5zbWl0dGVycyBvZiB0aGUgc2lnbmFscyBvZiB0ZWxldmlzaW9uIG5ldHdvcmtzIA0KKGUuZy4sIGNhYmxlIGFuZCBzYXRlbGxpdGUgZGlzaCBjb21wYW5pZXMpIGNvdWxkIG5vdCB0cmFuc21pdCANCnByb2dyYW1taW5nIHRvIHRoZSBwdXJjaGFzaW5nIGNvbnN1bWVyIGR1ZSB0byBzdG9ybSBkYW1hZ2UgDQp0byB0aGVpciB0b3dlcnMsIHRodXMgcmVzdWx0aW5nIGluIGRvd253YXJkIGZlZSBhZGp1c3RtZW50cyANCmZvciB0aGUgbmV0d29ya3MuIEFsc28sIGZvbGxvd2luZyBIYXJ2ZXksIGluc3VyZWRzIGFjcm9zcyB0aGUgDQpjb3VudHJ5IHRoYXQgcmVsaWVkIG9uIGNyYWNrZWQgY2hlbWljYWxzIGZyb20gdGhlaXIgc3VwcGxpZXJzIA0KdGhhdCBvcGVyYXRlZCBpbiBUZXhhcyBtYXkgaGF2ZSBzdWZmZXJlZCBzaWduaWZpY2FudCBjb250aW5nZW50IA0KYnVzaW5lc3MgaW50ZXJydXB0aW9uIGxvc3NlcyBhcmlzaW5nIGZyb20gdGhlIHN1cHBsaWVyc+KAmSBpbmFiaWxpdHkgDQp0byBwcm92aWRlIHRoZWlyIGdvb2RzIGF0IHRoZSBzYW1lIGxldmVsIGFzIHRoZXkgZGlkIHByaW9yIHRvIA0KdGhlIHN0b3JtLiBUaGVzZSBsb3N0IHJldmVudWVzIHRvIHRoZSBpbnN1cmVkcyBhcmUgaW50ZXJydXB0aW9uIA0KbG9zc2VzIHJlc3VsdGluZyBmcm9tIHRoZSBwcm9wZXJ0eSBkYW1hZ2Ugc3VzdGFpbmVkIGJ5IGl0cyANCmN1c3RvbWVycyBvciBzdXBwbGllcnMuDQpUaGUgMjAxNyBBdGxhbnRpYyBIdXJyaWNhbmUgU2Vhc29uOyBJbnN1cmFuY2UgQ292ZXJhZ2UgZm9yIEhhcnZleSwgSXJtYSwgSm9zZSwgYW5kIE1hcmlhIOKAoiBQYWdlIDEwDQrigJxDb250aW5nZW50IEJ1c2luZXNzIEludGVycnVwdGlvbuKAnSBjb3ZlcmFnZSB0eXBpY2FsbHkgY292ZXJzIHR3byANCnR5cGVzIG9mIGJ1c2luZXNzIGludGVycnVwdGlvbi4gRmlyc3QsIGl0IHByb3RlY3RzIGFnYWluc3QgZWNvbm9taWMgDQpsb3NzZXMgY2F1c2VkIGJ5IGEg4oCcZGlyZWN04oCdIHN1cHBsaWVy4oCZcyBpbmFiaWxpdHkgdG8gZ2V0IGl0cyBnb29kcyANCnRvIHRoZSBpbnN1cmVkIGR1ZSB0byBkYW1hZ2UgdG8gb3IgZGVzdHJ1Y3Rpb24gb2YgdGhlIHN1cHBsaWVy4oCZcyANCnByb3BlcnR5IGJ5IGFuIGluc3VyZWQgcGVyaWwuIFNlZSBQYXJrIEVsZWN0cm9jaGVtaWNhbCBDb3JwLiB2LiANCkNvbnTigJlsIENhcy4gQ28uIDIwMTEgVS5TLiBEaXN0LiBMRVhJUyAxNjM0NCwgKjExLTEyIChFLkQuTi5ZLiBGZWIuIA0KMTgsIDIwMTEpLiBTZWNvbmQsIGl0IHByb3RlY3RzIGFnYWluc3QgZWNvbm9taWMgbG9zc2VzIGNhdXNlZCANCmJ5IGRhbWFnZSB0byBvciBkZXN0cnVjdGlvbiBvZiBhIGN1c3RvbWVy4oCZcyBwcm9wZXJ0eSB0aGF0IA0KcHJldmVudHMgdGhlIGN1c3RvbWVyIGZyb20gYWNjZXB0aW5nIHRoZSBpbnN1cmVk4oCZcyBwcm9kdWN0cy4gDQpTZWUgQ2hpbGRyZW7igJlzIFBsYWNlIFJldGFpbCBTdG9yZXMsIEluYy4gdi4gRmVkLiBJbnMuIENvLiwgODI5IE4uWS5TLjJkIA0KNTAwIChBcHAuIERpdi4gMjAwNykgKGJ1c2luZXNzIGludGVycnVwdGlvbiBjb3ZlcmFnZSBmb3IgdGhlIA0KcGVyaW9kIG9mIHRpbWUgcmVhc29uYWJseSB0YWtlbiB0byByZXN1bWUgb3BlcmF0aW9ucyBhdCBhIA0KZGlmZmVyZW50IGxvY2F0aW9uIGZvbGxvd2luZyB0aGUgOS8xMSBhdHRhY2tzKS4NCkluIEFyY2hlci1EYW5pZWxzLU1pZGxhbmQgQ28uIHYuIFBob2VuaXggQXNzdXJhbmNlIENvLiBvZiBOZXcgDQpZb3JrLCBmb3IgZXhhbXBsZSwgYXMgYSByZXN1bHQgb2YgYSBmbG9vZCwgdGhlIGluc3VyZWQgc3VmZmVyZWQgDQphcHByb3hpbWF0ZWx5ICQ1NSBtaWxsaW9uIGluIGxvc3NlcyBjb25zaXN0aW5nIG9mIGluY3JlYXNlZCBjb3N0cyANCm9mIHRyYW5zcG9ydGF0aW9uIGFuZCByYXcgbWF0ZXJpYWxzLCBldmVuIHRob3VnaCB0aGUgaW5zdXJlZCBkaWQgDQpub3Qgb3duIHRoZSBkYW1hZ2VkIHByb3BlcnR5LiA5MzYgRi4gU3VwcC4gNTM0IChTLkQuIElsbC4gMTk5NiksIA0KYWZm4oCZZCBzdWIgbm9tLiBBcmNoZXItRGFuaWVscy1NaWRsYW5kIENvLiB2LiBBb24gUmlzayBTZXJ2cy4sIA0KSW5jLiBvZiBNaW5uLiwgMzU2IEYuM2QgODUwLCA4NTQtNTcgKDh0aCBDaXIuIDIwMDQpLiBUaGUgcG9saWN5IA0KaW5jbHVkZWQgYSBjb3ZlcmFnZSBncmFudCBmb3IgbG9zcyBzdXN0YWluZWQgYnkgdGhlIGluc3VyZWQgYXMgDQphIHJlc3VsdCBvZiBkaXJlY3QgcGh5c2ljYWwgZGFtYWdlIGNhdXNlZCBieSB0aGUgcGVyaWxzIGluc3VyZWQgDQphZ2FpbnN0LiBJZC4gYXQgNTM3LiBUaGUgaW5zdXJlcnMgZGVuaWVkIGNvdmVyYWdlIGJlY2F1c2UgdGhlIA0KZGFtYWdlZCBwcm9wZXJ0eSB3YXMgb3duZWQgYnkgc3VwcGxpZXJzLiBJZC4gVGhlIGluc3VyZWQgDQphcmd1ZWQgdGhhdCB0aGUgcG9saWN5IGxhbmd1YWdlIHJlcXVpcmVkIG9ubHk6ICgxKSB0aGF0IHRoZXJlIGJlIA0KZGlyZWN0IHBoeXNpY2FsIGRhbWFnZSB0byDigJxwcm9wZXJ0eSzigJ0gYW5kICgyKSB0aGF0IHRoZSBkYW1hZ2UgDQpiZSBjYXVzZWQgYnkgYSBjb3ZlcmVkIHBlcmlsLiBUaGUgY291cnQgZm91bmQgdGhhdCBib3RoIG9mIHRob3NlIA0KY29uZGl0aW9ucyB3ZXJlIG1ldCBhbmQgaGVsZCB0aGF0IHRoZSBsYW5ndWFnZSBvZiB0aGUgaW5zdXJpbmcgDQphZ3JlZW1lbnQgZGlkIG5vdCByZXF1aXJlIHRoZSBkYW1hZ2VkIHByb3BlcnR5IHRvIGJlIGluc3VyZWQgDQp1bmRlciB0aGUgcG9saWN5LiBUaGVyZWZvcmUsIHRoZSBpbnN1cmVkIHdhcyBlbnRpdGxlZCB0byBjb3ZlcmFnZSANCmZvciBpdHMgaW5jdXJyZWQgbG9zc2VzLiBJZC4gYXQgNTQwLiANCkMuIENpdmlsIEF1dGhvcml0eQ0KTWFueSBidXNpbmVzc2VzIHNodXQgZG93biBiZWZvcmUgdGhlIHN0b3JtIG1hZGUgbGFuZGZhbGwgDQpiZWNhdXNlIHRoZXkgd2VyZSBsb2NhdGVkIGluIGFyZWFzIHN1YmplY3QgdG8gZXZhY3VhdGlvbiBvcmRlcnMuIA0KT3RoZXJzIG1heSBiZSBsb2NhdGVkIGluIGFyZWFzIHRvIHdoaWNoIGFjY2VzcyBoYXMgYmVlbiBkZW5pZWQgDQpieSBzaW1pbGFyIG9yZGVycyBhZnRlciB0aGUgc3Rvcm0uIOKAnENpdmlsIEF1dGhvcml0eeKAnSBjb3ZlcmFnZSANCm1heSBwcm92aWRlIGNvdmVyYWdlIGZvciBzdWNoIGluc3VyZWRzIHdobyBzdXN0YWluZWQgYnVzaW5lc3MgDQpsb3NzZXMgaW4gdGhlIHdha2Ugb2YgdGhlIGh1cnJpY2FuZXMgVGhpcyBjb3ZlcmFnZSBmcmVxdWVudGx5IA0KYXBwbGllcyB3aGVuIGFuIGluc3VyZWQgbG9zZXMgYnVzaW5lc3MgaW5jb21lIGJlY2F1c2UgYWNjZXNzIA0KdG8gaXRzIHByZW1pc2VzIGlzIHByb2hpYml0ZWQgYnkgYW4gYWN0IG9mIHRoZSBnb3Zlcm5tZW50LiBJbiANCnByZXBhcmF0aW9uIGZvciBJcm1hLCBtYW55IGFyZWFzIHdlcmUgc3ViamVjdCB0byBtYW5kYXRvcnkgDQpldmFjdWF0aW9uIG9yZGVycyBmcm9tIHN0YXRlIGFuZCBsb2NhbCBnb3Zlcm5tZW50cy4gRm9sbG93aW5nIA0KdGhlIGRldmFzdGF0aW9uLCBhY2Nlc3MgdG8gbWFueSBhcmVhcyByZW1haW5lZCByZXN0cmljdGVkIA0KYmVjYXVzZSBvZiB0aGUgZGFuZ2VycyBwb3NlZCBieSBoaWdoIHdhdGVycyBhbmQgZGFtYWdlIA0KdG8gdHJlZXMsIHN0cnVjdHVyZXMsIGFuZCBsb3N0IHV0aWxpdGllcy4gVGhlIGF2YWlsYWJpbGl0eSBvZiBDaXZpbCANCkF1dGhvcml0eSBjb3ZlcmFnZSB3aWxsIGRlcGVuZCB1cG9uIHRoZSBwYXJ0aWN1bGFyIGxhbmd1YWdlIA0KdXNlZCBpbiB0aGUgcG9saWN5IGF0IGlzc3VlLCBhcyB3ZWxsIGFzIHRoZSB0aW1pbmcgb2YgdGhlIGlzc3VhbmNlIA0Kb2YgdGhlIG9yZGVyIGluIHJlbGF0aW9uc2hpcCB0byB0aGUgdGltaW5nIG9mIGFjdHVhbCBkYW1hZ2VzLiANCkluIE5hcnJpY290IEluZHVzdHJpZXMsIEluYy4gdi4gRmlyZW1hbuKAmXMgRnVuZCBJbnN1cmFuY2UgQ28uLCAyMDAyIA0KVS5TLiBEaXN0LiBMRVhJUyAxOTA3NCAoRS5ELiBQYS4gU2VwdC4gMzAsIDIwMDIpLCBmb3IgZXhhbXBsZSwgdGhlIA0KaW5zdXJlZCB3YXMgZm9yY2VkIHRvIHN1c3BlbmQgb3BlcmF0aW9ucyBhdCBpdHMgcGxhbnQgZHVlIHRvIHRoZSANCm1heW9y4oCZcyBkZWNsYXJhdGlvbiBvZiBhIHN0YXRlIG9mIGVtZXJnZW5jeSBmb2xsb3dpbmcgSHVycmljYW5lIA0KRmxveWQuIFRoZSBpbnN1cmVyIGRlbmllZCB0aGUgaW5zdXJlZOKAmXMgY2xhaW0sIGFsbGVnaW5nIHRoYXQgdGhlIA0KbG9zc2VzIHdlcmUgbm90IGNvdmVyZWQgYmVjYXVzZSB0aGUgY2l2aWwgYXV0aG9yaXR5IG9yZGVycyB3ZXJlIA0KcHJldmVudGF0aXZlIGluIG5hdHVyZS4gVGhlIGNvdXJ0IHJlamVjdGVkIHRoaXMgY29udGVudGlvbiBhbmQgDQpoZWxkIGluIGZhdm9yIG9mIHRoZSBpbnN1cmVkLiBUaGUgY291cnQgZm91bmQgY292ZXJhZ2UgYmVjYXVzZSANCnRoZSBzdGF0ZSBvZiBlbWVyZ2VuY3kgd2FzIGlzc3VlZCBhcyBhIHJlc3VsdCBvZiB0aGUgcHJvcGVydHkgDQpkYW1hZ2UgYWxyZWFkeSBjYXVzZWQgYnkgSHVycmljYW5lIEZsb3lkLCBpbmNsdWRpbmcgZGFtYWdlIHRvIA0KZWxlY3RyaWNhbCBsaW5lcywgYSB3YXRlciB0cmVhdG1lbnQgcGxhbnQsIGFuZCBhIHJhdyB3YXRlciBwdW1wIA0Kc3RhdGlvbi4gSWQuIGF0ICoxMTsgYnV0IHNlZSBTLiBUZXguIE1lZC4gQ2xpbmljcywgUC5BLiB2LiBDTkEgRmluLiANCkNvcnAuLCBVLlMuIERpc3QuIExFWElTIDExNDYwLCBhdCAqMzQgKFMuRC4gVGV4LiBGZWIuIDE1LCAyMDA4KSANCihubyBDaXZpbCBBdXRob3JpdHkgY292ZXJhZ2Ugd2hlbiBldmFjdWF0aW9uIG9yZGVyIHdhcyBkdWUgdG8gDQphbnRpY2lwYXRlZCB0aHJlYXQgb2YgZGFtYWdlKS4gDQpJbiBBQk0gMzk3IEYuM2QgYXQgMTcxLCB0aGUgZGlzdHJpY3QgY291cnQgZGVuaWVkIENpdmlsIEF1dGhvcml0eSANCmNvdmVyYWdlIGJlY2F1c2UgdGhlIGluc3VyZWTigJlzIGJ1c2luZXNzIGluY29tZSBsb3NzZXMgd2VyZSANCmNhdXNlZCBieSB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhlIFdUQywgbm90IGJ5IG9yZGVycyBvZiBjaXZpbCANCmF1dGhvcml0aWVzLCBhbmQgdGhhdCB0aG9zZSBsb3NzZXMgd291bGQgaGF2ZSBiZWVuIGluY3VycmVkIGV2ZW4gDQppZiBjaXZpbCBhdXRob3JpdGllcyBoYWQgbm90IHByb2hpYml0ZWQgYWNjZXNzIHRvIHRoYXQgbG9jYXRpb24uIA0KVGhlIFNlY29uZCBDaXJjdWl0IENvdXJ0IG9mIEFwcGVhbHMgZGlzYWdyZWVkIGJlY2F1c2UgdGhlIGxvc3MgDQpvZiBpbmNvbWUgdGhhdCB0aGUgaW5zdXJlZCBzb3VnaHQgdW5kZXIgdGhlIENpdmlsIEF1dGhvcml0eSANCnByb3Zpc2lvbiB3YXMgZnJvbSBpdHMgaW50ZXJydXB0aW9uIG9mIGJ1c2luZXNzIGF0IGl0cyAzNCBub24tV1RDIA0KbG9jYXRpb25zLiBUaGUgY291cnQgZm91bmQgdGhhdCB0aGUgZGVzdHJ1Y3Rpb24sIHVuYWNjb21wYW5pZWQgDQpieSBjaXZpbCBvcmRlcnMsIHdvdWxkIG5vdCBoYXZlIHJlc3VsdGVkIGluIHRoZSBsb3NzIG9mIGluY29tZSANCmZvciB3aGljaCB0aGUgaW5zdXJlZCBzb3VnaHQgcmVpbWJ1cnNlbWVudCB1bmRlciB0aGUgQ2l2aWwgDQpBdXRob3JpdHkgcHJvdmlzaW9uLiBTZWUgaWQuIFRoZSBjb3VydCByZXZlcnNlZCB0aGUgZGlzdHJpY3QgY291cnTigJlzIA0KZGVuaWFsIG9mIENpdmlsIEF1dGhvcml0eSBjb3ZlcmFnZSBhbmQgcmVtYW5kZWQgdGhlIGlzc3VlIHRvIA0KZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNpdmlsIG9yZGVycyBhY3R1YWxseSBpbXBhaXJlZCBhY2Nlc3MgdG8gDQp0aGUgcHJvcGVydGllcyB0aGF0IHRoZSBpbnN1cmVkIHNlcnZpY2VkLiBTZWUgaWQuDQpJbiBBc3N1cmFuY2UgQ28uIG9mIEFtZXJpY2Egdi4gQkJCIFNlcnZpY2UgQ28uLCAyNjUgR2EuIEFwcC4gDQozNSAoMjAwMyksIHRoZSBpbnN1cmVkLCBhbiBvd25lciBvZiBzZXZlcmFsIGZhc3QgZm9vZCBjaGFpbiANCnJlc3RhdXJhbnRzLCB3YXMgZm9yY2VkIHRvIGNsb3NlIGl0cyBzdG9yZXMgZm9yIHR3byBhbmQgYSBoYWxmIA0KZGF5cyBkdWUgdG8gYSBtYW5kYXRvcnkgZXZhY3VhdGlvbiBvZiB0aGUgY29tbXVuaXR5IGR1cmluZyANCkh1cnJpY2FuZSBGbG95ZC4gVGhlIGluc3VyZXIgZGVuaWVkIHRoZSBpbnN1cmVk4oCZcyBidXNpbmVzcyANCmludGVycnVwdGlvbiBjbGFpbSwgYXJndWluZyB0aGF0IHRoZSBjaXZpbCBhdXRob3JpdHkgb3JkZXIgDQpwcm9oaWJpdGluZyBhY2Nlc3MgdG8gdGhlIGluc3VyZWTigJlzIHJlc3RhdXJhbnRzIHdhcyBiYXNlZCBvbiB0aGUgDQp0aHJlYXQgb2YgZGlyZWN0IHBoeXNpY2FsIHByb3BlcnR5IGRhbWFnZSByYXRoZXIgdGhhbiBhY3R1YWwgDQpkYW1hZ2UgY2F1c2VkIGJ5IHRoZSBodXJyaWNhbmUuIElkLiBhdCAzNS4gVGhlIGNvdXJ0IHJlamVjdGVkIA0KdGhlIGluc3VyZXLigJlzIGFyZ3VtZW50IGFuZCBhZmZpcm1lZCB0aGUgbG93ZXIgY291cnTigJlzIGdyYW50IG9mIA0KY292ZXJhZ2UgZm9yIGl0cyBsb3N0IHByb2ZpdHMuIElkLiBhdCAzNy4NClRoZSBGaWZ0aCBDaXJjdWl0IGhhcyB0YWtlbiBhIGxpbWl0ZWQgdmlldyBvZiBDaXZpbCBBdXRob3JpdHkgDQpjb3ZlcmFnZSBpbiBhdCBsZWFzdCBvbmUgY2FzZSwgaG9sZGluZyB0aGF0IGNvdmVyYWdlIHdhcyANCm5vdCBhdmFpbGFibGUgYmVjYXVzZSB0aGUgaW5zdXJlZCBjb3VsZCBub3QgZGVtb25zdHJhdGUgYSANCmNvbm5lY3Rpb24gYmV0d2VlbiBwcm9wZXJ0eSBkYW1hZ2UgaW4gdGhlIENhcmliYmVhbiBhbmQgYSANClRoZSAyMDE3IEF0bGFudGljIEh1cnJpY2FuZSBTZWFzb247IEluc3VyYW5jZSBDb3ZlcmFnZSBmb3IgSGFydmV5LCBJcm1hLCBKb3NlLCBhbmQgTWFyaWEg4oCiIFBhZ2UgMTENCm1heW9yYWwgb3JkZXIgdG8gZXZhY3VhdGUgTmV3IE9ybGVhbnMgaW4gYWR2YW5jZSBvZiBIdXJyaWNhbmUgDQpHdXN0YXYuIFNlZSBEaWNraWUgQnJlbm5hbiAmYW1wOyBDby4gdi4gTGV4aW5ndG9uIElucy4gQ28uLCA2MzYgRi4zZCANCjY4MyAoNXRoIENpci4gMjAxMSkuDQpUd28gY2FzZXMgc3RlbW1pbmcgZnJvbSB0aGUgY2xvc3VyZSBvZiBSZWFnYW4gTmF0aW9uYWwgQWlycG9ydCANCmR1cmluZyB0aGUgOS8xMSBhdHRhY2tzIGRlbW9uc3RyYXRlIHRoYXQgc21hbGwgZGlmZmVyZW5jZXMgaW4gDQpwb2xpY3kgbGFuZ3VhZ2UgY2FuIGxlYWQgdG8gdmVyeSBkaWZmZXJlbnQgcmVzdWx0cy4gVGhlIEZlZGVyYWwgDQpBdmlhdGlvbiBBZG1pbmlzdHJhdGlvbiAo4oCcRkFB4oCdKSBvcmRlcmVkIFJlYWdhbiBBaXJwb3J0IGNsb3NlZCANCmFmdGVyIHRoZSBXVEMgd2FzIGF0dGFja2VkLCBidXQgYmVmb3JlIHRoZSBQZW50YWdvbiB3YXMgDQphdHRhY2tlZC4gVWx0aW1hdGVseSwgbm8gcHJvcGVydHkgd2FzIGRhbWFnZWQgYXQgdGhlIGFpcnBvcnQuIEl0IA0KcmVtYWluZWQgY2xvc2VkIHVudGlsIE9jdG9iZXIgNC4gDQpCb3RoIFVTIEFpcndheXMgYW5kIFVuaXRlZCBBaXIgTGluZXMgc291Z2h0IGJ1c2luZXNzIA0KaW50ZXJydXB0aW9uIGNvdmVyYWdlLiBBIFZpcmdpbmlhIGNvdXJ0IHJ1bGVkIHRoYXQgVVMgQWlyd2F5c+KAmSANCmxvc3NlcyB3ZXJlIGNvdmVyZWQgKFVTIEFpcndheXMsIEluYy4gdi4gQ29tbW9ud2VhbHRoIElucy4gQ28uLCANCjY1IFZhLiBDaXIuIDIzOCAoVmEuIENpci4gQ3QuIDIwMDQpKSwgYnV0IHRoZSBTZWNvbmQgQ2lyY3VpdCBoZWxkIA0KdGhhdCBVbml0ZWTigJlzIGxvc3NlcyB3ZXJlIG5vdC4gKFVuaXRlZCBBaXIgTGluZXMsIEluYy4gdi4gSW5zLiBDby4gb2YgDQpQYS4sIDQzOSBGLjNkIDEyOCAoMmQgQ2lyLiAyMDA2KS4pIFRoZSBkaWZmZXJpbmcgcmVzdWx0IGFwcGVhcnMgdG8gDQpsaWUgaW4gbnVhbmNlZCBwb2xpY3kgZGlzdGluY3Rpb25zLiANClVTIEFpcndheXPigJkgYnVzaW5lc3MgaW50ZXJydXB0aW9uIGNsYXVzZSBwcm92aWRlZCBjb3ZlcmFnZSB0byANCnRoZSBleHRlbnQgYWNjZXNzIHRvIGluc3VyZWQgcHJvcGVydHkgd2FzIHByb2hpYml0ZWQgYnkgb3JkZXIgDQpvZiBjaXZpbCBhdXRob3JpdHkg4oCc4oCYYXMgYSBkaXJlY3QgcmVzdWx0IG9mIGEgcGVyaWwgaW5zdXJlZCBhZ2FpbnN0LuKAmeKAnSANClVTIEFpcndheXMsIDY1IFZhLiBDaXIuIGF0IDI0MC4gVGhlIFZpcmdpbmlhIHN0YXRlIGNvdXJ0IGNvbmNsdWRlZCANCnRoYXQgdGhpcyBjaXZpbCBhdXRob3JpdHkgY2xhdXNlIOKAnGRvZXMgbm90IHJlcXVpcmUgYWN0dWFsIGRhbWFnZSANCm9yIGxvc3Mgb2YgcHJvcGVydHkgdG8gaW52b2tlIGNvdmVyYWdlLOKAnSBidXQgb25seSB0aGUgcmlzayBvZiBhY3R1YWwgDQpkYW1hZ2UuIElkLiBhdCAyNDQuIFVTIEFpcndheXMgd2FzIGVudGl0bGVkIHRvIGNvdmVyYWdlIGZvciBpdHMgDQpidXNpbmVzcyBpbnRlcnJ1cHRpb24gbG9zc2VzIGJlY2F1c2UgdGhlIG9yZGVyIHRvIGNsb3NlIFJlYWdhbiANCkFpcnBvcnQgd2FzIGlzc3VlZCBkdWUgdG8gdGhlIHJpc2sgb2YgYW4gaW1taW5lbnQgYXR0YWNrLCBhbmQgDQpiZWNhdXNlIFVTIEFpcndheXMgcHJvcGVydHkgd2FzIGxvY2F0ZWQgdGhlcmUuIElkLiBhdCAyNDUuDQpJbiBjb250cmFzdCwgVW5pdGVk4oCZcyBwb2xpY3kgcHJvdmlkZWQgY292ZXJhZ2UgaWYgYWNjZXNzIHRvIGluc3VyZWQgDQpwcm9wZXJ0eSB3YXMgcHJvaGliaXRlZCBieSBvcmRlciBvZiBjaXZpbCBhdXRob3JpdHkgYXMgYSBkaXJlY3QgDQpyZXN1bHQgb2Yg4oCc4oCYZGFtYWdlIHRvIGFkamFjZW50IHByZW1pc2VzLuKAmeKAnSBVbml0ZWQsIDQzOSBGLjNkIGF0IA0KMTI5LiBUaGUgZGlzdHJpY3QgY291cnQgaGVsZCB0aGF0IHRoZSBQZW50YWdvbiBpcyBub3Qg4oCcYWRqYWNlbnTigJ0gDQp0byBSZWFnYW4gQWlycG9ydCwgcmVhc29uaW5nIHRoYXQgdGhlIHR3byBmYWNpbGl0aWVzIGFyZSB0aHJlZSANCm1pbGVzIGFwYXJ0IGFuZCBzZXBhcmF0ZWQgYnkgcm9hZHMgYW5kIGJ1aWxkaW5ncy4gSWQuIGF0IDEzNC4gDQpNb3Jlb3ZlciwgdGhlIFNlY29uZCBDaXJjdWl0IGhlbGQgdGhhdCBldmVuIGlmIHRoZSBQZW50YWdvbiANCndlcmUg4oCcYWRqYWNlbnTigJ0gdG8gdGhlIGFpcnBvcnQsIFVuaXRlZCBzdGlsbCB3b3VsZCBoYXZlIGhhZCBubyANCmNvdmVyYWdlIGJlY2F1c2UgdGhlIEZBQSBjbG9zdXJlIG9yZGVyIHdhcyBpc3N1ZWQgYmVmb3JlIHRoZSANClBlbnRhZ29uIHN1ZmZlcmVkIGFjdHVhbCBkYW1hZ2UuIElkLiBhdCAxMzQtMzUuDQpOZXcgWW9yayBjb3VydHMgaGF2ZSBzdHJpY3RseSBjb25zdHJ1ZWQgdGhlIHJlcXVpcmVtZW50IHRoYXQgDQphY2Nlc3MgdG8gdGhlIHByZW1pc2VzIGJlIHByb2hpYml0ZWQsIGZpbmRpbmcgdGhhdCBDaXZpbCBBdXRob3JpdHkgDQpjb3ZlcmFnZSBvbmx5IGFwcGxpZXMgd2hlbiBhbGwgYWNjZXNzIHRvIHRoZSBpbnN1cmVk4oCZcyBwcm9wZXJ0eSANCmlzIHByb2hpYml0ZWQuIE9uZSBjb3VydCBmb3VuZCBubyBjb3ZlcmFnZSB3aGVuIGxpbWl0ZWQgYWNjZXNzIA0KdG8gYW4gaW5zdXJlZOKAmXMgcHJlbWlzZXMgZXhpc3RlZCBldmVuIHRob3VnaCBzdWNoIGFjY2VzcyB3YXMgDQpyZXN0cmljdGVkIHRvIGxldmVscyBiZWxvdyBub3JtYWwgYmVjYXVzZSBvZiB0aGUgYWN0cyBvZiBjaXZpbCANCmF1dGhvcml0eS4gU2VlIDU0dGggU3QuIEx0ZC4gUGFydG5lcnMsIEwuUC4gdi4gRmlkLiAmYW1wOyBHdWFyLiBJbnMuIA0KQ28uLCA3NjMgTi5ZLlMuMmQgMjQzIChBcHAuIERpdi4gMjAwMykuIFNpbWlsYXJseSwgZm9sbG93aW5nIHRoZSANCmF0dGFja3Mgb2YgOS8xMSwgb25lIE5ldyBZb3JrIGNvdXJ0IGZvdW5kIHRoYXQgQ2l2aWwgQXV0aG9yaXR5IA0KY292ZXJhZ2Ugb25seSBhcHBsaWVkIHRvIHRoZSBwZXJpb2Qgb2YgdGltZSB3aGVuIGFjY2VzcyB0byBhbGwgb2YgDQpsb3dlciBNYW5oYXR0YW4gd2FzIHJlc3RyaWN0ZWQsIGFuZCBkaWQgbm90IGFwcGx5IHRvIHRoZSB0aW1lIA0KcGVyaW9kIHdoZW4gcG9saWNlIHByZXNlbmNlIGFuZCByb2FkYmxvY2tzIG1heSBoYXZlIGNhdXNlZCANCmNvbmZ1c2lvbiBhYm91dCB0aGUgYWJpbGl0eSB0byBhY2Nlc3MgdGhlIGluc3VyZWTigJlzIHByZW1pc2VzLiBTZWUgDQpBYm5lciwgSGVycm1hbiAmYW1wOyBCcm9jaywgSW5jLiB2LiBHcmVhdCBOLiBJbnMuIENvLiwgMzA4IEYuIFN1cHAuIDJkIA0KMzMxIChTLkQuTi5ZLiAyMDA0KS4gQSBzbG93ZG93biBpbiBidXNpbmVzcyBtYXkgbm90IHRyaWdnZXIgdGhlIA0KY292ZXJhZ2UgYmVjYXVzZSBhIHBvbGljeSBvbmx5IHJlc3BvbmRzIHdoZW4g4oCcYSBjaXZpbCBhdXRob3JpdHkgDQpwcm9oaWJpdHMgYWNjZXNzIHRvIHRoZSBpbnN1cmVk4oCZcyBwcmVtaXNlcyByZXN1bHRpbmcgaW4gYSB0b3RhbCBsb3NzIA0Kb2YgYnVzaW5lc3MgaW5jb21lLuKAnSBOLlkuIENhcmVlciBJbnN0LiB2LiBIYW5vdmVyIElucy4gQ28uLCA3OTEgDQpOLlkuUy4yZCAzMzgsIDM0MiAoU3VwLiBDdC4gMjAwNSkuIA0KQ2l2aWwgQXV0aG9yaXR5IGNvdmVyYWdlIHVzdWFsbHkgaXMgbGltaXRlZCB0byBhIHNwZWNpZmllZCBwZXJpb2Qgb2YgDQp0aW1lLCB3aGljaCBvZnRlbiBpcyBhcyBzaG9ydCBhcyB0d28gd2Vla3Mgb3IgMzAgZGF5cy4gQXVkdWJvbiANCkludGVybmFsIE1lZC4gR3JwLiwgSW5jLiB2LiBadXJpY2ggQW0uIElucy4gQ28uLCAyMDA4IFUuUy4gRGlzdC4gDQpMRVhJUyA1MjU4MyAoRS5ELiBMYS4gSnVseSAxMCwgMjAwOCkgKDIxLWRheSBjaXZpbCBhdXRob3JpdHkgDQpjb3ZlcmFnZSBkaWQgbm90IHJ1biBjb25jdXJyZW50bHksIGJ1dCByYXRoZXIgd2FzIGluIGFkZGl0aW9uIA0KdG8gMzAtZGF5IGNvdmVyYWdlIGZvciBidXNpbmVzcyBpbmNvbWUgZnJvbSBkZXBlbmRlbnQgDQpwcm9wZXJ0aWVzKS4gDQpELiBJbmdyZXNzIG9yIEVncmVzcw0KU2ltaWxhciB0byBDaXZpbCBBdXRob3JpdHkgY292ZXJhZ2UsIEluZ3Jlc3Mgb3IgRWdyZXNzIGNvdmVyYWdlIA0KbWF5IGJlIGF2YWlsYWJsZSB3aGVuIGFjY2VzcyB0byAo4oCcaW5ncmVzc+KAnSkgb3IgZnJvbSAo4oCcZWdyZXNz4oCdKSANCmFuIGluc3VyZWTigJlzIHByZW1pc2VzIGhhcyBiZWVuIHByZXZlbnRlZCBvciBtYWRlIG1vcmUgDQpkaWZmaWN1bHQgYmVjYXVzZSBvZiBhIHN0b3JtLiBVbmxpa2UgQ2l2aWwgQXV0aG9yaXR5IGNvdmVyYWdlLCANCm5vIGdvdmVybm1lbnRhbCBhY3QgaXMgcmVxdWlyZWQgdG8gdHJpZ2dlciB0aGlzIGNvdmVyYWdlLiBNYW55IA0KcG9saWNpZXMgY292ZXIgbG9zc2VzIHdoZW4g4oCcaW5ncmVzc+KAnSB0byBvciDigJxlZ3Jlc3PigJ0gZnJvbSBpbnN1cmVkIA0KcHJlbWlzZXMgaXMg4oCccHJldmVudGVk4oCdIGJlY2F1c2Ugb2YgYSBjb3ZlcmVkIHBlcmlsLiBJbiB0aGUgDQphZnRlcm1hdGggb2YgSGFydmV5IGFuZCBJcm1hICh3aXRoIHRoZSBkZXZhc3RhdGlvbiBmcm9tIEpvc2UgDQphbmQgTWFyaWEgeWV0IHRvIGJlIGZ1bGx5IGRldGVybWluZWQpLCBtYW55IGJ1c2luZXNzZXMgd2VyZSANCnVuYWJsZSB0byBvcGVyYXRlIGJlY2F1c2UgbWlsbGlvbnMgb2YgZW1wbG95ZWVzIGNvdWxkIG5vdCANCmdldCB0byB3b3JrIGFuZCBtYW55IHNlcnZpY2UgYnVzaW5lc3NlcyBjb3VsZCBub3QgcmVhY2ggdGhlaXIgDQpjdXN0b21lcnMuIE1hbnkgcm9hZHMgd2VyZSBmbG9vZGVkIG9yIG90aGVyd2lzZSBibG9ja2VkLg0KVGhlIGF2YWlsYWJpbGl0eSBvZiBJbmdyZXNzL0VncmVzcyBjb3ZlcmFnZSB2YXJpZXMgZ3JlYXRseSBmcm9tIA0KcG9saWN5IHRvIHBvbGljeS4gRnJlcXVlbnRseSwgYSBwb2xpY3kgd2lsbCBjb3ZlciB0aGUgbG9zcyBzdXN0YWluZWQgDQpieSBhbiBpbnN1cmVkIOKAnOKAmGR1ZSB0byB0aGUgbmVjZXNzYXJ5IGludGVycnVwdGlvbiBvZiB0aGUgSW5zdXJlZOKAmXMgDQpidXNpbmVzcyBkdWUgdG8gcHJldmVudGlvbiBvZiBpbmdyZXNzIHRvIG9yIGVncmVzcyBmcm9tIHRoZSANCkluc3VyZWTigJlzIHByb3BlcnR5LCB3aGV0aGVyIG9yIG5vdCB0aGUgcHJlbWlzZXMgb3IgcHJvcGVydHkgDQpvZiB0aGUgSW5zdXJlZCBzaGFsbCBoYXZlIGJlZW4gZGFtYWdlZOKAmeKAnSBpZiB0aGUgaW50ZXJydXB0aW9uIA0KcmVzdWx0ZWQgZnJvbSBkYW1hZ2Ugb2YgYSB0eXBlIGluc3VyZWQgYWdhaW5zdCBieSB0aGUgcG9saWN5LiBTZWUgDQpDaXR5IG9mIENoaWNhZ28gdi4gRmFjdG9yeSBNdXQuIElucy4gQ28uLCBVLlMuIERpc3QuIExFWElTIDQyNjYsIGF0IA0KKjYgKE4uRC4gSWxsLiBNYXIuIDE4LCAyMDA0KSAoY2l0YXRpb24gb21pdHRlZCkuIA0KT3RoZXIgcG9saWNpZXMgbWF5IHByb3ZpZGUgSW5ncmVzcyBhbmQgRWdyZXNzIGNvdmVyYWdlIGJ5IA0KcHJvdGVjdGluZyBhZ2FpbnN0IGFuIGludGVycnVwdGlvbiBvZiBidXNpbmVzcyDigJxhcyBhIGNvbnNlcXVlbmNlIA0Kb3IgZGVuaWFsLCBwcmV2ZW50aW9uIG9mLCBvciByZWR1Y3Rpb24gaW4gYWNjZXNzIHRvIG9yIHVzZSBvZiANCmhpZ2h3YXlzLCBicmlkZ2VzLCBjYXVzZXdheXPigInigKbigIlvciB0ZXJtaW5hbHPigInigKbigIlvciB0aGUgbWVhbnMgb2YgDQphY2Nlc3MgdGhlcmV0b+KAnSBjYXVzZWQgYnkgYW4gaW5zdXJlZCBwZXJpbC4gU29tZSBJbmdyZXNzIGFuZCANCkVncmVzcyBjb3ZlcmFnZSB3aWxsIHJlcXVpcmUgdGhhdCBkYW1hZ2UgYmUgaW4gY2xvc2UgcHJveGltaXR5IA0KdG8gYW4gaW5zdXJlZCBsb2NhdGlvbiwgb3IgYSBsb2NhdGlvbiB0aGF0IGlzIG90aGVyd2lzZSBjb3ZlcmVkIA0KYnkgdGhlIHBvbGljeSBhbmQgbWF5IG5vdCBiZSB0aGUgaW5zdXJlZOKAmXMgcHJvcGVydHkuIEEgcG9saWN5IA0KVGhlIDIwMTcgQXRsYW50aWMgSHVycmljYW5lIFNlYXNvbjsgSW5zdXJhbmNlIENvdmVyYWdlIGZvciBIYXJ2ZXksIElybWEsIEpvc2UsIGFuZCBNYXJpYSDigKIgUGFnZSAxMg0KbWF5IGNvdmVyIGFuIGludGVycnVwdGlvbiB3aGVuIOKAnGFzIGEgcmVzdWx0IG9mIGxvc3MsIGRhbWFnZSANCm9yIGFuIGV2ZW50IG5vdCBleGNsdWRlZOKAieKApuKAiWF0IGFuIGluc3VyZWQgbG9jYXRpb24gb3Igd2l0aGluIA0KdHdvICgyKSBtaWxlcyBvZiBpdCwgaW5ncmVzcyB0byBvciBlZ3Jlc3MgZnJvbSByZWFsIG9yIHBlcnNvbmFsIA0KcHJvcGVydHkgaXMgcHJldmVudGVkLuKAnSBQb2xpY2llcyBtYXkgYWxzbyBwcm92aWRlIGNvdmVyYWdlIGZvciANCmFuIGludGVycnVwdGlvbiBkdXJpbmcgdGhlIHRpbWUgcGVyaW9kIHRoYXQg4oCcYWNjZXNzIHRvIG9yIGVncmVzcyANCmZyb20gcmVhbCBvciBwZXJzb25hbCBwcm9wZXJ0eSBpcyBpbXBhaXJlZOKAnSBidXQgb25seSBmb3IgDQrigJxpbmdyZXNzL2VncmVzcyBpbXBhaXJtZW50c+KAieKApuKAiWxvY2F0ZWQgd2l0aGluIG9uZSAoMSkgbWlsZSBvZiANCnRoZSBJbnN1cmVk4oCZcyBwcmVtaXNlcy7igJ0gWWV0IG90aGVyIHBvbGljeSBsYW5ndWFnZSBtYXkgY292ZXIgDQpsb3NzIGFyaXNpbmcgZnJvbSDigJxhbiBpbnRlcnJ1cHRpb24gb2YgYnVzaW5lc3MsIHdoZXRoZXIgdG90YWwgb3IgDQpwYXJ0aWFsLCBkdXJpbmcgdGhlIHBlcmlvZCBvZiB0aW1lIHdoZW4sIGluIGNvbm5lY3Rpb24gd2l0aCBvciANCmZvbGxvd2luZyBhIHBlcmlsIGluc3VyZWQgYWdhaW5zdCwgaW5ncmVzcyB0byBvciBlZ3Jlc3MgZnJvbSByZWFsIG9yIA0KcGVyc29uYWwgcHJvcGVydHkgaXMgcHJvaGliaXRlZC7igJ0NCkluIERhdGF0YWIsIEluYy4gdi4gU3QuIFBhdWwgRmlyZSAmYW1wOyBNYXJpbmUgSW5zdXJhbmNlIENvLiwgMzQ3IA0KRi4gU3VwcC4gMzYgKFMuRC5OLlkuIDE5NzIpLCBhIHdhdGVyIG1haW4gYnJlYWsgZm9yY2VkIHRoZSANCnNodXRkb3duIG9mIGFuIGFpciBjb25kaXRpb25pbmcgc3lzdGVtLCB3aGljaCBpbiB0dXJuIGZvcmNlZCANCmEgc2h1dGRvd24gb2YgYW4gaW5zdXJlZOKAmXMgY29tcHV0ZXJzIGFuZCBkYXRhIHByb2Nlc3NpbmcgDQplcXVpcG1lbnQuIFRoZSBpbnN1cmVkIGhhZCBjb3ZlcmFnZSBwcm90ZWN0aW5nIGFnYWluc3QgbG9zcyANCndoZXJlIOKAnOKAmHRoZSBwcmVtaXNlcyBpbiB3aGljaCB0aGUgcHJvcGVydHkgaXMgbG9jYXRlZCBpcyBzbyANCmRhbWFnZWQgYXMgdG8gcHJldmVudCBhY2Nlc3MgdG8gc3VjaCBwcm9wZXJ0eS7igJnigJ0gSWQuIGF0IDM3LiANClRoZSBjb3VydCBoZWxkIHRoYXQgdGhlIHRlcm0g4oCccHJlbWlzZXPigJ0gd2FzIG1vcmUgcmVhc29uYWJseSANCmNvbnNpZGVyZWQgdG8gbWVhbiB0aGUgZW50aXJlIGJ1aWxkaW5nLCBub3QgbWVyZWx5IHRoZSBmbG9vcnMgb24gDQp3aGljaCB0aGUgaW5zdXJlZCBjb25kdWN0ZWQgaXRzIGJ1c2luZXNzIG9wZXJhdGlvbnMuIElkLiBhdCAzNy0NCjM4LiBUaGUgY291cnQgYWxzbyBoZWxkIHRoYXQgdGhlIHRlcm0g4oCcYWNjZXNz4oCdIG1lYW5zIG1vcmUgdGhhbiANCnNpbXBseSBhbGxvd2luZyBhIHBlcnNvbiB0byBwaHlzaWNhbGx5IGVudGVyIGEgcm9vbS4gSW5zdGVhZCwgDQppdCBjb250ZW1wbGF0ZXMgdGhlIHVzZSBvZiBlcXVpcG1lbnQgbm9ybWFsbHkgdXNlZCBmb3IgdGhlIA0KYnVzaW5lc3MuIElkLiANCk9idmlvdXNseSwgd2hhdCB3YXMgcmVsZXZhbnQgYW5kIGltcG9ydGFudCB0byBbdGhlIA0KaW5zdXJlZF0gd2hlbiBpdCBib3VnaHQgdGhlIFN0LiBQYXVsIHBvbGljeSB3YXMgdGhlIA0KYWJpbGl0eSB0byB1dGlsaXplIHRoZSBjb21wdXRlcnMgaW4gaXRzIGJ1c2luZXNzIG9uIGEgDQpub3JtYWwgYmFzaXMuIFtUaGUgaW5zdXJlZF0gY291bGQgbm90IGhhdmUgYmVlbiBsZXNzIA0KaW50ZXJlc3RlZCBpbiB3aGV0aGVyLCBmb2xsb3dpbmcgYSBwZXJpbCBpbnN1cmVkIGFnYWluc3QsIA0KaXQgaGFkIHRoZSBhYmlsaXR5IHRvIHBoeXNpY2FsbHkgdG91Y2ggYSBub24tZnVuY3Rpb25pbmcgDQptYXNzIG9mIG1ldGFsLuKAnSANCklkLiBhdCAzOC4gVGhpcyBicm9hZCBpbnRlcnByZXRhdGlvbiBvZiBwb2xpY3kgdGVybXMgbWF5IHByb21vdGUgDQpleHRlbnNpdmUgcmVjb3ZlcnkgYnkgYnVzaW5lc3NlcyBmb2xsb3dpbmcgdGhlIHJlY2VudCBzdG9ybXMuDQpGb3VudGFpbiBQb3dlcmJvYXQgSW5kdXN0cmllcywgSW5jLiB2LiBSZWxpYW5jZSBJbnN1cmFuY2UgQ28uLCAxMTkgDQpGLiBTdXBwLiAyZCA1NTIgKEUuRC5OLkMuIDIwMDApLCBpcyBhbiBleGFtcGxlIG9mIGNvdmVyYWdlIGZvciANCnN0b3JtLXJlbGF0ZWQgaW50ZXJmZXJlbmNlIHdpdGggaW5ncmVzcyBhbmQgZWdyZXNzLiBJbiBGb3VudGFpbiwgDQphIGh1cnJpY2FuZSBmbG9vZGVkIHNldmVyYWwgcm9hZHMgbGVhZGluZyB0byB0aGUgaW5zdXJlZOKAmXMgDQpwcmVtaXNlcywgb25lIG9mIHdoaWNoIHdhcyBjbG9zZWQgZm9yIHNldmVyYWwgZGF5cy4gSG93ZXZlciwgDQp0aGUgaW5zdXJlZCB3YXMgYWJsZSB0byB0cmFuc3BvcnQgaXRzIGVtcGxveWVlcyB0byBhbmQgZnJvbSANCnRoZSBmYWNpbGl0eSB3aXRoIGxhcmdlIHRydWNrcy4gV2hlbiBwcm9kdWN0aW9uIGF0IHRoZSBmYWNpbGl0eSANCmRlY3JlYXNlZCwgdGhlIGluc3VyZWQgc291Z2h0IGNvdmVyYWdlIHVuZGVyIHRoZSBpbmdyZXNzLw0KZWdyZXNzIGNsYXVzZSB0aGF0IGVuc3VyZWQg4oCcbG9zcyBzdXN0YWluZWQgZHVyaW5nIHRoZSBwZXJpb2Qgb2YgDQp0aW1lIHdoZW4sIGFzIGEgZGlyZWN0IHJlc3VsdCBvZiBhIHBlcmlsIG5vdCBleGNsdWRlZCwgaW5ncmVzcyB0byBvciANCmVncmVzcyBmcm9tIHJlYWwgYW5kIHBlcnNvbmFsIHByb3BlcnR5IG5vdCBleGNsdWRlZCBoZXJldW5kZXIsIA0KaXMgdGhlcmVieSBwcmV2ZW50ZWQu4oCdIElkLiBhdCA1NTYuIFRoZSBmbG9vZGluZyBvZiB0aGUgcm9hZHMgDQpoaW5kZXJlZCB0cmF2ZWwgdG8gYW5kIGZyb20gdGhlIGZhY2lsaXR5IG5vdHdpdGhzdGFuZGluZyB0aGF0IA0KaW5ncmVzcyB0byBhbmQgZWdyZXNzIGZyb20gdGhlIGluc3VyZWTigJlzIGZhY2lsaXR5IHdhcyBzdGlsbCBwb3NzaWJsZS4gDQpUaGUgY291cnQgaGVsZCB0aGF0IGNvdmVyYWdlIGV4aXN0ZWQgYmVjYXVzZSB1c3VhbCByb3V0ZXMgdG8gYW5kIA0KZnJvbSB0aGUgZmFjaWxpdHkgd2VyZSBvYnN0cnVjdGVkIGFuZCB0cmFuc3BvcnRhdGlvbiB0byBhbmQgZnJvbSANCnRoZSBmYWNpbGl0eSB3YXMgbW9yZSBkaWZmaWN1bHQuIElkLiBhdCA1NTcuDQpFLiBTZXJ2aWNlIEludGVycnVwdGlvbg0KVGhlIGRpc3J1cHRpb24gb2YgdXRpbGl0eSBzZXJ2aWNlLCBzdWNoIGFzIHdhdGVyIGFuZCBlbGVjdHJpYyANCnNlcnZpY2VzLCBpcyBhbiBpbXBvcnRhbnQgY2F1c2Ugb2YgYnVzaW5lc3MgbG9zc2VzIGZvbGxvd2luZyANCmEgaHVycmljYW5lLiBBcyB0aGVzZSByZWNlbnQgc3Rvcm1zIGhhdmUgZGVtb25zdHJhdGVkLCANCmluZGl2aWR1YWxzIGFuZCBjb21wYW5pZXMgb2Z0ZW4gYXJlIHdpdGhvdXQgdXRpbGl0eSBzZXJ2aWNlIGZvciANCmRheXMgb3IgZXZlbiB3ZWVrcyBhZnRlciBhIHN0b3JtIGhhcyBwYXNzZWQuIE1vc3QgYnVzaW5lc3NlcyANCnNpbXBseSBjYW5ub3Qgb3BlcmF0ZSB3aXRob3V0IHNlcnZpY2UgZnJvbSBwb3dlciBhbmQgd2F0ZXIgDQp1dGlsaXRpZXMuIA0KU2V2ZXJhbCBjb21tZXJjaWFsIHByb3BlcnR5IGluc3VyYW5jZSBwb2xpY2llcyBleGNsdWRlIGRhbWFnZSANCnRvIHRoZSBpbnN1cmVk4oCZcyBwcm9wZXJ0eSByZXN1bHRpbmcgZnJvbSB0aGUgdXRpbGl0eSBzZXJ2aWNlIA0KaW50ZXJydXB0aW9uIHRoYXQgb3JpZ2luYXRlcyBhd2F5IGZyb20gdGhlIGluc3VyZWTigJlzIHByZW1pc2VzLiANClNlZSwgZS5nLiwgSVNPIENhdXNlcyBPZiBMb3NzIOKAkyBTcGVjaWFsIEZvcm0gQ1AgMTAgMzAgMDYgMDcgJiMxNjc7IA0KQigxKShlKS4gVW5kZXIgdGhpcyBwcm92aXNpb24sIHVubGVzcyBhbiBpbnN1cmVkIHN1ZmZlcnMgYSB3YXRlciANCm9yIHBvd2VyIGxvc3MgYmVjYXVzZSBvZiBlcXVpcG1lbnQgZmFpbHVyZSBvbiBpdHMgb3duIHByZW1pc2VzLCANCmluc3VyZXJzIGxpa2VseSB3aWxsIHNlZWsgdG8gZGlzY2xhaW0gY292ZXJhZ2UgZm9yIGEgY29tcGFueeKAmXMgDQppbmFiaWxpdHkgdG8gb3BlcmF0ZSBiZWNhdXNlIGl0IGRpZCBub3QgaGF2ZSBuZWNlc3NhcnkgcG93ZXIgb3IgDQp3YXRlci4NCkFuIGluc3VyZWQgbXVzdCBiZSBjYXJlZnVsIHRvIHJldmlldyBpdHMgcG9saWN5IGFzIGEgd2hvbGUgdG8gDQpkZXRlcm1pbmUgd2hldGhlciB1dGlsaXR5IHNlcnZpY2UsIG9yIGFueSBvdGhlciBjb3ZlcmFnZSwgbWF5IA0KcHJvdmlkZSByZWNvdmVyeSBmb3IgbG9zc2VzIGNhdXNlZCBieSBodXJyaWNhbmVzLiBDb21wbGV4IA0KaXNzdWVzIG1heSBzdGVtIGZyb20gdGhlIGxhY2sgb2YgZWxlY3RyaWNpdHkgaW4gbGFyZ2UgcGFydHMgb2YgDQp0aGUgdHJpLXN0YXRlIGFyZWEuIEZvciBleGFtcGxlLCBnYXMgc3RhdGlvbnMgY2Fubm90IHB1bXAgZ2FzIA0Kd2l0aG91dCBlbGVjdHJpY2l0eS4gSWYgcGVvcGxlIGNhbm5vdCBnZXQgZ2FzLCBnb29kcyBhbmQgc2VydmljZXMgDQpkbyBub3QgZ2V0IGRlbGl2ZXJlZCBhbmQgZW1wbG95ZWVzIGNhbm5vdCBnZXQgdG8gd29yay4gVGhlIA0KbGFjayBvZiBwb3dlciBtYXkgYWxzbyBpbXBsaWNhdGUgb3RoZXIgdGltZSBlbGVtZW50IGNvdmVyYWdlcyANCmFkZHJlc3NlZCBoZXJlLCBzdWNoIGFzIGNvbnRpbmdlbnQgYnVzaW5lc3MgaW50ZXJydXB0aW9uIGFuZCANCmluZ3Jlc3MvZWdyZXNzLiANClNwZWNpZmljIGxhbmd1YWdlIGFwcGx5aW5nIHRvIHV0aWxpdHkgc2VydmljZSBpbnRlcnJ1cHRpb24gd2lsbCANCnRydW1wIGFueSBzdGFuZGFyZCBib2lsZXItcGxhdGUgZm9ybSBleGNsdXNpb24uIEZvciBpbnN0YW5jZSwgDQppbiBSb2NvbiBNYW51ZmFjdHVyaW5nLCBJbmMuIHYuIEZlcnJhcm8sIDYwNSBOLlkuUy4yZCA1OTEgKEFwcC4gDQpEaXYuIDE5OTMpLCB0aGUgY291cnQgYWRkcmVzc2VkIHdoZXRoZXIgdGhlcmUgd2FzIGNvdmVyYWdlIA0KZm9yIHRoZSBpbnRlcnJ1cHRpb24gdG8gYSBpbnN1cmVk4oCZcyBidXNpbmVzcyBjYXVzZWQgYnkgaWNlIHN0b3JtIA0KZGFtYWdlIHRvIGEgcG93ZXIgbGluZSBub3QgbG9jYXRlZCBvbiB0aGUgaW5zdXJlZOKAmXMgcHJlbWlzZXMuIA0KVGhlIGluc3VyZWTigJlzIGJ1c2luZXNzIHdhcyBzdXNwZW5kZWQgZm9yIHNpeCBkYXlzIGJlY2F1c2Ugb2YgDQp0aGUgbGFjayBvZiBwb3dlci4gVGhlIHBvbGljeSBjb250YWluZWQgYW4gZXhjbHVzaW9uIGZvciDigJzigJhbbF1vc3MgDQpjYXVzZWQgYnkgb3IgcmVzdWx0aW5nIGZyb20gdGhlIGxhY2sgb2YgcG93ZXIsIGxpZ2h0LCBzdGVhbSBvciANCnJlZnJpZ2VyYXRpb24u4oCZ4oCdIElkLiBhdCA1OTMuIFRoZSBwb2xpY3kgYWxzbyBjb250YWluZWQgY292ZXJhZ2UgZm9yIA0KbG9zcyByZXN1bHRpbmcgZnJvbSBkYW1hZ2UgdG8gZWxlY3RyaWNhbCBlcXVpcG1lbnQg4oCc4oCYd2hldGhlciBvciANCm5vdCB0aGUgZXF1aXBtZW50IGlzIGxvY2F0ZWQgb24gW3RoZSBpbnN1cmVk4oCZc10gcHJlbWlzZXMsIHdoaWNoIA0KaXMgb3duZWQgYnkgYSBwdWJsaWMgdXRpbGl0eSBjb21wYW55IGNvbnRyYWN0ZWQgYnkgeW91IHRvIHN1cHBseSANCmVsZWN0cmljIHBvd2VyIHNvbGVseSB0byB5b3VyIHByZW1pc2VzLuKAmeKAnSBJZC4gYXQgNTkyLiBUaGUgY291cnQgDQpoZWxkIHRoYXQgdGhlIG9ubHkgcmVhc29uYWJsZSBpbnRlcnByZXRhdGlvbiBvZiB0aGlzIGxhbmd1YWdlIA0KVGhlIDIwMTcgQXRsYW50aWMgSHVycmljYW5lIFNlYXNvbjsgSW5zdXJhbmNlIENvdmVyYWdlIGZvciBIYXJ2ZXksIElybWEsIEpvc2UsIGFuZCBNYXJpYSDigKIgUGFnZSAxMw0Kd2FzIHRoYXQgdGhlIHBvbGljeSBjb3ZlcmVkIOKAnGxvc3QgaW5jb21lIHJlc3VsdGluZyBmcm9tIGEgcG93ZXIgDQpmYWlsdXJl4oCdIHRvIHRoZSBpbnN1cmVk4oCZcyBmYWNpbGl0eSDigJxjYXVzZWQgYnkgYW4gYWNjaWRlbnQgdG8gdGhlIA0KdXRpbGl0eSBjb21wYW554oCZcyBwb3dlciBlcXVpcG1lbnQs4oCdIGFuZCB0aGF0IHRoaXMgc3BlY2lmaWMgZ3JhbnQgDQpvZiBjb3ZlcmFnZSBzdXBlcnNlZGVkIHRoZSBnZW5lcmFsIGJvaWxlci1wbGF0ZSBleGNsdXNpb24gZm9yIA0KcG93ZXIgZmFpbHVyZS4gSWQuIGF0IDU5Mi05My4gDQpNYW55IHBvbGljaWVzIGNvdmVyIGludGVycnVwdGlvbiBjYXVzZWQgYnkgdGhlIGZhaWx1cmUgb2YgYSB1dGlsaXR5IA0Kc2VydmljZSB1bmRlciBlbmRvcnNlbWVudHMgdGhhdCByZW1vdmUgdGhlIGZvcm0gZXhjbHVzaW9uIA0KZm9yIHV0aWxpdHkgc2VydmljZSBpbnRlcnJ1cHRpb24uIEhvd2V2ZXIsIHRoaXMgY292ZXJhZ2UgbWF5IGJlIA0Kc3ViamVjdCB0byBzZXBhcmF0ZSBhbmQgbG93ZXIgbGltaXRzIG9mIGluc3VyYW5jZSB0aGFuIG5vcm1hbCANCmJ1c2luZXNzIGludGVycnVwdGlvbiBjb3ZlcmFnZS4gVGhpcyBlbmRvcnNlbWVudCBmcmVxdWVudGx5IA0KaW5zdXJlcyBsb3NzZXMgdGhhdCB0aGUgaW5zdXJlZCBpbmN1cnMgZHVlIHRvIHRoZSBpbnRlcnJ1cHRpb24gb2YgDQp1dGlsaXR5IHNlcnZpY2VzIHRoYXQgcmVzdWx0IGZyb20gcGh5c2ljYWwgZGFtYWdlIHRvIHRoZSBwcm9wZXJ0eSANCm93bmVkIGJ5IHRoZSB1dGlsaXR5LiANCk9uZSBzdWNoIGVuZG9yc2VtZW50IHN0YXRlcyB0aGF0IGl0IHByb3ZpZGVzIGNvdmVyYWdlIGZvciANCmJ1c2luZXNzIGludGVycnVwdGlvbiBhbmQgZXh0cmEgZXhwZW5zZSBsb3NzIGlmIHRoYXQgbG9zcyDigJxyZXN1bHRbc10gDQpmcm9tIGRpcmVjdCBwaHlzaWNhbCBsb3NzIG9yIGRhbWFnZSBieSBhIENvdmVyZWQgQ2F1c2Ugb2YgDQpMb3NzIHRvIHRoZSBmb2xsb3dpbmcgcHJvcGVydHksIGxvY2F0ZWQgb3V0c2lkZSBvZiBhIGJ1aWxkaW5nIA0KZGVzY3JpYmVkIGluIHRoZSBEZWNsYXJhdGlvbnMsIHN1cHBseWluZyB0aGUgZm9sbG93aW5nIHNlcnZpY2VzLuKAnSANClRoZSBlbmRvcnNlbWVudCB0aGVuIGRlc2NyaWJlcyB3YXRlciwgY29tbXVuaWNhdGlvbnMsIA0KYW5kIHBvd2VyIHN1cHBseSBzZXJ2aWNlcywgYW5kIGluY2x1ZGVzIHB1bXBpbmcgc3RhdGlvbnMsIA0Kd2F0ZXIgbWFpbnMsIG1pY3Jvd2F2ZSByYWRpbyByZWxheXMsIHV0aWxpdHkgZ2VuZXJhdGluZyBwbGFudHMsIA0KYW5kIHRyYW5zZm9ybWVycyBhbW9uZyBhIG51bWJlciBvZiB0eXBlcyBvZiBwcm9wZXJ0eSB0aGF0LCANCmlmIGRhbWFnZWQsIGNvdWxkIHJlc3VsdCBpbiBhbiBpbnRlcnJ1cHRpb24gb2YgdGhlIGluc3VyZWTigJlzIA0KYnVzaW5lc3MuIE5vdGFibHksIHRoZSBlbmRvcnNlbWVudCBleGNsdWRlcyBkYW1hZ2UgdG8gDQpvdmVyaGVhZCB0cmFuc21pc3Npb24gbGluZXMsIHdoaWNoIHdpbGwgbGltaXQgdGhlIGF2YWlsYWJsZSB1dGlsaXR5IA0Kc2VydmljZSBjb3ZlcmFnZS4NCkYuIEV4dHJhIEV4cGVuc2UNCuKAnEV4dHJhIEV4cGVuc2XigJ0gY292ZXJhZ2UgaW5kZW1uaWZpZXMgdGhlIGluc3VyZWQgZm9yIHJlYXNvbmFibGUgDQphbmQgbmVjZXNzYXJ5IGV4dHJhIG9yIGluY3JlYXNlZCBjb3N0cyBvZiBidXNpbmVzcyBvcGVyYXRpb25zIA0KYWJvdmUgdGhlIG5vcm0gYmVjYXVzZSBvZiBhIHBlcmlsIGluc3VyZWQgYWdhaW5zdC4gQUJNLCAzOTcgDQpGLjNkIGF0IDE3MCAoZXh0cmEgZXhwZW5zZSBjb3ZlcmFnZSByZWxhdGluZyB0byBlbXBsb3llZSANCmRpc3BsYWNlbWVudCBpbmN1cnJlZCBieSBjb250cmFjdG9yIHRoYXQgc2VydmljZWQgYnVpbGRpbmdzIA0KZGVzdHJveWVkIGR1cmluZyB0aGUgOS8xMSBhdHRhY2tzKS4gSXQgbWF5IGluY2x1ZGUgY292ZXJhZ2UgZm9yLCANCmFtb25nIG90aGVyIHRoaW5ncywgY29zdHMgaW5jdXJyZWQgZm9yIHRoZSBpbnN1cmVkIHRvIHRlbXBvcmFyaWx5IA0KY29udGludWUgYnVzaW5lc3Mgb3BlcmF0aW9ucyDigJxhcyBub3JtYWwgYXMgcHJhY3RpY2FibGUs4oCdIHN1Y2ggDQphcyB0aGUgdGVtcG9yYXJ5IHVzZSBvZiB0aGUgcHJvcGVydHkgb3IgZmFjaWxpdGllcyBvZiBvdGhlcnMuIEZvciANCmV4YW1wbGUsIGluIEFtZXJpY2FuIE1lZGljYWwgSW1hZ2luZyBDb3JwLiB2LiBTdC4gUGF1bCBGaXJlICZhbXA7IA0KTWFyaW5lIEluc3VyYW5jZSBDby4sIDk0OSBGLjJkIDY5MCAoM2QgQ2lyLiAxOTkxKSwgYSBmaXJlIGZvcmNlZCANCnRoZSBpbnN1cmVkIHRvIHJlbG9jYXRlIGl0cyBidXNpbmVzcyBoZWFkcXVhcnRlcnMgZm9yIHNpeCB3ZWVrcy4gDQpUaGUgaW5zdXJlZCByZWNvdmVyZWQgdGhlIGNvc3RzIGFzc29jaWF0ZWQgd2l0aCByZWxvY2F0aW5nIA0KaXRzIGJ1c2luZXNzIHRvIGEgdGVtcG9yYXJ5IGJ1aWxkaW5nIHVuZGVyIHRoZSBwb2xpY3nigJlzIGV4dHJhIA0KZXhwZW5zZSBjb3ZlcmFnZS4gSWQuIGF0IDY5MiwgNjk1OyBzZWUgYWxzbyBLaWxuIFVuZGVyd3JpdGluZyBMdGQuIA0Kdi4gSmVzdWl0IEhpZ2ggU2NoLiBvZiBOZXcgT3JsZWFucywgMjAwOCBVLlMuIERpc3QuIExFWElTIDg2Mjg2LCANCmF0ICo4LTEwIChFLkQuIExhLiBPY3QuIDI0LCAyMDA4KSAocG9saWN5IGNvdmVyZWQgZXh0cmEgZXhwZW5zZSANCmluY3VycmVkIGJ5IHNjaG9vbCB0byByZW50IHNwYWNlIGF0IGFsdGVybmF0aXZlIGxvY2F0aW9uIGZvbGxvd2luZyANCkh1cnJpY2FuZSBLYXRyaW5hKS4gT3BlcmF0aW5nIGV4cGVuc2VzIGluY3VycmVkIGZvciB0ZW1wb3JhcnkgDQphcnJhbmdlbWVudHMgbmVlZCBub3QgYmUgZ3JlYXRlciB0aGFuIG5vcm1hbCBjb3N0cyBpbiBvcmRlciB0byANCmJlIHJlY292ZXJhYmxlLiBTZWUgRGlsbGFyZCBVbml2LiB2LiBMZXhpbmd0b24gSW5zLiBDby4sIDIwMDkgVS5TLiANCkRpc3QuIExFWElTIDQ2Nzg1LCBhdCAqMTEtMTIgKEUuRC4gTGEuIEp1bmUgMywgMjAwOSkuDQpJbiB0aGUgY29udGV4dCBvZiBodXJyaWNhbmVzLCBvbmUgZXhhbXBsZSBvZiBleHBlbnNlcyBjb3ZlcmVkIA0KYnkgdGhlIEV4dHJhIEV4cGVuc2UgY292ZXJhZ2UgaXMgdGhlIHB1cmNoYXNlIG9mIGEgZ2VuZXJhdG9yIHRvIA0KY29udGludWUgdG8gb3BlcmF0ZSBiZWNhdXNlIG9mIGFuIGludGVycnVwdGlvbiBvZiBwb3dlci4NClRIRSBOVU1CRVIgT0YgT0NDVVJSRU5DRVMsIA0KREVEVUNUSUJMRVMsIEFORCBMQUJFTFMNCkFub3RoZXIgcXVlc3Rpb24gdGhhdCBtYXkgYXJpc2UgaW52b2x2ZXMgdGhlIG51bWJlciBvZiANCm9jY3VycmVuY2VzLiBUaGUgYW5zd2VyIG1heSBkZXRlcm1pbmUgaG93IG11Y2ggY292ZXJhZ2UgDQppcyBhdmFpbGFibGUgdG8gYW4gaW5zdXJlZCBsb3NzLiBUaGlzIGFsc28gdHlwaWNhbGx5IGltcGFjdHMgdGhlIA0KbnVtYmVyIG9mIGFwcGxpY2FibGUgZGVkdWN0aWJsZXMsIGlmIGFueS4gDQpNYW55IGluc3VyYW5jZSBwb2xpY2llcyBjb250YWluIGRlZHVjdGlibGVzIG9yIHNlbGYtaW5zdXJlZCANCnJldGVudGlvbnMgYW5kIHN0YXRlIHRoYXQgdGhlIGRlZHVjdGlibGUgb3IgcmV0ZW50aW9uIG11c3QgYmUgDQpzYXRpc2ZpZWQg4oCccGVyIG9jY3VycmVuY2Us4oCdIOKAnHBlciBldmVudCzigJ0g4oCccGVyIGxvc3Ms4oCdIG9yIOKAnHBlciBjbGFpbS7igJ0gDQpTZWUsIGUuZy4sIFNFQUNPUiBIb2xkaW5ncywgSW5jLiB2LiBDb21tb253ZWFsdGggSW5zLiBDby4sIDYzNSANCkYuM2QgNjc1LCA2ODIgKDV0aCBDaXIuIDIwMTEpIChpbnN1cmVkIOKAnGV4cGVyaWVuY2VkIGRpZmZlcmVudCANCmNhc3VhbHRpZXMgZnJvbSBLYXRyaW5h4oCZcyB0d28gcGVyaWxzLCB3aW5kIGFuZCByYWluLCBidXQgdW5kZXIgDQp0aGUgcG9saWN5LCB0aG9zZSBsb3NzZXMgYXJvc2Ugb3V0IG9mIG9uZSBldmVudOKAlEthdHJpbmHigJRhbmQgDQp3YXJyYW50IG9ubHkgb25lIGRlZHVjdGlibGXigJ0pOyBzZWUgYWxzbyBQaW5uYWNsZSBFbnRt4oCZdCwgSW5jLiB2LiANCkFsbGlhbnogR2xvYmFsIFJpc2tzIFVTIElucy4gQ28uLCBOby4gMjowNi1DVi0yMDA4IFUuUy4gRGlzdC4gTEVYSVMgDQoxMDg1ODMsIGF0ICoxNC0yMiAoRC4gTmV2LiBNYXIuIDI2LCAyMDA4KSAoaG9sZGluZyB0aGF0IGZsb29kIA0KZGFtYWdlIGFzc29jaWF0ZWQgd2l0aCBOYW1lZCBTdG9ybSBpcyBjb3ZlcmVkIGFzIHNlcGFyYXRlIA0KYW5kIGRpc3RpbmN0IHBlcmlsIGZyb20g4oCcZmxvb2TigJ0gYXMgZGVmaW5lZCBpbiBwb2xpY3ksIGFuZCByZWplY3RpbmcgDQppbnN1cmVy4oCZcyBhcmd1bWVudCB0aGF0IGEgcGVyaWwgc2ltaWxhciB0byBOYW1lZCBXaW5kc3Rvcm0gd2FzIA0KZGVmaW5lZCBzb2xlbHkgZm9yIGRlZHVjdGlibGUgcHVycG9zZXMgYmVjYXVzZSDigJxpdCBpcyBzdXJyb3VuZGVkIA0KYnkgZGVmaW5pdGlvbnMgb2Ygb3RoZXIgUGVyaWxzLCBpbmNsdWRpbmcgRmxvb2QsIEVhcnRoIE1vdmVtZW50LCANCmFuZCBFeHBsb3Npb27igJ0pLiANCk1hbnkgcG9saWNpZXMgYWxzbyBjb250YWluIGNvdmVyYWdlIGxpbWl0cyBzdGF0aW5nIHRoZSBtYXhpbXVtIA0KYW1vdW50IHRoYXQgdGhlIGluc3VyZXIgbXVzdCBwYXkg4oCccGVyIG9jY3VycmVuY2UsIGV2ZW50LCANCmxvc3MsIG9yIGNsYWltLuKAnSBBbmQgc29tZSBwb2xpY2llcyBoYXZlIHNwZWNpZmljIGRlZmluaXRpb25zIG9mIA0K4oCcb2NjdXJyZW5jZXPigJ0gd2hlbiB3ZWF0aGVyIGNvbmRpdGlvbnMgYXJlIGludm9sdmVkLiBBUk0gDQpQcm9wcy4gTWdtdC4gR3JwLiB2LiBSU1VJIEluZGVtLiBDby4sIDIwMDggVS5TLiBEaXN0LiBMRVhJUyANCjEwODYxOSwgYXQgKjktMTEgKFcuRC4gVGV4LiBOb3YuIDI0LCAyMDA4KSAoSHVycmljYW5lIEthdHJpbmEgDQp3YXMgYSBzaW5nbGUgb2NjdXJyZW5jZSB3aGljaCBkYW1hZ2VkIG5pbmUgcHJvcGVydGllcyB3aGVyZSANCnBvbGljeSBkZWZpbmVkIOKAnOKAmG9jY3VycmVuY2XigJnigJ0gYXMg4oCc4oCYYW55IG9uZSBsb3NzLCBkaXNhc3RlciwgY2FzdWFsdHksIA0Kb3Igc2VyaWVzIG9mIGxvc3NlcywgZGlzYXN0ZXJzLCBvciBjYXN1YWx0aWVzIGFyaXNpbmcgZnJvbSBvbmUgDQpldmVudOKAmeKAnSBhbmQgcHJvdmlkZWQgaW4gdGhlIGNhc2Ugb2YgYSBodXJyaWNhbmUg4oCc4oCYb25lIGV2ZW50IHNoYWxsIA0KYmUgY29uc3RydWVkIHRvIGJlIGFsbCBsb3NzZXMgYXJpc2luZyBkdXJpbmcgYSBjb250aW51b3VzIHBlcmlvZCANCm9mIDcyIGhvdXJzLuKAmeKAnSAoY2l0YXRpb25zIG9taXR0ZWQpKS4NCkNvdXJ0cyB0ZW5kIHRvIGZvY3VzIG9uIHRoZSBjYXVzZSBvZiB0aGUgbG9zcyBpbiBhc3Nlc3NpbmcgdGhlIA0KbnVtYmVyIG9mIG9jY3VycmVuY2VzLiBTZWUgUGVjbyBFbmVyZ3kgQ28uIHYuIEJvZGVuLCA2NCBGLjNkIA0KODUyLCA4NTYgKDNkIENpci4gMTk5NSkgKOKAnFRvIGRldGVybWluZSB3aGV0aGVyIGJvZGlseSBpbmp1cnkgDQpvciBwcm9wZXJ0eSBkYW1hZ2UgaXMgdGhlIHJlc3VsdCBvZiBvbmUgb2NjdXJyZW5jZSBvciBtdWx0aXBsZSANCm9jY3VycmVuY2VzLCB0aGUgbWFqb3JpdHkgb2YgY291cnRzIGhhdmUgbG9va2VkIHRvIHRoZSBjYXVzZSBvciANCmNhdXNlcyBvZiB0aGUgYm9kaWx5IGluanVyeSBvciBwcm9wZXJ0eSBkYW1hZ2XigInigKbigIku4oCdIChjaXRhdGlvbiBhbmQgDQppbnRlcm5hbCBxdW90YXRpb24gbWFya3Mgb21pdHRlZCkpLiBDb3VydHMgaGF2ZSByZWFjaGVkIHZhcnlpbmcgDQpkZWNpc2lvbnMgaW4gYW5zd2VyaW5nIHRoZSDigJxob3cgbWFueeKAnSBxdWVzdGlvbi4gDQpUaGUgMjAxNyBBdGxhbnRpYyBIdXJyaWNhbmUgU2Vhc29uOyBJbnN1cmFuY2UgQ292ZXJhZ2UgZm9yIEhhcnZleSwgSXJtYSwgSm9zZSwgYW5kIE1hcmlhIOKAoiBQYWdlIDE0DQpTb21lIGNvdXJ0cyBmb3VuZCB0aGF0IGJhc2VkIG9uIHRoZSBjaXJjdW1zdGFuY2VzIGFuZCBwb2xpY3kgDQpsYW5ndWFnZSBhdCBpc3N1ZSwgb25seSBvbmUgb2NjdXJyZW5jZSBoYWQgdGFrZW4gcGxhY2UuIFNlZSwgDQplLmcuLCBXb3JsZCBUcmFkZSBDdHIuIFByb3BzLiwgTC5MLkMuIHYuIEhhcnRmb3JkIEZpcmUgSW5zLiBDby4sIDM0NSANCkYuM2QgMTU0LCAxODAgKDJkIENpci4gMjAwMykgKOKAnFtOXW8gZmluZGVyIG9mIGZhY3QgY291bGQgcmVhc29uYWJseSANCmZhaWwgdG8gZmluZCB0aGF0IHRoZSBpbnRlbnRpb25hbCBjcmFzaGVzIGludG8gdGhlIFdUQyBvZiB0d28gDQpoaWphY2tlZCBhaXJwbGFuZXMgc2l4dGVlbiBtaW51dGVzIGFwYXJ0IGFzIGEgcmVzdWx0IG9mIGEgc2luZ2xlLCANCmNvb3JkaW5hdGVkIHBsYW4gb2YgYXR0YWNrIHdhcywgYXQgdGhlIGxlYXN0LCBhIOKAmHNlcmllcyBvZiBzaW1pbGFyIA0KY2F1c2VzIFthcyBkZWZpbmVkIGJ5IHRoZSBwb2xpY3ldLuKAmSBBY2NvcmRpbmdseSwgd2UgYWdyZWXigInigKbigIkgDQp0aGF04oCJ4oCm4oCJdGhlIGV2ZW50cyBvZiBTZXB0ZW1iZXIgMTF0aCBjb25zdGl0dXRlIGEgc2luZ2xlIA0Kb2NjdXJyZW5jZSBhcyBhIG1hdHRlciBvZiBsYXcu4oCdKSwgb3ZlcnJ1bGVkIG9uIG90aGVyIGdyb3VuZHMgYnkgDQpXYWNob3ZpYSBCYW5rLCBOLkEuIHYuIFNjaG1pZHQsIDU0NiBVLlMuIDMwMywgMzA5LTEwICgyMDA2KTsgc2VlIA0KYWxzbyBQZWNvLCA2NCBGLjNkIGF0IDg1NiAo4oCcW1ddaGVuIGEgc2NoZW1lIHRvIHN0ZWFsIHByb3BlcnR5IGlzIA0KdGhlIHByb3hpbWF0ZSBhbmQgY29udGludWluZyBjYXVzZSBvZiBhIHNlcmllcyBvciBjb21iaW5hdGlvbiBvZiANCnRoZWZ0cywgdGhlIGxvc3NlcyBmb3IgbGlhYmlsaXR5IGluc3VyYW5jZSBwdXJwb3NlcyBjb25zdGl0dXRlIHBhcnQgDQpvZiBhIHNpbmdsZSBvY2N1cnJlbmNlLuKAnSkuDQpGdXJ0aGVybW9yZSwgY291cnRzIGZyZXF1ZW50bHkgZmluZCBpbiDigJxkaXNhc3RlcuKAnSBzaXR1YXRpb25zIHRoYXQgDQphIHNpbmdsZSBvY2N1cnJlbmNlIGhhcyB0YWtlbiBwbGFjZS4gT25lIGF1dGhvciBvYnNlcnZlZDoNCkFzIGEgZ2VuZXJhbCBydWxlLCB3aGVuIG1hbnkgcGVyc29ucyBhcmUgaW5qdXJlZCBvciANCmRhbWFnZWQgYXMgdGhlIHJlc3VsdCBvZiBhbiBvbmdvaW5nIHBoeXNpY2FsIHByb2Nlc3MsIA0KdGhlIHJlc3VsdGluZyBpbmp1cmllcyB0eXBpY2FsbHkgd2lsbCBiZSB0cmVhdGVkIGFzIG9uZSANCuKAnG9jY3VycmVuY2Uu4oCdIFRodXMsIGluIGNhc2VzIGludm9sdmluZyBuYXR1cmFsIGRpc2FzdGVycywgDQpzdWNoIGFzIGZpcmVzLCBmbG9vZHMsIG9yIG11bHRpdmVoaWNsZSBhdXRvIGFjY2lkZW50cywgDQpjb3VydHMgaGF2ZSBnZW5lcmFsbHkgZm91bmQgb25seSBvbmUg4oCcb2NjdXJyZW5jZS7igJ0NCk1pY2hhZWwgRi4gQXlsd2FyZCwg4oCcTXVsdGlwbGUg4oCYT2NjdXJyZW5jZXPigJnigJRBIERpdmlzaXZlIElzc3VlLOKAnSANCkNvdmVyYWdlLCBKYW4uL0ZlYi4gMTk5NSBhdCAzOSwgNDA7IHNlZSBhbHNvIGlkLiBhdCA0NCAo4oCcRGl2ZXJzZSANCnRvcnQgY2xhaW1zIG1heSBiZSBhZ2dyZWdhdGVkIHdoZXJlIHRoZXkgcmVzdWx0IGZyb20gdGhlIHNhbWUgDQpwaHlzaWNhbCBjYXVzZSwgYXMgaW4gdGhlIGNhc2Ugb2YgYSBmaXJlIG9yIHRyYWluIGNyYXNoLuKAnSkuDQpBIE5ldyBZb3JrIGNvdXJ0IHJlYWNoZWQgYSBkaWZmZXJlbnQgY29uY2x1c2lvbi4gSW4gQXJ0aHVyIEEuIA0KSm9obnNvbiBDb3JwLiB2LiBJbmRlbW5pdHkgSW5zdXJhbmNlIENvLiBvZiBOb3J0aCBBbWVyaWNhLCANCjcgTi5ZLjJkIDIyMiAoMTk1OSksIHRoZSBjb3VydCBhZGRyZXNzZWQgYSBjaXJjdW1zdGFuY2UgDQp3aGVyZSBhIG1ham9yIHJhaW5mYWxsIGZsb29kZWQgYSBjb25zdHJ1Y3Rpb24gc2l0ZSwgZ2l2aW5nIHJpc2UgDQp0byBtdWx0aXBsZSBkYW1hZ2UgY2xhaW1zIHRoYXQgb2NjdXJyZWQgYXQgc2VwYXJhdGUgdGltZXMuIA0KVGhlIGluc3VyZXIgYXNzZXJ0ZWQgYSAkNTAsMDAwIHBvbGljeSBsaW1pdCBwZXIgYWNjaWRlbnQgYW5kLCANCm5vdHdpdGhzdGFuZGluZyB0aGUgZmFjdCB0aGF0IHR3byBzZXBhcmF0ZSB3YWxscyBjb2xsYXBzZWQsIA0KY2xhaW1lZCB0aGF0IG9ubHkgb25lIOKAnGFjY2lkZW504oCdIGhhZCB0YWtlbiBwbGFjZSByZXN1bHRpbmcgZnJvbSANCm9uZSBwcm94aW1hdGUgY2F1c2UgKHRoZSByYWluZmFsbCkuIFRoZSBjb3VydCBub3RlZCB0aGF0IG90aGVyIA0KY291cnRzIGhhZCByZWFjaGVkIHZhcnlpbmcgY29uY2x1c2lvbnMgaW4gc2ltaWxhciBjaXJjdW1zdGFuY2VzOg0KW1RdaGUgY2F0YXN0cm9waGUgd2FzIG5vdCB0aGUgcmFpbiB0aGF0LCBpbiBpdHNlbGYsIGRpZCANCm5vIGhhcm0uIEl0IHdhcyB0aGUgYnJlYWNoIG9mIHRoZSB3YWxsIGxldHRpbmcgdGhlIHJhaW4gDQp3YXRlciBpbi4gRnVydGhlcm1vcmUsIGlmIHRoZSB3YWxscyB3ZXJlIGxvY2F0ZWQgYmxvY2tzIA0KYXdheSBmcm9tIGVhY2ggb3RoZXIgb24gZGlmZmVyZW50IGpvYiBzaXRlcyBidXQgc3ViamVjdCANCnRvIHRoZSBzYW1lIHJhaW5mYWxsLCBubyBvbmUgY291bGQgY29udGVzdCB0aGF0IHRoZXJlIA0Kd2VyZSB0d28gYWNjaWRlbnRzLiBGb3IgdGhlc2UgcmVhc29ucywgd2UgY29uY2x1ZGUgdGhhdCANCnRoZSBjb2xsYXBzZXMgb2Ygc2VwYXJhdGUgd2FsbHMsIG9mIHNlcGFyYXRlIGJ1aWxkaW5ncyBhdCANCnNlcGFyYXRlIHRpbWVzLCB3ZXJlIGluIGZhY3Qgc2VwYXJhdGUgZGlzYXN0cm91cyBldmVudHMgDQphbmQsIHRodXMsIHR3byBkaWZmZXJlbnQgYWNjaWRlbnRzIHdpdGhpbiB0aGUgbWVhbmluZyBvZiANCnRoZSBwb2xpY3kuIA0KSWQuIGF0IDcwOC4gDQpIb3dldmVyLCB0aGUgY291cnQgYWxzbyBtYWRlIHRoZSBmb2xsb3dpbmcgY29tbWVudDogDQpJbiB0aGUgaW5zdGFudCBjYXNlLCBpdCBjYW5ub3QgYmUgc2FpZCB0aGF0IG9uZSB3b3VsZCANCmFsbGVnZSBidXQgb25lIGFjdCBvZiBuZWdsaWdlbmNlIGFzIHRoZSBwcm94aW1hdGUgY2F1c2UgDQpvZiB0aGUgaW5qdXJpZXMgdG8gdGhlIHR3byBzZXBhcmF0ZSBwcm9wZXJ0aWVzLiBIZXJlIA0KdGhlIHByb3hpbWF0ZSBjYXVzZSBjYW5ub3QgYmUgc2FpZCB0byBiZSB0aGUgaGVhdnkgDQpyYWluZmFsbCBidXQgc2VwYXJhdGUgbmVnbGlnZW50IGFjdHMgb2YgcHJlcGFyaW5nIGFuZCANCmNvbnN0cnVjdGluZyBzZXBhcmF0ZSB3YWxscyB3aGljaCwgZm9yIGFsbCB3ZSBrbm93LCBtYXkgDQpoYXZlIGJlZW4gYnVpbHQgYXQgc2VwYXJhdGUgdGltZXMgYnkgc2VwYXJhdGUgZ3JvdXBzIG9mIA0Kd29ya21lbi4NCklkLiBUaGUgY291cnQgZm91bmQgdGhhdCB0aGUgcHJveGltYXRlIGNhdXNlIHdhcyBzZXBhcmF0ZSANCm5lZ2xpZ2VudCBhY3RzIG9mIHByZXBhcmluZyBhbmQgY29uc3RydWN0aW5nIHNlcGFyYXRlIHdhbGxzLiBJZiANCnRoZXJlIGlzIGEgY29tbW9uIHRoZW1lLCBpdCBtYXkgYmUgdGhhdCB0aGUgY291cnRzIGdlbmVyYWxseSANCmFwcGx5IHRoZSBudW1iZXIgb2Ygb2NjdXJyZW5jZXMgdGhhdCBtYXhpbWl6ZXMgY292ZXJhZ2UgZm9yIA0KdGhlIGluc3VyZWQuIFRoaXMgcmVzdWx0IGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgd2lkZWx5IGFjY2VwdGVkIA0KcHJpbmNpcGxlIHRoYXQgYW1iaWd1b3VzIHBvbGljeSBsYW5ndWFnZSB3aWxsIGJlIGludGVycHJldGVkIGluIA0KdGhlIG1hbm5lciB0aGF0IG1heGltaXplcyBjb3ZlcmFnZS4NCkEgY291cnQgbWF5IHJ1bGUgdGhhdCBvbmUgb2NjdXJyZW5jZSB0b29rIHBsYWNlIGZvciBwdXJwb3NlcyANCm9mIGRldGVybWluaW5nIHRoZSBudW1iZXIgb2YgZGVkdWN0aWJsZXMgb3IgcmV0ZW50aW9ucywgYnV0IA0KbXVsdGlwbGUgb2NjdXJyZW5jZXMgdG9vayBwbGFjZSBmb3IgcHVycG9zZXMgb2YgcG9saWN5IGxpbWl0cyANCmFwcGxpY2FibGUgb24gYSDigJxwZXIgb2NjdXJyZW5jZeKAnSBiYXNpcy4gU2VlIE93ZW5zLUlsbGlub2lzLCANCkluYy4gdi4gQWV0bmEgQ2FzLiAmYW1wOyBTdXIuIENvLiwgNTk3IEYuIFN1cHAuIDE1MTUsIDE1MjggKEQuRC5DLiANCjE5ODQpICjigJxbVF1oZSBhbGxvY2F0aW9uIG9mIHJpZ2h0cyBhbmQgb2JsaWdhdGlvbnMgZXN0YWJsaXNoZWQgYnkgDQp0aGUgaW5zdXJhbmNlIHBvbGljaWVzIHdvdWxkIGJlIHVuZGVybWluZWQgaWYgW3RoZSBpbnN1cmVk4oCZc10gDQpjb3ZlcmFnZSBpcyBzdWJqZWN0IHRvIG11bHRpcGxlIGRlZHVjdGlibGVzLuKAnSk7IHNlZSBhbHNvIEF5bHdhcmQsIA0Kc3VwcmEsIGF0IDQwICjigJxJbiBzZWVraW5nIHRvIOKAmG1heGltaXpl4oCZIGNvdmVyYWdlLCBjb3VydHMgZmlyc3QgbG9vayANCnRvIHRoZSB0eXBlIG9mIGNsYWltcyBwcmVzZW50ZWQuIERvZXMgdGhlIGluc3VyZWQgZmFjZSBodW5kcmVkcyANCm9mIHNtYWxsIGNsYWltcyB0aGF0IHdpbGwgYmUgYWJzb3JiZWQgYnkgcG9saWN5IGRlZHVjdGlibGVzIGFuZCANCnNlbGYtIHJldGVudGlvbnM/IElmIHNvLCB0aGV5IGFyZSBmYXIgbW9yZSBsaWtlbHkgdG8gdHJlYXQgdGhlIGNsYWltcyANCmFzIGludm9sdmluZyBvbmUg4oCYb2NjdXJyZW5jZS7igJkgQnkgY29udHJhc3QsIGNvdXJ0cyBhcmUgbW9yZSANCmxpa2VseSB0byBmaW5kIG11bHRpcGxlIOKAmG9jY3VycmVuY2Vz4oCZIHdoZXJlIHRoZSBsaW1pdHMgb2YgbGlhYmlsaXR5IA0KYXJlIHJlbGF0aXZlbHkgbG93IGNvbXBhcmVkIHRvIHRoZSBpbnN1cmVk4oCZcyB0b3RhbCBleHBvc3VyZS7igJ0gDQooY2l0YXRpb25zIG9taXR0ZWQpKS4gDQpUaGUgMjAxNyBBdGxhbnRpYyBIdXJyaWNhbmUgU2Vhc29uOyBJbnN1cmFuY2UgQ292ZXJhZ2UgZm9yIEhhcnZleSwgSXJtYSwgSm9zZSwgYW5kIE1hcmlhIOKAoiBQYWdlIDE1DQpNQUtJTkcgQSBDT1ZFUkFHRSBDTEFJTSANCkluc3VyYW5jZSBwb2xpY2llcyB0eXBpY2FsbHkgaW1wb3NlIG9uIGFuIGluc3VyZWQgb2JsaWdhdGlvbnMgDQp0aGF0IG11c3QgYmUgc2F0aXNmaWVkIHRvIGNvbGxlY3QgaW5zdXJhbmNlLiBJbiBzZWVraW5nIGNvdmVyYWdlLCANCm1hbnkgYnVzaW5lc3NlcyBtYXkgb3Zlcmxvb2ssIG9yIG5vdCBiZSBhd2FyZSBvZiwgdGhlaXIgZHV0aWVzLiANClRvIHByZXNlcnZlIGNvdmVyYWdlLCBpbnN1cmVkcyBzaG91bGQgcmVjb2duaXplIGFuZCBwZXJmb3JtIA0KdGhlc2UgZHV0aWVzLiBXaGlsZSBhbiBpbnN1cmVyIG1heSB3YWl2ZSBpdHMgcmlnaHQgdG8gaW5zaXN0IG9uIA0KcGVyZm9ybWFuY2UsIGluc3VyZWRzIHNob3VsZCBwcm9hY3RpdmVseSBzZWVrIHRvIGNvbXBseSB3aXRoIA0KY292ZXJhZ2Ugb2JsaWdhdGlvbnMuDQpBLiBUaGUgRHV0eSB0byBQcm92aWRlIE5vdGljZQ0KTW9zdCBpbnN1cmFuY2UgcG9saWNpZXMgcmVxdWlyZSB0aGF0IGFuIGluc3VyZWQgbm90aWZ5IHRoZSANCmluc3VyZXIg4oCcYXMgc29vbiBhcyBwb3NzaWJsZeKAnSBvciDigJxhcyBzb29uIGFzIHByYWN0aWNhYmxl4oCdIGFmdGVyIGEgDQpsb3NzIG9yIG90aGVyIGluc3VyZWQgZXZlbnQuIFRoaXMgbm90aWNlIHNob3VsZCBiZSBpbiB3cml0aW5nIGZvciANCnB1cnBvc2VzIG9mIGNyZWF0aW5nIGEgcmVjb3JkLCBhbHRob3VnaCBlYXJseSBvcmFsIG5vdGljZSBtYXkgDQpzdWZmaWNlLCBmb2xsb3dlZCBieSB3cml0dGVuIGNvbmZpcm1hdGlvbi4gQW4gaW5zdXJlZCBmcmVxdWVudGx5IA0KbXVzdCBpZGVudGlmeSBpdHNlbGYgYW5kIHByb3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRpbWUsIA0KcGxhY2UsIGFuZCBjaXJjdW1zdGFuY2VzIG9mIHRoZSBsb3NzLiBUaGlzIG5vdGljZSByZXF1aXJlbWVudCBpcyANCmludGVuZGVkIHRvIGdpdmUgYW4gaW5zdXJlciBhIGNoYW5jZSB0byBpbnZlc3RpZ2F0ZSBhIGxvc3Mgb3IgY2xhaW0gDQp3aGlsZSB0aGUgZXZpZGVuY2UgaXMgc3RpbGwgZnJlc2guIA0KQ291cnRzIGZyZXF1ZW50bHkgY29uc3RydWUgbm90aWNlIHByb3Zpc2lvbnMgdG8gcmVxdWlyZSB0aGF0IGFuIA0KaW5zdXJlZCBwcm92aWRlIG5vdGljZSB3aXRoaW4gYSByZWFzb25hYmxlIHRpbWUgYWZ0ZXIgYW4gaW5zdXJlZCANCmV2ZW50IG9jY3Vycy4gR2lsbGlhcmQgdi4gUHJvZ3Jlc3NpdmUsIDk0NSBOLlkuUy4yZCA3MzksIDc0MCAoQXBwLiANCkRpdi4gMjAxMikgKHdoZW4g4oCc4oCYYW4gaW5zdXJlZCBpcyByZXF1aXJlZCB0byBwcm92aWRlIG5vdGljZSBvZiBhIA0KY2xhaW0gYXMgc29vbiBhcyBwcmFjdGljYWJsZSwgc3VjaCBub3RpY2UgbXVzdCBiZSBnaXZlbiB3aXRoaW4gDQphIHJlYXNvbmFibGUgdGltZSB1bmRlciBhbGwgb2YgdGhlIGNpcmN1bXN0YW5jZXMu4oCZ4oCdIChjaXRhdGlvbiANCm9taXR0ZWQpKTsgQXJyb3dvb2QgSW5kZW0uIENvLiB2LiBLaW5nLCAzOSAzMDQgQ29ubi4gMTc5LCAxOTggDQooMjAxMik7IFBlY2sgdi4gUHViLiBTZXJ2LiBNdXQuIElucy4gQ28uLCAzMjYgRi4zZCAzMzAsIDMzOCAoMmQgQ2lyLiANCjIwMDMpICh3aGV0aGVyIHVudGltZWx5IG5vdGljZSBpcyBwcmVqdWRpY2lhbCByZXF1aXJlcyBhIGZhY3R1YWwgDQppbnF1aXJ5IGludG8gYWxsIG9mIHRoZSBjaXJjdW1zdGFuY2VzKTsgQ1NSIEx0ZC4gdi4gQ2lnbmEgQ29ycC4sIA0KMjAwNiBVLlMuIERpc3QuIExFWElTIDgxNDksIGF0ICo0OS01MCAoRC5OLkouIEZlYi4gMjIsIDIwMDYpIA0KKE5ldyBKZXJzZXkgY291cnRzIGludGVycHJldCDigJzigJhhcyBzb29uIGFzIHByYWN0aWNhYmxl4oCZ4oCdIHRvIG1lYW4gDQrigJzigJh3aXRoaW4gYSByZWFzb25hYmxlIHRpbWXigJnigJ0pIChjaXRpbmcgY2FzZXMpLiBJbiBIdWxsIHYuIEhhcnRmb3JkIA0KRmlyZSBJbnN1cmFuY2UgQ28uIDEwMCBOLkguIDM4NyAoMTk1NiksIHRoZSBpbnN1cmVk4oCZcyB2YWNhdGlvbiANCmhvbWUgd2FzIGRhbWFnZWQgYnkgYSB3aW5kc3Rvcm0sIHdoaWNoIHRoZSBpbnN1cmVkIGRpZCBub3QgDQpkaXNjb3ZlciB1bnRpbCB0aHJlZSB5ZWFycyBhZnRlciB0aGUgc3Rvcm0sIHdoZW4gdGhlIGluc3VyZWQgDQpyZXR1cm5lZCB0byB0aGUgcHJvcGVydHkuIFRoZSBpbnN1cmVk4oCZcyBwb2xpY3kgaGFkIGEgMzAtZGF5IA0Kbm90aWNlIHByb3Zpc2lvbiwgYnV0IGFsc28gZXhwcmVzc2x5IHBlcm1pdHRlZCB0aGUgaW5zdXJlZCB0byANCnZhY2F0ZSB0aGUgcHJlbWlzZXMuIElkLiBhdCAzOTAuIFRoZSBjb3VydCwgaW5zdGVhZCBvZiBzdHJpY3RseSANCmFwcGx5aW5nIHRoZSAzMC1kYXkgbm90aWNlIHJlcXVpcmVtZW50IHRvIGRlbnkgY292ZXJhZ2UsIA0KcmVtYW5kZWQgdGhlIGNhc2UgdG8gdGhlIGxvd2VyIGNvdXJ0IHRvIGRldGVybWluZSB3aGV0aGVyIA0KdGhlIGluc3VyZWQgZXhlcmNpc2VkIHJlYXNvbmFibGUgY2FyZSBpbiBkaXNjb3ZlcmluZyB0aGUgZGFtYWdlIA0KaW4gYSByZWFzb25hYmxlIGFtb3VudCBvZiB0aW1lIGluIGxpZ2h0IG9mIHRoZSBzdXJyb3VuZGluZyANCmNpcmN1bXN0YW5jZXMuIElkLiBhdCAzOTE7IHNlZSBhbHNvIFByb3ZpZGVudCBMaWZlICZhbXA7IEFjY2lkZW50IElucy4gDQpDby4gdi4gQmVydG1hbiwgMTUxIEYuMmQgMTAwMSwgMTAwNS0wNiAoNnRoIENpci4gMTk0NSkuDQpUaGUgaW5zdXJlciBtYXkgYmUgZXhjdXNlZCBmcm9tIGl0cyBvYmxpZ2F0aW9ucyBpZiB0aGUgaW5zdXJlZCANCmZhaWxzIHRvIGV4ZXJjaXNlIHJlYXNvbmFibGUgY2FyZSBpbiBub3RpZnlpbmcgdGhlIGluc3VyZXIgb2YgYSANCmNsYWltIHdpdGhpbiBhIHJlYXNvbmFibGUgdGltZSBmcmFtZS4gSG93ZXZlciwgbWFueSBsZWdpdGltYXRlIA0KcmVhc29ucyBtYXkgZXhpc3QgdGhhdCBqdXN0aWZ5IG5vdCBwcm92aWRpbmcgbm90aWNlIGltbWVkaWF0ZWx5IA0KYWZ0ZXIgYSBsb3NzLCBpbmNsdWRpbmcgdGhlIGxhY2sgb2YgcG93ZXIgYW5kIHRlbGVwaG9uZSBzZXJ2aWNlcywgDQp0aGUgbGFjayBvZiBpbnN1cmFuY2UgaW5mb3JtYXRpb24gKGJlY2F1c2UsIGZvciBleGFtcGxlLCB0aGUgDQppbmZvcm1hdGlvbiB3YXMgZGVzdHJveWVkIG9yIHdhcyBrZXB0IGluIHNhZmUgZGVwb3NpdCBib3hlcyBhdCANCmJhbmtzIHRoYXQgd2VyZSBjbG9zZWQpIGFuZCB0aGUgbmVlZCB0byBjb25jZW50cmF0ZSBvbiBlZmZvcnRzIA0KdG8gcHJvdGVjdCBsaWZlIG9yIHByb3BlcnR5LiBOb25ldGhlbGVzcywgaW5zdXJlZHMgc2hvdWxkIHRha2UgDQppbW1lZGlhdGUgc3RlcHMgdG8gcHJvdmlkZSBub3RpY2UuIE5vdGljZSB0byBhIGJyb2tlciBhbG9uZSBtYXkgDQpub3QgYmUgc3VmZmljaWVudCBpZiB0aGUgYnJva2VyIGZhaWxzIHRvIGdpdmUgbm90aWNlIHRvIHRoZSBwcm9wZXIgDQppbnN1cmVycy4gQXMgYSBwcmFjdGljYWwgdGlwLCB0aGUgaW5zdXJlZCBzaG91bGQgYmUgY29waWVkIG9uIGFsbCANCmNvbW11bmljYXRpb25zIHdpdGggdGhlIGluc3VyZXLigJRhdCBsZWFzdCBwcml2YXRlbHksIHRvIGNyZWF0ZSBhIA0KcmVjb3JkIGluIHRoZSBldmVudCB0aGUgYnJva2VyIGRvZXMgbm90IHByb3Blcmx5IGdpdmUgbm90aWNlLg0KTmV3IFlvcmsgZW5hY3RlZCB0aGUg4oCcbm8tcHJlanVkaWNl4oCdIHJ1bGUgZm9yIHBvbGljaWVzIGlzc3VlZCANCmFmdGVyIEphbnVhcnkgMTcsIDIwMDkuIFNlZSBOLlkuIElucy4gTGF3ICYjMTY3OyAzNDIwLiBXaXRoIHJlc3BlY3QgDQp0byBwb2xpY2llcyBpc3N1ZWQgYmVmb3JlIHRoYXQgZGF0ZSwgYW4gaW5zdXJlciBtYXkgZGlzY2xhaW0gDQpjb3ZlcmFnZSB3aXRob3V0IHJlZ2FyZCB0byBwcmVqdWRpY2Ugd2hlbiB0aGUgaW5zdXJlZCBmYWlscyANCnRvIHNhdGlzZnkgdGhlIG5vdGljZSBjb25kaXRpb24uIFdpdGggcmVzcGVjdCB0byBwb2xpY2llcyBpc3N1ZWQgDQphZnRlciB0aGF0IGRhdGUsIGFuIGluc3VyZXIgbWF5IG5vdCBkZW55IGNvdmVyYWdlIGJhc2VkIHVwb24gDQpsYXRlIG5vdGljZSB1bmxlc3MgdGhlIGluc3VyZXIgY2FuIGRlbW9uc3RyYXRlIHRoYXQgaXQgaGFzIGJlZW4gDQpwcmVqdWRpY2VkLiBTaW1pbGFybHksIOKAnOKAmENvbm5lY3RpY3V0IHJlcXVpcmVzIHR3byBjb25kaXRpb25zIA0KdG8gYmUgc2F0aXNmaWVkIGJlZm9yZSBhbiBpbnN1cmVy4oCZcyBkdXRpZXMgY2FuIGJlIGRpc2NoYXJnZWQgDQpwdXJzdWFudCB0byB0aGUg4oCcbm90aWNl4oCdIHByb3Zpc2lvbiBvZiBhIHBvbGljeTogKDEpIGFuIHVuZXhjdXNlZCwgDQp1bnJlYXNvbmFibGUgZGVsYXkgaW4gbm90aWZpY2F0aW9uIGJ5IHRoZSBpbnN1cmVkOyBhbmQgDQooMikgcmVzdWx0aW5nIG1hdGVyaWFsIHByZWp1ZGljZSB0byB0aGUgaW5zdXJlci7igJ0gQXJyb3dvb2QsIDM5IA0KQS4zZCBhdCAxOTguIOKAnFtUXWhlIGluc3VyZXIgYmVhcnMgdGhlIGJ1cmRlbiBvZiBwcm92aW5nLCBieSBhIA0KcHJlcG9uZGVyYW5jZSBvZiBldmlkZW5jZSwgdGhhdCBpdCBoYXMgYmVlbiBwcmVqdWRpY2VkIGJ5IHRoZSANCmluc3VyZWTigJlzIGZhaWx1cmUgdG8gY29tcGx5IHdpdGggYSBub3RpY2UgcHJvdmlzaW9uLuKAnSBJZC4gYXQgMjAxOyANCnNlZSBhbHNvIEdhemlzIHYuIE1pbGxlciwgMTg2IE4uSi4gMjI0LCAyMjktMzIgKE4uSi4gMjAwNikgKGFuIA0KaW5zdXJlciBtdXN0IHNob3cgcHJlanVkaWNlIGZyb20gYW4gaW5zdXJlZOKAmXMgZmFpbHVyZSB0byBwcm92aWRlIA0Kbm90aWNlIOKAnGFzIHNvb24gYXMgcHJhY3RpY2FibGXigJ0pIChjaXRpbmcgY2FzZXMpOyBPcmlvbGUgR2FyZGVucyANCkNvbmRvcy4sIElJSSB2LiBJbmRlcGVuZGVuY2UgQ2FzLiAmYW1wOyBTdXIuIENvLiwgMjAxMiBVLlMuIERpc3QuIExFWElTIA0KMjkxMDAsIGF0ICoyMy0yOCAoUy5ELiBGbGEuIE1hci4gNiwgMjAxMikgKGRpc2N1c3NpbmcgcHVycG9zZSANCm9mIG5vdGljZSBwcm92aXNpb24gYW5kIGZpbmRpbmcgdGhhdCB0aGUgaW5pdGlhbCBjbGFpbSB3YXMgbWFkZSANCndpdGhpbiBhIHJlYXNvbmFibGUgdGltZSBvZiBIdXJyaWNhbmUgV2lsbWEsIGFuZCB0aGUgbm90aWNlIA0KcHJvdmlzaW9uIGluIHRoZSBwb2xpY3kgd2FzIGFtYmlndW91cyBiZWNhdXNlIGl0IGRpZCBub3Qgc3BlY2lmeSANCndoZXRoZXIgaXQgYWxzbyBwZXJ0YWluZWQgdG8gYW55IHN1cHBsZW1lbnRhbCBjbGFpbSkuDQpCLiBUaGUgRHV0eSB0byBDb29wZXJhdGUgDQpUaGUgZHV0aWVzIG91dGxpbmVkIGFib3ZlIG1heSBiZSBzZXQgb3V0IHNwZWNpZmljYWxseSBpbiBhbiANCmluc3VyYW5jZSBwb2xpY3kuIE1vcmVvdmVyLCBhbG1vc3QgYWxsIHBvbGljaWVzIGFsc28gY29udGFpbiBhIA0KbW9yZSBnZW5lcmFsIOKAnGNvb3BlcmF0aW9u4oCdIHByb3Zpc2lvbiBvYmxpZ2F0aW5nIHRoZSBpbnN1cmVkIA0KdG8gY29vcGVyYXRlIHdpdGggdGhlIGluc3VyZXIgaW4gaXRzIGludmVzdGlnYXRpb24gb2YgYSBsb3NzIGFuZCANCm90aGVyd2lzZS4gVGhpcyBkdXR5IG9mIGNvb3BlcmF0aW9uIG9ibGlnYXRlcyB0aGUgaW5zdXJlZCANCnRvIHByb3ZpZGUgYWNjZXNzIHRvIHJlbGV2YW50IGJvb2tzIGFuZCByZWNvcmRzLCBwcm92aWRlIA0KdGhlIGluc3VyZXJzIHdpdGggYW4gb3Bwb3J0dW5pdHkgdG8gaW50ZXJ2aWV3IHdpdG5lc3NlcyBhbmQgDQplbXBsb3llZXMsIG5vdCBjb21taXQgZnJhdWQgb3IgcGVyanVyeSwgbm90IHJlbGVhc2UgY2xhaW1zIA0KYWdhaW5zdCBvdGhlciBwYXJ0aWVzIHRvIHdoaWNoIHRoZSBpbnN1cmVyIG1heSBoYXZlIGEgcmlnaHQgb2YgDQpzdWJyb2dhdGlvbiwgbm90IGVudGVyIGludG8gdW5hdXRob3JpemVkIHNldHRsZW1lbnRzIHdpdGggb3RoZXIgDQpwYXJ0aWVzLCBhbmQgYXNzaXN0IHRoZSBpbnN1cmVyIGluIHByb2N1cmluZyBldmlkZW5jZSBhbmQgc2VjdXJpbmcgDQp0aGUgYXR0ZW5kYW5jZSBvZiB3aXRuZXNzZXMgYXQgZGVwb3NpdGlvbnMsIGhlYXJpbmdzLCBhbmQgdHJpYWwuIA0KVGhlIDIwMTcgQXRsYW50aWMgSHVycmljYW5lIFNlYXNvbjsgSW5zdXJhbmNlIENvdmVyYWdlIGZvciBIYXJ2ZXksIElybWEsIEpvc2UsIGFuZCBNYXJpYSDigKIgUGFnZSAxNg0KQW4gaW5zdXJlZOKAmXMgYnJlYWNoIG9mIGl0cyBkdXR5IHRvIGNvb3BlcmF0ZSBjb3VsZCByZWxpZXZlIGFuIA0KaW5zdXJlciBvZiBpdHMgcG9saWN5IG9ibGlnYXRpb25zLiBIb3dldmVyLCBtb3N0IGNvdXJ0cyByZXF1aXJlIA0KdGhhdCB0aGUgaW5zdXJlciBwcm92ZSB0aGF0IGl0IGhhcyBiZWVuIHByZWp1ZGljZWQgYnkgdGhlIA0KYnJlYWNoLiBTZWUsIGUuZy4sIENvcGVsaW4gdi4gU3RhdGUgRmFybSBJbnMuLCAyMDA5IFUuUy4gRGlzdC4gTEVYSVMgDQoxMDgwMCAoRS5ELiBMYS4gRmViLiAxMiwgMjAwOSkgKGluc3VyZXIgbm90IGVudGl0bGVkIHRvIHN1bW1hcnkgDQpqdWRnbWVudCB3aGVyZSBpbnN1cmVkIGhvbWVvd25lcnMgcHJlc2VudGVkIGV2aWRlbmNlIHRoYXQgDQp0aGV5IGNvb3BlcmF0ZWQgd2l0aCBpbnN1cmVyIGFmdGVyIG1ha2luZyBjbGFpbSB1bmRlciBwb2xpY3kgZm9yIA0KZGFtYWdlcyBjYXVzZWQgYnkgSHVycmljYW5lIEthdHJpbmEgYnkgc3VibWl0dGluZyByZXF1ZXN0ZWQgDQpkb2N1bWVudGF0aW9uIGRlc3BpdGUgZGVzdHJ1Y3Rpb24gb2YgcmVjb3JkcyBkdXJpbmcgaHVycmljYW5lKTsgDQpDaGVtLiBMZWFtYW4gVGFuayBMaW5lcywgSW5jLiB2LiBBZXRuYSBDYXMuICZhbXA7IFN1ci4gQ28uLCA4MTcgDQpGLiBTdXBwLiAxMTM2LCAxMTYwIChELk4uSi4gMTk5MykgKOKAnE5ldyBKZXJzZXkgbGF3IHByb3ZpZGVzIA0KdGhhdCBhbiBpbnN1cmFuY2UgY2FycmllciBtYXkgZGlzY2xhaW0gY292ZXJhZ2UgcHVyc3VhbnQgdG8gYSANCmNvb3BlcmF0aW9uIGNsYXVzZSBvbmx5IGlmIGl0IHByb3ZlcyAoMSkgdGhhdCB0aGUgaW5zdXJlZCBicmVhY2hlZCANCnRoZSBjb29wZXJhdGlvbiBjbGF1c2UgYW5kICgyKSB0aGF0IHRoZSBjYXJyaWVyIHN1ZmZlcmVkIGEgDQpsaWtlbGlob29kIG9mIGFwcHJlY2lhYmxlIHByZWp1ZGljZSBhcyBhIHJlc3VsdCBvZiB0aGlzIGJyZWFjaC7igJ0pOyANClR3aW4gQ2l0eSBGaXJlIElucy4gQ28uIHYuIEtpbmcgQ250eS4sIFdhc2guLCA3NDkgRi4gU3VwcC4gMjMwLCANCjIzMyAoVy5ELiBXYXNoLiAxOTkwKSAoaW5zdXJlciBtdXN0IHNob3cgYm90aCBicmVhY2ggb2YgZHV0eSANCnRvIGNvb3BlcmF0ZSBieSB0aGUgaW5zdXJlZCBhbmQgcHJlanVkaWNlIHRvIGJlIHJlbGlldmVkIG9mIGl0cyANCmR1dGllcyk7IEJpbGxpbmd0b24gdi4gSW50ZXJpbnMuIEV4Y2guIG9mIFMuIENhbC4sIDcxIENhbC4gMmQgNzI4LCA3MzctDQozOCAoMTk2OSkgKOKAnFtBXW4gaW5zdXJlciwgaW4gb3JkZXIgdG8gZXN0YWJsaXNoIGl0IHdhcyBwcmVqdWRpY2VkIA0KYnkgdGhlIGZhaWx1cmUgb2YgdGhlIGluc3VyZWQgdG8gY29vcGVyYXRlIGluIGhpcyBkZWZlbnNlLCBtdXN0IA0KZXN0YWJsaXNoIGF0IHRoZSB2ZXJ5IGxlYXN0IHRoYXQgaWYgdGhlIGNvb3BlcmF0aW9uIGNsYXVzZSBoYWQgDQpub3QgYmVlbiBicmVhY2hlZCB0aGVyZSB3YXMgYSBzdWJzdGFudGlhbCBsaWtlbGlob29kIHRoZSB0cmllciANCm9mIGZhY3Qgd291bGQgaGF2ZSBmb3VuZCBpbiB0aGUgaW5zdXJlZOKAmXMgZmF2b3Iu4oCdKTsgTi5ZLiBDZW50LiANCk11dC4gRmlyZSBJbnMuIENvLiB2LiBSYWZhaWxvdiwgODQwIE4uWS5TLjJkIDM1OCwgMzYwIChBcHAuIERpdi4gDQoyMDA3KSAo4oCcSW4gb3JkZXIgdG8gZXN0YWJsaXNoIGJyZWFjaCBvZiBhIGNvb3BlcmF0aW9uIGNsYXVzZSwgdGhlIA0KaW5zdXJlciBtdXN0IHNob3cgdGhhdCB0aGUgaW5zdXJlZCDigJhlbmdhZ2VkIGluIGFuIHVucmVhc29uYWJsZSANCmFuZCB3aWxsZnVsIHBhdHRlcm4gb2YgcmVmdXNpbmcgdG8gYW5zd2VyIG1hdGVyaWFsIGFuZCByZWxldmFudCANCnF1ZXN0aW9ucyBvciB0byBzdXBwbHkgbWF0ZXJpYWwgYW5kIHJlbGV2YW50IGRvY3VtZW50c+KAmeKAnSANCihjaXRhdGlvbnMgb21pdHRlZCkpLg0KQW4gaW5zdXJlZCBzaG91bGQgbWFrZSBhIGdvb2QgZmFpdGggZWZmb3J0IHRvIGNvbXBseSB3aXRoIGl0cyANCmR1dHkgdG8gY29vcGVyYXRlIGFuZCBzaG91bGQgaG9ub3IgcmVhc29uYWJsZSByZXF1ZXN0cyBmcm9tIA0KaXRzIGluc3VyZXIgKHJlcXVlc3RzIGZvciBwcml2aWxlZ2VkIGluZm9ybWF0aW9uIG1heSBub3QgYmUgDQpyZWFzb25hYmxlKSB0byBmYWNpbGl0YXRlIHJlaW1idXJzZW1lbnQgZm9yIGl0cyBsb3NzZXMgYW5kIG5vdCByZWx5IA0Kb24gdGhlIGZhY3QgdGhhdCBpdCBtYXkgYmUgZGlmZmljdWx0IGZvciB0aGUgaW5zdXJlciB0byBwcm92ZSB0aGF0IA0KaXQgaGFzIGJlZW4gcHJlanVkaWNlZCBieSB0aGUgaW5zdXJlZOKAmXMgbm9uLWNvbXBsaWFuY2UuIE1vc3QgDQpwcm92aXNpb25zIHJlcXVpcmluZyB0aGUgY29vcGVyYXRpb24gb2YgdGhlIGluc3VyZWQgYWxzbyBwcm92aWRlIA0KdGhhdCB0aGUgaW5zdXJlciB3aWxsIHBheSBmb3IgYWxsIGFkZGl0aW9uYWwgY29zdHMgdGhlIGluc3VyZWQgaW5jdXJzIA0KY29tcGx5aW5nIHdpdGggdGhlIGluc3VyZXLigJlzIHJlcXVlc3RzLg0KQy4gUHJvb2ZzIG9mIExvc3MgDQpNb3N0IGZpcnN0LXBhcnR5IGluc3VyYW5jZSBwb2xpY2llcyByZXF1aXJlIHRoYXQgYW4gaW5zdXJlZCANCnByb3ZpZGUgYSDigJxwcm9vZiBvZiBsb3NzLCBzaWduZWQgYW5kIHN3b3JuIHRvIGJ5IHRoZSBpbnN1cmVkLOKAnSANCmluY2x1ZGluZyBzdGF0ZW1lbnRzIG9mIHRoZSB0aW1lIGFuZCBvcmlnaW4gb2YgdGhlIGxvc3M7IHRoZSANCmludGVyZXN0IG9mIHRoZSBpbnN1cmVkIGFuZCBvdGhlcnMgaW4gdGhlIHByb3BlcnR5OyB0aGUgYWN0dWFsIA0KY2FzaCB2YWx1ZSBvZiB0aGUgcHJvcGVydHkgZGFtYWdlZDsgYWxsIGVuY3VtYnJhbmNlcyBvbiB0aGUgDQpwcm9wZXJ0eTsgYWxsIG90aGVyIGNvbnRyYWN0cyBvZiBpbnN1cmFuY2UgcG90ZW50aWFsbHkgY292ZXJpbmcgDQphbnkgb2YgdGhlIHByb3BlcnR5OyBhbGwgY2hhbmdlcyBpbiB0aGUgdGl0bGUsIHVzZSwgb2NjdXBhdGlvbiwgDQpsb2NhdGlvbiwgYW5kIHBvc3Nlc3Npb24gb2YgdGhlIHByb3BlcnR5IHNpbmNlIHRoZSBwb2xpY3kgd2FzIA0KaXNzdWVkOyBieSB3aG9tIGFuZCBmb3Igd2hhdCBwdXJwb3NlIGFueSBidWlsZGluZ3Mgd2VyZSANCm9jY3VwaWVkIGF0IHRoZSB0aW1lIG9mIHRoZSBsb3NzOyBhbmQgcGxhbnMgYW5kIHNwZWNpZmljYXRpb25zIA0KZm9yIGFsbCBidWlsZGluZ3MsIGZpeHR1cmVzLCBhbmQgbWFjaGluZXJ5IGRlc3Ryb3llZCBvciBkYW1hZ2VkLiANClNlZSBWZXJzYWkgTWdtdC4gQ29ycC4gdi4gQ2xhcmVuZG9uIEFtLiBJbnMuIENvLiwgNTk3IEYuM2QgNzI5LCANCjczNS0zNiAoNXRoIENpci4gMjAxMCkgKHdoZW4gaW5zdXJlZCBjb21wbGllZCB3aXRoIHBvbGljeSBpbiANCnN1Ym1pdHRpbmcgcHJvb2ZzIG9mIGxvc3MsIGluc3VyZXIgY291bGQgbm90IHJlcXVpcmUgYWRkaXRpb25hbCANCmRvY3VtZW50YXRpb24gd2hlbiBwb2xpY3kgY3JlYXRlZCBubyBvYmxpZ2F0aW9uIHRvIGRvIHNvKS4gDQpQcm9vZnMgb2YgbG9zcyB1c3VhbGx5IG11c3QgYmUgc3VibWl0dGVkIHdpdGhpbiBhIHJlbGF0aXZlbHkgc2hvcnQgDQp0aW1l4oCUb2Z0ZW4gd2l0aGluIDYwIGRheXMgYWZ0ZXIgdGhlIGxvc3MgaW5jZXB0cyBvciB3aXRoaW4gNjAgDQpkYXlzIGFmdGVyIHRoZSBpbnN1cmVyIHJlcXVlc3RzIGEgcHJvb2Ygb2YgbG9zcy4gU2VlLCBlLmcuLCBNYWxlaCANCnYuIE4uWS4gUHJvcC4gSW5zLiBVbmRlcndyaXRpbmcgQXNz4oCZbiwgNjQgTi5ZLjJkIDYxMywgNjE0ICgxOTg0KTsgDQpTYWJhIFJ1ZywgSW5jLiB2LiBHcmVhdCBBbS4gSW5zLiBDb3MuLCA2NzggTi5ZLlMuMmQgNjI5LCA2MjkgKEFwcC4gDQpEaXYuIDE5OTgpOyBMaXR0ZXIgdi4gQWxsc3RhdGUgSW5zLiBDby4sIDYxNyBOLlkuUy4yZCAyMDUsIDIwNSAoQXBwLiANCkRpdi4gMTk5NCkuIEhvd2V2ZXIsIGlmIGFuIGluc3VyZWQgZG9lcyBub3QgZnVsbHkgY29tcGx5LCBpdCBzdGlsbCANCm1heSBiZSBlbnRpdGxlZCB0byBjb3ZlcmFnZSBpZiBpdCBzdWJzdGFudGlhbGx5IGNvbXBsaWVkIHdpdGggDQp0aGUgcmVxdWlyZW1lbnQuIFNlZSwgZS5nLiwgU2NodWx0eiB2LiBRdWVlbiBJbnMuIENvLiwgMzk5IFMuVy4yZCANCjIzMCwgMjM0IChNby4gQ3QuIEFwcC4gMTk2NSkgKGluc3VyZWQgZGlkIG5vdCBmb3JmZWl0IGl0cyByaWdodCANCnRvIHJlY292ZXIgZm9yIHByb3BlcnR5IGRhbWFnZSBjYXVzZWQgYnkgd2luZHN0b3JtIHdoZW4gDQpwcm92aWRlZCBpbnN1cmVyIHN1YnN0YW50aWFsIGV2aWRlbmNlIG9mIGRhbWFnZSBidXQgbmV2ZXIgZmlsZWQgDQpmb3JtYWwgcHJvb2Ygb2YgbG9zcyk7IEJyb29raW5zIHYuIFN0YXRlIEZhcm0gRmlyZSAmYW1wOyBDYXMuIENvLiwgNTI5IA0KRi4gU3VwcC4gMzg2LCAzOTAgKFMuRC4gR2EuIDE5ODIpLiBBIDIwMTIgZGVjaXNpb24gYXBwbGllZCB0aGUgDQrigJxub3RpY2UtcHJlanVkaWNl4oCdIHJ1bGUgdG8gcHJvb2Ygb2YgbG9zcyBpbiBhIGZpcnN0LXBhcnR5IGNvdmVyYWdlIA0KY2FzZS4gSGVuZGVyc29uIHYuIEZhcm1lcnMgR3JvdXAsIEluYy4sIDIxMCBDYWwuIEFwcC4gNHRoIDQ1OSwgDQo0NzEtNzkgKDIwMTIpICjigJxUaGVyZSBpcyBhbXBsZSByZWFzb24gdG8gYXBwbHkgdGhlIOKAmG5vdGljZS0NCnByZWp1ZGljZeKAmSBydWxlIGhlcmUuIENhbGlmb3JuaWEgaGFzIGEgc3Ryb25nIHB1YmxpYyBwb2xpY3kgYWdhaW5zdCANCnRlY2huaWNhbCBmb3JmZWl0dXJlcy4gU2luY2UgZm9yZmVpdHVyZXMgYXJlIG5vdCBmYXZvcmVkLCBjb25kaXRpb25zIA0KaW4gYSBjb250cmFjdCB3aWxsIGlmIHBvc3NpYmxlIGJlIGNvbnN0cnVlZCB0byBhdm9pZCBmb3JmZWl0dXJlLiBUaGlzIA0KaXMgcGFydGljdWxhcmx5IHRydWUgb2YgaW5zdXJhbmNlIGNvbnRyYWN0c+KAieKApuKAiS4gSW4gb3JkZXIgdG8gZW5mb3JjZSANCmEgZGVmZW5zZSBiYXNlZCB1cG9uIFt0aGUgaW5zdXJlZOKAmXNdIGZhaWx1cmUgdG8gcHJvdmlkZSBhIHRpbWVseSANCnByb29mIG9mIGxvc3MsIFt0aGUgaW5zdXJlcl0gbXVzdCBzaG93IHRoYXQgaXQgc3VmZmVyZWQgc3Vic3RhbnRpYWwgDQpwcmVqdWRpY2UgYXMgYSByZXN1bHQu4oCdKSAoY2l0YXRpb25zIG9taXR0ZWQpLiBOb25ldGhlbGVzcywgYW4gDQppbnN1cmVkIHNob3VsZCBhc2sgZm9yIGEgd3JpdHRlbiBleHRlbnNpb24gb2YgdGltZSB0byBzdWJtaXQgDQppdHMgcHJvb2Ygb2YgbG9zcyBpZiB0aGUgY2xhaW0gaXMgY29tcGxpY2F0ZWQgdG8gZGV2ZWxvcC4gTW9zdCANCmluc3VyYW5jZSBjb21wYW5pZXMgd2lsbCBjb29wZXJhdGUgd2l0aCBzdWNoIGEgcmVxdWVzdC4gDQpELiBFeGFtaW5hdGlvbnMgdW5kZXIgT2F0aA0KTW9zdCBmaXJzdC1wYXJ0eSBpbnN1cmFuY2UgcG9saWNpZXMgZ2l2ZSB0aGUgaW5zdXJlciB0aGUgcmlnaHQgdG8gDQpjb25kdWN0LCBieSBhbnkgcGVyc29uIGl0IG5hbWVzIChpbmNsdWRpbmcgb3V0c2lkZSBjb3Vuc2VsKSwgDQphbiBleGFtaW5hdGlvbiB1bmRlciBvYXRoIOKAnGFzIG9mdGVuIGFzIG1heSBiZSByZWFzb25hYmx5IA0KcmVxdWlyZWTigJ0gYWJvdXQgYW55IG1hdHRlciByZWxhdGluZyB0byB0aGUgaW5zdXJhbmNlIG9yIHRoZSBsb3NzIA0KYW5kIHJlcXVpcmUgdGhhdCB0aGUgaW5zdXJlZCBwcm9kdWNlIHJlbGV2YW50IGJvb2tzIGFuZCByZWNvcmRzIA0KZm9yIGV4YW1pbmF0aW9uLiBBbiBpbnN1cmVk4oCZcyBmYWlsdXJlIHRvIHN1Ym1pdCB0byBhbiBleGFtaW5hdGlvbiANCnVuZGVyIG9hdGggbWF5IGJlIGVub3VnaCB0byBleGN1c2UgYW4gaW5zdXJlciBmcm9tIHBlcmZvcm1pbmcgDQppdHMgZHV0aWVzIHVuZGVyIGEgcG9saWN5LiBTZWUgR291bGQgSW52ZXN0b3JzLCBMLlAuIHYuIEdlbi4gSW5zLiANCkNvLiBvZiBUcmllc3RlICZhbXA7IFZlbmljZSwgNzM3IEYuIFN1cHAuIDgxMiwgODE3IChTLkQuTi5ZLiAxOTkwKSANCijigJxGYWlsdXJlIHRvIGNvbXBseSB3aXRoIGEgcG9saWN5IHByb3Zpc2lvbiByZXF1aXJpbmcgc3VibWlzc2lvbiANCnRvIGFuIGV4YW1pbmF0aW9uIHVuZGVyIG9hdGggaXMgYSBtYXRlcmlhbCBicmVhY2ggb2YgdGhhdCBwb2xpY3ksIA0KcHJlY2x1ZGluZyByZWNvdmVyeSB1bmRlciBpdC7igJ0pOyBzZWUgYWxzbyBCZXJnZW4gdi4gU3RhbmRhcmQgRmlyZSANCklucy4gQ28uLCAxOTk3IENvbm4uIFN1cGVyLiBMRVhJUyAzNDk0LCBhdCAqOS0xMCAoMTk5NykuDQpUaGUgMjAxNyBBdGxhbnRpYyBIdXJyaWNhbmUgU2Vhc29uOyBJbnN1cmFuY2UgQ292ZXJhZ2UgZm9yIEhhcnZleSwgSXJtYSwgSm9zZSwgYW5kIE1hcmlhIOKAoiBQYWdlIDE3DQpUaGUgY2lyY3Vtc3RhbmNlcyBnaXZpbmcgcmlzZSB0byB0aGUgZmFpbHVyZSB0byBzdWJtaXQgYW4gDQpleGFtaW5hdGlvbiBtdXN0IGJlIHJldmlld2VkIGFuZCBhbiBpbnN1cmVyIG11c3QgZXhlcmNpc2UgaXRzIA0KcmlnaHRzIHRvIGFuIGV4YW1pbmF0aW9uIGluIGEgcmVhc29uYWJsZSBtYW5uZXIuIFNlZSBEZWxhaW5lIA0Kdi4gRmluZ2VyIExha2VzIEZpcmUgJmFtcDsgQ2FzLiBDby4sIDgwNiBOLlkuUy4yZCAzMjAsIDMyMiAoQXBwLiBEaXYuIA0KMjAwNSkgKOKAnFRoZSByZWZ1c2FsIG9mIHBsYWludGlmZiB0byBhbnN3ZXIgY2VydGFpbiBxdWVzdGlvbnMgYXQgDQpoaXMgZXhhbWluYXRpb24gdW5kZXIgb2F0aCBkb2VzIG5vdCBjb25zdGl0dXRlIGEg4oCYd2lsbGZ1bCBhbmQgDQphdm93ZWQgb2JzdHJ1Y3Rpb27igJkgb3IgYSDigJhzdWJzdGFudGlhbCBhbmQgbWF0ZXJpYWzigJkgYnJlYWNoIA0Kb2YgaGlzIG9ibGlnYXRpb24gdG8gY29vcGVyYXRlLCBwYXJ0aWN1bGFybHkgd2hlcmUgcGxhaW50aWZmIA0KdWx0aW1hdGVseSBwcm92aWRlZCB0aGUgaW5mb3JtYXRpb24gc291Z2h0IGJ5IGRlZmVuZGFudCBhdCB0aGF0IA0KZXhhbWluYXRpb24u4oCdIChjaXRhdGlvbiBvbWl0dGVkKSk7IEluIHJlIEN5cHJlc3MgVGV4LiBMbG95ZHMsIDIwMTEgDQpUZXguIEFwcC4gTEVYSVMgNjU5OCwgYXQgKjQwLTQyIChUZXguIEFwcC4gQXVnLiAxNSwgMjAxMSkgKGluc3VyZXIgDQpjb3VsZCBub3QgdGFrZSBpbnN1cmVk4oCZcyBleGFtaW5hdGlvbiB1bmRlciBvYXRoIGFmdGVyIGNsYWltIGhhZCANCmJlZW4gaW52ZXN0aWdhdGVkIGFuZCBwYWlkKTsgc2VlIGFsc28gR29lbCB2LiBUb3dlciBJbnMuIENvLiBvZiANCk4uWS4sIDk0OCBOLlkuUy4yZCAyNDQsIDI0NSAoQXBwLiBEaXYuIDIwMTIpOyBBbGxzdGF0ZSBJbnMuIENvLiB2LiANCkxvZXN0ZXIsIDY3NSBOLlkuUy4yZCA4MzIsIDgzNCAoU3VwLiBDdC4gMTk5OCkuDQpFLiBDb250cmFjdHVhbCBMaW1pdGF0aW9ucyBQZXJpb2RzDQpNYW55IHByb3BlcnR5IGluc3VyYW5jZSBwb2xpY2llcyBjb250YWluIGEgY29udHJhY3R1YWwgDQpsaW1pdGF0aW9ucyBwZXJpb2QgKHRoYXQgaXMsIGEgY29udHJhY3R1YWwgc3RhdHV0ZSBvZiBsaW1pdGF0aW9ucykuIA0K4oCcVGhlIHB1cnBvc2UgYmVoaW5kIHRoZSBzaG9ydGVuZWQgbGltaXRhdGlvbnMgcGVyaW9k4oCJ4oCm4oCJaXMgDQp0byByZWxpZXZlIGluc3VyYW5jZSBjb21wYW5pZXMgb2YgdGhlIGJ1cmRlbiBpbXBvc2VkIGJ5IA0KZGVmZW5kaW5nIG9sZCwgc3RhbGUgY2xhaW1zLuKAnSBBbGliZXJ0aSB2LiBBbGxzdGF0ZSBJbnMuIENvLiwgNzQgQ2FsLiANCkFwcC4gNHRoIDEzOCwgMTQ1ICgxOTk5KTsgc2VlIGFsc28gQm95Y2Ugdi4gQWxsc3RhdGUgSW5zLiBDby4sIDE5OTQgDQpDb25uLiBTdXBlci4gTEVYSVMgMjksIGF0ICo0IChKYW4uIDUsIDE5OTQpICjigJxhIHNob3J0ZXIgc3RhdHV0ZSANCm9mIGxpbWl0YXRpb25zIHdvdWxkIGN1dCBkb3duIGZyYXVkdWxlbnQgY2xhaW1zIGFuZCBhdm9pZCANCnByb2JsZW1zIHByZXNlbnRlZCBieSBzdGFsZSBtZW1vcmllcyBhbmQgbG9zdCBvciBkaXNjYXJkZWQgDQpldmlkZW5jZSB0aGF0IGEgbG9uZ2VyIHBlcmlvZCBvZiBsaW1pdGF0aW9ucyBuZWNlc3NhcmlseSBnaXZlcyANCnJpc2UgdG/igJ0pLiBNb3N0IHN0YXRlcyByZWNvZ25pemUgdGhhdCB0aGVzZSBwcm92aXNpb25zIGFyZSANCmVuZm9yY2VhYmxlLiBTZWUgTGF3cmVuY2Ugdi4gVy4gTXV0LiBJbnMuIENvLiwgMjA0IENhbC4gQXBwLiANCjNkIDU2NSwgNTcxICgxOTg4KTsgc2VlIGFsc28gMTg0MCBDb25jb3Vyc2UgQXNzb2NzLiwgTFAgdi4gDQpQcmFldG9yaWFuIElucy4gQ28uLCA5MzQgTi5ZLlMuMmQgMTEyIChBcHAuIERpdi4gMjAxMSksIGxlYXZlIHRvIA0KYXBwZWFsIGRlbmllZCwgOTc1IE4uRS4yZCA5MTMgKE4uWS4gMjAxMikuIEhvd2V2ZXIsIE1pc3Npc3NpcHBpIA0KbG9uZyBoYXMgcHJvaGliaXRlZCBjb250cmFjdHVhbCBjbGF1c2VzIHB1cnBvcnRpbmcgdG8gc2hvcnRlbiANCnRoZSB0aW1lIG90aGVyd2lzZSBhdmFpbGFibGUgdG8gYnJpbmcgc3VpdCB0byBsZXNzIHRoYW4gdGhlIHJlZ3VsYXIgDQp0aHJlZS15ZWFyIHN0YXR1dGUgb2YgbGltaXRhdGlvbnMuIFNlZSBNaXNzLiBDb2RlIEFubi4gJiMxNjc7JiMxNjc7IDE1LTEtDQo1LCAxNS0xLTQ5LiBBbmQsIHN0YXRlcyBtYXkgZW5hY3Qgc2ltaWxhciBzdGF0dXRlcyBhcHBseWluZyB0byANCnNwZWNpZmljIG5hbWVkIHN0b3JtcyBpZiB0aGV5IGFyZSBwYXJ0aWN1bGFybHkgZGV2YXN0YXRpbmcuIEZvciANCmV4YW1wbGUsIExvdWlzaWFuYSBlbmFjdGVkIGEgc3RhdHV0ZSB0aGF0IHByb3ZpZGVkIGluc3VyZWRzIHVudGlsIA0KU2VwdGVtYmVyIDEsIDIwMDcsIHRvIGZpbGUgY2xhaW1zIHJlZ2FyZGluZyBIdXJyaWNhbmUgS2F0cmluYSANCmFuZCB1bnRpbCBPY3RvYmVyIDEsIDIwMDcsIHRvIGZpbGUgY2xhaW1zIHJlZ2FyZGluZyBIdXJyaWNhbmUgUml0YSANCnJlZ2FyZGxlc3Mgb2YgYW55IGNvbnRyYWN0dWFsIGxpbWl0YXRpb25zIGluIHRoZWlyIHBvbGljaWVzLiBTZWUgTGEuIA0KUmV2LiBTdGF0LiBBbm4uICYjMTY3OyAyMjo2NTguMy4gVGhlcmVmb3JlLCBpbnN1cmVkcyBtdXN0IGJlIGNhcmVmdWwgdG8gDQpjb21tZW5jZSBzdWl0IGluIGEgdGltZWx5IGZhc2hpb24gb3Igb2J0YWluIGFuIGFncmVlbWVudCB3aXRoIA0KdGhlIGluc3VyZXIgdG9sbGluZyB0aGUgcnVubmluZyBvZiB0aGUgbGltaXRhdGlvbnMgcGVyaW9kLiANClRoZSBsaW1pdGF0aW9ucyBwZXJpb2QgdHlwaWNhbGx5IGNvbW1lbmNlcyBydW5uaW5nIG9uIHRoZSANCuKAnGluY2VwdGlvbiBvZiB0aGUgbG9zcy7igJ0g4oCcSW5jZXB0aW9uIG9mIHRoZSBsb3Nz4oCdIGhhcyBiZWVuIA0KY29uc3RydWVkIGFzIOKAnHRoYXQgcG9pbnQgaW4gdGltZSB3aGVuIGFwcHJlY2lhYmxlIGRhbWFnZSANCm9jY3VycyBhbmQgaXMgb3Igc2hvdWxkIGJlIGtub3duIHRvIHRoZSBpbnN1cmVkLCBzdWNoIHRoYXQgYSANCnJlYXNvbmFibGUgaW5zdXJlZCB3b3VsZCBiZSBhd2FyZSB0aGF0IGhpcyBub3RpZmljYXRpb24gZHV0eSANCnVuZGVyIHRoZSBwb2xpY3kgaGFzIGJlZW4gdHJpZ2dlcmVkLuKAnSBQcnVkZW50aWFsLUxNSSBDb21tZXJjaWFsIA0KSW5zLiB2LiBTdXBlcmlvciBDb3VydCwgNTEgQ2FsLiAzZCA2NzQsIDY4Ni04NyAoMTk5MCk7IHNlZSBhbHNvIA0KTGljaHRlciBSZWFsIEVzdGF0ZSBOby4gVGhyZWUsIEwuTC5DLiB2LiBHcmVhdGVyIE4uWS4gSW5zLiBDby4sIA0KODQxIE4uWS5TLjJkIDkzLCA5NCAoQXBwLiBEaXYuIDIwMDcpLiBIb3dldmVyLCB0aGUgaW5zdXJlZCBpcyANCnJlcXVpcmVkIHRvIGJlIGRpbGlnZW50LiBUaGlzIG1lYW5zIHRoYXQg4oCcW3RdaGUgbW9yZSBzdWJzdGFudGlhbCANCm9yIHVudXN1YWwgdGhlIG5hdHVyZSBvZiB0aGUgZGFtYWdlIGRpc2NvdmVyZWQgYnkgdGhlIA0KaW5zdXJlZOKAr+KApuKAiSwgdGhlIGdyZWF0ZXIgdGhlIGluc3VyZWTigJlzIGR1dHkgdG8gbm90aWZ5IGhpcyBpbnN1cmVyIG9mIA0KdGhlIGxvc3MgcHJvbXB0bHkgYW5kIGRpbGlnZW50bHku4oCdIFBydWRlbnRpYWwtTE1JLCA1MSBDYWwuIDNkIGF0IA0KNjg3LiBGdXJ0aGVybW9yZSwgdGhlIGNvbnRyYWN0dWFsIGxpbWl0YXRpb25zIHBlcmlvZCDigJxiZWdpbltzXSANCnRvIHJ1biBvbiB0aGUgZGF0ZSBvZiBjb2duaXphYmxlIGRhbWFnZSBldmVuIGlmIHRoZSBpbnN1cmVkIA0Kc3ViamVjdGl2ZWx5IGJlbGlldmVzIHRoYXQgaXRzIHBvbGljeSBwcm92aWRlcyBubyBjb3ZlcmFnZSBmb3IgdGhlIA0KZGFtYWdlLuKAnSBTdWxsaXZhbiB2LiBBbGxzdGF0ZSBJbnMuIENvLiwgOTY0IEYuIFN1cHAuIDE0MDcsIDE0MTMgDQooQy5ELiBDYWwuIDE5OTcpLiANCkluIG1hbnkgc3RhdGVzLCB0aGUgcnVubmluZyBvZiB0aGUgbGltaXRhdGlvbnMgcGVyaW9kIG1heSANCmJlIHRvbGxlZCBmcm9tIHRoZSBkYXRlIHRoYXQgdGhlIGluc3VyZWQgZ2l2ZXMgbm90aWNlIHVudGlsIA0KdGhlIGluc3VyZXIgY29tbXVuaWNhdGVzIGl0cyBjb3ZlcmFnZSBwb3NpdGlvbiDigJxjbGVhcmx5IGFuZCANCnVuZXF1aXZvY2FsbHkgaW4gd3JpdGluZy7igJ0gU2VlLCBlLmcuLCBBbGliZXJ0aSwgNzQgQ2FsLiBBcHAuIDR0aCANCmF0IDE0OC00OTsgc2VlIGFsc28gUGVsb3NvIHYuIEhhcnRmb3JkIEZpcmUgSW5zLiBDby4sIDU2IE4uSi4gDQo1MTQsIDUyMSAoMTk3MCkuIEhvd2V2ZXIsIHRoZSBsYXcgbWF5IHZhcnkgZnJvbSBzdGF0ZSB0byANCnN0YXRlLiBGb3IgZXhhbXBsZSwgYSBMb3Vpc2lhbmEgc3RhdHV0ZSBwcm92aWRlcyB0aGF0IHRoZSANCmxpbWl0YXRpb25zIHBlcmlvZCBpcyBub3QgaW50ZXJydXB0ZWQgb3Igc3VzcGVuZGVkIGJ5IGFuIA0KaW5zdXJlcuKAmXMgYWNrbm93bGVkZ2VtZW50IG9mIG5vdGljZSBvZiBhIGxvc3Mgb3IgY2xhaW0gb3IgYnkgaXRzIA0KaW52ZXN0aWdhdGlvbiBvciBuZWdvdGlhdGlvbnMgcmVnYXJkaW5nIGEgbG9zcyBvciBjbGFpbS4gTGEuIFJldi4gDQpTdGF0LiBBbm4uICYjMTY3OyAyMjo4NzkuIA0KQ291cnRzIGhhdmUgcmVjb2duaXplZCB0aGF0IGFuIGluc3VyZXIgY2FuIHdhaXZlIGEgbGltaXRhdGlvbnMgDQpwZXJpb2QgYnkgaXRzIGNvbmR1Y3QuIEZvciBleGFtcGxlLCBpbiBTbWl0aCB2LiBNZXRyb3BvbGl0YW4gDQpQcm9wZXJ0eSAmYW1wOyBDYXN1YWx0eSBJbnN1cmFuY2UgQ28uLCA4NjggU28uIDJkIDU3IChMYS4gQ3QuIA0KQXBwLiAyMDAzKSwgdGhlIGNvdXJ0IGFkZHJlc3NlZCBhIHN1aXQgbGltaXRhdGlvbnMgY2xhdXNlIGluIGEgDQpob21lb3duZXJzIHBvbGljeS4gSXQgaGVsZCB0aGF0IOKAnFthXSB0YWNpdCB3YWl2ZXIgb3IgaW50ZXJydXB0aW9uIA0Kb2YgW3RoZSBzdWl0IGxpbWl0YXRpb25zIHBlcmlvZF0gbWF5IGJlIGZvdW5kIGlmIHRoZSBpbnN1cmVyIA0KKDEpIGNvbnRpbnVlcyBuZWdvdGlhdGlvbnMsIHRoZXJlYnkgaW5kdWNpbmcgdGhlIGluc3VyZWQgdG8gDQpiZWxpZXZlIHRoZSBjbGFpbSB3aWxsIGJlIHNldHRsZWQgb3Igbm90IGNvbnRlc3RlZCwgKDIpIG1ha2VzIA0KYW4gdW5jb25kaXRpb25hbCBvZmZlciBvZiBwYXltZW50LCBvciAoMykgcGVyZm9ybXMgYWN0cyBvZiANCnJlcGFyYXRpb24gb3IgaW5kZW1uaXR5LuKAnSBJZC4gYXQgNTkuIFRoZSBjb3VydCB1cGhlbGQgYSBkZW5pYWwgb2YgDQpzdW1tYXJ5IGp1ZGdtZW50IGJhc2VkIG9uIHRoZSBzdWl0IGxpbWl0YXRpb25zIGNsYXVzZSwgZmluZGluZyANCnRoYXQg4oCcdGhlIHRyaWFsIGNvdXJ0IGNvdWxkIGhhdmUgZm91bmQgdGhhdCBhIGdlbnVpbmUgaXNzdWUgb2YgDQptYXRlcmlhbCBmYWN0IHJlbWFpbmVkIG9uIHRoZSBpc3N1ZSBvZiB3aGV0aGVyIHJlcHJlc2VudGF0aW9ucyANCmJ5IGFuIGFkanVzdGVyLCBjb3VwbGVkIHdpdGggTWV0cm9wb2xpdGFu4oCZcyBjb250aW51ZWQgY29udGFjdHMgDQphbmQgY29uc2lkZXJhdGlvbiBvZiBoZXIgY2FzZSBvdmVyIGEgbG9uZyBwZXJpb2Qgb2YgdGltZSwgbHVsbGVkIA0KW3RoZSBpbnN1cmVkXSBpbnRvIGJlbGlldmluZyB0aGF0IHRoZSBjbGFpbXMgc2hlIGZpbGVkIHdlcmUgbm90IA0KZ29pbmcgdG8gYmUgY29udGVzdGVkIG9yIHdvdWxkIGJlIHNldHRsZWQgd2l0aG91dCB0aGUgbmVlZCBmb3IgDQpzdWl0LuKAnSBJZC4gYXQgNTktNjA7IHNlZSBhbHNvIE4uIEFtLiBGb3JlaWduIFRyYWRpbmcgQ29ycC4gdi4gTWl0c3VpIA0KU3VtaXRvbW8gSW5zLiBVU0EsIEluYy4sIDI5MiBGLiBBcHDigJl4IDczLCA3NiAoMmQgQ2lyLiAyMDA4KS4gDQpUaGUgMjAxNyBBdGxhbnRpYyBIdXJyaWNhbmUgU2Vhc29uOyBJbnN1cmFuY2UgQ292ZXJhZ2UgZm9yIEhhcnZleSwgSXJtYSwgSm9zZSwgYW5kIE1hcmlhIOKAoiBQYWdlIDE4DQpTb21lIHN0YXRlcyBoYXZlIGxhd3MgdGhhdCBtYXkgYmFyIHBhcnRpZXMgZnJvbSBhZ3JlZWluZyB0byANCmV4dGVuZCBjb250cmFjdHVhbCBsaW1pdGF0aW9ucyBwZXJpb2RzIGV2ZW4gaWYgcGFydGllcyBhZ3JlZSB0byANCnN1Y2ggYW4gZXh0ZW5zaW9uLiBTZWUsIGUuZy4sIE1heCBUb2JpYXMsIEpyLiwgZXQgYWwuLCBMb3Vpc2lhbmEgDQpQcmFjdGljZSBTZXJpZXMsIExvdWlzaWFuYSBDaXZpbCBQcmV0cmlhbCBQcm9jZWR1cmUgJiMxNjc7IDY6MjAgKDIwMDcpIA0KKOKAnFRoZSBwYXJ0aWVzIGNhbm5vdCBieSBjb250cmFjdCBleGNsdWRlIG9yIGxlbmd0aGVuIGFueSBwZXJpb2QgDQpvZiBwcmVzY3JpcHRpb24u4oCdKS4gSG93ZXZlciwgc3VjaCBhbiBhZ3JlZW1lbnQgbWlnaHQgc3VwcG9ydCBhIA0Kd2FpdmVyIGFyZ3VtZW50LiANCkl0IGlzIHRodXMgZXh0cmVtZWx5IGltcG9ydGFudCB0aGF0IGluc3VyZWRzIHRha2UgYWxsIGFwcHJvcHJpYXRlIA0Kc3RlcHMgdG8gZW5zdXJlIHRoYXQgc3VpdHMsIGlmIG5lY2Vzc2FyeSwgYXJlIGZpbGVkIGluIGEgdGltZWx5IA0KZmFzaGlvbi4gVW5mb3J0dW5hdGVseSwgaW5zdXJlZHMgbWF5IG5vdCBmaW5kIGNsZWFyIGFuc3dlcnMgDQphbmQgbWF5IGhhdmUgdG8gaW5pdGlhdGUgbGl0aWdhdGlvbiB0byBwcmVzZXJ2ZSB0aGVpciByaWdodHMgZ2l2ZW4gDQpwb3NzaWJsZSBkaXNwdXRlcyBvdmVyIHdoaWNoIGxhdyBjb250cm9scyAoZS5nLiwgdGhlIGxhdyBvZiB0aGUgDQpqdXJpc2RpY3Rpb24gd2hlcmUgdGhlIGluc3VyZWQgaXMgaGVhZHF1YXJ0ZXJlZCBhbmQgdGhlIHBvbGljeSANCndhcyBicm9rZXJlZCwgb3IgdGhlIGxhdyBvZiB0aGUganVyaXNkaWN0aW9uIHdoZXJlIHRoZSBsb3NzIHdhcyANCnN1ZmZlcmVkKS4NCkxPU1QgT1IgREVTVFJPWUVEIElOU1VSQU5DRSBQT0xJQ0lFUw0KQWJzZW50IGEgd2FpdmVyIGZyb20gdGhlIGluc3VyZXIsIHR5cGljYWxseSB0aGUgaW5zdXJlZCBpcyANCm9ibGlnYXRlZCB0byBwcm92ZSB0aGUgZXhpc3RlbmNlIGFuZCB0ZXJtcyBvZiBpdHMgaW5zdXJhbmNlIA0KcG9saWNpZXMuIEZvciB0aGlzIHJlYXNvbiwgaW5zdXJlZHMgc2hvdWxkIHN0b3JlIGNvcGllcyBvZiANCmluc3VyYW5jZSBwb2xpY2llcyBpbiBhIHNlY3VyZSBsb2NhdGlvbiBzb21ld2hlcmUgb3RoZXIgdGhhbiBhdCANCnRoZSBidXNpbmVzcyBwcmVtaXNlcyBvciBob21lLiBPdGhlcndpc2UsIGdpdmVuIHRoZSBuYXR1cmUgb2YgDQpjYXRhc3Ryb3BoaWMgZGFtYWdlLCBzdWNoIGFzIHRoYXQgY2F1c2VkIGJ5IGEgaHVycmljYW5lLCBzb21lIA0KaW5zdXJlZHMgbWF5IGZpbmQgdGhlbXNlbHZlcyB1bmFibGUgdG8gbG9jYXRlIGxvc3Qgb3IgZGVzdHJveWVkIA0KcG9saWNpZXMuIA0KSWYgcG9saWNpZXMgYXJlIGxvc3Qgb3IgZGVzdHJveWVkLCBob3dldmVyLCBpbnN1cmVkcyBtYXkgYmUgYWJsZSANCnRvIGxvY2F0ZSBvciBpZGVudGlmeSBwb2xpY2llcyBhbmQgdGhlaXIgdGVybXMuIElmIHRoZSBzZWNvbmRhcnkgDQpzb3VyY2VzIG9yIG5vbi1pbnN1cmFuY2UgZmlsZXMgYXJlIG5vdCBoZWxwZnVsLCB0aGUgaW5zdXJlZCANCnNob3VsZCBjb250YWN0IHRoZSBicm9rZXIgb3IgYWdlbnQgd2hvIHNvbGQgdGhlIGluc3VyZWQgdGhlIA0KcG9saWN5LiBUaGUgYnJva2VyIG9yIGFnZW50IG1heSBoYXZlIHJlY29yZHMgZXN0YWJsaXNoaW5nIHRoZSANCnBvbGljeSB0ZXJtcyBhbmQgc2FsZS4gSXQgaXMgbm90LCBob3dldmVyLCBjZXJ0YWluIHRoYXQgdGhlIGJyb2tlciANCm9yIGFnZW50IHdpbGwgcmV0YWluIHRoZSBwb2xpY3kuIEJhbmsgYW5kIGFjY291bnRpbmcgcmVjb3JkcyBhcmUgDQphbm90aGVyIHBvdGVudGlhbCBzb3VyY2Ugb2YgaW5mb3JtYXRpb24gYWJvdXQgaW5zdXJhbmNlLiBFbnRyaWVzIA0KaW4gdGhlc2UgZG9jdW1lbnRzIG9mdGVuIHNob3cgdGhlIHB1cmNoYXNlIG9mIGluc3VyYW5jZSBhbmQgDQpvZnRlbiBzaG93IHRoZSBpbnN1cmVyLCB0aGUgcG9saWN5IG51bWJlciwgcHJlbWl1bSwgYW5kIG90aGVyIA0KcmVsZXZhbnQgaW5mb3JtYXRpb24uDQpJbiBhZGRpdGlvbiwgZGVwZW5kaW5nIHVwb24gdGhlIHR5cGUgb2YgYnVzaW5lc3MgZW5nYWdlZCBpbiBieSANCnRoZSBpbnN1cmVkLCB0aGUgaW5zdXJlZCBhbHNvIG1heSBoYXZlIGdpdmVuIHByb29mIG9mIGluc3VyYW5jZSANCnRvIHRoaXJkIHBhcnRpZXMgd2l0aCB3aG9tIGl0IGRpZCBidXNpbmVzcy4gRm9yIGV4YW1wbGUsIGEgDQpidXNpbmVzcyBtYXkgaGF2ZSB0byBzaG93IGluc3VyYW5jZSBpbiBjb25uZWN0aW9uIHdpdGggcmVhbCANCmVzdGF0ZSBhbmQgbGVhc2UgdHJhbnNhY3Rpb25zIG9yIGZvciB0cmFuc3BvcnQgb2YgaXRzIGdvb2RzIG9yIGZvciANCmNvbnN0cnVjdGlvbi1yZWxhdGVkIGFjdGl2aXRpZXMuIFRoZXNlIG90aGVyIHBhcnRpZXMgbWF5IGhhdmUgDQpuZWVkZWQgaW5zdXJhbmNlIGluZm9ybWF0aW9uLiANCkZpbmFsbHksIGFuIGluc3VyZWQgc2hvdWxkIGNvbnNpZGVyIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGl0IG1heSBiZSANCmVudGl0bGVkIHRvIGNvdmVyYWdlIHVuZGVyIHBvbGljaWVzIGlzc3VlZCB0byBvdGhlciBwZXJzb25zIG9yIA0KY29tcGFuaWVzLiBNYW55IGNvbnRyYWN0cyByZXF1aXJlIHRoYXQgb25lIHBhcnR5IGFkZCB0aGUgb3RoZXIgDQphcyBhbiDigJxhZGRpdGlvbmFsIGluc3VyZWTigJ0gdW5kZXIgdGhlIGZpcnN0IHBhcnR54oCZcyBvd24gaW5zdXJhbmNlIA0KcG9saWNpZXMuIA0KUFJPVklORyBUSEUgQU1PVU5UIE9GIFRIRSBMT1NTDQpBLiBTdGVwcyB0byBUYWtlDQpPbmNlIGluc3VyYW5jZSBwb2xpY3kgdGVybXMgYXJlIGRldGVybWluZWQsIHRoZSBpbnN1cmVkIG11c3QgDQpwcm92ZSB0aGF0IHRoZSBsb3NzIGl0IHN1ZmZlcmVkIGlzIHdpdGhpbiB0aGUgdGVybXMgb2YgdGhlIHBvbGljeS4gDQpJbnN1cmVkcyB0aGF0IHN1c3RhaW4gcHJvcGVydHkgZGFtYWdlIHNob3VsZCBpbW1lZGlhdGVseSBiZWdpbiANCmRvY3VtZW50aW5nIHRoZSBjbGFpbSBhbmQgZ2F0aGVyaW5nIHN1cHBvcnRpbmcgZXZpZGVuY2UuIEFuIA0KaW5zdXJlZCBtYXkgd2FudCBvciBuZWVkIHRvIGNvbmR1Y3QgYSBmb3JlbnNpYyBpbnZlc3RpZ2F0aW9uIA0KbG9uZyBhZnRlciBkYW1hZ2VkIHByb3BlcnR5IGlzIHJlcGFpcmVkIG9yIHJlcGxhY2VkLiBJdCBvZnRlbiANCmlzIGFkdmlzYWJsZSB0byBzZWVrIHRoZSBhc3Npc3RhbmNlIG9mIChpKSBhdHRvcm5leXMgdG8gZGV0ZXJtaW5lIA0KdGhlIHNjb3BlIG9mIGNvdmVyYWdlIHRvIHdoaWNoIHRoZSBpbnN1cmVkIGlzIGVudGl0bGVkLCANCmFuZCAoaWkpIGZvcmVuc2ljIGFjY291bnRhbnRzIHRvIGFzc2lzdCBpbiBjYXRlZ29yaXppbmcgYW5kIA0KZG9jdW1lbnRpbmcgdGhlIGV4dGVudCBvZiB0aGUgbG9zcyBmb3IgcHJlc2VudGF0aW9uIHRvIHRoZSANCmluc3VyZXIuIFVuZGVyIG1hbnkgcG9saWNpZXMsIHRoZXNlIHR5cGVzIG9mIOKAnGxvc3MgYWRqdXN0bWVudOKAnSANCmV4cGVuc2VzIGFyZSBjb3ZlcmVkIGFuZCBzb21ldGltZXMgY292ZXJlZCDigJxvdXRzaWRlIHRoZSANCmxpbWl0c+KAnSBvZiB0aGUgcG9saWN5LiANCkFzIGEgZ2VuZXJhbCBydWxlLCBhbiBpbnN1cmVkIHNob3VsZCByZXRhaW4gYWxsIHJlY2VpcHRzLCBlc3RpbWF0ZXMsIA0KYW5kIGRvY3VtZW50cy4gSW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGxvc3MsIGFuIGluc3VyZWQgc2hvdWxkIA0KKDEpIGRldmVsb3AgYW4gaW52ZW50b3J5IG9mIGFsbCBkYW1hZ2VkIHByb3BlcnR5OyAoMikgZGV0ZXJtaW5lIA0Kd2hhdCBwcm9wZXJ0eSBjYW4gYmUgcmVwYWlyZWQgYW5kIHdoYXQgY2Fubm90IGJlIHJlcGFpcmVkOyANCigzKSBkZXRlcm1pbmUgc2FsdmFnZSB2YWx1ZSwgaWYgYW55LCBvZiBwcm9wZXJ0eSB0aGF0IGNhbm5vdCBiZSANCnJlcGFpcmVkOyAoNCkgaWRlbnRpZnkgcXVhbnRpdGllcywgY29zdHMsIGFuZCB2YWx1ZXMgb2YgZGFtYWdlZCANCnByb3BlcnR5LCBhbmQgdGhlIGFtb3VudCBvZiBsb3NzIGNsYWltZWQgKHJlcGxhY2VtZW50IGNvc3QgDQp2ZXJzdXMgYWN0dWFsIGNhc2ggdmFsdWUgb3IgbGlrZS1raW5kIHJlcGFpciBhbmQgcmVwbGFjZW1lbnQpOyANCmFuZCAoNSkga2VlcCBhIHJlY29yZCBvZiBhbGwgZXhwZW5zZXMgKHN1Y2ggYXMgaW52b2ljZXMgYW5kIA0KcmVjZWlwdHMpLiBUaGUgaW5zdXJlZCBhbHNvIHNob3VsZCBkb2N1bWVudCB0aGUgZGFtYWdlIGFuZCANCmxvc3MgYnkgdGFraW5nIHBob3RvZ3JhcGhzIGFuZCwgaWYgcG9zc2libGUsIHZpZGVvdGFwaW5nIHRoZSANCnByb3BlcnR5Lg0KQi4gTWVhc3VyaW5nIEJ1c2luZXNzIEludGVycnVwdGlvbiBMb3NzZXMNCkluc3VyYW5jZSBwb2xpY2llcyB0eXBpY2FsbHkgY29udGFpbiBwcm92aXNpb25zIHN0YXRpbmcgaG93IA0KYnVzaW5lc3MgaW50ZXJydXB0aW9uIGxvc3NlcyBhcmUgdG8gYmUgbWVhc3VyZWQuIFRoZXkgb2Z0ZW4gDQphZGRyZXNzIHRoZSBpc3N1ZSBpbiB0ZXJtcyBvZiB0aGUg4oCcYWN0dWFsIGxvc3Mgc3VzdGFpbmVkLOKAnSB3aGljaCANCmZyZXF1ZW50bHkgaXMgbWVhc3VyZWQgaW4gdGVybXMgb2YgZWl0aGVyIChpKSB0aGUgbmV0IHJlZHVjdGlvbiANCmluIGdyb3NzIGVhcm5pbmdzIG1pbnVzIGV4cGVuc2VzIHRoYXQgZG8gbm90IG5lY2Vzc2FyaWx5IA0KY29udGludWUgb3IgKGlpKSBuZXQgcHJvZml0IHRoYXQgaXMgcHJldmVudGVkIGZyb20gYmVpbmcgZWFybmVkIA0KcGx1cyBuZWNlc3NhcnkgZXhwZW5zZXMgdGhhdCBjb250aW51ZSBkdXJpbmcgdGhlIHBlcmlvZCBvZiANCmludGVycnVwdGlvbi4gDQpUaGUgMjAxNyBBdGxhbnRpYyBIdXJyaWNhbmUgU2Vhc29uOyBJbnN1cmFuY2UgQ292ZXJhZ2UgZm9yIEhhcnZleSwgSXJtYSwgSm9zZSwgYW5kIE1hcmlhIOKAoiBQYWdlIDE5DQpXaGVuIHBvbGljaWVzIGluZGljYXRlIHRoYXQgdGhlIG1lYXN1cmVtZW50IGlzIHRoZSBkaWZmZXJlbmNlIA0KYmV0d2VlbiBhY3R1YWwgZWFybmluZ3Mgb3IgcHJvZml0cyBhbmQsIGluIGVzc2VuY2UsIHdoYXQgDQpvdGhlcndpc2Ugd291bGQgYmUgZXhwZWN0ZWQsIGluc3VyZWRzIGZyZXF1ZW50bHkgbWVhc3VyZSANCnRoZWlyIGxvc3MgYnkgY29tcGFyaW5nIHRoZSBpbmNvbWUgdGhleSB3b3VsZCBoYXZlIGdlbmVyYXRlZCANCndpdGhvdXQgdGhlIHdlYXRoZXIgY29uZGl0aW9ucyB0byB0aGUgaW5jb21lIHRoZXkgYWN0dWFsbHkgDQpnZW5lcmF0ZWQuIFRoaXMgbWVhc3VyZW1lbnQgbWF5IHJlc3VsdCBpbiBhIGxvd2VyIGluc3VyYW5jZSANCnJlY292ZXJ5IHRoYW4gdGhlIGxhdyBwZXJtaXRzLiBBbiBpbnN1cmVkIHNob3VsZCBjb25zaWRlciANCm1lYXN1cmluZyBpdHMgbG9zcyBub3QgYmFzZWQgb24gd2hhdCBpdCB3b3VsZCBoYXZlIG1hZGUgYnV0IA0KZm9yIHRoZSBodXJyaWNhbmUsIGJ1dCBiYXNlZCBvbiB3aGF0IGl0IHdvdWxkIGhhdmUgbWFkZSBoYWQgDQppdHMgZmFjaWxpdGllcyBhbmQgb3BlcmF0aW9ucyBub3QgYmVlbiBhZmZlY3RlZCBieSB0aGUgaHVycmljYW5lLiANCkFzIG9uZSBjb3VydCBoYXMgZXhwbGFpbmVkLCB0aGUgcG9saWN5IOKAnGRvZXMgbm90IGV4Y2x1ZGUgcHJvZml0IA0Kb3Bwb3J0dW5pdGllcyBkdWUgdG8gaW5jcmVhc2VkIGNvbnN1bWVyIGRlbWFuZCBjcmVhdGVkIGJ54oCdIA0KYW4gaW5zdXJlZCBwZXJpbC4gTGV2aXR6IEZ1cm5pdHVyZSBDb3JwLiB2LiBIb3VzdG9uIENhcy4gQ28uLCAxOTk3IA0KVS5TLiBEaXN0LiBMRVhJUyA1ODgzLCBhdCAqOCAoRS5ELiBMYS4gQXByLiAyOCwgMTk5Nyk7IHNlZSBhbHNvIA0KQmVyay1Db2hlbiBBc3NvY3MuLCBMTEMgdi4gTGFuZG1hcmsgQW0uIElucy4gQ28uLCAyMDA5IFUuUy4gRGlzdC4gDQpMRVhJUyA3NzMwMCwgYXQgKjE3LTE4IChFLkQuIExhLiBBdWcuIDI3LCAyMDA5KSAoZm9yIHB1cnBvc2VzIA0Kb2YgY2FsY3VsYXRpbmcgbG9zdCBidXNpbmVzcyBpbmNvbWUsIGluc3VyZWQgY291bGQgdXNlIGZhdm9yYWJsZSANCm1hcmtldCBjb25kaXRpb25zIHJlc3VsdGluZyBmcm9tIGZsb29kaW5nLCBhbiBleGNsdWRlZCBjYXVzZSANCm9mIGxvc3MpOyBjZi4gQ2F0bGluIFN5bmRpY2F0ZSBMdGQuIHYuIEltcGVyaWFsIFBhbGFjZSBvZiBNaXNzLiwgSW5jLiwgDQoyMDA4IFUuUy4gRGlzdC4gTEVYSVMgMTAzODMxLCBhdCAqMTQtMjAgKFMuRC4gTWlzcy4gRGVjLiAxNSwgMjAwOCkgDQooY291cnQgZGlzYWdyZWVkIHRoYXQgYmVzdCBtZWFzdXJlIG9mIGJ1c2luZXNzIGludGVycnVwdGlvbiANCmxvc3Mgd2FzIHdoYXQgaW5zdXJlZCBjYXNpbm8gZWFybmVkIG9uY2UgaXQgcmVvcGVuZWQgYWZ0ZXIgDQpIdXJyaWNhbmUgS2F0cmluYSwgd2hlbiBvdGhlciBjYXNpbm9zIHJlbWFpbmVkIGNsb3NlZCksIGFmZuKAmWQsIA0KNjAwIEYuM2QgNTExICg1dGggQ2lyLiAyMDEwKS4gQXMgdGhlIExldml0eiBjb3VydCBleHBsYWluZWQsIA0K4oCcYnVzaW5lc3MgaW50ZXJydXB0aW9uIGxvc3MgZWFybmluZ3MgbWF5IGluY2x1ZGUgc2FsZXMgW3RoZSANCmluc3VyZWRdIHdvdWxkIGhhdmUgbWFkZSBpbiB0aGUgYWZ0ZXJtYXRoIG9mIHRoZSBbcGVyaWxdIGhhZCBpdCANCmJlZW4gb3BlbiBmb3IgYnVzaW5lc3MgZHVyaW5nIHRoYXQgcGVyaW9kLuKAnSAxOTk3IFUuUy4gRGlzdC4gTEVYSVMgDQphdCAqOC4gDQpDLiBUaGUgQXBwcmFpc2FsIFByb2Nlc3MNCk1vc3QgaW5zdXJhbmNlIHBvbGljaWVzIHByb3ZpZGUgZm9yIGFuIGFwcHJhaXNhbCB0byBlc3RhYmxpc2ggdGhlIA0KYW1vdW50IG9mIGxvc3MgdG8gd2hpY2ggdGhlIGluc3VyZWQgaXMgZW50aXRsZWQgaWYgYSBkaXNhZ3JlZW1lbnQgDQphcmlzZXMgYmV0d2VlbiB0aGUgaW5zdXJlciBhbmQgdGhlIGluc3VyZWQgb3ZlciB0aGUgYW1vdW50IA0Kb2YgbGlhYmlsaXR5LiBHZW5lcmFsbHksIHVwb24gZWl0aGVyIHBhcnR54oCZcyB3cml0dGVuIGRlbWFuZCwgdGhlIA0KaW5zdXJlZCBhbmQgdGhlIGluc3VyZXIgZWFjaCBhcHBvaW50IGFuIGFwcHJhaXNlci4gVGhlc2UgdHdvIA0KYXBwcmFpc2VycyBzZWxlY3QgYW4gaW1wYXJ0aWFsIHVtcGlyZS4gVGhlIGFwcHJhaXNlcnMgdGhlbiBzZXQgDQp0aGUgYW1vdW50IG9mIHRoZSBsb3NzLiBJZiB0aGUgYXBwcmFpc2VycyBhZ3JlZSBvbiB0aGUgYW1vdW50IA0Kb2YgbG9zcywgdGhhdCBhbW91bnQgaXMgZXN0YWJsaXNoZWQgYXMgdGhlIGFtb3VudCBvZiBsb3NzLiBJZiB0aGUgDQphcHByYWlzZXJzIGZhaWwgdG8gYWdyZWUgd2l0aGluIGEgcmVhc29uYWJsZSB0aW1lLCBlYWNoIHN1Ym1pdHMgDQphbiBhcHByYWlzYWwgdG8gdGhlIHVtcGlyZSBhbmQgYSB3cml0dGVuIGFncmVlbWVudCBzaWduZWQgYnkgDQphbnkgdHdvIG9mIHRoZSB0aHJlZSBlc3RhYmxpc2hlcyB0aGUgYW1vdW50IG9mIGxvc3MuIFNlZSwgZS5nLiwgDQpTdC4gQ2hhcmxlcyBQYXJpc2ggSG9zcC4gU2Vydi4gRGlzdC4gTm8uIDEgdi4gVW5pdGVkIEZpcmUgJmFtcDsgQ2FzLiBDby4sIA0KNjgxIEYuIFN1cHAuIDJkIDc0OCwgNzUxLTUyIChFLkQuIExhLiAyMDEwKSAoZGVzY3JpYmluZyBhcHByYWlzYWwgDQpwcm9jZXNzIHVzZWQgcHVyc3VhbnQgdG8gaW5zdXJhbmNlIHBvbGljeSB0byB2YWx1ZSBwcm9wZXJ0eSBhbmQgDQpidXNpbmVzcyBpbmNvbWUgbG9zcyBjYXVzZWQgYnkgSHVycmljYW5lIEthdHJpbmEpLiANCkFwcHJhaXNhbHMgdXN1YWxseSBhcmUgbGltaXRlZCB0byB0aGUgYW1vdW50IG9mIGEgbG9zcywgbm90IA0Kd2hldGhlciB0aGVyZSBoYXMgYmVlbiBhIGxvc3Mgb3IgYW55IGNvdmVyYWdlIGlzc3Vlcy4gU2VlLCBlLmcuLCANCkRlIExhIENydXogdi4gQmFua2VycyBJbnMuIENvLiwgMjM3IEYuIFN1cHAuIDJkIDEzNzAsIDEzNzQgKFMuRC4gDQpGbGEuIDIwMDIpICjigJxUaGUgYXBwcmFpc2FsIGNsYXVzZSBjYW4gb25seSBiZSBpbnZva2VkIHdoZW4gDQp0aGUgcGFydGllcyBjYW5ub3QgYWdyZWUgYXMgdG8gdGhlIGFjdHVhbCBjYXNoIHZhbHVlLCBvcuKAieKApuKAiXRoZSANCnJlcGxhY2VtZW50IGNvc3Qgb2YgYW4gaW5zdXJlZCBpdGVtIG9mIHByb3BlcnR5LiBUaGlzIGxhbmd1YWdlIA0KY2Fubm90IGJlIHN0cmV0Y2hlZCB0byBtZWFuIHRoYXQgYXBwcmFpc2FsIGNhbiBiZSBpbnZva2VkIA0Kd2hlbmV2ZXIgdGhlIHBhcnRpZXMgZGlzcHV0ZSB3aGljaCBpdGVtcyBvZiBwcm9wZXJ0eSB3ZXJlIA0KZGFtYWdlZCBvciB3aGV0aGVyIHRob3NlIGl0ZW1zIHdlcmUgaW4gZmFjdCBkYW1hZ2Vk4oCJ4oCm4oCJLiBUaGF0IA0KdHlwZSBvZiBkaXNwdXRlIGlzIGEgZGlzcHV0ZSBvdmVyIGNvdmVyYWdl4oCJ4oCm4oCJLuKAnSkuDQpDT05DTFVTSU9ODQpUaG9zZSB3aG8gaGF2ZSBzdWZmZXJlZCBsb3NzZXMgYmVjYXVzZSBvZiB0aGUgMjAxNyBodXJyaWNhbmVzIA0KbWF5IGhhdmUgc3Vic3RhbnRpYWwgZmluYW5jaWFsIHByb3RlY3Rpb24gdGhyb3VnaCB0aGVpciBpbnN1cmFuY2UgDQpwb2xpY2llcy4gSW5zdXJlZHMgc2hvdWxkIGNvbnNpZGVyIHRoZWlyIGNvdmVyYWdlIHBvc3NpYmlsaXRpZXMgDQphbmQgYWN0IHByb21wdGx5IHRvIHJlY292ZXIgYWxsIGJlbmVmaXRzIGF2YWlsYWJsZSB1bmRlciB0aGF0IA0KY292ZXJhZ2UuDQpUaGUgMjAxNyBBdGxhbnRpYyBIdXJyaWNhbmUgU2Vhc29uOyBJbnN1cmFuY2UgQ292ZXJhZ2UgZm9yIEhhcnZleSwgSXJtYSwgSm9zZSwgYW5kIE1hcmlhIOKAoiBQYWdlIDIwDQpBQk9VVCBUSEUgQVVUSE9SUw0KSm9obiBFLiBIZWludHogaXMgYSBwYXJ0bmVyIGluIEJsYW5rIFJvbWXigJlzIHBvbGljeWhvbGRlci1vbmx5IGluc3VyYW5jZSByZWNvdmVyeSBwcmFjdGljZSwgDQpmb3JtZXJseSB0aGUgaW5zdXJhbmNlIHByYWN0aWNlIG9mIERpY2tzdGVpbiBTaGFwaXJvIExMUC4gSGUgaXMgYSB2ZXRlcmFuIGluIHRoZSBmaWVsZHMgb2YgY29ycG9yYXRlIA0KaW5zdXJhbmNlIGNvdmVyYWdlIGFuZCBjb21wbGV4IGxpdGlnYXRpb24uIFdpdGggbW9yZSB0aGFuIDM1IHllYXJzIG9mIGV4cGVyaWVuY2UsIE1yLiBIZWludHogDQpoYXMgcmVjb3ZlcmVkIGJpbGxpb25zIG9mIGRvbGxhcnMgaW4gY292ZXJhZ2UgZm9yIGhpcyBjbGllbnRzLiBIZSBoYXMgaGFuZGxlZCBtYWpvciBjYXNlcyBpbiBldmVyeSANCmFyZWEgb2YgaW5zdXJhbmNlIGNvdmVyYWdlLCBpbmNsdWRpbmcgc2V2ZXJhbCB0aGF0IHJhbmsgYW1vbmcgdGhlIGxhcmdlc3QgaW4gY292ZXJhZ2UgbGl0aWdhdGlvbiANCmhpc3RvcnkuIE1hbnkgb2YgaGlzIGNhc2VzIGhhdmUgaW52b2x2ZWQgaXNzdWVzIG9mIGZpcnN0IGltcHJlc3Npb24sIHJlc3VsdGluZyBpbiBsYW5kbWFyayB0cmlhbCANCmFuZCBhcHBlbGxhdGUgcnVsaW5ncyBmb3IgaGlzIGNsaWVudHMgYXQgdGhlIHN0YXRlIGFuZCBmZWRlcmFsIGxldmVscy4gTXIuIEhlaW50euKAmXMgbWFzdGVyeSBvZiB0aGUgDQpsZWdhbCBpc3N1ZXMgYW5kIGhpcyBhYmlsaXR5IHRvIGRpcmVjdCBsYXJnZS1zY2FsZSBsaXRpZ2F0aW9uIGhhdmUgZWFybmVkIGhpbSBwcmFpc2UgZnJvbSBjbGllbnRzIGFuZCANCm9wcG9uZW50cyBhbGlrZS4gTXIuIEhlaW50eiBoYXMgYmVlbiB3aWRlbHkgcmVjb2duaXplZCBhcyBhIGxlYWRpbmcgbGF3eWVyIGluIHRoZSBpbnN1cmFuY2UgDQpjb3ZlcmFnZSBhcmVhLiBDaGFtYmVycyBVU0EgcmFua3MgTXIuIEhlaW50eiBhcyBvbmUgb2YgdGhlIHRvcCAxMyBsZWFkaW5nIGluc3VyYW5jZSBjb3ZlcmFnZSANCmF0dG9ybmV5cyBpbiB0aGUgY291bnRyeSwgc3RhdGluZyB0aGF0IOKAnGhlIGlzIGtub3duIHRvIHBlZXJzIGFzIOKAmG9uZSBvZiB0aGUgYmVzdCBsYXd5ZXJzIGluIHRoaXMgDQpmaWVsZCzigJnigJ0gYW5kIG5vdGluZyB0aGF0IOKAnGhlIGlzIGRlc2NyaWJlZCBhcyDigJhhbiBvdXRzdGFuZGluZyBwZXJmb3JtZXIgd2l0aCBhbiBvdXRzdGFuZGluZyANCnJlcHV0YXRpb24u4oCZ4oCdICANCkphcmVkIFpvbGEgaXMgYSBwYXJ0bmVyIGluIEJsYW5rIFJvbWXigJlzIHBvbGljeWhvbGRlci1vbmx5IGluc3VyYW5jZSByZWNvdmVyeSBwcmFjdGljZSwgZm9ybWVybHkgDQp0aGUgaW5zdXJhbmNlIHByYWN0aWNlIG9mIERpY2tzdGVpbiBTaGFwaXJvIExMUC4gTXIuIFpvbGEgaGFzIGhlbHBlZCBjbGllbnRzIHNlY3VyZSBtb3JlIHRoYW4gDQpvbmUgYmlsbGlvbiBkb2xsYXJzIGluIGluc3VyYW5jZSByZWNvdmVyaWVzLiBNci4gWm9sYeKAmXMgbmF0aW9uYWxseS1yZWNvZ25pemVkIHdvcmsgbWF4aW1pemluZyANCmluc3VyYW5jZSBhc3NldHMgaGFzIGVhcm5lZCBoaW0gc2lnbmlmaWNhbnQgcHJhaXNlLiBUaGUgMjAxNyBlZGl0aW9uIG9mIExlZ2FsIDUwMCBub3RlZCB0aGF0IA0KaGUgaXMg4oCcYSB5b3VuZyBzdGFyIG9mIHRoZSBwb2xpY3lob2xkZXIgYmFy4oCdIGFuZCBuYW1lZCBoaW0gYSDigJxOZXh0IEdlbmVyYXRpb24gTGF3eWVy4oCd4oCUb25lIA0Kb2YgZm91ciBuYXRpb25hbGx5IGluIHRoZSBpbnN1cmFuY2UgY2F0ZWdvcnkuIEhlIHdhcyBhbHNvIG5hbWVkIHRvIEJlbmNobWFyayBMaXRpZ2F0aW9u4oCZcyANCjIwMTcg4oCcVW5kZXIgNDAgSG90bGlzdCzigJ0gd2hpY2ggcmFua3MgYXR0b3JuZXlzIOKAnHdobyBoYXZlIGJlZW4gZGVlbWVkIHRoZSBtb3N0IHByb21pc2luZyANCmVtZXJnaW5nIHRhbGVudCBpbiB0aGVpciByZXNwZWN0aXZlIGxpdGlnYXRpb24gY29tbXVuaXRpZXMgYnkgcGVlcnMgYW5kIGNsaWVudHMu4oCdIEluIDIwMTcsIGhlIHdhcyANCm5hbWVkIGJ5IExhdzM2MCBhcyBhIOKAnFRvcCBBdHRvcm5leSBVbmRlciA0MOKAnSBmb3IgdGhlIGZvdXJ0aCBjb25zZWN1dGl2ZSB5ZWFyIGluIHRoZSBpbnN1cmFuY2UgDQpjYXRlZ29yeSBmb3IgaGlzIHdvcmsgb24gYmVoYWxmIG9mIHBvbGljeWhvbGRlcnPigJRoZSBpcyB0aGUgb25seSBhdHRvcm5leSB0byBldmVyIGJlIG5hbWVkIA0KYSDigJxSaXNpbmcgU3RhcuKAnSBtb3JlIHRoYW4gb25jZSBpbiB0aGUgaW5zdXJhbmNlIGNhdGVnb3J5LiBJbiAyMDE2LCB0aGUgTmV3IFlvcmsgTGF3IEpvdXJuYWwgDQpuYW1lZCBNci4gWm9sYSBhIOKAnFJpc2luZyBTdGFy4oCdIHVuZGVyIHRoZSBhZ2Ugb2YgNDAuIEhlIGhhcyBiZWVuIHJhbmtlZCBpbiBDaGFtYmVycyBVU0EgZWFjaCANCnllYXIgc2luY2UgMjAxMy4gSGUgaGFzIGhhbmRsZWQgbWFueSBsYXJnZSBpbnN1cmFuY2UgY2xhaW1zIGFyaXNpbmcgZnJvbSBjYXRhc3Ryb3BoaWMgbG9zc2VzIA0KZnJvbSA5LzExLCBLYXRyaW5hLCBTYW5keSwgYW5kIHRoZSBsYW5kc2xpZGVzIGluIENoaWxlLCBqdXN0IHRvIG5hbWUgYSBmZXcuIA0KSm9obiBFLiBIZWludHogDQoyMDIuNDIwLjUzNzMgDQpKSGVpbnR6QEJsYW5rUm9tZS5jb20NCkphcmVkIFpvbGEgDQoyMTIuODg1LjUyMDkgDQpKWm9sYUBCbGFua1JvbWUuY29tDQpDaW5jaW5uYXRpIOKAoiBGb3J0IExhdWRlcmRhbGUg4oCiIEhvdXN0b24g4oCiIExvcyBBbmdlbGVzIOKAoiBOZXcgWW9yayDigKIgUGhpbGFkZWxwaGlhIOKAoiBQaXR0c2J1cmdoIOKAoiBQcmluY2V0b24g4oCiIFNhbiBGcmFuY2lzY28g4oCiIFNoYW5naGFpIOKAoiBUYW1wYSDigKIgV2FzaGluZ3RvbiDigKIgV2lsbWluZ3RvbiANCiYjMTY5OzIwMTcgQmxhbmsgUm9tZSBMTFAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFBsZWFzZSBjb250YWN0IEJsYW5rIFJvbWUgZm9yIHBlcm1pc3Npb24gdG8gcmVwcmludC4gTm90aWNlOiBUaGUgcHVycG9zZSBvZiB0aGlzIHVwZGF0ZSBpcyB0byBpZGVudGlmeSBzZWxlY3QgZGV2ZWxvcG1lbnRzIHRoYXQgbWF5IGJlIG9mIGludGVyZXN0IHRvIA0KcmVhZGVycy4gVGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gaXMgYWJyaWRnZWQgYW5kIHN1bW1hcml6ZWQgZnJvbSB2YXJpb3VzIHNvdXJjZXMsIHRoZSBhY2N1cmFjeSBhbmQgY29tcGxldGVuZXNzIG9mIHdoaWNoIGNhbm5vdCBiZSBhc3N1cmVkLiBUaGlzIHVwZGF0ZSBzaG91bGQgbm90IGJlIGNvbnN0cnVlZCANCmFzIGxlZ2FsIGFkdmljZSBvciBvcGluaW9uLCBhbmQgaXMgbm90IGEgc3Vic3RpdHV0ZSBmb3IgdGhlIGFkdmljZSBvZiBjb3Vuc2VsLg0KPC9ub3NjcmlwdD4NCmQCCQ9kFgJmD2QWAgIBD2QWBgIBD2QWBGYPDxYEHgZUYXJnZXQFBl9ibGFuax4LTmF2aWdhdGVVcmwFRC9wb3N0L2ZpbGVTZXJ2ZXIuYXNweD9mTmFtZT02NWMxZDVlZi01ZWNlLTQ0MTEtODgyOC0yYzIzZmViYjgzMGMucGRmZGQCAg8WAh8ABQhbMTQ0OEtCXWQCAw8PFgIfAwUaL3JlcG9ydGFwcm9ibGVtL2luZGV4LmFzcHhkZAIHD2QWAgIBDxYCHwAFKDY1YzFkNWVmLTVlY2UtNDQxMS04ODI4LTJjMjNmZWJiODMwYy5wZGZkAg0PZBYCAgEPFgIfAAXjFTxkaXYgaWQ9InZpZFN1bVN1YlN0ciI+VGhlIDIwMTcgQXRsYW50aWMgaHVycmljYW5lIHNlYXNvbiBpcyBhbHJlYWR5IG9uZSBvZiB0aGUgbW9zdCBkZXZhc3RhdGluZyBpbiBoaXN0b3J5LiBJbiBsYXRlIEF1Z3VzdCwgSGFydmV5IHN0cnVjayBhdCB0aGUgaGVhcnQgb2YgSG91c3RvbiwgVGV4YXMsIGFuZCBkcm9wcGVkIDUxLjg4IGluY2hlcyBvZiByYWluZmFsbCBpbiBUZXhhcywgdGhlIGhpZ2hlc3QgcmFpbmZhbGwgdG90YWwgdG8gZGF0ZSBmb3IgYW55IEF0bGFudGljIHRyb3BpY2FsIGN5Y2xvbmUgaW4gdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIHRoZSBmaWZ0aCBoaWdoZXN0IHJhaW5mYWxsIHRvdGFsIGZvciBhIHRyb3BpY2FsIGN5Y2xvbmUgaW4gdGhlIEF0bGFudGljIGJhc2luLiBJcm1hIGZvbGxvd2VkIGNsb3NlbHkgb24gSGFydmV54oCZcyBoZWVscyBpbiBlYXJseSBTZXB0ZW1iZXIuIElybWEgY2xvY2tlZCB0aGUgc3Ryb25nZXN0IHdpbmQgc3BlZWQgb2YgYW55IGh1cnJpY2FuZSB0byBmb3JtIGluIHRoZSBBdGxhbnRpYyBpbiBtb3JlIHRoYW4gYSBkZWNhZGUsIHdyZWFrZWQ8c3BhbiBjbGFzcz0icmVkIG1vcmVMZXNzTGluayIgb25jbGljaz0ic3VtU2hvd0xpbmsoKSI+ICBTZWUmbmJzcDttb3JlJm5ic3A7Kzwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJ2aWRTdW1tYXJ5Ij5UaGUgMjAxNyBBdGxhbnRpYyBodXJyaWNhbmUgc2Vhc29uIGlzIGFscmVhZHkgb25lIG9mIHRoZSBtb3N0IGRldmFzdGF0aW5nIGluIGhpc3RvcnkuIEluIGxhdGUgQXVndXN0LCBIYXJ2ZXkgc3RydWNrIGF0IHRoZSBoZWFydCBvZiBIb3VzdG9uLCBUZXhhcywgYW5kIGRyb3BwZWQgNTEuODggaW5jaGVzIG9mIHJhaW5mYWxsIGluIFRleGFzLCB0aGUgaGlnaGVzdCByYWluZmFsbCB0b3RhbCB0byBkYXRlIGZvciBhbnkgQXRsYW50aWMgdHJvcGljYWwgY3ljbG9uZSBpbiB0aGUgVW5pdGVkIFN0YXRlcyBhbmQgdGhlIGZpZnRoIGhpZ2hlc3QgcmFpbmZhbGwgdG90YWwgZm9yIGEgdHJvcGljYWwgY3ljbG9uZSBpbiB0aGUgQXRsYW50aWMgYmFzaW4uIElybWEgZm9sbG93ZWQgY2xvc2VseSBvbiBIYXJ2ZXnigJlzIGhlZWxzIGluIGVhcmx5IFNlcHRlbWJlci4gSXJtYSBjbG9ja2VkIHRoZSBzdHJvbmdlc3Qgd2luZCBzcGVlZCBvZiBhbnkgaHVycmljYW5lIHRvIGZvcm0gaW4gdGhlIEF0bGFudGljIGluIG1vcmUgdGhhbiBhIGRlY2FkZSwgd3JlYWtlZCBoYXZvYyBpbiB0aGUgQ2FyaWJiZWFuLCB0aGUgRmxvcmlkYSBLZXlzLCBhbmQgdXAgdGhlIEZsb3JpZGEgcGVuaW5zdWxhLiBTdG9ybSBzdXJnZSBhZmZlY3RlZCBtYW55IGFyZWFzIGluIHRoZSBzb3V0aGVhc3Rlcm4gVW5pdGVkIFN0YXRlcyBpbmNsdWRpbmcgSmFja3NvbnZpbGxlLCBTYXZhbm5haCwgYW5kIHBvcnRpb25zIG9mIFNvdXRoIENhcm9saW5hLiBKb3NlIGJyb3VnaHQgdHJvcGljYWwgc3Rvcm0gd2luZHMgdG8gbG93ZXIgTmV3IEVuZ2xhbmQgYW5kIGhpZ2ggc3VyZiBhbG9uZyBtdWNoIG9mIHRoZSBBdGxhbnRpYy4gTWFyaWEgaGFtbWVyZWQgUHVlcnRvIFJpY28sIHRoZSBDYXJpYmJlYW4sIGFuZCBoZWFkZWQgd2VzdHdhcmQuIFRoZXNlIHN0b3JtcyBoYXZlIGFscmVhZHkgY2F1c2VkIGxvc3Mgb2YgbGlmZSwgZGVzdHJ1Y3Rpb24sIGFuZCBkaXNsb2NhdGlvbiBvbiBhIG1hc3NpdmUgc2NhbGUuPC9wPjwvcD4NPC9wPjwvcD4NCjxwPjxwPjxwPjwvcD48L3A+DQo8cD48cD48cD48L3A+PC9wPg08L3A+PC9wPg0KPHA+PHA+PHA+PC9wPjwvcD4NCjxwPjxwPjxwPlRoZSBlY29ub21pYyBpbXBhY3Qgb2YgdGhlc2Ugc3Rvcm1zIHdpbGwgYmUgZmVsdCBieSBidXNpbmVzc2VzIGFuZCBpbmRpdmlkdWFscyBhY3Jvc3MgdGhlIGNvdW50cnkgZm9yIHNvbWUgdGltZS4gT2J2aW91c2x5LCBtYW55IGJ1c2luZXNzZXMgaGF2ZSBzdWZmZXJlZCBkaXJlY3QgZGFtYWdlIHRvIHByb3BlcnR5IGFuZCBsb3N0IGluY29tZSBkdWUgdG8gdGhlIHJlc3VsdGluZyBpbnRlcnJ1cHRpb24gb2YgdGhlaXIgb3BlcmF0aW9ucywgYnV0IG1hbnkgb3RoZXIgYnVzaW5lc3NlcyBoYXZlIGFsc28gbG9zdCBzdWJzdGFudGlhbCBpbmNvbWUgZHVlIHRvIGV2YWN1YXRpb24gb3JkZXJzLCBkaXNydXB0aW9uIG9mIHV0aWxpdHkgc2VydmljZSwgZGlzcnVwdGlvbiBvZiBtYXNzIHRyYW5zaXQgb24gd2hpY2ggdGhlaXIgZW1wbG95ZWVzIHJlbHkgdG8gZ2V0IHRvIGFuZCBmcm9tIHdvcmssIGFuZCBkaXNydXB0aW9uIG9mIHRoZSBvcGVyYXRpb25zIG9mIGtleSBzdXBwbGllcnMgb3IgY3VzdG9tZXJzLiBFYXJseSBsb3NzIGVzdGltYXRlcyBoYXZlIG5vdyByZWFjaGVkICQxNzAgYmlsbGlvbiwgYW5kIHN1cmVseSB3aWxsIGdvIGhpZ2hlci4gQXMgdGhlIHNpdHVhdGlvbiBzdGFiaWxpemVzIGFuZCB0aGUgZm9jdXMgdHVybnMgdG8gZWNvbm9taWMgcmVjb3ZlcnksIGJ1c2luZXNzZXMgd2lsbCBiZWdpbiB0byBleGFtaW5lIHRoZWlyIG9wZXJhdGlvbnMsIGFzc2VzcyB0aGVpciBsb3NzZXMsIGFuZCBsb29rIHRvIHRoZWlyIGluc3VyYW5jZSBmb3IgY29tcGVuc2F0aW9uLjwvcD48L3A+DTwvcD48L3A+DQo8cD48cD48cD48L3A+PC9wPg0KPHA+PHA+PHA+PC9wPjwvcD4NPC9wPjwvcD4NCjxwPjxwPjxwPjwvcD48L3A+DQo8cD48cD48cD5QbGVhc2Ugc2VlIGZ1bGwgcHVibGljYXRpb24gYmVsb3cgZm9yIG1vcmUgaW5mb3JtYXRpb24uIDxzcGFuIGNsYXNzPSJyZWQgbW9yZUxlc3NMaW5rIiBvbmNsaWNrPSJzdW1IaWRlTGluaygpIj4gIFNlZSZuYnNwO2xlc3MmbmJzcDstPC9zcGFuPjwvZGl2PmQCDw9kFgwCAQ8PFgIfAWhkFgYCAQ8WAh8ABR5MZWdhbCBBcnRpY2xlL05ld3NsZXR0ZXIgTmFtZTpkAgMPFgIfAAUYTGVnYWwgQXJ0aWNsZS9OZXdzbGV0dGVyZAIFDxYCHwAFDVVuaXRlZCBTdGF0ZXNkAgUPDxYCHwMFGi9yZXBvcnRhcHJvYmxlbS9pbmRleC5hc3B4ZGQCBw8PFgIfAWhkFggCAQ8WAh8ABQpQdWJsaXNoZWQ6ZAIDDxYCHwAFCTkvMjgvMjAxN2QCBA8WAh8BaGQCBg8WAh8ABQk5LzI4LzIwMTdkAgkPZBYEAgEPFgIfAAWZBzxoMyBjbGFzcz0iYnQgYncxIHB0MyBmNCBtYjMgdHR1Ij5SZWxhdGVkIFBvc3RzPC9oMz48dWwgY2xhc3M9ImxoLWNvcHkgY2YgZjYgZnc3IG1sMCBwbDMiPg0KPGxpIGNsYXNzPSJmbCBwYjMgcHI0IHctNTAtbnMiPjxhIGhyZWY9Ii9sZWdhbG5ld3MvaW5zdXJhbmNlLWNhbi1yZWR1Y2UtdGhlLWZpbmFuY2lhbC00ODA5Ni8iIG9uY2xpY2s9ImdhKCdzZW5kJywgJ2V2ZW50JywgJ2RvY3ZpZXcnLCAncmVhZC1tb3JlLWxpbmtzJywgJ3JlbGF0ZWQtZG9jLWxpbmsnKTsiPkluc3VyYW5jZSBDYW4gUmVkdWNlIHRoZSBGaW5hbmNpYWwgUmVwZXJjdXNzaW9ucyB0byBZb3VyIFN1cHBseSBDaGFpbiBvZiBTdXBlcnN0b3JtcywgV2lsZGZpcmVzLCBDbGltYXRlIENoYW5nZSwgYW5kIEdsb2JhbCBFY29ub21pYyBEaXNydXB0aW9uczwvYT48L2xpPg0KPGxpIGNsYXNzPSJmbCBwYjMgcHI0IHctNTAtbnMiPjxhIGhyZWY9Ii9sZWdhbG5ld3MvaW5zdXJhbmNlLWNoZWNrbGlzdC1pbi10aGUtZXZlbnQtb2YtNDkxMzkvIiBvbmNsaWNrPSJnYSgnc2VuZCcsICdldmVudCcsICdkb2N2aWV3JywgJ3JlYWQtbW9yZS1saW5rcycsICdyZWxhdGVkLWRvYy1saW5rJyk7Ij5JbnN1cmFuY2UgQ2hlY2tsaXN0IGluIHRoZSBFdmVudCBvZiBIdXJyaWNhbmUgTG9zc2VzPC9hPjwvbGk+DQo8bGkgY2xhc3M9ImZsIHBiMyBwcjQgdy01MC1ucyI+PGEgaHJlZj0iL2xlZ2FsbmV3cy9pbnN1cmFuY2UtcmVjb3ZlcnktZm9yLWxvc3Nlcy1yZWxhdGVkLTI4NDYwLyIgb25jbGljaz0iZ2EoJ3NlbmQnLCAnZXZlbnQnLCAnZG9jdmlldycsICdyZWFkLW1vcmUtbGlua3MnLCAncmVsYXRlZC1kb2MtbGluaycpOyI+SW5zdXJhbmNlIFJlY292ZXJ5IGZvciBMb3NzZXMgUmVsYXRlZCB0byBIdXJyaWNhbmUgSGFydmV5PC9hPjwvbGk+DQo8L3VsPg0KPC91bD4NCmQCAw8WAh8ABdUGPGgzIGNsYXNzPSJidCBidzEgcHQzIGY0IG1iMyB0dHUiPkxhdGVzdCBQb3N0czwvaDM+PHVsIGNsYXNzPSJsaC1jb3B5IGNmIGY2IGZ3NyBtbDAgcGwzIj48bGkgY2xhc3M9ImZsIHBiMyBwcjQgdy01MC1ucyI+PGEgaHJlZj0iL2xlZ2FsbmV3cy90aGlyZC1jaXJjdWl0LWhvbGRzLXNldHRsZW1lbnQtbGFuZ3VhZ2UtODQ1NjgvIiBvbmNsaWNrPSJnYSgnc2VuZCcsICdldmVudCcsICdkb2N2aWV3JywgJ3JlYWQtbW9yZS1saW5rcycsICdsYXRlc3QtZG9jLWxpbmsnKTsiPlRoaXJkIENpcmN1aXQgSG9sZHMg4oCcU2V0dGxlbWVudCBMYW5ndWFnZeKAnSBpbiBDb2xsZWN0aW9uIExldHRlciBDYW4gQmUgTWlzbGVhZGluZzwvYT48L2xpPg0KPGxpIGNsYXNzPSJmbCBwYjMgcHI0IHctNTAtbnMiPjxhIGhyZWY9Ii9sZWdhbG5ld3MvYWRkaXRpb25hbC1wcm90ZWN0aW9ucy1mb3ItdGVtcG9yYXJ5LTUxNzY1LyIgb25jbGljaz0iZ2EoJ3NlbmQnLCAnZXZlbnQnLCAnZG9jdmlldycsICdyZWFkLW1vcmUtbGlua3MnLCAnbGF0ZXN0LWRvYy1saW5rJyk7Ij5BZGRpdGlvbmFsIFByb3RlY3Rpb25zIGZvciBUZW1wb3JhcnkgU2NoZWR1bGUgQ2hhbmdlcyBmb3IgRW1wbG95ZWVzIHVuZGVyIE5ldyBZb3JrIENpdHnigJlzIFBhaWQgU2ljayBUaW1lIExhdzwvYT48L2xpPg0KPC91bD48cCBjbGFzcz0ibW9yZUxlc3NMaW5rIGY3IHRyIj48YSBjbGFzcz0icmVkIiBocmVmPSIvcHJvZmlsZS9CbGFua19Sb21lX2RvY3MvIiBvbmNsaWNrPSJnYSgnc2VuZCcsICdldmVudCcsICdkb2N2aWV3JywgJ3JlYWQtbW9yZS1saW5rcycsICdsYXRlc3QtZG9jLXNlZS1tb3JlJyk7Ij5TZWUgbW9yZSAmcmFxdW87PC9hPjwvcD4NCmQCCw9kFgICAQ8WAh8ABRxNdWx0aU1lZGlhIGJ5IEJsYW5rIFJvbWUgTExQZAIND2QWAgIBDxYCHwAFDkJsYW5rIFJvbWUgTExQZAIQD2QWEmYPFgIfAAUWc3R5bGU9ImRpc3BsYXk6IG5vbmU7ImQCAQ8WAh8AZWQCBQ8WAh8BZ2QCBg8WBB4LXyFJdGVtQ291bnQCAh8BZxYEZg9kFghmDxUFDGpvaG4taGVpbnR6MUVodHRwczovL2pkc3VwcmEtc3RhdGljLnMzLmFtYXpvbmF3cy5jb20vYXV0aG9ycy81N2ZiODMyNDU3NDVhLjMwaC5qcGcLSm9obiBIZWludHoMam9obi1oZWludHoxC0pvaG4gSGVpbnR6ZAICDxUIAAU2MjA4NAtKb2huIEhlaW50egExATEFNjIwODQBMQU2MjA4NGQCAw8WAh8BZ2QCBA8VCAAFNjIwODQLSm9obiBIZWludHoBMQExBTYyMDg0ATEFNjIwODRkAgEPZBYIZg8VBQpqYXJlZC16b2xhRWh0dHBzOi8vamRzdXByYS1zdGF0aWMuczMuYW1hem9uYXdzLmNvbS9hdXRob3JzLzU3ZmI4MzRhYzI4NWIuMzBoLmpwZwpKYXJlZCBab2xhCmphcmVkLXpvbGEKSmFyZWQgWm9sYWQCAg8VCAAFNjIwODUKSmFyZWQgWm9sYQExATEFNjIwODUBMQU2MjA4NWQCAw8WAh8BZ2QCBA8VCAAFNjIwODUKSmFyZWQgWm9sYQExATEFNjIwODUBMQU2MjA4NWQCBw8WAh8BZ2QCCA8WBB8EAg0fAWcWGmYPZBYIZg8VAhVidXNpbmVzcy1pbnRlcnJ1cHRpb24VQnVzaW5lc3MgSW50ZXJydXB0aW9uZAICDxUFAAQzOTQ4FUJ1c2luZXNzIEludGVycnVwdGlvbgQzOTQ4BDM5NDhkAgMPFgIfAWdkAgQPFQUABDM5NDgVQnVzaW5lc3MgSW50ZXJydXB0aW9uBDM5NDgEMzk0OGQCAQ9kFghmDxUCD2Zsb29kLWluc3VyYW5jZQ9GbG9vZCBJbnN1cmFuY2VkAgIPFQUABDIwODgPRmxvb2QgSW5zdXJhbmNlBDIwODgEMjA4OGQCAw8WAh8BZ2QCBA8VBQAEMjA4OA9GbG9vZCBJbnN1cmFuY2UEMjA4OAQyMDg4ZAICD2QWCGYPFQIQaHVycmljYW5lLWhhcnZleRBIdXJyaWNhbmUgSGFydmV5ZAICDxUFAAUzMTYwMBBIdXJyaWNhbmUgSGFydmV5BTMxNjAwBTMxNjAwZAIDDxYCHwFnZAIEDxUFAAUzMTYwMBBIdXJyaWNhbmUgSGFydmV5BTMxNjAwBTMxNjAwZAIDD2QWCGYPFQIOaHVycmljYW5lLWlybWEOSHVycmljYW5lIElybWFkAgIPFQUABTMxNjM1Dkh1cnJpY2FuZSBJcm1hBTMxNjM1BTMxNjM1ZAIDDxYCHwFnZAIEDxUFAAUzMTYzNQ5IdXJyaWNhbmUgSXJtYQUzMTYzNQUzMTYzNWQCBA9kFghmDxUCD2h1cnJpY2FuZS1tYXJpYQ9IdXJyaWNhbmUgTWFyaWFkAgIPFQUABTMxNzA0D0h1cnJpY2FuZSBNYXJpYQUzMTcwNAUzMTcwNGQCAw8WAh8BZ2QCBA8VBQAFMzE3MDQPSHVycmljYW5lIE1hcmlhBTMxNzA0BTMxNzA0ZAIFD2QWCGYPFQIQaHVycmljYW5lLXNlYXNvbhBIdXJyaWNhbmUgU2Vhc29uZAICDxUFAAUyNzA5MhBIdXJyaWNhbmUgU2Vhc29uBTI3MDkyBTI3MDkyZAIDDxYCHwFnZAIEDxUFAAUyNzA5MhBIdXJyaWNhbmUgU2Vhc29uBTI3MDkyBTI3MDkyZAIGD2QWCGYPFQIQaW5zdXJhbmNlLWNsYWltcxBJbnN1cmFuY2UgQ2xhaW1zZAICDxUFAAUyNDg0NxBJbnN1cmFuY2UgQ2xhaW1zBTI0ODQ3BTI0ODQ3ZAIDDxYCHwFnZAIEDxUFAAUyNDg0NxBJbnN1cmFuY2UgQ2xhaW1zBTI0ODQ3BTI0ODQ3ZAIHD2QWCGYPFQISaW5zdXJhbmNlLWluZHVzdHJ5Ekluc3VyYW5jZSBJbmR1c3RyeWQCAg8VBQAFMTU0OTASSW5zdXJhbmNlIEluZHVzdHJ5BTE1NDkwBTE1NDkwZAIDDxYCHwFnZAIEDxUFAAUxNTQ5MBJJbnN1cmFuY2UgSW5kdXN0cnkFMTU0OTAFMTU0OTBkAggPZBYIZg8VAhFuYXR1cmFsLWRpc2FzdGVycxFOYXR1cmFsIERpc2FzdGVyc2QCAg8VBQADNTc4EU5hdHVyYWwgRGlzYXN0ZXJzAzU3OAM1NzhkAgMPFgIfAWdkAgQPFQUAAzU3OBFOYXR1cmFsIERpc2FzdGVycwM1NzgDNTc4ZAIJD2QWCGYPFQIRcG9saWN5LWV4Y2x1c2lvbnMRUG9saWN5IEV4Y2x1c2lvbnNkAgIPFQUABTEwMjA3EVBvbGljeSBFeGNsdXNpb25zBTEwMjA3BTEwMjA3ZAIDDxYCHwFnZAIEDxUFAAUxMDIwNxFQb2xpY3kgRXhjbHVzaW9ucwUxMDIwNwUxMDIwN2QCCg9kFghmDxUCDXBvbGljeS1saW1pdHMNUG9saWN5IExpbWl0c2QCAg8VBQAFMTAwNTINUG9saWN5IExpbWl0cwUxMDA1MgUxMDA1MmQCAw8WAh8BZ2QCBA8VBQAFMTAwNTINUG9saWN5IExpbWl0cwUxMDA1MgUxMDA1MmQCCw9kFghmDxUCD3Byb3BlcnR5LWRhbWFnZQ9Qcm9wZXJ0eSBEYW1hZ2VkAgIPFQUAAzcyOQ9Qcm9wZXJ0eSBEYW1hZ2UDNzI5AzcyOWQCAw8WAh8BZ2QCBA8VBQADNzI5D1Byb3BlcnR5IERhbWFnZQM3MjkDNzI5ZAIMD2QWCGYPFQIOc2V2ZXJlLXdlYXRoZXIOU2V2ZXJlIFdlYXRoZXJkAgIPFQUABTExNzkxDlNldmVyZSBXZWF0aGVyBTExNzkxBTExNzkxZAIDDxYCHwFnZAIEDxUFAAUxMTc5MQ5TZXZlcmUgV2VhdGhlcgUxMTc5MQUxMTc5MWQCCQ8WBB8EAgEfAWcWAmYPZBYIZg8VAi9odHRwczovL3d3dy5qZHN1cHJhLmNvbS9sYXctbmV3cy9pbnN1cmFuY2UtbGF3LwlJbnN1cmFuY2VkAgIPFQUAAjU0CUluc3VyYW5jZQI1NAI1NGQCAw8WAh8BZ2QCBA8VBQACNTQJSW5zdXJhbmNlAjU0AjU0ZAILD2QWCgIBDxYCHwAFDkJsYW5rIFJvbWUgTExQZAIDDxYEHgRocmVmBS5odHRwOi8vd3d3LmxpbmtlZGluLmNvbS9jb21wYW55L2JsYW5rLXJvbWUtbGxwHwFnZAIHDxYCHwUFH2h0dHA6Ly90d2l0dGVyLmNvbS9ibGFua3JvbWVsbHBkAgkPFgIfBQUZaHR0cDovL3d3dy5ibGFua3JvbWUuY29tL2QCCw8WBB8FBRcvcHJvZmlsZS9CbGFua19Sb21lX3Jzcx8BZ2QCDQ8PFgIfAWhkZAIpDxYCHwAFV2h0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9kb2N1bWVudHMuamRzdXByYS5jb20vNjVjMWQ1ZWYtNWVjZS00NDExLTg4MjgtMmMyM2ZlYmI4MzBjLnBkZmQCKg8WAh8ABX5odHRwczovL2RvY3MuZ29vZ2xlLmNvbS92aWV3ZXI/dXJsPWh0dHAlM0ElMkYlMkZkb2N1bWVudHMuamRzdXByYS5jb20lMkY2NWMxZDVlZi01ZWNlLTQ0MTEtODgyOC0yYzIzZmViYjgzMGMucGRmJmVtYmVkZGVkPXRydWVkZDt0YOPsxBG79k7u58ziHEFfpWCXLTzus+P9W8az/ckx" />
</div>


<script src="/ScriptResource.axd?d=R7e1iK0shBnyhfUu14c6BzE6Xq0tTpTjUqf0TUx-A-SS_iSWyj5ekfTUDV6hNsw3wHGTZFbQ2YU4FokYvmueBM5rMAGz-4kBN7dKcRGzHTXDeG-PZlVvlBxwqD_cEcQE-wmbAQzmGLjcXVhvK7MANKFreM5CiuvttVJRX_bT3fU1&amp;t=72fc8ae3" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
var PageMethods = function() {
PageMethods.initializeBase(this);
this._timeout = 0;
this._userContext = null;
this._succeeded = null;
this._failed = null;
}
PageMethods.prototype = {
_get_path:function() {
 var p = this.get_path();
 if (p) return p;
 else return PageMethods._staticInstance.get_path();},
OpenGate:function(gateData,gateFieldData,succeededCallback, failedCallback, userContext) {
return this._invoke(this._get_path(), 'OpenGate',false,{gateData:gateData,gateFieldData:gateFieldData},succeededCallback,failedCallback,userContext); },
GetGateFieldData:function(fileID,succeededCallback, failedCallback, userContext) {
return this._invoke(this._get_path(), 'GetGateFieldData',true,{fileID:fileID},succeededCallback,failedCallback,userContext); },
AbandonGate:function(gateData,succeededCallback, failedCallback, userContext) {
return this._invoke(this._get_path(), 'AbandonGate',false,{gateData:gateData},succeededCallback,failedCallback,userContext); }}
PageMethods.registerClass('PageMethods',Sys.Net.WebServiceProxy);
PageMethods._staticInstance = new PageMethods();
PageMethods.set_path = function(value) { PageMethods._staticInstance.set_path(value); }
PageMethods.get_path = function() { return PageMethods._staticInstance.get_path(); }
PageMethods.set_timeout = function(value) { PageMethods._staticInstance.set_timeout(value); }
PageMethods.get_timeout = function() { return PageMethods._staticInstance.get_timeout(); }
PageMethods.set_defaultUserContext = function(value) { PageMethods._staticInstance.set_defaultUserContext(value); }
PageMethods.get_defaultUserContext = function() { return PageMethods._staticInstance.get_defaultUserContext(); }
PageMethods.set_defaultSucceededCallback = function(value) { PageMethods._staticInstance.set_defaultSucceededCallback(value); }
PageMethods.get_defaultSucceededCallback = function() { return PageMethods._staticInstance.get_defaultSucceededCallback(); }
PageMethods.set_defaultFailedCallback = function(value) { PageMethods._staticInstance.set_defaultFailedCallback(value); }
PageMethods.get_defaultFailedCallback = function() { return PageMethods._staticInstance.get_defaultFailedCallback(); }
PageMethods.set_enableJsonp = function(value) { PageMethods._staticInstance.set_enableJsonp(value); }
PageMethods.get_enableJsonp = function() { return PageMethods._staticInstance.get_enableJsonp(); }
PageMethods.set_jsonpCallbackParameter = function(value) { PageMethods._staticInstance.set_jsonpCallbackParameter(value); }
PageMethods.get_jsonpCallbackParameter = function() { return PageMethods._staticInstance.get_jsonpCallbackParameter(); }
PageMethods.set_path("documentViewer.aspx");
PageMethods.OpenGate= function(gateData,gateFieldData,onSuccess,onFailed,userContext) {PageMethods._staticInstance.OpenGate(gateData,gateFieldData,onSuccess,onFailed,userContext); }
PageMethods.GetGateFieldData= function(fileID,onSuccess,onFailed,userContext) {PageMethods._staticInstance.GetGateFieldData(fileID,onSuccess,onFailed,userContext); }
PageMethods.AbandonGate= function(gateData,onSuccess,onFailed,userContext) {PageMethods._staticInstance.AbandonGate(gateData,onSuccess,onFailed,userContext); }
var gtc = Sys.Net.WebServiceProxy._generateTypedConstructor;
Type.registerNamespace('jdsupra.DocGate');
if (typeof(jdsupra.DocGate.GateData) === 'undefined') {
jdsupra.DocGate.GateData=gtc("jdsupra.DocGate.GateData");
jdsupra.DocGate.GateData.registerClass('jdsupra.DocGate.GateData');
}
if (typeof(jdsupra.DocGate.GateFieldData) === 'undefined') {
jdsupra.DocGate.GateFieldData=gtc("jdsupra.DocGate.GateFieldData");
jdsupra.DocGate.GateFieldData.registerClass('jdsupra.DocGate.GateFieldData');
}
//]]>
</script>

<div class="aspNetHidden">

	<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="1D9A11B9" />
</div>
    <input type="hidden" name="curContentID" id="curContentID" value="65c1d5ef-5ece-4411-8828-2c23febb830c" /></asp:HiddenField>


 <!--File unavailable-->
    
<!--/File unavailable--> 

        <!--Content Header-->
        <div class="tc-ns f7 silver mv2"><time>September 28, 2017</time></div>
        <div class="tc-ns f6">
               
        </div>
        <div id="DocumentHeaderPanel" class="ph4-l tc-ns">
	
            <h1 class="doc_name f2-ns f3 mv0">The 2017 Atlantic Hurricane Season: Insurance Coverage for Harvey, Irma, Jose, and Maria</h1><!--Title-->
        
</div>
        <div class="f6 silver db dn-l mt2 tc-ns">
            by <a href="/profile/Blank_Rome_docs/">Blank Rome LLP</a>
            <div class="mt1">
                <span class="br-pill dib follow-action-lnk follow-lnk"  onclick="PostChange('',18133,'Blank Rome LLP',4,1)" name="follow_4_18133">+ Follow</span>
                <span class="br-pill dib follow-action-lnk following-lnk" style="display: none;" name="follow_spinner_4_18133">x&nbsp;Following</span>
                <span class="br-pill dib follow-action-lnk following-lnk" style="display: none;" onclick="PostChange('',18133,'Blank Rome LLP',4,0)" name="unfollow_4_18133">x&nbsp;Following</span> 
                <span class="br-pill dib follow-action-lnk unfollowing-lnk blue" style="display: none;" name="unfollow_spinner_4_18133">- Unfollow</span>
                <a href="/profile/contributor-contact.aspx" id="ContactNowBTNlink2" class="dn-l ml1 pv1 ph3 br-pill bg-red white f6 dib" onclick="ga(&#39;send&#39;, &#39;event&#39;, &#39;follow&#39;, &#39;Contact Button - Doc View mobile&#39;, &#39;Contact Button - Doc View mobile&#39;);">Contact</a>
            </div>
        </div>
        <!--/Content Header-->
                
        <!--Social Media Row-->        
        <div id="followPanel">
	
            <div class="mt3 tc-ns dn db-ns no-print">        
                <div class="dib mb1 mr3 v-top"><script type="IN/Share" data-url="http://www.jdsupra.com/legalnews/the-2017-atlantic-hurricane-season-63868/" data-counter="right"></script></div>    
                <div class="dib mb1 mr3 v-top"><a href="https://twitter.com/share" url="http://www.jdsupra.com/legalnews/the-2017-atlantic-hurricane-season-63868/" class="twitter-share-button" data-count="horizontal">Tweet</a></div>   
                <div class="fb-like dib mb1 mr3 v-top" data-href="http://www.jdsupra.com/legalnews/the-2017-atlantic-hurricane-season-63868/" data-send="false" data-layout="button_count" data-width="47" data-show-faces="false"></div>
                <div class="dib mb1 mr3 v-top"><div class="g-plusone" data-annotation="none" href="http://www.jdsupra.com/legalnews/the-2017-atlantic-hurricane-season-63868/" size="medium" ></div></div>   
                <div class="dib SendPanelLink drkgraylnk mr3 v-top"><a href="javascript:sendit();" class="br-pill ba dim link ph2 pv1 mb2 dib mid-gray cursor-pointer f7"><i class="fa fa-envelope-o" aria-hidden="true"></i> Send</a></div>
                
                  <div class="dib EmbedPanelLink drkgraylnk v-mid">
                    <span onClick="HideShowEmbed();" class="br-pill ba dim mr3 mr0-ns ph2 pv1 dib mid-gray cursor-pointer f7"><i class="fa fa-code" aria-hidden="true"></i> Embed</span>
                  </div>               
                
            </div><!--end socialIconRow-->     
            <div id="EmbedPanel">
		 
                <div class="embedBox f6 bg-light-gray pa3" style="display: none;">
                <div class="fw7 tc lh-title mb2">To embed, copy and paste the code into your website or blog:</div>
                <textarea class="ba pa3 b--black-20 w-100 f6 mid-gray"><iframe src="//www.jdsupra.com/post/contentViewerEmbed.aspx?fid=65c1d5ef-5ece-4411-8828-2c23febb830c" width="100%" height="620" frameborder="1" style="border: 2px solid #ccc; overflow-x:hidden !important; overflow:hidden;" scrolling="auto"></iframe></textarea></div>             
            
	</div> 
        
</div>   
        <!--/Social Media Row--> 

<!--primary content-->
<div class="cf mv2 mv4-l">
    <div class="br-l b--light-gray fl-l pl2-l pr4-l w-70-l">
             

              

            <!--Case 1: PDF View-->
            <div id="PDFContentViewPanel">
	                 
                <div id="showDescPanel" class="jds-main-content mb4">
		<p>The 2017 Atlantic hurricane season is already one of the most devastating in history. In late August, Harvey struck at the heart of Houston, Texas, and dropped 51.88 inches of rainfall in Texas, the highest rainfall total to date for any Atlantic tropical cyclone in the United States and the fifth highest rainfall total for a tropical cyclone in the Atlantic basin. Irma followed closely on Harvey’s heels in early September. Irma clocked the strongest wind speed of any hurricane to form in the Atlantic in more than a decade, wreaked havoc in the Caribbean, the Florida Keys, and up the Florida peninsula. Storm surge affected many areas in the southeastern United States including Jacksonville, Savannah, and portions of South Carolina. Jose brought tropical storm winds to lower New England and high surf along much of the Atlantic. Maria hammered Puerto Rico, the Caribbean, and headed westward. These storms have already caused loss of life, destruction, and dislocation on a massive scale.</p></p>
</p></p>
<p><p><p></p></p>
<p><p><p></p></p>
</p></p>
<p><p><p></p></p>
<p><p><p>The economic impact of these storms will be felt by businesses and individuals across the country for some time. Obviously, many businesses have suffered direct damage to property and lost income due to the resulting interruption of their operations, but many other businesses have also lost substantial income due to evacuation orders, disruption of utility service, disruption of mass transit on which their employees rely to get to and from work, and disruption of the operations of key suppliers or customers. Early loss estimates have now reached $170 billion, and surely will go higher. As the situation stabilizes and the focus turns to economic recovery, businesses will begin to examine their operations, assess their losses, and look to their insurance for compensation.</p></p>
</p></p>
<p><p><p></p></p>
<p><p><p></p></p>
</p></p>
<p><p><p></p></p>
<p><p><p>Please see full publication below for more information. </p>
	</div><!--PDF Summary-->           
                <div class="ViewPDFLnkResponsive w-70 center mb4 dn"><a class="db br-pill bg-yellow pv2 ph4 tc fw7 f4 ViewPDFBtn" href="http://www.jdsupra.com/post/fileServer.aspx?fName=65c1d5ef-5ece-4411-8828-2c23febb830c.pdf"><img class="btn-img" src="/img/icon-pdf-download.gif" />&nbsp;Download PDF</a></div><!--Mobile View PDF Link-->                       
                
<noscript>
THE 2017 ATLANTIC 
HURRICANE SEASON:
Insurance Coverage for Harvey, 
Irma, Jose, and Maria
BY:
John E. Heintz 
202.420.5373 
JHeintz@BlankRome.com
Jared Zola 
212.885.5209  
JZola@BlankRome.com 
www.blankrome.com
TABLE OF CONTENTS
INTRODUCTION    1
TYPES OF POLICIES THAT MAY APPLY  1
COVERAGE FOR PHYSICAL DAMAGE TO OR DESTRUCTION OF PROPERTY  2
 A. Coverage for Real Property  2
 B. Coverage for Personal Property  2
 C. Coverage for Costs Incurred to Prevent Loss  2
COVERAGE AND EXCLUSIONS FOR PARTICULAR CAUSES OF LOSS  3
 A. The Scope of the “Flood” Exclusion  3
 B.  Limitations on Flood Exclusions Where Covered Causes  
Also Contributed to the Insured’s Loss  5
 C. Anti-Concurrent Causation Language  7
COVERAGE FOR LOST BUSINESS  7
 A. Business Interruption  7
  1. Coverage without Physical Damage  8
  2. Coverage with Damage, but Not to Insured Property  8
  3. Coverage for Losses Incurred During the Interruption of Operations  9
 B. Contingent Business Interruption  9
 C. Civil Authority   10
 D. Ingress or Egress  11
 E. Service Interruption  12
 F. Extra Expense   13
THE NUMBER OF OCCURRENCES, DEDUCTIBLES, AND LABELS  13
MAKING A COVERAGE CLAIM  15
 A. The Duty to Provide Notice  15
 B. The Duty to Cooperate  15
 C. Proofs of Loss   16
 D. Examinations under Oath  16
 E. Contractual Limitations Periods  17
LOST OR DESTROYED INSURANCE POLICIES  18
PROVING THE AMOUNT OF THE LOSS  18
 A. Steps to Take   18
 B. Measuring Business Interruption Losses  19
 C. The Appraisal Process  19
CONCLUSION    19
ABOUT THE AUTHORS   20
The 2017 Atlantic Hurricane Season; Insurance Coverage for Harvey, Irma, Jose, and Maria • Page 1
INTRODUCTION
The 2017 Atlantic hurricane season is already one of the most 
devastating in history. In late August, Harvey struck at the heart 
of Houston, Texas, and dropped 51.88 inches of rainfall in Texas, 
the highest rainfall total to date for any Atlantic tropical cyclone 
in the United States and the fifth highest rainfall total for a 
tropical cyclone in the Atlantic basin. Irma followed closely on 
Harvey’s heels in early September. Irma clocked the strongest 
wind speed of any hurricane to form in the Atlantic in more 
than a decade, wreaked havoc in the Caribbean, the Florida 
Keys, and up the Florida peninsula. Storm surge affected many 
areas in the southeastern United States including Jacksonville, 
Savannah, and portions of South Carolina. Jose brought tropical 
storm winds to lower New England and high surf along much of 
the Atlantic. Maria hammered Puerto Rico, the Caribbean, and 
headed westward. These storms have already caused loss of life, 
destruction, and dislocation on a massive scale.
The economic impact of these storms will be felt by businesses 
and individuals across the country for some time. Obviously, 
many businesses have suffered direct damage to property and 
lost income due to the resulting interruption of their operations, 
but many other businesses have also lost substantial income 
due to evacuation orders, disruption of utility service, disruption 
of mass transit on which their employees rely to get to and 
from work, and disruption of the operations of key suppliers or 
customers. Early loss estimates have now reached $170 billion, 
and surely will go higher. As the situation stabilizes and the focus 
turns to economic recovery, businesses will begin to examine 
their operations, assess their losses, and look to their insurance 
for compensation. 
There is no doubt that recovering insurance for many of these 
losses will be as complicated and challenging as has been the 
case with 9/11, Hurricane Katrina, and Superstorm Sandy. 
Specifically, property insurance, including business interruption 
and contingent business interruption coverages, protect against 
more than just physical damage to and loss of property. Such 
insurance also often protects financial losses arising from an 
inability to conduct business (either at all or at the same levels as 
before); the extra expenses incurred in dealing with the effects 
of a disaster, including money spent to minimize any damage 
and losses; and the costs incurred in establishing the extent of 
the losses. Moreover, contingent business interruption coverage 
often contained in first-party property policies may provide 
coverage when a business faces loss due to its suppliers’ inability 
to provide needed parts and resources, or its customers’ inability 
to take delivery of product because of the damage to their 
own business ventures. Other types of insurance that also may 
respond include policies for trade disruption, event cancellation, 
and directors and officers. Specific policy language and particular 
circumstances may impact the availability and scope of coverage 
significantly. Indeed, how loss is characterized may affect the 
applicability and amount of deductibles, sub-limits, and coverage 
extensions.
A business that faces losses from any major storm event should 
immediately consider how its insurance will respond, assess 
its insurance policies, and develop a plan to determine and 
document losses that were or will be sustained because of the 
disaster. Experience tells us that even sophisticated businesses 
unknowingly commit errors in assessing and documenting their 
losses or interpreting their insurance policies that later limit 
or even bar potential insurance recovery, and that insurers 
frequently use initial characterizations or “labels” as a basis to 
restrict or eliminate coverage.
As a starting point for that assessment, this white paper 
discusses issues common to most policies, including: whether 
damage or loss was caused by wind or flood, where damage 
caused by flood may be excluded; the impact of “Named 
Windstorm” provisions on the extent of coverage; coverage for 
loss caused by the disruption of utility services; coverage for 
loss attributed to lack of ingress or egress to insured facilities, 
to evacuation orders, or to other orders of civil authorities; and 
coverage for loss resulting from damage to key suppliers or 
customers. It is important to note that policy terms vary widely, 
and there is no substitute for careful policy analysis. 
TYPES OF POLICIES THAT MAY APPLY
Insurance for losses caused by disasters such as the 2017 Atlantic 
hurricanes and related weather events can be provided under 
several different types of insurance policies. This coverage is 
not only provided under the ordinary “property” policy. It also 
may be provided under other policies, such as those providing 
coverage for “environmental” losses, “maritime” losses, and 
“warehouse” losses. Thus, it is important for an insured to 
review all of its policies in order to determine the extent of its 
coverage. Many property insurance policies cover losses to real 
property caused by all perils. Some policies cover all causes of 
loss not expressly excluded. Because of the breadth of coverage 
afforded by an “all risk” policy, the burden of proof shifts to the 
insurer to show that the loss is not covered, once the insured 
demonstrates it has suffered a loss. See, e.g., Northrop Grumman 
Corp. v. Factory Mut. Ins. Co., 805 F. Supp. 2d 945, 950 (C.D. 
Cal. 2011) (“It is well settled that an insured under an all risks 
policy can ‘reasonably expect’ coverage for all losses that are not 
clearly excluded or limited.”).
The 2017 Atlantic Hurricane Season; Insurance Coverage for Harvey, Irma, Jose, and Maria • Page 2
By comparison, a second type of property insurance—a “named 
perils” policy—covers only those perils expressly listed. Both 
types of policies may contain exclusions for weather conditions. 
Absent a clear exclusion, coverage may be afforded. 
COVERAGE FOR PHYSICAL DAMAGE TO OR 
DESTRUCTION OF PROPERTY
A. Coverage for Real Property
First-party property policies generally provide insurance for 
“direct physical loss of or damage to property.” Traditional 
losses under first-party property policies involve tangible 
property, including buildings, permanently installed machinery 
or equipment, inventory, and fixtures. They may also involve 
personal property owned by the insured that is used to service 
and maintain buildings and premises, such as fire extinguishing 
equipment. Such insurance generally excludes intangible losses. 
However, some cases hold that if the property is rendered 
unusable, such as by the presence of contaminants, a first-party 
property policy may provide coverage.
An insured must have an “insurable interest” in the property at 
the time of the covered incident, such as a fire or an earthquake. 
See, e.g., Fla. Stat. &#167; 627.405. Courts interpret “insurable 
interest” fairly broadly, and the concept may encompass 
contingent and beneficial interests. The insured does not have 
to own or lease the property to have an insurable interest. See 
Zurich Am. Ins. Co. v. ABM Indus., Inc., 397 F.3d 158, 165-68 (2d 
Cir. 2005) (an insured, which provided engineering and janitorial 
services to nearly all of the World Trade Center (“WTC”) tenants 
and also used and/or leased common areas at the WTC, had 
an “insurable interest” in the areas that it used or occupied). 
A financial interest in the continued existence of the property 
will constitute an insurable interest as well. See Zurich Am. Ins. 
Co. v. Felipe Grimberg Fine Art, 2008 U.S. Dist. LEXIS 10544, at 
*18-19 (S.D.N.Y. Feb. 13, 2008) (“An insurable interest in property 
depends on whether the person has a title to, lien upon, or 
possession of the property, and whether ‘by the existence of 
[the property] he will gain an advantage, or by the destruction of 
which he will suffer a loss.’” (citation omitted)); Lancellotti v. Md. 
Cas. Co., 260 N.J. Super. 579, 584 (1992) (insured has insurable 
interest in property if property’s loss or destruction results in 
economic or pecuniary loss).
B. Coverage for Personal Property
Most property insurance policies also insure personal property. 
This coverage usually is provided under an “unscheduled 
personal property” provision. This provision typically provides 
coverage for unscheduled personal property that is “usual or 
incidental to the occupancy of the premises” or “used by an 
insured while on the described premises.” However, certain 
types of property that are easily movable usually will be covered 
only under “floater” policies or “floater” endorsements to 
the property policy. These policies or endorsements will cover 
business personal property, including furniture, machinery, and 
stock, at least to the extent that these items are found within 
100 feet of the insured premises.
C.  Coverage for Costs Incurred to Prevent Loss
Property policies also typically contain provisions that provide 
reimbursement for preventative measures taken to avoid loss. 
Historically, these provisions are known as “sue and labor” 
provisions (the word “sue” has the now-obsolete meaning of “to 
go in pursuit of”). Today, such provisions are often referred to as 
“expenses to prevent loss” provisions. This coverage commonly 
applies when, for example, an insured boards up its windows to 
prevent damage. The insured is entitled to reimbursement for 
these costs regardless of whether the covered property actually 
suffers damage from a covered peril. Cf. Royal Indem. Co. v. 
Grunberg, 553 N.Y.S.2d 527, 529 (App. Div. 1990) (an insured 
entitled to coverage under its homeowners policy for expenses 
incurred to prevent imminent collapse of home because “the 
policy places an affirmative duty on the insured to maintain and 
repair all covered property in the event of any loss”); see also 
Zurich Ins. Co. v. Pateman, 692 F. Supp. 371, 375 (D.N.J. 1987) 
(“Under this provision the underwriter is liable for all costs 
expended by the insured in preventing or ameliorating a loss 
which the underwriter would be required to pay.”).
The “sue and labor” clause typically is regarded as a distinct 
type of coverage supplementing a property insurance policy. 
The clause is designed to protect the insurer’s interest by 
reducing and mitigating the risk of damage from a covered loss. 
Accordingly, deductibles applicable to other types of coverage 
provided by the policy should not apply to the “sue and labor” 
coverage, and the insured should receive full reimbursement 
from the insurer for these expenses. See, e.g., Am. Home 
Assurance Co. v. J. F. Shea Co., 445 F. Supp. 365, 369-70 (D.D.C. 
1978) (Deductible does not apply to sue and labor coverage 
because it would be “inconsistent to place an affirmative 
obligation of this nature on the insureds for the benefit of the 
insurer and then additionally … require the insureds to pay for 
the first [portion] of the cost in providing this benefit.”); see also 
W. &amp; Clay, LLC v. Landmark Am. Ins. Co., 2011 WL 321740, at 
*4 (W.D. Wash. Jan. 28, 2011) (adopting Shea). “Sue and labor” 
clauses are supplementary to the insurance contract and, as 
such, amounts paid under this clause will generally not count 
against an insured’s policy limits, barring policy language to the 
contrary. See generally M. J. Rudolph Corp. v. Lumber Mut. Fire 
Ins. Co., 371 F. Supp. 1325, 1327 (E.D.N.Y. 1974).
The 2017 Atlantic Hurricane Season; Insurance Coverage for Harvey, Irma, Jose, and Maria • Page 3
Even absent a “sue and labor” clause in its property policy, an 
insured may be able to rely on the common law of mitigation 
of damages or loss to recover costs incurred to avoid insured 
losses. Courts long have recognized that if an insured takes steps 
to prevent or minimize damage to covered property, its insurer 
should pay. See, e.g., Slay Warehousing Co. v. Reliance Ins. Co., 
471 F.2d 1364, 1367-68 (8th Cir. 1973) (“[T]he obligation to pay 
the expenses of protecting the exposed property may arise from 
either the insurance agreement itself or an implied duty under 
the policy contract based upon general principles of law and 
equity.” (citations omitted)); Winkler v. Great Am. Ins. Co., 447 
F. Supp. 135, 142 (E.D.N.Y. 1978) (If insured had raised his house 
to avoid flood damage, insurer would have to pay expenses 
because “the duty to protect the property from further damage 
implies a responsibility on the insurer’s part to pay for the cost 
of reasonable protective measures.”); see also McNeilab, Inc. v. 
N. River Ins. Co., 645 F. Supp. 525, 551 (D.N.J. 1986) (“[I]n cases 
where an insured takes steps to minimize the harm already 
incurred, the insured is lessening an already vested damage 
recovery right and is, therefore, entitled to reimbursement for its 
reasonable expenses from its insurer.”).
COVERAGE AND EXCLUSIONS FOR PARTICULAR 
CAUSES OF LOSS
There are many possible causes of loss stemming from 
hurricanes: wind, wind-driven rain, storm surge, flooding, power 
outages, orders by civil authority, and looting—just to name a 
few. In some cases, more than one cause may have contributed 
to an insured’s losses. Indeed, one issue likely to arise relates 
to the question of whether losses were caused by a “Named 
Windstorm” or “Named Storm.” Many policies have deductibles 
that specifically apply to “Named Storms” and “Named 
Windstorms” that are higher than deductibles that apply to 
other perils or causes of loss. Thus, factual questions may arise. 
Recently, in a coverage dispute regarding Superstorm Sandy, a 
New Jersey judge ruled that a $100 million sublimit for flood 
losses did not apply to New Jersey Transit Corporation’s losses 
despite a surge of water on tracks, bridges, tunnels, and power 
stations, because the policy’s definition of “named windstorm” 
included coverage for storm surge. See New Jersey Transit Corp. 
v. Certain Underwriters at Lloyd’s London, No. ESX-L-006977-14 
(N.J. Super.). However, when faced with different factual 
scenarios, it may benefit insureds to avoid characterizing a 
storm as a “named storm.” In ARE-East River Science Park, LLC 
v. Lexington Insurance Co., Case No.: No. CV13-01837-BRO (C.D. 
Ca. 2014), Lexington argued a high deductible for named storms 
applied to the owner’s damage claim because it was caused 
by “a massive wall of water” Sandy unleashed days earlier. ARE 
contended, and a jury agreed, that the below-ground parking 
garage became flooded after Sandy was reclassified from a 
hurricane to a post-tropical cyclone, precluding the named storm 
provision from applying.
An insured needs to carefully assess its policies and the precise 
cause(s) of its particular loss before it characterizes that cause. 
Different characterizations can have significant impacts on the 
deductibles and sub-limits of liability. Casually labeling this storm 
a “hurricane” or a “flood,” either internally or externally may be 
inaccurate in the context of specific losses and negatively impact 
coverage, particularly because damage may have taken place 
before or after the storm was designated as a “hurricane” and 
because “flood” definitions vary. 
It is likely that insurers will respond to many hurricane-related 
coverage claims by arguing that various exclusions bar or limit 
coverage. Based on the storm and the manner in which insurers 
have responded to past catastrophic weather-related claims, 
we expect that insurers will attempt to deny coverage based 
on “flood” or “water” exclusions. If an insurer invokes such 
an exclusion, the first step will be to determine whether the 
exclusion applies to any contributing cause of the insured’s loss. 
If no cause of an insured’s loss is excluded, then the need for a 
causation analysis is moot. If, however, an exclusion applies to 
a contributing cause of the insured’s loss, a causation analysis 
must be performed to determine the scope of covered loss. 
While the analysis for determining the cause of loss varies, such 
a determination frequently involves complex issues of fact.
A. The Scope of the “Flood” Exclusion
Some policies cover the peril of wind but not the peril of flood. 
Even in those policies that purport to exclude “Flood” losses, 
the definition of “Flood” may be narrow or unclear. To evaluate 
a “Flood” exclusion, it is critical to analyze the precise policy 
language in the context of the policy as a whole. The exclusion 
may contradict another part of the policy rendering the exclusion 
ambiguous and inoperable. Notwithstanding, one current 
commercial property policies excludes “Flood,” which the policy 
defines as follows:
“ Flood” means rising water, surface water, waves, tidal 
water, tidal wave or tsunami; rising, overflowing or any 
breach of streams, rivers, lakes, reservoirs, or other 
bodies of water; or spray from any of the foregoing, all 
whether driven by wind or not.
See Liberty Mutual Specimen Property Policy (revised April 24, 
2009).
The 2017 Atlantic Hurricane Season; Insurance Coverage for Harvey, Irma, Jose, and Maria • Page 4
In addition to the definition of flood, some policies may contain 
language regarding “high hazard flood zones,” which one policy 
defines as follows:
Any Real and Personal property located in a Flood Zone 
or Special Flood Hazard Area shown on a FHBM or FIRM 
map and designated as “A, AO, A1-30, AE, A99, AH, AR, 
V, V1-V30, VE, or VO,” by the Federal Emergency Agency 
(“FEMA”) or foreign equivalent.
See Zurich Specimen Property Policy (revised August 2011).
Some primary policies, and umbrella or excess policies, may 
not include the phrase “whether driven by wind or not.” Also, 
depending on the degree of flood risk faced by the business, 
it may be possible to purchase coverage for floods as an 
endorsement to the business’ commercial property policy or 
by purchasing a supplemental policy. See Park Country Club of 
Buffalo, Inc. v. Tower Ins. Co. of N.Y., 893 N.Y.S.2d 408 (App. Div. 
2009). When flood coverage is purchased, it may be subject to a 
separate deductible and may contain a sub-limit of liability. See 
Stewart Enters., Inc. v. RSUI Indem. Co., 614 F.3d 117, 120 (5th 
Cir. 2010) (primary policy providing for sub-limit of $10 million 
aggregate for flood per policy year).
As discussed above, the burden of proof shifts to the insurer to 
show that the loss is not covered under an “all risk” policy once 
an insured shows that it has suffered a loss. To be effective, an 
insurer’s interpretation of its coverage exclusion must be the 
only reasonable one. See RJC Realty Holding Corp. v. Republic 
Franklin Ins. Co., 2 N.Y.3d 158,165 (2004) (confirming that “an 
exclusion in an insurance policy can negate coverage only where 
it is stated ‘in clear and unmistakable language [and] is subject 
to no other reasonable interpretation.’” (quoting Cont’l Cas. Co. 
v. Rapid-Am. Corp., 80 N.Y.2d 640, 652 (1993))); Flomerfelt v. 
Cardiello, 202 N.J. 432, 442 (2010) (“[E]xclusions are ordinarily 
strictly construed against the insurer, and if there is more than 
one possible interpretation of the language, courts apply the 
meaning that supports coverage rather than the one that 
limits it.” (citations omitted)); Allstate Ins. Co. v. Barron, 269 
Conn. 394, 406 (2004) (“‘[W]hen the words of an insurance 
contract are, without violence, susceptible of two [equally 
reasonable] interpretations, that which will sustain the claim 
and cover the loss must, in preference, be adopted … . [T]his rule 
of construction favorable to the insured extends to exclusion 
clauses.’” (quoting Travelers Ins. Co. v. Namerow, 261 Conn. 784, 
796 (2002))). 
Insurers will likely contend that any insured’s interpretation 
suggesting that an insurer intended a “Flood” exclusion 
to include (i.e., not exclude) wind-driven storm surge is 
unreasonable. Such arguments may depend upon the precise 
policy language and, potentially, the underwriting exchanges 
between them and the insurance broker. Some or all of the 
following facts may influence those arguments: (1) the “Flood” 
exclusion may exclude water damage resulting from certain types 
of water events, such as “surface water” and “sewer backup,” 
but may not exclude “storm surge” or “wind-driven water”;  
(2) the insurer or insurance broker may have defined flood and 
wind-driven water as “Named Windstorm,” but may not have 
excluded Named Windstorm from coverage; (3) the insurer or 
insurance broker may not have included the phrase “whether 
driven by wind or not” in the policy’s flood exclusion, despite 
using the phrase in another provision within the policy;  
(4) the insurance broker may have included storm surge in 
“Named Windstorm” risk analyses in procuring coverage; or 
(5) the insurer had available to it clear alternative language 
commonly used in policies to indicate the inclusion of wind-
driven storm surge in the definition of flood, but did not use  
that clearer language in the subject policy. 
An insured may possess several arguments that a policy’s “Flood” 
exclusion does not bar water damage resulting from a storm 
surge. See, e.g., De Marinis v. Tower Ins. Co. of N.Y., 774 N.Y.S.2d 
436, 438 (App. Div. 2004) (insurer sought to avoid insured’s wind-
storm coverage claim by relying on a “Water Damage” exclusion; 
insurer’s summary judgment motion denied because insurer 
“failed to establish a prima facie case that the policy did not 
cover the loss claimed.”); see also Platek v. Town of Hamburg, 
948 N.Y.S.2d 797, 798-99 (App. Div. 2012) (water damage 
exclusion did not exclude coverage when explosion also caused 
loss); New Jersey Transit Corp. No. ESX-L-006977-14 (refusing 
to apply a “flood” sublimit because the policy’s “named storm” 
definition included “storm surge”). But see Northrop Grumman 
Corp. v. Factory Mut. Ins. Co., 563 F.3d 777 (9th Cir. 2009) 
(inundation from the Katrina storm surge fit within definition of 
“Flood” in excess policy).
Causation determinations and subsequent allocation of 
hurricane-related losses between covered and uncovered causes 
will generally involve complex questions of fact and the insurer 
will frequently bear the burden of proving which portions of 
the insured’s total loss are excluded, if any. See, e.g., Northrop 
Grumman Corp. v. Factory Mut. Ins. Co., 805 F. Supp. 2d 945, 
955 (C.D. Cal. 2011) (once insured submits claim that it “suffered 
a loss in excess of the Excess Policy’s … attachment point … the 
burden … shifts to [the insurer] to prove which losses are excluded 
by its Excess Policy.”); PepsiCo, Inc. v. Cont’l Cas. Co., 640 F. Supp. 
656, 661-62 (S.D.N.Y. 1986) (insurer bears the burden of proving 
what portion of loss is subject to allocation, if any).
The 2017 Atlantic Hurricane Season; Insurance Coverage for Harvey, Irma, Jose, and Maria • Page 5
B.  Limitations on Flood Exclusions Where Covered 
Causes Also Contributed to the Insured’s Loss
An important issue that may arise in connection with the 
devastation from hurricanes is whether “Flood” exclusions 
limit claims for losses that have more than one contributing 
cause of loss. 
Courts in the Gulf Coast region addressed causation issues in 
the aftermath of Hurricane Katrina. In Vanderbrook v. Unitrin 
Preferred Ins. Co. (In re Katrina Canal Breaches Litigation) 495 
F.3d 191 (5th Cir. 2007), the Fifth Circuit predicted that the 
Louisiana Supreme Court would find that water damage from 
Hurricane Katrina was caused only by flood (a cause often 
excluded from coverage) and that, therefore, no multiple cause 
analysis was necessary. Id. at 221-23. The insureds, however, 
argued that negligent design, construction, and maintenance 
of levees, rather than flood, caused the damage. Id. at 223. 
Many courts have shown a willingness to apply a multiple cause 
analysis to determine whether the damage caused by Hurricane 
Katrina is covered where the insured argues that another natural 
cause, such as wind, contributed to or caused its damage in 
concert with flood. See, e.g., Leonard v. Nationwide Mut. Ins. Co., 
499 F.3d 419, 429-31 (5th Cir. 2007); Tuepker v. State Farm Fire &amp; 
Cas. Co., 507 F.3d 346, 356 (5th Cir. 2007).
While not a weather-related coverage decision, New York’s 
causation test was clearly espoused in a coverage matter that 
arose in the context of a fire loss and subsequent Department 
of Buildings Vacate Order. In Throgs Neck Bagels, Inc. v. GA 
Insurance Co. of New York, 671 N.Y.S.2d 66 (App. Div. 1998), 
the insured bagel shop sought coverage for property damage 
and the resultant lost business. Id. at 67-68. The insurer denied 
coverage for most of the claim based on a “law or ordinance” 
exclusion that purported to bar coverage for losses that 
arose directly or indirectly from the enforcement of a law or 
ordinance. Id. at 68. In determining whether the insured’s losses 
were caused by a covered event, the Appellate Division, First 
Department explained:
In determining whether a particular loss was caused by 
an event covered by an insurance policy where other, 
noncovered events operate more closely in time or 
space in producing the loss, the question of whether 
the covered event was sufficiently proximate to the loss 
to require that the insurer compensate the insured will 
depend on whether it was the dominant and efficient 
cause.
Id. In so explaining, the court held that fire was the efficient 
cause of all of the losses for which the insured sought coverage. 
Id. at 69. The cost of removing property, the improvements 
that could not be removed, and the lost business “‘necessarily 
follow[ed]’” from the covered fire. Id. (citation omitted).
Applying the efficient proximate cause test, New York courts 
must not, however, examine or identify “the event that merely 
set[s] the stage for [a] later event.” Kosich v. Metro. Prop. &amp; Cas. 
Ins. Co., 626 N.Y.S.2d 618, 618 (1995) (internal quotation marks 
omitted). “Only the most direct and obvious [efficient] cause 
should be looked to for purposes of the exclusionary clause.” 
Kula v. State Farm Fire &amp; Cas. Co., 628 N.Y.S.2d 988, 991 (1995). 
“When the court interprets an insurance policy excluding from 
coverage any injuries ‘caused by’ a certain class of conditions, 
the causation inquiry stops at the efficient physical cause of 
the loss; it does not trace events back to their metaphysical 
beginnings.” Kimmins Indus. Serv. Corp. v. Reliance Ins. Co., 
19 F.3d 78, 81 (2d Cir.1994) (internal citations and selected 
quotation marks omitted). 
Applying the standards set forth above, courts addressing 
causation under New York law in connection with 9/11 coverage 
claims found in the insureds’ favor. See Ocean Partners v. North 
River Ins. Co., 546 F. Supp. 2d 101, 115 (S.D.N.Y 2008) (rejecting 
the insurer’s assertion that the policy’s collapse exclusion barred 
coverage because the cloud of particulate matter emanating 
from the towers was the efficient proximate cause of the 
insured’s loss, not the towers’ collapse); Parks Real Estate v. 
St. Paul Fire &amp; Marine Ins. Co., 472 F.3d 33, 48-9 (2d Cir. 2006) 
(same).
Courts have historically taken differing approaches when 
addressing coverage in situations where multiple causes may 
have caused the loss. One of the first decisions to address 
this issue was Sabella v. Wisler 59 Cal. 2d 21 (1963). There, a 
building contractor had constructed a house and negligently 
installed a sewer line. Negligent installation was a covered peril 
under the insurance policy. The sewer line eventually ruptured, 
causing water to saturate the ground surrounding the insureds’ 
home, resulting in subsidence, an excluded peril. To determine 
coverage, the California Supreme Court first ascertained the 
insureds’ cause of loss. The court stated the test as follows:
The 2017 Atlantic Hurricane Season; Insurance Coverage for Harvey, Irma, Jose, and Maria • Page 6
“[I]n determining whether a loss is within an exception 
in a policy, where there is a concurrence of different 
causes, the efficient cause—the one that sets others 
in motion—is the cause to which the loss is to be 
attributed, though the other causes may follow it, and 
operate more immediately in producing the disaster.” 
Id. at 31 (citation omitted).
In Gillis v. Sun Insurance Office, Ltd. 238 Cal. App. 2d 408 
(1965), the court applied the efficient proximate cause test to 
a windstorm. There, the insured, an owner of docking facilities, 
suffered extensive damage from a windstorm that caused a 
portion of the facilities to become submerged in the ocean. Id. 
at 410-11. The insured’s policy covered loss caused by wind, 
but excluded loss caused by water or waves. Id. at 415. The 
court, relying on Sabella, concluded that wind was the efficient 
proximate cause of the insured’s loss and, therefore, the policy 
covered its loss. Id. at 416-25. Likewise, Massachusetts’ highest 
court applied the efficient proximate cause test and found that a 
homeowner’s policy that included a pollution exclusion provided 
coverage for damage to oil-contaminated property. Jussim 
v. Mass. Bay Ins. Co., 415 Mass. 24, 25-31 (1993). The court 
reasoned that a third party’s negligence when pumping oil and 
not the release of a pollutant was the efficient proximate cause 
of the damage. Id. 
Some states follow a “concurrent causation” test, as opposed to 
an efficient proximate cause test. Under a concurrent causation 
test, coverage is afforded provided that one of the contributing 
causes is insured, even if other contributing causes are not 
insured. Florida, for example, follows the concurrent causation 
doctrine, as confirmed by the Florida Supreme Court in Sebo v. 
American Home Assurance Co., 208 So.3d 694 (Fla. 2016). The 
case involved a homeowner who suffered extensive damage to 
his home due to leaks during rainstorms. When Sebo reported 
the water damage to his insurance company, the insurer denied 
coverage asserting that construction defects were the primary 
cause of the damage and that the policy expressly excluded 
damage due to faulty, inadequate, or defective planning. In 
adopting the concurrent causation test over the efficient 
proximate cause test, the court reasoned that: 
[T]here is no reasonable way to distinguish the 
proximate cause of Sebo’s property loss—the rain and 
construction defects acted in concert to create the 
destruction of Sebo’s home. As such, it would not be 
feasible to apply the EPC doctrine because no efficient 
cause can be determined.
Sebo, 208 So.3d at 700. 
The Sebo Court held that the concurrent cause doctrine applies 
to Sebo’s case, rejecting the Second District’s concern that “a 
covered peril can usually be found somewhere in the chain of 
causation, and to apply the concurrent causation analysis would 
effectively nullify all exclusions in an all-risk policy.” Thus, under 
Florida law, an insured may recover where two or more perils 
contribute to a loss and at least one of the causes is not excluded 
under the terms of the policy. For example, wind and rain from a 
hurricane both cause loss to an insured’s home. If wind is not an 
excluded cause under the policy (which it almost never is) and 
loss caused by flooding is excluded, pursuant to the concurrent 
cause test, the loss will be covered.
New Jersey courts have applied a version of the concurrent 
causation test. In Simonetti v. Selective Insurance Co. 372 N.J. 
Super. 421 (2004), homeowners brought an action against their 
insurer to recover for mold damage that a rainstorm allegedly 
caused. The all-risk homeowner’s policy at issue covered 
“‘direct … physical loss to property.’” Id. at 422. The policy 
covered losses caused by a rainstorm, but excluded coverage 
for losses caused by mold and by faulty design, workmanship 
and maintenance. Id. at 426. The insurer contended that faulty 
workmanship caused the loss rather than, or in addition to, the 
storm itself. Id. at 428.
The court reversed the grant of the insurer’s motion for 
summary judgment, holding that a question of fact existed as to 
whether some or all of the damage, including mold, was caused 
by the rainstorm. Id. at 431. The court held that concurrent 
causation was not an absolute bar to recovery:
The fact that two or more identifiable causes—one a 
covered event and one excluded—may contribute to a 
single property loss does not necessarily bar coverage.
Id. With respect to concurrent causation, the court held that 
“[w]here included and excluded causes occur concurrently, it is 
for the factfinder to determine which part of the damage was 
due to the included cause of loss and for which the insured 
can recover.” Id. The court further held that, with respect to 
sequential causes of loss, “our courts have determined that an 
insured deserves coverage where the included cause of loss is 
either the first or last step in the chain of causation which leads 
to the loss.” Id.; see also Franklin Packaging Co. v. Cal. Union 
Ins. Co., 171 N.J. Super. 188, 191-92 (1979) (vandals broke into 
warehouse and caused flood that damaged inventory; vandalism, 
a covered cause of loss, was proximate cause even though 
policy excluded water damage); Puhlovsky, 2012 N.J. Super. 
Unpub. LEXIS at *24 (The “‘regardless of any other cause or 
The 2017 Atlantic Hurricane Season; Insurance Coverage for Harvey, Irma, Jose, and Maria • Page 7
event’ language does not modify or pertain to these exclusions. 
Accordingly, if the ‘efficient or predominant cause’ of plaintiff’s 
loss is a covered peril, then the fact that an excluded peril may 
have also contributed to the loss, does not vitiate coverage.”). 
Texas applies a variation of the concurrent cause rule that 
places an evidentiary burden on the insured to come forward 
with some proof that would provide a reasonable basis for 
apportioning the loss between a covered cause and an excluded 
cause. See Wallis v. United Servs. Auto. Ass’n, 2 S.W.3d 300, 
302–03 (Tex. App. 1999). The evidentiary standard is low and 
insureds can easily meet it with a reasonable assessment. 
C. Anti-Concurrent Causation Language
Substantial debate has arisen over the years about the 
appropriate causation test. Accordingly, some insurers attempt 
to address the causation requirement by modifying their policies. 
A recent commercial property policy contains the following 
provision:
We will not pay for loss or damage caused directly or 
indirectly by any of the following. Such loss or damage 
is excluded regardless of any other cause or event that 
contributes concurrently or in any sequence to the loss. 
ISO Properties, Inc, Commercial Property, Causes of Loss – 
Special Form, Form CP 10 30 06 07 (2007); see also Travelers 
Businessowners Property Coverage Special Form, Form MP T1 02 
02 05 (2004) (renewed 2012).
Such terms are often referred to as “anti-concurrent causation 
language.” The Fifth Circuit predicted that at least one 
jurisdiction would uphold such language to preclude application 
of the efficient proximate cause doctrine to water damage 
caused by Hurricane Katrina. See Leonard, 499 F.3d at 429-36; 
Tuepker, 507 F.3d at 356; see also Stewart Enters., 614 F.3d at 
125-27 (anti-concurrent causation clause did not bar insured’s 
recovery for damage caused by combination of flood and wind); 
cf. Corban v. United Servs. Auto. Ass’n, 20 So. 3d 601, 616-18 
(Miss. 2009) (anti-concurrent cause provision not applicable 
because wind and flood damage did not “contemporaneously 
converge, operating in conjunction, to cause damage resulting 
in loss to the insured property,” but rather insured property was 
“separately damaged” by a covered and excluded peril). 
Other jurisdictions have found that statutory and public policy 
limitations precluded anti-concurrent causation language at least 
in some circumstances. See, e.g., De Bruyn v. Superior Court, 
158 Cal. App. 4th 1213, 1223 (2008) (“[A]n insurer may limit 
coverage to some, but not all, manifestations of a given peril, as 
long as ‘[a] reasonable insured would readily understand from 
the policy language which perils are covered and which are not.’” 
(quoting Julian v. Hartford Underwriters Ins. Co., 35 Cal. 4th 
747, 759 (2005))); cf. Landry v. La. Citizens Prop. Ins. Co., 964 So. 
2d 463, 484 (La. Ct. App. 2007) (under La. Rev. Stat. &#167; 22:695, 
if the efficient proximate cause of the insured’s damage from 
Hurricane Rita was wind, rain, or hail (all covered perils), insurer 
is liable for full face value of the insured property without offset 
for damage caused by uncovered peril of flood even though the 
policy contains anti-concurrent causation language), aff’d in part 
and vacated in part on other grounds, 983 So. 2d 66 (La. 2008). 
But see Petrick v. State Farm Fire &amp; Cas. Co., 2010 N.J. Super. 
Unpub. LEXIS 1964, at *16-17 (2010) (anti-sequential clause does 
not violate New Jersey public policy); Alamia v. Nationwide Mut. 
Fire Ins. Co, 495 F. Supp. 2d 362 (S.D.N.Y. 2007).
Under certain circumstances, courts have found anti-concurrent 
causation language ambiguous and have construed the language 
in favor of coverage for the insured. See, e.g., Brooklyn Bridge, 
Inc. v. S.C. Ins. Co., 309 S.C. 141, 143-45 (1992) (anti-concurrent 
language in an insurance policy, when read in conjunction 
with a power failure exclusion, was ambiguous as to whether 
it excluded loss due to spoilage of insured grocery store’s 
inventory after general power failure caused by Hurricane 
Hugo). Accordingly, insureds should review the wording of their 
policies carefully to determine whether anti-concurrent language 
governs, or whether a common law test would apply.
In any event, “[t]he great majority of cases addressing causation 
disputes under an insurance policy hold that the causal 
relationship of a loss to a particular alleged instrumentality is a 
question of fact.” 7 Lee R. Russ &amp; Thomas F. Segalla, Couch on 
Insurance 3d &#167; 101:59 (2006). This means, of course, that an 
insurer should not be able to automatically reject coverage on 
the notion 
COVERAGE FOR LOST BUSINESS 
Thousands of businesses suffered disruption of their operations 
and lost income as a result of Harvey, Irma, Jose, and Maria, 
and the 2017 Atlantic Hurricane Season has not yet ended. 
Many property insurance policies also provide “time element” 
coverage that protects against such losses. 
A. Business Interruption
“Business Interruption” coverage typically reimburses the 
insured for the amount of gross earnings minus normal expenses 
that the insured would have earned but for the interruption of 
the insured’s business (that is, its profits). See, e.g., Pennbarr 
The 2017 Atlantic Hurricane Season; Insurance Coverage for Harvey, Irma, Jose, and Maria • Page 8
Corp. v. Ins. Co. of N. Am., 976 F.2d 145, 154 (3d Cir. 1992) (the 
purpose of business interruption insurance is “to return to the 
insured that amount of profit that would have been earned 
during the period of interruption had a casualty not occurred.”); 
Howard Stores Corp. v. Foremost Ins. Co., 441 N.Y.S.2d 674, 
676 (App. Div. 1981) (“The purpose of business interruption 
insurance is to indemnify the insured against losses arising from 
inability to continue normal business operation and functions 
due to the damage sustained as a result of the hazard insured 
against.”), aff’d, 439 N.E.2d 397 (N.Y. 1982); cf. Prudential LMI 
Commercial Ins. Co. v. Colleton Enters., 976 F.2d 727 (4th Cir. 
1992) (under South Carolina law, business interruption insurance 
did not cover expected profits that hotel could have realized if 
it could have accommodated the influx of temporary workers 
coming to the area to respond to the hurricane, had the hotel 
not itself been damaged; insured could not benefit from the 
insured peril but could only be “put … in the earnings position it 
would have been in had the insured peril not occurred”).
Business interruption coverage provisions typically apply even 
when an insured is forced to relocate in order to keep its 
business going or to minimize its overall loss. See, e.g., Am. Med. 
Imaging Corp. v. St. Paul Fire &amp; Marine Ins. Co., 949 F.2d 690, 
692-93 (3d Cir. 1991) (insured reopened at an alternate location, 
but earned less than it otherwise would have; insurer obligated 
to indemnify insured while business continued at less-than-
normal level). 
1. Coverage without Physical Damage
Many businesses have incurred substantial losses as a result of 
the hurricanes even though they suffered no direct property 
damage. The effects of the hurricanes will likely be felt across 
the country, well beyond the areas that suffered a direct hit. 
While some insurance policies will not respond to such losses, 
other policies may respond and provide substantial economic 
recovery. See, e.g., Cincinnati Ins. Co. v. Washer &amp; Refrigeration 
Supply Co., 2008 U.S. Dist. LEXIS 112464 (S.D. Ala. Aug. 8, 2008) 
(suspension of operations at a warehouse damaged by Hurricane 
Katrina could warrant coverage for business losses at distribution 
and retail outlets that did not sustain damage); see also RTG 
Furniture Corp. v. Indus. Risk Insurers, 616 F. Supp. 2d 1258, 
1264-66 (S.D. Fla. 2008) (issues of fact existed as to whether 
deductible applied to losses caused by Hurricanes Charley, 
Frances, and Jeanne that were not attributable to physical 
damage to insured’s property); Fountain Powerboat Indus., Inc. 
v. Reliance Ins. Co., 119 F. Supp. 2d 552, 556-57 (E.D.N.C. 2000) 
(no physical damage required to trigger business interruption 
coverage after Hurricane Floyd); Hampton Foods, Inc. v. Aetna 
Cas. &amp; Sur. Co., 787 F.2d 349, 351-52 (8th Cir. 1986) (coverage for 
business interruption loss of inventory of grocery store granted 
when store was forced to sell inventory at salvage value due to 
imminent damage to the store’s premises despite the premises 
not being covered under the policy); Sloan v. Phoenix of Hartford 
Ins. Co., 46 Mich. App. 46 (1973) (coverage existed because 
insuring agreements in business interruption policies not only 
contained words “damage” and “destruction,” but also included 
word “loss,” or otherwise encompassed an interpretation that 
did not require “physical” damage or destruction to property); 
Allen Park Theatre Co. v. Mich. Millers Mut. Ins. Co., 48 Mich. 
App. 199, 201 (1973) (“If the insurer wanted to be sure that 
the payment of business interruption benefits had to be 
accompanied by physical damage it was its burden to say so 
unequivocally.”); Pressman v. Aetna Cas. &amp; Sur. Co., 574 A.2d 757 
(R.I. 1990) (insured could recover for business interruption losses 
caused by a power outage from a tree falling on a power line); 
McMahon Books, Inc. v. Nationwide Prop. &amp; Cas. Ins. Co., No. 
1992-06-232, 1993 WL 1303168 (Del. Ct. Com. Pl. Jun. 9, 1993) 
(coverage for business interruption caused by power outage 
from a fire).
2.  Coverage with Damage, but Not to  
Insured Property
Insurers still may deny time-element coverage even if physical 
injury to tangible property has incurred, if the physical injury was 
not covered, or if the property did not belong to the insured. 
Wakefern Food Corp. v. Liberty Mut. Fire Ins. Co., 406 N.J. Super. 
524, 540 (2009) (electrical grid was “physically damaged” when 
the grid, its component generators, and transmission lines were 
incapable of performing the essential function of providing 
electricity). However, some courts have interpreted business 
interruption insurance to cover an insured’s lost profits caused 
by physical damage from a windstorm to uncovered property. 
In Southeast Mental Health Center, Inc. v. Pacific Insurance 
Co. 439 F. Supp. 2d 831 (W.D. Tenn. 2006), a heavy rain and 
windstorm (referred to by the community as “Hurricane Elvis”) 
destroyed a number of electrical towers, knocking out power 
and causing extensive data loss from the insured’s computer 
network. As a result, the insured was forced to temporarily 
suspend its pharmaceutical operations, causing a significant 
loss of business income. The property damage section of the 
policy unambiguously excluded coverage for physical damage to 
property caused by either power failure or computer hardware 
malfunction. Id. at 836, 839. The court concluded, however, that 
the language in the business interruption section of the policy 
was ambiguous as to whether it contemplated coverage for 
the insured’s lost profits caused by power failure and computer 
malfunction and construed that ambiguity in favor of coverage. 
Id. at 839; see also Wakefern Food, 406 N.J. Super. At 540. 
The 2017 Atlantic Hurricane Season; Insurance Coverage for Harvey, Irma, Jose, and Maria • Page 9
In a case arising out of Hurricane Katrina, the court found that 
the insured medical practice could recover the lost income 
attributable to its hospital practice, even though its services 
were not provided on the insured premises. Iteld, Bernstein &amp; 
Assocs., LLC v. Hanover Ins. Grp., 2009 U.S. Dist. LEXIS 71539, at 
*7-10 (E.D. La. Aug. 12, 2009).
3.  Coverage for Losses Incurred During the 
Interruption of Operations
As a result of the hurricanes, many insureds are likely to have 
suffered an immediate cessation of all business operations 
followed by a partial resumption of operations on a limited basis 
before returning to normal operations. Business interruption 
coverage ordinarily covers losses incurred during the time 
required to repair, replace, or restore damaged property. Under 
some policies, coverage may not extend to their full repair 
period if the insured resumes partial operations before the 
damaged property is fully repaired. On the other hand, coverage 
may be extended beyond the repair or replace period to include 
the additional time that may be required to return to normal 
operations. Compare Omaha Paper Stock Co. v. Harbor Ins. 
Co., 596 F.2d 283, 289 (8th Cir. 1979) (finding coverage under 
“partial suspension of business” provision when a fire partially 
interrupted insured’s processing plant), and Aztar Corp. v. U.S. 
Fire Ins. Co., 224 P.3d 960, 968 (Ariz. Ct. App. 2010) (noting that 
“interruption” does not require that a business be unable to 
function, and that decreased patronage could qualify as business 
interruption), with Forestview The Beautiful, Inc. v. All Nation 
Ins. Co., 704 N.W.2d 773 (Minn. Ct. App. 2005) (holding that 
loss of business income due to a partial suspension of business 
operations after a hurricane was not covered under a business 
interruption policy endorsement).
For example, in Lexington Insurance Co. v. Island Recreational 
Development Corp. 706 S.W.2d 754 (Tex. App. 1986), the insured 
owned a restaurant that was severely damaged in a storm. Upon 
reopening, it took six months for the restaurant to return to the 
pre-storm volume of business. The insured sought to recover 
its losses incurred during the time it was closed and for the 
losses it incurred in returning to its prior business volume. The 
court broadly interpreted the policy to protect the reasonable 
expectations of the insured. Because the policy did not explicitly 
exclude the period of recovery after resumption of operation, 
the court held that the insured was entitled to recover for the 
loss it suffered during its closure and also during the months 
that followed until its lost business volume was recovered.  
Id. at 755-56. 
In American Medical Imaging Corp. v. St. Paul Fire &amp; Marine 
Insurance Co., 949 F.2d 690, 692-93 (3d Cir. 1991),, fire damage 
rendered the insured’s ultrasound headquarters unusable. 
The insured’s business interruption policy provided coverage 
for “necessary or potential suspension” of operations. It also 
required the insured to reduce its loss if possible by “resuming 
operations.” Under the policy, the insurer was obligated to 
indemnify the insured until it returned to “normal business 
operations.” The insured reopened at an alternate location 
rather than suffer the extensive losses that a lengthy complete 
closure of its business would have caused and in compliance 
with the mitigation requirements of the policy. As a result, 
the insured incurred extra expenses and earned less than it 
otherwise would have. The district court concluded that once 
the insured had reopened for business, recovery for the further 
period of operation with reduced earnings was precluded. 
The Third Circuit rejected this conclusion. Id. The appeal court 
reasoned that the plain language of the policy requiring the 
insurer to indemnify the insured until it returned to “normal 
business operations” necessarily implied that the insurer was 
obligated to indemnify the insured for losses incurred while 
business continued, albeit at a less-than-normal level, in an effort 
to minimize its losses. Id. at 693. Barring recovery of an insured’s 
loss of earnings and extra expenses resulting from its efforts to 
minimize its losses would eliminate the insured’s motivation to 
mitigate. Orrill, Cordell, &amp; Beary, L.L.C. v. CNA Ins. Co., 2009 U.S. 
Dist. LEXIS 20867, at *7 8 (E.D. La. Mar. 16, 2009) (public policy 
and purpose of insuring business income losses are best served 
in providing coverage where insured mitigated damages).
B. Contingent Business Interruption
Many businesses have suffered losses because the operations of 
their suppliers or customers were disrupted by the hurricanes. 
For example, re-transmitters of the signals of television networks 
(e.g., cable and satellite dish companies) could not transmit 
programming to the purchasing consumer due to storm damage 
to their towers, thus resulting in downward fee adjustments 
for the networks. Also, following Harvey, insureds across the 
country that relied on cracked chemicals from their suppliers 
that operated in Texas may have suffered significant contingent 
business interruption losses arising from the suppliers’ inability 
to provide their goods at the same level as they did prior to 
the storm. These lost revenues to the insureds are interruption 
losses resulting from the property damage sustained by its 
customers or suppliers.
The 2017 Atlantic Hurricane Season; Insurance Coverage for Harvey, Irma, Jose, and Maria • Page 10
“Contingent Business Interruption” coverage typically covers two 
types of business interruption. First, it protects against economic 
losses caused by a “direct” supplier’s inability to get its goods 
to the insured due to damage to or destruction of the supplier’s 
property by an insured peril. See Park Electrochemical Corp. v. 
Cont’l Cas. Co. 2011 U.S. Dist. LEXIS 16344, *11-12 (E.D.N.Y. Feb. 
18, 2011). Second, it protects against economic losses caused 
by damage to or destruction of a customer’s property that 
prevents the customer from accepting the insured’s products. 
See Children’s Place Retail Stores, Inc. v. Fed. Ins. Co., 829 N.Y.S.2d 
500 (App. Div. 2007) (business interruption coverage for the 
period of time reasonably taken to resume operations at a 
different location following the 9/11 attacks).
In Archer-Daniels-Midland Co. v. Phoenix Assurance Co. of New 
York, for example, as a result of a flood, the insured suffered 
approximately $55 million in losses consisting of increased costs 
of transportation and raw materials, even though the insured did 
not own the damaged property. 936 F. Supp. 534 (S.D. Ill. 1996), 
aff’d sub nom. Archer-Daniels-Midland Co. v. Aon Risk Servs., 
Inc. of Minn., 356 F.3d 850, 854-57 (8th Cir. 2004). The policy 
included a coverage grant for loss sustained by the insured as 
a result of direct physical damage caused by the perils insured 
against. Id. at 537. The insurers denied coverage because the 
damaged property was owned by suppliers. Id. The insured 
argued that the policy language required only: (1) that there be 
direct physical damage to “property,” and (2) that the damage 
be caused by a covered peril. The court found that both of those 
conditions were met and held that the language of the insuring 
agreement did not require the damaged property to be insured 
under the policy. Therefore, the insured was entitled to coverage 
for its incurred losses. Id. at 540. 
C. Civil Authority
Many businesses shut down before the storm made landfall 
because they were located in areas subject to evacuation orders. 
Others may be located in areas to which access has been denied 
by similar orders after the storm. “Civil Authority” coverage 
may provide coverage for such insureds who sustained business 
losses in the wake of the hurricanes This coverage frequently 
applies when an insured loses business income because access 
to its premises is prohibited by an act of the government. In 
preparation for Irma, many areas were subject to mandatory 
evacuation orders from state and local governments. Following 
the devastation, access to many areas remained restricted 
because of the dangers posed by high waters and damage 
to trees, structures, and lost utilities. The availability of Civil 
Authority coverage will depend upon the particular language 
used in the policy at issue, as well as the timing of the issuance 
of the order in relationship to the timing of actual damages. 
In Narricot Industries, Inc. v. Fireman’s Fund Insurance Co., 2002 
U.S. Dist. LEXIS 19074 (E.D. Pa. Sept. 30, 2002), for example, the 
insured was forced to suspend operations at its plant due to the 
mayor’s declaration of a state of emergency following Hurricane 
Floyd. The insurer denied the insured’s claim, alleging that the 
losses were not covered because the civil authority orders were 
preventative in nature. The court rejected this contention and 
held in favor of the insured. The court found coverage because 
the state of emergency was issued as a result of the property 
damage already caused by Hurricane Floyd, including damage to 
electrical lines, a water treatment plant, and a raw water pump 
station. Id. at *11; but see S. Tex. Med. Clinics, P.A. v. CNA Fin. 
Corp., U.S. Dist. LEXIS 11460, at *34 (S.D. Tex. Feb. 15, 2008) 
(no Civil Authority coverage when evacuation order was due to 
anticipated threat of damage). 
In ABM 397 F.3d at 171, the district court denied Civil Authority 
coverage because the insured’s business income losses were 
caused by the destruction of the WTC, not by orders of civil 
authorities, and that those losses would have been incurred even 
if civil authorities had not prohibited access to that location. 
The Second Circuit Court of Appeals disagreed because the loss 
of income that the insured sought under the Civil Authority 
provision was from its interruption of business at its 34 non-WTC 
locations. The court found that the destruction, unaccompanied 
by civil orders, would not have resulted in the loss of income 
for which the insured sought reimbursement under the Civil 
Authority provision. See id. The court reversed the district court’s 
denial of Civil Authority coverage and remanded the issue to 
determine whether the civil orders actually impaired access to 
the properties that the insured serviced. See id.
In Assurance Co. of America v. BBB Service Co., 265 Ga. App. 
35 (2003), the insured, an owner of several fast food chain 
restaurants, was forced to close its stores for two and a half 
days due to a mandatory evacuation of the community during 
Hurricane Floyd. The insurer denied the insured’s business 
interruption claim, arguing that the civil authority order 
prohibiting access to the insured’s restaurants was based on the 
threat of direct physical property damage rather than actual 
damage caused by the hurricane. Id. at 35. The court rejected 
the insurer’s argument and affirmed the lower court’s grant of 
coverage for its lost profits. Id. at 37.
The Fifth Circuit has taken a limited view of Civil Authority 
coverage in at least one case, holding that coverage was 
not available because the insured could not demonstrate a 
connection between property damage in the Caribbean and a 
The 2017 Atlantic Hurricane Season; Insurance Coverage for Harvey, Irma, Jose, and Maria • Page 11
mayoral order to evacuate New Orleans in advance of Hurricane 
Gustav. See Dickie Brennan &amp; Co. v. Lexington Ins. Co., 636 F.3d 
683 (5th Cir. 2011).
Two cases stemming from the closure of Reagan National Airport 
during the 9/11 attacks demonstrate that small differences in 
policy language can lead to very different results. The Federal 
Aviation Administration (“FAA”) ordered Reagan Airport closed 
after the WTC was attacked, but before the Pentagon was 
attacked. Ultimately, no property was damaged at the airport. It 
remained closed until October 4. 
Both US Airways and United Air Lines sought business 
interruption coverage. A Virginia court ruled that US Airways’ 
losses were covered (US Airways, Inc. v. Commonwealth Ins. Co., 
65 Va. Cir. 238 (Va. Cir. Ct. 2004)), but the Second Circuit held 
that United’s losses were not. (United Air Lines, Inc. v. Ins. Co. of 
Pa., 439 F.3d 128 (2d Cir. 2006).) The differing result appears to 
lie in nuanced policy distinctions. 
US Airways’ business interruption clause provided coverage to 
the extent access to insured property was prohibited by order 
of civil authority “‘as a direct result of a peril insured against.’” 
US Airways, 65 Va. Cir. at 240. The Virginia state court concluded 
that this civil authority clause “does not require actual damage 
or loss of property to invoke coverage,” but only the risk of actual 
damage. Id. at 244. US Airways was entitled to coverage for its 
business interruption losses because the order to close Reagan 
Airport was issued due to the risk of an imminent attack, and 
because US Airways property was located there. Id. at 245.
In contrast, United’s policy provided coverage if access to insured 
property was prohibited by order of civil authority as a direct 
result of “‘damage to adjacent premises.’” United, 439 F.3d at 
129. The district court held that the Pentagon is not “adjacent” 
to Reagan Airport, reasoning that the two facilities are three 
miles apart and separated by roads and buildings. Id. at 134. 
Moreover, the Second Circuit held that even if the Pentagon 
were “adjacent” to the airport, United still would have had no 
coverage because the FAA closure order was issued before the 
Pentagon suffered actual damage. Id. at 134-35.
New York courts have strictly construed the requirement that 
access to the premises be prohibited, finding that Civil Authority 
coverage only applies when all access to the insured’s property 
is prohibited. One court found no coverage when limited access 
to an insured’s premises existed even though such access was 
restricted to levels below normal because of the acts of civil 
authority. See 54th St. Ltd. Partners, L.P. v. Fid. &amp; Guar. Ins. 
Co., 763 N.Y.S.2d 243 (App. Div. 2003). Similarly, following the 
attacks of 9/11, one New York court found that Civil Authority 
coverage only applied to the period of time when access to all of 
lower Manhattan was restricted, and did not apply to the time 
period when police presence and roadblocks may have caused 
confusion about the ability to access the insured’s premises. See 
Abner, Herrman &amp; Brock, Inc. v. Great N. Ins. Co., 308 F. Supp. 2d 
331 (S.D.N.Y. 2004). A slowdown in business may not trigger the 
coverage because a policy only responds when “a civil authority 
prohibits access to the insured’s premises resulting in a total loss 
of business income.” N.Y. Career Inst. v. Hanover Ins. Co., 791 
N.Y.S.2d 338, 342 (Sup. Ct. 2005). 
Civil Authority coverage usually is limited to a specified period of 
time, which often is as short as two weeks or 30 days. Audubon 
Internal Med. Grp., Inc. v. Zurich Am. Ins. Co., 2008 U.S. Dist. 
LEXIS 52583 (E.D. La. July 10, 2008) (21-day civil authority 
coverage did not run concurrently, but rather was in addition 
to 30-day coverage for business income from dependent 
properties). 
D. Ingress or Egress
Similar to Civil Authority coverage, Ingress or Egress coverage 
may be available when access to (“ingress”) or from (“egress”) 
an insured’s premises has been prevented or made more 
difficult because of a storm. Unlike Civil Authority coverage, 
no governmental act is required to trigger this coverage. Many 
policies cover losses when “ingress” to or “egress” from insured 
premises is “prevented” because of a covered peril. In the 
aftermath of Harvey and Irma (with the devastation from Jose 
and Maria yet to be fully determined), many businesses were 
unable to operate because millions of employees could not 
get to work and many service businesses could not reach their 
customers. Many roads were flooded or otherwise blocked.
The availability of Ingress/Egress coverage varies greatly from 
policy to policy. Frequently, a policy will cover the loss sustained 
by an insured “‘due to the necessary interruption of the Insured’s 
business due to prevention of ingress to or egress from the 
Insured’s property, whether or not the premises or property 
of the Insured shall have been damaged’” if the interruption 
resulted from damage of a type insured against by the policy. See 
City of Chicago v. Factory Mut. Ins. Co., U.S. Dist. LEXIS 4266, at 
*6 (N.D. Ill. Mar. 18, 2004) (citation omitted). 
Other policies may provide Ingress and Egress coverage by 
protecting against an interruption of business “as a consequence 
or denial, prevention of, or reduction in access to or use of 
highways, bridges, causeways … or terminals … or the means of 
access thereto” caused by an insured peril. Some Ingress and 
Egress coverage will require that damage be in close proximity 
to an insured location, or a location that is otherwise covered 
by the policy and may not be the insured’s property. A policy 
The 2017 Atlantic Hurricane Season; Insurance Coverage for Harvey, Irma, Jose, and Maria • Page 12
may cover an interruption when “as a result of loss, damage 
or an event not excluded … at an insured location or within 
two (2) miles of it, ingress to or egress from real or personal 
property is prevented.” Policies may also provide coverage for 
an interruption during the time period that “access to or egress 
from real or personal property is impaired” but only for 
“ingress/egress impairments … located within one (1) mile of 
the Insured’s premises.” Yet other policy language may cover 
loss arising from “an interruption of business, whether total or 
partial, during the period of time when, in connection with or 
following a peril insured against, ingress to or egress from real or 
personal property is prohibited.”
In Datatab, Inc. v. St. Paul Fire &amp; Marine Insurance Co., 347 
F. Supp. 36 (S.D.N.Y. 1972), a water main break forced the 
shutdown of an air conditioning system, which in turn forced 
a shutdown of an insured’s computers and data processing 
equipment. The insured had coverage protecting against loss 
where “‘the premises in which the property is located is so 
damaged as to prevent access to such property.’” Id. at 37. 
The court held that the term “premises” was more reasonably 
considered to mean the entire building, not merely the floors on 
which the insured conducted its business operations. Id. at 37-
38. The court also held that the term “access” means more than 
simply allowing a person to physically enter a room. Instead, 
it contemplates the use of equipment normally used for the 
business. Id. 
Obviously, what was relevant and important to [the 
insured] when it bought the St. Paul policy was the 
ability to utilize the computers in its business on a 
normal basis. [The insured] could not have been less 
interested in whether, following a peril insured against, 
it had the ability to physically touch a non-functioning 
mass of metal.” 
Id. at 38. This broad interpretation of policy terms may promote 
extensive recovery by businesses following the recent storms.
Fountain Powerboat Industries, Inc. v. Reliance Insurance Co., 119 
F. Supp. 2d 552 (E.D.N.C. 2000), is an example of coverage for 
storm-related interference with ingress and egress. In Fountain, 
a hurricane flooded several roads leading to the insured’s 
premises, one of which was closed for several days. However, 
the insured was able to transport its employees to and from 
the facility with large trucks. When production at the facility 
decreased, the insured sought coverage under the ingress/
egress clause that ensured “loss sustained during the period of 
time when, as a direct result of a peril not excluded, ingress to or 
egress from real and personal property not excluded hereunder, 
is thereby prevented.” Id. at 556. The flooding of the roads 
hindered travel to and from the facility notwithstanding that 
ingress to and egress from the insured’s facility was still possible. 
The court held that coverage existed because usual routes to and 
from the facility were obstructed and transportation to and from 
the facility was more difficult. Id. at 557.
E. Service Interruption
The disruption of utility service, such as water and electric 
services, is an important cause of business losses following 
a hurricane. As these recent storms have demonstrated, 
individuals and companies often are without utility service for 
days or even weeks after a storm has passed. Most businesses 
simply cannot operate without service from power and water 
utilities. 
Several commercial property insurance policies exclude damage 
to the insured’s property resulting from the utility service 
interruption that originates away from the insured’s premises. 
See, e.g., ISO Causes Of Loss – Special Form CP 10 30 06 07 &#167; 
B(1)(e). Under this provision, unless an insured suffers a water 
or power loss because of equipment failure on its own premises, 
insurers likely will seek to disclaim coverage for a company’s 
inability to operate because it did not have necessary power or 
water.
An insured must be careful to review its policy as a whole to 
determine whether utility service, or any other coverage, may 
provide recovery for losses caused by hurricanes. Complex 
issues may stem from the lack of electricity in large parts of 
the tri-state area. For example, gas stations cannot pump gas 
without electricity. If people cannot get gas, goods and services 
do not get delivered and employees cannot get to work. The 
lack of power may also implicate other time element coverages 
addressed here, such as contingent business interruption and 
ingress/egress. 
Specific language applying to utility service interruption will 
trump any standard boiler-plate form exclusion. For instance, 
in Rocon Manufacturing, Inc. v. Ferraro, 605 N.Y.S.2d 591 (App. 
Div. 1993), the court addressed whether there was coverage 
for the interruption to a insured’s business caused by ice storm 
damage to a power line not located on the insured’s premises. 
The insured’s business was suspended for six days because of 
the lack of power. The policy contained an exclusion for “‘[l]oss 
caused by or resulting from the lack of power, light, steam or 
refrigeration.’” Id. at 593. The policy also contained coverage for 
loss resulting from damage to electrical equipment “‘whether or 
not the equipment is located on [the insured’s] premises, which 
is owned by a public utility company contracted by you to supply 
electric power solely to your premises.’” Id. at 592. The court 
held that the only reasonable interpretation of this language 
The 2017 Atlantic Hurricane Season; Insurance Coverage for Harvey, Irma, Jose, and Maria • Page 13
was that the policy covered “lost income resulting from a power 
failure” to the insured’s facility “caused by an accident to the 
utility company’s power equipment,” and that this specific grant 
of coverage superseded the general boiler-plate exclusion for 
power failure. Id. at 592-93. 
Many policies cover interruption caused by the failure of a utility 
service under endorsements that remove the form exclusion 
for utility service interruption. However, this coverage may be 
subject to separate and lower limits of insurance than normal 
business interruption coverage. This endorsement frequently 
insures losses that the insured incurs due to the interruption of 
utility services that result from physical damage to the property 
owned by the utility. 
One such endorsement states that it provides coverage for 
business interruption and extra expense loss if that loss “result[s] 
from direct physical loss or damage by a Covered Cause of 
Loss to the following property, located outside of a building 
described in the Declarations, supplying the following services.” 
The endorsement then describes water, communications, 
and power supply services, and includes pumping stations, 
water mains, microwave radio relays, utility generating plants, 
and transformers among a number of types of property that, 
if damaged, could result in an interruption of the insured’s 
business. Notably, the endorsement excludes damage to 
overhead transmission lines, which will limit the available utility 
service coverage.
F. Extra Expense
“Extra Expense” coverage indemnifies the insured for reasonable 
and necessary extra or increased costs of business operations 
above the norm because of a peril insured against. ABM, 397 
F.3d at 170 (extra expense coverage relating to employee 
displacement incurred by contractor that serviced buildings 
destroyed during the 9/11 attacks). It may include coverage for, 
among other things, costs incurred for the insured to temporarily 
continue business operations “as normal as practicable,” such 
as the temporary use of the property or facilities of others. For 
example, in American Medical Imaging Corp. v. St. Paul Fire &amp; 
Marine Insurance Co., 949 F.2d 690 (3d Cir. 1991), a fire forced 
the insured to relocate its business headquarters for six weeks. 
The insured recovered the costs associated with relocating 
its business to a temporary building under the policy’s extra 
expense coverage. Id. at 692, 695; see also Kiln Underwriting Ltd. 
v. Jesuit High Sch. of New Orleans, 2008 U.S. Dist. LEXIS 86286, 
at *8-10 (E.D. La. Oct. 24, 2008) (policy covered extra expense 
incurred by school to rent space at alternative location following 
Hurricane Katrina). Operating expenses incurred for temporary 
arrangements need not be greater than normal costs in order to 
be recoverable. See Dillard Univ. v. Lexington Ins. Co., 2009 U.S. 
Dist. LEXIS 46785, at *11-12 (E.D. La. June 3, 2009).
In the context of hurricanes, one example of expenses covered 
by the Extra Expense coverage is the purchase of a generator to 
continue to operate because of an interruption of power.
THE NUMBER OF OCCURRENCES, 
DEDUCTIBLES, AND LABELS
Another question that may arise involves the number of 
occurrences. The answer may determine how much coverage 
is available to an insured loss. This also typically impacts the 
number of applicable deductibles, if any. 
Many insurance policies contain deductibles or self-insured 
retentions and state that the deductible or retention must be 
satisfied “per occurrence,” “per event,” “per loss,” or “per claim.” 
See, e.g., SEACOR Holdings, Inc. v. Commonwealth Ins. Co., 635 
F.3d 675, 682 (5th Cir. 2011) (insured “experienced different 
casualties from Katrina’s two perils, wind and rain, but under 
the policy, those losses arose out of one event—Katrina—and 
warrant only one deductible”); see also Pinnacle Entm’t, Inc. v. 
Allianz Global Risks US Ins. Co., No. 2:06-CV-2008 U.S. Dist. LEXIS 
108583, at *14-22 (D. Nev. Mar. 26, 2008) (holding that flood 
damage associated with Named Storm is covered as separate 
and distinct peril from “flood” as defined in policy, and rejecting 
insurer’s argument that a peril similar to Named Windstorm was 
defined solely for deductible purposes because “it is surrounded 
by definitions of other Perils, including Flood, Earth Movement, 
and Explosion”). 
Many policies also contain coverage limits stating the maximum 
amount that the insurer must pay “per occurrence, event, 
loss, or claim.” And some policies have specific definitions of 
“occurrences” when weather conditions are involved. ARM 
Props. Mgmt. Grp. v. RSUI Indem. Co., 2008 U.S. Dist. LEXIS 
108619, at *9-11 (W.D. Tex. Nov. 24, 2008) (Hurricane Katrina 
was a single occurrence which damaged nine properties where 
policy defined “‘occurrence’” as “‘any one loss, disaster, casualty, 
or series of losses, disasters, or casualties arising from one 
event’” and provided in the case of a hurricane “‘one event shall 
be construed to be all losses arising during a continuous period 
of 72 hours.’” (citations omitted)).
Courts tend to focus on the cause of the loss in assessing the 
number of occurrences. See Peco Energy Co. v. Boden, 64 F.3d 
852, 856 (3d Cir. 1995) (“To determine whether bodily injury 
or property damage is the result of one occurrence or multiple 
occurrences, the majority of courts have looked to the cause or 
causes of the bodily injury or property damage … .” (citation and 
internal quotation marks omitted)). Courts have reached varying 
decisions in answering the “how many” question. 
The 2017 Atlantic Hurricane Season; Insurance Coverage for Harvey, Irma, Jose, and Maria • Page 14
Some courts found that based on the circumstances and policy 
language at issue, only one occurrence had taken place. See, 
e.g., World Trade Ctr. Props., L.L.C. v. Hartford Fire Ins. Co., 345 
F.3d 154, 180 (2d Cir. 2003) (“[N]o finder of fact could reasonably 
fail to find that the intentional crashes into the WTC of two 
hijacked airplanes sixteen minutes apart as a result of a single, 
coordinated plan of attack was, at the least, a ‘series of similar 
causes [as defined by the policy].’ Accordingly, we agree …  
that … the events of September 11th constitute a single 
occurrence as a matter of law.”), overruled on other grounds by 
Wachovia Bank, N.A. v. Schmidt, 546 U.S. 303, 309-10 (2006); see 
also Peco, 64 F.3d at 856 (“[W]hen a scheme to steal property is 
the proximate and continuing cause of a series or combination of 
thefts, the losses for liability insurance purposes constitute part 
of a single occurrence.”).
Furthermore, courts frequently find in “disaster” situations that 
a single occurrence has taken place. One author observed:
As a general rule, when many persons are injured or 
damaged as the result of an ongoing physical process, 
the resulting injuries typically will be treated as one 
“occurrence.” Thus, in cases involving natural disasters, 
such as fires, floods, or multivehicle auto accidents, 
courts have generally found only one “occurrence.”
Michael F. Aylward, “Multiple ‘Occurrences’—A Divisive Issue,” 
Coverage, Jan./Feb. 1995 at 39, 40; see also id. at 44 (“Diverse 
tort claims may be aggregated where they result from the same 
physical cause, as in the case of a fire or train crash.”).
A New York court reached a different conclusion. In Arthur A. 
Johnson Corp. v. Indemnity Insurance Co. of North America, 
7 N.Y.2d 222 (1959), the court addressed a circumstance 
where a major rainfall flooded a construction site, giving rise 
to multiple damage claims that occurred at separate times. 
The insurer asserted a $50,000 policy limit per accident and, 
notwithstanding the fact that two separate walls collapsed, 
claimed that only one “accident” had taken place resulting from 
one proximate cause (the rainfall). The court noted that other 
courts had reached varying conclusions in similar circumstances:
[T]he catastrophe was not the rain that, in itself, did 
no harm. It was the breach of the wall letting the rain 
water in. Furthermore, if the walls were located blocks 
away from each other on different job sites but subject 
to the same rainfall, no one could contest that there 
were two accidents. For these reasons, we conclude that 
the collapses of separate walls, of separate buildings at 
separate times, were in fact separate disastrous events 
and, thus, two different accidents within the meaning of 
the policy. 
Id. at 708. 
However, the court also made the following comment: 
In the instant case, it cannot be said that one would 
allege but one act of negligence as the proximate cause 
of the injuries to the two separate properties. Here 
the proximate cause cannot be said to be the heavy 
rainfall but separate negligent acts of preparing and 
constructing separate walls which, for all we know, may 
have been built at separate times by separate groups of 
workmen.
Id. The court found that the proximate cause was separate 
negligent acts of preparing and constructing separate walls. If 
there is a common theme, it may be that the courts generally 
apply the number of occurrences that maximizes coverage for 
the insured. This result is consistent with the widely accepted 
principle that ambiguous policy language will be interpreted in 
the manner that maximizes coverage.
A court may rule that one occurrence took place for purposes 
of determining the number of deductibles or retentions, but 
multiple occurrences took place for purposes of policy limits 
applicable on a “per occurrence” basis. See Owens-Illinois, 
Inc. v. Aetna Cas. &amp; Sur. Co., 597 F. Supp. 1515, 1528 (D.D.C. 
1984) (“[T]he allocation of rights and obligations established by 
the insurance policies would be undermined if [the insured’s] 
coverage is subject to multiple deductibles.”); see also Aylward, 
supra, at 40 (“In seeking to ‘maximize’ coverage, courts first look 
to the type of claims presented. Does the insured face hundreds 
of small claims that will be absorbed by policy deductibles and 
self- retentions? If so, they are far more likely to treat the claims 
as involving one ‘occurrence.’ By contrast, courts are more 
likely to find multiple ‘occurrences’ where the limits of liability 
are relatively low compared to the insured’s total exposure.” 
(citations omitted)). 
The 2017 Atlantic Hurricane Season; Insurance Coverage for Harvey, Irma, Jose, and Maria • Page 15
MAKING A COVERAGE CLAIM 
Insurance policies typically impose on an insured obligations 
that must be satisfied to collect insurance. In seeking coverage, 
many businesses may overlook, or not be aware of, their duties. 
To preserve coverage, insureds should recognize and perform 
these duties. While an insurer may waive its right to insist on 
performance, insureds should proactively seek to comply with 
coverage obligations.
A. The Duty to Provide Notice
Most insurance policies require that an insured notify the 
insurer “as soon as possible” or “as soon as practicable” after a 
loss or other insured event. This notice should be in writing for 
purposes of creating a record, although early oral notice may 
suffice, followed by written confirmation. An insured frequently 
must identify itself and provide information about the time, 
place, and circumstances of the loss. This notice requirement is 
intended to give an insurer a chance to investigate a loss or claim 
while the evidence is still fresh. 
Courts frequently construe notice provisions to require that an 
insured provide notice within a reasonable time after an insured 
event occurs. Gilliard v. Progressive, 945 N.Y.S.2d 739, 740 (App. 
Div. 2012) (when “‘an insured is required to provide notice of a 
claim as soon as practicable, such notice must be given within 
a reasonable time under all of the circumstances.’” (citation 
omitted)); Arrowood Indem. Co. v. King, 39 304 Conn. 179, 198 
(2012); Peck v. Pub. Serv. Mut. Ins. Co., 326 F.3d 330, 338 (2d Cir. 
2003) (whether untimely notice is prejudicial requires a factual 
inquiry into all of the circumstances); CSR Ltd. v. Cigna Corp., 
2006 U.S. Dist. LEXIS 8149, at *49-50 (D.N.J. Feb. 22, 2006) 
(New Jersey courts interpret “‘as soon as practicable’” to mean 
“‘within a reasonable time’”) (citing cases). In Hull v. Hartford 
Fire Insurance Co. 100 N.H. 387 (1956), the insured’s vacation 
home was damaged by a windstorm, which the insured did not 
discover until three years after the storm, when the insured 
returned to the property. The insured’s policy had a 30-day 
notice provision, but also expressly permitted the insured to 
vacate the premises. Id. at 390. The court, instead of strictly 
applying the 30-day notice requirement to deny coverage, 
remanded the case to the lower court to determine whether 
the insured exercised reasonable care in discovering the damage 
in a reasonable amount of time in light of the surrounding 
circumstances. Id. at 391; see also Provident Life &amp; Accident Ins. 
Co. v. Bertman, 151 F.2d 1001, 1005-06 (6th Cir. 1945).
The insurer may be excused from its obligations if the insured 
fails to exercise reasonable care in notifying the insurer of a 
claim within a reasonable time frame. However, many legitimate 
reasons may exist that justify not providing notice immediately 
after a loss, including the lack of power and telephone services, 
the lack of insurance information (because, for example, the 
information was destroyed or was kept in safe deposit boxes at 
banks that were closed) and the need to concentrate on efforts 
to protect life or property. Nonetheless, insureds should take 
immediate steps to provide notice. Notice to a broker alone may 
not be sufficient if the broker fails to give notice to the proper 
insurers. As a practical tip, the insured should be copied on all 
communications with the insurer—at least privately, to create a 
record in the event the broker does not properly give notice.
New York enacted the “no-prejudice” rule for policies issued 
after January 17, 2009. See N.Y. Ins. Law &#167; 3420. With respect 
to policies issued before that date, an insurer may disclaim 
coverage without regard to prejudice when the insured fails 
to satisfy the notice condition. With respect to policies issued 
after that date, an insurer may not deny coverage based upon 
late notice unless the insurer can demonstrate that it has been 
prejudiced. Similarly, “‘Connecticut requires two conditions 
to be satisfied before an insurer’s duties can be discharged 
pursuant to the “notice” provision of a policy: (1) an unexcused, 
unreasonable delay in notification by the insured; and 
(2) resulting material prejudice to the insurer.” Arrowood, 39 
A.3d at 198. “[T]he insurer bears the burden of proving, by a 
preponderance of evidence, that it has been prejudiced by the 
insured’s failure to comply with a notice provision.” Id. at 201; 
see also Gazis v. Miller, 186 N.J. 224, 229-32 (N.J. 2006) (an 
insurer must show prejudice from an insured’s failure to provide 
notice “as soon as practicable”) (citing cases); Oriole Gardens 
Condos., III v. Independence Cas. &amp; Sur. Co., 2012 U.S. Dist. LEXIS 
29100, at *23-28 (S.D. Fla. Mar. 6, 2012) (discussing purpose 
of notice provision and finding that the initial claim was made 
within a reasonable time of Hurricane Wilma, and the notice 
provision in the policy was ambiguous because it did not specify 
whether it also pertained to any supplemental claim).
B. The Duty to Cooperate 
The duties outlined above may be set out specifically in an 
insurance policy. Moreover, almost all policies also contain a 
more general “cooperation” provision obligating the insured 
to cooperate with the insurer in its investigation of a loss and 
otherwise. This duty of cooperation obligates the insured 
to provide access to relevant books and records, provide 
the insurers with an opportunity to interview witnesses and 
employees, not commit fraud or perjury, not release claims 
against other parties to which the insurer may have a right of 
subrogation, not enter into unauthorized settlements with other 
parties, and assist the insurer in procuring evidence and securing 
the attendance of witnesses at depositions, hearings, and trial. 
The 2017 Atlantic Hurricane Season; Insurance Coverage for Harvey, Irma, Jose, and Maria • Page 16
An insured’s breach of its duty to cooperate could relieve an 
insurer of its policy obligations. However, most courts require 
that the insurer prove that it has been prejudiced by the 
breach. See, e.g., Copelin v. State Farm Ins., 2009 U.S. Dist. LEXIS 
10800 (E.D. La. Feb. 12, 2009) (insurer not entitled to summary 
judgment where insured homeowners presented evidence that 
they cooperated with insurer after making claim under policy for 
damages caused by Hurricane Katrina by submitting requested 
documentation despite destruction of records during hurricane); 
Chem. Leaman Tank Lines, Inc. v. Aetna Cas. &amp; Sur. Co., 817 
F. Supp. 1136, 1160 (D.N.J. 1993) (“New Jersey law provides 
that an insurance carrier may disclaim coverage pursuant to a 
cooperation clause only if it proves (1) that the insured breached 
the cooperation clause and (2) that the carrier suffered a 
likelihood of appreciable prejudice as a result of this breach.”); 
Twin City Fire Ins. Co. v. King Cnty., Wash., 749 F. Supp. 230, 
233 (W.D. Wash. 1990) (insurer must show both breach of duty 
to cooperate by the insured and prejudice to be relieved of its 
duties); Billington v. Interins. Exch. of S. Cal., 71 Cal. 2d 728, 737-
38 (1969) (“[A]n insurer, in order to establish it was prejudiced 
by the failure of the insured to cooperate in his defense, must 
establish at the very least that if the cooperation clause had 
not been breached there was a substantial likelihood the trier 
of fact would have found in the insured’s favor.”); N.Y. Cent. 
Mut. Fire Ins. Co. v. Rafailov, 840 N.Y.S.2d 358, 360 (App. Div. 
2007) (“In order to establish breach of a cooperation clause, the 
insurer must show that the insured ‘engaged in an unreasonable 
and willful pattern of refusing to answer material and relevant 
questions or to supply material and relevant documents’” 
(citations omitted)).
An insured should make a good faith effort to comply with its 
duty to cooperate and should honor reasonable requests from 
its insurer (requests for privileged information may not be 
reasonable) to facilitate reimbursement for its losses and not rely 
on the fact that it may be difficult for the insurer to prove that 
it has been prejudiced by the insured’s non-compliance. Most 
provisions requiring the cooperation of the insured also provide 
that the insurer will pay for all additional costs the insured incurs 
complying with the insurer’s requests.
C. Proofs of Loss 
Most first-party insurance policies require that an insured 
provide a “proof of loss, signed and sworn to by the insured,” 
including statements of the time and origin of the loss; the 
interest of the insured and others in the property; the actual 
cash value of the property damaged; all encumbrances on the 
property; all other contracts of insurance potentially covering 
any of the property; all changes in the title, use, occupation, 
location, and possession of the property since the policy was 
issued; by whom and for what purpose any buildings were 
occupied at the time of the loss; and plans and specifications 
for all buildings, fixtures, and machinery destroyed or damaged. 
See Versai Mgmt. Corp. v. Clarendon Am. Ins. Co., 597 F.3d 729, 
735-36 (5th Cir. 2010) (when insured complied with policy in 
submitting proofs of loss, insurer could not require additional 
documentation when policy created no obligation to do so). 
Proofs of loss usually must be submitted within a relatively short 
time—often within 60 days after the loss incepts or within 60 
days after the insurer requests a proof of loss. See, e.g., Maleh 
v. N.Y. Prop. Ins. Underwriting Ass’n, 64 N.Y.2d 613, 614 (1984); 
Saba Rug, Inc. v. Great Am. Ins. Cos., 678 N.Y.S.2d 629, 629 (App. 
Div. 1998); Litter v. Allstate Ins. Co., 617 N.Y.S.2d 205, 205 (App. 
Div. 1994). However, if an insured does not fully comply, it still 
may be entitled to coverage if it substantially complied with 
the requirement. See, e.g., Schultz v. Queen Ins. Co., 399 S.W.2d 
230, 234 (Mo. Ct. App. 1965) (insured did not forfeit its right 
to recover for property damage caused by windstorm when 
provided insurer substantial evidence of damage but never filed 
formal proof of loss); Brookins v. State Farm Fire &amp; Cas. Co., 529 
F. Supp. 386, 390 (S.D. Ga. 1982). A 2012 decision applied the 
“notice-prejudice” rule to proof of loss in a first-party coverage 
case. Henderson v. Farmers Group, Inc., 210 Cal. App. 4th 459, 
471-79 (2012) (“There is ample reason to apply the ‘notice-
prejudice’ rule here. California has a strong public policy against 
technical forfeitures. Since forfeitures are not favored, conditions 
in a contract will if possible be construed to avoid forfeiture. This 
is particularly true of insurance contracts … . In order to enforce 
a defense based upon [the insured’s] failure to provide a timely 
proof of loss, [the insurer] must show that it suffered substantial 
prejudice as a result.”) (citations omitted). Nonetheless, an 
insured should ask for a written extension of time to submit 
its proof of loss if the claim is complicated to develop. Most 
insurance companies will cooperate with such a request. 
D. Examinations under Oath
Most first-party insurance policies give the insurer the right to 
conduct, by any person it names (including outside counsel), 
an examination under oath “as often as may be reasonably 
required” about any matter relating to the insurance or the loss 
and require that the insured produce relevant books and records 
for examination. An insured’s failure to submit to an examination 
under oath may be enough to excuse an insurer from performing 
its duties under a policy. See Gould Investors, L.P. v. Gen. Ins. 
Co. of Trieste &amp; Venice, 737 F. Supp. 812, 817 (S.D.N.Y. 1990) 
(“Failure to comply with a policy provision requiring submission 
to an examination under oath is a material breach of that policy, 
precluding recovery under it.”); see also Bergen v. Standard Fire 
Ins. Co., 1997 Conn. Super. LEXIS 3494, at *9-10 (1997).
The 2017 Atlantic Hurricane Season; Insurance Coverage for Harvey, Irma, Jose, and Maria • Page 17
The circumstances giving rise to the failure to submit an 
examination must be reviewed and an insurer must exercise its 
rights to an examination in a reasonable manner. See Delaine 
v. Finger Lakes Fire &amp; Cas. Co., 806 N.Y.S.2d 320, 322 (App. Div. 
2005) (“The refusal of plaintiff to answer certain questions at 
his examination under oath does not constitute a ‘willful and 
avowed obstruction’ or a ‘substantial and material’ breach 
of his obligation to cooperate, particularly where plaintiff 
ultimately provided the information sought by defendant at that 
examination.” (citation omitted)); In re Cypress Tex. Lloyds, 2011 
Tex. App. LEXIS 6598, at *40-42 (Tex. App. Aug. 15, 2011) (insurer 
could not take insured’s examination under oath after claim had 
been investigated and paid); see also Goel v. Tower Ins. Co. of 
N.Y., 948 N.Y.S.2d 244, 245 (App. Div. 2012); Allstate Ins. Co. v. 
Loester, 675 N.Y.S.2d 832, 834 (Sup. Ct. 1998).
E. Contractual Limitations Periods
Many property insurance policies contain a contractual 
limitations period (that is, a contractual statute of limitations). 
“The purpose behind the shortened limitations period … is 
to relieve insurance companies of the burden imposed by 
defending old, stale claims.” Aliberti v. Allstate Ins. Co., 74 Cal. 
App. 4th 138, 145 (1999); see also Boyce v. Allstate Ins. Co., 1994 
Conn. Super. LEXIS 29, at *4 (Jan. 5, 1994) (“a shorter statute 
of limitations would cut down fraudulent claims and avoid 
problems presented by stale memories and lost or discarded 
evidence that a longer period of limitations necessarily gives 
rise to”). Most states recognize that these provisions are 
enforceable. See Lawrence v. W. Mut. Ins. Co., 204 Cal. App. 
3d 565, 571 (1988); see also 1840 Concourse Assocs., LP v. 
Praetorian Ins. Co., 934 N.Y.S.2d 112 (App. Div. 2011), leave to 
appeal denied, 975 N.E.2d 913 (N.Y. 2012). However, Mississippi 
long has prohibited contractual clauses purporting to shorten 
the time otherwise available to bring suit to less than the regular 
three-year statute of limitations. See Miss. Code Ann. &#167;&#167; 15-1-
5, 15-1-49. And, states may enact similar statutes applying to 
specific named storms if they are particularly devastating. For 
example, Louisiana enacted a statute that provided insureds until 
September 1, 2007, to file claims regarding Hurricane Katrina 
and until October 1, 2007, to file claims regarding Hurricane Rita 
regardless of any contractual limitations in their policies. See La. 
Rev. Stat. Ann. &#167; 22:658.3. Therefore, insureds must be careful to 
commence suit in a timely fashion or obtain an agreement with 
the insurer tolling the running of the limitations period. 
The limitations period typically commences running on the 
“inception of the loss.” “Inception of the loss” has been 
construed as “that point in time when appreciable damage 
occurs and is or should be known to the insured, such that a 
reasonable insured would be aware that his notification duty 
under the policy has been triggered.” Prudential-LMI Commercial 
Ins. v. Superior Court, 51 Cal. 3d 674, 686-87 (1990); see also 
Lichter Real Estate No. Three, L.L.C. v. Greater N.Y. Ins. Co., 
841 N.Y.S.2d 93, 94 (App. Div. 2007). However, the insured is 
required to be diligent. This means that “[t]he more substantial 
or unusual the nature of the damage discovered by the 
insured … , the greater the insured’s duty to notify his insurer of 
the loss promptly and diligently.” Prudential-LMI, 51 Cal. 3d at 
687. Furthermore, the contractual limitations period “begin[s] 
to run on the date of cognizable damage even if the insured 
subjectively believes that its policy provides no coverage for the 
damage.” Sullivan v. Allstate Ins. Co., 964 F. Supp. 1407, 1413 
(C.D. Cal. 1997). 
In many states, the running of the limitations period may 
be tolled from the date that the insured gives notice until 
the insurer communicates its coverage position “clearly and 
unequivocally in writing.” See, e.g., Aliberti, 74 Cal. App. 4th 
at 148-49; see also Peloso v. Hartford Fire Ins. Co., 56 N.J. 
514, 521 (1970). However, the law may vary from state to 
state. For example, a Louisiana statute provides that the 
limitations period is not interrupted or suspended by an 
insurer’s acknowledgement of notice of a loss or claim or by its 
investigation or negotiations regarding a loss or claim. La. Rev. 
Stat. Ann. &#167; 22:879. 
Courts have recognized that an insurer can waive a limitations 
period by its conduct. For example, in Smith v. Metropolitan 
Property &amp; Casualty Insurance Co., 868 So. 2d 57 (La. Ct. 
App. 2003), the court addressed a suit limitations clause in a 
homeowners policy. It held that “[a] tacit waiver or interruption 
of [the suit limitations period] may be found if the insurer 
(1) continues negotiations, thereby inducing the insured to 
believe the claim will be settled or not contested, (2) makes 
an unconditional offer of payment, or (3) performs acts of 
reparation or indemnity.” Id. at 59. The court upheld a denial of 
summary judgment based on the suit limitations clause, finding 
that “the trial court could have found that a genuine issue of 
material fact remained on the issue of whether representations 
by an adjuster, coupled with Metropolitan’s continued contacts 
and consideration of her case over a long period of time, lulled 
[the insured] into believing that the claims she filed were not 
going to be contested or would be settled without the need for 
suit.” Id. at 59-60; see also N. Am. Foreign Trading Corp. v. Mitsui 
Sumitomo Ins. USA, Inc., 292 F. App’x 73, 76 (2d Cir. 2008). 
The 2017 Atlantic Hurricane Season; Insurance Coverage for Harvey, Irma, Jose, and Maria • Page 18
Some states have laws that may bar parties from agreeing to 
extend contractual limitations periods even if parties agree to 
such an extension. See, e.g., Max Tobias, Jr., et al., Louisiana 
Practice Series, Louisiana Civil Pretrial Procedure &#167; 6:20 (2007) 
(“The parties cannot by contract exclude or lengthen any period 
of prescription.”). However, such an agreement might support a 
waiver argument. 
It is thus extremely important that insureds take all appropriate 
steps to ensure that suits, if necessary, are filed in a timely 
fashion. Unfortunately, insureds may not find clear answers 
and may have to initiate litigation to preserve their rights given 
possible disputes over which law controls (e.g., the law of the 
jurisdiction where the insured is headquartered and the policy 
was brokered, or the law of the jurisdiction where the loss was 
suffered).
LOST OR DESTROYED INSURANCE POLICIES
Absent a waiver from the insurer, typically the insured is 
obligated to prove the existence and terms of its insurance 
policies. For this reason, insureds should store copies of 
insurance policies in a secure location somewhere other than at 
the business premises or home. Otherwise, given the nature of 
catastrophic damage, such as that caused by a hurricane, some 
insureds may find themselves unable to locate lost or destroyed 
policies. 
If policies are lost or destroyed, however, insureds may be able 
to locate or identify policies and their terms. If the secondary 
sources or non-insurance files are not helpful, the insured 
should contact the broker or agent who sold the insured the 
policy. The broker or agent may have records establishing the 
policy terms and sale. It is not, however, certain that the broker 
or agent will retain the policy. Bank and accounting records are 
another potential source of information about insurance. Entries 
in these documents often show the purchase of insurance and 
often show the insurer, the policy number, premium, and other 
relevant information.
In addition, depending upon the type of business engaged in by 
the insured, the insured also may have given proof of insurance 
to third parties with whom it did business. For example, a 
business may have to show insurance in connection with real 
estate and lease transactions or for transport of its goods or for 
construction-related activities. These other parties may have 
needed insurance information. 
Finally, an insured should consider the possibility that it may be 
entitled to coverage under policies issued to other persons or 
companies. Many contracts require that one party add the other 
as an “additional insured” under the first party’s own insurance 
policies. 
PROVING THE AMOUNT OF THE LOSS
A. Steps to Take
Once insurance policy terms are determined, the insured must 
prove that the loss it suffered is within the terms of the policy. 
Insureds that sustain property damage should immediately begin 
documenting the claim and gathering supporting evidence. An 
insured may want or need to conduct a forensic investigation 
long after damaged property is repaired or replaced. It often 
is advisable to seek the assistance of (i) attorneys to determine 
the scope of coverage to which the insured is entitled, 
and (ii) forensic accountants to assist in categorizing and 
documenting the extent of the loss for presentation to the 
insurer. Under many policies, these types of “loss adjustment” 
expenses are covered and sometimes covered “outside the 
limits” of the policy. 
As a general rule, an insured should retain all receipts, estimates, 
and documents. Immediately after the loss, an insured should 
(1) develop an inventory of all damaged property; (2) determine 
what property can be repaired and what cannot be repaired; 
(3) determine salvage value, if any, of property that cannot be 
repaired; (4) identify quantities, costs, and values of damaged 
property, and the amount of loss claimed (replacement cost 
versus actual cash value or like-kind repair and replacement); 
and (5) keep a record of all expenses (such as invoices and 
receipts). The insured also should document the damage and 
loss by taking photographs and, if possible, videotaping the 
property.
B. Measuring Business Interruption Losses
Insurance policies typically contain provisions stating how 
business interruption losses are to be measured. They often 
address the issue in terms of the “actual loss sustained,” which 
frequently is measured in terms of either (i) the net reduction 
in gross earnings minus expenses that do not necessarily 
continue or (ii) net profit that is prevented from being earned 
plus necessary expenses that continue during the period of 
interruption. 
The 2017 Atlantic Hurricane Season; Insurance Coverage for Harvey, Irma, Jose, and Maria • Page 19
When policies indicate that the measurement is the difference 
between actual earnings or profits and, in essence, what 
otherwise would be expected, insureds frequently measure 
their loss by comparing the income they would have generated 
without the weather conditions to the income they actually 
generated. This measurement may result in a lower insurance 
recovery than the law permits. An insured should consider 
measuring its loss not based on what it would have made but 
for the hurricane, but based on what it would have made had 
its facilities and operations not been affected by the hurricane. 
As one court has explained, the policy “does not exclude profit 
opportunities due to increased consumer demand created by” 
an insured peril. Levitz Furniture Corp. v. Houston Cas. Co., 1997 
U.S. Dist. LEXIS 5883, at *8 (E.D. La. Apr. 28, 1997); see also 
Berk-Cohen Assocs., LLC v. Landmark Am. Ins. Co., 2009 U.S. Dist. 
LEXIS 77300, at *17-18 (E.D. La. Aug. 27, 2009) (for purposes 
of calculating lost business income, insured could use favorable 
market conditions resulting from flooding, an excluded cause 
of loss); cf. Catlin Syndicate Ltd. v. Imperial Palace of Miss., Inc., 
2008 U.S. Dist. LEXIS 103831, at *14-20 (S.D. Miss. Dec. 15, 2008) 
(court disagreed that best measure of business interruption 
loss was what insured casino earned once it reopened after 
Hurricane Katrina, when other casinos remained closed), aff’d, 
600 F.3d 511 (5th Cir. 2010). As the Levitz court explained, 
“business interruption loss earnings may include sales [the 
insured] would have made in the aftermath of the [peril] had it 
been open for business during that period.” 1997 U.S. Dist. LEXIS 
at *8. 
C. The Appraisal Process
Most insurance policies provide for an appraisal to establish the 
amount of loss to which the insured is entitled if a disagreement 
arises between the insurer and the insured over the amount 
of liability. Generally, upon either party’s written demand, the 
insured and the insurer each appoint an appraiser. These two 
appraisers select an impartial umpire. The appraisers then set 
the amount of the loss. If the appraisers agree on the amount 
of loss, that amount is established as the amount of loss. If the 
appraisers fail to agree within a reasonable time, each submits 
an appraisal to the umpire and a written agreement signed by 
any two of the three establishes the amount of loss. See, e.g., 
St. Charles Parish Hosp. Serv. Dist. No. 1 v. United Fire &amp; Cas. Co., 
681 F. Supp. 2d 748, 751-52 (E.D. La. 2010) (describing appraisal 
process used pursuant to insurance policy to value property and 
business income loss caused by Hurricane Katrina). 
Appraisals usually are limited to the amount of a loss, not 
whether there has been a loss or any coverage issues. See, e.g., 
De La Cruz v. Bankers Ins. Co., 237 F. Supp. 2d 1370, 1374 (S.D. 
Fla. 2002) (“The appraisal clause can only be invoked when 
the parties cannot agree as to the actual cash value, or … the 
replacement cost of an insured item of property. This language 
cannot be stretched to mean that appraisal can be invoked 
whenever the parties dispute which items of property were 
damaged or whether those items were in fact damaged … . That 
type of dispute is a dispute over coverage … .”).
CONCLUSION
Those who have suffered losses because of the 2017 hurricanes 
may have substantial financial protection through their insurance 
policies. Insureds should consider their coverage possibilities 
and act promptly to recover all benefits available under that 
coverage.
The 2017 Atlantic Hurricane Season; Insurance Coverage for Harvey, Irma, Jose, and Maria • Page 20
ABOUT THE AUTHORS
John E. Heintz is a partner in Blank Rome’s policyholder-only insurance recovery practice, 
formerly the insurance practice of Dickstein Shapiro LLP. He is a veteran in the fields of corporate 
insurance coverage and complex litigation. With more than 35 years of experience, Mr. Heintz 
has recovered billions of dollars in coverage for his clients. He has handled major cases in every 
area of insurance coverage, including several that rank among the largest in coverage litigation 
history. Many of his cases have involved issues of first impression, resulting in landmark trial 
and appellate rulings for his clients at the state and federal levels. Mr. Heintz’s mastery of the 
legal issues and his ability to direct large-scale litigation have earned him praise from clients and 
opponents alike. Mr. Heintz has been widely recognized as a leading lawyer in the insurance 
coverage area. Chambers USA ranks Mr. Heintz as one of the top 13 leading insurance coverage 
attorneys in the country, stating that “he is known to peers as ‘one of the best lawyers in this 
field,’” and noting that “he is described as ‘an outstanding performer with an outstanding 
reputation.’”  
Jared Zola is a partner in Blank Rome’s policyholder-only insurance recovery practice, formerly 
the insurance practice of Dickstein Shapiro LLP. Mr. Zola has helped clients secure more than 
one billion dollars in insurance recoveries. Mr. Zola’s nationally-recognized work maximizing 
insurance assets has earned him significant praise. The 2017 edition of Legal 500 noted that 
he is “a young star of the policyholder bar” and named him a “Next Generation Lawyer”—one 
of four nationally in the insurance category. He was also named to Benchmark Litigation’s 
2017 “Under 40 Hotlist,” which ranks attorneys “who have been deemed the most promising 
emerging talent in their respective litigation communities by peers and clients.” In 2017, he was 
named by Law360 as a “Top Attorney Under 40” for the fourth consecutive year in the insurance 
category for his work on behalf of policyholders—he is the only attorney to ever be named 
a “Rising Star” more than once in the insurance category. In 2016, the New York Law Journal 
named Mr. Zola a “Rising Star” under the age of 40. He has been ranked in Chambers USA each 
year since 2013. He has handled many large insurance claims arising from catastrophic losses 
from 9/11, Katrina, Sandy, and the landslides in Chile, just to name a few. 
John E. Heintz 
202.420.5373 
JHeintz@BlankRome.com
Jared Zola 
212.885.5209 
JZola@BlankRome.com
Cincinnati • Fort Lauderdale • Houston • Los Angeles • New York • Philadelphia • Pittsburgh • Princeton • San Francisco • Shanghai • Tampa • Washington • Wilmington 
&#169;2017 Blank Rome LLP. All rights reserved. Please contact Blank Rome for permission to reprint. Notice: The purpose of this update is to identify select developments that may be of interest to 
readers. The information contained herein is abridged and summarized from various sources, the accuracy and completeness of which cannot be assured. This update should not be construed 
as legal advice or opinion, and is not a substitute for the advice of counsel.
</noscript>

                
                            
                <span id="UpdatePanel2">
                     <div id="embedDocPanel" class="mb4">
		

                        <!--PDF Toolbar-->
                        <a name="getDoc" id="getDoc"></a>
                        <div class="doc_action x_item bg-light-gray f7 br--top br2 no-print" >
                            <div id="PDF_Download" class="dib br b--black-20 pv2 ph1 ph3-ns"><a id="PDF_Download_HyperLink" href="/post/fileServer.aspx?fName=65c1d5ef-5ece-4411-8828-2c23febb830c.pdf" target="_blank" style="font-weight:bold;"><i class="fa fa-file-pdf-o" aria-hidden="true"></i> Download PDF </a><span class="silver">[1448KB]</span></div>
                            <div class="dib br b--black-20 pv2 ph1 ph3-ns"><a href="javascript:sendit()" id="send"><i class="fa fa-envelope-o" aria-hidden="true"></i> Email</a></div>
                            <div class="dib br b--black-20 pv2 ph1 ph3-ns"><a id="reportproblemDocViewer" href="/reportaproblem/index.aspx"><i class="fa fa-flag-o" aria-hidden="true"></i> Report</a></div>
                        </div>
            
                        <div id="download"></div>                 
            
                             
            
                        <!--PDF Error MSG-->
                        <p id="statement" style="display:none;"></p>   
                          
                        <div id="pdfEmbed1_Panel">
			
                            <div id="pdf" class="mb4"><p>LOADING PDF:  If there are any problems, <a href="https://s3.amazonaws.com/documents.jdsupra.com/65c1d5ef-5ece-4411-8828-2c23febb830c.pdf">click here</a> to download the file.</p></div>
                        
		</div>

                        <!--All Else fails, Google Viewer-->
                        <div id="googlePDF" style="display:none;"><iframe id="googlePDFiframe" src='' width="100%" height="600" style="border: none;"></iframe></div>
                        <div class="clear"></div> 
                    
	</div>
                    </span>
            
</div>              
            <!--/End PDF View-->    

        
            <!--Case 2: Video View-->
                
            <!--/Video View-->   
     
            <!--Case 3: HTML Content View-->
                    

            <!--Content Info-->                 
            <div id="BottomFileInfoPanel" class="t-cv-info-panel">
	
       
            <!--Case Info-->
             

            <div class="f5 mt4">
                <a href="javascript:sendit();" class="br-pill ba dim link ph3 pv1 mb2 dib mid-gray cursor-pointer mr2 f7"><i class="fa fa-envelope-o" aria-hidden="true"></i> Send</a>
                
                <a id="reportproblemDocViewer2" class="br-pill ba dim link ph3 pv1 mb2 dib mid-gray cursor-pointer f7" href="/reportaproblem/index.aspx"><i class="fa fa-exclamation-triangle" aria-hidden="true"></i> Report</a>
            </div>

            


            <!--Related/latest docs-->
            <div id="ContentViewRelatedPanel" class="connect-related-list">
		 
                <h3 class="bt bw1 pt3 f4 mb3 ttu">Related Posts</h3><ul class="lh-copy cf f6 fw7 ml0 pl3">
<li class="fl pb3 pr4 w-50-ns"><a href="/legalnews/insurance-can-reduce-the-financial-48096/" onclick="ga('send', 'event', 'docview', 'read-more-links', 'related-doc-link');">Insurance Can Reduce the Financial Repercussions to Your Supply Chain of Superstorms, Wildfires, Climate Change, and Global Economic Disruptions</a></li>
<li class="fl pb3 pr4 w-50-ns"><a href="/legalnews/insurance-checklist-in-the-event-of-49139/" onclick="ga('send', 'event', 'docview', 'read-more-links', 'related-doc-link');">Insurance Checklist in the Event of Hurricane Losses</a></li>
<li class="fl pb3 pr4 w-50-ns"><a href="/legalnews/insurance-recovery-for-losses-related-28460/" onclick="ga('send', 'event', 'docview', 'read-more-links', 'related-doc-link');">Insurance Recovery for Losses Related to Hurricane Harvey</a></li>
</ul>
</ul>

                <h3 class="bt bw1 pt3 f4 mb3 ttu">Latest Posts</h3><ul class="lh-copy cf f6 fw7 ml0 pl3"><li class="fl pb3 pr4 w-50-ns"><a href="/legalnews/third-circuit-holds-settlement-language-84568/" onclick="ga('send', 'event', 'docview', 'read-more-links', 'latest-doc-link');">Third Circuit Holds “Settlement Language” in Collection Letter Can Be Misleading</a></li>
<li class="fl pb3 pr4 w-50-ns"><a href="/legalnews/additional-protections-for-temporary-51765/" onclick="ga('send', 'event', 'docview', 'read-more-links', 'latest-doc-link');">Additional Protections for Temporary Schedule Changes for Employees under New York City’s Paid Sick Time Law</a></li>
</ul><p class="moreLessLink f7 tr"><a class="red" href="/profile/Blank_Rome_docs/" onclick="ga('send', 'event', 'docview', 'read-more-links', 'latest-doc-see-more');">See more &raquo;</a></p>

            
	</div>  

            <!--Video Ribbon--> 
            

        
            <!--Disclaimer-->
            <div id="disclaimerDisplay">
		
                <div class="mv4 f7 gray lh-copy bt bb b--black-20 pv3 bb-0-ns">
                    <p>DISCLAIMER: Because of the generality of this update, the information provided herein may not be applicable in all situations and should not be acted upon without specific legal advice based on particular situations.</p>
                    <p>&copy; Blank Rome LLP <script>var today = new Date(); var yyyy = today.getFullYear();document.write(yyyy + " ");</script> |  Attorney Advertising</p>   
                </div>
            
	</div>

            <!--Subscribe Ad-->
                    
    
</div> <!--End BottomFileInfoPanel--> 


</div><!--end primary columm-->      

<div id="attributionPanel">
	
<div class="fl-l pl3-m pl4-l w-30-l">
        <a name="FollowSection"></a>
        <div class="bg-light-green dark-green pv3 ph2 mb4 db lh-title tc fw7" name="MasterAlerter" style="display: none;">
            <div class="mb1"><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></div>
            </asp:Literal>
            <p class="mb0"><a href="/follow/manageyourinterests//">Refine your interests &raquo;</a></p>
        </div>
     
        <h4 class="ttu mb2 mid-gray f6 mt0 mb2">
        Written by:
        </h4>

        <!--Follow Firm-->
        <div class="f6 dt w-100 pb3 bb b--black-10 lh-title">
            <div class="dtc w3 v-top">
                <a onclick="ga('send', 'event', 'docview', 'follow', 'firm-img');" href="/profile/Blank_Rome_docs/"><img src="/showThumbnail.aspx?img=15443_296.jpg&size=sm" alt="Blank Rome LLP" class="border-light br2"></a>
            </div>   
            <div class="dtc pl2 v-top">
                <div class="drkgraylnk"><a onclick="ga('send', 'event', 'docview', 'follow', 'firm-link');" href="/profile/Blank_Rome_docs/">Blank Rome LLP</a></div>

                <a href="/profile/contributor-contact.aspx" id="ContactNowBTNlink" class="dib mb1 no-underline pv1 ph2 br-pill bg-red white f7" onclick="ga(&#39;send&#39;, &#39;event&#39;, &#39;follow&#39;, &#39;Contact Button - Doc View Top&#39;, &#39;Contact Button - Doc View Top&#39;);">Contact</a>

                <span class="br-pill dib follow-action-lnk follow-lnk f7"  onclick="PostChange('',18133,'Blank Rome LLP',4,1)" name="follow_4_18133">+ Follow</span>
                <span class="br-pill dib follow-action-lnk following-lnk f7" style="display: none;" name="follow_spinner_4_18133">x&nbsp;Following</span>
                <span class="br-pill dib follow-action-lnk following-lnk f7" style="display: none;" onclick="PostChange('',18133,'Blank Rome LLP',4,0)" name="unfollow_4_18133">x&nbsp;Following</span> 
                <span class="br-pill dib follow-action-lnk unfollowing-lnk blue f7" style="display: none;" name="unfollow_spinner_4_18133">- Unfollow</span>
            </div>
        </div> 

    <!--Follow People-->
    <div id="followPeopleSection">
         <div class="follow-people-list f6 lh-title">      
            <!--Follow Author Buttons-->
             
                <div class="js-followauthor cf pv3 bb b--black-10">
                    <div class="dt w-100">
                        <div class="dtc v-mid w2 pr1">
                            <a onclick="ga('send', 'event', 'docview', 'follow', 'author-img');" href="/authors/john-heintz1/"><img src="https://jdsupra-static.s3.amazonaws.com/authors/57fb83245745a.30h.jpg" alt="John Heintz" class="br2 v-mid"></a>
                        </div>
                        <div class="dtc v-mid">
                            <a onclick="ga('send', 'event', 'docview', 'follow', 'author-link');" href="/authors/john-heintz1/">John Heintz</a>
                        </div>
                        <div class="dtc f7 v-mid tr w-40">
                            <span class="br-pill follow-action-lnk follow-lnk"  onclick="PostChange('',62084,'John Heintz',1,1)" name="follow_1_62084">+ Follow</span>
                            <span class="br-pill follow-action-lnk following-lnk" style="display: none;" name="follow_spinner_1_62084">x&nbsp;Following</span>
                            <span class="br-pill follow-action-lnk following-lnk" style="display: none;" onclick="PostChange('',62084,'John Heintz',1,0)" name="unfollow_1_62084">x&nbsp;Following</span> 
                            <span class="br-pill follow-action-lnk unfollowing-lnk blue" style="display: none;" name="unfollow_spinner_1_62084">- Unfollow</span>
                        </div>
                    </div>
                </div> 
                
                <div class="js-followauthor cf pv3 bb b--black-10">
                    <div class="dt w-100">
                        <div class="dtc v-mid w2 pr1">
                            <a onclick="ga('send', 'event', 'docview', 'follow', 'author-img');" href="/authors/jared-zola/"><img src="https://jdsupra-static.s3.amazonaws.com/authors/57fb834ac285b.30h.jpg" alt="Jared Zola" class="br2 v-mid"></a>
                        </div>
                        <div class="dtc v-mid">
                            <a onclick="ga('send', 'event', 'docview', 'follow', 'author-link');" href="/authors/jared-zola/">Jared Zola</a>
                        </div>
                        <div class="dtc f7 v-mid tr w-40">
                            <span class="br-pill follow-action-lnk follow-lnk"  onclick="PostChange('',62085,'Jared Zola',1,1)" name="follow_1_62085">+ Follow</span>
                            <span class="br-pill follow-action-lnk following-lnk" style="display: none;" name="follow_spinner_1_62085">x&nbsp;Following</span>
                            <span class="br-pill follow-action-lnk following-lnk" style="display: none;" onclick="PostChange('',62085,'Jared Zola',1,0)" name="unfollow_1_62085">x&nbsp;Following</span> 
                            <span class="br-pill follow-action-lnk unfollowing-lnk blue" style="display: none;" name="unfollow_spinner_1_62085">- Unfollow</span>
                        </div>
                    </div>
                </div> 
                  
        </div>
        <div class="doc_trunk_more tr f7 mt2 dn blue" onClick="showMoreTags('#followPeopleSection')">more <i class="fa fa-angle-down" aria-hidden="true"></i></div>
        <div class="doc_trunk_less tr f7 mt2 dn blue" onClick="hideMoreTags('#followPeopleSection')">less <i class="fa fa-angle-up" aria-hidden="true"></i></div>
    </div><!--end truncate tags-->

<!--Follow Topics/Subjects-->
<div class="mv4 follow-trunk-List block-with-bot-border lh-title" id="followTopSubSection">
    <h4 class="ttu mb2 mid-gray f6 mt0 mb2">Published In:</h4> 

     <div class="follow-subtop-list f6">             
        <!--Follow Topics Buttons-->
        
            <div class="js-followsubtops pv3 bb b--black-10 dt w-100">
                <div class="dtc">
                    <a onclick="ga('send', 'event', 'docview', 'follow', 'topic-link');" href="/topics/business-interruption/">Business Interruption</a>
                </div>               
                <div class="dtc w-40 f7 tr f7">
                    <span class="br-pill follow-action-lnk follow-lnk"  onclick="PostChange('',3948,'Business Interruption',2,1)" name="follow_2_3948">+ Follow</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" name="follow_spinner_2_3948">x&nbsp;Following</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" onclick="PostChange('',3948,'Business Interruption',2,0)" name="unfollow_2_3948">x&nbsp;Following</span> 
                    <span class="br-pill follow-action-lnk unfollowing-lnk blue" style="display: none;" name="unfollow_spinner_2_3948">- Unfollow</span>
                </div>         
            </div> 
            
            <div class="js-followsubtops pv3 bb b--black-10 dt w-100">
                <div class="dtc">
                    <a onclick="ga('send', 'event', 'docview', 'follow', 'topic-link');" href="/topics/flood-insurance/">Flood Insurance</a>
                </div>               
                <div class="dtc w-40 f7 tr f7">
                    <span class="br-pill follow-action-lnk follow-lnk"  onclick="PostChange('',2088,'Flood Insurance',2,1)" name="follow_2_2088">+ Follow</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" name="follow_spinner_2_2088">x&nbsp;Following</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" onclick="PostChange('',2088,'Flood Insurance',2,0)" name="unfollow_2_2088">x&nbsp;Following</span> 
                    <span class="br-pill follow-action-lnk unfollowing-lnk blue" style="display: none;" name="unfollow_spinner_2_2088">- Unfollow</span>
                </div>         
            </div> 
            
            <div class="js-followsubtops pv3 bb b--black-10 dt w-100">
                <div class="dtc">
                    <a onclick="ga('send', 'event', 'docview', 'follow', 'topic-link');" href="/topics/hurricane-harvey/">Hurricane Harvey</a>
                </div>               
                <div class="dtc w-40 f7 tr f7">
                    <span class="br-pill follow-action-lnk follow-lnk"  onclick="PostChange('',31600,'Hurricane Harvey',2,1)" name="follow_2_31600">+ Follow</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" name="follow_spinner_2_31600">x&nbsp;Following</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" onclick="PostChange('',31600,'Hurricane Harvey',2,0)" name="unfollow_2_31600">x&nbsp;Following</span> 
                    <span class="br-pill follow-action-lnk unfollowing-lnk blue" style="display: none;" name="unfollow_spinner_2_31600">- Unfollow</span>
                </div>         
            </div> 
            
            <div class="js-followsubtops pv3 bb b--black-10 dt w-100">
                <div class="dtc">
                    <a onclick="ga('send', 'event', 'docview', 'follow', 'topic-link');" href="/topics/hurricane-irma/">Hurricane Irma</a>
                </div>               
                <div class="dtc w-40 f7 tr f7">
                    <span class="br-pill follow-action-lnk follow-lnk"  onclick="PostChange('',31635,'Hurricane Irma',2,1)" name="follow_2_31635">+ Follow</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" name="follow_spinner_2_31635">x&nbsp;Following</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" onclick="PostChange('',31635,'Hurricane Irma',2,0)" name="unfollow_2_31635">x&nbsp;Following</span> 
                    <span class="br-pill follow-action-lnk unfollowing-lnk blue" style="display: none;" name="unfollow_spinner_2_31635">- Unfollow</span>
                </div>         
            </div> 
            
            <div class="js-followsubtops pv3 bb b--black-10 dt w-100">
                <div class="dtc">
                    <a onclick="ga('send', 'event', 'docview', 'follow', 'topic-link');" href="/topics/hurricane-maria/">Hurricane Maria</a>
                </div>               
                <div class="dtc w-40 f7 tr f7">
                    <span class="br-pill follow-action-lnk follow-lnk"  onclick="PostChange('',31704,'Hurricane Maria',2,1)" name="follow_2_31704">+ Follow</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" name="follow_spinner_2_31704">x&nbsp;Following</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" onclick="PostChange('',31704,'Hurricane Maria',2,0)" name="unfollow_2_31704">x&nbsp;Following</span> 
                    <span class="br-pill follow-action-lnk unfollowing-lnk blue" style="display: none;" name="unfollow_spinner_2_31704">- Unfollow</span>
                </div>         
            </div> 
            
            <div class="js-followsubtops pv3 bb b--black-10 dt w-100">
                <div class="dtc">
                    <a onclick="ga('send', 'event', 'docview', 'follow', 'topic-link');" href="/topics/hurricane-season/">Hurricane Season</a>
                </div>               
                <div class="dtc w-40 f7 tr f7">
                    <span class="br-pill follow-action-lnk follow-lnk"  onclick="PostChange('',27092,'Hurricane Season',2,1)" name="follow_2_27092">+ Follow</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" name="follow_spinner_2_27092">x&nbsp;Following</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" onclick="PostChange('',27092,'Hurricane Season',2,0)" name="unfollow_2_27092">x&nbsp;Following</span> 
                    <span class="br-pill follow-action-lnk unfollowing-lnk blue" style="display: none;" name="unfollow_spinner_2_27092">- Unfollow</span>
                </div>         
            </div> 
            
            <div class="js-followsubtops pv3 bb b--black-10 dt w-100">
                <div class="dtc">
                    <a onclick="ga('send', 'event', 'docview', 'follow', 'topic-link');" href="/topics/insurance-claims/">Insurance Claims</a>
                </div>               
                <div class="dtc w-40 f7 tr f7">
                    <span class="br-pill follow-action-lnk follow-lnk"  onclick="PostChange('',24847,'Insurance Claims',2,1)" name="follow_2_24847">+ Follow</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" name="follow_spinner_2_24847">x&nbsp;Following</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" onclick="PostChange('',24847,'Insurance Claims',2,0)" name="unfollow_2_24847">x&nbsp;Following</span> 
                    <span class="br-pill follow-action-lnk unfollowing-lnk blue" style="display: none;" name="unfollow_spinner_2_24847">- Unfollow</span>
                </div>         
            </div> 
            
            <div class="js-followsubtops pv3 bb b--black-10 dt w-100">
                <div class="dtc">
                    <a onclick="ga('send', 'event', 'docview', 'follow', 'topic-link');" href="/topics/insurance-industry/">Insurance Industry</a>
                </div>               
                <div class="dtc w-40 f7 tr f7">
                    <span class="br-pill follow-action-lnk follow-lnk"  onclick="PostChange('',15490,'Insurance Industry',2,1)" name="follow_2_15490">+ Follow</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" name="follow_spinner_2_15490">x&nbsp;Following</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" onclick="PostChange('',15490,'Insurance Industry',2,0)" name="unfollow_2_15490">x&nbsp;Following</span> 
                    <span class="br-pill follow-action-lnk unfollowing-lnk blue" style="display: none;" name="unfollow_spinner_2_15490">- Unfollow</span>
                </div>         
            </div> 
            
            <div class="js-followsubtops pv3 bb b--black-10 dt w-100">
                <div class="dtc">
                    <a onclick="ga('send', 'event', 'docview', 'follow', 'topic-link');" href="/topics/natural-disasters/">Natural Disasters</a>
                </div>               
                <div class="dtc w-40 f7 tr f7">
                    <span class="br-pill follow-action-lnk follow-lnk"  onclick="PostChange('',578,'Natural Disasters',2,1)" name="follow_2_578">+ Follow</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" name="follow_spinner_2_578">x&nbsp;Following</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" onclick="PostChange('',578,'Natural Disasters',2,0)" name="unfollow_2_578">x&nbsp;Following</span> 
                    <span class="br-pill follow-action-lnk unfollowing-lnk blue" style="display: none;" name="unfollow_spinner_2_578">- Unfollow</span>
                </div>         
            </div> 
            
            <div class="js-followsubtops pv3 bb b--black-10 dt w-100">
                <div class="dtc">
                    <a onclick="ga('send', 'event', 'docview', 'follow', 'topic-link');" href="/topics/policy-exclusions/">Policy Exclusions</a>
                </div>               
                <div class="dtc w-40 f7 tr f7">
                    <span class="br-pill follow-action-lnk follow-lnk"  onclick="PostChange('',10207,'Policy Exclusions',2,1)" name="follow_2_10207">+ Follow</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" name="follow_spinner_2_10207">x&nbsp;Following</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" onclick="PostChange('',10207,'Policy Exclusions',2,0)" name="unfollow_2_10207">x&nbsp;Following</span> 
                    <span class="br-pill follow-action-lnk unfollowing-lnk blue" style="display: none;" name="unfollow_spinner_2_10207">- Unfollow</span>
                </div>         
            </div> 
            
            <div class="js-followsubtops pv3 bb b--black-10 dt w-100">
                <div class="dtc">
                    <a onclick="ga('send', 'event', 'docview', 'follow', 'topic-link');" href="/topics/policy-limits/">Policy Limits</a>
                </div>               
                <div class="dtc w-40 f7 tr f7">
                    <span class="br-pill follow-action-lnk follow-lnk"  onclick="PostChange('',10052,'Policy Limits',2,1)" name="follow_2_10052">+ Follow</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" name="follow_spinner_2_10052">x&nbsp;Following</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" onclick="PostChange('',10052,'Policy Limits',2,0)" name="unfollow_2_10052">x&nbsp;Following</span> 
                    <span class="br-pill follow-action-lnk unfollowing-lnk blue" style="display: none;" name="unfollow_spinner_2_10052">- Unfollow</span>
                </div>         
            </div> 
            
            <div class="js-followsubtops pv3 bb b--black-10 dt w-100">
                <div class="dtc">
                    <a onclick="ga('send', 'event', 'docview', 'follow', 'topic-link');" href="/topics/property-damage/">Property Damage</a>
                </div>               
                <div class="dtc w-40 f7 tr f7">
                    <span class="br-pill follow-action-lnk follow-lnk"  onclick="PostChange('',729,'Property Damage',2,1)" name="follow_2_729">+ Follow</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" name="follow_spinner_2_729">x&nbsp;Following</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" onclick="PostChange('',729,'Property Damage',2,0)" name="unfollow_2_729">x&nbsp;Following</span> 
                    <span class="br-pill follow-action-lnk unfollowing-lnk blue" style="display: none;" name="unfollow_spinner_2_729">- Unfollow</span>
                </div>         
            </div> 
            
            <div class="js-followsubtops pv3 bb b--black-10 dt w-100">
                <div class="dtc">
                    <a onclick="ga('send', 'event', 'docview', 'follow', 'topic-link');" href="/topics/severe-weather/">Severe Weather</a>
                </div>               
                <div class="dtc w-40 f7 tr f7">
                    <span class="br-pill follow-action-lnk follow-lnk"  onclick="PostChange('',11791,'Severe Weather',2,1)" name="follow_2_11791">+ Follow</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" name="follow_spinner_2_11791">x&nbsp;Following</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" onclick="PostChange('',11791,'Severe Weather',2,0)" name="unfollow_2_11791">x&nbsp;Following</span> 
                    <span class="br-pill follow-action-lnk unfollowing-lnk blue" style="display: none;" name="unfollow_spinner_2_11791">- Unfollow</span>
                </div>         
            </div> 
            

        <!--Follow Subject Buttons-->
        
            <div class="js-followsubtops pv3 bb b--black-10 dt w-100">          
                <div class="dtc">
                    <a onclick="ga('send', 'event', 'docview', 'follow', 'topic-link');" href="https://www.jdsupra.com/law-news/insurance-law/">Insurance</a>
                </div>   
                <div class="dtc w-40 f7 tr f7">
                    <span class="br-pill follow-action-lnk follow-lnk"  onclick="PostChange('',54,'Insurance',3,1)" name="follow_3_54">+ Follow</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" name="follow_spinner_3_54">x&nbsp;Following</span>
                    <span class="br-pill follow-action-lnk following-lnk" style="display: none;" onclick="PostChange('',54,'Insurance',3,0)" name="unfollow_3_54">x&nbsp;Following</span> 
                    <span class="br-pill follow-action-lnk unfollowing-lnk blue" style="display: none;" name="unfollow_spinner_3_54">- Unfollow</span>
                </div>                          
            </div> 
              

        
    </div>
    <div class="doc_trunk_more tr f7 mt2 dn blue" onClick="showMoreTags('#followTopSubSection')">more <i class="fa fa-angle-down" aria-hidden="true"></i></div>
    <div class="doc_trunk_less tr f7 mt2 dn blue" onClick="hideMoreTags('#followTopSubSection')">less <i class="fa fa-angle-up" aria-hidden="true"></i></div>    
</div>


        <!--Start Connect Panel-->  
        <div id="ContactPanelStatic">
		  

            <h4 class="ttu mb2 mid-gray f6 mt0 mb2">Blank Rome LLP on:</h4>
            <div class="follow-social-content">
                <div class="dib v-mid"><a href="http://www.linkedin.com/company/blank-rome-llp" id="hrefLinkedin"><img src="/img/social-icons/linkedin-32x32.png" /></a></div>
                <div class="dib v-mid"></div>
                <div class="dib v-mid"><a href="http://twitter.com/blankromellp" id="hrefTwitter"><img src="/img/social-icons/twitter-32x32.gif" /></a></div>
                <div class="dib v-mid"><a href="http://www.blankrome.com/" id="hrefWebsite"><img src="/img/social-icons/website-32x32.gif" /></a></div>    
                <div class="dib v-mid"><a href="/profile/Blank_Rome_rss" id="hrefRSS"><img src="/img/social-icons/supra-32x32.gif" /></a></div>
            </div>
        
	</div>
        <!--/End Connect Panel-->
 <!--End written by and published section-->

<!--Rotating Ads-->
    <div id="adPanel1">
		
    
	</div>            
     
<!--/Rotating Ads-->

<div class="mt4 no-print">
  <a href="/readerschoice/2017/" onclick="ga('send', 'event', 'readerschoice-2017', 'promo', 'promo-doc-view');"><img src="/img/readerschoice/2017-winners/promo-winners.jpg" alt="Readers' Choice 2017"></a>
</div>

<div class="mt4 tc no-print">            
    <a href="/perspective/media-query.htm"><img src="/img/ad-for-journalists.png" alt="Reporters on Deadline" ></a>
</div>


          
</div><!--end jds-doc-side-content-->

</div><!--attributionPanel i reuse this panel so i didn't have to write one in .vb file-->

</div><!--end jds-content-viewer-->

</div><!--end outer div-->
      
</asp:Panel>
     
    <div id="FollowLinkedInSignIn" class="reveal-modal mw7 center pa4 overflow-y-scroll">
        <a class="close-reveal-modal tr db silver" onclick="ga('send', 'event', 'follow', 'Close LinkedIn MDB - Doc View', 'X icon in LI MDB - Doc View');"><i class="fa fa-times" aria-hidden="true"></i></a>
        <h1 class="f5 tc georgia tracked mb2 gray mt0">"My best business intelligence, in one easy email&hellip;"</h1>
        <div class="gray mb3 lh-title measure center">Your first step to building a free, personalized, morning email brief covering pertinent authors and topics on JD Supra:</div>    
        <div class="tc f4 fw7 mb2">Sign up using<span class="red fw5 f6">*</span></div>
        <div class="tc">
            <a href="/follow/linkedinlogin/" class="dib v-mid mb1 mr1-l no-underline pv2 ph4 br-pill bg-blue white f3 fw7" onclick="ga('send', 'event', 'follow', 'LinkedIn Button MDB - Doc View', 'Sign up Button - Doc View');">Linked <i class="fa fa-linkedin-square fa-2" aria-hidden="true"></i> </a>

            <a href="/follow/subscribe-form.aspx" onclick="ga('send', 'event', 'follow', 'Email Signup MDB - Doc View', 'Email Signup MDB - Doc View');" class="dib mb1 no-underline pv2 ph3 br-pill ba b--blue br-pill f4">Email address</a>
        </div>
        <p class="tc f6 fw7">Already signed up? <a href="/login.aspx" onclick="ga('send', 'event', 'follow', 'Already signed up MDB - Doc View', 'Already signed up MDB - Doc View');">Log in here</a></p>

        <div class="f7 gray mt4 tc"><em><span class="red">*</span>By using the service, you signify your acceptance of <span id="policy-click" class="blue">JD Supra's Privacy Policy.</span></em>
        </div>

        <div class="tc mt3" id="digest-img"><a href="/follow/linkedinlogin/" onclick="ga('send', 'event', 'follow', 'Digest Image MDB - Doc View', 'Digest Screenshot Image - Doc View');"><img src="/img/digest-screenshot.jpg" alt="Custom Email Digest"></a>
        </div>


        <div id="policy-blk" class="bg-lightest-blue pa4 mv3 gray dn h5 f7 lh-copy overflow-y-scroll"> 
            <div class="dib w-60 v-top mid-gray fw7">Privacy Policy <em>(Updated: October 8, 2015)</em>:</div>
            <div class="dib tr f7 blue close-lnk w-30 v-top">
                hide <i class="fa fa-angle-up" aria-hidden="true"></i>
            </div>
            
            <p>JD Supra provides users with access to its legal industry publishing services (the "Service") through <a href="/" target="_blank">its website</a> (the "Website") as well as through other sources. Our policies with regard to data collection and use of personal information of users of the Service, regardless of the manner in which users access the Service, and visitors to the Website are set forth in this statement ("Policy"). By using the Service, you signify your acceptance of this Policy.
            </p>
            
            <h5 class="f6 mb2">Information Collection and Use by JD Supra</h5>
            <p>JD Supra collects users' names, companies, titles, e-mail address and industry. JD Supra also tracks the pages that users visit, logs IP addresses and aggregates non-personally identifiable user data and browser type. This data is gathered using cookies and other technologies. </p>

            <p>The information and data collected is used to authenticate users and to send notifications relating to the Service, including email alerts to which users have subscribed; to manage the Service and Website, to improve the Service and to customize the user's experience. This information is also provided to the authors of the content to give them insight into their readership and help them to improve their content, so that it is most useful for our users. </p>

            <p>JD Supra does not sell, rent or otherwise provide your details to third parties, other than to the authors of the content on JD Supra.</p>

            <p>If you prefer not to enable cookies, you may change your browser settings to disable cookies; however, please note that rejecting cookies while visiting the Website may result in certain parts of the Website not operating correctly or as efficiently as if cookies were allowed.</p>
            
            <h5 class="f6 mb2">Email Choice/Opt-out</h5>
            
            <p>Users who opt in to receive emails may choose to no longer receive e-mail updates and newsletters by selecting the "opt-out of future email" option in the email they receive from JD Supra or in their JD Supra account management screen.
            </p>
            
            <h5 class="f6 mb2">Security</h5>
            
            <p>JD Supra takes reasonable precautions to insure that user information is kept private. We restrict access to user information to those individuals who reasonably need access to perform their job functions, such as our third party email service, customer service personnel and technical staff. However, please note that no method of transmitting or storing data is completely secure and we cannot guarantee the security of user information. Unauthorized entry or use, hardware or software failure, and other factors may compromise the security of user information at any time.
            </p>

            <p>If you have reason to believe that your interaction with us is no longer secure, you must immediately notify us of the problem by contacting us at <a href="mailto:info@jdsupra.com">info@jdsupra.com</a>. In the unlikely event that we believe that the security of your user information in our possession or control may have been compromised, we may seek to notify you of that development and, if so, will endeavor to do so as promptly as practicable under the circumstances.</p>        
            

            <h5 class="f6 mb2">Sharing and Disclosure of Information JD Supra Collects</h5>
            
            <p>Except as otherwise described in this privacy statement, JD Supra will not disclose personal information to any third party unless we believe that disclosure is necessary to: (1) comply with applicable laws; (2) respond to governmental inquiries or requests; (3) comply with valid legal process; (4) protect the rights, privacy, safety or property of JD Supra, users of the Service, Website visitors or the public; (5) permit us to pursue available remedies or limit the damages that we may sustain; and (6) enforce our Terms & Conditions of Use.
            </p>
            
            <p>In the event there is a change in the corporate structure of JD Supra such as, but not limited to, merger, consolidation, sale, liquidation or transfer of substantial assets, JD Supra may, in its sole discretion, transfer, sell or assign information collected on and through the Service to one or more affiliated or unaffiliated third parties.
            </p>
            
            <h5 class="f6 mb2">Links to Other Websites</h5>
            
            <p>This Website and the Service may contain links to other websites. The operator of such other websites may collect information about you, including through cookies or other technologies. If you are using the Service through the Website and link to another site, you will leave the Website and this Policy will not apply to your use of and activity on those other sites. We encourage you to read the legal notices posted on those sites, including their privacy policies. We shall have no responsibility or liability for your visitation to, and the data collection and use practices of, such other sites. This Policy applies solely to the information collected in connection with your use of this Website and does not apply to any practices conducted offline or in connection with any other websites.
            </p>
            
            <h5 class="f6 mb2">Changes in Our Privacy Policy</h5>
            
            <p>We reserve the right to change this Policy at any time. Please refer to the date at the top of this page to determine when this Policy was last revised. Any changes to our privacy policy will become effective upon posting of the revised policy on the Website. By continuing to use the Service or Website following such changes, you will be deemed to have agreed to such changes. If you do not agree with the terms of this Policy, as it may be amended from time to time, in whole or part, please do not continue using the Service or the Website.
            </p>
            
            <h5 class="f6 mb2">Contacting JD Supra</h5>
            
            <p>If you have any questions about this privacy statement, the practices of this site, your dealings with this Web site, or if you would like to change any of the information you have provided to us, please contact us at: <a href="mailto:info@jdsupra.com">info@jdsupra.com</a>.
            </p>
            <div class="tr f7 blue close-lnk">
                - hide
            </div>            
        </div>



        <div class="f7 gray mt3"><span class="red">*</span><em>With LinkedIn, you don't need to create a separate login to manage your free JD Supra account, and we can make suggestions based on your needs and interests. We will not post anything on LinkedIn in your name. <a href="/follow/subscribe-form.aspx" onclick="ga('send', 'event', 'follow', 'Email Signup Link - Doc View', 'Email Signup Link - Doc View');">Or, sign up using your email address.</a></em></div>
 
    </div><!--end follow mdb-->
    
</form><!--end form-->

</div>    
<!--End markup-->
    
    <script src="//ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<script type="text/javascript">
     
$(document).ready(function(){
  $(".hamburger").click(function(){
    $(this).toggleClass("is-active");
    $(".nav-block").slideToggle(100); 
  });

  // Toggle the submenus on desktop versions
  $('.megadropdown > a').click(function(e) {
    e.preventDefault();  
    e.stopPropagation(); 
    $('.nav-open').not($(this).siblings()).removeClass('nav-open'); //remove red border class on other opened megadropdown 
    $('.submenu').not($(this).siblings()).slideUp(100); //close other open megadropdown
    $(this).siblings(".submenu").slideToggle(100); //open megadropdown
    $(this).toggleClass('nav-open'); //red hover border 
  });
});

$(document).on("click", function () {
    $(".submenu").hide();
    $(".megadropdown > a").removeClass('nav-open');
});
</script>

<!-- Start of HubSpot Embed Code -->
<script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/4091418.js"></script>
<!-- End of HubSpot Embed Code -->


 
    <script type="text/javascript" src="https://vjs.zencdn.net/5.10.8/video.js"></script>
    
    <script type="text/javascript">
    $(document).ready(function(){

        $("#lnkRefreshCache").click(function () {
            $.ajax({ url: "", success:function(responseText){
                location.reload(); 
                }});
        });
       ImageResize();

        /* Edit/Close Page: toggle & reload iframe (FF) */
        $("#cms_file_edit_div_OUT").click(function() {
                $("#cms_file_edit").toggle(function() {
                    // if Firefox & in visible mode, reload the iframe
                    /*if ($.browser.mozilla == true && $(this).is(':visible')) {
                       document.getElementById('cms_file_edit').src = document.getElementById('cms_file_edit').src
                    }*/

            if ($(this).is(':visible')) {
                $("#cms_file_edit_div").text('Close Page');                
                    } else {
                $("#cms_file_edit_div").text('Edit Page');                
                    }  
                });
        });

        /*initiate video ribbon*/
        $('#mycarousel').jcarousel({scroll: 2});
        $('#mycarousel').show();
    });

    $(window).resize(function(){
        ImageResize();
    });

    function ImageResize(){
        $width = $('#HTMLContentViewPanel').width();
        $('#HTMLContentViewPanel img').css({
            'max-width' : $width , 'height' : 'auto'
        });
        if ($width > 300 && $(window).width() > 600)
            $('#HTMLContentViewPanel img').first().show();
        else
            $('#HTMLContentViewPanel img').first().hide();

    }

    Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoadedHandler)
    function pageLoadedHandler(sender, args)
    {     
        window.scrollTo(0,0);
    }
  
    function HideShowEmbed() {
        if ($('.embedBox').is(':visible'))
            $('.embedBox').hide();
        else
            $('.embedBox').show();
    }

    function CopyToClipboard(e) {
        $(e).focus();
        $(e).select();

        $('#embedURLCopyBtn').hide();
        $('#embedCopyHint').show(); 
    }    

    function sumShowLink() {$('#vidSumSubStr').hide();$('#vidSummary').show();}
    function sumHideLink() {$('#vidSummary').hide();$('#vidSumSubStr').show();}

    </script>
    <script type="text/javascript" src="/inc/js/pdfobject.js"></script>
    <script type="text/javascript"> 

    window.onload = function (){    
            var msg;
            var s = document.getElementById("statement");   
            var pdfWindow = document.getElementById("pdf");
            var googlepdfWindow = document.getElementById("googlePDF");
            var googlepdfFrame = document.getElementById("googlePDFiframe");
            
            var embedURL = "https://s3.amazonaws.com/documents.jdsupra.com/65c1d5ef-5ece-4411-8828-2c23febb830c.pdf"
            var embedURLGoogle = "https://docs.google.com/viewer?url=http%3A%2F%2Fdocuments.jdsupra.com%2F65c1d5ef-5ece-4411-8828-2c23febb830c.pdf&embedded=true"            

            if (false) {
                $('html').addClass('ie11');
            }    
          
            var myPDF = null;
            try {
                myPDF = (PDFObject.supportsPDFs);                        
            } catch (e) { 
                myPDF = false;      
            }                    

            if(myPDF){
                show_embedded_viewer(embedURL);
            } else {
                show_google_viewer(embedURLGoogle);
            }

    }

        function show_google_viewer(url){       
                
            var s = document.getElementById("statement");   
            var pdfWindow = document.getElementById("pdf");
            var googlepdfWindow = document.getElementById("googlePDF");
            var googlepdfFrame = document.getElementById("googlePDFiframe");
                
            s.className = "fail";
            pdfWindow.style.display = 'none';
            googlepdfFrame.src = url;
            googlepdfWindow.style.display = 'block';
        }
        
        function show_embedded_viewer(url){
                

           //alert("SHOW EMBEDDED VIEWER: " + url);
            var params = {pdfOpenParams: {navpanes: 0,toolbar: 0,statusbar: 0,view: "FitH"}};

            try {
                PDFObject.embed(url, "#pdf", params);
            } catch (e){ 
                //alert("PDFObject EMBED ERROR" + e.message);
            }    

            var s = document.getElementById("statement");   
            var pdfWindow = document.getElementById("pdf");
            var googlepdfWindow = document.getElementById("googlePDF");
            var googlepdfFrame = document.getElementById("googlePDFiframe");
                
            s.className = "success";
            pdfWindow.style.display = 'block';  
            googlepdfFrame.src = '';
            googlepdfWindow.style.display = 'none';     
    
        }
        
        function get_cookie(name){
            var a_all_cookies = document.cookie.split(';');
            var a_temp_cookie = '';
            var cookie_name = '';
            var cookie_value = '';
            var b_cookie_found = false;
            for (i=0;i<a_all_cookies.length;i++){
                a_temp_cookie = a_all_cookies[i].split('=');
                cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g,'');
                if ( cookie_name == name ){
                    b_cookie_found = true;
                    if (a_temp_cookie.length>1){
                        cookie_value = unescape(a_temp_cookie[1].replace(/^\s+|\s+$/g,''));
                    }
                    return cookie_value;
                    break;
                }
                a_temp_cookie = null;
                cookie_name = '';
            }
            if (!b_cookie_found){
                return null;
            }
        }

        function set_cookie(name, value){
            var today = new Date();
            var expires = 365 * 1000 * 60 * 60 * 24;
            today.setTime( today.getTime() );
            var expires_date = new Date( today.getTime() + (expires) );
            document.cookie = name + "=" + escape( value ) +
                ";expires=" + expires_date.toGMTString() ;
        }


        var whitespace = " \t\n\r";
        
        function isEmpty(s)
        {   return ((s == null) || (s.length == 0))
        }
        
        function isWhitespace (s)
        {   var i;
            if (isEmpty(s)) return true;
            for (i = 0; i < s.length; i++)
            {   
                var c = s.charAt(i);
                if (whitespace.indexOf(c) == -1) return false;
            }
            return true;
        }   
        
    </script>

    <!-- social icons scripts -->
    <div id="fb-root"></div>
    <script type="text/javascript">(function(d, s, id) {
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) {return;}
      js = d.createElement(s); js.id = id;
      js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=243911108982003";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));</script>      
    <script type="text/javascript">
      (function() {
        var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
        po.src = '//apis.google.com/js/plusone.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
      })();
    </script>  
    <script type="text/javascript" src="//platform.twitter.com/widgets.js"></script>
    <script src="//platform.linkedin.com/in.js" type="text/javascript"></script>     
    

   <script type="text/javascript">
       // Once the video is ready
       //videojs.plugin('wavesurfer',wavesufer);


       // we need to check and make sure we're on a video page. Grab the player ID, make sure it's a valid element, and only then try working with it. If we're a PDF, there's no video player.
       var playerName = '';       
       if (playerName!='' && document.getElementById(playerName)!=null){
           videojs(playerName).ready(function(){
               var myPlayer = this;    // Store the video object
               var aspectRatio = 9/16; // Make up an aspect ratio

               function resizeVideoJS(){
                   // Get the parent element's actual width
                   var width = document.getElementById('VideoContentViewPanel').offsetWidth;
                   // Set width to fill parent element, Set height
                   myPlayer.width(width).height( width * aspectRatio );
               }

               resizeVideoJS(); // Initialize the function
               window.onresize = resizeVideoJS; // Call the function on resize

               this.on('play', function(){ 
                ga('send', 'event', 'Videos', 'Play', '') });
               this.on('ended', function(){ ga('send', 'event', 'Videos', 'Ended', '') });
               this.on('error', function(){ ga('send', 'event', 'Videos', 'Error', '') });
           });

           $(window).on( "orientationchange", function( event ) {
               resizeVideoJS();
               ImageResize();
           });      
       }
    </script>    

    <!-- FOLLOW BUTTON SCRIPTS -->
    <script src="/inc/js/JDSupraFollowScripts1.js" type="text/javascript"></script>    
    <script type="text/javascript">
        $(document).ready(function(){ 
            //This will force the you are now following message to disappear after 5 seconds - Otherwise it'll do nothing
            $("div[name='MasterAlerter']").delay(14500).fadeOut(500);
            $("div[name='DailyWeeklyAlerter']").delay(14500).fadeOut(500);

            //nulling out all the cookies too!
            document.cookie= "manageyourinterests_postchange=123" +
                //"; path=/follow/manageyourinterests/" +
                "; path=" + window.location.href.toString() +
                "; expires=Thu, 01 Jan 1970 00:00:01 GMT";
            document.cookie= "manageyourinterests_editorial=123" +
                //"; path=/follow/manageyourinterests/" +
                "; path=" + window.location.href.toString() +
                "; expires=Thu, 01 Jan 1970 00:00:01 GMT";            
            document.cookie= "manageyourinterests_search=123" +
                //"; path=/follow/manageyourinterests/" +
                "; path=" + window.location.href.toString() +
                "; expires=Thu, 01 Jan 1970 00:00:01 GMT";
            document.cookie= "manageyourinterests_'caseNameLiteral.Textchedule=123" +
               // "; path=/follow/manageyourinterests/" +
                "; path=" + window.location.href.toString() +
                "; expires=Thu, 01 Jan 1970 00:00:01 GMT";
            //$("#lnk_liforgetfullogin").click(function () {alert("Clicked");});
            $("#btnMoreRecommendations").click(function () { ga('send', 'event', 'follow', 'More button', 'More recommendations please'); });
        });
            
        $(document).ready(function(){             
           
            if (true) {

                LinkedInConfirmed=false;

                if ($(window).width() < 650) {
                    $('#FollowLinkedInSignIn').addClass('small');
                }
                $('.follow-action-lnk').click(function(){
                    $('#FollowLinkedInSignIn').reveal();
                });
                $('input[name=FollowFrequency]').click(function(){
                    $('#FollowLinkedInSignIn').reveal();
                });

                if(false) {
                        $('#FollowLinkedInSignIn').reveal();
                }
                
            } else { LinkedInConfirmed=true;}

            });  


            $( ".following-lnk" ).mouseover(function() {
                $(this).html('-&nbsp;Unfollow'); 
                $(this).addClass('blue');
            });
            $( ".following-lnk" ).mouseout(function() {
                $(this).html('x&nbsp;Following'); 
                $(this).removeClass('blue');
            });

            //Privacy Policy
            $( "#policy-click" ).click(function() {
                  $( "#policy-blk" ).show();
                  $( "#digest-img" ).hide();
            });    
            $( ".close-lnk" ).click(function() {
                  $( "#policy-blk" ).hide();
                  $( "#digest-img" ).show();
            }); 

    </script>
    <!-- END - FOLLOW BUTTON SCRIPTS - END -->

    <!-- GATED DOCUMENTS -->    
    <!--Gated-->
    <script src="/inc/js/jquery.reveal.min.js" type="text/javascript"></script>    
    <script src="/inc/js/DocGate.js" type="text/javascript"></script>   
    <script type="text/javascript">

        // Gated
        var gated = 0 ;

        // Document Attributes
        var gatedDocumentTitle = '' ;
        var gatedDocumentURL = '' ;
        var gatedUniqueFileID = ''  ;
        var gatedFileID = '0' ;

        // Contributor Attributes
        var gatedContributorFirstName = 'Brad' ;
        var gatedContributorLastName = 'Miller' ;
        var gatedContributorEmailAddress = 'miller-mb@blankrome.com' ;


    </script>
                
    <!-- Gated Doc 'Form' -->
    <!-- e.g. http://www.jdsupra.com/legalnews/ethics-compliance-training-2015-58760/ -->
    <div ID="documentGatePanel" class="reveal-modal mw7 center pa4">

        <form id="documentGateForm">
            <a ID="gatedModalClose" class="close-reveal-modal tr db silver" onclick="btnAbandonGate_Click();" href="/profile/Blank_Rome_docs/"><i class="fa fa-times" aria-hidden="true"></i></a>            
            <div ID="documentGateFields" class="lh-copy">
                <!-- dynamically constructed -->
            </div>
            <div ID="verifyStatus" class="red"></div>
            <div class="tc mt2">
                <input type="submit" ID="btnGateOpen" 
                            value="View Document &raquo;"  
                            onclick="btnGateOpen_Click();" 
                            class="ba dib grow mt2 no-underline pv2 ph4 br-pill bg-yellow b--yellow dark-gray fw7 f5" />
            </div> 
        </form>

        <!-- Recaptcha -->
        <script src="/recaptcha/Recaptcha.js" type="text/javascript"></script>   
        <script src="https://www.google.com/recaptcha/api.js?render=explicit" async defer></script>

        <!-- Recaptcha Badge -->
        <div ID="jds-recaptcha" class="g-recaptcha" data-badge="bottomright"></div>
  
    </div>


<script type="text/javascript">
    function sendit() {
    var fromLocation = escape(document.location);
    var fromTitle = escape(document.title);
    var sendWindow;
    sendWindow = window.open ("/inc/sendToColleague.aspx?loc=" + fromLocation + "&title=" + fromTitle,"SendToColleague","toolbar=0,scrollbars=1,location=0,statusbar=0,status=0,menubar=0,resizable=0,width=400,height=900");
    sendWindow.focus ();
    }
    /*truncate authors*/
    if ($('#followPeopleSection').height() > 385) {
        $('#followPeopleSection').addClass('is-more');
    }
    /*truncate subject*/
    if ($('#followTopSubSection').height() > 595) {
        $('#followTopSubSection').addClass('is-more');
    }
    function showMoreTags(e) {
        $(e).removeClass('is-more');
        $(e).addClass('is-less');
    }
    function hideMoreTags(e) {
        $(e).removeClass('is-less');
        $(e).addClass('is-more');
    }
</script>
<script defer src="/theme/plugins/jquery.jcarousel.min.js"></script>

 
<footer class="site-footer f6 tc pv3 white">
    <p class="mb4 f7"><a href="#" onclick="ga('send', 'event', 'footer', 'backtotop-lnk', 'backtotop-lnk');">Back to Top</a></p>

<a href="/" class="dib-ns db pv2 ph2 link" onclick="ga('send', 'event', 'footer', 'home-lnk', 'home-lnk');">Home</a>
<a href="/services/" class="dib-ns db pv2 ph2 link" onclick="ga('send', 'event', 'footer', 'about-lnk', 'about-lnk');">About</a>
<a href="/follow/manageyourinterests/" onclick="ga('send', 'event', 'footer', 'Footer Nav Email Link', 'Custom Email Digests');" class="dib-ns db pv2 ph2 link">Customize</a>
<a href="/services/content-marketing.aspx" class="dib-ns db pv2 ph2 link" onclick="ga('send', 'event', 'footer', 'become-contributor-lnk', 'become-contributor-lnk');">Become a Contributor</a>
<a href="/services/syndicated-content.aspx" class="dib-ns db pv2 ph2 link" onclick="ga('send', 'event', 'footer', 'syndicate-lnk', 'syndicate-lnk');">Syndicate JD Supra Content</a>
<a href="/terms/privacy.aspx" class="dib-ns db pv2 ph2 link" onclick="ga('send', 'event', 'footer', 'privacy-lnk', 'privacy-lnk');">Privacy Policy</a>
<a href="/terms/termsandconditions.aspx" class="dib-ns db pv2 ph2 link" onclick="ga('send', 'event', 'footer', 'terms-lnk', 'terms-lnk');">Terms &amp; Conditions</a>
<a href="/about/contact.aspx" class="dib-ns db pv2 ph2 link" onclick="ga('send', 'event', 'footer', 'contact-lnk', 'contact-lnk');">Contact</a>
<a href="/services/team.aspx" class="dib-ns db pv2 ph2 link" onclick="ga('send', 'event', 'footer', 'team-lnk', 'team-lnk');">Team</a>
<a href="/jobs/index.aspx" class="dib ph2 link" onclick="ga('send', 'event', 'footer', 'jobs-lnk', 'jobs-lnk');">Jobs</a>

<p class="tc mt3"><a href="/readerschoice/2017/" onclick="ga('send', 'event', 'readerschoice-2017', 'footer link click', 'footer link click');">Explore 2017 Readers' Choice Awards</a></p>

   <p class="mt4 f7">Copyright &copy; <script>var today = new Date(); var yyyy = today.getFullYear();document.write(yyyy + " ");</script> JD Supra, LLC</p>
</footer>    



</body>
</html>