<?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>113312</bug_id>
          
          <creation_ts>2013-03-26 08:11:50 -0700</creation_ts>
          <short_desc>REGRESSION(r146879): Multiple layout test crashes in WebCore::RenderListItem::updateListMarkerNumbers (Requested by yurys on #webkit).</short_desc>
          <delta_ts>2013-03-26 10:21:12 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>110352</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>abucur</cc>
    
    <cc>esprehn</cc>
    
    <cc>rniwa</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>863679</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-26 08:11:50 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/146879 broke the build:
Multiple layout test crashes in WebCore::RenderListItem::updateListMarkerNumbers (Requested by yurys on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863681</commentid>
    <comment_count>1</comment_count>
      <attachid>195090</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-26 08:12:23 -0700</bug_when>
    <thetext>Created attachment 195090
ROLLOUT of r146879

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863684</commentid>
    <comment_count>2</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-03-26 08:13:57 -0700</bug_when>
    <thetext>The change caused multiple layout tests to crash:
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20-%20chromium.org&amp;showExpectations=true&amp;tests=editing%2Fpasteboard%2Fdrag-list-item.html%2Cediting%2Fpasteboard%2Fpaste-list-002.html%2Cfast%2Fcss%2Fpseudo-required-optional-003.html%2Cfast%2Fcss%2Fpseudo-required-optional-004.html%2Cfast%2Fcss%2Fpseudo-required-optional-006.html%2Cfast%2Fcss%2Freadonly-pseudoclass-opera-003.html%2Cfast%2Fcss%2Freadonly-pseudoclass-opera-005.html%2Cfast%2Fdom%2Fassign-to-window-status.html%2Cfast%2Fforms%2FValidityState-001.html%2Cfast%2Fforms%2FValidityState-valueMissing-005.html%2Cfast%2Fforms%2FValidityState-valueMissing-009.html%2Cfast%2Fforms%2Fautofocus-attribute.html%2Cfast%2Fjs%2Fbitwise-and-on-undefined.html%2Cinspector%2Fdebugger%2Fdom-breakpoints.html

with exception like the following:
crash log for DumpRenderTree (pid 8124):
STDOUT: &lt;empty&gt;
STDERR: ASSERTION FAILED: listNode
STDERR: ../../third_party/WebKit/Source/WebCore/rendering/RenderListItem.cpp(474) : void WebCore::RenderListItem::updateListMarkerNumbers()
STDERR: 1   0x7f92002e2f81
STDERR: 2   0x7f92002e13b4
STDERR: 3   0x7f92003147b5
STDERR: 4   0x7f9200305963
STDERR: 5   0x7f920018496a
STDERR: 6   0x7f920026c40b
STDERR: 7   0x7f9200310080
STDERR: 8   0x7f92002d99e5
STDERR: 9   0x7f9200218181
STDERR: 10  0x7f92001f641c
STDERR: 11  0x7f9200181074
STDERR: 12  0x7f92002e1368
STDERR: 13  0x7f920031085d
STDERR: 14  0x7f9200310836
STDERR: 15  0x7f92004d6a6c
STDERR: 16  0x7f92003f5c24
STDERR: 17  0x7f920048b9fe
STDERR: 18  0x7f92003f5091
STDERR: 19  0x7f9201004222
STDERR: 20  0x7f9201386800
STDERR: 21  0x7f9201936c0d
STDERR: 22  0x7f9201936c8e
STDERR: 23  0x7f9206459657
STDERR: 24  0x7f920645d902
STDERR: 25  0x7f920645b4c7
STDERR: 26  0x7f9206459212
STDERR: 27  0x7f92063d82d6
STDERR: 28  0x7f92063dac58
STDERR: 29  0x10a65fd062ee
STDERR: Received signal 11 SEGV_MAPERR 0000bbadbeef
STDERR:  [0x7f9204c427f8] base::debug::StackTrace::StackTrace()
STDERR:  [0x7f9204c420ff] base::debug::(anonymous namespace)::StackDumpSignalHandler()
STDERR:  [0x7f91fcfcccb0] &lt;unknown&gt;
STDERR:  [0x7f92002e2f8b] WebCore::RenderListItem::updateListMarkerNumbers()
STDERR:  [0x7f92002e13b4] WebCore::RenderListItem::willBeRemovedFromTree()
STDERR:  [0x7f92003147b5] WebCore::RenderObjectChildList::removeChildNode()
STDERR:  [0x7f9200305963] WebCore::RenderObject::removeChild()
STDERR:  [0x7f920018496a] WebCore::RenderBlock::removeChild()
STDERR:  [0x7f920026c40b] WebCore::RenderObject::remove()
STDERR:  [0x7f9200310080] WebCore::RenderObject::willBeDestroyed()
STDERR:  [0x7f92002d99e5] WebCore::RenderLayerModelObject::willBeDestroyed()
STDERR:  [0x7f9200218181] WebCore::RenderBoxModelObject::willBeDestroyed()
STDERR:  [0x7f92001f641c] WebCore::RenderBox::willBeDestroyed()
STDERR:  [0x7f9200181074] WebCore::RenderBlock::willBeDestroyed()
STDERR:  [0x7f92002e1368] WebCore::RenderListItem::willBeDestroyed()
STDERR:  [0x7f920031085d] WebCore::RenderObject::destroy()
STDERR:  [0x7f9200310836] WebCore::RenderObject::destroyAndCleanupAnonymousWrappers()
STDERR:  [0x7f92004d6a6c] WebCore::Node::detach()
STDERR:  [0x7f92003f5c24] WebCore::ContainerNode::detach()
STDERR:  [0x7f920048b9fe] WebCore::Element::detach()
STDERR:  [0x7f92003f5091] WebCore::ContainerNode::removeChildren()
STDERR:  [0x7f9201004222] WebCore::replaceChildrenWithFragment()
STDERR:  [0x7f9201386800] WebCore::HTMLElement::setInnerHTML()
STDERR:  [0x7f9201936c0d] WebCore::HTMLElementV8Internal::innerHTMLAttrSetter()
STDERR:  [0x7f9201936c8e] WebCore::HTMLElementV8Internal::innerHTMLAttrSetterCallback()
STDERR:  [0x7f9206459657] v8::internal::JSObject::SetPropertyWithCallback()
STDERR:  [0x7f920645d902] v8::internal::JSObject::SetPropertyForResult()
STDERR:  [0x7f920645b4c7] v8::internal::JSReceiver::SetProperty()
STDERR:  [0x7f9206459212] v8::internal::JSReceiver::SetProperty()
STDERR:  [0x7f92063d82d6] v8::internal::StoreIC::Store()
STDERR:  [0x7f92063dac58] v8::internal::StoreIC_Miss()
STDERR:  [0x10a65fd062ee] &lt;unknown&gt;
STDERR:   r8: 00007f91f3ce9980  r9: 00007f92074a30d0 r10: 0000000000000001 r11: 0000000000000000
STDERR:  r12: 000038c3e181ca49 r13: 000038c3e19f3f41 r14: 0000000000000003 r15: 00007fff8c842270
STDERR:   di: 0000000000000000  si: 00000000efcdab90  bp: 00007fff8c841520  bx: 0000000000000000
STDERR:   dx: 00007f91fcfb8aa0  ax: 00000000bbadbeef  cx: 00007f91fcce491d  sp: 00007fff8c8414f0
STDERR:   ip: 00007f92002e2f8b efl: 0000000000010246 cgf: 0000000000000033 erf: 0000000000000006
STDERR:  trp: 000000000000000e msk: 0000000000000000 cr2: 00000000bbadbeef</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863688</commentid>
    <comment_count>3</comment_count>
      <attachid>195090</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-26 08:17:40 -0700</bug_when>
    <thetext>Comment on attachment 195090
ROLLOUT of r146879

Clearing flags on attachment: 195090

Committed r146883: &lt;http://trac.webkit.org/changeset/146883&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863689</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-26 08:17:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863785</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-26 10:21:12 -0700</bug_when>
    <thetext>You guys should improve the stack trace produced by Chromium bots... That stack trace is annoyingly unhelpful (e.g. it doesn&apos;t tell us line number or offset)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195090</attachid>
            <date>2013-03-26 08:12:23 -0700</date>
            <delta_ts>2013-03-26 08:17:40 -0700</delta_ts>
            <desc>ROLLOUT of r146879</desc>
            <filename>bug-113312-20130326150806.patch</filename>
            <type>text/plain</type>
            <size>30000</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2ODgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZiZGFlYjZmOTRjNDgy
ZTVmNWUxODJkMTQxZTE1MTdhNThhMmM0Ny4uNjU5NTVjZmQ2ODRjZGRhZTE3YTRjZDdiOGQzNjYw
MTliNWExMDUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEzLTAzLTI2ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTQ2ODc5LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xNDY4NzkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMzMxMgorCisgICAgICAgIE11bHRpcGxlIGxheW91dCB0ZXN0IGNyYXNoZXMg
aW4KKyAgICAgICAgV2ViQ29yZTo6UmVuZGVyTGlzdEl0ZW06OnVwZGF0ZUxpc3RNYXJrZXJOdW1i
ZXJzIChSZXF1ZXN0ZWQgYnkKKyAgICAgICAgeXVyeXMgb24gI3dlYmtpdCkuCisKKyAgICAgICAg
KiBkb20vTm9kZS5jcHA6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKE5vZGUpOgor
ICAgICAgICAqIGRvbS9Ob2RlVHJhdmVyc2FsLmNwcDoKKyAgICAgICAgKiBkb20vTm9kZVRyYXZl
cnNhbC5oOgorICAgICAgICAoRWxlbWVudFRyYXZlcnNhbCk6CisgICAgICAgIChOb2RlVHJhdmVy
c2FsKToKKyAgICAgICAgKiBodG1sL0hUTUxMSUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTExJRWxlbWVudDo6YXR0YWNoKToKKyAgICAgICAgKiBodG1sL0hUTUxPTGlzdEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9MaXN0RWxlbWVudDo6dXBkYXRlSXRlbVZh
bHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT0xpc3RFbGVtZW50OjpyZWNhbGN1bGF0ZUl0
ZW1Db3VudCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6cHJldmlvdXNJblByZU9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OnByZXZp
b3VzU2libGluZ09yUGFyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnBhcmVudEVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6bmV4dEluUHJlT3JkZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMaXN0SXRlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjplbmNsb3NpbmdMaXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RJdGVtOjpuZXh0TGlzdEl0ZW0pOgorICAgICAgICAo
V2ViQ29yZTo6cHJldmlvdXNMaXN0SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0
SXRlbTo6Y2FsY1ZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RJdGVtOjpleHBs
aWNpdFZhbHVlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpwcmV2aW91c09yTmV4dEl0ZW0p
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEl0ZW06OnVwZGF0ZUxpc3RNYXJrZXJOdW1i
ZXJzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uaDoKKyAgICAgICAgKFJl
bmRlckxpc3RJdGVtKToKKwogMjAxMy0wMy0yNiAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRhQGdv
b2dsZS5jb20+CiAKICAgICAgICAgcmVtb2V2ZUFsbEV2ZW50TGlzdGVuZXJzKCkgc2hvdWxkIGJl
IGNhbGxlZCB0byBzaGFkb3cgdHJlZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA1ZmVhNzg2Nzk5MTI4
OTFmNWJkZGI0ODE1ZDUyZTFjMzhkNDliODY1Li45NjZmZTcyNDRkNjExMmUxNWVjMDVmN2Y4YjE0
YmQzYzQ5ZWJmMGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xMTM0LDYyICsxMTM0LDYgQEAgdm9p
ZCBOb2RlOjpkZXRhY2goKQogI2VuZGlmCiB9CiAKLU5vZGUqIE5vZGU6OnBzZXVkb0F3YXJlUHJl
dmlvdXNTaWJsaW5nKCkgY29uc3QKLXsKLSAgICBpZiAocGFyZW50RWxlbWVudCgpICYmICFwcmV2
aW91c1NpYmxpbmcoKSkgewotICAgICAgICBFbGVtZW50KiBwYXJlbnQgPSBwYXJlbnRFbGVtZW50
KCk7Ci0gICAgICAgIGlmIChpc0FmdGVyUHNldWRvRWxlbWVudCgpICYmIHBhcmVudC0+bGFzdENo
aWxkKCkpCi0gICAgICAgICAgICByZXR1cm4gcGFyZW50LT5sYXN0Q2hpbGQoKTsKLSAgICAgICAg
aWYgKCFpc0JlZm9yZVBzZXVkb0VsZW1lbnQoKSkKLSAgICAgICAgICAgIHJldHVybiBwYXJlbnQt
PnBzZXVkb0VsZW1lbnQoQkVGT1JFKTsKLSAgICB9Ci0gICAgcmV0dXJuIHByZXZpb3VzU2libGlu
ZygpOwotfQotCi1Ob2RlKiBOb2RlOjpwc2V1ZG9Bd2FyZU5leHRTaWJsaW5nKCkgY29uc3QKLXsK
LSAgICBpZiAocGFyZW50RWxlbWVudCgpICYmICFuZXh0U2libGluZygpKSB7Ci0gICAgICAgIEVs
ZW1lbnQqIHBhcmVudCA9IHBhcmVudEVsZW1lbnQoKTsKLSAgICAgICAgaWYgKGlzQmVmb3JlUHNl
dWRvRWxlbWVudCgpICYmIHBhcmVudC0+Zmlyc3RDaGlsZCgpKQotICAgICAgICAgICAgcmV0dXJu
IHBhcmVudC0+Zmlyc3RDaGlsZCgpOwotICAgICAgICBpZiAoIWlzQWZ0ZXJQc2V1ZG9FbGVtZW50
KCkpCi0gICAgICAgICAgICByZXR1cm4gcGFyZW50LT5wc2V1ZG9FbGVtZW50KEFGVEVSKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIG5leHRTaWJsaW5nKCk7Ci19Ci0KLU5vZGUqIE5vZGU6OnBzZXVkb0F3
YXJlRmlyc3RDaGlsZCgpIGNvbnN0Ci17Ci0gICAgaWYgKGlzRWxlbWVudE5vZGUoKSkgewotICAg
ICAgICBjb25zdCBFbGVtZW50KiBjdXJyZW50RWxlbWVudCA9IHRvRWxlbWVudCh0aGlzKTsKLSAg
ICAgICAgTm9kZSogZmlyc3QgPSBjdXJyZW50RWxlbWVudC0+cHNldWRvRWxlbWVudChCRUZPUkUp
OwotICAgICAgICBpZiAoZmlyc3QpCi0gICAgICAgICAgICByZXR1cm4gZmlyc3Q7Ci0gICAgICAg
IGZpcnN0ID0gY3VycmVudEVsZW1lbnQtPmZpcnN0Q2hpbGQoKTsKLSAgICAgICAgaWYgKCFmaXJz
dCkKLSAgICAgICAgICAgIGZpcnN0ID0gY3VycmVudEVsZW1lbnQtPnBzZXVkb0VsZW1lbnQoQUZU
RVIpOwotICAgICAgICByZXR1cm4gZmlyc3Q7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZpcnN0Q2hp
bGQoKTsKLX0KLQotTm9kZSogTm9kZTo6cHNldWRvQXdhcmVMYXN0Q2hpbGQoKSBjb25zdAotewot
ICAgIGlmIChpc0VsZW1lbnROb2RlKCkpIHsKLSAgICAgICAgY29uc3QgRWxlbWVudCogY3VycmVu
dEVsZW1lbnQgPSB0b0VsZW1lbnQodGhpcyk7Ci0gICAgICAgIE5vZGUqIGxhc3QgPSBjdXJyZW50
RWxlbWVudC0+cHNldWRvRWxlbWVudChBRlRFUik7Ci0gICAgICAgIGlmIChsYXN0KQotICAgICAg
ICAgICAgcmV0dXJuIGxhc3Q7Ci0gICAgICAgIGxhc3QgPSBjdXJyZW50RWxlbWVudC0+bGFzdENo
aWxkKCk7Ci0gICAgICAgIGlmICghbGFzdCkKLSAgICAgICAgICAgIGxhc3QgPSBjdXJyZW50RWxl
bWVudC0+cHNldWRvRWxlbWVudChCRUZPUkUpOwotICAgICAgICByZXR1cm4gbGFzdDsKLSAgICB9
Ci0KLSAgICByZXR1cm4gbGFzdENoaWxkKCk7Ci19Ci0KIC8vIEZJWE1FOiBUaGlzIGNvZGUgaXMg
dXNlZCBieSBlZGl0aW5nLiAgU2VlbXMgbGlrZSBpdCBjb3VsZCBtb3ZlIG92ZXIgdGhlcmUgYW5k
IG5vdCBwb2xsdXRlIE5vZGUuCiBOb2RlICpOb2RlOjpwcmV2aW91c05vZGVDb25zaWRlcmluZ0F0
b21pY05vZGVzKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDRlOGEyZTg4MTgzMWNmNjdiZDM5
MDE1NzZlMzMzMGIyMTVlMjcxNzguLjhhNmRkODJjMWZlZDA3ZTRlZjY3YzVjZmNlMjk0ZTJkN2E1
MGE1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMTk1LDEwICsxOTUsNiBAQCBwdWJsaWM6CiAgICAgTm9k
ZSogbGFzdENoaWxkKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNBdHRyaWJ1dGVzKCkgY29uc3Q7CiAg
ICAgTmFtZWROb2RlTWFwKiBhdHRyaWJ1dGVzKCkgY29uc3Q7Ci0gICAgTm9kZSogcHNldWRvQXdh
cmVOZXh0U2libGluZygpIGNvbnN0OwotICAgIE5vZGUqIHBzZXVkb0F3YXJlUHJldmlvdXNTaWJs
aW5nKCkgY29uc3Q7Ci0gICAgTm9kZSogcHNldWRvQXdhcmVGaXJzdENoaWxkKCkgY29uc3Q7Ci0g
ICAgTm9kZSogcHNldWRvQXdhcmVMYXN0Q2hpbGQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgS1VS
TCBiYXNlVVJJKCkgY29uc3Q7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZVRyYXZlcnNhbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVRyYXZlcnNhbC5jcHAK
aW5kZXggMjE2YTdhNzdhZGQ2YjU0ZTUyMTFjODdlNTI3ZWE4ODUyMDJlOGRhNi4uNDgyYTNiYWMx
MmFjZTI3ZGQxYmU4NDFjNGVjMWI3N2Q2ZmM4YjZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVUcmF2ZXJzYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlVHJh
dmVyc2FsLmNwcApAQCAtMjYsNTkgKzI2LDEwIEBACiAjaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5o
IgogCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZS5oIgotI2luY2x1ZGUgIlBzZXVkb0VsZW1lbnQu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotCiBuYW1lc3BhY2UgTm9kZVRyYXZlcnNhbCB7CiAK
LU5vZGUqIHByZXZpb3VzSW5jbHVkaW5nUHNldWRvKGNvbnN0IE5vZGUqIGN1cnJlbnQsIGNvbnN0
IE5vZGUqIHN0YXlXaXRoaW4pCi17Ci0gICAgTm9kZSogcHJldmlvdXM7Ci0gICAgaWYgKGN1cnJl
bnQgPT0gc3RheVdpdGhpbikKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYgKChwcmV2aW91cyA9
IGN1cnJlbnQtPnBzZXVkb0F3YXJlUHJldmlvdXNTaWJsaW5nKCkpKSB7Ci0gICAgICAgIHdoaWxl
IChwcmV2aW91cy0+cHNldWRvQXdhcmVMYXN0Q2hpbGQoKSkKLSAgICAgICAgICAgIHByZXZpb3Vz
ID0gcHJldmlvdXMtPnBzZXVkb0F3YXJlTGFzdENoaWxkKCk7Ci0gICAgICAgIHJldHVybiBwcmV2
aW91czsKLSAgICB9Ci0gICAgcmV0dXJuIGN1cnJlbnQtPnBhcmVudE5vZGUoKTsKLX0KLQotTm9k
ZSogbmV4dEluY2x1ZGluZ1BzZXVkbyhjb25zdCBOb2RlKiBjdXJyZW50LCBjb25zdCBOb2RlKiBz
dGF5V2l0aGluKQotewotICAgIE5vZGUqIG5leHQ7Ci0gICAgaWYgKChuZXh0ID0gY3VycmVudC0+
cHNldWRvQXdhcmVGaXJzdENoaWxkKCkpKQotICAgICAgICByZXR1cm4gbmV4dDsKLSAgICBpZiAo
Y3VycmVudCA9PSBzdGF5V2l0aGluKQotICAgICAgICByZXR1cm4gMDsKLSAgICBpZiAoKG5leHQg
PSBjdXJyZW50LT5wc2V1ZG9Bd2FyZU5leHRTaWJsaW5nKCkpKQotICAgICAgICByZXR1cm4gbmV4
dDsKLSAgICBmb3IgKGN1cnJlbnQgPSBjdXJyZW50LT5wYXJlbnROb2RlKCk7IGN1cnJlbnQ7IGN1
cnJlbnQgPSBjdXJyZW50LT5wYXJlbnROb2RlKCkpIHsKLSAgICAgICAgaWYgKGN1cnJlbnQgPT0g
c3RheVdpdGhpbikKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBpZiAoKG5leHQgPSBj
dXJyZW50LT5wc2V1ZG9Bd2FyZU5leHRTaWJsaW5nKCkpKQotICAgICAgICAgICAgcmV0dXJuIG5l
eHQ7Ci0gICAgfQotICAgIHJldHVybiAwOwotfQotCi1Ob2RlKiBuZXh0SW5jbHVkaW5nUHNldWRv
U2tpcHBpbmdDaGlsZHJlbihjb25zdCBOb2RlKiBjdXJyZW50LCBjb25zdCBOb2RlKiBzdGF5V2l0
aGluKQotewotICAgIE5vZGUqIG5leHQ7Ci0gICAgaWYgKGN1cnJlbnQgPT0gc3RheVdpdGhpbikK
LSAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYgKChuZXh0ID0gY3VycmVudC0+cHNldWRvQXdhcmVO
ZXh0U2libGluZygpKSkKLSAgICAgICAgcmV0dXJuIG5leHQ7Ci0gICAgZm9yIChjdXJyZW50ID0g
Y3VycmVudC0+cGFyZW50Tm9kZSgpOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+cGFyZW50
Tm9kZSgpKSB7Ci0gICAgICAgIGlmIChjdXJyZW50ID09IHN0YXlXaXRoaW4pCi0gICAgICAgICAg
ICByZXR1cm4gMDsKLSAgICAgICAgaWYgKChuZXh0ID0gY3VycmVudC0+cHNldWRvQXdhcmVOZXh0
U2libGluZygpKSkKLSAgICAgICAgICAgIHJldHVybiBuZXh0OwotICAgIH0KLSAgICByZXR1cm4g
MDsKLX0KLQogTm9kZSogbmV4dEFuY2VzdG9yU2libGluZyhjb25zdCBOb2RlKiBjdXJyZW50KQog
ewogICAgIEFTU0VSVCghY3VycmVudC0+bmV4dFNpYmxpbmcoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZVRyYXZlcnNhbC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVU
cmF2ZXJzYWwuaAppbmRleCAyYWQ0OTIyZTJlMjI5NjAyMzc0YjI0NzhkZmVkYTk5NzQ4ODA4NDlj
Li43YTNjYTBlNmYzM2UwZTFmZDUyMzdhMzE0MzFmZDVjZTk3MjA5YzFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVRyYXZlcnNhbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlVHJhdmVyc2FsLmgKQEAgLTM0LDI3ICszNCwxNyBAQCBuYW1lc3BhY2UgRWxlbWVudFRy
YXZlcnNhbCB7CiAvLyBGaXJzdCBlbGVtZW50IGNoaWxkIG9mIHRoZSBub2RlLgogRWxlbWVudCog
Zmlyc3RXaXRoaW4oY29uc3QgTm9kZSopOwogRWxlbWVudCogZmlyc3RXaXRoaW4oY29uc3QgQ29u
dGFpbmVyTm9kZSopOwotCiAvLyBQcmUtb3JkZXIgdHJhdmVyc2FsIHNraXBwaW5nIG5vbi1lbGVt
ZW50IG5vZGVzLgogRWxlbWVudCogbmV4dChjb25zdCBOb2RlKik7CiBFbGVtZW50KiBuZXh0KGNv
bnN0IE5vZGUqLCBjb25zdCBOb2RlKiBzdGF5V2l0aGluKTsKIEVsZW1lbnQqIG5leHQoY29uc3Qg
Q29udGFpbmVyTm9kZSopOwogRWxlbWVudCogbmV4dChjb25zdCBDb250YWluZXJOb2RlKiwgY29u
c3QgTm9kZSogc3RheVdpdGhpbik7Ci0KIC8vIExpa2UgbmV4dCwgYnV0IHNraXBzIGNoaWxkcmVu
LgogRWxlbWVudCogbmV4dFNraXBwaW5nQ2hpbGRyZW4oY29uc3QgTm9kZSopOwogRWxlbWVudCog
bmV4dFNraXBwaW5nQ2hpbGRyZW4oY29uc3QgTm9kZSosIGNvbnN0IE5vZGUqIHN0YXlXaXRoaW4p
OwogRWxlbWVudCogbmV4dFNraXBwaW5nQ2hpbGRyZW4oY29uc3QgQ29udGFpbmVyTm9kZSopOwog
RWxlbWVudCogbmV4dFNraXBwaW5nQ2hpbGRyZW4oY29uc3QgQ29udGFpbmVyTm9kZSosIGNvbnN0
IE5vZGUqIHN0YXlXaXRoaW4pOwogCi0vLyBQcmUtb3JkZXIgdHJhdmVyc2FsIGluY2x1ZGluZyB0
aGUgcHNldWRvLWVsZW1lbnRzLgotRWxlbWVudCogcHJldmlvdXNJbmNsdWRpbmdQc2V1ZG8oY29u
c3QgTm9kZSosIGNvbnN0IE5vZGUqID0gMCk7Ci1FbGVtZW50KiBuZXh0SW5jbHVkaW5nUHNldWRv
KGNvbnN0IE5vZGUqLCBjb25zdCBOb2RlKiA9IDApOwotRWxlbWVudCogbmV4dEluY2x1ZGluZ1Bz
ZXVkb1NraXBwaW5nQ2hpbGRyZW4oY29uc3QgTm9kZSosIGNvbnN0IE5vZGUqID0gMCk7Ci0KLS8v
IFV0aWxpdHkgZnVuY3Rpb24gdG8gdHJhdmVyc2Ugb25seSB0aGUgZWxlbWVudCBhbmQgcHNldWRv
LWVsZW1lbnQgc2libGluZ3Mgb2YgYSBub2RlLgotRWxlbWVudCogcHNldWRvQXdhcmVQcmV2aW91
c1NpYmxpbmcoY29uc3QgTm9kZSopOwotCiB9CiAKIG5hbWVzcGFjZSBOb2RlVHJhdmVyc2FsIHsK
QEAgLTg3LDExICs3Nyw2IEBAIE5vZGUqIG5leHRQb3N0T3JkZXIoY29uc3QgTm9kZSosIGNvbnN0
IE5vZGUqIHN0YXlXaXRoaW4gPSAwKTsKIE5vZGUqIHByZXZpb3VzUG9zdE9yZGVyKGNvbnN0IE5v
ZGUqLCBjb25zdCBOb2RlKiBzdGF5V2l0aGluID0gMCk7CiBOb2RlKiBwcmV2aW91c1NraXBwaW5n
Q2hpbGRyZW5Qb3N0T3JkZXIoY29uc3QgTm9kZSosIGNvbnN0IE5vZGUqIHN0YXlXaXRoaW4gPSAw
KTsKIAotLy8gUHJlLW9yZGVyIHRyYXZlcnNhbCBpbmNsdWRpbmcgdGhlIHBzZXVkby1lbGVtZW50
cy4KLU5vZGUqIHByZXZpb3VzSW5jbHVkaW5nUHNldWRvKGNvbnN0IE5vZGUqLCBjb25zdCBOb2Rl
KiA9IDApOwotTm9kZSogbmV4dEluY2x1ZGluZ1BzZXVkbyhjb25zdCBOb2RlKiwgY29uc3QgTm9k
ZSogPSAwKTsKLU5vZGUqIG5leHRJbmNsdWRpbmdQc2V1ZG9Ta2lwcGluZ0NoaWxkcmVuKGNvbnN0
IE5vZGUqLCBjb25zdCBOb2RlKiA9IDApOwotCiB9CiAKIG5hbWVzcGFjZSBFbGVtZW50VHJhdmVy
c2FsIHsKQEAgLTE1MCwzOSArMTM1LDYgQEAgaW5saW5lIEVsZW1lbnQqIHRyYXZlcnNlTmV4dEVs
ZW1lbnRTa2lwcGluZ0NoaWxkcmVuVGVtcGxhdGUoTm9kZVR5cGUqIGN1cnJlbnQsIGMKIH0KIGlu
bGluZSBFbGVtZW50KiBuZXh0U2tpcHBpbmdDaGlsZHJlbihjb25zdCBDb250YWluZXJOb2RlKiBj
dXJyZW50LCBjb25zdCBOb2RlKiBzdGF5V2l0aGluKSB7IHJldHVybiB0cmF2ZXJzZU5leHRFbGVt
ZW50U2tpcHBpbmdDaGlsZHJlblRlbXBsYXRlKGN1cnJlbnQsIHN0YXlXaXRoaW4pOyB9CiBpbmxp
bmUgRWxlbWVudCogbmV4dFNraXBwaW5nQ2hpbGRyZW4oY29uc3QgTm9kZSogY3VycmVudCwgY29u
c3QgTm9kZSogc3RheVdpdGhpbikgeyByZXR1cm4gdHJhdmVyc2VOZXh0RWxlbWVudFNraXBwaW5n
Q2hpbGRyZW5UZW1wbGF0ZShjdXJyZW50LCBzdGF5V2l0aGluKTsgfQotCi1pbmxpbmUgRWxlbWVu
dCogcHJldmlvdXNJbmNsdWRpbmdQc2V1ZG8oY29uc3QgTm9kZSogY3VycmVudCwgY29uc3QgTm9k
ZSogc3RheVdpdGhpbikKLXsKLSAgICBOb2RlKiBub2RlID0gTm9kZVRyYXZlcnNhbDo6cHJldmlv
dXNJbmNsdWRpbmdQc2V1ZG8oY3VycmVudCwgc3RheVdpdGhpbik7Ci0gICAgd2hpbGUgKG5vZGUg
JiYgIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgbm9kZSA9IE5vZGVUcmF2ZXJzYWw6
OnByZXZpb3VzSW5jbHVkaW5nUHNldWRvKG5vZGUsIHN0YXlXaXRoaW4pOwotICAgIHJldHVybiB0
b0VsZW1lbnQobm9kZSk7Ci19Ci0KLWlubGluZSBFbGVtZW50KiBuZXh0SW5jbHVkaW5nUHNldWRv
KGNvbnN0IE5vZGUqIGN1cnJlbnQsIGNvbnN0IE5vZGUqIHN0YXlXaXRoaW4pCi17Ci0gICAgTm9k
ZSogbm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHRJbmNsdWRpbmdQc2V1ZG8oY3VycmVudCwgc3Rh
eVdpdGhpbik7Ci0gICAgd2hpbGUgKG5vZGUgJiYgIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKLSAg
ICAgICAgbm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHRJbmNsdWRpbmdQc2V1ZG8obm9kZSwgc3Rh
eVdpdGhpbik7Ci0gICAgcmV0dXJuIHRvRWxlbWVudChub2RlKTsKLX0KLQotaW5saW5lIEVsZW1l
bnQqIG5leHRJbmNsdWRpbmdQc2V1ZG9Ta2lwcGluZ0NoaWxkcmVuKGNvbnN0IE5vZGUqIGN1cnJl
bnQsIGNvbnN0IE5vZGUqIHN0YXlXaXRoaW4pCi17Ci0gICAgTm9kZSogbm9kZSA9IE5vZGVUcmF2
ZXJzYWw6Om5leHRJbmNsdWRpbmdQc2V1ZG9Ta2lwcGluZ0NoaWxkcmVuKGN1cnJlbnQsIHN0YXlX
aXRoaW4pOwotICAgIHdoaWxlIChub2RlICYmICFub2RlLT5pc0VsZW1lbnROb2RlKCkpCi0gICAg
ICAgIG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0SW5jbHVkaW5nUHNldWRvU2tpcHBpbmdDaGls
ZHJlbihub2RlLCBzdGF5V2l0aGluKTsKLSAgICByZXR1cm4gdG9FbGVtZW50KG5vZGUpOwotfQot
Ci1pbmxpbmUgRWxlbWVudCogcHNldWRvQXdhcmVQcmV2aW91c1NpYmxpbmcoY29uc3QgTm9kZSog
Y3VycmVudCkKLXsKLSAgICBOb2RlKiBub2RlID0gY3VycmVudC0+cHNldWRvQXdhcmVQcmV2aW91
c1NpYmxpbmcoKTsKLSAgICB3aGlsZSAobm9kZSAmJiAhbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQot
ICAgICAgICBub2RlID0gbm9kZS0+cHNldWRvQXdhcmVQcmV2aW91c1NpYmxpbmcoKTsKLSAgICBy
ZXR1cm4gdG9FbGVtZW50KG5vZGUpOwotfQotCiB9CiAKIG5hbWVzcGFjZSBOb2RlVHJhdmVyc2Fs
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuY3BwCmluZGV4IDJlZjBkZDc2YWVhMTZm
OTVlYmRmYzI1ZTU5NmEwMzEwMjNjZDY2Y2QuLjZkMGE1MjNlNmVmOThkM2MzZGYwODhkNmYzNDky
NDNkNGFkZGUyZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmNwcApAQCAtOTIs
MjMgKzkyLDIzIEBAIHZvaWQgSFRNTExJRWxlbWVudDo6YXR0YWNoKCkKICAgICBIVE1MRWxlbWVu
dDo6YXR0YWNoKCk7CiAKICAgICBpZiAocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5pc0xpc3RJ
dGVtKCkpIHsKLSAgICAgICAgUmVuZGVyTGlzdEl0ZW0qIGxpc3RJdGVtUmVuZGVyZXIgPSB0b1Jl
bmRlckxpc3RJdGVtKHJlbmRlcmVyKCkpOworICAgICAgICBSZW5kZXJMaXN0SXRlbSogcmVuZGVy
ID0gdG9SZW5kZXJMaXN0SXRlbShyZW5kZXJlcigpKTsKIAogICAgICAgICAvLyBGaW5kIHRoZSBl
bmNsb3NpbmcgbGlzdCBub2RlLgotICAgICAgICBFbGVtZW50KiBsaXN0Tm9kZSA9IDA7Ci0gICAg
ICAgIEVsZW1lbnQqIGN1cnJlbnQgPSB0aGlzOworICAgICAgICBOb2RlKiBsaXN0Tm9kZSA9IDA7
CisgICAgICAgIEV2ZW50UGF0aFdhbGtlciB3YWxrZXIodGhpcyk7CiAgICAgICAgIHdoaWxlICgh
bGlzdE5vZGUpIHsKLSAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LT5wYXJlbnRFbGVtZW50
KCk7Ci0gICAgICAgICAgICBpZiAoIWN1cnJlbnQpCisgICAgICAgICAgICB3YWxrZXIubW92ZVRv
UGFyZW50KCk7CisgICAgICAgICAgICBpZiAoIXdhbGtlci5ub2RlKCkpCiAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICBpZiAoY3VycmVudC0+aGFzVGFnTmFtZSh1bFRhZykgfHwg
Y3VycmVudC0+aGFzVGFnTmFtZShvbFRhZykpCi0gICAgICAgICAgICAgICAgbGlzdE5vZGUgPSBj
dXJyZW50OworICAgICAgICAgICAgaWYgKHdhbGtlci5ub2RlKCktPmhhc1RhZ05hbWUodWxUYWcp
IHx8IHdhbGtlci5ub2RlKCktPmhhc1RhZ05hbWUob2xUYWcpKQorICAgICAgICAgICAgICAgIGxp
c3ROb2RlID0gd2Fsa2VyLm5vZGUoKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIElmIHdlIGFy
ZSBub3QgaW4gYSBsaXN0LCB0ZWxsIHRoZSByZW5kZXJlciBzbyBpdCBjYW4gcG9zaXRpb24gdXMg
aW5zaWRlLgogICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIGNoYW5nZSBvdXIgc3R5bGUgdG8g
c2F5ICJpbnNpZGUiIHNpbmNlIHRoYXQgd291bGQgYWZmZWN0IG5lc3RlZCBub2Rlcy4KICAgICAg
ICAgaWYgKCFsaXN0Tm9kZSkKLSAgICAgICAgICAgIGxpc3RJdGVtUmVuZGVyZXItPnNldE5vdElu
TGlzdCh0cnVlKTsKKyAgICAgICAgICAgIHJlbmRlci0+c2V0Tm90SW5MaXN0KHRydWUpOwogCiAg
ICAgICAgIHBhcnNlVmFsdWUoZmFzdEdldEF0dHJpYnV0ZSh2YWx1ZUF0dHIpKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmNwcAppbmRleCAzOTZlMzQwNGZlOTMx
NjQ2NjIwMThkYTI1NGQwMDhiNGZlNTRiNThlLi40NWZlNDI2ZjQ3MmZjOTQ5M2JiZTFmNGZjMjA4
MDg4ODBlZmVhN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5jcHAK
QEAgLTEwNiw3ICsxMDYsNyBAQCB2b2lkIEhUTUxPTGlzdEVsZW1lbnQ6OnNldFN0YXJ0KGludCBz
dGFydCkKIAogdm9pZCBIVE1MT0xpc3RFbGVtZW50Ojp1cGRhdGVJdGVtVmFsdWVzKCkKIHsKLSAg
ICBmb3IgKFJlbmRlckxpc3RJdGVtKiBsaXN0SXRlbSA9IFJlbmRlckxpc3RJdGVtOjpuZXh0TGlz
dEl0ZW0odGhpcyk7IGxpc3RJdGVtOyBsaXN0SXRlbSA9IFJlbmRlckxpc3RJdGVtOjpuZXh0TGlz
dEl0ZW0odGhpcywgbGlzdEl0ZW0pKQorICAgIGZvciAoUmVuZGVyTGlzdEl0ZW0qIGxpc3RJdGVt
ID0gUmVuZGVyTGlzdEl0ZW06Om5leHRMaXN0SXRlbShyZW5kZXJlcigpKTsgbGlzdEl0ZW07IGxp
c3RJdGVtID0gUmVuZGVyTGlzdEl0ZW06Om5leHRMaXN0SXRlbShyZW5kZXJlcigpLCBsaXN0SXRl
bSkpCiAgICAgICAgIGxpc3RJdGVtLT51cGRhdGVWYWx1ZSgpOwogfQogCkBAIC0xMTQsNyArMTE0
LDcgQEAgdm9pZCBIVE1MT0xpc3RFbGVtZW50OjpyZWNhbGN1bGF0ZUl0ZW1Db3VudCgpCiB7CiAg
ICAgbV9pdGVtQ291bnQgPSAwOwogCi0gICAgZm9yIChSZW5kZXJMaXN0SXRlbSogbGlzdEl0ZW0g
PSBSZW5kZXJMaXN0SXRlbTo6bmV4dExpc3RJdGVtKHRoaXMpOyBsaXN0SXRlbTsgbGlzdEl0ZW0g
PSBSZW5kZXJMaXN0SXRlbTo6bmV4dExpc3RJdGVtKHRoaXMsIGxpc3RJdGVtKSkKKyAgICBmb3Ig
KFJlbmRlckxpc3RJdGVtKiBsaXN0SXRlbSA9IFJlbmRlckxpc3RJdGVtOjpuZXh0TGlzdEl0ZW0o
cmVuZGVyZXIoKSk7IGxpc3RJdGVtOyBsaXN0SXRlbSA9IFJlbmRlckxpc3RJdGVtOjpuZXh0TGlz
dEl0ZW0ocmVuZGVyZXIoKSwgbGlzdEl0ZW0pKQogICAgICAgICBtX2l0ZW1Db3VudCsrOwogCiAg
ICAgbV9zaG91bGRSZWNhbGN1bGF0ZUl0ZW1Db3VudCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwCmluZGV4IDU3MmM5YTI5YWVjYThlYjFlNmVlMTU2
MWM4Y2E2NWQ3NjNiZTdiZWYuLjM0YjJjYjg1MzBlMDM1NGMwYzk2Zjc2NTBlNmI1N2UwOTNkYTk4
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKQEAgLTU3
LDMwICs1Nyw5NCBAQCBzdGF0aWMgQ291bnRlck1hcHMmIGNvdW50ZXJNYXBzKCkKIC8vIGluY2x1
ZGluZyBwc2V1ZG8gZWxlbWVudHMgYXMgZGVmaW5lZCBpbiBDU1MgMi4xLgogc3RhdGljIFJlbmRl
ck9iamVjdCogcHJldmlvdXNJblByZU9yZGVyKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQog
ewotICAgIEVsZW1lbnQqIHNlbGYgPSB0b0VsZW1lbnQob2JqZWN0LT5ub2RlKCkpOwotICAgIEVs
ZW1lbnQqIHByZXZpb3VzID0gRWxlbWVudFRyYXZlcnNhbDo6cHJldmlvdXNJbmNsdWRpbmdQc2V1
ZG8oc2VsZik7Ci0gICAgd2hpbGUgKHByZXZpb3VzICYmICFwcmV2aW91cy0+cmVuZGVyZXIoKSkK
LSAgICAgICAgcHJldmlvdXMgPSBFbGVtZW50VHJhdmVyc2FsOjpwcmV2aW91c0luY2x1ZGluZ1Bz
ZXVkbyhwcmV2aW91cyk7Ci0gICAgcmV0dXJuIHByZXZpb3VzID8gcHJldmlvdXMtPnJlbmRlcmVy
KCkgOiAwOworICAgIEVsZW1lbnQqIHBhcmVudDsKKyAgICBFbGVtZW50KiBzaWJsaW5nOworICAg
IHN3aXRjaCAob2JqZWN0LT5zdHlsZSgpLT5zdHlsZVR5cGUoKSkgeworICAgIGNhc2UgTk9QU0VV
RE86CisgICAgICAgIEFTU0VSVCghb2JqZWN0LT5pc0Fub255bW91cygpKTsKKyAgICAgICAgcGFy
ZW50ID0gdG9FbGVtZW50KG9iamVjdC0+bm9kZSgpKTsKKyAgICAgICAgc2libGluZyA9IHBhcmVu
dC0+cHJldmlvdXNFbGVtZW50U2libGluZygpOworICAgICAgICBwYXJlbnQgPSBwYXJlbnQtPnBh
cmVudEVsZW1lbnQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCRUZPUkU6CisgICAgICAg
IHJldHVybiBvYmplY3QtPmdlbmVyYXRpbmdOb2RlKCktPnJlbmRlcmVyKCk7IC8vIEl0IGlzIGFs
d2F5cyB0aGUgZ2VuZXJhdGluZyBub2RlJ3MgcmVuZGVyZXIKKyAgICBjYXNlIEFGVEVSOgorICAg
ICAgICBwYXJlbnQgPSB0b0VsZW1lbnQob2JqZWN0LT5nZW5lcmF0aW5nTm9kZSgpKTsKKyAgICAg
ICAgc2libGluZyA9IHBhcmVudC0+bGFzdEVsZW1lbnRDaGlsZCgpOworICAgICAgICBicmVhazsK
KyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgfQorICAgIHdoaWxlIChzaWJsaW5nKSB7CisgICAgICAgIGlmIChSZW5kZXJP
YmplY3QqIHJlbmRlcmVyID0gc2libGluZy0+cmVuZGVyZXIoKSkgeworICAgICAgICAgICAgaWYg
KFJlbmRlck9iamVjdCogYWZ0ZXIgPSBzaWJsaW5nLT5wc2V1ZG9FbGVtZW50UmVuZGVyZXIoQUZU
RVIpKQorICAgICAgICAgICAgICAgIHJldHVybiBhZnRlcjsKKyAgICAgICAgICAgIHBhcmVudCA9
IHNpYmxpbmc7CisgICAgICAgICAgICBzaWJsaW5nID0gc2libGluZy0+bGFzdEVsZW1lbnRDaGls
ZCgpOworICAgICAgICAgICAgaWYgKCFzaWJsaW5nKSB7CisgICAgICAgICAgICAgICAgaWYgKFJl
bmRlck9iamVjdCogYmVmb3JlID0gdG9FbGVtZW50KHJlbmRlcmVyLT5ub2RlKCkpLT5wc2V1ZG9F
bGVtZW50UmVuZGVyZXIoQkVGT1JFKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJlZm9y
ZTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVuZGVyZXI7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgc2libGluZyA9IHNpYmxpbmctPnByZXZpb3VzRWxlbWVu
dFNpYmxpbmcoKTsKKyAgICB9CisgICAgaWYgKCFwYXJlbnQpCisgICAgICAgIHJldHVybiAwOwor
ICAgIGlmIChSZW5kZXJPYmplY3QqIGJlZm9yZSA9IHBhcmVudC0+cHNldWRvRWxlbWVudFJlbmRl
cmVyKEJFRk9SRSkpCisgICAgICAgIHJldHVybiBiZWZvcmU7CisgICAgcmV0dXJuIHBhcmVudC0+
cmVuZGVyZXIoKTsKIH0KIAogLy8gVGhpcyBmdW5jdGlvbiBwcm9jZXNzZXMgdGhlIHJlbmRlcmVy
IHRyZWUgaW4gdGhlIG9yZGVyIG9mIHRoZSBET00gdHJlZQogLy8gaW5jbHVkaW5nIHBzZXVkbyBl
bGVtZW50cyBhcyBkZWZpbmVkIGluIENTUyAyLjEuCiBzdGF0aWMgUmVuZGVyT2JqZWN0KiBwcmV2
aW91c1NpYmxpbmdPclBhcmVudChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsKLSAgICBF
bGVtZW50KiBzZWxmID0gdG9FbGVtZW50KG9iamVjdC0+bm9kZSgpKTsKLSAgICBFbGVtZW50KiBw
cmV2aW91cyA9IEVsZW1lbnRUcmF2ZXJzYWw6OnBzZXVkb0F3YXJlUHJldmlvdXNTaWJsaW5nKHNl
bGYpOwotICAgIHdoaWxlIChwcmV2aW91cyAmJiAhcHJldmlvdXMtPnJlbmRlcmVyKCkpCi0gICAg
ICAgIHByZXZpb3VzID0gRWxlbWVudFRyYXZlcnNhbDo6cHNldWRvQXdhcmVQcmV2aW91c1NpYmxp
bmcocHJldmlvdXMpOwotICAgIGlmIChwcmV2aW91cykKLSAgICAgICAgcmV0dXJuIHByZXZpb3Vz
LT5yZW5kZXJlcigpOwotICAgIHByZXZpb3VzID0gc2VsZi0+cGFyZW50RWxlbWVudCgpOwotICAg
IHJldHVybiBwcmV2aW91cyA/IHByZXZpb3VzLT5yZW5kZXJlcigpIDogMDsKKyAgICBFbGVtZW50
KiBwYXJlbnQ7CisgICAgRWxlbWVudCogc2libGluZzsKKyAgICBzd2l0Y2ggKG9iamVjdC0+c3R5
bGUoKS0+c3R5bGVUeXBlKCkpIHsKKyAgICBjYXNlIE5PUFNFVURPOgorICAgICAgICBBU1NFUlQo
IW9iamVjdC0+aXNBbm9ueW1vdXMoKSk7CisgICAgICAgIHBhcmVudCA9IHRvRWxlbWVudChvYmpl
Y3QtPm5vZGUoKSk7CisgICAgICAgIHNpYmxpbmcgPSBwYXJlbnQtPnByZXZpb3VzRWxlbWVudFNp
YmxpbmcoKTsKKyAgICAgICAgcGFyZW50ID0gcGFyZW50LT5wYXJlbnRFbGVtZW50KCk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQkVGT1JFOgorICAgICAgICByZXR1cm4gb2JqZWN0LT5nZW5l
cmF0aW5nTm9kZSgpLT5yZW5kZXJlcigpOyAvLyBJdCBpcyBhbHdheXMgdGhlIGdlbmVyYXRpbmcg
bm9kZSdzIHJlbmRlcmVyCisgICAgY2FzZSBBRlRFUjoKKyAgICAgICAgcGFyZW50ID0gdG9FbGVt
ZW50KG9iamVjdC0+Z2VuZXJhdGluZ05vZGUoKSk7CisgICAgICAgIHNpYmxpbmcgPSBwYXJlbnQt
Pmxhc3RFbGVtZW50Q2hpbGQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICB3
aGlsZSAoc2libGluZykgeworICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHNp
YmxpbmctPnJlbmRlcmVyKCkpIC8vIFRoaXMgc2tpcHMgaW52aXNpYmxlIG5vZGVzCisgICAgICAg
ICAgICByZXR1cm4gcmVuZGVyZXI7CisgICAgICAgIHNpYmxpbmcgPSBzaWJsaW5nLT5wcmV2aW91
c0VsZW1lbnRTaWJsaW5nKCk7CisgICAgfQorICAgIGlmICghcGFyZW50KQorICAgICAgICByZXR1
cm4gMDsKKyAgICBpZiAoUmVuZGVyT2JqZWN0KiBiZWZvcmUgPSBwYXJlbnQtPnBzZXVkb0VsZW1l
bnRSZW5kZXJlcihCRUZPUkUpKQorICAgICAgICByZXR1cm4gYmVmb3JlOworICAgIHJldHVybiBw
YXJlbnQtPnJlbmRlcmVyKCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgRWxlbWVudCogcGFyZW50RWxl
bWVudChSZW5kZXJPYmplY3QqIG9iamVjdCkKK3N0YXRpYyBFbGVtZW50KiBwYXJlbnRFbGVtZW50
KFJlbmRlck9iamVjdCogb2JqZWN0KQogewotICAgIHJldHVybiB0b0VsZW1lbnQob2JqZWN0LT5u
b2RlKCkpLT5wYXJlbnRFbGVtZW50KCk7CisgICAgc3dpdGNoIChvYmplY3QtPnN0eWxlKCktPnN0
eWxlVHlwZSgpKSB7CisgICAgY2FzZSBOT1BTRVVETzoKKyAgICAgICAgQVNTRVJUKCFvYmplY3Qt
PmlzQW5vbnltb3VzKCkpOworICAgICAgICByZXR1cm4gdG9FbGVtZW50KG9iamVjdC0+bm9kZSgp
KS0+cGFyZW50RWxlbWVudCgpOworICAgIGNhc2UgQkVGT1JFOgorICAgIGNhc2UgQUZURVI6Cisg
ICAgICAgIHJldHVybiB0b0VsZW1lbnQob2JqZWN0LT5nZW5lcmF0aW5nTm9kZSgpKTsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgfQogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgYXJlUmVuZGVyZXJzRWxlbWVudHNTaWJs
aW5ncyhSZW5kZXJPYmplY3QqIGZpcnN0LCBSZW5kZXJPYmplY3QqIHNlY29uZCkKQEAgLTkyLDEx
ICsxNTYsNDQgQEAgc3RhdGljIGlubGluZSBib29sIGFyZVJlbmRlcmVyc0VsZW1lbnRzU2libGlu
Z3MoUmVuZGVyT2JqZWN0KiBmaXJzdCwgUmVuZGVyT2JqZWMKIC8vIGluY2x1ZGluZyBwc2V1ZG8g
ZWxlbWVudHMgYXMgZGVmaW5lZCBpbiBDU1MgMi4xLgogc3RhdGljIFJlbmRlck9iamVjdCogbmV4
dEluUHJlT3JkZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IEVsZW1lbnQqIHN0
YXlXaXRoaW4sIGJvb2wgc2tpcERlc2NlbmRhbnRzID0gZmFsc2UpCiB7Ci0gICAgRWxlbWVudCog
c2VsZiA9IHRvRWxlbWVudChvYmplY3QtPm5vZGUoKSk7Ci0gICAgRWxlbWVudCogbmV4dCA9IHNr
aXBEZXNjZW5kYW50cyA/IEVsZW1lbnRUcmF2ZXJzYWw6Om5leHRJbmNsdWRpbmdQc2V1ZG9Ta2lw
cGluZ0NoaWxkcmVuKHNlbGYsIHN0YXlXaXRoaW4pIDogRWxlbWVudFRyYXZlcnNhbDo6bmV4dElu
Y2x1ZGluZ1BzZXVkbyhzZWxmLCBzdGF5V2l0aGluKTsKLSAgICB3aGlsZSAobmV4dCAmJiAhbmV4
dC0+cmVuZGVyZXIoKSkKLSAgICAgICAgbmV4dCA9IHNraXBEZXNjZW5kYW50cyA/IEVsZW1lbnRU
cmF2ZXJzYWw6Om5leHRJbmNsdWRpbmdQc2V1ZG9Ta2lwcGluZ0NoaWxkcmVuKG5leHQsIHN0YXlX
aXRoaW4pIDogRWxlbWVudFRyYXZlcnNhbDo6bmV4dEluY2x1ZGluZ1BzZXVkbyhuZXh0LCBzdGF5
V2l0aGluKTsKLSAgICByZXR1cm4gbmV4dCA/IG5leHQtPnJlbmRlcmVyKCkgOiAwOworICAgIEVs
ZW1lbnQqIHNlbGY7CisgICAgRWxlbWVudCogY2hpbGQ7CisgICAgc2VsZiA9IHRvRWxlbWVudChv
YmplY3QtPmdlbmVyYXRpbmdOb2RlKCkpOworICAgIGlmIChza2lwRGVzY2VuZGFudHMpCisgICAg
ICAgIGdvdG8gbmV4dHNpYmxpbmc7CisgICAgc3dpdGNoIChvYmplY3QtPnN0eWxlKCktPnN0eWxl
VHlwZSgpKSB7CisgICAgY2FzZSBOT1BTRVVETzoKKyAgICAgICAgQVNTRVJUKCFvYmplY3QtPmlz
QW5vbnltb3VzKCkpOworICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBiZWZvcmUgPSBzZWxmLT5w
c2V1ZG9FbGVtZW50UmVuZGVyZXIoQkVGT1JFKSkKKyAgICAgICAgICAgIHJldHVybiBiZWZvcmU7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQkVGT1JFOgorICAgICAgICBicmVhazsKKyAgICBj
YXNlIEFGVEVSOgorICAgICAgICBnb3RvIG5leHRzaWJsaW5nOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAg
Y2hpbGQgPSBFbGVtZW50VHJhdmVyc2FsOjpmaXJzdFdpdGhpbihzZWxmKTsKKyAgICB3aGlsZSAo
dHJ1ZSkgeworICAgICAgICB3aGlsZSAoY2hpbGQpIHsKKyAgICAgICAgICAgIGlmIChSZW5kZXJP
YmplY3QqIHJlbmRlcmVyID0gY2hpbGQtPnJlbmRlcmVyKCkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIHJlbmRlcmVyOworICAgICAgICAgICAgY2hpbGQgPSBFbGVtZW50VHJhdmVyc2FsOjpuZXh0
U2tpcHBpbmdDaGlsZHJlbihjaGlsZCwgc2VsZik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFJl
bmRlck9iamVjdCogYWZ0ZXIgPSBzZWxmLT5wc2V1ZG9FbGVtZW50UmVuZGVyZXIoQUZURVIpKQor
ICAgICAgICAgICAgcmV0dXJuIGFmdGVyOworbmV4dHNpYmxpbmc6CisgICAgICAgIGlmIChzZWxm
ID09IHN0YXlXaXRoaW4pCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgY2hpbGQgPSBF
bGVtZW50VHJhdmVyc2FsOjpuZXh0U2tpcHBpbmdDaGlsZHJlbihzZWxmKTsKKyAgICAgICAgc2Vs
ZiA9IHNlbGYtPnBhcmVudEVsZW1lbnQoKTsKKyAgICAgICAgaWYgKCFzZWxmKSB7CisgICAgICAg
ICAgICBBU1NFUlQoIWNoaWxkKTsgLy8gV2UgY2FuIG9ubHkgcmVhY2ggdGhpcyBpZiB3ZSBhcmUg
c2VhcmNoaW5nIGJleW9uZCB0aGUgcm9vdCBlbGVtZW50CisgICAgICAgICAgICByZXR1cm4gMDsg
Ly8gIHdoaWNoIGNhbm5vdCBoYXZlIHNpYmxpbmdzCisgICAgICAgIH0KKyAgICB9CiB9CiAKIHN0
YXRpYyBib29sIHBsYW5Db3VudGVyKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBBdG9taWNT
dHJpbmcmIGlkZW50aWZpZXIsIGJvb2wmIGlzUmVzZXQsIGludCYgdmFsdWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmNwcAppbmRleCAxMTFlNmJkZDZmMzgzYTJj
YTE0MjM1ZTEwZDI2MTZmNThhMWUyNDM2Li5mMmMyZmIzMjU2ZDlmMTk2MTk2Y2VkNzVjZjFkNmM4
NTI2MmQyMDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dEl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5j
cHAKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxPTGlzdEVsZW1lbnQuaCIKLSNpbmNsdWRlICJO
b2RlVHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdE1hcmtlci5oIgogI2luY2x1ZGUg
IlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTdHlsZUluaGVyaXRlZERhdGEuaCIKQEAgLTk3LDE3
ICs5NiwxOCBAQCBzdGF0aWMgYm9vbCBpc0xpc3QoTm9kZSogbm9kZSkKICAgICByZXR1cm4gKG5v
ZGUtPmhhc1RhZ05hbWUodWxUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUob2xUYWcpKTsKIH0KIAot
Ly8gUmV0dXJucyB0aGUgZW5jbG9zaW5nIGxpc3Qgd2l0aCByZXNwZWN0IHRvIHRoZSBET00gb3Jk
ZXIuCiBzdGF0aWMgTm9kZSogZW5jbG9zaW5nTGlzdChjb25zdCBSZW5kZXJMaXN0SXRlbSogbGlz
dEl0ZW0pCiB7Ci0gICAgTm9kZSogbGlzdEl0ZW1Ob2RlID0gbGlzdEl0ZW0tPm5vZGUoKTsKICAg
ICBOb2RlKiBmaXJzdE5vZGUgPSAwOwotICAgIC8vIFdlIHVzZSBwYXJlbnROb2RlIGJlY2F1c2Ug
dGhlIGVuY2xvc2luZyBsaXN0IGNvdWxkIGJlIGEgU2hhZG93Um9vdCB0aGF0J3Mgbm90IEVsZW1l
bnQuCi0gICAgZm9yIChOb2RlKiBwYXJlbnQgPSBsaXN0SXRlbU5vZGUtPnBhcmVudE5vZGUoKTsg
cGFyZW50OyBwYXJlbnQgPSBwYXJlbnQtPnBhcmVudE5vZGUoKSkgewotICAgICAgICBpZiAoaXNM
aXN0KHBhcmVudCkpCi0gICAgICAgICAgICByZXR1cm4gcGFyZW50OwotICAgICAgICBpZiAoIWZp
cnN0Tm9kZSkKLSAgICAgICAgICAgIGZpcnN0Tm9kZSA9IHBhcmVudDsKKworICAgIGZvciAoY29u
c3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGxpc3RJdGVtLT5wYXJlbnQoKTsgcmVuZGVyZXI7
IHJlbmRlcmVyID0gcmVuZGVyZXItPnBhcmVudCgpKSB7CisgICAgICAgIE5vZGUqIG5vZGUgPSBy
ZW5kZXJlci0+bm9kZSgpOworICAgICAgICBpZiAobm9kZSkgeworICAgICAgICAgICAgaWYgKGlz
TGlzdChub2RlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbm9kZTsKKyAgICAgICAgICAgIGlm
ICghZmlyc3ROb2RlKQorICAgICAgICAgICAgICAgIGZpcnN0Tm9kZSA9IG5vZGU7CisgICAgICAg
IH0KICAgICB9CiAKICAgICAvLyBJZiB0aGVyZSdzIG5vIGFjdHVhbCA8dWw+IG9yIDxvbD4gbGlz
dCBlbGVtZW50LCB0aGVuIHRoZSBmaXJzdCBmb3VuZApAQCAtMTE2LDUxICsxMTYsNDIgQEAgc3Rh
dGljIE5vZGUqIGVuY2xvc2luZ0xpc3QoY29uc3QgUmVuZGVyTGlzdEl0ZW0qIGxpc3RJdGVtKQog
ICAgIHJldHVybiBmaXJzdE5vZGU7CiB9CiAKLS8vIFJldHVybnMgdGhlIG5leHQgbGlzdCBpdGVt
IHdpdGggcmVzcGVjdCB0byB0aGUgRE9NIG9yZGVyLgotUmVuZGVyTGlzdEl0ZW0qIFJlbmRlckxp
c3RJdGVtOjpuZXh0TGlzdEl0ZW0oTm9kZSogbGlzdE5vZGUsIGNvbnN0IFJlbmRlckxpc3RJdGVt
KiBpdGVtKQorUmVuZGVyTGlzdEl0ZW0qIFJlbmRlckxpc3RJdGVtOjpuZXh0TGlzdEl0ZW0oUmVu
ZGVyT2JqZWN0KiBsaXN0LCBjb25zdCBSZW5kZXJMaXN0SXRlbSogaXRlbSkKIHsKLSAgICBpZiAo
IWxpc3ROb2RlKQorICAgIGlmICghbGlzdCkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBOb2Rl
KiBjdXJyZW50ID0gaXRlbSA/IGl0ZW0tPm5vZGUoKSA6IGxpc3ROb2RlOwotICAgIGN1cnJlbnQg
PSBFbGVtZW50VHJhdmVyc2FsOjpuZXh0SW5jbHVkaW5nUHNldWRvKGN1cnJlbnQsIGxpc3ROb2Rl
KTsKLQotICAgIHdoaWxlIChjdXJyZW50KSB7Ci0gICAgICAgIGlmIChpc0xpc3QoY3VycmVudCkp
IHsKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gaXRlbSA/IGl0ZW0tPm5leHRJblByZU9y
ZGVyKGxpc3QpIDogbGlzdC0+bmV4dEluUHJlT3JkZXIobGlzdCk7CisgICAgd2hpbGUgKHJlbmRl
cmVyKSB7CisgICAgICAgIGlmIChyZW5kZXJlci0+bm9kZSgpICYmIGlzTGlzdChyZW5kZXJlci0+
bm9kZSgpKSkgewogICAgICAgICAgICAgLy8gV2UndmUgZm91bmQgYSBuZXN0ZWQsIGluZGVwZW5k
ZW50IGxpc3Q6IG5vdGhpbmcgdG8gZG8gaGVyZS4KLSAgICAgICAgICAgIGN1cnJlbnQgPSBFbGVt
ZW50VHJhdmVyc2FsOjpuZXh0SW5jbHVkaW5nUHNldWRvU2tpcHBpbmdDaGlsZHJlbihjdXJyZW50
LCBsaXN0Tm9kZSk7CisgICAgICAgICAgICByZW5kZXJlciA9IHJlbmRlcmVyLT5uZXh0SW5QcmVP
cmRlckFmdGVyQ2hpbGRyZW4obGlzdCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQogCi0gICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBjdXJyZW50LT5yZW5kZXJlcigp
OwotICAgICAgICBpZiAocmVuZGVyZXIgJiYgcmVuZGVyZXItPmlzTGlzdEl0ZW0oKSkKKyAgICAg
ICAgaWYgKHJlbmRlcmVyLT5pc0xpc3RJdGVtKCkpCiAgICAgICAgICAgICByZXR1cm4gdG9SZW5k
ZXJMaXN0SXRlbShyZW5kZXJlcik7CiAKLSAgICAgICAgLy8gRklYTUU6IENhbiB0aGlzIGJlIG9w
dGltaXplZCB0byBza2lwIHRoZSBjaGlsZHJlbiBvZiB0aGUgZWxlbWVudHMgd2l0aG91dCBhIHJl
bmRlcmVyPwotICAgICAgICBjdXJyZW50ID0gRWxlbWVudFRyYXZlcnNhbDo6bmV4dEluY2x1ZGlu
Z1BzZXVkbyhjdXJyZW50LCBsaXN0Tm9kZSk7CisgICAgICAgIHJlbmRlcmVyID0gcmVuZGVyZXIt
Pm5leHRJblByZU9yZGVyKGxpc3QpOwogICAgIH0KLQogICAgIHJldHVybiAwOwogfQogCi0vLyBS
ZXR1cm5zIHRoZSBwcmV2aW91cyBsaXN0IGl0ZW0gd2l0aCByZXNwZWN0IHRvIHRoZSBET00gb3Jk
ZXIuCi1zdGF0aWMgUmVuZGVyTGlzdEl0ZW0qIHByZXZpb3VzTGlzdEl0ZW0oTm9kZSogbGlzdE5v
ZGUsIGNvbnN0IFJlbmRlckxpc3RJdGVtKiBpdGVtKQorc3RhdGljIFJlbmRlckxpc3RJdGVtKiBw
cmV2aW91c0xpc3RJdGVtKFJlbmRlck9iamVjdCogbGlzdCwgY29uc3QgUmVuZGVyTGlzdEl0ZW0q
IGl0ZW0pCiB7Ci0gICAgTm9kZSogY3VycmVudCA9IGl0ZW0tPm5vZGUoKTsKLSAgICBmb3IgKGN1
cnJlbnQgPSBFbGVtZW50VHJhdmVyc2FsOjpwcmV2aW91c0luY2x1ZGluZ1BzZXVkbyhjdXJyZW50
LCBsaXN0Tm9kZSk7IGN1cnJlbnQ7IGN1cnJlbnQgPSBFbGVtZW50VHJhdmVyc2FsOjpwcmV2aW91
c0luY2x1ZGluZ1BzZXVkbyhjdXJyZW50LCBsaXN0Tm9kZSkpIHsKLSAgICAgICAgUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciA9IGN1cnJlbnQtPnJlbmRlcmVyKCk7Ci0gICAgICAgIGlmICghcmVuZGVy
ZXIgfHwgKHJlbmRlcmVyICYmICFyZW5kZXJlci0+aXNMaXN0SXRlbSgpKSkKKyAgICBmb3IgKFJl
bmRlck9iamVjdCogcmVuZGVyZXIgPSBpdGVtLT5wcmV2aW91c0luUHJlT3JkZXIoKTsgcmVuZGVy
ZXIgJiYgcmVuZGVyZXIgIT0gbGlzdDsgcmVuZGVyZXIgPSByZW5kZXJlci0+cHJldmlvdXNJblBy
ZU9yZGVyKCkpIHsKKyAgICAgICAgaWYgKCFyZW5kZXJlci0+aXNMaXN0SXRlbSgpKQogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIE5vZGUqIG90aGVyTGlzdCA9IGVuY2xvc2luZ0xpc3Qo
dG9SZW5kZXJMaXN0SXRlbShyZW5kZXJlcikpOwogICAgICAgICAvLyBUaGlzIGl0ZW0gaXMgcGFy
dCBvZiBvdXIgY3VycmVudCBsaXN0LCBzbyBpdCdzIHdoYXQgd2UncmUgbG9va2luZyBmb3IuCi0g
ICAgICAgIGlmIChsaXN0Tm9kZSA9PSBvdGhlckxpc3QpCisgICAgICAgIGlmIChsaXN0LT5ub2Rl
KCkgPT0gb3RoZXJMaXN0KQogICAgICAgICAgICAgcmV0dXJuIHRvUmVuZGVyTGlzdEl0ZW0ocmVu
ZGVyZXIpOwogICAgICAgICAvLyBXZSBmb3VuZCBvdXJzZWxmIGluc2lkZSBhbm90aGVyIGxpc3Q7
IGxldHMgc2tpcCB0aGUgcmVzdCBvZiBpdC4KLSAgICAgICAgLy8gVXNlIG5leHRJbmNsdWRpbmdQ
c2V1ZG8oKSBoZXJlIGJlY2F1c2UgdGhlIG90aGVyIGxpc3QgaXRzZWxmIG1heSBhY3R1YWxseQor
ICAgICAgICAvLyBVc2UgbmV4dEluUHJlT3JkZXIoKSBoZXJlIGJlY2F1c2UgdGhlIG90aGVyIGxp
c3QgaXRzZWxmIG1heSBhY3R1YWxseQogICAgICAgICAvLyBiZSBhIGxpc3QgaXRlbSBpdHNlbGYu
IFdlIG5lZWQgdG8gZXhhbWluZSBpdCwgc28gd2UgZG8gdGhpcyB0byBjb3VudGVyYWN0Ci0gICAg
ICAgIC8vIHRoZSBwcmV2aW91c0luY2x1ZGluZ1BzZXVkbygpIHRoYXQgd2lsbCBiZSBkb25lIGJ5
IHRoZSBsb29wLgorICAgICAgICAvLyB0aGUgcHJldmlvdXNJblByZU9yZGVyKCkgdGhhdCB3aWxs
IGJlIGRvbmUgYnkgdGhlIGxvb3AuCiAgICAgICAgIGlmIChvdGhlckxpc3QpCi0gICAgICAgICAg
ICBjdXJyZW50ID0gRWxlbWVudFRyYXZlcnNhbDo6bmV4dEluY2x1ZGluZ1BzZXVkbyhvdGhlckxp
c3QpOworICAgICAgICAgICAgcmVuZGVyZXIgPSBvdGhlckxpc3QtPnJlbmRlcmVyKCktPm5leHRJ
blByZU9yZGVyKCk7CiAgICAgfQogICAgIHJldHVybiAwOwogfQpAQCAtMTcxLDYgKzE2Miw3IEBA
IGlubGluZSBpbnQgUmVuZGVyTGlzdEl0ZW06OmNhbGNWYWx1ZSgpIGNvbnN0CiAgICAgICAgIHJl
dHVybiBtX2V4cGxpY2l0VmFsdWU7CiAKICAgICBOb2RlKiBsaXN0ID0gZW5jbG9zaW5nTGlzdCh0
aGlzKTsKKyAgICBSZW5kZXJPYmplY3QqIGxpc3RSZW5kZXJlciA9IGxpc3QgPyBsaXN0LT5yZW5k
ZXJlcigpIDogMDsKICAgICBIVE1MT0xpc3RFbGVtZW50KiBvTGlzdEVsZW1lbnQgPSAobGlzdCAm
JiBsaXN0LT5oYXNUYWdOYW1lKG9sVGFnKSkgPyBzdGF0aWNfY2FzdDxIVE1MT0xpc3RFbGVtZW50
Kj4obGlzdCkgOiAwOwogICAgIGludCB2YWx1ZVN0ZXAgPSAxOwogICAgIGlmIChvTGlzdEVsZW1l
bnQgJiYgb0xpc3RFbGVtZW50LT5pc1JldmVyc2VkKCkpCkBAIC0xNzgsNyArMTcwLDcgQEAgaW5s
aW5lIGludCBSZW5kZXJMaXN0SXRlbTo6Y2FsY1ZhbHVlKCkgY29uc3QKIAogICAgIC8vIEZJWE1F
OiBUaGlzIHJlY3Vyc2VzIHRvIGEgcG9zc2libGUgZGVwdGggb2YgdGhlIGxlbmd0aCBvZiB0aGUg
bGlzdC4KICAgICAvLyBUaGF0J3Mgbm90IGdvb2QgLS0gd2UgbmVlZCB0byBjaGFuZ2UgdGhpcyB0
byBhbiBpdGVyYXRpdmUgYWxnb3JpdGhtLgotICAgIGlmIChSZW5kZXJMaXN0SXRlbSogcHJldmlv
dXNJdGVtID0gcHJldmlvdXNMaXN0SXRlbShsaXN0LCB0aGlzKSkKKyAgICBpZiAoUmVuZGVyTGlz
dEl0ZW0qIHByZXZpb3VzSXRlbSA9IHByZXZpb3VzTGlzdEl0ZW0obGlzdFJlbmRlcmVyLCB0aGlz
KSkKICAgICAgICAgcmV0dXJuIHByZXZpb3VzSXRlbS0+dmFsdWUoKSArIHZhbHVlU3RlcDsKIAog
ICAgIGlmIChvTGlzdEVsZW1lbnQpCkBAIC00MzUsNyArNDI3LDEwIEBAIHZvaWQgUmVuZGVyTGlz
dEl0ZW06OmV4cGxpY2l0VmFsdWVDaGFuZ2VkKCkKICAgICBpZiAobV9tYXJrZXIpCiAgICAgICAg
IG1fbWFya2VyLT5zZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKICAgICBOb2Rl
KiBsaXN0Tm9kZSA9IGVuY2xvc2luZ0xpc3QodGhpcyk7Ci0gICAgZm9yIChSZW5kZXJMaXN0SXRl
bSogaXRlbSA9IHRoaXM7IGl0ZW07IGl0ZW0gPSBuZXh0TGlzdEl0ZW0obGlzdE5vZGUsIGl0ZW0p
KQorICAgIFJlbmRlck9iamVjdCogbGlzdFJlbmRlcmVyID0gMDsKKyAgICBpZiAobGlzdE5vZGUp
CisgICAgICAgIGxpc3RSZW5kZXJlciA9IGxpc3ROb2RlLT5yZW5kZXJlcigpOworICAgIGZvciAo
UmVuZGVyTGlzdEl0ZW0qIGl0ZW0gPSB0aGlzOyBpdGVtOyBpdGVtID0gbmV4dExpc3RJdGVtKGxp
c3RSZW5kZXJlciwgaXRlbSkpCiAgICAgICAgIGl0ZW0tPnVwZGF0ZVZhbHVlKCk7CiB9CiAKQEAg
LTQ2Miw3ICs0NTcsNyBAQCB2b2lkIFJlbmRlckxpc3RJdGVtOjpjbGVhckV4cGxpY2l0VmFsdWUo
KQogICAgIGV4cGxpY2l0VmFsdWVDaGFuZ2VkKCk7CiB9CiAKLXN0YXRpYyBSZW5kZXJMaXN0SXRl
bSogcHJldmlvdXNPck5leHRJdGVtKGJvb2wgaXNMaXN0UmV2ZXJzZWQsIE5vZGUqIGxpc3QsIFJl
bmRlckxpc3RJdGVtKiBpdGVtKQorc3RhdGljIFJlbmRlckxpc3RJdGVtKiBwcmV2aW91c09yTmV4
dEl0ZW0oYm9vbCBpc0xpc3RSZXZlcnNlZCwgUmVuZGVyT2JqZWN0KiBsaXN0LCBSZW5kZXJMaXN0
SXRlbSogaXRlbSkKIHsKICAgICByZXR1cm4gaXNMaXN0UmV2ZXJzZWQgPyBwcmV2aW91c0xpc3RJ
dGVtKGxpc3QsIGl0ZW0pIDogUmVuZGVyTGlzdEl0ZW06Om5leHRMaXN0SXRlbShsaXN0LCBpdGVt
KTsKIH0KQEAgLTQ3MCwxOCArNDY1LDE4IEBAIHN0YXRpYyBSZW5kZXJMaXN0SXRlbSogcHJldmlv
dXNPck5leHRJdGVtKGJvb2wgaXNMaXN0UmV2ZXJzZWQsIE5vZGUqIGxpc3QsIFJlbmRlCiB2b2lk
IFJlbmRlckxpc3RJdGVtOjp1cGRhdGVMaXN0TWFya2VyTnVtYmVycygpCiB7CiAgICAgTm9kZSog
bGlzdE5vZGUgPSBlbmNsb3NpbmdMaXN0KHRoaXMpOwotICAgIC8vIFRoZSBsaXN0IG5vZGUgY2Fu
IGJlIHRoZSBzaGFkb3cgcm9vdCB3aGljaCBoYXMgbm8gcmVuZGVyZXIuCi0gICAgQVNTRVJUKGxp
c3ROb2RlKTsKLSAgICBpZiAoIWxpc3ROb2RlKQorICAgIEFTU0VSVChsaXN0Tm9kZSAmJiBsaXN0
Tm9kZS0+cmVuZGVyZXIoKSk7CisgICAgaWYgKCFsaXN0Tm9kZSB8fCAhbGlzdE5vZGUtPnJlbmRl
cmVyKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGJvb2wgaXNMaXN0UmV2ZXJzZWQgPSBmYWxz
ZTsKKyAgICBSZW5kZXJPYmplY3QqIGxpc3QgPSBsaXN0Tm9kZS0+cmVuZGVyZXIoKTsKICAgICBI
VE1MT0xpc3RFbGVtZW50KiBvTGlzdEVsZW1lbnQgPSAobGlzdE5vZGUgJiYgbGlzdE5vZGUtPmhh
c1RhZ05hbWUob2xUYWcpKSA/IHN0YXRpY19jYXN0PEhUTUxPTGlzdEVsZW1lbnQqPihsaXN0Tm9k
ZSkgOiAwOwogICAgIGlmIChvTGlzdEVsZW1lbnQpIHsKICAgICAgICAgb0xpc3RFbGVtZW50LT5p
dGVtQ291bnRDaGFuZ2VkKCk7CiAgICAgICAgIGlzTGlzdFJldmVyc2VkID0gb0xpc3RFbGVtZW50
LT5pc1JldmVyc2VkKCk7CiAgICAgfQotICAgIGZvciAoUmVuZGVyTGlzdEl0ZW0qIGl0ZW0gPSBw
cmV2aW91c09yTmV4dEl0ZW0oaXNMaXN0UmV2ZXJzZWQsIGxpc3ROb2RlLCB0aGlzKTsgaXRlbTsg
aXRlbSA9IHByZXZpb3VzT3JOZXh0SXRlbShpc0xpc3RSZXZlcnNlZCwgbGlzdE5vZGUsIGl0ZW0p
KSB7CisgICAgZm9yIChSZW5kZXJMaXN0SXRlbSogaXRlbSA9IHByZXZpb3VzT3JOZXh0SXRlbShp
c0xpc3RSZXZlcnNlZCwgbGlzdCwgdGhpcyk7IGl0ZW07IGl0ZW0gPSBwcmV2aW91c09yTmV4dEl0
ZW0oaXNMaXN0UmV2ZXJzZWQsIGxpc3QsIGl0ZW0pKSB7CiAgICAgICAgIGlmICghaXRlbS0+bV9p
c1ZhbHVlVXBUb0RhdGUpIHsKICAgICAgICAgICAgIC8vIElmIGFuIGl0ZW0gaGFzIGJlZW4gbWFy
a2VkIGZvciB1cGRhdGUgYmVmb3JlLCB3ZSBjYW4gc2FmZWx5CiAgICAgICAgICAgICAvLyBhc3N1
bWUgdGhhdCBhbGwgdGhlIGZvbGxvd2luZyBvbmVzIGhhdmUgdG9vLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uaAppbmRleCA3ZGQzZWFmODk0MmI4MTY0NjYxNjZjMWFk
NGM5ODNkZDliZjRhOTBmLi5kODhmYzQ5ODZkNTZkYzViMzJjZjA1OWVlMWQ1Zjg0MWQxNzBjODll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uaApAQCAtNDksNyAr
NDksNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHVwZGF0ZUxpc3RNYXJrZXJOdW1iZXJzKCk7CiAK
LSAgICBzdGF0aWMgUmVuZGVyTGlzdEl0ZW0qIG5leHRMaXN0SXRlbShOb2RlKiwgY29uc3QgUmVu
ZGVyTGlzdEl0ZW0qID0gMCk7CisgICAgc3RhdGljIFJlbmRlckxpc3RJdGVtKiBuZXh0TGlzdEl0
ZW0oUmVuZGVyT2JqZWN0KiBsaXN0UmVuZGVyZXIsIGNvbnN0IFJlbmRlckxpc3RJdGVtKiA9IDAp
OwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0
IHsgcmV0dXJuICJSZW5kZXJMaXN0SXRlbSI7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2MmQ5MTljNjBhY2Q5NjA1YWIw
YzU5ZTY1ZGU5MWI0NWViNGFiMDlmLi5jMTNlZGUyYzdiMmE2ZDEwNDM1Y2IxZTUwMjc3MWExOGQ0
ZDA1OWQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDMtMjYgIFNoZXJpZmYgQm90ICA8
d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIxNDY4NzkuCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0
LzE0Njg3OQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTEzMzEyCisKKyAgICAgICAgTXVsdGlwbGUgbGF5b3V0IHRlc3QgY3Jhc2hlcyBpbgorICAgICAg
ICBXZWJDb3JlOjpSZW5kZXJMaXN0SXRlbTo6dXBkYXRlTGlzdE1hcmtlck51bWJlcnMgKFJlcXVl
c3RlZCBieQorICAgICAgICB5dXJ5cyBvbiAjd2Via2l0KS4KKworICAgICAgICAqIGZhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctYW5kLWxpc3QtZWxlbWVudHMtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAg
KiBmYXN0L2xpc3RzL3Bvc2l0aW9uZWQtY291bnQtY3Jhc2gtZXhwZWN0ZWQudHh0OgorCiAyMDEz
LTAzLTI2ICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBy
ZW1vZXZlQWxsRXZlbnRMaXN0ZW5lcnMoKSBzaG91bGQgYmUgY2FsbGVkIHRvIHNoYWRvdyB0cmVl
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1hbmQtbGlz
dC1lbGVtZW50cy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1hbmQtbGlzdC1lbGVtZW50cy1leHBlY3RlZC5odG1sCmluZGV4IGRiYzg4YmM2ZjJlOGQw
NDI5YTU2YzMxZTFiNTU2ZDcwYjM5NDg4NWMuLjkzZWJmOWFlZGQ5M2RjZWIyNWRmYmNiMDY4OTQ5
NzNmYjkyYTMyOWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctYW5kLWxpc3QtZWxlbWVudHMtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LWFuZC1saXN0LWVsZW1lbnRzLWV4cGVjdGVkLmh0bWwKQEAgLTIy
LDIzICsyMiwxOCBAQAogLy8gICA8bGk+QzwvbGk+CiAvLyA8L29sPiAgIAogdmFyIGhvc3RFcXVp
dmFsZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvc3RFcXVpdmFsZW50Iik7Ci12YXIg
c2hhZG93TGlzdFJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvbCIpOwotc2hhZG93TGlz
dFJvb3Quc3R5bGUucGFkZGluZ0xlZnQgPSAiMHB4IjsKLWhvc3RFcXVpdmFsZW50LmFwcGVuZENo
aWxkKHNoYWRvd0xpc3RSb290KTsKIAogdmFyIGNoaWxkWCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImxpIik7CiBjaGlsZFguaW5uZXJIVE1MID0gIlgiOwotY2hpbGRYLnN0eWxlLmxpc3RTdHls
ZVBvc2l0aW9uID0gImluc2lkZSI7Ci1zaGFkb3dMaXN0Um9vdC5hcHBlbmRDaGlsZChjaGlsZFgp
OworaG9zdEVxdWl2YWxlbnQuYXBwZW5kQ2hpbGQoY2hpbGRYKTsKIAogdmFyIGNoaWxkVWwgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJ1bCIpOwogY2hpbGRVbC5pbm5lckhUTUwgPSAiQiI7Ci1z
aGFkb3dMaXN0Um9vdC5hcHBlbmRDaGlsZChjaGlsZFVsKTsKK2hvc3RFcXVpdmFsZW50LmFwcGVu
ZENoaWxkKGNoaWxkVWwpOwogCiB2YXIgY2hpbGRZID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
bGkiKTsKIGNoaWxkWS5pbm5lckhUTUwgPSAiWSI7Ci1jaGlsZFkuc3R5bGUubGlzdFN0eWxlUG9z
aXRpb24gPSAiaW5zaWRlIjsKLXNoYWRvd0xpc3RSb290LmFwcGVuZENoaWxkKGNoaWxkWSk7Cito
b3N0RXF1aXZhbGVudC5hcHBlbmRDaGlsZChjaGlsZFkpOwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xpc3RzL3Bvc2l0aW9uZWQtY291
bnQtY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9saXN0cy9wb3NpdGlvbmVk
LWNvdW50LWNyYXNoLWV4cGVjdGVkLnR4dAppbmRleCBjZTQwYzA4Y2I4NGY4M2Y0NmQwN2M0NTk3
M2I0MWQ4Njk1Yzk4ZWVmLi45ZmMwNjZkNWQxMWYxZTA3ODg0NzExMDExNGU3N2UyMDEwYTE2N2Qw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2xpc3RzL3Bvc2l0aW9uZWQtY291bnQtY3Jh
c2gtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbGlzdHMvcG9zaXRpb25lZC1j
b3VudC1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTIsNSArMiw1IEBAIElJCiAKIAogRm9yIG1hbnVh
bCB0ZXN0OiBJZiB5b3Ugc2VlIG5vIGNyYXNoIGFuZCAiSUkgSUkiLCBpdCBtZWFucyB0aGlzIHRl
c3QgUEFTUy4KLVBBU1MgbGlzdCBtYXJrZXIgaXMgSUkuCitGQUlMIGxpc3QgbWFya2VyIHNob3Vs
ZCBiZSBJSS4gV2FzIEkuCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>