<?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>91908</bug_id>
          
          <creation_ts>2012-07-20 15:44:22 -0700</creation_ts>
          <short_desc>[META] Add CSS blending to WebKit</short_desc>
          <delta_ts>2022-07-13 10:54:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc>https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>95614</dependson>
    
    <dependson>92553</dependson>
    
    <dependson>94024</dependson>
    
    <dependson>95227</dependson>
    
    <dependson>95258</dependson>
    
    <dependson>98315</dependson>
    
    <dependson>98435</dependson>
    
    <dependson>98451</dependson>
    
    <dependson>108546</dependson>
    
    <dependson>110427</dependson>
    
    <dependson>128270</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rik Cabanier">cabanier</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>ericbidelman</cc>
    
    <cc>eric</cc>
    
    <cc>jaepark</cc>
    
    <cc>krit</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mihnea</cc>
    
    <cc>mike</cc>
    
    <cc>paulirish</cc>
    
    <cc>peter</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>syoichi</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>675026</commentid>
    <comment_count>0</comment_count>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2012-07-20 15:44:22 -0700</bug_when>
    <thetext>I would like to add CSS blending to WebKit.
We have a draft specification that we will push to WD soon.

The first implementation will be done using the &apos;webkit-&apos; prefix and implement a subset of the whole feature (only the blending of whole elements).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675034</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-07-20 16:00:55 -0700</bug_when>
    <thetext>How will this work with compositing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675037</commentid>
    <comment_count>2</comment_count>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2012-07-20 16:03:55 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; How will this work with compositing?

I was planning on adding compositing at a later stage. For now, blending will always be done with &apos;src-over&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679920</commentid>
    <comment_count>3</comment_count>
      <attachid>154790</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2012-07-26 16:51:44 -0700</bug_when>
    <thetext>Created attachment 154790
Added defines for CSS compositing and blending. Added support for parsing of -webkit-blend-mode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680049</commentid>
    <comment_count>4</comment_count>
      <attachid>154821</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2012-07-26 20:09:06 -0700</bug_when>
    <thetext>Created attachment 154821
redo patch. Don&apos;t turn on the define just yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680074</commentid>
    <comment_count>5</comment_count>
      <attachid>154827</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2012-07-26 21:02:02 -0700</bug_when>
    <thetext>Created attachment 154827
fixed previous patch so it builds correctly. Define is not turned on</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680776</commentid>
    <comment_count>6</comment_count>
      <attachid>154983</attachid>
    <who name="Rik Cabanier">cabanier</who>
    <bug_when>2012-07-27 10:23:48 -0700</bug_when>
    <thetext>Created attachment 154983
patch for parsing. code is disabled for now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681034</commentid>
    <comment_count>7</comment_count>
      <attachid>154983</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-07-27 13:38:17 -0700</bug_when>
    <thetext>Comment on attachment 154983
patch for parsing. code is disabled for now

You should add CSS_COMPOSITING to all the build system first. See http://trac.webkit.org/changeset/123350 for an example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681035</commentid>
    <comment_count>8</comment_count>
      <attachid>154983</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-07-27 13:40:21 -0700</bug_when>
    <thetext>Comment on attachment 154983
patch for parsing. code is disabled for now

You should also be adding CSS parsing tests at this stage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1883180</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-07-13 10:54:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/96961806&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>154790</attachid>
            <date>2012-07-26 16:51:44 -0700</date>
            <delta_ts>2012-07-26 21:02:26 -0700</delta_ts>
            <desc>Added defines for CSS compositing and blending. Added support for parsing of -webkit-blend-mode</desc>
            <filename>parsing_complete</filename>
            <type>text/plain</type>
            <size>37145</size>
            <attacher name="Rik Cabanier">cabanier</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMzgxMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBACisyMDEyLTA3LTI2ICBSaWsgQ2Fi
YW5pZXIgIDxjYWJhbmllckBhZG9iZS5jb20+CisKKyAgICAgICAgQWRkZWQgZGVmaW5lIGZvciBD
U1MgY29tcG9zaXRpbmcgYW5kIGJsZW5kaW5nCisgICAgICAgIEFkZGVkIGNvZGUgc28gdGhlIGJs
ZW5kLW1vZGUgQ1NTIHByb3BlcnR5IGlzIHBhcnNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE5MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRoZSBjaGFu
Z2Ugc3VjaCBhcyBhcHByb2FjaCwgcmF0aW9uYWxlLiBQbGVhc2UgYWRkIHBlci1mdW5jdGlvbiBk
ZXNjcmlwdGlvbnMgYmVsb3cgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMh
KS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgor
ICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246
OmdldFByb3BlcnR5Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCbGVuZE1vZGUpOgorICAgICAg
ICAqIGNzcy9DU1NQcm9wZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eTo6
aXNJbmhlcml0ZWRQcm9wZXJ0eSk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46
CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL1N0eWxl
QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXI6OlN0eWxlQnVpbGRl
cik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjpSZW5kZXJMYXllcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVCbGVuZE1vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OmVuc3VyZUJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnNob3VsZEJlTm9ybWFsRmxvd09ubHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnN0eWxlQ2hhbmdlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
Lmg6CisgICAgICAgIChSZW5kZXJMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OmNy
ZWF0ZVByaW1hcnlHcmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVMYXllckJsZW5kTW9kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9t
ZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpoYXNCb3hEZWNvcmF0aW9ucyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnNldEJsZW5kTW9kZSk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJCYWNraW5n
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3R5bGU6OmRpZmYpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0
YW50cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKFN0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGEpOgorCiAyMDEyLTA3LTI2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5j
b20+CiAKICAgICAgICAgSFRNTEFwcGxldEVsZW1lbnQgc2hvdWxkIGluaGVyaXQgZnJvbSBIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gMTIzMjczKQorKysg
U291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdv
cmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAgRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9C
UkVBSyA9IEVOQUJMRQogRU5BQkxFX0NTU19FWENMVVNJT05TID0gRU5BQkxFX0NTU19FWENMVVNJ
T05TOwogRU5BQkxFX0NTU19GSUxURVJTID0gRU5BQkxFX0NTU19GSUxURVJTOwogRU5BQkxFX0NT
U19TSEFERVJTID0gRU5BQkxFX0NTU19TSEFERVJTOworRU5BQkxFX0NTU19DT01QT1NJVElORyA9
IEVOQUJMRV9DU1NfQ09NUE9TSVRJTkc7CiBFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04gPSA7
CiBFTkFCTEVfQ1NTX1JFR0lPTlMgPSBFTkFCTEVfQ1NTX1JFR0lPTlM7CiBFTkFCTEVfQ1NTX1ZB
UklBQkxFUyA9IDsKQEAgLTEzNCw0ICsxMzUsNCBAQCBFTkFCTEVfV0VCX1RJTUlORyA9IDsKIEVO
QUJMRV9XT1JLRVJTID0gRU5BQkxFX1dPUktFUlM7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xU
OwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FD
Q0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxP
QikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJM
RV9DU1MzX0ZMRVhCT1gpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFC
TEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfSU1B
R0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TSEFERVJT
KSAkKEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIp
ICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVf
REFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OKSAkKEVOQUJMRV9ESUFMT0dfRUxFTUVOVCkgJChFTkFCTEVfRElSRUNUT1JZX1VQ
TE9BRCkgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZV
TExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChF
TkFCTEVfSElHSF9EUElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lG
UkFNRV9TRUFNTEVTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RB
VEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVC
VUdHRVIpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdB
Q1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTElOS19Q
UkVSRU5ERVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJM
RV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX01JQ1JPREFU
QSkgJChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAk
KEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5B
QkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9S
RVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfU0NSSVBURURfU1BFRUNIKSAkKEVOQUJM
RV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1FMX0RBVEFC
QVNFKSAkKEVOQUJMRV9TVFlMRV9TQ09QRUQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0RP
TV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFWFRfQVVUT1NJ
WklORykgJChFTkFCTEVfVEVYVF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lD
T05fTE9BRElORykgJChFTkFCTEVfVU5ET19NQU5BR0VSKSAkKEVOQUJMRV9WSURFTykgJChFTkFC
TEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5B
QkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAk
KEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykg
JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAk
KEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ1NQX05F
WFQpICQoRU5BQkxFX0NTUzNfRkxFWEJPWCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JS
RUFLKSAkKEVOQUJMRV9DU1NfRVhDTFVTSU9OUykgJChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5B
QkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5B
QkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfQ1NTX1ZBUklB
QkxFUykgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRf
U1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMp
ICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVf
RElBTE9HX0VMRU1FTlQpICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0ZJTEVf
U1lTVEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFC
TEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJR0hfRFBJX0NBTlZB
UykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JRlJBTUVfU0VBTUxFU1MpICQoRU5B
QkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxF
X0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEVUSU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxF
X0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdB
Q1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQo
RU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX0xJTktfUFJFUkVOREVSKSAkKEVOQUJMRV9N
QVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykg
JChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NSUNST0RBVEEpICQoRU5BQkxFX01VVEFUSU9O
X09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklM
SVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVf
UkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJB
TUUpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFC
TEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1RZTEVf
U0NPUEVEKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChF
TkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RFWFRf
Tk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxF
X1VORE9fTUFOQUdFUikgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVO
QUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChF
TkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWFNMVCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcAkocmV2aXNpb24gMTIzMjczKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNiw2ICsyMDYsNyBAQCBz
dGF0aWMgY29uc3QgQ1NTUHJvcGVydHlJRCBjb21wdXRlZFByb3BlCiAgICAgQ1NTUHJvcGVydHlX
ZWJraXRCYWNrZ3JvdW5kQ29tcG9zaXRlLAogICAgIENTU1Byb3BlcnR5V2Via2l0QmFja2dyb3Vu
ZE9yaWdpbiwKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEJhY2tncm91bmRTaXplLAorICAgIENTU1By
b3BlcnR5V2Via2l0QmxlbmRNb2RlLAogICAgIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVyRml0LAog
ICAgIENTU1Byb3BlcnR5V2Via2l0Qm9yZGVySG9yaXpvbnRhbFNwYWNpbmcsCiAgICAgQ1NTUHJv
cGVydHlXZWJraXRCb3JkZXJJbWFnZSwKQEAgLTIzOTAsNiArMjM5MSwxMCBAQCBQYXNzUmVmUHRy
PENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRGaWx0ZXI6CiAgICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JGaWx0ZXIoc3R5bGUuZ2V0
KCkpOwogI2VuZGlmCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdEJsZW5kTW9kZTogCisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQ
b29sKCkuY3JlYXRlVmFsdWUoc3R5bGUtPmJsZW5kTW9kZSgpKTsKKyNlbmRpZgogICAgICAgICBj
YXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZDoKICAgICAgICAgICAgIHJldHVybiBnZXRCYWNrZ3Jv
dW5kU2hvcnRoYW5kVmFsdWUoKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlcjogewpJ
bmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJKHJldmlzaW9uIDEyMzI3MykKKysrIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjY0LDYgKzIy
NjQsMTEgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVydHlJRAogICAgICAg
ICB9CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykK
KyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QmxlbmRNb2RlOgorICAgICAgICAgICAgdmFsaWRQ
cmltaXRpdmUgPSB0cnVlOworICAgICAgICBicmVhazsKKyNlbmRpZgogI2lmIEVOQUJMRShDU1Mz
X0ZMRVhCT1gpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZsZXg6IHsKICAgICAgICAgU2hv
cnRoYW5kU2NvcGUgc2NvcGUodGhpcywgcHJvcElkKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAkocmV2aXNpb24gMTIzMjczKQorKysg
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAkod29ya2luZyBj
b3B5KQpAQCAtNCw2ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQog
ICogQ29weXJpZ2h0IChDKSAyMDA5IEplZmYgU2NoaWxsZXIgPGNvZGVkcmVhZEBnbWFpbC5jb20+
CiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNv
cnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTEwODQsNiArMTA4NSwxMjIgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxFQ3Vyc29yPihtX3ZhbHVlLmlk
ZW50IC0gQ1NTVmFsdWVBdXRvKTsKIH0KIAorI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCit0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUJs
ZW5kTW9kZSBlKQorICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCit7CisgICAgbV9wcmlt
aXRpdmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBzd2l0Y2ggKGUpIHsKKyAgICBjYXNlIEJs
ZW5kTW9kZU5vcm1hbDoKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9ybWFsOwor
ICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgCisgICAgY2FzZSBCbGVuZE1vZGVQbHVzOiAK
KyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlUGx1czsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBCbGVuZE1vZGVNdWx0aXBseToKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlTXVsdGlwbHk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQmxlbmRNb2RlU2NyZWVuOgor
ICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTY3JlZW47IAorICAgICAgICBicmVhazsK
KyAgICBjYXNlIEJsZW5kTW9kZU92ZXJsYXk6CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NW
YWx1ZU92ZXJsYXk7IAorICAgICAgICBicmVhazsKKyAgICBjYXNlIEJsZW5kTW9kZURhcmtlbjoK
KyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlRGFya2VuOyAKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBCbGVuZE1vZGVMaWdodGVuOgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVMaWdodGVuOyAKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCbGVuZE1vZGVDb2xvckRv
ZGdlOgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDb2xvckRvZGdlOyAKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBCbGVuZE1vZGVDb2xvckJ1cm46CisgICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZUNvbG9yQnVybjsgCisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQmxl
bmRNb2RlSGFyZExpZ2h0OgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVIYXJkTGln
aHQ7IAorICAgICAgICBicmVhazsKKyAgICBjYXNlIEJsZW5kTW9kZVNvZnRMaWdodDoKKyAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU29mdExpZ2h0OyAKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBCbGVuZE1vZGVEaWZmZXJlbmNlOgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVEaWZmZXJlbmNlOyAKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCbGVuZE1vZGVFeGNs
dXNpb246CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUV4Y2x1c2lvbjsgCisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQmxlbmRNb2RlSHVlOgorICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVIdWU7IAorICAgICAgICBicmVhazsKKyAgICBjYXNlIEJsZW5kTW9kZVNhdHVy
YXRpb246CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNhdHVyYXRpb247IAorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEJsZW5kTW9kZUNvbG9yOgorICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVDb2xvcjsgCisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQmxlbmRNb2Rl
THVtaW5vc2l0eSA6ICAgICAgICAgICAgICAgIAorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVMdW1pbm9zaXR5OyAKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCbGVuZE1vZGUoKSBjb25z
dAorICAgIHsKKyAgICAgICAgc3dpdGNoIChtX3ZhbHVlLmlkZW50KSB7CisgICAgICAgIGNhc2Ug
Q1NTVmFsdWVOb3JtYWw6CisgICAgICAgICAgICByZXR1cm4gQmxlbmRNb2RlTm9ybWFsOworICAg
ICAgICBjYXNlIENTU1ZhbHVlUGx1czogCisgICAgICAgICAgICByZXR1cm4gQmxlbmRNb2RlUGx1
czsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZU11bHRpcGx5OgorICAgICAgICAgICAgcmV0dXJuIEJs
ZW5kTW9kZU11bHRpcGx5OworICAgICAgICBjYXNlIENTU1ZhbHVlU2NyZWVuOgorICAgICAgICAg
ICAgcmV0dXJuIEJsZW5kTW9kZVNjcmVlbjsgCisgICAgICAgIGNhc2UgQ1NTVmFsdWVPdmVybGF5
OgorICAgICAgICAgICAgcmV0dXJuIEJsZW5kTW9kZU92ZXJsYXk7IAorICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVEYXJrZW46CisgICAgICAgICAgICByZXR1cm4gQmxl
bmRNb2RlRGFya2VuOyAKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1ZhbHVl
TGlnaHRlbjoKKyAgICAgICAgICAgIHJldHVybiBCbGVuZE1vZGVMaWdodGVuOyAKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1ZhbHVlQ29sb3JEb2RnZToKKyAgICAgICAgICAg
IHJldHVybiBCbGVuZE1vZGVDb2xvckRvZGdlOyAKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIENTU1ZhbHVlQ29sb3JCdXJuOgorICAgICAgICAgICAgcmV0dXJuIEJsZW5kTW9kZUNv
bG9yQnVybjsgCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZUhhcmRM
aWdodDoKKyAgICAgICAgICAgIHJldHVybiBCbGVuZE1vZGVIYXJkTGlnaHQ7IAorICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVTb2Z0TGlnaHQ6CisgICAgICAgICAgICBy
ZXR1cm4gQmxlbmRNb2RlU29mdExpZ2h0OyAKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIENTU1ZhbHVlRGlmZmVyZW5jZToKKyAgICAgICAgICAgIHJldHVybiBCbGVuZE1vZGVEaWZm
ZXJlbmNlOyAKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1ZhbHVlRXhjbHVz
aW9uOgorICAgICAgICAgICAgcmV0dXJuIEJsZW5kTW9kZUV4Y2x1c2lvbjsgCisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZUh1ZToKKyAgICAgICAgICAgIHJldHVybiBC
bGVuZE1vZGVIdWU7IAorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVT
YXR1cmF0aW9uOgorICAgICAgICAgICAgcmV0dXJuIEJsZW5kTW9kZVNhdHVyYXRpb247IAorICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVDb2xvcjoKKyAgICAgICAgICAg
IHJldHVybiBCbGVuZE1vZGVDb2xvcjsgCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUx1bWlub3NpdHkgOiAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVy
biBCbGVuZE1vZGVMdW1pbm9zaXR5OyAKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgcmV0dXJuIEJsZW5kTW9kZU5vcm1hbDsKKyAgICAgICAgfQorICAg
IH0KKyNlbmRpZgorCiB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJp
bWl0aXZlVmFsdWUoRURpc3BsYXkgZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQog
ewpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCShyZXZpc2lvbiAxMjMyNzMpCisr
KyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
NzksNiArNjc5LDkgQEAgYm9vbCBDU1NQcm9wZXJ0eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eShDUwog
ICAgIGNhc2UgQ1NTUHJvcGVydHlWZWN0b3JFZmZlY3Q6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdFN2Z1NoYWRvdzoKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJsZW5kTW9kZToKKyNlbmRpZgogI2lmIEVOQUJMRShEQVNI
Qk9BUkRfU1VQUE9SVCkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0RGFzaGJvYXJkUmVnaW9u
OgogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgkocmV2
aXNpb24gMTIzMjczKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4J
KHdvcmtpbmcgY29weSkKQEAgLTQwNCwzICs0MDQsNyBAQCB6LWluZGV4CiAjaWYgZGVmaW5lZChF
TkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HKSAmJiBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HCiAt
d2Via2l0LW92ZXJmbG93LXNjcm9sbGluZwogI2VuZGlmCisjaWYgZGVmaW5lZChFTkFCTEVfQ1NT
X0NPTVBPU0lUSU5HKSAmJiBFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HCistd2Via2l0LWJsZW5kLW1v
ZGUKKyNlbmRpZgorCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5p
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgko
cmV2aXNpb24gMTIzMjczKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTkzNywzICs5MzcsMjQgQEAgZnJvbS1pbWFnZQogc25hcAog
I2VuZGlmCiAKKyNpZiBkZWZpbmVkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICYmIEVOQUJMRV9D
U1NfQ09NUE9TSVRJTkcKKy8vIC13ZWJraXQtYmxlbmQtbW9kZQorLy8gbm9ybWFsCitwbHVzCitt
dWx0aXBseQorc2NyZWVuCisvLyBvdmVybGF5CitkYXJrZW4KK2xpZ2h0ZW4KK2NvbG9yLWRvZGdl
Citjb2xvci1idXJuCitoYXJkLWxpZ2h0Citzb2Z0LWxpZ2h0CitkaWZmZXJlbmNlCitleGNsdXNp
b24KK2h1ZQorc2F0dXJhdGlvbgorY29sb3IKK2x1bWlub3NpdHkKKyNlbmRpZgorCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAkocmV2aXNpb24gMTIzMjczKQorKysgU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwODksNiAr
MjA4OSw5IEBAIFN0eWxlQnVpbGRlcjo6U3R5bGVCdWlsZGVyKCkKICAgICBzZXRQcm9wZXJ0eUhh
bmRsZXIoQ1NTUHJvcGVydHlXb3JkV3JhcCwgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8RVdvcmRXcmFw
LCAmUmVuZGVyU3R5bGU6OndvcmRXcmFwLCBFV29yZFdyYXAsICZSZW5kZXJTdHlsZTo6c2V0V29y
ZFdyYXAsIEVXb3JkV3JhcCwgJlJlbmRlclN0eWxlOjppbml0aWFsV29yZFdyYXA+OjpjcmVhdGVI
YW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVpJbmRleCwgQXBw
bHlQcm9wZXJ0eUF1dG88aW50LCAmUmVuZGVyU3R5bGU6OnpJbmRleCwgJlJlbmRlclN0eWxlOjpz
ZXRaSW5kZXgsICZSZW5kZXJTdHlsZTo6aGFzQXV0b1pJbmRleCwgJlJlbmRlclN0eWxlOjpzZXRI
YXNBdXRvWkluZGV4Pjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIo
Q1NTUHJvcGVydHlab29tLCBBcHBseVByb3BlcnR5Wm9vbTo6Y3JlYXRlSGFuZGxlcigpKTsKKyNp
ZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQorICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9w
ZXJ0eVdlYmtpdEJsZW5kTW9kZSwgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8RUJsZW5kTW9kZSwgJlJl
bmRlclN0eWxlOjpibGVuZE1vZGUsIEVCbGVuZE1vZGUsICZSZW5kZXJTdHlsZTo6c2V0QmxlbmRN
b2RlLCBFQmxlbmRNb2RlLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxCbGVuZE1vZGU+OjpjcmVhdGVI
YW5kbGVyKCkpOworI2VuZGlmCiB9CiAKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwCShyZXZpc2lvbiAxMjMyNzMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw2ICsxMSw3IEBACiAg
KiAgIFJvbGFuZCBNYWlueiA8cm9sYW5kLm1haW56QGluZm9ybWF0aWsubWVkLnVuaS1naWVzc2Vu
LmRlPgogICogICBKb3NoIFNvcmVmIDx0aW1lbGVzc0BtYWMuY29tPgogICogICBCb3JpcyBaYmFy
c2t5IDxiemJhcnNreUBtaXQuZWR1PgorICogIENvcHlyaWdodCAoYykgMjAxMiBBZG9iZSBTeXN0
ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CkBAIC0xNzUsNiArMTc2LDkgQEAgUmVuZGVyTGF5ZXI6OlJlbmRlckxheWVyKFJlbmRlckJveE1v
ZGVsTwogICAgICwgbV9yZWZsZWN0aW9uKDApCiAgICAgLCBtX3Njcm9sbENvcm5lcigwKQogICAg
ICwgbV9yZXNpemVyKDApCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICAsIG1fYmxl
bmRNb2RlKEJsZW5kTW9kZU5vcm1hbCkKKyNlbmRpZiAgICAKIHsKICAgICBtX2lzTm9ybWFsRmxv
d09ubHkgPSBzaG91bGRCZU5vcm1hbEZsb3dPbmx5KCk7CiAgICAgbV9pc1NlbGZQYWludGluZ0xh
eWVyID0gc2hvdWxkQmVTZWxmUGFpbnRpbmdMYXllcigpOwpAQCAtNTI5LDYgKzUzMywxOCBAQCB2
b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9uc0FmCiAgICAgICAgIG1fbWFycXVl
ZS0+dXBkYXRlTWFycXVlZVBvc2l0aW9uKCk7CiB9CiAKKyNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lU
SU5HKQordm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlQmxlbmRNb2RlKCkKK3sKKyAgICBFQmxlbmRN
b2RlIG5ld0JsZW5kTW9kZSA9IHJlbmRlcmVyKCktPnN0eWxlKCktPmJsZW5kTW9kZSgpOworICAg
IGlmIChuZXdCbGVuZE1vZGUgIT0gbV9ibGVuZE1vZGUpIHsKKyAgICAgICAgbV9ibGVuZE1vZGUg
PSBuZXdCbGVuZE1vZGU7CisgICAgICAgIGlmIChiYWNraW5nKCkpCisgICAgICAgICAgICBiYWNr
aW5nKCktPnNldEJsZW5kTW9kZShuZXdCbGVuZE1vZGUpOworICAgIH0KK30KKyNlbmRpZgorCiB2
b2lkIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0oKQogewogICAgIC8vIGhhc1RyYW5zZm9y
bSgpIG9uIHRoZSByZW5kZXJlciBpcyBhbHNvIHRydWUgd2hlbiB0aGVyZSBpcyB0cmFuc2Zvcm0t
c3R5bGU6IHByZXNlcnZlLTNkIG9yIHBlcnNwZWN0aXZlIHNldCwKQEAgLTQzNTIsNiArNDM2OCw5
IEBAIFJlbmRlckxheWVyQmFja2luZyogUmVuZGVyTGF5ZXI6OmVuc3VyZUIKICNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCiAgICAgICAgIHVwZGF0ZU9yUmVtb3ZlRmlsdGVyRWZmZWN0KCk7CiAjZW5k
aWYKKyNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQorICAgICAgICBiYWNraW5nKCktPnNldEJs
ZW5kTW9kZShtX2JsZW5kTW9kZSk7CisjZW5kaWYKICAgICB9CiAgICAgcmV0dXJuIG1fYmFja2lu
Zy5nZXQoKTsKIH0KQEAgLTQ3NDAsNiArNDc1OSw5IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OnNob3Vs
ZEJlTm9ybWFsRmxvd09ubHkKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgICAgICAgICAm
JiAhcmVuZGVyZXIoKS0+aGFzRmlsdGVyKCkKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfQ09NUE9T
SVRJTkcpCisgICAgICAgICAgICAmJiByZW5kZXJlcigpLT5zdHlsZSgpLT5ibGVuZE1vZGUoKSA9
PSBCbGVuZE1vZGVOb3JtYWwKKyNlbmRpZgogICAgICAgICAgICAgJiYgIWlzVHJhbnNwYXJlbnQo
KTsKIH0KIApAQCAtNDg4MSw2ICs0OTAzLDkgQEAgdm9pZCBSZW5kZXJMYXllcjo6c3R5bGVDaGFu
Z2VkKFN0eWxlRGlmZgogCiAgICAgdXBkYXRlRGVzY2VuZGFudERlcGVuZGVudEZsYWdzKCk7CiAg
ICAgdXBkYXRlVHJhbnNmb3JtKCk7CisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICB1
cGRhdGVCbGVuZE1vZGUoKTsKKyNlbmRpZgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgIGlmIChjb21wb3NpdG9yKCktPnVwZGF0ZUxheWVyQ29tcG9zaXRpbmdTdGF0ZSh0
aGlzKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCShyZXZpc2lv
biAxMjMyNzMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMzk3LDYgKzM5Nyw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzUGFnaW5h
dGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1BhZ2luYXRlZDsgfQogCiAgICAgdm9pZCB1cGRhdGVU
cmFuc2Zvcm0oKTsKKyNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQorICAgIHZvaWQgdXBkYXRl
QmxlbmRNb2RlKCk7CisjZW5kaWYKIAogICAgIGNvbnN0IExheW91dFNpemUmIHJlbGF0aXZlUG9z
aXRpb25PZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3JlbGF0aXZlT2Zmc2V0OyB9CiAKQEAgLTk5
MSw2ICs5OTQsOSBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIExheW91dFJlY3QgbV9ibG9j
a1NlbGVjdGlvbkdhcHNCb3VuZHM7CiAKKyNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQorICAg
IEVCbGVuZE1vZGUgbV9ibGVuZE1vZGU7CisjZW5kaWYgCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIE93blB0cjxSZW5kZXJMYXllckJhY2tpbmc+IG1fYmFja2luZzsKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAJKHJldmlzaW9uIDEyMzI3MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsNiArMjAwLDkgQEAg
dm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmNyZWF0ZVByaW1hcnlHcgogI2lmIEVOQUJMRShDU1Nf
RklMVEVSUykKICAgICB1cGRhdGVMYXllckZpbHRlcnMocmVuZGVyZXIoKS0+c3R5bGUoKSk7CiAj
ZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQorICAgIHVwZGF0ZUxheWVyQmxlbmRN
b2RlKHJlbmRlcmVyKCktPnN0eWxlKCkpOworI2VuZGlmCiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXJC
YWNraW5nOjpkZXN0cm95R3JhcGhpY3NMYXllcnMoKQpAQCAtMjM4LDYgKzI0MSwxMiBAQCB2b2lk
IFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlTGF5ZXJGaWx0CiB9CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShDU1NfQ09NUE9TSVRJTkcpCit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlTGF5
ZXJCbGVuZE1vZGUoY29uc3QgUmVuZGVyU3R5bGUqKQoreworfQorI2VuZGlmCisKIHN0YXRpYyBi
b29sIGhhc05vblplcm9UcmFuc2Zvcm1PcmlnaW4oY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJl
cikKIHsKICAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSByZW5kZXJlci0+c3R5bGUoKTsKQEAgLTQ0
OSw2ICs0NTgsOSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMCiAj
aWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIHVwZGF0ZUxheWVyRmlsdGVycyhyZW5kZXJlcigp
LT5zdHlsZSgpKTsKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCisgICAgdXBk
YXRlTGF5ZXJCbGVuZE1vZGUocmVuZGVyZXIoKS0+c3R5bGUoKSk7CisjZW5kaWYKICAgICAKICAg
ICBtX293bmluZ0xheWVyLT51cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MoKTsKIApAQCAt
ODQxLDcgKzg1Myw3IEBAIGZsb2F0IFJlbmRlckxheWVyQmFja2luZzo6Y29tcG9zaXRpbmdPcGEK
IAogc3RhdGljIGJvb2wgaGFzQm94RGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxl
KQogewotICAgIHJldHVybiBzdHlsZS0+aGFzQm9yZGVyKCkgfHwgc3R5bGUtPmhhc0JvcmRlclJh
ZGl1cygpIHx8IHN0eWxlLT5oYXNPdXRsaW5lKCkgfHwgc3R5bGUtPmhhc0FwcGVhcmFuY2UoKSB8
fCBzdHlsZS0+Ym94U2hhZG93KCkgfHwgc3R5bGUtPmhhc0ZpbHRlcigpOworICAgIHJldHVybiBz
dHlsZS0+aGFzQm9yZGVyKCkgfHwgc3R5bGUtPmhhc0JvcmRlclJhZGl1cygpIHx8IHN0eWxlLT5o
YXNPdXRsaW5lKCkgfHwgc3R5bGUtPmhhc0FwcGVhcmFuY2UoKSB8fCBzdHlsZS0+Ym94U2hhZG93
KCkgfHwgc3R5bGUtPmhhc0ZpbHRlcigpIHx8IHN0eWxlLT5oYXNCbGVuZE1vZGUoKTsKIH0KIAog
c3RhdGljIGJvb2wgaGFzQm94RGVjb3JhdGlvbnNPckJhY2tncm91bmQoY29uc3QgUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlcikKQEAgLTExNzAsNiArMTE4MiwxMiBAQCB2b2lkIFJlbmRlckxheWVyQmFj
a2luZzo6c2V0UmVxdWlyZXNPd25CCiAgICAgY29tcG9zaXRvcigpLT5yZXBhaW50SW5Db21wb3Np
dGVkQW5jZXN0b3IobV9vd25pbmdMYXllciwgY29tcG9zaXRlZEJvdW5kcygpKTsKIH0KIAorI2lm
IEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6c2V0Qmxl
bmRNb2RlKEVCbGVuZE1vZGUpCit7Cit9CisjZW5kaWYKKwogdm9pZCBSZW5kZXJMYXllckJhY2tp
bmc6OnNldENvbnRlbnRzTmVlZERpc3BsYXkoKQogewogICAgIEFTU0VSVCghcGFpbnRzSW50b0Nv
bXBvc2l0ZWRBbmNlc3RvcigpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmgJKHJldmlzaW9uIDEyMzI3MykKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMTY1LDYg
KzE2NSwxMCBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgbmFtZUZvckxheWVyKCkgY29uc3Q7CiAg
ICAgCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICB2b2lkIHNldEJsZW5kTW9kZShF
QmxlbmRNb2RlKTsKKyNlbmRpZgorICAgIAogcHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZVByaW1h
cnlHcmFwaGljc0xheWVyKCk7CiAgICAgdm9pZCBkZXN0cm95R3JhcGhpY3NMYXllcnMoKTsKQEAg
LTE5Niw2ICsyMDAsOSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICB2
b2lkIHVwZGF0ZUxheWVyRmlsdGVycyhjb25zdCBSZW5kZXJTdHlsZSopOwogI2VuZGlmCisjaWYg
RU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICB2b2lkIHVwZGF0ZUxheWVyQmxlbmRNb2RlKGNv
bnN0IFJlbmRlclN0eWxlKik7CisjZW5kaWYKIAogICAgIC8vIFJldHVybiB0aGUgb3BhY2l0eSB2
YWx1ZSB0aGF0IHRoaXMgbGF5ZXIgc2hvdWxkIHVzZSBmb3IgY29tcG9zaXRpbmcuCiAgICAgZmxv
YXQgY29tcG9zaXRpbmdPcGFjaXR5KGZsb2F0IHJlbmRlcmVyT3BhY2l0eSkgY29uc3Q7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHJl
dmlzaW9uIDEyMzI3MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwNCw2ICs2MDQsMTEgQEAgU3R5bGVEaWZmZXJl
bmNlIFJlbmRlclN0eWxlOjpkaWZmKGNvbnN0IAogICAgICAgICAgICAgICAgICB8fCB2aXN1YWwt
PmNsaXAgIT0gb3RoZXItPnZpc3VhbC0+Y2xpcCB8fCB2aXN1YWwtPmhhc0NsaXAgIT0gb3RoZXIt
PnZpc3VhbC0+aGFzQ2xpcCkKICAgICAgICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VSZXBh
aW50TGF5ZXI7CiAgICAgfQorICAgIAorI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCisgICAg
aWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2VmZmVjdGl2ZUJsZW5kTW9kZSAhPSBvdGhlci0+
cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZWZmZWN0aXZlQmxlbmRNb2RlKQorICAgICAgICByZXR1
cm4gU3R5bGVEaWZmZXJlbmNlUmVwYWludExheWVyOworI2VuZGlmCiAKICAgICBpZiAocmFyZU5v
bkluaGVyaXRlZERhdGEtPm9wYWNpdHkgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5v
cGFjaXR5KSB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHJldmlzaW9uIDEyMzI3
MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC05ODUsNiArOTg1LDEzIEBAIHB1YmxpYzoKICAgICBib29sIGhhc0ZpbHRl
cigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShDU1NfQ09N
UE9TSVRJTkcpCisgICAgRUJsZW5kTW9kZSBibGVuZE1vZGUoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxFQmxlbmRNb2RlPihyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9lZmZlY3RpdmVCbGVu
ZE1vZGUpOyB9CisgICAgdm9pZCBzZXRCbGVuZE1vZGUoRUJsZW5kTW9kZSB2KSB7IHJhcmVOb25J
bmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2VmZmVjdGl2ZUJsZW5kTW9kZSA9IHY7IH0KKyAgICBi
b29sIGhhc0JsZW5kTW9kZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVCbGVuZE1vZGU+
KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2VmZmVjdGl2ZUJsZW5kTW9kZSkgPT0gQmxlbmRNb2Rl
Tm9ybWFsOyB9CisjZWxzZQorICAgIGJvb2wgaGFzQmxlbmRNb2RlKCkgY29uc3QgKCByZXR1cm4g
ZmFsc2U7IH0KKyNlbmRpZgogI2lmIFVTRShSVExfU0NST0xMQkFSKQogICAgIGJvb2wgc2hvdWxk
UGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTG9naWNhbExlZnQoKSBjb25zdCB7IHJldHVy
biAhaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7
IH0KICNlbHNlCkBAIC0xNzIyLDYgKzE3MjksOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKENTU19G
SUxURVJTKQogICAgIHN0YXRpYyBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBpbml0aWFsRmlsdGVy
KCkgeyBERUZJTkVfU1RBVElDX0xPQ0FMKEZpbHRlck9wZXJhdGlvbnMsIG9wcywgKCkpOyByZXR1
cm4gb3BzOyB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQorICAgIHN0YXRp
YyBFQmxlbmRNb2RlIGluaXRpYWxCbGVuZE1vZGUoKSB7IHJldHVybiBCbGVuZE1vZGVOb3JtYWw7
IH0KKyNlbmRpZgogcHJpdmF0ZToKICAgICB2b2lkIHNldFZpc2l0ZWRMaW5rQ29sb3IoY29uc3Qg
Q29sb3ImIHYpIHsgU0VUX1ZBUihpbmhlcml0ZWQsIHZpc2l0ZWRMaW5rQ29sb3IsIHYpIH0KICAg
ICB2b2lkIHNldFZpc2l0ZWRMaW5rQmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJiB2KSB7IFNF
VF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fdmlzaXRlZExpbmtCYWNrZ3JvdW5kQ29sb3Is
IHYpIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNv
bnN0YW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZUNvbnN0YW50cy5oCShyZXZpc2lvbiAxMjMyNzMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAkod29ya2luZyBjb3B5KQpA
QCAtNDcwLDYgKzQ3MCw5IEBAIGVudW0gV3JhcEZsb3cgeyBXcmFwRmxvd0F1dG8sIFdyYXBGbG93
Qm8KIAogZW51bSBXcmFwVGhyb3VnaCB7IFdyYXBUaHJvdWdoV3JhcCwgV3JhcFRocm91Z2hOb25l
IH07CiAKKyNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQorZW51bSBFQmxlbmRNb2RlIHsgQmxl
bmRNb2RlTm9ybWFsID0gMSwgQmxlbmRNb2RlUGx1cywgQmxlbmRNb2RlTXVsdGlwbHksIEJsZW5k
TW9kZVNjcmVlbiwgQmxlbmRNb2RlT3ZlcmxheSwgQmxlbmRNb2RlRGFya2VuLCBCbGVuZE1vZGVM
aWdodGVuLCBCbGVuZE1vZGVDb2xvckRvZGdlLCBCbGVuZE1vZGVDb2xvckJ1cm4sIEJsZW5kTW9k
ZUhhcmRMaWdodCwgQmxlbmRNb2RlU29mdExpZ2h0LCBCbGVuZE1vZGVEaWZmZXJlbmNlLCBCbGVu
ZE1vZGVFeGNsdXNpb24sIEJsZW5kTW9kZUh1ZSwgQmxlbmRNb2RlU2F0dXJhdGlvbiwgQmxlbmRN
b2RlQ29sb3IsIEJsZW5kTW9kZUx1bWlub3NpdHkgfTsKKyNlbmRpZgogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gUmVuZGVyU3R5bGVDb25zdGFudHNfaApJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhLmNwcAkocmV2aXNpb24gMTIzMjczKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03Nyw2ICs3Nyw5IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5v
bkkKICAgICAsIG1fcnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uKGZhbHNlKQogI2VuZGlmCiAg
ICAgLCBtX2hhc0FzcGVjdFJhdGlvKGZhbHNlKQorI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcp
CisgICAgLCBtX2VmZmVjdGl2ZUJsZW5kTW9kZShSZW5kZXJTdHlsZTo6aW5pdGlhbEJsZW5kTW9k
ZSgpKQorI2VuZGlmCiB7CiAgICAgbV9tYXNrQm94SW1hZ2Uuc2V0TWFza0RlZmF1bHRzKCk7CiB9
CkBAIC0xNDgsNiArMTUxLDkgQEAgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJl
Tm9uSQogICAgICwgbV9ydW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb24oby5tX3J1bm5pbmdBY2Nl
bGVyYXRlZEFuaW1hdGlvbikKICNlbmRpZgogICAgICwgbV9oYXNBc3BlY3RSYXRpbyhvLm1faGFz
QXNwZWN0UmF0aW8pCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICAsIG1fZWZmZWN0
aXZlQmxlbmRNb2RlKG8ubV9lZmZlY3RpdmVCbGVuZE1vZGUpCisjZW5kaWYKIHsKIH0KIApAQCAt
MjI0LDYgKzIzMCw5IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3IK
ICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgICAgICYmICFtX3J1bm5pbmdB
Y2NlbGVyYXRlZEFuaW1hdGlvbiAmJiAhby5tX3J1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbgog
I2VuZGlmCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICAgICAgJiYgbV9lZmZlY3Rp
dmVCbGVuZE1vZGUgPT0gby5tX2VmZmVjdGl2ZUJsZW5kTW9kZQorI2VuZGlmCiAgICAgICAgICYm
IG1faGFzQXNwZWN0UmF0aW8gPT0gby5tX2hhc0FzcGVjdFJhdGlvOwogfQogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhLmgJKHJldmlzaW9uIDEyMzI3MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgJKHdvcmtpbmcgY29weSkKQEAg
LTE4MCw2ICsxODAsOSBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbV9ydW5uaW5nQWNjZWxlcmF0
ZWRBbmltYXRpb24gOiAxOwogI2VuZGlmCiAgICAgdW5zaWduZWQgbV9oYXNBc3BlY3RSYXRpbyA6
IDE7IC8vIFdoZXRoZXIgb3Igbm90IGFuIGFzcGVjdCByYXRpbyBoYXMgYmVlbiBzcGVjaWZpZWQu
CisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICB1bnNpZ25lZCBtX2VmZmVjdGl2ZUJs
ZW5kTW9kZTogNTsgLy8gRUJsZW5kTW9kZQorI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YSgpOwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTIzODEzKQor
KysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTItMDctMjYgIFJpayBDYWJhbmllciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KKworICAg
ICAgICBBZGRlZCBkZWZpbmUgZm9yIENTUyBjb21wb3NpdGluZyBhbmQgYmxlbmRpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxOTA4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaXRpb25hbCBpbmZv
cm1hdGlvbiBvZiB0aGUgY2hhbmdlIHN1Y2ggYXMgYXBwcm9hY2gsIHJhdGlvbmFsZS4gUGxlYXNl
IGFkZCBwZXItZnVuY3Rpb24gZGVzY3JpcHRpb25zIGJlbG93IChPT1BTISkuCisKKyAgICAgICAg
KiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxMi0wNy0yNiAg
WmVubyBBbGJpc3NlciAgPHplbm9Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIFF0
IGJ1aWxkZml4IGFmdGVyIHIxMjM3ODYuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gMTIzMjcz
KQorKysgU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAgRU5BQkxFX0NTUzNfRkxFWEJPWCA9
IEVOQUJMRV9DU1MzX0ZMRVhCTwogRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyA9IEVO
QUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUs7CiBFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMgPSBF
TkFCTEVfQ1NTX0VYQ0xVU0lPTlM7CiBFTkFCTEVfQ1NTX0ZJTFRFUlMgPSBFTkFCTEVfQ1NTX0ZJ
TFRFUlM7CitFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HID0gRU5BQkxFX0NTU19DT01QT1NJVElORzsK
IEVOQUJMRV9DU1NfU0hBREVSUyA9IEVOQUJMRV9DU1NfU0hBREVSUzsKIEVOQUJMRV9DU1NfSU1B
R0VfT1JJRU5UQVRJT04gPSA7CiBFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04gPSA7CkBAIC0x
MzUsNCArMTM2LDQgQEAgRU5BQkxFX1dFQl9USU1JTkcgPSA7CiBFTkFCTEVfV09SS0VSUyA9IEVO
QUJMRV9XT1JLRVJTOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJ
TkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5W
QVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5O
RUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTM19GTEVYQk9YKSAk
KEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19FWENMVVNJT05T
KSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAk
KEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5B
QkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DVVNUT01f
U0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRB
TElTVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMUykgJChF
TkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESUFMT0dfRUxFTUVOVCkgJChFTkFC
TEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRF
UlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9H
RU9MT0NBVElPTikgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJB
U0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkg
JChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpICQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChF
TkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxF
X0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVT
KSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkg
JChFTkFCTEVfTElOS19QUkVSRU5ERVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFf
U09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQo
RU5BQkxFX01JQ1JPREFUQSkgJChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKSAkKEVOQUJMRV9O
T1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9H
UkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5E
TEVSKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfU0NSSVBURURf
U1BFRUNIKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChF
TkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9TQ09QRUQpICQoRU5BQkxFX1NWRykg
JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5B
QkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEVYVF9OT1RJRklDQVRJT05TX09OTFkpICQo
RU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVU5ET19NQU5BR0VSKSAkKEVOQUJM
RV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9X
RUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVO
QUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxF
XzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9B
TklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykg
JChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTUzNfRkxFWEJPWCkgJChFTkFCTEVfQ1NTX0JP
WF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfRVhDTFVTSU9OUykgJChFTkFCTEVfQ1NT
X0ZJTFRFUlMpICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0lNQUdFX09S
SUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JF
R0lPTlMpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVO
QUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAk
KEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVf
REVUQUlMUykgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESUFMT0dfRUxF
TUVOVCkgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklMRV9TWVNURU0pICQo
RU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFE
KSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKSAkKEVOQUJM
RV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfU1BF
RUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJ
TUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dF
RUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVO
RE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTElO
S19QUkVGRVRDSCkgJChFTkFCTEVfTElOS19QUkVSRU5ERVIpICQoRU5BQkxFX01BVEhNTCkgJChF
TkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9N
RVRFUl9UQUcpICQoRU5BQkxFX01JQ1JPREFUQSkgJChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJT
KSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAk
KEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJU1RFUl9Q
Uk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFC
TEVfU0NSSVBURURfU1BFRUNIKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURf
V09SS0VSUykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9TQ09QRUQpICQo
RU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdf
Rk9OVFMpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEVYVF9OT1RJRklDQVRJ
T05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVU5ET19NQU5B
R0VSKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdM
KSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJf
VElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YU0xUKTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDEyMzgxMykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA3LTI2ICBSaWsgQ2FiYW5pZXIg
IDxjYWJhbmllckBhZG9iZS5jb20+CisKKyAgICAgICAgQWRkZWQgZGVmaW5lIGZvciBDU1MgY29t
cG9zaXRpbmcgYW5kIGJsZW5kaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05MTkwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb2YgdGhlIGNoYW5nZSBzdWNoIGFz
IGFwcHJvYWNoLCByYXRpb25hbGUuIFBsZWFzZSBhZGQgcGVyLWZ1bmN0aW9uIGRlc2NyaXB0aW9u
cyBiZWxvdyAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWc6CisKIDIwMTItMDctMjUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIHNldHRpbmcgdG8gZW5hYmxlIGFuZCBkaXNhYmxlIGRpYWdub3N0
aWMgbG9nZ2luZy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZpc2lvbiAxMjMyNzMpCisrKyBT
b3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwko
d29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEsNyBAQCBFTkFCTEVfQ1NTM19GTEVYQk9YID0gRU5B
QkxFX0NTUzNfRkxFWEJPCiBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLID0gRU5BQkxF
X0NTU19CT1hfREVDT1JBVElPTl9CUkVBSzsKIEVOQUJMRV9DU1NfRVhDTFVTSU9OUyA9IEVOQUJM
RV9DU1NfRVhDTFVTSU9OUzsKIEVOQUJMRV9DU1NfRklMVEVSUyA9IEVOQUJMRV9DU1NfRklMVEVS
UzsKK0VOQUJMRV9DU1NfQ09NUE9TSVRJTkcgPSBFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HOwogRU5B
QkxFX0NTU19TSEFERVJTID0gRU5BQkxFX0NTU19TSEFERVJTOwogRU5BQkxFX0NTU19JTUFHRV9P
UklFTlRBVElPTiA9IDsKIEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTiA9IDsKQEAgLTEzNSw0
ICsxMzYsNCBAQCBFTkFCTEVfV0VCX1RJTUlORyA9IDsKIEVOQUJMRV9XT1JLRVJTID0gRU5BQkxF
X1dPUktFUlM7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMg
PSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykg
JChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9N
RVNTQUdJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9DU1MzX0ZMRVhCT1gpICQoRU5B
QkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQo
RU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5B
QkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVf
Q1NTX1NIQURFUlMpICQoRU5BQkxFX0NTU19WQVJJQUJMRVMpICQoRU5BQkxFX0NVU1RPTV9TQ0hF
TUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNU
KSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJM
RV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJQUxPR19FTEVNRU5UKSAkKEVOQUJMRV9E
SVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykg
JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xP
Q0FUSU9OKSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkg
JChFTkFCTEVfSUZSQU1FX1NFQU1MRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFW
QVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQo
RU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVO
QUJMRV9MSU5LX1BSRVJFTkRFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VS
Q0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFC
TEVfTUlDUk9EQVRBKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElG
SUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNT
X1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIp
ICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVF
Q0gpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJM
RV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAkKEVO
QUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVf
VEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9URVhUX05PVElGSUNBVElPTlNfT05MWSkgJChFTkFC
TEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VTkRPX01BTkFHRVIpICQoRU5BQkxFX1ZJ
REVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9B
VURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxF
X1dPUktFUlMpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0Rf
UkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FOSU1B
VElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVO
QUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTM19GTEVYQk9YKSAkKEVOQUJMRV9DU1NfQk9YX0RF
Q09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19FWENMVVNJT05TKSAkKEVOQUJMRV9DU1NfRklM
VEVSUykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5U
QVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9O
UykgJChFTkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0NTU19WQVJJQUJMRVMpICQoRU5BQkxF
X0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5B
QkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRB
SUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJQUxPR19FTEVNRU5U
KSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFC
TEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQo
RU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lD
T05EQVRBQkFTRSkgJChFTkFCTEVfSUZSQU1FX1NFQU1MRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RB
VEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSkg
JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01P
TlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykg
JChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1Jf
UFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MSU5LX1BS
RUZFVENIKSAkKEVOQUJMRV9MSU5LX1BSRVJFTkRFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJM
RV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVS
X1RBRykgJChFTkFCTEVfTUlDUk9EQVRBKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQo
RU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5B
QkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RP
Q09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9T
Q1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JL
RVJTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFC
TEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05U
UykgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9URVhUX05PVElGSUNBVElPTlNf
T05MWSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VTkRPX01BTkFHRVIp
ICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQo
RU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1J
TkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hTTFQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>154821</attachid>
            <date>2012-07-26 20:09:06 -0700</date>
            <delta_ts>2012-07-26 20:19:13 -0700</delta_ts>
            <desc>redo patch. Don&apos;t turn on the define just yet.</desc>
            <filename>parse_complete</filename>
            <type>text/plain</type>
            <size>20989</size>
            <attacher name="Rik Cabanier">cabanier</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMzgzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBACisyMDEyLTA3LTI2ICBSaWsgQ2Fi
YW5pZXIgIDxjYWJhbmllckBhZG9iZS5jb20+CisKKyAgICAgICAgQWRkZWQgZGVmaW5lIGZvciBD
U1MgY29tcG9zaXRpbmcgYW5kIGJsZW5kaW5nCisgICAgICAgIEFkZGVkIGNvZGUgc28gdGhlIGJs
ZW5kLW1vZGUgQ1NTIHByb3BlcnR5IGlzIHBhcnNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE5MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRoZSBjaGFu
Z2Ugc3VjaCBhcyBhcHByb2FjaCwgcmF0aW9uYWxlLiBQbGVhc2UgYWRkIHBlci1mdW5jdGlvbiBk
ZXNjcmlwdGlvbnMgYmVsb3cgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMh
KS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgor
ICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246
OmdldFByb3BlcnR5Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCbGVuZE1vZGUpOgorICAgICAg
ICAqIGNzcy9DU1NQcm9wZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eTo6
aXNJbmhlcml0ZWRQcm9wZXJ0eSk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46
CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL1N0eWxl
QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXI6OlN0eWxlQnVpbGRl
cik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjpSZW5kZXJMYXllcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVCbGVuZE1vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OmVuc3VyZUJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnNob3VsZEJlTm9ybWFsRmxvd09ubHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnN0eWxlQ2hhbmdlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
Lmg6CisgICAgICAgIChSZW5kZXJMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OmNy
ZWF0ZVByaW1hcnlHcmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVMYXllckJsZW5kTW9kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9t
ZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpoYXNCb3hEZWNvcmF0aW9ucyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnNldEJsZW5kTW9kZSk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJCYWNraW5n
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3R5bGU6OmRpZmYpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0
YW50cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKFN0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGEpOgorCiAyMDEyLTA3LTI2ICBBbmlzaCBCaGF5YW5pICA8YW5pc2guYmhheWFuaUBnbWFp
bC5jb20+CiAKICAgICAgICAgRGUtdmlydHVhbGl6ZSBXcmFwU2hhcGUgY2xhc3NlcwpJbmRleDog
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAJKHJldmlzaW9uIDEyMzgzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDYsNiArMjA2LDcgQEAgc3Rh
dGljIGNvbnN0IENTU1Byb3BlcnR5SUQgY29tcHV0ZWRQcm9wZQogICAgIENTU1Byb3BlcnR5V2Vi
a2l0QmFja2dyb3VuZENvbXBvc2l0ZSwKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEJhY2tncm91bmRP
cmlnaW4sCiAgICAgQ1NTUHJvcGVydHlXZWJraXRCYWNrZ3JvdW5kU2l6ZSwKKyAgICBDU1NQcm9w
ZXJ0eVdlYmtpdEJsZW5kTW9kZSwKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckZpdCwKICAg
ICBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckhvcml6b250YWxTcGFjaW5nLAogICAgIENTU1Byb3Bl
cnR5V2Via2l0Qm9yZGVySW1hZ2UsCkBAIC0yMzkwLDYgKzIzOTEsMTAgQEAgUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlYwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0RmlsdGVyOgogICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yRmlsdGVyKHN0eWxlLmdldCgp
KTsKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCisgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRCbGVuZE1vZGU6IAorICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9v
bCgpLmNyZWF0ZVZhbHVlKHN0eWxlLT5ibGVuZE1vZGUoKSk7CisjZW5kaWYKICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUJhY2tncm91bmQ6CiAgICAgICAgICAgICByZXR1cm4gZ2V0QmFja2dyb3Vu
ZFNob3J0aGFuZFZhbHVlKCk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXI6IHsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCShyZXZpc2lvbiAxMjM4MzIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI2OCw2ICsyMjY4
LDExIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3BlcnR5SUQKICAgICAgICAg
fQogICAgICAgICBicmVhazsKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCisg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEJsZW5kTW9kZToKKyAgICAgICAgICAgIHZhbGlkUHJp
bWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKICNpZiBFTkFCTEUoQ1NTM19G
TEVYQk9YKQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGbGV4OiB7CiAgICAgICAgIFNob3J0
aGFuZFNjb3BlIHNjb3BlKHRoaXMsIHByb3BJZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgJKHJldmlzaW9uIDEyMzgzMikKKysrIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQsNiArNCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKICAq
IENvcHlyaWdodCAoQykgMjAwOSBKZWZmIFNjaGlsbGVyIDxjb2RlZHJlYWRAZ21haWwuY29tPgog
ICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jw
b3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0xMDg0LDYgKzEwODUsMTIyIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2
ZVZhbHVlOjpvcGUKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RUN1cnNvcj4obV92YWx1ZS5pZGVu
dCAtIENTU1ZhbHVlQXV0byk7CiB9CiAKKyNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQordGVt
cGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEVCbGVu
ZE1vZGUgZSkKKyAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQoreworICAgIG1fcHJpbWl0
aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgc3dpdGNoIChlKSB7CisgICAgY2FzZSBCbGVu
ZE1vZGVOb3JtYWw6CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU5vcm1hbDsKKyAg
ICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgIAorICAgIGNhc2UgQmxlbmRNb2RlUGx1czogCisg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVBsdXM7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQmxlbmRNb2RlTXVsdGlwbHk6CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1
ZU11bHRpcGx5OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJsZW5kTW9kZVNjcmVlbjoKKyAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlU2NyZWVuOyAKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBCbGVuZE1vZGVPdmVybGF5OgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFs
dWVPdmVybGF5OyAKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCbGVuZE1vZGVEYXJrZW46Cisg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURhcmtlbjsgCisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQmxlbmRNb2RlTGlnaHRlbjoKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlTGlnaHRlbjsgCisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQmxlbmRNb2RlQ29sb3JEb2Rn
ZToKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29sb3JEb2RnZTsgCisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQmxlbmRNb2RlQ29sb3JCdXJuOgorICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVDb2xvckJ1cm47IAorICAgICAgICBicmVhazsKKyAgICBjYXNlIEJsZW5k
TW9kZUhhcmRMaWdodDoKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlSGFyZExpZ2h0
OyAKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCbGVuZE1vZGVTb2Z0TGlnaHQ6CisgICAgICAg
IG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVNvZnRMaWdodDsgCisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQmxlbmRNb2RlRGlmZmVyZW5jZToKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlRGlmZmVyZW5jZTsgCisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQmxlbmRNb2RlRXhjbHVz
aW9uOgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVFeGNsdXNpb247IAorICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEJsZW5kTW9kZUh1ZToKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9
IENTU1ZhbHVlSHVlOyAKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCbGVuZE1vZGVTYXR1cmF0
aW9uOgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVTYXR1cmF0aW9uOyAKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBCbGVuZE1vZGVDb2xvcjoKKyAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlQ29sb3I7IAorICAgICAgICBicmVhazsKKyAgICBjYXNlIEJsZW5kTW9kZUx1
bWlub3NpdHkgOiAgICAgICAgICAgICAgICAKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlTHVtaW5vc2l0eTsgCisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3RlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFQmxlbmRNb2RlKCkgY29uc3QK
KyAgICB7CisgICAgICAgIHN3aXRjaCAobV92YWx1ZS5pZGVudCkgeworICAgICAgICBjYXNlIENT
U1ZhbHVlTm9ybWFsOgorICAgICAgICAgICAgcmV0dXJuIEJsZW5kTW9kZU5vcm1hbDsKKyAgICAg
ICAgY2FzZSBDU1NWYWx1ZVBsdXM6IAorICAgICAgICAgICAgcmV0dXJuIEJsZW5kTW9kZVBsdXM7
CisgICAgICAgIGNhc2UgQ1NTVmFsdWVNdWx0aXBseToKKyAgICAgICAgICAgIHJldHVybiBCbGVu
ZE1vZGVNdWx0aXBseTsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZVNjcmVlbjoKKyAgICAgICAgICAg
IHJldHVybiBCbGVuZE1vZGVTY3JlZW47IAorICAgICAgICBjYXNlIENTU1ZhbHVlT3ZlcmxheToK
KyAgICAgICAgICAgIHJldHVybiBCbGVuZE1vZGVPdmVybGF5OyAKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIENTU1ZhbHVlRGFya2VuOgorICAgICAgICAgICAgcmV0dXJuIEJsZW5k
TW9kZURhcmtlbjsgCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZUxp
Z2h0ZW46CisgICAgICAgICAgICByZXR1cm4gQmxlbmRNb2RlTGlnaHRlbjsgCisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZUNvbG9yRG9kZ2U6CisgICAgICAgICAgICBy
ZXR1cm4gQmxlbmRNb2RlQ29sb3JEb2RnZTsgCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBDU1NWYWx1ZUNvbG9yQnVybjoKKyAgICAgICAgICAgIHJldHVybiBCbGVuZE1vZGVDb2xv
ckJ1cm47IAorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVIYXJkTGln
aHQ6CisgICAgICAgICAgICByZXR1cm4gQmxlbmRNb2RlSGFyZExpZ2h0OyAKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIENTU1ZhbHVlU29mdExpZ2h0OgorICAgICAgICAgICAgcmV0
dXJuIEJsZW5kTW9kZVNvZnRMaWdodDsgCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBDU1NWYWx1ZURpZmZlcmVuY2U6CisgICAgICAgICAgICByZXR1cm4gQmxlbmRNb2RlRGlmZmVy
ZW5jZTsgCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZUV4Y2x1c2lv
bjoKKyAgICAgICAgICAgIHJldHVybiBCbGVuZE1vZGVFeGNsdXNpb247IAorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVIdWU6CisgICAgICAgICAgICByZXR1cm4gQmxl
bmRNb2RlSHVlOyAKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1ZhbHVlU2F0
dXJhdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBCbGVuZE1vZGVTYXR1cmF0aW9uOyAKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1ZhbHVlQ29sb3I6CisgICAgICAgICAgICBy
ZXR1cm4gQmxlbmRNb2RlQ29sb3I7IAorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Q1NTVmFsdWVMdW1pbm9zaXR5IDogICAgICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4g
QmxlbmRNb2RlTHVtaW5vc2l0eTsgCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHJldHVybiBCbGVuZE1vZGVOb3JtYWw7CisgICAgICAgIH0KKyAgICB9
CisjZW5kaWYKKwogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1p
dGl2ZVZhbHVlKEVEaXNwbGF5IGUpCiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcAkocmV2aXNpb24gMTIzODMyKQorKysg
U291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjc5
LDYgKzY3OSw5IEBAIGJvb2wgQ1NTUHJvcGVydHk6OmlzSW5oZXJpdGVkUHJvcGVydHkoQ1MKICAg
ICBjYXNlIENTU1Byb3BlcnR5VmVjdG9yRWZmZWN0OgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRTdmdTaGFkb3c6CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQorICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRCbGVuZE1vZGU6CisjZW5kaWYKICNpZiBFTkFCTEUoREFTSEJP
QVJEX1NVUFBPUlQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdERhc2hib2FyZFJlZ2lvbjoK
ICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4JKHJldmlz
aW9uIDEyMzgzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCSh3
b3JraW5nIGNvcHkpCkBAIC00MDQsMyArNDA0LDcgQEAgei1pbmRleAogI2lmIGRlZmluZWQoRU5B
QkxFX09WRVJGTE9XX1NDUk9MTElORykgJiYgRU5BQkxFX09WRVJGTE9XX1NDUk9MTElORwogLXdl
YmtpdC1vdmVyZmxvdy1zY3JvbGxpbmcKICNlbmRpZgorI2lmIGRlZmluZWQoRU5BQkxFX0NTU19D
T01QT1NJVElORykgJiYgRU5BQkxFX0NTU19DT01QT1NJVElORworLXdlYmtpdC1ibGVuZC1tb2Rl
CisjZW5kaWYKKwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4JKHJl
dmlzaW9uIDEyMzgzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
CSh3b3JraW5nIGNvcHkpCkBAIC05NDIsMyArOTQyLDI0IEBAIGZyb20taW1hZ2UKIHNuYXAKICNl
bmRpZgogCisjaWYgZGVmaW5lZChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAmJiBFTkFCTEVfQ1NT
X0NPTVBPU0lUSU5HCisvLyAtd2Via2l0LWJsZW5kLW1vZGUKKy8vIG5vcm1hbAorcGx1cworbXVs
dGlwbHkKK3NjcmVlbgorLy8gb3ZlcmxheQorZGFya2VuCitsaWdodGVuCitjb2xvci1kb2RnZQor
Y29sb3ItYnVybgoraGFyZC1saWdodAorc29mdC1saWdodAorZGlmZmVyZW5jZQorZXhjbHVzaW9u
CitodWUKK3NhdHVyYXRpb24KK2NvbG9yCitsdW1pbm9zaXR5CisjZW5kaWYKKwpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAJKHJldmlzaW9uIDEyMzgzMikKKysrIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDg5LDYgKzIw
ODksOSBAQCBTdHlsZUJ1aWxkZXI6OlN0eWxlQnVpbGRlcigpCiAgICAgc2V0UHJvcGVydHlIYW5k
bGVyKENTU1Byb3BlcnR5V29yZFdyYXAsIEFwcGx5UHJvcGVydHlEZWZhdWx0PEVXb3JkV3JhcCwg
JlJlbmRlclN0eWxlOjp3b3JkV3JhcCwgRVdvcmRXcmFwLCAmUmVuZGVyU3R5bGU6OnNldFdvcmRX
cmFwLCBFV29yZFdyYXAsICZSZW5kZXJTdHlsZTo6aW5pdGlhbFdvcmRXcmFwPjo6Y3JlYXRlSGFu
ZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlaSW5kZXgsIEFwcGx5
UHJvcGVydHlBdXRvPGludCwgJlJlbmRlclN0eWxlOjp6SW5kZXgsICZSZW5kZXJTdHlsZTo6c2V0
WkluZGV4LCAmUmVuZGVyU3R5bGU6Omhhc0F1dG9aSW5kZXgsICZSZW5kZXJTdHlsZTo6c2V0SGFz
QXV0b1pJbmRleD46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENT
U1Byb3BlcnR5Wm9vbSwgQXBwbHlQcm9wZXJ0eVpvb206OmNyZWF0ZUhhbmRsZXIoKSk7CisjaWYg
RU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVy
dHlXZWJraXRCbGVuZE1vZGUsIEFwcGx5UHJvcGVydHlEZWZhdWx0PEVCbGVuZE1vZGUsICZSZW5k
ZXJTdHlsZTo6YmxlbmRNb2RlLCBFQmxlbmRNb2RlLCAmUmVuZGVyU3R5bGU6OnNldEJsZW5kTW9k
ZSwgRUJsZW5kTW9kZSwgJlJlbmRlclN0eWxlOjppbml0aWFsQmxlbmRNb2RlPjo6Y3JlYXRlSGFu
ZGxlcigpKTsKKyNlbmRpZgogfQogCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCShyZXZpc2lvbiAxMjM4MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzk3LDYgKzM5Nyw5IEBAIHB1YmxpYzoK
ICAgICBib29sIGlzUGFnaW5hdGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1BhZ2luYXRlZDsgfQog
CiAgICAgdm9pZCB1cGRhdGVUcmFuc2Zvcm0oKTsKKyNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5H
KQorICAgIHZvaWQgdXBkYXRlQmxlbmRNb2RlKCk7CisjZW5kaWYKIAogICAgIGNvbnN0IExheW91
dFNpemUmIHJlbGF0aXZlUG9zaXRpb25PZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3JlbGF0aXZl
T2Zmc2V0OyB9CiAKQEAgLTk5Miw2ICs5OTUsOSBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAg
IExheW91dFJlY3QgbV9ibG9ja1NlbGVjdGlvbkdhcHNCb3VuZHM7CiAKKyNpZiBFTkFCTEUoQ1NT
X0NPTVBPU0lUSU5HKQorICAgIEVCbGVuZE1vZGUgbV9ibGVuZE1vZGU7CisjZW5kaWYgCiAjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIE93blB0cjxSZW5kZXJMYXllckJhY2tp
bmc+IG1fYmFja2luZzsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAJKHJldmlzaW9uIDEyMzgzMikKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMDAsNiArMjAwLDkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OmNyZWF0ZVByaW1hcnlH
cgogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICB1cGRhdGVMYXllckZpbHRlcnMocmVuZGVy
ZXIoKS0+c3R5bGUoKSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQorICAg
IHVwZGF0ZUxheWVyQmxlbmRNb2RlKHJlbmRlcmVyKCktPnN0eWxlKCkpOworI2VuZGlmCiB9CiAK
IHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpkZXN0cm95R3JhcGhpY3NMYXllcnMoKQpAQCAtMjM4
LDYgKzI0MSwxMiBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlTGF5ZXJGaWx0CiB9
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCit2b2lkIFJlbmRlckxheWVy
QmFja2luZzo6dXBkYXRlTGF5ZXJCbGVuZE1vZGUoY29uc3QgUmVuZGVyU3R5bGUqKQoreworfQor
I2VuZGlmCisKIHN0YXRpYyBib29sIGhhc05vblplcm9UcmFuc2Zvcm1PcmlnaW4oY29uc3QgUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcikKIHsKICAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSByZW5kZXJl
ci0+c3R5bGUoKTsKQEAgLTQ0OCw2ICs0NTcsOSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6
dXBkYXRlR3JhcGhpY3NMCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIHVwZGF0ZUxheWVy
RmlsdGVycyhyZW5kZXJlcigpLT5zdHlsZSgpKTsKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfQ09N
UE9TSVRJTkcpCisgICAgdXBkYXRlTGF5ZXJCbGVuZE1vZGUocmVuZGVyZXIoKS0+c3R5bGUoKSk7
CisjZW5kaWYKICAgICAKICAgICBtX293bmluZ0xheWVyLT51cGRhdGVEZXNjZW5kYW50RGVwZW5k
ZW50RmxhZ3MoKTsKIApAQCAtODQwLDcgKzg1Miw3IEBAIGZsb2F0IFJlbmRlckxheWVyQmFja2lu
Zzo6Y29tcG9zaXRpbmdPcGEKIAogc3RhdGljIGJvb2wgaGFzQm94RGVjb3JhdGlvbnMoY29uc3Qg
UmVuZGVyU3R5bGUqIHN0eWxlKQogewotICAgIHJldHVybiBzdHlsZS0+aGFzQm9yZGVyKCkgfHwg
c3R5bGUtPmhhc0JvcmRlclJhZGl1cygpIHx8IHN0eWxlLT5oYXNPdXRsaW5lKCkgfHwgc3R5bGUt
Pmhhc0FwcGVhcmFuY2UoKSB8fCBzdHlsZS0+Ym94U2hhZG93KCkgfHwgc3R5bGUtPmhhc0ZpbHRl
cigpOworICAgIHJldHVybiBzdHlsZS0+aGFzQm9yZGVyKCkgfHwgc3R5bGUtPmhhc0JvcmRlclJh
ZGl1cygpIHx8IHN0eWxlLT5oYXNPdXRsaW5lKCkgfHwgc3R5bGUtPmhhc0FwcGVhcmFuY2UoKSB8
fCBzdHlsZS0+Ym94U2hhZG93KCkgfHwgc3R5bGUtPmhhc0ZpbHRlcigpIHx8IHN0eWxlLT5oYXNC
bGVuZE1vZGUoKTsKIH0KIAogc3RhdGljIGJvb2wgaGFzQm94RGVjb3JhdGlvbnNPckJhY2tncm91
bmQoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKQEAgLTExNjksNiArMTE4MSwxMiBAQCB2
b2lkIFJlbmRlckxheWVyQmFja2luZzo6c2V0UmVxdWlyZXNPd25CCiAgICAgY29tcG9zaXRvcigp
LT5yZXBhaW50SW5Db21wb3NpdGVkQW5jZXN0b3IobV9vd25pbmdMYXllciwgY29tcG9zaXRlZEJv
dW5kcygpKTsKIH0KIAorI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCit2b2lkIFJlbmRlckxh
eWVyQmFja2luZzo6c2V0QmxlbmRNb2RlKEVCbGVuZE1vZGUpCit7Cit9CisjZW5kaWYKKwogdm9p
ZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRlbnRzTmVlZERpc3BsYXkoKQogewogICAgIEFT
U0VSVCghcGFpbnRzSW50b0NvbXBvc2l0ZWRBbmNlc3RvcigpKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgJKHJldmlzaW9uIDEyMzgzMikK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTY1LDYgKzE2NSwxMCBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgbmFtZUZv
ckxheWVyKCkgY29uc3Q7CiAgICAgCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICB2
b2lkIHNldEJsZW5kTW9kZShFQmxlbmRNb2RlKTsKKyNlbmRpZgorICAgIAogcHJpdmF0ZToKICAg
ICB2b2lkIGNyZWF0ZVByaW1hcnlHcmFwaGljc0xheWVyKCk7CiAgICAgdm9pZCBkZXN0cm95R3Jh
cGhpY3NMYXllcnMoKTsKQEAgLTE5Niw2ICsyMDAsOSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKICAgICB2b2lkIHVwZGF0ZUxheWVyRmlsdGVycyhjb25zdCBSZW5kZXJTdHls
ZSopOwogI2VuZGlmCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICB2b2lkIHVwZGF0
ZUxheWVyQmxlbmRNb2RlKGNvbnN0IFJlbmRlclN0eWxlKik7CisjZW5kaWYKIAogICAgIC8vIFJl
dHVybiB0aGUgb3BhY2l0eSB2YWx1ZSB0aGF0IHRoaXMgbGF5ZXIgc2hvdWxkIHVzZSBmb3IgY29t
cG9zaXRpbmcuCiAgICAgZmxvYXQgY29tcG9zaXRpbmdPcGFjaXR5KGZsb2F0IHJlbmRlcmVyT3Bh
Y2l0eSkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5jcHAJKHJldmlzaW9uIDEyMzgzMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwNCw2ICs2MDQs
MTEgQEAgU3R5bGVEaWZmZXJlbmNlIFJlbmRlclN0eWxlOjpkaWZmKGNvbnN0IAogICAgICAgICAg
ICAgICAgICB8fCB2aXN1YWwtPmNsaXAgIT0gb3RoZXItPnZpc3VhbC0+Y2xpcCB8fCB2aXN1YWwt
Pmhhc0NsaXAgIT0gb3RoZXItPnZpc3VhbC0+aGFzQ2xpcCkKICAgICAgICAgICAgIHJldHVybiBT
dHlsZURpZmZlcmVuY2VSZXBhaW50TGF5ZXI7CiAgICAgfQorICAgIAorI2lmIEVOQUJMRShDU1Nf
Q09NUE9TSVRJTkcpCisgICAgaWYgKHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2VmZmVjdGl2ZUJs
ZW5kTW9kZSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZWZmZWN0aXZlQmxlbmRN
b2RlKQorICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlUmVwYWludExheWVyOworI2VuZGlm
CiAKICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERhdGEtPm9wYWNpdHkgIT0gb3RoZXItPnJhcmVO
b25Jbmhlcml0ZWREYXRhLT5vcGFjaXR5KSB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmgJKHJldmlzaW9uIDEyMzgzMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05ODUsNiArOTg1LDEzIEBAIHB1YmxpYzoK
ICAgICBib29sIGhhc0ZpbHRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCisgICAgRUJsZW5kTW9kZSBibGVuZE1vZGUoKSBj
b25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFQmxlbmRNb2RlPihyYXJlTm9uSW5oZXJpdGVkRGF0
YS0+bV9lZmZlY3RpdmVCbGVuZE1vZGUpOyB9CisgICAgdm9pZCBzZXRCbGVuZE1vZGUoRUJsZW5k
TW9kZSB2KSB7IHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2VmZmVjdGl2ZUJsZW5k
TW9kZSA9IHY7IH0KKyAgICBib29sIGhhc0JsZW5kTW9kZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRp
Y19jYXN0PEVCbGVuZE1vZGU+KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2VmZmVjdGl2ZUJsZW5k
TW9kZSkgPT0gQmxlbmRNb2RlTm9ybWFsOyB9CisjZWxzZQorICAgIGJvb2wgaGFzQmxlbmRNb2Rl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgogI2lmIFVTRShSVExfU0NST0xMQkFS
KQogICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTG9naWNhbExl
ZnQoKSBjb25zdCB7IHJldHVybiAhaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpICYmIGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCk7IH0KICNlbHNlCkBAIC0xNzIyLDYgKzE3MjksOSBAQCBwdWJsaWM6
CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIHN0YXRpYyBjb25zdCBGaWx0ZXJPcGVyYXRp
b25zJiBpbml0aWFsRmlsdGVyKCkgeyBERUZJTkVfU1RBVElDX0xPQ0FMKEZpbHRlck9wZXJhdGlv
bnMsIG9wcywgKCkpOyByZXR1cm4gb3BzOyB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0NPTVBP
U0lUSU5HKQorICAgIHN0YXRpYyBFQmxlbmRNb2RlIGluaXRpYWxCbGVuZE1vZGUoKSB7IHJldHVy
biBCbGVuZE1vZGVOb3JtYWw7IH0KKyNlbmRpZgogcHJpdmF0ZToKICAgICB2b2lkIHNldFZpc2l0
ZWRMaW5rQ29sb3IoY29uc3QgQ29sb3ImIHYpIHsgU0VUX1ZBUihpbmhlcml0ZWQsIHZpc2l0ZWRM
aW5rQ29sb3IsIHYpIH0KICAgICB2b2lkIHNldFZpc2l0ZWRMaW5rQmFja2dyb3VuZENvbG9yKGNv
bnN0IENvbG9yJiB2KSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEsIG1fdmlzaXRlZExp
bmtCYWNrZ3JvdW5kQ29sb3IsIHYpIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCShyZXZpc2lvbiAxMjM4MzIp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMu
aAkod29ya2luZyBjb3B5KQpAQCAtNDcwLDYgKzQ3MCw5IEBAIGVudW0gV3JhcEZsb3cgeyBXcmFw
Rmxvd0F1dG8sIFdyYXBGbG93Qm8KIAogZW51bSBXcmFwVGhyb3VnaCB7IFdyYXBUaHJvdWdoV3Jh
cCwgV3JhcFRocm91Z2hOb25lIH07CiAKKyNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQorZW51
bSBFQmxlbmRNb2RlIHsgQmxlbmRNb2RlTm9ybWFsID0gMSwgQmxlbmRNb2RlUGx1cywgQmxlbmRN
b2RlTXVsdGlwbHksIEJsZW5kTW9kZVNjcmVlbiwgQmxlbmRNb2RlT3ZlcmxheSwgQmxlbmRNb2Rl
RGFya2VuLCBCbGVuZE1vZGVMaWdodGVuLCBCbGVuZE1vZGVDb2xvckRvZGdlLCBCbGVuZE1vZGVD
b2xvckJ1cm4sIEJsZW5kTW9kZUhhcmRMaWdodCwgQmxlbmRNb2RlU29mdExpZ2h0LCBCbGVuZE1v
ZGVEaWZmZXJlbmNlLCBCbGVuZE1vZGVFeGNsdXNpb24sIEJsZW5kTW9kZUh1ZSwgQmxlbmRNb2Rl
U2F0dXJhdGlvbiwgQmxlbmRNb2RlQ29sb3IsIEJsZW5kTW9kZUx1bWlub3NpdHkgfTsKKyNlbmRp
ZgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUmVuZGVyU3R5bGVDb25zdGFu
dHNfaApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAkocmV2aXNpb24gMTIzODMyKQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw2ICs3Nyw5IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGE6OlN0eWxlUmFyZU5vbkkKICAgICAsIG1fcnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9u
KGZhbHNlKQogI2VuZGlmCiAgICAgLCBtX2hhc0FzcGVjdFJhdGlvKGZhbHNlKQorI2lmIEVOQUJM
RShDU1NfQ09NUE9TSVRJTkcpCisgICAgLCBtX2VmZmVjdGl2ZUJsZW5kTW9kZShSZW5kZXJTdHls
ZTo6aW5pdGlhbEJsZW5kTW9kZSgpKQorI2VuZGlmCiB7CiAgICAgbV9tYXNrQm94SW1hZ2Uuc2V0
TWFza0RlZmF1bHRzKCk7CiB9CkBAIC0xNDgsNiArMTUxLDkgQEAgU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YTo6U3R5bGVSYXJlTm9uSQogICAgICwgbV9ydW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRp
b24oby5tX3J1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbikKICNlbmRpZgogICAgICwgbV9oYXNB
c3BlY3RSYXRpbyhvLm1faGFzQXNwZWN0UmF0aW8pCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElO
RykKKyAgICAsIG1fZWZmZWN0aXZlQmxlbmRNb2RlKG8ubV9lZmZlY3RpdmVCbGVuZE1vZGUpCisj
ZW5kaWYKIHsKIH0KIApAQCAtMjI0LDYgKzIzMCw5IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YTo6b3BlcmF0b3IKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
ICAgICYmICFtX3J1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbiAmJiAhby5tX3J1bm5pbmdBY2Nl
bGVyYXRlZEFuaW1hdGlvbgogI2VuZGlmCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAg
ICAgICAgJiYgbV9lZmZlY3RpdmVCbGVuZE1vZGUgPT0gby5tX2VmZmVjdGl2ZUJsZW5kTW9kZQor
I2VuZGlmCiAgICAgICAgICYmIG1faGFzQXNwZWN0UmF0aW8gPT0gby5tX2hhc0FzcGVjdFJhdGlv
OwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgJKHJldmlzaW9uIDEyMzgzMikKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE4MCw2ICsxODAsOSBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQg
bV9ydW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb24gOiAxOwogI2VuZGlmCiAgICAgdW5zaWduZWQg
bV9oYXNBc3BlY3RSYXRpbyA6IDE7IC8vIFdoZXRoZXIgb3Igbm90IGFuIGFzcGVjdCByYXRpbyBo
YXMgYmVlbiBzcGVjaWZpZWQuCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICB1bnNp
Z25lZCBtX2VmZmVjdGl2ZUJsZW5kTW9kZTogNTsgLy8gRUJsZW5kTW9kZQorI2VuZGlmCiAKIHBy
aXZhdGU6CiAgICAgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpOwpJbmRleDogU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwko
cmV2aXNpb24gMTIzODMyKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDctMjYgIFJpayBDYWJhbmllciAgPGNhYmFuaWVy
QGFkb2JlLmNvbT4KKworICAgICAgICBBZGRlZCBkZWZpbmUgZm9yIENTUyBjb21wb3NpdGluZyBh
bmQgYmxlbmRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkxOTA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvZiB0aGUgY2hhbmdlIHN1Y2ggYXMgYXBwcm9hY2gs
IHJhdGlvbmFsZS4gUGxlYXNlIGFkZCBwZXItZnVuY3Rpb24gZGVzY3JpcHRpb25zIGJlbG93IChP
T1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZzoKKwogMjAxMi0wNy0yNiAgWmVubyBBbGJpc3NlciAgPHplbm9Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkIFF0IGJ1aWxkZml4IGFmdGVyIHIxMjM3ODYuCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMjM4MzIpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wNy0yNiAgUmlrIENhYmFuaWVy
ICA8Y2FiYW5pZXJAYWRvYmUuY29tPgorCisgICAgICAgIEFkZGVkIGRlZmluZSBmb3IgQ1NTIGNv
bXBvc2l0aW5nIGFuZCBibGVuZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTE5MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRoZSBjaGFuZ2Ugc3VjaCBh
cyBhcHByb2FjaCwgcmF0aW9uYWxlLiBQbGVhc2UgYWRkIHBlci1mdW5jdGlvbiBkZXNjcmlwdGlv
bnMgYmVsb3cgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnOgorCiAyMDEyLTA3LTI1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBzZXR0aW5nIHRvIGVuYWJsZSBhbmQgZGlzYWJsZSBkaWFnbm9z
dGljIGxvZ2dpbmcuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>154827</attachid>
            <date>2012-07-26 21:02:02 -0700</date>
            <delta_ts>2012-07-27 10:22:51 -0700</delta_ts>
            <desc>fixed previous patch so it builds correctly. Define is not turned on</desc>
            <filename>parse_complete</filename>
            <type>text/plain</type>
            <size>21026</size>
            <attacher name="Rik Cabanier">cabanier</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMzgzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBACisyMDEyLTA3LTI2ICBSaWsgQ2Fi
YW5pZXIgIDxjYWJhbmllckBhZG9iZS5jb20+CisKKyAgICAgICAgQWRkZWQgZGVmaW5lIGZvciBD
U1MgY29tcG9zaXRpbmcgYW5kIGJsZW5kaW5nCisgICAgICAgIEFkZGVkIGNvZGUgc28gdGhlIGJs
ZW5kLW1vZGUgQ1NTIHByb3BlcnR5IGlzIHBhcnNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE5MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRoZSBjaGFu
Z2Ugc3VjaCBhcyBhcHByb2FjaCwgcmF0aW9uYWxlLiBQbGVhc2UgYWRkIHBlci1mdW5jdGlvbiBk
ZXNjcmlwdGlvbnMgYmVsb3cgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMh
KS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgor
ICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246
OmdldFByb3BlcnR5Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCbGVuZE1vZGUpOgorICAgICAg
ICAqIGNzcy9DU1NQcm9wZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eTo6
aXNJbmhlcml0ZWRQcm9wZXJ0eSk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46
CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL1N0eWxl
QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXI6OlN0eWxlQnVpbGRl
cik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjpSZW5kZXJMYXllcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVCbGVuZE1vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OmVuc3VyZUJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnNob3VsZEJlTm9ybWFsRmxvd09ubHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnN0eWxlQ2hhbmdlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
Lmg6CisgICAgICAgIChSZW5kZXJMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OmNy
ZWF0ZVByaW1hcnlHcmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVMYXllckJsZW5kTW9kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9t
ZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpoYXNCb3hEZWNvcmF0aW9ucyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnNldEJsZW5kTW9kZSk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJCYWNraW5n
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3R5bGU6OmRpZmYpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0
YW50cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKFN0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGEpOgorCiAyMDEyLTA3LTI2ICBBbmlzaCBCaGF5YW5pICA8YW5pc2guYmhheWFuaUBnbWFp
bC5jb20+CiAKICAgICAgICAgRGUtdmlydHVhbGl6ZSBXcmFwU2hhcGUgY2xhc3NlcwpJbmRleDog
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAJKHJldmlzaW9uIDEyMzgzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDYsNiArMjA2LDkgQEAgc3Rh
dGljIGNvbnN0IENTU1Byb3BlcnR5SUQgY29tcHV0ZWRQcm9wZQogICAgIENTU1Byb3BlcnR5V2Vi
a2l0QmFja2dyb3VuZENvbXBvc2l0ZSwKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEJhY2tncm91bmRP
cmlnaW4sCiAgICAgQ1NTUHJvcGVydHlXZWJraXRCYWNrZ3JvdW5kU2l6ZSwKKyNpZiBFTkFCTEUo
Q1NTX0NPTVBPU0lUSU5HKQorICAgIENTU1Byb3BlcnR5V2Via2l0QmxlbmRNb2RlLAorI2VuZGlm
CiAgICAgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJGaXQsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRC
b3JkZXJIb3Jpem9udGFsU3BhY2luZywKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckltYWdl
LApAQCAtMjM5MCw2ICsyMzkzLDEwIEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVk
U3R5bGVEZWMKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZpbHRlcjoKICAgICAgICAg
ICAgIHJldHVybiB2YWx1ZUZvckZpbHRlcihzdHlsZS5nZXQoKSk7CiAjZW5kaWYKKyNpZiBFTkFC
TEUoQ1NTX0NPTVBPU0lUSU5HKQorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QmxlbmRN
b2RlOiAKKyAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShzdHls
ZS0+YmxlbmRNb2RlKCkpOworI2VuZGlmCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3Jv
dW5kOgogICAgICAgICAgICAgcmV0dXJuIGdldEJhY2tncm91bmRTaG9ydGhhbmRWYWx1ZSgpOwog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyOiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAkocmV2aXNpb24gMTIzODMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNjgsNiArMjI2OCwxMSBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlECiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAj
ZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQorICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRCbGVuZE1vZGU6CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CisgICAg
ICAgIGJyZWFrOworI2VuZGlmCiAjaWYgRU5BQkxFKENTUzNfRkxFWEJPWCkKICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0RmxleDogewogICAgICAgICBTaG9ydGhhbmRTY29wZSBzY29wZSh0aGlz
LCBwcm9wSWQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFw
cGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWVNYXBwaW5ncy5oCShyZXZpc2lvbiAxMjM4MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCSh3b3JraW5nIGNvcHkpCkBAIC00LDYgKzQsNyBAQAog
ICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkg
SmVmZiBTY2hpbGxlciA8Y29kZWRyZWFkQGdtYWlsLmNvbT4KICAqIENvcHlyaWdodCAoQykgUmVz
ZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoYykgMjAxMiBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTA4NCw2ICsxMDg1
LDEyMiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlCiAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PEVDdXJzb3I+KG1fdmFsdWUuaWRlbnQgLSBDU1NWYWx1ZUF1dG8pOwog
fQogCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKK3RlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFQmxlbmRNb2RlIGUpCisgICAgOiBDU1NW
YWx1ZShQcmltaXRpdmVDbGFzcykKK3sKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lE
RU5UOworICAgIHN3aXRjaCAoZSkgeworICAgIGNhc2UgQmxlbmRNb2RlTm9ybWFsOgorICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIGJyZWFrOyAgICAgICAg
ICAgICAgICAKKyAgICBjYXNlIEJsZW5kTW9kZVBsdXM6IAorICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVQbHVzOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJsZW5kTW9kZU11bHRp
cGx5OgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNdWx0aXBseTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBCbGVuZE1vZGVTY3JlZW46CisgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZVNjcmVlbjsgCisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQmxlbmRNb2RlT3Zl
cmxheToKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3ZlcmxheTsgCisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQmxlbmRNb2RlRGFya2VuOgorICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVEYXJrZW47IAorICAgICAgICBicmVhazsKKyAgICBjYXNlIEJsZW5kTW9kZUxp
Z2h0ZW46CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxpZ2h0ZW47IAorICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEJsZW5kTW9kZUNvbG9yRG9kZ2U6CisgICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZUNvbG9yRG9kZ2U7IAorICAgICAgICBicmVhazsKKyAgICBjYXNlIEJs
ZW5kTW9kZUNvbG9yQnVybjoKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29sb3JC
dXJuOyAKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCbGVuZE1vZGVIYXJkTGlnaHQ6CisgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUhhcmRMaWdodDsgCisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQmxlbmRNb2RlU29mdExpZ2h0OgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVTb2Z0TGlnaHQ7IAorICAgICAgICBicmVhazsKKyAgICBjYXNlIEJsZW5kTW9kZURpZmZl
cmVuY2U6CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURpZmZlcmVuY2U7IAorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEJsZW5kTW9kZUV4Y2x1c2lvbjoKKyAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlRXhjbHVzaW9uOyAKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBC
bGVuZE1vZGVIdWU6CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUh1ZTsgCisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQmxlbmRNb2RlU2F0dXJhdGlvbjoKKyAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlU2F0dXJhdGlvbjsgCisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QmxlbmRNb2RlQ29sb3I6CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNvbG9yOyAK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCbGVuZE1vZGVMdW1pbm9zaXR5IDogICAgICAgICAg
ICAgICAgCisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUx1bWlub3NpdHk7IAorICAg
ICAgICAgICAgYnJlYWs7CisgICAgfQorfQorCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgRUJsZW5kTW9kZSgpIGNvbnN0CisgICAgeworICAgICAgICBzd2l0
Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKKyAgICAg
ICAgICAgIHJldHVybiBCbGVuZE1vZGVOb3JtYWw7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVQbHVz
OiAKKyAgICAgICAgICAgIHJldHVybiBCbGVuZE1vZGVQbHVzOworICAgICAgICBjYXNlIENTU1Zh
bHVlTXVsdGlwbHk6CisgICAgICAgICAgICByZXR1cm4gQmxlbmRNb2RlTXVsdGlwbHk7CisgICAg
ICAgIGNhc2UgQ1NTVmFsdWVTY3JlZW46CisgICAgICAgICAgICByZXR1cm4gQmxlbmRNb2RlU2Ny
ZWVuOyAKKyAgICAgICAgY2FzZSBDU1NWYWx1ZU92ZXJsYXk6CisgICAgICAgICAgICByZXR1cm4g
QmxlbmRNb2RlT3ZlcmxheTsgCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NW
YWx1ZURhcmtlbjoKKyAgICAgICAgICAgIHJldHVybiBCbGVuZE1vZGVEYXJrZW47IAorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVMaWdodGVuOgorICAgICAgICAgICAg
cmV0dXJuIEJsZW5kTW9kZUxpZ2h0ZW47IAorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQ1NTVmFsdWVDb2xvckRvZGdlOgorICAgICAgICAgICAgcmV0dXJuIEJsZW5kTW9kZUNvbG9y
RG9kZ2U7IAorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVDb2xvckJ1
cm46CisgICAgICAgICAgICByZXR1cm4gQmxlbmRNb2RlQ29sb3JCdXJuOyAKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIENTU1ZhbHVlSGFyZExpZ2h0OgorICAgICAgICAgICAgcmV0
dXJuIEJsZW5kTW9kZUhhcmRMaWdodDsgCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBDU1NWYWx1ZVNvZnRMaWdodDoKKyAgICAgICAgICAgIHJldHVybiBCbGVuZE1vZGVTb2Z0TGln
aHQ7IAorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVEaWZmZXJlbmNl
OgorICAgICAgICAgICAgcmV0dXJuIEJsZW5kTW9kZURpZmZlcmVuY2U7IAorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVFeGNsdXNpb246CisgICAgICAgICAgICByZXR1
cm4gQmxlbmRNb2RlRXhjbHVzaW9uOyAKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IENTU1ZhbHVlSHVlOgorICAgICAgICAgICAgcmV0dXJuIEJsZW5kTW9kZUh1ZTsgCisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZVNhdHVyYXRpb246CisgICAgICAgICAg
ICByZXR1cm4gQmxlbmRNb2RlU2F0dXJhdGlvbjsgCisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBDU1NWYWx1ZUNvbG9yOgorICAgICAgICAgICAgcmV0dXJuIEJsZW5kTW9kZUNvbG9y
OyAKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1ZhbHVlTHVtaW5vc2l0eSA6
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIEJsZW5kTW9kZUx1bWlub3NpdHk7
IAorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1
cm4gQmxlbmRNb2RlTm9ybWFsOworICAgICAgICB9CisgICAgfQorI2VuZGlmCisKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFRGlzcGxheSBl
KQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcm9wZXJ0eS5jcHAJKHJldmlzaW9uIDEyMzgzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcm9wZXJ0eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3OSw2ICs2NzksOSBAQCBib29sIENT
U1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KENTCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVZl
Y3RvckVmZmVjdDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0U3ZnU2hhZG93OgogI2VuZGlm
CisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
QmxlbmRNb2RlOgorI2VuZGlmCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXREYXNoYm9hcmRSZWdpb246CiAjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCShyZXZpc2lvbiAxMjM4MzIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNDA0
LDMgKzQwNCw3IEBAIHotaW5kZXgKICNpZiBkZWZpbmVkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJ
TkcpICYmIEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkcKIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xs
aW5nCiAjZW5kaWYKKyNpZiBkZWZpbmVkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICYmIEVOQUJM
RV9DU1NfQ09NUE9TSVRJTkcKKy13ZWJraXQtYmxlbmQtbW9kZQorI2VuZGlmCisKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCShyZXZpc2lvbiAxMjM4MzIpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgkod29ya2luZyBjb3B5KQpAQCAt
OTQyLDMgKzk0MiwyNCBAQCBmcm9tLWltYWdlCiBzbmFwCiAjZW5kaWYKIAorI2lmIGRlZmluZWQo
RU5BQkxFX0NTU19DT01QT1NJVElORykgJiYgRU5BQkxFX0NTU19DT01QT1NJVElORworLy8gLXdl
YmtpdC1ibGVuZC1tb2RlCisvLyBub3JtYWwKK3BsdXMKK211bHRpcGx5CitzY3JlZW4KKy8vIG92
ZXJsYXkKK2RhcmtlbgorbGlnaHRlbgorY29sb3ItZG9kZ2UKK2NvbG9yLWJ1cm4KK2hhcmQtbGln
aHQKK3NvZnQtbGlnaHQKK2RpZmZlcmVuY2UKK2V4Y2x1c2lvbgoraHVlCitzYXR1cmF0aW9uCitj
b2xvcgorbHVtaW5vc2l0eQorI2VuZGlmCisKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZUJ1aWxkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxk
ZXIuY3BwCShyZXZpc2lvbiAxMjM4MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWls
ZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA4OSw2ICsyMDg5LDkgQEAgU3R5bGVCdWlsZGVy
OjpTdHlsZUJ1aWxkZXIoKQogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdvcmRX
cmFwLCBBcHBseVByb3BlcnR5RGVmYXVsdDxFV29yZFdyYXAsICZSZW5kZXJTdHlsZTo6d29yZFdy
YXAsIEVXb3JkV3JhcCwgJlJlbmRlclN0eWxlOjpzZXRXb3JkV3JhcCwgRVdvcmRXcmFwLCAmUmVu
ZGVyU3R5bGU6OmluaXRpYWxXb3JkV3JhcD46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJv
cGVydHlIYW5kbGVyKENTU1Byb3BlcnR5WkluZGV4LCBBcHBseVByb3BlcnR5QXV0bzxpbnQsICZS
ZW5kZXJTdHlsZTo6ekluZGV4LCAmUmVuZGVyU3R5bGU6OnNldFpJbmRleCwgJlJlbmRlclN0eWxl
OjpoYXNBdXRvWkluZGV4LCAmUmVuZGVyU3R5bGU6OnNldEhhc0F1dG9aSW5kZXg+OjpjcmVhdGVI
YW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVpvb20sIEFwcGx5
UHJvcGVydHlab29tOjpjcmVhdGVIYW5kbGVyKCkpOworI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJ
TkcpCisgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0QmxlbmRNb2RlLCBB
cHBseVByb3BlcnR5RGVmYXVsdDxFQmxlbmRNb2RlLCAmUmVuZGVyU3R5bGU6OmJsZW5kTW9kZSwg
RUJsZW5kTW9kZSwgJlJlbmRlclN0eWxlOjpzZXRCbGVuZE1vZGUsIEVCbGVuZE1vZGUsICZSZW5k
ZXJTdHlsZTo6aW5pdGlhbEJsZW5kTW9kZT46OmNyZWF0ZUhhbmRsZXIoKSk7CisjZW5kaWYKIH0K
IAogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAkocmV2aXNpb24g
MTIzODMyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM5Nyw2ICszOTcsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1BhZ2luYXRl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNQYWdpbmF0ZWQ7IH0KIAogICAgIHZvaWQgdXBkYXRlVHJh
bnNmb3JtKCk7CisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICB2b2lkIHVwZGF0ZUJs
ZW5kTW9kZSgpOworI2VuZGlmCiAKICAgICBjb25zdCBMYXlvdXRTaXplJiByZWxhdGl2ZVBvc2l0
aW9uT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9yZWxhdGl2ZU9mZnNldDsgfQogCkBAIC05OTIs
NiArOTk1LDkgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBMYXlvdXRSZWN0IG1fYmxvY2tT
ZWxlY3Rpb25HYXBzQm91bmRzOwogCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICBF
QmxlbmRNb2RlIG1fYmxlbmRNb2RlOworI2VuZGlmIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICBPd25QdHI8UmVuZGVyTGF5ZXJCYWNraW5nPiBtX2JhY2tpbmc7CiAjZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCShyZXZpc2lvbiAxMjM4MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDYgKzIwMCw5IEBAIHZv
aWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVQcmltYXJ5R3IKICNpZiBFTkFCTEUoQ1NTX0ZJ
TFRFUlMpCiAgICAgdXBkYXRlTGF5ZXJGaWx0ZXJzKHJlbmRlcmVyKCktPnN0eWxlKCkpOwogI2Vu
ZGlmCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICB1cGRhdGVMYXllckJsZW5kTW9k
ZShyZW5kZXJlcigpLT5zdHlsZSgpKTsKKyNlbmRpZgogfQogCiB2b2lkIFJlbmRlckxheWVyQmFj
a2luZzo6ZGVzdHJveUdyYXBoaWNzTGF5ZXJzKCkKQEAgLTIzOCw2ICsyNDEsMTIgQEAgdm9pZCBS
ZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUxheWVyRmlsdAogfQogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoQ1NTX0NPTVBPU0lUSU5HKQordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUxheWVy
QmxlbmRNb2RlKGNvbnN0IFJlbmRlclN0eWxlKikKK3sKK30KKyNlbmRpZgorCiBzdGF0aWMgYm9v
bCBoYXNOb25aZXJvVHJhbnNmb3JtT3JpZ2luKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIp
CiB7CiAgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gcmVuZGVyZXItPnN0eWxlKCk7CkBAIC00NDgs
NiArNDU3LDkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTAogI2lm
IEVOQUJMRShDU1NfRklMVEVSUykKICAgICB1cGRhdGVMYXllckZpbHRlcnMocmVuZGVyZXIoKS0+
c3R5bGUoKSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQorICAgIHVwZGF0
ZUxheWVyQmxlbmRNb2RlKHJlbmRlcmVyKCktPnN0eWxlKCkpOworI2VuZGlmCiAgICAgCiAgICAg
bV9vd25pbmdMYXllci0+dXBkYXRlRGVzY2VuZGFudERlcGVuZGVudEZsYWdzKCk7CiAKQEAgLTg0
MCw3ICs4NTIsNyBAQCBmbG9hdCBSZW5kZXJMYXllckJhY2tpbmc6OmNvbXBvc2l0aW5nT3BhCiAK
IHN0YXRpYyBib29sIGhhc0JveERlY29yYXRpb25zKGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkK
IHsKLSAgICByZXR1cm4gc3R5bGUtPmhhc0JvcmRlcigpIHx8IHN0eWxlLT5oYXNCb3JkZXJSYWRp
dXMoKSB8fCBzdHlsZS0+aGFzT3V0bGluZSgpIHx8IHN0eWxlLT5oYXNBcHBlYXJhbmNlKCkgfHwg
c3R5bGUtPmJveFNoYWRvdygpIHx8IHN0eWxlLT5oYXNGaWx0ZXIoKTsKKyAgICByZXR1cm4gc3R5
bGUtPmhhc0JvcmRlcigpIHx8IHN0eWxlLT5oYXNCb3JkZXJSYWRpdXMoKSB8fCBzdHlsZS0+aGFz
T3V0bGluZSgpIHx8IHN0eWxlLT5oYXNBcHBlYXJhbmNlKCkgfHwgc3R5bGUtPmJveFNoYWRvdygp
IHx8IHN0eWxlLT5oYXNGaWx0ZXIoKSB8fCBzdHlsZS0+aGFzQmxlbmRNb2RlKCk7CiB9CiAKIHN0
YXRpYyBib29sIGhhc0JveERlY29yYXRpb25zT3JCYWNrZ3JvdW5kKGNvbnN0IFJlbmRlck9iamVj
dCogcmVuZGVyZXIpCkBAIC0xMTY5LDYgKzExODEsMTIgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tp
bmc6OnNldFJlcXVpcmVzT3duQgogICAgIGNvbXBvc2l0b3IoKS0+cmVwYWludEluQ29tcG9zaXRl
ZEFuY2VzdG9yKG1fb3duaW5nTGF5ZXIsIGNvbXBvc2l0ZWRCb3VuZHMoKSk7CiB9CiAKKyNpZiBF
TkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldEJsZW5k
TW9kZShFQmxlbmRNb2RlKQoreworfQorI2VuZGlmCisKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5n
OjpzZXRDb250ZW50c05lZWREaXNwbGF5KCkKIHsKICAgICBBU1NFUlQoIXBhaW50c0ludG9Db21w
b3NpdGVkQW5jZXN0b3IoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5oCShyZXZpc2lvbiAxMjM4MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2NSw2ICsx
NjUsMTAgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIG5hbWVGb3JMYXllcigpIGNvbnN0OwogICAg
IAorI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCisgICAgdm9pZCBzZXRCbGVuZE1vZGUoRUJs
ZW5kTW9kZSk7CisjZW5kaWYKKyAgICAKIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVQcmltYXJ5
R3JhcGhpY3NMYXllcigpOwogICAgIHZvaWQgZGVzdHJveUdyYXBoaWNzTGF5ZXJzKCk7CkBAIC0x
OTYsNiArMjAwLDkgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdm9p
ZCB1cGRhdGVMYXllckZpbHRlcnMoY29uc3QgUmVuZGVyU3R5bGUqKTsKICNlbmRpZgorI2lmIEVO
QUJMRShDU1NfQ09NUE9TSVRJTkcpCisgICAgdm9pZCB1cGRhdGVMYXllckJsZW5kTW9kZShjb25z
dCBSZW5kZXJTdHlsZSopOworI2VuZGlmCiAKICAgICAvLyBSZXR1cm4gdGhlIG9wYWNpdHkgdmFs
dWUgdGhhdCB0aGlzIGxheWVyIHNob3VsZCB1c2UgZm9yIGNvbXBvc2l0aW5nLgogICAgIGZsb2F0
IGNvbXBvc2l0aW5nT3BhY2l0eShmbG9hdCByZW5kZXJlck9wYWNpdHkpIGNvbnN0OwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCShyZXZp
c2lvbiAxMjM4MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MDQsNiArNjA0LDExIEBAIFN0eWxlRGlmZmVyZW5j
ZSBSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCAKICAgICAgICAgICAgICAgICAgfHwgdmlzdWFsLT5j
bGlwICE9IG90aGVyLT52aXN1YWwtPmNsaXAgfHwgdmlzdWFsLT5oYXNDbGlwICE9IG90aGVyLT52
aXN1YWwtPmhhc0NsaXApCiAgICAgICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlUmVwYWlu
dExheWVyOwogICAgIH0KKyAgICAKKyNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQorICAgIGlm
IChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9lZmZlY3RpdmVCbGVuZE1vZGUgIT0gb3RoZXItPnJh
cmVOb25Jbmhlcml0ZWREYXRhLT5tX2VmZmVjdGl2ZUJsZW5kTW9kZSkKKyAgICAgICAgcmV0dXJu
IFN0eWxlRGlmZmVyZW5jZVJlcGFpbnRMYXllcjsKKyNlbmRpZgogCiAgICAgaWYgKHJhcmVOb25J
bmhlcml0ZWREYXRhLT5vcGFjaXR5ICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+b3Bh
Y2l0eSkgewogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCShyZXZpc2lvbiAxMjM4MzIp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtOTg1LDYgKzk4NSwxMyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNGaWx0ZXIo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ1NTX0NPTVBP
U0lUSU5HKQorICAgIEVCbGVuZE1vZGUgYmxlbmRNb2RlKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8RUJsZW5kTW9kZT4ocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZWZmZWN0aXZlQmxlbmRN
b2RlKTsgfQorICAgIHZvaWQgc2V0QmxlbmRNb2RlKEVCbGVuZE1vZGUgdikgeyByYXJlTm9uSW5o
ZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9lZmZlY3RpdmVCbGVuZE1vZGUgPSB2OyB9CisgICAgYm9v
bCBoYXNCbGVuZE1vZGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFQmxlbmRNb2RlPihy
YXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9lZmZlY3RpdmVCbGVuZE1vZGUpID09IEJsZW5kTW9kZU5v
cm1hbDsgfQorI2Vsc2UKKyAgICBib29sIGhhc0JsZW5kTW9kZSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CisjZW5kaWYKICNpZiBVU0UoUlRMX1NDUk9MTEJBUikKICAgICBib29sIHNob3VsZFBs
YWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4g
IWlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSAmJiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpOyB9
CiAjZWxzZQpAQCAtMTcyMiw2ICsxNzI5LDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1NfRklM
VEVSUykKICAgICBzdGF0aWMgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgaW5pdGlhbEZpbHRlcigp
IHsgREVGSU5FX1NUQVRJQ19MT0NBTChGaWx0ZXJPcGVyYXRpb25zLCBvcHMsICgpKTsgcmV0dXJu
IG9wczsgfQogI2VuZGlmCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICBzdGF0aWMg
RUJsZW5kTW9kZSBpbml0aWFsQmxlbmRNb2RlKCkgeyByZXR1cm4gQmxlbmRNb2RlTm9ybWFsOyB9
CisjZW5kaWYKIHByaXZhdGU6CiAgICAgdm9pZCBzZXRWaXNpdGVkTGlua0NvbG9yKGNvbnN0IENv
bG9yJiB2KSB7IFNFVF9WQVIoaW5oZXJpdGVkLCB2aXNpdGVkTGlua0NvbG9yLCB2KSB9CiAgICAg
dm9pZCBzZXRWaXNpdGVkTGlua0JhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYgdikgeyBTRVRf
VkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX3Zpc2l0ZWRMaW5rQmFja2dyb3VuZENvbG9yLCB2
KSB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25z
dGFudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGVDb25zdGFudHMuaAkocmV2aXNpb24gMTIzODMyKQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ3MCw2ICs0NzAsOSBAQCBlbnVtIFdyYXBGbG93IHsgV3JhcEZsb3dBdXRvLCBXcmFwRmxvd0Jv
CiAKIGVudW0gV3JhcFRocm91Z2ggeyBXcmFwVGhyb3VnaFdyYXAsIFdyYXBUaHJvdWdoTm9uZSB9
OwogCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKK2VudW0gRUJsZW5kTW9kZSB7IEJsZW5k
TW9kZU5vcm1hbCA9IDEsIEJsZW5kTW9kZVBsdXMsIEJsZW5kTW9kZU11bHRpcGx5LCBCbGVuZE1v
ZGVTY3JlZW4sIEJsZW5kTW9kZU92ZXJsYXksIEJsZW5kTW9kZURhcmtlbiwgQmxlbmRNb2RlTGln
aHRlbiwgQmxlbmRNb2RlQ29sb3JEb2RnZSwgQmxlbmRNb2RlQ29sb3JCdXJuLCBCbGVuZE1vZGVI
YXJkTGlnaHQsIEJsZW5kTW9kZVNvZnRMaWdodCwgQmxlbmRNb2RlRGlmZmVyZW5jZSwgQmxlbmRN
b2RlRXhjbHVzaW9uLCBCbGVuZE1vZGVIdWUsIEJsZW5kTW9kZVNhdHVyYXRpb24sIEJsZW5kTW9k
ZUNvbG9yLCBCbGVuZE1vZGVMdW1pbm9zaXR5IH07CisjZW5kaWYKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIFJlbmRlclN0eWxlQ29uc3RhbnRzX2gKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5jcHAJKHJldmlzaW9uIDEyMzgzMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzcsNiArNzcsOSBAQCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25J
CiAgICAgLCBtX3J1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbihmYWxzZSkKICNlbmRpZgogICAg
ICwgbV9oYXNBc3BlY3RSYXRpbyhmYWxzZSkKKyNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQor
ICAgICwgbV9lZmZlY3RpdmVCbGVuZE1vZGUoUmVuZGVyU3R5bGU6OmluaXRpYWxCbGVuZE1vZGUo
KSkKKyNlbmRpZgogewogICAgIG1fbWFza0JveEltYWdlLnNldE1hc2tEZWZhdWx0cygpOwogfQpA
QCAtMTQ4LDYgKzE1MSw5IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5v
bkkKICAgICAsIG1fcnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uKG8ubV9ydW5uaW5nQWNjZWxl
cmF0ZWRBbmltYXRpb24pCiAjZW5kaWYKICAgICAsIG1faGFzQXNwZWN0UmF0aW8oby5tX2hhc0Fz
cGVjdFJhdGlvKQorI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCisgICAgLCBtX2VmZmVjdGl2
ZUJsZW5kTW9kZShvLm1fZWZmZWN0aXZlQmxlbmRNb2RlKQorI2VuZGlmCiB7CiB9CiAKQEAgLTIy
NCw2ICsyMzAsOSBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yCiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICAmJiAhbV9ydW5uaW5nQWNj
ZWxlcmF0ZWRBbmltYXRpb24gJiYgIW8ubV9ydW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb24KICNl
bmRpZgorI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCisgICAgICAgICYmIG1fZWZmZWN0aXZl
QmxlbmRNb2RlID09IG8ubV9lZmZlY3RpdmVCbGVuZE1vZGUKKyNlbmRpZgogICAgICAgICAmJiBt
X2hhc0FzcGVjdFJhdGlvID09IG8ubV9oYXNBc3BlY3RSYXRpbzsKIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5oCShyZXZpc2lvbiAxMjM4MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
ODAsNiArMTgwLDkgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIG1fcnVubmluZ0FjY2VsZXJhdGVk
QW5pbWF0aW9uIDogMTsKICNlbmRpZgogICAgIHVuc2lnbmVkIG1faGFzQXNwZWN0UmF0aW8gOiAx
OyAvLyBXaGV0aGVyIG9yIG5vdCBhbiBhc3BlY3QgcmF0aW8gaGFzIGJlZW4gc3BlY2lmaWVkLgor
I2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCisgICAgdW5zaWduZWQgbV9lZmZlY3RpdmVCbGVu
ZE1vZGU6IDU7IC8vIEVCbGVuZE1vZGUKKyNlbmRpZgogCiBwcml2YXRlOgogICAgIFN0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMzgzMikKKysr
IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDEyLTA3LTI2ICBSaWsgQ2FiYW5pZXIgIDxjYWJhbmllckBhZG9iZS5jb20+CisKKyAgICAg
ICAgQWRkZWQgZGVmaW5lIGZvciBDU1MgY29tcG9zaXRpbmcgYW5kIGJsZW5kaW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTkwOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGl0aW9uYWwgaW5mb3Jt
YXRpb24gb2YgdGhlIGNoYW5nZSBzdWNoIGFzIGFwcHJvYWNoLCByYXRpb25hbGUuIFBsZWFzZSBh
ZGQgcGVyLWZ1bmN0aW9uIGRlc2NyaXB0aW9ucyBiZWxvdyAoT09QUyEpLgorCisgICAgICAgICog
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTItMDctMjYgIFpl
bm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBRdCBi
dWlsZGZpeCBhZnRlciByMTIzNzg2LgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMTIz
ODMyKQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTItMDctMjYgIFJpayBDYWJhbmllciAgPGNhYmFuaWVyQGFkb2JlLmNv
bT4KKworICAgICAgICBBZGRlZCBkZWZpbmUgZm9yIENTUyBjb21wb3NpdGluZyBhbmQgYmxlbmRp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxOTA4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaXRp
b25hbCBpbmZvcm1hdGlvbiBvZiB0aGUgY2hhbmdlIHN1Y2ggYXMgYXBwcm9hY2gsIHJhdGlvbmFs
ZS4gUGxlYXNlIGFkZCBwZXItZnVuY3Rpb24gZGVzY3JpcHRpb25zIGJlbG93IChPT1BTISkuCisK
KyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAx
Mi0wNy0yNSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
c2V0dGluZyB0byBlbmFibGUgYW5kIGRpc2FibGUgZGlhZ25vc3RpYyBsb2dnaW5nLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154983</attachid>
            <date>2012-07-27 10:23:48 -0700</date>
            <delta_ts>2012-07-27 13:40:21 -0700</delta_ts>
            <desc>patch for parsing. code is disabled for now</desc>
            <filename>parse_complete</filename>
            <type>text/plain</type>
            <size>19629</size>
            <attacher name="Rik Cabanier">cabanier</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMzgzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBACisyMDEyLTA3LTI2ICBSaWsgQ2Fi
YW5pZXIgIDxjYWJhbmllckBhZG9iZS5jb20+CisKKyAgICAgICAgQWRkZWQgZGVmaW5lIGZvciBD
U1MgY29tcG9zaXRpbmcgYW5kIGJsZW5kaW5nCisgICAgICAgIEFkZGVkIGNvZGUgc28gdGhlIGJs
ZW5kLW1vZGUgQ1NTIHByb3BlcnR5IGlzIHBhcnNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTE5MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRoZSBjaGFu
Z2Ugc3VjaCBhcyBhcHByb2FjaCwgcmF0aW9uYWxlLiBQbGVhc2UgYWRkIHBlci1mdW5jdGlvbiBk
ZXNjcmlwdGlvbnMgYmVsb3cgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMh
KS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgor
ICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246
OmdldFByb3BlcnR5Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIEVCbGVuZE1vZGUpOgorICAgICAg
ICAqIGNzcy9DU1NQcm9wZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eTo6
aXNJbmhlcml0ZWRQcm9wZXJ0eSk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46
CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL1N0eWxl
QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXI6OlN0eWxlQnVpbGRl
cik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjpSZW5kZXJMYXllcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVCbGVuZE1vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OmVuc3VyZUJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnNob3VsZEJlTm9ybWFsRmxvd09ubHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnN0eWxlQ2hhbmdlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
Lmg6CisgICAgICAgIChSZW5kZXJMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OmNy
ZWF0ZVByaW1hcnlHcmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVMYXllckJsZW5kTW9kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9t
ZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpoYXNCb3hEZWNvcmF0aW9ucyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnNldEJsZW5kTW9kZSk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oOgorICAgICAgICAoUmVuZGVyTGF5ZXJCYWNraW5n
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3R5bGU6OmRpZmYpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0
YW50cy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKFN0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGEpOgorCiAyMDEyLTA3LTI2ICBBbmlzaCBCaGF5YW5pICA8YW5pc2guYmhheWFuaUBnbWFp
bC5jb20+CiAKICAgICAgICAgRGUtdmlydHVhbGl6ZSBXcmFwU2hhcGUgY2xhc3NlcwpJbmRleDog
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAJKHJldmlzaW9uIDEyMzgzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDYsNiArMjA2LDkgQEAgc3Rh
dGljIGNvbnN0IENTU1Byb3BlcnR5SUQgY29tcHV0ZWRQcm9wZQogICAgIENTU1Byb3BlcnR5V2Vi
a2l0QmFja2dyb3VuZENvbXBvc2l0ZSwKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEJhY2tncm91bmRP
cmlnaW4sCiAgICAgQ1NTUHJvcGVydHlXZWJraXRCYWNrZ3JvdW5kU2l6ZSwKKyNpZiBFTkFCTEUo
Q1NTX0NPTVBPU0lUSU5HKQorICAgIENTU1Byb3BlcnR5V2Via2l0QmxlbmRNb2RlLAorI2VuZGlm
CiAgICAgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJGaXQsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRC
b3JkZXJIb3Jpem9udGFsU3BhY2luZywKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEJvcmRlckltYWdl
LApAQCAtMjM5MCw2ICsyMzkzLDEwIEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVk
U3R5bGVEZWMKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZpbHRlcjoKICAgICAgICAg
ICAgIHJldHVybiB2YWx1ZUZvckZpbHRlcihzdHlsZS5nZXQoKSk7CiAjZW5kaWYKKyNpZiBFTkFC
TEUoQ1NTX0NPTVBPU0lUSU5HKQorICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0QmxlbmRN
b2RlOiAKKyAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShzdHls
ZS0+YmxlbmRNb2RlKCkpOworI2VuZGlmCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCYWNrZ3Jv
dW5kOgogICAgICAgICAgICAgcmV0dXJuIGdldEJhY2tncm91bmRTaG9ydGhhbmRWYWx1ZSgpOwog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5Qm9yZGVyOiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAkocmV2aXNpb24gMTIzODMyKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNjgsNiArMjI2OCwxMSBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlECiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAj
ZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQorICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRCbGVuZE1vZGU6CisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CisgICAg
ICAgIGJyZWFrOworI2VuZGlmCiAjaWYgRU5BQkxFKENTUzNfRkxFWEJPWCkKICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0RmxleDogewogICAgICAgICBTaG9ydGhhbmRTY29wZSBzY29wZSh0aGlz
LCBwcm9wSWQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFw
cGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWVNYXBwaW5ncy5oCShyZXZpc2lvbiAxMjM4MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCSh3b3JraW5nIGNvcHkpCkBAIC00LDYgKzQsNyBAQAog
ICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkg
SmVmZiBTY2hpbGxlciA8Y29kZWRyZWFkQGdtYWlsLmNvbT4KICAqIENvcHlyaWdodCAoQykgUmVz
ZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoYykgMjAxMiBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTA4NCw2ICsxMDg1
LDEyMiBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlCiAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PEVDdXJzb3I+KG1fdmFsdWUuaWRlbnQgLSBDU1NWYWx1ZUF1dG8pOwog
fQogCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKK3RlbXBsYXRlPD4gaW5saW5lIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFQmxlbmRNb2RlIGUpCisgICAgOiBDU1NW
YWx1ZShQcmltaXRpdmVDbGFzcykKK3sKKyAgICBtX3ByaW1pdGl2ZVVuaXRUeXBlID0gQ1NTX0lE
RU5UOworICAgIHN3aXRjaCAoZSkgeworICAgIGNhc2UgQmxlbmRNb2RlTm9ybWFsOgorICAgICAg
ICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVOb3JtYWw7CisgICAgICAgIGJyZWFrOyAgICAgICAg
ICAgICAgICAKKyAgICBjYXNlIEJsZW5kTW9kZVBsdXM6IAorICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVQbHVzOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJsZW5kTW9kZU11bHRp
cGx5OgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNdWx0aXBseTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBCbGVuZE1vZGVTY3JlZW46CisgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZVNjcmVlbjsgCisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQmxlbmRNb2RlT3Zl
cmxheToKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlT3ZlcmxheTsgCisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQmxlbmRNb2RlRGFya2VuOgorICAgICAgICBtX3ZhbHVlLmlkZW50
ID0gQ1NTVmFsdWVEYXJrZW47IAorICAgICAgICBicmVhazsKKyAgICBjYXNlIEJsZW5kTW9kZUxp
Z2h0ZW46CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUxpZ2h0ZW47IAorICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEJsZW5kTW9kZUNvbG9yRG9kZ2U6CisgICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZUNvbG9yRG9kZ2U7IAorICAgICAgICBicmVhazsKKyAgICBjYXNlIEJs
ZW5kTW9kZUNvbG9yQnVybjoKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29sb3JC
dXJuOyAKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCbGVuZE1vZGVIYXJkTGlnaHQ6CisgICAg
ICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUhhcmRMaWdodDsgCisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQmxlbmRNb2RlU29mdExpZ2h0OgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVTb2Z0TGlnaHQ7IAorICAgICAgICBicmVhazsKKyAgICBjYXNlIEJsZW5kTW9kZURpZmZl
cmVuY2U6CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZURpZmZlcmVuY2U7IAorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEJsZW5kTW9kZUV4Y2x1c2lvbjoKKyAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlRXhjbHVzaW9uOyAKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBC
bGVuZE1vZGVIdWU6CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUh1ZTsgCisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQmxlbmRNb2RlU2F0dXJhdGlvbjoKKyAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlU2F0dXJhdGlvbjsgCisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QmxlbmRNb2RlQ29sb3I6CisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUNvbG9yOyAK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCbGVuZE1vZGVMdW1pbm9zaXR5IDogICAgICAgICAg
ICAgICAgCisgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUx1bWlub3NpdHk7IAorICAg
ICAgICAgICAgYnJlYWs7CisgICAgfQorfQorCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRp
dmVWYWx1ZTo6b3BlcmF0b3IgRUJsZW5kTW9kZSgpIGNvbnN0CisgICAgeworICAgICAgICBzd2l0
Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZU5vcm1hbDoKKyAgICAg
ICAgICAgIHJldHVybiBCbGVuZE1vZGVOb3JtYWw7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVQbHVz
OiAKKyAgICAgICAgICAgIHJldHVybiBCbGVuZE1vZGVQbHVzOworICAgICAgICBjYXNlIENTU1Zh
bHVlTXVsdGlwbHk6CisgICAgICAgICAgICByZXR1cm4gQmxlbmRNb2RlTXVsdGlwbHk7CisgICAg
ICAgIGNhc2UgQ1NTVmFsdWVTY3JlZW46CisgICAgICAgICAgICByZXR1cm4gQmxlbmRNb2RlU2Ny
ZWVuOyAKKyAgICAgICAgY2FzZSBDU1NWYWx1ZU92ZXJsYXk6CisgICAgICAgICAgICByZXR1cm4g
QmxlbmRNb2RlT3ZlcmxheTsgCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NW
YWx1ZURhcmtlbjoKKyAgICAgICAgICAgIHJldHVybiBCbGVuZE1vZGVEYXJrZW47IAorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVMaWdodGVuOgorICAgICAgICAgICAg
cmV0dXJuIEJsZW5kTW9kZUxpZ2h0ZW47IAorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQ1NTVmFsdWVDb2xvckRvZGdlOgorICAgICAgICAgICAgcmV0dXJuIEJsZW5kTW9kZUNvbG9y
RG9kZ2U7IAorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVDb2xvckJ1
cm46CisgICAgICAgICAgICByZXR1cm4gQmxlbmRNb2RlQ29sb3JCdXJuOyAKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIENTU1ZhbHVlSGFyZExpZ2h0OgorICAgICAgICAgICAgcmV0
dXJuIEJsZW5kTW9kZUhhcmRMaWdodDsgCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBDU1NWYWx1ZVNvZnRMaWdodDoKKyAgICAgICAgICAgIHJldHVybiBCbGVuZE1vZGVTb2Z0TGln
aHQ7IAorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVEaWZmZXJlbmNl
OgorICAgICAgICAgICAgcmV0dXJuIEJsZW5kTW9kZURpZmZlcmVuY2U7IAorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgQ1NTVmFsdWVFeGNsdXNpb246CisgICAgICAgICAgICByZXR1
cm4gQmxlbmRNb2RlRXhjbHVzaW9uOyAKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IENTU1ZhbHVlSHVlOgorICAgICAgICAgICAgcmV0dXJuIEJsZW5kTW9kZUh1ZTsgCisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NWYWx1ZVNhdHVyYXRpb246CisgICAgICAgICAg
ICByZXR1cm4gQmxlbmRNb2RlU2F0dXJhdGlvbjsgCisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBDU1NWYWx1ZUNvbG9yOgorICAgICAgICAgICAgcmV0dXJuIEJsZW5kTW9kZUNvbG9y
OyAKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1ZhbHVlTHVtaW5vc2l0eSA6
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIEJsZW5kTW9kZUx1bWlub3NpdHk7
IAorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1
cm4gQmxlbmRNb2RlTm9ybWFsOworICAgICAgICB9CisgICAgfQorI2VuZGlmCisKIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShFRGlzcGxheSBl
KQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcm9wZXJ0eS5jcHAJKHJldmlzaW9uIDEyMzgzMikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcm9wZXJ0eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3OSw2ICs2NzksOSBAQCBib29sIENT
U1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5KENTCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVZl
Y3RvckVmZmVjdDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0U3ZnU2hhZG93OgogI2VuZGlm
CisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
QmxlbmRNb2RlOgorI2VuZGlmCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXREYXNoYm9hcmRSZWdpb246CiAjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCShyZXZpc2lvbiAxMjM4MzIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNDA0
LDMgKzQwNCw3IEBAIHotaW5kZXgKICNpZiBkZWZpbmVkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJ
TkcpICYmIEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkcKIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xs
aW5nCiAjZW5kaWYKKyNpZiBkZWZpbmVkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICYmIEVOQUJM
RV9DU1NfQ09NUE9TSVRJTkcKKy13ZWJraXQtYmxlbmQtbW9kZQorI2VuZGlmCisKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCShyZXZpc2lvbiAxMjM4MzIpCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgkod29ya2luZyBjb3B5KQpAQCAt
OTQyLDMgKzk0MiwyNCBAQCBmcm9tLWltYWdlCiBzbmFwCiAjZW5kaWYKIAorI2lmIGRlZmluZWQo
RU5BQkxFX0NTU19DT01QT1NJVElORykgJiYgRU5BQkxFX0NTU19DT01QT1NJVElORworLy8gLXdl
YmtpdC1ibGVuZC1tb2RlCisvLyBub3JtYWwKK3BsdXMKK211bHRpcGx5CitzY3JlZW4KKy8vIG92
ZXJsYXkKK2RhcmtlbgorbGlnaHRlbgorY29sb3ItZG9kZ2UKK2NvbG9yLWJ1cm4KK2hhcmQtbGln
aHQKK3NvZnQtbGlnaHQKK2RpZmZlcmVuY2UKK2V4Y2x1c2lvbgoraHVlCitzYXR1cmF0aW9uCitj
b2xvcgorbHVtaW5vc2l0eQorI2VuZGlmCisKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZUJ1aWxkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxk
ZXIuY3BwCShyZXZpc2lvbiAxMjM4MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWls
ZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA4OSw2ICsyMDg5LDkgQEAgU3R5bGVCdWlsZGVy
OjpTdHlsZUJ1aWxkZXIoKQogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdvcmRX
cmFwLCBBcHBseVByb3BlcnR5RGVmYXVsdDxFV29yZFdyYXAsICZSZW5kZXJTdHlsZTo6d29yZFdy
YXAsIEVXb3JkV3JhcCwgJlJlbmRlclN0eWxlOjpzZXRXb3JkV3JhcCwgRVdvcmRXcmFwLCAmUmVu
ZGVyU3R5bGU6OmluaXRpYWxXb3JkV3JhcD46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJv
cGVydHlIYW5kbGVyKENTU1Byb3BlcnR5WkluZGV4LCBBcHBseVByb3BlcnR5QXV0bzxpbnQsICZS
ZW5kZXJTdHlsZTo6ekluZGV4LCAmUmVuZGVyU3R5bGU6OnNldFpJbmRleCwgJlJlbmRlclN0eWxl
OjpoYXNBdXRvWkluZGV4LCAmUmVuZGVyU3R5bGU6OnNldEhhc0F1dG9aSW5kZXg+OjpjcmVhdGVI
YW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVpvb20sIEFwcGx5
UHJvcGVydHlab29tOjpjcmVhdGVIYW5kbGVyKCkpOworI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJ
TkcpCisgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0QmxlbmRNb2RlLCBB
cHBseVByb3BlcnR5RGVmYXVsdDxFQmxlbmRNb2RlLCAmUmVuZGVyU3R5bGU6OmJsZW5kTW9kZSwg
RUJsZW5kTW9kZSwgJlJlbmRlclN0eWxlOjpzZXRCbGVuZE1vZGUsIEVCbGVuZE1vZGUsICZSZW5k
ZXJTdHlsZTo6aW5pdGlhbEJsZW5kTW9kZT46OmNyZWF0ZUhhbmRsZXIoKSk7CisjZW5kaWYKIH0K
IAogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAkocmV2aXNpb24g
MTIzODMyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM5Nyw2ICszOTcsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1BhZ2luYXRl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNQYWdpbmF0ZWQ7IH0KIAogICAgIHZvaWQgdXBkYXRlVHJh
bnNmb3JtKCk7CisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICB2b2lkIHVwZGF0ZUJs
ZW5kTW9kZSgpOworI2VuZGlmCiAKICAgICBjb25zdCBMYXlvdXRTaXplJiByZWxhdGl2ZVBvc2l0
aW9uT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9yZWxhdGl2ZU9mZnNldDsgfQogCkBAIC05OTIs
NiArOTk1LDkgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBMYXlvdXRSZWN0IG1fYmxvY2tT
ZWxlY3Rpb25HYXBzQm91bmRzOwogCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICBF
QmxlbmRNb2RlIG1fYmxlbmRNb2RlOworI2VuZGlmIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICBPd25QdHI8UmVuZGVyTGF5ZXJCYWNraW5nPiBtX2JhY2tpbmc7CiAjZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCShyZXZpc2lvbiAxMjM4MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDYgKzIwMCw5IEBAIHZv
aWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpjcmVhdGVQcmltYXJ5R3IKICNpZiBFTkFCTEUoQ1NTX0ZJ
TFRFUlMpCiAgICAgdXBkYXRlTGF5ZXJGaWx0ZXJzKHJlbmRlcmVyKCktPnN0eWxlKCkpOwogI2Vu
ZGlmCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICB1cGRhdGVMYXllckJsZW5kTW9k
ZShyZW5kZXJlcigpLT5zdHlsZSgpKTsKKyNlbmRpZgogfQogCiB2b2lkIFJlbmRlckxheWVyQmFj
a2luZzo6ZGVzdHJveUdyYXBoaWNzTGF5ZXJzKCkKQEAgLTIzOCw2ICsyNDEsMTIgQEAgdm9pZCBS
ZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUxheWVyRmlsdAogfQogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoQ1NTX0NPTVBPU0lUSU5HKQordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUxheWVy
QmxlbmRNb2RlKGNvbnN0IFJlbmRlclN0eWxlKikKK3sKK30KKyNlbmRpZgorCiBzdGF0aWMgYm9v
bCBoYXNOb25aZXJvVHJhbnNmb3JtT3JpZ2luKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIp
CiB7CiAgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gcmVuZGVyZXItPnN0eWxlKCk7CkBAIC00NDgs
NiArNDU3LDkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTAogI2lm
IEVOQUJMRShDU1NfRklMVEVSUykKICAgICB1cGRhdGVMYXllckZpbHRlcnMocmVuZGVyZXIoKS0+
c3R5bGUoKSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQorICAgIHVwZGF0
ZUxheWVyQmxlbmRNb2RlKHJlbmRlcmVyKCktPnN0eWxlKCkpOworI2VuZGlmCiAgICAgCiAgICAg
bV9vd25pbmdMYXllci0+dXBkYXRlRGVzY2VuZGFudERlcGVuZGVudEZsYWdzKCk7CiAKQEAgLTg0
MCw3ICs4NTIsNyBAQCBmbG9hdCBSZW5kZXJMYXllckJhY2tpbmc6OmNvbXBvc2l0aW5nT3BhCiAK
IHN0YXRpYyBib29sIGhhc0JveERlY29yYXRpb25zKGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkK
IHsKLSAgICByZXR1cm4gc3R5bGUtPmhhc0JvcmRlcigpIHx8IHN0eWxlLT5oYXNCb3JkZXJSYWRp
dXMoKSB8fCBzdHlsZS0+aGFzT3V0bGluZSgpIHx8IHN0eWxlLT5oYXNBcHBlYXJhbmNlKCkgfHwg
c3R5bGUtPmJveFNoYWRvdygpIHx8IHN0eWxlLT5oYXNGaWx0ZXIoKTsKKyAgICByZXR1cm4gc3R5
bGUtPmhhc0JvcmRlcigpIHx8IHN0eWxlLT5oYXNCb3JkZXJSYWRpdXMoKSB8fCBzdHlsZS0+aGFz
T3V0bGluZSgpIHx8IHN0eWxlLT5oYXNBcHBlYXJhbmNlKCkgfHwgc3R5bGUtPmJveFNoYWRvdygp
IHx8IHN0eWxlLT5oYXNGaWx0ZXIoKSB8fCBzdHlsZS0+aGFzQmxlbmRNb2RlKCk7CiB9CiAKIHN0
YXRpYyBib29sIGhhc0JveERlY29yYXRpb25zT3JCYWNrZ3JvdW5kKGNvbnN0IFJlbmRlck9iamVj
dCogcmVuZGVyZXIpCkBAIC0xMTY5LDYgKzExODEsMTIgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tp
bmc6OnNldFJlcXVpcmVzT3duQgogICAgIGNvbXBvc2l0b3IoKS0+cmVwYWludEluQ29tcG9zaXRl
ZEFuY2VzdG9yKG1fb3duaW5nTGF5ZXIsIGNvbXBvc2l0ZWRCb3VuZHMoKSk7CiB9CiAKKyNpZiBF
TkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQordm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldEJsZW5k
TW9kZShFQmxlbmRNb2RlKQoreworfQorI2VuZGlmCisKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5n
OjpzZXRDb250ZW50c05lZWREaXNwbGF5KCkKIHsKICAgICBBU1NFUlQoIXBhaW50c0ludG9Db21w
b3NpdGVkQW5jZXN0b3IoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5oCShyZXZpc2lvbiAxMjM4MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2NSw2ICsx
NjUsMTAgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIG5hbWVGb3JMYXllcigpIGNvbnN0OwogICAg
IAorI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCisgICAgdm9pZCBzZXRCbGVuZE1vZGUoRUJs
ZW5kTW9kZSk7CisjZW5kaWYKKyAgICAKIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVQcmltYXJ5
R3JhcGhpY3NMYXllcigpOwogICAgIHZvaWQgZGVzdHJveUdyYXBoaWNzTGF5ZXJzKCk7CkBAIC0x
OTYsNiArMjAwLDkgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgdm9p
ZCB1cGRhdGVMYXllckZpbHRlcnMoY29uc3QgUmVuZGVyU3R5bGUqKTsKICNlbmRpZgorI2lmIEVO
QUJMRShDU1NfQ09NUE9TSVRJTkcpCisgICAgdm9pZCB1cGRhdGVMYXllckJsZW5kTW9kZShjb25z
dCBSZW5kZXJTdHlsZSopOworI2VuZGlmCiAKICAgICAvLyBSZXR1cm4gdGhlIG9wYWNpdHkgdmFs
dWUgdGhhdCB0aGlzIGxheWVyIHNob3VsZCB1c2UgZm9yIGNvbXBvc2l0aW5nLgogICAgIGZsb2F0
IGNvbXBvc2l0aW5nT3BhY2l0eShmbG9hdCByZW5kZXJlck9wYWNpdHkpIGNvbnN0OwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCShyZXZp
c2lvbiAxMjM4MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MDQsNiArNjA0LDExIEBAIFN0eWxlRGlmZmVyZW5j
ZSBSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCAKICAgICAgICAgICAgICAgICAgfHwgdmlzdWFsLT5j
bGlwICE9IG90aGVyLT52aXN1YWwtPmNsaXAgfHwgdmlzdWFsLT5oYXNDbGlwICE9IG90aGVyLT52
aXN1YWwtPmhhc0NsaXApCiAgICAgICAgICAgICByZXR1cm4gU3R5bGVEaWZmZXJlbmNlUmVwYWlu
dExheWVyOwogICAgIH0KKyAgICAKKyNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQorICAgIGlm
IChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9lZmZlY3RpdmVCbGVuZE1vZGUgIT0gb3RoZXItPnJh
cmVOb25Jbmhlcml0ZWREYXRhLT5tX2VmZmVjdGl2ZUJsZW5kTW9kZSkKKyAgICAgICAgcmV0dXJu
IFN0eWxlRGlmZmVyZW5jZVJlcGFpbnRMYXllcjsKKyNlbmRpZgogCiAgICAgaWYgKHJhcmVOb25J
bmhlcml0ZWREYXRhLT5vcGFjaXR5ICE9IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+b3Bh
Y2l0eSkgewogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCShyZXZpc2lvbiAxMjM4MzIp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtOTg1LDYgKzk4NSwxMyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNGaWx0ZXIo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ1NTX0NPTVBP
U0lUSU5HKQorICAgIEVCbGVuZE1vZGUgYmxlbmRNb2RlKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8RUJsZW5kTW9kZT4ocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZWZmZWN0aXZlQmxlbmRN
b2RlKTsgfQorICAgIHZvaWQgc2V0QmxlbmRNb2RlKEVCbGVuZE1vZGUgdikgeyByYXJlTm9uSW5o
ZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9lZmZlY3RpdmVCbGVuZE1vZGUgPSB2OyB9CisgICAgYm9v
bCBoYXNCbGVuZE1vZGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFQmxlbmRNb2RlPihy
YXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9lZmZlY3RpdmVCbGVuZE1vZGUpID09IEJsZW5kTW9kZU5v
cm1hbDsgfQorI2Vsc2UKKyAgICBib29sIGhhc0JsZW5kTW9kZSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CisjZW5kaWYKICNpZiBVU0UoUlRMX1NDUk9MTEJBUikKICAgICBib29sIHNob3VsZFBs
YWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4g
IWlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSAmJiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpOyB9
CiAjZWxzZQpAQCAtMTcyMiw2ICsxNzI5LDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1NfRklM
VEVSUykKICAgICBzdGF0aWMgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgaW5pdGlhbEZpbHRlcigp
IHsgREVGSU5FX1NUQVRJQ19MT0NBTChGaWx0ZXJPcGVyYXRpb25zLCBvcHMsICgpKTsgcmV0dXJu
IG9wczsgfQogI2VuZGlmCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKKyAgICBzdGF0aWMg
RUJsZW5kTW9kZSBpbml0aWFsQmxlbmRNb2RlKCkgeyByZXR1cm4gQmxlbmRNb2RlTm9ybWFsOyB9
CisjZW5kaWYKIHByaXZhdGU6CiAgICAgdm9pZCBzZXRWaXNpdGVkTGlua0NvbG9yKGNvbnN0IENv
bG9yJiB2KSB7IFNFVF9WQVIoaW5oZXJpdGVkLCB2aXNpdGVkTGlua0NvbG9yLCB2KSB9CiAgICAg
dm9pZCBzZXRWaXNpdGVkTGlua0JhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYgdikgeyBTRVRf
VkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX3Zpc2l0ZWRMaW5rQmFja2dyb3VuZENvbG9yLCB2
KSB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25z
dGFudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGVDb25zdGFudHMuaAkocmV2aXNpb24gMTIzODMyKQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ3MCw2ICs0NzAsOSBAQCBlbnVtIFdyYXBGbG93IHsgV3JhcEZsb3dBdXRvLCBXcmFwRmxvd0Jv
CiAKIGVudW0gV3JhcFRocm91Z2ggeyBXcmFwVGhyb3VnaFdyYXAsIFdyYXBUaHJvdWdoTm9uZSB9
OwogCisjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKK2VudW0gRUJsZW5kTW9kZSB7IEJsZW5k
TW9kZU5vcm1hbCA9IDEsIEJsZW5kTW9kZVBsdXMsIEJsZW5kTW9kZU11bHRpcGx5LCBCbGVuZE1v
ZGVTY3JlZW4sIEJsZW5kTW9kZU92ZXJsYXksIEJsZW5kTW9kZURhcmtlbiwgQmxlbmRNb2RlTGln
aHRlbiwgQmxlbmRNb2RlQ29sb3JEb2RnZSwgQmxlbmRNb2RlQ29sb3JCdXJuLCBCbGVuZE1vZGVI
YXJkTGlnaHQsIEJsZW5kTW9kZVNvZnRMaWdodCwgQmxlbmRNb2RlRGlmZmVyZW5jZSwgQmxlbmRN
b2RlRXhjbHVzaW9uLCBCbGVuZE1vZGVIdWUsIEJsZW5kTW9kZVNhdHVyYXRpb24sIEJsZW5kTW9k
ZUNvbG9yLCBCbGVuZE1vZGVMdW1pbm9zaXR5IH07CisjZW5kaWYKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIFJlbmRlclN0eWxlQ29uc3RhbnRzX2gKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5jcHAJKHJldmlzaW9uIDEyMzgzMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzcsNiArNzcsOSBAQCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25J
CiAgICAgLCBtX3J1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbihmYWxzZSkKICNlbmRpZgogICAg
ICwgbV9oYXNBc3BlY3RSYXRpbyhmYWxzZSkKKyNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQor
ICAgICwgbV9lZmZlY3RpdmVCbGVuZE1vZGUoUmVuZGVyU3R5bGU6OmluaXRpYWxCbGVuZE1vZGUo
KSkKKyNlbmRpZgogewogICAgIG1fbWFza0JveEltYWdlLnNldE1hc2tEZWZhdWx0cygpOwogfQpA
QCAtMTQ4LDYgKzE1MSw5IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5v
bkkKICAgICAsIG1fcnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uKG8ubV9ydW5uaW5nQWNjZWxl
cmF0ZWRBbmltYXRpb24pCiAjZW5kaWYKICAgICAsIG1faGFzQXNwZWN0UmF0aW8oby5tX2hhc0Fz
cGVjdFJhdGlvKQorI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCisgICAgLCBtX2VmZmVjdGl2
ZUJsZW5kTW9kZShvLm1fZWZmZWN0aXZlQmxlbmRNb2RlKQorI2VuZGlmCiB7CiB9CiAKQEAgLTIy
NCw2ICsyMzAsOSBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6Om9wZXJhdG9yCiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICAmJiAhbV9ydW5uaW5nQWNj
ZWxlcmF0ZWRBbmltYXRpb24gJiYgIW8ubV9ydW5uaW5nQWNjZWxlcmF0ZWRBbmltYXRpb24KICNl
bmRpZgorI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCisgICAgICAgICYmIG1fZWZmZWN0aXZl
QmxlbmRNb2RlID09IG8ubV9lZmZlY3RpdmVCbGVuZE1vZGUKKyNlbmRpZgogICAgICAgICAmJiBt
X2hhc0FzcGVjdFJhdGlvID09IG8ubV9oYXNBc3BlY3RSYXRpbzsKIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5oCShyZXZpc2lvbiAxMjM4MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
ODAsNiArMTgwLDkgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIG1fcnVubmluZ0FjY2VsZXJhdGVk
QW5pbWF0aW9uIDogMTsKICNlbmRpZgogICAgIHVuc2lnbmVkIG1faGFzQXNwZWN0UmF0aW8gOiAx
OyAvLyBXaGV0aGVyIG9yIG5vdCBhbiBhc3BlY3QgcmF0aW8gaGFzIGJlZW4gc3BlY2lmaWVkLgor
I2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCisgICAgdW5zaWduZWQgbV9lZmZlY3RpdmVCbGVu
ZE1vZGU6IDU7IC8vIEVCbGVuZE1vZGUKKyNlbmRpZgogCiBwcml2YXRlOgogICAgIFN0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEoKTsK
</data>
<flag name="review"
          id="164356"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="164357"
          type_id="3"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>