<?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>180050</bug_id>
          
          <creation_ts>2017-11-27 13:04:45 -0800</creation_ts>
          <short_desc>Implement OffscreenCanvas.getContext(&quot;webgl&quot;)</short_desc>
          <delta_ts>2017-11-27 14:13:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Canvas</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1375075</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-11-27 13:04:45 -0800</bug_when>
    <thetext>Implement OffscreenCanvas.getContext(&quot;webgl&quot;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375079</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-27 13:07:10 -0800</bug_when>
    <thetext>&lt;rdar://problem/35705473&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375087</commentid>
    <comment_count>2</comment_count>
      <attachid>327666</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-11-27 13:18:12 -0800</bug_when>
    <thetext>Created attachment 327666
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375095</commentid>
    <comment_count>3</comment_count>
      <attachid>327666</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-11-27 13:32:17 -0800</bug_when>
    <thetext>Comment on attachment 327666
Patch

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

&gt; Source/WebCore/html/OffscreenCanvas.cpp:81
&gt; +    if (m_context)
&gt; +        return { RefPtr&lt;WebGLRenderingContext&gt; { &amp;downcast&lt;WebGLRenderingContext&gt;(*m_context) } };

I think this should only return m_context if contextType == RenderingContextType::Webgl. Otherwise, it should be nullptr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375119</commentid>
    <comment_count>4</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2017-11-27 14:13:07 -0800</bug_when>
    <thetext>Committed r225193: &lt;https://trac.webkit.org/changeset/225193&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327666</attachid>
            <date>2017-11-27 13:18:12 -0800</date>
            <delta_ts>2017-11-27 13:32:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180050-20171128081809.patch</filename>
            <type>text/plain</type>
            <size>32007</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1MTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWVkOWM2MGQxYjBhNjFm
MDNiYjAxMGIzMjU0OWNmYzdmMzY1NGY0YS4uYWE3Y2VlMzBjYmJiNzJmYTI2MTRiZjM3MzgwMDA3
MjJlMzg5ZWJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDE3LTExLTI3ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgT2Zmc2NyZWVu
Q2FudmFzLmdldENvbnRleHQoIndlYmdsIikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MDA1MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzU3MDU0
NzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1w
bGVtZW50IGVub3VnaCBvZiBnZXRDb250ZXh0KCJ3ZWJnbCIpIHRvIGFjdHVhbGx5IHJldHVybiBh
bgorICAgICAgICBhY3RpdmUgV2ViR0xSZW5kZXJpbmdDb250ZXh0LCBldmVuIHRob3VnaCBpdCBp
c24ndCBhY3R1YWxseQorICAgICAgICBob29rZWQgdXAgdG8gZHJhdy4KKworICAgICAgICBJbnRy
b2R1Y2UgYSBuZXcgdHlwZSwgV2ViR0xDYW52YXMsIHdoaWNoIGlzIGEgdmFyaWFudCBvZiBIVE1M
Q2FudmFzRWxlbWVudAorICAgICAgICBhbmQgT2Zmc2NyZWVuQ2FudmFzLCBzbyB0aGF0IGl0IGNh
biBiZSBleHBvc2VkIGJ5IHRoZSAnY2FudmFzJyBhdHRyaWJ1dGUKKyAgICAgICAgb24gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0LgorCisgICAgICAgIEF0IHRoZSBtb21lbnQgd2Ugc3RpbGwgYXNzdW1l
IHRoYXQgYWxsIHVzZXMgb2YgV2ViR0xSZW5kZXJpbmdDb250ZXh0IGNvbWUKKyAgICAgICAgZnJv
bSBIVE1MQ2FudmFzRWxlbWVudCwgc28gYWRkIGEgYnVuY2ggb2YgbG9naWMgdG8gZGV0ZWN0IHRo
YXQgY2FzZS4KKworICAgICAgICBVcGRhdGVkIHRoZSBleGlzdGluZyAocHJvcG9zZWQpIFdQVC4K
KworICAgICAgICAqIGh0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok9mZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4dCk6IEltcGxlbWVudCBlbm91Z2ggb2YgZ2V0Q29u
dGV4dCB0bworICAgICAgICByZXR1cm4gYSBXZWJHTFJlbmRlcmluZ0NvbnRleHQuCisgICAgICAg
ICogaHRtbC9PZmZzY3JlZW5DYW52YXMuaDogVXNlIHRoZSBuZXcgT2Zmc2NyZWVuUmVuZGVyaW5n
Q29udGV4dCB0eXBlLCBldmVuCisgICAgICAgIHRob3VnaCBpdCdzIGp1c3QgYSBXZWJHTFJlbmRl
cmluZ0NvbnRleHQgYXQgdGhlIG1vbWVudC4KKworICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Y2FudmFzKTogTm93IHJldHVybnMgYSBXZWJHTENhbnZhcy4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Omh0bWxDYW52YXMpOiBIZWxw
ZXIgdG8gZ2V0IHRoZSBIVE1MQ2FudmFzRWxlbWVudCBpZiBpdCBleGlzdHMuCisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpvZmZzY3JlZW5DYW52YXMpOiBEaXR0
byBmb3IgT2Zmc2NyZWVuQ2FudmFzLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Y2hlY2tGb3JDb250ZXh0TG9zc0hhbmRsaW5nKTogR3VhcmQgZm9yIGh0bWxD
YW52YXMoKS4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJl
Z2lzdGVyV2l0aFdlYkdMU3RhdGVUcmFja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OnNldHVwRmxhZ3MpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6YWRkQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVySWZOZWNl
c3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVt
b3ZlQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6Om1hcmtDb250ZXh0Q2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYXJrQ29udGV4dENoYW5nZWRBbmROb3Rp
ZnlDYW52YXNPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcyk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZXNoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNvbXBpbGVTaGFkZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6aXNDb250ZXh0TG9zdE9yUGVuZGluZyk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZWFkUGl4ZWxz
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Omxvc2VDb250
ZXh0SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpw
cmludFRvQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpkaXNwYXRjaENvbnRleHRMb3N0RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6bWF5YmVSZXN0b3JlQ29udGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkaXNwYXRjaENvbnRleHRDaGFuZ2VkRXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2xhbXBl
ZENhbnZhc1NpemUpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuaDogRGVmaW5lIFdlYkdMQ2FudmFzLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuaWRsOgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oOiBIYW5kbGUgdGhlIHZhcmlhbnQgb3B0aW9ucywgYWx0aG91Z2gg
bGVhdmUgT2Zmc2NyZWVuQ2FudmFzCisgICAgICAgIHVuaW1wbGVtZW50ZWQgZm9yIHRoZSBtb21l
bnQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEVuYWJs
ZUV4dGVuc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZENyZWF0ZVByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp3aWxsRGVsZXRlUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmlzU2hhZGVyUHJvZ3JhbURpc2FibGVkKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNhbnZhc0FnZW50OjpkaWRFbmFibGVFeHRlbnNpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENyZWF0ZVByb2dyYW0pOgorCiAyMDE3LTEx
LTIyICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBiYXNl
IGNsYXNzIGZvciBIVE1MQ2FudmFzRWxlbWVudCBhbmQgT2Zmc2NyZWVuQ2FudmFzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAKaW5kZXggOGRkNWQ3ZmY0OTFmMWE4ODA4Yzk0
NmNjNTcwYTZmMzJmZmY3MGVmMy4uNTExMGY0N2U1MjQ2MDM5ZjhhYTk1OGMyZDc0ZmE5OGEzNGRi
OTc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcApAQCAtNzUsMTAg
Kzc1LDIzIEBAIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpzZXRTaXplKGNvbnN0IEludFNpemUmIG5l
d1NpemUpCiB9CiAKICNpZiBFTkFCTEUoV0VCR0wpCi1FeGNlcHRpb25PcjxSZWZQdHI8V2ViR0xS
ZW5kZXJpbmdDb250ZXh0Pj4gT2Zmc2NyZWVuQ2FudmFzOjpnZXRDb250ZXh0KEpTQzo6RXhlY1N0
YXRlJiwgUmVuZGVyaW5nQ29udGV4dFR5cGUgY29udGV4dFR5cGUsIFZlY3RvcjxKU0M6OlN0cm9u
ZzxKU0M6OlVua25vd24+PiYmIGFyZ3VtZW50cykKK0V4Y2VwdGlvbk9yPE9mZnNjcmVlblJlbmRl
cmluZ0NvbnRleHQ+IE9mZnNjcmVlbkNhbnZhczo6Z2V0Q29udGV4dChKU0M6OkV4ZWNTdGF0ZSYg
c3RhdGUsIFJlbmRlcmluZ0NvbnRleHRUeXBlIGNvbnRleHRUeXBlLCBWZWN0b3I8SlNDOjpTdHJv
bmc8SlNDOjpVbmtub3duPj4mJiBhcmd1bWVudHMpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKGNvbnRl
eHRUeXBlKTsKLSAgICBVTlVTRURfUEFSQU0oYXJndW1lbnRzKTsKKyAgICBpZiAobV9jb250ZXh0
KQorICAgICAgICByZXR1cm4geyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB7ICZkb3du
Y2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfTsKKworICAgIGlmIChj
b250ZXh0VHlwZSA9PSBSZW5kZXJpbmdDb250ZXh0VHlwZTo6V2ViZ2wpIHsKKyAgICAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3RhdGUudm0oKSk7CisgICAgICAgIGF1dG8g
YXR0cmlidXRlcyA9IGNvbnZlcnQ8SURMRGljdGlvbmFyeTxXZWJHTENvbnRleHRBdHRyaWJ1dGVz
Pj4oc3RhdGUsICFhcmd1bWVudHMuaXNFbXB0eSgpID8gYXJndW1lbnRzWzBdLmdldCgpIDogSlND
Ojpqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgRXhj
ZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9KTsKKworICAgICAgICBtX2NvbnRleHQg
PSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoKnRoaXMsIGF0dHJpYnV0ZXMsICJ3
ZWJnbCIpOworICAgICAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgICAgIHJldHVybiB7IG51
bGxwdHIgfTsKKworICAgICAgICByZXR1cm4geyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0
PiB7ICZkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KCptX2NvbnRleHQpIH0gfTsKKyAg
ICB9CisKICAgICByZXR1cm4geyBudWxscHRyIH07CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L09mZnNjcmVlbkNhbnZhcy5oCmluZGV4IDUyZDUyY2QwNGU5ODJjMTkyN2M0MmUxMmQxM2ZhNWZl
ODhhNWMwOTguLjVmZTU4MTZjYjg5ZGQwMDM2ZDllYWM1N2E1YjNiNGFiOTAyNjhhMjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuaApAQCAtMzcsMTUgKzM3LDEzIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDsKIGNsYXNz
IEltYWdlQml0bWFwOwogY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0OwogCi0vLyB1c2luZyBP
ZmZzY3JlZW5SZW5kZXJpbmdDb250ZXh0ID0gVmFyaWFudDwKLS8vICNpZiBFTkFCTEUoV0VCR0wp
Ci0vLyBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiwKLS8vICNlbmRpZgotLy8gUmVmUHRy
PE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4KLS8vID47CisjaWYgRU5BQkxFKFdF
QkdMKQordXNpbmcgT2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dCA9IFJlZlB0cjxXZWJHTFJlbmRl
cmluZ0NvbnRleHQ+OworI2VuZGlmCiAKIGNsYXNzIE9mZnNjcmVlbkNhbnZhcyBmaW5hbCA6IHB1
YmxpYyBSZWZDb3VudGVkPE9mZnNjcmVlbkNhbnZhcz4sIHB1YmxpYyBDYW52YXNCYXNlLCBwdWJs
aWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CkBAIC03Myw4ICs3MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNpemUoY29uc3QgSW50
U2l6ZSYpIGZpbmFsOwogCiAjaWYgRU5BQkxFKFdFQkdMKQotICAgIC8vIEZJWE1FOiBTaG91bGQg
YmUgb3B0aW9uYWw8T2Zmc2NyZWVuUmVuZGVyaW5nQ29udGV4dD4gZnJvbSBhYm92ZS4KLSAgICBF
eGNlcHRpb25PcjxSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0Pj4gZ2V0Q29udGV4dChKU0M6
OkV4ZWNTdGF0ZSYsIFJlbmRlcmluZ0NvbnRleHRUeXBlLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlND
OjpVbmtub3duPj4mJiBhcmd1bWVudHMpOworICAgIEV4Y2VwdGlvbk9yPE9mZnNjcmVlblJlbmRl
cmluZ0NvbnRleHQ+IGdldENvbnRleHQoSlNDOjpFeGVjU3RhdGUmLCBSZW5kZXJpbmdDb250ZXh0
VHlwZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4+JiYgYXJndW1lbnRzKTsKICNl
bmRpZgogICAgIFJlZlB0cjxJbWFnZUJpdG1hcD4gdHJhbnNmZXJUb0ltYWdlQml0bWFwKCk7CiAg
ICAgLy8gdm9pZCBjb252ZXJ0VG9CbG9iKEltYWdlRW5jb2RlT3B0aW9ucyBvcHRpb25zKTsKQEAg
LTk4LDYgKzk1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlcmVmQ2FudmFzQmFzZSgpIGZpbmFs
IHsgZGVyZWYoKTsgfQogCiAgICAgSW50U2l6ZSBtX3NpemU7CisgICAgc3RkOjp1bmlxdWVfcHRy
PENhbnZhc1JlbmRlcmluZ0NvbnRleHQ+IG1fY29udGV4dDsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5j
cHAKaW5kZXggZGY0NjZiZmQwZGUxOWM5MzQ3NDZiYzZlMTYxOWQ4YmQ0MGJjMWY2NC4uMTI1NWMz
OTY1ODBlNWE0ZGIwM2E3NjhjYjlkODA2MDQzYjI2YmRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAg
LTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJPRVNUZXh0dXJlSGFsZkZsb2F0LmgiCiAjaW5jbHVk
ZSAiT0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhci5oIgogI2luY2x1ZGUgIk9FU1ZlcnRleEFycmF5
T2JqZWN0LmgiCisjaW5jbHVkZSAiT2Zmc2NyZWVuQ2FudmFzLmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaCIKQEAgLTUxMyw3ICs1MTQsMTUgQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiBjYW52YXMsIFJlZjxHcmEKICAgICBh
ZGRBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXJJZk5lY2Vzc2FyeSgpOwogfQogCi1IVE1MQ2Fu
dmFzRWxlbWVudCogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2FudmFzKCkKK1dlYkdMQ2Fu
dmFzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNhbnZhcygpCit7CisgICAgYXV0byYgYmFz
ZSA9IGNhbnZhc0Jhc2UoKTsKKyAgICBpZiAoaXM8T2Zmc2NyZWVuQ2FudmFzPihiYXNlKSkKKyAg
ICAgICAgcmV0dXJuICZkb3duY2FzdDxPZmZzY3JlZW5DYW52YXM+KGJhc2UpOworICAgIHJldHVy
biAmZG93bmNhc3Q8SFRNTENhbnZhc0VsZW1lbnQ+KGJhc2UpOworfQorCitIVE1MQ2FudmFzRWxl
bWVudCogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6aHRtbENhbnZhcygpCiB7CiAgICAgYXV0
byYgYmFzZSA9IGNhbnZhc0Jhc2UoKTsKICAgICBpZiAoIWlzPEhUTUxDYW52YXNFbGVtZW50Pihi
YXNlKSkKQEAgLTUyMSwyNCArNTMwLDQwIEBAIEhUTUxDYW52YXNFbGVtZW50KiBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpjYW52YXMoKQogICAgIHJldHVybiAmZG93bmNhc3Q8SFRNTENhbnZh
c0VsZW1lbnQ+KGJhc2UpOwogfQogCitPZmZzY3JlZW5DYW52YXMqIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6Om9mZnNjcmVlbkNhbnZhcygpCit7CisgICAgYXV0byYgYmFzZSA9IGNhbnZhc0Jh
c2UoKTsKKyAgICBpZiAoIWlzPE9mZnNjcmVlbkNhbnZhcz4oYmFzZSkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIHJldHVybiAmZG93bmNhc3Q8T2Zmc2NyZWVuQ2FudmFzPihiYXNlKTsK
K30KKwogLy8gV2UgY2hlY2sgZm9yIGNvbnRleHQgbG9zcyBoYW5kbGluZyBhZnRlciBhIGZldyBz
ZWNvbmRzIHRvIGdpdmUgdGhlIEpTIGEgY2hhbmNlIHRvIHJlZ2lzdGVyIHRoZSBldmVudCBsaXN0
ZW5lcnMKIC8vIGFuZCB0byBkaXNjYXJkIHRlbXBvcmFyeSBHTCBjb250ZXh0cyAoZS5nLiBmZWF0
dXJlIGRldGVjdGlvbikuCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRm9y
Q29udGV4dExvc3NIYW5kbGluZygpCiB7Ci0gICAgaWYgKCFjYW52YXMoKS0+cmVuZGVyZXIoKSkK
KyAgICBhdXRvIGNhbnZhcyA9IGh0bWxDYW52YXMoKTsKKyAgICBpZiAoIWNhbnZhcykKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgYXV0byogcGFnZSA9IGNhbnZhcygpLT5kb2N1bWVudCgpLnBhZ2Uo
KTsKKyAgICBpZiAoIWNhbnZhcy0+cmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
YXV0byogcGFnZSA9IGNhbnZhcy0+ZG9jdW1lbnQoKS5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBib29sIGhhbmRsZXNDb250ZXh0TG9zcyA9IGNhbnZhcygp
LT5oYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkud2ViZ2xjb250ZXh0bG9zdEV2ZW50KSAm
JiBjYW52YXMoKS0+aGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLndlYmdsY29udGV4dHJl
c3RvcmVkRXZlbnQpOworICAgIGJvb2wgaGFuZGxlc0NvbnRleHRMb3NzID0gY2FudmFzLT5oYXNF
dmVudExpc3RlbmVycyhldmVudE5hbWVzKCkud2ViZ2xjb250ZXh0bG9zdEV2ZW50KSAmJiBjYW52
YXMtPmhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS53ZWJnbGNvbnRleHRyZXN0b3JlZEV2
ZW50KTsKICAgICBwYWdlLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNN
ZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUhhbmRsZXNXZWJHTENvbnRleHRMb3Nz
S2V5KCksIGhhbmRsZXNDb250ZXh0TG9zcyA/IERpYWdub3N0aWNMb2dnaW5nS2V5czo6eWVzS2V5
KCkgOiBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5vS2V5KCksIFNob3VsZFNhbXBsZTo6Tm8pOwog
fQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlZ2lzdGVyV2l0aFdlYkdMU3Rh
dGVUcmFja2VyKCkKIHsKLSAgICBhdXRvKiBwYWdlID0gY2FudmFzKCktPmRvY3VtZW50KCkucGFn
ZSgpOworICAgIGF1dG8gY2FudmFzID0gaHRtbENhbnZhcygpOworICAgIGlmICghY2FudmFzKQor
ICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBwYWdlID0gY2FudmFzLT5kb2N1bWVudCgpLnBh
Z2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKIApAQCAtNjI3LDggKzY1Miwx
MSBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnNldHVwRmxhZ3MoKQogewogICAg
IEFTU0VSVChtX2NvbnRleHQpOwogCi0gICAgaWYgKFBhZ2UqIHBhZ2UgPSBjYW52YXMoKS0+ZG9j
dW1lbnQoKS5wYWdlKCkpCi0gICAgICAgIG1fc3ludGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGUgPSBw
YWdlLT5zZXR0aW5ncygpLndlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZCgpOworICAgIGF1dG8g
Y2FudmFzID0gaHRtbENhbnZhcygpOworICAgIGlmIChjYW52YXMpIHsKKyAgICAgICAgaWYgKFBh
Z2UqIHBhZ2UgPSBjYW52YXMtPmRvY3VtZW50KCkucGFnZSgpKQorICAgICAgICAgICAgbV9zeW50
aGVzaXplZEVycm9yc1RvQ29uc29sZSA9IHBhZ2UtPnNldHRpbmdzKCkud2ViR0xFcnJvcnNUb0Nv
bnNvbGVFbmFibGVkKCk7CisgICAgfQogCiAgICAgbV9pc0dMRVMyQ29tcGxpYW50ID0gbV9jb250
ZXh0LT5pc0dMRVMyQ29tcGxpYW50KCk7CiAgICAgaWYgKG1faXNHTEVTMkNvbXBsaWFudCkgewpA
QCAtNjU0LDcgKzY4MiwxMSBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFkZEFj
dGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlcklmTmVjZXNzYXJ5KCkKICAgICBpZiAoIWlzSGlnaFBl
cmZvcm1hbmNlQ29udGV4dChtX2NvbnRleHQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRv
KiBwYWdlID0gY2FudmFzKCktPmRvY3VtZW50KCkucGFnZSgpOworICAgIGF1dG8qIGNhbnZhcyA9
IGh0bWxDYW52YXMoKTsKKyAgICBpZiAoIWNhbnZhcykKKyAgICAgICAgcmV0dXJuOworCisgICAg
YXV0byogcGFnZSA9IGNhbnZhcy0+ZG9jdW1lbnQoKS5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQog
ICAgICAgICByZXR1cm47CiAKQEAgLTY2OCw4ICs3MDAsMTEgQEAgdm9pZCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjphZGRBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXJJZk5lY2Vzc2FyeSgp
CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVtb3ZlQWN0aXZpdHlTdGF0ZUNo
YW5nZU9ic2VydmVyKCkKIHsKLSAgICBpZiAoYXV0byogcGFnZSA9IGNhbnZhcygpLT5kb2N1bWVu
dCgpLnBhZ2UoKSkKLSAgICAgICAgcGFnZS0+cmVtb3ZlQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2Vy
dmVyKCp0aGlzKTsKKyAgICBhdXRvKiBjYW52YXMgPSBodG1sQ2FudmFzKCk7CisgICAgaWYgKGNh
bnZhcykgeworICAgICAgICBpZiAoYXV0byogcGFnZSA9IGNhbnZhcy0+ZG9jdW1lbnQoKS5wYWdl
KCkpCisgICAgICAgICAgICBwYWdlLT5yZW1vdmVBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIo
KnRoaXMpOworICAgIH0KIH0KIAogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6fldlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UoKQpAQCAtNzIxLDE1ICs3NTYsMjAgQEAgdm9pZCBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjptYXJrQ29udGV4dENoYW5nZWQoKQogICAgIG1fY29udGV4dC0+bWFy
a0NvbnRleHRDaGFuZ2VkKCk7CiAKICAgICBtX2xheWVyQ2xlYXJlZCA9IGZhbHNlOwotICAgIFJl
bmRlckJveCogcmVuZGVyQm94ID0gY2FudmFzKCktPnJlbmRlckJveCgpOworCisgICAgYXV0byog
Y2FudmFzID0gaHRtbENhbnZhcygpOworICAgIGlmICghY2FudmFzKQorICAgICAgICByZXR1cm47
CisKKyAgICBSZW5kZXJCb3gqIHJlbmRlckJveCA9IGNhbnZhcy0+cmVuZGVyQm94KCk7CiAgICAg
aWYgKGlzQWNjZWxlcmF0ZWQoKSAmJiByZW5kZXJCb3ggJiYgcmVuZGVyQm94LT5oYXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nKCkpIHsKICAgICAgICAgbV9tYXJrZWRDYW52YXNEaXJ0eSA9IHRydWU7
Ci0gICAgICAgIGNhbnZhcygpLT5jbGVhckNvcGllZEltYWdlKCk7CisgICAgICAgIGh0bWxDYW52
YXMoKS0+Y2xlYXJDb3BpZWRJbWFnZSgpOwogICAgICAgICByZW5kZXJCb3gtPmNvbnRlbnRDaGFu
Z2VkKENhbnZhc0NoYW5nZWQpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICghbV9tYXJrZWRD
YW52YXNEaXJ0eSkgewogICAgICAgICAgICAgbV9tYXJrZWRDYW52YXNEaXJ0eSA9IHRydWU7Ci0g
ICAgICAgICAgICBjYW52YXMoKS0+ZGlkRHJhdyhGbG9hdFJlY3QoRmxvYXRQb2ludCgwLCAwKSwg
Y2xhbXBlZENhbnZhc1NpemUoKSkpOworICAgICAgICAgICAgY2FudmFzLT5kaWREcmF3KEZsb2F0
UmVjdChGbG9hdFBvaW50KDAsIDApLCBjbGFtcGVkQ2FudmFzU2l6ZSgpKSk7CiAgICAgICAgIH0K
ICAgICB9CiB9CkBAIC03MzksMTAgKzc3OSwxNCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6Om1hcmtDb250ZXh0Q2hhbmdlZEFuZE5vdGlmeUNhbnZhc09ic2VydmVyKCkKICAgICBt
YXJrQ29udGV4dENoYW5nZWQoKTsKICAgICBpZiAoIWlzQWNjZWxlcmF0ZWQoKSkKICAgICAgICAg
cmV0dXJuOwotICAgIAotICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gY2FudmFzKCktPnJlbmRl
ckJveCgpOworCisgICAgYXV0byogY2FudmFzID0gaHRtbENhbnZhcygpOworICAgIGlmICghY2Fu
dmFzKQorICAgICAgICByZXR1cm47CisKKyAgICBSZW5kZXJCb3gqIHJlbmRlckJveCA9IGNhbnZh
cy0+cmVuZGVyQm94KCk7CiAgICAgaWYgKHJlbmRlckJveCAmJiByZW5kZXJCb3gtPmhhc0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmcoKSkKLSAgICAgICAgY2FudmFzKCktPm5vdGlmeU9ic2VydmVyc0Nh
bnZhc0NoYW5nZWQoRmxvYXRSZWN0KEZsb2F0UG9pbnQoMCwgMCksIGNsYW1wZWRDYW52YXNTaXpl
KCkpKTsKKyAgICAgICAgY2FudmFzLT5ub3RpZnlPYnNlcnZlcnNDYW52YXNDaGFuZ2VkKEZsb2F0
UmVjdChGbG9hdFBvaW50KDAsIDApLCBjbGFtcGVkQ2FudmFzU2l6ZSgpKSk7CiB9CiAKIGJvb2wg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2xlYXJJZkNvbXBvc2l0ZWQoR0MzRGJpdGZpZWxk
IG1hc2spCkBAIC04MjQsMjYgKzg2OCwzMCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKCkKICAgICBpZiAoaXNDb250ZXh0TG9z
dE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoY2FudmFzKCktPmRvY3Vt
ZW50KCkucHJpbnRpbmcoKSkKLSAgICAgICAgY2FudmFzKCktPmNsZWFyUHJlc2VudGF0aW9uQ29w
eSgpOworICAgIGF1dG8qIGNhbnZhcyA9IGh0bWxDYW52YXMoKTsKKyAgICBpZiAoIWNhbnZhcykK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGNhbnZhcy0+ZG9jdW1lbnQoKS5wcmludGluZygp
KQorICAgICAgICBjYW52YXMtPmNsZWFyUHJlc2VudGF0aW9uQ29weSgpOwogCiAgICAgLy8gVW50
aWwgdGhlIGNhbnZhcyBpcyB3cml0dGVuIHRvIGJ5IHRoZSBhcHBsaWNhdGlvbiwgdGhlIGNsZWFy
IHRoYXQKICAgICAvLyBoYXBwZW5lZCBhZnRlciBpdCB3YXMgY29tcG9zaXRlZCBzaG91bGQgYmUg
aWdub3JlZCBieSB0aGUgY29tcG9zaXRvci4KICAgICBpZiAobV9jb250ZXh0LT5sYXllckNvbXBv
c2l0ZWQoKSAmJiAhbV9hdHRyaWJ1dGVzLnByZXNlcnZlRHJhd2luZ0J1ZmZlcikgewotICAgICAg
ICBtX2NvbnRleHQtPnBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb0NhbnZhcyhjYW52YXMoKS0+YnVm
ZmVyKCkpOworICAgICAgICBtX2NvbnRleHQtPnBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb0NhbnZh
cyhjYW52YXMtPmJ1ZmZlcigpKTsKIAotICAgICAgICBjYW52YXMoKS0+bWFrZVByZXNlbnRhdGlv
bkNvcHkoKTsKKyAgICAgICAgY2FudmFzLT5tYWtlUHJlc2VudGF0aW9uQ29weSgpOwogICAgIH0g
ZWxzZQotICAgICAgICBjYW52YXMoKS0+Y2xlYXJQcmVzZW50YXRpb25Db3B5KCk7CisgICAgICAg
IGNhbnZhcy0+Y2xlYXJQcmVzZW50YXRpb25Db3B5KCk7CiAgICAgY2xlYXJJZkNvbXBvc2l0ZWQo
KTsKIAogICAgIGlmICghbV9tYXJrZWRDYW52YXNEaXJ0eSAmJiAhbV9sYXllckNsZWFyZWQpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGNhbnZhcygpLT5jbGVhckNvcGllZEltYWdlKCk7CisgICAg
Y2FudmFzLT5jbGVhckNvcGllZEltYWdlKCk7CiAgICAgbV9tYXJrZWRDYW52YXNEaXJ0eSA9IGZh
bHNlOwogCi0gICAgbV9jb250ZXh0LT5wYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcyhjYW52
YXMoKS0+YnVmZmVyKCkpOworICAgIG1fY29udGV4dC0+cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9D
YW52YXMoY2FudmFzLT5idWZmZXIoKSk7CiB9CiAKIFJlZlB0cjxJbWFnZURhdGE+IFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvSW1hZ2VEYXRhKCkKQEAg
LTg3Myw5ICs5MjEsMTIgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZXNoYXBl
KGludCB3aWR0aCwgaW50IGhlaWdodCkKICAgICBoZWlnaHQgPSBjbGFtcChoZWlnaHQsIDEsIG1h
eEhlaWdodCk7CiAKICAgICBpZiAobV9uZWVkc1VwZGF0ZSkgewotICAgICAgICBSZW5kZXJCb3gq
IHJlbmRlckJveCA9IGNhbnZhcygpLT5yZW5kZXJCb3goKTsKLSAgICAgICAgaWYgKHJlbmRlckJv
eCAmJiByZW5kZXJCb3gtPmhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkKLSAgICAgICAgICAg
IHJlbmRlckJveC0+Y29udGVudENoYW5nZWQoQ2FudmFzQ2hhbmdlZCk7CisgICAgICAgIGF1dG8q
IGNhbnZhcyA9IGh0bWxDYW52YXMoKTsKKyAgICAgICAgaWYgKGNhbnZhcykgeworICAgICAgICAg
ICAgUmVuZGVyQm94KiByZW5kZXJCb3ggPSBodG1sQ2FudmFzKCktPnJlbmRlckJveCgpOworICAg
ICAgICAgICAgaWYgKHJlbmRlckJveCAmJiByZW5kZXJCb3gtPmhhc0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmcoKSkKKyAgICAgICAgICAgICAgICByZW5kZXJCb3gtPmNvbnRlbnRDaGFuZ2VkKENhbnZh
c0NoYW5nZWQpOworICAgICAgICB9CiAgICAgICAgIG1fbmVlZHNVcGRhdGUgPSBmYWxzZTsKICAg
ICB9CiAKQEAgLTEzMjcsMTMgKzEzNzgsMTUgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpjb21waWxlU2hhZGVyKFdlYkdMU2hhZGVyKiBzaGFkZXIpCiAgICAgbV9jb250ZXh0LT5n
ZXRTaGFkZXJpdihvYmplY3RPclplcm8oc2hhZGVyKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBJ
TEVfU1RBVFVTLCAmdmFsdWUpOwogICAgIHNoYWRlci0+c2V0VmFsaWQodmFsdWUpOwogCi0gICAg
aWYgKG1fc3ludGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGUgJiYgIXZhbHVlKSB7CisgICAgYXV0byog
Y2FudmFzID0gaHRtbENhbnZhcygpOworCisgICAgaWYgKGNhbnZhcyAmJiBtX3N5bnRoZXNpemVk
RXJyb3JzVG9Db25zb2xlICYmICF2YWx1ZSkgewogICAgICAgICBSZWY8SW5zcGVjdG9yOjpTY3Jp
cHRDYWxsU3RhY2s+IHN0YWNrVHJhY2UgPSBJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdENhbGxTdGFj
ayhKU01haW5UaHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpKTsKIAogICAgICAgICBWZWN0
b3I8U3RyaW5nPiBlcnJvcnM7CiAgICAgICAgIGdldFNoYWRlckluZm9Mb2coc2hhZGVyKS5zcGxp
dCgiXG4iLCBlcnJvcnMpOwogICAgICAgICBmb3IgKFN0cmluZyYgZXJyb3IgOiBlcnJvcnMpCi0g
ICAgICAgICAgICBjYW52YXMoKS0+ZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShzdGQ6Om1h
a2VfdW5pcXVlPEluc3BlY3Rvcjo6Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6OlJlbmRl
cmluZywgTWVzc2FnZVR5cGU6OkxvZywgTWVzc2FnZUxldmVsOjpFcnJvciwgIldlYkdMOiAiICsg
ZXJyb3IsIHN0YWNrVHJhY2UuY29weVJlZigpKSk7CisgICAgICAgICAgICBjYW52YXMtPmRvY3Vt
ZW50KCkuYWRkQ29uc29sZU1lc3NhZ2Uoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3I6OkNvbnNv
bGVNZXNzYWdlPihNZXNzYWdlU291cmNlOjpSZW5kZXJpbmcsIE1lc3NhZ2VUeXBlOjpMb2csIE1l
c3NhZ2VMZXZlbDo6RXJyb3IsICJXZWJHTDogIiArIGVycm9yLCBzdGFja1RyYWNlLmNvcHlSZWYo
KSkpOwogICAgIH0KIH0KIApAQCAtMjgxMCwxNCArMjg2MywxNyBAQCBib29sIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmlzQ29udGV4dExvc3RPclBlbmRpbmcoKQogewogICAgIGlmIChtX2lz
UGVuZGluZ1BvbGljeVJlc29sdXRpb24gJiYgIW1faGFzUmVxdWVzdGVkUG9saWN5UmVzb2x1dGlv
bikgewogICAgICAgICBMT0coV2ViR0wsICJDb250ZXh0IGlzIGJlaW5nIHVzZWQuIEF0dGVtcHQg
dG8gcmVzb2x2ZSB0aGUgcG9saWN5LiIpOwotICAgICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBj
YW52YXMoKS0+ZG9jdW1lbnQoKS50b3BEb2N1bWVudCgpOwotICAgICAgICBQYWdlKiBwYWdlID0g
ZG9jdW1lbnQucGFnZSgpOwotICAgICAgICBpZiAocGFnZSAmJiAhZG9jdW1lbnQudXJsKCkuaXNM
b2NhbEZpbGUoKSkKLSAgICAgICAgICAgIHBhZ2UtPm1haW5GcmFtZSgpLmxvYWRlcigpLmNsaWVu
dCgpLnJlc29sdmVXZWJHTFBvbGljeUZvclVSTChkb2N1bWVudC51cmwoKSk7Ci0gICAgICAgIC8v
IEZJWE1FOiBXZSBkb24ndCBjdXJyZW50bHkgZG8gYW55dGhpbmcgd2l0aCB0aGUgcmVzdWx0IGZy
b20gcmVzb2x1dGlvbi4gQSBtb3JlCi0gICAgICAgIC8vIGNvbXBsZXRlIGltcGxlbWVudGF0aW9u
IG1pZ2h0IHRyeSB0byBjb25zdHJ1Y3QgYSByZWFsIGNvbnRleHQsIGV0YyBhbmQgcHJvY2VlZAot
ICAgICAgICAvLyB3aXRoIG5vcm1hbCBvcGVyYXRpb24uCi0gICAgICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkxMjIKKyAgICAgICAgYXV0byogY2FudmFz
ID0gaHRtbENhbnZhcygpOworICAgICAgICBpZiAoY2FudmFzKSB7CisgICAgICAgICAgICBEb2N1
bWVudCYgZG9jdW1lbnQgPSBjYW52YXMtPmRvY3VtZW50KCkudG9wRG9jdW1lbnQoKTsKKyAgICAg
ICAgICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCk7CisgICAgICAgICAgICBpZiAocGFn
ZSAmJiAhZG9jdW1lbnQudXJsKCkuaXNMb2NhbEZpbGUoKSkKKyAgICAgICAgICAgICAgICBwYWdl
LT5tYWluRnJhbWUoKS5sb2FkZXIoKS5jbGllbnQoKS5yZXNvbHZlV2ViR0xQb2xpY3lGb3JVUkwo
ZG9jdW1lbnQudXJsKCkpOworICAgICAgICAgICAgLy8gRklYTUU6IFdlIGRvbid0IGN1cnJlbnRs
eSBkbyBhbnl0aGluZyB3aXRoIHRoZSByZXN1bHQgZnJvbSByZXNvbHV0aW9uLiBBIG1vcmUKKyAg
ICAgICAgICAgIC8vIGNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG1pZ2h0IHRyeSB0byBjb25zdHJ1
Y3QgYSByZWFsIGNvbnRleHQsIGV0YyBhbmQgcHJvY2VlZAorICAgICAgICAgICAgLy8gd2l0aCBu
b3JtYWwgb3BlcmF0aW9uLgorICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyOTEyMgorICAgICAgICB9CiAgICAgICAgIG1faGFzUmVxdWVzdGVk
UG9saWN5UmVzb2x1dGlvbiA9IHRydWU7CiAgICAgfQogCkBAIC0zMTM1LDcgKzMxOTEsNyBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNE
aW50IHksIEdDM0RzaXplaSB3aWR0aAogICAgICAgICByZXR1cm47CiAgICAgLy8gRHVlIHRvIFdl
YkdMJ3Mgc2FtZS1vcmlnaW4gcmVzdHJpY3Rpb25zLCBpdCBpcyBub3QgcG9zc2libGUgdG8KICAg
ICAvLyB0YWludCB0aGUgb3JpZ2luIHVzaW5nIHRoZSBXZWJHTCBBUEkuCi0gICAgQVNTRVJUKGNh
bnZhcygpLT5vcmlnaW5DbGVhbigpKTsKKyAgICBBU1NFUlQoY2FudmFzQmFzZSgpLm9yaWdpbkNs
ZWFuKCkpOwogCiAgICAgR0MzRGVudW0gaW50ZXJuYWxGb3JtYXQgPSAwOwogICAgIGlmIChtX2Zy
YW1lYnVmZmVyQmluZGluZykgewpAQCAtNDcwOSw4ICs0NzY1LDExIEBAIHZvaWQgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6bG9zZUNvbnRleHRJbXBsKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6Okxvc3RDCiAgICAgaWYgKG1vZGUgPT0gUmVhbExvc3RDb250ZXh0KSB7CiAgICAgICAgIC8v
IEluZm9ybSB0aGUgZW1iZWRkZXIgdGhhdCBhIGxvc3QgY29udGV4dCB3YXMgcmVjZWl2ZWQuIElu
IHJlc3BvbnNlLCB0aGUgZW1iZWRkZXIgbWlnaHQKICAgICAgICAgLy8gZGVjaWRlIHRvIHRha2Ug
YWN0aW9uIHN1Y2ggYXMgYXNraW5nIHRoZSB1c2VyIGZvciBwZXJtaXNzaW9uIHRvIHVzZSBXZWJH
TCBhZ2Fpbi4KLSAgICAgICAgaWYgKFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBjYW52YXMoKS0+ZG9j
dW1lbnQoKS5mcmFtZSgpKQotICAgICAgICAgICAgZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmRp
ZExvc2VXZWJHTENvbnRleHQobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuZ2V0R3JhcGhpY3NS
ZXNldFN0YXR1c0FSQigpKTsKKyAgICAgICAgYXV0byogY2FudmFzID0gaHRtbENhbnZhcygpOwor
ICAgICAgICBpZiAoY2FudmFzKSB7CisgICAgICAgICAgICBpZiAoUmVmUHRyPEZyYW1lPiBmcmFt
ZSA9IGNhbnZhcy0+ZG9jdW1lbnQoKS5mcmFtZSgpKQorICAgICAgICAgICAgICAgIGZyYW1lLT5s
b2FkZXIoKS5jbGllbnQoKS5kaWRMb3NlV2ViR0xDb250ZXh0KG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLmdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKSk7CisgICAgICAgIH0KICAgICB9CiAK
ICAgICBkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCk7CkBAIC01MzMzLDcgKzUzOTIsOSBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnByaW50VG9Db25zb2xlKE1lc3NhZ2VMZXZl
bCBsZXZlbCwgY29uc3QgU3RyaW5nJgogICAgIH0gZWxzZQogICAgICAgICBjb25zb2xlTWVzc2Fn
ZSA9IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZT4oTWVzc2FnZVNv
dXJjZTo6UmVuZGVyaW5nLCBNZXNzYWdlVHlwZTo6TG9nLCBsZXZlbCwgbWVzc2FnZSk7CiAKLSAg
ICBjYW52YXMoKS0+ZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShXVEZNb3ZlKGNvbnNvbGVN
ZXNzYWdlKSk7CisgICAgYXV0byogY2FudmFzID0gaHRtbENhbnZhcygpOworICAgIGlmIChjYW52
YXMpCisgICAgICAgIGNhbnZhcy0+ZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShXVEZNb3Zl
KGNvbnNvbGVNZXNzYWdlKSk7CiAKICAgICAtLW1fbnVtR0xFcnJvcnNUb0NvbnNvbGVBbGxvd2Vk
OwogICAgIGlmICghbV9udW1HTEVycm9yc1RvQ29uc29sZUFsbG93ZWQpCkBAIC01Njc4LDggKzU3
MzksMTIgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpyZXN0b3JlU3RhdGVzQWZ0
ZXJWZXJ0ZXhBdHRyaWIwU2ltdWxhdGlvbigpCiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6ZGlzcGF0Y2hDb250ZXh0TG9zdEV2ZW50KCkKIHsKKyAgICBhdXRvKiBjYW52YXMgPSBo
dG1sQ2FudmFzKCk7CisgICAgaWYgKCFjYW52YXMpCisgICAgICAgIHJldHVybjsKKwogICAgIFJl
ZjxXZWJHTENvbnRleHRFdmVudD4gZXZlbnQgPSBXZWJHTENvbnRleHRFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS53ZWJnbGNvbnRleHRsb3N0RXZlbnQsIGZhbHNlLCB0cnVlLCBlbXB0eVN0cmlu
ZygpKTsKLSAgICBjYW52YXMoKS0+ZGlzcGF0Y2hFdmVudChldmVudCk7CisgICAgY2FudmFzLT5k
aXNwYXRjaEV2ZW50KGV2ZW50KTsKICAgICBtX3Jlc3RvcmVBbGxvd2VkID0gZXZlbnQtPmRlZmF1
bHRQcmV2ZW50ZWQoKTsKICAgICBpZiAobV9jb250ZXh0TG9zdE1vZGUgPT0gUmVhbExvc3RDb250
ZXh0ICYmIG1fcmVzdG9yZUFsbG93ZWQpCiAgICAgICAgIG1fcmVzdG9yZVRpbWVyLnN0YXJ0T25l
U2hvdCgwX3MpOwpAQCAtNTcyNyw3ICs1NzkyLDExIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6bWF5YmVSZXN0b3JlQ29udGV4dCgpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAot
ICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBjYW52YXMoKS0+ZG9jdW1lbnQoKS5mcmFtZSgpOwor
ICAgIGF1dG8qIGNhbnZhcyA9IGh0bWxDYW52YXMoKTsKKyAgICBpZiAoIWNhbnZhcykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IGNhbnZhcy0+ZG9jdW1lbnQo
KS5mcmFtZSgpOwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKIApAQCAtNTc2MCwx
MiArNTgyOSwxNiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9y
ZUNvbnRleHQoKQogICAgIHNldHVwRmxhZ3MoKTsKICAgICBpbml0aWFsaXplTmV3Q29udGV4dCgp
OwogICAgIGluaXRpYWxpemVWZXJ0ZXhBcnJheU9iamVjdHMoKTsKLSAgICBjYW52YXMoKS0+ZGlz
cGF0Y2hFdmVudChXZWJHTENvbnRleHRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJnbGNv
bnRleHRyZXN0b3JlZEV2ZW50LCBmYWxzZSwgdHJ1ZSwgZW1wdHlTdHJpbmcoKSkpOworICAgIGNh
bnZhcy0+ZGlzcGF0Y2hFdmVudChXZWJHTENvbnRleHRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS53ZWJnbGNvbnRleHRyZXN0b3JlZEV2ZW50LCBmYWxzZSwgdHJ1ZSwgZW1wdHlTdHJpbmcoKSkp
OwogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRpc3BhdGNoQ29udGV4dENo
YW5nZWRFdmVudCgpCiB7Ci0gICAgY2FudmFzKCktPmRpc3BhdGNoRXZlbnQoV2ViR0xDb250ZXh0
RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2ViZ2xjb250ZXh0Y2hhbmdlZEV2ZW50LCBmYWxz
ZSwgdHJ1ZSwgZW1wdHlTdHJpbmcoKSkpOworICAgIGF1dG8qIGNhbnZhcyA9IGh0bWxDYW52YXMo
KTsKKyAgICBpZiAoIWNhbnZhcykKKyAgICAgICAgcmV0dXJuOworCisgICAgY2FudmFzLT5kaXNw
YXRjaEV2ZW50KFdlYkdMQ29udGV4dEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmdsY29u
dGV4dGNoYW5nZWRFdmVudCwgZmFsc2UsIHRydWUsIGVtcHR5U3RyaW5nKCkpKTsKIH0KIAogdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpzaW11bGF0ZUNvbnRleHRDaGFuZ2VkKCkKQEAg
LTU4NzUsOCArNTk0OCw4IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZW5hYmxl
T3JEaXNhYmxlKEdDM0RlbnVtIGNhcGFiaWxpdHksIGJvb2wgZW5hYmxlCiAKIEludFNpemUgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2xhbXBlZENhbnZhc1NpemUoKQogewotICAgIHJldHVy
biBJbnRTaXplKGNsYW1wKGNhbnZhcygpLT53aWR0aCgpLCAxLCBtX21heFZpZXdwb3J0RGltc1sw
XSksCi0gICAgICAgIGNsYW1wKGNhbnZhcygpLT5oZWlnaHQoKSwgMSwgbV9tYXhWaWV3cG9ydERp
bXNbMV0pKTsKKyAgICByZXR1cm4gSW50U2l6ZShjbGFtcChjYW52YXNCYXNlKCkud2lkdGgoKSwg
MSwgbV9tYXhWaWV3cG9ydERpbXNbMF0pLAorICAgICAgICBjbGFtcChjYW52YXNCYXNlKCkuaGVp
Z2h0KCksIDEsIG1fbWF4Vmlld3BvcnREaW1zWzFdKSk7CiB9CiAKIEdDM0RpbnQgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Z2V0TWF4RHJhd0J1ZmZlcnMoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IDBj
ZmFhNTJkODkzNTU5NTZiOGY3Y2Q0MWYzODUzOGE5MWEyMDRmZmQuLjhiZGQzYTMxMzhkZmJhOTk3
OGNkOTNjZjQ5NDBjM2UxNzlkNDVmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTY1LDYgKzY1LDcgQEAg
Y2xhc3MgT0VTVGV4dHVyZUhhbGZGbG9hdDsKIGNsYXNzIE9FU1RleHR1cmVIYWxmRmxvYXRMaW5l
YXI7CiBjbGFzcyBPRVNWZXJ0ZXhBcnJheU9iamVjdDsKIGNsYXNzIE9FU0VsZW1lbnRJbmRleFVp
bnQ7CitjbGFzcyBPZmZzY3JlZW5DYW52YXM7CiBjbGFzcyBXZWJHTEFjdGl2ZUluZm87CiBjbGFz
cyBXZWJHTENvbnRleHRHcm91cDsKIGNsYXNzIFdlYkdMQ29udGV4dE9iamVjdDsKQEAgLTExMiwx
MiArMTEzLDE0IEBAIGlubGluZSBib29sIGNsaXAyRChHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0Mz
RHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LAogICAgIHJldHVybiAoKmNsaXBwZWRYICE9
IHggfHwgKmNsaXBwZWRZICE9IHkgfHwgKmNsaXBwZWRXaWR0aCAhPSB3aWR0aCB8fCAqY2xpcHBl
ZEhlaWdodCAhPSBoZWlnaHQpOwogfQogCit1c2luZyBXZWJHTENhbnZhcyA9IFdURjo6VmFyaWFu
dDxSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+LCBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzPj47CisK
IGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UgOiBwdWJsaWMgR1BVQmFzZWRDYW52YXNS
ZW5kZXJpbmdDb250ZXh0LCBwcml2YXRlIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlciB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlPiBjcmVhdGUoQ2FudmFzQmFzZSYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMmLCBjb25zdCBT
dHJpbmcmKTsKICAgICB2aXJ0dWFsIH5XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKCk7CiAKLSAg
ICBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzKCk7CisgICAgV2ViR0xDYW52YXMgY2FudmFzKCk7
CiAKICAgICBpbnQgZHJhd2luZ0J1ZmZlcldpZHRoKCkgY29uc3Q7CiAgICAgaW50IGRyYXdpbmdC
dWZmZXJIZWlnaHQoKSBjb25zdDsKQEAgLTg0Niw2ICs4NDksOSBAQCBwcm90ZWN0ZWQ6CiAgICAg
Ly8gQ2hlY2sgaWYgRVhUX2RyYXdfYnVmZmVycyBleHRlbnNpb24gaXMgc3VwcG9ydGVkIGFuZCBp
ZiBpdCBzYXRpc2ZpZXMgdGhlIFdlYkdMIHJlcXVpcmVtZW50cy4KICAgICBib29sIHN1cHBvcnRz
RHJhd0J1ZmZlcnMoKTsKIAorICAgIEhUTUxDYW52YXNFbGVtZW50KiBodG1sQ2FudmFzKCk7Cisg
ICAgT2Zmc2NyZWVuQ2FudmFzKiBvZmZzY3JlZW5DYW52YXMoKTsKKwogcHJpdmF0ZToKICAgICBi
b29sIHZhbGlkYXRlQXJyYXlCdWZmZXJUeXBlKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0Mz
RGVudW0gdHlwZSwgc3RkOjpvcHRpb25hbDxKU0M6OlR5cGVkQXJyYXlUeXBlPik7CiAgICAgdm9p
ZCByZWdpc3RlcldpdGhXZWJHTFN0YXRlVHJhY2tlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmlkbAppbmRleCA3
ZTdlNDFmMzIxMjEwYzE1YWE0MmMzMDBlZWIxZGFiMTUwMTdmNWJlLi4zYjk3YjM0NjFhMDY5MDJh
ZTI4ZmZlM2U4MWY5NzE4ZmZkYTE3MGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmlkbApAQCAtNDgsNiArNDgs
OCBAQCB0eXBlZGVmIChJbWFnZURhdGEgb3IgSFRNTEltYWdlRWxlbWVudCBvciBIVE1MQ2FudmFz
RWxlbWVudCBvciBIVE1MVmlkZW9FbGVtZW50KQogdHlwZWRlZiAoSW1hZ2VEYXRhIG9yIEhUTUxJ
bWFnZUVsZW1lbnQgb3IgSFRNTENhbnZhc0VsZW1lbnQpIFRleEltYWdlU291cmNlOwogI2VuZGlm
CiAKK3R5cGVkZWYgKEhUTUxDYW52YXNFbGVtZW50IG9yIE9mZnNjcmVlbkNhbnZhcykgV2ViR0xD
YW52YXM7CisKIFsKICAgICBDb25kaXRpb25hbD1XRUJHTCwKICAgICBDdXN0b21Jc1JlYWNoYWJs
ZSwKQEAgLTU4LDcgKzYwLDcgQEAgdHlwZWRlZiAoSW1hZ2VEYXRhIG9yIEhUTUxJbWFnZUVsZW1l
bnQgb3IgSFRNTENhbnZhc0VsZW1lbnQpIFRleEltYWdlU291cmNlOwogICAgIEV4cG9ydE1hY3Jv
PVdFQkNPUkVfRVhQT1JULAogXSBpbnRlcmZhY2UgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSB7
CiAKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENhbnZhc0VsZW1lbnQgY2FudmFzOworICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJHTENhbnZhcyBjYW52YXM7CiAKICAgICAvKiBDbGVhckJ1
ZmZlck1hc2sgKi8KICAgICBjb25zdCBHTGVudW0gREVQVEhfQlVGRkVSX0JJVCA9IDB4MDAwMDAx
MDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgKaW5kZXggYzVmMDRhYTQ1NWJkNzE4MzllZjQyMTBiYzRhMGVjMTE1ZWU4MDJhOC4u
NWQ5MWEzZWY5MzUwZmJkYWEzYjE4YzE3Yjk0YjY0YTlmNWE1NzJlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtNDMs
NiArNDMsNyBAQAogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJJbnNwZWN0
b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2ll
LmgiCisjaW5jbHVkZSAiT2Zmc2NyZWVuQ2FudmFzLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2lu
Y2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKQEAg
LTEyNTUsMzcgKzEyNTYsNTcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRGaW5pc2hSZWNvcmRpbmdDYW52YXNGcmFtZShIVE1MQ2FudmFzRWwKIGlubGluZSB2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRW5hYmxlRXh0ZW5zaW9uKFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uKQogewogICAg
IEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwotCi0gICAgaWYgKGF1dG8qIGNh
bnZhc0VsZW1lbnQgPSBjb250ZXh0LmNhbnZhcygpKSB7Ci0gICAgICAgIGlmIChJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckRv
Y3VtZW50KGNhbnZhc0VsZW1lbnQtPmRvY3VtZW50KCkpKQotICAgICAgICAgICAgZGlkRW5hYmxl
RXh0ZW5zaW9uSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgY29udGV4dCwgZXh0ZW5zaW9uKTsK
LSAgICB9CisgICAgYXV0byBjYW52YXMgPSBjb250ZXh0LmNhbnZhcygpOworICAgIFdURjo6c3dp
dGNoT24oY2FudmFzLAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxIVE1MQ2FudmFzRWxlbWVu
dD4mIGh0bWxDYW52YXNFbGVtZW50KSB7CisgICAgICAgICAgICBpZiAoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JEb2N1bWVu
dChodG1sQ2FudmFzRWxlbWVudC0+ZG9jdW1lbnQoKSkpCisgICAgICAgICAgICAgICAgZGlkRW5h
YmxlRXh0ZW5zaW9uSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgY29udGV4dCwgZXh0ZW5zaW9u
KTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFz
PiYpIHsKKyAgICAgICAgfQorICAgICk7CiB9CiAKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkQ3JlYXRlUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBj
b250ZXh0LCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7Ci0gICAgaWYgKGF1dG8qIGNhbnZhc0Vs
ZW1lbnQgPSBjb250ZXh0LmNhbnZhcygpKSB7Ci0gICAgICAgIGlmIChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50
KGNhbnZhc0VsZW1lbnQtPmRvY3VtZW50KCkpKQotICAgICAgICAgICAgZGlkQ3JlYXRlUHJvZ3Jh
bUltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnRleHQsIHByb2dyYW0pOwotICAgIH0KKyAg
ICBhdXRvIGNhbnZhcyA9IGNvbnRleHQuY2FudmFzKCk7CisgICAgV1RGOjpzd2l0Y2hPbihjYW52
YXMsCisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPEhUTUxDYW52YXNFbGVtZW50PiYgaHRtbENh
bnZhc0VsZW1lbnQpIHsKKyAgICAgICAgICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KGh0bWxDYW52
YXNFbGVtZW50LT5kb2N1bWVudCgpKSkKKyAgICAgICAgICAgICAgICBkaWRDcmVhdGVQcm9ncmFt
SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgY29udGV4dCwgcHJvZ3JhbSk7CisgICAgICAgIH0s
CisgICAgICAgIFsmXSAoY29uc3QgUmVmUHRyPE9mZnNjcmVlbkNhbnZhcz4mKSB7CisgICAgICAg
IH0KKyAgICApOwogfQogCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxEZWxldGVQcm9ncmFtKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQsIFdlYkdM
UHJvZ3JhbSYgcHJvZ3JhbSkKIHsKLSAgICBpZiAoYXV0byogY2FudmFzRWxlbWVudCA9IGNvbnRl
eHQuY2FudmFzKCkpIHsKLSAgICAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRG9jdW1lbnQoY2FudmFzRWxlbWVu
dC0+ZG9jdW1lbnQoKSkpCi0gICAgICAgICAgICB3aWxsRGVsZXRlUHJvZ3JhbUltcGwoKmluc3Ry
dW1lbnRpbmdBZ2VudHMsIHByb2dyYW0pOwotICAgIH0KKyAgICBhdXRvIGNhbnZhcyA9IGNvbnRl
eHQuY2FudmFzKCk7CisgICAgV1RGOjpzd2l0Y2hPbihjYW52YXMsCisgICAgICAgIFsmXSAoY29u
c3QgUmVmUHRyPEhUTUxDYW52YXNFbGVtZW50PiYgaHRtbENhbnZhc0VsZW1lbnQpIHsKKyAgICAg
ICAgICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5z
dHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KGh0bWxDYW52YXNFbGVtZW50LT5kb2N1bWVudCgp
KSkKKyAgICAgICAgICAgICAgICB3aWxsRGVsZXRlUHJvZ3JhbUltcGwoKmluc3RydW1lbnRpbmdB
Z2VudHMsIHByb2dyYW0pOworICAgICAgICB9LAorICAgICAgICBbJl0gKGNvbnN0IFJlZlB0cjxP
ZmZzY3JlZW5DYW52YXM+JikgeworICAgICAgICB9CisgICAgKTsKIH0KIAogaW5saW5lIGJvb2wg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppc1NoYWRlclByb2dyYW1EaXNhYmxlZChXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBXZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7CiAg
ICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKGZhbHNlKTsKLSAgICBpZiAoYXV0byogY2Fu
dmFzRWxlbWVudCA9IGNvbnRleHQuY2FudmFzKCkpIHsKLSAgICAgICAgaWYgKEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRG9j
dW1lbnQoY2FudmFzRWxlbWVudC0+ZG9jdW1lbnQoKSkpCi0gICAgICAgICAgICByZXR1cm4gaXNT
aGFkZXJQcm9ncmFtRGlzYWJsZWRJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBwcm9ncmFtKTsK
LSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGF1dG8gY2FudmFzID0gY29udGV4dC5jYW52
YXMoKTsKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihjYW52YXMsCisgICAgICAgIFsmXSAoY29u
c3QgUmVmUHRyPEhUTUxDYW52YXNFbGVtZW50PiYgaHRtbENhbnZhc0VsZW1lbnQpIHsKKyAgICAg
ICAgICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5z
dHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KGh0bWxDYW52YXNFbGVtZW50LT5kb2N1bWVudCgp
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gaXNTaGFkZXJQcm9ncmFtRGlzYWJsZWRJbXBsKCpp
bnN0cnVtZW50aW5nQWdlbnRzLCBwcm9ncmFtKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgfSwKKyAgICAgICAgWyZdIChjb25zdCBSZWZQdHI8T2Zmc2NyZWVuQ2FudmFzPiYp
IHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICk7CiB9CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JDYW52YXNBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckNhbnZhc0FnZW50LmNwcAppbmRleCA3YWI5YTdkM2E3ZDRkYzY0NWE0NTc5ZjAwMGU1YjVh
ZjFkYzQ3NTE1Li43NWE3MGY5MjdlNzUzNjkwNDU0MzkzNDRiOGE4M2MwYzA0MGM1NjUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNhbnZhc0Fn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNh
bnZhc0FnZW50LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkpTQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCiAjaW5j
bHVkZSAiTWFpbkZyYW1lLmgiCisjaW5jbHVkZSAiT2Zmc2NyZWVuQ2FudmFzLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0U3RhdGUuaCIKICNpbmNsdWRlICJTdHJpbmdBZGFwdG9ycy5oIgogI2luY2x1ZGUg
PGluc3BlY3Rvci9JZGVudGlmaWVyc0ZhY3RvcnkuaD4KQEAgLTUyOCwyNiArNTI5LDMyIEBAIHZv
aWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZEZpbmlzaFJlY29yZGluZ0NhbnZhc0ZyYW1lKEhU
TUxDYW52YXNFbGVtZW50JiBjYW52CiAjaWYgRU5BQkxFKFdFQkdMKQogdm9pZCBJbnNwZWN0b3JD
YW52YXNBZ2VudDo6ZGlkRW5hYmxlRXh0ZW5zaW9uKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Um
IGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uKQogewotICAgIGF1dG8qIGluc3BlY3Rv
ckNhbnZhcyA9IGZpbmRJbnNwZWN0b3JDYW52YXMoKmNvbnRleHQuY2FudmFzKCkpOwotICAgIGlm
ICghaW5zcGVjdG9yQ2FudmFzKQotICAgICAgICByZXR1cm47CisgICAgYXV0byBjYW52YXMgPSBj
b250ZXh0LmNhbnZhcygpOworICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFJlZlB0cjxI
VE1MQ2FudmFzRWxlbWVudD4+KGNhbnZhcykpIHsKKyAgICAgICAgYXV0byogaW5zcGVjdG9yQ2Fu
dmFzID0gZmluZEluc3BlY3RvckNhbnZhcygqV1RGOjpnZXQ8UmVmUHRyPEhUTUxDYW52YXNFbGVt
ZW50Pj4oY2FudmFzKSk7CisgICAgICAgIGlmICghaW5zcGVjdG9yQ2FudmFzKQorICAgICAgICAg
ICAgcmV0dXJuOwogCi0gICAgbV9mcm9udGVuZERpc3BhdGNoZXItPmV4dGVuc2lvbkVuYWJsZWQo
aW5zcGVjdG9yQ2FudmFzLT5pZGVudGlmaWVyKCksIGV4dGVuc2lvbik7CisgICAgICAgIG1fZnJv
bnRlbmREaXNwYXRjaGVyLT5leHRlbnNpb25FbmFibGVkKGluc3BlY3RvckNhbnZhcy0+aWRlbnRp
ZmllcigpLCBleHRlbnNpb24pOworICAgIH0KIH0KIAogdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2Vu
dDo6ZGlkQ3JlYXRlUHJvZ3JhbShXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBX
ZWJHTFByb2dyYW0mIHByb2dyYW0pCiB7Ci0gICAgYXV0byogaW5zcGVjdG9yQ2FudmFzID0gZmlu
ZEluc3BlY3RvckNhbnZhcygqY29udGV4dC5jYW52YXMoKSk7Ci0gICAgQVNTRVJUKGluc3BlY3Rv
ckNhbnZhcyk7Ci0gICAgaWYgKCFpbnNwZWN0b3JDYW52YXMpCi0gICAgICAgIHJldHVybjsKKyAg
ICBhdXRvIGNhbnZhcyA9IGNvbnRleHQuY2FudmFzKCk7CisgICAgaWYgKFdURjo6aG9sZHNfYWx0
ZXJuYXRpdmU8UmVmUHRyPEhUTUxDYW52YXNFbGVtZW50Pj4oY2FudmFzKSkgeworICAgICAgICBh
dXRvKiBpbnNwZWN0b3JDYW52YXMgPSBmaW5kSW5zcGVjdG9yQ2FudmFzKCpXVEY6OmdldDxSZWZQ
dHI8SFRNTENhbnZhc0VsZW1lbnQ+PihjYW52YXMpKTsKKyAgICAgICAgQVNTRVJUKGluc3BlY3Rv
ckNhbnZhcyk7CisgICAgICAgIGlmICghaW5zcGVjdG9yQ2FudmFzKQorICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0gSW5zcGVjdG9yU2hhZGVyUHJvZ3Jh
bTo6Y3JlYXRlKHByb2dyYW0sICppbnNwZWN0b3JDYW52YXMpOwotICAgIFN0cmluZyBwcm9ncmFt
SWRlbnRpZmllciA9IGluc3BlY3RvclByb2dyYW0tPmlkZW50aWZpZXIoKTsKLSAgICBtX2lkZW50
aWZpZXJUb0luc3BlY3RvclByb2dyYW0uc2V0KHByb2dyYW1JZGVudGlmaWVyLCBXVEZNb3ZlKGlu
c3BlY3RvclByb2dyYW0pKTsKKyAgICAgICAgYXV0byBpbnNwZWN0b3JQcm9ncmFtID0gSW5zcGVj
dG9yU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKHByb2dyYW0sICppbnNwZWN0b3JDYW52YXMpOworICAg
ICAgICBTdHJpbmcgcHJvZ3JhbUlkZW50aWZpZXIgPSBpbnNwZWN0b3JQcm9ncmFtLT5pZGVudGlm
aWVyKCk7CisgICAgICAgIG1faWRlbnRpZmllclRvSW5zcGVjdG9yUHJvZ3JhbS5zZXQocHJvZ3Jh
bUlkZW50aWZpZXIsIFdURk1vdmUoaW5zcGVjdG9yUHJvZ3JhbSkpOwogCi0gICAgaWYgKG1fZW5h
YmxlZCkKLSAgICAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnByb2dyYW1DcmVhdGVkKGluc3Bl
Y3RvckNhbnZhcy0+aWRlbnRpZmllcigpLCBwcm9ncmFtSWRlbnRpZmllcik7CisgICAgICAgIGlm
IChtX2VuYWJsZWQpCisgICAgICAgICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cHJvZ3JhbUNy
ZWF0ZWQoaW5zcGVjdG9yQ2FudmFzLT5pZGVudGlmaWVyKCksIHByb2dyYW1JZGVudGlmaWVyKTsK
KyAgICB9CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndpbGxEZWxldGVQcm9ncmFt
KFdlYkdMUHJvZ3JhbSYgcHJvZ3JhbSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4MDkwNzE0NmU3MTZmNDdmNzJkMDFkMzYy
NWRiM2M4YjU1Nzc2YmRiLi5lZjM3MzA0ZWMxYzVlNzQ4M2ZiNGZlODRmOTQwMjVmYWYzMTkyYzlm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMTEtMjcgIERlYW4gSmFja3NvbiAgPGRpbm9A
YXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBPZmZzY3JlZW5DYW52YXMuZ2V0Q29udGV4
dCgid2ViZ2wiKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgwMDUwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTcwNTQ3Mz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgZXhwZWN0ZWQgcmVz
dWx0cy4KKworICAgICAgICAqIGh0dHAvd3B0L29mZnNjcmVlbi1jYW52YXMvZ2V0Q29udGV4dC13
ZWJnbC5odG1sOgorCiAyMDE3LTExLTIzICBNczJnZXIgIDxNczJnZXJAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbV1BFXSBNYXJrIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFpbnQt
dG8tY2FudmFzLmh0bWwgYXMgcGFzc2luZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L29mZnNjcmVlbi1jYW52YXMvZ2V0Q29udGV4dC13ZWJnbC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvb2Zmc2NyZWVuLWNhbnZhcy9nZXRDb250ZXh0LXdlYmdsLmh0bWwKaW5kZXggNjc3
YWRjYzg5NWZjNWNmZDUwZmQwMjgzNzQ0ZWQ4OTkxNzA1OGQzZi4uYTgyMmE4MzM3Y2U0Y2MyYzlk
OWM2OGQ4ZDllZGU5ZGE1NjkzYWI2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
b2Zmc2NyZWVuLWNhbnZhcy9nZXRDb250ZXh0LXdlYmdsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvb2Zmc2NyZWVuLWNhbnZhcy9nZXRDb250ZXh0LXdlYmdsLmh0bWwKQEAgLTgsNyAr
OCw4IEBACiB0ZXN0KGZ1bmN0aW9uKCkgewogICAgIGxldCBvZmZzY3JlZW5DYW52YXMgPSBuZXcg
T2Zmc2NyZWVuQ2FudmFzKDEwMCwgMTAwKTsKICAgICBsZXQgZ2wgPSBvZmZzY3JlZW5DYW52YXMu
Z2V0Q29udGV4dCgid2ViZ2wiKTsKLSAgICBhc3NlcnRfZXF1YWxzKGdsLCBudWxsKTsKKyAgICBh
c3NlcnRfdHJ1ZShnbCBpbnN0YW5jZW9mIFdlYkdMUmVuZGVyaW5nQ29udGV4dCk7CisgICAgYXNz
ZXJ0X2VxdWFscyhnbC5jYW52YXMsIG9mZnNjcmVlbkNhbnZhcyk7CiB9LCAiVGVzdCBnZXRDb250
ZXh0KCd3ZWJnbCcpLiIpOwogCiA8L3NjcmlwdD4K
</data>
<flag name="review"
          id="346854"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>