<?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>101322</bug_id>
          
          <creation_ts>2012-11-06 01:32:55 -0800</creation_ts>
          <short_desc>[EFL][WK2] Make Ewk_Context Ewk_Object</short_desc>
          <delta_ts>2012-11-06 04:35:50 -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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>101057</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>759388</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-06 01:32:55 -0800</bug_when>
    <thetext>Ewk_Context should be Ewk_Object, as part of bug101057 work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759442</commentid>
    <comment_count>1</comment_count>
      <attachid>172530</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-06 02:30:35 -0800</bug_when>
    <thetext>Created attachment 172530
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759454</commentid>
    <comment_count>2</comment_count>
      <attachid>172530</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-06 02:41:11 -0800</bug_when>
    <thetext>Comment on attachment 172530
patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:199
&gt; +void EwkContext::addVisitedLink(const String&amp; visitedURL)

Isn&apos;t this confusing now? What abut WebContextEfl ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759467</commentid>
    <comment_count>3</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-06 02:55:03 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 172530 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=172530&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:199
&gt; &gt; +void EwkContext::addVisitedLink(const String&amp; visitedURL)
&gt; 
&gt; Isn&apos;t this confusing now? What abut WebContextEfl ?

I don&apos;t mind, however how about other classes? WebURLRequsetEfl instead of present EwkUrlRequest?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759481</commentid>
    <comment_count>4</comment_count>
      <attachid>172530</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-11-06 03:25:06 -0800</bug_when>
    <thetext>Comment on attachment 172530
patch

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

&gt;&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:199
&gt;&gt;&gt; +void EwkContext::addVisitedLink(const String&amp; visitedURL)
&gt;&gt; 
&gt;&gt; Isn&apos;t this confusing now? What abut WebContextEfl ?
&gt; 
&gt; I don&apos;t mind, however how about other classes? WebURLRequsetEfl instead of present EwkUrlRequest?

Why is it confusing? EwkContext is a Ewk Object. Kenneth, you want to call it &quot;WebContextEfl&quot;? why? I think then it would become confusing because we already have a WebContextEfl.cpp file (to provide EFL-specific implementation of some WebContext methods).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759525</commentid>
    <comment_count>5</comment_count>
      <attachid>172530</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 04:35:45 -0800</bug_when>
    <thetext>Comment on attachment 172530
patch

Clearing flags on attachment: 172530

Committed r133587: &lt;http://trac.webkit.org/changeset/133587&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759526</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 04:35:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172530</attachid>
            <date>2012-11-06 02:30:35 -0800</date>
            <delta_ts>2012-11-06 04:35:45 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug101322</filename>
            <type>text/plain</type>
            <size>25975</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGQwZWFjMmZkMmQ4ODNjM2Q3NGYyNzQzYzBiMDcxNDRlMzRkZGM4YmEKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VHVlIE5vdiA2IDEyOjI3OjMyIDIwMTIgKzAyMDAKCiAgICBidWcxMDEzMjIKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggNjZhYmI3OS4uZGMzZDZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDEyLTEx
LTA2ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgor
CisgICAgICAgIFtFRkxdW1dLMl0gTWFrZSBFd2tfQ29udGV4dCBFd2tfT2JqZWN0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDEzMjIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFd2tfQ29udGV4dCBpcyBF
d2tfT2JqZWN0IG5vdyBhbmQgdXNpbmcgY29tbW9uIHJlZi91bnJlZiBBUEkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHA6CisgICAgICAgIChFd2tWaWV3SW1w
bDo6RXdrVmlld0ltcGwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBs
Lmg6CisgICAgICAgIChFd2tWaWV3SW1wbDo6ZXdrQ29udGV4dCk6CisgICAgICAgIChFd2tWaWV3
SW1wbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwOgorICAg
ICAgICAoRXdrQ29udGV4dDo6RXdrQ29udGV4dCk6CisgICAgICAgIChFd2tDb250ZXh0Ojp+RXdr
Q29udGV4dCk6CisgICAgICAgIChFd2tDb250ZXh0OjpjcmVhdGUpOgorICAgICAgICAoRXdrQ29u
dGV4dDo6ZGVmYXVsdENvbnRleHQpOgorICAgICAgICAoRXdrQ29udGV4dDo6Y29va2llTWFuYWdl
cik6CisgICAgICAgIChFd2tDb250ZXh0OjplbnN1cmVGYXZpY29uRGF0YWJhc2UpOgorICAgICAg
ICAoRXdrQ29udGV4dDo6c2V0RmF2aWNvbkRhdGFiYXNlRGlyZWN0b3J5UGF0aCk6CisgICAgICAg
IChFd2tDb250ZXh0OjpmYXZpY29uRGF0YWJhc2UpOgorICAgICAgICAoRXdrQ29udGV4dDo6c3Rv
cmFnZU1hbmFnZXIpOgorICAgICAgICAoRXdrQ29udGV4dDo6cmVxdWVzdE1hbmFnZXIpOgorICAg
ICAgICAoRXdrQ29udGV4dDo6dmlicmF0aW9uUHJvdmlkZXIpOgorICAgICAgICAoRXdrQ29udGV4
dDo6YWRkVmlzaXRlZExpbmspOgorICAgICAgICAoRXdrQ29udGV4dDo6c2V0Q2FjaGVNb2RlbCk6
CisgICAgICAgIChFd2tDb250ZXh0OjpjYWNoZU1vZGVsKToKKyAgICAgICAgKGV3a19jb250ZXh0
X2Nvb2tpZV9tYW5hZ2VyX2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9mYXZpY29uX2RhdGFi
YXNlX2RpcmVjdG9yeV9zZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfZmF2aWNvbl9kYXRhYmFz
ZV9nZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfc3RvcmFnZV9tYW5hZ2VyX2dldCk6CisgICAg
ICAgIChFd2tDb250ZXh0Ojp3a0NvbnRleHQpOgorICAgICAgICAoRXdrQ29udGV4dDo6ZG93bmxv
YWRNYW5hZ2VyKToKKyAgICAgICAgKEV3a0NvbnRleHQ6Omhpc3RvcnlDbGllbnQpOgorICAgICAg
ICAoZXdrX2NvbnRleHRfZGVmYXVsdF9nZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfbmV3KToK
KyAgICAgICAgKGV3a19jb250ZXh0X25ld193aXRoX2luamVjdGVkX2J1bmRsZV9wYXRoKToKKyAg
ICAgICAgKGV3a19jb250ZXh0X3VybF9zY2hlbWVfcmVnaXN0ZXIpOgorICAgICAgICAoZXdrX2Nv
bnRleHRfdmlicmF0aW9uX2NsaWVudF9jYWxsYmFja3Nfc2V0KToKKyAgICAgICAgKGV3a19jb250
ZXh0X2hpc3RvcnlfY2FsbGJhY2tzX3NldCk6CisgICAgICAgIChld2tfY29udGV4dF92aXNpdGVk
X2xpbmtfYWRkKToKKyAgICAgICAgKGV3a19jb250ZXh0X2NhY2hlX21vZGVsX3NldCk6CisgICAg
ICAgIChld2tfY29udGV4dF9jYWNoZV9tb2RlbF9nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a19jb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nv
bnRleHRfcHJpdmF0ZS5oOgorICAgICAgICAoRXdrQ29udGV4dCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwOgorICAgICAgICAoY3JlYXRlRXdrVmlldyk6CisgICAg
ICAgIChld2tfdmlld19iYXNlX2FkZCk6CisgICAgICAgIChld2tfdmlld19zbWFydF9hZGQpOgor
ICAgICAgICAoZXdrX3ZpZXdfYWRkX3dpdGhfY29udGV4dCk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2NvbnRleHQuY3BwOgorICAgICAgICAoVEVTVF9GKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVmbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkRvd25sb2FkTWFuYWdlckVmbDo6RG93bmxvYWRNYW5hZ2VyRWZsKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVmbC5oOgorICAgICAgICAoV2ViS2l0
OjpEb3dubG9hZE1hbmFnZXJFZmw6OmNyZWF0ZSk6CisgICAgICAgIChEb3dubG9hZE1hbmFnZXJF
ZmwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudEJhc2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50QmFzZTo6aGFuZGxlRG93bmxvYWRSZXF1ZXN0KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZs
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmg6Cisg
ICAgICAgIChXZWJLaXQ6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpjcmVhdGUpOgorICAgICAg
ICAoUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwpOgorCiAyMDEyLTExLTA1ICBTYW0gV2VpbmlnICA8
c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTmVlZCBhIHdheSB0byBzZW5kIGFuZCByZWNlaXZl
IG1lc3NhZ2VzIGJldHdlZW4gdGhlIFdLV2ViUHJvY2Vzc1BsdWdJbiBvYmplY3QgYW5kIHRoZSBj
bGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1Zp
ZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBs
LmNwcAppbmRleCBjZWJhMmZkLi5kZmFlYmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuY3BwCkBAIC05Niw3ICs5Niw3IEBAIGNvbnN0IEV2
YXNfT2JqZWN0KiBFd2tWaWV3SW1wbDo6dmlld0Zyb21QYWdlVmlld01hcChjb25zdCBXS1BhZ2VS
ZWYgcGFnZSkKICAgICByZXR1cm4gcGFnZVZpZXdNYXAoKS5nZXQocGFnZSk7CiB9CiAKLUV3a1Zp
ZXdJbXBsOjpFd2tWaWV3SW1wbChFdmFzX09iamVjdCogdmlldywgUGFzc1JlZlB0cjxFd2tfQ29u
dGV4dD4gY29udGV4dCwgUGFzc1JlZlB0cjxXZWJQYWdlR3JvdXA+IHBhZ2VHcm91cCwgVmlld0Jl
aGF2aW9yIGJlaGF2aW9yKQorRXdrVmlld0ltcGw6OkV3a1ZpZXdJbXBsKEV2YXNfT2JqZWN0KiB2
aWV3LCBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IGNvbnRleHQsIFBhc3NSZWZQdHI8V2ViUGFnZUdy
b3VwPiBwYWdlR3JvdXAsIFZpZXdCZWhhdmlvciBiZWhhdmlvcikKICAgICA6IG1fdmlldyh2aWV3
KQogICAgICwgbV9jb250ZXh0KGNvbnRleHQpCiAgICAgLCBtX3BhZ2VDbGllbnQoYmVoYXZpb3Ig
PT0gRGVmYXVsdEJlaGF2aW9yID8gUGFnZUNsaWVudERlZmF1bHRJbXBsOjpjcmVhdGUodGhpcykg
OiBQYWdlQ2xpZW50TGVnYWN5SW1wbDo6Y3JlYXRlKHRoaXMpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmgKaW5kZXggMWI5NTkyYS4uOTI5Yzc5MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oCkBA
IC02Niw5ICs2NiwxMCBAQCBjbGFzcyBDdXJzb3I7CiBjbGFzcyBJbnRTaXplOwogfQogCitjbGFz
cyBFd2tDb250ZXh0OworCiBjbGFzcyBFd2tfQmFja19Gb3J3YXJkX0xpc3Q7CiBjbGFzcyBFd2tf
Q29sb3JfUGlja2VyOwotY2xhc3MgRXdrX0NvbnRleHQ7CiBjbGFzcyBFd2tfRG93bmxvYWRfSm9i
OwogY2xhc3MgRXdrX0Vycm9yOwogY2xhc3MgRXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1ZXN0OwpA
QCAtOTMsNyArOTQsNyBAQCBwdWJsaWM6CiAgICAgICAgIExlZ2FjeUJlaGF2aW9yLAogICAgICAg
ICBEZWZhdWx0QmVoYXZpb3IKICAgICB9OwotICAgIEV3a1ZpZXdJbXBsKEV2YXNfT2JqZWN0KiB2
aWV3LCBQYXNzUmVmUHRyPEV3a19Db250ZXh0PiBjb250ZXh0LCBQYXNzUmVmUHRyPFdlYktpdDo6
V2ViUGFnZUdyb3VwPiBwYWdlR3JvdXAsIFZpZXdCZWhhdmlvcik7CisgICAgRXdrVmlld0ltcGwo
RXZhc19PYmplY3QqIHZpZXcsIFBhc3NSZWZQdHI8RXdrQ29udGV4dD4gY29udGV4dCwgUGFzc1Jl
ZlB0cjxXZWJLaXQ6OldlYlBhZ2VHcm91cD4gcGFnZUdyb3VwLCBWaWV3QmVoYXZpb3IpOwogICAg
IH5Fd2tWaWV3SW1wbCgpOwogCiAgICAgc3RhdGljIEV3a1ZpZXdJbXBsKiBmcm9tRXZhc09iamVj
dChjb25zdCBFdmFzX09iamVjdCogdmlldyk7CkBAIC0xMDEsNyArMTAyLDcgQEAgcHVibGljOgog
ICAgIEV2YXNfT2JqZWN0KiB2aWV3KCkgeyByZXR1cm4gbV92aWV3OyB9CiAgICAgV0tQYWdlUmVm
IHdrUGFnZSgpOwogICAgIFdlYktpdDo6V2ViUGFnZVByb3h5KiBwYWdlKCkgeyByZXR1cm4gbV9w
YWdlUHJveHkuZ2V0KCk7IH0KLSAgICBFd2tfQ29udGV4dCogZXdrQ29udGV4dCgpIHsgcmV0dXJu
IG1fY29udGV4dC5nZXQoKTsgfQorICAgIEV3a0NvbnRleHQqIGV3a0NvbnRleHQoKSB7IHJldHVy
biBtX2NvbnRleHQuZ2V0KCk7IH0KICAgICBFd2tfU2V0dGluZ3MqIHNldHRpbmdzKCkgeyByZXR1
cm4gbV9zZXR0aW5ncy5nZXQoKTsgfQogICAgIEV3a19CYWNrX0ZvcndhcmRfTGlzdCogYmFja0Zv
cndhcmRMaXN0KCkgeyByZXR1cm4gbV9iYWNrRm9yd2FyZExpc3QuZ2V0KCk7IH0KIApAQCAtMjE3
LDcgKzIxOCw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBOb3RlLCBpbml0aWFsaXphdGlvbiBtYXR0
ZXJzLgogICAgIEV2YXNfT2JqZWN0KiBtX3ZpZXc7Ci0gICAgUmVmUHRyPEV3a19Db250ZXh0PiBt
X2NvbnRleHQ7CisgICAgUmVmUHRyPEV3a0NvbnRleHQ+IG1fY29udGV4dDsKICNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgT3duUHRyPEV2YXNfR0w+IG1fZXZhc0dMOwogICAg
IE93blB0cjxXZWJLaXQ6OkV2YXNHTENvbnRleHQ+IG1fZXZhc0dMQ29udGV4dDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcAppbmRleCA2NDIw
OTk0Li4zOTJlN2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfY29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2NvbnRleHQuY3BwCkBAIC01Myw3ICs1Myw3IEBACiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLXR5cGVkZWYgSGFzaE1hcDxXS0NvbnRleHRS
ZWYsIEV3a19Db250ZXh0Kj4gQ29udGV4dE1hcDsKK3R5cGVkZWYgSGFzaE1hcDxXS0NvbnRleHRS
ZWYsIEV3a0NvbnRleHQqPiBDb250ZXh0TWFwOwogCiBzdGF0aWMgaW5saW5lIENvbnRleHRNYXAm
IGNvbnRleHRNYXAoKQogewpAQCAtNjEsNyArNjEsNyBAQCBzdGF0aWMgaW5saW5lIENvbnRleHRN
YXAmIGNvbnRleHRNYXAoKQogICAgIHJldHVybiBtYXA7CiB9CiAKLUV3a19Db250ZXh0OjpFd2tf
Q29udGV4dChXS0NvbnRleHRSZWYgY29udGV4dCkKK0V3a0NvbnRleHQ6OkV3a0NvbnRleHQoV0tD
b250ZXh0UmVmIGNvbnRleHQpCiAgICAgOiBtX2NvbnRleHQoY29udGV4dCkKICAgICAsIG1fc3Rv
cmFnZU1hbmFnZXIoRXdrX1N0b3JhZ2VfTWFuYWdlcjo6Y3JlYXRlKFdLQ29udGV4dEdldEtleVZh
bHVlU3RvcmFnZU1hbmFnZXIobV9jb250ZXh0LmdldCgpKSkpCiAjaWYgRU5BQkxFKEJBVFRFUllf
U1RBVFVTKQpAQCAtMTAwLDI2ICsxMDAsMjYgQEAgRXdrX0NvbnRleHQ6OkV3a19Db250ZXh0KFdL
Q29udGV4dFJlZiBjb250ZXh0KQogI2VuZGlmCiB9CiAKLUV3a19Db250ZXh0Ojp+RXdrX0NvbnRl
eHQoKQorRXdrQ29udGV4dDo6fkV3a0NvbnRleHQoKQogewogICAgIEFTU0VSVChjb250ZXh0TWFw
KCkuZ2V0KG1fY29udGV4dC5nZXQoKSkgPT0gdGhpcyk7CiAgICAgY29udGV4dE1hcCgpLnJlbW92
ZShtX2NvbnRleHQuZ2V0KCkpOwogfQogCi1QYXNzUmVmUHRyPEV3a19Db250ZXh0PiBFd2tfQ29u
dGV4dDo6Y3JlYXRlKFdLQ29udGV4dFJlZiBjb250ZXh0KQorUGFzc1JlZlB0cjxFd2tDb250ZXh0
PiBFd2tDb250ZXh0OjpjcmVhdGUoV0tDb250ZXh0UmVmIGNvbnRleHQpCiB7CiAgICAgaWYgKGNv
bnRleHRNYXAoKS5jb250YWlucyhjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIGNvbnRleHRNYXAo
KS5nZXQoY29udGV4dCk7IC8vIFdpbGwgYmUgcmVmLWVkIGF1dG9tYXRpY2FsbHkuCiAKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEV3a19Db250ZXh0KGNvbnRleHQpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEV3a0NvbnRleHQoY29udGV4dCkpOwogfQogCi1QYXNzUmVmUHRyPEV3a19Db250
ZXh0PiBFd2tfQ29udGV4dDo6Y3JlYXRlKCkKK1Bhc3NSZWZQdHI8RXdrQ29udGV4dD4gRXdrQ29u
dGV4dDo6Y3JlYXRlKCkKIHsKICAgICByZXR1cm4gY3JlYXRlKGFkb3B0V0soV0tDb250ZXh0Q3Jl
YXRlKCkpLmdldCgpKTsKIH0KIAotUGFzc1JlZlB0cjxFd2tfQ29udGV4dD4gRXdrX0NvbnRleHQ6
OmNyZWF0ZShjb25zdCBTdHJpbmcmIGluamVjdGVkQnVuZGxlUGF0aCkKK1Bhc3NSZWZQdHI8RXdr
Q29udGV4dD4gRXdrQ29udGV4dDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgaW5qZWN0ZWRCdW5kbGVQ
YXRoKQogeyAgIAogICAgIGlmICghZmlsZUV4aXN0cyhpbmplY3RlZEJ1bmRsZVBhdGgpKQogICAg
ICAgICByZXR1cm4gMDsKQEAgLTEzMCwxNCArMTMwLDE0IEBAIFBhc3NSZWZQdHI8RXdrX0NvbnRl
eHQ+IEV3a19Db250ZXh0OjpjcmVhdGUoY29uc3QgU3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBhdGgp
CiAgICAgcmV0dXJuIGNyZWF0ZShjb250ZXh0V0suZ2V0KCkpOwogfQogCi1QYXNzUmVmUHRyPEV3
a19Db250ZXh0PiBFd2tfQ29udGV4dDo6ZGVmYXVsdENvbnRleHQoKQorUGFzc1JlZlB0cjxFd2tD
b250ZXh0PiBFd2tDb250ZXh0OjpkZWZhdWx0Q29udGV4dCgpCiB7Ci0gICAgc3RhdGljIFJlZlB0
cjxFd2tfQ29udGV4dD4gZGVmYXVsdEluc3RhbmNlID0gY3JlYXRlKGFkb3B0V0soV0tDb250ZXh0
Q3JlYXRlKCkpLmdldCgpKTsKKyAgICBzdGF0aWMgUmVmUHRyPEV3a0NvbnRleHQ+IGRlZmF1bHRJ
bnN0YW5jZSA9IGNyZWF0ZShhZG9wdFdLKFdLQ29udGV4dENyZWF0ZSgpKS5nZXQoKSk7CiAKICAg
ICByZXR1cm4gZGVmYXVsdEluc3RhbmNlOwogfQogCi1Fd2tfQ29va2llX01hbmFnZXIqIEV3a19D
b250ZXh0Ojpjb29raWVNYW5hZ2VyKCkKK0V3a19Db29raWVfTWFuYWdlciogRXdrQ29udGV4dDo6
Y29va2llTWFuYWdlcigpCiB7CiAgICAgaWYgKCFtX2Nvb2tpZU1hbmFnZXIpCiAgICAgICAgIG1f
Y29va2llTWFuYWdlciA9IEV3a19Db29raWVfTWFuYWdlcjo6Y3JlYXRlKFdLQ29udGV4dEdldENv
b2tpZU1hbmFnZXIobV9jb250ZXh0LmdldCgpKSk7CkBAIC0xNDUsNyArMTQ1LDcgQEAgRXdrX0Nv
b2tpZV9NYW5hZ2VyKiBFd2tfQ29udGV4dDo6Y29va2llTWFuYWdlcigpCiAgICAgcmV0dXJuIG1f
Y29va2llTWFuYWdlci5nZXQoKTsKIH0KIAotdm9pZCBFd2tfQ29udGV4dDo6ZW5zdXJlRmF2aWNv
bkRhdGFiYXNlKCkKK3ZvaWQgRXdrQ29udGV4dDo6ZW5zdXJlRmF2aWNvbkRhdGFiYXNlKCkKIHsK
ICAgICBpZiAobV9mYXZpY29uRGF0YWJhc2UpCiAgICAgICAgIHJldHVybjsKQEAgLTE1Myw3ICsx
NTMsNyBAQCB2b2lkIEV3a19Db250ZXh0OjplbnN1cmVGYXZpY29uRGF0YWJhc2UoKQogICAgIG1f
ZmF2aWNvbkRhdGFiYXNlID0gRXdrX0Zhdmljb25fRGF0YWJhc2U6OmNyZWF0ZSh0b0ltcGwobV9j
b250ZXh0LmdldCgpKS0+aWNvbkRhdGFiYXNlKCkpOwogfQogCi1ib29sIEV3a19Db250ZXh0Ojpz
ZXRGYXZpY29uRGF0YWJhc2VEaXJlY3RvcnlQYXRoKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJl
Y3RvcnkpCitib29sIEV3a0NvbnRleHQ6OnNldEZhdmljb25EYXRhYmFzZURpcmVjdG9yeVBhdGgo
Y29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeSkKIHsKICAgICBlbnN1cmVGYXZpY29uRGF0
YWJhc2UoKTsKIApAQCAtMTcxLDcgKzE3MSw3IEBAIGJvb2wgRXdrX0NvbnRleHQ6OnNldEZhdmlj
b25EYXRhYmFzZURpcmVjdG9yeVBhdGgoY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLUV3a19GYXZpY29uX0RhdGFiYXNlKiBFd2tfQ29udGV4dDo6
ZmF2aWNvbkRhdGFiYXNlKCkKK0V3a19GYXZpY29uX0RhdGFiYXNlKiBFd2tDb250ZXh0OjpmYXZp
Y29uRGF0YWJhc2UoKQogewogICAgIGVuc3VyZUZhdmljb25EYXRhYmFzZSgpOwogICAgIEFTU0VS
VChtX2Zhdmljb25EYXRhYmFzZSk7CkBAIC0xNzksMTQ3ICsxNzksMTMxIEBAIEV3a19GYXZpY29u
X0RhdGFiYXNlKiBFd2tfQ29udGV4dDo6ZmF2aWNvbkRhdGFiYXNlKCkKICAgICByZXR1cm4gbV9m
YXZpY29uRGF0YWJhc2UuZ2V0KCk7CiB9CiAKLUV3a19TdG9yYWdlX01hbmFnZXIqIEV3a19Db250
ZXh0OjpzdG9yYWdlTWFuYWdlcigpIGNvbnN0CitFd2tfU3RvcmFnZV9NYW5hZ2VyKiBFd2tDb250
ZXh0OjpzdG9yYWdlTWFuYWdlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc3RvcmFnZU1hbmFn
ZXIuZ2V0KCk7CiB9CiAKLVJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKiBFd2tfQ29udGV4dDo6cmVx
dWVzdE1hbmFnZXIoKQorUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwqIEV3a0NvbnRleHQ6OnJlcXVl
c3RNYW5hZ2VyKCkKIHsKICAgICByZXR1cm4gbV9yZXF1ZXN0TWFuYWdlckNsaWVudC5nZXQoKTsK
IH0KIAogI2lmIEVOQUJMRShWSUJSQVRJT04pCi1QYXNzUmVmUHRyPFZpYnJhdGlvblByb3ZpZGVy
PiBFd2tfQ29udGV4dDo6dmlicmF0aW9uUHJvdmlkZXIoKQorUGFzc1JlZlB0cjxWaWJyYXRpb25Q
cm92aWRlcj4gRXdrQ29udGV4dDo6dmlicmF0aW9uUHJvdmlkZXIoKQogewogICAgIHJldHVybiBt
X3ZpYnJhdGlvblByb3ZpZGVyOwogfQogI2VuZGlmCiAKLXZvaWQgRXdrX0NvbnRleHQ6OmFkZFZp
c2l0ZWRMaW5rKGNvbnN0IFN0cmluZyYgdmlzaXRlZFVSTCkKK3ZvaWQgRXdrQ29udGV4dDo6YWRk
VmlzaXRlZExpbmsoY29uc3QgU3RyaW5nJiB2aXNpdGVkVVJMKQogewogICAgIHRvSW1wbChtX2Nv
bnRleHQuZ2V0KCkpLT5hZGRWaXNpdGVkTGluayh2aXNpdGVkVVJMKTsKIH0KIAotdm9pZCBFd2tf
Q29udGV4dDo6c2V0Q2FjaGVNb2RlbChFd2tfQ2FjaGVfTW9kZWwgY2FjaGVNb2RlbCkKK3ZvaWQg
RXdrQ29udGV4dDo6c2V0Q2FjaGVNb2RlbChFd2tfQ2FjaGVfTW9kZWwgY2FjaGVNb2RlbCkKIHsK
ICAgICBXS0NvbnRleHRTZXRDYWNoZU1vZGVsKG1fY29udGV4dC5nZXQoKSwgc3RhdGljX2Nhc3Q8
RXdrX0NhY2hlX01vZGVsPihjYWNoZU1vZGVsKSk7CiB9CiAKLUV3a19DYWNoZV9Nb2RlbCBFd2tf
Q29udGV4dDo6Y2FjaGVNb2RlbCgpIGNvbnN0CitFd2tfQ2FjaGVfTW9kZWwgRXdrQ29udGV4dDo6
Y2FjaGVNb2RlbCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEV3a19DYWNoZV9N
b2RlbD4oV0tDb250ZXh0R2V0Q2FjaGVNb2RlbChtX2NvbnRleHQuZ2V0KCkpKTsKIH0KIAotRXdr
X0NvbnRleHQqIGV3a19jb250ZXh0X3JlZihFd2tfQ29udGV4dCogZXdrQ29udGV4dCkKLXsKLSAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZXdrQ29udGV4dCwgMCk7Ci0KLSAgICBl
d2tDb250ZXh0LT5yZWYoKTsKLQotICAgIHJldHVybiBld2tDb250ZXh0OwotfQotCi12b2lkIGV3
a19jb250ZXh0X3VucmVmKEV3a19Db250ZXh0KiBld2tDb250ZXh0KQotewotICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOKGV3a0NvbnRleHQpOwotCi0gICAgZXdrQ29udGV4dC0+ZGVyZWYo
KTsKLX0KLQogRXdrX0Nvb2tpZV9NYW5hZ2VyKiBld2tfY29udGV4dF9jb29raWVfbWFuYWdlcl9n
ZXQoY29uc3QgRXdrX0NvbnRleHQqIGV3a0NvbnRleHQpCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKGV3a0NvbnRleHQsIDApOworICAgIEVXS19PQkpfR0VUX0lNUExfT1Jf
UkVUVVJOKGNvbnN0IEV3a0NvbnRleHQsIGV3a0NvbnRleHQsIGltcGwsIDApOwogCi0gICAgcmV0
dXJuIGNvbnN0X2Nhc3Q8RXdrX0NvbnRleHQqPihld2tDb250ZXh0KS0+Y29va2llTWFuYWdlcigp
OworICAgIHJldHVybiBjb25zdF9jYXN0PEV3a0NvbnRleHQqPihpbXBsKS0+Y29va2llTWFuYWdl
cigpOwogfQogCiBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfZmF2aWNvbl9kYXRhYmFzZV9kaXJlY3Rv
cnlfc2V0KEV3a19Db250ZXh0KiBld2tDb250ZXh0LCBjb25zdCBjaGFyKiBkaXJlY3RvcnlQYXRo
KQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChld2tDb250ZXh0LCBmYWxz
ZSk7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oRXdrQ29udGV4dCwgZXdrQ29udGV4
dCwgaW1wbCwgZmFsc2UpOwogCi0gICAgcmV0dXJuIGV3a0NvbnRleHQtPnNldEZhdmljb25EYXRh
YmFzZURpcmVjdG9yeVBhdGgoU3RyaW5nOjpmcm9tVVRGOChkaXJlY3RvcnlQYXRoKSk7CisgICAg
cmV0dXJuIGltcGwtPnNldEZhdmljb25EYXRhYmFzZURpcmVjdG9yeVBhdGgoU3RyaW5nOjpmcm9t
VVRGOChkaXJlY3RvcnlQYXRoKSk7CiB9CiAKIEV3a19GYXZpY29uX0RhdGFiYXNlKiBld2tfY29u
dGV4dF9mYXZpY29uX2RhdGFiYXNlX2dldChjb25zdCBFd2tfQ29udGV4dCogZXdrQ29udGV4dCkK
IHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZXdrQ29udGV4dCwgMCk7Cisg
ICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrQ29udGV4dCwgZXdrQ29udGV4
dCwgaW1wbCwgMCk7CiAKLSAgICByZXR1cm4gY29uc3RfY2FzdDxFd2tfQ29udGV4dCo+KGV3a0Nv
bnRleHQpLT5mYXZpY29uRGF0YWJhc2UoKTsKKyAgICByZXR1cm4gY29uc3RfY2FzdDxFd2tDb250
ZXh0Kj4oaW1wbCktPmZhdmljb25EYXRhYmFzZSgpOwogfQogCiBFd2tfU3RvcmFnZV9NYW5hZ2Vy
KiBld2tfY29udGV4dF9zdG9yYWdlX21hbmFnZXJfZ2V0KGNvbnN0IEV3a19Db250ZXh0KiBld2tD
b250ZXh0KQogewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChld2tDb250ZXh0
LCAwKTsKKyAgICBFV0tfT0JKX0dFVF9JTVBMX09SX1JFVFVSTihjb25zdCBFd2tDb250ZXh0LCBl
d2tDb250ZXh0LCBpbXBsLCAwKTsKIAotICAgIHJldHVybiBld2tDb250ZXh0LT5zdG9yYWdlTWFu
YWdlcigpOworICAgIHJldHVybiBpbXBsLT5zdG9yYWdlTWFuYWdlcigpOwogfQogCi1XS0NvbnRl
eHRSZWYgRXdrX0NvbnRleHQ6OndrQ29udGV4dCgpCitXS0NvbnRleHRSZWYgRXdrQ29udGV4dDo6
d2tDb250ZXh0KCkKIHsKICAgICByZXR1cm4gbV9jb250ZXh0LmdldCgpOwogfQogCi1Eb3dubG9h
ZE1hbmFnZXJFZmwqIEV3a19Db250ZXh0Ojpkb3dubG9hZE1hbmFnZXIoKSBjb25zdAorRG93bmxv
YWRNYW5hZ2VyRWZsKiBFd2tDb250ZXh0Ojpkb3dubG9hZE1hbmFnZXIoKSBjb25zdAogewogICAg
IHJldHVybiBtX2Rvd25sb2FkTWFuYWdlci5nZXQoKTsKIH0KIAotQ29udGV4dEhpc3RvcnlDbGll
bnRFZmwqIEV3a19Db250ZXh0OjpoaXN0b3J5Q2xpZW50KCkKK0NvbnRleHRIaXN0b3J5Q2xpZW50
RWZsKiBFd2tDb250ZXh0OjpoaXN0b3J5Q2xpZW50KCkKIHsKICAgICByZXR1cm4gbV9oaXN0b3J5
Q2xpZW50LmdldCgpOwogfQogCiBFd2tfQ29udGV4dCogZXdrX2NvbnRleHRfZGVmYXVsdF9nZXQo
KQogewotICAgIHJldHVybiBFd2tfQ29udGV4dDo6ZGVmYXVsdENvbnRleHQoKS5nZXQoKTsKKyAg
ICByZXR1cm4gRXdrQ29udGV4dDo6ZGVmYXVsdENvbnRleHQoKS5nZXQoKTsKIH0KIAogRXdrX0Nv
bnRleHQqIGV3a19jb250ZXh0X25ldygpCiB7Ci0gICAgcmV0dXJuIEV3a19Db250ZXh0OjpjcmVh
dGUoKS5sZWFrUmVmKCk7CisgICAgcmV0dXJuIEV3a0NvbnRleHQ6OmNyZWF0ZSgpLmxlYWtSZWYo
KTsKIH0KIAogRXdrX0NvbnRleHQqIGV3a19jb250ZXh0X25ld193aXRoX2luamVjdGVkX2J1bmRs
ZV9wYXRoKGNvbnN0IGNoYXIqIHBhdGgpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk5fVkFMKHBhdGgsIDApOwogCi0gICAgcmV0dXJuIEV3a19Db250ZXh0OjpjcmVhdGUoU3RyaW5n
Ojpmcm9tVVRGOChwYXRoKSkubGVha1JlZigpOworICAgIHJldHVybiBFd2tDb250ZXh0OjpjcmVh
dGUoU3RyaW5nOjpmcm9tVVRGOChwYXRoKSkubGVha1JlZigpOwogfQogCiBFaW5hX0Jvb2wgZXdr
X2NvbnRleHRfdXJsX3NjaGVtZV9yZWdpc3RlcihFd2tfQ29udGV4dCogZXdrQ29udGV4dCwgY29u
c3QgY2hhciogc2NoZW1lLCBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0NiIGNhbGxiYWNrLCB2b2lk
KiB1c2VyRGF0YSkKIHsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZXdrQ29u
dGV4dCwgZmFsc2UpOworICAgIEVXS19PQkpfR0VUX0lNUExfT1JfUkVUVVJOKEV3a0NvbnRleHQs
IGV3a0NvbnRleHQsIGltcGwsIGZhbHNlKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwoc2NoZW1lLCBmYWxzZSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KGNhbGxiYWNrLCBmYWxzZSk7CiAKLSAgICBld2tDb250ZXh0LT5yZXF1ZXN0TWFuYWdlcigpLT5y
ZWdpc3RlclVSTFNjaGVtZUhhbmRsZXIoU3RyaW5nOjpmcm9tVVRGOChzY2hlbWUpLCBjYWxsYmFj
aywgdXNlckRhdGEpOworICAgIGltcGwtPnJlcXVlc3RNYW5hZ2VyKCktPnJlZ2lzdGVyVVJMU2No
ZW1lSGFuZGxlcihTdHJpbmc6OmZyb21VVEY4KHNjaGVtZSksIGNhbGxiYWNrLCB1c2VyRGF0YSk7
CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBld2tfY29udGV4dF92aWJyYXRpb25fY2xp
ZW50X2NhbGxiYWNrc19zZXQoRXdrX0NvbnRleHQqIGV3a0NvbnRleHQsIEV3a19WaWJyYXRpb25f
Q2xpZW50X1ZpYnJhdGVfQ2IgdmlicmF0ZSwgRXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0aW9u
X0NhbmNlbF9DYiBjYW5jZWwsIHZvaWQqIGRhdGEpCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk4oZXdrQ29udGV4dCk7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oRXdr
Q29udGV4dCwgZXdrQ29udGV4dCwgaW1wbCk7CiAKICNpZiBFTkFCTEUoVklCUkFUSU9OKQotICAg
IGV3a0NvbnRleHQtPnZpYnJhdGlvblByb3ZpZGVyKCktPnNldFZpYnJhdGlvbkNsaWVudENhbGxi
YWNrcyh2aWJyYXRlLCBjYW5jZWwsIGRhdGEpOworICAgIGltcGwtPnZpYnJhdGlvblByb3ZpZGVy
KCktPnNldFZpYnJhdGlvbkNsaWVudENhbGxiYWNrcyh2aWJyYXRlLCBjYW5jZWwsIGRhdGEpOwog
I2VuZGlmCiB9CiAKIHZvaWQgZXdrX2NvbnRleHRfaGlzdG9yeV9jYWxsYmFja3Nfc2V0KEV3a19D
b250ZXh0KiBld2tDb250ZXh0LCBFd2tfSGlzdG9yeV9OYXZpZ2F0aW9uX0NiIG5hdmlnYXRlLCBF
d2tfSGlzdG9yeV9DbGllbnRfUmVkaXJlY3Rpb25fQ2IgY2xpZW50UmVkaXJlY3QsIEV3a19IaXN0
b3J5X1NlcnZlcl9SZWRpcmVjdGlvbl9DYiBzZXJ2ZXJSZWRpcmVjdCwgRXdrX0hpc3RvcnlfVGl0
bGVfVXBkYXRlX0NiIHRpdGxlVXBkYXRlLCBFd2tfSGlzdG9yeV9Qb3B1bGF0ZV9WaXNpdGVkX0xp
bmtzX0NiIHBvcHVsYXRlVmlzaXRlZExpbmtzLCB2b2lkKiBkYXRhKQogewotICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOKGV3a0NvbnRleHQpOworICAgIEVXS19PQkpfR0VUX0lNUExfT1Jf
UkVUVVJOKEV3a0NvbnRleHQsIGV3a0NvbnRleHQsIGltcGwpOwogCi0gICAgZXdrQ29udGV4dC0+
aGlzdG9yeUNsaWVudCgpLT5zZXRDYWxsYmFja3MobmF2aWdhdGUsIGNsaWVudFJlZGlyZWN0LCBz
ZXJ2ZXJSZWRpcmVjdCwgdGl0bGVVcGRhdGUsIHBvcHVsYXRlVmlzaXRlZExpbmtzLCBkYXRhKTsK
KyAgICBpbXBsLT5oaXN0b3J5Q2xpZW50KCktPnNldENhbGxiYWNrcyhuYXZpZ2F0ZSwgY2xpZW50
UmVkaXJlY3QsIHNlcnZlclJlZGlyZWN0LCB0aXRsZVVwZGF0ZSwgcG9wdWxhdGVWaXNpdGVkTGlu
a3MsIGRhdGEpOwogfQogCiB2b2lkIGV3a19jb250ZXh0X3Zpc2l0ZWRfbGlua19hZGQoRXdrX0Nv
bnRleHQqIGV3a0NvbnRleHQsIGNvbnN0IGNoYXIqIHZpc2l0ZWRVUkwpCiB7Ci0gICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk4oZXdrQ29udGV4dCk7CisgICAgRVdLX09CSl9HRVRfSU1QTF9P
Ul9SRVRVUk4oRXdrQ29udGV4dCwgZXdrQ29udGV4dCwgaW1wbCk7CiAgICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk4odmlzaXRlZFVSTCk7CiAKLSAgICBld2tDb250ZXh0LT5hZGRWaXNpdGVk
TGluayh2aXNpdGVkVVJMKTsKKyAgICBpbXBsLT5hZGRWaXNpdGVkTGluayh2aXNpdGVkVVJMKTsK
IH0KIAogLy8gRXdrX0NhY2hlX01vZGVsIGVudW0gdmFsaWRhdGlvbgpAQCAtMzI5LDE3ICszMTMs
MTcgQEAgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShFV0tfQ0FDSEVfTU9ERUxfUFJJTUFS
WV9XRUJCUk9XU0VSLCBrV0tDYWNoZU1vZGVsUHIKIAogRWluYV9Cb29sIGV3a19jb250ZXh0X2Nh
Y2hlX21vZGVsX3NldChFd2tfQ29udGV4dCogZXdrQ29udGV4dCwgRXdrX0NhY2hlX01vZGVsIGNh
Y2hlTW9kZWwpCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGV3a0NvbnRl
eHQsIGZhbHNlKTsKKyAgICBFV0tfT0JKX0dFVF9JTVBMX09SX1JFVFVSTihFd2tDb250ZXh0LCBl
d2tDb250ZXh0LCBpbXBsLCBmYWxzZSk7CiAKLSAgICBld2tDb250ZXh0LT5zZXRDYWNoZU1vZGVs
KGNhY2hlTW9kZWwpOworICAgIGltcGwtPnNldENhY2hlTW9kZWwoY2FjaGVNb2RlbCk7CiAKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAogRXdrX0NhY2hlX01vZGVsIGV3a19jb250ZXh0X2NhY2hlX21v
ZGVsX2dldChjb25zdCBFd2tfQ29udGV4dCogZXdrQ29udGV4dCkKIHsKLSAgICBFSU5BX1NBRkVU
WV9PTl9OVUxMX1JFVFVSTl9WQUwoZXdrQ29udGV4dCwgRVdLX0NBQ0hFX01PREVMX0RPQ1VNRU5U
X1ZJRVdFUik7CisgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRVUk4oY29uc3QgRXdrQ29udGV4
dCwgZXdrQ29udGV4dCwgaW1wbCwgRVdLX0NBQ0hFX01PREVMX0RPQ1VNRU5UX1ZJRVdFUik7CiAK
LSAgICByZXR1cm4gZXdrQ29udGV4dC0+Y2FjaGVNb2RlbCgpOworICAgIHJldHVybiBpbXBsLT5j
YWNoZU1vZGVsKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19jb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfY29udGV4dC5oCmluZGV4IDE0YmEwNTAuLjA5M2FiODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaApAQCAtNDgsOCArNDgsMTIgQEAKIGV4
dGVybiAiQyIgewogI2VuZGlmCiAKLS8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBAYSBFd2tf
Q29udGV4dC4gKi8KLXR5cGVkZWYgc3RydWN0IEV3a19Db250ZXh0IEV3a19Db250ZXh0OworLyoq
CisgKiBEZWNsYXJlIEV3a19Db250ZXh0IGFzIEV3a19PYmplY3QuCisgKgorICogQHNlZSBFd2tf
T2JqZWN0CisgKi8KK3R5cGVkZWYgc3RydWN0IEV3a19PYmplY3QgRXdrX0NvbnRleHQ7CiAKIC8q
KgogICogXGVudW0gICAgRXdrX0NhY2hlX01vZGVsCkBAIC0xMjEsMjQgKzEyNSw2IEBAIHR5cGVk
ZWYgdm9pZCAoKkV3a19IaXN0b3J5X1RpdGxlX1VwZGF0ZV9DYikoY29uc3QgRXZhc19PYmplY3Qg
KnZpZXcsIGNvbnN0IGNoYXIKIHR5cGVkZWYgdm9pZCAoKkV3a19IaXN0b3J5X1BvcHVsYXRlX1Zp
c2l0ZWRfTGlua3NfQ2IpKHZvaWQgKnVzZXJfZGF0YSk7CiAKIC8qKgotICogSW5jcmVhc2VzIHRo
ZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGdpdmVuIG9iamVjdC4KLSAqCi0gKiBAcGFyYW0gY29u
dGV4dCBjb250ZXh0IG9iamVjdCB0byBpbmNyZWFzZSB0aGUgcmVmZXJlbmNlIGNvdW50Ci0gKgot
ICogQHJldHVybiBFd2tfQ29udGV4dCBvYmplY3Qgb24gc3VjY2VzcyBvciBAYyBOVUxMIG9uIGZh
aWx1cmUKLSAqLwotRUFQSSBFd2tfQ29udGV4dCAqZXdrX2NvbnRleHRfcmVmKEV3a19Db250ZXh0
ICpjb250ZXh0KTsKLQotLyoqCi0gKiBEZWNyZWFzZXMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0
aGUgZ2l2ZW4gb2JqZWN0LCBwb3NzaWJseSBmcmVlaW5nIGl0LgotICoKLSAqIFdoZW4gdGhlIHJl
ZmVyZW5jZSBjb3VudCBpdCdzIHJlYWNoZWQgMCwgdGhlIEV3a19Db250ZXh0IGlzIGZyZWVkLgot
ICoKLSAqIEBwYXJhbSBjb250ZXh0IGNvbnRleHQgb2JqZWN0IHRvIGRlY3JlYXNlIHRoZSByZWZl
cmVuY2UgY291bnQKLSAqLwotRUFQSSB2b2lkIGV3a19jb250ZXh0X3VucmVmKEV3a19Db250ZXh0
ICpjb250ZXh0KTsKLQotLyoqCiAgKiBHZXRzIGRlZmF1bHQgRXdrX0NvbnRleHQgaW5zdGFuY2Uu
CiAgKgogICogVGhlIHJldHVybmVkIEV3a19Db250ZXh0IG9iamVjdCBAYiBzaG91bGQgbm90IGJl
IHVucmVmJ2VkIGlmIGFwcGxpY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgKaW5kZXggMTVmMThiMy4uZTYyNGFi
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHRfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19j
b250ZXh0X3ByaXZhdGUuaApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIldLQVBJQ2FzdC5o
IgogI2luY2x1ZGUgIldLUmV0YWluUHRyLmgiCiAjaW5jbHVkZSAiZXdrX2NvbnRleHQuaCIKKyNp
bmNsdWRlICJld2tfb2JqZWN0X3ByaXZhdGUuaCIKIAogY2xhc3MgRXdrX1VybF9TY2hlbWVfUmVx
dWVzdDsKIGNsYXNzIEV3a19Db29raWVfTWFuYWdlcjsKQEAgLTQzLDE1ICs0NCwxNyBAQCBjbGFz
cyBWaWJyYXRpb25Qcm92aWRlcjsKICNlbmRpZgogfQogCi1jbGFzcyBFd2tfQ29udGV4dCA6IHB1
YmxpYyBSZWZDb3VudGVkPEV3a19Db250ZXh0PiB7CitjbGFzcyBFd2tDb250ZXh0IDogcHVibGlj
IEV3a19PYmplY3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a19Db250ZXh0
PiBjcmVhdGUoV0tDb250ZXh0UmVmIGNvbnRleHQpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3
a19Db250ZXh0PiBjcmVhdGUoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tfQ29udGV4dD4g
Y3JlYXRlKGNvbnN0IFN0cmluZyYgaW5qZWN0ZWRCdW5kbGVQYXRoKTsKKyAgICBFV0tfT0JKRUNU
X0RFQ0xBUkUoRXdrQ29udGV4dCkKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a19Db250ZXh0
PiBkZWZhdWx0Q29udGV4dCgpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IGNy
ZWF0ZShXS0NvbnRleHRSZWYgY29udGV4dCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrQ29u
dGV4dD4gY3JlYXRlKCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrQ29udGV4dD4gY3JlYXRl
KGNvbnN0IFN0cmluZyYgaW5qZWN0ZWRCdW5kbGVQYXRoKTsKIAotICAgIH5Fd2tfQ29udGV4dCgp
OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IGRlZmF1bHRDb250ZXh0KCk7CisK
KyAgICB+RXdrQ29udGV4dCgpOwogCiAgICAgRXdrX0Nvb2tpZV9NYW5hZ2VyKiBjb29raWVNYW5h
Z2VyKCk7CiAKQEAgLTgxLDcgKzg0LDcgQEAgcHVibGljOgogICAgIFdlYktpdDo6Q29udGV4dEhp
c3RvcnlDbGllbnRFZmwqIGhpc3RvcnlDbGllbnQoKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNp
dCBFd2tfQ29udGV4dChXS0NvbnRleHRSZWYpOworICAgIGV4cGxpY2l0IEV3a0NvbnRleHQoV0tD
b250ZXh0UmVmKTsKIAogICAgIHZvaWQgZW5zdXJlRmF2aWNvbkRhdGFiYXNlKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAppbmRleCBjMjFkZjg3
Li42YzMzZTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXcuY3BwCkBAIC00OTQsNyArNDk0LDcgQEAgc3RhdGljIGlubGluZSBFdmFzX1NtYXJ0KiBjcmVh
dGVFd2tWaWV3U21hcnRDbGFzcyh2b2lkKQogICAgIHJldHVybiBzbWFydDsKIH0KIAotc3RhdGlj
IGlubGluZSBFdmFzX09iamVjdCogY3JlYXRlRXdrVmlldyhFdmFzKiBjYW52YXMsIEV2YXNfU21h
cnQqIHNtYXJ0LCBQYXNzUmVmUHRyPEV3a19Db250ZXh0PiBjb250ZXh0LCBXS1BhZ2VHcm91cFJl
ZiBwYWdlR3JvdXBSZWYgPSAwLCBFd2tWaWV3SW1wbDo6Vmlld0JlaGF2aW9yIGJlaGF2aW9yID0g
RXdrVmlld0ltcGw6OkRlZmF1bHRCZWhhdmlvcikKK3N0YXRpYyBpbmxpbmUgRXZhc19PYmplY3Qq
IGNyZWF0ZUV3a1ZpZXcoRXZhcyogY2FudmFzLCBFdmFzX1NtYXJ0KiBzbWFydCwgUGFzc1JlZlB0
cjxFd2tDb250ZXh0PiBjb250ZXh0LCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYgPSAwLCBF
d2tWaWV3SW1wbDo6Vmlld0JlaGF2aW9yIGJlaGF2aW9yID0gRXdrVmlld0ltcGw6OkRlZmF1bHRC
ZWhhdmlvcikKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY2FudmFzLCAw
KTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc21hcnQsIDApOwpAQCAtNTIx
LDE3ICs1MjEsMTcgQEAgc3RhdGljIGlubGluZSBFdmFzX09iamVjdCogY3JlYXRlRXdrVmlldyhF
dmFzKiBjYW52YXMsIEV2YXNfU21hcnQqIHNtYXJ0LCBQYXNzUmUKICAqLwogRXZhc19PYmplY3Qq
IGV3a192aWV3X2Jhc2VfYWRkKEV2YXMqIGNhbnZhcywgV0tDb250ZXh0UmVmIGNvbnRleHRSZWYs
IFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikKIHsKLSAgICByZXR1cm4gY3JlYXRlRXdrVmll
dyhjYW52YXMsIGNyZWF0ZUV3a1ZpZXdTbWFydENsYXNzKCksIEV3a19Db250ZXh0OjpjcmVhdGUo
Y29udGV4dFJlZiksIHBhZ2VHcm91cFJlZiwgRXdrVmlld0ltcGw6OkxlZ2FjeUJlaGF2aW9yKTsK
KyAgICByZXR1cm4gY3JlYXRlRXdrVmlldyhjYW52YXMsIGNyZWF0ZUV3a1ZpZXdTbWFydENsYXNz
KCksIEV3a0NvbnRleHQ6OmNyZWF0ZShjb250ZXh0UmVmKSwgcGFnZUdyb3VwUmVmLCBFd2tWaWV3
SW1wbDo6TGVnYWN5QmVoYXZpb3IpOwogfQogCiBFdmFzX09iamVjdCogZXdrX3ZpZXdfc21hcnRf
YWRkKEV2YXMqIGNhbnZhcywgRXZhc19TbWFydCogc21hcnQsIEV3a19Db250ZXh0KiBjb250ZXh0
KQogewotICAgIHJldHVybiBjcmVhdGVFd2tWaWV3KGNhbnZhcywgc21hcnQsIGNvbnRleHQpOwor
ICAgIHJldHVybiBjcmVhdGVFd2tWaWV3KGNhbnZhcywgc21hcnQsIGV3a19vYmplY3RfY2FzdDxF
d2tDb250ZXh0Kj4oY29udGV4dCkpOwogfQogCiBFdmFzX09iamVjdCogZXdrX3ZpZXdfYWRkX3dp
dGhfY29udGV4dChFdmFzKiBjYW52YXMsIEV3a19Db250ZXh0KiBjb250ZXh0KQogewotICAgIHJl
dHVybiBld2tfdmlld19zbWFydF9hZGQoY2FudmFzLCBjcmVhdGVFd2tWaWV3U21hcnRDbGFzcygp
LCBjb250ZXh0KTsKKyAgICByZXR1cm4gZXdrX3ZpZXdfc21hcnRfYWRkKGNhbnZhcywgY3JlYXRl
RXdrVmlld1NtYXJ0Q2xhc3MoKSwgZXdrX29iamVjdF9jYXN0PEV3a0NvbnRleHQqPihjb250ZXh0
KSk7CiB9CiAKIEV2YXNfT2JqZWN0KiBld2tfdmlld19hZGQoRXZhcyogY2FudmFzKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX2Nv
bnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvdGVzdHMvdGVzdF9l
d2syX2NvbnRleHQuY3BwCmluZGV4IDFkNDRhY2IuLjM0N2RkMDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3RzL3Rlc3RfZXdrMl9jb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfY29u
dGV4dC5jcHAKQEAgLTE4NywyMSArMTg3LDEyIEBAIFRFU1RfRihFV0syVW5pdFRlc3RCYXNlLCBl
d2tfY29udGV4dF9uZXcpCiB7CiAgICAgRXdrX0NvbnRleHQqIGNvbnRleHQgPSBld2tfY29udGV4
dF9uZXcoKTsKICAgICBBU1NFUlRfVFJVRShjb250ZXh0KTsKLSAgICBld2tfY29udGV4dF91bnJl
Zihjb250ZXh0KTsKKyAgICBld2tfb2JqZWN0X3VucmVmKGNvbnRleHQpOwogfQogCiBURVNUX0Yo
RVdLMlVuaXRUZXN0QmFzZSwgZXdrX2NvbnRleHRfbmV3X3dpdGhfaW5qZWN0ZWRfYnVuZGxlX3Bh
dGgpCiB7CiAgICAgRXdrX0NvbnRleHQqIGNvbnRleHQgPSBld2tfY29udGV4dF9uZXdfd2l0aF9p
bmplY3RlZF9idW5kbGVfcGF0aChlbnZpcm9ubWVudC0+aW5qZWN0ZWRCdW5kbGVTYW1wbGUoKSk7
CiAgICAgQVNTRVJUX1RSVUUoY29udGV4dCk7Ci0gICAgZXdrX2NvbnRleHRfdW5yZWYoY29udGV4
dCk7CisgICAgZXdrX29iamVjdF91bnJlZihjb250ZXh0KTsKIH0KLQotVEVTVF9GKEVXSzJVbml0
VGVzdEJhc2UsIGV3a19jb250ZXh0X3JlZikKLXsKLSAgICBFd2tfQ29udGV4dCogY29udGV4dCA9
IGV3a19jb250ZXh0X25ldygpOwotICAgIEFTU0VSVF9FUShjb250ZXh0LCBld2tfY29udGV4dF9y
ZWYoY29udGV4dCkpOwotICAgIGV3a19jb250ZXh0X3VucmVmKGNvbnRleHQpOwotICAgIGV3a19j
b250ZXh0X3VucmVmKGNvbnRleHQpOwotfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVmbC5jcHAKaW5kZXggMmQzODUyNC4uYjc1ODY3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Eb3dubG9hZE1hbmFnZXJF
ZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2Vy
RWZsLmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgRG93bmxvYWRNYW5hZ2VyRWZsOjpkaWRG
aW5pc2goV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxvYWQsIGNvbnN0CiAgICAg
ZG93bmxvYWRNYW5hZ2VyLT51bnJlZ2lzdGVyRG93bmxvYWRKb2IoZG93bmxvYWRJZCk7CiB9CiAK
LURvd25sb2FkTWFuYWdlckVmbDo6RG93bmxvYWRNYW5hZ2VyRWZsKEV3a19Db250ZXh0KiBjb250
ZXh0KQorRG93bmxvYWRNYW5hZ2VyRWZsOjpEb3dubG9hZE1hbmFnZXJFZmwoRXdrQ29udGV4dCog
Y29udGV4dCkKICAgICA6IG1fY29udGV4dChjb250ZXh0KQogewogICAgIFdLQ29udGV4dERvd25s
b2FkQ2xpZW50IHdrRG93bmxvYWRDbGllbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9Eb3dubG9hZE1hbmFnZXJFZmwuaAppbmRleCA1NTY4ZGUxLi5iMmExMTdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVmbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmgK
QEAgLTMxLDE0ICszMSwxNCBAQAogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogCi1jbGFzcyBFd2tfQ29udGV4dDsKK2NsYXNzIEV3a0NvbnRleHQ7
CiBjbGFzcyBFd2tfRG93bmxvYWRfSm9iOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3Mg
RG93bmxvYWRNYW5hZ2VyRWZsIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxEb3du
bG9hZE1hbmFnZXJFZmw+IGNyZWF0ZShFd2tfQ29udGV4dCogY29udGV4dCkKKyAgICBzdGF0aWMg
UGFzc093blB0cjxEb3dubG9hZE1hbmFnZXJFZmw+IGNyZWF0ZShFd2tDb250ZXh0KiBjb250ZXh0
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEb3dubG9hZE1hbmFnZXJFZmwo
Y29udGV4dCkpOwogICAgIH0KQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVn
aXN0ZXJEb3dubG9hZChEb3dubG9hZFByb3h5KiwgRXdrVmlld0ltcGwqKTsKIAogcHJpdmF0ZToK
LSAgICBEb3dubG9hZE1hbmFnZXJFZmwoRXdrX0NvbnRleHQqKTsKKyAgICBEb3dubG9hZE1hbmFn
ZXJFZmwoRXdrQ29udGV4dCopOwogCiAgICAgRXdrX0Rvd25sb2FkX0pvYiogZG93bmxvYWRKb2Io
dWludDY0X3QgaWQpIGNvbnN0OwogICAgIHZvaWQgdW5yZWdpc3RlckRvd25sb2FkSm9iKHVpbnQ2
NF90IGlkKTsKQEAgLTU5LDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRD
YW5jZWwoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2goV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVm
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAotICAgIEV3a19Db250ZXh0KiBtX2NvbnRleHQ7
CisgICAgRXdrQ29udGV4dCogbV9jb250ZXh0OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0
cjxFd2tfRG93bmxvYWRfSm9iPiA+IG1fZG93bmxvYWRKb2JzOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50QmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRCYXNlLmNwcAppbmRleCA4YWQ0MDYxLi5i
NTk3ZDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGll
bnRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRC
YXNlLmNwcApAQCAtMzA5LDcgKzMwOSw3IEBAIHZvaWQgUGFnZUNsaWVudEJhc2U6OnVwZGF0ZVRl
eHRJbnB1dFN0YXRlKCkKIAogdm9pZCBQYWdlQ2xpZW50QmFzZTo6aGFuZGxlRG93bmxvYWRSZXF1
ZXN0KERvd25sb2FkUHJveHkqIGRvd25sb2FkKQogewotICAgIEV3a19Db250ZXh0KiBjb250ZXh0
ID0gbV92aWV3SW1wbC0+ZXdrQ29udGV4dCgpOworICAgIEV3a0NvbnRleHQqIGNvbnRleHQgPSBt
X3ZpZXdJbXBsLT5ld2tDb250ZXh0KCk7CiAgICAgY29udGV4dC0+ZG93bmxvYWRNYW5hZ2VyKCkt
PnJlZ2lzdGVyRG93bmxvYWQoZG93bmxvYWQsIG1fdmlld0ltcGwpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwu
Y3BwCmluZGV4IDFmYWY4YjkuLmI4MjEwNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuY3BwCkBAIC02Niw3ICs2
Niw3IEBAIHZvaWQgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6OmRpZFJlY2VpdmVVUklSZXF1ZXN0
KFdLU291cFJlcXVlc3RNYW5hZ2VyUmVmIHNvdXBSCiAgICAgaGFuZGxlci5jYWxsYmFjayhzY2hl
bWVSZXF1ZXN0LmdldCgpLCBoYW5kbGVyLnVzZXJEYXRhKTsKIH0KIAotUmVxdWVzdE1hbmFnZXJD
bGllbnRFZmw6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKEV3a19Db250ZXh0KiBjb250ZXh0KQor
UmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKEV3a0NvbnRl
eHQqIGNvbnRleHQpCiAgICAgOiBtX3NvdXBSZXF1ZXN0TWFuYWdlcihXS0NvbnRleHRHZXRTb3Vw
UmVxdWVzdE1hbmFnZXIoY29udGV4dC0+d2tDb250ZXh0KCkpKQogewogICAgIEFTU0VSVChjb250
ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1h
bmFnZXJDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1h
bmFnZXJDbGllbnRFZmwuaAppbmRleCBhODRjOWM1Li43MWFhZWRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5oCkBA
IC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsX2gKIAogI2lu
Y2x1ZGUgIldLUmV0YWluUHRyLmgiCi0jaW5jbHVkZSAiZXdrX2NvbnRleHQuaCIKKyNpbmNsdWRl
ICJld2tfY29udGV4dF9wcml2YXRlLmgiCiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CkBAIC0z
OCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgUmVxdWVzdE1hbmFnZXJDbGll
bnRFZmwgewogcHVibGljOgogICAgIH5SZXF1ZXN0TWFuYWdlckNsaWVudEVmbCgpOwotICAgIHN0
YXRpYyBQYXNzT3duUHRyPFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsPiBjcmVhdGUoRXdrX0NvbnRl
eHQqIGNvbnRleHQpCisgICAgc3RhdGljIFBhc3NPd25QdHI8UmVxdWVzdE1hbmFnZXJDbGllbnRF
Zmw+IGNyZWF0ZShFd2tDb250ZXh0KiBjb250ZXh0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbChjb250ZXh0KSk7CiAgICAgfQpAQCAt
NDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUhhbmRsZXIo
Y29uc3QgU3RyaW5nJiBzY2hlbWUsIEV3a19VcmxfU2NoZW1lX1JlcXVlc3RfQ2IgY2FsbGJhY2ss
IHZvaWQqIHVzZXJEYXRhKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSZXF1ZXN0TWFuYWdl
ckNsaWVudEVmbChFd2tfQ29udGV4dCopOworICAgIGV4cGxpY2l0IFJlcXVlc3RNYW5hZ2VyQ2xp
ZW50RWZsKEV3a0NvbnRleHQqKTsKIAogICAgIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVVUklSZXF1
ZXN0KFdLU291cFJlcXVlc3RNYW5hZ2VyUmVmLCBXS1VSTFJlZiwgV0tQYWdlUmVmLCB1aW50NjRf
dCByZXF1ZXN0SUQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>