<?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>101477</bug_id>
          
          <creation_ts>2012-11-07 08:10:14 -0800</creation_ts>
          <short_desc>[EFL][WK2] Make ewk_context use WebContext instead of WKContext</short_desc>
          <delta_ts>2012-11-08 01:55:04 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jinwoo Song">jinwoo7.song</reporter>
          <assigned_to name="Jinwoo Song">jinwoo7.song</assigned_to>
          <cc>cdumez</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>mikhail.pozdnyakov</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>760712</commentid>
    <comment_count>0</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-11-07 08:10:14 -0800</bug_when>
    <thetext>Currently ewk_context is using WKContextRef but it would be better to use the WebContext as we use C++ classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760726</commentid>
    <comment_count>1</comment_count>
      <attachid>172812</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-11-07 08:26:56 -0800</bug_when>
    <thetext>Created attachment 172812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760789</commentid>
    <comment_count>2</comment_count>
      <attachid>172824</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-11-07 09:47:22 -0800</bug_when>
    <thetext>Created attachment 172824
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760824</commentid>
    <comment_count>3</comment_count>
      <attachid>172824</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-11-07 10:12:12 -0800</bug_when>
    <thetext>Comment on attachment 172824
Patch

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

&gt; Source/WebKit2/ChangeLog:3
&gt; +        [EFL][WK2] Make ewk_context to use WebContext

&quot;Make ewk_context use WebContext instead of WKContext&quot; (without &quot;to&quot;) would probably be more correct.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:165
&gt; +    if (m_webContext.get()-&gt;iconDatabase()-&gt;isOpen())

.get() seems useless here.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:169
&gt; +    String databasePath = databaseDirectory.isEmpty() ? m_webContext.get()-&gt;iconDatabasePath() : pathByAppendingComponent(databaseDirectory, WebCore::IconDatabase::defaultDatabaseFilename());

Ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:170
&gt; +    m_webContext.get()-&gt;setIconDatabasePath(databasePath);

Ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:202
&gt; +    m_webContext.get()-&gt;addVisitedLink(visitedURL);

Ditto.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:212
&gt; +    return static_cast&lt;Ewk_Cache_Model&gt;(WKContextGetCacheModel(toAPI(m_webContext.get())));

I guess we could call m_webContext-&gt;cacheModel() instead of using C API.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_database_manager_private.h:42
&gt; +        return adoptPtr(new Ewk_Database_Manager(context-&gt;databaseManagerProxy()));

Would be nice to add an ASSERT(context); before this line.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_storage_manager_private.h:42
&gt; +        return adoptPtr(new Ewk_Storage_Manager(context-&gt;keyValueStorageManagerProxy()));

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760899</commentid>
    <comment_count>4</comment_count>
      <attachid>172842</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-11-07 11:16:29 -0800</bug_when>
    <thetext>Created attachment 172842
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760901</commentid>
    <comment_count>5</comment_count>
      <attachid>172824</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-11-07 11:18:18 -0800</bug_when>
    <thetext>Comment on attachment 172824
Patch

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

&gt;&gt; Source/WebKit2/ChangeLog:3
&gt;&gt; +        [EFL][WK2] Make ewk_context to use WebContext
&gt; 
&gt; &quot;Make ewk_context use WebContext instead of WKContext&quot; (without &quot;to&quot;) would probably be more correct.

Changed title more correctly.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:165
&gt;&gt; +    if (m_webContext.get()-&gt;iconDatabase()-&gt;isOpen())
&gt; 
&gt; .get() seems useless here.

Fixed.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:169
&gt;&gt; +    String databasePath = databaseDirectory.isEmpty() ? m_webContext.get()-&gt;iconDatabasePath() : pathByAppendingComponent(databaseDirectory, WebCore::IconDatabase::defaultDatabaseFilename());
&gt; 
&gt; Ditto.

Fixed.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:202
&gt;&gt; +    m_webContext.get()-&gt;addVisitedLink(visitedURL);
&gt; 
&gt; Ditto.

Fixed.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:212
&gt;&gt; +    return static_cast&lt;Ewk_Cache_Model&gt;(WKContextGetCacheModel(toAPI(m_webContext.get())));
&gt; 
&gt; I guess we could call m_webContext-&gt;cacheModel() instead of using C API.

Fixed, thanks.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_database_manager_private.h:42
&gt;&gt; +        return adoptPtr(new Ewk_Database_Manager(context-&gt;databaseManagerProxy()));
&gt; 
&gt; Would be nice to add an ASSERT(context); before this line.

Done.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_storage_manager_private.h:42
&gt;&gt; +        return adoptPtr(new Ewk_Storage_Manager(context-&gt;keyValueStorageManagerProxy()));
&gt; 
&gt; Ditto.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761224</commentid>
    <comment_count>6</comment_count>
      <attachid>172842</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-11-07 17:46:21 -0800</bug_when>
    <thetext>Comment on attachment 172842
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761244</commentid>
    <comment_count>7</comment_count>
      <attachid>172842</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-07 18:06:05 -0800</bug_when>
    <thetext>Comment on attachment 172842
Patch

Rejecting attachment 172842 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
ile Source/WebKit2/UIProcess/API/efl/ewk_storage_manager.cpp
patching file Source/WebKit2/UIProcess/API/efl/ewk_storage_manager_private.h
patching file Source/WebKit2/UIProcess/API/efl/ewk_view.cpp
patching file Source/WebKit2/UIProcess/efl/DownloadManagerEfl.cpp
patching file Source/WebKit2/UIProcess/efl/RequestManagerClientEfl.cpp

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Gyuyoung K...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/14764327</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761269</commentid>
    <comment_count>8</comment_count>
      <attachid>172913</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-11-07 18:41:21 -0800</bug_when>
    <thetext>Created attachment 172913
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761306</commentid>
    <comment_count>9</comment_count>
      <attachid>172913</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-07 20:38:32 -0800</bug_when>
    <thetext>Comment on attachment 172913
Patch

Clearing flags on attachment: 172913

Committed r133844: &lt;http://trac.webkit.org/changeset/133844&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761308</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-07 20:38:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761490</commentid>
    <comment_count>11</comment_count>
      <attachid>172913</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-08 01:55:04 -0800</bug_when>
    <thetext>Comment on attachment 172913
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context_private.h:50
&gt; +    static PassRefPtr&lt;EwkContext&gt; create(WebContext* context);

PassRefPtr&lt;WebContext&gt; shall be used here and below, filing a new issue for that, since this patch is landed.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context_private.h:86
&gt; +    RefPtr&lt;WebContext&gt; m_webContext;

think it should be still m_context</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172812</attachid>
            <date>2012-11-07 08:26:56 -0800</date>
            <delta_ts>2012-11-07 09:47:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101477-20121108012502.patch</filename>
            <type>text/plain</type>
            <size>16575</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNjg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTRlMzhjNDc5YjliNWY1
OGQ4MWJkYTA2ODIyYmI5YTIzY2ZhZjY2Yi4uMmExNmFlYjNjNjBiNWJhMDlhNGEyYmFhYTQ2YWZh
MWY0NTFlZTQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTExLTA3ICBKaW53
b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJd
IE1ha2UgZXdrX2NvbnRleHQgdG8gdXNlIFdlYkNvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTQ3NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yIGV3a19jb250ZXh0IHRvIHVzZSBX
ZWJDb250ZXh0IGFzIGV3a19jb250ZXh0IGlzIGVuY2Fwc3VsYXRlZCBpbiBhIEMrKyBjbGFzc2Vz
LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuY3BwOgorICAgICAg
ICAoRXdrVmlld0ltcGw6OkV3a1ZpZXdJbXBsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfY29udGV4dC5jcHA6CisgICAgICAgIChFd2tDb250ZXh0OjpFd2tDb250ZXh0KToKKyAg
ICAgICAgKEV3a0NvbnRleHQ6On5Fd2tDb250ZXh0KToKKyAgICAgICAgKEV3a0NvbnRleHQ6OmNy
ZWF0ZSk6CisgICAgICAgIChFd2tDb250ZXh0OjpkZWZhdWx0Q29udGV4dCk6CisgICAgICAgIChF
d2tDb250ZXh0Ojpjb29raWVNYW5hZ2VyKToKKyAgICAgICAgKEV3a0NvbnRleHQ6OmVuc3VyZUZh
dmljb25EYXRhYmFzZSk6CisgICAgICAgIChFd2tDb250ZXh0OjpzZXRGYXZpY29uRGF0YWJhc2VE
aXJlY3RvcnlQYXRoKToKKyAgICAgICAgKEV3a0NvbnRleHQ6OmFkZFZpc2l0ZWRMaW5rKToKKyAg
ICAgICAgKEV3a0NvbnRleHQ6OnNldENhY2hlTW9kZWwpOgorICAgICAgICAoRXdrQ29udGV4dDo6
Y2FjaGVNb2RlbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJp
dmF0ZS5oOgorICAgICAgICAoRXdrQ29udGV4dCk6CisgICAgICAgIChFd2tDb250ZXh0Ojp3ZWJD
b250ZXh0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfc3RvcmFnZV9tYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKEV3a19TdG9yYWdlX01hbmFnZXI6OkV3a19TdG9yYWdlX01hbmFnZXIp
OgorICAgICAgICAoRXdrX1N0b3JhZ2VfTWFuYWdlcjo6Z2V0U3RvcmFnZU9yaWdpbnMpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zdG9yYWdlX21hbmFnZXJfcHJpdmF0ZS5oOgor
ICAgICAgICAoRXdrX1N0b3JhZ2VfTWFuYWdlcjo6Y3JlYXRlKToKKyAgICAgICAgKEV3a19TdG9y
YWdlX01hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcDoK
KyAgICAgICAgKGV3a192aWV3X2Jhc2VfYWRkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL0Rv
d25sb2FkTWFuYWdlckVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkTWFuYWdlckVm
bDo6RG93bmxvYWRNYW5hZ2VyRWZsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1JlcXVlc3RN
YW5hZ2VyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVxdWVzdE1hbmFnZXJDbGll
bnRFZmw6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKToKKwogMjAxMi0xMS0wNiAgTWlraGFpbCBQ
b3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4KIAogICAgICAgICBbRUZM
XVtXSzJdIFJlZmFjdG9yIEV3a19BdXRoX1JlcXVlc3QsIEV3a19VcmxfU2NoZW1lX1JlcXVlc3Qg
YW5kIEV3a19Eb3dubG9hZF9Kb2IgdG8gYmUgRXdrX09iamVjdHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmNwcAppbmRleCA0MjE2NmM5OGM4NDQw
YjNhOGM2M2FjNTc1ZGJjOGY2MDRjMTVkNzc4Li5jZDE0YzA1ZGZhNjE4ZjFhNTU4MGVjMzgzNTc3
MzMwYmRiZDZkNDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9Fd2tWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
RXdrVmlld0ltcGwuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgRXdrVmlld0ltcGw6OkV3a1ZpZXdJ
bXBsKEV2YXNfT2JqZWN0KiB2aWV3LCBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IGNvbnRleHQsIFBh
c3MKICAgICA6IG1fdmlldyh2aWV3KQogICAgICwgbV9jb250ZXh0KGNvbnRleHQpCiAgICAgLCBt
X3BhZ2VDbGllbnQoYmVoYXZpb3IgPT0gRGVmYXVsdEJlaGF2aW9yID8gUGFnZUNsaWVudERlZmF1
bHRJbXBsOjpjcmVhdGUodGhpcykgOiBQYWdlQ2xpZW50TGVnYWN5SW1wbDo6Y3JlYXRlKHRoaXMp
KQotICAgICwgbV9wYWdlUHJveHkodG9JbXBsKG1fY29udGV4dC0+d2tDb250ZXh0KCkpLT5jcmVh
dGVXZWJQYWdlKG1fcGFnZUNsaWVudC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKSkKKyAgICAsIG1f
cGFnZVByb3h5KG1fY29udGV4dC0+d2ViQ29udGV4dCgpLT5jcmVhdGVXZWJQYWdlKG1fcGFnZUNs
aWVudC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKSkKICAgICAsIG1fcGFnZUxvYWRDbGllbnQoUGFn
ZUxvYWRDbGllbnRFZmw6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1fcGFnZVBvbGljeUNsaWVudChQ
YWdlUG9saWN5Q2xpZW50RWZsOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX3BhZ2VVSUNsaWVudChQ
YWdlVUlDbGllbnRFZmw6OmNyZWF0ZSh0aGlzKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcAppbmRleCAzOTJlN2QzOWQxN2Q4NmFkY2QxMzI0
ZjFjMDM3MzkzNzA0NzNkYjU0Li41MmI4YzQ1NjliMjQ3OTEzZTNhZGQ4NjgyMmYzNTBhOTYwOTA4
ZTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHQuY3BwCkBAIC01Myw3ICs1Myw3IEBACiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CiAKLXR5cGVkZWYgSGFzaE1hcDxXS0NvbnRleHRSZWYsIEV3a0Nv
bnRleHQqPiBDb250ZXh0TWFwOwordHlwZWRlZiBIYXNoTWFwPFdlYkNvbnRleHQqLCBFd2tDb250
ZXh0Kj4gQ29udGV4dE1hcDsKIAogc3RhdGljIGlubGluZSBDb250ZXh0TWFwJiBjb250ZXh0TWFw
KCkKIHsKQEAgLTYxLDIxICs2MSwyMSBAQCBzdGF0aWMgaW5saW5lIENvbnRleHRNYXAmIGNvbnRl
eHRNYXAoKQogICAgIHJldHVybiBtYXA7CiB9CiAKLUV3a0NvbnRleHQ6OkV3a0NvbnRleHQoV0tD
b250ZXh0UmVmIGNvbnRleHQpCi0gICAgOiBtX2NvbnRleHQoY29udGV4dCkKLSAgICAsIG1fc3Rv
cmFnZU1hbmFnZXIoRXdrX1N0b3JhZ2VfTWFuYWdlcjo6Y3JlYXRlKFdLQ29udGV4dEdldEtleVZh
bHVlU3RvcmFnZU1hbmFnZXIobV9jb250ZXh0LmdldCgpKSkpCitFd2tDb250ZXh0OjpFd2tDb250
ZXh0KFdlYkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBtX3dlYkNvbnRleHQoY29udGV4dCkKKyAg
ICAsIG1fc3RvcmFnZU1hbmFnZXIoRXdrX1N0b3JhZ2VfTWFuYWdlcjo6Y3JlYXRlKGNvbnRleHQp
KQogI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKLSAgICAsIG1fYmF0dGVyeVByb3ZpZGVyKEJh
dHRlcnlQcm92aWRlcjo6Y3JlYXRlKGNvbnRleHQpKQorICAgICwgbV9iYXR0ZXJ5UHJvdmlkZXIo
QmF0dGVyeVByb3ZpZGVyOjpjcmVhdGUodG9BUEkoY29udGV4dCkpKQogI2VuZGlmCiAjaWYgRU5B
QkxFKE5FVFdPUktfSU5GTykKLSAgICAsIG1fbmV0d29ya0luZm9Qcm92aWRlcihOZXR3b3JrSW5m
b1Byb3ZpZGVyOjpjcmVhdGUoY29udGV4dCkpCisgICAgLCBtX25ldHdvcmtJbmZvUHJvdmlkZXIo
TmV0d29ya0luZm9Qcm92aWRlcjo6Y3JlYXRlKHRvQVBJKGNvbnRleHQpKSkKICNlbmRpZgogI2lm
IEVOQUJMRShWSUJSQVRJT04pCi0gICAgLCBtX3ZpYnJhdGlvblByb3ZpZGVyKFZpYnJhdGlvblBy
b3ZpZGVyOjpjcmVhdGUoY29udGV4dCkpCisgICAgLCBtX3ZpYnJhdGlvblByb3ZpZGVyKFZpYnJh
dGlvblByb3ZpZGVyOjpjcmVhdGUodG9BUEkoY29udGV4dCkpKQogI2VuZGlmCiAgICAgLCBtX2Rv
d25sb2FkTWFuYWdlcihEb3dubG9hZE1hbmFnZXJFZmw6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1f
cmVxdWVzdE1hbmFnZXJDbGllbnQoUmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6OmNyZWF0ZSh0aGlz
KSkKLSAgICAsIG1faGlzdG9yeUNsaWVudChDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6Y3JlYXRl
KGNvbnRleHQpKQorICAgICwgbV9oaXN0b3J5Q2xpZW50KENvbnRleHRIaXN0b3J5Q2xpZW50RWZs
OjpjcmVhdGUodG9BUEkoY29udGV4dCkpKQogewogICAgIENvbnRleHRNYXA6OkFkZFJlc3VsdCBy
ZXN1bHQgPSBjb250ZXh0TWFwKCkuYWRkKGNvbnRleHQsIHRoaXMpOwogICAgIEFTU0VSVF9VTlVT
RUQocmVzdWx0LCByZXN1bHQuaXNOZXdFbnRyeSk7CkBAIC04NSw4ICs4NSw3IEBAIEV3a0NvbnRl
eHQ6OkV3a0NvbnRleHQoV0tDb250ZXh0UmVmIGNvbnRleHQpCiAgICAgc3RhdGljIGNvbnN0IGNo
YXIgZW52aXJvbm1lbnRWYXJpYWJsZVtdID0gIlNBTVBMRV9NRU1PUlkiOwogCiAgICAgaWYgKCFp
bml0aWFsaXplTWVtb3J5U2FtcGxlciAmJiBnZXRlbnYoZW52aXJvbm1lbnRWYXJpYWJsZSkpIHsK
LSAgICAgICAgV0tSZXRhaW5QdHI8V0tEb3VibGVSZWY+IGludGVydmFsKEFkb3B0V0ssIFdLRG91
YmxlQ3JlYXRlKDAuMCkpOwotICAgICAgICBXS0NvbnRleHRTdGFydE1lbW9yeVNhbXBsZXIoY29u
dGV4dCwgaW50ZXJ2YWwuZ2V0KCkpOworICAgICAgICBjb250ZXh0LT5zdGFydE1lbW9yeVNhbXBs
ZXIoMC4wKTsKICAgICAgICAgaW5pdGlhbGl6ZU1lbW9yeVNhbXBsZXIgPSB0cnVlOwogICAgIH0K
ICNlbmRpZgpAQCAtMTAyLDExICsxMDEsMTEgQEAgRXdrQ29udGV4dDo6RXdrQ29udGV4dChXS0Nv
bnRleHRSZWYgY29udGV4dCkKIAogRXdrQ29udGV4dDo6fkV3a0NvbnRleHQoKQogewotICAgIEFT
U0VSVChjb250ZXh0TWFwKCkuZ2V0KG1fY29udGV4dC5nZXQoKSkgPT0gdGhpcyk7Ci0gICAgY29u
dGV4dE1hcCgpLnJlbW92ZShtX2NvbnRleHQuZ2V0KCkpOworICAgIEFTU0VSVChjb250ZXh0TWFw
KCkuZ2V0KG1fd2ViQ29udGV4dC5nZXQoKSkgPT0gdGhpcyk7CisgICAgY29udGV4dE1hcCgpLnJl
bW92ZShtX3dlYkNvbnRleHQuZ2V0KCkpOwogfQogCi1QYXNzUmVmUHRyPEV3a0NvbnRleHQ+IEV3
a0NvbnRleHQ6OmNyZWF0ZShXS0NvbnRleHRSZWYgY29udGV4dCkKK1Bhc3NSZWZQdHI8RXdrQ29u
dGV4dD4gRXdrQ29udGV4dDo6Y3JlYXRlKFdlYkNvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgaWYg
KGNvbnRleHRNYXAoKS5jb250YWlucyhjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIGNvbnRleHRN
YXAoKS5nZXQoY29udGV4dCk7IC8vIFdpbGwgYmUgcmVmLWVkIGF1dG9tYXRpY2FsbHkuCkBAIC0x
MTYsNyArMTE1LDcgQEAgUGFzc1JlZlB0cjxFd2tDb250ZXh0PiBFd2tDb250ZXh0OjpjcmVhdGUo
V0tDb250ZXh0UmVmIGNvbnRleHQpCiAKIFBhc3NSZWZQdHI8RXdrQ29udGV4dD4gRXdrQ29udGV4
dDo6Y3JlYXRlKCkKIHsKLSAgICByZXR1cm4gY3JlYXRlKGFkb3B0V0soV0tDb250ZXh0Q3JlYXRl
KCkpLmdldCgpKTsKKyAgICByZXR1cm4gY3JlYXRlKFdlYkNvbnRleHQ6OmNyZWF0ZShTdHJpbmco
KSkuZ2V0KCkpOwogfQogCiBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IEV3a0NvbnRleHQ6OmNyZWF0
ZShjb25zdCBTdHJpbmcmIGluamVjdGVkQnVuZGxlUGF0aCkKQEAgLTEyNCwxNSArMTIzLDEyIEBA
IFBhc3NSZWZQdHI8RXdrQ29udGV4dD4gRXdrQ29udGV4dDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYg
aW5qZWN0ZWRCdW5kbGVQYXRoKQogICAgIGlmICghZmlsZUV4aXN0cyhpbmplY3RlZEJ1bmRsZVBh
dGgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBp
bmplY3RlZEJ1bmRsZVBhdGhXSyA9IGFkb3B0V0sodG9Db3BpZWRBUEkoaW5qZWN0ZWRCdW5kbGVQ
YXRoKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0V0sgPSBhZG9wdFdL
KFdLQ29udGV4dENyZWF0ZVdpdGhJbmplY3RlZEJ1bmRsZVBhdGgoaW5qZWN0ZWRCdW5kbGVQYXRo
V0suZ2V0KCkpKTsKLQotICAgIHJldHVybiBjcmVhdGUoY29udGV4dFdLLmdldCgpKTsKKyAgICBy
ZXR1cm4gY3JlYXRlKFdlYkNvbnRleHQ6OmNyZWF0ZShpbmplY3RlZEJ1bmRsZVBhdGgpLmdldCgp
KTsKIH0KIAogUGFzc1JlZlB0cjxFd2tDb250ZXh0PiBFd2tDb250ZXh0OjpkZWZhdWx0Q29udGV4
dCgpCiB7Ci0gICAgc3RhdGljIFJlZlB0cjxFd2tDb250ZXh0PiBkZWZhdWx0SW5zdGFuY2UgPSBj
cmVhdGUoYWRvcHRXSyhXS0NvbnRleHRDcmVhdGUoKSkuZ2V0KCkpOworICAgIHN0YXRpYyBSZWZQ
dHI8RXdrQ29udGV4dD4gZGVmYXVsdEluc3RhbmNlID0gY3JlYXRlKCk7CiAKICAgICByZXR1cm4g
ZGVmYXVsdEluc3RhbmNlOwogfQpAQCAtMTQwLDcgKzEzNiw3IEBAIFBhc3NSZWZQdHI8RXdrQ29u
dGV4dD4gRXdrQ29udGV4dDo6ZGVmYXVsdENvbnRleHQoKQogRXdrX0Nvb2tpZV9NYW5hZ2VyKiBF
d2tDb250ZXh0Ojpjb29raWVNYW5hZ2VyKCkKIHsKICAgICBpZiAoIW1fY29va2llTWFuYWdlcikK
LSAgICAgICAgbV9jb29raWVNYW5hZ2VyID0gRXdrX0Nvb2tpZV9NYW5hZ2VyOjpjcmVhdGUoV0tD
b250ZXh0R2V0Q29va2llTWFuYWdlcihtX2NvbnRleHQuZ2V0KCkpKTsKKyAgICAgICAgbV9jb29r
aWVNYW5hZ2VyID0gRXdrX0Nvb2tpZV9NYW5hZ2VyOjpjcmVhdGUoV0tDb250ZXh0R2V0Q29va2ll
TWFuYWdlcih0b0FQSShtX3dlYkNvbnRleHQuZ2V0KCkpKSk7CiAKICAgICByZXR1cm4gbV9jb29r
aWVNYW5hZ2VyLmdldCgpOwogfQpAQCAtMTUwLDIzICsxNDYsMjEgQEAgdm9pZCBFd2tDb250ZXh0
OjplbnN1cmVGYXZpY29uRGF0YWJhc2UoKQogICAgIGlmIChtX2Zhdmljb25EYXRhYmFzZSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9mYXZpY29uRGF0YWJhc2UgPSBFd2tfRmF2aWNvbl9EYXRh
YmFzZTo6Y3JlYXRlKHRvSW1wbChtX2NvbnRleHQuZ2V0KCkpLT5pY29uRGF0YWJhc2UoKSk7Cisg
ICAgbV9mYXZpY29uRGF0YWJhc2UgPSBFd2tfRmF2aWNvbl9EYXRhYmFzZTo6Y3JlYXRlKG1fd2Vi
Q29udGV4dC5nZXQoKS0+aWNvbkRhdGFiYXNlKCkpOwogfQogCiBib29sIEV3a0NvbnRleHQ6OnNl
dEZhdmljb25EYXRhYmFzZURpcmVjdG9yeVBhdGgoY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVj
dG9yeSkKIHsKICAgICBlbnN1cmVGYXZpY29uRGF0YWJhc2UoKTsKIAotICAgIFdlYkNvbnRleHQq
IHdlYkNvbnRleHQgPSB0b0ltcGwobV9jb250ZXh0LmdldCgpKTsKLQogICAgIC8vIFRoZSBkYXRh
YmFzZSBwYXRoIGlzIGFscmVhZHkgb3BlbiBzbyBpdHMgcGF0aCB3YXMKICAgICAvLyBhbHJlYWR5
IHNldC4KLSAgICBpZiAod2ViQ29udGV4dC0+aWNvbkRhdGFiYXNlKCktPmlzT3BlbigpKQorICAg
IGlmIChtX3dlYkNvbnRleHQuZ2V0KCktPmljb25EYXRhYmFzZSgpLT5pc09wZW4oKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gSWYgZGF0YWJhc2VEaXJlY3RvcnkgaXMgZW1wdHks
IHdlIHVzZSB0aGUgZGVmYXVsdCBkYXRhYmFzZSBwYXRoIGZvciB0aGUgcGxhdGZvcm0uCi0gICAg
U3RyaW5nIGRhdGFiYXNlUGF0aCA9IGRhdGFiYXNlRGlyZWN0b3J5LmlzRW1wdHkoKSA/IHdlYkNv
bnRleHQtPmljb25EYXRhYmFzZVBhdGgoKSA6IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChkYXRh
YmFzZURpcmVjdG9yeSwgV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpkZWZhdWx0RGF0YWJhc2VGaWxl
bmFtZSgpKTsKLSAgICB3ZWJDb250ZXh0LT5zZXRJY29uRGF0YWJhc2VQYXRoKGRhdGFiYXNlUGF0
aCk7CisgICAgU3RyaW5nIGRhdGFiYXNlUGF0aCA9IGRhdGFiYXNlRGlyZWN0b3J5LmlzRW1wdHko
KSA/IG1fd2ViQ29udGV4dC5nZXQoKS0+aWNvbkRhdGFiYXNlUGF0aCgpIDogcGF0aEJ5QXBwZW5k
aW5nQ29tcG9uZW50KGRhdGFiYXNlRGlyZWN0b3J5LCBXZWJDb3JlOjpJY29uRGF0YWJhc2U6OmRl
ZmF1bHREYXRhYmFzZUZpbGVuYW1lKCkpOworICAgIG1fd2ViQ29udGV4dC5nZXQoKS0+c2V0SWNv
bkRhdGFiYXNlUGF0aChkYXRhYmFzZVBhdGgpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0x
OTgsMTcgKzE5MiwxNyBAQCBQYXNzUmVmUHRyPFZpYnJhdGlvblByb3ZpZGVyPiBFd2tDb250ZXh0
Ojp2aWJyYXRpb25Qcm92aWRlcigpCiAKIHZvaWQgRXdrQ29udGV4dDo6YWRkVmlzaXRlZExpbmso
Y29uc3QgU3RyaW5nJiB2aXNpdGVkVVJMKQogewotICAgIHRvSW1wbChtX2NvbnRleHQuZ2V0KCkp
LT5hZGRWaXNpdGVkTGluayh2aXNpdGVkVVJMKTsKKyAgICBtX3dlYkNvbnRleHQuZ2V0KCktPmFk
ZFZpc2l0ZWRMaW5rKHZpc2l0ZWRVUkwpOwogfQogCiB2b2lkIEV3a0NvbnRleHQ6OnNldENhY2hl
TW9kZWwoRXdrX0NhY2hlX01vZGVsIGNhY2hlTW9kZWwpCiB7Ci0gICAgV0tDb250ZXh0U2V0Q2Fj
aGVNb2RlbChtX2NvbnRleHQuZ2V0KCksIHN0YXRpY19jYXN0PEV3a19DYWNoZV9Nb2RlbD4oY2Fj
aGVNb2RlbCkpOworICAgIFdLQ29udGV4dFNldENhY2hlTW9kZWwodG9BUEkobV93ZWJDb250ZXh0
LmdldCgpKSwgc3RhdGljX2Nhc3Q8RXdrX0NhY2hlX01vZGVsPihjYWNoZU1vZGVsKSk7CiB9CiAK
IEV3a19DYWNoZV9Nb2RlbCBFd2tDb250ZXh0OjpjYWNoZU1vZGVsKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8RXdrX0NhY2hlX01vZGVsPihXS0NvbnRleHRHZXRDYWNoZU1vZGVs
KG1fY29udGV4dC5nZXQoKSkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFd2tfQ2FjaGVfTW9k
ZWw+KFdLQ29udGV4dEdldENhY2hlTW9kZWwodG9BUEkobV93ZWJDb250ZXh0LmdldCgpKSkpOwog
fQogCiBFd2tfQ29va2llX01hbmFnZXIqIGV3a19jb250ZXh0X2Nvb2tpZV9tYW5hZ2VyX2dldChj
b25zdCBFd2tfQ29udGV4dCogZXdrQ29udGV4dCkKQEAgLTIzOSwxMSArMjMzLDYgQEAgRXdrX1N0
b3JhZ2VfTWFuYWdlciogZXdrX2NvbnRleHRfc3RvcmFnZV9tYW5hZ2VyX2dldChjb25zdCBFd2tf
Q29udGV4dCogZXdrQ29udGUKICAgICByZXR1cm4gaW1wbC0+c3RvcmFnZU1hbmFnZXIoKTsKIH0K
IAotV0tDb250ZXh0UmVmIEV3a0NvbnRleHQ6OndrQ29udGV4dCgpCi17Ci0gICAgcmV0dXJuIG1f
Y29udGV4dC5nZXQoKTsKLX0KLQogRG93bmxvYWRNYW5hZ2VyRWZsKiBFd2tDb250ZXh0Ojpkb3du
bG9hZE1hbmFnZXIoKSBjb25zdAogewogICAgIHJldHVybiBtX2Rvd25sb2FkTWFuYWdlci5nZXQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250
ZXh0X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250
ZXh0X3ByaXZhdGUuaAppbmRleCAyNDA0ZDkzZTcwMDRmN2NhZjYxYjQ2NTAyYzA3NDI2ZmVhNWE1
OGYxLi41NzRmMGYyMDNhM2I4MThjM2E1MjdiMWIwMjllNTM0YWQxZTVlMjhiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0
ZS5oCkBAIC0yMyw5ICsyMywxMiBAQAogI2luY2x1ZGUgIkRvd25sb2FkTWFuYWdlckVmbC5oIgog
I2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldLUmV0YWluUHRyLmgiCisjaW5jbHVk
ZSAiV2ViQ29udGV4dC5oIgogI2luY2x1ZGUgImV3a19jb250ZXh0LmgiCiAjaW5jbHVkZSAiZXdr
X29iamVjdF9wcml2YXRlLmgiCiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKIGNsYXNzIEV3
a19Db29raWVfTWFuYWdlcjsKIGNsYXNzIEV3a19GYXZpY29uX0RhdGFiYXNlOwogCkBAIC00Nyw3
ICs1MCw3IEBAIGNsYXNzIEV3a0NvbnRleHQgOiBwdWJsaWMgRXdrX09iamVjdCB7CiBwdWJsaWM6
CiAgICAgRVdLX09CSkVDVF9ERUNMQVJFKEV3a0NvbnRleHQpCiAKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxFd2tDb250ZXh0PiBjcmVhdGUoV0tDb250ZXh0UmVmIGNvbnRleHQpOworICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IGNyZWF0ZShXZWJDb250ZXh0KiBjb250ZXh0KTsKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tDb250ZXh0PiBjcmVhdGUoKTsKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxFd2tDb250ZXh0PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBh
dGgpOwogCkBAIC03NCwxOCArNzcsMTggQEAgcHVibGljOgogCiAgICAgRXdrX0NhY2hlX01vZGVs
IGNhY2hlTW9kZWwoKSBjb25zdDsKIAotICAgIFdLQ29udGV4dFJlZiB3a0NvbnRleHQoKTsKKyAg
ICBXZWJDb250ZXh0KiB3ZWJDb250ZXh0KCkgeyByZXR1cm4gbV93ZWJDb250ZXh0LmdldCgpOyB9
CiAKICAgICBXZWJLaXQ6OkRvd25sb2FkTWFuYWdlckVmbCogZG93bmxvYWRNYW5hZ2VyKCkgY29u
c3Q7CiAKICAgICBXZWJLaXQ6OkNvbnRleHRIaXN0b3J5Q2xpZW50RWZsKiBoaXN0b3J5Q2xpZW50
KCk7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgRXdrQ29udGV4dChXS0NvbnRleHRSZWYpOwor
ICAgIGV4cGxpY2l0IEV3a0NvbnRleHQoV2ViQ29udGV4dCopOwogCiAgICAgdm9pZCBlbnN1cmVG
YXZpY29uRGF0YWJhc2UoKTsKIAotICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gbV9jb250
ZXh0OworICAgIFJlZlB0cjxXZWJDb250ZXh0PiBtX3dlYkNvbnRleHQ7CiAKICAgICBPd25QdHI8
RXdrX0Nvb2tpZV9NYW5hZ2VyPiBtX2Nvb2tpZU1hbmFnZXI7CiAgICAgT3duUHRyPEV3a19GYXZp
Y29uX0RhdGFiYXNlPiBtX2Zhdmljb25EYXRhYmFzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zdG9yYWdlX21hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3N0b3JhZ2VfbWFuYWdlci5jcHAKaW5kZXggMTYz
MmIyZTZiMzc3ZGEzNGI5YjllYmJlYjQ0Y2UxZDM5YjIzOTIzOS4uZDNlZmMzM2U5NTcyMTRhNTM4
NzQ4NmQ4YTNiYWE5OTY2OTQzMDA2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3N0b3JhZ2VfbWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3N0b3JhZ2VfbWFuYWdlci5jcHAKQEAgLTI4LDcgKzI4LDcg
QEAKIAogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldLQXJyYXkuaCIKLSNpbmNs
dWRlICJXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJLZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJld2tfZXJyb3JfcHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgImV3a19zZWN1cml0eV9vcmlnaW4uaCIKICNpbmNsdWRlICJld2tfc2VjdXJpdHlfb3Jp
Z2luX3ByaXZhdGUuaCIKQEAgLTM3LDEzICszNywxMyBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OwogCi1Fd2tfU3RvcmFnZV9NYW5hZ2VyOjpFd2tfU3RvcmFnZV9NYW5hZ2VyKFdLS2V5VmFs
dWVTdG9yYWdlTWFuYWdlclJlZiB3a1N0b3JhZ2VNYW5hZ2VyUmVmKQotICAgIDogbV93a1N0b3Jh
Z2VNYW5hZ2VyKHdrU3RvcmFnZU1hbmFnZXJSZWYpCitFd2tfU3RvcmFnZV9NYW5hZ2VyOjpFd2tf
U3RvcmFnZV9NYW5hZ2VyKFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eSogc3RvcmFnZU1h
bmFnZXJQcm94eSkKKyAgICA6IG1fc3RvcmFnZU1hbmFnZXIoc3RvcmFnZU1hbmFnZXJQcm94eSkK
IHsgfQogCiB2b2lkIEV3a19TdG9yYWdlX01hbmFnZXI6OmdldFN0b3JhZ2VPcmlnaW5zKHZvaWQq
IGNvbnRleHQsIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlckdldEtleVZhbHVlU3RvcmFnZU9yaWdp
bnNGdW5jdGlvbiBjYWxsYmFjaykgY29uc3QKIHsKLSAgICBXS0tleVZhbHVlU3RvcmFnZU1hbmFn
ZXJHZXRLZXlWYWx1ZVN0b3JhZ2VPcmlnaW5zKG1fd2tTdG9yYWdlTWFuYWdlci5nZXQoKSwgY29u
dGV4dCwgY2FsbGJhY2spOworICAgIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlckdldEtleVZhbHVl
U3RvcmFnZU9yaWdpbnModG9BUEkobV9zdG9yYWdlTWFuYWdlci5nZXQoKSksIGNvbnRleHQsIGNh
bGxiYWNrKTsKIH0KIAogRWluYV9MaXN0KiBFd2tfU3RvcmFnZV9NYW5hZ2VyOjpjcmVhdGVPcmln
aW5MaXN0KFdLQXJyYXlSZWYgb3JpZ2lucykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zdG9yYWdlX21hbmFnZXJfcHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3N0b3JhZ2VfbWFuYWdlcl9wcml2YXRl
LmgKaW5kZXggNWVlZWE0OTEzNzkxNWQ0ZjIwMDc1Mjc3Yzg3NGMxNDBiNjk2OWI4ZC4uMWU1Zjk3
ZTNmNjBiMWZlZDRhNWUwMWE4ZjY3MjgyMGYyOWI4YzRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3N0b3JhZ2VfbWFuYWdlcl9wcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3N0b3JhZ2VfbWFuYWdlcl9w
cml2YXRlLmgKQEAgLTI4LDI0ICsyOCwyOCBAQAogCiAjaW5jbHVkZSAiV0tLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKKyNpbmNsdWRlICJXZWJDb250
ZXh0LmgiCisjaW5jbHVkZSAiV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5LmgiCiAjaW5j
bHVkZSAiZXdrX3NlY3VyaXR5X29yaWdpbl9wcml2YXRlLmgiCiAjaW5jbHVkZSA8V2ViS2l0Mi9X
S0Jhc2UuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCit1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OworCiBjbGFzcyBFd2tfU3RvcmFnZV9NYW5hZ2VyIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc093blB0cjxFd2tfU3RvcmFnZV9NYW5hZ2VyPiBjcmVhdGUoV0tLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyUmVmIHdrU3RvcmFnZU1hbmFnZXJSZWYpCisgICAgc3RhdGljIFBhc3NPd25QdHI8
RXdrX1N0b3JhZ2VfTWFuYWdlcj4gY3JlYXRlKFdlYkNvbnRleHQqIGNvbnRleHQpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEV3a19TdG9yYWdlX01hbmFnZXIod2tTdG9yYWdl
TWFuYWdlclJlZikpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEV3a19TdG9yYWdlX01h
bmFnZXIoY29udGV4dC0+a2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5KCkpKTsKICAgICB9CiAK
ICAgICBFaW5hX0xpc3QqIGNyZWF0ZU9yaWdpbkxpc3QoV0tBcnJheVJlZiB3a0xpc3QpIGNvbnN0
OwogICAgIHZvaWQgZ2V0U3RvcmFnZU9yaWdpbnModm9pZCogY29udGV4dCwgV0tLZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyR2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2luc0Z1bmN0aW9uIGNhbGxiYWNrKSBj
b25zdDsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBFd2tfU3RvcmFnZV9NYW5hZ2VyKFdLS2V5
VmFsdWVTdG9yYWdlTWFuYWdlclJlZiB3a1N0b3JhZ2VNYW5hZ2VyUmVmKTsKKyAgICBleHBsaWNp
dCBFd2tfU3RvcmFnZV9NYW5hZ2VyKFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eSogc3Rv
cmFnZU1hbmFnZXJQcm94eSk7CiAKLSAgICBXS1JldGFpblB0cjxXS0tleVZhbHVlU3RvcmFnZU1h
bmFnZXJSZWY+IG1fd2tTdG9yYWdlTWFuYWdlcjsKKyAgICBSZWZQdHI8V2ViS2V5VmFsdWVTdG9y
YWdlTWFuYWdlclByb3h5PiBtX3N0b3JhZ2VNYW5hZ2VyOwogICAgIG11dGFibGUgSGFzaE1hcDxX
S1NlY3VyaXR5T3JpZ2luUmVmLCBSZWZQdHI8RXdrX1NlY3VyaXR5X09yaWdpbj4gPiBtX3dyYXBw
ZXJDYWNoZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192
aWV3LmNwcAppbmRleCA2YzMzZTlkY2I4ZTU2YTkyMjc5MWEyZTM4Y2IxY2Q1ZjgxMjA3YTkwLi5l
ZTk4MThlZGJmZjkwZWU3M2NhMWYxMzVjNTg2YjE4ZWE2YTBkNzNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCkBAIC01MjEsNyArNTIxLDcgQEAg
c3RhdGljIGlubGluZSBFdmFzX09iamVjdCogY3JlYXRlRXdrVmlldyhFdmFzKiBjYW52YXMsIEV2
YXNfU21hcnQqIHNtYXJ0LCBQYXNzUmUKICAqLwogRXZhc19PYmplY3QqIGV3a192aWV3X2Jhc2Vf
YWRkKEV2YXMqIGNhbnZhcywgV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVm
IHBhZ2VHcm91cFJlZikKIHsKLSAgICByZXR1cm4gY3JlYXRlRXdrVmlldyhjYW52YXMsIGNyZWF0
ZUV3a1ZpZXdTbWFydENsYXNzKCksIEV3a0NvbnRleHQ6OmNyZWF0ZShjb250ZXh0UmVmKSwgcGFn
ZUdyb3VwUmVmLCBFd2tWaWV3SW1wbDo6TGVnYWN5QmVoYXZpb3IpOworICAgIHJldHVybiBjcmVh
dGVFd2tWaWV3KGNhbnZhcywgY3JlYXRlRXdrVmlld1NtYXJ0Q2xhc3MoKSwgRXdrQ29udGV4dDo6
Y3JlYXRlKHRvSW1wbChjb250ZXh0UmVmKSksIHBhZ2VHcm91cFJlZiwgRXdrVmlld0ltcGw6Okxl
Z2FjeUJlaGF2aW9yKTsKIH0KIAogRXZhc19PYmplY3QqIGV3a192aWV3X3NtYXJ0X2FkZChFdmFz
KiBjYW52YXMsIEV2YXNfU21hcnQqIHNtYXJ0LCBFd2tfQ29udGV4dCogY29udGV4dCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmNwcApp
bmRleCA4NjllNDRmM2FlM2U2YTE5ZDYyOWM4ZDA3MzMyMDUyZTVmMGE3ZjhhLi4zZmRlYjljNjRl
OWU0MGQ0OWI1OWVlNjU3YWUyMmYxMWI5OWRhMjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVmbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9Eb3dubG9hZE1hbmFnZXJFZmwuY3BwCkBAIC0xMzYsNyArMTM2LDcg
QEAgRG93bmxvYWRNYW5hZ2VyRWZsOjpEb3dubG9hZE1hbmFnZXJFZmwoRXdrQ29udGV4dCogY29u
dGV4dCkKICAgICB3a0Rvd25sb2FkQ2xpZW50LmRpZEZhaWwgPSBkaWRGYWlsOwogICAgIHdrRG93
bmxvYWRDbGllbnQuZGlkRmluaXNoID0gZGlkRmluaXNoOwogCi0gICAgV0tDb250ZXh0U2V0RG93
bmxvYWRDbGllbnQoY29udGV4dC0+d2tDb250ZXh0KCksICZ3a0Rvd25sb2FkQ2xpZW50KTsKKyAg
ICBXS0NvbnRleHRTZXREb3dubG9hZENsaWVudCh0b0FQSShjb250ZXh0LT53ZWJDb250ZXh0KCkp
LCAmd2tEb3dubG9hZENsaWVudCk7CiB9CiAKIHZvaWQgRG93bmxvYWRNYW5hZ2VyRWZsOjpyZWdp
c3RlckRvd25sb2FkKERvd25sb2FkUHJveHkqIGRvd25sb2FkLCBFd2tWaWV3SW1wbCogdmlld0lt
cGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5h
Z2VyQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1h
bmFnZXJDbGllbnRFZmwuY3BwCmluZGV4IDNmYjMyYzY0NzUyOGVmZjAxMjBlMWYwMjY5ZjMwMDcx
NGYzNzVlMGIuLjE3ODAwMzM0ODEyMTE3NjY4YWIxMDUzN2Q1ZDE5MjY1NTY5YmUyZjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRF
ZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJD
bGllbnRFZmwuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgUmVxdWVzdE1hbmFnZXJDbGllbnRF
Zmw6OmRpZFJlY2VpdmVVUklSZXF1ZXN0KFdLU291cFJlcXVlc3RNYW5hZ2VyUmVmIHNvdXBSCiB9
CiAKIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbChFd2tD
b250ZXh0KiBjb250ZXh0KQotICAgIDogbV9zb3VwUmVxdWVzdE1hbmFnZXIoV0tDb250ZXh0R2V0
U291cFJlcXVlc3RNYW5hZ2VyKGNvbnRleHQtPndrQ29udGV4dCgpKSkKKyAgICA6IG1fc291cFJl
cXVlc3RNYW5hZ2VyKFdLQ29udGV4dEdldFNvdXBSZXF1ZXN0TWFuYWdlcih0b0FQSShjb250ZXh0
LT53ZWJDb250ZXh0KCkpKSkKIHsKICAgICBBU1NFUlQoY29udGV4dCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172824</attachid>
            <date>2012-11-07 09:47:22 -0800</date>
            <delta_ts>2012-11-07 11:18:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101477-20121108024528.patch</filename>
            <type>text/plain</type>
            <size>19955</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNGU1MjY3NmU3YWJiYzc1
MjZmNWIwOTNkNjlmMDQzY2ZkMmQzMTk0ZS4uZWVkYjViMTA2MGRmZTZmOTc5MDc5NDcxNTYwZWE2
YWFjY2U5YzgxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTExLTA3ICBKaW53
b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJd
IE1ha2UgZXdrX2NvbnRleHQgdG8gdXNlIFdlYkNvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTQ3NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yIGV3a19jb250ZXh0IHRvIHVzZSBX
ZWJDb250ZXh0IGFzIGV3a19jb250ZXh0IGlzIGVuY2Fwc3VsYXRlZCBpbiBhIEMrKyBjbGFzc2Vz
LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuY3BwOgorICAgICAg
ICAoRXdrVmlld0ltcGw6OkV3a1ZpZXdJbXBsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfY29udGV4dC5jcHA6CisgICAgICAgIChFd2tDb250ZXh0OjpFd2tDb250ZXh0KToKKyAg
ICAgICAgKEV3a0NvbnRleHQ6On5Fd2tDb250ZXh0KToKKyAgICAgICAgKEV3a0NvbnRleHQ6OmNy
ZWF0ZSk6CisgICAgICAgIChFd2tDb250ZXh0OjpkZWZhdWx0Q29udGV4dCk6CisgICAgICAgIChF
d2tDb250ZXh0Ojpjb29raWVNYW5hZ2VyKToKKyAgICAgICAgKEV3a0NvbnRleHQ6OmVuc3VyZUZh
dmljb25EYXRhYmFzZSk6CisgICAgICAgIChFd2tDb250ZXh0OjpzZXRGYXZpY29uRGF0YWJhc2VE
aXJlY3RvcnlQYXRoKToKKyAgICAgICAgKEV3a0NvbnRleHQ6OmFkZFZpc2l0ZWRMaW5rKToKKyAg
ICAgICAgKEV3a0NvbnRleHQ6OnNldENhY2hlTW9kZWwpOgorICAgICAgICAoRXdrQ29udGV4dDo6
Y2FjaGVNb2RlbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJp
dmF0ZS5oOgorICAgICAgICAoRXdrQ29udGV4dCk6CisgICAgICAgIChFd2tDb250ZXh0Ojp3ZWJD
b250ZXh0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfZGF0YWJhc2VfbWFuYWdl
ci5jcHA6CisgICAgICAgIChFd2tfRGF0YWJhc2VfTWFuYWdlcjo6RXdrX0RhdGFiYXNlX01hbmFn
ZXIpOgorICAgICAgICAoRXdrX0RhdGFiYXNlX01hbmFnZXI6OmdldERhdGFiYXNlT3JpZ2lucyk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2RhdGFiYXNlX21hbmFnZXJfcHJpdmF0
ZS5oOgorICAgICAgICAoRXdrX0RhdGFiYXNlX01hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgIChF
d2tfRGF0YWJhc2VfTWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3N0
b3JhZ2VfbWFuYWdlci5jcHA6CisgICAgICAgIChFd2tfU3RvcmFnZV9NYW5hZ2VyOjpFd2tfU3Rv
cmFnZV9NYW5hZ2VyKToKKyAgICAgICAgKEV3a19TdG9yYWdlX01hbmFnZXI6OmdldFN0b3JhZ2VP
cmlnaW5zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfc3RvcmFnZV9tYW5hZ2Vy
X3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a19TdG9yYWdlX01hbmFnZXI6OmNyZWF0ZSk6CisgICAg
ICAgIChFd2tfU3RvcmFnZV9NYW5hZ2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdmlldy5jcHA6CisgICAgICAgIChld2tfdmlld19iYXNlX2FkZCk6CisgICAgICAgICogVUlQ
cm9jZXNzL2VmbC9Eb3dubG9hZE1hbmFnZXJFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3du
bG9hZE1hbmFnZXJFZmw6OkRvd25sb2FkTWFuYWdlckVmbCk6CisgICAgICAgICogVUlQcm9jZXNz
L2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlcXVl
c3RNYW5hZ2VyQ2xpZW50RWZsOjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbCk6CisKIDIwMTItMTEt
MDcgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CiAK
ICAgICAgICAgW0VGTF1bV0syXSBBZGQgZXdrX3NldHRpbmdzX3ByZWZlcnJlZF9taW5pbXVtX2Nv
bnRlbnRzX3dpZHRoX2dldC9zZXQgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHAKaW5kZXggNDIxNjZjOThjODQ0MGIzYThjNjNhYzU3NWRi
YzhmNjA0YzE1ZDc3OC4uY2QxNGMwNWRmYTYxOGYxYTU1ODBlYzM4MzU3NzMzMGJkYmQ2ZDQyMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmNw
cApAQCAtMTAxLDcgKzEwMSw3IEBAIEV3a1ZpZXdJbXBsOjpFd2tWaWV3SW1wbChFdmFzX09iamVj
dCogdmlldywgUGFzc1JlZlB0cjxFd2tDb250ZXh0PiBjb250ZXh0LCBQYXNzCiAgICAgOiBtX3Zp
ZXcodmlldykKICAgICAsIG1fY29udGV4dChjb250ZXh0KQogICAgICwgbV9wYWdlQ2xpZW50KGJl
aGF2aW9yID09IERlZmF1bHRCZWhhdmlvciA/IFBhZ2VDbGllbnREZWZhdWx0SW1wbDo6Y3JlYXRl
KHRoaXMpIDogUGFnZUNsaWVudExlZ2FjeUltcGw6OmNyZWF0ZSh0aGlzKSkKLSAgICAsIG1fcGFn
ZVByb3h5KHRvSW1wbChtX2NvbnRleHQtPndrQ29udGV4dCgpKS0+Y3JlYXRlV2ViUGFnZShtX3Bh
Z2VDbGllbnQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSkpCisgICAgLCBtX3BhZ2VQcm94eShtX2Nv
bnRleHQtPndlYkNvbnRleHQoKS0+Y3JlYXRlV2ViUGFnZShtX3BhZ2VDbGllbnQuZ2V0KCksIHBh
Z2VHcm91cC5nZXQoKSkpCiAgICAgLCBtX3BhZ2VMb2FkQ2xpZW50KFBhZ2VMb2FkQ2xpZW50RWZs
OjpjcmVhdGUodGhpcykpCiAgICAgLCBtX3BhZ2VQb2xpY3lDbGllbnQoUGFnZVBvbGljeUNsaWVu
dEVmbDo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9wYWdlVUlDbGllbnQoUGFnZVVJQ2xpZW50RWZs
OjpjcmVhdGUodGhpcykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfY29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfY29udGV4dC5jcHAKaW5kZXggMmRiZjM3ODU3YzY5N2MwNWE1YjhlOWViZWE2NjBmM2MyMjcy
MjI1MC4uZmNkNjA2YWYwN2I0NGRiYzhjMzIzNzAyMTI0MDBiODM2OGM0NTg1OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcApAQCAtNTQs
NyArNTQsNyBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OwogCi10eXBlZGVmIEhhc2hNYXA8V0tDb250ZXh0UmVmLCBFd2tDb250ZXh0Kj4gQ29udGV4
dE1hcDsKK3R5cGVkZWYgSGFzaE1hcDxXZWJDb250ZXh0KiwgRXdrQ29udGV4dCo+IENvbnRleHRN
YXA7CiAKIHN0YXRpYyBpbmxpbmUgQ29udGV4dE1hcCYgY29udGV4dE1hcCgpCiB7CkBAIC02Miwy
MiArNjIsMjIgQEAgc3RhdGljIGlubGluZSBDb250ZXh0TWFwJiBjb250ZXh0TWFwKCkKICAgICBy
ZXR1cm4gbWFwOwogfQogCi1Fd2tDb250ZXh0OjpFd2tDb250ZXh0KFdLQ29udGV4dFJlZiBjb250
ZXh0KQotICAgIDogbV9jb250ZXh0KGNvbnRleHQpCi0gICAgLCBtX2RhdGFiYXNlTWFuYWdlcihF
d2tfRGF0YWJhc2VfTWFuYWdlcjo6Y3JlYXRlKFdLQ29udGV4dEdldERhdGFiYXNlTWFuYWdlciht
X2NvbnRleHQuZ2V0KCkpKSkKLSAgICAsIG1fc3RvcmFnZU1hbmFnZXIoRXdrX1N0b3JhZ2VfTWFu
YWdlcjo6Y3JlYXRlKFdLQ29udGV4dEdldEtleVZhbHVlU3RvcmFnZU1hbmFnZXIobV9jb250ZXh0
LmdldCgpKSkpCitFd2tDb250ZXh0OjpFd2tDb250ZXh0KFdlYkNvbnRleHQqIGNvbnRleHQpCisg
ICAgOiBtX3dlYkNvbnRleHQoY29udGV4dCkKKyAgICAsIG1fZGF0YWJhc2VNYW5hZ2VyKEV3a19E
YXRhYmFzZV9NYW5hZ2VyOjpjcmVhdGUoY29udGV4dCkpCisgICAgLCBtX3N0b3JhZ2VNYW5hZ2Vy
KEV3a19TdG9yYWdlX01hbmFnZXI6OmNyZWF0ZShjb250ZXh0KSkKICNpZiBFTkFCTEUoQkFUVEVS
WV9TVEFUVVMpCi0gICAgLCBtX2JhdHRlcnlQcm92aWRlcihCYXR0ZXJ5UHJvdmlkZXI6OmNyZWF0
ZShjb250ZXh0KSkKKyAgICAsIG1fYmF0dGVyeVByb3ZpZGVyKEJhdHRlcnlQcm92aWRlcjo6Y3Jl
YXRlKHRvQVBJKGNvbnRleHQpKSkKICNlbmRpZgogI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCi0g
ICAgLCBtX25ldHdvcmtJbmZvUHJvdmlkZXIoTmV0d29ya0luZm9Qcm92aWRlcjo6Y3JlYXRlKGNv
bnRleHQpKQorICAgICwgbV9uZXR3b3JrSW5mb1Byb3ZpZGVyKE5ldHdvcmtJbmZvUHJvdmlkZXI6
OmNyZWF0ZSh0b0FQSShjb250ZXh0KSkpCiAjZW5kaWYKICNpZiBFTkFCTEUoVklCUkFUSU9OKQot
ICAgICwgbV92aWJyYXRpb25Qcm92aWRlcihWaWJyYXRpb25Qcm92aWRlcjo6Y3JlYXRlKGNvbnRl
eHQpKQorICAgICwgbV92aWJyYXRpb25Qcm92aWRlcihWaWJyYXRpb25Qcm92aWRlcjo6Y3JlYXRl
KHRvQVBJKGNvbnRleHQpKSkKICNlbmRpZgogICAgICwgbV9kb3dubG9hZE1hbmFnZXIoRG93bmxv
YWRNYW5hZ2VyRWZsOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX3JlcXVlc3RNYW5hZ2VyQ2xpZW50
KFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpjcmVhdGUodGhpcykpCi0gICAgLCBtX2hpc3RvcnlD
bGllbnQoQ29udGV4dEhpc3RvcnlDbGllbnRFZmw6OmNyZWF0ZShjb250ZXh0KSkKKyAgICAsIG1f
aGlzdG9yeUNsaWVudChDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6Y3JlYXRlKHRvQVBJKGNvbnRl
eHQpKSkKIHsKICAgICBDb250ZXh0TWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0gY29udGV4dE1hcCgp
LmFkZChjb250ZXh0LCB0aGlzKTsKICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0Lmlz
TmV3RW50cnkpOwpAQCAtODcsOCArODcsNyBAQCBFd2tDb250ZXh0OjpFd2tDb250ZXh0KFdLQ29u
dGV4dFJlZiBjb250ZXh0KQogICAgIHN0YXRpYyBjb25zdCBjaGFyIGVudmlyb25tZW50VmFyaWFi
bGVbXSA9ICJTQU1QTEVfTUVNT1JZIjsKIAogICAgIGlmICghaW5pdGlhbGl6ZU1lbW9yeVNhbXBs
ZXIgJiYgZ2V0ZW52KGVudmlyb25tZW50VmFyaWFibGUpKSB7Ci0gICAgICAgIFdLUmV0YWluUHRy
PFdLRG91YmxlUmVmPiBpbnRlcnZhbChBZG9wdFdLLCBXS0RvdWJsZUNyZWF0ZSgwLjApKTsKLSAg
ICAgICAgV0tDb250ZXh0U3RhcnRNZW1vcnlTYW1wbGVyKGNvbnRleHQsIGludGVydmFsLmdldCgp
KTsKKyAgICAgICAgY29udGV4dC0+c3RhcnRNZW1vcnlTYW1wbGVyKDAuMCk7CiAgICAgICAgIGlu
aXRpYWxpemVNZW1vcnlTYW1wbGVyID0gdHJ1ZTsKICAgICB9CiAjZW5kaWYKQEAgLTEwNCwxMSAr
MTAzLDExIEBAIEV3a0NvbnRleHQ6OkV3a0NvbnRleHQoV0tDb250ZXh0UmVmIGNvbnRleHQpCiAK
IEV3a0NvbnRleHQ6On5Fd2tDb250ZXh0KCkKIHsKLSAgICBBU1NFUlQoY29udGV4dE1hcCgpLmdl
dChtX2NvbnRleHQuZ2V0KCkpID09IHRoaXMpOwotICAgIGNvbnRleHRNYXAoKS5yZW1vdmUobV9j
b250ZXh0LmdldCgpKTsKKyAgICBBU1NFUlQoY29udGV4dE1hcCgpLmdldChtX3dlYkNvbnRleHQu
Z2V0KCkpID09IHRoaXMpOworICAgIGNvbnRleHRNYXAoKS5yZW1vdmUobV93ZWJDb250ZXh0Lmdl
dCgpKTsKIH0KIAotUGFzc1JlZlB0cjxFd2tDb250ZXh0PiBFd2tDb250ZXh0OjpjcmVhdGUoV0tD
b250ZXh0UmVmIGNvbnRleHQpCitQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IEV3a0NvbnRleHQ6OmNy
ZWF0ZShXZWJDb250ZXh0KiBjb250ZXh0KQogewogICAgIGlmIChjb250ZXh0TWFwKCkuY29udGFp
bnMoY29udGV4dCkpCiAgICAgICAgIHJldHVybiBjb250ZXh0TWFwKCkuZ2V0KGNvbnRleHQpOyAv
LyBXaWxsIGJlIHJlZi1lZCBhdXRvbWF0aWNhbGx5LgpAQCAtMTE4LDcgKzExNyw3IEBAIFBhc3NS
ZWZQdHI8RXdrQ29udGV4dD4gRXdrQ29udGV4dDo6Y3JlYXRlKFdLQ29udGV4dFJlZiBjb250ZXh0
KQogCiBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IEV3a0NvbnRleHQ6OmNyZWF0ZSgpCiB7Ci0gICAg
cmV0dXJuIGNyZWF0ZShhZG9wdFdLKFdLQ29udGV4dENyZWF0ZSgpKS5nZXQoKSk7CisgICAgcmV0
dXJuIGNyZWF0ZShXZWJDb250ZXh0OjpjcmVhdGUoU3RyaW5nKCkpLmdldCgpKTsKIH0KIAogUGFz
c1JlZlB0cjxFd2tDb250ZXh0PiBFd2tDb250ZXh0OjpjcmVhdGUoY29uc3QgU3RyaW5nJiBpbmpl
Y3RlZEJ1bmRsZVBhdGgpCkBAIC0xMjYsMTUgKzEyNSwxMiBAQCBQYXNzUmVmUHRyPEV3a0NvbnRl
eHQ+IEV3a0NvbnRleHQ6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGluamVjdGVkQnVuZGxlUGF0aCkK
ICAgICBpZiAoIWZpbGVFeGlzdHMoaW5qZWN0ZWRCdW5kbGVQYXRoKSkKICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaW5qZWN0ZWRCdW5kbGVQYXRoV0sg
PSBhZG9wdFdLKHRvQ29waWVkQVBJKGluamVjdGVkQnVuZGxlUGF0aCkpOwotICAgIFdLUmV0YWlu
UHRyPFdLQ29udGV4dFJlZj4gY29udGV4dFdLID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGVXaXRo
SW5qZWN0ZWRCdW5kbGVQYXRoKGluamVjdGVkQnVuZGxlUGF0aFdLLmdldCgpKSk7Ci0KLSAgICBy
ZXR1cm4gY3JlYXRlKGNvbnRleHRXSy5nZXQoKSk7CisgICAgcmV0dXJuIGNyZWF0ZShXZWJDb250
ZXh0OjpjcmVhdGUoaW5qZWN0ZWRCdW5kbGVQYXRoKS5nZXQoKSk7CiB9CiAKIFBhc3NSZWZQdHI8
RXdrQ29udGV4dD4gRXdrQ29udGV4dDo6ZGVmYXVsdENvbnRleHQoKQogewotICAgIHN0YXRpYyBS
ZWZQdHI8RXdrQ29udGV4dD4gZGVmYXVsdEluc3RhbmNlID0gY3JlYXRlKGFkb3B0V0soV0tDb250
ZXh0Q3JlYXRlKCkpLmdldCgpKTsKKyAgICBzdGF0aWMgUmVmUHRyPEV3a0NvbnRleHQ+IGRlZmF1
bHRJbnN0YW5jZSA9IGNyZWF0ZSgpOwogCiAgICAgcmV0dXJuIGRlZmF1bHRJbnN0YW5jZTsKIH0K
QEAgLTE0Miw3ICsxMzgsNyBAQCBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IEV3a0NvbnRleHQ6OmRl
ZmF1bHRDb250ZXh0KCkKIEV3a19Db29raWVfTWFuYWdlciogRXdrQ29udGV4dDo6Y29va2llTWFu
YWdlcigpCiB7CiAgICAgaWYgKCFtX2Nvb2tpZU1hbmFnZXIpCi0gICAgICAgIG1fY29va2llTWFu
YWdlciA9IEV3a19Db29raWVfTWFuYWdlcjo6Y3JlYXRlKFdLQ29udGV4dEdldENvb2tpZU1hbmFn
ZXIobV9jb250ZXh0LmdldCgpKSk7CisgICAgICAgIG1fY29va2llTWFuYWdlciA9IEV3a19Db29r
aWVfTWFuYWdlcjo6Y3JlYXRlKFdLQ29udGV4dEdldENvb2tpZU1hbmFnZXIodG9BUEkobV93ZWJD
b250ZXh0LmdldCgpKSkpOwogCiAgICAgcmV0dXJuIG1fY29va2llTWFuYWdlci5nZXQoKTsKIH0K
QEAgLTE1NywyMyArMTUzLDIxIEBAIHZvaWQgRXdrQ29udGV4dDo6ZW5zdXJlRmF2aWNvbkRhdGFi
YXNlKCkKICAgICBpZiAobV9mYXZpY29uRGF0YWJhc2UpCiAgICAgICAgIHJldHVybjsKIAotICAg
IG1fZmF2aWNvbkRhdGFiYXNlID0gRXdrX0Zhdmljb25fRGF0YWJhc2U6OmNyZWF0ZSh0b0ltcGwo
bV9jb250ZXh0LmdldCgpKS0+aWNvbkRhdGFiYXNlKCkpOworICAgIG1fZmF2aWNvbkRhdGFiYXNl
ID0gRXdrX0Zhdmljb25fRGF0YWJhc2U6OmNyZWF0ZShtX3dlYkNvbnRleHQuZ2V0KCktPmljb25E
YXRhYmFzZSgpKTsKIH0KIAogYm9vbCBFd2tDb250ZXh0OjpzZXRGYXZpY29uRGF0YWJhc2VEaXJl
Y3RvcnlQYXRoKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnkpCiB7CiAgICAgZW5zdXJl
RmF2aWNvbkRhdGFiYXNlKCk7CiAKLSAgICBXZWJDb250ZXh0KiB3ZWJDb250ZXh0ID0gdG9JbXBs
KG1fY29udGV4dC5nZXQoKSk7Ci0KICAgICAvLyBUaGUgZGF0YWJhc2UgcGF0aCBpcyBhbHJlYWR5
IG9wZW4gc28gaXRzIHBhdGggd2FzCiAgICAgLy8gYWxyZWFkeSBzZXQuCi0gICAgaWYgKHdlYkNv
bnRleHQtPmljb25EYXRhYmFzZSgpLT5pc09wZW4oKSkKKyAgICBpZiAobV93ZWJDb250ZXh0Lmdl
dCgpLT5pY29uRGF0YWJhc2UoKS0+aXNPcGVuKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIC8vIElmIGRhdGFiYXNlRGlyZWN0b3J5IGlzIGVtcHR5LCB3ZSB1c2UgdGhlIGRlZmF1bHQg
ZGF0YWJhc2UgcGF0aCBmb3IgdGhlIHBsYXRmb3JtLgotICAgIFN0cmluZyBkYXRhYmFzZVBhdGgg
PSBkYXRhYmFzZURpcmVjdG9yeS5pc0VtcHR5KCkgPyB3ZWJDb250ZXh0LT5pY29uRGF0YWJhc2VQ
YXRoKCkgOiBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGF0YWJhc2VEaXJlY3RvcnksIFdlYkNv
cmU6Okljb25EYXRhYmFzZTo6ZGVmYXVsdERhdGFiYXNlRmlsZW5hbWUoKSk7Ci0gICAgd2ViQ29u
dGV4dC0+c2V0SWNvbkRhdGFiYXNlUGF0aChkYXRhYmFzZVBhdGgpOworICAgIFN0cmluZyBkYXRh
YmFzZVBhdGggPSBkYXRhYmFzZURpcmVjdG9yeS5pc0VtcHR5KCkgPyBtX3dlYkNvbnRleHQuZ2V0
KCktPmljb25EYXRhYmFzZVBhdGgoKSA6IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChkYXRhYmFz
ZURpcmVjdG9yeSwgV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpkZWZhdWx0RGF0YWJhc2VGaWxlbmFt
ZSgpKTsKKyAgICBtX3dlYkNvbnRleHQuZ2V0KCktPnNldEljb25EYXRhYmFzZVBhdGgoZGF0YWJh
c2VQYXRoKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjA1LDE3ICsxOTksMTcgQEAgUGFz
c1JlZlB0cjxWaWJyYXRpb25Qcm92aWRlcj4gRXdrQ29udGV4dDo6dmlicmF0aW9uUHJvdmlkZXIo
KQogCiB2b2lkIEV3a0NvbnRleHQ6OmFkZFZpc2l0ZWRMaW5rKGNvbnN0IFN0cmluZyYgdmlzaXRl
ZFVSTCkKIHsKLSAgICB0b0ltcGwobV9jb250ZXh0LmdldCgpKS0+YWRkVmlzaXRlZExpbmsodmlz
aXRlZFVSTCk7CisgICAgbV93ZWJDb250ZXh0LmdldCgpLT5hZGRWaXNpdGVkTGluayh2aXNpdGVk
VVJMKTsKIH0KIAogdm9pZCBFd2tDb250ZXh0OjpzZXRDYWNoZU1vZGVsKEV3a19DYWNoZV9Nb2Rl
bCBjYWNoZU1vZGVsKQogewotICAgIFdLQ29udGV4dFNldENhY2hlTW9kZWwobV9jb250ZXh0Lmdl
dCgpLCBzdGF0aWNfY2FzdDxFd2tfQ2FjaGVfTW9kZWw+KGNhY2hlTW9kZWwpKTsKKyAgICBXS0Nv
bnRleHRTZXRDYWNoZU1vZGVsKHRvQVBJKG1fd2ViQ29udGV4dC5nZXQoKSksIHN0YXRpY19jYXN0
PEV3a19DYWNoZV9Nb2RlbD4oY2FjaGVNb2RlbCkpOwogfQogCiBFd2tfQ2FjaGVfTW9kZWwgRXdr
Q29udGV4dDo6Y2FjaGVNb2RlbCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEV3
a19DYWNoZV9Nb2RlbD4oV0tDb250ZXh0R2V0Q2FjaGVNb2RlbChtX2NvbnRleHQuZ2V0KCkpKTsK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXdrX0NhY2hlX01vZGVsPihXS0NvbnRleHRHZXRDYWNo
ZU1vZGVsKHRvQVBJKG1fd2ViQ29udGV4dC5nZXQoKSkpKTsKIH0KIAogRXdrX0Nvb2tpZV9NYW5h
Z2VyKiBld2tfY29udGV4dF9jb29raWVfbWFuYWdlcl9nZXQoY29uc3QgRXdrX0NvbnRleHQqIGV3
a0NvbnRleHQpCkBAIC0yNTMsMTEgKzI0Nyw2IEBAIEV3a19TdG9yYWdlX01hbmFnZXIqIGV3a19j
b250ZXh0X3N0b3JhZ2VfbWFuYWdlcl9nZXQoY29uc3QgRXdrX0NvbnRleHQqIGV3a0NvbnRlCiAg
ICAgcmV0dXJuIGltcGwtPnN0b3JhZ2VNYW5hZ2VyKCk7CiB9CiAKLVdLQ29udGV4dFJlZiBFd2tD
b250ZXh0Ojp3a0NvbnRleHQoKQotewotICAgIHJldHVybiBtX2NvbnRleHQuZ2V0KCk7Ci19Ci0K
IERvd25sb2FkTWFuYWdlckVmbCogRXdrQ29udGV4dDo6ZG93bmxvYWRNYW5hZ2VyKCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV9kb3dubG9hZE1hbmFnZXIuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgKaW5kZXgg
NGRkYjY1MzI0ZDNkNDA5NjQzNzA1MDU0NjhmYjM1Njk2ZTQxNDkxZS4uOTc5ZWQ3ZTY5MTA3ZmVm
NTU0MWViNzI3MWYzODQ2NjI3NDA1ZjMzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaApAQCAtMjMsOSArMjMsMTIg
QEAKICNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXJFZmwuaCIKICNpbmNsdWRlICJXS0FQSUNhc3Qu
aCIKICNpbmNsdWRlICJXS1JldGFpblB0ci5oIgorI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNp
bmNsdWRlICJld2tfY29udGV4dC5oIgogI2luY2x1ZGUgImV3a19vYmplY3RfcHJpdmF0ZS5oIgog
Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCiBjbGFzcyBFd2tfQ29va2llX01hbmFnZXI7CiBj
bGFzcyBFd2tfRmF2aWNvbl9EYXRhYmFzZTsKIApAQCAtNDcsNyArNTAsNyBAQCBjbGFzcyBFd2tD
b250ZXh0IDogcHVibGljIEV3a19PYmplY3QgewogcHVibGljOgogICAgIEVXS19PQkpFQ1RfREVD
TEFSRShFd2tDb250ZXh0KQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrQ29udGV4dD4gY3Jl
YXRlKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tDb250
ZXh0PiBjcmVhdGUoV2ViQ29udGV4dCogY29udGV4dCk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
RXdrQ29udGV4dD4gY3JlYXRlKCk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrQ29udGV4dD4g
Y3JlYXRlKGNvbnN0IFN0cmluZyYgaW5qZWN0ZWRCdW5kbGVQYXRoKTsKIApAQCAtNzYsMTggKzc5
LDE4IEBAIHB1YmxpYzoKIAogICAgIEV3a19DYWNoZV9Nb2RlbCBjYWNoZU1vZGVsKCkgY29uc3Q7
CiAKLSAgICBXS0NvbnRleHRSZWYgd2tDb250ZXh0KCk7CisgICAgV2ViQ29udGV4dCogd2ViQ29u
dGV4dCgpIHsgcmV0dXJuIG1fd2ViQ29udGV4dC5nZXQoKTsgfQogCiAgICAgV2ViS2l0OjpEb3du
bG9hZE1hbmFnZXJFZmwqIGRvd25sb2FkTWFuYWdlcigpIGNvbnN0OwogCiAgICAgV2ViS2l0OjpD
b250ZXh0SGlzdG9yeUNsaWVudEVmbCogaGlzdG9yeUNsaWVudCgpOwogCiBwcml2YXRlOgotICAg
IGV4cGxpY2l0IEV3a0NvbnRleHQoV0tDb250ZXh0UmVmKTsKKyAgICBleHBsaWNpdCBFd2tDb250
ZXh0KFdlYkNvbnRleHQqKTsKIAogICAgIHZvaWQgZW5zdXJlRmF2aWNvbkRhdGFiYXNlKCk7CiAK
LSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IG1fY29udGV4dDsKKyAgICBSZWZQdHI8V2Vi
Q29udGV4dD4gbV93ZWJDb250ZXh0OwogCiAgICAgT3duUHRyPEV3a19Db29raWVfTWFuYWdlcj4g
bV9jb29raWVNYW5hZ2VyOwogICAgIE93blB0cjxFd2tfRGF0YWJhc2VfTWFuYWdlcj4gbV9kYXRh
YmFzZU1hbmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfZGF0YWJhc2VfbWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfZGF0YWJhc2VfbWFuYWdlci5jcHAKaW5kZXggYjY2NTY4YjY1ODkzNzljZTZjYzk3
MzAwOGFmNGYxZmIyMTgxZjNhOS4uNDliYmNlMWFjZTdkMDM4NGM2YTNhZGViMDVjZGI3YmVlYzFj
MmE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rh
dGFiYXNlX21hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19kYXRhYmFzZV9tYW5hZ2VyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIldL
QVBJQ2FzdC5oIgogI2luY2x1ZGUgIldLQXJyYXkuaCIKICNpbmNsdWRlICJXS0RhdGFiYXNlTWFu
YWdlci5oIgorI2luY2x1ZGUgIldlYkRhdGFiYXNlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAi
ZXdrX2RhdGFiYXNlX21hbmFnZXJfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19lcnJvcl9wcml2
YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3NlY3VyaXR5X29yaWdpbi5oIgpAQCAtMzcsMTMgKzM4LDEz
IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLUV3a19EYXRhYmFzZV9NYW5hZ2VyOjpF
d2tfRGF0YWJhc2VfTWFuYWdlcihXS0RhdGFiYXNlTWFuYWdlclJlZiBkYXRhYmFzZU1hbmFnZXJS
ZWYpCi0gICAgOiBtX2RhdGFiYXNlTWFuYWdlcihkYXRhYmFzZU1hbmFnZXJSZWYpCitFd2tfRGF0
YWJhc2VfTWFuYWdlcjo6RXdrX0RhdGFiYXNlX01hbmFnZXIoV2ViRGF0YWJhc2VNYW5hZ2VyUHJv
eHkqIGRhdGFiYXNlTWFuYWdlcikKKyAgICA6IG1fZGF0YWJhc2VNYW5hZ2VyKGRhdGFiYXNlTWFu
YWdlcikKIHsgfQogCiB2b2lkIEV3a19EYXRhYmFzZV9NYW5hZ2VyOjpnZXREYXRhYmFzZU9yaWdp
bnMoV0tEYXRhYmFzZU1hbmFnZXJHZXREYXRhYmFzZU9yaWdpbnNGdW5jdGlvbiBjYWxsYmFjaywg
dm9pZCogY29udGV4dCkgY29uc3QKIHsKLSAgICBXS0RhdGFiYXNlTWFuYWdlckdldERhdGFiYXNl
T3JpZ2lucyhtX2RhdGFiYXNlTWFuYWdlci5nZXQoKSwgY29udGV4dCwgY2FsbGJhY2spOworICAg
IFdLRGF0YWJhc2VNYW5hZ2VyR2V0RGF0YWJhc2VPcmlnaW5zKHRvQVBJKG1fZGF0YWJhc2VNYW5h
Z2VyLmdldCgpKSwgY29udGV4dCwgY2FsbGJhY2spOwogfQogCiBFaW5hX0xpc3QqIEV3a19EYXRh
YmFzZV9NYW5hZ2VyOjpjcmVhdGVPcmlnaW5MaXN0KFdLQXJyYXlSZWYgb3JpZ2lucykgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19kYXRhYmFz
ZV9tYW5hZ2VyX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19kYXRhYmFzZV9tYW5hZ2VyX3ByaXZhdGUuaAppbmRleCAwZTQ0OTcwMGFmOTNkZDY3ODIzYWZj
NDNiZTM0YWE5MzBkYmNkMzRiLi44NDJiZTlkMDJjYjM0YmI2ZjIyMTgwYzI5ODA0OTNhMWI3Y2U4
MGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZGF0
YWJhc2VfbWFuYWdlcl9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2RhdGFiYXNlX21hbmFnZXJfcHJpdmF0ZS5oCkBAIC0yNywyNSArMjcsMjggQEAK
ICNkZWZpbmUgZXdrX2RhdGFiYXNlX21hbmFnZXJfcHJpdmF0ZV9oCiAKICNpbmNsdWRlICJXS0Rh
dGFiYXNlTWFuYWdlci5oIgotI2luY2x1ZGUgIldLUmV0YWluUHRyLmgiCisjaW5jbHVkZSAiV2Vi
Q29udGV4dC5oIgorI2luY2x1ZGUgIldlYkRhdGFiYXNlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVk
ZSAiZXdrX3NlY3VyaXR5X29yaWdpbi5oIgogI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKwog
Y2xhc3MgRXdrX0RhdGFiYXNlX01hbmFnZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3du
UHRyPEV3a19EYXRhYmFzZV9NYW5hZ2VyPiBjcmVhdGUoV0tEYXRhYmFzZU1hbmFnZXJSZWYgZGF0
YWJhc2VNYW5hZ2VyUmVmKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPEV3a19EYXRhYmFzZV9NYW5h
Z2VyPiBjcmVhdGUoV2ViQ29udGV4dCogY29udGV4dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgRXdrX0RhdGFiYXNlX01hbmFnZXIoZGF0YWJhc2VNYW5hZ2VyUmVmKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRXdrX0RhdGFiYXNlX01hbmFnZXIoY29udGV4dC0+
ZGF0YWJhc2VNYW5hZ2VyUHJveHkoKSkpOwogICAgIH0KIAogICAgIEVpbmFfTGlzdCogY3JlYXRl
T3JpZ2luTGlzdChXS0FycmF5UmVmIHdrTGlzdCkgY29uc3Q7CiAgICAgdm9pZCBnZXREYXRhYmFz
ZU9yaWdpbnMoV0tEYXRhYmFzZU1hbmFnZXJHZXREYXRhYmFzZU9yaWdpbnNGdW5jdGlvbiBjYWxs
YmFjaywgdm9pZCogY29udGV4dCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgRXdr
X0RhdGFiYXNlX01hbmFnZXIoV0tEYXRhYmFzZU1hbmFnZXJSZWYpOworICAgIGV4cGxpY2l0IEV3
a19EYXRhYmFzZV9NYW5hZ2VyKFdlYkRhdGFiYXNlTWFuYWdlclByb3h5Kik7CiAKLSAgICBXS1Jl
dGFpblB0cjxXS0RhdGFiYXNlTWFuYWdlclJlZj4gbV9kYXRhYmFzZU1hbmFnZXI7CisgICAgUmVm
UHRyPFdlYkRhdGFiYXNlTWFuYWdlclByb3h5PiBtX2RhdGFiYXNlTWFuYWdlcjsKICAgICBtdXRh
YmxlIEhhc2hNYXA8V0tTZWN1cml0eU9yaWdpblJlZiwgUmVmUHRyPEV3a19TZWN1cml0eV9Pcmln
aW4+ID4gbV93cmFwcGVyQ2FjaGU7CiB9OwogI2VuZGlmIC8vIGV3a19kYXRhYmFzZV9tYW5hZ2Vy
X3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3N0b3JhZ2VfbWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfc3RvcmFnZV9tYW5hZ2VyLmNwcAppbmRleCA4MGNhYzc2NWNiMzIxNzcyYTI5NzA5ZWVi
ODM4NWUzZjY5YzU5NmMxLi42MjBmMjE5YWZmMmVlODE0MDViYTk2NjVmZDcxMDI5ZWU2NTk3Nzhj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc3RvcmFn
ZV9tYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
c3RvcmFnZV9tYW5hZ2VyLmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiV0tBUElD
YXN0LmgiCiAjaW5jbHVkZSAiV0tBcnJheS5oIgotI2luY2x1ZGUgIldLS2V5VmFsdWVTdG9yYWdl
TWFuYWdlci5oIgorI2luY2x1ZGUgIldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5oIgog
I2luY2x1ZGUgImV3a19lcnJvcl9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3NlY3VyaXR5X29y
aWdpbi5oIgogI2luY2x1ZGUgImV3a19zZWN1cml0eV9vcmlnaW5fcHJpdmF0ZS5oIgpAQCAtMzcs
MTMgKzM3LDEzIEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLUV3a19TdG9yYWdlX01h
bmFnZXI6OkV3a19TdG9yYWdlX01hbmFnZXIoV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmIHdr
U3RvcmFnZU1hbmFnZXJSZWYpCi0gICAgOiBtX3drU3RvcmFnZU1hbmFnZXIod2tTdG9yYWdlTWFu
YWdlclJlZikKK0V3a19TdG9yYWdlX01hbmFnZXI6OkV3a19TdG9yYWdlX01hbmFnZXIoV2ViS2V5
VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5KiBzdG9yYWdlTWFuYWdlclByb3h5KQorICAgIDogbV9z
dG9yYWdlTWFuYWdlcihzdG9yYWdlTWFuYWdlclByb3h5KQogeyB9CiAKIHZvaWQgRXdrX1N0b3Jh
Z2VfTWFuYWdlcjo6Z2V0U3RvcmFnZU9yaWdpbnModm9pZCogY29udGV4dCwgV0tLZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyR2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2luc0Z1bmN0aW9uIGNhbGxiYWNrKSBj
b25zdAogewotICAgIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlckdldEtleVZhbHVlU3RvcmFnZU9y
aWdpbnMobV93a1N0b3JhZ2VNYW5hZ2VyLmdldCgpLCBjb250ZXh0LCBjYWxsYmFjayk7CisgICAg
V0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyR2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2lucyh0b0FQSSht
X3N0b3JhZ2VNYW5hZ2VyLmdldCgpKSwgY29udGV4dCwgY2FsbGJhY2spOwogfQogCiBFaW5hX0xp
c3QqIEV3a19TdG9yYWdlX01hbmFnZXI6OmNyZWF0ZU9yaWdpbkxpc3QoV0tBcnJheVJlZiBvcmln
aW5zKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3N0b3JhZ2VfbWFuYWdlcl9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfc3RvcmFnZV9tYW5hZ2VyX3ByaXZhdGUuaAppbmRleCA1ZWVlYTQ5MTM3OTE1
ZDRmMjAwNzUyNzdjODc0YzE0MGI2OTY5YjhkLi45YWE2ZGVlZTNlZTY0MTNlMDI2Mzc2OGE5NDUx
ODZiMzQzMzg1YWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfc3RvcmFnZV9tYW5hZ2VyX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfc3RvcmFnZV9tYW5hZ2VyX3ByaXZhdGUuaApAQCAtMjcsMjUgKzI3
LDI4IEBACiAjZGVmaW5lIGV3a19zdG9yYWdlX21hbmFnZXJfcHJpdmF0ZV9oCiAKICNpbmNsdWRl
ICJXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCIKLSNpbmNsdWRlICJXS1JldGFpblB0ci5oIgor
I2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5h
Z2VyUHJveHkuaCIKICNpbmNsdWRlICJld2tfc2VjdXJpdHlfb3JpZ2luX3ByaXZhdGUuaCIKICNp
bmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAK
K3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKIGNsYXNzIEV3a19TdG9yYWdlX01hbmFnZXIgewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEV3a19TdG9yYWdlX01hbmFnZXI+IGNyZWF0
ZShXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJSZWYgd2tTdG9yYWdlTWFuYWdlclJlZikKKyAgICBz
dGF0aWMgUGFzc093blB0cjxFd2tfU3RvcmFnZV9NYW5hZ2VyPiBjcmVhdGUoV2ViQ29udGV4dCog
Y29udGV4dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRXdrX1N0b3JhZ2Vf
TWFuYWdlcih3a1N0b3JhZ2VNYW5hZ2VyUmVmKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgRXdrX1N0b3JhZ2VfTWFuYWdlcihjb250ZXh0LT5rZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJv
eHkoKSkpOwogICAgIH0KIAogICAgIEVpbmFfTGlzdCogY3JlYXRlT3JpZ2luTGlzdChXS0FycmF5
UmVmIHdrTGlzdCkgY29uc3Q7CiAgICAgdm9pZCBnZXRTdG9yYWdlT3JpZ2lucyh2b2lkKiBjb250
ZXh0LCBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJHZXRLZXlWYWx1ZVN0b3JhZ2VPcmlnaW5zRnVu
Y3Rpb24gY2FsbGJhY2spIGNvbnN0OwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEV3a19TdG9y
YWdlX01hbmFnZXIoV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmIHdrU3RvcmFnZU1hbmFnZXJS
ZWYpOworICAgIGV4cGxpY2l0IEV3a19TdG9yYWdlX01hbmFnZXIoV2ViS2V5VmFsdWVTdG9yYWdl
TWFuYWdlclByb3h5KiBzdG9yYWdlTWFuYWdlclByb3h5KTsKIAotICAgIFdLUmV0YWluUHRyPFdL
S2V5VmFsdWVTdG9yYWdlTWFuYWdlclJlZj4gbV93a1N0b3JhZ2VNYW5hZ2VyOworICAgIFJlZlB0
cjxXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHk+IG1fc3RvcmFnZU1hbmFnZXI7CiAgICAg
bXV0YWJsZSBIYXNoTWFwPFdLU2VjdXJpdHlPcmlnaW5SZWYsIFJlZlB0cjxFd2tfU2VjdXJpdHlf
T3JpZ2luPiA+IG1fd3JhcHBlckNhY2hlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCmluZGV4IDIxZmMxOTNhNjM1OGEyMDkyNjRjZjQ3OGEz
YTBkZDA5ZTc0ZGMwNTguLmQyMTRlZDY5MjE2NGNhNTc1Nzk1MDdlOGJkMTc2NTlhYzFmMmFjMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKQEAg
LTUyMiw3ICs1MjIsNyBAQCBzdGF0aWMgaW5saW5lIEV2YXNfT2JqZWN0KiBjcmVhdGVFd2tWaWV3
KEV2YXMqIGNhbnZhcywgRXZhc19TbWFydCogc21hcnQsIFBhc3NSZQogICovCiBFdmFzX09iamVj
dCogZXdrX3ZpZXdfYmFzZV9hZGQoRXZhcyogY2FudmFzLCBXS0NvbnRleHRSZWYgY29udGV4dFJl
ZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQogewotICAgIHJldHVybiBjcmVhdGVFd2tW
aWV3KGNhbnZhcywgY3JlYXRlRXdrVmlld1NtYXJ0Q2xhc3MoKSwgRXdrQ29udGV4dDo6Y3JlYXRl
KGNvbnRleHRSZWYpLCBwYWdlR3JvdXBSZWYsIEV3a1ZpZXdJbXBsOjpMZWdhY3lCZWhhdmlvcik7
CisgICAgcmV0dXJuIGNyZWF0ZUV3a1ZpZXcoY2FudmFzLCBjcmVhdGVFd2tWaWV3U21hcnRDbGFz
cygpLCBFd2tDb250ZXh0OjpjcmVhdGUodG9JbXBsKGNvbnRleHRSZWYpKSwgcGFnZUdyb3VwUmVm
LCBFd2tWaWV3SW1wbDo6TGVnYWN5QmVoYXZpb3IpOwogfQogCiBFdmFzX09iamVjdCogZXdrX3Zp
ZXdfc21hcnRfYWRkKEV2YXMqIGNhbnZhcywgRXZhc19TbWFydCogc21hcnQsIEV3a19Db250ZXh0
KiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Eb3du
bG9hZE1hbmFnZXJFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Eb3dubG9h
ZE1hbmFnZXJFZmwuY3BwCmluZGV4IDg2OWU0NGYzYWUzZTZhMTlkNjI5YzhkMDczMzIwNTJlNWYw
YTdmOGEuLjNmZGViOWM2NGU5ZTQwZDQ5YjU5ZWU2NTdhZTIyZjExYjk5ZGEyODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVmbC5jcHAK
QEAgLTEzNiw3ICsxMzYsNyBAQCBEb3dubG9hZE1hbmFnZXJFZmw6OkRvd25sb2FkTWFuYWdlckVm
bChFd2tDb250ZXh0KiBjb250ZXh0KQogICAgIHdrRG93bmxvYWRDbGllbnQuZGlkRmFpbCA9IGRp
ZEZhaWw7CiAgICAgd2tEb3dubG9hZENsaWVudC5kaWRGaW5pc2ggPSBkaWRGaW5pc2g7CiAKLSAg
ICBXS0NvbnRleHRTZXREb3dubG9hZENsaWVudChjb250ZXh0LT53a0NvbnRleHQoKSwgJndrRG93
bmxvYWRDbGllbnQpOworICAgIFdLQ29udGV4dFNldERvd25sb2FkQ2xpZW50KHRvQVBJKGNvbnRl
eHQtPndlYkNvbnRleHQoKSksICZ3a0Rvd25sb2FkQ2xpZW50KTsKIH0KIAogdm9pZCBEb3dubG9h
ZE1hbmFnZXJFZmw6OnJlZ2lzdGVyRG93bmxvYWQoRG93bmxvYWRQcm94eSogZG93bmxvYWQsIEV3
a1ZpZXdJbXBsKiB2aWV3SW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHAKaW5kZXggM2ZiMzJjNjQ3NTI4ZWZm
MDEyMGUxZjAyNjlmMzAwNzE0ZjM3NWUwYi4uMTc4MDAzMzQ4MTIxMTc2NjhhYjEwNTM3ZDVkMTky
NjU1NjliZTJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9SZXF1
ZXN0TWFuYWdlckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgdm9pZCBSZXF1
ZXN0TWFuYWdlckNsaWVudEVmbDo6ZGlkUmVjZWl2ZVVSSVJlcXVlc3QoV0tTb3VwUmVxdWVzdE1h
bmFnZXJSZWYgc291cFIKIH0KIAogUmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6OlJlcXVlc3RNYW5h
Z2VyQ2xpZW50RWZsKEV3a0NvbnRleHQqIGNvbnRleHQpCi0gICAgOiBtX3NvdXBSZXF1ZXN0TWFu
YWdlcihXS0NvbnRleHRHZXRTb3VwUmVxdWVzdE1hbmFnZXIoY29udGV4dC0+d2tDb250ZXh0KCkp
KQorICAgIDogbV9zb3VwUmVxdWVzdE1hbmFnZXIoV0tDb250ZXh0R2V0U291cFJlcXVlc3RNYW5h
Z2VyKHRvQVBJKGNvbnRleHQtPndlYkNvbnRleHQoKSkpKQogewogICAgIEFTU0VSVChjb250ZXh0
KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172842</attachid>
            <date>2012-11-07 11:16:29 -0800</date>
            <delta_ts>2012-11-07 18:41:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101477-20121108041438.patch</filename>
            <type>text/plain</type>
            <size>19978</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNzcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNGU1MjY3NmU3YWJiYzc1
MjZmNWIwOTNkNjlmMDQzY2ZkMmQzMTk0ZS4uYWZhNzczZTcyZDc0OTVjNGQxYWZiNGUyYjgxNmIx
OTA2YjNlMDFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTExLTA3ICBKaW53
b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJd
IE1ha2UgZXdrX2NvbnRleHQgdXNlIFdlYkNvbnRleHQgaW5zdGVhZCBvZiBXS0NvbnRleHQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTQ3NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yIGV3
a19jb250ZXh0IHRvIHVzZSBXZWJDb250ZXh0IGFzIGV3a19jb250ZXh0IGlzIGVuY2Fwc3VsYXRl
ZCBpbiBhIEMrKyBjbGFzc2VzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmll
d0ltcGwuY3BwOgorICAgICAgICAoRXdrVmlld0ltcGw6OkV3a1ZpZXdJbXBsKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHA6CisgICAgICAgIChFd2tDb250ZXh0
OjpFd2tDb250ZXh0KToKKyAgICAgICAgKEV3a0NvbnRleHQ6On5Fd2tDb250ZXh0KToKKyAgICAg
ICAgKEV3a0NvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgIChFd2tDb250ZXh0OjpkZWZhdWx0Q29u
dGV4dCk6CisgICAgICAgIChFd2tDb250ZXh0Ojpjb29raWVNYW5hZ2VyKToKKyAgICAgICAgKEV3
a0NvbnRleHQ6OmVuc3VyZUZhdmljb25EYXRhYmFzZSk6CisgICAgICAgIChFd2tDb250ZXh0Ojpz
ZXRGYXZpY29uRGF0YWJhc2VEaXJlY3RvcnlQYXRoKToKKyAgICAgICAgKEV3a0NvbnRleHQ6OmFk
ZFZpc2l0ZWRMaW5rKToKKyAgICAgICAgKEV3a0NvbnRleHQ6OnNldENhY2hlTW9kZWwpOgorICAg
ICAgICAoRXdrQ29udGV4dDo6Y2FjaGVNb2RlbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oOgorICAgICAgICAoRXdrQ29udGV4dCk6CisgICAgICAg
IChFd2tDb250ZXh0Ojp3ZWJDb250ZXh0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9l
d2tfZGF0YWJhc2VfbWFuYWdlci5jcHA6CisgICAgICAgIChFd2tfRGF0YWJhc2VfTWFuYWdlcjo6
RXdrX0RhdGFiYXNlX01hbmFnZXIpOgorICAgICAgICAoRXdrX0RhdGFiYXNlX01hbmFnZXI6Omdl
dERhdGFiYXNlT3JpZ2lucyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2RhdGFi
YXNlX21hbmFnZXJfcHJpdmF0ZS5oOgorICAgICAgICAoRXdrX0RhdGFiYXNlX01hbmFnZXI6OmNy
ZWF0ZSk6CisgICAgICAgIChFd2tfRGF0YWJhc2VfTWFuYWdlcik6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3N0b3JhZ2VfbWFuYWdlci5jcHA6CisgICAgICAgIChFd2tfU3RvcmFn
ZV9NYW5hZ2VyOjpFd2tfU3RvcmFnZV9NYW5hZ2VyKToKKyAgICAgICAgKEV3a19TdG9yYWdlX01h
bmFnZXI6OmdldFN0b3JhZ2VPcmlnaW5zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9l
d2tfc3RvcmFnZV9tYW5hZ2VyX3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a19TdG9yYWdlX01hbmFn
ZXI6OmNyZWF0ZSk6CisgICAgICAgIChFd2tfU3RvcmFnZV9NYW5hZ2VyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChld2tfdmlld19iYXNlX2Fk
ZCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9Eb3dubG9hZE1hbmFnZXJFZmwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpEb3dubG9hZE1hbmFnZXJFZmw6OkRvd25sb2FkTWFuYWdlckVmbCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpSZXF1ZXN0TWFuYWdlckNsaWVu
dEVmbCk6CisKIDIwMTItMTEtMDcgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55
YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBBZGQgZXdrX3NldHRpbmdzX3By
ZWZlcnJlZF9taW5pbXVtX2NvbnRlbnRzX3dpZHRoX2dldC9zZXQgQVBJCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHAKaW5kZXggNDIxNjZjOThj
ODQ0MGIzYThjNjNhYzU3NWRiYzhmNjA0YzE1ZDc3OC4uY2QxNGMwNWRmYTYxOGYxYTU1ODBlYzM4
MzU3NzMzMGJkYmQ2ZDQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvRXdrVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL0V3a1ZpZXdJbXBsLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIEV3a1ZpZXdJbXBsOjpFd2tW
aWV3SW1wbChFdmFzX09iamVjdCogdmlldywgUGFzc1JlZlB0cjxFd2tDb250ZXh0PiBjb250ZXh0
LCBQYXNzCiAgICAgOiBtX3ZpZXcodmlldykKICAgICAsIG1fY29udGV4dChjb250ZXh0KQogICAg
ICwgbV9wYWdlQ2xpZW50KGJlaGF2aW9yID09IERlZmF1bHRCZWhhdmlvciA/IFBhZ2VDbGllbnRE
ZWZhdWx0SW1wbDo6Y3JlYXRlKHRoaXMpIDogUGFnZUNsaWVudExlZ2FjeUltcGw6OmNyZWF0ZSh0
aGlzKSkKLSAgICAsIG1fcGFnZVByb3h5KHRvSW1wbChtX2NvbnRleHQtPndrQ29udGV4dCgpKS0+
Y3JlYXRlV2ViUGFnZShtX3BhZ2VDbGllbnQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSkpCisgICAg
LCBtX3BhZ2VQcm94eShtX2NvbnRleHQtPndlYkNvbnRleHQoKS0+Y3JlYXRlV2ViUGFnZShtX3Bh
Z2VDbGllbnQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSkpCiAgICAgLCBtX3BhZ2VMb2FkQ2xpZW50
KFBhZ2VMb2FkQ2xpZW50RWZsOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX3BhZ2VQb2xpY3lDbGll
bnQoUGFnZVBvbGljeUNsaWVudEVmbDo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9wYWdlVUlDbGll
bnQoUGFnZVVJQ2xpZW50RWZsOjpjcmVhdGUodGhpcykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKaW5kZXggMmRiZjM3ODU3YzY5N2MwNWE1
YjhlOWViZWE2NjBmM2MyMjcyMjI1MC4uZDhiMzJiNTg0OGY0OTZmMjg0NDgwZjRmOTA3OTkwMmQy
Y2QxZmM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19j
b250ZXh0LmNwcApAQCAtNTQsNyArNTQsNyBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi10eXBlZGVmIEhhc2hNYXA8V0tDb250ZXh0UmVmLCBF
d2tDb250ZXh0Kj4gQ29udGV4dE1hcDsKK3R5cGVkZWYgSGFzaE1hcDxXZWJDb250ZXh0KiwgRXdr
Q29udGV4dCo+IENvbnRleHRNYXA7CiAKIHN0YXRpYyBpbmxpbmUgQ29udGV4dE1hcCYgY29udGV4
dE1hcCgpCiB7CkBAIC02MiwyMiArNjIsMjIgQEAgc3RhdGljIGlubGluZSBDb250ZXh0TWFwJiBj
b250ZXh0TWFwKCkKICAgICByZXR1cm4gbWFwOwogfQogCi1Fd2tDb250ZXh0OjpFd2tDb250ZXh0
KFdLQ29udGV4dFJlZiBjb250ZXh0KQotICAgIDogbV9jb250ZXh0KGNvbnRleHQpCi0gICAgLCBt
X2RhdGFiYXNlTWFuYWdlcihFd2tfRGF0YWJhc2VfTWFuYWdlcjo6Y3JlYXRlKFdLQ29udGV4dEdl
dERhdGFiYXNlTWFuYWdlcihtX2NvbnRleHQuZ2V0KCkpKSkKLSAgICAsIG1fc3RvcmFnZU1hbmFn
ZXIoRXdrX1N0b3JhZ2VfTWFuYWdlcjo6Y3JlYXRlKFdLQ29udGV4dEdldEtleVZhbHVlU3RvcmFn
ZU1hbmFnZXIobV9jb250ZXh0LmdldCgpKSkpCitFd2tDb250ZXh0OjpFd2tDb250ZXh0KFdlYkNv
bnRleHQqIGNvbnRleHQpCisgICAgOiBtX3dlYkNvbnRleHQoY29udGV4dCkKKyAgICAsIG1fZGF0
YWJhc2VNYW5hZ2VyKEV3a19EYXRhYmFzZV9NYW5hZ2VyOjpjcmVhdGUoY29udGV4dCkpCisgICAg
LCBtX3N0b3JhZ2VNYW5hZ2VyKEV3a19TdG9yYWdlX01hbmFnZXI6OmNyZWF0ZShjb250ZXh0KSkK
ICNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCi0gICAgLCBtX2JhdHRlcnlQcm92aWRlcihCYXR0
ZXJ5UHJvdmlkZXI6OmNyZWF0ZShjb250ZXh0KSkKKyAgICAsIG1fYmF0dGVyeVByb3ZpZGVyKEJh
dHRlcnlQcm92aWRlcjo6Y3JlYXRlKHRvQVBJKGNvbnRleHQpKSkKICNlbmRpZgogI2lmIEVOQUJM
RShORVRXT1JLX0lORk8pCi0gICAgLCBtX25ldHdvcmtJbmZvUHJvdmlkZXIoTmV0d29ya0luZm9Q
cm92aWRlcjo6Y3JlYXRlKGNvbnRleHQpKQorICAgICwgbV9uZXR3b3JrSW5mb1Byb3ZpZGVyKE5l
dHdvcmtJbmZvUHJvdmlkZXI6OmNyZWF0ZSh0b0FQSShjb250ZXh0KSkpCiAjZW5kaWYKICNpZiBF
TkFCTEUoVklCUkFUSU9OKQotICAgICwgbV92aWJyYXRpb25Qcm92aWRlcihWaWJyYXRpb25Qcm92
aWRlcjo6Y3JlYXRlKGNvbnRleHQpKQorICAgICwgbV92aWJyYXRpb25Qcm92aWRlcihWaWJyYXRp
b25Qcm92aWRlcjo6Y3JlYXRlKHRvQVBJKGNvbnRleHQpKSkKICNlbmRpZgogICAgICwgbV9kb3du
bG9hZE1hbmFnZXIoRG93bmxvYWRNYW5hZ2VyRWZsOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX3Jl
cXVlc3RNYW5hZ2VyQ2xpZW50KFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpjcmVhdGUodGhpcykp
Ci0gICAgLCBtX2hpc3RvcnlDbGllbnQoQ29udGV4dEhpc3RvcnlDbGllbnRFZmw6OmNyZWF0ZShj
b250ZXh0KSkKKyAgICAsIG1faGlzdG9yeUNsaWVudChDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6
Y3JlYXRlKHRvQVBJKGNvbnRleHQpKSkKIHsKICAgICBDb250ZXh0TWFwOjpBZGRSZXN1bHQgcmVz
dWx0ID0gY29udGV4dE1hcCgpLmFkZChjb250ZXh0LCB0aGlzKTsKICAgICBBU1NFUlRfVU5VU0VE
KHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwpAQCAtODcsOCArODcsNyBAQCBFd2tDb250ZXh0
OjpFd2tDb250ZXh0KFdLQ29udGV4dFJlZiBjb250ZXh0KQogICAgIHN0YXRpYyBjb25zdCBjaGFy
IGVudmlyb25tZW50VmFyaWFibGVbXSA9ICJTQU1QTEVfTUVNT1JZIjsKIAogICAgIGlmICghaW5p
dGlhbGl6ZU1lbW9yeVNhbXBsZXIgJiYgZ2V0ZW52KGVudmlyb25tZW50VmFyaWFibGUpKSB7Ci0g
ICAgICAgIFdLUmV0YWluUHRyPFdLRG91YmxlUmVmPiBpbnRlcnZhbChBZG9wdFdLLCBXS0RvdWJs
ZUNyZWF0ZSgwLjApKTsKLSAgICAgICAgV0tDb250ZXh0U3RhcnRNZW1vcnlTYW1wbGVyKGNvbnRl
eHQsIGludGVydmFsLmdldCgpKTsKKyAgICAgICAgY29udGV4dC0+c3RhcnRNZW1vcnlTYW1wbGVy
KDAuMCk7CiAgICAgICAgIGluaXRpYWxpemVNZW1vcnlTYW1wbGVyID0gdHJ1ZTsKICAgICB9CiAj
ZW5kaWYKQEAgLTEwNCwxMSArMTAzLDExIEBAIEV3a0NvbnRleHQ6OkV3a0NvbnRleHQoV0tDb250
ZXh0UmVmIGNvbnRleHQpCiAKIEV3a0NvbnRleHQ6On5Fd2tDb250ZXh0KCkKIHsKLSAgICBBU1NF
UlQoY29udGV4dE1hcCgpLmdldChtX2NvbnRleHQuZ2V0KCkpID09IHRoaXMpOwotICAgIGNvbnRl
eHRNYXAoKS5yZW1vdmUobV9jb250ZXh0LmdldCgpKTsKKyAgICBBU1NFUlQoY29udGV4dE1hcCgp
LmdldChtX3dlYkNvbnRleHQuZ2V0KCkpID09IHRoaXMpOworICAgIGNvbnRleHRNYXAoKS5yZW1v
dmUobV93ZWJDb250ZXh0LmdldCgpKTsKIH0KIAotUGFzc1JlZlB0cjxFd2tDb250ZXh0PiBFd2tD
b250ZXh0OjpjcmVhdGUoV0tDb250ZXh0UmVmIGNvbnRleHQpCitQYXNzUmVmUHRyPEV3a0NvbnRl
eHQ+IEV3a0NvbnRleHQ6OmNyZWF0ZShXZWJDb250ZXh0KiBjb250ZXh0KQogewogICAgIGlmIChj
b250ZXh0TWFwKCkuY29udGFpbnMoY29udGV4dCkpCiAgICAgICAgIHJldHVybiBjb250ZXh0TWFw
KCkuZ2V0KGNvbnRleHQpOyAvLyBXaWxsIGJlIHJlZi1lZCBhdXRvbWF0aWNhbGx5LgpAQCAtMTE4
LDcgKzExNyw3IEBAIFBhc3NSZWZQdHI8RXdrQ29udGV4dD4gRXdrQ29udGV4dDo6Y3JlYXRlKFdL
Q29udGV4dFJlZiBjb250ZXh0KQogCiBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IEV3a0NvbnRleHQ6
OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZShhZG9wdFdLKFdLQ29udGV4dENyZWF0ZSgp
KS5nZXQoKSk7CisgICAgcmV0dXJuIGNyZWF0ZShXZWJDb250ZXh0OjpjcmVhdGUoU3RyaW5nKCkp
LmdldCgpKTsKIH0KIAogUGFzc1JlZlB0cjxFd2tDb250ZXh0PiBFd2tDb250ZXh0OjpjcmVhdGUo
Y29uc3QgU3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBhdGgpCkBAIC0xMjYsMTUgKzEyNSwxMiBAQCBQ
YXNzUmVmUHRyPEV3a0NvbnRleHQ+IEV3a0NvbnRleHQ6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGlu
amVjdGVkQnVuZGxlUGF0aCkKICAgICBpZiAoIWZpbGVFeGlzdHMoaW5qZWN0ZWRCdW5kbGVQYXRo
KSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaW5q
ZWN0ZWRCdW5kbGVQYXRoV0sgPSBhZG9wdFdLKHRvQ29waWVkQVBJKGluamVjdGVkQnVuZGxlUGF0
aCkpOwotICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dFdLID0gYWRvcHRXSyhX
S0NvbnRleHRDcmVhdGVXaXRoSW5qZWN0ZWRCdW5kbGVQYXRoKGluamVjdGVkQnVuZGxlUGF0aFdL
LmdldCgpKSk7Ci0KLSAgICByZXR1cm4gY3JlYXRlKGNvbnRleHRXSy5nZXQoKSk7CisgICAgcmV0
dXJuIGNyZWF0ZShXZWJDb250ZXh0OjpjcmVhdGUoaW5qZWN0ZWRCdW5kbGVQYXRoKS5nZXQoKSk7
CiB9CiAKIFBhc3NSZWZQdHI8RXdrQ29udGV4dD4gRXdrQ29udGV4dDo6ZGVmYXVsdENvbnRleHQo
KQogewotICAgIHN0YXRpYyBSZWZQdHI8RXdrQ29udGV4dD4gZGVmYXVsdEluc3RhbmNlID0gY3Jl
YXRlKGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlKCkpLmdldCgpKTsKKyAgICBzdGF0aWMgUmVmUHRy
PEV3a0NvbnRleHQ+IGRlZmF1bHRJbnN0YW5jZSA9IGNyZWF0ZSgpOwogCiAgICAgcmV0dXJuIGRl
ZmF1bHRJbnN0YW5jZTsKIH0KQEAgLTE0Miw3ICsxMzgsNyBAQCBQYXNzUmVmUHRyPEV3a0NvbnRl
eHQ+IEV3a0NvbnRleHQ6OmRlZmF1bHRDb250ZXh0KCkKIEV3a19Db29raWVfTWFuYWdlciogRXdr
Q29udGV4dDo6Y29va2llTWFuYWdlcigpCiB7CiAgICAgaWYgKCFtX2Nvb2tpZU1hbmFnZXIpCi0g
ICAgICAgIG1fY29va2llTWFuYWdlciA9IEV3a19Db29raWVfTWFuYWdlcjo6Y3JlYXRlKFdLQ29u
dGV4dEdldENvb2tpZU1hbmFnZXIobV9jb250ZXh0LmdldCgpKSk7CisgICAgICAgIG1fY29va2ll
TWFuYWdlciA9IEV3a19Db29raWVfTWFuYWdlcjo6Y3JlYXRlKFdLQ29udGV4dEdldENvb2tpZU1h
bmFnZXIodG9BUEkobV93ZWJDb250ZXh0LmdldCgpKSkpOwogCiAgICAgcmV0dXJuIG1fY29va2ll
TWFuYWdlci5nZXQoKTsKIH0KQEAgLTE1NywyMyArMTUzLDIxIEBAIHZvaWQgRXdrQ29udGV4dDo6
ZW5zdXJlRmF2aWNvbkRhdGFiYXNlKCkKICAgICBpZiAobV9mYXZpY29uRGF0YWJhc2UpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIG1fZmF2aWNvbkRhdGFiYXNlID0gRXdrX0Zhdmljb25fRGF0YWJh
c2U6OmNyZWF0ZSh0b0ltcGwobV9jb250ZXh0LmdldCgpKS0+aWNvbkRhdGFiYXNlKCkpOworICAg
IG1fZmF2aWNvbkRhdGFiYXNlID0gRXdrX0Zhdmljb25fRGF0YWJhc2U6OmNyZWF0ZShtX3dlYkNv
bnRleHQuZ2V0KCktPmljb25EYXRhYmFzZSgpKTsKIH0KIAogYm9vbCBFd2tDb250ZXh0OjpzZXRG
YXZpY29uRGF0YWJhc2VEaXJlY3RvcnlQYXRoKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3Rv
cnkpCiB7CiAgICAgZW5zdXJlRmF2aWNvbkRhdGFiYXNlKCk7CiAKLSAgICBXZWJDb250ZXh0KiB3
ZWJDb250ZXh0ID0gdG9JbXBsKG1fY29udGV4dC5nZXQoKSk7Ci0KICAgICAvLyBUaGUgZGF0YWJh
c2UgcGF0aCBpcyBhbHJlYWR5IG9wZW4gc28gaXRzIHBhdGggd2FzCiAgICAgLy8gYWxyZWFkeSBz
ZXQuCi0gICAgaWYgKHdlYkNvbnRleHQtPmljb25EYXRhYmFzZSgpLT5pc09wZW4oKSkKKyAgICBp
ZiAobV93ZWJDb250ZXh0LT5pY29uRGF0YWJhc2UoKS0+aXNPcGVuKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIC8vIElmIGRhdGFiYXNlRGlyZWN0b3J5IGlzIGVtcHR5LCB3ZSB1c2Ug
dGhlIGRlZmF1bHQgZGF0YWJhc2UgcGF0aCBmb3IgdGhlIHBsYXRmb3JtLgotICAgIFN0cmluZyBk
YXRhYmFzZVBhdGggPSBkYXRhYmFzZURpcmVjdG9yeS5pc0VtcHR5KCkgPyB3ZWJDb250ZXh0LT5p
Y29uRGF0YWJhc2VQYXRoKCkgOiBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGF0YWJhc2VEaXJl
Y3RvcnksIFdlYkNvcmU6Okljb25EYXRhYmFzZTo6ZGVmYXVsdERhdGFiYXNlRmlsZW5hbWUoKSk7
Ci0gICAgd2ViQ29udGV4dC0+c2V0SWNvbkRhdGFiYXNlUGF0aChkYXRhYmFzZVBhdGgpOworICAg
IFN0cmluZyBkYXRhYmFzZVBhdGggPSBkYXRhYmFzZURpcmVjdG9yeS5pc0VtcHR5KCkgPyBtX3dl
YkNvbnRleHQtPmljb25EYXRhYmFzZVBhdGgoKSA6IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChk
YXRhYmFzZURpcmVjdG9yeSwgV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpkZWZhdWx0RGF0YWJhc2VG
aWxlbmFtZSgpKTsKKyAgICBtX3dlYkNvbnRleHQtPnNldEljb25EYXRhYmFzZVBhdGgoZGF0YWJh
c2VQYXRoKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjA1LDE3ICsxOTksMTcgQEAgUGFz
c1JlZlB0cjxWaWJyYXRpb25Qcm92aWRlcj4gRXdrQ29udGV4dDo6dmlicmF0aW9uUHJvdmlkZXIo
KQogCiB2b2lkIEV3a0NvbnRleHQ6OmFkZFZpc2l0ZWRMaW5rKGNvbnN0IFN0cmluZyYgdmlzaXRl
ZFVSTCkKIHsKLSAgICB0b0ltcGwobV9jb250ZXh0LmdldCgpKS0+YWRkVmlzaXRlZExpbmsodmlz
aXRlZFVSTCk7CisgICAgbV93ZWJDb250ZXh0LT5hZGRWaXNpdGVkTGluayh2aXNpdGVkVVJMKTsK
IH0KIAogdm9pZCBFd2tDb250ZXh0OjpzZXRDYWNoZU1vZGVsKEV3a19DYWNoZV9Nb2RlbCBjYWNo
ZU1vZGVsKQogewotICAgIFdLQ29udGV4dFNldENhY2hlTW9kZWwobV9jb250ZXh0LmdldCgpLCBz
dGF0aWNfY2FzdDxFd2tfQ2FjaGVfTW9kZWw+KGNhY2hlTW9kZWwpKTsKKyAgICBXS0NvbnRleHRT
ZXRDYWNoZU1vZGVsKHRvQVBJKG1fd2ViQ29udGV4dC5nZXQoKSksIHN0YXRpY19jYXN0PEV3a19D
YWNoZV9Nb2RlbD4oY2FjaGVNb2RlbCkpOwogfQogCiBFd2tfQ2FjaGVfTW9kZWwgRXdrQ29udGV4
dDo6Y2FjaGVNb2RlbCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEV3a19DYWNo
ZV9Nb2RlbD4oV0tDb250ZXh0R2V0Q2FjaGVNb2RlbChtX2NvbnRleHQuZ2V0KCkpKTsKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8RXdrX0NhY2hlX01vZGVsPihtX3dlYkNvbnRleHQtPmNhY2hlTW9k
ZWwoKSk7CiB9CiAKIEV3a19Db29raWVfTWFuYWdlciogZXdrX2NvbnRleHRfY29va2llX21hbmFn
ZXJfZ2V0KGNvbnN0IEV3a19Db250ZXh0KiBld2tDb250ZXh0KQpAQCAtMjUzLDExICsyNDcsNiBA
QCBFd2tfU3RvcmFnZV9NYW5hZ2VyKiBld2tfY29udGV4dF9zdG9yYWdlX21hbmFnZXJfZ2V0KGNv
bnN0IEV3a19Db250ZXh0KiBld2tDb250ZQogICAgIHJldHVybiBpbXBsLT5zdG9yYWdlTWFuYWdl
cigpOwogfQogCi1XS0NvbnRleHRSZWYgRXdrQ29udGV4dDo6d2tDb250ZXh0KCkKLXsKLSAgICBy
ZXR1cm4gbV9jb250ZXh0LmdldCgpOwotfQotCiBEb3dubG9hZE1hbmFnZXJFZmwqIEV3a0NvbnRl
eHQ6OmRvd25sb2FkTWFuYWdlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZG93bmxvYWRNYW5h
Z2VyLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2NvbnRleHRfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2NvbnRleHRfcHJpdmF0ZS5oCmluZGV4IDRkZGI2NTMyNGQzZDQwOTY0MzcwNTA1NDY4ZmIz
NTY5NmU0MTQ5MWUuLjk3OWVkN2U2OTEwN2ZlZjU1NDFlYjcyNzFmMzg0NjYyNzQwNWYzMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4
dF9wcml2YXRlLmgKQEAgLTIzLDkgKzIzLDEyIEBACiAjaW5jbHVkZSAiRG93bmxvYWRNYW5hZ2Vy
RWZsLmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIK
KyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiZXdrX2NvbnRleHQuaCIKICNpbmNs
dWRlICJld2tfb2JqZWN0X3ByaXZhdGUuaCIKIAordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKwog
Y2xhc3MgRXdrX0Nvb2tpZV9NYW5hZ2VyOwogY2xhc3MgRXdrX0Zhdmljb25fRGF0YWJhc2U7CiAK
QEAgLTQ3LDcgKzUwLDcgQEAgY2xhc3MgRXdrQ29udGV4dCA6IHB1YmxpYyBFd2tfT2JqZWN0IHsK
IHB1YmxpYzoKICAgICBFV0tfT0JKRUNUX0RFQ0xBUkUoRXdrQ29udGV4dCkKIAotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IGNyZWF0ZShXS0NvbnRleHRSZWYgY29udGV4dCk7Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrQ29udGV4dD4gY3JlYXRlKFdlYkNvbnRleHQqIGNvbnRl
eHQpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IGNyZWF0ZSgpOwogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGluamVjdGVk
QnVuZGxlUGF0aCk7CiAKQEAgLTc2LDE4ICs3OSwxOCBAQCBwdWJsaWM6CiAKICAgICBFd2tfQ2Fj
aGVfTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0OwogCi0gICAgV0tDb250ZXh0UmVmIHdrQ29udGV4
dCgpOworICAgIFdlYkNvbnRleHQqIHdlYkNvbnRleHQoKSB7IHJldHVybiBtX3dlYkNvbnRleHQu
Z2V0KCk7IH0KIAogICAgIFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyRWZsKiBkb3dubG9hZE1hbmFn
ZXIoKSBjb25zdDsKIAogICAgIFdlYktpdDo6Q29udGV4dEhpc3RvcnlDbGllbnRFZmwqIGhpc3Rv
cnlDbGllbnQoKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBFd2tDb250ZXh0KFdLQ29udGV4
dFJlZik7CisgICAgZXhwbGljaXQgRXdrQ29udGV4dChXZWJDb250ZXh0Kik7CiAKICAgICB2b2lk
IGVuc3VyZUZhdmljb25EYXRhYmFzZSgpOwogCi0gICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVm
PiBtX2NvbnRleHQ7CisgICAgUmVmUHRyPFdlYkNvbnRleHQ+IG1fd2ViQ29udGV4dDsKIAogICAg
IE93blB0cjxFd2tfQ29va2llX01hbmFnZXI+IG1fY29va2llTWFuYWdlcjsKICAgICBPd25QdHI8
RXdrX0RhdGFiYXNlX01hbmFnZXI+IG1fZGF0YWJhc2VNYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2RhdGFiYXNlX21hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2RhdGFiYXNlX21hbmFnZXIuY3Bw
CmluZGV4IGI2NjU2OGI2NTg5Mzc5Y2U2Y2M5NzMwMDhhZjRmMWZiMjE4MWYzYTkuLjQ5YmJjZTFh
Y2U3ZDAzODRjNmEzYWRlYjA1Y2RiN2JlZWMxYzJhODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19kYXRhYmFzZV9tYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZGF0YWJhc2VfbWFuYWdlci5jcHAKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS0FycmF5
LmgiCiAjaW5jbHVkZSAiV0tEYXRhYmFzZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJEYXRhYmFz
ZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgImV3a19kYXRhYmFzZV9tYW5hZ2VyX3ByaXZhdGUu
aCIKICNpbmNsdWRlICJld2tfZXJyb3JfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19zZWN1cml0
eV9vcmlnaW4uaCIKQEAgLTM3LDEzICszOCwxMyBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OwogCi1Fd2tfRGF0YWJhc2VfTWFuYWdlcjo6RXdrX0RhdGFiYXNlX01hbmFnZXIoV0tEYXRhYmFz
ZU1hbmFnZXJSZWYgZGF0YWJhc2VNYW5hZ2VyUmVmKQotICAgIDogbV9kYXRhYmFzZU1hbmFnZXIo
ZGF0YWJhc2VNYW5hZ2VyUmVmKQorRXdrX0RhdGFiYXNlX01hbmFnZXI6OkV3a19EYXRhYmFzZV9N
YW5hZ2VyKFdlYkRhdGFiYXNlTWFuYWdlclByb3h5KiBkYXRhYmFzZU1hbmFnZXIpCisgICAgOiBt
X2RhdGFiYXNlTWFuYWdlcihkYXRhYmFzZU1hbmFnZXIpCiB7IH0KIAogdm9pZCBFd2tfRGF0YWJh
c2VfTWFuYWdlcjo6Z2V0RGF0YWJhc2VPcmlnaW5zKFdLRGF0YWJhc2VNYW5hZ2VyR2V0RGF0YWJh
c2VPcmlnaW5zRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNvbnRleHQpIGNvbnN0CiB7Ci0gICAg
V0tEYXRhYmFzZU1hbmFnZXJHZXREYXRhYmFzZU9yaWdpbnMobV9kYXRhYmFzZU1hbmFnZXIuZ2V0
KCksIGNvbnRleHQsIGNhbGxiYWNrKTsKKyAgICBXS0RhdGFiYXNlTWFuYWdlckdldERhdGFiYXNl
T3JpZ2lucyh0b0FQSShtX2RhdGFiYXNlTWFuYWdlci5nZXQoKSksIGNvbnRleHQsIGNhbGxiYWNr
KTsKIH0KIAogRWluYV9MaXN0KiBFd2tfRGF0YWJhc2VfTWFuYWdlcjo6Y3JlYXRlT3JpZ2luTGlz
dChXS0FycmF5UmVmIG9yaWdpbnMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfZGF0YWJhc2VfbWFuYWdlcl9wcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZGF0YWJhc2VfbWFuYWdlcl9wcml2YXRlLmgK
aW5kZXggMGU0NDk3MDBhZjkzZGQ2NzgyM2FmYzQzYmUzNGFhOTMwZGJjZDM0Yi4uNWQ2NDk5NmRk
NDE3ODNhNjU4ZjI4NWVjNmU4MDk0NDU1YjY4YTk1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2RhdGFiYXNlX21hbmFnZXJfcHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19kYXRhYmFzZV9tYW5hZ2VyX3By
aXZhdGUuaApAQCAtMjcsMjUgKzI3LDI5IEBACiAjZGVmaW5lIGV3a19kYXRhYmFzZV9tYW5hZ2Vy
X3ByaXZhdGVfaAogCiAjaW5jbHVkZSAiV0tEYXRhYmFzZU1hbmFnZXIuaCIKLSNpbmNsdWRlICJX
S1JldGFpblB0ci5oIgorI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJEYXRh
YmFzZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgImV3a19zZWN1cml0eV9vcmlnaW4uaCIKICNp
bmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAK
K3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKIGNsYXNzIEV3a19EYXRhYmFzZV9NYW5hZ2VyIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxFd2tfRGF0YWJhc2VfTWFuYWdlcj4gY3Jl
YXRlKFdLRGF0YWJhc2VNYW5hZ2VyUmVmIGRhdGFiYXNlTWFuYWdlclJlZikKKyAgICBzdGF0aWMg
UGFzc093blB0cjxFd2tfRGF0YWJhc2VfTWFuYWdlcj4gY3JlYXRlKFdlYkNvbnRleHQqIGNvbnRl
eHQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEV3a19EYXRhYmFzZV9NYW5h
Z2VyKGRhdGFiYXNlTWFuYWdlclJlZikpOworICAgICAgICBBU1NFUlQoY29udGV4dCk7CisgICAg
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgRXdrX0RhdGFiYXNlX01hbmFnZXIoY29udGV4dC0+ZGF0
YWJhc2VNYW5hZ2VyUHJveHkoKSkpOwogICAgIH0KIAogICAgIEVpbmFfTGlzdCogY3JlYXRlT3Jp
Z2luTGlzdChXS0FycmF5UmVmIHdrTGlzdCkgY29uc3Q7CiAgICAgdm9pZCBnZXREYXRhYmFzZU9y
aWdpbnMoV0tEYXRhYmFzZU1hbmFnZXJHZXREYXRhYmFzZU9yaWdpbnNGdW5jdGlvbiBjYWxsYmFj
aywgdm9pZCogY29udGV4dCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgRXdrX0Rh
dGFiYXNlX01hbmFnZXIoV0tEYXRhYmFzZU1hbmFnZXJSZWYpOworICAgIGV4cGxpY2l0IEV3a19E
YXRhYmFzZV9NYW5hZ2VyKFdlYkRhdGFiYXNlTWFuYWdlclByb3h5Kik7CiAKLSAgICBXS1JldGFp
blB0cjxXS0RhdGFiYXNlTWFuYWdlclJlZj4gbV9kYXRhYmFzZU1hbmFnZXI7CisgICAgUmVmUHRy
PFdlYkRhdGFiYXNlTWFuYWdlclByb3h5PiBtX2RhdGFiYXNlTWFuYWdlcjsKICAgICBtdXRhYmxl
IEhhc2hNYXA8V0tTZWN1cml0eU9yaWdpblJlZiwgUmVmUHRyPEV3a19TZWN1cml0eV9PcmlnaW4+
ID4gbV93cmFwcGVyQ2FjaGU7CiB9OwogI2VuZGlmIC8vIGV3a19kYXRhYmFzZV9tYW5hZ2VyX3By
aXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3N0b3JhZ2VfbWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfc3RvcmFnZV9tYW5hZ2VyLmNwcAppbmRleCA4MGNhYzc2NWNiMzIxNzcyYTI5NzA5ZWViODM4
NWUzZjY5YzU5NmMxLi42MjBmMjE5YWZmMmVlODE0MDViYTk2NjVmZDcxMDI5ZWU2NTk3NzhjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc3RvcmFnZV9t
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc3Rv
cmFnZV9tYW5hZ2VyLmNwcApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiV0tBUElDYXN0
LmgiCiAjaW5jbHVkZSAiV0tBcnJheS5oIgotI2luY2x1ZGUgIldLS2V5VmFsdWVTdG9yYWdlTWFu
YWdlci5oIgorI2luY2x1ZGUgIldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eS5oIgogI2lu
Y2x1ZGUgImV3a19lcnJvcl9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3NlY3VyaXR5X29yaWdp
bi5oIgogI2luY2x1ZGUgImV3a19zZWN1cml0eV9vcmlnaW5fcHJpdmF0ZS5oIgpAQCAtMzcsMTMg
KzM3LDEzIEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLUV3a19TdG9yYWdlX01hbmFn
ZXI6OkV3a19TdG9yYWdlX01hbmFnZXIoV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmIHdrU3Rv
cmFnZU1hbmFnZXJSZWYpCi0gICAgOiBtX3drU3RvcmFnZU1hbmFnZXIod2tTdG9yYWdlTWFuYWdl
clJlZikKK0V3a19TdG9yYWdlX01hbmFnZXI6OkV3a19TdG9yYWdlX01hbmFnZXIoV2ViS2V5VmFs
dWVTdG9yYWdlTWFuYWdlclByb3h5KiBzdG9yYWdlTWFuYWdlclByb3h5KQorICAgIDogbV9zdG9y
YWdlTWFuYWdlcihzdG9yYWdlTWFuYWdlclByb3h5KQogeyB9CiAKIHZvaWQgRXdrX1N0b3JhZ2Vf
TWFuYWdlcjo6Z2V0U3RvcmFnZU9yaWdpbnModm9pZCogY29udGV4dCwgV0tLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyR2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2luc0Z1bmN0aW9uIGNhbGxiYWNrKSBjb25z
dAogewotICAgIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlckdldEtleVZhbHVlU3RvcmFnZU9yaWdp
bnMobV93a1N0b3JhZ2VNYW5hZ2VyLmdldCgpLCBjb250ZXh0LCBjYWxsYmFjayk7CisgICAgV0tL
ZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyR2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2lucyh0b0FQSShtX3N0
b3JhZ2VNYW5hZ2VyLmdldCgpKSwgY29udGV4dCwgY2FsbGJhY2spOwogfQogCiBFaW5hX0xpc3Qq
IEV3a19TdG9yYWdlX01hbmFnZXI6OmNyZWF0ZU9yaWdpbkxpc3QoV0tBcnJheVJlZiBvcmlnaW5z
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3N0b3JhZ2VfbWFuYWdlcl9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfc3RvcmFnZV9tYW5hZ2VyX3ByaXZhdGUuaAppbmRleCA1ZWVlYTQ5MTM3OTE1ZDRm
MjAwNzUyNzdjODc0YzE0MGI2OTY5YjhkLi42NDJhYjc0NzZiN2U1N2UxODIwMzdlYWI1YmE4YjVk
MTVlZDU5OGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfc3RvcmFnZV9tYW5hZ2VyX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfc3RvcmFnZV9tYW5hZ2VyX3ByaXZhdGUuaApAQCAtMjcsMjUgKzI3LDI5
IEBACiAjZGVmaW5lIGV3a19zdG9yYWdlX21hbmFnZXJfcHJpdmF0ZV9oCiAKICNpbmNsdWRlICJX
S0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCIKLSNpbmNsdWRlICJXS1JldGFpblB0ci5oIgorI2lu
Y2x1ZGUgIldlYkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UHJveHkuaCIKICNpbmNsdWRlICJld2tfc2VjdXJpdHlfb3JpZ2luX3ByaXZhdGUuaCIKICNpbmNs
dWRlIDxXZWJLaXQyL1dLQmFzZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKIGNsYXNzIEV3a19TdG9yYWdlX01hbmFnZXIgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEV3a19TdG9yYWdlX01hbmFnZXI+IGNyZWF0ZShX
S0tleVZhbHVlU3RvcmFnZU1hbmFnZXJSZWYgd2tTdG9yYWdlTWFuYWdlclJlZikKKyAgICBzdGF0
aWMgUGFzc093blB0cjxFd2tfU3RvcmFnZV9NYW5hZ2VyPiBjcmVhdGUoV2ViQ29udGV4dCogY29u
dGV4dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRXdrX1N0b3JhZ2VfTWFu
YWdlcih3a1N0b3JhZ2VNYW5hZ2VyUmVmKSk7CisgICAgICAgIEFTU0VSVChjb250ZXh0KTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBFd2tfU3RvcmFnZV9NYW5hZ2VyKGNvbnRleHQtPmtl
eVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eSgpKSk7CiAgICAgfQogCiAgICAgRWluYV9MaXN0KiBj
cmVhdGVPcmlnaW5MaXN0KFdLQXJyYXlSZWYgd2tMaXN0KSBjb25zdDsKICAgICB2b2lkIGdldFN0
b3JhZ2VPcmlnaW5zKHZvaWQqIGNvbnRleHQsIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlckdldEtl
eVZhbHVlU3RvcmFnZU9yaWdpbnNGdW5jdGlvbiBjYWxsYmFjaykgY29uc3Q7CiAKIHByaXZhdGU6
Ci0gICAgZXhwbGljaXQgRXdrX1N0b3JhZ2VfTWFuYWdlcihXS0tleVZhbHVlU3RvcmFnZU1hbmFn
ZXJSZWYgd2tTdG9yYWdlTWFuYWdlclJlZik7CisgICAgZXhwbGljaXQgRXdrX1N0b3JhZ2VfTWFu
YWdlcihXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkqIHN0b3JhZ2VNYW5hZ2VyUHJveHkp
OwogCi0gICAgV0tSZXRhaW5QdHI8V0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmPiBtX3drU3Rv
cmFnZU1hbmFnZXI7CisgICAgUmVmUHRyPFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eT4g
bV9zdG9yYWdlTWFuYWdlcjsKICAgICBtdXRhYmxlIEhhc2hNYXA8V0tTZWN1cml0eU9yaWdpblJl
ZiwgUmVmUHRyPEV3a19TZWN1cml0eV9PcmlnaW4+ID4gbV93cmFwcGVyQ2FjaGU7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKaW5kZXggMjFm
YzE5M2E2MzU4YTIwOTI2NGNmNDc4YTNhMGRkMDllNzRkYzA1OC4uZDIxNGVkNjkyMTY0Y2E1NzU3
OTUwN2U4YmQxNzY1OWFjMWYyYWMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3LmNwcApAQCAtNTIyLDcgKzUyMiw3IEBAIHN0YXRpYyBpbmxpbmUgRXZh
c19PYmplY3QqIGNyZWF0ZUV3a1ZpZXcoRXZhcyogY2FudmFzLCBFdmFzX1NtYXJ0KiBzbWFydCwg
UGFzc1JlCiAgKi8KIEV2YXNfT2JqZWN0KiBld2tfdmlld19iYXNlX2FkZChFdmFzKiBjYW52YXMs
IFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCiB7
Ci0gICAgcmV0dXJuIGNyZWF0ZUV3a1ZpZXcoY2FudmFzLCBjcmVhdGVFd2tWaWV3U21hcnRDbGFz
cygpLCBFd2tDb250ZXh0OjpjcmVhdGUoY29udGV4dFJlZiksIHBhZ2VHcm91cFJlZiwgRXdrVmll
d0ltcGw6OkxlZ2FjeUJlaGF2aW9yKTsKKyAgICByZXR1cm4gY3JlYXRlRXdrVmlldyhjYW52YXMs
IGNyZWF0ZUV3a1ZpZXdTbWFydENsYXNzKCksIEV3a0NvbnRleHQ6OmNyZWF0ZSh0b0ltcGwoY29u
dGV4dFJlZikpLCBwYWdlR3JvdXBSZWYsIEV3a1ZpZXdJbXBsOjpMZWdhY3lCZWhhdmlvcik7CiB9
CiAKIEV2YXNfT2JqZWN0KiBld2tfdmlld19zbWFydF9hZGQoRXZhcyogY2FudmFzLCBFdmFzX1Nt
YXJ0KiBzbWFydCwgRXdrX0NvbnRleHQqIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVmbC5jcHAKaW5kZXggODY5ZTQ0ZjNhZTNl
NmExOWQ2MjljOGQwNzMzMjA1MmU1ZjBhN2Y4YS4uM2ZkZWI5YzY0ZTllNDBkNDliNTllZTY1N2Fl
MjJmMTFiOTlkYTI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9E
b3dubG9hZE1hbmFnZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
RG93bmxvYWRNYW5hZ2VyRWZsLmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIERvd25sb2FkTWFuYWdl
ckVmbDo6RG93bmxvYWRNYW5hZ2VyRWZsKEV3a0NvbnRleHQqIGNvbnRleHQpCiAgICAgd2tEb3du
bG9hZENsaWVudC5kaWRGYWlsID0gZGlkRmFpbDsKICAgICB3a0Rvd25sb2FkQ2xpZW50LmRpZEZp
bmlzaCA9IGRpZEZpbmlzaDsKIAotICAgIFdLQ29udGV4dFNldERvd25sb2FkQ2xpZW50KGNvbnRl
eHQtPndrQ29udGV4dCgpLCAmd2tEb3dubG9hZENsaWVudCk7CisgICAgV0tDb250ZXh0U2V0RG93
bmxvYWRDbGllbnQodG9BUEkoY29udGV4dC0+d2ViQ29udGV4dCgpKSwgJndrRG93bmxvYWRDbGll
bnQpOwogfQogCiB2b2lkIERvd25sb2FkTWFuYWdlckVmbDo6cmVnaXN0ZXJEb3dubG9hZChEb3du
bG9hZFByb3h5KiBkb3dubG9hZCwgRXdrVmlld0ltcGwqIHZpZXdJbXBsKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNw
cAppbmRleCAzZmIzMmM2NDc1MjhlZmYwMTIwZTFmMDI2OWYzMDA3MTRmMzc1ZTBiLi4xNzgwMDMz
NDgxMjExNzY2OGFiMTA1MzdkNWQxOTI2NTU2OWJlMmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNwcApAQCAt
NjcsNyArNjcsNyBAQCB2b2lkIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpkaWRSZWNlaXZlVVJJ
UmVxdWVzdChXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiBzb3VwUgogfQogCiBSZXF1ZXN0TWFuYWdl
ckNsaWVudEVmbDo6UmVxdWVzdE1hbmFnZXJDbGllbnRFZmwoRXdrQ29udGV4dCogY29udGV4dCkK
LSAgICA6IG1fc291cFJlcXVlc3RNYW5hZ2VyKFdLQ29udGV4dEdldFNvdXBSZXF1ZXN0TWFuYWdl
cihjb250ZXh0LT53a0NvbnRleHQoKSkpCisgICAgOiBtX3NvdXBSZXF1ZXN0TWFuYWdlcihXS0Nv
bnRleHRHZXRTb3VwUmVxdWVzdE1hbmFnZXIodG9BUEkoY29udGV4dC0+d2ViQ29udGV4dCgpKSkp
CiB7CiAgICAgQVNTRVJUKGNvbnRleHQpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172913</attachid>
            <date>2012-11-07 18:41:21 -0800</date>
            <delta_ts>2012-11-08 01:55:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101477-20121108113925.patch</filename>
            <type>text/plain</type>
            <size>19777</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzkzNTYyMzQzYzk5ZmQ3
YjcwZDM5MjlhMTQ4YzlhZjhjM2I2MDc5Yy4uNDVlOWMwOTFlOTNhZGQ3NmRmYTJlMmFmOWM5NDdh
MmFjMTMxYTEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTExLTA3ICBKaW53
b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJd
IE1ha2UgZXdrX2NvbnRleHQgdXNlIFdlYkNvbnRleHQgaW5zdGVhZCBvZiBXS0NvbnRleHQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTQ3NworCisg
ICAgICAgIFJldmlld2VkIGJ5IEd5dXlvdW5nIEtpbS4KKworICAgICAgICBSZWZhY3RvciBld2tf
Y29udGV4dCB0byB1c2UgV2ViQ29udGV4dCBhcyBld2tfY29udGV4dCBpcyBlbmNhcHN1bGF0ZWQg
aW4gYSBDKysgY2xhc3Nlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJ
bXBsLmNwcDoKKyAgICAgICAgKEV3a1ZpZXdJbXBsOjpFd2tWaWV3SW1wbCk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwOgorICAgICAgICAoRXdrQ29udGV4dDo6
RXdrQ29udGV4dCk6CisgICAgICAgIChFd2tDb250ZXh0Ojp+RXdrQ29udGV4dCk6CisgICAgICAg
IChFd2tDb250ZXh0OjpjcmVhdGUpOgorICAgICAgICAoRXdrQ29udGV4dDo6ZGVmYXVsdENvbnRl
eHQpOgorICAgICAgICAoRXdrQ29udGV4dDo6Y29va2llTWFuYWdlcik6CisgICAgICAgIChFd2tD
b250ZXh0OjplbnN1cmVGYXZpY29uRGF0YWJhc2UpOgorICAgICAgICAoRXdrQ29udGV4dDo6c2V0
RmF2aWNvbkRhdGFiYXNlRGlyZWN0b3J5UGF0aCk6CisgICAgICAgIChFd2tDb250ZXh0OjphZGRW
aXNpdGVkTGluayk6CisgICAgICAgIChFd2tDb250ZXh0OjpzZXRDYWNoZU1vZGVsKToKKyAgICAg
ICAgKEV3a0NvbnRleHQ6OmNhY2hlTW9kZWwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZs
L2V3a19jb250ZXh0X3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a0NvbnRleHQpOgorICAgICAgICAo
RXdrQ29udGV4dDo6d2ViQ29udGV4dCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2RhdGFiYXNlX21hbmFnZXIuY3BwOgorICAgICAgICAoRXdrX0RhdGFiYXNlX01hbmFnZXI6OkV3
a19EYXRhYmFzZV9NYW5hZ2VyKToKKyAgICAgICAgKEV3a19EYXRhYmFzZV9NYW5hZ2VyOjpnZXRE
YXRhYmFzZU9yaWdpbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19kYXRhYmFz
ZV9tYW5hZ2VyX3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a19EYXRhYmFzZV9NYW5hZ2VyOjpjcmVh
dGUpOgorICAgICAgICAoRXdrX0RhdGFiYXNlX01hbmFnZXIpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZWZsL2V3a19zdG9yYWdlX21hbmFnZXIuY3BwOgorICAgICAgICAoRXdrX1N0b3JhZ2Vf
TWFuYWdlcjo6RXdrX1N0b3JhZ2VfTWFuYWdlcik6CisgICAgICAgIChFd2tfU3RvcmFnZV9NYW5h
Z2VyOjpnZXRTdG9yYWdlT3JpZ2lucyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3N0b3JhZ2VfbWFuYWdlcl9wcml2YXRlLmg6CisgICAgICAgIChFd2tfU3RvcmFnZV9NYW5hZ2Vy
OjpjcmVhdGUpOgorICAgICAgICAoRXdrX1N0b3JhZ2VfTWFuYWdlcik6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwOgorICAgICAgICAoZXdrX3ZpZXdfYmFzZV9hZGQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyRWZsOjpEb3dubG9hZE1hbmFnZXJFZmwpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6UmVxdWVzdE1hbmFnZXJDbGllbnRF
ZmwpOgorCiAyMDEyLTExLTA3ICBCeXVuZ3dvbyBMZWUgIDxidzgwLmxlZUBzYW1zdW5nLmNvbT4K
IAogICAgICAgICBbV0syXSBNYWtlIFdlYlZpYnJhdGlvblByb3h5IHRvIGJlIGEgbWVtYmVyIG9m
IFdlYlBhZ2VQcm94eS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL0V3a1ZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3
a1ZpZXdJbXBsLmNwcAppbmRleCA5OGUyOTU5NzdlZDRkMmJiZDc3NWI0NWY2ZDkwMmFkMTk4Njc2
Nzg1Li4xMzgxMmE2NDk4N2ZkYmQ3OTc3ZDNmNDhmY2Y5YTkwNzYxNjAyM2Y5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuY3BwCkBAIC0xMDQs
NyArMTA0LDcgQEAgRXdrVmlld0ltcGw6OkV3a1ZpZXdJbXBsKEV2YXNfT2JqZWN0KiB2aWV3LCBQ
YXNzUmVmUHRyPEV3a0NvbnRleHQ+IGNvbnRleHQsIFBhc3MKICAgICA6IG1fdmlldyh2aWV3KQog
ICAgICwgbV9jb250ZXh0KGNvbnRleHQpCiAgICAgLCBtX3BhZ2VDbGllbnQoYmVoYXZpb3IgPT0g
RGVmYXVsdEJlaGF2aW9yID8gUGFnZUNsaWVudERlZmF1bHRJbXBsOjpjcmVhdGUodGhpcykgOiBQ
YWdlQ2xpZW50TGVnYWN5SW1wbDo6Y3JlYXRlKHRoaXMpKQotICAgICwgbV9wYWdlUHJveHkodG9J
bXBsKG1fY29udGV4dC0+d2tDb250ZXh0KCkpLT5jcmVhdGVXZWJQYWdlKG1fcGFnZUNsaWVudC5n
ZXQoKSwgcGFnZUdyb3VwLmdldCgpKSkKKyAgICAsIG1fcGFnZVByb3h5KG1fY29udGV4dC0+d2Vi
Q29udGV4dCgpLT5jcmVhdGVXZWJQYWdlKG1fcGFnZUNsaWVudC5nZXQoKSwgcGFnZUdyb3VwLmdl
dCgpKSkKICAgICAsIG1fcGFnZUxvYWRDbGllbnQoUGFnZUxvYWRDbGllbnRFZmw6OmNyZWF0ZSh0
aGlzKSkKICAgICAsIG1fcGFnZVBvbGljeUNsaWVudChQYWdlUG9saWN5Q2xpZW50RWZsOjpjcmVh
dGUodGhpcykpCiAgICAgLCBtX3BhZ2VVSUNsaWVudChQYWdlVUlDbGllbnRFZmw6OmNyZWF0ZSh0
aGlzKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19j
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0
LmNwcAppbmRleCBlOGI2MmRhYWE3MGU3MmYxNjFlNzUzNWNkNTNkMDM3OWFkOTFmMWE3Li45MWEw
Y2VjN2M2MGY4ZTljYTc0MGJhNjIyYzRlMmFkY2Q0ZmFiMjg5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCkBAIC01Myw3ICs1Myw3IEBA
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLXR5
cGVkZWYgSGFzaE1hcDxXS0NvbnRleHRSZWYsIEV3a0NvbnRleHQqPiBDb250ZXh0TWFwOwordHlw
ZWRlZiBIYXNoTWFwPFdlYkNvbnRleHQqLCBFd2tDb250ZXh0Kj4gQ29udGV4dE1hcDsKIAogc3Rh
dGljIGlubGluZSBDb250ZXh0TWFwJiBjb250ZXh0TWFwKCkKIHsKQEAgLTYxLDE5ICs2MSwxOSBA
QCBzdGF0aWMgaW5saW5lIENvbnRleHRNYXAmIGNvbnRleHRNYXAoKQogICAgIHJldHVybiBtYXA7
CiB9CiAKLUV3a0NvbnRleHQ6OkV3a0NvbnRleHQoV0tDb250ZXh0UmVmIGNvbnRleHQpCi0gICAg
OiBtX2NvbnRleHQoY29udGV4dCkKLSAgICAsIG1fZGF0YWJhc2VNYW5hZ2VyKEV3a19EYXRhYmFz
ZV9NYW5hZ2VyOjpjcmVhdGUoV0tDb250ZXh0R2V0RGF0YWJhc2VNYW5hZ2VyKG1fY29udGV4dC5n
ZXQoKSkpKQotICAgICwgbV9zdG9yYWdlTWFuYWdlcihFd2tfU3RvcmFnZV9NYW5hZ2VyOjpjcmVh
dGUoV0tDb250ZXh0R2V0S2V5VmFsdWVTdG9yYWdlTWFuYWdlcihtX2NvbnRleHQuZ2V0KCkpKSkK
K0V3a0NvbnRleHQ6OkV3a0NvbnRleHQoV2ViQ29udGV4dCogY29udGV4dCkKKyAgICA6IG1fd2Vi
Q29udGV4dChjb250ZXh0KQorICAgICwgbV9kYXRhYmFzZU1hbmFnZXIoRXdrX0RhdGFiYXNlX01h
bmFnZXI6OmNyZWF0ZShjb250ZXh0KSkKKyAgICAsIG1fc3RvcmFnZU1hbmFnZXIoRXdrX1N0b3Jh
Z2VfTWFuYWdlcjo6Y3JlYXRlKGNvbnRleHQpKQogI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykK
LSAgICAsIG1fYmF0dGVyeVByb3ZpZGVyKEJhdHRlcnlQcm92aWRlcjo6Y3JlYXRlKGNvbnRleHQp
KQorICAgICwgbV9iYXR0ZXJ5UHJvdmlkZXIoQmF0dGVyeVByb3ZpZGVyOjpjcmVhdGUodG9BUEko
Y29udGV4dCkpKQogI2VuZGlmCiAjaWYgRU5BQkxFKE5FVFdPUktfSU5GTykKLSAgICAsIG1fbmV0
d29ya0luZm9Qcm92aWRlcihOZXR3b3JrSW5mb1Byb3ZpZGVyOjpjcmVhdGUoY29udGV4dCkpCisg
ICAgLCBtX25ldHdvcmtJbmZvUHJvdmlkZXIoTmV0d29ya0luZm9Qcm92aWRlcjo6Y3JlYXRlKHRv
QVBJKGNvbnRleHQpKSkKICNlbmRpZgogICAgICwgbV9kb3dubG9hZE1hbmFnZXIoRG93bmxvYWRN
YW5hZ2VyRWZsOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX3JlcXVlc3RNYW5hZ2VyQ2xpZW50KFJl
cXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpjcmVhdGUodGhpcykpCi0gICAgLCBtX2hpc3RvcnlDbGll
bnQoQ29udGV4dEhpc3RvcnlDbGllbnRFZmw6OmNyZWF0ZShjb250ZXh0KSkKKyAgICAsIG1faGlz
dG9yeUNsaWVudChDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6Y3JlYXRlKHRvQVBJKGNvbnRleHQp
KSkKIHsKICAgICBDb250ZXh0TWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0gY29udGV4dE1hcCgpLmFk
ZChjb250ZXh0LCB0aGlzKTsKICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3
RW50cnkpOwpAQCAtODMsOCArODMsNyBAQCBFd2tDb250ZXh0OjpFd2tDb250ZXh0KFdLQ29udGV4
dFJlZiBjb250ZXh0KQogICAgIHN0YXRpYyBjb25zdCBjaGFyIGVudmlyb25tZW50VmFyaWFibGVb
XSA9ICJTQU1QTEVfTUVNT1JZIjsKIAogICAgIGlmICghaW5pdGlhbGl6ZU1lbW9yeVNhbXBsZXIg
JiYgZ2V0ZW52KGVudmlyb25tZW50VmFyaWFibGUpKSB7Ci0gICAgICAgIFdLUmV0YWluUHRyPFdL
RG91YmxlUmVmPiBpbnRlcnZhbChBZG9wdFdLLCBXS0RvdWJsZUNyZWF0ZSgwLjApKTsKLSAgICAg
ICAgV0tDb250ZXh0U3RhcnRNZW1vcnlTYW1wbGVyKGNvbnRleHQsIGludGVydmFsLmdldCgpKTsK
KyAgICAgICAgY29udGV4dC0+c3RhcnRNZW1vcnlTYW1wbGVyKDAuMCk7CiAgICAgICAgIGluaXRp
YWxpemVNZW1vcnlTYW1wbGVyID0gdHJ1ZTsKICAgICB9CiAjZW5kaWYKQEAgLTEwMCwxMSArOTks
MTEgQEAgRXdrQ29udGV4dDo6RXdrQ29udGV4dChXS0NvbnRleHRSZWYgY29udGV4dCkKIAogRXdr
Q29udGV4dDo6fkV3a0NvbnRleHQoKQogewotICAgIEFTU0VSVChjb250ZXh0TWFwKCkuZ2V0KG1f
Y29udGV4dC5nZXQoKSkgPT0gdGhpcyk7Ci0gICAgY29udGV4dE1hcCgpLnJlbW92ZShtX2NvbnRl
eHQuZ2V0KCkpOworICAgIEFTU0VSVChjb250ZXh0TWFwKCkuZ2V0KG1fd2ViQ29udGV4dC5nZXQo
KSkgPT0gdGhpcyk7CisgICAgY29udGV4dE1hcCgpLnJlbW92ZShtX3dlYkNvbnRleHQuZ2V0KCkp
OwogfQogCi1QYXNzUmVmUHRyPEV3a0NvbnRleHQ+IEV3a0NvbnRleHQ6OmNyZWF0ZShXS0NvbnRl
eHRSZWYgY29udGV4dCkKK1Bhc3NSZWZQdHI8RXdrQ29udGV4dD4gRXdrQ29udGV4dDo6Y3JlYXRl
KFdlYkNvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgaWYgKGNvbnRleHRNYXAoKS5jb250YWlucyhj
b250ZXh0KSkKICAgICAgICAgcmV0dXJuIGNvbnRleHRNYXAoKS5nZXQoY29udGV4dCk7IC8vIFdp
bGwgYmUgcmVmLWVkIGF1dG9tYXRpY2FsbHkuCkBAIC0xMTQsNyArMTEzLDcgQEAgUGFzc1JlZlB0
cjxFd2tDb250ZXh0PiBFd2tDb250ZXh0OjpjcmVhdGUoV0tDb250ZXh0UmVmIGNvbnRleHQpCiAK
IFBhc3NSZWZQdHI8RXdrQ29udGV4dD4gRXdrQ29udGV4dDo6Y3JlYXRlKCkKIHsKLSAgICByZXR1
cm4gY3JlYXRlKGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlKCkpLmdldCgpKTsKKyAgICByZXR1cm4g
Y3JlYXRlKFdlYkNvbnRleHQ6OmNyZWF0ZShTdHJpbmcoKSkuZ2V0KCkpOwogfQogCiBQYXNzUmVm
UHRyPEV3a0NvbnRleHQ+IEV3a0NvbnRleHQ6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGluamVjdGVk
QnVuZGxlUGF0aCkKQEAgLTEyMiwxNSArMTIxLDEyIEBAIFBhc3NSZWZQdHI8RXdrQ29udGV4dD4g
RXdrQ29udGV4dDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgaW5qZWN0ZWRCdW5kbGVQYXRoKQogICAg
IGlmICghZmlsZUV4aXN0cyhpbmplY3RlZEJ1bmRsZVBhdGgpKQogICAgICAgICByZXR1cm4gMDsK
IAotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBpbmplY3RlZEJ1bmRsZVBhdGhXSyA9IGFk
b3B0V0sodG9Db3BpZWRBUEkoaW5qZWN0ZWRCdW5kbGVQYXRoKSk7Ci0gICAgV0tSZXRhaW5QdHI8
V0tDb250ZXh0UmVmPiBjb250ZXh0V0sgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhJbmpl
Y3RlZEJ1bmRsZVBhdGgoaW5qZWN0ZWRCdW5kbGVQYXRoV0suZ2V0KCkpKTsKLQotICAgIHJldHVy
biBjcmVhdGUoY29udGV4dFdLLmdldCgpKTsKKyAgICByZXR1cm4gY3JlYXRlKFdlYkNvbnRleHQ6
OmNyZWF0ZShpbmplY3RlZEJ1bmRsZVBhdGgpLmdldCgpKTsKIH0KIAogUGFzc1JlZlB0cjxFd2tD
b250ZXh0PiBFd2tDb250ZXh0OjpkZWZhdWx0Q29udGV4dCgpCiB7Ci0gICAgc3RhdGljIFJlZlB0
cjxFd2tDb250ZXh0PiBkZWZhdWx0SW5zdGFuY2UgPSBjcmVhdGUoYWRvcHRXSyhXS0NvbnRleHRD
cmVhdGUoKSkuZ2V0KCkpOworICAgIHN0YXRpYyBSZWZQdHI8RXdrQ29udGV4dD4gZGVmYXVsdElu
c3RhbmNlID0gY3JlYXRlKCk7CiAKICAgICByZXR1cm4gZGVmYXVsdEluc3RhbmNlOwogfQpAQCAt
MTM4LDcgKzEzNCw3IEBAIFBhc3NSZWZQdHI8RXdrQ29udGV4dD4gRXdrQ29udGV4dDo6ZGVmYXVs
dENvbnRleHQoKQogRXdrX0Nvb2tpZV9NYW5hZ2VyKiBFd2tDb250ZXh0Ojpjb29raWVNYW5hZ2Vy
KCkKIHsKICAgICBpZiAoIW1fY29va2llTWFuYWdlcikKLSAgICAgICAgbV9jb29raWVNYW5hZ2Vy
ID0gRXdrX0Nvb2tpZV9NYW5hZ2VyOjpjcmVhdGUoV0tDb250ZXh0R2V0Q29va2llTWFuYWdlciht
X2NvbnRleHQuZ2V0KCkpKTsKKyAgICAgICAgbV9jb29raWVNYW5hZ2VyID0gRXdrX0Nvb2tpZV9N
YW5hZ2VyOjpjcmVhdGUoV0tDb250ZXh0R2V0Q29va2llTWFuYWdlcih0b0FQSShtX3dlYkNvbnRl
eHQuZ2V0KCkpKSk7CiAKICAgICByZXR1cm4gbV9jb29raWVNYW5hZ2VyLmdldCgpOwogfQpAQCAt
MTUzLDIzICsxNDksMjEgQEAgdm9pZCBFd2tDb250ZXh0OjplbnN1cmVGYXZpY29uRGF0YWJhc2Uo
KQogICAgIGlmIChtX2Zhdmljb25EYXRhYmFzZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9m
YXZpY29uRGF0YWJhc2UgPSBFd2tfRmF2aWNvbl9EYXRhYmFzZTo6Y3JlYXRlKHRvSW1wbChtX2Nv
bnRleHQuZ2V0KCkpLT5pY29uRGF0YWJhc2UoKSk7CisgICAgbV9mYXZpY29uRGF0YWJhc2UgPSBF
d2tfRmF2aWNvbl9EYXRhYmFzZTo6Y3JlYXRlKG1fd2ViQ29udGV4dC5nZXQoKS0+aWNvbkRhdGFi
YXNlKCkpOwogfQogCiBib29sIEV3a0NvbnRleHQ6OnNldEZhdmljb25EYXRhYmFzZURpcmVjdG9y
eVBhdGgoY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeSkKIHsKICAgICBlbnN1cmVGYXZp
Y29uRGF0YWJhc2UoKTsKIAotICAgIFdlYkNvbnRleHQqIHdlYkNvbnRleHQgPSB0b0ltcGwobV9j
b250ZXh0LmdldCgpKTsKLQogICAgIC8vIFRoZSBkYXRhYmFzZSBwYXRoIGlzIGFscmVhZHkgb3Bl
biBzbyBpdHMgcGF0aCB3YXMKICAgICAvLyBhbHJlYWR5IHNldC4KLSAgICBpZiAod2ViQ29udGV4
dC0+aWNvbkRhdGFiYXNlKCktPmlzT3BlbigpKQorICAgIGlmIChtX3dlYkNvbnRleHQtPmljb25E
YXRhYmFzZSgpLT5pc09wZW4oKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gSWYg
ZGF0YWJhc2VEaXJlY3RvcnkgaXMgZW1wdHksIHdlIHVzZSB0aGUgZGVmYXVsdCBkYXRhYmFzZSBw
YXRoIGZvciB0aGUgcGxhdGZvcm0uCi0gICAgU3RyaW5nIGRhdGFiYXNlUGF0aCA9IGRhdGFiYXNl
RGlyZWN0b3J5LmlzRW1wdHkoKSA/IHdlYkNvbnRleHQtPmljb25EYXRhYmFzZVBhdGgoKSA6IHBh
dGhCeUFwcGVuZGluZ0NvbXBvbmVudChkYXRhYmFzZURpcmVjdG9yeSwgV2ViQ29yZTo6SWNvbkRh
dGFiYXNlOjpkZWZhdWx0RGF0YWJhc2VGaWxlbmFtZSgpKTsKLSAgICB3ZWJDb250ZXh0LT5zZXRJ
Y29uRGF0YWJhc2VQYXRoKGRhdGFiYXNlUGF0aCk7CisgICAgU3RyaW5nIGRhdGFiYXNlUGF0aCA9
IGRhdGFiYXNlRGlyZWN0b3J5LmlzRW1wdHkoKSA/IG1fd2ViQ29udGV4dC0+aWNvbkRhdGFiYXNl
UGF0aCgpIDogcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGRhdGFiYXNlRGlyZWN0b3J5LCBXZWJD
b3JlOjpJY29uRGF0YWJhc2U6OmRlZmF1bHREYXRhYmFzZUZpbGVuYW1lKCkpOworICAgIG1fd2Vi
Q29udGV4dC0+c2V0SWNvbkRhdGFiYXNlUGF0aChkYXRhYmFzZVBhdGgpOwogCiAgICAgcmV0dXJu
IHRydWU7CiB9CkBAIC0xOTQsMTcgKzE4OCwxNyBAQCBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbCog
RXdrQ29udGV4dDo6cmVxdWVzdE1hbmFnZXIoKQogCiB2b2lkIEV3a0NvbnRleHQ6OmFkZFZpc2l0
ZWRMaW5rKGNvbnN0IFN0cmluZyYgdmlzaXRlZFVSTCkKIHsKLSAgICB0b0ltcGwobV9jb250ZXh0
LmdldCgpKS0+YWRkVmlzaXRlZExpbmsodmlzaXRlZFVSTCk7CisgICAgbV93ZWJDb250ZXh0LT5h
ZGRWaXNpdGVkTGluayh2aXNpdGVkVVJMKTsKIH0KIAogdm9pZCBFd2tDb250ZXh0OjpzZXRDYWNo
ZU1vZGVsKEV3a19DYWNoZV9Nb2RlbCBjYWNoZU1vZGVsKQogewotICAgIFdLQ29udGV4dFNldENh
Y2hlTW9kZWwobV9jb250ZXh0LmdldCgpLCBzdGF0aWNfY2FzdDxFd2tfQ2FjaGVfTW9kZWw+KGNh
Y2hlTW9kZWwpKTsKKyAgICBXS0NvbnRleHRTZXRDYWNoZU1vZGVsKHRvQVBJKG1fd2ViQ29udGV4
dC5nZXQoKSksIHN0YXRpY19jYXN0PEV3a19DYWNoZV9Nb2RlbD4oY2FjaGVNb2RlbCkpOwogfQog
CiBFd2tfQ2FjaGVfTW9kZWwgRXdrQ29udGV4dDo6Y2FjaGVNb2RlbCgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PEV3a19DYWNoZV9Nb2RlbD4oV0tDb250ZXh0R2V0Q2FjaGVNb2Rl
bChtX2NvbnRleHQuZ2V0KCkpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXdrX0NhY2hlX01v
ZGVsPihtX3dlYkNvbnRleHQtPmNhY2hlTW9kZWwoKSk7CiB9CiAKIEV3a19Db29raWVfTWFuYWdl
ciogZXdrX2NvbnRleHRfY29va2llX21hbmFnZXJfZ2V0KGNvbnN0IEV3a19Db250ZXh0KiBld2tD
b250ZXh0KQpAQCAtMjQyLDExICsyMzYsNiBAQCBFd2tfU3RvcmFnZV9NYW5hZ2VyKiBld2tfY29u
dGV4dF9zdG9yYWdlX21hbmFnZXJfZ2V0KGNvbnN0IEV3a19Db250ZXh0KiBld2tDb250ZQogICAg
IHJldHVybiBpbXBsLT5zdG9yYWdlTWFuYWdlcigpOwogfQogCi1XS0NvbnRleHRSZWYgRXdrQ29u
dGV4dDo6d2tDb250ZXh0KCkKLXsKLSAgICByZXR1cm4gbV9jb250ZXh0LmdldCgpOwotfQotCiBE
b3dubG9hZE1hbmFnZXJFZmwqIEV3a0NvbnRleHQ6OmRvd25sb2FkTWFuYWdlcigpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fZG93bmxvYWRNYW5hZ2VyLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oCmluZGV4IDc0
MjA5Njg5MzdiN2U0ZGM0NTcwNzYzY2Y3NjZkNTUzOTUxMTZjMWQuLmRkM2FmYTI1ZWY1NmY1ZTk5
OWNiYjI5MDg2OTZmMjgxNmVjYTM2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgKQEAgLTIzLDkgKzIzLDEyIEBA
CiAjaW5jbHVkZSAiRG93bmxvYWRNYW5hZ2VyRWZsLmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0Lmgi
CiAjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5j
bHVkZSAiZXdrX2NvbnRleHQuaCIKICNpbmNsdWRlICJld2tfb2JqZWN0X3ByaXZhdGUuaCIKIAor
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKwogY2xhc3MgRXdrX0Nvb2tpZV9NYW5hZ2VyOwogY2xh
c3MgRXdrX0Zhdmljb25fRGF0YWJhc2U7CiAKQEAgLTQ0LDcgKzQ3LDcgQEAgY2xhc3MgRXdrQ29u
dGV4dCA6IHB1YmxpYyBFd2tfT2JqZWN0IHsKIHB1YmxpYzoKICAgICBFV0tfT0JKRUNUX0RFQ0xB
UkUoRXdrQ29udGV4dCkKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IGNyZWF0
ZShXS0NvbnRleHRSZWYgY29udGV4dCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrQ29udGV4
dD4gY3JlYXRlKFdlYkNvbnRleHQqIGNvbnRleHQpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3
a0NvbnRleHQ+IGNyZWF0ZSgpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IGNy
ZWF0ZShjb25zdCBTdHJpbmcmIGluamVjdGVkQnVuZGxlUGF0aCk7CiAKQEAgLTY5LDE4ICs3Miwx
OCBAQCBwdWJsaWM6CiAKICAgICBFd2tfQ2FjaGVfTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0Owog
Ci0gICAgV0tDb250ZXh0UmVmIHdrQ29udGV4dCgpOworICAgIFdlYkNvbnRleHQqIHdlYkNvbnRl
eHQoKSB7IHJldHVybiBtX3dlYkNvbnRleHQuZ2V0KCk7IH0KIAogICAgIFdlYktpdDo6RG93bmxv
YWRNYW5hZ2VyRWZsKiBkb3dubG9hZE1hbmFnZXIoKSBjb25zdDsKIAogICAgIFdlYktpdDo6Q29u
dGV4dEhpc3RvcnlDbGllbnRFZmwqIGhpc3RvcnlDbGllbnQoKTsKIAogcHJpdmF0ZToKLSAgICBl
eHBsaWNpdCBFd2tDb250ZXh0KFdLQ29udGV4dFJlZik7CisgICAgZXhwbGljaXQgRXdrQ29udGV4
dChXZWJDb250ZXh0Kik7CiAKICAgICB2b2lkIGVuc3VyZUZhdmljb25EYXRhYmFzZSgpOwogCi0g
ICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBtX2NvbnRleHQ7CisgICAgUmVmUHRyPFdlYkNv
bnRleHQ+IG1fd2ViQ29udGV4dDsKIAogICAgIE93blB0cjxFd2tfQ29va2llX01hbmFnZXI+IG1f
Y29va2llTWFuYWdlcjsKICAgICBPd25QdHI8RXdrX0RhdGFiYXNlX01hbmFnZXI+IG1fZGF0YWJh
c2VNYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2RhdGFiYXNlX21hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2RhdGFiYXNlX21hbmFnZXIuY3BwCmluZGV4IGI2NjU2OGI2NTg5Mzc5Y2U2Y2M5NzMw
MDhhZjRmMWZiMjE4MWYzYTkuLjQ5YmJjZTFhY2U3ZDAzODRjNmEzYWRlYjA1Y2RiN2JlZWMxYzJh
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19kYXRh
YmFzZV9tYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfZGF0YWJhc2VfbWFuYWdlci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJXS0FQ
SUNhc3QuaCIKICNpbmNsdWRlICJXS0FycmF5LmgiCiAjaW5jbHVkZSAiV0tEYXRhYmFzZU1hbmFn
ZXIuaCIKKyNpbmNsdWRlICJXZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgImV3
a19kYXRhYmFzZV9tYW5hZ2VyX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfZXJyb3JfcHJpdmF0
ZS5oIgogI2luY2x1ZGUgImV3a19zZWN1cml0eV9vcmlnaW4uaCIKQEAgLTM3LDEzICszOCwxMyBA
QAogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1Fd2tfRGF0YWJhc2VfTWFuYWdlcjo6RXdr
X0RhdGFiYXNlX01hbmFnZXIoV0tEYXRhYmFzZU1hbmFnZXJSZWYgZGF0YWJhc2VNYW5hZ2VyUmVm
KQotICAgIDogbV9kYXRhYmFzZU1hbmFnZXIoZGF0YWJhc2VNYW5hZ2VyUmVmKQorRXdrX0RhdGFi
YXNlX01hbmFnZXI6OkV3a19EYXRhYmFzZV9NYW5hZ2VyKFdlYkRhdGFiYXNlTWFuYWdlclByb3h5
KiBkYXRhYmFzZU1hbmFnZXIpCisgICAgOiBtX2RhdGFiYXNlTWFuYWdlcihkYXRhYmFzZU1hbmFn
ZXIpCiB7IH0KIAogdm9pZCBFd2tfRGF0YWJhc2VfTWFuYWdlcjo6Z2V0RGF0YWJhc2VPcmlnaW5z
KFdLRGF0YWJhc2VNYW5hZ2VyR2V0RGF0YWJhc2VPcmlnaW5zRnVuY3Rpb24gY2FsbGJhY2ssIHZv
aWQqIGNvbnRleHQpIGNvbnN0CiB7Ci0gICAgV0tEYXRhYmFzZU1hbmFnZXJHZXREYXRhYmFzZU9y
aWdpbnMobV9kYXRhYmFzZU1hbmFnZXIuZ2V0KCksIGNvbnRleHQsIGNhbGxiYWNrKTsKKyAgICBX
S0RhdGFiYXNlTWFuYWdlckdldERhdGFiYXNlT3JpZ2lucyh0b0FQSShtX2RhdGFiYXNlTWFuYWdl
ci5nZXQoKSksIGNvbnRleHQsIGNhbGxiYWNrKTsKIH0KIAogRWluYV9MaXN0KiBFd2tfRGF0YWJh
c2VfTWFuYWdlcjo6Y3JlYXRlT3JpZ2luTGlzdChXS0FycmF5UmVmIG9yaWdpbnMpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZGF0YWJhc2Vf
bWFuYWdlcl9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
ZGF0YWJhc2VfbWFuYWdlcl9wcml2YXRlLmgKaW5kZXggMGU0NDk3MDBhZjkzZGQ2NzgyM2FmYzQz
YmUzNGFhOTMwZGJjZDM0Yi4uNWQ2NDk5NmRkNDE3ODNhNjU4ZjI4NWVjNmU4MDk0NDU1YjY4YTk1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2RhdGFi
YXNlX21hbmFnZXJfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19kYXRhYmFzZV9tYW5hZ2VyX3ByaXZhdGUuaApAQCAtMjcsMjUgKzI3LDI5IEBACiAj
ZGVmaW5lIGV3a19kYXRhYmFzZV9tYW5hZ2VyX3ByaXZhdGVfaAogCiAjaW5jbHVkZSAiV0tEYXRh
YmFzZU1hbmFnZXIuaCIKLSNpbmNsdWRlICJXS1JldGFpblB0ci5oIgorI2luY2x1ZGUgIldlYkNv
bnRleHQuaCIKKyNpbmNsdWRlICJXZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUg
ImV3a19zZWN1cml0eV9vcmlnaW4uaCIKICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKIGNs
YXNzIEV3a19EYXRhYmFzZV9NYW5hZ2VyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0
cjxFd2tfRGF0YWJhc2VfTWFuYWdlcj4gY3JlYXRlKFdLRGF0YWJhc2VNYW5hZ2VyUmVmIGRhdGFi
YXNlTWFuYWdlclJlZikKKyAgICBzdGF0aWMgUGFzc093blB0cjxFd2tfRGF0YWJhc2VfTWFuYWdl
cj4gY3JlYXRlKFdlYkNvbnRleHQqIGNvbnRleHQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IEV3a19EYXRhYmFzZV9NYW5hZ2VyKGRhdGFiYXNlTWFuYWdlclJlZikpOworICAg
ICAgICBBU1NFUlQoY29udGV4dCk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRXdrX0Rh
dGFiYXNlX01hbmFnZXIoY29udGV4dC0+ZGF0YWJhc2VNYW5hZ2VyUHJveHkoKSkpOwogICAgIH0K
IAogICAgIEVpbmFfTGlzdCogY3JlYXRlT3JpZ2luTGlzdChXS0FycmF5UmVmIHdrTGlzdCkgY29u
c3Q7CiAgICAgdm9pZCBnZXREYXRhYmFzZU9yaWdpbnMoV0tEYXRhYmFzZU1hbmFnZXJHZXREYXRh
YmFzZU9yaWdpbnNGdW5jdGlvbiBjYWxsYmFjaywgdm9pZCogY29udGV4dCkgY29uc3Q7CiAKIHBy
aXZhdGU6Ci0gICAgZXhwbGljaXQgRXdrX0RhdGFiYXNlX01hbmFnZXIoV0tEYXRhYmFzZU1hbmFn
ZXJSZWYpOworICAgIGV4cGxpY2l0IEV3a19EYXRhYmFzZV9NYW5hZ2VyKFdlYkRhdGFiYXNlTWFu
YWdlclByb3h5Kik7CiAKLSAgICBXS1JldGFpblB0cjxXS0RhdGFiYXNlTWFuYWdlclJlZj4gbV9k
YXRhYmFzZU1hbmFnZXI7CisgICAgUmVmUHRyPFdlYkRhdGFiYXNlTWFuYWdlclByb3h5PiBtX2Rh
dGFiYXNlTWFuYWdlcjsKICAgICBtdXRhYmxlIEhhc2hNYXA8V0tTZWN1cml0eU9yaWdpblJlZiwg
UmVmUHRyPEV3a19TZWN1cml0eV9PcmlnaW4+ID4gbV93cmFwcGVyQ2FjaGU7CiB9OwogI2VuZGlm
IC8vIGV3a19kYXRhYmFzZV9tYW5hZ2VyX3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3N0b3JhZ2VfbWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc3RvcmFnZV9tYW5hZ2VyLmNwcAppbmRleCA4
MGNhYzc2NWNiMzIxNzcyYTI5NzA5ZWViODM4NWUzZjY5YzU5NmMxLi42MjBmMjE5YWZmMmVlODE0
MDViYTk2NjVmZDcxMDI5ZWU2NTk3NzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfc3RvcmFnZV9tYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc3RvcmFnZV9tYW5hZ2VyLmNwcApAQCAtMjgsNyArMjgs
NyBAQAogCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV0tBcnJheS5oIgotI2lu
Y2x1ZGUgIldLS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oIgorI2luY2x1ZGUgIldlYktleVZhbHVl
U3RvcmFnZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgImV3a19lcnJvcl9wcml2YXRlLmgiCiAj
aW5jbHVkZSAiZXdrX3NlY3VyaXR5X29yaWdpbi5oIgogI2luY2x1ZGUgImV3a19zZWN1cml0eV9v
cmlnaW5fcHJpdmF0ZS5oIgpAQCAtMzcsMTMgKzM3LDEzIEBACiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CiAKLUV3a19TdG9yYWdlX01hbmFnZXI6OkV3a19TdG9yYWdlX01hbmFnZXIoV0tLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmIHdrU3RvcmFnZU1hbmFnZXJSZWYpCi0gICAgOiBtX3drU3Rv
cmFnZU1hbmFnZXIod2tTdG9yYWdlTWFuYWdlclJlZikKK0V3a19TdG9yYWdlX01hbmFnZXI6OkV3
a19TdG9yYWdlX01hbmFnZXIoV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclByb3h5KiBzdG9yYWdl
TWFuYWdlclByb3h5KQorICAgIDogbV9zdG9yYWdlTWFuYWdlcihzdG9yYWdlTWFuYWdlclByb3h5
KQogeyB9CiAKIHZvaWQgRXdrX1N0b3JhZ2VfTWFuYWdlcjo6Z2V0U3RvcmFnZU9yaWdpbnModm9p
ZCogY29udGV4dCwgV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyR2V0S2V5VmFsdWVTdG9yYWdlT3Jp
Z2luc0Z1bmN0aW9uIGNhbGxiYWNrKSBjb25zdAogewotICAgIFdLS2V5VmFsdWVTdG9yYWdlTWFu
YWdlckdldEtleVZhbHVlU3RvcmFnZU9yaWdpbnMobV93a1N0b3JhZ2VNYW5hZ2VyLmdldCgpLCBj
b250ZXh0LCBjYWxsYmFjayk7CisgICAgV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyR2V0S2V5VmFs
dWVTdG9yYWdlT3JpZ2lucyh0b0FQSShtX3N0b3JhZ2VNYW5hZ2VyLmdldCgpKSwgY29udGV4dCwg
Y2FsbGJhY2spOwogfQogCiBFaW5hX0xpc3QqIEV3a19TdG9yYWdlX01hbmFnZXI6OmNyZWF0ZU9y
aWdpbkxpc3QoV0tBcnJheVJlZiBvcmlnaW5zKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3N0b3JhZ2VfbWFuYWdlcl9wcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc3RvcmFnZV9tYW5hZ2VyX3ByaXZh
dGUuaAppbmRleCA1ZWVlYTQ5MTM3OTE1ZDRmMjAwNzUyNzdjODc0YzE0MGI2OTY5YjhkLi42NDJh
Yjc0NzZiN2U1N2UxODIwMzdlYWI1YmE4YjVkMTVlZDU5OGEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc3RvcmFnZV9tYW5hZ2VyX3ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc3RvcmFnZV9tYW5hZ2Vy
X3ByaXZhdGUuaApAQCAtMjcsMjUgKzI3LDI5IEBACiAjZGVmaW5lIGV3a19zdG9yYWdlX21hbmFn
ZXJfcHJpdmF0ZV9oCiAKICNpbmNsdWRlICJXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCIKLSNp
bmNsdWRlICJXS1JldGFpblB0ci5oIgorI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKyNpbmNsdWRl
ICJXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJld2tfc2VjdXJp
dHlfb3JpZ2luX3ByaXZhdGUuaCIKICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgogI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKIGNsYXNz
IEV3a19TdG9yYWdlX01hbmFnZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEV3
a19TdG9yYWdlX01hbmFnZXI+IGNyZWF0ZShXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJSZWYgd2tT
dG9yYWdlTWFuYWdlclJlZikKKyAgICBzdGF0aWMgUGFzc093blB0cjxFd2tfU3RvcmFnZV9NYW5h
Z2VyPiBjcmVhdGUoV2ViQ29udGV4dCogY29udGV4dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgRXdrX1N0b3JhZ2VfTWFuYWdlcih3a1N0b3JhZ2VNYW5hZ2VyUmVmKSk7Cisg
ICAgICAgIEFTU0VSVChjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBFd2tf
U3RvcmFnZV9NYW5hZ2VyKGNvbnRleHQtPmtleVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eSgpKSk7
CiAgICAgfQogCiAgICAgRWluYV9MaXN0KiBjcmVhdGVPcmlnaW5MaXN0KFdLQXJyYXlSZWYgd2tM
aXN0KSBjb25zdDsKICAgICB2b2lkIGdldFN0b3JhZ2VPcmlnaW5zKHZvaWQqIGNvbnRleHQsIFdL
S2V5VmFsdWVTdG9yYWdlTWFuYWdlckdldEtleVZhbHVlU3RvcmFnZU9yaWdpbnNGdW5jdGlvbiBj
YWxsYmFjaykgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgRXdrX1N0b3JhZ2VfTWFu
YWdlcihXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJSZWYgd2tTdG9yYWdlTWFuYWdlclJlZik7Cisg
ICAgZXhwbGljaXQgRXdrX1N0b3JhZ2VfTWFuYWdlcihXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UHJveHkqIHN0b3JhZ2VNYW5hZ2VyUHJveHkpOwogCi0gICAgV0tSZXRhaW5QdHI8V0tLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyUmVmPiBtX3drU3RvcmFnZU1hbmFnZXI7CisgICAgUmVmUHRyPFdlYktl
eVZhbHVlU3RvcmFnZU1hbmFnZXJQcm94eT4gbV9zdG9yYWdlTWFuYWdlcjsKICAgICBtdXRhYmxl
IEhhc2hNYXA8V0tTZWN1cml0eU9yaWdpblJlZiwgUmVmUHRyPEV3a19TZWN1cml0eV9PcmlnaW4+
ID4gbV93cmFwcGVyQ2FjaGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlldy5jcHAKaW5kZXggMjFmYzE5M2E2MzU4YTIwOTI2NGNmNDc4YTNhMGRkMDll
NzRkYzA1OC4uZDIxNGVkNjkyMTY0Y2E1NzU3OTUwN2U4YmQxNzY1OWFjMWYyYWMxNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApAQCAtNTIyLDcg
KzUyMiw3IEBAIHN0YXRpYyBpbmxpbmUgRXZhc19PYmplY3QqIGNyZWF0ZUV3a1ZpZXcoRXZhcyog
Y2FudmFzLCBFdmFzX1NtYXJ0KiBzbWFydCwgUGFzc1JlCiAgKi8KIEV2YXNfT2JqZWN0KiBld2tf
dmlld19iYXNlX2FkZChFdmFzKiBjYW52YXMsIFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1Bh
Z2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZUV3a1ZpZXcoY2Fu
dmFzLCBjcmVhdGVFd2tWaWV3U21hcnRDbGFzcygpLCBFd2tDb250ZXh0OjpjcmVhdGUoY29udGV4
dFJlZiksIHBhZ2VHcm91cFJlZiwgRXdrVmlld0ltcGw6OkxlZ2FjeUJlaGF2aW9yKTsKKyAgICBy
ZXR1cm4gY3JlYXRlRXdrVmlldyhjYW52YXMsIGNyZWF0ZUV3a1ZpZXdTbWFydENsYXNzKCksIEV3
a0NvbnRleHQ6OmNyZWF0ZSh0b0ltcGwoY29udGV4dFJlZikpLCBwYWdlR3JvdXBSZWYsIEV3a1Zp
ZXdJbXBsOjpMZWdhY3lCZWhhdmlvcik7CiB9CiAKIEV2YXNfT2JqZWN0KiBld2tfdmlld19zbWFy
dF9hZGQoRXZhcyogY2FudmFzLCBFdmFzX1NtYXJ0KiBzbWFydCwgRXdrX0NvbnRleHQqIGNvbnRl
eHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFu
YWdlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdl
ckVmbC5jcHAKaW5kZXggODY5ZTQ0ZjNhZTNlNmExOWQ2MjljOGQwNzMzMjA1MmU1ZjBhN2Y4YS4u
M2ZkZWI5YzY0ZTllNDBkNDliNTllZTY1N2FlMjJmMTFiOTlkYTI4MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Eb3dubG9hZE1hbmFnZXJFZmwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmNwcApAQCAtMTM2
LDcgKzEzNiw3IEBAIERvd25sb2FkTWFuYWdlckVmbDo6RG93bmxvYWRNYW5hZ2VyRWZsKEV3a0Nv
bnRleHQqIGNvbnRleHQpCiAgICAgd2tEb3dubG9hZENsaWVudC5kaWRGYWlsID0gZGlkRmFpbDsK
ICAgICB3a0Rvd25sb2FkQ2xpZW50LmRpZEZpbmlzaCA9IGRpZEZpbmlzaDsKIAotICAgIFdLQ29u
dGV4dFNldERvd25sb2FkQ2xpZW50KGNvbnRleHQtPndrQ29udGV4dCgpLCAmd2tEb3dubG9hZENs
aWVudCk7CisgICAgV0tDb250ZXh0U2V0RG93bmxvYWRDbGllbnQodG9BUEkoY29udGV4dC0+d2Vi
Q29udGV4dCgpKSwgJndrRG93bmxvYWRDbGllbnQpOwogfQogCiB2b2lkIERvd25sb2FkTWFuYWdl
ckVmbDo6cmVnaXN0ZXJEb3dubG9hZChEb3dubG9hZFByb3h5KiBkb3dubG9hZCwgRXdrVmlld0lt
cGwqIHZpZXdJbXBsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9S
ZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmNwcAppbmRleCAzZmIzMmM2NDc1MjhlZmYwMTIwZTFm
MDI2OWYzMDA3MTRmMzc1ZTBiLi4xNzgwMDMzNDgxMjExNzY2OGFiMTA1MzdkNWQxOTI2NTU2OWJl
MmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5h
Z2VyQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVl
c3RNYW5hZ2VyQ2xpZW50RWZsLmNwcApAQCAtNjcsNyArNjcsNyBAQCB2b2lkIFJlcXVlc3RNYW5h
Z2VyQ2xpZW50RWZsOjpkaWRSZWNlaXZlVVJJUmVxdWVzdChXS1NvdXBSZXF1ZXN0TWFuYWdlclJl
ZiBzb3VwUgogfQogCiBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6UmVxdWVzdE1hbmFnZXJDbGll
bnRFZmwoRXdrQ29udGV4dCogY29udGV4dCkKLSAgICA6IG1fc291cFJlcXVlc3RNYW5hZ2VyKFdL
Q29udGV4dEdldFNvdXBSZXF1ZXN0TWFuYWdlcihjb250ZXh0LT53a0NvbnRleHQoKSkpCisgICAg
OiBtX3NvdXBSZXF1ZXN0TWFuYWdlcihXS0NvbnRleHRHZXRTb3VwUmVxdWVzdE1hbmFnZXIodG9B
UEkoY29udGV4dC0+d2ViQ29udGV4dCgpKSkpCiB7CiAgICAgQVNTRVJUKGNvbnRleHQpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>