<?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>149114</bug_id>
          
          <creation_ts>2015-09-14 00:40:36 -0700</creation_ts>
          <short_desc>Remove all uses of PassRefPtr in WebCore/xml</short_desc>
          <delta_ts>2015-09-14 23:01:13 -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>WebKit 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>144092</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1125557</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-09-14 00:40:36 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125558</commentid>
    <comment_count>1</comment_count>
      <attachid>261107</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-09-14 00:45:24 -0700</bug_when>
    <thetext>Created attachment 261107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125839</commentid>
    <comment_count>2</comment_count>
      <attachid>261107</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-09-14 18:32:35 -0700</bug_when>
    <thetext>Comment on attachment 261107
Patch

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

&gt; Source/WebCore/xml/XPathValue.h:47
&gt; +            explicit Value(NodeSet value)

Maybe this should take a NodeSet&amp;&amp;.

&gt; Source/WebCore/xml/XPathValue.h:53
&gt; +            explicit Value(RefPtr&lt;Node&gt; value)

Maybe this should take a RefPtr&amp;&amp;.

&gt; Source/WebCore/xml/XPathValue.h:79
&gt; +                static Ref&lt;Data&gt; create(NodeSet nodeSet) { return adoptRef(*new Data(WTF::move(nodeSet))); }

Maybe this should take a NodeSet&amp;&amp;.

&gt; Source/WebCore/xml/XPathValue.h:90
&gt; +                explicit Data(NodeSet nodeSet)

Maybe this should take a NodeSet&amp;&amp;.

&gt; Source/WebCore/xml/XSLTProcessor.h:47
&gt; +    void setXSLStyleSheet(RefPtr&lt;XSLStyleSheet&gt; styleSheet) { m_stylesheet = WTF::move(styleSheet); }

This should take either a RefPtr&amp;&amp; or just a raw pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125861</commentid>
    <comment_count>3</comment_count>
      <attachid>261163</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-09-14 20:03:25 -0700</bug_when>
    <thetext>Created attachment 261163
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125880</commentid>
    <comment_count>4</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-09-14 21:33:24 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 261107 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=261107&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/xml/XPathValue.h:47
&gt; &gt; +            explicit Value(NodeSet value)
&gt; 
&gt; Maybe this should take a NodeSet&amp;&amp;.
&gt; 
&gt; &gt; Source/WebCore/xml/XPathValue.h:53
&gt; &gt; +            explicit Value(RefPtr&lt;Node&gt; value)
&gt; 
&gt; Maybe this should take a RefPtr&amp;&amp;.
&gt; 
&gt; &gt; Source/WebCore/xml/XPathValue.h:79
&gt; &gt; +                static Ref&lt;Data&gt; create(NodeSet nodeSet) { return adoptRef(*new Data(WTF::move(nodeSet))); }
&gt; 
&gt; Maybe this should take a NodeSet&amp;&amp;.
&gt; 
&gt; &gt; Source/WebCore/xml/XPathValue.h:90
&gt; &gt; +                explicit Data(NodeSet nodeSet)
&gt; 
&gt; Maybe this should take a NodeSet&amp;&amp;.
&gt; 
&gt; &gt; Source/WebCore/xml/XSLTProcessor.h:47
&gt; &gt; +    void setXSLStyleSheet(RefPtr&lt;XSLStyleSheet&gt; styleSheet) { m_stylesheet = WTF::move(styleSheet); }
&gt; 
&gt; This should take either a RefPtr&amp;&amp; or just a raw pointer.

All done. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125898</commentid>
    <comment_count>5</comment_count>
      <attachid>261163</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-14 23:01:08 -0700</bug_when>
    <thetext>Comment on attachment 261163
Patch

Clearing flags on attachment: 261163

Committed r189776: &lt;http://trac.webkit.org/changeset/189776&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125899</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-14 23:01:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261107</attachid>
            <date>2015-09-14 00:45:24 -0700</date>
            <delta_ts>2015-09-14 20:03:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149114-20150914164513.patch</filename>
            <type>text/plain</type>
            <size>28193</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NjgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjc4YmM4NDlhNjI4MDMw
NmFjMmRkZWQ0ZDE2MDYyYzc5ZGYyMjEyMS4uMmUzM2Q0Y2ZjZjhmOThkYTgxOTkzMTZhZmIxMTM5
NGJjNWZhMjk5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE1LTA5LTE0ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgYWxs
IHVzZXMgb2YgUGFzc1JlZlB0ciBpbiBXZWJDb3JlL3htbAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkb20vRGVjb2RlZERhdGFEb2N1bWVudFBhcnNl
ci5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudFBhcnNlci5oOgorICAgICAgICAqIGRvbS9SYXdE
YXRhRG9jdW1lbnRQYXJzZXIuaDoKKyAgICAgICAgKiBodG1sL0ZUUERpcmVjdG9yeURvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjphcHBl
bmQpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OmFwcGVuZCk6CisgICAgICAgICogaHRt
bC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgICogaHRtbC9wYXJzZXIvVGV4
dERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHREb2N1bWVudFBhcnNl
cjo6YXBwZW5kKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuaDoK
KyAgICAgICAgKiB4bWwvTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5hdGl2ZVhQYXRoTlNSZXNvbHZlcjo6TmF0aXZlWFBhdGhOU1Jlc29sdmVyKToKKyAgICAg
ICAgKiB4bWwvTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpOYXRp
dmVYUGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZSk6CisgICAgICAgICogeG1sL1hNTEVycm9ycy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVYSFRNTFBhcnNlckVycm9ySGVhZGVyKToKKyAgICAg
ICAgKiB4bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNo
UmVhZHlTdGF0ZUNoYW5nZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpkaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpkaXNwYXRjaERlZmVycmVkRXZl
bnRzKToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUu
aDoKKyAgICAgICAgKiB4bWwvWE1MU2VyaWFsaXplci5oOgorICAgICAgICAqIHhtbC9YUGF0aEV2
YWx1YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aEV2YWx1YXRvcjo6Y3JlYXRlRXhw
cmVzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aEV2YWx1YXRvcjo6Y3JlYXRlTlNSZXNv
bHZlcik6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aEV2YWx1YXRvcjo6ZXZhbHVhdGUpOgorICAg
ICAgICAqIHhtbC9YUGF0aEV2YWx1YXRvci5oOgorICAgICAgICAqIHhtbC9YUGF0aE5vZGVTZXQu
aDogRml4IHN0eWxlIGVycm9ycy4KKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpOb2RlU2V0OjpO
b2RlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpOb2RlU2V0OjphcHBlbmQpOgorICAg
ICAgICAqIHhtbC9YUGF0aFBhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkZpbHRl
cjo6ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkxvY2F0aW9uUGF0aDo6ZXZh
bHVhdGUpOgorICAgICAgICAqIHhtbC9YUGF0aFZhbHVlLmg6IGRpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6WFBhdGg6OlZhbHVlOjpWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6VmFs
dWU6OkRhdGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6VmFsdWU6OkRhdGE6
OkRhdGEpOgorICAgICAgICAqIHhtbC9YU0xUUHJvY2Vzc29yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlhTTFRQcm9jZXNzb3I6OnRyYW5zZm9ybVRvRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6WFNMVFByb2Nlc3Nvcjo6dHJhbnNmb3JtVG9GcmFnbWVudCk6CisgICAgICAgICogeG1sL1hT
TFRQcm9jZXNzb3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlhTTFRQcm9jZXNzb3I6OnNldFhTTFN0
eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6WFNMVFByb2Nlc3Nvcjo6aW1wb3J0U3R5bGVz
aGVldCk6CisgICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6YXBwZW5kKToKKyAgICAgICAgKiB4bWwv
cGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmg6CisKIDIwMTUtMDktMTMgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXByb3ZlIE5vZGUgcHJlLWluc2VydGlvbiB2
YWxpZGF0aW9uIHdoZW4gdGhlIHBhcmVudCBpcyBhIERvY3VtZW50CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuaAppbmRleCA4MmY4YmQxNGViMGYzYTNi
NzhlNjRjYmMzNTAwNTcyMTNmNTA4Mjk3Li5kZmU0ZTliZGY3YmRiODg1ZGZlMzFhOGUyNmRjZWRk
YjExZjhlNDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGVjb2RlZERhdGFEb2N1
bWVudFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZWNvZGVkRGF0YURvY3VtZW50
UGFyc2VyLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIC8v
IGFwcGVuZCBpcyB1c2VkIGJ5IERvY3VtZW50V3JpdGVyOjpyZXBsYWNlRG9jdW1lbnQuCi0gICAg
dmlydHVhbCB2b2lkIGFwcGVuZChQYXNzUmVmUHRyPFN0cmluZ0ltcGw+KSBvdmVycmlkZSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGFwcGVuZChSZWZQdHI8U3RyaW5nSW1wbD4mJikgb3ZlcnJpZGUg
PSAwOwogCiAgICAgLy8gYXBwZW5kQnl0ZXMgYW5kIGZsdXNoIGFyZSB1c2VkIGJ5IERvY3VtZW50
V3JpdGVyICh0aGUgbG9hZGVyKS4KICAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kQnl0ZXMoRG9jdW1l
bnRXcml0ZXImLCBjb25zdCBjaGFyKiBieXRlcywgc2l6ZV90IGxlbmd0aCkgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRQYXJzZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudFBhcnNlci5oCmluZGV4IDQ3NzFhZjE2MzgyYzYwMWQzMmE2ZmM0
ZGU2OTg0OTZhZDE4YmE3NTQuLjBhZmQ5ZmZkNjVkYzZkZGMxMTZhNmIyZTBhZDA4MjkwZGM2Y2Ux
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFBhcnNlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFBhcnNlci5oCkBAIC01Myw3ICs1Myw3IEBAIHB1
YmxpYzoKICAgICAvLyBGSVhNRTogYXBwZW5kKCkgc2hvdWxkIGJlIHByaXZhdGUsIGJ1dCBEb2N1
bWVudFdyaXRlcjo6cmVwbGFjZURvY3VtZW50IHVzZXMgaXQgZm9yIG5vdy4KICAgICAvLyBGSVhN
RTogVGhpcyByZWFsbHkgc2hvdWxkIHRha2UgYSBzdGQ6OnVuaXF1ZV9wdHIgdG8gc2lnbmlmeSB0
aGF0IGl0IGV4cGVjdHMgdG8gdGFrZQogICAgIC8vIG93bmVyc2hpcCBvZiB0aGUgYnVmZmVyLiBU
aGUgcGFyc2VyIGV4cGVjdHMgdGhlIFBhc3NSZWZQdHIgdG8gaG9sZCB0aGUgb25seSByZWYgb2Yg
dGhlIFN0cmluZ0ltcGwuCi0gICAgdmlydHVhbCB2b2lkIGFwcGVuZChQYXNzUmVmUHRyPFN0cmlu
Z0ltcGw+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFwcGVuZChSZWZQdHI8U3RyaW5nSW1wbD4m
JikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGZpbmlzaCgpID0gMDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1Jhd0RhdGFEb2N1bWVudFBhcnNlci5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1Jhd0RhdGFEb2N1bWVudFBhcnNlci5oCmluZGV4IDgzNGQ0MjY2NmJjNTE5NzQ4MzZl
YzdlOTc4MmRhZGZlOTc5NWJjZWEuLmUwNjg2ZDlmNWRmM2UzNWNkNDcwNDM1ZTdkZDQ0NzlkNjYy
OGIzMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYXdEYXRhRG9jdW1lbnRQYXJz
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmF3RGF0YURvY3VtZW50UGFyc2VyLmgKQEAg
LTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGFwcGVuZChQYXNzUmVmUHRyPFN0cmluZ0ltcGw+KSBv
dmVycmlkZQorICAgIHZpcnR1YWwgdm9pZCBhcHBlbmQoUmVmUHRyPFN0cmluZ0ltcGw+JiYpIG92
ZXJyaWRlCiAgICAgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCmluZGV4IDE0NDdhNDYz
NWY3MjEyZWZhOTJhMTFjMTdmOTJmN2Y2OTM3ZWFlZmQuLmI1ZDFkMTg4OTVlN2FmODllMjU5YjUy
NTMzNTI2YmU0NGU3NGYyYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGly
ZWN0b3J5RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5
RG9jdW1lbnQuY3BwCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgdmlydHVhbCB2b2lkIGFwcGVuZChQYXNzUmVmUHRyPFN0cmluZ0ltcGw+KSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kKFJlZlB0cjxTdHJpbmdJbXBsPiYmKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoKCkgb3ZlcnJpZGU7CiAKICAgICAvLyBGSVhNRTog
V2h5IGRvIHdlIG5lZWQgdGhpcz8KQEAgLTMzOSw5ICszMzksOSBAQCB2b2lkIEZUUERpcmVjdG9y
eURvY3VtZW50UGFyc2VyOjpjcmVhdGVCYXNpY0RvY3VtZW50KCkKICAgICBkb2N1bWVudCgpLT5w
cm9jZXNzVmlld3BvcnQoIndpZHRoPWRldmljZS13aWR0aCIsIFZpZXdwb3J0QXJndW1lbnRzOjpW
aWV3cG9ydE1ldGEpOwogfQogCi12b2lkIEZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjphcHBl
bmQoUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBpbnB1dFNvdXJjZSkKK3ZvaWQgRlRQRGlyZWN0b3J5
RG9jdW1lbnRQYXJzZXI6OmFwcGVuZChSZWZQdHI8U3RyaW5nSW1wbD4mJiBpbnB1dFNvdXJjZSkK
IHsKLSAgICBTdHJpbmcgc291cmNlKGlucHV0U291cmNlKTsKKyAgICBTdHJpbmcgc291cmNlKFdU
Rjo6bW92ZShpbnB1dFNvdXJjZSkpOwogCiAgICAgLy8gTWFrZSBzdXJlIHdlIGhhdmUgdGhlIHRh
YmxlIGVsZW1lbnQgdG8gYXBwZW5kIHRvIGJ5IGxvYWRpbmcgdGhlIHRlbXBsYXRlIHNldCBpbiB0
aGUgcHJlZiwgb3IKICAgICAvLyBjcmVhdGluZyBhIHZlcnkgYmFzaWMgZG9jdW1lbnQgd2l0aCB0
aGUgYXBwcm9wcmlhdGUgdGFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDkzYzVmOTM5NzgwZjE4NTFhY2Q5NWMzNGMwNzYy
Njg3MWFiY2QzNzguLjYzYjNiNDA3YTQ3ZWRmMWM5OGQwYzM1NTJiY2NmMmMwMzA5Mzg0NTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNw
cApAQCAtMzU2LDcgKzM1Niw3IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjppbnNlcnQoY29u
c3QgU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpCiAgICAgZW5kSWZEZWxheWVkKCk7CiB9CiAKLXZv
aWQgSFRNTERvY3VtZW50UGFyc2VyOjphcHBlbmQoUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBpbnB1
dFNvdXJjZSkKK3ZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjphcHBlbmQoUmVmUHRyPFN0cmluZ0lt
cGw+JiYgaW5wdXRTb3VyY2UpCiB7CiAgICAgaWYgKGlzU3RvcHBlZCgpKQogICAgICAgICByZXR1
cm47CkBAIC0zNjUsNyArMzY1LDcgQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OmFwcGVuZChQ
YXNzUmVmUHRyPFN0cmluZ0ltcGw+IGlucHV0U291cmNlKQogICAgIC8vIGJ1dCB3ZSBuZWVkIHRv
IGVuc3VyZSBpdCBpc24ndCBkZWxldGVkIHlldC4KICAgICBSZWY8SFRNTERvY3VtZW50UGFyc2Vy
PiBwcm90ZWN0KCp0aGlzKTsKIAotICAgIFN0cmluZyBzb3VyY2UoaW5wdXRTb3VyY2UpOworICAg
IFN0cmluZyBzb3VyY2UoV1RGOjptb3ZlKGlucHV0U291cmNlKSk7CiAKICAgICBpZiAobV9wcmVs
b2FkU2Nhbm5lcikgewogICAgICAgICBpZiAobV9pbnB1dC5jdXJyZW50KCkuaXNFbXB0eSgpICYm
ICFpc1dhaXRpbmdGb3JTY3JpcHRzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTERvY3VtZW50UGFyc2VyLmgKaW5kZXggNDc5ODRjNmM5ODRkOTNiMDQ2NWNlNTM3NmE5
Y2I4YjZkYjcxZDgxMy4uMDIzYzc2YmY4Njk5ZjRjYTdkZjliNmU0ZTFmMjJhNDRhMDE1N2QwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmgK
QEAgLTY2LDcgKzY2LDcgQEAgcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEhUTUxEb2N1bWVudFBh
cnNlcihIVE1MRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnQoY29uc3QgU2Vn
bWVudGVkU3RyaW5nJikgb3ZlcnJpZGUgZmluYWw7Ci0gICAgdmlydHVhbCB2b2lkIGFwcGVuZChQ
YXNzUmVmUHRyPFN0cmluZ0ltcGw+KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYXBwZW5k
KFJlZlB0cjxTdHJpbmdJbXBsPiYmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNo
KCkgb3ZlcnJpZGU7CiAKICAgICBIVE1MVHJlZUJ1aWxkZXImIHRyZWVCdWlsZGVyKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFyc2VyLmNwcAppbmRl
eCA1ZmE2MmEzMjJhMzYzODkzNzE2ZDUxNWM4MmQzNTZlODA3OGVkNzRmLi5hY2Q0YjYzNzExY2Ni
NjJkODMxMGNiMTY4MGVjMWEzMjc4OWI2ZTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAKQEAgLTM2LDExICszNiwxMSBAQCBUZXh0
RG9jdW1lbnRQYXJzZXI6OlRleHREb2N1bWVudFBhcnNlcihIVE1MRG9jdW1lbnQmIGRvY3VtZW50
KQogewogfQogCi12b2lkIFRleHREb2N1bWVudFBhcnNlcjo6YXBwZW5kKFBhc3NSZWZQdHI8U3Ry
aW5nSW1wbD4gdGV4dCkKK3ZvaWQgVGV4dERvY3VtZW50UGFyc2VyOjphcHBlbmQoUmVmUHRyPFN0
cmluZ0ltcGw+JiYgdGV4dCkKIHsKICAgICBpZiAoIW1faGF2ZUluc2VydGVkRmFrZVByZUVsZW1l
bnQpCiAgICAgICAgIGluc2VydEZha2VQcmVFbGVtZW50KCk7Ci0gICAgSFRNTERvY3VtZW50UGFy
c2VyOjphcHBlbmQodGV4dCk7CisgICAgSFRNTERvY3VtZW50UGFyc2VyOjphcHBlbmQoV1RGOjpt
b3ZlKHRleHQpKTsKIH0KIAogdm9pZCBUZXh0RG9jdW1lbnRQYXJzZXI6Omluc2VydEZha2VQcmVF
bGVtZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1RleHREb2N1
bWVudFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFy
c2VyLmgKaW5kZXggNWY1YTA5ZWQyZTM2YzczYmU2MzQ5Y2NkMTYwYmNhM2YzYWVhYzdlNi4uZDNk
ZWMzZjRjMzc2YjRhNjQ4MDA2MGVlMzJmMTdmOGFkMzgxYTBmYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFyc2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFyc2VyLmgKQEAgLTM5LDcgKzM5LDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBUZXh0RG9jdW1lbnRQYXJzZXIoSFRNTERv
Y3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8U3RyaW5nSW1w
bD4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhcHBlbmQoUmVmUHRyPFN0cmluZ0ltcGw+
JiYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBpbnNlcnRGYWtlUHJlRWxlbWVudCgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9OYXRpdmVYUGF0aE5TUmVzb2x2ZXIuY3BwCmluZGV4IDU5OWRhNTAw
ZWI5ZTBmYzdlMzY3ZjRhYmFhZjQ2MGQ4ZTkzZTUyZmMuLjFlMmU3OWJjZTNlNDk4ZjZiZmJmYTI0
YTgwZmEwMGYxOWZlNWE3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9OYXRpdmVY
UGF0aE5TUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9OYXRpdmVYUGF0aE5T
UmVzb2x2ZXIuY3BwCkBAIC0zMiw4ICszMiw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
TmF0aXZlWFBhdGhOU1Jlc29sdmVyOjpOYXRpdmVYUGF0aE5TUmVzb2x2ZXIoUGFzc1JlZlB0cjxO
b2RlPiBub2RlKQotICAgIDogbV9ub2RlKG5vZGUpCitOYXRpdmVYUGF0aE5TUmVzb2x2ZXI6Ok5h
dGl2ZVhQYXRoTlNSZXNvbHZlcihSZWZQdHI8Tm9kZT4mJiBub2RlKQorICAgIDogbV9ub2RlKFdU
Rjo6bW92ZShub2RlKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL05h
dGl2ZVhQYXRoTlNSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUveG1sL05hdGl2ZVhQYXRoTlNS
ZXNvbHZlci5oCmluZGV4IDQzNGMxMmVmNzA3NzIzOTYxOWFmOWE4ZDVlMDQ2ZGZjYjBiY2EwNDIu
LjY4NzEyMjhjMzBmYjE2OWFmY2I4OGRhMzY0OTE5YmNlZDgwYjZkMTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9OYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmgKQEAgLTM1LDEzICszNSwxMyBAQCBjbGFz
cyBOb2RlOwogCiBjbGFzcyBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIgOiBwdWJsaWMgWFBhdGhOU1Jl
c29sdmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5hdGl2ZVhQYXRoTlNSZXNvbHZlcj4g
Y3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBOYXRp
dmVYUGF0aE5TUmVzb2x2ZXIobm9kZSkpOyB9CisgICAgc3RhdGljIFJlZjxOYXRpdmVYUGF0aE5T
UmVzb2x2ZXI+IGNyZWF0ZShSZWZQdHI8Tm9kZT4mJiBub2RlKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IE5hdGl2ZVhQYXRoTlNSZXNvbHZlcihXVEY6Om1vdmUobm9kZSkpKTsgfQogICAgIHZpcnR1
YWwgfk5hdGl2ZVhQYXRoTlNSZXNvbHZlcigpOwogCiAgICAgdmlydHVhbCBTdHJpbmcgbG9va3Vw
TmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4KTsKIAogcHJpdmF0ZToKLSAgICBleHBs
aWNpdCBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIoUGFzc1JlZlB0cjxOb2RlPik7CisgICAgZXhwbGlj
aXQgTmF0aXZlWFBhdGhOU1Jlc29sdmVyKFJlZlB0cjxOb2RlPiYmKTsKICAgICBSZWZQdHI8Tm9k
ZT4gbV9ub2RlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEVycm9y
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MRXJyb3JzLmNwcAppbmRleCA2NzNjNWZiNjJh
M2RkYzgwMjIyOTBlOGQ2MmMzMjFjMWU0N2Y3YmY5Li44YjI2MDE2ODQ4NDg5N2M3N2ZmN2EyMjcz
YjRjMzE4NDlhNmVmNzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MRXJyb3Jz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MRXJyb3JzLmNwcApAQCAtODQsNyArODQs
NyBAQCB2b2lkIFhNTEVycm9yczo6YXBwZW5kRXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgdHlw
ZVN0cmluZywgVGV4dFBvc2l0aW9uIHBvc2l0aQogICAgIG1fZXJyb3JNZXNzYWdlcy5hcHBlbmQo
bWVzc2FnZSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVY
SFRNTFBhcnNlckVycm9ySGVhZGVyKERvY3VtZW50KiBkb2MsIGNvbnN0IFN0cmluZyYgZXJyb3JN
ZXNzYWdlcykKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZVhIVE1MUGFyc2Vy
RXJyb3JIZWFkZXIoRG9jdW1lbnQqIGRvYywgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2VzKQog
ewogICAgIFJlZlB0cjxFbGVtZW50PiByZXBvcnRFbGVtZW50ID0gZG9jLT5jcmVhdGVFbGVtZW50
KFF1YWxpZmllZE5hbWUobnVsbEF0b20sICJwYXJzZXJlcnJvciIsIHhodG1sTmFtZXNwYWNlVVJJ
KSwgdHJ1ZSk7CiAKQEAgLTEwOCw3ICsxMDgsNyBAQCBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8
RWxlbWVudD4gY3JlYXRlWEhUTUxQYXJzZXJFcnJvckhlYWRlcihEb2N1bWVudCogZG9jLCBjbwog
ICAgIHJlcG9ydEVsZW1lbnQtPnBhcnNlckFwcGVuZENoaWxkKGgzLmdldCgpKTsKICAgICBoMy0+
cGFyc2VyQXBwZW5kQ2hpbGQoZG9jLT5jcmVhdGVUZXh0Tm9kZSgiQmVsb3cgaXMgYSByZW5kZXJp
bmcgb2YgdGhlIHBhZ2UgdXAgdG8gdGhlIGZpcnN0IGVycm9yLiIpKTsKIAotICAgIHJldHVybiBy
ZXBvcnRFbGVtZW50LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gcmVwb3J0RWxlbWVudDsKIH0KIAog
dm9pZCBYTUxFcnJvcnM6Omluc2VydEVycm9yTWVzc2FnZUJsb2NrKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUu
Y3BwCmluZGV4IGNmMWNjYjM3MDQ4ZTg4YTZlMjA3ZTZmYjEzOGZiMzRkN2JlODMwMTAuLmFiMTcw
OGZlNDQyNWQwMWY2NTE1ODM5MzM1NDdkOWM5YzdkYjZlMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNw
cApAQCAtODEsMTUgKzgxLDE1IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhy
b3R0bGU6OmRpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudChib29sIGxlCiAgICAgbV9oYXNU
aHJvdHRsZWRQcm9ncmVzc0V2ZW50ID0gdHJ1ZTsKIH0KIAotdm9pZCBYTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hSZWFkeVN0YXRlQ2hhbmdlRXZlbnQoUGFzc1Jl
ZlB0cjxFdmVudD4gZXZlbnQsIFByb2dyZXNzRXZlbnRBY3Rpb24gcHJvZ3Jlc3NFdmVudEFjdGlv
bikKK3ZvaWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNoUmVh
ZHlTdGF0ZUNoYW5nZUV2ZW50KFJlZlB0cjxFdmVudD4mJiBldmVudCwgUHJvZ3Jlc3NFdmVudEFj
dGlvbiBwcm9ncmVzc0V2ZW50QWN0aW9uKQogewogICAgIGlmIChwcm9ncmVzc0V2ZW50QWN0aW9u
ID09IEZsdXNoUHJvZ3Jlc3NFdmVudCkKICAgICAgICAgZmx1c2hQcm9ncmVzc0V2ZW50KCk7CiAK
LSAgICBkaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICBkaXNwYXRjaEV2ZW50KFdURjo6bW92ZShl
dmVudCkpOwogfQogCi12b2lkIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpk
aXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQordm9pZCBYTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hFdmVudChSZWZQdHI8RXZlbnQ+JiYgZXZl
bnQpCiB7CiAgICAgQVNTRVJUKGV2ZW50KTsKICAgICBpZiAobV9kZWZlckV2ZW50cykgewpAQCAt
OTcsOSArOTcsOSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpk
aXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogICAgICAgICAgICAgLy8gUmVh
ZHlzdGF0ZWNoYW5nZSBldmVudHMgYXJlIHN0YXRlLWxlc3Mgc28gYXZvaWQgcmVwZWF0aW5nIHR3
byBpZGVudGljYWwgZXZlbnRzIGluIGEgcm93IG9uIHJlc3VtZS4KICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQotICAgICAgICBtX2RlZmVycmVkRXZlbnRzLmFwcGVuZChldmVudCk7Cisg
ICAgICAgIG1fZGVmZXJyZWRFdmVudHMuYXBwZW5kKFdURjo6bW92ZShldmVudCkpOwogICAgIH0g
ZWxzZQotICAgICAgICBtX3RhcmdldC0+ZGlzcGF0Y2hFdmVudChldmVudCk7CisgICAgICAgIG1f
dGFyZ2V0LT5kaXNwYXRjaEV2ZW50KFdURjo6bW92ZShldmVudCkpOwogfQogCiB2b2lkIFhNTEh0
dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpkaXNwYXRjaFByb2dyZXNzRXZlbnQoY29u
c3QgQXRvbWljU3RyaW5nJiB0eXBlKQpAQCAtMTUzLDcgKzE1Myw3IEBAIHZvaWQgWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNoRGVmZXJyZWRFdmVudHMoKQogICAg
IC8vIFRoZSBwcm9ncmVzcyBldmVudCB3aWxsIGJlIGluIHRoZSBtX2RlZmVycmVkRXZlbnRzIHZl
Y3RvciBpZiB0aGUgbG9hZCB3YXMgZmluaXNoZWQgd2hpbGUgc3VzcGVuZGVkLgogICAgIC8vIElm
IG5vdCwganVzdCBzZW5kIHRoZSBtb3N0IHVwLXRvLWRhdGUgcHJvZ3Jlc3Mgb24gcmVzdW1lLgog
ICAgIGlmIChkZWZlcnJlZFByb2dyZXNzRXZlbnQpCi0gICAgICAgIGRpc3BhdGNoRXZlbnQoZGVm
ZXJyZWRQcm9ncmVzc0V2ZW50KTsKKyAgICAgICAgZGlzcGF0Y2hFdmVudChXVEY6Om1vdmUoZGVm
ZXJyZWRQcm9ncmVzc0V2ZW50KSk7CiB9CiAKIHZvaWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50VGhyb3R0bGU6OmZpcmVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmgKaW5kZXggZTY1MzQwZjE5YjU4NTYx
MTBmMTBmNjMwMGIyNDYwZTNjMTFkMTdmMC4uMjlmNGQ2NTVkODNkMTZmNjE3MGZkNTU4NzU2ZDVh
NzYxOTUwNGYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudFRocm90dGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmgKQEAgLTI4LDcgKzI4LDYgQEAKICNkZWZpbmUg
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGVfaAogCiAjaW5jbHVkZSAiVGltZXIu
aCIKLSNpbmNsdWRlICJ3dGYvUGFzc1JlZlB0ci5oIgogI2luY2x1ZGUgInd0Zi9WZWN0b3IuaCIK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCkBAIC01MCw3ICs0OSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZSgpOwogCiAgICAg
dm9pZCBkaXNwYXRjaFRocm90dGxlZFByb2dyZXNzRXZlbnQoYm9vbCBsZW5ndGhDb21wdXRhYmxl
LCB1bnNpZ25lZCBsb25nIGxvbmcgbG9hZGVkLCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWwpOwot
ICAgIHZvaWQgZGlzcGF0Y2hSZWFkeVN0YXRlQ2hhbmdlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4s
IFByb2dyZXNzRXZlbnRBY3Rpb24gPSBEb05vdEZsdXNoUHJvZ3Jlc3NFdmVudCk7CisgICAgdm9p
ZCBkaXNwYXRjaFJlYWR5U3RhdGVDaGFuZ2VFdmVudChSZWZQdHI8RXZlbnQ+JiYsIFByb2dyZXNz
RXZlbnRBY3Rpb24gPSBEb05vdEZsdXNoUHJvZ3Jlc3NFdmVudCk7CiAgICAgdm9pZCBkaXNwYXRj
aFByb2dyZXNzRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJik7CiAKICAgICB2b2lkIHN1c3BlbmQo
KTsKQEAgLTYyLDcgKzYxLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKTsK
ICAgICB2b2lkIGRpc3BhdGNoRGVmZXJyZWRFdmVudHMoKTsKICAgICB2b2lkIGZsdXNoUHJvZ3Jl
c3NFdmVudCgpOwotICAgIHZvaWQgZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7Cisg
ICAgdm9pZCBkaXNwYXRjaEV2ZW50KFJlZlB0cjxFdmVudD4mJik7CiAKICAgICBib29sIGhhc0V2
ZW50VG9EaXNwYXRjaCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MU2VyaWFsaXplci5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFNlcmlhbGl6ZXIuaAppbmRl
eCBlZjVjMmYxNjNlYTg0MTc2ZWJlN2M4OGVmYmY4MmM0OTNmMzY0ZDJhLi45MGNkMTNiMjVjNTYz
NGY0ZjVlYmJjZmU3N2UxMzkzZDMzY2ZjNzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MU2VyaWFsaXplci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxTZXJpYWxpemVy
LmgKQEAgLTIxLDcgKzIxLDcgQEAKICNkZWZpbmUgWE1MU2VyaWFsaXplcl9oCiAKICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFdmFsdWF0b3IuY3BwCmluZGV4IGIyYTBmMjNhZWI3
ZjBhNzg4Njg3ZjY5ODdkYTMyNzM2MTQ5MjA3YTMuLmRlMGFhMGQxNzZlZGQ4ZDA3MzU3ZGFmZjlh
OWYyYmI3YzEzNThkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmNwcApAQCAt
MzcsMTkgKzM3LDE5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIFhQ
YXRoOwogCi1QYXNzUmVmUHRyPFhQYXRoRXhwcmVzc2lvbj4gWFBhdGhFdmFsdWF0b3I6OmNyZWF0
ZUV4cHJlc3Npb24oY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLAorUmVmUHRyPFhQYXRoRXhwcmVz
c2lvbj4gWFBhdGhFdmFsdWF0b3I6OmNyZWF0ZUV4cHJlc3Npb24oY29uc3QgU3RyaW5nJiBleHBy
ZXNzaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFhQYXRoTlNSZXNvbHZlciogcmVzb2x2ZXIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgcmV0dXJuIFhQYXRoRXhwcmVzc2lvbjo6Y3JlYXRlRXhwcmVzc2lvbihl
eHByZXNzaW9uLCByZXNvbHZlciwgZWMpOwogfQogCi1QYXNzUmVmUHRyPFhQYXRoTlNSZXNvbHZl
cj4gWFBhdGhFdmFsdWF0b3I6OmNyZWF0ZU5TUmVzb2x2ZXIoTm9kZSogbm9kZVJlc29sdmVyKQor
UmVmPFhQYXRoTlNSZXNvbHZlcj4gWFBhdGhFdmFsdWF0b3I6OmNyZWF0ZU5TUmVzb2x2ZXIoTm9k
ZSogbm9kZVJlc29sdmVyKQogewogICAgIHJldHVybiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXI6OmNy
ZWF0ZShub2RlUmVzb2x2ZXIpOwogfQogCi1QYXNzUmVmUHRyPFhQYXRoUmVzdWx0PiBYUGF0aEV2
YWx1YXRvcjo6ZXZhbHVhdGUoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLAorUmVmUHRyPFhQYXRo
UmVzdWx0PiBYUGF0aEV2YWx1YXRvcjo6ZXZhbHVhdGUoY29uc3QgU3RyaW5nJiBleHByZXNzaW9u
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vZGUq
IGNvbnRleHROb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFhQYXRoTlNSZXNvbHZlciogcmVzb2x2ZXIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgdHlwZSwKQEAgLTU4LDEz
ICs1OCwxMyBAQCBQYXNzUmVmUHRyPFhQYXRoUmVzdWx0PiBYUGF0aEV2YWx1YXRvcjo6ZXZhbHVh
dGUoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLAogewogICAgIGlmICghaXNWYWxpZENvbnRleHRO
b2RlKGNvbnRleHROb2RlKSkgewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgZWMg
PSAwOwogICAgIFJlZlB0cjxYUGF0aEV4cHJlc3Npb24+IGV4cHIgPSBjcmVhdGVFeHByZXNzaW9u
KGV4cHJlc3Npb24sIHJlc29sdmVyLCBlYyk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCiAgICAgcmV0dXJuIGV4cHItPmV2YWx1
YXRlKGNvbnRleHROb2RlLCB0eXBlLCByZXN1bHQsIGVjKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRo
RXZhbHVhdG9yLmgKaW5kZXggNjQ0ODIyNWMyY2JhMzBhMGQ5OTEwM2Q3NmE0MThkNGM1YTE5OWFj
Yi4uYjE2YzI0OGE2ZDIxODRhMTdjNzlhOWM1YjBkYjczODFmYjkxY2IxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
eG1sL1hQYXRoRXZhbHVhdG9yLmgKQEAgLTI4LDggKzI4LDggQEAKICNkZWZpbmUgWFBhdGhFdmFs
dWF0b3JfaAogCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ0LDkgKzQ0LDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFJlZjxYUGF0aEV2YWx1YXRvcj4g
Y3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBYUGF0aEV2YWx1YXRvcik7IH0KICAgICAg
ICAgCi0gICAgICAgIFBhc3NSZWZQdHI8WFBhdGhFeHByZXNzaW9uPiBjcmVhdGVFeHByZXNzaW9u
KGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgWFBhdGhOU1Jlc29sdmVyKiwgRXhjZXB0aW9uQ29k
ZSYpOwotICAgICAgICBQYXNzUmVmUHRyPFhQYXRoTlNSZXNvbHZlcj4gY3JlYXRlTlNSZXNvbHZl
cihOb2RlKiBub2RlUmVzb2x2ZXIpOwotICAgICAgICBQYXNzUmVmUHRyPFhQYXRoUmVzdWx0PiBl
dmFsdWF0ZShjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIE5vZGUqIGNvbnRleHROb2RlLAorICAg
ICAgICBSZWZQdHI8WFBhdGhFeHByZXNzaW9uPiBjcmVhdGVFeHByZXNzaW9uKGNvbnN0IFN0cmlu
ZyYgZXhwcmVzc2lvbiwgWFBhdGhOU1Jlc29sdmVyKiwgRXhjZXB0aW9uQ29kZSYpOworICAgICAg
ICBSZWY8WFBhdGhOU1Jlc29sdmVyPiBjcmVhdGVOU1Jlc29sdmVyKE5vZGUqIG5vZGVSZXNvbHZl
cik7CisgICAgICAgIFJlZlB0cjxYUGF0aFJlc3VsdD4gZXZhbHVhdGUoY29uc3QgU3RyaW5nJiBl
eHByZXNzaW9uLCBOb2RlKiBjb250ZXh0Tm9kZSwKICAgICAgICAgICAgIFhQYXRoTlNSZXNvbHZl
ciosIHVuc2lnbmVkIHNob3J0IHR5cGUsIFhQYXRoUmVzdWx0KiwgRXhjZXB0aW9uQ29kZSYpOwog
CiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aE5vZGVT
ZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aE5vZGVTZXQuaAppbmRleCAzZDg5YjhkNTA4
N2E4NmNmZWFmZmMwMTQwYjY5NDc2MmMwOTVkZGRmLi40ZDU5YmVhZDUxMjZlNmZhZjVjNDMxYjJl
Y2ZkMmUyYzdjMTU4ODA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhOb2Rl
U2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoTm9kZVNldC5oCkBAIC0zNiw3ICsz
Niw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY2xhc3MgTm9kZVNldCB7CiAgICAg
ICAgIHB1YmxpYzoKICAgICAgICAgICAgIE5vZGVTZXQoKSA6IG1faXNTb3J0ZWQodHJ1ZSksIG1f
c3VidHJlZXNBcmVEaXNqb2ludChmYWxzZSkgeyB9Ci0gICAgICAgICAgICBleHBsaWNpdCBOb2Rl
U2V0KFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkgOiBtX2lzU29ydGVkKHRydWUpLCBtX3N1YnRyZWVz
QXJlRGlzam9pbnQoZmFsc2UpLCBtX25vZGVzKDEsIG5vZGUpIHsgfQorICAgICAgICAgICAgZXhw
bGljaXQgTm9kZVNldChSZWZQdHI8Tm9kZT4mJiBub2RlKQorICAgICAgICAgICAgICAgIDogbV9p
c1NvcnRlZCh0cnVlKSwgbV9zdWJ0cmVlc0FyZURpc2pvaW50KGZhbHNlKSwgbV9ub2RlcygxLCBX
VEY6Om1vdmUobm9kZSkpCisgICAgICAgICAgICB7IH0KICAgICAgICAgICAgIAogICAgICAgICAg
ICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX25vZGVzLnNpemUoKTsgfQogICAgICAg
ICAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9ub2Rlcy5pc0VtcHR5KCk7IH0K
QEAgLTQ1LDcgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgdm9pZCBj
bGVhcigpIHsgbV9ub2Rlcy5jbGVhcigpOyB9CiAKICAgICAgICAgICAgIC8vIE5vZGVTZXQgaXRz
ZWxmIGRvZXMgbm90IHZlcmlmeSB0aGF0IG5vZGVzIGluIGl0IGFyZSB1bmlxdWUuCi0gICAgICAg
ICAgICB2b2lkIGFwcGVuZChQYXNzUmVmUHRyPE5vZGU+IG5vZGUpIHsgbV9ub2Rlcy5hcHBlbmQo
bm9kZSk7IH0KKyAgICAgICAgICAgIHZvaWQgYXBwZW5kKFJlZlB0cjxOb2RlPiYmIG5vZGUpIHsg
bV9ub2Rlcy5hcHBlbmQoV1RGOjptb3ZlKG5vZGUpKTsgfQogICAgICAgICAgICAgdm9pZCBhcHBl
bmQoY29uc3QgTm9kZVNldCYgbm9kZVNldCkgeyBtX25vZGVzLmFwcGVuZFZlY3Rvcihub2RlU2V0
Lm1fbm9kZXMpOyB9CiAKICAgICAgICAgICAgIC8vIFJldHVybnMgdGhlIHNldCdzIGZpcnN0IG5v
ZGUgaW4gZG9jdW1lbnQgb3JkZXIsIG9yIG51bGxwdHIgaWYgdGhlIHNldCBpcyBlbXB0eS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFBhdGguY3BwIGIvU291cmNlL1dlYkNv
cmUveG1sL1hQYXRoUGF0aC5jcHAKaW5kZXggNzY2ODExNTI0ZmRlMGRkOWI3MjVjNzU2MzgxOGU1
YWRiYmZjNGY2MC4uZWQzNzAxNTI2MmU3N2Y3MGUzZmQzNDViZDcxMTFiMDkzODE3OWIxNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUGF0aC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUveG1sL1hQYXRoUGF0aC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgVmFsdWUgRmlsdGVyOjpl
dmFsdWF0ZSgpIGNvbnN0CiAgICAgICAgICAgICArK2V2YWx1YXRpb25Db250ZXh0LnBvc2l0aW9u
OwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoZXZhbHVhdGVQcmVkaWNhdGUoKnByZWRp
Y2F0ZSkpCi0gICAgICAgICAgICAgICAgbmV3Tm9kZXMuYXBwZW5kKG5vZGUpOworICAgICAgICAg
ICAgICAgIG5ld05vZGVzLmFwcGVuZChub2RlLmNvcHlSZWYoKSk7CiAgICAgICAgIH0KICAgICAg
ICAgbm9kZXMgPSBXVEY6Om1vdmUobmV3Tm9kZXMpOwogICAgIH0KQEAgLTEzMCw3ICsxMzAsNyBA
QCB2b2lkIExvY2F0aW9uUGF0aDo6ZXZhbHVhdGUoTm9kZVNldCYgbm9kZXMpIGNvbnN0CiAKICAg
ICAgICAgICAgIGZvciAoYXV0byYgbWF0Y2ggOiBtYXRjaGVzKSB7CiAgICAgICAgICAgICAgICAg
aWYgKCFuZWVkVG9DaGVja0ZvckR1cGxpY2F0ZU5vZGVzIHx8IG5ld05vZGVzU2V0LmFkZChtYXRj
aC5nZXQoKSkuaXNOZXdFbnRyeSkKLSAgICAgICAgICAgICAgICAgICAgbmV3Tm9kZXMuYXBwZW5k
KG1hdGNoKTsKKyAgICAgICAgICAgICAgICAgICAgbmV3Tm9kZXMuYXBwZW5kKG1hdGNoLmNvcHlS
ZWYoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS94bWwvWFBhdGhWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRo
VmFsdWUuaAppbmRleCA0ZGIyZWQzMmFhOGQxMzIzYzA0M2EwOGEyYWIxNTM0ZWQwYTc2ZjcwLi43
YmIwZjc0ZWNhMmE5MTc4YzJkNDA5ZDliNmZmNWJiNmM0MmNkMzRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWFBhdGhWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0
aFZhbHVlLmgKQEAgLTQ0LDkgKzQ0LDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
ICAgIFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpIDogbV90eXBlKFN0cmluZ1ZhbHVlKSwgbV9k
YXRhKERhdGE6OmNyZWF0ZSh2YWx1ZSkpIHsgfQogICAgICAgICAgICAgVmFsdWUoY29uc3QgY2hh
ciogdmFsdWUpIDogbV90eXBlKFN0cmluZ1ZhbHVlKSwgbV9kYXRhKERhdGE6OmNyZWF0ZSh2YWx1
ZSkpIHsgfQogCi0gICAgICAgICAgICBleHBsaWNpdCBWYWx1ZShOb2RlU2V0IHZhbHVlKSA6IG1f
dHlwZShOb2RlU2V0VmFsdWUpLCBtX2RhdGEoRGF0YTo6Y3JlYXRlKFdURjo6bW92ZSh2YWx1ZSkp
KSB7IH0KLSAgICAgICAgICAgIGV4cGxpY2l0IFZhbHVlKE5vZGUqIHZhbHVlKSA6IG1fdHlwZShO
b2RlU2V0VmFsdWUpLCBtX2RhdGEoRGF0YTo6Y3JlYXRlKHZhbHVlKSkgeyB9Ci0gICAgICAgICAg
ICBleHBsaWNpdCBWYWx1ZShQYXNzUmVmUHRyPE5vZGU+IHZhbHVlKSA6IG1fdHlwZShOb2RlU2V0
VmFsdWUpLCBtX2RhdGEoRGF0YTo6Y3JlYXRlKHZhbHVlKSkgeyB9CisgICAgICAgICAgICBleHBs
aWNpdCBWYWx1ZShOb2RlU2V0IHZhbHVlKQorICAgICAgICAgICAgICAgIDogbV90eXBlKE5vZGVT
ZXRWYWx1ZSksIG1fZGF0YShEYXRhOjpjcmVhdGUoV1RGOjptb3ZlKHZhbHVlKSkpCisgICAgICAg
ICAgICB7IH0KKyAgICAgICAgICAgIGV4cGxpY2l0IFZhbHVlKE5vZGUqIHZhbHVlKQorICAgICAg
ICAgICAgICAgIDogbV90eXBlKE5vZGVTZXRWYWx1ZSksIG1fZGF0YShEYXRhOjpjcmVhdGUodmFs
dWUpKQorICAgICAgICAgICAgeyB9CisgICAgICAgICAgICBleHBsaWNpdCBWYWx1ZShSZWZQdHI8
Tm9kZT4gdmFsdWUpCisgICAgICAgICAgICAgICAgOiBtX3R5cGUoTm9kZVNldFZhbHVlKSwgbV9k
YXRhKERhdGE6OmNyZWF0ZShXVEY6Om1vdmUodmFsdWUpKSkKKyAgICAgICAgICAgIHsgfQogCiAg
ICAgICAgICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIApAQCAtNjgs
MTkgKzc0LDI1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFZhbHVlKHZvaWQq
KSA9IGRlbGV0ZTsKIAogICAgICAgICAgICAgc3RydWN0IERhdGEgOiBwdWJsaWMgUmVmQ291bnRl
ZDxEYXRhPiB7Ci0gICAgICAgICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YT4gY3JlYXRl
KCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERhdGEpOyB9Ci0gICAgICAgICAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8RGF0YT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBh
ZG9wdFJlZihuZXcgRGF0YShzdHJpbmcpKTsgfQotICAgICAgICAgICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPERhdGE+IGNyZWF0ZShOb2RlU2V0IG5vZGVTZXQpIHsgcmV0dXJuIGFkb3B0UmVmKG5l
dyBEYXRhKFdURjo6bW92ZShub2RlU2V0KSkpOyB9Ci0gICAgICAgICAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8RGF0YT4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkgeyByZXR1cm4gYWRv
cHRSZWYobmV3IERhdGEobm9kZSkpOyB9CisgICAgICAgICAgICAgICAgc3RhdGljIFJlZjxEYXRh
PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERhdGEpOyB9CisgICAgICAgICAgICAg
ICAgc3RhdGljIFJlZjxEYXRhPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRGF0YShzdHJpbmcpKTsgfQorICAgICAgICAgICAgICAgIHN0YXRpYyBS
ZWY8RGF0YT4gY3JlYXRlKE5vZGVTZXQgbm9kZVNldCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBE
YXRhKFdURjo6bW92ZShub2RlU2V0KSkpOyB9CisgICAgICAgICAgICAgICAgc3RhdGljIFJlZjxE
YXRhPiBjcmVhdGUoUmVmUHRyPE5vZGU+JiYgbm9kZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBE
YXRhKFdURjo6bW92ZShub2RlKSkpOyB9CiAKICAgICAgICAgICAgICAgICBTdHJpbmcgc3RyaW5n
OwogICAgICAgICAgICAgICAgIE5vZGVTZXQgbm9kZVNldDsKIAogICAgICAgICAgICAgcHJpdmF0
ZToKICAgICAgICAgICAgICAgICBEYXRhKCkgeyB9Ci0gICAgICAgICAgICAgICAgZXhwbGljaXQg
RGF0YShjb25zdCBTdHJpbmcmIHN0cmluZykgOiBzdHJpbmcoc3RyaW5nKSB7IH0KLSAgICAgICAg
ICAgICAgICBleHBsaWNpdCBEYXRhKE5vZGVTZXQgbm9kZVNldCkgOiBub2RlU2V0KFdURjo6bW92
ZShub2RlU2V0KSkgeyB9Ci0gICAgICAgICAgICAgICAgZXhwbGljaXQgRGF0YShQYXNzUmVmUHRy
PE5vZGU+IG5vZGUpIDogbm9kZVNldChub2RlKSB7IH0KKyAgICAgICAgICAgICAgICBleHBsaWNp
dCBEYXRhKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgICAgICAgICAgICAgICAgICA6IHN0cmlu
ZyhzdHJpbmcpCisgICAgICAgICAgICAgICAgeyB9CisgICAgICAgICAgICAgICAgZXhwbGljaXQg
RGF0YShOb2RlU2V0IG5vZGVTZXQpCisgICAgICAgICAgICAgICAgICAgIDogbm9kZVNldChXVEY6
Om1vdmUobm9kZVNldCkpCisgICAgICAgICAgICAgICAgeyB9CisgICAgICAgICAgICAgICAgZXhw
bGljaXQgRGF0YShSZWZQdHI8Tm9kZT4mJiBub2RlKQorICAgICAgICAgICAgICAgICAgICA6IG5v
ZGVTZXQoV1RGOjptb3ZlKG5vZGUpKQorICAgICAgICAgICAgICAgIHsgfQogICAgICAgICAgICAg
fTsKIAogICAgICAgICAgICAgVHlwZSBtX3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nv
ci5jcHAKaW5kZXggMWYwOTU4YmFiMGUzZmY1ZTRmYjZiZWMzZmM3ZGE0OTg2YWY2NjgxNS4uYjRm
YmRlZjJkZjAzMDI4NjgyNWE1ZjJkYWJhNjI5NzllYjA0MmQxNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
U0xUUHJvY2Vzc29yLmNwcApAQCAtMTA5LDIzICsxMDksMjMgQEAgUmVmPERvY3VtZW50PiBYU0xU
UHJvY2Vzc29yOjpjcmVhdGVEb2N1bWVudEZyb21Tb3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2VT
dHJpbmcKICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VOb25OdWxsKCk7CiB9CiAKLVBhc3NSZWZQ
dHI8RG9jdW1lbnQ+IFhTTFRQcm9jZXNzb3I6OnRyYW5zZm9ybVRvRG9jdW1lbnQoTm9kZSogc291
cmNlTm9kZSkKK1JlZlB0cjxEb2N1bWVudD4gWFNMVFByb2Nlc3Nvcjo6dHJhbnNmb3JtVG9Eb2N1
bWVudChOb2RlKiBzb3VyY2VOb2RlKQogewogICAgIGlmICghc291cmNlTm9kZSkKLSAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgU3RyaW5nIHJlc3VsdE1J
TUVUeXBlOwogICAgIFN0cmluZyByZXN1bHRTdHJpbmc7CiAgICAgU3RyaW5nIHJlc3VsdEVuY29k
aW5nOwogICAgIGlmICghdHJhbnNmb3JtVG9TdHJpbmcoKnNvdXJjZU5vZGUsIHJlc3VsdE1JTUVU
eXBlLCByZXN1bHRTdHJpbmcsIHJlc3VsdEVuY29kaW5nKSkKLSAgICAgICAgcmV0dXJuIDA7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBjcmVhdGVEb2N1bWVudEZyb21Tb3Vy
Y2UocmVzdWx0U3RyaW5nLCByZXN1bHRFbmNvZGluZywgcmVzdWx0TUlNRVR5cGUsIHNvdXJjZU5v
ZGUsIDApOwogfQogCi1QYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IFhTTFRQcm9jZXNzb3I6
OnRyYW5zZm9ybVRvRnJhZ21lbnQoTm9kZSogc291cmNlTm9kZSwgRG9jdW1lbnQqIG91dHB1dERv
YykKK1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBYU0xUUHJvY2Vzc29yOjp0cmFuc2Zvcm1Ub0Zy
YWdtZW50KE5vZGUqIHNvdXJjZU5vZGUsIERvY3VtZW50KiBvdXRwdXREb2MpCiB7CiAgICAgaWYg
KCFzb3VyY2VOb2RlIHx8ICFvdXRwdXREb2MpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAogICAgIFN0cmluZyByZXN1bHRNSU1FVHlwZTsKICAgICBTdHJpbmcg
cmVzdWx0U3RyaW5nOwpAQCAtMTM2LDcgKzEzNiw3IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gWFNMVFByb2Nlc3Nvcjo6dHJhbnNmb3JtVG9GcmFnbWVudChOb2RlKiBzb3VyY2VOb2Rl
CiAgICAgICAgIHJlc3VsdE1JTUVUeXBlID0gInRleHQvaHRtbCI7CiAKICAgICBpZiAoIXRyYW5z
Zm9ybVRvU3RyaW5nKCpzb3VyY2VOb2RlLCByZXN1bHRNSU1FVHlwZSwgcmVzdWx0U3RyaW5nLCBy
ZXN1bHRFbmNvZGluZykpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICByZXR1cm4gY3JlYXRlRnJhZ21lbnRGb3JUcmFuc2Zvcm1Ub0ZyYWdtZW50KHJlc3Vs
dFN0cmluZywgcmVzdWx0TUlNRVR5cGUsIG91dHB1dERvYyk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNM
VFByb2Nlc3Nvci5oCmluZGV4IDY4MjMyOGYzMzYzYjEzYjExMjBhOGQyY2RkNjBlMDEzMzcxNmQ1
OTguLjdkNDhmYjc3ODk4MzE3MTljNTNjNjAzMzIyYjVhNjljYWRmNGFlOGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
eG1sL1hTTFRQcm9jZXNzb3IuaApAQCAtNDQsMTggKzQ0LDE4IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPFhTTFRQcm9jZXNzb3I+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgWFNM
VFByb2Nlc3Nvcik7IH0KICAgICB+WFNMVFByb2Nlc3NvcigpOwogCi0gICAgdm9pZCBzZXRYU0xT
dHlsZVNoZWV0KFBhc3NSZWZQdHI8WFNMU3R5bGVTaGVldD4gc3R5bGVTaGVldCkgeyBtX3N0eWxl
c2hlZXQgPSBzdHlsZVNoZWV0OyB9CisgICAgdm9pZCBzZXRYU0xTdHlsZVNoZWV0KFJlZlB0cjxY
U0xTdHlsZVNoZWV0PiBzdHlsZVNoZWV0KSB7IG1fc3R5bGVzaGVldCA9IFdURjo6bW92ZShzdHls
ZVNoZWV0KTsgfQogICAgIGJvb2wgdHJhbnNmb3JtVG9TdHJpbmcoTm9kZSYgc291cmNlLCBTdHJp
bmcmIHJlc3VsdE1JTUVUeXBlLCBTdHJpbmcmIHJlc3VsdFN0cmluZywgU3RyaW5nJiByZXN1bHRF
bmNvZGluZyk7CiAgICAgUmVmPERvY3VtZW50PiBjcmVhdGVEb2N1bWVudEZyb21Tb3VyY2UoY29u
c3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgc291cmNlRW5jb2RpbmcsIGNvbnN0IFN0
cmluZyYgc291cmNlTUlNRVR5cGUsIE5vZGUqIHNvdXJjZU5vZGUsIEZyYW1lKiBmcmFtZSk7CiAg
ICAgCiAgICAgLy8gRE9NIG1ldGhvZHMKLSAgICB2b2lkIGltcG9ydFN0eWxlc2hlZXQoUGFzc1Jl
ZlB0cjxOb2RlPiBzdHlsZSkKKyAgICB2b2lkIGltcG9ydFN0eWxlc2hlZXQoUmVmUHRyPE5vZGU+
JiYgc3R5bGUpCiAgICAgewogICAgICAgICBpZiAoc3R5bGUpCi0gICAgICAgICAgICBtX3N0eWxl
c2hlZXRSb290Tm9kZSA9IHN0eWxlOworICAgICAgICAgICAgbV9zdHlsZXNoZWV0Um9vdE5vZGUg
PSBXVEY6Om1vdmUoc3R5bGUpOwogICAgIH0KLSAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IHRyYW5zZm9ybVRvRnJhZ21lbnQoTm9kZSogc291cmNlLCBEb2N1bWVudCogb3VwdXREb2Mp
OwotICAgIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IHRyYW5zZm9ybVRvRG9jdW1lbnQoTm9kZSogc291
cmNlKTsKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gdHJhbnNmb3JtVG9GcmFnbWVudChO
b2RlKiBzb3VyY2UsIERvY3VtZW50KiBvdXB1dERvYyk7CisgICAgUmVmUHRyPERvY3VtZW50PiB0
cmFuc2Zvcm1Ub0RvY3VtZW50KE5vZGUqIHNvdXJjZSk7CiAgICAgCiAgICAgdm9pZCBzZXRQYXJh
bWV0ZXIoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IFN0cmluZyYgbG9jYWxOYW1l
LCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKICAgICBTdHJpbmcgZ2V0UGFyYW1ldGVyKGNvbnN0IFN0
cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBTdHJpbmcmIGxvY2FsTmFtZSkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDU1
MDhkZjM0YjQ3OTJjMTQ3ZWM0MjYxYTk4MDlmYzQwNzhlZmUxNDIuLjgwOGNlZWYyNTAyZDdlYmFk
NjI5YjQ4ZTk3YjNjZDk2NmM2ZjhkN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9w
YXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJz
ZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0xMDUsOSArMTA1LDkgQEAgdm9pZCBYTUxEb2N1
bWVudFBhcnNlcjo6aW5zZXJ0KGNvbnN0IFNlZ21lbnRlZFN0cmluZyYpCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmFwcGVuZChQYXNzUmVm
UHRyPFN0cmluZ0ltcGw+IGlucHV0U291cmNlKQordm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6YXBw
ZW5kKFJlZlB0cjxTdHJpbmdJbXBsPiYmIGlucHV0U291cmNlKQogewotICAgIFNlZ21lbnRlZFN0
cmluZyBzb3VyY2UoaW5wdXRTb3VyY2UpOworICAgIFNlZ21lbnRlZFN0cmluZyBzb3VyY2UoV1RG
Ojptb3ZlKGlucHV0U291cmNlKSk7CiAgICAgaWYgKG1fc2F3WFNMVHJhbnNmb3JtIHx8ICFtX3Nh
d0ZpcnN0RWxlbWVudCkKICAgICAgICAgbV9vcmlnaW5hbFNvdXJjZUZvclRyYW5zZm9ybS5hcHBl
bmQoc291cmNlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxE
b2N1bWVudFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBh
cnNlci5oCmluZGV4IDZmZGNlNmRkN2EwZmViMzY5ODJjOTc4ZDYxNGE3ZDE0ODE1NmQ3ZTIuLjhm
NDNmOTA5ZTExODBjZGZlMzYyYWNhN2ZlNjgwOTg0M2I0MDQ1NmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmgKQEAgLTk4LDcgKzk4LDcgQEAgY2xh
c3MgVGV4dDsKIAogICAgICAgICAvLyBGcm9tIERvY3VtZW50UGFyc2VyCiAgICAgICAgIHZpcnR1
YWwgdm9pZCBpbnNlcnQoY29uc3QgU2VnbWVudGVkU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxTdHJpbmdJbXBsPikgb3ZlcnJpZGU7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBhcHBlbmQoUmVmUHRyPFN0cmluZ0ltcGw+JiYpIG92ZXJyaWRl
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoKCkgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBpc1dhaXRpbmdGb3JTY3JpcHRzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBzdG9wUGFyc2luZygpIG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261163</attachid>
            <date>2015-09-14 20:03:25 -0700</date>
            <delta_ts>2015-09-14 23:01:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149114-20150915120314.patch</filename>
            <type>text/plain</type>
            <size>28190</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY4ZDRiY2VmNTk1MzEy
ZThhYTY3ZDNhYjI1ZGY2ZTZmZTViZTZiOC4uMmExMTA3NDA2OWJlYTQ2ZDE1Y2U1YmI4NTgwMTA4
YWU3MDk5YTc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE1LTA5LTE0ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgYWxs
IHVzZXMgb2YgUGFzc1JlZlB0ciBpbiBXZWJDb3JlL3htbAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBkb20vRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5o
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudFBhcnNlci5oOgorICAgICAgICAqIGRvbS9SYXdEYXRh
RG9jdW1lbnRQYXJzZXIuaDoKKyAgICAgICAgKiBodG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZUUERpcmVjdG9yeURvY3VtZW50UGFyc2VyOjphcHBlbmQp
OgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OmFwcGVuZCk6CisgICAgICAgICogaHRtbC9w
YXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgICogaHRtbC9wYXJzZXIvVGV4dERv
Y3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHREb2N1bWVudFBhcnNlcjo6
YXBwZW5kKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuaDoKKyAg
ICAgICAgKiB4bWwvTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok5hdGl2ZVhQYXRoTlNSZXNvbHZlcjo6TmF0aXZlWFBhdGhOU1Jlc29sdmVyKToKKyAgICAgICAg
KiB4bWwvTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpOYXRpdmVY
UGF0aE5TUmVzb2x2ZXI6OmNyZWF0ZSk6CisgICAgICAgICogeG1sL1hNTEVycm9ycy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVYSFRNTFBhcnNlckVycm9ySGVhZGVyKToKKyAgICAgICAg
KiB4bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNoUmVh
ZHlTdGF0ZUNoYW5nZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudFRocm90dGxlOjpkaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpkaXNwYXRjaERlZmVycmVkRXZlbnRz
KToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaDoK
KyAgICAgICAgKiB4bWwvWE1MU2VyaWFsaXplci5oOgorICAgICAgICAqIHhtbC9YUGF0aEV2YWx1
YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aEV2YWx1YXRvcjo6Y3JlYXRlRXhwcmVz
c2lvbik6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aEV2YWx1YXRvcjo6Y3JlYXRlTlNSZXNvbHZl
cik6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aEV2YWx1YXRvcjo6ZXZhbHVhdGUpOgorICAgICAg
ICAqIHhtbC9YUGF0aEV2YWx1YXRvci5oOgorICAgICAgICAqIHhtbC9YUGF0aE5vZGVTZXQuaDog
Rml4IHN0eWxlIGVycm9ycy4KKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpOb2RlU2V0OjpOb2Rl
U2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoOjpOb2RlU2V0OjphcHBlbmQpOgorICAgICAg
ICAqIHhtbC9YUGF0aFBhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkZpbHRlcjo6
ZXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkxvY2F0aW9uUGF0aDo6ZXZhbHVh
dGUpOgorICAgICAgICAqIHhtbC9YUGF0aFZhbHVlLmg6IGRpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6WFBhdGg6OlZhbHVlOjpWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6VmFsdWU6
OkRhdGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6VmFsdWU6OkRhdGE6OkRh
dGEpOgorICAgICAgICAqIHhtbC9YU0xUUHJvY2Vzc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlhTTFRQcm9jZXNzb3I6OnRyYW5zZm9ybVRvRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
WFNMVFByb2Nlc3Nvcjo6dHJhbnNmb3JtVG9GcmFnbWVudCk6CisgICAgICAgICogeG1sL1hTTFRQ
cm9jZXNzb3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlhTTFRQcm9jZXNzb3I6OnNldFhTTFN0eWxl
U2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6WFNMVFByb2Nlc3Nvcjo6aW1wb3J0U3R5bGVzaGVl
dCk6CisgICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6YXBwZW5kKToKKyAgICAgICAgKiB4bWwvcGFy
c2VyL1hNTERvY3VtZW50UGFyc2VyLmg6CisKIDIwMTUtMDktMTQgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wIG5vbi1zdGFuZGFyZCBbSXNJbmRleF0gV2Vi
S2l0IElETCBleHRlbmRlZCBhdHRyaWJ1dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGVjb2Rl
ZERhdGFEb2N1bWVudFBhcnNlci5oCmluZGV4IDgyZjhiZDE0ZWIwZjNhM2I3OGU2NGNiYzM1MDA1
NzIxM2Y1MDgyOTcuLmRmZTRlOWJkZjdiZGI4ODVkZmUzMWE4ZTI2ZGNlZGRiMTFmOGU0MTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuaApAQCAt
NDEsNyArNDEsNyBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgLy8gYXBwZW5kIGlzIHVz
ZWQgYnkgRG9jdW1lbnRXcml0ZXI6OnJlcGxhY2VEb2N1bWVudC4KLSAgICB2aXJ0dWFsIHZvaWQg
YXBwZW5kKFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4pIG92ZXJyaWRlID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgYXBwZW5kKFJlZlB0cjxTdHJpbmdJbXBsPiYmKSBvdmVycmlkZSA9IDA7CiAKICAgICAv
LyBhcHBlbmRCeXRlcyBhbmQgZmx1c2ggYXJlIHVzZWQgYnkgRG9jdW1lbnRXcml0ZXIgKHRoZSBs
b2FkZXIpLgogICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRCeXRlcyhEb2N1bWVudFdyaXRlciYsIGNv
bnN0IGNoYXIqIGJ5dGVzLCBzaXplX3QgbGVuZ3RoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50UGFyc2VyLmgKaW5kZXggNDc3MWFmMTYzODJjNjAxZDMyYTZmYzRkZTY5ODQ5NmFkMThi
YTc1NC4uMGFmZDlmZmQ2NWRjNmRkYzExNmE2YjJlMGFkMDgyOTBkYzZjZTE2YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50UGFyc2VyLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIC8v
IEZJWE1FOiBhcHBlbmQoKSBzaG91bGQgYmUgcHJpdmF0ZSwgYnV0IERvY3VtZW50V3JpdGVyOjpy
ZXBsYWNlRG9jdW1lbnQgdXNlcyBpdCBmb3Igbm93LgogICAgIC8vIEZJWE1FOiBUaGlzIHJlYWxs
eSBzaG91bGQgdGFrZSBhIHN0ZDo6dW5pcXVlX3B0ciB0byBzaWduaWZ5IHRoYXQgaXQgZXhwZWN0
cyB0byB0YWtlCiAgICAgLy8gb3duZXJzaGlwIG9mIHRoZSBidWZmZXIuIFRoZSBwYXJzZXIgZXhw
ZWN0cyB0aGUgUGFzc1JlZlB0ciB0byBob2xkIHRoZSBvbmx5IHJlZiBvZiB0aGUgU3RyaW5nSW1w
bC4KLSAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4pID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kKFJlZlB0cjxTdHJpbmdJbXBsPiYmKSA9IDA7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZmluaXNoKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vUmF3RGF0YURvY3VtZW50UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmF3RGF0
YURvY3VtZW50UGFyc2VyLmgKaW5kZXggODM0ZDQyNjY2YmM1MTk3NDgzNmVjN2U5NzgyZGFkZmU5
Nzk1YmNlYS4uZTA2ODZkOWY1ZGYzZTM1Y2Q0NzA0MzVlN2RkNDQ3OWQ2NjI4YjMwNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Jhd0RhdGFEb2N1bWVudFBhcnNlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9SYXdEYXRhRG9jdW1lbnRQYXJzZXIuaApAQCAtNTYsNyArNTYsNyBA
QCBwcml2YXRlOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4pIG92ZXJyaWRlCisgICAg
dmlydHVhbCB2b2lkIGFwcGVuZChSZWZQdHI8U3RyaW5nSW1wbD4mJikgb3ZlcnJpZGUKICAgICB7
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAKaW5kZXggMTQ0N2E0NjM1ZjcyMTJlZmE5MmEx
MWMxN2Y5MmY3ZjY5MzdlYWVmZC4uYjVkMWQxODg5NWU3YWY4OWUyNTliNTI1MzM1MjZiZTQ0ZTc0
ZjJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5jcHAK
QEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFs
IHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4pIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBhcHBlbmQoUmVmUHRyPFN0cmluZ0ltcGw+JiYpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBmaW5pc2goKSBvdmVycmlkZTsKIAogICAgIC8vIEZJWE1FOiBXaHkgZG8gd2UgbmVl
ZCB0aGlzPwpAQCAtMzM5LDkgKzMzOSw5IEBAIHZvaWQgRlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJz
ZXI6OmNyZWF0ZUJhc2ljRG9jdW1lbnQoKQogICAgIGRvY3VtZW50KCktPnByb2Nlc3NWaWV3cG9y
dCgid2lkdGg9ZGV2aWNlLXdpZHRoIiwgVmlld3BvcnRBcmd1bWVudHM6OlZpZXdwb3J0TWV0YSk7
CiB9CiAKLXZvaWQgRlRQRGlyZWN0b3J5RG9jdW1lbnRQYXJzZXI6OmFwcGVuZChQYXNzUmVmUHRy
PFN0cmluZ0ltcGw+IGlucHV0U291cmNlKQordm9pZCBGVFBEaXJlY3RvcnlEb2N1bWVudFBhcnNl
cjo6YXBwZW5kKFJlZlB0cjxTdHJpbmdJbXBsPiYmIGlucHV0U291cmNlKQogewotICAgIFN0cmlu
ZyBzb3VyY2UoaW5wdXRTb3VyY2UpOworICAgIFN0cmluZyBzb3VyY2UoV1RGOjptb3ZlKGlucHV0
U291cmNlKSk7CiAKICAgICAvLyBNYWtlIHN1cmUgd2UgaGF2ZSB0aGUgdGFibGUgZWxlbWVudCB0
byBhcHBlbmQgdG8gYnkgbG9hZGluZyB0aGUgdGVtcGxhdGUgc2V0IGluIHRoZSBwcmVmLCBvcgog
ICAgIC8vIGNyZWF0aW5nIGEgdmVyeSBiYXNpYyBkb2N1bWVudCB3aXRoIHRoZSBhcHByb3ByaWF0
ZSB0YWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3Vt
ZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBh
cnNlci5jcHAKaW5kZXggOTNjNWY5Mzk3ODBmMTg1MWFjZDk1YzM0YzA3NjI2ODcxYWJjZDM3OC4u
NjNiM2I0MDdhNDdlZGYxYzk4ZDBjMzU1MmJjY2YyYzAzMDkzODQ1NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0zNTYsNyAr
MzU2LDcgQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6Omluc2VydChjb25zdCBTZWdtZW50ZWRT
dHJpbmcmIHNvdXJjZSkKICAgICBlbmRJZkRlbGF5ZWQoKTsKIH0KIAotdm9pZCBIVE1MRG9jdW1l
bnRQYXJzZXI6OmFwcGVuZChQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IGlucHV0U291cmNlKQordm9p
ZCBIVE1MRG9jdW1lbnRQYXJzZXI6OmFwcGVuZChSZWZQdHI8U3RyaW5nSW1wbD4mJiBpbnB1dFNv
dXJjZSkKIHsKICAgICBpZiAoaXNTdG9wcGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTM2NSw3
ICszNjUsNyBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6YXBwZW5kKFBhc3NSZWZQdHI8U3Ry
aW5nSW1wbD4gaW5wdXRTb3VyY2UpCiAgICAgLy8gYnV0IHdlIG5lZWQgdG8gZW5zdXJlIGl0IGlz
bid0IGRlbGV0ZWQgeWV0LgogICAgIFJlZjxIVE1MRG9jdW1lbnRQYXJzZXI+IHByb3RlY3QoKnRo
aXMpOwogCi0gICAgU3RyaW5nIHNvdXJjZShpbnB1dFNvdXJjZSk7CisgICAgU3RyaW5nIHNvdXJj
ZShXVEY6Om1vdmUoaW5wdXRTb3VyY2UpKTsKIAogICAgIGlmIChtX3ByZWxvYWRTY2FubmVyKSB7
CiAgICAgICAgIGlmIChtX2lucHV0LmN1cnJlbnQoKS5pc0VtcHR5KCkgJiYgIWlzV2FpdGluZ0Zv
clNjcmlwdHMoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TERvY3VtZW50UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1l
bnRQYXJzZXIuaAppbmRleCA0Nzk4NGM2Yzk4NGQ5M2IwNDY1Y2U1Mzc2YTljYjhiNmRiNzFkODEz
Li4wMjNjNzZiZjg2OTlmNGNhN2RmOWI2ZTRlMWYyMmE0NGEwMTU3ZDA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaApAQCAtNjYsNyArNjYs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgSFRNTERvY3VtZW50UGFyc2VyKEhUTUxEb2N1
bWVudCYpOwogCiAgICAgdmlydHVhbCB2b2lkIGluc2VydChjb25zdCBTZWdtZW50ZWRTdHJpbmcm
KSBvdmVycmlkZSBmaW5hbDsKLSAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8U3Ry
aW5nSW1wbD4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhcHBlbmQoUmVmUHRyPFN0cmlu
Z0ltcGw+JiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBmaW5pc2goKSBvdmVycmlkZTsK
IAogICAgIEhUTUxUcmVlQnVpbGRlciYgdHJlZUJ1aWxkZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDVmYTYyYTMyMmEz
NjM4OTM3MTZkNTE1YzgyZDM1NmU4MDc4ZWQ3NGYuLmFjZDRiNjM3MTFjY2I2MmQ4MzEwY2IxNjgw
ZWMxYTMyNzg5YjZlOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1Rl
eHREb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4
dERvY3VtZW50UGFyc2VyLmNwcApAQCAtMzYsMTEgKzM2LDExIEBAIFRleHREb2N1bWVudFBhcnNl
cjo6VGV4dERvY3VtZW50UGFyc2VyKEhUTUxEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiB9CiAKLXZv
aWQgVGV4dERvY3VtZW50UGFyc2VyOjphcHBlbmQoUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiB0ZXh0
KQordm9pZCBUZXh0RG9jdW1lbnRQYXJzZXI6OmFwcGVuZChSZWZQdHI8U3RyaW5nSW1wbD4mJiB0
ZXh0KQogewogICAgIGlmICghbV9oYXZlSW5zZXJ0ZWRGYWtlUHJlRWxlbWVudCkKICAgICAgICAg
aW5zZXJ0RmFrZVByZUVsZW1lbnQoKTsKLSAgICBIVE1MRG9jdW1lbnRQYXJzZXI6OmFwcGVuZCh0
ZXh0KTsKKyAgICBIVE1MRG9jdW1lbnRQYXJzZXI6OmFwcGVuZChXVEY6Om1vdmUodGV4dCkpOwog
fQogCiB2b2lkIFRleHREb2N1bWVudFBhcnNlcjo6aW5zZXJ0RmFrZVByZUVsZW1lbnQoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFyc2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuaAppbmRleCA1
ZjVhMDllZDJlMzZjNzNiZTYzNDljY2QxNjBiY2EzZjNhZWFjN2U2Li5kM2RlYzNmNGMzNzZiNGE2
NDgwMDYwZWUzMmYxN2Y4YWQzODFhMGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuaApAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIGV4cGxpY2l0IFRleHREb2N1bWVudFBhcnNlcihIVE1MRG9jdW1lbnQmKTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxTdHJpbmdJbXBsPikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGFwcGVuZChSZWZQdHI8U3RyaW5nSW1wbD4mJikgb3ZlcnJpZGU7
CiAKICAgICB2b2lkIGluc2VydEZha2VQcmVFbGVtZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9OYXRpdmVYUGF0aE5TUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
eG1sL05hdGl2ZVhQYXRoTlNSZXNvbHZlci5jcHAKaW5kZXggNTk5ZGE1MDBlYjllMGZjN2UzNjdm
NGFiYWFmNDYwZDhlOTNlNTJmYy4uMWUyZTc5YmNlM2U0OThmNmJmYmZhMjRhODBmYTAwZjE5ZmU1
YTdkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL05hdGl2ZVhQYXRoTlNSZXNvbHZl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL05hdGl2ZVhQYXRoTlNSZXNvbHZlci5jcHAK
QEAgLTMyLDggKzMyLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1OYXRpdmVYUGF0aE5T
UmVzb2x2ZXI6Ok5hdGl2ZVhQYXRoTlNSZXNvbHZlcihQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCi0g
ICAgOiBtX25vZGUobm9kZSkKK05hdGl2ZVhQYXRoTlNSZXNvbHZlcjo6TmF0aXZlWFBhdGhOU1Jl
c29sdmVyKFJlZlB0cjxOb2RlPiYmIG5vZGUpCisgICAgOiBtX25vZGUoV1RGOjptb3ZlKG5vZGUp
KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvTmF0aXZlWFBhdGhOU1Jl
c29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmgKaW5k
ZXggNDM0YzEyZWY3MDc3MjM5NjE5YWY5YThkNWUwNDZkZmNiMGJjYTA0Mi4uNjg3MTIyOGMzMGZi
MTY5YWZjYjg4ZGEzNjQ5MTliY2VkODBiNmQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
eG1sL05hdGl2ZVhQYXRoTlNSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9OYXRp
dmVYUGF0aE5TUmVzb2x2ZXIuaApAQCAtMzUsMTMgKzM1LDEzIEBAIGNsYXNzIE5vZGU7CiAKIGNs
YXNzIE5hdGl2ZVhQYXRoTlNSZXNvbHZlciA6IHB1YmxpYyBYUGF0aE5TUmVzb2x2ZXIgewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8TmF0aXZlWFBhdGhOU1Jlc29sdmVyPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxOb2RlPiBub2RlKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE5hdGl2ZVhQYXRoTlNSZXNv
bHZlcihub2RlKSk7IH0KKyAgICBzdGF0aWMgUmVmPE5hdGl2ZVhQYXRoTlNSZXNvbHZlcj4gY3Jl
YXRlKFJlZlB0cjxOb2RlPiYmIG5vZGUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmF0aXZlWFBh
dGhOU1Jlc29sdmVyKFdURjo6bW92ZShub2RlKSkpOyB9CiAgICAgdmlydHVhbCB+TmF0aXZlWFBh
dGhOU1Jlc29sdmVyKCk7CiAKICAgICB2aXJ0dWFsIFN0cmluZyBsb29rdXBOYW1lc3BhY2VVUkko
Y29uc3QgU3RyaW5nJiBwcmVmaXgpOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IE5hdGl2ZVhQ
YXRoTlNSZXNvbHZlcihQYXNzUmVmUHRyPE5vZGU+KTsKKyAgICBleHBsaWNpdCBOYXRpdmVYUGF0
aE5TUmVzb2x2ZXIoUmVmUHRyPE5vZGU+JiYpOwogICAgIFJlZlB0cjxOb2RlPiBtX25vZGU7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MRXJyb3JzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxFcnJvcnMuY3BwCmluZGV4IDY3M2M1ZmI2MmEzZGRjODAyMjI5MGU4
ZDYyYzMyMWMxZTQ3ZjdiZjkuLjhiMjYwMTY4NDg0ODk3Yzc3ZmY3YTIyNzNiNGMzMTg0OWE2ZWY3
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxFcnJvcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxFcnJvcnMuY3BwCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgWE1M
RXJyb3JzOjphcHBlbmRFcnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiB0eXBlU3RyaW5nLCBUZXh0
UG9zaXRpb24gcG9zaXRpCiAgICAgbV9lcnJvck1lc3NhZ2VzLmFwcGVuZChtZXNzYWdlKTsKIH0K
IAotc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZVhIVE1MUGFyc2VyRXJy
b3JIZWFkZXIoRG9jdW1lbnQqIGRvYywgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2VzKQorc3Rh
dGljIGlubGluZSBSZWZQdHI8RWxlbWVudD4gY3JlYXRlWEhUTUxQYXJzZXJFcnJvckhlYWRlcihE
b2N1bWVudCogZG9jLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZXMpCiB7CiAgICAgUmVmUHRy
PEVsZW1lbnQ+IHJlcG9ydEVsZW1lbnQgPSBkb2MtPmNyZWF0ZUVsZW1lbnQoUXVhbGlmaWVkTmFt
ZShudWxsQXRvbSwgInBhcnNlcmVycm9yIiwgeGh0bWxOYW1lc3BhY2VVUkkpLCB0cnVlKTsKIApA
QCAtMTA4LDcgKzEwOCw3IEBAIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVh
dGVYSFRNTFBhcnNlckVycm9ySGVhZGVyKERvY3VtZW50KiBkb2MsIGNvCiAgICAgcmVwb3J0RWxl
bWVudC0+cGFyc2VyQXBwZW5kQ2hpbGQoaDMuZ2V0KCkpOwogICAgIGgzLT5wYXJzZXJBcHBlbmRD
aGlsZChkb2MtPmNyZWF0ZVRleHROb2RlKCJCZWxvdyBpcyBhIHJlbmRlcmluZyBvZiB0aGUgcGFn
ZSB1cCB0byB0aGUgZmlyc3QgZXJyb3IuIikpOwogCi0gICAgcmV0dXJuIHJlcG9ydEVsZW1lbnQu
cmVsZWFzZSgpOworICAgIHJldHVybiByZXBvcnRFbGVtZW50OwogfQogCiB2b2lkIFhNTEVycm9y
czo6aW5zZXJ0RXJyb3JNZXNzYWdlQmxvY2soKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAKaW5kZXggY2Yx
Y2NiMzcwNDhlODhhNmUyMDdlNmZiMTM4ZmIzNGQ3YmU4MzAxMC4uYWIxNzA4ZmU0NDI1ZDAxZjY1
MTU4MzkzMzU0N2Q5YzljN2RiNmUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwCkBAIC04MSwxNSAr
ODEsMTUgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0
Y2hUaHJvdHRsZWRQcm9ncmVzc0V2ZW50KGJvb2wgbGUKICAgICBtX2hhc1Rocm90dGxlZFByb2dy
ZXNzRXZlbnQgPSB0cnVlOwogfQogCi12b2lkIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRo
cm90dGxlOjpkaXNwYXRjaFJlYWR5U3RhdGVDaGFuZ2VFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBl
dmVudCwgUHJvZ3Jlc3NFdmVudEFjdGlvbiBwcm9ncmVzc0V2ZW50QWN0aW9uKQordm9pZCBYTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hSZWFkeVN0YXRlQ2hhbmdl
RXZlbnQoUmVmUHRyPEV2ZW50PiYmIGV2ZW50LCBQcm9ncmVzc0V2ZW50QWN0aW9uIHByb2dyZXNz
RXZlbnRBY3Rpb24pCiB7CiAgICAgaWYgKHByb2dyZXNzRXZlbnRBY3Rpb24gPT0gRmx1c2hQcm9n
cmVzc0V2ZW50KQogICAgICAgICBmbHVzaFByb2dyZXNzRXZlbnQoKTsKIAotICAgIGRpc3BhdGNo
RXZlbnQoZXZlbnQpOworICAgIGRpc3BhdGNoRXZlbnQoV1RGOjptb3ZlKGV2ZW50KSk7CiB9CiAK
LXZvaWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNoRXZlbnQo
UGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCit2b2lkIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVu
dFRocm90dGxlOjpkaXNwYXRjaEV2ZW50KFJlZlB0cjxFdmVudD4mJiBldmVudCkKIHsKICAgICBB
U1NFUlQoZXZlbnQpOwogICAgIGlmIChtX2RlZmVyRXZlbnRzKSB7CkBAIC05Nyw5ICs5Nyw5IEBA
IHZvaWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNoRXZlbnQo
UGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgICAgICAgICAvLyBSZWFkeXN0YXRlY2hhbmdl
IGV2ZW50cyBhcmUgc3RhdGUtbGVzcyBzbyBhdm9pZCByZXBlYXRpbmcgdHdvIGlkZW50aWNhbCBl
dmVudHMgaW4gYSByb3cgb24gcmVzdW1lLgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
Ci0gICAgICAgIG1fZGVmZXJyZWRFdmVudHMuYXBwZW5kKGV2ZW50KTsKKyAgICAgICAgbV9kZWZl
cnJlZEV2ZW50cy5hcHBlbmQoV1RGOjptb3ZlKGV2ZW50KSk7CiAgICAgfSBlbHNlCi0gICAgICAg
IG1fdGFyZ2V0LT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICAgICAgbV90YXJnZXQtPmRpc3Bh
dGNoRXZlbnQoV1RGOjptb3ZlKGV2ZW50KSk7CiB9CiAKIHZvaWQgWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNoUHJvZ3Jlc3NFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUpCkBAIC0xNTMsNyArMTUzLDcgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hEZWZlcnJlZEV2ZW50cygpCiAgICAgLy8gVGhlIHByb2dy
ZXNzIGV2ZW50IHdpbGwgYmUgaW4gdGhlIG1fZGVmZXJyZWRFdmVudHMgdmVjdG9yIGlmIHRoZSBs
b2FkIHdhcyBmaW5pc2hlZCB3aGlsZSBzdXNwZW5kZWQuCiAgICAgLy8gSWYgbm90LCBqdXN0IHNl
bmQgdGhlIG1vc3QgdXAtdG8tZGF0ZSBwcm9ncmVzcyBvbiByZXN1bWUuCiAgICAgaWYgKGRlZmVy
cmVkUHJvZ3Jlc3NFdmVudCkKLSAgICAgICAgZGlzcGF0Y2hFdmVudChkZWZlcnJlZFByb2dyZXNz
RXZlbnQpOworICAgICAgICBkaXNwYXRjaEV2ZW50KFdURjo6bW92ZShkZWZlcnJlZFByb2dyZXNz
RXZlbnQpKTsKIH0KIAogdm9pZCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6
ZmlyZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudFRocm90dGxlLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQ
cm9ncmVzc0V2ZW50VGhyb3R0bGUuaAppbmRleCBlNjUzNDBmMTliNTg1NjExMGYxMGY2MzAwYjI0
NjBlM2MxMWQxN2YwLi4yOWY0ZDY1NWQ4M2QxNmY2MTcwZmQ1NTg3NTZkNWE3NjE5NTA0ZjAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
VGhyb3R0bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50VGhyb3R0bGUuaApAQCAtMjgsNyArMjgsNiBAQAogI2RlZmluZSBYTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnRUaHJvdHRsZV9oCiAKICNpbmNsdWRlICJUaW1lci5oIgotI2luY2x1ZGUg
Ind0Zi9QYXNzUmVmUHRyLmgiCiAjaW5jbHVkZSAid3RmL1ZlY3Rvci5oIgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAKQEAgLTUwLDcgKzQ5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlKCk7CiAKICAgICB2b2lkIGRpc3BhdGNo
VGhyb3R0bGVkUHJvZ3Jlc3NFdmVudChib29sIGxlbmd0aENvbXB1dGFibGUsIHVuc2lnbmVkIGxv
bmcgbG9uZyBsb2FkZWQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbCk7Ci0gICAgdm9pZCBkaXNw
YXRjaFJlYWR5U3RhdGVDaGFuZ2VFdmVudChQYXNzUmVmUHRyPEV2ZW50PiwgUHJvZ3Jlc3NFdmVu
dEFjdGlvbiA9IERvTm90Rmx1c2hQcm9ncmVzc0V2ZW50KTsKKyAgICB2b2lkIGRpc3BhdGNoUmVh
ZHlTdGF0ZUNoYW5nZUV2ZW50KFJlZlB0cjxFdmVudD4mJiwgUHJvZ3Jlc3NFdmVudEFjdGlvbiA9
IERvTm90Rmx1c2hQcm9ncmVzc0V2ZW50KTsKICAgICB2b2lkIGRpc3BhdGNoUHJvZ3Jlc3NFdmVu
dChjb25zdCBBdG9taWNTdHJpbmcmKTsKIAogICAgIHZvaWQgc3VzcGVuZCgpOwpAQCAtNjIsNyAr
NjEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpOwogICAgIHZvaWQgZGlz
cGF0Y2hEZWZlcnJlZEV2ZW50cygpOwogICAgIHZvaWQgZmx1c2hQcm9ncmVzc0V2ZW50KCk7Ci0g
ICAgdm9pZCBkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKKyAgICB2b2lkIGRpc3Bh
dGNoRXZlbnQoUmVmUHRyPEV2ZW50PiYmKTsKIAogICAgIGJvb2wgaGFzRXZlbnRUb0Rpc3BhdGNo
KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxTZXJpYWxpemVy
LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MU2VyaWFsaXplci5oCmluZGV4IGVmNWMyZjE2M2Vh
ODQxNzZlYmU3Yzg4ZWZiZjgyYzQ5M2YzNjRkMmEuLjkwY2QxM2IyNWM1NjM0ZjRmNWViYmNmZTc3
ZTEzOTNkMzNjZmM3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxTZXJpYWxp
emVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFNlcmlhbGl6ZXIuaApAQCAtMjEsNyAr
MjEsNyBAQAogI2RlZmluZSBYTUxTZXJpYWxpemVyX2gKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YUGF0aEV2YWx1YXRvci5jcHAKaW5kZXggYjJhMGYyM2FlYjdmMGE3ODg2ODdmNjk4
N2RhMzI3MzYxNDkyMDdhMy4uZGUwYWEwZDE3NmVkZDhkMDczNTdkYWZmOWE5ZjJiYjdjMTM1OGRk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFdmFsdWF0b3IuY3BwCkBAIC0zNywxOSArMzcsMTkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgWFBhdGg7CiAKLVBhc3NS
ZWZQdHI8WFBhdGhFeHByZXNzaW9uPiBYUGF0aEV2YWx1YXRvcjo6Y3JlYXRlRXhwcmVzc2lvbihj
b25zdCBTdHJpbmcmIGV4cHJlc3Npb24sCitSZWZQdHI8WFBhdGhFeHByZXNzaW9uPiBYUGF0aEV2
YWx1YXRvcjo6Y3JlYXRlRXhwcmVzc2lvbihjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
WFBhdGhOU1Jlc29sdmVyKiByZXNvbHZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAg
ICByZXR1cm4gWFBhdGhFeHByZXNzaW9uOjpjcmVhdGVFeHByZXNzaW9uKGV4cHJlc3Npb24sIHJl
c29sdmVyLCBlYyk7CiB9CiAKLVBhc3NSZWZQdHI8WFBhdGhOU1Jlc29sdmVyPiBYUGF0aEV2YWx1
YXRvcjo6Y3JlYXRlTlNSZXNvbHZlcihOb2RlKiBub2RlUmVzb2x2ZXIpCitSZWY8WFBhdGhOU1Jl
c29sdmVyPiBYUGF0aEV2YWx1YXRvcjo6Y3JlYXRlTlNSZXNvbHZlcihOb2RlKiBub2RlUmVzb2x2
ZXIpCiB7CiAgICAgcmV0dXJuIE5hdGl2ZVhQYXRoTlNSZXNvbHZlcjo6Y3JlYXRlKG5vZGVSZXNv
bHZlcik7CiB9CiAKLVBhc3NSZWZQdHI8WFBhdGhSZXN1bHQ+IFhQYXRoRXZhbHVhdG9yOjpldmFs
dWF0ZShjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sCitSZWZQdHI8WFBhdGhSZXN1bHQ+IFhQYXRo
RXZhbHVhdG9yOjpldmFsdWF0ZShjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9kZSogY29udGV4dE5vZGUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWFBhdGhO
U1Jlc29sdmVyKiByZXNvbHZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCB0eXBlLApAQCAtNTgsMTMgKzU4LDEzIEBAIFBh
c3NSZWZQdHI8WFBhdGhSZXN1bHQ+IFhQYXRoRXZhbHVhdG9yOjpldmFsdWF0ZShjb25zdCBTdHJp
bmcmIGV4cHJlc3Npb24sCiB7CiAgICAgaWYgKCFpc1ZhbGlkQ29udGV4dE5vZGUoY29udGV4dE5v
ZGUpKSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7Ci0gICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICBlYyA9IDA7CiAgICAgUmVm
UHRyPFhQYXRoRXhwcmVzc2lvbj4gZXhwciA9IGNyZWF0ZUV4cHJlc3Npb24oZXhwcmVzc2lvbiwg
cmVzb2x2ZXIsIGVjKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICByZXR1cm4gZXhwci0+ZXZhbHVhdGUoY29udGV4dE5v
ZGUsIHR5cGUsIHJlc3VsdCwgZWMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1s
L1hQYXRoRXZhbHVhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFdmFsdWF0b3IuaApp
bmRleCA2NDQ4MjI1YzJjYmEzMGEwZDk5MTAzZDc2YTQxOGQ0YzVhMTk5YWNiLi5iMTZjMjQ4YTZk
MjE4NGExN2M3OWE5YzViMGRiNzM4MWZiOTFjYjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWFBhdGhFdmFsdWF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFdmFs
dWF0b3IuaApAQCAtMjgsOCArMjgsOCBAQAogI2RlZmluZSBYUGF0aEV2YWx1YXRvcl9oCiAKICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNDQsOSArNDQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
cHVibGljOgogICAgICAgICBzdGF0aWMgUmVmPFhQYXRoRXZhbHVhdG9yPiBjcmVhdGUoKSB7IHJl
dHVybiBhZG9wdFJlZigqbmV3IFhQYXRoRXZhbHVhdG9yKTsgfQogICAgICAgICAKLSAgICAgICAg
UGFzc1JlZlB0cjxYUGF0aEV4cHJlc3Npb24+IGNyZWF0ZUV4cHJlc3Npb24oY29uc3QgU3RyaW5n
JiBleHByZXNzaW9uLCBYUGF0aE5TUmVzb2x2ZXIqLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgICAg
IFBhc3NSZWZQdHI8WFBhdGhOU1Jlc29sdmVyPiBjcmVhdGVOU1Jlc29sdmVyKE5vZGUqIG5vZGVS
ZXNvbHZlcik7Ci0gICAgICAgIFBhc3NSZWZQdHI8WFBhdGhSZXN1bHQ+IGV2YWx1YXRlKGNvbnN0
IFN0cmluZyYgZXhwcmVzc2lvbiwgTm9kZSogY29udGV4dE5vZGUsCisgICAgICAgIFJlZlB0cjxY
UGF0aEV4cHJlc3Npb24+IGNyZWF0ZUV4cHJlc3Npb24oY29uc3QgU3RyaW5nJiBleHByZXNzaW9u
LCBYUGF0aE5TUmVzb2x2ZXIqLCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIFJlZjxYUGF0aE5T
UmVzb2x2ZXI+IGNyZWF0ZU5TUmVzb2x2ZXIoTm9kZSogbm9kZVJlc29sdmVyKTsKKyAgICAgICAg
UmVmUHRyPFhQYXRoUmVzdWx0PiBldmFsdWF0ZShjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIE5v
ZGUqIGNvbnRleHROb2RlLAogICAgICAgICAgICAgWFBhdGhOU1Jlc29sdmVyKiwgdW5zaWduZWQg
c2hvcnQgdHlwZSwgWFBhdGhSZXN1bHQqLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoTm9kZVNldC5oIGIvU291cmNl
L1dlYkNvcmUveG1sL1hQYXRoTm9kZVNldC5oCmluZGV4IDNkODliOGQ1MDg3YTg2Y2ZlYWZmYzAx
NDBiNjk0NzYyYzA5NWRkZGYuLjRkNTliZWFkNTEyNmU2ZmFmNWM0MzFiMmVjZmQyZTJjN2MxNTg4
MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aE5vZGVTZXQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWFBhdGhOb2RlU2V0LmgKQEAgLTM2LDcgKzM2LDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBjbGFzcyBOb2RlU2V0IHsKICAgICAgICAgcHVibGljOgog
ICAgICAgICAgICAgTm9kZVNldCgpIDogbV9pc1NvcnRlZCh0cnVlKSwgbV9zdWJ0cmVlc0FyZURp
c2pvaW50KGZhbHNlKSB7IH0KLSAgICAgICAgICAgIGV4cGxpY2l0IE5vZGVTZXQoUGFzc1JlZlB0
cjxOb2RlPiBub2RlKSA6IG1faXNTb3J0ZWQodHJ1ZSksIG1fc3VidHJlZXNBcmVEaXNqb2ludChm
YWxzZSksIG1fbm9kZXMoMSwgbm9kZSkgeyB9CisgICAgICAgICAgICBleHBsaWNpdCBOb2RlU2V0
KFJlZlB0cjxOb2RlPiYmIG5vZGUpCisgICAgICAgICAgICAgICAgOiBtX2lzU29ydGVkKHRydWUp
LCBtX3N1YnRyZWVzQXJlRGlzam9pbnQoZmFsc2UpLCBtX25vZGVzKDEsIFdURjo6bW92ZShub2Rl
KSkKKyAgICAgICAgICAgIHsgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBzaXplX3Qgc2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbm9kZXMuc2l6ZSgpOyB9CiAgICAgICAgICAgICBib29sIGlz
RW1wdHkoKSBjb25zdCB7IHJldHVybiBtX25vZGVzLmlzRW1wdHkoKTsgfQpAQCAtNDUsNyArNDcs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICB2b2lkIGNsZWFyKCkgeyBtX25v
ZGVzLmNsZWFyKCk7IH0KIAogICAgICAgICAgICAgLy8gTm9kZVNldCBpdHNlbGYgZG9lcyBub3Qg
dmVyaWZ5IHRoYXQgbm9kZXMgaW4gaXQgYXJlIHVuaXF1ZS4KLSAgICAgICAgICAgIHZvaWQgYXBw
ZW5kKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkgeyBtX25vZGVzLmFwcGVuZChub2RlKTsgfQorICAg
ICAgICAgICAgdm9pZCBhcHBlbmQoUmVmUHRyPE5vZGU+JiYgbm9kZSkgeyBtX25vZGVzLmFwcGVu
ZChXVEY6Om1vdmUobm9kZSkpOyB9CiAgICAgICAgICAgICB2b2lkIGFwcGVuZChjb25zdCBOb2Rl
U2V0JiBub2RlU2V0KSB7IG1fbm9kZXMuYXBwZW5kVmVjdG9yKG5vZGVTZXQubV9ub2Rlcyk7IH0K
IAogICAgICAgICAgICAgLy8gUmV0dXJucyB0aGUgc2V0J3MgZmlyc3Qgbm9kZSBpbiBkb2N1bWVu
dCBvcmRlciwgb3IgbnVsbHB0ciBpZiB0aGUgc2V0IGlzIGVtcHR5LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUveG1sL1hQYXRoUGF0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhQ
YXRoLmNwcAppbmRleCA3NjY4MTE1MjRmZGUwZGQ5YjcyNWM3NTYzODE4ZTVhZGJiZmM0ZjYwLi5l
ZDM3MDE1MjYyZTc3ZjcwZTNmZDM0NWJkNzExMWIwOTM4MTc5YjE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWFBhdGhQYXRoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBh
dGhQYXRoLmNwcApAQCAtNjEsNyArNjEsNyBAQCBWYWx1ZSBGaWx0ZXI6OmV2YWx1YXRlKCkgY29u
c3QKICAgICAgICAgICAgICsrZXZhbHVhdGlvbkNvbnRleHQucG9zaXRpb247CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIGlmIChldmFsdWF0ZVByZWRpY2F0ZSgqcHJlZGljYXRlKSkKLSAgICAg
ICAgICAgICAgICBuZXdOb2Rlcy5hcHBlbmQobm9kZSk7CisgICAgICAgICAgICAgICAgbmV3Tm9k
ZXMuYXBwZW5kKG5vZGUuY29weVJlZigpKTsKICAgICAgICAgfQogICAgICAgICBub2RlcyA9IFdU
Rjo6bW92ZShuZXdOb2Rlcyk7CiAgICAgfQpAQCAtMTMwLDcgKzEzMCw3IEBAIHZvaWQgTG9jYXRp
b25QYXRoOjpldmFsdWF0ZShOb2RlU2V0JiBub2RlcykgY29uc3QKIAogICAgICAgICAgICAgZm9y
IChhdXRvJiBtYXRjaCA6IG1hdGNoZXMpIHsKICAgICAgICAgICAgICAgICBpZiAoIW5lZWRUb0No
ZWNrRm9yRHVwbGljYXRlTm9kZXMgfHwgbmV3Tm9kZXNTZXQuYWRkKG1hdGNoLmdldCgpKS5pc05l
d0VudHJ5KQotICAgICAgICAgICAgICAgICAgICBuZXdOb2Rlcy5hcHBlbmQobWF0Y2gpOworICAg
ICAgICAgICAgICAgICAgICBuZXdOb2Rlcy5hcHBlbmQobWF0Y2guY29weVJlZigpKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YUGF0aFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhWYWx1ZS5oCmluZGV4
IDRkYjJlZDMyYWE4ZDEzMjNjMDQzYTA4YTJhYjE1MzRlZDBhNzZmNzAuLjhkYmIyMzQyY2RjOGRh
YjJmMTZkMTliZmFhNWJhNGYzNTAwNTY1NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YUGF0aFZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVmFsdWUuaApAQCAt
NDQsOSArNDQsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgVmFsdWUoY29u
c3QgU3RyaW5nJiB2YWx1ZSkgOiBtX3R5cGUoU3RyaW5nVmFsdWUpLCBtX2RhdGEoRGF0YTo6Y3Jl
YXRlKHZhbHVlKSkgeyB9CiAgICAgICAgICAgICBWYWx1ZShjb25zdCBjaGFyKiB2YWx1ZSkgOiBt
X3R5cGUoU3RyaW5nVmFsdWUpLCBtX2RhdGEoRGF0YTo6Y3JlYXRlKHZhbHVlKSkgeyB9CiAKLSAg
ICAgICAgICAgIGV4cGxpY2l0IFZhbHVlKE5vZGVTZXQgdmFsdWUpIDogbV90eXBlKE5vZGVTZXRW
YWx1ZSksIG1fZGF0YShEYXRhOjpjcmVhdGUoV1RGOjptb3ZlKHZhbHVlKSkpIHsgfQotICAgICAg
ICAgICAgZXhwbGljaXQgVmFsdWUoTm9kZSogdmFsdWUpIDogbV90eXBlKE5vZGVTZXRWYWx1ZSks
IG1fZGF0YShEYXRhOjpjcmVhdGUodmFsdWUpKSB7IH0KLSAgICAgICAgICAgIGV4cGxpY2l0IFZh
bHVlKFBhc3NSZWZQdHI8Tm9kZT4gdmFsdWUpIDogbV90eXBlKE5vZGVTZXRWYWx1ZSksIG1fZGF0
YShEYXRhOjpjcmVhdGUodmFsdWUpKSB7IH0KKyAgICAgICAgICAgIGV4cGxpY2l0IFZhbHVlKE5v
ZGVTZXQmJiB2YWx1ZSkKKyAgICAgICAgICAgICAgICA6IG1fdHlwZShOb2RlU2V0VmFsdWUpLCBt
X2RhdGEoRGF0YTo6Y3JlYXRlKFdURjo6bW92ZSh2YWx1ZSkpKQorICAgICAgICAgICAgeyB9Cisg
ICAgICAgICAgICBleHBsaWNpdCBWYWx1ZShOb2RlKiB2YWx1ZSkKKyAgICAgICAgICAgICAgICA6
IG1fdHlwZShOb2RlU2V0VmFsdWUpLCBtX2RhdGEoRGF0YTo6Y3JlYXRlKHZhbHVlKSkKKyAgICAg
ICAgICAgIHsgfQorICAgICAgICAgICAgZXhwbGljaXQgVmFsdWUoUmVmUHRyPE5vZGU+JiYgdmFs
dWUpCisgICAgICAgICAgICAgICAgOiBtX3R5cGUoTm9kZVNldFZhbHVlKSwgbV9kYXRhKERhdGE6
OmNyZWF0ZShXVEY6Om1vdmUodmFsdWUpKSkKKyAgICAgICAgICAgIHsgfQogCiAgICAgICAgICAg
ICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIApAQCAtNjgsMTkgKzc0LDI1
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFZhbHVlKHZvaWQqKSA9IGRlbGV0
ZTsKIAogICAgICAgICAgICAgc3RydWN0IERhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxEYXRhPiB7
Ci0gICAgICAgICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YT4gY3JlYXRlKCkgeyByZXR1
cm4gYWRvcHRSZWYobmV3IERhdGEpOyB9Ci0gICAgICAgICAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8RGF0YT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgRGF0YShzdHJpbmcpKTsgfQotICAgICAgICAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPERh
dGE+IGNyZWF0ZShOb2RlU2V0IG5vZGVTZXQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhKFdU
Rjo6bW92ZShub2RlU2V0KSkpOyB9Ci0gICAgICAgICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
RGF0YT4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3
IERhdGEobm9kZSkpOyB9CisgICAgICAgICAgICAgICAgc3RhdGljIFJlZjxEYXRhPiBjcmVhdGUo
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERhdGEpOyB9CisgICAgICAgICAgICAgICAgc3RhdGlj
IFJlZjxEYXRhPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRGF0YShzdHJpbmcpKTsgfQorICAgICAgICAgICAgICAgIHN0YXRpYyBSZWY8RGF0YT4g
Y3JlYXRlKE5vZGVTZXQmJiBub2RlU2V0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERhdGEoV1RG
Ojptb3ZlKG5vZGVTZXQpKSk7IH0KKyAgICAgICAgICAgICAgICBzdGF0aWMgUmVmPERhdGE+IGNy
ZWF0ZShSZWZQdHI8Tm9kZT4mJiBub2RlKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERhdGEoV1RG
Ojptb3ZlKG5vZGUpKSk7IH0KIAogICAgICAgICAgICAgICAgIFN0cmluZyBzdHJpbmc7CiAgICAg
ICAgICAgICAgICAgTm9kZVNldCBub2RlU2V0OwogCiAgICAgICAgICAgICBwcml2YXRlOgogICAg
ICAgICAgICAgICAgIERhdGEoKSB7IH0KLSAgICAgICAgICAgICAgICBleHBsaWNpdCBEYXRhKGNv
bnN0IFN0cmluZyYgc3RyaW5nKSA6IHN0cmluZyhzdHJpbmcpIHsgfQotICAgICAgICAgICAgICAg
IGV4cGxpY2l0IERhdGEoTm9kZVNldCBub2RlU2V0KSA6IG5vZGVTZXQoV1RGOjptb3ZlKG5vZGVT
ZXQpKSB7IH0KLSAgICAgICAgICAgICAgICBleHBsaWNpdCBEYXRhKFBhc3NSZWZQdHI8Tm9kZT4g
bm9kZSkgOiBub2RlU2V0KG5vZGUpIHsgfQorICAgICAgICAgICAgICAgIGV4cGxpY2l0IERhdGEo
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgICAgICAgICAgICAgICAgIDogc3RyaW5nKHN0cmlu
ZykKKyAgICAgICAgICAgICAgICB7IH0KKyAgICAgICAgICAgICAgICBleHBsaWNpdCBEYXRhKE5v
ZGVTZXQmJiBub2RlU2V0KQorICAgICAgICAgICAgICAgICAgICA6IG5vZGVTZXQoV1RGOjptb3Zl
KG5vZGVTZXQpKQorICAgICAgICAgICAgICAgIHsgfQorICAgICAgICAgICAgICAgIGV4cGxpY2l0
IERhdGEoUmVmUHRyPE5vZGU+JiYgbm9kZSkKKyAgICAgICAgICAgICAgICAgICAgOiBub2RlU2V0
KFdURjo6bW92ZShub2RlKSkKKyAgICAgICAgICAgICAgICB7IH0KICAgICAgICAgICAgIH07CiAK
ICAgICAgICAgICAgIFR5cGUgbV90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1s
L1hTTFRQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuY3Bw
CmluZGV4IDFmMDk1OGJhYjBlM2ZmNWU0ZmI2YmVjM2ZjN2RhNDk4NmFmNjY4MTUuLmI0ZmJkZWYy
ZGYwMzAyODY4MjVhNWYyZGFiYTYyOTc5ZWIwNDJkMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFBy
b2Nlc3Nvci5jcHAKQEAgLTEwOSwyMyArMTA5LDIzIEBAIFJlZjxEb2N1bWVudD4gWFNMVFByb2Nl
c3Nvcjo6Y3JlYXRlRG9jdW1lbnRGcm9tU291cmNlKGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5n
CiAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlTm9uTnVsbCgpOwogfQogCi1QYXNzUmVmUHRyPERv
Y3VtZW50PiBYU0xUUHJvY2Vzc29yOjp0cmFuc2Zvcm1Ub0RvY3VtZW50KE5vZGUqIHNvdXJjZU5v
ZGUpCitSZWZQdHI8RG9jdW1lbnQ+IFhTTFRQcm9jZXNzb3I6OnRyYW5zZm9ybVRvRG9jdW1lbnQo
Tm9kZSogc291cmNlTm9kZSkKIHsKICAgICBpZiAoIXNvdXJjZU5vZGUpCi0gICAgICAgIHJldHVy
biAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIFN0cmluZyByZXN1bHRNSU1FVHlw
ZTsKICAgICBTdHJpbmcgcmVzdWx0U3RyaW5nOwogICAgIFN0cmluZyByZXN1bHRFbmNvZGluZzsK
ICAgICBpZiAoIXRyYW5zZm9ybVRvU3RyaW5nKCpzb3VyY2VOb2RlLCByZXN1bHRNSU1FVHlwZSwg
cmVzdWx0U3RyaW5nLCByZXN1bHRFbmNvZGluZykpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gY3JlYXRlRG9jdW1lbnRGcm9tU291cmNlKHJl
c3VsdFN0cmluZywgcmVzdWx0RW5jb2RpbmcsIHJlc3VsdE1JTUVUeXBlLCBzb3VyY2VOb2RlLCAw
KTsKIH0KIAotUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBYU0xUUHJvY2Vzc29yOjp0cmFu
c2Zvcm1Ub0ZyYWdtZW50KE5vZGUqIHNvdXJjZU5vZGUsIERvY3VtZW50KiBvdXRwdXREb2MpCitS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gWFNMVFByb2Nlc3Nvcjo6dHJhbnNmb3JtVG9GcmFnbWVu
dChOb2RlKiBzb3VyY2VOb2RlLCBEb2N1bWVudCogb3V0cHV0RG9jKQogewogICAgIGlmICghc291
cmNlTm9kZSB8fCAhb3V0cHV0RG9jKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICBTdHJpbmcgcmVzdWx0TUlNRVR5cGU7CiAgICAgU3RyaW5nIHJlc3Vs
dFN0cmluZzsKQEAgLTEzNiw3ICsxMzYsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IFhTTFRQcm9jZXNzb3I6OnRyYW5zZm9ybVRvRnJhZ21lbnQoTm9kZSogc291cmNlTm9kZQogICAg
ICAgICByZXN1bHRNSU1FVHlwZSA9ICJ0ZXh0L2h0bWwiOwogCiAgICAgaWYgKCF0cmFuc2Zvcm1U
b1N0cmluZygqc291cmNlTm9kZSwgcmVzdWx0TUlNRVR5cGUsIHJlc3VsdFN0cmluZywgcmVzdWx0
RW5jb2RpbmcpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50Rm9yVHJhbnNmb3JtVG9GcmFnbWVudChyZXN1bHRTdHJp
bmcsIHJlc3VsdE1JTUVUeXBlLCBvdXRwdXREb2MpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9j
ZXNzb3IuaAppbmRleCA2ODIzMjhmMzM2M2IxM2IxMTIwYThkMmNkZDYwZTAxMzM3MTZkNTk4Li40
OGIyNzgwNjEzZTA2OGFkODMzODMwNDdhYzU1OTAyZDkyZjk0MTA3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
U0xUUHJvY2Vzc29yLmgKQEAgLTQ0LDE4ICs0NCwxOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJl
ZjxYU0xUUHJvY2Vzc29yPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFhTTFRQcm9j
ZXNzb3IpOyB9CiAgICAgflhTTFRQcm9jZXNzb3IoKTsKIAotICAgIHZvaWQgc2V0WFNMU3R5bGVT
aGVldChQYXNzUmVmUHRyPFhTTFN0eWxlU2hlZXQ+IHN0eWxlU2hlZXQpIHsgbV9zdHlsZXNoZWV0
ID0gc3R5bGVTaGVldDsgfQorICAgIHZvaWQgc2V0WFNMU3R5bGVTaGVldChSZWZQdHI8WFNMU3R5
bGVTaGVldD4mJiBzdHlsZVNoZWV0KSB7IG1fc3R5bGVzaGVldCA9IFdURjo6bW92ZShzdHlsZVNo
ZWV0KTsgfQogICAgIGJvb2wgdHJhbnNmb3JtVG9TdHJpbmcoTm9kZSYgc291cmNlLCBTdHJpbmcm
IHJlc3VsdE1JTUVUeXBlLCBTdHJpbmcmIHJlc3VsdFN0cmluZywgU3RyaW5nJiByZXN1bHRFbmNv
ZGluZyk7CiAgICAgUmVmPERvY3VtZW50PiBjcmVhdGVEb2N1bWVudEZyb21Tb3VyY2UoY29uc3Qg
U3RyaW5nJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgc291cmNlRW5jb2RpbmcsIGNvbnN0IFN0cmlu
ZyYgc291cmNlTUlNRVR5cGUsIE5vZGUqIHNvdXJjZU5vZGUsIEZyYW1lKiBmcmFtZSk7CiAgICAg
CiAgICAgLy8gRE9NIG1ldGhvZHMKLSAgICB2b2lkIGltcG9ydFN0eWxlc2hlZXQoUGFzc1JlZlB0
cjxOb2RlPiBzdHlsZSkKKyAgICB2b2lkIGltcG9ydFN0eWxlc2hlZXQoUmVmUHRyPE5vZGU+JiYg
c3R5bGUpCiAgICAgewogICAgICAgICBpZiAoc3R5bGUpCi0gICAgICAgICAgICBtX3N0eWxlc2hl
ZXRSb290Tm9kZSA9IHN0eWxlOworICAgICAgICAgICAgbV9zdHlsZXNoZWV0Um9vdE5vZGUgPSBX
VEY6Om1vdmUoc3R5bGUpOwogICAgIH0KLSAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IHRyYW5zZm9ybVRvRnJhZ21lbnQoTm9kZSogc291cmNlLCBEb2N1bWVudCogb3VwdXREb2MpOwot
ICAgIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IHRyYW5zZm9ybVRvRG9jdW1lbnQoTm9kZSogc291cmNl
KTsKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gdHJhbnNmb3JtVG9GcmFnbWVudChOb2Rl
KiBzb3VyY2UsIERvY3VtZW50KiBvdXB1dERvYyk7CisgICAgUmVmUHRyPERvY3VtZW50PiB0cmFu
c2Zvcm1Ub0RvY3VtZW50KE5vZGUqIHNvdXJjZSk7CiAgICAgCiAgICAgdm9pZCBzZXRQYXJhbWV0
ZXIoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IFN0cmluZyYgbG9jYWxOYW1lLCBj
b25zdCBTdHJpbmcmIHZhbHVlKTsKICAgICBTdHJpbmcgZ2V0UGFyYW1ldGVyKGNvbnN0IFN0cmlu
ZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBTdHJpbmcmIGxvY2FsTmFtZSkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDU1MDhk
ZjM0YjQ3OTJjMTQ3ZWM0MjYxYTk4MDlmYzQwNzhlZmUxNDIuLjgwOGNlZWYyNTAyZDdlYmFkNjI5
YjQ4ZTk3YjNjZDk2NmM2ZjhkN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJz
ZXIvWE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIv
WE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0xMDUsOSArMTA1LDkgQEAgdm9pZCBYTUxEb2N1bWVu
dFBhcnNlcjo6aW5zZXJ0KGNvbnN0IFNlZ21lbnRlZFN0cmluZyYpCiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKLXZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmFwcGVuZChQYXNzUmVmUHRy
PFN0cmluZ0ltcGw+IGlucHV0U291cmNlKQordm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6YXBwZW5k
KFJlZlB0cjxTdHJpbmdJbXBsPiYmIGlucHV0U291cmNlKQogewotICAgIFNlZ21lbnRlZFN0cmlu
ZyBzb3VyY2UoaW5wdXRTb3VyY2UpOworICAgIFNlZ21lbnRlZFN0cmluZyBzb3VyY2UoV1RGOjpt
b3ZlKGlucHV0U291cmNlKSk7CiAgICAgaWYgKG1fc2F3WFNMVHJhbnNmb3JtIHx8ICFtX3Nhd0Zp
cnN0RWxlbWVudCkKICAgICAgICAgbV9vcmlnaW5hbFNvdXJjZUZvclRyYW5zZm9ybS5hcHBlbmQo
c291cmNlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1
bWVudFBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNl
ci5oCmluZGV4IDZmZGNlNmRkN2EwZmViMzY5ODJjOTc4ZDYxNGE3ZDE0ODE1NmQ3ZTIuLjhmNDNm
OTA5ZTExODBjZGZlMzYyYWNhN2ZlNjgwOTg0M2I0MDQ1NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmgKQEAgLTk4LDcgKzk4LDcgQEAgY2xhc3Mg
VGV4dDsKIAogICAgICAgICAvLyBGcm9tIERvY3VtZW50UGFyc2VyCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBpbnNlcnQoY29uc3QgU2VnbWVudGVkU3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxTdHJpbmdJbXBsPikgb3ZlcnJpZGU7CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBhcHBlbmQoUmVmUHRyPFN0cmluZ0ltcGw+JiYpIG92ZXJyaWRlOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoKCkgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBpc1dhaXRpbmdGb3JTY3JpcHRzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBzdG9wUGFyc2luZygpIG92ZXJyaWRlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>