<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>136076</bug_id>
          
          <creation_ts>2014-08-19 10:42:55 -0700</creation_ts>
          <short_desc>Expose injected bundle SPI to get a node&apos;s URL element, get the visible selection range of that element, and snapshot that range</short_desc>
          <delta_ts>2014-08-19 16:33:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>136061</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peyton Randolph">prandolph</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1030059</commentid>
    <comment_count>0</comment_count>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-19 10:42:55 -0700</bug_when>
    <thetext>Expose injected bundle SPI to get a node&apos;s URL element, get the visible selection range of that element, and snapshot that range</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030061</commentid>
    <comment_count>1</comment_count>
      <attachid>236814</attachid>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-19 10:48:01 -0700</bug_when>
    <thetext>Created attachment 236814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030065</commentid>
    <comment_count>2</comment_count>
      <attachid>236814</attachid>
    <who name="">mitz</who>
    <bug_when>2014-08-19 11:08:38 -0700</bug_when>
    <thetext>Comment on attachment 236814
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=236814&amp;action=review

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:79
&gt; +WKBundleNodeHandleRef WKBundleNodeHandleGetURLElementHandle(WKBundleNodeHandleRef elementHandle);
&gt; +

What’s this? I think you left it in here by mistake.

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleRangeHandle.cpp:36
&gt; +using namespace WebCore;

We’ve moved away from using namespace WebCore in WebKit2. Just namespace-qualify what you use below.

&gt; Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:136
&gt; +    PaintBehavior cachedPaintBehavior = frameView-&gt;paintBehavior();

We normally call something like this “oldPaintBehavior” or “savedPaintBehavior”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030067</commentid>
    <comment_count>3</comment_count>
      <attachid>236817</attachid>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-19 11:11:50 -0700</bug_when>
    <thetext>Created attachment 236817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030068</commentid>
    <comment_count>4</comment_count>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-19 11:12:13 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 236814 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=236814&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:79
&gt; &gt; +WKBundleNodeHandleRef WKBundleNodeHandleGetURLElementHandle(WKBundleNodeHandleRef elementHandle);
&gt; &gt; +
&gt; 
&gt; What’s this? I think you left it in here by mistake.

You&apos;re right. Removed.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleRangeHandle.cpp:36
&gt; &gt; +using namespace WebCore;
&gt; 
&gt; We’ve moved away from using namespace WebCore in WebKit2. Just namespace-qualify what you use below.

Removed.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:136
&gt; &gt; +    PaintBehavior cachedPaintBehavior = frameView-&gt;paintBehavior();
&gt; 
&gt; We normally call something like this “oldPaintBehavior” or “savedPaintBehavior”.

Changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030080</commentid>
    <comment_count>5</comment_count>
      <attachid>236817</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-08-19 11:54:13 -0700</bug_when>
    <thetext>Comment on attachment 236817
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=236817&amp;action=review

&gt; Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.h:48
&gt; +    PassRefPtr&lt;InjectedBundleNodeHandle&gt; URLElementHandle() const;

https://www.webkit.org/coding/coding-style.html#names-basic says that URL should be lowercase in all of these instances.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030105</commentid>
    <comment_count>6</comment_count>
      <attachid>236824</attachid>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-19 14:06:29 -0700</bug_when>
    <thetext>Created attachment 236824
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030106</commentid>
    <comment_count>7</comment_count>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-19 14:06:50 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 236817 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=236817&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleHitTestResult.h:48
&gt; &gt; +    PassRefPtr&lt;InjectedBundleNodeHandle&gt; URLElementHandle() const;
&gt; 
&gt; https://www.webkit.org/coding/coding-style.html#names-basic says that URL should be lowercase in all of these instances.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030112</commentid>
    <comment_count>8</comment_count>
      <attachid>236824</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-08-19 14:17:31 -0700</bug_when>
    <thetext>Comment on attachment 236824
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=236824&amp;action=review

&gt; Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:119
&gt; +    float scaleFactor = (options &amp; SnapshotOptionsExcludeDeviceScaleFactor) ? 1 : frame-&gt;page()-&gt;deviceScaleFactor();

It would be nice if we could share this middle block of code with InjectedBundleNodeHandle (and WebPage, etc.), but I&apos;m not sure where to put it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030117</commentid>
    <comment_count>9</comment_count>
      <attachid>236824</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-19 14:52:32 -0700</bug_when>
    <thetext>Comment on attachment 236824
Patch

Rejecting attachment 236824 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=release&apos;, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
0AnchorTypeE&quot;, referenced from:
      __ZNK6WebKit24InjectedBundleNodeHandle12visibleRangeEv in InjectedBundleNodeHandle.o
      __ZN7WebCore18lastPositionInNodeEPNS_4NodeE in InjectedBundleNodeHandle.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

** BUILD FAILED **


The following build commands failed:
	Ld /Volumes/Data/EWS/WebKit/WebKitBuild/Release/WebKit.framework/Versions/A/WebKit normal x86_64
(1 failure)

Full output: http://webkit-queues.appspot.com/results/4618171210268672</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030133</commentid>
    <comment_count>10</comment_count>
      <attachid>236829</attachid>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-19 15:53:25 -0700</bug_when>
    <thetext>Created attachment 236829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030148</commentid>
    <comment_count>11</comment_count>
      <attachid>236829</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-19 16:33:46 -0700</bug_when>
    <thetext>Comment on attachment 236829
Patch

Clearing flags on attachment: 236829

Committed r172780: &lt;http://trac.webkit.org/changeset/172780&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030149</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-19 16:33:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236814</attachid>
            <date>2014-08-19 10:48:01 -0700</date>
            <delta_ts>2014-08-19 11:11:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136076-20140819104752.patch</filename>
            <type>text/plain</type>
            <size>17792</size>
            <attacher name="Peyton Randolph">prandolph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTJkNzVjNGI2ZWRlMGE3
MDkwZjFhOWYyMDg3MjA4ZTk4NDA2ZGVlNC4uMWQzMGExNDhiNDUxYjUzMWEwMGIzMGI4ZDcxMmFl
MzQ2ZjRlNzdmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE0LTA4LTE5ICBQZXl0
b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSBpbmpl
Y3RlZCBidW5kbGUgU1BJIHRvIGdldCBhIG5vZGUncyBVUkwgZWxlbWVudCwgZ2V0IHRoZSB2aXNp
YmxlIHNlbGVjdGlvbiByYW5nZSBvZiB0aGF0CisgICAgICAgIGVsZW1lbnQsIGFuZCBzbmFwc2hv
dCB0aGF0IHJhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzYwNzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVz
dWx0LmNwcDoKKyAgICAgICAgKFdLQnVuZGxlSGl0VGVzdFJlc3VsdENvcHlVUkxFbGVtZW50SGFu
ZGxlKTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZUhpdFRlc3RSZXN1bHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZS5jcHA6CisgICAgICAgIChXS0J1bmRsZU5vZGVI
YW5kbGVDb3B5VmlzaWJsZVJhbmdlKTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vZGVIYW5kbGVQcml2YXRlLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVJhbmdlSGFuZGxlLmNwcDoK
KyAgICAgICAgKFdLQnVuZGxlUmFuZ2VIYW5kbGVHZXRCb3VuZGluZ1JlY3RJbldpbmRvd0Nvb3Jk
aW5hdGVzKTogQWRkZWQuCisgICAgICAgIChXS0J1bmRsZVJhbmdlSGFuZGxlQ29weVNuYXBzaG90
V2l0aE9wdGlvbnMpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUmFuZ2VIYW5kbGVQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjp2aXNpYmxlUmFuZ2UpOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRs
ZU5vZGVIYW5kbGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9J
bmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRC
dW5kbGVSYW5nZUhhbmRsZTo6Ym91bmRpbmdSZWN0SW5XaW5kb3dDb29yZGluYXRlcyk6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpyZW5kZXJlZElt
YWdlKTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5q
ZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
SW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0OjpVUkxFbGVtZW50SGFuZGxlKTogQWRkZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RS
ZXN1bHQuaDoKKwogMjAxNC0wOC0xOCAgUGV5dG9uIFJhbmRvbHBoICA8cHJhbmRvbHBoQGFwcGxl
LmNvbT4KIAogICAgICAgICBFeHRlbmQgaW5qZWN0ZWQgYnVuZGxlIG5vZGUgc25hcHNob3R0aW5n
IHRvIHN1cHBvcnQgZm9yY2VkIHdoaXRlIGFuZCBibGFjayB0ZXh0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0VGVz
dFJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAKaW5kZXggNjBhNGM2OGIwNjVjMTE5ZmZiZTI0
NWYxNmI0ZGNiYjk3ZGZlOGJlMy4uZGI0YmZlZGQ0OTgwZmQ4OWY4ODJlMzFlYWYzZGJjYjdiZDY0
MmQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcApA
QCAtNDQsNiArNDQsMTIgQEAgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIFdLQnVuZGxlSGl0VGVzdFJl
c3VsdENvcHlOb2RlSGFuZGxlKFdLQnVuZGxlSGl0VGVzdFJlc3VsdFIKICAgICByZXR1cm4gdG9B
UEkobm9kZUhhbmRsZS5yZWxlYXNlKCkubGVha1JlZigpKTsKIH0KIAorV0tCdW5kbGVOb2RlSGFu
ZGxlUmVmIFdLQnVuZGxlSGl0VGVzdFJlc3VsdENvcHlVUkxFbGVtZW50SGFuZGxlKFdLQnVuZGxl
SGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0UmVmKQoreworICAgIFJlZlB0cjxJbmplY3Rl
ZEJ1bmRsZU5vZGVIYW5kbGU+IFVSTEVsZW1lbnROb2RlSGFuZGxlID0gdG9JbXBsKGhpdFRlc3RS
ZXN1bHRSZWYpLT5VUkxFbGVtZW50SGFuZGxlKCk7CisgICAgcmV0dXJuIHRvQVBJKFVSTEVsZW1l
bnROb2RlSGFuZGxlLnJlbGVhc2UoKS5sZWFrUmVmKCkpOworfQorCiBXS0J1bmRsZUZyYW1lUmVm
IFdLQnVuZGxlSGl0VGVzdFJlc3VsdEdldEZyYW1lKFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZiBo
aXRUZXN0UmVzdWx0UmVmKQogewogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoaGl0VGVzdFJlc3Vs
dFJlZiktPmZyYW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0
LmgKaW5kZXggMTJlNzJlYzcxYjBmZTBjNjZmYTRjZWMxYmNmYTM2ZjkzN2Q4OTZjMi4uNDBkM2Nj
ZjI4YjE1M2QxOTViNzIxYjExN2E2NTA0ZTI1NmYzZWM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1
bHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5oCkBAIC00Myw2ICs0Myw3IEBAIHR5cGVkZWYgdWludDMy
X3QgV0tCdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBlOwogV0tfRVhQT1JUIFdLVHlwZUlEIFdL
QnVuZGxlSGl0VGVzdFJlc3VsdEdldFR5cGVJRCgpOwogCiBXS19FWFBPUlQgV0tCdW5kbGVOb2Rl
SGFuZGxlUmVmIFdLQnVuZGxlSGl0VGVzdFJlc3VsdENvcHlOb2RlSGFuZGxlKFdLQnVuZGxlSGl0
VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0KTsKK1dLX0VYUE9SVCBXS0J1bmRsZU5vZGVIYW5k
bGVSZWYgV0tCdW5kbGVIaXRUZXN0UmVzdWx0Q29weVVSTEVsZW1lbnRIYW5kbGUoV0tCdW5kbGVI
aXRUZXN0UmVzdWx0UmVmIGhpdFRlc3RSZXN1bHQpOwogCiBXS19FWFBPUlQgV0tCdW5kbGVGcmFt
ZVJlZiBXS0J1bmRsZUhpdFRlc3RSZXN1bHRHZXRGcmFtZShXS0J1bmRsZUhpdFRlc3RSZXN1bHRS
ZWYgaGl0VGVzdFJlc3VsdCk7CiBXS19FWFBPUlQgV0tCdW5kbGVGcmFtZVJlZiBXS0J1bmRsZUhp
dFRlc3RSZXN1bHRHZXRUYXJnZXRGcmFtZShXS0J1bmRsZUhpdFRlc3RSZXN1bHRSZWYgaGl0VGVz
dFJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZS5jcHAKaW5kZXgg
Y2IzZjliNmU2ZWU4MzYxOTY4Njc3YzA1M2RhMDljMjFmMjBhZmRmNC4uZjZiNmMzYWRkYjg2OTEz
MDc3ZGI0YTNkMWVlODdhODA4OGM5YzE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vZGVIYW5kbGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVO
b2RlSGFuZGxlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIldLQnVuZGxlTm9kZUhh
bmRsZVByaXZhdGUuaCIKIAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oIgor
I2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCIKICNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5o
IgpAQCAtNjMsMTEgKzY0LDE5IEBAIFdLSW1hZ2VSZWYgV0tCdW5kbGVOb2RlSGFuZGxlQ29weVNu
YXBzaG90V2l0aE9wdGlvbnMoV0tCdW5kbGVOb2RlSGFuZGxlUmVmIG5vZGVICiAgICAgcmV0dXJu
IHRvQVBJKGltYWdlLnJlbGVhc2UoKS5sZWFrUmVmKCkpOwogfQogCitXS0J1bmRsZVJhbmdlSGFu
ZGxlUmVmIFdLQnVuZGxlTm9kZUhhbmRsZUNvcHlWaXNpYmxlUmFuZ2UoV0tCdW5kbGVOb2RlSGFu
ZGxlUmVmIG5vZGVIYW5kbGVSZWYpCit7CisgICAgUmVmUHRyPEluamVjdGVkQnVuZGxlUmFuZ2VI
YW5kbGU+IHJhbmdlSGFuZGxlID0gdG9JbXBsKG5vZGVIYW5kbGVSZWYpLT52aXNpYmxlUmFuZ2Uo
KTsKKyAgICByZXR1cm4gdG9BUEkocmFuZ2VIYW5kbGUucmVsZWFzZSgpLmxlYWtSZWYoKSk7Cit9
CisKIFdLUmVjdCBXS0J1bmRsZU5vZGVIYW5kbGVHZXRFbGVtZW50Qm91bmRzKFdLQnVuZGxlTm9k
ZUhhbmRsZVJlZiBlbGVtZW50SGFuZGxlUmVmKQogewogICAgIHJldHVybiB0b0FQSSh0b0ltcGwo
ZWxlbWVudEhhbmRsZVJlZiktPmVsZW1lbnRCb3VuZHMoKSk7CiB9CiAKK1dLQnVuZGxlTm9kZUhh
bmRsZVJlZiBXS0J1bmRsZU5vZGVIYW5kbGVHZXRVUkxFbGVtZW50SGFuZGxlKFdLQnVuZGxlTm9k
ZUhhbmRsZVJlZiBlbGVtZW50SGFuZGxlKTsKKwogdm9pZCBXS0J1bmRsZU5vZGVIYW5kbGVTZXRI
VE1MSW5wdXRFbGVtZW50VmFsdWVGb3JVc2VyKFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBodG1sSW5w
dXRFbGVtZW50SGFuZGxlUmVmLCBXS1N0cmluZ1JlZiB2YWx1ZVJlZikKIHsKICAgICB0b0ltcGwo
aHRtbElucHV0RWxlbWVudEhhbmRsZVJlZiktPnNldEhUTUxJbnB1dEVsZW1lbnRWYWx1ZUZvclVz
ZXIodG9XVEZTdHJpbmcodmFsdWVSZWYpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb2RlSGFuZGxlUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZU5vZGVIYW5kbGVQcml2YXRlLmgKaW5kZXggYzgzYmMzMTNiYzhhYzljM2UyM2M2MTRkZGM1YTUz
ZGJlMjZhZDhiMS4uMDJlY2ExMDFjN2Y0Y2QyYWM3Nzk4NGJjNjQ0NDM2ZTE5ODliMjEyZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZU5vZGVIYW5kbGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vZGVIYW5kbGVQcml2YXRlLmgKQEAgLTQ1
LDYgKzQ1LDcgQEAgV0tfRVhQT1JUIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBXS0J1bmRsZU5vZGVI
YW5kbGVDb3B5RG9jdW1lbnQoV0tCdW5kbGVOb2RlSGFuZGwKIAogV0tfRVhQT1JUIFdLUmVjdCBX
S0J1bmRsZU5vZGVIYW5kbGVHZXRSZW5kZXJSZWN0KFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBub2Rl
SGFuZGxlLCBib29sKiBpc1JlcGxhY2VkKTsKIFdLX0VYUE9SVCBXS0ltYWdlUmVmIFdLQnVuZGxl
Tm9kZUhhbmRsZUNvcHlTbmFwc2hvdFdpdGhPcHRpb25zKFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBu
b2RlSGFuZGxlLCBXS1NuYXBzaG90T3B0aW9ucyBvcHRpb25zKTsKK1dLX0VYUE9SVCBXS0J1bmRs
ZVJhbmdlSGFuZGxlUmVmIFdLQnVuZGxlTm9kZUhhbmRsZUNvcHlWaXNpYmxlUmFuZ2UoV0tCdW5k
bGVOb2RlSGFuZGxlUmVmIG5vZGVIYW5kbGUpOwogCiAvKiBFbGVtZW50IFNwZWNpZmljIE9wZXJh
dGlvbnMgKi8KIFdLX0VYUE9SVCBXS1JlY3QgV0tCdW5kbGVOb2RlSGFuZGxlR2V0RWxlbWVudEJv
dW5kcyhXS0J1bmRsZU5vZGVIYW5kbGVSZWYgZWxlbWVudEhhbmRsZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUmFu
Z2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVJhbmdlSGFuZGxlLmNwcAppbmRleCBmYjJmN2QwNWYwYTA5ZjRlNTBjNDll
MzczNWJkMTFlN2I0ZmQ1N2I0Li4xMGZmMzcwYTMzODMwZjA3YTI0ZTdjOTQyOWQ0ZjcwOGI3MmZj
NjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUmFuZ2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVSYW5nZUhhbmRsZS5jcHAKQEAgLTMw
LDcgKzMwLDEwIEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oIgogI2lu
Y2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldLQnVuZGxlQVBJQ2FzdC5oIgorI2luY2x1
ZGUgIldlYkltYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogV0tUeXBlSUQgV0tC
dW5kbGVSYW5nZUhhbmRsZUdldFR5cGVJRCgpCkBAIC00MywzICs0NiwxNSBAQCBXS0J1bmRsZVJh
bmdlSGFuZGxlUmVmIFdLQnVuZGxlUmFuZ2VIYW5kbGVDcmVhdGUoSlNDb250ZXh0UmVmIGNvbnRl
eHRSZWYsIEpTT2JqZQogICAgIFJlZlB0cjxJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlPiByYW5n
ZUhhbmRsZSA9IEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU6OmdldE9yQ3JlYXRlKGNvbnRleHRS
ZWYsIG9iamVjdFJlZik7CiAgICAgcmV0dXJuIHRvQVBJKHJhbmdlSGFuZGxlLnJlbGVhc2UoKS5s
ZWFrUmVmKCkpOwogfQorCitXS1JlY3QgV0tCdW5kbGVSYW5nZUhhbmRsZUdldEJvdW5kaW5nUmVj
dEluV2luZG93Q29vcmRpbmF0ZXMoV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiByYW5nZUhhbmRsZVJl
ZikKK3sKKyAgICBJbnRSZWN0IGJvdW5kaW5nUmVjdCA9IHRvSW1wbChyYW5nZUhhbmRsZVJlZikt
PmJvdW5kaW5nUmVjdEluV2luZG93Q29vcmRpbmF0ZXMoKTsKKyAgICByZXR1cm4gV0tSZWN0TWFr
ZShib3VuZGluZ1JlY3QueCgpLCBib3VuZGluZ1JlY3QueSgpLCBib3VuZGluZ1JlY3Qud2lkdGgo
KSwgYm91bmRpbmdSZWN0LmhlaWdodCgpKTsKK30KKworV0tJbWFnZVJlZiBXS0J1bmRsZVJhbmdl
SGFuZGxlQ29weVNuYXBzaG90V2l0aE9wdGlvbnMoV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiByYW5n
ZUhhbmRsZVJlZiwgV0tTbmFwc2hvdE9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBSZWZQdHI8V2Vi
SW1hZ2U+IGltYWdlID0gdG9JbXBsKHJhbmdlSGFuZGxlUmVmKS0+cmVuZGVyZWRJbWFnZSh0b1Nu
YXBzaG90T3B0aW9ucyhvcHRpb25zKSk7CisgICAgcmV0dXJuIHRvQVBJKGltYWdlLnJlbGVhc2Uo
KS5sZWFrUmVmKCkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVJhbmdlSGFuZGxlUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVJhbmdlSGFu
ZGxlUHJpdmF0ZS5oCmluZGV4IDc3MzM1YmIyYzI1ODFlNDE3YmUzMTgxYWI2NTA3ZTM0ZGQ0MzBl
NDcuLmM2YWI1YmZmMjM5MDNhZjJjNWM4NTVmMjA2NzZlYzRjNGExOWRjMjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVS
YW5nZUhhbmRsZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUmFuZ2VIYW5kbGVQcml2YXRlLmgKQEAgLTI4LDYgKzI4
LDggQEAKIAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHQuaD4KICNpbmNsdWRl
IDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLR2VvbWV0cnkuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tJbWFnZS5oPgogCiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVybiAiQyIg
ewpAQCAtMzUsNiArMzcsOSBAQCBleHRlcm4gIkMiIHsKIAogV0tfRVhQT1JUIFdLQnVuZGxlUmFu
Z2VIYW5kbGVSZWYgV0tCdW5kbGVSYW5nZUhhbmRsZUNyZWF0ZShKU0NvbnRleHRSZWYgY29udGV4
dCwgSlNPYmplY3RSZWYgb2JqZWN0KTsKIAorV0tfRVhQT1JUIFdLUmVjdCBXS0J1bmRsZVJhbmdl
SGFuZGxlR2V0Qm91bmRpbmdSZWN0SW5XaW5kb3dDb29yZGluYXRlcyhXS0J1bmRsZVJhbmdlSGFu
ZGxlUmVmIHJhbmdlSGFuZGxlKTsKK1dLX0VYUE9SVCBXS0ltYWdlUmVmIFdLQnVuZGxlUmFuZ2VI
YW5kbGVDb3B5U25hcHNob3RXaXRoT3B0aW9ucyhXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHJhbmdl
SGFuZGxlLCBXS1NuYXBzaG90T3B0aW9ucyBvcHRpb25zKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVz
CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUu
Y3BwCmluZGV4IGE5OGM5MjNjNmZlYWQzMmU0YzVhOGEyMTdmNzdkYjQxN2I2MWI1NjEuLjRjOWYy
NTI0YTk0Y2I1OTAwYTM3YzgwOThjMzgwOTdiNjA1YjUwNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhh
bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9E
T00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oIgogCisj
aW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oIgogI2luY2x1ZGUgIlNoYXJlYWJs
ZUJpdG1hcC5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaCIKQEAgLTQ2LDcgKzQ3LDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9KU05vZGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL05vZGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1Bvc2l0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SYW5nZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyT2JqZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9W
aXNpYmxlUG9zaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAt
MTg0LDYgKzE4OCwxNSBAQCBQYXNzUmVmUHRyPFdlYkltYWdlPiBJbmplY3RlZEJ1bmRsZU5vZGVI
YW5kbGU6OnJlbmRlcmVkSW1hZ2UoU25hcHNob3RPcHRpb25zIG9wdAogICAgIHJldHVybiBpbWFn
ZS5yZWxlYXNlKCk7CiB9CiAKK1Bhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZT4g
SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjp2aXNpYmxlUmFuZ2UoKSBjb25zdAoreworICAgIFZp
c2libGVQb3NpdGlvbiBzdGFydCA9IGZpcnN0UG9zaXRpb25Jbk5vZGUobV9ub2RlLmdldCgpKTsK
KyAgICBWaXNpYmxlUG9zaXRpb24gZW5kID0gbGFzdFBvc2l0aW9uSW5Ob2RlKG1fbm9kZS5nZXQo
KSk7CisKKyAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gbWFrZVJhbmdlKHN0YXJ0LCBlbmQpOwor
ICAgIHJldHVybiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpnZXRPckNyZWF0ZShyYW5nZS5n
ZXQoKSk7Cit9CisKIHZvaWQgSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjpzZXRIVE1MSW5wdXRF
bGVtZW50VmFsdWVGb3JVc2VyKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgaWYgKCFpc0hU
TUxJbnB1dEVsZW1lbnQobV9ub2RlLmdldCgpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRC
dW5kbGVOb2RlSGFuZGxlLmgKaW5kZXggOGRkMTI1ZThkYzg0NTczZDQwOTMxOTc2MGQ5NTFkOTli
MDE1YmIxMy4uNDliZmYwYzE1YjYzOGY5YjI0ZWQxMTdjNjA5MzVmNDU4YzZmYTgyOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0
ZWRCdW5kbGVOb2RlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgKQEAgLTQwLDYgKzQwLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgSW5q
ZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZTsKIGNsYXNzIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ7
CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYkltYWdlOwpAQCAtNjEsNiArNjIsNyBAQCBwdWJs
aWM6CiAgICAgV2ViQ29yZTo6SW50UmVjdCBlbGVtZW50Qm91bmRzKCkgY29uc3Q7CiAgICAgV2Vi
Q29yZTo6SW50UmVjdCByZW5kZXJSZWN0KGJvb2wqKSBjb25zdDsKICAgICBQYXNzUmVmUHRyPFdl
YkltYWdlPiByZW5kZXJlZEltYWdlKFNuYXBzaG90T3B0aW9ucyk7CisgICAgUGFzc1JlZlB0cjxJ
bmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlPiB2aXNpYmxlUmFuZ2UoKSBjb25zdDsKICAgICB2b2lk
IHNldEhUTUxJbnB1dEVsZW1lbnRWYWx1ZUZvclVzZXIoY29uc3QgU3RyaW5nJik7CiAgICAgYm9v
bCBpc0hUTUxJbnB1dEVsZW1lbnRBdXRvZmlsbGVkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRIVE1M
SW5wdXRFbGVtZW50QXV0b2ZpbGxlZChib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0
ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAKaW5kZXggOWI5NDdkMTAzZmEzOGRkMGVhMjc3NTRiZTcz
M2ExNDFkZjU4ZWIxNy4uNjNkYWNjMDFlMDUyYjVhNjQ5NTA4MjUxZmVmNDVmNzMwYzdjZTQ1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00v
SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAKQEAg
LTI2LDkgKzI2LDIwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRC
dW5kbGVSYW5nZUhhbmRsZS5oIgogCisjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCisjaW5j
bHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVT
ZWxlY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lVmlldy5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9KU1JhbmdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SYW5nZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlzaWJsZVNlbGVj
dGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CiAKQEAgLTg0LDQgKzk1LDYwIEBAIFJhbmdlKiBJbmplY3RlZEJ1bmRsZVJhbmdl
SGFuZGxlOjpjb3JlUmFuZ2UoKSBjb25zdAogICAgIHJldHVybiBtX3JhbmdlLmdldCgpOwogfQog
CitXZWJDb3JlOjpJbnRSZWN0IEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU6OmJvdW5kaW5nUmVj
dEluV2luZG93Q29vcmRpbmF0ZXMoKSBjb25zdAoreworICAgIEZsb2F0UmVjdCBib3VuZGluZ1Jl
Y3QgPSBtX3JhbmdlLT5ib3VuZGluZ1JlY3QoKTsKKyAgICBGcmFtZSogZnJhbWUgPSBtX3Jhbmdl
LT5vd25lckRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICByZXR1cm4gZnJhbWUtPnZpZXcoKS0+Y29u
dGVudHNUb1dpbmRvdyhlbmNsb3NpbmdJbnRSZWN0KGJvdW5kaW5nUmVjdCkpOworfQorCitQYXNz
UmVmUHRyPFdlYkltYWdlPiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpyZW5kZXJlZEltYWdl
KFNuYXBzaG90T3B0aW9ucyBvcHRpb25zKQoreworICAgIERvY3VtZW50JiBvd25lckRvY3VtZW50
ID0gbV9yYW5nZS0+b3duZXJEb2N1bWVudCgpOworICAgIEZyYW1lKiBmcmFtZSA9IG93bmVyRG9j
dW1lbnQuZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gZnJhbWUtPnZpZXcoKTsKKyAgICBpZiAoIWZy
YW1lVmlldykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBWaXNpYmxlU2VsZWN0aW9u
IG9sZFNlbGVjdGlvbiA9IGZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKKyAgICBmcmFt
ZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24obV9yYW5nZS5nZXQo
KSkpOworCisgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSAob3B0aW9ucyAmIFNuYXBzaG90T3B0aW9u
c0V4Y2x1ZGVEZXZpY2VTY2FsZUZhY3RvcikgPyAxIDogZnJhbWUtPnBhZ2UoKS0+ZGV2aWNlU2Nh
bGVGYWN0b3IoKTsKKyAgICBJbnRSZWN0IHBhaW50UmVjdCA9IGVuY2xvc2luZ0ludFJlY3QobV9y
YW5nZS0+Ym91bmRpbmdSZWN0KCkpOworICAgIEludFNpemUgYmFja2luZ1N0b3JlU2l6ZSA9IHBh
aW50UmVjdC5zaXplKCk7CisgICAgYmFja2luZ1N0b3JlU2l6ZS5zY2FsZShzY2FsZUZhY3Rvcik7
CisKKyAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiYWNraW5nU3RvcmUgPSBTaGFyZWFibGVC
aXRtYXA6OmNyZWF0ZVNoYXJlYWJsZShiYWNraW5nU3RvcmVTaXplLCBTaGFyZWFibGVCaXRtYXA6
OlN1cHBvcnRzQWxwaGEpOworICAgIGlmICghYmFja2luZ1N0b3JlKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGF1dG8gZ3JhcGhpY3NDb250ZXh0ID0gYmFja2luZ1N0b3JlLT5jcmVh
dGVHcmFwaGljc0NvbnRleHQoKTsKKyAgICBncmFwaGljc0NvbnRleHQtPnNjYWxlKEZsb2F0U2l6
ZShzY2FsZUZhY3Rvciwgc2NhbGVGYWN0b3IpKTsKKworICAgIHBhaW50UmVjdC5tb3ZlKGZyYW1l
Vmlldy0+ZnJhbWVSZWN0KCkueCgpLCBmcmFtZVZpZXctPmZyYW1lUmVjdCgpLnkoKSk7CisgICAg
cGFpbnRSZWN0Lm1vdmUoLWZyYW1lVmlldy0+c2Nyb2xsT2Zmc2V0KCkpOworCisgICAgZ3JhcGhp
Y3NDb250ZXh0LT50cmFuc2xhdGUoLXBhaW50UmVjdC54KCksIC1wYWludFJlY3QueSgpKTsKKwor
ICAgIFBhaW50QmVoYXZpb3IgY2FjaGVkUGFpbnRCZWhhdmlvciA9IGZyYW1lVmlldy0+cGFpbnRC
ZWhhdmlvcigpOworICAgIFBhaW50QmVoYXZpb3IgcGFpbnRCZWhhdmlvciA9IGNhY2hlZFBhaW50
QmVoYXZpb3IgfCBQYWludEJlaGF2aW9yU2VsZWN0aW9uT25seSB8IFBhaW50QmVoYXZpb3JGbGF0
dGVuQ29tcG9zaXRpbmdMYXllcnM7CisgICAgaWYgKG9wdGlvbnMgJiBTbmFwc2hvdE9wdGlvbnNG
b3JjZUJsYWNrVGV4dCkKKyAgICAgICAgcGFpbnRCZWhhdmlvciB8PSBQYWludEJlaGF2aW9yRm9y
Y2VCbGFja1RleHQ7CisgICAgaWYgKG9wdGlvbnMgJiBTbmFwc2hvdE9wdGlvbnNGb3JjZVdoaXRl
VGV4dCkKKyAgICAgICAgcGFpbnRCZWhhdmlvciB8PSBQYWludEJlaGF2aW9yRm9yY2VXaGl0ZVRl
eHQ7CisKKyAgICBmcmFtZVZpZXctPnNldFBhaW50QmVoYXZpb3IocGFpbnRCZWhhdmlvcik7Cisg
ICAgb3duZXJEb2N1bWVudC51cGRhdGVMYXlvdXQoKTsKKworICAgIGZyYW1lVmlldy0+cGFpbnQo
Z3JhcGhpY3NDb250ZXh0LmdldCgpLCBwYWludFJlY3QpOworICAgIGZyYW1lVmlldy0+c2V0UGFp
bnRCZWhhdmlvcihjYWNoZWRQYWludEJlaGF2aW9yKTsKKworICAgIGZyYW1lLT5zZWxlY3Rpb24o
KS5zZXRTZWxlY3Rpb24ob2xkU2VsZWN0aW9uKTsKKworICAgIHJldHVybiBXZWJJbWFnZTo6Y3Jl
YXRlKGJhY2tpbmdTdG9yZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRC
dW5kbGVSYW5nZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oCmluZGV4IDc2OTViNDM2NjdjYzNm
NzdjNWM3NjgzODJmODM1MjhhNDcxYWU3YWUuLjE3ZGViMjk5OGNjNmIwNWE4ZmE5ZGE3ZTk0M2M0
Mzc0ZmZhZTFiNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFu
ZGxlLmgKQEAgLTI3LDE3ICsyNywyMCBAQAogI2RlZmluZSBJbmplY3RlZEJ1bmRsZVJhbmdlSGFu
ZGxlX2gKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIkltYWdlT3B0aW9ucy5o
IgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
Ci0gICAgY2xhc3MgUmFuZ2U7CitjbGFzcyBJbnRSZWN0OworY2xhc3MgUmFuZ2U7CiB9CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkOworY2xh
c3MgV2ViSW1hZ2U7CiAKIGNsYXNzIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUgOiBwdWJsaWMg
QVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpCdW5kbGVSYW5nZUhhbmRsZT4gewog
cHVibGljOgpAQCAtNDYsNiArNDksOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5JbmplY3Rl
ZEJ1bmRsZVJhbmdlSGFuZGxlKCk7CiAKKyAgICBXZWJDb3JlOjpJbnRSZWN0IGJvdW5kaW5nUmVj
dEluV2luZG93Q29vcmRpbmF0ZXMoKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPFdlYkltYWdlPiBy
ZW5kZXJlZEltYWdlKFNuYXBzaG90T3B0aW9ucyk7CisKICAgICBXZWJDb3JlOjpSYW5nZSogY29y
ZVJhbmdlKCkgY29uc3Q7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
SGl0VGVzdFJlc3VsdC5jcHAKaW5kZXggOGQxMzJkZjgwNjJhMzRmOWEzMjBhYTA0ZjM0MGY0M2Iw
NGU2ZjI2ZC4uMTNjNTQ2ZTc5MDRjY2M0YWZhMDY4OTcxODkwMGQ5ZDdmOTIzYmYxOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZUhpdFRlc3RSZXN1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcApAQCAtNTEsNiArNTEs
MTEgQEAgUGFzc1JlZlB0cjxJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU+IEluamVjdGVkQnVuZGxl
SGl0VGVzdFJlc3VsdDo6bm9kZUhhbmRsZSgpIGMKICAgICByZXR1cm4gSW5qZWN0ZWRCdW5kbGVO
b2RlSGFuZGxlOjpnZXRPckNyZWF0ZShtX2hpdFRlc3RSZXN1bHQuaW5uZXJOb25TaGFyZWROb2Rl
KCkpOwogfQogCitQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZT4gSW5qZWN0ZWRC
dW5kbGVIaXRUZXN0UmVzdWx0OjpVUkxFbGVtZW50SGFuZGxlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjpnZXRPckNyZWF0ZShtX2hpdFRlc3RSZXN1bHQu
VVJMRWxlbWVudCgpKTsKK30KKwogV2ViRnJhbWUqIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3Vs
dDo6ZnJhbWUoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUgPSBtX2hpdFRlc3RSZXN1bHQuaW5u
ZXJOb25TaGFyZWROb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1
bHQuaAppbmRleCBhMjNkMDA5MDhlNjJhMmY0Y2M3ZTdlZjM3ZmY3NzYwZGRiMDIzYjUwLi42Yjk2
YzVkZTdkNWM4YzdhYmFiNWY0MDdmMzI2NWZiYTI4NWJmM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJl
c3VsdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmgKQEAgLTQ0LDcgKzQ0LDggQEAgcHVibGljOgogCiAg
ICAgY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYgY29yZUhpdFRlc3RSZXN1bHQoKSBjb25z
dCB7IHJldHVybiBtX2hpdFRlc3RSZXN1bHQ7IH0KIAotICAgIFBhc3NSZWZQdHI8SW5qZWN0ZWRC
dW5kbGVOb2RlSGFuZGxlPiBub2RlSGFuZGxlKCkgY29uc3Q7IAorICAgIFBhc3NSZWZQdHI8SW5q
ZWN0ZWRCdW5kbGVOb2RlSGFuZGxlPiBub2RlSGFuZGxlKCkgY29uc3Q7CisgICAgUGFzc1JlZlB0
cjxJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU+IFVSTEVsZW1lbnRIYW5kbGUoKSBjb25zdDsKICAg
ICBXZWJGcmFtZSogZnJhbWUoKSBjb25zdDsKICAgICBXZWJGcmFtZSogdGFyZ2V0RnJhbWUoKSBj
b25zdDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236817</attachid>
            <date>2014-08-19 11:11:50 -0700</date>
            <delta_ts>2014-08-19 14:06:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136076-20140819111141.patch</filename>
            <type>text/plain</type>
            <size>17391</size>
            <attacher name="Peyton Randolph">prandolph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTJkNzVjNGI2ZWRlMGE3
MDkwZjFhOWYyMDg3MjA4ZTk4NDA2ZGVlNC4uMWQzMGExNDhiNDUxYjUzMWEwMGIzMGI4ZDcxMmFl
MzQ2ZjRlNzdmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE0LTA4LTE5ICBQZXl0
b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSBpbmpl
Y3RlZCBidW5kbGUgU1BJIHRvIGdldCBhIG5vZGUncyBVUkwgZWxlbWVudCwgZ2V0IHRoZSB2aXNp
YmxlIHNlbGVjdGlvbiByYW5nZSBvZiB0aGF0CisgICAgICAgIGVsZW1lbnQsIGFuZCBzbmFwc2hv
dCB0aGF0IHJhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzYwNzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVz
dWx0LmNwcDoKKyAgICAgICAgKFdLQnVuZGxlSGl0VGVzdFJlc3VsdENvcHlVUkxFbGVtZW50SGFu
ZGxlKTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZUhpdFRlc3RSZXN1bHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZS5jcHA6CisgICAgICAgIChXS0J1bmRsZU5vZGVI
YW5kbGVDb3B5VmlzaWJsZVJhbmdlKTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vZGVIYW5kbGVQcml2YXRlLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVJhbmdlSGFuZGxlLmNwcDoK
KyAgICAgICAgKFdLQnVuZGxlUmFuZ2VIYW5kbGVHZXRCb3VuZGluZ1JlY3RJbldpbmRvd0Nvb3Jk
aW5hdGVzKTogQWRkZWQuCisgICAgICAgIChXS0J1bmRsZVJhbmdlSGFuZGxlQ29weVNuYXBzaG90
V2l0aE9wdGlvbnMpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUmFuZ2VIYW5kbGVQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjp2aXNpYmxlUmFuZ2UpOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRs
ZU5vZGVIYW5kbGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9J
bmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRC
dW5kbGVSYW5nZUhhbmRsZTo6Ym91bmRpbmdSZWN0SW5XaW5kb3dDb29yZGluYXRlcyk6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpyZW5kZXJlZElt
YWdlKTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5q
ZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
SW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0OjpVUkxFbGVtZW50SGFuZGxlKTogQWRkZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RS
ZXN1bHQuaDoKKwogMjAxNC0wOC0xOCAgUGV5dG9uIFJhbmRvbHBoICA8cHJhbmRvbHBoQGFwcGxl
LmNvbT4KIAogICAgICAgICBFeHRlbmQgaW5qZWN0ZWQgYnVuZGxlIG5vZGUgc25hcHNob3R0aW5n
IHRvIHN1cHBvcnQgZm9yY2VkIHdoaXRlIGFuZCBibGFjayB0ZXh0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0VGVz
dFJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAKaW5kZXggNjBhNGM2OGIwNjVjMTE5ZmZiZTI0
NWYxNmI0ZGNiYjk3ZGZlOGJlMy4uZGI0YmZlZGQ0OTgwZmQ4OWY4ODJlMzFlYWYzZGJjYjdiZDY0
MmQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcApA
QCAtNDQsNiArNDQsMTIgQEAgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIFdLQnVuZGxlSGl0VGVzdFJl
c3VsdENvcHlOb2RlSGFuZGxlKFdLQnVuZGxlSGl0VGVzdFJlc3VsdFIKICAgICByZXR1cm4gdG9B
UEkobm9kZUhhbmRsZS5yZWxlYXNlKCkubGVha1JlZigpKTsKIH0KIAorV0tCdW5kbGVOb2RlSGFu
ZGxlUmVmIFdLQnVuZGxlSGl0VGVzdFJlc3VsdENvcHlVUkxFbGVtZW50SGFuZGxlKFdLQnVuZGxl
SGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0UmVmKQoreworICAgIFJlZlB0cjxJbmplY3Rl
ZEJ1bmRsZU5vZGVIYW5kbGU+IFVSTEVsZW1lbnROb2RlSGFuZGxlID0gdG9JbXBsKGhpdFRlc3RS
ZXN1bHRSZWYpLT5VUkxFbGVtZW50SGFuZGxlKCk7CisgICAgcmV0dXJuIHRvQVBJKFVSTEVsZW1l
bnROb2RlSGFuZGxlLnJlbGVhc2UoKS5sZWFrUmVmKCkpOworfQorCiBXS0J1bmRsZUZyYW1lUmVm
IFdLQnVuZGxlSGl0VGVzdFJlc3VsdEdldEZyYW1lKFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZiBo
aXRUZXN0UmVzdWx0UmVmKQogewogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoaGl0VGVzdFJlc3Vs
dFJlZiktPmZyYW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0
LmgKaW5kZXggMTJlNzJlYzcxYjBmZTBjNjZmYTRjZWMxYmNmYTM2ZjkzN2Q4OTZjMi4uNDBkM2Nj
ZjI4YjE1M2QxOTViNzIxYjExN2E2NTA0ZTI1NmYzZWM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1
bHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5oCkBAIC00Myw2ICs0Myw3IEBAIHR5cGVkZWYgdWludDMy
X3QgV0tCdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBlOwogV0tfRVhQT1JUIFdLVHlwZUlEIFdL
QnVuZGxlSGl0VGVzdFJlc3VsdEdldFR5cGVJRCgpOwogCiBXS19FWFBPUlQgV0tCdW5kbGVOb2Rl
SGFuZGxlUmVmIFdLQnVuZGxlSGl0VGVzdFJlc3VsdENvcHlOb2RlSGFuZGxlKFdLQnVuZGxlSGl0
VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0KTsKK1dLX0VYUE9SVCBXS0J1bmRsZU5vZGVIYW5k
bGVSZWYgV0tCdW5kbGVIaXRUZXN0UmVzdWx0Q29weVVSTEVsZW1lbnRIYW5kbGUoV0tCdW5kbGVI
aXRUZXN0UmVzdWx0UmVmIGhpdFRlc3RSZXN1bHQpOwogCiBXS19FWFBPUlQgV0tCdW5kbGVGcmFt
ZVJlZiBXS0J1bmRsZUhpdFRlc3RSZXN1bHRHZXRGcmFtZShXS0J1bmRsZUhpdFRlc3RSZXN1bHRS
ZWYgaGl0VGVzdFJlc3VsdCk7CiBXS19FWFBPUlQgV0tCdW5kbGVGcmFtZVJlZiBXS0J1bmRsZUhp
dFRlc3RSZXN1bHRHZXRUYXJnZXRGcmFtZShXS0J1bmRsZUhpdFRlc3RSZXN1bHRSZWYgaGl0VGVz
dFJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZS5jcHAKaW5kZXgg
Y2IzZjliNmU2ZWU4MzYxOTY4Njc3YzA1M2RhMDljMjFmMjBhZmRmNC4uMGRlZjJhZWQ1OWNkYWNk
MzQwNGIzOWU3MDEyZjEyYTg5OTM4NzFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vZGVIYW5kbGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVO
b2RlSGFuZGxlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIldLQnVuZGxlTm9kZUhh
bmRsZVByaXZhdGUuaCIKIAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oIgor
I2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCIKICNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5o
IgpAQCAtNjMsNiArNjQsMTIgQEAgV0tJbWFnZVJlZiBXS0J1bmRsZU5vZGVIYW5kbGVDb3B5U25h
cHNob3RXaXRoT3B0aW9ucyhXS0J1bmRsZU5vZGVIYW5kbGVSZWYgbm9kZUgKICAgICByZXR1cm4g
dG9BUEkoaW1hZ2UucmVsZWFzZSgpLmxlYWtSZWYoKSk7CiB9CiAKK1dLQnVuZGxlUmFuZ2VIYW5k
bGVSZWYgV0tCdW5kbGVOb2RlSGFuZGxlQ29weVZpc2libGVSYW5nZShXS0J1bmRsZU5vZGVIYW5k
bGVSZWYgbm9kZUhhbmRsZVJlZikKK3sKKyAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVSYW5nZUhh
bmRsZT4gcmFuZ2VIYW5kbGUgPSB0b0ltcGwobm9kZUhhbmRsZVJlZiktPnZpc2libGVSYW5nZSgp
OworICAgIHJldHVybiB0b0FQSShyYW5nZUhhbmRsZS5yZWxlYXNlKCkubGVha1JlZigpKTsKK30K
KwogV0tSZWN0IFdLQnVuZGxlTm9kZUhhbmRsZUdldEVsZW1lbnRCb3VuZHMoV0tCdW5kbGVOb2Rl
SGFuZGxlUmVmIGVsZW1lbnRIYW5kbGVSZWYpCiB7CiAgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChl
bGVtZW50SGFuZGxlUmVmKS0+ZWxlbWVudEJvdW5kcygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb2RlSGFuZGxl
UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZU5vZGVIYW5kbGVQcml2YXRlLmgKaW5kZXggYzgzYmMzMTNiYzhhYzljM2UyM2M2
MTRkZGM1YTUzZGJlMjZhZDhiMS4uMDJlY2ExMDFjN2Y0Y2QyYWM3Nzk4NGJjNjQ0NDM2ZTE5ODli
MjEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZU5vZGVIYW5kbGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vZGVIYW5kbGVQcml2YXRl
LmgKQEAgLTQ1LDYgKzQ1LDcgQEAgV0tfRVhQT1JUIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBXS0J1
bmRsZU5vZGVIYW5kbGVDb3B5RG9jdW1lbnQoV0tCdW5kbGVOb2RlSGFuZGwKIAogV0tfRVhQT1JU
IFdLUmVjdCBXS0J1bmRsZU5vZGVIYW5kbGVHZXRSZW5kZXJSZWN0KFdLQnVuZGxlTm9kZUhhbmRs
ZVJlZiBub2RlSGFuZGxlLCBib29sKiBpc1JlcGxhY2VkKTsKIFdLX0VYUE9SVCBXS0ltYWdlUmVm
IFdLQnVuZGxlTm9kZUhhbmRsZUNvcHlTbmFwc2hvdFdpdGhPcHRpb25zKFdLQnVuZGxlTm9kZUhh
bmRsZVJlZiBub2RlSGFuZGxlLCBXS1NuYXBzaG90T3B0aW9ucyBvcHRpb25zKTsKK1dLX0VYUE9S
VCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIFdLQnVuZGxlTm9kZUhhbmRsZUNvcHlWaXNpYmxlUmFu
Z2UoV0tCdW5kbGVOb2RlSGFuZGxlUmVmIG5vZGVIYW5kbGUpOwogCiAvKiBFbGVtZW50IFNwZWNp
ZmljIE9wZXJhdGlvbnMgKi8KIFdLX0VYUE9SVCBXS1JlY3QgV0tCdW5kbGVOb2RlSGFuZGxlR2V0
RWxlbWVudEJvdW5kcyhXS0J1bmRsZU5vZGVIYW5kbGVSZWYgZWxlbWVudEhhbmRsZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUmFuZ2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVJhbmdlSGFuZGxlLmNwcAppbmRleCBmYjJmN2QwNWYwYTA5
ZjRlNTBjNDllMzczNWJkMTFlN2I0ZmQ1N2I0Li43M2I4OGMxMzQwNjMzYzY5MDgxOGQ0OGMzNDFl
YTU2OTlhODE3ZWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUmFuZ2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVSYW5nZUhhbmRsZS5j
cHAKQEAgLTMwLDYgKzMwLDggQEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxl
LmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV0tCdW5kbGVBUElDYXN0Lmgi
CisjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KIAog
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIApAQCAtNDMsMyArNDUsMTUgQEAgV0tCdW5kbGVSYW5n
ZUhhbmRsZVJlZiBXS0J1bmRsZVJhbmdlSGFuZGxlQ3JlYXRlKEpTQ29udGV4dFJlZiBjb250ZXh0
UmVmLCBKU09iamUKICAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZT4gcmFuZ2VI
YW5kbGUgPSBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpnZXRPckNyZWF0ZShjb250ZXh0UmVm
LCBvYmplY3RSZWYpOwogICAgIHJldHVybiB0b0FQSShyYW5nZUhhbmRsZS5yZWxlYXNlKCkubGVh
a1JlZigpKTsKIH0KKworV0tSZWN0IFdLQnVuZGxlUmFuZ2VIYW5kbGVHZXRCb3VuZGluZ1JlY3RJ
bldpbmRvd0Nvb3JkaW5hdGVzKFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2VIYW5kbGVSZWYp
Cit7CisgICAgV2ViQ29yZTo6SW50UmVjdCBib3VuZGluZ1JlY3QgPSB0b0ltcGwocmFuZ2VIYW5k
bGVSZWYpLT5ib3VuZGluZ1JlY3RJbldpbmRvd0Nvb3JkaW5hdGVzKCk7CisgICAgcmV0dXJuIFdL
UmVjdE1ha2UoYm91bmRpbmdSZWN0LngoKSwgYm91bmRpbmdSZWN0LnkoKSwgYm91bmRpbmdSZWN0
LndpZHRoKCksIGJvdW5kaW5nUmVjdC5oZWlnaHQoKSk7Cit9CisKK1dLSW1hZ2VSZWYgV0tCdW5k
bGVSYW5nZUhhbmRsZUNvcHlTbmFwc2hvdFdpdGhPcHRpb25zKFdLQnVuZGxlUmFuZ2VIYW5kbGVS
ZWYgcmFuZ2VIYW5kbGVSZWYsIFdLU25hcHNob3RPcHRpb25zIG9wdGlvbnMpCit7CisgICAgUmVm
UHRyPFdlYkltYWdlPiBpbWFnZSA9IHRvSW1wbChyYW5nZUhhbmRsZVJlZiktPnJlbmRlcmVkSW1h
Z2UodG9TbmFwc2hvdE9wdGlvbnMob3B0aW9ucykpOworICAgIHJldHVybiB0b0FQSShpbWFnZS5y
ZWxlYXNlKCkubGVha1JlZigpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVSYW5nZUhhbmRsZVByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVS
YW5nZUhhbmRsZVByaXZhdGUuaAppbmRleCA3NzMzNWJiMmMyNTgxZTQxN2JlMzE4MWFiNjUwN2Uz
NGRkNDMwZTQ3Li5jNmFiNWJmZjIzOTAzYWYyYzVjODU1ZjIwNjc2ZWM0YzRhMTlkYzI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUmFuZ2VIYW5kbGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVJhbmdlSGFuZGxlUHJpdmF0ZS5oCkBAIC0y
OCw2ICsyOCw4IEBACiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Lmg+CiAj
aW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0dlb21ldHJ5Lmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLSW1hZ2UuaD4KIAogI2lmZGVmIF9fY3BsdXNwbHVzCiBleHRl
cm4gIkMiIHsKQEAgLTM1LDYgKzM3LDkgQEAgZXh0ZXJuICJDIiB7CiAKIFdLX0VYUE9SVCBXS0J1
bmRsZVJhbmdlSGFuZGxlUmVmIFdLQnVuZGxlUmFuZ2VIYW5kbGVDcmVhdGUoSlNDb250ZXh0UmVm
IGNvbnRleHQsIEpTT2JqZWN0UmVmIG9iamVjdCk7CiAKK1dLX0VYUE9SVCBXS1JlY3QgV0tCdW5k
bGVSYW5nZUhhbmRsZUdldEJvdW5kaW5nUmVjdEluV2luZG93Q29vcmRpbmF0ZXMoV0tCdW5kbGVS
YW5nZUhhbmRsZVJlZiByYW5nZUhhbmRsZSk7CitXS19FWFBPUlQgV0tJbWFnZVJlZiBXS0J1bmRs
ZVJhbmdlSGFuZGxlQ29weVNuYXBzaG90V2l0aE9wdGlvbnMoV0tCdW5kbGVSYW5nZUhhbmRsZVJl
ZiByYW5nZUhhbmRsZSwgV0tTbmFwc2hvdE9wdGlvbnMgb3B0aW9ucyk7CisKICNpZmRlZiBfX2Nw
bHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2Rl
SGFuZGxlLmNwcAppbmRleCBhOThjOTIzYzZmZWFkMzJlNGM1YThhMjE3Zjc3ZGI0MTdiNjFiNTYx
Li40YzlmMjUyNGE5NGNiNTkwMGEzN2M4MDk4YzM4MDk3YjYwNWI1MDY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRs
ZU5vZGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUu
aCIKIAorI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCIKICNpbmNsdWRlICJT
aGFyZWFibGVCaXRtYXAuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZy
YW1lTG9hZGVyQ2xpZW50LmgiCkBAIC00Niw3ICs0NywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
SlNOb2RlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob2RlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
YWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qb3NpdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UmFuZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlck9iamVjdC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvVmlzaWJsZVBvc2l0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KQEAgLTE4NCw2ICsxODgsMTUgQEAgUGFzc1JlZlB0cjxXZWJJbWFnZT4gSW5qZWN0ZWRCdW5k
bGVOb2RlSGFuZGxlOjpyZW5kZXJlZEltYWdlKFNuYXBzaG90T3B0aW9ucyBvcHQKICAgICByZXR1
cm4gaW1hZ2UucmVsZWFzZSgpOwogfQogCitQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlUmFuZ2VI
YW5kbGU+IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6dmlzaWJsZVJhbmdlKCkgY29uc3QKK3sK
KyAgICBWaXNpYmxlUG9zaXRpb24gc3RhcnQgPSBmaXJzdFBvc2l0aW9uSW5Ob2RlKG1fbm9kZS5n
ZXQoKSk7CisgICAgVmlzaWJsZVBvc2l0aW9uIGVuZCA9IGxhc3RQb3NpdGlvbkluTm9kZShtX25v
ZGUuZ2V0KCkpOworCisgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IG1ha2VSYW5nZShzdGFydCwg
ZW5kKTsKKyAgICByZXR1cm4gSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZTo6Z2V0T3JDcmVhdGUo
cmFuZ2UuZ2V0KCkpOworfQorCiB2b2lkIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6c2V0SFRN
TElucHV0RWxlbWVudFZhbHVlRm9yVXNlcihjb25zdCBTdHJpbmcmIHZhbHVlKQogewogICAgIGlm
ICghaXNIVE1MSW5wdXRFbGVtZW50KG1fbm9kZS5nZXQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVI
YW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0lu
amVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oCmluZGV4IDhkZDEyNWU4ZGM4NDU3M2Q0MDkzMTk3NjBk
OTUxZDk5YjAxNWJiMTMuLjQ5YmZmMGMxNWI2MzhmOWIyNGVkMTE3YzYwOTM1ZjQ1OGM2ZmE4Mjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9N
L0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oCkBAIC00MCw2
ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2Ns
YXNzIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU7CiBjbGFzcyBJbmplY3RlZEJ1bmRsZVNjcmlw
dFdvcmxkOwogY2xhc3MgV2ViRnJhbWU7CiBjbGFzcyBXZWJJbWFnZTsKQEAgLTYxLDYgKzYyLDcg
QEAgcHVibGljOgogICAgIFdlYkNvcmU6OkludFJlY3QgZWxlbWVudEJvdW5kcygpIGNvbnN0Owog
ICAgIFdlYkNvcmU6OkludFJlY3QgcmVuZGVyUmVjdChib29sKikgY29uc3Q7CiAgICAgUGFzc1Jl
ZlB0cjxXZWJJbWFnZT4gcmVuZGVyZWRJbWFnZShTbmFwc2hvdE9wdGlvbnMpOworICAgIFBhc3NS
ZWZQdHI8SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZT4gdmlzaWJsZVJhbmdlKCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRIVE1MSW5wdXRFbGVtZW50VmFsdWVGb3JVc2VyKGNvbnN0IFN0cmluZyYpOwog
ICAgIGJvb2wgaXNIVE1MSW5wdXRFbGVtZW50QXV0b2ZpbGxlZCgpIGNvbnN0OwogICAgIHZvaWQg
c2V0SFRNTElucHV0RWxlbWVudEF1dG9maWxsZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdl
SGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9N
L0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwCmluZGV4IDliOTQ3ZDEwM2ZhMzhkZDBlYTI3
NzU0YmU3MzNhMTQxZGY1OGViMTcuLmY2MzM5MWI0Y2U1Y2Y3MjFhMTliMDY4NzNmNzEwZGMyZTM1
ZjE5ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUu
Y3BwCkBAIC0yNiw5ICsyNiwyMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIklu
amVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCIKIAorI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5o
IgorI2luY2x1ZGUgIldlYkltYWdlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2Fz
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zs
b2F0UmVjdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lU2VsZWN0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVj
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSlNSYW5nZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmFuZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Zpc2li
bGVTZWxlY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgogCkBAIC04NCw0ICs5NSw2MCBAQCBSYW5nZSogSW5qZWN0ZWRCdW5k
bGVSYW5nZUhhbmRsZTo6Y29yZVJhbmdlKCkgY29uc3QKICAgICByZXR1cm4gbV9yYW5nZS5nZXQo
KTsKIH0KIAorV2ViQ29yZTo6SW50UmVjdCBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpib3Vu
ZGluZ1JlY3RJbldpbmRvd0Nvb3JkaW5hdGVzKCkgY29uc3QKK3sKKyAgICBGbG9hdFJlY3QgYm91
bmRpbmdSZWN0ID0gbV9yYW5nZS0+Ym91bmRpbmdSZWN0KCk7CisgICAgRnJhbWUqIGZyYW1lID0g
bV9yYW5nZS0+b3duZXJEb2N1bWVudCgpLmZyYW1lKCk7CisgICAgcmV0dXJuIGZyYW1lLT52aWV3
KCktPmNvbnRlbnRzVG9XaW5kb3coZW5jbG9zaW5nSW50UmVjdChib3VuZGluZ1JlY3QpKTsKK30K
KworUGFzc1JlZlB0cjxXZWJJbWFnZT4gSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZTo6cmVuZGVy
ZWRJbWFnZShTbmFwc2hvdE9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBEb2N1bWVudCYgb3duZXJE
b2N1bWVudCA9IG1fcmFuZ2UtPm93bmVyRG9jdW1lbnQoKTsKKyAgICBGcmFtZSogZnJhbWUgPSBv
d25lckRvY3VtZW50LmZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGZyYW1lLT52aWV3KCk7CisgICAg
aWYgKCFmcmFtZVZpZXcpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgVmlzaWJsZVNl
bGVjdGlvbiBvbGRTZWxlY3Rpb24gPSBmcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7Cisg
ICAgZnJhbWUtPnNlbGVjdGlvbigpLnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKG1fcmFu
Z2UuZ2V0KCkpKTsKKworICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gKG9wdGlvbnMgJiBTbmFwc2hv
dE9wdGlvbnNFeGNsdWRlRGV2aWNlU2NhbGVGYWN0b3IpID8gMSA6IGZyYW1lLT5wYWdlKCktPmRl
dmljZVNjYWxlRmFjdG9yKCk7CisgICAgSW50UmVjdCBwYWludFJlY3QgPSBlbmNsb3NpbmdJbnRS
ZWN0KG1fcmFuZ2UtPmJvdW5kaW5nUmVjdCgpKTsKKyAgICBJbnRTaXplIGJhY2tpbmdTdG9yZVNp
emUgPSBwYWludFJlY3Quc2l6ZSgpOworICAgIGJhY2tpbmdTdG9yZVNpemUuc2NhbGUoc2NhbGVG
YWN0b3IpOworCisgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gYmFja2luZ1N0b3JlID0gU2hh
cmVhYmxlQml0bWFwOjpjcmVhdGVTaGFyZWFibGUoYmFja2luZ1N0b3JlU2l6ZSwgU2hhcmVhYmxl
Qml0bWFwOjpTdXBwb3J0c0FscGhhKTsKKyAgICBpZiAoIWJhY2tpbmdTdG9yZSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvIGdyYXBoaWNzQ29udGV4dCA9IGJhY2tpbmdTdG9y
ZS0+Y3JlYXRlR3JhcGhpY3NDb250ZXh0KCk7CisgICAgZ3JhcGhpY3NDb250ZXh0LT5zY2FsZShG
bG9hdFNpemUoc2NhbGVGYWN0b3IsIHNjYWxlRmFjdG9yKSk7CisKKyAgICBwYWludFJlY3QubW92
ZShmcmFtZVZpZXctPmZyYW1lUmVjdCgpLngoKSwgZnJhbWVWaWV3LT5mcmFtZVJlY3QoKS55KCkp
OworICAgIHBhaW50UmVjdC5tb3ZlKC1mcmFtZVZpZXctPnNjcm9sbE9mZnNldCgpKTsKKworICAg
IGdyYXBoaWNzQ29udGV4dC0+dHJhbnNsYXRlKC1wYWludFJlY3QueCgpLCAtcGFpbnRSZWN0Lnko
KSk7CisKKyAgICBQYWludEJlaGF2aW9yIG9sZFBhaW50QmVoYXZpb3IgPSBmcmFtZVZpZXctPnBh
aW50QmVoYXZpb3IoKTsKKyAgICBQYWludEJlaGF2aW9yIHBhaW50QmVoYXZpb3IgPSBvbGRQYWlu
dEJlaGF2aW9yIHwgUGFpbnRCZWhhdmlvclNlbGVjdGlvbk9ubHkgfCBQYWludEJlaGF2aW9yRmxh
dHRlbkNvbXBvc2l0aW5nTGF5ZXJzOworICAgIGlmIChvcHRpb25zICYgU25hcHNob3RPcHRpb25z
Rm9yY2VCbGFja1RleHQpCisgICAgICAgIHBhaW50QmVoYXZpb3IgfD0gUGFpbnRCZWhhdmlvckZv
cmNlQmxhY2tUZXh0OworICAgIGlmIChvcHRpb25zICYgU25hcHNob3RPcHRpb25zRm9yY2VXaGl0
ZVRleHQpCisgICAgICAgIHBhaW50QmVoYXZpb3IgfD0gUGFpbnRCZWhhdmlvckZvcmNlV2hpdGVU
ZXh0OworCisgICAgZnJhbWVWaWV3LT5zZXRQYWludEJlaGF2aW9yKHBhaW50QmVoYXZpb3IpOwor
ICAgIG93bmVyRG9jdW1lbnQudXBkYXRlTGF5b3V0KCk7CisKKyAgICBmcmFtZVZpZXctPnBhaW50
KGdyYXBoaWNzQ29udGV4dC5nZXQoKSwgcGFpbnRSZWN0KTsKKyAgICBmcmFtZVZpZXctPnNldFBh
aW50QmVoYXZpb3Iob2xkUGFpbnRCZWhhdmlvcik7CisKKyAgICBmcmFtZS0+c2VsZWN0aW9uKCku
c2V0U2VsZWN0aW9uKG9sZFNlbGVjdGlvbik7CisKKyAgICByZXR1cm4gV2ViSW1hZ2U6OmNyZWF0
ZShiYWNraW5nU3RvcmUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVu
ZGxlUmFuZ2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaAppbmRleCA3Njk1YjQzNjY3Y2MzZjc3
YzVjNzY4MzgyZjgzNTI4YTQ3MWFlN2FlLi4xN2RlYjI5OThjYzZiMDVhOGZhOWRhN2U5NDNjNDM3
NGZmYWUxYjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRs
ZS5oCkBAIC0yNywxNyArMjcsMjAgQEAKICNkZWZpbmUgSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRs
ZV9oCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJJbWFnZU9wdGlvbnMuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0Jhc2UuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewot
ICAgIGNsYXNzIFJhbmdlOworY2xhc3MgSW50UmVjdDsKK2NsYXNzIFJhbmdlOwogfQogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDsKK2NsYXNz
IFdlYkltYWdlOwogCiBjbGFzcyBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlIDogcHVibGljIEFQ
STo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxlUmFuZ2VIYW5kbGU+IHsKIHB1
YmxpYzoKQEAgLTQ2LDYgKzQ5LDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+SW5qZWN0ZWRC
dW5kbGVSYW5nZUhhbmRsZSgpOwogCisgICAgV2ViQ29yZTo6SW50UmVjdCBib3VuZGluZ1JlY3RJ
bldpbmRvd0Nvb3JkaW5hdGVzKCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxXZWJJbWFnZT4gcmVu
ZGVyZWRJbWFnZShTbmFwc2hvdE9wdGlvbnMpOworCiAgICAgV2ViQ29yZTo6UmFuZ2UqIGNvcmVS
YW5nZSgpIGNvbnN0OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhp
dFRlc3RSZXN1bHQuY3BwCmluZGV4IDhkMTMyZGY4MDYyYTM0ZjlhMzIwYWEwNGYzNDBmNDNiMDRl
NmYyNmQuLjEzYzU0NmU3OTA0Y2NjNGFmYTA2ODk3MTg5MDBkOWQ3ZjkyM2JmMTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVIaXRUZXN0UmVzdWx0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAKQEAgLTUxLDYgKzUxLDEx
IEBAIFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlPiBJbmplY3RlZEJ1bmRsZUhp
dFRlc3RSZXN1bHQ6Om5vZGVIYW5kbGUoKSBjCiAgICAgcmV0dXJuIEluamVjdGVkQnVuZGxlTm9k
ZUhhbmRsZTo6Z2V0T3JDcmVhdGUobV9oaXRUZXN0UmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgp
KTsKIH0KIAorUGFzc1JlZlB0cjxJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU+IEluamVjdGVkQnVu
ZGxlSGl0VGVzdFJlc3VsdDo6VVJMRWxlbWVudEhhbmRsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6Z2V0T3JDcmVhdGUobV9oaXRUZXN0UmVzdWx0LlVS
TEVsZW1lbnQoKSk7Cit9CisKIFdlYkZyYW1lKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6
OmZyYW1lKCkgY29uc3QKIHsKICAgICBOb2RlKiBub2RlID0gbV9oaXRUZXN0UmVzdWx0LmlubmVy
Tm9uU2hhcmVkTm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0
LmgKaW5kZXggYTIzZDAwOTA4ZTYyYTJmNGNjN2U3ZWYzN2ZmNzc2MGRkYjAyM2I1MC4uNmI5NmM1
ZGU3ZDVjOGM3YWJhYjVmNDA3ZjMyNjVmYmEyODViZjNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1
bHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oCkBAIC00NCw3ICs0NCw4IEBAIHB1YmxpYzoKIAogICAg
IGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmIGNvcmVIaXRUZXN0UmVzdWx0KCkgY29uc3Qg
eyByZXR1cm4gbV9oaXRUZXN0UmVzdWx0OyB9CiAKLSAgICBQYXNzUmVmUHRyPEluamVjdGVkQnVu
ZGxlTm9kZUhhbmRsZT4gbm9kZUhhbmRsZSgpIGNvbnN0OyAKKyAgICBQYXNzUmVmUHRyPEluamVj
dGVkQnVuZGxlTm9kZUhhbmRsZT4gbm9kZUhhbmRsZSgpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8
SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlPiBVUkxFbGVtZW50SGFuZGxlKCkgY29uc3Q7CiAgICAg
V2ViRnJhbWUqIGZyYW1lKCkgY29uc3Q7CiAgICAgV2ViRnJhbWUqIHRhcmdldEZyYW1lKCkgY29u
c3Q7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236824</attachid>
            <date>2014-08-19 14:06:29 -0700</date>
            <delta_ts>2014-08-19 15:53:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136076-20140819140620.patch</filename>
            <type>text/plain</type>
            <size>17387</size>
            <attacher name="Peyton Randolph">prandolph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTJkNzVjNGI2ZWRlMGE3
MDkwZjFhOWYyMDg3MjA4ZTk4NDA2ZGVlNC4uY2VhODcwZjcwNzExM2FlYWIxMjQzZDlhMWEyZWYx
MDljODNmODQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE0LTA4LTE5ICBQZXl0
b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSBpbmpl
Y3RlZCBidW5kbGUgU1BJIHRvIGdldCBhIG5vZGUncyBVUkwgZWxlbWVudCwgZ2V0IHRoZSB2aXNp
YmxlIHNlbGVjdGlvbiByYW5nZSBvZiB0aGF0CisgICAgICAgIGVsZW1lbnQsIGFuZCBzbmFwc2hv
dCB0aGF0IHJhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzYwNzYKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQu
Y3BwOgorICAgICAgICAoV0tCdW5kbGVIaXRUZXN0UmVzdWx0Q29weVVSTEVsZW1lbnRIYW5kbGUp
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlSGl0VGVzdFJlc3VsdC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVOb2RlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlTm9kZUhhbmRs
ZUNvcHlWaXNpYmxlUmFuZ2UpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZVByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUmFuZ2VIYW5kbGUuY3BwOgorICAg
ICAgICAoV0tCdW5kbGVSYW5nZUhhbmRsZUdldEJvdW5kaW5nUmVjdEluV2luZG93Q29vcmRpbmF0
ZXMpOiBBZGRlZC4KKyAgICAgICAgKFdLQnVuZGxlUmFuZ2VIYW5kbGVDb3B5U25hcHNob3RXaXRo
T3B0aW9ucyk6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVSYW5nZUhhbmRsZVByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OnZpc2libGVSYW5nZSk6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9k
ZUhhbmRsZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVj
dGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRs
ZVJhbmdlSGFuZGxlOjpib3VuZGluZ1JlY3RJbldpbmRvd0Nvb3JkaW5hdGVzKTogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU6OnJlbmRlcmVkSW1hZ2Up
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3Rl
ZEJ1bmRsZVJhbmdlSGFuZGxlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmpl
Y3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OnVybEVsZW1lbnRIYW5kbGUpOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3Vs
dC5oOgorCiAyMDE0LTA4LTE4ICBQZXl0b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29t
PgogCiAgICAgICAgIEV4dGVuZCBpbmplY3RlZCBidW5kbGUgbm9kZSBzbmFwc2hvdHRpbmcgdG8g
c3VwcG9ydCBmb3JjZWQgd2hpdGUgYW5kIGJsYWNrIHRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVz
dWx0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcAppbmRleCA2MGE0YzY4YjA2NWMxMTlmZmJlMjQ1ZjE2
YjRkY2JiOTdkZmU4YmUzLi41YjlhMDExNmViZDdkMzhjN2M4NDBjNDg3MTFiOTI0Mjg2YWRlZTE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuY3BwCkBAIC00
NCw2ICs0NCwxMiBAQCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgV0tCdW5kbGVIaXRUZXN0UmVzdWx0
Q29weU5vZGVIYW5kbGUoV0tCdW5kbGVIaXRUZXN0UmVzdWx0UgogICAgIHJldHVybiB0b0FQSShu
b2RlSGFuZGxlLnJlbGVhc2UoKS5sZWFrUmVmKCkpOwogfQogCitXS0J1bmRsZU5vZGVIYW5kbGVS
ZWYgV0tCdW5kbGVIaXRUZXN0UmVzdWx0Q29weVVSTEVsZW1lbnRIYW5kbGUoV0tCdW5kbGVIaXRU
ZXN0UmVzdWx0UmVmIGhpdFRlc3RSZXN1bHRSZWYpCit7CisgICAgUmVmUHRyPEluamVjdGVkQnVu
ZGxlTm9kZUhhbmRsZT4gdXJsRWxlbWVudE5vZGVIYW5kbGUgPSB0b0ltcGwoaGl0VGVzdFJlc3Vs
dFJlZiktPnVybEVsZW1lbnRIYW5kbGUoKTsKKyAgICByZXR1cm4gdG9BUEkodXJsRWxlbWVudE5v
ZGVIYW5kbGUucmVsZWFzZSgpLmxlYWtSZWYoKSk7Cit9CisKIFdLQnVuZGxlRnJhbWVSZWYgV0tC
dW5kbGVIaXRUZXN0UmVzdWx0R2V0RnJhbWUoV0tCdW5kbGVIaXRUZXN0UmVzdWx0UmVmIGhpdFRl
c3RSZXN1bHRSZWYpCiB7CiAgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChoaXRUZXN0UmVzdWx0UmVm
KS0+ZnJhbWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuaApp
bmRleCAxMmU3MmVjNzFiMGZlMGM2NmZhNGNlYzFiY2ZhMzZmOTM3ZDg5NmMyLi40MGQzY2NmMjhi
MTUzZDE5NWI3MjFiMTE3YTY1MDRlMjU2ZjNlYzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVIaXRUZXN0UmVzdWx0LmgKQEAgLTQzLDYgKzQzLDcgQEAgdHlwZWRlZiB1aW50MzJfdCBX
S0J1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGU7CiBXS19FWFBPUlQgV0tUeXBlSUQgV0tCdW5k
bGVIaXRUZXN0UmVzdWx0R2V0VHlwZUlEKCk7CiAKIFdLX0VYUE9SVCBXS0J1bmRsZU5vZGVIYW5k
bGVSZWYgV0tCdW5kbGVIaXRUZXN0UmVzdWx0Q29weU5vZGVIYW5kbGUoV0tCdW5kbGVIaXRUZXN0
UmVzdWx0UmVmIGhpdFRlc3RSZXN1bHQpOworV0tfRVhQT1JUIFdLQnVuZGxlTm9kZUhhbmRsZVJl
ZiBXS0J1bmRsZUhpdFRlc3RSZXN1bHRDb3B5VVJMRWxlbWVudEhhbmRsZShXS0J1bmRsZUhpdFRl
c3RSZXN1bHRSZWYgaGl0VGVzdFJlc3VsdCk7CiAKIFdLX0VYUE9SVCBXS0J1bmRsZUZyYW1lUmVm
IFdLQnVuZGxlSGl0VGVzdFJlc3VsdEdldEZyYW1lKFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZiBo
aXRUZXN0UmVzdWx0KTsKIFdLX0VYUE9SVCBXS0J1bmRsZUZyYW1lUmVmIFdLQnVuZGxlSGl0VGVz
dFJlc3VsdEdldFRhcmdldEZyYW1lKFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVz
dWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVOb2RlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb2RlSGFuZGxlLmNwcAppbmRleCBjYjNm
OWI2ZTZlZTgzNjE5Njg2NzdjMDUzZGEwOWMyMWYyMGFmZGY0Li4wZGVmMmFlZDU5Y2RhY2QzNDA0
YjM5ZTcwMTJmMTJhODk5Mzg3MWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vZGVI
YW5kbGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiV0tCdW5kbGVOb2RlSGFuZGxl
UHJpdmF0ZS5oIgogCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgiCisjaW5j
bHVkZSAiSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oIgogI2luY2x1ZGUgIldLQVBJQ2FzdC5o
IgogI2luY2x1ZGUgIldLQnVuZGxlQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCkBA
IC02Myw2ICs2NCwxMiBAQCBXS0ltYWdlUmVmIFdLQnVuZGxlTm9kZUhhbmRsZUNvcHlTbmFwc2hv
dFdpdGhPcHRpb25zKFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBub2RlSAogICAgIHJldHVybiB0b0FQ
SShpbWFnZS5yZWxlYXNlKCkubGVha1JlZigpKTsKIH0KIAorV0tCdW5kbGVSYW5nZUhhbmRsZVJl
ZiBXS0J1bmRsZU5vZGVIYW5kbGVDb3B5VmlzaWJsZVJhbmdlKFdLQnVuZGxlTm9kZUhhbmRsZVJl
ZiBub2RlSGFuZGxlUmVmKQoreworICAgIFJlZlB0cjxJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxl
PiByYW5nZUhhbmRsZSA9IHRvSW1wbChub2RlSGFuZGxlUmVmKS0+dmlzaWJsZVJhbmdlKCk7Cisg
ICAgcmV0dXJuIHRvQVBJKHJhbmdlSGFuZGxlLnJlbGVhc2UoKS5sZWFrUmVmKCkpOworfQorCiBX
S1JlY3QgV0tCdW5kbGVOb2RlSGFuZGxlR2V0RWxlbWVudEJvdW5kcyhXS0J1bmRsZU5vZGVIYW5k
bGVSZWYgZWxlbWVudEhhbmRsZVJlZikKIHsKICAgICByZXR1cm4gdG9BUEkodG9JbXBsKGVsZW1l
bnRIYW5kbGVSZWYpLT5lbGVtZW50Qm91bmRzKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vZGVIYW5kbGVQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlTm9kZUhhbmRsZVByaXZhdGUuaAppbmRleCBjODNiYzMxM2JjOGFjOWMzZTIzYzYxNGRk
YzVhNTNkYmUyNmFkOGIxLi4wMmVjYTEwMWM3ZjRjZDJhYzc3OTg0YmM2NDQ0MzZlMTk4OWIyMTJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlTm9kZUhhbmRsZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZVByaXZhdGUuaApA
QCAtNDUsNiArNDUsNyBAQCBXS19FWFBPUlQgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIFdLQnVuZGxl
Tm9kZUhhbmRsZUNvcHlEb2N1bWVudChXS0J1bmRsZU5vZGVIYW5kbAogCiBXS19FWFBPUlQgV0tS
ZWN0IFdLQnVuZGxlTm9kZUhhbmRsZUdldFJlbmRlclJlY3QoV0tCdW5kbGVOb2RlSGFuZGxlUmVm
IG5vZGVIYW5kbGUsIGJvb2wqIGlzUmVwbGFjZWQpOwogV0tfRVhQT1JUIFdLSW1hZ2VSZWYgV0tC
dW5kbGVOb2RlSGFuZGxlQ29weVNuYXBzaG90V2l0aE9wdGlvbnMoV0tCdW5kbGVOb2RlSGFuZGxl
UmVmIG5vZGVIYW5kbGUsIFdLU25hcHNob3RPcHRpb25zIG9wdGlvbnMpOworV0tfRVhQT1JUIFdL
QnVuZGxlUmFuZ2VIYW5kbGVSZWYgV0tCdW5kbGVOb2RlSGFuZGxlQ29weVZpc2libGVSYW5nZShX
S0J1bmRsZU5vZGVIYW5kbGVSZWYgbm9kZUhhbmRsZSk7CiAKIC8qIEVsZW1lbnQgU3BlY2lmaWMg
T3BlcmF0aW9ucyAqLwogV0tfRVhQT1JUIFdLUmVjdCBXS0J1bmRsZU5vZGVIYW5kbGVHZXRFbGVt
ZW50Qm91bmRzKFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBlbGVtZW50SGFuZGxlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVSYW5nZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUmFuZ2VIYW5kbGUuY3BwCmluZGV4IGZiMmY3ZDA1ZjBhMDlmNGU1
MGM0OWUzNzM1YmQxMWU3YjRmZDU3YjQuLjczYjg4YzEzNDA2MzNjNjkwODE4ZDQ4YzM0MWVhNTY5
OWE4MTdlYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVSYW5nZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVJhbmdlSGFuZGxlLmNwcApA
QCAtMzAsNiArMzAsOCBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCIK
ICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKKyNp
bmNsdWRlICJXZWJJbWFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OwogCkBAIC00MywzICs0NSwxNSBAQCBXS0J1bmRsZVJhbmdlSGFu
ZGxlUmVmIFdLQnVuZGxlUmFuZ2VIYW5kbGVDcmVhdGUoSlNDb250ZXh0UmVmIGNvbnRleHRSZWYs
IEpTT2JqZQogICAgIFJlZlB0cjxJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlPiByYW5nZUhhbmRs
ZSA9IEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU6OmdldE9yQ3JlYXRlKGNvbnRleHRSZWYsIG9i
amVjdFJlZik7CiAgICAgcmV0dXJuIHRvQVBJKHJhbmdlSGFuZGxlLnJlbGVhc2UoKS5sZWFrUmVm
KCkpOwogfQorCitXS1JlY3QgV0tCdW5kbGVSYW5nZUhhbmRsZUdldEJvdW5kaW5nUmVjdEluV2lu
ZG93Q29vcmRpbmF0ZXMoV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiByYW5nZUhhbmRsZVJlZikKK3sK
KyAgICBXZWJDb3JlOjpJbnRSZWN0IGJvdW5kaW5nUmVjdCA9IHRvSW1wbChyYW5nZUhhbmRsZVJl
ZiktPmJvdW5kaW5nUmVjdEluV2luZG93Q29vcmRpbmF0ZXMoKTsKKyAgICByZXR1cm4gV0tSZWN0
TWFrZShib3VuZGluZ1JlY3QueCgpLCBib3VuZGluZ1JlY3QueSgpLCBib3VuZGluZ1JlY3Qud2lk
dGgoKSwgYm91bmRpbmdSZWN0LmhlaWdodCgpKTsKK30KKworV0tJbWFnZVJlZiBXS0J1bmRsZVJh
bmdlSGFuZGxlQ29weVNuYXBzaG90V2l0aE9wdGlvbnMoV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiBy
YW5nZUhhbmRsZVJlZiwgV0tTbmFwc2hvdE9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBSZWZQdHI8
V2ViSW1hZ2U+IGltYWdlID0gdG9JbXBsKHJhbmdlSGFuZGxlUmVmKS0+cmVuZGVyZWRJbWFnZSh0
b1NuYXBzaG90T3B0aW9ucyhvcHRpb25zKSk7CisgICAgcmV0dXJuIHRvQVBJKGltYWdlLnJlbGVh
c2UoKS5sZWFrUmVmKCkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVJhbmdlSGFuZGxlUHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVJhbmdl
SGFuZGxlUHJpdmF0ZS5oCmluZGV4IDc3MzM1YmIyYzI1ODFlNDE3YmUzMTgxYWI2NTA3ZTM0ZGQ0
MzBlNDcuLmM2YWI1YmZmMjM5MDNhZjJjNWM4NTVmMjA2NzZlYzRjNGExOWRjMjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVSYW5nZUhhbmRsZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUmFuZ2VIYW5kbGVQcml2YXRlLmgKQEAgLTI4LDYg
KzI4LDggQEAKIAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHQuaD4KICNpbmNs
dWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLR2VvbWV0cnkuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tJbWFnZS5oPgogCiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVybiAi
QyIgewpAQCAtMzUsNiArMzcsOSBAQCBleHRlcm4gIkMiIHsKIAogV0tfRVhQT1JUIFdLQnVuZGxl
UmFuZ2VIYW5kbGVSZWYgV0tCdW5kbGVSYW5nZUhhbmRsZUNyZWF0ZShKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgb2JqZWN0KTsKIAorV0tfRVhQT1JUIFdLUmVjdCBXS0J1bmRsZVJh
bmdlSGFuZGxlR2V0Qm91bmRpbmdSZWN0SW5XaW5kb3dDb29yZGluYXRlcyhXS0J1bmRsZVJhbmdl
SGFuZGxlUmVmIHJhbmdlSGFuZGxlKTsKK1dLX0VYUE9SVCBXS0ltYWdlUmVmIFdLQnVuZGxlUmFu
Z2VIYW5kbGVDb3B5U25hcHNob3RXaXRoT3B0aW9ucyhXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHJh
bmdlSGFuZGxlLCBXS1NuYXBzaG90T3B0aW9ucyBvcHRpb25zKTsKKwogI2lmZGVmIF9fY3BsdXNw
bHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5k
bGUuY3BwCmluZGV4IGE5OGM5MjNjNmZlYWQzMmU0YzVhOGEyMTdmNzdkYjQxN2I2MWI1NjEuLjRj
OWYyNTI0YTk0Y2I1OTAwYTM3YzgwOThjMzgwOTdiNjA1YjUwNjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9k
ZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oIgog
CisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oIgogI2luY2x1ZGUgIlNoYXJl
YWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVM
b2FkZXJDbGllbnQuaCIKQEAgLTQ2LDcgKzQ3LDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9KU05v
ZGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vZGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2Uu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Bvc2l0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SYW5n
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyT2JqZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9WaXNpYmxlUG9zaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpA
QCAtMTg0LDYgKzE4OCwxNSBAQCBQYXNzUmVmUHRyPFdlYkltYWdlPiBJbmplY3RlZEJ1bmRsZU5v
ZGVIYW5kbGU6OnJlbmRlcmVkSW1hZ2UoU25hcHNob3RPcHRpb25zIG9wdAogICAgIHJldHVybiBp
bWFnZS5yZWxlYXNlKCk7CiB9CiAKK1Bhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRs
ZT4gSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjp2aXNpYmxlUmFuZ2UoKSBjb25zdAoreworICAg
IFZpc2libGVQb3NpdGlvbiBzdGFydCA9IGZpcnN0UG9zaXRpb25Jbk5vZGUobV9ub2RlLmdldCgp
KTsKKyAgICBWaXNpYmxlUG9zaXRpb24gZW5kID0gbGFzdFBvc2l0aW9uSW5Ob2RlKG1fbm9kZS5n
ZXQoKSk7CisKKyAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gbWFrZVJhbmdlKHN0YXJ0LCBlbmQp
OworICAgIHJldHVybiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpnZXRPckNyZWF0ZShyYW5n
ZS5nZXQoKSk7Cit9CisKIHZvaWQgSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjpzZXRIVE1MSW5w
dXRFbGVtZW50VmFsdWVGb3JVc2VyKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7CiAgICAgaWYgKCFp
c0hUTUxJbnB1dEVsZW1lbnQobV9ub2RlLmdldCgpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRs
ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0
ZWRCdW5kbGVOb2RlSGFuZGxlLmgKaW5kZXggOGRkMTI1ZThkYzg0NTczZDQwOTMxOTc2MGQ5NTFk
OTliMDE1YmIxMy4uNDliZmYwYzE1YjYzOGY5YjI0ZWQxMTdjNjA5MzVmNDU4YzZmYTgyOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5q
ZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgKQEAgLTQwLDYgKzQw
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3Mg
SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZTsKIGNsYXNzIEluamVjdGVkQnVuZGxlU2NyaXB0V29y
bGQ7CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYkltYWdlOwpAQCAtNjEsNiArNjIsNyBAQCBw
dWJsaWM6CiAgICAgV2ViQ29yZTo6SW50UmVjdCBlbGVtZW50Qm91bmRzKCkgY29uc3Q7CiAgICAg
V2ViQ29yZTo6SW50UmVjdCByZW5kZXJSZWN0KGJvb2wqKSBjb25zdDsKICAgICBQYXNzUmVmUHRy
PFdlYkltYWdlPiByZW5kZXJlZEltYWdlKFNuYXBzaG90T3B0aW9ucyk7CisgICAgUGFzc1JlZlB0
cjxJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlPiB2aXNpYmxlUmFuZ2UoKSBjb25zdDsKICAgICB2
b2lkIHNldEhUTUxJbnB1dEVsZW1lbnRWYWx1ZUZvclVzZXIoY29uc3QgU3RyaW5nJik7CiAgICAg
Ym9vbCBpc0hUTUxJbnB1dEVsZW1lbnRBdXRvZmlsbGVkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRI
VE1MSW5wdXRFbGVtZW50QXV0b2ZpbGxlZChib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5k
bGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5q
ZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAKaW5kZXggOWI5NDdkMTAzZmEzOGRkMGVhMjc3NTRi
ZTczM2ExNDFkZjU4ZWIxNy4uZjYzMzkxYjRjZTVjZjcyMWExOWIwNjg3M2Y3MTBkYzJlMzVmMTll
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9E
T00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAK
QEAgLTI2LDkgKzI2LDIwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5qZWN0
ZWRCdW5kbGVSYW5nZUhhbmRsZS5oIgogCisjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCisj
aW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRS
ZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJh
bWVTZWxlY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lVmlldy5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9KU1JhbmdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SYW5nZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlzaWJsZVNl
bGVjdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CiAKQEAgLTg0LDQgKzk1LDYwIEBAIFJhbmdlKiBJbmplY3RlZEJ1bmRsZVJh
bmdlSGFuZGxlOjpjb3JlUmFuZ2UoKSBjb25zdAogICAgIHJldHVybiBtX3JhbmdlLmdldCgpOwog
fQogCitXZWJDb3JlOjpJbnRSZWN0IEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU6OmJvdW5kaW5n
UmVjdEluV2luZG93Q29vcmRpbmF0ZXMoKSBjb25zdAoreworICAgIEZsb2F0UmVjdCBib3VuZGlu
Z1JlY3QgPSBtX3JhbmdlLT5ib3VuZGluZ1JlY3QoKTsKKyAgICBGcmFtZSogZnJhbWUgPSBtX3Jh
bmdlLT5vd25lckRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICByZXR1cm4gZnJhbWUtPnZpZXcoKS0+
Y29udGVudHNUb1dpbmRvdyhlbmNsb3NpbmdJbnRSZWN0KGJvdW5kaW5nUmVjdCkpOworfQorCitQ
YXNzUmVmUHRyPFdlYkltYWdlPiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOjpyZW5kZXJlZElt
YWdlKFNuYXBzaG90T3B0aW9ucyBvcHRpb25zKQoreworICAgIERvY3VtZW50JiBvd25lckRvY3Vt
ZW50ID0gbV9yYW5nZS0+b3duZXJEb2N1bWVudCgpOworICAgIEZyYW1lKiBmcmFtZSA9IG93bmVy
RG9jdW1lbnQuZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gZnJhbWUtPnZpZXcoKTsKKyAgICBpZiAo
IWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBWaXNpYmxlU2VsZWN0
aW9uIG9sZFNlbGVjdGlvbiA9IGZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKKyAgICBm
cmFtZS0+c2VsZWN0aW9uKCkuc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24obV9yYW5nZS5n
ZXQoKSkpOworCisgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSAob3B0aW9ucyAmIFNuYXBzaG90T3B0
aW9uc0V4Y2x1ZGVEZXZpY2VTY2FsZUZhY3RvcikgPyAxIDogZnJhbWUtPnBhZ2UoKS0+ZGV2aWNl
U2NhbGVGYWN0b3IoKTsKKyAgICBJbnRSZWN0IHBhaW50UmVjdCA9IGVuY2xvc2luZ0ludFJlY3Qo
bV9yYW5nZS0+Ym91bmRpbmdSZWN0KCkpOworICAgIEludFNpemUgYmFja2luZ1N0b3JlU2l6ZSA9
IHBhaW50UmVjdC5zaXplKCk7CisgICAgYmFja2luZ1N0b3JlU2l6ZS5zY2FsZShzY2FsZUZhY3Rv
cik7CisKKyAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiYWNraW5nU3RvcmUgPSBTaGFyZWFi
bGVCaXRtYXA6OmNyZWF0ZVNoYXJlYWJsZShiYWNraW5nU3RvcmVTaXplLCBTaGFyZWFibGVCaXRt
YXA6OlN1cHBvcnRzQWxwaGEpOworICAgIGlmICghYmFja2luZ1N0b3JlKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKworICAgIGF1dG8gZ3JhcGhpY3NDb250ZXh0ID0gYmFja2luZ1N0b3JlLT5j
cmVhdGVHcmFwaGljc0NvbnRleHQoKTsKKyAgICBncmFwaGljc0NvbnRleHQtPnNjYWxlKEZsb2F0
U2l6ZShzY2FsZUZhY3Rvciwgc2NhbGVGYWN0b3IpKTsKKworICAgIHBhaW50UmVjdC5tb3ZlKGZy
YW1lVmlldy0+ZnJhbWVSZWN0KCkueCgpLCBmcmFtZVZpZXctPmZyYW1lUmVjdCgpLnkoKSk7Cisg
ICAgcGFpbnRSZWN0Lm1vdmUoLWZyYW1lVmlldy0+c2Nyb2xsT2Zmc2V0KCkpOworCisgICAgZ3Jh
cGhpY3NDb250ZXh0LT50cmFuc2xhdGUoLXBhaW50UmVjdC54KCksIC1wYWludFJlY3QueSgpKTsK
KworICAgIFBhaW50QmVoYXZpb3Igb2xkUGFpbnRCZWhhdmlvciA9IGZyYW1lVmlldy0+cGFpbnRC
ZWhhdmlvcigpOworICAgIFBhaW50QmVoYXZpb3IgcGFpbnRCZWhhdmlvciA9IG9sZFBhaW50QmVo
YXZpb3IgfCBQYWludEJlaGF2aW9yU2VsZWN0aW9uT25seSB8IFBhaW50QmVoYXZpb3JGbGF0dGVu
Q29tcG9zaXRpbmdMYXllcnM7CisgICAgaWYgKG9wdGlvbnMgJiBTbmFwc2hvdE9wdGlvbnNGb3Jj
ZUJsYWNrVGV4dCkKKyAgICAgICAgcGFpbnRCZWhhdmlvciB8PSBQYWludEJlaGF2aW9yRm9yY2VC
bGFja1RleHQ7CisgICAgaWYgKG9wdGlvbnMgJiBTbmFwc2hvdE9wdGlvbnNGb3JjZVdoaXRlVGV4
dCkKKyAgICAgICAgcGFpbnRCZWhhdmlvciB8PSBQYWludEJlaGF2aW9yRm9yY2VXaGl0ZVRleHQ7
CisKKyAgICBmcmFtZVZpZXctPnNldFBhaW50QmVoYXZpb3IocGFpbnRCZWhhdmlvcik7CisgICAg
b3duZXJEb2N1bWVudC51cGRhdGVMYXlvdXQoKTsKKworICAgIGZyYW1lVmlldy0+cGFpbnQoZ3Jh
cGhpY3NDb250ZXh0LmdldCgpLCBwYWludFJlY3QpOworICAgIGZyYW1lVmlldy0+c2V0UGFpbnRC
ZWhhdmlvcihvbGRQYWludEJlaGF2aW9yKTsKKworICAgIGZyYW1lLT5zZWxlY3Rpb24oKS5zZXRT
ZWxlY3Rpb24ob2xkU2VsZWN0aW9uKTsKKworICAgIHJldHVybiBXZWJJbWFnZTo6Y3JlYXRlKGJh
Y2tpbmdTdG9yZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVS
YW5nZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9E
T00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oCmluZGV4IDc2OTViNDM2NjdjYzNmNzdjNWM3
NjgzODJmODM1MjhhNDcxYWU3YWUuLjE3ZGViMjk5OGNjNmIwNWE4ZmE5ZGE3ZTk0M2M0Mzc0ZmZh
ZTFiNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvRE9NL0luamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmgK
QEAgLTI3LDE3ICsyNywyMCBAQAogI2RlZmluZSBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlX2gK
IAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIkltYWdlT3B0aW9ucy5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAg
Y2xhc3MgUmFuZ2U7CitjbGFzcyBJbnRSZWN0OworY2xhc3MgUmFuZ2U7CiB9CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkOworY2xhc3MgV2Vi
SW1hZ2U7CiAKIGNsYXNzIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUgOiBwdWJsaWMgQVBJOjpP
YmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpCdW5kbGVSYW5nZUhhbmRsZT4gewogcHVibGlj
OgpAQCAtNDYsNiArNDksOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5JbmplY3RlZEJ1bmRs
ZVJhbmdlSGFuZGxlKCk7CiAKKyAgICBXZWJDb3JlOjpJbnRSZWN0IGJvdW5kaW5nUmVjdEluV2lu
ZG93Q29vcmRpbmF0ZXMoKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPFdlYkltYWdlPiByZW5kZXJl
ZEltYWdlKFNuYXBzaG90T3B0aW9ucyk7CisKICAgICBXZWJDb3JlOjpSYW5nZSogY29yZVJhbmdl
KCkgY29uc3Q7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVz
dFJlc3VsdC5jcHAKaW5kZXggOGQxMzJkZjgwNjJhMzRmOWEzMjBhYTA0ZjM0MGY0M2IwNGU2ZjI2
ZC4uZGZiYjc5MmY1ZjI0MDNlMGYwMWRmMTk0MmI3MDMwM2Q4MGRlYmFiYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhp
dFRlc3RSZXN1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcApAQCAtNTEsNiArNTEsMTEgQEAg
UGFzc1JlZlB0cjxJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU+IEluamVjdGVkQnVuZGxlSGl0VGVz
dFJlc3VsdDo6bm9kZUhhbmRsZSgpIGMKICAgICByZXR1cm4gSW5qZWN0ZWRCdW5kbGVOb2RlSGFu
ZGxlOjpnZXRPckNyZWF0ZShtX2hpdFRlc3RSZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpOwog
fQogCitQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZT4gSW5qZWN0ZWRCdW5kbGVI
aXRUZXN0UmVzdWx0Ojp1cmxFbGVtZW50SGFuZGxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gSW5q
ZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjpnZXRPckNyZWF0ZShtX2hpdFRlc3RSZXN1bHQuVVJMRWxl
bWVudCgpKTsKK30KKwogV2ViRnJhbWUqIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDo6ZnJh
bWUoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUgPSBtX2hpdFRlc3RSZXN1bHQuaW5uZXJOb25T
aGFyZWROb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuaApp
bmRleCBhMjNkMDA5MDhlNjJhMmY0Y2M3ZTdlZjM3ZmY3NzYwZGRiMDIzYjUwLi4yYzdlMGU1Yjhh
OGIzZGMzOGE3ZWJiZjY3YjAxOTE2YjJjZDlmNDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVIaXRUZXN0UmVzdWx0LmgKQEAgLTQ0LDcgKzQ0LDggQEAgcHVibGljOgogCiAgICAgY29u
c3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYgY29yZUhpdFRlc3RSZXN1bHQoKSBjb25zdCB7IHJl
dHVybiBtX2hpdFRlc3RSZXN1bHQ7IH0KIAotICAgIFBhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVO
b2RlSGFuZGxlPiBub2RlSGFuZGxlKCkgY29uc3Q7IAorICAgIFBhc3NSZWZQdHI8SW5qZWN0ZWRC
dW5kbGVOb2RlSGFuZGxlPiBub2RlSGFuZGxlKCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxJbmpl
Y3RlZEJ1bmRsZU5vZGVIYW5kbGU+IHVybEVsZW1lbnRIYW5kbGUoKSBjb25zdDsKICAgICBXZWJG
cmFtZSogZnJhbWUoKSBjb25zdDsKICAgICBXZWJGcmFtZSogdGFyZ2V0RnJhbWUoKSBjb25zdDsK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236829</attachid>
            <date>2014-08-19 15:53:25 -0700</date>
            <delta_ts>2014-08-19 16:33:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136076-20140819155321.patch</filename>
            <type>text/plain</type>
            <size>18028</size>
            <attacher name="Peyton Randolph">prandolph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTJkNzVjNGI2ZWRlMGE3
MDkwZjFhOWYyMDg3MjA4ZTk4NDA2ZGVlNC4uY2VhODcwZjcwNzExM2FlYWIxMjQzZDlhMWEyZWYx
MDljODNmODQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE0LTA4LTE5ICBQZXl0
b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgorCisgICAgICAgIEV4cG9zZSBpbmpl
Y3RlZCBidW5kbGUgU1BJIHRvIGdldCBhIG5vZGUncyBVUkwgZWxlbWVudCwgZ2V0IHRoZSB2aXNp
YmxlIHNlbGVjdGlvbiByYW5nZSBvZiB0aGF0CisgICAgICAgIGVsZW1lbnQsIGFuZCBzbmFwc2hv
dCB0aGF0IHJhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzYwNzYKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQu
Y3BwOgorICAgICAgICAoV0tCdW5kbGVIaXRUZXN0UmVzdWx0Q29weVVSTEVsZW1lbnRIYW5kbGUp
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlSGl0VGVzdFJlc3VsdC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVOb2RlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlTm9kZUhhbmRs
ZUNvcHlWaXNpYmxlUmFuZ2UpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZVByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUmFuZ2VIYW5kbGUuY3BwOgorICAg
ICAgICAoV0tCdW5kbGVSYW5nZUhhbmRsZUdldEJvdW5kaW5nUmVjdEluV2luZG93Q29vcmRpbmF0
ZXMpOiBBZGRlZC4KKyAgICAgICAgKFdLQnVuZGxlUmFuZ2VIYW5kbGVDb3B5U25hcHNob3RXaXRo
T3B0aW9ucyk6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVSYW5nZUhhbmRsZVByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OnZpc2libGVSYW5nZSk6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9k
ZUhhbmRsZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVj
dGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRs
ZVJhbmdlSGFuZGxlOjpib3VuZGluZ1JlY3RJbldpbmRvd0Nvb3JkaW5hdGVzKTogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU6OnJlbmRlcmVkSW1hZ2Up
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3Rl
ZEJ1bmRsZVJhbmdlSGFuZGxlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmpl
Y3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OnVybEVsZW1lbnRIYW5kbGUpOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3Vs
dC5oOgorCiAyMDE0LTA4LTE4ICBQZXl0b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29t
PgogCiAgICAgICAgIEV4dGVuZCBpbmplY3RlZCBidW5kbGUgbm9kZSBzbmFwc2hvdHRpbmcgdG8g
c3VwcG9ydCBmb3JjZWQgd2hpdGUgYW5kIGJsYWNrIHRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5k
ZXggMzdlZDM3ZTI1OGJkZDBmODcxMzEzNDM1NDNhZjg0NDcxZWUxM2YzNC4uNjRkMzcyYWNhZWI2
MDJkZTFjZTgyOGU5YzliMDFlZTljY2ZiYzM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTEz
MjEsNiArMTMyMSw3IEBAIF9fWk43V2ViQ29yZThGb3JtRGF0YUQxRXYKIF9fWk43V2ViQ29yZThH
cmFkaWVudDEyYWRkQ29sb3JTdG9wRWZSS05TXzVDb2xvckUKIF9fWk43V2ViQ29yZThHcmFkaWVu
dEMxRVJLTlNfMTBGbG9hdFBvaW50RVMzXwogX19aTjdXZWJDb3JlOEdyYWRpZW50RDFFdgorX19a
TjdXZWJDb3JlOFBvc2l0aW9uQzFFTjNXVEYxMFBhc3NSZWZQdHJJTlNfNE5vZGVFRUVOUzBfMTBB
bmNob3JUeXBlRQogX19aTjdXZWJDb3JlOFBvc2l0aW9uQzFFTjNXVEYxMFBhc3NSZWZQdHJJTlNf
NE5vZGVFRUVpTlMwXzEwQW5jaG9yVHlwZUUKIF9fWk43V2ViQ29yZThTZXR0aW5nczEzZ1FUS2l0
RW5hYmxlZEUKIF9fWk43V2ViQ29yZThTZXR0aW5nczE0c2V0SmF2YUVuYWJsZWRFYgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUhpdFRlc3RSZXN1bHQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuY3BwCmluZGV4IDYwYTRjNjhiMDY1
YzExOWZmYmUyNDVmMTZiNGRjYmI5N2RmZThiZTMuLjViOWEwMTE2ZWJkN2QzOGM3Yzg0MGM0ODcx
MWI5MjQyODZhZGVlMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0VGVzdFJl
c3VsdC5jcHAKQEAgLTQ0LDYgKzQ0LDEyIEBAIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBXS0J1bmRs
ZUhpdFRlc3RSZXN1bHRDb3B5Tm9kZUhhbmRsZShXS0J1bmRsZUhpdFRlc3RSZXN1bHRSCiAgICAg
cmV0dXJuIHRvQVBJKG5vZGVIYW5kbGUucmVsZWFzZSgpLmxlYWtSZWYoKSk7CiB9CiAKK1dLQnVu
ZGxlTm9kZUhhbmRsZVJlZiBXS0J1bmRsZUhpdFRlc3RSZXN1bHRDb3B5VVJMRWxlbWVudEhhbmRs
ZShXS0J1bmRsZUhpdFRlc3RSZXN1bHRSZWYgaGl0VGVzdFJlc3VsdFJlZikKK3sKKyAgICBSZWZQ
dHI8SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlPiB1cmxFbGVtZW50Tm9kZUhhbmRsZSA9IHRvSW1w
bChoaXRUZXN0UmVzdWx0UmVmKS0+dXJsRWxlbWVudEhhbmRsZSgpOworICAgIHJldHVybiB0b0FQ
SSh1cmxFbGVtZW50Tm9kZUhhbmRsZS5yZWxlYXNlKCkubGVha1JlZigpKTsKK30KKwogV0tCdW5k
bGVGcmFtZVJlZiBXS0J1bmRsZUhpdFRlc3RSZXN1bHRHZXRGcmFtZShXS0J1bmRsZUhpdFRlc3RS
ZXN1bHRSZWYgaGl0VGVzdFJlc3VsdFJlZikKIHsKICAgICByZXR1cm4gdG9BUEkodG9JbXBsKGhp
dFRlc3RSZXN1bHRSZWYpLT5mcmFtZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0
VGVzdFJlc3VsdC5oCmluZGV4IDEyZTcyZWM3MWIwZmUwYzY2ZmE0Y2VjMWJjZmEzNmY5MzdkODk2
YzIuLjQwZDNjY2YyOGIxNTNkMTk1YjcyMWIxMTdhNjUwNGUyNTZmM2VjOTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVI
aXRUZXN0UmVzdWx0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuaApAQCAtNDMsNiArNDMsNyBAQCB0eXBl
ZGVmIHVpbnQzMl90IFdLQnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZTsKIFdLX0VYUE9SVCBX
S1R5cGVJRCBXS0J1bmRsZUhpdFRlc3RSZXN1bHRHZXRUeXBlSUQoKTsKIAogV0tfRVhQT1JUIFdL
QnVuZGxlTm9kZUhhbmRsZVJlZiBXS0J1bmRsZUhpdFRlc3RSZXN1bHRDb3B5Tm9kZUhhbmRsZShX
S0J1bmRsZUhpdFRlc3RSZXN1bHRSZWYgaGl0VGVzdFJlc3VsdCk7CitXS19FWFBPUlQgV0tCdW5k
bGVOb2RlSGFuZGxlUmVmIFdLQnVuZGxlSGl0VGVzdFJlc3VsdENvcHlVUkxFbGVtZW50SGFuZGxl
KFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0KTsKIAogV0tfRVhQT1JUIFdL
QnVuZGxlRnJhbWVSZWYgV0tCdW5kbGVIaXRUZXN0UmVzdWx0R2V0RnJhbWUoV0tCdW5kbGVIaXRU
ZXN0UmVzdWx0UmVmIGhpdFRlc3RSZXN1bHQpOwogV0tfRVhQT1JUIFdLQnVuZGxlRnJhbWVSZWYg
V0tCdW5kbGVIaXRUZXN0UmVzdWx0R2V0VGFyZ2V0RnJhbWUoV0tCdW5kbGVIaXRUZXN0UmVzdWx0
UmVmIGhpdFRlc3RSZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vZGVIYW5kbGUuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vZGVIYW5kbGUu
Y3BwCmluZGV4IGNiM2Y5YjZlNmVlODM2MTk2ODY3N2MwNTNkYTA5YzIxZjIwYWZkZjQuLjBkZWYy
YWVkNTljZGFjZDM0MDRiMzllNzAxMmYxMmE4OTkzODcxZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb2RlSGFuZGxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlTm9kZUhhbmRsZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJXS0J1
bmRsZU5vZGVIYW5kbGVQcml2YXRlLmgiCiAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU5vZGVI
YW5kbGUuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmgiCiAjaW5jbHVk
ZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV0tCdW5kbGVBUElDYXN0LmgiCiAjaW5jbHVkZSAi
V2ViRnJhbWUuaCIKQEAgLTYzLDYgKzY0LDEyIEBAIFdLSW1hZ2VSZWYgV0tCdW5kbGVOb2RlSGFu
ZGxlQ29weVNuYXBzaG90V2l0aE9wdGlvbnMoV0tCdW5kbGVOb2RlSGFuZGxlUmVmIG5vZGVICiAg
ICAgcmV0dXJuIHRvQVBJKGltYWdlLnJlbGVhc2UoKS5sZWFrUmVmKCkpOwogfQogCitXS0J1bmRs
ZVJhbmdlSGFuZGxlUmVmIFdLQnVuZGxlTm9kZUhhbmRsZUNvcHlWaXNpYmxlUmFuZ2UoV0tCdW5k
bGVOb2RlSGFuZGxlUmVmIG5vZGVIYW5kbGVSZWYpCit7CisgICAgUmVmUHRyPEluamVjdGVkQnVu
ZGxlUmFuZ2VIYW5kbGU+IHJhbmdlSGFuZGxlID0gdG9JbXBsKG5vZGVIYW5kbGVSZWYpLT52aXNp
YmxlUmFuZ2UoKTsKKyAgICByZXR1cm4gdG9BUEkocmFuZ2VIYW5kbGUucmVsZWFzZSgpLmxlYWtS
ZWYoKSk7Cit9CisKIFdLUmVjdCBXS0J1bmRsZU5vZGVIYW5kbGVHZXRFbGVtZW50Qm91bmRzKFdL
QnVuZGxlTm9kZUhhbmRsZVJlZiBlbGVtZW50SGFuZGxlUmVmKQogewogICAgIHJldHVybiB0b0FQ
SSh0b0ltcGwoZWxlbWVudEhhbmRsZVJlZiktPmVsZW1lbnRCb3VuZHMoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
Tm9kZUhhbmRsZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVOb2RlSGFuZGxlUHJpdmF0ZS5oCmluZGV4IGM4M2JjMzEzYmM4
YWM5YzNlMjNjNjE0ZGRjNWE1M2RiZTI2YWQ4YjEuLjAyZWNhMTAxYzdmNGNkMmFjNzc5ODRiYzY0
NDQzNmUxOTg5YjIxMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb2RlSGFuZGxlUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb2RlSGFu
ZGxlUHJpdmF0ZS5oCkBAIC00NSw2ICs0NSw3IEBAIFdLX0VYUE9SVCBXS0J1bmRsZU5vZGVIYW5k
bGVSZWYgV0tCdW5kbGVOb2RlSGFuZGxlQ29weURvY3VtZW50KFdLQnVuZGxlTm9kZUhhbmRsCiAK
IFdLX0VYUE9SVCBXS1JlY3QgV0tCdW5kbGVOb2RlSGFuZGxlR2V0UmVuZGVyUmVjdChXS0J1bmRs
ZU5vZGVIYW5kbGVSZWYgbm9kZUhhbmRsZSwgYm9vbCogaXNSZXBsYWNlZCk7CiBXS19FWFBPUlQg
V0tJbWFnZVJlZiBXS0J1bmRsZU5vZGVIYW5kbGVDb3B5U25hcHNob3RXaXRoT3B0aW9ucyhXS0J1
bmRsZU5vZGVIYW5kbGVSZWYgbm9kZUhhbmRsZSwgV0tTbmFwc2hvdE9wdGlvbnMgb3B0aW9ucyk7
CitXS19FWFBPUlQgV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiBXS0J1bmRsZU5vZGVIYW5kbGVDb3B5
VmlzaWJsZVJhbmdlKFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBub2RlSGFuZGxlKTsKIAogLyogRWxl
bWVudCBTcGVjaWZpYyBPcGVyYXRpb25zICovCiBXS19FWFBPUlQgV0tSZWN0IFdLQnVuZGxlTm9k
ZUhhbmRsZUdldEVsZW1lbnRCb3VuZHMoV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGVsZW1lbnRIYW5k
bGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVJhbmdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVSYW5nZUhhbmRsZS5jcHAKaW5kZXggZmIy
ZjdkMDVmMGEwOWY0ZTUwYzQ5ZTM3MzViZDExZTdiNGZkNTdiNC4uNzNiODhjMTM0MDYzM2M2OTA4
MThkNDhjMzQxZWE1Njk5YTgxN2VjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVJhbmdlSGFuZGxlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUmFu
Z2VIYW5kbGUuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVS
YW5nZUhhbmRsZS5oIgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldLQnVuZGxl
QVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYkltYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9JbnRS
ZWN0Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKQEAgLTQzLDMgKzQ1LDE1IEBAIFdL
QnVuZGxlUmFuZ2VIYW5kbGVSZWYgV0tCdW5kbGVSYW5nZUhhbmRsZUNyZWF0ZShKU0NvbnRleHRS
ZWYgY29udGV4dFJlZiwgSlNPYmplCiAgICAgUmVmUHRyPEluamVjdGVkQnVuZGxlUmFuZ2VIYW5k
bGU+IHJhbmdlSGFuZGxlID0gSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZTo6Z2V0T3JDcmVhdGUo
Y29udGV4dFJlZiwgb2JqZWN0UmVmKTsKICAgICByZXR1cm4gdG9BUEkocmFuZ2VIYW5kbGUucmVs
ZWFzZSgpLmxlYWtSZWYoKSk7CiB9CisKK1dLUmVjdCBXS0J1bmRsZVJhbmdlSGFuZGxlR2V0Qm91
bmRpbmdSZWN0SW5XaW5kb3dDb29yZGluYXRlcyhXS0J1bmRsZVJhbmdlSGFuZGxlUmVmIHJhbmdl
SGFuZGxlUmVmKQoreworICAgIFdlYkNvcmU6OkludFJlY3QgYm91bmRpbmdSZWN0ID0gdG9JbXBs
KHJhbmdlSGFuZGxlUmVmKS0+Ym91bmRpbmdSZWN0SW5XaW5kb3dDb29yZGluYXRlcygpOworICAg
IHJldHVybiBXS1JlY3RNYWtlKGJvdW5kaW5nUmVjdC54KCksIGJvdW5kaW5nUmVjdC55KCksIGJv
dW5kaW5nUmVjdC53aWR0aCgpLCBib3VuZGluZ1JlY3QuaGVpZ2h0KCkpOworfQorCitXS0ltYWdl
UmVmIFdLQnVuZGxlUmFuZ2VIYW5kbGVDb3B5U25hcHNob3RXaXRoT3B0aW9ucyhXS0J1bmRsZVJh
bmdlSGFuZGxlUmVmIHJhbmdlSGFuZGxlUmVmLCBXS1NuYXBzaG90T3B0aW9ucyBvcHRpb25zKQor
eworICAgIFJlZlB0cjxXZWJJbWFnZT4gaW1hZ2UgPSB0b0ltcGwocmFuZ2VIYW5kbGVSZWYpLT5y
ZW5kZXJlZEltYWdlKHRvU25hcHNob3RPcHRpb25zKG9wdGlvbnMpKTsKKyAgICByZXR1cm4gdG9B
UEkoaW1hZ2UucmVsZWFzZSgpLmxlYWtSZWYoKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUmFuZ2VIYW5kbGVQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUmFuZ2VIYW5kbGVQcml2YXRlLmgKaW5kZXggNzczMzViYjJjMjU4MWU0MTdiZTMx
ODFhYjY1MDdlMzRkZDQzMGU0Ny4uYzZhYjViZmYyMzkwM2FmMmM1Yzg1NWYyMDY3NmVjNGM0YTE5
ZGMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVJhbmdlSGFuZGxlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVSYW5nZUhhbmRsZVByaXZh
dGUuaApAQCAtMjgsNiArMjgsOCBAQAogCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tH
ZW9tZXRyeS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0ltYWdlLmg+CiAKICNpZmRlZiBfX2NwbHVz
cGx1cwogZXh0ZXJuICJDIiB7CkBAIC0zNSw2ICszNyw5IEBAIGV4dGVybiAiQyIgewogCiBXS19F
WFBPUlQgV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiBXS0J1bmRsZVJhbmdlSGFuZGxlQ3JlYXRlKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBvYmplY3QpOwogCitXS19FWFBPUlQgV0tS
ZWN0IFdLQnVuZGxlUmFuZ2VIYW5kbGVHZXRCb3VuZGluZ1JlY3RJbldpbmRvd0Nvb3JkaW5hdGVz
KFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2VIYW5kbGUpOworV0tfRVhQT1JUIFdLSW1hZ2VS
ZWYgV0tCdW5kbGVSYW5nZUhhbmRsZUNvcHlTbmFwc2hvdFdpdGhPcHRpb25zKFdLQnVuZGxlUmFu
Z2VIYW5kbGVSZWYgcmFuZ2VIYW5kbGUsIFdLU25hcHNob3RPcHRpb25zIG9wdGlvbnMpOworCiAj
aWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVk
QnVuZGxlTm9kZUhhbmRsZS5jcHAKaW5kZXggYTk4YzkyM2M2ZmVhZDMyZTRjNWE4YTIxN2Y3N2Ri
NDE3YjYxYjU2MS4uNGM5ZjI1MjRhOTRjYjU5MDBhMzdjODA5OGMzODA5N2I2MDViNTA2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5q
ZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwCkBAIC0yNiw2
ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVO
b2RlSGFuZGxlLmgiCiAKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmgiCiAj
aW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNs
dWRlICJXZWJGcmFtZUxvYWRlckNsaWVudC5oIgpAQCAtNDYsNyArNDcsMTAgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL0pTTm9kZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm9kZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUG9zaXRpb24uaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1JhbmdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJPYmplY3QuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1Zpc2libGVQb3NpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CkBAIC0xODQsNiArMTg4LDE1IEBAIFBhc3NSZWZQdHI8V2ViSW1hZ2U+IElu
amVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6cmVuZGVyZWRJbWFnZShTbmFwc2hvdE9wdGlvbnMgb3B0
CiAgICAgcmV0dXJuIGltYWdlLnJlbGVhc2UoKTsKIH0KIAorUGFzc1JlZlB0cjxJbmplY3RlZEJ1
bmRsZVJhbmdlSGFuZGxlPiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OnZpc2libGVSYW5nZSgp
IGNvbnN0Cit7CisgICAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0ID0gZmlyc3RQb3NpdGlvbkluTm9k
ZShtX25vZGUuZ2V0KCkpOworICAgIFZpc2libGVQb3NpdGlvbiBlbmQgPSBsYXN0UG9zaXRpb25J
bk5vZGUobV9ub2RlLmdldCgpKTsKKworICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBtYWtlUmFu
Z2Uoc3RhcnQsIGVuZCk7CisgICAgcmV0dXJuIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU6Omdl
dE9yQ3JlYXRlKHJhbmdlLmdldCgpKTsKK30KKwogdm9pZCBJbmplY3RlZEJ1bmRsZU5vZGVIYW5k
bGU6OnNldEhUTUxJbnB1dEVsZW1lbnRWYWx1ZUZvclVzZXIoY29uc3QgU3RyaW5nJiB2YWx1ZSkK
IHsKICAgICBpZiAoIWlzSFRNTElucHV0RWxlbWVudChtX25vZGUuZ2V0KCkpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRC
dW5kbGVOb2RlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaAppbmRleCA4ZGQxMjVlOGRjODQ1NzNk
NDA5MzE5NzYwZDk1MWQ5OWIwMTViYjEzLi40OWJmZjBjMTViNjM4ZjliMjRlZDExN2M2MDkzNWY0
NThjNmZhODI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUu
aApAQCAtNDAsNiArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCitjbGFzcyBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOwogY2xhc3MgSW5qZWN0ZWRC
dW5kbGVTY3JpcHRXb3JsZDsKIGNsYXNzIFdlYkZyYW1lOwogY2xhc3MgV2ViSW1hZ2U7CkBAIC02
MSw2ICs2Miw3IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpJbnRSZWN0IGVsZW1lbnRCb3VuZHMo
KSBjb25zdDsKICAgICBXZWJDb3JlOjpJbnRSZWN0IHJlbmRlclJlY3QoYm9vbCopIGNvbnN0Owog
ICAgIFBhc3NSZWZQdHI8V2ViSW1hZ2U+IHJlbmRlcmVkSW1hZ2UoU25hcHNob3RPcHRpb25zKTsK
KyAgICBQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU+IHZpc2libGVSYW5nZSgp
IGNvbnN0OwogICAgIHZvaWQgc2V0SFRNTElucHV0RWxlbWVudFZhbHVlRm9yVXNlcihjb25zdCBT
dHJpbmcmKTsKICAgICBib29sIGlzSFRNTElucHV0RWxlbWVudEF1dG9maWxsZWQoKSBjb25zdDsK
ICAgICB2b2lkIHNldEhUTUxJbnB1dEVsZW1lbnRBdXRvZmlsbGVkKGJvb2wpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRC
dW5kbGVSYW5nZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcAppbmRleCA5Yjk0N2QxMDNm
YTM4ZGQwZWEyNzc1NGJlNzMzYTE0MWRmNThlYjE3Li5mNjMzOTFiNGNlNWNmNzIxYTE5YjA2ODcz
ZjcxMGRjMmUzNWYxOWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJh
bmdlSGFuZGxlLmNwcApAQCAtMjYsOSArMjYsMjAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmgiCiAKKyNpbmNsdWRlICJTaGFyZWFi
bGVCaXRtYXAuaCIKKyNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0FQSUNhc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9GcmFtZVNlbGVjdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVWaWV3
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTUmFuZ2UuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JhbmdlLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9WaXNpYmxlU2VsZWN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtODQsNCArOTUsNjAgQEAgUmFuZ2UqIElu
amVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU6OmNvcmVSYW5nZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cmFuZ2UuZ2V0KCk7CiB9CiAKK1dlYkNvcmU6OkludFJlY3QgSW5qZWN0ZWRCdW5kbGVSYW5nZUhh
bmRsZTo6Ym91bmRpbmdSZWN0SW5XaW5kb3dDb29yZGluYXRlcygpIGNvbnN0Cit7CisgICAgRmxv
YXRSZWN0IGJvdW5kaW5nUmVjdCA9IG1fcmFuZ2UtPmJvdW5kaW5nUmVjdCgpOworICAgIEZyYW1l
KiBmcmFtZSA9IG1fcmFuZ2UtPm93bmVyRG9jdW1lbnQoKS5mcmFtZSgpOworICAgIHJldHVybiBm
cmFtZS0+dmlldygpLT5jb250ZW50c1RvV2luZG93KGVuY2xvc2luZ0ludFJlY3QoYm91bmRpbmdS
ZWN0KSk7Cit9CisKK1Bhc3NSZWZQdHI8V2ViSW1hZ2U+IEluamVjdGVkQnVuZGxlUmFuZ2VIYW5k
bGU6OnJlbmRlcmVkSW1hZ2UoU25hcHNob3RPcHRpb25zIG9wdGlvbnMpCit7CisgICAgRG9jdW1l
bnQmIG93bmVyRG9jdW1lbnQgPSBtX3JhbmdlLT5vd25lckRvY3VtZW50KCk7CisgICAgRnJhbWUq
IGZyYW1lID0gb3duZXJEb2N1bWVudC5mcmFtZSgpOworICAgIGlmICghZnJhbWUpCisgICAgICAg
IHJldHVybiBudWxscHRyOworCisgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBmcmFtZS0+dmll
dygpOworICAgIGlmICghZnJhbWVWaWV3KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
IFZpc2libGVTZWxlY3Rpb24gb2xkU2VsZWN0aW9uID0gZnJhbWUtPnNlbGVjdGlvbigpLnNlbGVj
dGlvbigpOworICAgIGZyYW1lLT5zZWxlY3Rpb24oKS5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVj
dGlvbihtX3JhbmdlLmdldCgpKSk7CisKKyAgICBmbG9hdCBzY2FsZUZhY3RvciA9IChvcHRpb25z
ICYgU25hcHNob3RPcHRpb25zRXhjbHVkZURldmljZVNjYWxlRmFjdG9yKSA/IDEgOiBmcmFtZS0+
cGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpOworICAgIEludFJlY3QgcGFpbnRSZWN0ID0gZW5j
bG9zaW5nSW50UmVjdChtX3JhbmdlLT5ib3VuZGluZ1JlY3QoKSk7CisgICAgSW50U2l6ZSBiYWNr
aW5nU3RvcmVTaXplID0gcGFpbnRSZWN0LnNpemUoKTsKKyAgICBiYWNraW5nU3RvcmVTaXplLnNj
YWxlKHNjYWxlRmFjdG9yKTsKKworICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGJhY2tpbmdT
dG9yZSA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlU2hhcmVhYmxlKGJhY2tpbmdTdG9yZVNpemUs
IFNoYXJlYWJsZUJpdG1hcDo6U3VwcG9ydHNBbHBoYSk7CisgICAgaWYgKCFiYWNraW5nU3RvcmUp
CisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBncmFwaGljc0NvbnRleHQgPSBi
YWNraW5nU3RvcmUtPmNyZWF0ZUdyYXBoaWNzQ29udGV4dCgpOworICAgIGdyYXBoaWNzQ29udGV4
dC0+c2NhbGUoRmxvYXRTaXplKHNjYWxlRmFjdG9yLCBzY2FsZUZhY3RvcikpOworCisgICAgcGFp
bnRSZWN0Lm1vdmUoZnJhbWVWaWV3LT5mcmFtZVJlY3QoKS54KCksIGZyYW1lVmlldy0+ZnJhbWVS
ZWN0KCkueSgpKTsKKyAgICBwYWludFJlY3QubW92ZSgtZnJhbWVWaWV3LT5zY3JvbGxPZmZzZXQo
KSk7CisKKyAgICBncmFwaGljc0NvbnRleHQtPnRyYW5zbGF0ZSgtcGFpbnRSZWN0LngoKSwgLXBh
aW50UmVjdC55KCkpOworCisgICAgUGFpbnRCZWhhdmlvciBvbGRQYWludEJlaGF2aW9yID0gZnJh
bWVWaWV3LT5wYWludEJlaGF2aW9yKCk7CisgICAgUGFpbnRCZWhhdmlvciBwYWludEJlaGF2aW9y
ID0gb2xkUGFpbnRCZWhhdmlvciB8IFBhaW50QmVoYXZpb3JTZWxlY3Rpb25Pbmx5IHwgUGFpbnRC
ZWhhdmlvckZsYXR0ZW5Db21wb3NpdGluZ0xheWVyczsKKyAgICBpZiAob3B0aW9ucyAmIFNuYXBz
aG90T3B0aW9uc0ZvcmNlQmxhY2tUZXh0KQorICAgICAgICBwYWludEJlaGF2aW9yIHw9IFBhaW50
QmVoYXZpb3JGb3JjZUJsYWNrVGV4dDsKKyAgICBpZiAob3B0aW9ucyAmIFNuYXBzaG90T3B0aW9u
c0ZvcmNlV2hpdGVUZXh0KQorICAgICAgICBwYWludEJlaGF2aW9yIHw9IFBhaW50QmVoYXZpb3JG
b3JjZVdoaXRlVGV4dDsKKworICAgIGZyYW1lVmlldy0+c2V0UGFpbnRCZWhhdmlvcihwYWludEJl
aGF2aW9yKTsKKyAgICBvd25lckRvY3VtZW50LnVwZGF0ZUxheW91dCgpOworCisgICAgZnJhbWVW
aWV3LT5wYWludChncmFwaGljc0NvbnRleHQuZ2V0KCksIHBhaW50UmVjdCk7CisgICAgZnJhbWVW
aWV3LT5zZXRQYWludEJlaGF2aW9yKG9sZFBhaW50QmVoYXZpb3IpOworCisgICAgZnJhbWUtPnNl
bGVjdGlvbigpLnNldFNlbGVjdGlvbihvbGRTZWxlY3Rpb24pOworCisgICAgcmV0dXJuIFdlYklt
YWdlOjpjcmVhdGUoYmFja2luZ1N0b3JlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9J
bmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmgKaW5kZXggNzY5NWI0
MzY2N2NjM2Y3N2M1Yzc2ODM4MmY4MzUyOGE0NzFhZTdhZS4uMTdkZWIyOTk4Y2M2YjA1YThmYTlk
YTdlOTQzYzQzNzRmZmFlMWI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxl
UmFuZ2VIYW5kbGUuaApAQCAtMjcsMTcgKzI3LDIwIEBACiAjZGVmaW5lIEluamVjdGVkQnVuZGxl
UmFuZ2VIYW5kbGVfaAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiSW1hZ2VP
cHRpb25zLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNCYXNlLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKLSAgICBjbGFzcyBSYW5nZTsKK2NsYXNzIEludFJlY3Q7CitjbGFzcyBSYW5nZTsK
IH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEluamVjdGVkQnVuZGxlU2NyaXB0V29y
bGQ7CitjbGFzcyBXZWJJbWFnZTsKIAogY2xhc3MgSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZSA6
IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZVJhbmdlSGFu
ZGxlPiB7CiBwdWJsaWM6CkBAIC00Niw2ICs0OSw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
fkluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUoKTsKIAorICAgIFdlYkNvcmU6OkludFJlY3QgYm91
bmRpbmdSZWN0SW5XaW5kb3dDb29yZGluYXRlcygpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8V2Vi
SW1hZ2U+IHJlbmRlcmVkSW1hZ2UoU25hcHNob3RPcHRpb25zKTsKKwogICAgIFdlYkNvcmU6OlJh
bmdlKiBjb3JlUmFuZ2UoKSBjb25zdDsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVz
dWx0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcAppbmRleCA4ZDEzMmRmODA2MmEzNGY5YTMyMGFhMDRm
MzQwZjQzYjA0ZTZmMjZkLi5kZmJiNzkyZjVmMjQwM2UwZjAxZGYxOTQyYjcwMzAzZDgwZGViYWJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwCkBAIC01
MSw2ICs1MSwxMSBAQCBQYXNzUmVmUHRyPEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZT4gSW5qZWN0
ZWRCdW5kbGVIaXRUZXN0UmVzdWx0Ojpub2RlSGFuZGxlKCkgYwogICAgIHJldHVybiBJbmplY3Rl
ZEJ1bmRsZU5vZGVIYW5kbGU6OmdldE9yQ3JlYXRlKG1faGl0VGVzdFJlc3VsdC5pbm5lck5vblNo
YXJlZE5vZGUoKSk7CiB9CiAKK1Bhc3NSZWZQdHI8SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlPiBJ
bmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OnVybEVsZW1lbnRIYW5kbGUoKSBjb25zdAorewor
ICAgIHJldHVybiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OmdldE9yQ3JlYXRlKG1faGl0VGVz
dFJlc3VsdC5VUkxFbGVtZW50KCkpOworfQorCiBXZWJGcmFtZSogSW5qZWN0ZWRCdW5kbGVIaXRU
ZXN0UmVzdWx0OjpmcmFtZSgpIGNvbnN0CiB7CiAgICAgTm9kZSogbm9kZSA9IG1faGl0VGVzdFJl
c3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0
VGVzdFJlc3VsdC5oCmluZGV4IGEyM2QwMDkwOGU2MmEyZjRjYzdlN2VmMzdmZjc3NjBkZGIwMjNi
NTAuLjJjN2UwZTViOGE4YjNkYzM4YTdlYmJmNjdiMDE5MTZiMmNkOWY0N2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVI
aXRUZXN0UmVzdWx0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuaApAQCAtNDQsNyArNDQsOCBAQCBwdWJs
aWM6CiAKICAgICBjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiBjb3JlSGl0VGVzdFJlc3Vs
dCgpIGNvbnN0IHsgcmV0dXJuIG1faGl0VGVzdFJlc3VsdDsgfQogCi0gICAgUGFzc1JlZlB0cjxJ
bmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU+IG5vZGVIYW5kbGUoKSBjb25zdDsgCisgICAgUGFzc1Jl
ZlB0cjxJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU+IG5vZGVIYW5kbGUoKSBjb25zdDsKKyAgICBQ
YXNzUmVmUHRyPEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZT4gdXJsRWxlbWVudEhhbmRsZSgpIGNv
bnN0OwogICAgIFdlYkZyYW1lKiBmcmFtZSgpIGNvbnN0OwogICAgIFdlYkZyYW1lKiB0YXJnZXRG
cmFtZSgpIGNvbnN0OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>