<?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>104046</bug_id>
          
          <creation_ts>2012-12-04 14:56:09 -0800</creation_ts>
          <short_desc>[chromium] Remove WebCompositorOutputSurface implementations from DRT</short_desc>
          <delta_ts>2012-12-10 23:46:21 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>103967</dependson>
          <blocked>104502</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dana Jansens">danakj</reporter>
          <assigned_to name="Dana Jansens">danakj</assigned_to>
          <cc>abarth</cc>
    
    <cc>aelias</cc>
    
    <cc>backer</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>peter+ews</cc>
    
    <cc>piman</cc>
    
    <cc>senorblanco</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>782983</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-12-04 14:56:09 -0800</bug_when>
    <thetext>[chromium] Remove WebCompositorOutputSurface implementations from DRT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782985</commentid>
    <comment_count>1</comment_count>
      <attachid>177575</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-12-04 14:58:45 -0800</bug_when>
    <thetext>Created attachment 177575
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788028</commentid>
    <comment_count>2</comment_count>
      <attachid>178712</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-12-10 21:52:38 -0800</bug_when>
    <thetext>Created attachment 178712
Patch

rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788035</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-10 21:57:18 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788053</commentid>
    <comment_count>4</comment_count>
      <attachid>178712</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-10 22:21:38 -0800</bug_when>
    <thetext>Comment on attachment 178712
Patch

Attachment 178712 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15238898</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788065</commentid>
    <comment_count>5</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-12-10 22:51:07 -0800</bug_when>
    <thetext>Oh, static vs component build strikes again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788069</commentid>
    <comment_count>6</comment_count>
      <attachid>178725</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-12-10 23:05:16 -0800</bug_when>
    <thetext>Created attachment 178725
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788091</commentid>
    <comment_count>7</comment_count>
      <attachid>178725</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-10 23:46:17 -0800</bug_when>
    <thetext>Comment on attachment 178725
Patch for landing

Clearing flags on attachment: 178725

Committed r137256: &lt;http://trac.webkit.org/changeset/137256&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788092</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-10 23:46:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177575</attachid>
            <date>2012-12-04 14:58:45 -0800</date>
            <delta_ts>2012-12-10 21:52:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104046-20121204175610.patch</filename>
            <type>text/plain</type>
            <size>32599</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBjOTUyZDQ4NmFmMzlh
MTBlMDJmZGRiOTQ2OWQ3NWQ3ZDFhMTY0ZDY0Li44MTFlYTE5M2IxZjYwODg0ZWY5ZWMyMzY2NWRj
MGJmN2ExNDU4OWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMiBAQAogMjAxMi0xMi0wNCAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbY2hyb21pdW1d
IFJlbW92ZSBXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZSBpbXBsZW1lbnRhdGlvbnMgZnJvbSBE
UlQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDA0
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92
ZSBub3ctdW51c2VkIGRlZmluaXRpb25zIGZvciB0aGVzZSBjbGFzc2VzLiBUaGUgY2M6Ok91dHB1
dFN1cmZhY2UKKyAgICAgICAgYW5kIGl0cyByZWxhdGVkIGNsYXNzZXMgaGF2ZSByZXBsYWNlZCB0
aGVzZSwgd2l0aCB0aGUKKyAgICAgICAgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UgY2xhc3Mg
YXMgYW4gZW1wdHkgYmFzZSBjbGFzcy4KKworICAgICAgICAqIFBsYXRmb3JtLmd5cGk6CisgICAg
ICAgICogY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlLmg6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yT3V0
cHV0U3VyZmFjZUNsaWVudC5oOiBSZW1vdmVkLgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9X
ZWJDb21wb3NpdG9yU29mdHdhcmVPdXRwdXREZXZpY2UuaDogUmVtb3ZlZC4KKworMjAxMi0xMi0w
NCAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKwogICAgICAgICBbY2hyb21p
dW1dIE1ha2UgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UgYW4gZW1wdHkgY2xhc3Mgd2hlbiBV
U0VfQ0NfT1VUUFVUX1NVUkZBQ0UgaXMgZGVmaW5lZC4KICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzk2NwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CmluZGV4IDgyZWFmNTk1OWNlODM3ODc5YzcyNmViZGJjODJiYTJkNWVhZDQ3M2YuLmE3ZjQ0Njk0
NDk3YmE0YjFjYzA2Y2Y4YjVjOGVlYmJkYmEzNTMyMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMTItMDQgIERhbmEgSmFuc2VucyAgPGRhbmFrakBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUgV2ViQ29tcG9zaXRvck91
dHB1dFN1cmZhY2UgaW1wbGVtZW50YXRpb25zIGZyb20gRFJUCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQwNDYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgV2ViQ29tcG9zaXRvclN1cHBvcnQgdG8g
Y3JlYXRlIGFuIE91dHB1dFN1cmZhY2UuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwaToKKyAgICAg
ICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiB0
ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvRmFrZVdl
YkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlLmg6IFJlbW92ZWQuCisgICAgICAgICogdGVzdHMvV2Vi
TGF5ZXJUcmVlVmlld1Rlc3RDb21tb24uaDoKKwogMjAxMi0xMi0wNCAgQ2hhcmxpZSBSZWlzICA8
Y3JlaXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlk
RGlzb3duT3BlbmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaSBi
L1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCmluZGV4IDM2ZTQxNTZkNDE5NzczZjc5M2Fj
YTlhZTM3NTlhOWI2NzMyMWZmZTYuLjBlMTI1MGY1NTc4NTI2YWY4MzEwMjlmMjU0YmVmZWM1MGFi
MzYxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCisrKyBiL1Nv
dXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCkBAIC00NSw5ICs0NSw3IEBACiAgICAgICAgICAg
ICAnY2hyb21pdW0vcHVibGljL1dlYkNvbG9yLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1
YmxpYy9XZWJDb21tb24uaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkNvbXBv
c2l0b3JTdXBwb3J0LmgnLAotICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3Np
dG9yU29mdHdhcmVPdXRwdXREZXZpY2UuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGlj
L1dlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlLmgnLAotICAgICAgICAgICAgJ2Nocm9taXVtL3B1
YmxpYy9XZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZUNsaWVudC5oJywKICAgICAgICAgICAgICdj
aHJvbWl1bS9wdWJsaWMvV2ViQ29udGVudExheWVyLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVt
L3B1YmxpYy9XZWJDb250ZW50TGF5ZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0v
cHVibGljL1dlYkNvb2tpZS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UuaCBiL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UuaAppbmRleCAxNjA3ODNi
ZGQ0MmVlYjk5ZTU3YmYwMjJmYmJjY2NiZmVmMDk2MGQ5Li43NDRmMjg5ZTc4ZjgzYjJhMzk0MDdi
MjZlZjc1NzBhYTBiNDNhNDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL1dlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlLmgKKysrIGIvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZS5oCkBAIC0yOCw1MSAr
MjgsOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RydWN0IFdlYkNvbXBvc2l0b3JGcmFt
ZTsKLWNsYXNzIFdlYkdyYXBoaWNzQ29udGV4dDNEOwotY2xhc3MgV2ViQ29tcG9zaXRvclNvZnR3
YXJlT3V0cHV0RGV2aWNlOwotY2xhc3MgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2VDbGllbnQ7
Ci0KLSNpZmRlZiBVU0VfQ0NfT1VUUFVUX1NVUkZBQ0UKKy8vIEFuIGVtcHR5IGJhc2UgY2xhc3Mg
Zm9yIGNjOjpPdXRwdXRTdXJmYWNlIGluIGNocm9taXVtLgogY2xhc3MgV2ViQ29tcG9zaXRvck91
dHB1dFN1cmZhY2UgeyB9OwotI2Vsc2UKLS8vIFJlcHJlc2VudHMgdGhlIG91dHB1dCBzdXJmYWNl
IGZvciBhIGNvbXBvc2l0b3IuIFRoZSBjb21wb3NpdG9yIG93bnMKLS8vIGFuZCBtYW5hZ2VzIGl0
cyBkZXN0cnVjdGlvbi4gSXRzIGxpZmV0aW1lIGlzOgotLy8gICAxLiBDcmVhdGVkIG9uIHRoZSBt
YWluIHRocmVhZCB2aWEgV2ViTGF5ZXJUcmVlVmlld0NsaWVudDo6Y3JlYXRlT3V0cHV0U3VyZmFj
ZS4KLS8vICAgMi4gUGFzc2VkIHRvIHRoZSBjb21wb3NpdG9yIHRocmVhZCBhbmQgYm91bmQgdG8g
YSBjbGllbnQgdmlhIGJpbmRUb0NsaWVudC4KLS8vICAgICAgRnJvbSBoZXJlIG9uLCBpdCB3aWxs
IG9ubHkgYmUgdXNlZCBvbiB0aGUgY29tcG9zaXRvciB0aHJlYWQuCi0vLyAgIDMuIElmIHRoZSAz
RCBjb250ZXh0IGlzIGxvc3QsIHRoZW4gdGhlIGNvbXBvc2l0b3Igd2lsbCBkZWxldGUgdGhlIG91
dHB1dCBzdXJmYWNlCi0vLyAgICAgIChvbiB0aGUgY29tcG9zaXRvciB0aHJlYWQpIGFuZCBnbyBi
YWNrIHRvIHN0ZXAgMS4KLWNsYXNzIFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlIHsKLXB1Ymxp
YzoKLSAgICB2aXJ0dWFsIH5XZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZSgpIHsgfQotCi0gICAg
Ly8gQ2FsbGVkIGJ5IHRoZSBjb21wb3NpdG9yIG9uIHRoZSBjb21wb3NpdG9yIHRocmVhZC4gVGhp
cyBpcyBhIHBsYWNlIHdoZXJlIHRocmVhZC1zcGVjaWZpYwotICAgIC8vIGRhdGEgZm9yIHRoZSBv
dXRwdXQgc3VyZmFjZSBjYW4gYmUgaW5pdGlhbGl6ZWQsIHNpbmNlIGZyb20gdGhpcyBwb2ludCBv
biB0aGUgb3V0cHV0IHN1cmZhY2UKLSAgICAvLyB3aWxsIG9ubHkgYmUgdXNlZCBvbiB0aGUgY29t
cG9zaXRvciB0aHJlYWQuCi0gICAgdmlydHVhbCBib29sIGJpbmRUb0NsaWVudChXZWJDb21wb3Np
dG9yT3V0cHV0U3VyZmFjZUNsaWVudCopID0gMDsKLQotICAgIHN0cnVjdCBDYXBhYmlsaXRpZXMg
ewotICAgICAgICBDYXBhYmlsaXRpZXMoKQotICAgICAgICAgICAgOiBoYXNQYXJlbnRDb21wb3Np
dG9yKGZhbHNlKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBib29sIGhhc1BhcmVu
dENvbXBvc2l0b3I7Ci0gICAgfTsKLQotICAgIHZpcnR1YWwgY29uc3QgQ2FwYWJpbGl0aWVzJiBj
YXBhYmlsaXRpZXMoKSBjb25zdCA9IDA7Ci0KLSAgICAvLyBPYnRhaW4gdGhlIDNkIGNvbnRleHQg
b3IgdGhlIHNvZnR3YXJlIGRldmljZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBvdXRwdXQgc3VyZmFj
ZS4gRWl0aGVyIG9mIHRoZXNlIG1heSByZXR1cm4gYSBudWxsIHBvaW50ZXIsIGJ1dCBub3QgYm90
aC4KLSAgICAvLyBJbiB0aGUgZXZlbnQgb2YgYSBsb3N0IGNvbnRleHQsIHRoZSBlbnRpcmUgb3V0
cHV0IHN1cmZhY2Ugc2hvdWxkIGJlIHJlY3JlYXRlZC4KLSAgICB2aXJ0dWFsIFdlYkdyYXBoaWNz
Q29udGV4dDNEKiBjb250ZXh0M0QoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBXZWJDb21wb3Np
dG9yU29mdHdhcmVPdXRwdXREZXZpY2UqIHNvZnR3YXJlRGV2aWNlKCkgY29uc3QgeyByZXR1cm4g
MDsgfQotCi0gICAgLy8gU2VuZHMgZnJhbWUgZGF0YSB0byB0aGUgcGFyZW50IGNvbXBvc2l0b3Iu
IFRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkCi0gICAgLy8gd2hlbiBjYXBhYmlsaXRpZXMoKS5o
YXNQYXJlbnRDb21wb3NpdG9yLgotICAgIHZpcnR1YWwgdm9pZCBzZW5kRnJhbWVUb1BhcmVudENv
bXBvc2l0b3IoY29uc3QgV2ViQ29tcG9zaXRvckZyYW1lJikgPSAwOwotfTsKLSNlbmRpZiAvLyBV
U0VfQ0NfQ09NUE9TSVRPUl9TVVJGQUNFCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZUNsaWVudC5oIGIv
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFj
ZUNsaWVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMmY2MzJkZTEwOGU3YzM0
ZTBkNmQ2YTk2ZDI5NmNlMThjYzIzNTg5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9z
aXRvck91dHB1dFN1cmZhY2VDbGllbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaWZuZGVmIFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlQ2xpZW50X2gKLSNkZWZp
bmUgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2VDbGllbnRfaAotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotc3RydWN0IFdlYkNvbXBvc2l0b3JGcmFtZUFjazsKLQotI2lmbmRlZiBVU0VfQ0NfT1VU
UFVUX1NVUkZBQ0UKLWNsYXNzIFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlQ2xpZW50IHsKLXB1
YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgb25WU3luY1BhcmFtZXRlcnNDaGFuZ2VkKGRvdWJsZSBt
b25vdG9uaWNUaW1lYmFzZSwgZG91YmxlIGludGVydmFsSW5TZWNvbmRzKSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIG9uU2VuZEZyYW1lVG9QYXJlbnRDb21wb3NpdG9yQWNrKGNvbnN0IFdlYkNvbXBv
c2l0b3JGcmFtZUFjayYpIHsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgfldlYkNvbXBvc2l0b3JPdXRw
dXRTdXJmYWNlQ2xpZW50KCkgeyB9Ci19OwotI2VuZGlmCi0KLX0KLQotI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JTb2Z0d2Fy
ZU91dHB1dERldmljZS5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21w
b3NpdG9yU29mdHdhcmVPdXRwdXREZXZpY2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZTVjN2JiM2RlMDE3OWQyZGJlMWNmZTg2MmNkYWJmNDMxYjUzNjcwYi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYkNvbXBvc2l0b3JTb2Z0d2FyZU91dHB1dERldmljZS5oCisrKyAvZGV2L251
bGwKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwot
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViQ29tcG9zaXRvclNvZnR3YXJl
T3V0cHV0RGV2aWNlX2gKLSNkZWZpbmUgV2ViQ29tcG9zaXRvclNvZnR3YXJlT3V0cHV0RGV2aWNl
X2gKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLSNpZm5kZWYgVVNFX0NDX1NPRlRXQVJFX09VVFBV
VF9ERVZJQ0UKLWNsYXNzIFdlYkltYWdlOwotc3RydWN0IFdlYlNpemU7Ci0KLS8vIFRoaXMgaXMg
YSAidGVhci1vZmYiIGNsYXNzIHByb3ZpZGluZyBzb2Z0d2FyZSBkcmF3aW5nIHN1cHBvcnQgdG8K
LS8vIFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlLCBzdWNoIGFzIHRvIGEgcGxhdGZvcm0tcHJv
dmlkZWQgd2luZG93Ci0vLyBmcmFtZWJ1ZmZlci4KLWNsYXNzIFdlYkNvbXBvc2l0b3JTb2Z0d2Fy
ZU91dHB1dERldmljZSB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViQ29tcG9zaXRvclNvZnR3
YXJlT3V0cHV0RGV2aWNlKCkgeyB9Ci0KLSAgICAvLyBMb2NrIHRoZSBmcmFtZWJ1ZmZlciBhbmQg
cmV0dXJuIGEgcG9pbnRlciB0byBhIFdlYkltYWdlIHJlZmVycmluZyB0byBpdHMKLSAgICAvLyBw
aXhlbHMuIFNldCBmb3JXcml0ZSBpZiB5b3UgaW50ZW5kIHRvIGNoYW5nZSB0aGUgcGl4ZWxzLiBS
ZWFkYmFjawotICAgIC8vIGlzIHN1cHBvcnRlZCB3aGV0aGVyIG9yIG5vdCBmb3JXcml0ZSBpcyBz
ZXQuCi0gICAgdmlydHVhbCBXZWJJbWFnZSogbG9jayhib29sIGZvcldyaXRlKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHVubG9jaygpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VW
aWV3cG9ydFNpemUoV2ViU2l6ZSkgPSAwOwotfTsKLSNlbmRpZiAvLyBVU0VfQ0NfU09GVFdBUkVf
T1VUUFVUX0RFVklDRQotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkK
aW5kZXggM2FkM2UyMGRhZTM0MjhiMGMyODk3ODgzZDY5MzI2MGY4NDBlMTEwNy4uNTIyMDc4MDA3
MGM4ZDJhY2U4NzQ4OTQ0YmJhMTg1M2NlNzQ1ZTFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktp
dC5neXBpCkBAIC02Nyw3ICs2Nyw2IEBACiAgICAgICAgICAgICAndGVzdHMvRXZlbnRMaXN0ZW5l
clRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9GYWtlV2ViUGx1Z2luLmNwcCcsCiAgICAg
ICAgICAgICAndGVzdHMvRmFrZVdlYlBsdWdpbi5oJywKLSAgICAgICAgICAgICd0ZXN0cy9GYWtl
V2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UuaCcsCiAgICAgICAgICAgICAndGVzdHMvRmFrZVdl
YkdyYXBoaWNzQ29udGV4dDNELmgnLAogICAgICAgICAgICAgJ3Rlc3RzL0ZpbHRlck9wZXJhdGlv
bnNUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvRnJhbWVMb2FkZXJDbGllbnRJbXBsVGVz
dC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4
IGY2NmFlNDhjNDhkOGEzOGVlZTIwZDc0ZmZjNzQ1MzcxZTcwYjEwMDguLjc5YTk4N2Y0MzFhNWI4
ZGI2N2MwMjg5NjFlOTEzZmM5MTcwOWIwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAKQEAgLTQwNzYsNDkgKzQwNzYsNiBAQCB2b2lkIFdlYlZpZXdJbXBs
Ojpsb2FkRm9udEF0bGFzSWZOZWNlc3NhcnkoKQogCiAjZW5kaWYKIAotbmFtZXNwYWNlIHsKLQot
Ly8gQWRhcHRzIGEgcHVyZSBXZWJHcmFwaGljc0NvbnRleHQzRCBpbnRvIGEgV2ViQ29tcG9zaXRv
ck91dHB1dFN1cmZhY2UgdW50aWwKLS8vIGRvd25zdHJlYW0gY29kZSBjYW4gYmUgdXBkYXRlZCB0
byBwcm9kdWNlIG91dHB1dCBzdXJmYWNlcyBkaXJlY3RseS4KLWNsYXNzIFdlYkdyYXBoaWNzQ29u
dGV4dFRvT3V0cHV0U3VyZmFjZUFkYXB0ZXIgOiBwdWJsaWMgV2ViQ29tcG9zaXRvck91dHB1dFN1
cmZhY2UgewotcHVibGljOgotICAgIGV4cGxpY2l0IFdlYkdyYXBoaWNzQ29udGV4dFRvT3V0cHV0
U3VyZmFjZUFkYXB0ZXIoUGFzc093blB0cjxXZWJHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCkK
LSAgICAgICAgOiBtX2NvbnRleHQzRChjb250ZXh0KQotICAgICAgICAsIG1fY2xpZW50KDApCi0g
ICAgewotICAgIH0KLQotICAgIHZpcnR1YWwgYm9vbCBiaW5kVG9DbGllbnQoV2ViQ29tcG9zaXRv
ck91dHB1dFN1cmZhY2VDbGllbnQqIGNsaWVudCkgT1ZFUlJJREUKLSAgICB7Ci0gICAgICAgIEFT
U0VSVChjbGllbnQpOwotICAgICAgICBpZiAoIW1fY29udGV4dDNELT5tYWtlQ29udGV4dEN1cnJl
bnQoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgbV9jbGllbnQgPSBjbGll
bnQ7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHZpcnR1YWwgY29uc3QgQ2Fw
YWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBjb25zdCBPVkVSUklERQotICAgIHsKLSAgICAgICAg
cmV0dXJuIG1fY2FwYWJpbGl0aWVzOwotICAgIH0KLQotICAgIHZpcnR1YWwgV2ViR3JhcGhpY3ND
b250ZXh0M0QqIGNvbnRleHQzRCgpIGNvbnN0IE9WRVJSSURFCi0gICAgewotICAgICAgICByZXR1
cm4gbV9jb250ZXh0M0QuZ2V0KCk7Ci0gICAgfQotCi0gICAgdmlydHVhbCB2b2lkIHNlbmRGcmFt
ZVRvUGFyZW50Q29tcG9zaXRvcihjb25zdCBXZWJDb21wb3NpdG9yRnJhbWUmKSBPVkVSUklERQot
ICAgIHsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgT3duUHRyPFdlYkdyYXBoaWNzQ29udGV4dDNE
PiBtX2NvbnRleHQzRDsKLSAgICBDYXBhYmlsaXRpZXMgbV9jYXBhYmlsaXRpZXM7Ci0gICAgV2Vi
Q29tcG9zaXRvck91dHB1dFN1cmZhY2VDbGllbnQqIG1fY2xpZW50OwotfTsKLQotfSAvLyBuYW1l
c3BhY2UKLQogV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UqIFdlYlZpZXdJbXBsOjpjcmVhdGVP
dXRwdXRTdXJmYWNlKCkKIHsKICAgICByZXR1cm4gbV9jbGllbnQtPmNyZWF0ZU91dHB1dFN1cmZh
Y2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRM
YXllckJyaWRnZVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMy
RExheWVyQnJpZGdlVGVzdC5jcHAKaW5kZXggMjZiZGQ0ZjExOWJhNTc2ZTdmNDNmYmYzNjQ5MTZj
NWFkNjk3Y2FlOS4uNTA5YWEyZTdjNmFmY2Y1ODJlYzc5ZDM3MjljNzNmZDNhMGY1MDk1ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMyRExheWVyQnJpZGdl
VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMyRExheWVy
QnJpZGdlVGVzdC5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKIAogI2luY2x1ZGUgIkNhbnZhczJETGF5
ZXJCcmlkZ2UuaCIKIAotI2luY2x1ZGUgIkZha2VXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZS5o
IgogI2luY2x1ZGUgIkZha2VXZWJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIkdyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zha2VXZWJDb21wb3NpdG9yT3V0cHV0
U3VyZmFjZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GYWtlV2ViQ29tcG9zaXRv
ck91dHB1dFN1cmZhY2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWQ5M2I2YjZl
ZTBiY2JiZDEyZTNlMDk4ZDJkZGI5YTNjYTk5NmRmNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zha2VX
ZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZS5oCisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpZm5kZWYgRmFrZVdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlX2gKLSNkZWZp
bmUgRmFrZVdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlX2gKLQotI2luY2x1ZGUgPHB1YmxpYy9X
ZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZS5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJHcmFwaGlj
c0NvbnRleHQzRC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgRmFrZVdlYkNvbXBvc2l0
b3JPdXRwdXRTdXJmYWNlIDogcHVibGljIFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlIHsKLXB1
YmxpYzoKLSAgICBzdGF0aWMgaW5saW5lIFBhc3NPd25QdHI8RmFrZVdlYkNvbXBvc2l0b3JPdXRw
dXRTdXJmYWNlPiBjcmVhdGUoUGFzc093blB0cjxXZWJHcmFwaGljc0NvbnRleHQzRD4gY29udGV4
dDNEKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBGYWtlV2ViQ29tcG9zaXRv
ck91dHB1dFN1cmZhY2UoY29udGV4dDNEKSk7Ci0gICAgfQotCi0KLSAgICB2aXJ0dWFsIGJvb2wg
YmluZFRvQ2xpZW50KFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlQ2xpZW50KiBjbGllbnQpIE9W
RVJSSURFCi0gICAgewotICAgICAgICBBU1NFUlQoY2xpZW50KTsKLSAgICAgICAgaWYgKCFtX2Nv
bnRleHQzRC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgIG1fY2xpZW50ID0gY2xpZW50OwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9
Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgY29uc3Qg
T1ZFUlJJREUKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2NhcGFiaWxpdGllczsKLSAgICB9Ci0K
LSAgICB2aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M0QoKSBjb25zdCBPVkVS
UklERQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fY29udGV4dDNELmdldCgpOwotICAgIH0KLQot
ICAgIHZpcnR1YWwgdm9pZCBzZW5kRnJhbWVUb1BhcmVudENvbXBvc2l0b3IoY29uc3QgV2ViQ29t
cG9zaXRvckZyYW1lJikgT1ZFUlJJREUKLSAgICB7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIGV4
cGxpY2l0IEZha2VXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZShQYXNzT3duUHRyPFdlYkdyYXBo
aWNzQ29udGV4dDNEPiBjb250ZXh0M0QpCi0gICAgewotICAgICAgICBtX2NvbnRleHQzRCA9IGNv
bnRleHQzRDsKLSAgICB9Ci0KLSAgICBPd25QdHI8V2ViR3JhcGhpY3NDb250ZXh0M0Q+IG1fY29u
dGV4dDNEOwotICAgIENhcGFiaWxpdGllcyBtX2NhcGFiaWxpdGllczsKLSAgICBXZWJDb21wb3Np
dG9yT3V0cHV0U3VyZmFjZUNsaWVudCogbV9jbGllbnQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKLQotI2VuZGlmIC8vIEZha2VXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZV9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkxheWVyVHJlZVZpZXdUZXN0
Q29tbW9uLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkxheWVyVHJlZVZpZXdU
ZXN0Q29tbW9uLmgKaW5kZXggNDgwNzFmOTUxMWVjMjRmYTlhZTc0ZThlZWQzMTJiZWJkNjY5ZTI2
Mi4uNDQ2NjNhMWI0NTA1Mjk0OWNlNDZmMmJiYjc0OTAzNzFlN2YwNjJlMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJMYXllclRyZWVWaWV3VGVzdENvbW1vbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViTGF5ZXJUcmVlVmlld1Rlc3RD
b21tb24uaApAQCAtMjYsOCArMjYsOSBAQAogI2RlZmluZSBXZWJMYXllclRyZWVWaWV3VGVzdENv
bW1vbl9oCiAKICNpbmNsdWRlICJDb21wb3NpdG9yRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNELmgi
Ci0jaW5jbHVkZSAiRmFrZVdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlLmgiCiAjaW5jbHVkZSA8
Z21vY2svZ21vY2suaD4KKyNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxw
dWJsaWMvV2ViQ29tcG9zaXRvclN1cHBvcnQuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViTGF5ZXJU
cmVlVmlld0NsaWVudC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQzLDcgKzQ0LDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZSogY3JlYXRl
T3V0cHV0U3VyZmFjZSgpIE9WRVJSSURFCiAgICAgewotICAgICAgICByZXR1cm4gRmFrZVdlYkNv
bXBvc2l0b3JPdXRwdXRTdXJmYWNlOjpjcmVhdGUoQ29tcG9zaXRvckZha2VXZWJHcmFwaGljc0Nv
bnRleHQzRDo6Y3JlYXRlKFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzKCkpKS5sZWFr
UHRyKCk7CisgICAgICAgIHJldHVybiBQbGF0Zm9ybTo6Y3VycmVudCgpLT5jb21wb3NpdG9yU3Vw
cG9ydCgpLT5jcmVhdGVPdXRwdXRTdXJmYWNlRm9yM0QoQ29tcG9zaXRvckZha2VXZWJHcmFwaGlj
c0NvbnRleHQzRDo6Y3JlYXRlKFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzKCkpLmxl
YWtQdHIoKSk7CiAgICAgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZU91dHB1dFN1cmZh
Y2UoYm9vbCkgT1ZFUlJJREUgeyB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA0YzdlYzM3OWQ2YTFmOGJjZDZmNzg4MmUxMDM2ODg1NWI1ZjVi
NDUyLi45MmIzMDk2NzBhNWRkNjc4MWY1YmViYzFhMmFkODk0YjkzNGZlYTNlIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjIgQEAK
IDIwMTItMTItMDQgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKKyAgICAg
ICAgW2Nocm9taXVtXSBSZW1vdmUgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UgaW1wbGVtZW50
YXRpb25zIGZyb20gRFJUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDQwNDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGUgY2xhc3NlcyBhcmUgbm93IHByb3ZpZGVkIHRocm91Z2ggV2ViQ29tcG9zaXRv
clN1cHBvcnQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAg
ICAgICAgKFdlYlZpZXdIb3N0OjpjcmVhdGVPdXRwdXRTdXJmYWNlKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdE91dHB1dFN1cmZhY2UuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0T3V0cHV0U3Vy
ZmFjZS5oOiBSZW1vdmVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZp
ZXdIb3N0U29mdHdhcmVPdXRwdXREZXZpY2UuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0U29mdHdhcmVPdXRwdXREZXZpY2UuaDogUmVt
b3ZlZC4KKworMjAxMi0xMi0wNCAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4K
KwogICAgICAgICBbY2hyb21pdW1dIE1ha2UgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UgYW4g
ZW1wdHkgY2xhc3Mgd2hlbiBVU0VfQ0NfT1VUUFVUX1NVUkZBQ0UgaXMgZGVmaW5lZC4KICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzk2NwogCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQppbmRleCBhYzRkMmE2MjJiZWUwN2Fi
NjZlZjgyMmE5N2ZiMzRhYTNjZmVjYWZiLi5mYmI4Y2U0MThlOWQ2Zjk4ODM3M2Q1MzhkMmQ1ODg0
OTJmMzdhZDg3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJl
ZS5neXBpCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkKQEAg
LTYwLDEwICs2MCw2IEBACiAgICAgICAgICAgICAnY2hyb21pdW0vV2ViVXNlck1lZGlhQ2xpZW50
TW9jay5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAnLAogICAgICAg
ICAgICAgJ2Nocm9taXVtL1dlYlZpZXdIb3N0LmgnLAotICAgICAgICAgICAgJ2Nocm9taXVtL1dl
YlZpZXdIb3N0T3V0cHV0U3VyZmFjZS5jcHAnLAotICAgICAgICAgICAgJ2Nocm9taXVtL1dlYlZp
ZXdIb3N0T3V0cHV0U3VyZmFjZS5oJywKLSAgICAgICAgICAgICdjaHJvbWl1bS9XZWJWaWV3SG9z
dFNvZnR3YXJlT3V0cHV0RGV2aWNlLmNwcCcsCi0gICAgICAgICAgICAnY2hyb21pdW0vV2ViVmll
d0hvc3RTb2Z0d2FyZU91dHB1dERldmljZS5oJywKICAgICAgICAgXSwKICAgICAgICAgJ3Rlc3Rf
cnVubmVyX2ZpbGVzJzogWwogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGlj
L1dlYkFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgnLApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IDU4ZTI1MDhlOTlkNGU2YWJkZTViM2IzYmFm
MDNiMzEwZDlkZDJjZjkuLjU2ZDhhYzg4OTNlNDUxZGVjZTAyMTUyZjVkNWIyYmI2ZTE1OWE3YjQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAg
LTY2LDggKzY2LDYgQEAKICNpbmNsdWRlICJXZWJUZXh0Q2hlY2tpbmdSZXN1bHQuaCIKICNpbmNs
dWRlICJXZWJVc2VyTWVkaWFDbGllbnRNb2NrLmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgotI2lu
Y2x1ZGUgIldlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZS5oIgotI2luY2x1ZGUgIldlYlZpZXdIb3N0
U29mdHdhcmVPdXRwdXREZXZpY2UuaCIKICNpbmNsdWRlICJXZWJXaW5kb3dGZWF0dXJlcy5oIgog
I2luY2x1ZGUgInBsYXRmb3JtL1dlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUg
InNraWEvZXh0L3BsYXRmb3JtX2NhbnZhcy5oIgpAQCAtMjg4LDE4ICsyODYsMTEgQEAgV2ViQ29t
cG9zaXRvck91dHB1dFN1cmZhY2UqIFdlYlZpZXdIb3N0OjpjcmVhdGVPdXRwdXRTdXJmYWNlKCkK
ICAgICBpZiAoIXdlYlZpZXcoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpZiAobV9zaGVs
bC0+c29mdHdhcmVDb21wb3NpdGluZ0VuYWJsZWQoKSkgewotICAgICAgICBXZWJDb21wb3NpdG9y
T3V0cHV0U3VyZmFjZSogc3VyZmFjZSA9IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y29t
cG9zaXRvclN1cHBvcnQoKS0+Y3JlYXRlT3V0cHV0U3VyZmFjZUZvclNvZnR3YXJlKCk7Ci0gICAg
ICAgIGlmICghc3VyZmFjZSkKLSAgICAgICAgICAgIHN1cmZhY2UgPSBXZWJWaWV3SG9zdE91dHB1
dFN1cmZhY2U6OmNyZWF0ZVNvZnR3YXJlKGFkb3B0UHRyKG5ldyBXZWJWaWV3SG9zdFNvZnR3YXJl
T3V0cHV0RGV2aWNlKSkubGVha1B0cigpOwotICAgICAgICByZXR1cm4gc3VyZmFjZTsKLSAgICB9
CisgICAgaWYgKG1fc2hlbGwtPnNvZnR3YXJlQ29tcG9zaXRpbmdFbmFibGVkKCkpCisgICAgICAg
IHJldHVybiBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0KCkt
PmNyZWF0ZU91dHB1dFN1cmZhY2VGb3JTb2Z0d2FyZSgpOwogCiAgICAgV2ViR3JhcGhpY3NDb250
ZXh0M0QqIGNvbnRleHQgPSB3ZWJraXRfc3VwcG9ydDo6Q3JlYXRlR3JhcGhpY3NDb250ZXh0M0Qo
V2ViR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMoKSwgd2ViVmlldygpKTsKLSAgICBXZWJD
b21wb3NpdG9yT3V0cHV0U3VyZmFjZSogc3VyZmFjZSA9IFdlYktpdDo6UGxhdGZvcm06OmN1cnJl
bnQoKS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+Y3JlYXRlT3V0cHV0U3VyZmFjZUZvcjNEKGNvbnRl
eHQpOwotICAgIGlmICghc3VyZmFjZSkKLSAgICAgICAgc3VyZmFjZSA9IFdlYlZpZXdIb3N0T3V0
cHV0U3VyZmFjZTo6Y3JlYXRlM2QoYWRvcHRQdHIoY29udGV4dCkpLmxlYWtQdHIoKTsKLSAgICBy
ZXR1cm4gc3VyZmFjZTsKKyAgICByZXR1cm4gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5j
b21wb3NpdG9yU3VwcG9ydCgpLT5jcmVhdGVPdXRwdXRTdXJmYWNlRm9yM0QoY29udGV4dCk7CiB9
CiAKIHZvaWQgV2ViVmlld0hvc3Q6OmRpZEFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgV2ViQ29u
c29sZU1lc3NhZ2UmIG1lc3NhZ2UsIGNvbnN0IFdlYlN0cmluZyYgc291cmNlTmFtZSwgdW5zaWdu
ZWQgc291cmNlTGluZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9XZWJWaWV3SG9zdE91dHB1dFN1cmZhY2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwOWEwYWY1MDE0MzY2YmMxZTA2NTA3MDk1YzJkMTZjN2M2ZmY3MGQ4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZS5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSw4OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAi
V2ViVmlld0hvc3RPdXRwdXRTdXJmYWNlLmgiCi0KLSNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tcG9z
aXRvclNvZnR3YXJlT3V0cHV0RGV2aWNlLmg+Ci0jaW5jbHVkZSA8cHVibGljL1dlYkdyYXBoaWNz
Q29udGV4dDNELmg+Ci0jaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci0KLVBhc3NPd25QdHI8V2ViVmlld0hvc3RPdXRwdXRTdXJmYWNlPiBXZWJWaWV3SG9z
dE91dHB1dFN1cmZhY2U6OmNyZWF0ZTNkKFBhc3NPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljc0Nv
bnRleHQzRD4gY29udGV4dDNkKQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViVmlld0hv
c3RPdXRwdXRTdXJmYWNlKGNvbnRleHQzZCkpOwotfQotCi1QYXNzT3duUHRyPFdlYlZpZXdIb3N0
T3V0cHV0U3VyZmFjZT4gV2ViVmlld0hvc3RPdXRwdXRTdXJmYWNlOjpjcmVhdGVTb2Z0d2FyZShQ
YXNzT3duUHRyPFdlYktpdDo6V2ViQ29tcG9zaXRvclNvZnR3YXJlT3V0cHV0RGV2aWNlPiBzb2Z0
d2FyZURldmljZSkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdlYlZpZXdIb3N0T3V0cHV0
U3VyZmFjZShzb2Z0d2FyZURldmljZSkpOwotfQotCi1XZWJWaWV3SG9zdE91dHB1dFN1cmZhY2U6
OldlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZShQYXNzT3duUHRyPFdlYktpdDo6V2ViR3JhcGhpY3ND
b250ZXh0M0Q+IGNvbnRleHQpCi0gICAgOiBtX2NvbnRleHQoY29udGV4dCkKLXsKLX0KLQotV2Vi
Vmlld0hvc3RPdXRwdXRTdXJmYWNlOjpXZWJWaWV3SG9zdE91dHB1dFN1cmZhY2UoUGFzc093blB0
cjxXZWJLaXQ6OldlYkNvbXBvc2l0b3JTb2Z0d2FyZU91dHB1dERldmljZT4gc29mdHdhcmVEZXZp
Y2UpCi0gICAgOiBtX3NvZnR3YXJlRGV2aWNlKHNvZnR3YXJlRGV2aWNlKQotewotfQotCi1XZWJW
aWV3SG9zdE91dHB1dFN1cmZhY2U6On5XZWJWaWV3SG9zdE91dHB1dFN1cmZhY2UoKQotewotfQot
Ci1ib29sIFdlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZTo6YmluZFRvQ2xpZW50KFdlYkNvbXBvc2l0
b3JPdXRwdXRTdXJmYWNlQ2xpZW50KikKLXsKLSAgICBpZiAoIW1fY29udGV4dCkKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0KLSAgICByZXR1cm4gbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQo
KTsKLX0KLQotY29uc3QgV2ViS2l0OjpXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZTo6Q2FwYWJp
bGl0aWVzJiBXZWJWaWV3SG9zdE91dHB1dFN1cmZhY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOwotfQotCi1XZWJHcmFwaGljc0NvbnRleHQzRCog
V2ViVmlld0hvc3RPdXRwdXRTdXJmYWNlOjpjb250ZXh0M0QoKSBjb25zdAotewotICAgIHJldHVy
biBtX2NvbnRleHQuZ2V0KCk7Ci19Ci0KLVdlYkNvbXBvc2l0b3JTb2Z0d2FyZU91dHB1dERldmlj
ZSogV2ViVmlld0hvc3RPdXRwdXRTdXJmYWNlOjpzb2Z0d2FyZURldmljZSgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fc29mdHdhcmVEZXZpY2UuZ2V0KCk7Ci19Ci0KLXZvaWQgV2ViVmlld0hvc3RP
dXRwdXRTdXJmYWNlOjpzZW5kRnJhbWVUb1BhcmVudENvbXBvc2l0b3IoY29uc3QgV2ViQ29tcG9z
aXRvckZyYW1lJikKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3RPdXRwdXRTdXJm
YWNlLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdE91dHB1dFN1
cmZhY2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmJkNjFhMjFhMWEyNThjOTA1
MWJmOGY2YjcyYzA2NzVjODM4YWExMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdE91
dHB1dFN1cmZhY2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
LSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIFdlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZV9oCi0jZGVmaW5lIFdlYlZpZXdIb3N0T3V0cHV0
U3VyZmFjZV9oCi0KLSNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2Uu
aD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
LQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNl
Q2xpZW50OwotY2xhc3MgV2ViQ29tcG9zaXRvclNvZnR3YXJlT3V0cHV0RGV2aWNlOwotY2xhc3Mg
V2ViR3JhcGhpY3NDb250ZXh0M0Q7Ci0KLWNsYXNzIFdlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZSA6
IHB1YmxpYyBXZWJLaXQ6OldlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlIHsKLXB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc093blB0cjxXZWJWaWV3SG9zdE91dHB1dFN1cmZhY2U+IGNyZWF0ZTNkKFBh
c3NPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRD4pOwotICAgIHN0YXRpYyBQYXNz
T3duUHRyPFdlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZT4gY3JlYXRlU29mdHdhcmUoUGFzc093blB0
cjxXZWJLaXQ6OldlYkNvbXBvc2l0b3JTb2Z0d2FyZU91dHB1dERldmljZT4pOwotICAgIHZpcnR1
YWwgfldlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZSgpOwotCi0gICAgdmlydHVhbCBib29sIGJpbmRU
b0NsaWVudChXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZUNsaWVudCopIE9WRVJSSURFOwotCi0g
ICAgdmlydHVhbCBjb25zdCBXZWJLaXQ6OldlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlOjpDYXBh
YmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2Vi
R3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzRCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgV2ViQ29tcG9zaXRvclNvZnR3YXJlT3V0cHV0RGV2aWNlKiBzb2Z0d2FyZURldmljZSgpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZW5kRnJhbWVUb1BhcmVudENvbXBvc2l0
b3IoY29uc3QgV2ViQ29tcG9zaXRvckZyYW1lJikgT1ZFUlJJREU7Ci0KLXByaXZhdGU6Ci0gICAg
ZXhwbGljaXQgV2ViVmlld0hvc3RPdXRwdXRTdXJmYWNlKFBhc3NPd25QdHI8V2ViS2l0OjpXZWJH
cmFwaGljc0NvbnRleHQzRD4pOwotICAgIGV4cGxpY2l0IFdlYlZpZXdIb3N0T3V0cHV0U3VyZmFj
ZShQYXNzT3duUHRyPFdlYktpdDo6V2ViQ29tcG9zaXRvclNvZnR3YXJlT3V0cHV0RGV2aWNlPik7
Ci0KLSAgICBXZWJLaXQ6OldlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlOjpDYXBhYmlsaXRpZXMg
bV9jYXBhYmlsaXRpZXM7Ci0gICAgT3duUHRyPFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q+
IG1fY29udGV4dDsKLSAgICBPd25QdHI8V2ViS2l0OjpXZWJDb21wb3NpdG9yU29mdHdhcmVPdXRw
dXREZXZpY2U+IG1fc29mdHdhcmVEZXZpY2U7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBXZWJWaWV3
SG9zdE91dHB1dFN1cmZhY2VfaApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3RTb2Z0d2FyZU91dHB1dERldmljZS5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdFNvZnR3YXJlT3V0cHV0RGV2aWNlLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWNlZTk5NDBkMmRlNjA3NzUyZjk1ZWQ2ZDMwZmEz
ZGE3ODU3OTg2ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdFNvZnR3YXJlT3V0cHV0
RGV2aWNlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0KLSNpbmNsdWRlICJXZWJWaWV3SG9zdFNvZnR3YXJlT3V0cHV0RGV2aWNl
LmgiCi0KLSNpbmNsdWRlICJTa0JpdG1hcC5oIgotI2luY2x1ZGUgIlNrRGV2aWNlLmgiCi0jaW5j
bHVkZSA8cHVibGljL1dlYlNpemUuaD4KLSNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLQotV2ViSW1hZ2UqIFdlYlZpZXdIb3N0U29mdHdhcmVPdXRwdXRE
ZXZpY2U6OmxvY2soYm9vbCBmb3JXcml0ZSkKLXsKLSAgICBBU1NFUlQobV9kZXZpY2UpOwotICAg
IG1faW1hZ2UgPSBtX2RldmljZS0+YWNjZXNzQml0bWFwKGZvcldyaXRlKTsKLSAgICByZXR1cm4g
Jm1faW1hZ2U7Ci19Ci0KLXZvaWQgV2ViVmlld0hvc3RTb2Z0d2FyZU91dHB1dERldmljZTo6dW5s
b2NrKCkKLXsKLSAgICBtX2ltYWdlLnJlc2V0KCk7Ci19Ci0KLXZvaWQgV2ViVmlld0hvc3RTb2Z0
d2FyZU91dHB1dERldmljZTo6ZGlkQ2hhbmdlVmlld3BvcnRTaXplKFdlYlNpemUgc2l6ZSkKLXsK
LSAgICBpZiAobV9kZXZpY2UgJiYgc2l6ZS53aWR0aCA9PSBtX2RldmljZS0+d2lkdGgoKSAmJiBz
aXplLmhlaWdodCA9PSBtX2RldmljZS0+aGVpZ2h0KCkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IG1fZGV2aWNlID0gYWRvcHRQdHIobmV3IFNrRGV2aWNlKFNrQml0bWFwOjprQVJHQl84ODg4X0Nv
bmZpZywgc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQsIHRydWUpKTsKLX0KLQotCi19CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdFNvZnR3YXJlT3V0
cHV0RGV2aWNlLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdFNv
ZnR3YXJlT3V0cHV0RGV2aWNlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViZDU1
MWZmOTJlOTBlNmEzZDI4OTNmNzc2ZGVmNTY0NGQ2MmJjNjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViVmlld0hvc3RTb2Z0d2FyZU91dHB1dERldmljZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTQg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0g
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViVmlld0hvc3RTb2Z0d2FyZU91dHB1dERldmljZV9o
Ci0jZGVmaW5lIFdlYlZpZXdIb3N0U29mdHdhcmVPdXRwdXREZXZpY2VfaAotCi0jaW5jbHVkZSA8
cHVibGljL1dlYkNvbXBvc2l0b3JTb2Z0d2FyZU91dHB1dERldmljZS5oPgotI2luY2x1ZGUgPHB1
YmxpYy9XZWJJbWFnZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgotCi1jbGFzcyBTa0RldmljZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0K
LXN0cnVjdCBXZWJTaXplOwotCi1jbGFzcyBXZWJWaWV3SG9zdFNvZnR3YXJlT3V0cHV0RGV2aWNl
IDogcHVibGljIFdlYktpdDo6V2ViQ29tcG9zaXRvclNvZnR3YXJlT3V0cHV0RGV2aWNlIHsKLXB1
YmxpYzoKLSAgICB2aXJ0dWFsIFdlYkltYWdlKiBsb2NrKGJvb2wgZm9yV3JpdGUpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCB1bmxvY2soKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgdm9p
ZCBkaWRDaGFuZ2VWaWV3cG9ydFNpemUoV2ViU2l6ZSkgT1ZFUlJJREU7Ci0KLXByaXZhdGU6Ci0g
ICAgT3duUHRyPFNrRGV2aWNlPiBtX2RldmljZTsKLSAgICBXZWJJbWFnZSBtX2ltYWdlOwotfTsK
LQotfQotCi0jZW5kaWYgLy8gV2ViVmlld0hvc3RTb2Z0d2FyZU91dHB1dERldmljZV9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178712</attachid>
            <date>2012-12-10 21:52:38 -0800</date>
            <delta_ts>2012-12-10 23:05:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104046-20121211004959.patch</filename>
            <type>text/plain</type>
            <size>32456</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBiODczZWEyNWFlOTI3
NDMzY2I3NzcxZjViY2U4ZmY2MGU3Y2I0NDVjLi45MzllM2Y4MDc0MzBiZDU5OTA4MDg2MGNmZTE1
ODhjNGZkZDI4OGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0xMi0wNCAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IFJlbW92ZSBXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZSBpbXBsZW1lbnRhdGlvbnMgZnJvbSBE
UlQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDA0
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92
ZSBub3ctdW51c2VkIGRlZmluaXRpb25zIGZvciB0aGVzZSBjbGFzc2VzLiBUaGUgY2M6Ok91dHB1
dFN1cmZhY2UKKyAgICAgICAgYW5kIGl0cyByZWxhdGVkIGNsYXNzZXMgaGF2ZSByZXBsYWNlZCB0
aGVzZSwgd2l0aCB0aGUKKyAgICAgICAgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UgY2xhc3Mg
YXMgYW4gZW1wdHkgYmFzZSBjbGFzcy4KKworICAgICAgICAqIFBsYXRmb3JtLmd5cGk6CisgICAg
ICAgICogY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlLmg6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yT3V0
cHV0U3VyZmFjZUNsaWVudC5oOiBSZW1vdmVkLgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9X
ZWJDb21wb3NpdG9yU29mdHdhcmVPdXRwdXREZXZpY2UuaDogUmVtb3ZlZC4KKwogMjAxMi0xMi0x
MCAgTWFyayBQaWxncmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9t
aXVtXSBNb3ZlIGdldFBsdWdpbnNMaXN0IG91dCBvZiBQbGF0Zm9ybVN1cHBvcnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKaW5kZXggYzlhM2MxOGIzNjU5NGNlYWYzOTIzYTg3MGZkOTE3MTU5Nzk0
MzVjZC4uMjcyZTAxNzM3M2QyMjNmZDEzYTA1MDFlYWViYTczYzlmZDFkYzgyMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0xMi0wNCAgRGFuYSBKYW5z
ZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIFJlbW92ZSBX
ZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZSBpbXBsZW1lbnRhdGlvbnMgZnJvbSBEUlQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDA0NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBXZWJDb21wb3Np
dG9yU3VwcG9ydCB0byBjcmVhdGUgYW4gT3V0cHV0U3VyZmFjZS4KKworICAgICAgICAqIFdlYktp
dC5neXBpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAqIHRlc3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcDoKKyAgICAgICAg
KiB0ZXN0cy9GYWtlV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiB0ZXN0cy9XZWJMYXllclRyZWVWaWV3VGVzdENvbW1vbi5oOgorCiAyMDEyLTEyLTEwICBT
dGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJv
bWl1bV0gUmUtZW5hYmxlIGEgZmFpbGluZyB0ZXN0LiAgRGlzYWJsaW5nIGl0IGp1c3Qgc2VlbWVk
IHRvCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaSBiL1NvdXJjZS9Q
bGF0Zm9ybS9QbGF0Zm9ybS5neXBpCmluZGV4IDQzZmU1YzhiODcwN2QzODc1OGU1OWNkMGE4YzA4
YTc3YTIzMDBlODAuLjlhZGE3ODZhMjBmZTMyMzRjZTBjMjA4OGY1ODgyNjhhZGFlN2ZhZWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCisrKyBiL1NvdXJjZS9QbGF0
Zm9ybS9QbGF0Zm9ybS5neXBpCkBAIC00NSw5ICs0NSw3IEBACiAgICAgICAgICAgICAnY2hyb21p
dW0vcHVibGljL1dlYkNvbG9yLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJD
b21tb24uaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JTdXBw
b3J0LmgnLAotICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yU29mdHdh
cmVPdXRwdXREZXZpY2UuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkNvbXBv
c2l0b3JPdXRwdXRTdXJmYWNlLmgnLAotICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJD
b21wb3NpdG9yT3V0cHV0U3VyZmFjZUNsaWVudC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9w
dWJsaWMvV2ViQ29udGVudExheWVyLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9X
ZWJDb250ZW50TGF5ZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dl
YkNvb2tpZS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMv
V2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UuaAppbmRleCAxNjA3ODNiZGQ0MmVlYjk5
ZTU3YmYwMjJmYmJjY2NiZmVmMDk2MGQ5Li43NDRmMjg5ZTc4ZjgzYjJhMzk0MDdiMjZlZjc1NzBh
YTBiNDNhNDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dl
YkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlLmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVt
L3B1YmxpYy9XZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZS5oCkBAIC0yOCw1MSArMjgsOCBAQAog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RydWN0IFdlYkNvbXBvc2l0b3JGcmFtZTsKLWNsYXNz
IFdlYkdyYXBoaWNzQ29udGV4dDNEOwotY2xhc3MgV2ViQ29tcG9zaXRvclNvZnR3YXJlT3V0cHV0
RGV2aWNlOwotY2xhc3MgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2VDbGllbnQ7Ci0KLSNpZmRl
ZiBVU0VfQ0NfT1VUUFVUX1NVUkZBQ0UKKy8vIEFuIGVtcHR5IGJhc2UgY2xhc3MgZm9yIGNjOjpP
dXRwdXRTdXJmYWNlIGluIGNocm9taXVtLgogY2xhc3MgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZh
Y2UgeyB9OwotI2Vsc2UKLS8vIFJlcHJlc2VudHMgdGhlIG91dHB1dCBzdXJmYWNlIGZvciBhIGNv
bXBvc2l0b3IuIFRoZSBjb21wb3NpdG9yIG93bnMKLS8vIGFuZCBtYW5hZ2VzIGl0cyBkZXN0cnVj
dGlvbi4gSXRzIGxpZmV0aW1lIGlzOgotLy8gICAxLiBDcmVhdGVkIG9uIHRoZSBtYWluIHRocmVh
ZCB2aWEgV2ViTGF5ZXJUcmVlVmlld0NsaWVudDo6Y3JlYXRlT3V0cHV0U3VyZmFjZS4KLS8vICAg
Mi4gUGFzc2VkIHRvIHRoZSBjb21wb3NpdG9yIHRocmVhZCBhbmQgYm91bmQgdG8gYSBjbGllbnQg
dmlhIGJpbmRUb0NsaWVudC4KLS8vICAgICAgRnJvbSBoZXJlIG9uLCBpdCB3aWxsIG9ubHkgYmUg
dXNlZCBvbiB0aGUgY29tcG9zaXRvciB0aHJlYWQuCi0vLyAgIDMuIElmIHRoZSAzRCBjb250ZXh0
IGlzIGxvc3QsIHRoZW4gdGhlIGNvbXBvc2l0b3Igd2lsbCBkZWxldGUgdGhlIG91dHB1dCBzdXJm
YWNlCi0vLyAgICAgIChvbiB0aGUgY29tcG9zaXRvciB0aHJlYWQpIGFuZCBnbyBiYWNrIHRvIHN0
ZXAgMS4KLWNsYXNzIFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlIHsKLXB1YmxpYzoKLSAgICB2
aXJ0dWFsIH5XZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZSgpIHsgfQotCi0gICAgLy8gQ2FsbGVk
IGJ5IHRoZSBjb21wb3NpdG9yIG9uIHRoZSBjb21wb3NpdG9yIHRocmVhZC4gVGhpcyBpcyBhIHBs
YWNlIHdoZXJlIHRocmVhZC1zcGVjaWZpYwotICAgIC8vIGRhdGEgZm9yIHRoZSBvdXRwdXQgc3Vy
ZmFjZSBjYW4gYmUgaW5pdGlhbGl6ZWQsIHNpbmNlIGZyb20gdGhpcyBwb2ludCBvbiB0aGUgb3V0
cHV0IHN1cmZhY2UKLSAgICAvLyB3aWxsIG9ubHkgYmUgdXNlZCBvbiB0aGUgY29tcG9zaXRvciB0
aHJlYWQuCi0gICAgdmlydHVhbCBib29sIGJpbmRUb0NsaWVudChXZWJDb21wb3NpdG9yT3V0cHV0
U3VyZmFjZUNsaWVudCopID0gMDsKLQotICAgIHN0cnVjdCBDYXBhYmlsaXRpZXMgewotICAgICAg
ICBDYXBhYmlsaXRpZXMoKQotICAgICAgICAgICAgOiBoYXNQYXJlbnRDb21wb3NpdG9yKGZhbHNl
KQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBib29sIGhhc1BhcmVudENvbXBvc2l0
b3I7Ci0gICAgfTsKLQotICAgIHZpcnR1YWwgY29uc3QgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRp
ZXMoKSBjb25zdCA9IDA7Ci0KLSAgICAvLyBPYnRhaW4gdGhlIDNkIGNvbnRleHQgb3IgdGhlIHNv
ZnR3YXJlIGRldmljZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBvdXRwdXQgc3VyZmFjZS4gRWl0aGVy
IG9mIHRoZXNlIG1heSByZXR1cm4gYSBudWxsIHBvaW50ZXIsIGJ1dCBub3QgYm90aC4KLSAgICAv
LyBJbiB0aGUgZXZlbnQgb2YgYSBsb3N0IGNvbnRleHQsIHRoZSBlbnRpcmUgb3V0cHV0IHN1cmZh
Y2Ugc2hvdWxkIGJlIHJlY3JlYXRlZC4KLSAgICB2aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4dDNE
KiBjb250ZXh0M0QoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBXZWJDb21wb3NpdG9yU29mdHdh
cmVPdXRwdXREZXZpY2UqIHNvZnR3YXJlRGV2aWNlKCkgY29uc3QgeyByZXR1cm4gMDsgfQotCi0g
ICAgLy8gU2VuZHMgZnJhbWUgZGF0YSB0byB0aGUgcGFyZW50IGNvbXBvc2l0b3IuIFRoaXMgc2hv
dWxkIG9ubHkgYmUgY2FsbGVkCi0gICAgLy8gd2hlbiBjYXBhYmlsaXRpZXMoKS5oYXNQYXJlbnRD
b21wb3NpdG9yLgotICAgIHZpcnR1YWwgdm9pZCBzZW5kRnJhbWVUb1BhcmVudENvbXBvc2l0b3Io
Y29uc3QgV2ViQ29tcG9zaXRvckZyYW1lJikgPSAwOwotfTsKLSNlbmRpZiAvLyBVU0VfQ0NfQ09N
UE9TSVRPUl9TVVJGQUNFCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9t
aXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZUNsaWVudC5oIGIvU291cmNlL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZUNsaWVudC5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMmY2MzJkZTEwOGU3YzM0ZTBkNmQ2YTk2
ZDI5NmNlMThjYzIzNTg5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvck91dHB1
dFN1cmZhY2VDbGllbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAot
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aWZuZGVmIFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlQ2xpZW50X2gKLSNkZWZpbmUgV2ViQ29t
cG9zaXRvck91dHB1dFN1cmZhY2VDbGllbnRfaAotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotc3Ry
dWN0IFdlYkNvbXBvc2l0b3JGcmFtZUFjazsKLQotI2lmbmRlZiBVU0VfQ0NfT1VUUFVUX1NVUkZB
Q0UKLWNsYXNzIFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlQ2xpZW50IHsKLXB1YmxpYzoKLSAg
ICB2aXJ0dWFsIHZvaWQgb25WU3luY1BhcmFtZXRlcnNDaGFuZ2VkKGRvdWJsZSBtb25vdG9uaWNU
aW1lYmFzZSwgZG91YmxlIGludGVydmFsSW5TZWNvbmRzKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IG9uU2VuZEZyYW1lVG9QYXJlbnRDb21wb3NpdG9yQWNrKGNvbnN0IFdlYkNvbXBvc2l0b3JGcmFt
ZUFjayYpIHsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgfldlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNl
Q2xpZW50KCkgeyB9Ci19OwotI2VuZGlmCi0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JTb2Z0d2FyZU91dHB1dERl
dmljZS5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yU29m
dHdhcmVPdXRwdXREZXZpY2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTVjN2Ji
M2RlMDE3OWQyZGJlMWNmZTg2MmNkYWJmNDMxYjUzNjcwYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGlj
L1dlYkNvbXBvc2l0b3JTb2Z0d2FyZU91dHB1dERldmljZS5oCisrKyAvZGV2L251bGwKQEAgLTEs
NTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
Ci0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0g
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViQ29tcG9zaXRvclNvZnR3YXJlT3V0cHV0RGV2
aWNlX2gKLSNkZWZpbmUgV2ViQ29tcG9zaXRvclNvZnR3YXJlT3V0cHV0RGV2aWNlX2gKLQotbmFt
ZXNwYWNlIFdlYktpdCB7Ci0KLSNpZm5kZWYgVVNFX0NDX1NPRlRXQVJFX09VVFBVVF9ERVZJQ0UK
LWNsYXNzIFdlYkltYWdlOwotc3RydWN0IFdlYlNpemU7Ci0KLS8vIFRoaXMgaXMgYSAidGVhci1v
ZmYiIGNsYXNzIHByb3ZpZGluZyBzb2Z0d2FyZSBkcmF3aW5nIHN1cHBvcnQgdG8KLS8vIFdlYkNv
bXBvc2l0b3JPdXRwdXRTdXJmYWNlLCBzdWNoIGFzIHRvIGEgcGxhdGZvcm0tcHJvdmlkZWQgd2lu
ZG93Ci0vLyBmcmFtZWJ1ZmZlci4KLWNsYXNzIFdlYkNvbXBvc2l0b3JTb2Z0d2FyZU91dHB1dERl
dmljZSB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViQ29tcG9zaXRvclNvZnR3YXJlT3V0cHV0
RGV2aWNlKCkgeyB9Ci0KLSAgICAvLyBMb2NrIHRoZSBmcmFtZWJ1ZmZlciBhbmQgcmV0dXJuIGEg
cG9pbnRlciB0byBhIFdlYkltYWdlIHJlZmVycmluZyB0byBpdHMKLSAgICAvLyBwaXhlbHMuIFNl
dCBmb3JXcml0ZSBpZiB5b3UgaW50ZW5kIHRvIGNoYW5nZSB0aGUgcGl4ZWxzLiBSZWFkYmFjawot
ICAgIC8vIGlzIHN1cHBvcnRlZCB3aGV0aGVyIG9yIG5vdCBmb3JXcml0ZSBpcyBzZXQuCi0gICAg
dmlydHVhbCBXZWJJbWFnZSogbG9jayhib29sIGZvcldyaXRlKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIHVubG9jaygpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFNp
emUoV2ViU2l6ZSkgPSAwOwotfTsKLSNlbmRpZiAvLyBVU0VfQ0NfU09GVFdBUkVfT1VUUFVUX0RF
VklDRQotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9X
ZWJLaXQuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKaW5kZXggMDM2
NWRhM2RjODE3ZDAwMWJlYzk5ZTdhODUyNzQ3ZDljNDJhYjdmOS4uMjZmNTA5YTczNjE4NGFlMGY2
ZjhlMjkyYThjYzU3YTE1Yzc5MjEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCkBA
IC02Nyw3ICs2Nyw2IEBACiAgICAgICAgICAgICAndGVzdHMvRXZlbnRMaXN0ZW5lclRlc3QuY3Bw
JywKICAgICAgICAgICAgICd0ZXN0cy9GYWtlV2ViUGx1Z2luLmNwcCcsCiAgICAgICAgICAgICAn
dGVzdHMvRmFrZVdlYlBsdWdpbi5oJywKLSAgICAgICAgICAgICd0ZXN0cy9GYWtlV2ViQ29tcG9z
aXRvck91dHB1dFN1cmZhY2UuaCcsCiAgICAgICAgICAgICAndGVzdHMvRmFrZVdlYkdyYXBoaWNz
Q29udGV4dDNELmgnLAogICAgICAgICAgICAgJ3Rlc3RzL0ZpbHRlck9wZXJhdGlvbnNUZXN0LmNw
cCcsCiAgICAgICAgICAgICAndGVzdHMvRnJhbWVMb2FkZXJDbGllbnRJbXBsVGVzdC5jcHAnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGE5NWEwN2Y4
N2UzNjYxYmM0MDk5NmU2MmMwOGM3NWRhN2QxOTU5Y2QuLjY5OTM0MWMzZmM0ZGI4YThmM2YzYTFl
NjdkYjY4N2M5ODcyOGM4ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAKQEAgLTQwNDQsNDkgKzQwNDQsNiBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRJc0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoYm9vbCBhY3RpdmUpCiAKICNlbmRpZgogCi1uYW1l
c3BhY2UgewotCi0vLyBBZGFwdHMgYSBwdXJlIFdlYkdyYXBoaWNzQ29udGV4dDNEIGludG8gYSBX
ZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZSB1bnRpbAotLy8gZG93bnN0cmVhbSBjb2RlIGNhbiBi
ZSB1cGRhdGVkIHRvIHByb2R1Y2Ugb3V0cHV0IHN1cmZhY2VzIGRpcmVjdGx5LgotY2xhc3MgV2Vi
R3JhcGhpY3NDb250ZXh0VG9PdXRwdXRTdXJmYWNlQWRhcHRlciA6IHB1YmxpYyBXZWJDb21wb3Np
dG9yT3V0cHV0U3VyZmFjZSB7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgV2ViR3JhcGhpY3NDb250
ZXh0VG9PdXRwdXRTdXJmYWNlQWRhcHRlcihQYXNzT3duUHRyPFdlYkdyYXBoaWNzQ29udGV4dDNE
PiBjb250ZXh0KQotICAgICAgICA6IG1fY29udGV4dDNEKGNvbnRleHQpCi0gICAgICAgICwgbV9j
bGllbnQoMCkKLSAgICB7Ci0gICAgfQotCi0gICAgdmlydHVhbCBib29sIGJpbmRUb0NsaWVudChX
ZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZUNsaWVudCogY2xpZW50KSBPVkVSUklERQotICAgIHsK
LSAgICAgICAgQVNTRVJUKGNsaWVudCk7Ci0gICAgICAgIGlmICghbV9jb250ZXh0M0QtPm1ha2VD
b250ZXh0Q3VycmVudCgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBtX2Ns
aWVudCA9IGNsaWVudDsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgdmlydHVh
bCBjb25zdCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGNvbnN0IE9WRVJSSURFCi0gICAg
ewotICAgICAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7Ci0gICAgfQotCi0gICAgdmlydHVhbCBX
ZWJHcmFwaGljc0NvbnRleHQzRCogY29udGV4dDNEKCkgY29uc3QgT1ZFUlJJREUKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBtX2NvbnRleHQzRC5nZXQoKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZv
aWQgc2VuZEZyYW1lVG9QYXJlbnRDb21wb3NpdG9yKGNvbnN0IFdlYkNvbXBvc2l0b3JGcmFtZSYp
IE9WRVJSSURFCi0gICAgewotICAgIH0KLQotcHJpdmF0ZToKLSAgICBPd25QdHI8V2ViR3JhcGhp
Y3NDb250ZXh0M0Q+IG1fY29udGV4dDNEOwotICAgIENhcGFiaWxpdGllcyBtX2NhcGFiaWxpdGll
czsKLSAgICBXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZUNsaWVudCogbV9jbGllbnQ7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZQotCiBXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZSogV2ViVmlld0lt
cGw6OmNyZWF0ZU91dHB1dFN1cmZhY2UoKQogewogICAgIHJldHVybiBtX2NsaWVudC0+Y3JlYXRl
T3V0cHV0U3VyZmFjZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcAppbmRleCAyNmJkZDRmMTE5YmE1NzZlN2Y0
M2ZiZjM2NDkxNmM1YWQ2OTdjYWU5Li41MDlhYTJlN2M2YWZjZjU4MmVjNzlkMzcyOWM3M2ZkM2Ew
ZjUwOTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJE
TGF5ZXJCcmlkZ2VUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Nh
bnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcApAQCAtMjYsNyArMjYsNiBAQAogCiAjaW5jbHVkZSAi
Q2FudmFzMkRMYXllckJyaWRnZS5oIgogCi0jaW5jbHVkZSAiRmFrZVdlYkNvbXBvc2l0b3JPdXRw
dXRTdXJmYWNlLmgiCiAjaW5jbHVkZSAiRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvRmFrZVdlYkNvbXBv
c2l0b3JPdXRwdXRTdXJmYWNlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zha2VX
ZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAxZDkzYjZiNmVlMGJjYmJkMTJlM2UwOThkMmRkYjlhM2NhOTk2ZGY3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvRmFrZVdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw4MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
LSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBGYWtlV2ViQ29tcG9zaXRvck91dHB1dFN1cmZh
Y2VfaAotI2RlZmluZSBGYWtlV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2VfaAotCi0jaW5jbHVk
ZSA8cHVibGljL1dlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlLmg+Ci0jaW5jbHVkZSA8cHVibGlj
L1dlYkdyYXBoaWNzQ29udGV4dDNELmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBGYWtl
V2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UgOiBwdWJsaWMgV2ViQ29tcG9zaXRvck91dHB1dFN1
cmZhY2UgewotcHVibGljOgotICAgIHN0YXRpYyBpbmxpbmUgUGFzc093blB0cjxGYWtlV2ViQ29t
cG9zaXRvck91dHB1dFN1cmZhY2U+IGNyZWF0ZShQYXNzT3duUHRyPFdlYkdyYXBoaWNzQ29udGV4
dDNEPiBjb250ZXh0M0QpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEZha2VX
ZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZShjb250ZXh0M0QpKTsKLSAgICB9Ci0KLQotICAgIHZp
cnR1YWwgYm9vbCBiaW5kVG9DbGllbnQoV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2VDbGllbnQq
IGNsaWVudCkgT1ZFUlJJREUKLSAgICB7Ci0gICAgICAgIEFTU0VSVChjbGllbnQpOwotICAgICAg
ICBpZiAoIW1fY29udGV4dDNELT5tYWtlQ29udGV4dEN1cnJlbnQoKSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgbV9jbGllbnQgPSBjbGllbnQ7Ci0gICAgICAgIHJldHVybiB0
cnVlOwotICAgIH0KLQotICAgIHZpcnR1YWwgY29uc3QgQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRp
ZXMoKSBjb25zdCBPVkVSUklERQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVz
OwotICAgIH0KLQotICAgIHZpcnR1YWwgV2ViR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQzRCgp
IGNvbnN0IE9WRVJSSURFCi0gICAgewotICAgICAgICByZXR1cm4gbV9jb250ZXh0M0QuZ2V0KCk7
Ci0gICAgfQotCi0gICAgdmlydHVhbCB2b2lkIHNlbmRGcmFtZVRvUGFyZW50Q29tcG9zaXRvcihj
b25zdCBXZWJDb21wb3NpdG9yRnJhbWUmKSBPVkVSUklERQotICAgIHsKLSAgICB9Ci0KLXByaXZh
dGU6Ci0gICAgZXhwbGljaXQgRmFrZVdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlKFBhc3NPd25Q
dHI8V2ViR3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQzRCkKLSAgICB7Ci0gICAgICAgIG1fY29u
dGV4dDNEID0gY29udGV4dDNEOwotICAgIH0KLQotICAgIE93blB0cjxXZWJHcmFwaGljc0NvbnRl
eHQzRD4gbV9jb250ZXh0M0Q7Ci0gICAgQ2FwYWJpbGl0aWVzIG1fY2FwYWJpbGl0aWVzOwotICAg
IFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlQ2xpZW50KiBtX2NsaWVudDsKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRmFrZVdlYkNvbXBvc2l0b3JPdXRwdXRTdXJm
YWNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViTGF5ZXJU
cmVlVmlld1Rlc3RDb21tb24uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViTGF5
ZXJUcmVlVmlld1Rlc3RDb21tb24uaAppbmRleCA0ODA3MWY5NTExZWMyNGZhOWFlNzRlOGVlZDMx
MmJlYmQ2NjllMjYyLi40NDY2M2ExYjQ1MDUyOTQ5Y2U0NmYyYmJiNzQ5MDM3MWU3ZjA2MmUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkxheWVyVHJlZVZpZXdU
ZXN0Q29tbW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJMYXllclRy
ZWVWaWV3VGVzdENvbW1vbi5oCkBAIC0yNiw4ICsyNiw5IEBACiAjZGVmaW5lIFdlYkxheWVyVHJl
ZVZpZXdUZXN0Q29tbW9uX2gKIAogI2luY2x1ZGUgIkNvbXBvc2l0b3JGYWtlV2ViR3JhcGhpY3ND
b250ZXh0M0QuaCIKLSNpbmNsdWRlICJGYWtlV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UuaCIK
ICNpbmNsdWRlIDxnbW9jay9nbW9jay5oPgorI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgor
I2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oPgogI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJMYXllclRyZWVWaWV3Q2xpZW50Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDMs
NyArNDQsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJm
YWNlKiBjcmVhdGVPdXRwdXRTdXJmYWNlKCkgT1ZFUlJJREUKICAgICB7Ci0gICAgICAgIHJldHVy
biBGYWtlV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2U6OmNyZWF0ZShDb21wb3NpdG9yRmFrZVdl
YkdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoV2ViR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0
ZXMoKSkpLmxlYWtQdHIoKTsKKyAgICAgICAgcmV0dXJuIFBsYXRmb3JtOjpjdXJyZW50KCktPmNv
bXBvc2l0b3JTdXBwb3J0KCktPmNyZWF0ZU91dHB1dFN1cmZhY2VGb3IzRChDb21wb3NpdG9yRmFr
ZVdlYkdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoV2ViR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJp
YnV0ZXMoKSkubGVha1B0cigpKTsKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY3JlYXRl
T3V0cHV0U3VyZmFjZShib29sKSBPVkVSUklERSB7IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDlkNTczY2RkNzBiZWVmOTVhM2M4MTY0MWZh
Y2I0YTcxMjEzNDY5MzQuLmM2ZTYwMDkzZGE4ZDI1M2I1MDg3YmMzY2MyYmE0NTE5OTkwN2VlNGMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxMi0xMi0wNCAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbY2hyb21pdW1dIFJlbW92ZSBXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFj
ZSBpbXBsZW1lbnRhdGlvbnMgZnJvbSBEUlQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNDA0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoZSBjbGFzc2VzIGFyZSBub3cgcHJvdmlkZWQgdGhyb3VnaCBX
ZWJDb21wb3NpdG9yU3VwcG9ydC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlLmd5cGk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hv
c3QuY3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6OmNyZWF0ZU91dHB1dFN1cmZhY2UpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZS5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hv
c3RPdXRwdXRTdXJmYWNlLmg6IFJlbW92ZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3RTb2Z0d2FyZU91dHB1dERldmljZS5jcHA6IFJlbW92ZWQuCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3RTb2Z0d2FyZU91dHB1dERl
dmljZS5oOiBSZW1vdmVkLgorCiAyMDEyLTEyLTEwICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIGNoYW5nZSAtLW5vLWxhdW5jaC1zYWZhcmkgdG8gLS1uby1z
aG93LXJlc3VsdHMgaW4gc2NyaXB0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
RHVtcFJlbmRlclRyZWUuZ3lwaSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVl
Lmd5cGkKaW5kZXggZTkyNmYzMzVmYTM2NmFmOTdkNWUxMzFiMTU4NGIxNWYxMmYyZDA0NC4uYjZh
MDNhMDczMmQ5MmZhOTU2YTUxYWNiZDVmNzhlMmM4MjQzM2YyMSAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCkBAIC01NiwxMCArNTYsNiBAQAogICAgICAgICAgICAg
J2Nocm9taXVtL1dlYlVzZXJNZWRpYUNsaWVudE1vY2suaCcsCiAgICAgICAgICAgICAnY2hyb21p
dW0vV2ViVmlld0hvc3QuY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9XZWJWaWV3SG9zdC5o
JywKLSAgICAgICAgICAgICdjaHJvbWl1bS9XZWJWaWV3SG9zdE91dHB1dFN1cmZhY2UuY3BwJywK
LSAgICAgICAgICAgICdjaHJvbWl1bS9XZWJWaWV3SG9zdE91dHB1dFN1cmZhY2UuaCcsCi0gICAg
ICAgICAgICAnY2hyb21pdW0vV2ViVmlld0hvc3RTb2Z0d2FyZU91dHB1dERldmljZS5jcHAnLAot
ICAgICAgICAgICAgJ2Nocm9taXVtL1dlYlZpZXdIb3N0U29mdHdhcmVPdXRwdXREZXZpY2UuaCcs
CiAgICAgICAgIF0sCiAgICAgICAgICd0ZXN0X3J1bm5lcl9maWxlcyc6IFsKICAgICAgICAgICAg
ICdjaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5o
JywKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAppbmRl
eCA0ZTY4Y2NjNjExOWQ0N2U1NDI0YWZkOWJhNjQwZDk1NmQwYjliNDdmLi44ZmU4YTNlZmE1Yjdm
ODhkZjRiNzFkMjI4NjFkZmJjZWQ5ODA0OGI1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCkBAIC02Niw4ICs2Niw2IEBACiAjaW5jbHVkZSAiV2Vi
VGV4dENoZWNraW5nUmVzdWx0LmgiCiAjaW5jbHVkZSAiV2ViVXNlck1lZGlhQ2xpZW50TW9jay5o
IgogI2luY2x1ZGUgIldlYlZpZXcuaCIKLSNpbmNsdWRlICJXZWJWaWV3SG9zdE91dHB1dFN1cmZh
Y2UuaCIKLSNpbmNsdWRlICJXZWJWaWV3SG9zdFNvZnR3YXJlT3V0cHV0RGV2aWNlLmgiCiAjaW5j
bHVkZSAiV2ViV2luZG93RmVhdHVyZXMuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJza2lhL2V4dC9wbGF0Zm9ybV9jYW52YXMuaCIK
QEAgLTI4OCwxOCArMjg2LDExIEBAIFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlKiBXZWJWaWV3
SG9zdDo6Y3JlYXRlT3V0cHV0U3VyZmFjZSgpCiAgICAgaWYgKCF3ZWJWaWV3KCkpCiAgICAgICAg
IHJldHVybiAwOwogCi0gICAgaWYgKG1fc2hlbGwtPnNvZnR3YXJlQ29tcG9zaXRpbmdFbmFibGVk
KCkpIHsKLSAgICAgICAgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UqIHN1cmZhY2UgPSBXZWJL
aXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPmNyZWF0ZU91dHB1
dFN1cmZhY2VGb3JTb2Z0d2FyZSgpOwotICAgICAgICBpZiAoIXN1cmZhY2UpCi0gICAgICAgICAg
ICBzdXJmYWNlID0gV2ViVmlld0hvc3RPdXRwdXRTdXJmYWNlOjpjcmVhdGVTb2Z0d2FyZShhZG9w
dFB0cihuZXcgV2ViVmlld0hvc3RTb2Z0d2FyZU91dHB1dERldmljZSkpLmxlYWtQdHIoKTsKLSAg
ICAgICAgcmV0dXJuIHN1cmZhY2U7Ci0gICAgfQorICAgIGlmIChtX3NoZWxsLT5zb2Z0d2FyZUNv
bXBvc2l0aW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gV2ViS2l0OjpQbGF0Zm9ybTo6Y3Vy
cmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5jcmVhdGVPdXRwdXRTdXJmYWNlRm9yU29mdHdh
cmUoKTsKIAogICAgIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0ID0gd2Via2l0X3N1cHBv
cnQ6OkNyZWF0ZUdyYXBoaWNzQ29udGV4dDNEKFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1
dGVzKCksIHdlYlZpZXcoKSk7Ci0gICAgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UqIHN1cmZh
Y2UgPSBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPmNy
ZWF0ZU91dHB1dFN1cmZhY2VGb3IzRChjb250ZXh0KTsKLSAgICBpZiAoIXN1cmZhY2UpCi0gICAg
ICAgIHN1cmZhY2UgPSBXZWJWaWV3SG9zdE91dHB1dFN1cmZhY2U6OmNyZWF0ZTNkKGFkb3B0UHRy
KGNvbnRleHQpKS5sZWFrUHRyKCk7Ci0gICAgcmV0dXJuIHN1cmZhY2U7CisgICAgcmV0dXJuIFdl
YktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+Y3JlYXRlT3V0
cHV0U3VyZmFjZUZvcjNEKGNvbnRleHQpOwogfQogCiB2b2lkIFdlYlZpZXdIb3N0OjpkaWRBZGRN
ZXNzYWdlVG9Db25zb2xlKGNvbnN0IFdlYkNvbnNvbGVNZXNzYWdlJiBtZXNzYWdlLCBjb25zdCBX
ZWJTdHJpbmcmIHNvdXJjZU5hbWUsIHVuc2lnbmVkIHNvdXJjZUxpbmUpCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdE91dHB1dFN1cmZhY2UuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3RPdXRwdXRTdXJmYWNl
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDlhMGFmNTAxNDM2NmJjMWUwNjUw
NzA5NWMyZDE2YzdjNmZmNzBkOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdE91dHB1
dFN1cmZhY2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODggKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwot
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIldlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZS5oIgot
Ci0jaW5jbHVkZSA8cHVibGljL1dlYkNvbXBvc2l0b3JTb2Z0d2FyZU91dHB1dERldmljZS5oPgot
I2luY2x1ZGUgPHB1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oPgotI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1QYXNzT3duUHRyPFdlYlZpZXdI
b3N0T3V0cHV0U3VyZmFjZT4gV2ViVmlld0hvc3RPdXRwdXRTdXJmYWNlOjpjcmVhdGUzZChQYXNz
T3duUHRyPFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQzZCkKLXsKLSAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IFdlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZShjb250ZXh0M2QpKTsK
LX0KLQotUGFzc093blB0cjxXZWJWaWV3SG9zdE91dHB1dFN1cmZhY2U+IFdlYlZpZXdIb3N0T3V0
cHV0U3VyZmFjZTo6Y3JlYXRlU29mdHdhcmUoUGFzc093blB0cjxXZWJLaXQ6OldlYkNvbXBvc2l0
b3JTb2Z0d2FyZU91dHB1dERldmljZT4gc29mdHdhcmVEZXZpY2UpCi17Ci0gICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBXZWJWaWV3SG9zdE91dHB1dFN1cmZhY2Uoc29mdHdhcmVEZXZpY2UpKTsKLX0K
LQotV2ViVmlld0hvc3RPdXRwdXRTdXJmYWNlOjpXZWJWaWV3SG9zdE91dHB1dFN1cmZhY2UoUGFz
c093blB0cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0KQotICAgIDogbV9j
b250ZXh0KGNvbnRleHQpCi17Ci19Ci0KLVdlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZTo6V2ViVmll
d0hvc3RPdXRwdXRTdXJmYWNlKFBhc3NPd25QdHI8V2ViS2l0OjpXZWJDb21wb3NpdG9yU29mdHdh
cmVPdXRwdXREZXZpY2U+IHNvZnR3YXJlRGV2aWNlKQotICAgIDogbV9zb2Z0d2FyZURldmljZShz
b2Z0d2FyZURldmljZSkKLXsKLX0KLQotV2ViVmlld0hvc3RPdXRwdXRTdXJmYWNlOjp+V2ViVmll
d0hvc3RPdXRwdXRTdXJmYWNlKCkKLXsKLX0KLQotYm9vbCBXZWJWaWV3SG9zdE91dHB1dFN1cmZh
Y2U6OmJpbmRUb0NsaWVudChXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZUNsaWVudCopCi17Ci0g
ICAgaWYgKCFtX2NvbnRleHQpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgcmV0dXJuIG1f
Y29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7Ci19Ci0KLWNvbnN0IFdlYktpdDo6V2ViQ29t
cG9zaXRvck91dHB1dFN1cmZhY2U6OkNhcGFiaWxpdGllcyYgV2ViVmlld0hvc3RPdXRwdXRTdXJm
YWNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAotewotICAgIHJldHVybiBtX2NhcGFiaWxpdGllczsK
LX0KLQotV2ViR3JhcGhpY3NDb250ZXh0M0QqIFdlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZTo6Y29u
dGV4dDNEKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jb250ZXh0LmdldCgpOwotfQotCi1XZWJD
b21wb3NpdG9yU29mdHdhcmVPdXRwdXREZXZpY2UqIFdlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZTo6
c29mdHdhcmVEZXZpY2UoKSBjb25zdAotewotICAgIHJldHVybiBtX3NvZnR3YXJlRGV2aWNlLmdl
dCgpOwotfQotCi12b2lkIFdlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZTo6c2VuZEZyYW1lVG9QYXJl
bnRDb21wb3NpdG9yKGNvbnN0IFdlYkNvbXBvc2l0b3JGcmFtZSYpCi17Ci0gICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1dlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3RPdXRwdXRTdXJmYWNlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGJiZDYxYTIxYTFhMjU4YzkwNTFiZjhmNmI3MmMwNjc1YzgzOGFhMTIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3RPdXRwdXRTdXJmYWNlLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJWaWV3SG9zdE91dHB1dFN1cmZhY2Vf
aAotI2RlZmluZSBXZWJWaWV3SG9zdE91dHB1dFN1cmZhY2VfaAotCi0jaW5jbHVkZSA8cHVibGlj
L1dlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgot
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFz
cyBXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZUNsaWVudDsKLWNsYXNzIFdlYkNvbXBvc2l0b3JT
b2Z0d2FyZU91dHB1dERldmljZTsKLWNsYXNzIFdlYkdyYXBoaWNzQ29udGV4dDNEOwotCi1jbGFz
cyBXZWJWaWV3SG9zdE91dHB1dFN1cmZhY2UgOiBwdWJsaWMgV2ViS2l0OjpXZWJDb21wb3NpdG9y
T3V0cHV0U3VyZmFjZSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8V2ViVmlld0hv
c3RPdXRwdXRTdXJmYWNlPiBjcmVhdGUzZChQYXNzT3duUHRyPFdlYktpdDo6V2ViR3JhcGhpY3ND
b250ZXh0M0Q+KTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxXZWJWaWV3SG9zdE91dHB1dFN1cmZh
Y2U+IGNyZWF0ZVNvZnR3YXJlKFBhc3NPd25QdHI8V2ViS2l0OjpXZWJDb21wb3NpdG9yU29mdHdh
cmVPdXRwdXREZXZpY2U+KTsKLSAgICB2aXJ0dWFsIH5XZWJWaWV3SG9zdE91dHB1dFN1cmZhY2Uo
KTsKLQotICAgIHZpcnR1YWwgYm9vbCBiaW5kVG9DbGllbnQoV2ViQ29tcG9zaXRvck91dHB1dFN1
cmZhY2VDbGllbnQqKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgY29uc3QgV2ViS2l0OjpXZWJD
b21wb3NpdG9yT3V0cHV0U3VyZmFjZTo6Q2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M0Qo
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYkNvbXBvc2l0b3JTb2Z0d2FyZU91dHB1
dERldmljZSogc29mdHdhcmVEZXZpY2UoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgc2VuZEZyYW1lVG9QYXJlbnRDb21wb3NpdG9yKGNvbnN0IFdlYkNvbXBvc2l0b3JGcmFtZSYp
IE9WRVJSSURFOwotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFdlYlZpZXdIb3N0T3V0cHV0U3Vy
ZmFjZShQYXNzT3duUHRyPFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q+KTsKLSAgICBleHBs
aWNpdCBXZWJWaWV3SG9zdE91dHB1dFN1cmZhY2UoUGFzc093blB0cjxXZWJLaXQ6OldlYkNvbXBv
c2l0b3JTb2Z0d2FyZU91dHB1dERldmljZT4pOwotCi0gICAgV2ViS2l0OjpXZWJDb21wb3NpdG9y
T3V0cHV0U3VyZmFjZTo6Q2FwYWJpbGl0aWVzIG1fY2FwYWJpbGl0aWVzOwotICAgIE93blB0cjxX
ZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiBtX2NvbnRleHQ7Ci0gICAgT3duUHRyPFdlYktp
dDo6V2ViQ29tcG9zaXRvclNvZnR3YXJlT3V0cHV0RGV2aWNlPiBtX3NvZnR3YXJlRGV2aWNlOwot
fTsKLQotfQotCi0jZW5kaWYgLy8gV2ViVmlld0hvc3RPdXRwdXRTdXJmYWNlX2gKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0U29mdHdhcmVPdXRw
dXREZXZpY2UuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3RT
b2Z0d2FyZU91dHB1dERldmljZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVj
ZWU5OTQwZDJkZTYwNzc1MmY5NWVkNmQzMGZhM2RhNzg1Nzk4NmQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3RTb2Z0d2FyZU91dHB1dERldmljZS5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw1OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
LSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiV2Vi
Vmlld0hvc3RTb2Z0d2FyZU91dHB1dERldmljZS5oIgotCi0jaW5jbHVkZSAiU2tCaXRtYXAuaCIK
LSNpbmNsdWRlICJTa0RldmljZS5oIgotI2luY2x1ZGUgPHB1YmxpYy9XZWJTaXplLmg+Ci0jaW5j
bHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdlYkltYWdl
KiBXZWJWaWV3SG9zdFNvZnR3YXJlT3V0cHV0RGV2aWNlOjpsb2NrKGJvb2wgZm9yV3JpdGUpCi17
Ci0gICAgQVNTRVJUKG1fZGV2aWNlKTsKLSAgICBtX2ltYWdlID0gbV9kZXZpY2UtPmFjY2Vzc0Jp
dG1hcChmb3JXcml0ZSk7Ci0gICAgcmV0dXJuICZtX2ltYWdlOwotfQotCi12b2lkIFdlYlZpZXdI
b3N0U29mdHdhcmVPdXRwdXREZXZpY2U6OnVubG9jaygpCi17Ci0gICAgbV9pbWFnZS5yZXNldCgp
OwotfQotCi12b2lkIFdlYlZpZXdIb3N0U29mdHdhcmVPdXRwdXREZXZpY2U6OmRpZENoYW5nZVZp
ZXdwb3J0U2l6ZShXZWJTaXplIHNpemUpCi17Ci0gICAgaWYgKG1fZGV2aWNlICYmIHNpemUud2lk
dGggPT0gbV9kZXZpY2UtPndpZHRoKCkgJiYgc2l6ZS5oZWlnaHQgPT0gbV9kZXZpY2UtPmhlaWdo
dCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2RldmljZSA9IGFkb3B0UHRyKG5ldyBTa0Rl
dmljZShTa0JpdG1hcDo6a0FSR0JfODg4OF9Db25maWcsIHNpemUud2lkdGgsIHNpemUuaGVpZ2h0
LCB0cnVlKSk7Ci19Ci0KLQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3RTb2Z0d2FyZU91dHB1dERldmljZS5oIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3RTb2Z0d2FyZU91dHB1dERldmljZS5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YmQ1NTFmZjkyZTkwZTZhM2QyODkzZjc3NmRlZjU2NDRk
NjJiYzY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0U29mdHdhcmVPdXRwdXREZXZp
Y2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYlZp
ZXdIb3N0U29mdHdhcmVPdXRwdXREZXZpY2VfaAotI2RlZmluZSBXZWJWaWV3SG9zdFNvZnR3YXJl
T3V0cHV0RGV2aWNlX2gKLQotI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3NpdG9yU29mdHdhcmVP
dXRwdXREZXZpY2UuaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViSW1hZ2UuaD4KLSNpbmNsdWRlIDx3
dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLQotY2xhc3MgU2tEZXZp
Y2U7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1zdHJ1Y3QgV2ViU2l6ZTsKLQotY2xhc3MgV2Vi
Vmlld0hvc3RTb2Z0d2FyZU91dHB1dERldmljZSA6IHB1YmxpYyBXZWJLaXQ6OldlYkNvbXBvc2l0
b3JTb2Z0d2FyZU91dHB1dERldmljZSB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCBXZWJJbWFnZSog
bG9jayhib29sIGZvcldyaXRlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdW5sb2NrKCkg
T1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRTaXplKFdlYlNp
emUpIE9WRVJSSURFOwotCi1wcml2YXRlOgotICAgIE93blB0cjxTa0RldmljZT4gbV9kZXZpY2U7
Ci0gICAgV2ViSW1hZ2UgbV9pbWFnZTsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIFdlYlZpZXdIb3N0
U29mdHdhcmVPdXRwdXREZXZpY2VfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178725</attachid>
            <date>2012-12-10 23:05:16 -0800</date>
            <delta_ts>2012-12-10 23:46:17 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-104046-20121211020237.patch</filename>
            <type>text/plain</type>
            <size>34240</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBiODczZWEyNWFlOTI3
NDMzY2I3NzcxZjViY2U4ZmY2MGU3Y2I0NDVjLi5mZThkNjFkZWNjNWYxN2MzYjU3NDU2NmFkMGFi
ODU3Mzg2MmYyOGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0xMi0wNCAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IFJlbW92ZSBXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZSBpbXBsZW1lbnRhdGlvbnMgZnJvbSBE
UlQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDA0
NgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KKworICAgICAgICBSZW1vdmUg
bm93LXVudXNlZCBkZWZpbml0aW9ucyBmb3IgdGhlc2UgY2xhc3Nlcy4gVGhlIGNjOjpPdXRwdXRT
dXJmYWNlCisgICAgICAgIGFuZCBpdHMgcmVsYXRlZCBjbGFzc2VzIGhhdmUgcmVwbGFjZWQgdGhl
c2UsIHdpdGggdGhlCisgICAgICAgIFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlIGNsYXNzIGFz
IGFuIGVtcHR5IGJhc2UgY2xhc3MuCisKKyAgICAgICAgKiBQbGF0Zm9ybS5neXBpOgorICAgICAg
ICAqIGNocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZS5oOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvck91dHB1
dFN1cmZhY2VDbGllbnQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2Vi
Q29tcG9zaXRvclNvZnR3YXJlT3V0cHV0RGV2aWNlLmg6IFJlbW92ZWQuCisKIDIwMTItMTItMTAg
IE1hcmsgUGlsZ3JpbSAgPHBpbGdyaW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1
bV0gTW92ZSBnZXRQbHVnaW5zTGlzdCBvdXQgb2YgUGxhdGZvcm1TdXBwb3J0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCmluZGV4IGM5YTNjMThiMzY1OTRjZWFmMzkyM2E4NzBmZDkxNzE1OTc5NDM1
Y2QuLmVkYzA3NzJmNmE5NjViY2ZlMjk1Njk4MzkzODA5ZTcwYzNiNWVlMjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMTItMDQgIERhbmEgSmFuc2Vu
cyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUgV2Vi
Q29tcG9zaXRvck91dHB1dFN1cmZhY2UgaW1wbGVtZW50YXRpb25zIGZyb20gRFJUCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQwNDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCisKKyAgICAgICAgVXNlIFdlYkNvbXBvc2l0b3JT
dXBwb3J0IHRvIGNyZWF0ZSBhbiBPdXRwdXRTdXJmYWNlLgorCisgICAgICAgICogV2ViS2l0Lmd5
cGk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgICogdGVzdHMvQ2FudmFzMkRMYXllckJyaWRnZVRlc3QuY3BwOgorICAgICAgICAqIHRl
c3RzL0Zha2VXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZS5oOiBSZW1vdmVkLgorICAgICAgICAq
IHRlc3RzL1dlYkxheWVyVHJlZVZpZXdUZXN0Q29tbW9uLmg6CisKIDIwMTItMTItMTAgIFN0ZXBo
ZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVt
XSBSZS1lbmFibGUgYSBmYWlsaW5nIHRlc3QuICBEaXNhYmxpbmcgaXQganVzdCBzZWVtZWQgdG8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpIGIvU291cmNlL1BsYXRm
b3JtL1BsYXRmb3JtLmd5cGkKaW5kZXggNDNmZTVjOGI4NzA3ZDM4NzU4ZTU5Y2QwYThjMDhhNzdh
MjMwMGU4MC4uOWFkYTc4NmEyMGZlMzIzNGNlMGMyMDg4ZjU4ODI2OGFkYWU3ZmFlYyAxMDA2NDQK
LS0tIGEvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKKysrIGIvU291cmNlL1BsYXRmb3Jt
L1BsYXRmb3JtLmd5cGkKQEAgLTQ1LDkgKzQ1LDcgQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9w
dWJsaWMvV2ViQ29sb3IuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkNvbW1v
bi5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvclN1cHBvcnQu
aCcsCi0gICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JTb2Z0d2FyZU91
dHB1dERldmljZS5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRv
ck91dHB1dFN1cmZhY2UuaCcsCi0gICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkNvbXBv
c2l0b3JPdXRwdXRTdXJmYWNlQ2xpZW50LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1Ymxp
Yy9XZWJDb250ZW50TGF5ZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkNv
bnRlbnRMYXllckNsaWVudC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViQ29v
a2llLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJD
b21wb3NpdG9yT3V0cHV0U3VyZmFjZS5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1Ymxp
Yy9XZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZS5oCmluZGV4IDE2MDc4M2JkZDQyZWViOTllNTdi
ZjAyMmZiYmNjY2JmZWYwOTYwZDkuLjc0NGYyODllNzhmODNiMmEzOTQwN2IyNmVmNzU3MGFhMGI0
M2E0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29t
cG9zaXRvck91dHB1dFN1cmZhY2UuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL1dlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlLmgKQEAgLTI4LDUxICsyOCw4IEBACiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi1zdHJ1Y3QgV2ViQ29tcG9zaXRvckZyYW1lOwotY2xhc3MgV2Vi
R3JhcGhpY3NDb250ZXh0M0Q7Ci1jbGFzcyBXZWJDb21wb3NpdG9yU29mdHdhcmVPdXRwdXREZXZp
Y2U7Ci1jbGFzcyBXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZUNsaWVudDsKLQotI2lmZGVmIFVT
RV9DQ19PVVRQVVRfU1VSRkFDRQorLy8gQW4gZW1wdHkgYmFzZSBjbGFzcyBmb3IgY2M6Ok91dHB1
dFN1cmZhY2UgaW4gY2hyb21pdW0uCiBjbGFzcyBXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZSB7
IH07Ci0jZWxzZQotLy8gUmVwcmVzZW50cyB0aGUgb3V0cHV0IHN1cmZhY2UgZm9yIGEgY29tcG9z
aXRvci4gVGhlIGNvbXBvc2l0b3Igb3ducwotLy8gYW5kIG1hbmFnZXMgaXRzIGRlc3RydWN0aW9u
LiBJdHMgbGlmZXRpbWUgaXM6Ci0vLyAgIDEuIENyZWF0ZWQgb24gdGhlIG1haW4gdGhyZWFkIHZp
YSBXZWJMYXllclRyZWVWaWV3Q2xpZW50OjpjcmVhdGVPdXRwdXRTdXJmYWNlLgotLy8gICAyLiBQ
YXNzZWQgdG8gdGhlIGNvbXBvc2l0b3IgdGhyZWFkIGFuZCBib3VuZCB0byBhIGNsaWVudCB2aWEg
YmluZFRvQ2xpZW50LgotLy8gICAgICBGcm9tIGhlcmUgb24sIGl0IHdpbGwgb25seSBiZSB1c2Vk
IG9uIHRoZSBjb21wb3NpdG9yIHRocmVhZC4KLS8vICAgMy4gSWYgdGhlIDNEIGNvbnRleHQgaXMg
bG9zdCwgdGhlbiB0aGUgY29tcG9zaXRvciB3aWxsIGRlbGV0ZSB0aGUgb3V0cHV0IHN1cmZhY2UK
LS8vICAgICAgKG9uIHRoZSBjb21wb3NpdG9yIHRocmVhZCkgYW5kIGdvIGJhY2sgdG8gc3RlcCAx
LgotY2xhc3MgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UgewotcHVibGljOgotICAgIHZpcnR1
YWwgfldlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlKCkgeyB9Ci0KLSAgICAvLyBDYWxsZWQgYnkg
dGhlIGNvbXBvc2l0b3Igb24gdGhlIGNvbXBvc2l0b3IgdGhyZWFkLiBUaGlzIGlzIGEgcGxhY2Ug
d2hlcmUgdGhyZWFkLXNwZWNpZmljCi0gICAgLy8gZGF0YSBmb3IgdGhlIG91dHB1dCBzdXJmYWNl
IGNhbiBiZSBpbml0aWFsaXplZCwgc2luY2UgZnJvbSB0aGlzIHBvaW50IG9uIHRoZSBvdXRwdXQg
c3VyZmFjZQotICAgIC8vIHdpbGwgb25seSBiZSB1c2VkIG9uIHRoZSBjb21wb3NpdG9yIHRocmVh
ZC4KLSAgICB2aXJ0dWFsIGJvb2wgYmluZFRvQ2xpZW50KFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJm
YWNlQ2xpZW50KikgPSAwOwotCi0gICAgc3RydWN0IENhcGFiaWxpdGllcyB7Ci0gICAgICAgIENh
cGFiaWxpdGllcygpCi0gICAgICAgICAgICA6IGhhc1BhcmVudENvbXBvc2l0b3IoZmFsc2UpCi0g
ICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIGJvb2wgaGFzUGFyZW50Q29tcG9zaXRvcjsK
LSAgICB9OwotCi0gICAgdmlydHVhbCBjb25zdCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygp
IGNvbnN0ID0gMDsKLQotICAgIC8vIE9idGFpbiB0aGUgM2QgY29udGV4dCBvciB0aGUgc29mdHdh
cmUgZGV2aWNlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG91dHB1dCBzdXJmYWNlLiBFaXRoZXIgb2Yg
dGhlc2UgbWF5IHJldHVybiBhIG51bGwgcG9pbnRlciwgYnV0IG5vdCBib3RoLgotICAgIC8vIElu
IHRoZSBldmVudCBvZiBhIGxvc3QgY29udGV4dCwgdGhlIGVudGlyZSBvdXRwdXQgc3VyZmFjZSBz
aG91bGQgYmUgcmVjcmVhdGVkLgotICAgIHZpcnR1YWwgV2ViR3JhcGhpY3NDb250ZXh0M0QqIGNv
bnRleHQzRCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFdlYkNvbXBvc2l0b3JTb2Z0d2FyZU91
dHB1dERldmljZSogc29mdHdhcmVEZXZpY2UoKSBjb25zdCB7IHJldHVybiAwOyB9Ci0KLSAgICAv
LyBTZW5kcyBmcmFtZSBkYXRhIHRvIHRoZSBwYXJlbnQgY29tcG9zaXRvci4gVGhpcyBzaG91bGQg
b25seSBiZSBjYWxsZWQKLSAgICAvLyB3aGVuIGNhcGFiaWxpdGllcygpLmhhc1BhcmVudENvbXBv
c2l0b3IuCi0gICAgdmlydHVhbCB2b2lkIHNlbmRGcmFtZVRvUGFyZW50Q29tcG9zaXRvcihjb25z
dCBXZWJDb21wb3NpdG9yRnJhbWUmKSA9IDA7Ci19OwotI2VuZGlmIC8vIFVTRV9DQ19DT01QT1NJ
VE9SX1NVUkZBQ0UKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL1dlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlQ2xpZW50LmggYi9Tb3VyY2UvUGxhdGZv
cm0vY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlQ2xpZW50LmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyZjYzMmRlMTA4ZTdjMzRlMGQ2ZDZhOTZkMjk2
Y2UxOGNjMjM1ODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yT3V0cHV0U3Vy
ZmFjZUNsaWVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwot
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5k
ZWYgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2VDbGllbnRfaAotI2RlZmluZSBXZWJDb21wb3Np
dG9yT3V0cHV0U3VyZmFjZUNsaWVudF9oCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1zdHJ1Y3Qg
V2ViQ29tcG9zaXRvckZyYW1lQWNrOwotCi0jaWZuZGVmIFVTRV9DQ19PVVRQVVRfU1VSRkFDRQot
Y2xhc3MgV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2VDbGllbnQgewotcHVibGljOgotICAgIHZp
cnR1YWwgdm9pZCBvblZTeW5jUGFyYW1ldGVyc0NoYW5nZWQoZG91YmxlIG1vbm90b25pY1RpbWVi
YXNlLCBkb3VibGUgaW50ZXJ2YWxJblNlY29uZHMpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb25T
ZW5kRnJhbWVUb1BhcmVudENvbXBvc2l0b3JBY2soY29uc3QgV2ViQ29tcG9zaXRvckZyYW1lQWNr
JikgeyB9Ci0KLXByb3RlY3RlZDoKLSAgICB+V2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2VDbGll
bnQoKSB7IH0KLX07Ci0jZW5kaWYKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9Q
bGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvclNvZnR3YXJlT3V0cHV0RGV2aWNl
LmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JTb2Z0d2Fy
ZU91dHB1dERldmljZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNWM3YmIzZGUw
MTc5ZDJkYmUxY2ZlODYyY2RhYmY0MzFiNTM2NzBiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
Q29tcG9zaXRvclNvZnR3YXJlT3V0cHV0RGV2aWNlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJDb21wb3NpdG9yU29mdHdhcmVPdXRwdXREZXZpY2Vf
aAotI2RlZmluZSBXZWJDb21wb3NpdG9yU29mdHdhcmVPdXRwdXREZXZpY2VfaAotCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLQotI2lmbmRlZiBVU0VfQ0NfU09GVFdBUkVfT1VUUFVUX0RFVklDRQotY2xh
c3MgV2ViSW1hZ2U7Ci1zdHJ1Y3QgV2ViU2l6ZTsKLQotLy8gVGhpcyBpcyBhICJ0ZWFyLW9mZiIg
Y2xhc3MgcHJvdmlkaW5nIHNvZnR3YXJlIGRyYXdpbmcgc3VwcG9ydCB0bwotLy8gV2ViQ29tcG9z
aXRvck91dHB1dFN1cmZhY2UsIHN1Y2ggYXMgdG8gYSBwbGF0Zm9ybS1wcm92aWRlZCB3aW5kb3cK
LS8vIGZyYW1lYnVmZmVyLgotY2xhc3MgV2ViQ29tcG9zaXRvclNvZnR3YXJlT3V0cHV0RGV2aWNl
IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJDb21wb3NpdG9yU29mdHdhcmVPdXRwdXREZXZp
Y2UoKSB7IH0KLQotICAgIC8vIExvY2sgdGhlIGZyYW1lYnVmZmVyIGFuZCByZXR1cm4gYSBwb2lu
dGVyIHRvIGEgV2ViSW1hZ2UgcmVmZXJyaW5nIHRvIGl0cwotICAgIC8vIHBpeGVscy4gU2V0IGZv
cldyaXRlIGlmIHlvdSBpbnRlbmQgdG8gY2hhbmdlIHRoZSBwaXhlbHMuIFJlYWRiYWNrCi0gICAg
Ly8gaXMgc3VwcG9ydGVkIHdoZXRoZXIgb3Igbm90IGZvcldyaXRlIGlzIHNldC4KLSAgICB2aXJ0
dWFsIFdlYkltYWdlKiBsb2NrKGJvb2wgZm9yV3JpdGUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
dW5sb2NrKCkgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0U2l6ZShX
ZWJTaXplKSA9IDA7Ci19OwotI2VuZGlmIC8vIFVTRV9DQ19TT0ZUV0FSRV9PVVRQVVRfREVWSUNF
Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktp
dC5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRleCAwMzY1ZGEz
ZGM4MTdkMDAxYmVjOTllN2E4NTI3NDdkOWM0MmFiN2Y5Li4yNmY1MDlhNzM2MTg0YWUwZjZmOGUy
OTJhOGNjNTdhMTVjNzkyMTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dl
YktpdC5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKQEAgLTY3
LDcgKzY3LDYgQEAKICAgICAgICAgICAgICd0ZXN0cy9FdmVudExpc3RlbmVyVGVzdC5jcHAnLAog
ICAgICAgICAgICAgJ3Rlc3RzL0Zha2VXZWJQbHVnaW4uY3BwJywKICAgICAgICAgICAgICd0ZXN0
cy9GYWtlV2ViUGx1Z2luLmgnLAotICAgICAgICAgICAgJ3Rlc3RzL0Zha2VXZWJDb21wb3NpdG9y
T3V0cHV0U3VyZmFjZS5oJywKICAgICAgICAgICAgICd0ZXN0cy9GYWtlV2ViR3JhcGhpY3NDb250
ZXh0M0QuaCcsCiAgICAgICAgICAgICAndGVzdHMvRmlsdGVyT3BlcmF0aW9uc1Rlc3QuY3BwJywK
ICAgICAgICAgICAgICd0ZXN0cy9GcmFtZUxvYWRlckNsaWVudEltcGxUZXN0LmNwcCcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggYTk1YTA3Zjg3ZTM2
NjFiYzQwOTk2ZTYyYzA4Yzc1ZGE3ZDE5NTljZC4uNjk5MzQxYzNmYzRkYjhhOGYzZjNhMWU2N2Ri
Njg3Yzk4NzI4YzhmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcApAQCAtNDA0NCw0OSArNDA0NCw2IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldElzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShib29sIGFjdGl2ZSkKIAogI2VuZGlmCiAKLW5hbWVzcGFj
ZSB7Ci0KLS8vIEFkYXB0cyBhIHB1cmUgV2ViR3JhcGhpY3NDb250ZXh0M0QgaW50byBhIFdlYkNv
bXBvc2l0b3JPdXRwdXRTdXJmYWNlIHVudGlsCi0vLyBkb3duc3RyZWFtIGNvZGUgY2FuIGJlIHVw
ZGF0ZWQgdG8gcHJvZHVjZSBvdXRwdXQgc3VyZmFjZXMgZGlyZWN0bHkuCi1jbGFzcyBXZWJHcmFw
aGljc0NvbnRleHRUb091dHB1dFN1cmZhY2VBZGFwdGVyIDogcHVibGljIFdlYkNvbXBvc2l0b3JP
dXRwdXRTdXJmYWNlIHsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBXZWJHcmFwaGljc0NvbnRleHRU
b091dHB1dFN1cmZhY2VBZGFwdGVyKFBhc3NPd25QdHI8V2ViR3JhcGhpY3NDb250ZXh0M0Q+IGNv
bnRleHQpCi0gICAgICAgIDogbV9jb250ZXh0M0QoY29udGV4dCkKLSAgICAgICAgLCBtX2NsaWVu
dCgwKQotICAgIHsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIGJvb2wgYmluZFRvQ2xpZW50KFdlYkNv
bXBvc2l0b3JPdXRwdXRTdXJmYWNlQ2xpZW50KiBjbGllbnQpIE9WRVJSSURFCi0gICAgewotICAg
ICAgICBBU1NFUlQoY2xpZW50KTsKLSAgICAgICAgaWYgKCFtX2NvbnRleHQzRC0+bWFrZUNvbnRl
eHRDdXJyZW50KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIG1fY2xpZW50
ID0gY2xpZW50OwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIGNv
bnN0IENhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgY29uc3QgT1ZFUlJJREUKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBtX2NhcGFiaWxpdGllczsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIFdlYkdy
YXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M0QoKSBjb25zdCBPVkVSUklERQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIG1fY29udGV4dDNELmdldCgpOwotICAgIH0KLQotICAgIHZpcnR1YWwgdm9pZCBz
ZW5kRnJhbWVUb1BhcmVudENvbXBvc2l0b3IoY29uc3QgV2ViQ29tcG9zaXRvckZyYW1lJikgT1ZF
UlJJREUKLSAgICB7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIE93blB0cjxXZWJHcmFwaGljc0Nv
bnRleHQzRD4gbV9jb250ZXh0M0Q7Ci0gICAgQ2FwYWJpbGl0aWVzIG1fY2FwYWJpbGl0aWVzOwot
ICAgIFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlQ2xpZW50KiBtX2NsaWVudDsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlCi0KIFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlKiBXZWJWaWV3SW1wbDo6
Y3JlYXRlT3V0cHV0U3VyZmFjZSgpCiB7CiAgICAgcmV0dXJuIG1fY2xpZW50LT5jcmVhdGVPdXRw
dXRTdXJmYWNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Nh
bnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q2FudmFzMkRMYXllckJyaWRnZVRlc3QuY3BwCmluZGV4IDI2YmRkNGYxMTliYTU3NmU3ZjQzZmJm
MzY0OTE2YzVhZDY5N2NhZTkuLjUwOWFhMmU3YzZhZmNmNTgyZWM3OWQzNzI5YzczZmQzYTBmNTA5
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXll
ckJyaWRnZVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFz
MkRMYXllckJyaWRnZVRlc3QuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAKICNpbmNsdWRlICJDYW52
YXMyRExheWVyQnJpZGdlLmgiCiAKLSNpbmNsdWRlICJGYWtlV2ViQ29tcG9zaXRvck91dHB1dFN1
cmZhY2UuaCIKICNpbmNsdWRlICJGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GYWtlV2ViQ29tcG9zaXRv
ck91dHB1dFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvRmFrZVdlYkNv
bXBvc2l0b3JPdXRwdXRTdXJmYWNlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFk
OTNiNmI2ZWUwYmNiYmQxMmUzZTA5OGQyZGRiOWEzY2E5OTZkZjcuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9GYWtlV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDgw
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQot
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEZha2VXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZV9o
Ci0jZGVmaW5lIEZha2VXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZV9oCi0KLSNpbmNsdWRlIDxw
dWJsaWMvV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UuaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2Vi
R3JhcGhpY3NDb250ZXh0M0QuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIEZha2VXZWJD
b21wb3NpdG9yT3V0cHV0U3VyZmFjZSA6IHB1YmxpYyBXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFj
ZSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGlubGluZSBQYXNzT3duUHRyPEZha2VXZWJDb21wb3Np
dG9yT3V0cHV0U3VyZmFjZT4gY3JlYXRlKFBhc3NPd25QdHI8V2ViR3JhcGhpY3NDb250ZXh0M0Q+
IGNvbnRleHQzRCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRmFrZVdlYkNv
bXBvc2l0b3JPdXRwdXRTdXJmYWNlKGNvbnRleHQzRCkpOwotICAgIH0KLQotCi0gICAgdmlydHVh
bCBib29sIGJpbmRUb0NsaWVudChXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZUNsaWVudCogY2xp
ZW50KSBPVkVSUklERQotICAgIHsKLSAgICAgICAgQVNTRVJUKGNsaWVudCk7Ci0gICAgICAgIGlm
ICghbV9jb250ZXh0M0QtPm1ha2VDb250ZXh0Q3VycmVudCgpKQotICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgICAgICBtX2NsaWVudCA9IGNsaWVudDsKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgfQotCi0gICAgdmlydHVhbCBjb25zdCBDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygp
IGNvbnN0IE9WRVJSSURFCi0gICAgewotICAgICAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7Ci0g
ICAgfQotCi0gICAgdmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQzRCogY29udGV4dDNEKCkgY29u
c3QgT1ZFUlJJREUKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2NvbnRleHQzRC5nZXQoKTsKLSAg
ICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc2VuZEZyYW1lVG9QYXJlbnRDb21wb3NpdG9yKGNvbnN0
IFdlYkNvbXBvc2l0b3JGcmFtZSYpIE9WRVJSSURFCi0gICAgewotICAgIH0KLQotcHJpdmF0ZToK
LSAgICBleHBsaWNpdCBGYWtlV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UoUGFzc093blB0cjxX
ZWJHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dDNEKQotICAgIHsKLSAgICAgICAgbV9jb250ZXh0
M0QgPSBjb250ZXh0M0Q7Ci0gICAgfQotCi0gICAgT3duUHRyPFdlYkdyYXBoaWNzQ29udGV4dDNE
PiBtX2NvbnRleHQzRDsKLSAgICBDYXBhYmlsaXRpZXMgbV9jYXBhYmlsaXRpZXM7Ci0gICAgV2Vi
Q29tcG9zaXRvck91dHB1dFN1cmZhY2VDbGllbnQqIG1fY2xpZW50OwotfTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBGYWtlV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2Vf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9TY3JvbGxpbmdDb29y
ZGluYXRvckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW1UZXN0LmNwcAppbmRleCBkNzA1NzAxMTQxOWYwMGVi
ZWIwMDJiZjJmODliZmFmMGVkYzk4YzEzLi4yNzE4MjlkZTlhYTJhMzU0ZDliNDQyNjgxOTMzOGZj
YzJlYjg2MGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW1UZXN0LmNwcApAQCAtMjcsNyAr
MjcsNiBAQAogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAKICNpbmNsdWRlICJD
b21wb3NpdG9yRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNELmgiCi0jaW5jbHVkZSAiRmFrZVdlYkNv
bXBvc2l0b3JPdXRwdXRTdXJmYWNlLmgiCiAjaW5jbHVkZSAiRnJhbWVUZXN0SGVscGVycy5oIgog
I2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcu
aCIKQEAgLTU2LDcgKzU1LDcgQEAgY2xhc3MgTW9ja1dlYlZpZXdDbGllbnQgOiBwdWJsaWMgV2Vi
Vmlld0NsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJDb21wb3NpdG9yT3V0cHV0U3Vy
ZmFjZSogY3JlYXRlT3V0cHV0U3VyZmFjZSgpIE9WRVJSSURFCiAgICAgewotICAgICAgICByZXR1
cm4gRmFrZVdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlOjpjcmVhdGUoQ29tcG9zaXRvckZha2VX
ZWJHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1
dGVzKCkpKS5sZWFrUHRyKCk7CisgICAgICAgIHJldHVybiBQbGF0Zm9ybTo6Y3VycmVudCgpLT5j
b21wb3NpdG9yU3VwcG9ydCgpLT5jcmVhdGVPdXRwdXRTdXJmYWNlRm9yM0QoQ29tcG9zaXRvckZh
a2VXZWJHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKFdlYkdyYXBoaWNzQ29udGV4dDNEOjpBdHRy
aWJ1dGVzKCkpLmxlYWtQdHIoKSk7CiAgICAgfQogfTsKIApAQCAtNjksNiArNjgsOCBAQCBwdWJs
aWM6CiAgICAgICAgIDogbV9iYXNlVVJMKCJodHRwOi8vd3d3LnRlc3QuY29tLyIpCiAgICAgICAg
ICwgbV93ZWJDb21wb3NpdG9ySW5pdGlhbGl6ZXIoMCkKICAgICB7CisgICAgICAgIFBsYXRmb3Jt
OjpjdXJyZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPmluaXRpYWxpemUoMCk7CisKICAgICAg
ICAgLy8gV2UgY2Fubm90IHJldXNlIEZyYW1lVGVzdEhlbHBlcnM6OmNyZWF0ZVdlYlZpZXdBbmRM
b2FkIGhlcmUgYmVjYXVzZSB0aGUgY29tcG9zaXRpbmcKICAgICAgICAgLy8gc2V0dGluZ3MgbmVl
ZCB0byBiZSBzZXQgYmVmb3JlIHRoZSBwYWdlIGlzIGxvYWRlZC4KICAgICAgICAgbV93ZWJWaWV3
SW1wbCA9IHN0YXRpY19jYXN0PFdlYlZpZXdJbXBsKj4oV2ViVmlldzo6Y3JlYXRlKCZtX21vY2tX
ZWJWaWV3Q2xpZW50KSk7CkBAIC04NSw2ICs4Niw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAg
IHdlYmtpdF9zdXBwb3J0OjpVbnJlZ2lzdGVyQWxsTW9ja2VkVVJMcygpOwogICAgICAgICBtX3dl
YlZpZXdJbXBsLT5jbG9zZSgpOworCisgICAgICAgIFBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBv
c2l0b3JTdXBwb3J0KCktPnNodXRkb3duKCk7CiAgICAgfQogCiAgICAgdm9pZCBuYXZpZ2F0ZVRv
KGNvbnN0IHN0ZDo6c3RyaW5nJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL1dlYkxheWVyVHJlZVZpZXdUZXN0Q29tbW9uLmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1dlYkxheWVyVHJlZVZpZXdUZXN0Q29tbW9uLmgKaW5kZXggNDgwNzFmOTUx
MWVjMjRmYTlhZTc0ZThlZWQzMTJiZWJkNjY5ZTI2Mi4uNDQ2NjNhMWI0NTA1Mjk0OWNlNDZmMmJi
Yjc0OTAzNzFlN2YwNjJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9XZWJMYXllclRyZWVWaWV3VGVzdENvbW1vbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvV2ViTGF5ZXJUcmVlVmlld1Rlc3RDb21tb24uaApAQCAtMjYsOCArMjYsOSBAQAog
I2RlZmluZSBXZWJMYXllclRyZWVWaWV3VGVzdENvbW1vbl9oCiAKICNpbmNsdWRlICJDb21wb3Np
dG9yRmFrZVdlYkdyYXBoaWNzQ29udGV4dDNELmgiCi0jaW5jbHVkZSAiRmFrZVdlYkNvbXBvc2l0
b3JPdXRwdXRTdXJmYWNlLmgiCiAjaW5jbHVkZSA8Z21vY2svZ21vY2suaD4KKyNpbmNsdWRlIDxw
dWJsaWMvUGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tcG9zaXRvclN1cHBvcnQu
aD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oPgogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKQEAgLTQzLDcgKzQ0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBXZWJD
b21wb3NpdG9yT3V0cHV0U3VyZmFjZSogY3JlYXRlT3V0cHV0U3VyZmFjZSgpIE9WRVJSSURFCiAg
ICAgewotICAgICAgICByZXR1cm4gRmFrZVdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlOjpjcmVh
dGUoQ29tcG9zaXRvckZha2VXZWJHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKFdlYkdyYXBoaWNz
Q29udGV4dDNEOjpBdHRyaWJ1dGVzKCkpKS5sZWFrUHRyKCk7CisgICAgICAgIHJldHVybiBQbGF0
Zm9ybTo6Y3VycmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5jcmVhdGVPdXRwdXRTdXJmYWNl
Rm9yM0QoQ29tcG9zaXRvckZha2VXZWJHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKFdlYkdyYXBo
aWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzKCkpLmxlYWtQdHIoKSk7CiAgICAgfQogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNyZWF0ZU91dHB1dFN1cmZhY2UoYm9vbCkgT1ZFUlJJREUgeyB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5ZDU3M2Nk
ZDcwYmVlZjk1YTNjODE2NDFmYWNiNGE3MTIxMzQ2OTM0Li4wMGVkNDQwNmU3ZWE3MjkyODA2YWVl
NjNmOWJjZDU1MTBmMDQyNjI5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMTItMDQgIERhbmEgSmFuc2VucyAg
PGRhbmFrakBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUgV2ViQ29t
cG9zaXRvck91dHB1dFN1cmZhY2UgaW1wbGVtZW50YXRpb25zIGZyb20gRFJUCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQwNDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCisKKyAgICAgICAgVGhlIGNsYXNzZXMgYXJlIG5vdyBw
cm92aWRlZCB0aHJvdWdoIFdlYkNvbXBvc2l0b3JTdXBwb3J0LgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgIChXZWJWaWV3SG9zdDo6Y3JlYXRlT3V0
cHV0U3VyZmFjZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hv
c3RPdXRwdXRTdXJmYWNlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9XZWJWaWV3SG9zdE91dHB1dFN1cmZhY2UuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdFNvZnR3YXJlT3V0cHV0RGV2aWNlLmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9z
dFNvZnR3YXJlT3V0cHV0RGV2aWNlLmg6IFJlbW92ZWQuCisKIDIwMTItMTItMTAgIERpcmsgUHJh
bmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgY2hhbmdlIC0tbm8tbGF1bmNo
LXNhZmFyaSB0byAtLW5vLXNob3ctcmVzdWx0cyBpbiBzY3JpcHRzCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQppbmRleCBlOTI2ZjMzNWZhMzY2YWY5N2Q1ZTEzMWIxNTg0
YjE1ZjEyZjJkMDQ0Li5iNmEwM2EwNzMyZDkyZmE5NTZhNTFhY2JkNWY3OGUyYzgyNDMzZjIxIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkKQEAgLTU2LDEwICs1Niw2
IEBACiAgICAgICAgICAgICAnY2hyb21pdW0vV2ViVXNlck1lZGlhQ2xpZW50TW9jay5oJywKICAg
ICAgICAgICAgICdjaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAnLAogICAgICAgICAgICAgJ2Nocm9t
aXVtL1dlYlZpZXdIb3N0LmgnLAotICAgICAgICAgICAgJ2Nocm9taXVtL1dlYlZpZXdIb3N0T3V0
cHV0U3VyZmFjZS5jcHAnLAotICAgICAgICAgICAgJ2Nocm9taXVtL1dlYlZpZXdIb3N0T3V0cHV0
U3VyZmFjZS5oJywKLSAgICAgICAgICAgICdjaHJvbWl1bS9XZWJWaWV3SG9zdFNvZnR3YXJlT3V0
cHV0RGV2aWNlLmNwcCcsCi0gICAgICAgICAgICAnY2hyb21pdW0vV2ViVmlld0hvc3RTb2Z0d2Fy
ZU91dHB1dERldmljZS5oJywKICAgICAgICAgXSwKICAgICAgICAgJ3Rlc3RfcnVubmVyX2ZpbGVz
JzogWwogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYkFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmgnLApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
Vmlld0hvc3QuY3BwCmluZGV4IDRlNjhjY2M2MTE5ZDQ3ZTU0MjRhZmQ5YmE2NDBkOTU2ZDBiOWI0
N2YuLjhmZThhM2VmYTViN2Y4OGRmNGI3MWQyMjg2MWRmYmNlZDk4MDQ4YjUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTY2LDggKzY2LDYg
QEAKICNpbmNsdWRlICJXZWJUZXh0Q2hlY2tpbmdSZXN1bHQuaCIKICNpbmNsdWRlICJXZWJVc2Vy
TWVkaWFDbGllbnRNb2NrLmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgotI2luY2x1ZGUgIldlYlZp
ZXdIb3N0T3V0cHV0U3VyZmFjZS5oIgotI2luY2x1ZGUgIldlYlZpZXdIb3N0U29mdHdhcmVPdXRw
dXREZXZpY2UuaCIKICNpbmNsdWRlICJXZWJXaW5kb3dGZWF0dXJlcy5oIgogI2luY2x1ZGUgInBs
YXRmb3JtL1dlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgInNraWEvZXh0L3Bs
YXRmb3JtX2NhbnZhcy5oIgpAQCAtMjg4LDE4ICsyODYsMTEgQEAgV2ViQ29tcG9zaXRvck91dHB1
dFN1cmZhY2UqIFdlYlZpZXdIb3N0OjpjcmVhdGVPdXRwdXRTdXJmYWNlKCkKICAgICBpZiAoIXdl
YlZpZXcoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpZiAobV9zaGVsbC0+c29mdHdhcmVD
b21wb3NpdGluZ0VuYWJsZWQoKSkgewotICAgICAgICBXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFj
ZSogc3VyZmFjZSA9IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBv
cnQoKS0+Y3JlYXRlT3V0cHV0U3VyZmFjZUZvclNvZnR3YXJlKCk7Ci0gICAgICAgIGlmICghc3Vy
ZmFjZSkKLSAgICAgICAgICAgIHN1cmZhY2UgPSBXZWJWaWV3SG9zdE91dHB1dFN1cmZhY2U6OmNy
ZWF0ZVNvZnR3YXJlKGFkb3B0UHRyKG5ldyBXZWJWaWV3SG9zdFNvZnR3YXJlT3V0cHV0RGV2aWNl
KSkubGVha1B0cigpOwotICAgICAgICByZXR1cm4gc3VyZmFjZTsKLSAgICB9CisgICAgaWYgKG1f
c2hlbGwtPnNvZnR3YXJlQ29tcG9zaXRpbmdFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBXZWJL
aXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPmNyZWF0ZU91dHB1
dFN1cmZhY2VGb3JTb2Z0d2FyZSgpOwogCiAgICAgV2ViR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRl
eHQgPSB3ZWJraXRfc3VwcG9ydDo6Q3JlYXRlR3JhcGhpY3NDb250ZXh0M0QoV2ViR3JhcGhpY3ND
b250ZXh0M0Q6OkF0dHJpYnV0ZXMoKSwgd2ViVmlldygpKTsKLSAgICBXZWJDb21wb3NpdG9yT3V0
cHV0U3VyZmFjZSogc3VyZmFjZSA9IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9z
aXRvclN1cHBvcnQoKS0+Y3JlYXRlT3V0cHV0U3VyZmFjZUZvcjNEKGNvbnRleHQpOwotICAgIGlm
ICghc3VyZmFjZSkKLSAgICAgICAgc3VyZmFjZSA9IFdlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZTo6
Y3JlYXRlM2QoYWRvcHRQdHIoY29udGV4dCkpLmxlYWtQdHIoKTsKLSAgICByZXR1cm4gc3VyZmFj
ZTsKKyAgICByZXR1cm4gV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5jb21wb3NpdG9yU3Vw
cG9ydCgpLT5jcmVhdGVPdXRwdXRTdXJmYWNlRm9yM0QoY29udGV4dCk7CiB9CiAKIHZvaWQgV2Vi
Vmlld0hvc3Q6OmRpZEFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgV2ViQ29uc29sZU1lc3NhZ2Um
IG1lc3NhZ2UsIGNvbnN0IFdlYlN0cmluZyYgc291cmNlTmFtZSwgdW5zaWduZWQgc291cmNlTGlu
ZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0
T3V0cHV0U3VyZmFjZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3
SG9zdE91dHB1dFN1cmZhY2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOWEw
YWY1MDE0MzY2YmMxZTA2NTA3MDk1YzJkMTZjN2M2ZmY3MGQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4OCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgot
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiV2ViVmlld0hvc3RP
dXRwdXRTdXJmYWNlLmgiCi0KLSNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tcG9zaXRvclNvZnR3YXJl
T3V0cHV0RGV2aWNlLmg+Ci0jaW5jbHVkZSA8cHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmg+
Ci0jaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVBh
c3NPd25QdHI8V2ViVmlld0hvc3RPdXRwdXRTdXJmYWNlPiBXZWJWaWV3SG9zdE91dHB1dFN1cmZh
Y2U6OmNyZWF0ZTNkKFBhc3NPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRD4gY29u
dGV4dDNkKQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViVmlld0hvc3RPdXRwdXRTdXJm
YWNlKGNvbnRleHQzZCkpOwotfQotCi1QYXNzT3duUHRyPFdlYlZpZXdIb3N0T3V0cHV0U3VyZmFj
ZT4gV2ViVmlld0hvc3RPdXRwdXRTdXJmYWNlOjpjcmVhdGVTb2Z0d2FyZShQYXNzT3duUHRyPFdl
YktpdDo6V2ViQ29tcG9zaXRvclNvZnR3YXJlT3V0cHV0RGV2aWNlPiBzb2Z0d2FyZURldmljZSkK
LXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZShzb2Z0
d2FyZURldmljZSkpOwotfQotCi1XZWJWaWV3SG9zdE91dHB1dFN1cmZhY2U6OldlYlZpZXdIb3N0
T3V0cHV0U3VyZmFjZShQYXNzT3duUHRyPFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q+IGNv
bnRleHQpCi0gICAgOiBtX2NvbnRleHQoY29udGV4dCkKLXsKLX0KLQotV2ViVmlld0hvc3RPdXRw
dXRTdXJmYWNlOjpXZWJWaWV3SG9zdE91dHB1dFN1cmZhY2UoUGFzc093blB0cjxXZWJLaXQ6Oldl
YkNvbXBvc2l0b3JTb2Z0d2FyZU91dHB1dERldmljZT4gc29mdHdhcmVEZXZpY2UpCi0gICAgOiBt
X3NvZnR3YXJlRGV2aWNlKHNvZnR3YXJlRGV2aWNlKQotewotfQotCi1XZWJWaWV3SG9zdE91dHB1
dFN1cmZhY2U6On5XZWJWaWV3SG9zdE91dHB1dFN1cmZhY2UoKQotewotfQotCi1ib29sIFdlYlZp
ZXdIb3N0T3V0cHV0U3VyZmFjZTo6YmluZFRvQ2xpZW50KFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJm
YWNlQ2xpZW50KikKLXsKLSAgICBpZiAoIW1fY29udGV4dCkKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0KLSAgICByZXR1cm4gbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKLX0KLQotY29u
c3QgV2ViS2l0OjpXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZTo6Q2FwYWJpbGl0aWVzJiBXZWJW
aWV3SG9zdE91dHB1dFN1cmZhY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1fY2FwYWJpbGl0aWVzOwotfQotCi1XZWJHcmFwaGljc0NvbnRleHQzRCogV2ViVmlld0hvc3RP
dXRwdXRTdXJmYWNlOjpjb250ZXh0M0QoKSBjb25zdAotewotICAgIHJldHVybiBtX2NvbnRleHQu
Z2V0KCk7Ci19Ci0KLVdlYkNvbXBvc2l0b3JTb2Z0d2FyZU91dHB1dERldmljZSogV2ViVmlld0hv
c3RPdXRwdXRTdXJmYWNlOjpzb2Z0d2FyZURldmljZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
c29mdHdhcmVEZXZpY2UuZ2V0KCk7Ci19Ci0KLXZvaWQgV2ViVmlld0hvc3RPdXRwdXRTdXJmYWNl
OjpzZW5kRnJhbWVUb1BhcmVudENvbXBvc2l0b3IoY29uc3QgV2ViQ29tcG9zaXRvckZyYW1lJikK
LXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3RPdXRwdXRTdXJmYWNlLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdE91dHB1dFN1cmZhY2UuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmJkNjFhMjFhMWEyNThjOTA1MWJmOGY2YjcyYzA2
NzVjODM4YWExMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdE91dHB1dFN1cmZhY2Uu
aAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYlZpZXdI
b3N0T3V0cHV0U3VyZmFjZV9oCi0jZGVmaW5lIFdlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZV9oCi0K
LSNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2UuaD4KLSNpbmNsdWRl
IDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLWNsYXNzIFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlQ2xpZW50OwotY2xh
c3MgV2ViQ29tcG9zaXRvclNvZnR3YXJlT3V0cHV0RGV2aWNlOwotY2xhc3MgV2ViR3JhcGhpY3ND
b250ZXh0M0Q7Ci0KLWNsYXNzIFdlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZSA6IHB1YmxpYyBXZWJL
aXQ6OldlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c093blB0cjxXZWJWaWV3SG9zdE91dHB1dFN1cmZhY2U+IGNyZWF0ZTNkKFBhc3NPd25QdHI8V2Vi
S2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRD4pOwotICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYlZp
ZXdIb3N0T3V0cHV0U3VyZmFjZT4gY3JlYXRlU29mdHdhcmUoUGFzc093blB0cjxXZWJLaXQ6Oldl
YkNvbXBvc2l0b3JTb2Z0d2FyZU91dHB1dERldmljZT4pOwotICAgIHZpcnR1YWwgfldlYlZpZXdI
b3N0T3V0cHV0U3VyZmFjZSgpOwotCi0gICAgdmlydHVhbCBib29sIGJpbmRUb0NsaWVudChXZWJD
b21wb3NpdG9yT3V0cHV0U3VyZmFjZUNsaWVudCopIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCBj
b25zdCBXZWJLaXQ6OldlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlOjpDYXBhYmlsaXRpZXMmIGNh
cGFiaWxpdGllcygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViR3JhcGhpY3NDb250
ZXh0M0QqIGNvbnRleHQzRCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29tcG9z
aXRvclNvZnR3YXJlT3V0cHV0RGV2aWNlKiBzb2Z0d2FyZURldmljZSgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBzZW5kRnJhbWVUb1BhcmVudENvbXBvc2l0b3IoY29uc3QgV2Vi
Q29tcG9zaXRvckZyYW1lJikgT1ZFUlJJREU7Ci0KLXByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2Vi
Vmlld0hvc3RPdXRwdXRTdXJmYWNlKFBhc3NPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRl
eHQzRD4pOwotICAgIGV4cGxpY2l0IFdlYlZpZXdIb3N0T3V0cHV0U3VyZmFjZShQYXNzT3duUHRy
PFdlYktpdDo6V2ViQ29tcG9zaXRvclNvZnR3YXJlT3V0cHV0RGV2aWNlPik7Ci0KLSAgICBXZWJL
aXQ6OldlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlOjpDYXBhYmlsaXRpZXMgbV9jYXBhYmlsaXRp
ZXM7Ci0gICAgT3duUHRyPFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q+IG1fY29udGV4dDsK
LSAgICBPd25QdHI8V2ViS2l0OjpXZWJDb21wb3NpdG9yU29mdHdhcmVPdXRwdXREZXZpY2U+IG1f
c29mdHdhcmVEZXZpY2U7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBXZWJWaWV3SG9zdE91dHB1dFN1
cmZhY2VfaApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmll
d0hvc3RTb2Z0d2FyZU91dHB1dERldmljZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9XZWJWaWV3SG9zdFNvZnR3YXJlT3V0cHV0RGV2aWNlLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZWNlZTk5NDBkMmRlNjA3NzUyZjk1ZWQ2ZDMwZmEzZGE3ODU3OTg2ZC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdFNvZnR3YXJlT3V0cHV0RGV2aWNlLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQot
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0KLSNpbmNsdWRlICJXZWJWaWV3SG9zdFNvZnR3YXJlT3V0cHV0RGV2aWNlLmgiCi0KLSNpbmNs
dWRlICJTa0JpdG1hcC5oIgotI2luY2x1ZGUgIlNrRGV2aWNlLmgiCi0jaW5jbHVkZSA8cHVibGlj
L1dlYlNpemUuaD4KLSNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotV2ViSW1hZ2UqIFdlYlZpZXdIb3N0U29mdHdhcmVPdXRwdXREZXZpY2U6OmxvY2so
Ym9vbCBmb3JXcml0ZSkKLXsKLSAgICBBU1NFUlQobV9kZXZpY2UpOwotICAgIG1faW1hZ2UgPSBt
X2RldmljZS0+YWNjZXNzQml0bWFwKGZvcldyaXRlKTsKLSAgICByZXR1cm4gJm1faW1hZ2U7Ci19
Ci0KLXZvaWQgV2ViVmlld0hvc3RTb2Z0d2FyZU91dHB1dERldmljZTo6dW5sb2NrKCkKLXsKLSAg
ICBtX2ltYWdlLnJlc2V0KCk7Ci19Ci0KLXZvaWQgV2ViVmlld0hvc3RTb2Z0d2FyZU91dHB1dERl
dmljZTo6ZGlkQ2hhbmdlVmlld3BvcnRTaXplKFdlYlNpemUgc2l6ZSkKLXsKLSAgICBpZiAobV9k
ZXZpY2UgJiYgc2l6ZS53aWR0aCA9PSBtX2RldmljZS0+d2lkdGgoKSAmJiBzaXplLmhlaWdodCA9
PSBtX2RldmljZS0+aGVpZ2h0KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fZGV2aWNlID0g
YWRvcHRQdHIobmV3IFNrRGV2aWNlKFNrQml0bWFwOjprQVJHQl84ODg4X0NvbmZpZywgc2l6ZS53
aWR0aCwgc2l6ZS5oZWlnaHQsIHRydWUpKTsKLX0KLQotCi19CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdFNvZnR3YXJlT3V0cHV0RGV2aWNlLmgg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdFNvZnR3YXJlT3V0cHV0
RGV2aWNlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViZDU1MWZmOTJlOTBlNmEz
ZDI4OTNmNzc2ZGVmNTY0NGQ2MmJjNjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3RT
b2Z0d2FyZU91dHB1dERldmljZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0g
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgV2ViVmlld0hvc3RTb2Z0d2FyZU91dHB1dERldmljZV9oCi0jZGVmaW5lIFdl
YlZpZXdIb3N0U29mdHdhcmVPdXRwdXREZXZpY2VfaAotCi0jaW5jbHVkZSA8cHVibGljL1dlYkNv
bXBvc2l0b3JTb2Z0d2FyZU91dHB1dERldmljZS5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJJbWFn
ZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgotCi1jbGFzcyBTa0RldmljZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0cnVjdCBXZWJT
aXplOwotCi1jbGFzcyBXZWJWaWV3SG9zdFNvZnR3YXJlT3V0cHV0RGV2aWNlIDogcHVibGljIFdl
YktpdDo6V2ViQ29tcG9zaXRvclNvZnR3YXJlT3V0cHV0RGV2aWNlIHsKLXB1YmxpYzoKLSAgICB2
aXJ0dWFsIFdlYkltYWdlKiBsb2NrKGJvb2wgZm9yV3JpdGUpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCB1bmxvY2soKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VW
aWV3cG9ydFNpemUoV2ViU2l6ZSkgT1ZFUlJJREU7Ci0KLXByaXZhdGU6Ci0gICAgT3duUHRyPFNr
RGV2aWNlPiBtX2RldmljZTsKLSAgICBXZWJJbWFnZSBtX2ltYWdlOwotfTsKLQotfQotCi0jZW5k
aWYgLy8gV2ViVmlld0hvc3RTb2Z0d2FyZU91dHB1dERldmljZV9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>