<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Blogs on Oscar Reparaz</title>
		<link>https://www.reparaz.net/blog/</link>
		<description>Recent content in Blogs on Oscar Reparaz</description>
		<generator>Hugo</generator>
		<language>en-US</language>
		
		
		
		
			<lastBuildDate>Tue, 19 May 2026 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://www.reparaz.net/blog/feed.xml" rel="self" type="application/atom+xml" />
			<item>
				<title>Roughtime Server</title>
				<link>https://www.reparaz.net/oscar/status/26051901.html</link>
				<pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate>
				<guid>https://www.reparaz.net/oscar/status/26051901.html</guid>
				<description>&lt;p&gt;May 2026.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;a roughtime server&lt;/strong&gt;. just set up a public roughtime server running on OVH&#xA;cloud (located in Frankfurt). The server supports protocol version&#xA;IETF-Roughtime (draft-11) and Google-Roughtime. I pre-paid it for 2+ years and&#xA;deleted my ssh keys, so it&amp;rsquo;s destined to run unattended on autopilot until it&#xA;dies. The VPS has 91 MB of RAM, with 46 MB currently free. And that&amp;rsquo;s a lot!&lt;/p&gt;&#xA;&lt;p&gt;You&amp;rsquo;re welcome to try it out.&lt;/p&gt;</description>
			</item>
			<item>
				<title>A big-key public key encryption scheme</title>
				<link>https://www.reparaz.net/oscar/misc/bigpk.html</link>
				<pubDate>Tue, 23 Dec 2025 01:00:00 +0100</pubDate>
				<guid>https://www.reparaz.net/oscar/misc/bigpk.html</guid>
				<description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;Update:&lt;/strong&gt; The core idea below already appears in &lt;a href=&#34;https://eprint.iacr.org/2009/512&#34;&gt;Public-Key Encryption in the Bounded-Retrieval Model&lt;/a&gt;, by Joël Alwen, Yevgeniy Dodis, Moni Naor, Gil Segev, Shabsi Walfish, and Daniel Wichs, published in Advances in Cryptology – EUROCRYPT 2010, pp. 113–134 (ePrint preprint, 2009). They take the core idea here and do it properly; the security issue is pretty subtle.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;In my version, stealing 1% of the identity keys lets an attacker decrypt about 1% of future messages. More subtly, an attacker could compute on the whole key collection and exfiltrate a short result: ordinary IBE security alone does not rule out a much smaller substitute that still decrypts messages. Erasing &lt;code&gt;MSK&lt;/code&gt; does not settle that. Their construction combines several randomly selected key components and proves security against bounded leakage computed before the target ciphertext is known.&lt;/em&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>light: secure messaging</title>
				<link>https://www.reparaz.net/oscar/misc/light.html</link>
				<pubDate>Sun, 21 Dec 2025 01:00:00 +0100</pubDate>
				<guid>https://www.reparaz.net/oscar/misc/light.html</guid>
				<description>&lt;p&gt;Here&amp;rsquo;s a secure messaging system that you can&amp;rsquo;t hack remotely. You can use this to talk to your friends in a way that even mercenary spyware can&amp;rsquo;t access your messages. This is guaranteed by hardware-level primitives. Let&amp;rsquo;s call it &lt;em&gt;light&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Our threat model is &lt;strong&gt;remote-only attacks&lt;/strong&gt;, with ability of performing zero-click remote-code execution (mercenary spyware).&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-basic-idea&#34;&gt;The basic idea &lt;a href=&#34;#the-basic-idea&#34; aria-label=&#34;Link to this heading&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;light&lt;/em&gt; is an endpoint architecture: three independent nodes connected by unidirectional links. On top of this endpoint architecture, we implement public-key cryptography to encrypt+authenticate messages between peers. The nuance here is how each &amp;ldquo;endpoint&amp;rdquo; is constructed.&lt;/p&gt;</description>
			</item>
			<item>
				<title>What $10 of GPU time buys you in 2025</title>
				<link>https://www.reparaz.net/oscar/misc/gpu-2025.html</link>
				<pubDate>Sat, 01 Nov 2025 01:00:00 +0100</pubDate>
				<guid>https://www.reparaz.net/oscar/misc/gpu-2025.html</guid>
				<description>&lt;p&gt;We are in 2025. Compute is cheap. With \$2 you can rent a beefy GPU by the minute and nerd out all evening. This entertainment is cheaper than going to the movies (and depending who you ask, more fun). Let&amp;rsquo;s see how many discrete logarithms we can break on a \$10 budget&amp;hellip;&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-problem&#34;&gt;The problem &lt;a href=&#34;#the-problem&#34; aria-label=&#34;Link to this heading&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;We want to solve discrete logarithm problem in an interval. Our group is an elliptic curve over a 256-bit prime field. The interval size is about 70 bits. This is a problem that has interesting applications (for example, when key generation didn&amp;rsquo;t use full entropy), but let&amp;rsquo;s talk about that another time.&lt;/p&gt;</description>
			</item>
			<item>
				<title>punchsig: cryptographic signatures, data diodes and trusted input</title>
				<link>https://www.reparaz.net/oscar/misc/punchsig.html</link>
				<pubDate>Sun, 25 May 2025 02:00:00 +0200</pubDate>
				<guid>https://www.reparaz.net/oscar/misc/punchsig.html</guid>
				<description>&lt;p&gt;Look at this beauty. This box is a small USB dongle I built over the weekend with a bunch of junk electronics I had lying around. The dongle cryptographically signs short text inputs directly from your USB keyboard.&lt;/p&gt;&#xA;&lt;img src=&#34;https://www.reparaz.net/assets/punchsig/punchsig_1.jpeg&#34; alt=&#34;punchsig&#34; /&gt;&#xA;&lt;p&gt;&lt;strong&gt;What is in this box?&lt;/strong&gt; The dongle acts as an interposer: keyboard plugs into one side, computer into the other. It forwards keystrokes transparently, and can cryptographically sign text you type. To the computer, it just looks like a regular USB keyboard. Internally, the dongle has a &amp;ldquo;secure processor&amp;rdquo; which holds the signing keys and generates the ed25519 signature.&lt;/p&gt;</description>
			</item>
			<item>
				<title>ANSSI x509 cert parser</title>
				<link>https://www.reparaz.net/oscar/misc/anssi-x509.html</link>
				<pubDate>Fri, 21 Mar 2025 01:00:00 +0100</pubDate>
				<guid>https://www.reparaz.net/oscar/misc/anssi-x509.html</guid>
				<description>&lt;p&gt;This is a fantastic piece of software:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Arnaud Ebalard. &lt;strong&gt;x509-parser: a RTE-free X.509 parser&lt;/strong&gt;. &lt;a href=&#34;https://github.com/ANSSI-FR/x509-parser&#34;&gt;https://github.com/ANSSI-FR/x509-parser&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;This implements a X.509 parser, with profuse ACSL annotations so that the whole parser is verifiable with frama-c&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;This guarantees the parser is free from run-time errors: invalid memory accesses, signed integer overflows, undefined behavior)&lt;/li&gt;&#xA;&lt;li&gt;It is suitable for embedded devices (no malloc, no floats, no dependencies)&lt;/li&gt;&#xA;&lt;li&gt;The current ACSL annotations cannot prove the code adheres to some specification (correctness) but nevertheless it&amp;rsquo;s a great piece of engineering&lt;/li&gt;&#xA;&lt;li&gt;It is a good resource to learn frama-c and ACSL in a non-trivial project.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This is an excerpt from the paper:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Mitigating deep fakes and phishing in meetings</title>
				<link>https://www.reparaz.net/oscar/misc/deepfake-auth.html</link>
				<pubDate>Wed, 10 Apr 2024 02:00:00 +0200</pubDate>
				<guid>https://www.reparaz.net/oscar/misc/deepfake-auth.html</guid>
				<description>&lt;p&gt;Here comes a quick project idea. It’s meant to provide deep-fake + phishing resistance while at the same time not introduce “big bang changes” to how you operate. This allows you to retrofit a system like this into an existing legacy system.&lt;/p&gt;&#xA;&lt;p&gt;The setting is this:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;you run security sensitive meetings with a bunch of participants. say you run those using a laptop over (say) google meet / zoom / whatever.&lt;/li&gt;&#xA;&lt;li&gt;you are remote/distributed&lt;/li&gt;&#xA;&lt;li&gt;you are concerned about a participant getting pwned and getting replaced by a deep fake&lt;/li&gt;&#xA;&lt;li&gt;you can’t change 100% how you operate. you are stuck with google meet / zoom / whatever&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The problem:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Omron blood pressure monitor: reading the internal EEPROM</title>
				<link>https://www.reparaz.net/oscar/misc/omron.html</link>
				<pubDate>Thu, 28 Dec 2023 01:00:00 +0100</pubDate>
				<guid>https://www.reparaz.net/oscar/misc/omron.html</guid>
				<description>&lt;p&gt;This note explains how to read the internal EEPROM of an &lt;em&gt;Omron Upper Arm Blood Pressure Monitor 3 Series&lt;/em&gt; (model BP710N) to achieve interoperability. You’ll be able to read your blood pressure measurements with your own microcontroller.&lt;/p&gt;&#xA;&lt;h3 id=&#34;hardware&#34;&gt;Hardware &lt;a href=&#34;#hardware&#34; aria-label=&#34;Link to this heading&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;This is the hardware we’re dealing with. It sells for about $40 on Amazon in the U.S. as of 2019. There are more expensive models from the same manufacturer that have Bluetooth connectivity. Here we are dealing with the simplest model: no Bluetooth, no WiFi, no USB.&lt;/p&gt;</description>
			</item>
			<item>
				<title>A cryptographic desk clock: agreement protocols</title>
				<link>https://www.reparaz.net/oscar/misc/quorum-clock.html</link>
				<pubDate>Sat, 03 Sep 2022 02:00:00 +0200</pubDate>
				<guid>https://www.reparaz.net/oscar/misc/quorum-clock.html</guid>
				<description>&lt;p&gt;Check out the different parts:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Part I: &lt;strong&gt;&lt;a href=&#34;https://www.reparaz.net/oscar/misc/desk-clock-protocol&#34;&gt;protocol for a cryptographic desk clock&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Part II: &lt;strong&gt;&lt;a href=&#34;https://www.reparaz.net/oscar/misc/time-reference-home&#34;&gt;time reference&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Part II: &lt;strong&gt;agreement protocols&lt;/strong&gt; (this page)&lt;/li&gt;&#xA;&lt;li&gt;&amp;hellip; sometime in the future &amp;hellip; client implementation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Say you have 3 imperfect clock measurements. They do not tell the exact same time.&#xA;Maybe they are drifting away, or to put things worse maybe one is totally broken.&#xA;Here we look at this basic problem: given several&#xA;clock measurements, how do you establish time? We&amp;rsquo;ll see three fundamental works&#xA;in fault-tolerant agreement protocols.&lt;/p&gt;</description>
			</item>
			<item>
				<title>A cryptographic desk clock: time reference</title>
				<link>https://www.reparaz.net/oscar/misc/time-reference-home.html</link>
				<pubDate>Fri, 05 Aug 2022 02:00:00 +0200</pubDate>
				<guid>https://www.reparaz.net/oscar/misc/time-reference-home.html</guid>
				<description>&lt;p&gt;Check out the different parts:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Part I: &lt;strong&gt;&lt;a href=&#34;https://www.reparaz.net/oscar/misc/desk-clock-protocol&#34;&gt;protocol for a cryptographic desk clock&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Part II: &lt;strong&gt;time reference&lt;/strong&gt; (this page)&lt;/li&gt;&#xA;&lt;li&gt;Part II: &lt;strong&gt;&lt;a href=&#34;https://www.reparaz.net/oscar/misc/quorum-clock&#34;&gt;agreement protocols&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&amp;hellip; sometime in the future &amp;hellip; client implementation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Here we will talk about the roughtime time server, and touch&#xA;a bit on the &lt;strong&gt;architecture&lt;/strong&gt; and &lt;strong&gt;security properties&lt;/strong&gt;.&#xA;The time reference itself (the time server) is this beauty mess of wires, currently living behind a couch. It has a small cryptographic processor, a GPS and a raspberry pi. This reference propagates the House Standard Time via WiFi.&lt;/p&gt;</description>
			</item>
			<item>
				<title>A cryptographic desk clock: time transfer protocol</title>
				<link>https://www.reparaz.net/oscar/misc/desk-clock-protocol.html</link>
				<pubDate>Mon, 01 Aug 2022 02:00:00 +0200</pubDate>
				<guid>https://www.reparaz.net/oscar/misc/desk-clock-protocol.html</guid>
				<description>&lt;p&gt;Check out the different parts:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Part I: &lt;strong&gt;protocol for a cryptographic desk clock&lt;/strong&gt; (this page)&lt;/li&gt;&#xA;&lt;li&gt;Part II: &lt;strong&gt;&lt;a href=&#34;https://www.reparaz.net/oscar/misc/time-reference-home&#34;&gt;time reference&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Part II: &lt;strong&gt;&lt;a href=&#34;https://www.reparaz.net/oscar/misc/quorum-clock&#34;&gt;agreement protocols&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&amp;hellip; sometime in the future &amp;hellip; client implementation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Slightly annoying fact: clocks are normally synced with a protocol (NTP - Network Time Protocol) that provides &lt;strong&gt;zero&lt;/strong&gt; &lt;strong&gt;cryptographic guarantees&lt;/strong&gt;. On the surface this is totally fine, but when we start composing security-sensitive protocols (think certificate expiration checks, audit logs or time-bound credentials), we need to turn a blind eye…&lt;/p&gt;</description>
			</item>
			<item>
				<title>nonce-sanitizer: using authenticated encryption without fear</title>
				<link>https://www.reparaz.net/oscar/misc/nonce-sanitizer.html</link>
				<pubDate>Thu, 28 Jul 2022 02:00:00 +0200</pubDate>
				<guid>https://www.reparaz.net/oscar/misc/nonce-sanitizer.html</guid>
				<description>&lt;p&gt;This post describes &lt;code&gt;nonce-sanitizer&lt;/code&gt;: a &lt;strong&gt;very simple tool&lt;/strong&gt; that prevents the major screw-up everyone is scared to make: 😱 repeated nonces under the same key 😱. In short, &lt;code&gt;nonce-sanitizer&lt;/code&gt; provides seat belts as a thin wrapper around the AEAD code that adds a hard asserd that nonces don&amp;rsquo;t repeat.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;But that&amp;rsquo;s such a n00b&amp;rsquo;s mistake!&lt;/strong&gt; If you think &amp;ldquo;I&amp;rsquo;m a good programmer, I won&amp;rsquo;t ever make that mistake&amp;rdquo;, think harder. Even the &lt;a href=&#34;https://www.daemonology.net/blog/2011-01-18-tarsnap-critical-security-bug.html&#34;&gt;crypto grandmasters make this mistake&lt;/a&gt;. It can happen to anyone anytime &amp;mdash;even during an unrelated refactor. Do you have tests that would catch this bug? Do they run automatically every time you touch code?&lt;/p&gt;</description>
			</item>
			<item>
				<title>Checklist to evaluate MPC deployments</title>
				<link>https://www.reparaz.net/oscar/misc/evaluating-mpc.html</link>
				<pubDate>Mon, 25 Jul 2022 02:00:00 +0200</pubDate>
				<guid>https://www.reparaz.net/oscar/misc/evaluating-mpc.html</guid>
				<description>&lt;p&gt;This is a quick checklist I use when evaluating&#xA;multi-party computation designs, deployments or ideas; both in industry&#xA;and academia. I hope you find it useful. Two qualifiers:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;While this was written mainly thinking about MPC,&#xA;most of the following applies also to&#xA;any fancy cryptographic technique.&lt;/li&gt;&#xA;&lt;li&gt;Different scenarios call for different criteria. So do not take this&#xA;checklist literally, but rather as an aid in your assessment process.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;assumptions&#34;&gt;Assumptions &lt;a href=&#34;#assumptions&#34; aria-label=&#34;Link to this heading&#34;&gt;#&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;p&gt;&lt;strong&gt;Have you documented all implicit and explicit assumptions?&lt;/strong&gt;&#xA;Good results are just implications: &lt;em&gt;if&lt;/em&gt; some hypothesis hold, then you can do some fancy stuff.&#xA;This doesn&amp;rsquo;t necessarily mean the initial assumptions hold &lt;em&gt;in your particular application&lt;/em&gt;.&#xA;Examples of common assumptions that may not hold in your case:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Secure boot does not compose well</title>
				<link>https://www.reparaz.net/oscar/misc/secureboot.html</link>
				<pubDate>Tue, 01 Jan 2019 01:00:00 +0100</pubDate>
				<guid>https://www.reparaz.net/oscar/misc/secureboot.html</guid>
				<description>&lt;p&gt;Composable security properties of a system are great: they allow you to define a security property locally on a subsystem and then this property will hold in whatever environment this subsystem is placed. This greatly simplifies the analysis, as you can deal with it chunk by chunk instead of having to tackle the whole system all at once.&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately, secure boot is not an easily composable property. This is a pretty straightforward result familiar to anyone that has spent an evening thinking about it. Let&amp;rsquo;s dive into it.&lt;/p&gt;</description>
			</item>
			<item>
				<title>DPA on the third round of a Feistel</title>
				<link>https://www.reparaz.net/oscar/misc/dpa-third-round.html</link>
				<pubDate>Mon, 19 Sep 2016 22:48:23 +0200</pubDate>
				<guid>https://www.reparaz.net/oscar/misc/dpa-third-round.html</guid>
				<description>&lt;p&gt;Straight DPA attacks target the outer rounds of a cipher: either the first one (if you know the input) or the last one (if you know the output). In a Feistel construction, you can easily DPA the second round. Things are messier if you want to target inner rounds.&lt;/p&gt;&#xA;&lt;p&gt;Here we describe a simple, cute DPA attack on the third round output of a Feistel. There are much more advanced attacks that target fourth and even deeper rounds of a Feistel; this attack is on the other hand very simple (just assumes DPA works, no fancy leakage assumptions) and very fun. The full details are in our paper:&lt;/p&gt;</description>
			</item>
			<item>
				<title>dude, is my code constant time?</title>
				<link>https://www.reparaz.net/oscar/misc/dudect.html</link>
				<pubDate>Sat, 10 Sep 2016 22:48:23 +0200</pubDate>
				<guid>https://www.reparaz.net/oscar/misc/dudect.html</guid>
				<description>&lt;p&gt;Non-constant time crypto code is dangerous.&#xA;Exactly 20 years ago Kocher presented the first&#xA;&lt;a href=&#34;https://en.wikipedia.org/wiki/Timing_attack&#34;&gt;timing attack&lt;/a&gt; on a cryptographic implementation.&#xA;Since then, a &lt;a href=&#34;http://crypto.stanford.edu/~dabo/pubs/papers/ssl-timing.pdf&#34;&gt;long&lt;/a&gt;&#xA;&lt;a href=&#34;http://beta.ivc.no/wiki/index.php/Xbox_360_Timing_Attack&#34;&gt;list&lt;/a&gt;&#xA;&lt;a href=&#34;https://cr.yp.to/antiforgery/cachetiming-20050414.pdf&#34;&gt;of&lt;/a&gt;&#xA;&lt;a href=&#34;http://www.isg.rhul.ac.uk/tls/TLStiming.pdf&#34;&gt;implementations&lt;/a&gt;&#xA;have been&#xA;broken by timing attacks.&lt;/p&gt;&#xA;&lt;p&gt;Naturally, there are countermeasures in place,&#xA;even in popular open source crypto libraries.&#xA;However, those countermeasures are rarely publicly tested for effectiveness.&#xA;Some timing countermeasures are just baked into the code,&#xA;without a test harness that could provide some degree of confidence that the countermeasure is sound.&#xA;In many cases, however,&#xA;&lt;a href=&#34;https://eprint.iacr.org/2016/594&#34;&gt;shit happens&lt;/a&gt;&#xA;and&#xA;&lt;a href=&#34;https://github.com/weidai11/cryptopp/issues/146&#34;&gt;things can go wrong&lt;/a&gt;&#xA;(for example, your compiler may get in your way).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Compilers and constant-time code</title>
				<link>https://www.reparaz.net/oscar/misc/cmov.html</link>
				<pubDate>Tue, 05 Jul 2016 22:48:23 +0200</pubDate>
				<guid>https://www.reparaz.net/oscar/misc/cmov.html</guid>
				<description>&lt;p&gt;Compilers normally do scary things to security-sensitive code.&#xA;Consider for example &lt;a href=&#34;http://www.daemonology.net/blog/2014-09-04-how-to-zero-a-buffer.html&#34;&gt;the problem of wiping keys from memory&lt;/a&gt; once we&amp;rsquo;re done working with them.&#xA;This is hard to do in C.&#xA;The naive way to zeroize the key buffer is to call &lt;code&gt;memset()&lt;/code&gt;.&#xA;However, since the overwriting value is not used anymore, any &lt;a href=&#34;https://en.wikipedia.org/wiki/Dead_store&#34;&gt;performance optimization&lt;/a&gt; from the compiler will very likely remove the call to &lt;code&gt;memset()&lt;/code&gt; intended to wipe keys; effectively working against our intention.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
