|  |   | 
| (6 medziľahlých úprav od rovnakého používateľa nie je zobrazených.) | 
| Riadok 1: | Riadok 1: | 
| − | <nowiki>
 | + | https://arxiv.org/pdf/1803.05316.pdf | 
| − | https://aarextiaokhiao.github.io/Factor-Num-Up/ | + | An Invitation to Applied Category Theory | 
|  |  |  |  | 
| − | eyJsYXN0VGljayI6MTU4MDQ4ODIzMTU4NSwibWlsZXN0b25lcyI6NSwibnVtYmVyIjoxMTQwNC42NjA3NDIxODc1MDEsImZhY3RvcnMiOlsxMyw1LDIsMSwxLDEsMV0sInByaW1lIjp7InByaW1lcyI6MSwiZmVhdHVyZXMiOjEsInVwZ3JhZGVzIjpbMV0sImJ1eVF1YW50aXR5IjoxLCJwcmltZUdhaW5SYXRlUGVhayI6MCwiYm9vc3RzIjp7ImZ1ZWwiOjAsIndlaWdodHMiOlswLDAsMCwwLDAsMCwwLDBdLCJmdWVsRWZmaWNpZW50IjoxLCJmdWVsUGFjayI6MSwiZHVtcGVkIjowLCJ2aXJ0dWFsIjp7IndlaWdodHMiOlswLDAsMCwwLDAsMCwwLDBdLCJmdWVsRWZmaWNpZW50IjowLCJjdXJyZW50Q2hhbGxlbmdlIjowLCJudW1iZXIiOjAsImZhY3RvcnMiOlsxLDEsMSwxLDEsMSwxLDFdLCJwcmltZUdhaW5SYXRlUGVhayI6MCwiYXV0b21hdGVkQnV5aW5nIjp7InByaW9yaXRpZXMiOlsxLDIsMyw0LDUsNiw3XSwiZW5hYmxlZCI6W3RydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWVdLCJhdXRvbWF0ZWRFbWJyYWNlIjpmYWxzZSwid2FpdEZvck5leHRFbWJyYWNlIjoxfX19LCJidXlNb2RlIjoxLCJhZHZhbmNlZEJ1eWluZyI6eyJlbmFibGVkIjpbdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZV0sInByaW9yaXRpZXMiOlsxLDIsMyw0LDUsNiw3XX0sImF1dG9tYXRlZEJ1eWluZyI6eyJhdXRvQnV5RW5hYmxlZCI6ZmFsc2UsImludGVydmFsIjoxLCJsYXN0VGljayI6MCwiZW5hYmxlZCI6W3RydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWVdLCJwcmlvcml0aWVzIjpbMSwyLDMsNCw1LDYsN10sInByaW1lIjp7ImVuYWJsZWQiOmZhbHNlLCJ3YWl0Rm9yTmV4dCI6MX19LCJjaGFsbGVuZ2VzIjp7ImN1cnJlbnQiOjAsImNvbXBsZXRlZCI6W10sImhpZ2hTY29yZSI6WzEwLDEwLDEsMSwxMDAsMTAsMTAwLDEwMDBdfSwiZ2FtZUJyZWFrIjp7ImJ1Z3MiOjAsImhhbGZDbGlja3MiOjAsImhhbGZDbGlja0dhaW4iOmZhbHNlLCJ1cGdyYWRlcyI6W10sInBhcmFsbGVsVW5pdmVyc2UiOjAsInBhcmFsbGVsRHVzdCI6MH19LCJzdGF0aXN0aWNzIjp7InBsYXl0aW1lIjoxNDEzNC4xMjUwMDAwMDQ1NywidG90YWxOdW1iZXIiOjUxODc1ODc1MDg0OS4wMjI5LCJwcmltZWQiOjIsInRoaXNQcmltZSI6NTguNDE4OTk5OTk5OTk5OTI2LCJsYXN0MTBFbWJyYWNlcyI6W1sxLDAsMCwyMjYzODA3Mjg3MDkuMjM0NDcsZmFsc2VdLFsxLDAsMCwxMDkwNTU3NTk2MzUuNjQxNTksZmFsc2VdXSwiZmFzdGVzdENoYWxsZW5nZVRpbWVzIjp7fSwiZmFzdGVzdEhhbGZDbGlja1J1biI6MS43OTc2OTMxMzQ4NjIzMTU3ZSszMDgsImhpZ2hlc3RQYXJhbGxlbFVuaXZlcnNlIjowLCJ0aGlzVmlydHVhbFByaW1lIjowLCJ2aXJ0dWFsUHJpbWVkIjowfSwib3B0aW9ucyI6eyJub3RhdGlvbiI6MCwidXBkYXRlUmF0ZSI6MTAsInRoZW1lIjoiTm9ybWFsIiwiZGV0YWlsZWQiOmZhbHNlfSwidmVyc2lvbiI6MC4yMDEsImJldGEiOjB9
 |  | 
|  |  |  |  | 
| − | https://pmotschmann.github.io/Evolve/ | + | 	https://quantum.country/ | 
|  | + | 	https://michaelnielsen.org/blog/quantum-computing-for-the-determined/ | 
|  |  |  |  | 
| − | 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
 | + | Slovo "superpozícia" znamená lineárna kombinácia stavov. | 
|  |  |  |  | 
| − | https://fuzzything44.github.io/Incremental/Technomancy/#
 |  | 
|  |  |  |  | 
| − | eyJhZHZlbnR1cmUiOiJ7XCJzaGlwXCI6e1wiZW5naW5lXCI6e1wibmFtZVwiOlwiYmFzaWNfZW5naW5lXCJ9LFwic2hpZWxkXCI6e1wibmFtZVwiOlwiYmFzaWNfc2hpZWxkXCJ9LFwid2VhcG9uXzFcIjp7XCJuYW1lXCI6XCJiYXNpY193ZWFwb25cIn0sXCJ3ZWFwb25fMlwiOm51bGwsXCJ3ZWFwb25fM1wiOm51bGx9LFwiaW52ZW50b3J5X3NpemVcIjoyMCxcImludmVudG9yeV9mdWVsXCI6MCxcImludmVudG9yeVwiOltdLFwid2FyZWhvdXNlXCI6W10sXCJjdXJyZW50X2xvY2F0aW9uXCI6XCJob21lXCIsXCJtYXhfbWFuYVwiOjEwMDAwMCxcIm1heF9yZWZpbmVcIjoxMDAwMH0iLCJyZXMtc2x1ZGdlIjoiMCIsImdyb3VwaW5ncyI6IntcIkFsbFwiOltcImNoYWxsZW5nZV9iYXNpY1wiLFwiY2hhbGxlbmdlX21lZGl1bVwiLFwiY2hhbGxlbmdlX2FkdmFuY2VkXCIsXCJiYW5rXCIsXCJvaWxfd2VsbFwiLFwibGlicmFyeVwiLFwid2F0ZXJfcHVyaWZpZXJcIixcInNreXNjcmFwZXJcIixcIm9pbF9lbmdpbmVcIixcInNvbGFyX3BhbmVsXCIsXCJoeWRyb2dlbl9idXJuZXJcIixcInJlYWN0b3JcIixcIm1pbmVcIixcImxvZ2dpbmdcIixcImZ1cm5hY2VcIixcImdvbGRfZmluZGVyXCIsXCJjb21wcmVzc29yXCIsXCJqZXdlbGVyXCIsXCJnbGFzc19qZXdlbGVyXCIsXCJqZXdlbHJ5X3N0b3JlXCIsXCJwYXBlcl9taWxsXCIsXCJpbmtfcmVmaW5lcnlcIixcIm1vbmV5X3ByaW50ZXJcIixcImJvb2tfcHJpbnRlclwiLFwiaHlkcm9nZW5fZ2VuXCIsXCJmdWVsX21ha2VyXCIsXCJtYWduZXRcIixcImJvb2tfYm9vc3RcIixcInN0ZWVsX3NtZWx0ZXJcIixcIm1pdGhyaWxfc21lbHRlclwiLFwiZHJpbGxcIixcImJpZ19iYW5rXCIsXCJiaWdfbWluZVwiLFwiaHlkcm9nZW5fbWluZVwiLFwibWFuYV9wdXJpZmllclwiLFwib21lZ2FfbWFjaGluZVwiXSxcIlNwZWxsc1wiOltcInNfZ29sZGJvb3N0XCIsXCJzX2VuZXJneWJvb3N0XCIsXCJzX3RyYWRlXCIsXCJzX3N0YXJ0Ym9vc3RcIixcInNfdGltZV9tYWdpY1wiLFwic193b3Jrc2hvcFwiLFwic190aW1lX21ha2VyXCIsXCJzX3dvcmtzaG9wXzJcIixcInNfZW5jaGFudG1lbnRcIixcInNfYWlcIixcInNfYXV0b2Vzc2VuY2VcIixcInNfY2hhbGxlbmdlXCJdfSIsInJlcy1yZXNlYXJjaCI6IjAiLCJidWlsZC1kcmlsbCI6IntcIm9uXCI6ZmFsc2UsXCJhbW91bnRcIjowLFwiYmFzZV9jb3N0XCI6e1wibWl0aHJpbFwiOjUwLFwiZGlhbW9uZFwiOjEwLFwic3RlZWxfYmVhbVwiOjEwMH0sXCJwcmljZV9yYXRpb1wiOntcIm1pdGhyaWxcIjoxLjExLFwiZGlhbW9uZFwiOjEuMTMsXCJzdGVlbF9iZWFtXCI6MS4wNX0sXCJnZW5lcmF0aW9uXCI6e1wid2F0ZXJcIjotNSxcImVuZXJneVwiOi01LFwic3RvbmVcIjoyMCxcImRpYW1vbmRcIjowLjEsXCJpcm9uX29yZVwiOjF9LFwibXVsdGlwbGllcnNcIjp7XCJpcm9uX29yZVwiOjAuMDV9LFwiZnJlZVwiOjAsXCJmbGF2b3JcIjpcIkEgbWFzc2l2ZSwgd2F0ZXItY29vbGVkIGRyaWxsIHRvIHJlY292ZXIgbWF0ZXJpYWxzIGZyb20gdGhlIGNlbnRlciBvZiB0aGUgZWFydGguIEl0J3MgcHJldHR5IGJvcmUtaW5nLlwifSIsInJlcy1tb25leSI6IjMzNDAzLjA0MzQ3NjMyNDM1IiwiYnVpbGQtY29tcHJlc3NvciI6IntcIm9uXCI6ZmFsc2UsXCJhbW91bnRcIjoxLFwiYmFzZV9jb3N0XCI6e1wibW9uZXlcIjoxMDAsXCJzdG9uZVwiOjMwMCxcImlyb25cIjo1MH0sXCJwcmljZV9yYXRpb1wiOntcIm1vbmV5XCI6MS4zLFwic3RvbmVcIjoxLjMsXCJpcm9uXCI6MS4zfSxcImdlbmVyYXRpb25cIjp7XCJjb2FsXCI6LTYuMyxcImRpYW1vbmRcIjowLjF9LFwibXVsdGlwbGllcnNcIjp7fSxcImZyZWVcIjowLFwiZmxhdm9yXCI6XCJSdW5uaW5nIHRoaXMgbWFjaGluZSBpcyBhIGhpZ2gtcHJlc3N1cmUgam9iLlwifSIsInJlcy1zdG9uZSI6IjE4MTAyLjk2MTEzMjc5MjU5MiIsInRoZW1lIjoibGlnaHQiLCJidWlsZC1zX2VuZXJneWJvb3N0Ijoie1wib25cIjpmYWxzZSxcImFtb3VudFwiOjEsXCJiYXNlX2Nvc3RcIjp7XCJtYW5hXCI6MH0sXCJwcmljZV9yYXRpb1wiOntcIm1hbmFcIjowfSxcImdlbmVyYXRpb25cIjp7XCJtYW5hXCI6LTMsXCJlbmVyZ3lcIjoxfSxcIm11bHRpcGxpZXJzXCI6e30sXCJ1cGRhdGVcIjpcIm5vcFwiLFwiZnJlZVwiOjAsXCJmbGF2b3JcIjpcIlwifSIsImJ1aWxkLWpld2Vscnlfc3RvcmUiOiJ7XCJvblwiOmZhbHNlLFwiYW1vdW50XCI6MSxcImJhc2VfY29zdFwiOntcIm1vbmV5XCI6NTAwMCxcInN0b25lXCI6NTAwLFwid29vZFwiOjc1MH0sXCJwcmljZV9yYXRpb1wiOntcIm1vbmV5XCI6MS41LFwic3RvbmVcIjoxLjQsXCJ3b29kXCI6MS40fSxcImdlbmVyYXRpb25cIjp7XCJqZXdlbHJ5XCI6LTEsXCJtb25leVwiOjQwMH0sXCJtdWx0aXBsaWVyc1wiOnt9LFwiZnJlZVwiOjAsXCJmbGF2b3JcIjpcIjEwMCUgZnJlZS1yYW5nZSwgbm9uLUdNTywgb3JnYW5pYyBqZXdlbHJ5IVwifSIsImJ1aWxkLXBhcGVyX21pbGwiOiJ7XCJvblwiOnRydWUsXCJhbW91bnRcIjoxLFwiYmFzZV9jb3N0XCI6e1wibW9uZXlcIjoyMDAsXCJpcm9uXCI6MTAwLFwib2lsXCI6NTB9LFwicHJpY2VfcmF0aW9cIjp7XCJtb25leVwiOjEuMSxcImlyb25cIjoxLjEsXCJvaWxcIjoxLjF9LFwiZ2VuZXJhdGlvblwiOntcImVuZXJneVwiOi0xLFwid29vZFwiOi0zLFwicGFwZXJcIjoxfSxcIm11bHRpcGxpZXJzXCI6e30sXCJmcmVlXCI6MCxcImZsYXZvclwiOlwiXCJ9IiwicmVzLWlyb24iOiIyMjA2LjM4OTgzOTE3Mjk5MiIsImJ1aWxkLWZ1ZWxfbWFrZXIiOiJ7XCJvblwiOmZhbHNlLFwiYW1vdW50XCI6MCxcImJhc2VfY29zdFwiOntcIm1vbmV5XCI6MTUwMDAwMCxcInN0ZWVsX2JlYW1cIjoyNTAsXCJpcm9uXCI6NTAwMDAsXCJnb2xkXCI6MzAwMCxcInJlc2VhcmNoXCI6MjB9LFwicHJpY2VfcmF0aW9cIjp7XCJtb25leVwiOjEuMSxcInN0ZWVsX2JlYW1cIjoxLjA3LFwiaXJvblwiOjEuMixcImdvbGRcIjoxLjEsXCJyZXNlYXJjaFwiOjEuMn0sXCJnZW5lcmF0aW9uXCI6e1wiZW5lcmd5XCI6LTc1LFwidXJhbml1bVwiOi0wLjEsXCJoeWRyb2dlblwiOi0xNTAsXCJyZWZpbmVkX21hbmFcIjotMSxcImZ1ZWxcIjowLjAxfSxcIm11bHRpcGxpZXJzXCI6e30sXCJmcmVlXCI6MCxcImZsYXZvclwiOlwiVGhpcyBmdWVsIGlzLi4uIG5vdCBoZWFsdGh5LlwifSIsImJ1aWxkLXNvbGFyX3BhbmVsIjoie1wib25cIjpmYWxzZSxcImFtb3VudFwiOjAsXCJiYXNlX2Nvc3RcIjp7XCJtb25leVwiOjUwMDAwLFwiZ2xhc3NcIjoxMDAsXCJjb2FsXCI6MTAwLFwiZGlhbW9uZFwiOjEwMH0sXCJwcmljZV9yYXRpb1wiOntcIm1vbmV5XCI6MC44LFwiZ2xhc3NcIjoyLFwiY29hbFwiOjEuNSxcImRpYW1vbmRcIjoxLjV9LFwiZ2VuZXJhdGlvblwiOntcImVuZXJneVwiOjF9LFwibXVsdGlwbGllcnNcIjp7fSxcImZyZWVcIjowLFwiZmxhdm9yXCI6XCJQcmFpc2UgdGhlIHN1biFcIn0iLCJidWlsZC1jaGFsbGVuZ2VfYWR2YW5jZWQiOiJ7XCJvblwiOmZhbHNlLFwiYW1vdW50XCI6MCxcImJhc2VfY29zdFwiOnt9LFwicHJpY2VfcmF0aW9cIjp7fSxcImdlbmVyYXRpb25cIjp7XCJzdGVlbF9iZWFtXCI6MyxcInVyYW5pdW1cIjozLFwibWFuYWdlclwiOjMsXCJyZXNlYXJjaFwiOjUsXCJlbmVyZ3lcIjoxMH0sXCJtdWx0aXBsaWVyc1wiOntcInN0ZWVsX2JlYW1cIjowLjUsXCJmdWVsXCI6MC41LFwiaHlkcm9nZW5cIjowLjV9LFwiZnJlZVwiOjAsXCJmbGF2b3JcIjpcIldvYWgsIHRoYXQncyBhIGxvdCBvZiBtYW5hLlwifSIsInJlcy13b29kIjoiMTMzMTYuMjE3Mzk5OTk5MTg4IiwiYnVpbGQtbG9nZ2luZyI6IntcIm9uXCI6dHJ1ZSxcImFtb3VudFwiOjQxLFwiYmFzZV9jb3N0XCI6e1wibW9uZXlcIjoxNX0sXCJwcmljZV9yYXRpb1wiOntcIm1vbmV5XCI6MS4xNX0sXCJnZW5lcmF0aW9uXCI6e1wibW9uZXlcIjotMSxcIndvb2RcIjoxLFwiY29hbFwiOjAuMX0sXCJtdWx0aXBsaWVyc1wiOnt9LFwiZnJlZVwiOjAsXCJmbGF2b3JcIjpcImNvbnNvbGUubG9nKCdQbGF5ZXIgcmVhZCB0b29sdGlwLicpXCJ9IiwiYnVpbGQtc193b3Jrc2hvcCI6IntcIm9uXCI6ZmFsc2UsXCJhbW91bnRcIjo1MCxcImJhc2VfY29zdFwiOnt9LFwicHJpY2VfcmF0aW9cIjp7fSxcImdlbmVyYXRpb25cIjp7XCJzdG9uZVwiOi0xLFwiaXJvblwiOjAuMixcIm1hbmFcIjotMX0sXCJtdWx0aXBsaWVyc1wiOnt9LFwidXBkYXRlXCI6XCJub3BcIixcIm1vZGVcIjpcImlyb25cIixcImZyZWVcIjowLFwiZmxhdm9yXCI6XCJcIn0iLCJidWlsZC1zX2dvbGRib29zdCI6IntcIm9uXCI6dHJ1ZSxcImFtb3VudFwiOjIsXCJiYXNlX2Nvc3RcIjp7fSxcInByaWNlX3JhdGlvXCI6e30sXCJnZW5lcmF0aW9uXCI6e1wibWFuYVwiOi0xfSxcIm11bHRpcGxpZXJzXCI6e1wibW9uZXlcIjowLjUsXCJnb2xkXCI6MC41fSxcInVwZGF0ZVwiOlwibm9wXCIsXCJmcmVlXCI6MCxcImZsYXZvclwiOlwiXCJ9IiwiYnVpbGQtc19lc3NlbmNlIjoie1wib25cIjp0cnVlLFwiYW1vdW50XCI6MCxcImJhc2VfY29zdFwiOnt9LFwicHJpY2VfcmF0aW9cIjp7fSxcImdlbmVyYXRpb25cIjp7XCJlc3NlbmNlXCI6MX0sXCJtdWx0aXBsaWVyc1wiOntcImVuZXJneVwiOjAuMSxcInJlc2VhcmNoXCI6MC4xLFwibWFuYWdlclwiOjAuMSxcIm1vbmV5XCI6MC4xLFwic3RvbmVcIjowLjEsXCJ3b29kXCI6MC4xLFwiaXJvbl9vcmVcIjowLjEsXCJjb2FsXCI6MC4xLFwiaXJvblwiOjAuMSxcImdvbGRcIjowLjEsXCJkaWFtb25kXCI6MC4xLFwiamV3ZWxyeVwiOjAuMSxcIm9pbFwiOjAuMSxcInBhcGVyXCI6MC4xLFwiaW5rXCI6MC4xLFwiYm9va1wiOjAuMSxcInNhbmRcIjowLjEsXCJnbGFzc1wiOjAuMSxcIndhdGVyXCI6MC4xLFwiaHlkcm9nZW5cIjowLjEsXCJzdGVlbF9iZWFtXCI6MC4xLFwidXJhbml1bVwiOjAuMSxcInNhbmRjYXN0bGVcIjowLjEsXCJnbGFzc19ib3R0bGVcIjowLjEsXCJtaXRocmlsXCI6MC4xLFwidm9pZFwiOjAuMX0sXCJ1cGRhdGVcIjpcIm5vcFwiLFwiZnJlZVwiOjAsXCJmbGF2b3JcIjpcIlwifSIsImJ1aWxkLWlua19yZWZpbmVyeSI6IntcIm9uXCI6dHJ1ZSxcImFtb3VudFwiOjEsXCJiYXNlX2Nvc3RcIjp7XCJtb25leVwiOjIwMCxcImlyb25cIjoxMDAsXCJvaWxcIjo1MH0sXCJwcmljZV9yYXRpb1wiOntcIm1vbmV5XCI6MS4xLFwiaXJvblwiOjEuMSxcIm9pbFwiOjEuMX0sXCJnZW5lcmF0aW9uXCI6e1wiZW5lcmd5XCI6LTEsXCJvaWxcIjotMyxcImlua1wiOjF9LFwibXVsdGlwbGllcnNcIjp7fSxcImZyZWVcIjowLFwiZmxhdm9yXCI6XCJcIn0iLCJidWlsZC1tYW5hX3B1cmlmaWVyIjoie1wib25cIjpmYWxzZSxcImFtb3VudFwiOjAsXCJiYXNlX2Nvc3RcIjp7fSxcInByaWNlX3JhdGlvXCI6e30sXCJnZW5lcmF0aW9uXCI6e1wicmVmaW5lZF9tYW5hXCI6LTEsXCJlbmVyZ3lcIjotMjUsXCJtYW5hXCI6LTUwLFwicHVyaWZpZWRfbWFuYVwiOjAuMDAxfSxcIm11bHRpcGxpZXJzXCI6e30sXCJmcmVlXCI6MCxcImZsYXZvclwiOlwiTWFrZXMgcHVyaWZpZWQgbWFuYS5cIn0iLCJidWlsZC1zX3RyYWRlIjoie1wib25cIjpmYWxzZSxcImFtb3VudFwiOjYsXCJiYXNlX2Nvc3RcIjp7fSxcInByaWNlX3JhdGlvXCI6e30sXCJnZW5lcmF0aW9uXCI6e1wibWFuYVwiOi0xfSxcIm11bHRpcGxpZXJzXCI6e30sXCJ1cGRhdGVcIjpcInRyYWRlXCIsXCJmcmVlXCI6MCxcImZsYXZvclwiOlwiXCJ9IiwiYnVpbGQtZnVybmFjZSI6IntcIm9uXCI6ZmFsc2UsXCJhbW91bnRcIjo2LFwiYmFzZV9jb3N0XCI6e1wibW9uZXlcIjoyMDAsXCJzdG9uZVwiOjUwfSxcInByaWNlX3JhdGlvXCI6e1wibW9uZXlcIjoxLjEsXCJzdG9uZVwiOjEuMn0sXCJnZW5lcmF0aW9uXCI6e1wid29vZFwiOi0zNSxcImlyb25fb3JlXCI6LTMwLFwiaXJvblwiOjEwLFwiY29hbFwiOjEwfSxcIm11bHRpcGxpZXJzXCI6e30sXCJmcmVlXCI6MCxcImZsYXZvclwiOlwiQ29tZSBvbiBpbiEgSXQncyBhIGJsYXN0IVwifSIsImJ1aWxkLWxpYnJhcnkiOiJ7XCJvblwiOmZhbHNlLFwiYW1vdW50XCI6MCxcImJhc2VfY29zdFwiOntcIm1vbmV5XCI6MjUwMCxcIndvb2RcIjoyNTAwLFwiaXJvblwiOjUwLFwiYm9va1wiOjEwfSxcInByaWNlX3JhdGlvXCI6e1wibW9uZXlcIjoxLjIsXCJpcm9uXCI6MS40LFwid29vZFwiOjAuOTUsXCJib29rXCI6MS4xfSxcImdlbmVyYXRpb25cIjp7XCJyZXNlYXJjaFwiOjF9LFwibXVsdGlwbGllcnNcIjp7fSxcImZyZWVcIjowLFwiZmxhdm9yXCI6XCJUaGV5IGRvIHZlcnkgaW1wb3J0YW50IHJlc2VhcmNoIGhlcmUuIDxiciAvPkRPIE5PVCBESVNUVVJCIFRIRSBMSUJSQVJJQU5TLlwifSIsImJ1aWxkLW9pbF93ZWxsIjoie1wib25cIjp0cnVlLFwiYW1vdW50XCI6MTQsXCJiYXNlX2Nvc3RcIjp7XCJtb25leVwiOjEwMDAsXCJzdG9uZVwiOjEwMDAsXCJpcm9uXCI6MTAwfSxcInByaWNlX3JhdGlvXCI6e1wibW9uZXlcIjoxLjIsXCJzdG9uZVwiOjEuMSxcImlyb25cIjoxLjN9LFwiZ2VuZXJhdGlvblwiOntcIm9pbFwiOjAuNX0sXCJtdWx0aXBsaWVyc1wiOnt9LFwiZnJlZVwiOjIsXCJmbGF2b3JcIjpcIldlbGwsIHRoaXMgZ2V0cyB5b3Ugb2lsLlwifSIsInJlcy1oeWRyb2dlbiI6IjAiLCJsYXN0X3ZlcnNpb24iOiJ2NS4yMy4xNzogKDYvNS8xOSkgSG9wZWZ1bGx5IGFjdHVhbGx5IGZpeCBmaWxlIHN0dWZmIiwicmVzLXN0ZWVsX2JlYW0iOiIwIiwiYnVpbGQtamV3ZWxlciI6IntcIm9uXCI6ZmFsc2UsXCJhbW91bnRcIjoxLFwiYmFzZV9jb3N0XCI6e1wibW9uZXlcIjo3NTAsXCJzdG9uZVwiOjEwMDB9LFwicHJpY2VfcmF0aW9cIjp7XCJtb25leVwiOjEuMyxcInN0b25lXCI6MS4zfSxcImdlbmVyYXRpb25cIjp7XCJnb2xkXCI6LTMsXCJkaWFtb25kXCI6LTEsXCJqZXdlbHJ5XCI6MX0sXCJtdWx0aXBsaWVyc1wiOnt9LFwiZnJlZVwiOjAsXCJmbGF2b3JcIjpcIkEgamV3ZWxlciB1c2VzIGpld2VscyB0byBtYWtlIGpld2VscnkgaW4gSnVseS5cIn0iLCJidWlsZC1vbWVnYV9tYWNoaW5lIjoie1wib25cIjpmYWxzZSxcImFtb3VudFwiOjAsXCJiYXNlX2Nvc3RcIjp7fSxcInByaWNlX3JhdGlvXCI6e30sXCJnZW5lcmF0aW9uXCI6e1widGltZVwiOi0xMCxcInJlZmluZWRfbWFuYVwiOi0xMDAsXCJwdXJpZmllZF9tYW5hXCI6LTAuMSxcImZ1ZWxcIjotMjUsXCJtYW5hXCI6LTUwMCxcImVuZXJneVwiOi0yNTAsXCJyZXNlYXJjaFwiOi01MCxcIm1hbmFnZXJcIjotNzUsXCJtb25leVwiOi01MDAwLFwiZ29sZFwiOi03NTAsXCJkaWFtb25kXCI6LTEwMDAsXCJib29rXCI6LTI1MCxcIndhdGVyXCI6LTEwMDAsXCJ1cmFuaXVtXCI6LTEwMCxcInNhbmRjYXN0bGVcIjotMSxcIm1pdGhyaWxcIjotMSxcInZvaWRcIjotMSxcIs6pXCI6MX0sXCJtdWx0aXBsaWVyc1wiOntcInN0b25lXCI6LTAuNSxcIndvb2RcIjotMC41LFwiaXJvblwiOi0wLjUsXCJvaWxcIjotMC41LFwic2FuZFwiOi0wLjV9LFwiZnJlZVwiOjAsXCJmbGF2b3JcIjpcIkNvbmRlbnNlcyB0aGUgZmFicmljIG9mIHRoZSB1bml2ZXJzZSBpdHNlbGYgaW50byDOqVwifSIsInJlcy10aW1lIjoiMCIsImJ1aWxkLWh5ZHJvZ2VuX2dlbiI6IntcIm9uXCI6ZmFsc2UsXCJhbW91bnRcIjowLFwiYmFzZV9jb3N0XCI6e1wibW9uZXlcIjoyNTAwLFwiZ2xhc3NcIjo1MDB9LFwicHJpY2VfcmF0aW9cIjp7XCJtb25leVwiOjEuMSxcImdsYXNzXCI6MS4yfSxcImdlbmVyYXRpb25cIjp7XCJlbmVyZ3lcIjotMixcIndhdGVyXCI6LTEsXCJoeWRyb2dlblwiOjJ9LFwibXVsdGlwbGllcnNcIjp7fSxcImZyZWVcIjowLFwiZmxhdm9yXCI6XCJSdW5zIGVsZWN0cmljaXR5IHRocm91Z2ggd2F0ZXIuLi5cIn0iLCJ1cGdyYWRlcyI6IltcImJldHRlcl9taW5lc1wiLFwiY2hlYXBlcl9iYW5rc1wiLFwiY2hlYXBlcl9taW5lc1wiLFwiY2hlYXBlcl9sb2dnaW5nXCIsXCJiZXR0ZXJfZ29sZFwiLFwiYmV0dGVyX2NvbXByZXNzb3JzXCIsXCJvaWxlZF9jb21wcmVzc29yc1wiLFwiYmV0dGVyX2Z1cm5hY2VcIixcImJldHRlcl9vaWxcIl0iLCJidWlsZC1zX21hbmFfcmVmaW5lcnkiOiJ7XCJvblwiOnRydWUsXCJhbW91bnRcIjoxLFwiYmFzZV9jb3N0XCI6e30sXCJwcmljZV9yYXRpb1wiOnt9LFwiZ2VuZXJhdGlvblwiOntcIm1hbmFcIjowfSxcIm11bHRpcGxpZXJzXCI6e30sXCJ1cGRhdGVcIjpcInJlZmluZXJ5XCIsXCJmcmVlXCI6MCxcImZsYXZvclwiOlwiXCJ9IiwicmVzLXJlZmluZWRfbWFuYSI6IjAiLCJyZXMtZW5lcmd5IjoiMTEiLCJidWlsZC1jaGFsbGVuZ2VfbWVkaXVtIjoie1wib25cIjpmYWxzZSxcImFtb3VudFwiOjAsXCJiYXNlX2Nvc3RcIjp7fSxcInByaWNlX3JhdGlvXCI6e30sXCJnZW5lcmF0aW9uXCI6e1wiZ29sZFwiOjUsXCJkaWFtb25kXCI6NSxcIm9pbFwiOjE1LFwicGFwZXJcIjo1LFwiaW5rXCI6NX0sXCJtdWx0aXBsaWVyc1wiOntcIm9pbFwiOjAuMSxcImJvb2tcIjowLjMsXCJnbGFzc1wiOjAuMX0sXCJmcmVlXCI6MCxcImZsYXZvclwiOlwiQW5vdGhlciBidWlsZGluZyB0byBoZWxwIHlvdSBvdXQuXCJ9IiwiYnVpbGQtbW9uZXlfcHJpbnRlciI6IntcIm9uXCI6ZmFsc2UsXCJhbW91bnRcIjowLFwiYmFzZV9jb3N0XCI6e1wibW9uZXlcIjo1MDAsXCJpcm9uXCI6MTAwLFwib2lsXCI6MTAwfSxcInByaWNlX3JhdGlvXCI6e1wibW9uZXlcIjoxLjIsXCJpcm9uXCI6MS4yLFwib2lsXCI6MS4zfSxcImdlbmVyYXRpb25cIjp7XCJlbmVyZ3lcIjotMSxcInBhcGVyXCI6LTIsXCJpbmtcIjotMSxcIm1vbmV5XCI6MzB9LFwibXVsdGlwbGllcnNcIjp7fSxcImZyZWVcIjowLFwiZmxhdm9yXCI6XCIxMDAlIGxlZ2FsLiBUcnVzdCBtZSBvbiB0aGlzLlwifSIsInJlcy1nbGFzc19ib3R0bGUiOiIwIiwicmVzLWlyb25fb3JlIjoiNzQ5Ni41MjkwOTk5OTg5MyIsImJ1aWxkLXNfbWFuYXN0b25lIjoie1wib25cIjp0cnVlLFwiYW1vdW50XCI6MixcImJhc2VfY29zdFwiOnt9LFwicHJpY2VfcmF0aW9cIjp7fSxcImdlbmVyYXRpb25cIjp7XCJtYW5hXCI6MX0sXCJtdWx0aXBsaWVyc1wiOnt9LFwidXBkYXRlXCI6XCJub3BcIixcImZyZWVcIjowLFwiZmxhdm9yXCI6XCJcIn0iLCJyZXMtZ29sZCI6IjI1NDguNjA3Mzk5OTk5OTEwMyIsImVydWxlcyI6IltdIiwiYnVpbGQtaHlkcm9nZW5fbWluZSI6IntcIm9uXCI6ZmFsc2UsXCJhbW91bnRcIjowLFwiYmFzZV9jb3N0XCI6e30sXCJwcmljZV9yYXRpb1wiOnt9LFwiZ2VuZXJhdGlvblwiOntcImh5ZHJvZ2VuXCI6MTB9LFwibXVsdGlwbGllcnNcIjp7fSxcImZyZWVcIjowLFwiZmxhdm9yXCI6XCJUaGUgbW9vbiByb2Nrcy4gQW5kIG5vdyB5b3UgY2FuIGhhdmUgdGhvc2Ugcm9ja3MuXCJ9IiwiYnVpbGQtbWl0aHJpbF9zbWVsdGVyIjoie1wib25cIjpmYWxzZSxcImFtb3VudFwiOjAsXCJiYXNlX2Nvc3RcIjp7fSxcInByaWNlX3JhdGlvXCI6e30sXCJnZW5lcmF0aW9uXCI6e1wibWFuYWdlclwiOi0xLFwiZ29sZFwiOi01LFwicmVmaW5lZF9tYW5hXCI6LTI1LFwibWl0aHJpbFwiOjAuMX0sXCJtdWx0aXBsaWVyc1wiOnt9LFwiZnJlZVwiOjAsXCJmbGF2b3JcIjpcIlwifSIsInVwZGF0ZV9pbnRlcnZhbCI6IjEwMCIsImJ1aWxkLXdhdGVyX3B1cmlmaWVyIjoie1wib25cIjpmYWxzZSxcImFtb3VudFwiOjAsXCJiYXNlX2Nvc3RcIjp7XCJtb25leVwiOjUwMCxcInN0b25lXCI6NTAwLFwic2FuZFwiOjUwMCxcImdsYXNzXCI6MTAwfSxcInByaWNlX3JhdGlvXCI6e1wibW9uZXlcIjoxLjEsXCJzdG9uZVwiOjEuMSxcInNhbmRcIjoxLjEsXCJnbGFzc1wiOjEuMX0sXCJnZW5lcmF0aW9uXCI6e1wid2F0ZXJcIjoxfSxcIm11bHRpcGxpZXJzXCI6e30sXCJmcmVlXCI6MCxcImZsYXZvclwiOlwiVG8gZmluZCBzYW5kLCBmaXJzdCB5b3UgbXVzdCBjb2xsZWN0IDEwIG1hbmEuXCJ9IiwicmVzLW1hZ2ljX2JhZyI6IjAiLCJidWlsZC1vaWxfZW5naW5lIjoie1wib25cIjp0cnVlLFwiYW1vdW50XCI6MyxcImJhc2VfY29zdFwiOntcIm1vbmV5XCI6NTAwLFwiaXJvblwiOjIwMH0sXCJwcmljZV9yYXRpb1wiOntcIm1vbmV5XCI6MS4zLFwiaXJvblwiOjEuM30sXCJnZW5lcmF0aW9uXCI6e1wib2lsXCI6LTEsXCJlbmVyZ3lcIjoxfSxcIm11bHRpcGxpZXJzXCI6e30sXCJmcmVlXCI6MCxcImZsYXZvclwiOlwiXCJ9IiwicmVzLW1hbmEiOiIwIiwiYnVpbGQtaHlkcm9nZW5fYnVybmVyIjoie1wib25cIjpmYWxzZSxcImFtb3VudFwiOjAsXCJiYXNlX2Nvc3RcIjp7XCJtb25leVwiOjI1MDAsXCJpcm9uXCI6NTAwfSxcInByaWNlX3JhdGlvXCI6e1wibW9uZXlcIjoxLjEsXCJpcm9uXCI6MS4yfSxcImdlbmVyYXRpb25cIjp7XCJoeWRyb2dlblwiOi0yMCxcImVuZXJneVwiOjE1LFwid2F0ZXJcIjo3fSxcIm11bHRpcGxpZXJzXCI6e30sXCJmcmVlXCI6MCxcImZsYXZvclwiOlwiRklSRSFcIn0iLCJyZXMtZ2xhc3MiOiIwIiwicmVzLWluayI6IjMxOC4zNjMwMDAwMDAwMDA5NyIsInJlcy11cmFuaXVtIjoiMCIsImJ1aWxkLXNfZW5jaGFudG1lbnQiOiJ7XCJvblwiOmZhbHNlLFwiYW1vdW50XCI6NTAwLFwiYmFzZV9jb3N0XCI6e30sXCJwcmljZV9yYXRpb1wiOnt9LFwiZ2VuZXJhdGlvblwiOntcIm1hbmFcIjotMX0sXCJtdWx0aXBsaWVyc1wiOnt9LFwidXBkYXRlXCI6XCJlbmNoYW50bWVudFwiLFwiaXRlbVwiOlwiXCIsXCJ0aW1lX2xlZnRcIjowLFwiZnJlZVwiOjAsXCJmbGF2b3JcIjpcIlwifSIsInJlcy1wdXJpZmllZF9tYW5hIjoiMCIsInJlcy1taXRocmlsIjoiMCIsInJlcy1wYXBlciI6IjQ4Ni45NTgwMDAwMDAwMDAzNyIsImJ1aWxkLXNfd29ya3Nob3BfMiI6IntcIm9uXCI6ZmFsc2UsXCJhbW91bnRcIjoyMDAsXCJiYXNlX2Nvc3RcIjp7fSxcInByaWNlX3JhdGlvXCI6e30sXCJnZW5lcmF0aW9uXCI6e1wibWFuYVwiOi0xfSxcIm11bHRpcGxpZXJzXCI6e30sXCJ1cGRhdGVcIjpcIndvcmtzaG9wXCIsXCJmcmVlXCI6MCxcImZsYXZvclwiOlwiXCJ9IiwiYnVpbGQtc2t5c2NyYXBlciI6IntcIm9uXCI6ZmFsc2UsXCJhbW91bnRcIjowLFwiYmFzZV9jb3N0XCI6e1wibW9uZXlcIjo1MDAwLFwic3RlZWxfYmVhbVwiOjI1LFwiZ2xhc3NcIjo1MH0sXCJwcmljZV9yYXRpb1wiOntcIm1vbmV5XCI6MS4wOSxcInN0ZWVsX2JlYW1cIjoxLjEsXCJnbGFzc1wiOjEuMX0sXCJnZW5lcmF0aW9uXCI6e1wibWFuYWdlclwiOjF9LFwibXVsdGlwbGllcnNcIjp7fSxcImZyZWVcIjowLFwiZmxhdm9yXCI6XCJPbmx5IG9uZSBwZXIgZmxvb3Igc28gdGhleSBkb24ndCBnZXQgaW4gZWFjaCBvdGhlcnMnIHdheXMuXCJ9IiwicmVzLWRpYW1vbmQiOiI2LjM0MTcwMDAwMDAwMDEyNiIsImF1dG9idWlsZCI6IltdIiwiYnVpbGQtbWFnbmV0Ijoie1wib25cIjpmYWxzZSxcImFtb3VudFwiOjAsXCJiYXNlX2Nvc3RcIjp7XCJpcm9uXCI6MTAwMDAsXCJzdGVlbF9iZWFtXCI6NTAwfSxcInByaWNlX3JhdGlvXCI6e1wiaXJvblwiOjEuMSxcInN0ZWVsX2JlYW1cIjoxLjF9LFwiZ2VuZXJhdGlvblwiOnt9LFwibXVsdGlwbGllcnNcIjp7XCJpcm9uXCI6MC4yNSxcImlyb25fb3JlXCI6MC4yNX0sXCJmcmVlXCI6MCxcImZsYXZvclwiOlwiSXQncyBqdXN0IGEgYmlnIG1hZ25ldC5cIn0iLCJhdXRvYnVpbGRfcnB0IjoiZmFsc2UiLCJyZXMtbWFuYWdlciI6IjAiLCJyZXMtZnVlbCI6IjAiLCJidWlsZC1zX3N0YXJ0Ym9vc3QiOiJ7XCJvblwiOmZhbHNlLFwiYW1vdW50XCI6MjUsXCJiYXNlX2Nvc3RcIjp7fSxcInByaWNlX3JhdGlvXCI6e30sXCJnZW5lcmF0aW9uXCI6e1wibWFuYVwiOi0xLFwibW9uZXlcIjoxLFwic3RvbmVcIjoyLFwid29vZFwiOjIsXCJpcm9uX29yZVwiOjAuMixcIm9pbFwiOjAuMDJ9LFwibXVsdGlwbGllcnNcIjp7fSxcInVwZGF0ZVwiOlwibm9wXCIsXCJmcmVlXCI6MCxcImZsYXZvclwiOlwiXCJ9IiwiYnVpbGQtc190aW1lX21ha2VyIjoie1wib25cIjpmYWxzZSxcImFtb3VudFwiOjEwMCxcImJhc2VfY29zdFwiOnt9LFwicHJpY2VfcmF0aW9cIjp7fSxcImdlbmVyYXRpb25cIjp7XCJtYW5hXCI6LTEsXCJ0aW1lXCI6MC4wMDJ9LFwibXVsdGlwbGllcnNcIjp7fSxcInVwZGF0ZVwiOlwibm9wXCIsXCJmcmVlXCI6MCxcImZsYXZvclwiOlwiXCJ9IiwicnVsZXMiOiJ7fSIsImJ1aWxkLW1pbmUiOiJ7XCJvblwiOnRydWUsXCJhbW91bnRcIjo0MixcImJhc2VfY29zdFwiOntcIm1vbmV5XCI6MTV9LFwicHJpY2VfcmF0aW9cIjp7XCJtb25leVwiOjEuMTV9LFwiZ2VuZXJhdGlvblwiOntcIm1vbmV5XCI6LTEsXCJzdG9uZVwiOjIsXCJpcm9uX29yZVwiOjAuNX0sXCJtdWx0aXBsaWVyc1wiOnt9LFwiZnJlZVwiOjEsXCJmbGF2b3JcIjpcIklUJ1MgQUxMIE1JTkUhXCJ9IiwicmVzLc6pIjoiMCIsInJlcy1zYW5kY2FzdGxlIjoiMCIsImJ1aWxkLWdvbGRfZmluZGVyIjoie1wib25cIjp0cnVlLFwiYW1vdW50XCI6NyxcImJhc2VfY29zdFwiOntcIm1vbmV5XCI6NTAwLFwic3RvbmVcIjoxMDAwLFwid29vZFwiOjQwMH0sXCJwcmljZV9yYXRpb1wiOntcIm1vbmV5XCI6MS4zLFwic3RvbmVcIjoxLjMsXCJ3b29kXCI6MS4yfSxcImdlbmVyYXRpb25cIjp7XCJzdG9uZVwiOi0xMCxcImdvbGRcIjowLjIsXCJpcm9uXCI6MC4wNX0sXCJtdWx0aXBsaWVyc1wiOnt9LFwiZnJlZVwiOjAsXCJmbGF2b3JcIjpcIlwifSIsImJ1aWxkLXNfdGltZV9tYWdpYyI6IntcIm9uXCI6ZmFsc2UsXCJhbW91bnRcIjo0MCxcImJhc2VfY29zdFwiOnt9LFwicHJpY2VfcmF0aW9cIjp7fSxcImdlbmVyYXRpb25cIjp7XCJtYW5hXCI6LTF9LFwibXVsdGlwbGllcnNcIjp7fSxcInVwZGF0ZVwiOlwidGltZVwiLFwiZnJlZVwiOjAsXCJmbGF2b3JcIjpcIlwifSIsImJ1aWxkLXJlYWN0b3IiOiJ7XCJvblwiOmZhbHNlLFwiYW1vdW50XCI6MCxcImJhc2VfY29zdFwiOntcIm1vbmV5XCI6MTAwMDAwMCxcInN0ZWVsX2JlYW1cIjoxMDAsXCJpcm9uXCI6MTAwMDB9LFwicHJpY2VfcmF0aW9cIjp7XCJtb25leVwiOjEuMSxcInN0ZWVsX2JlYW1cIjoxLjA3LFwiaXJvblwiOjEuMn0sXCJnZW5lcmF0aW9uXCI6e1wibWFuYWdlclwiOi0zLFwidXJhbml1bVwiOi0wLjEsXCJ3YXRlclwiOi0xNSxcImVuZXJneVwiOjUwfSxcIm11bHRpcGxpZXJzXCI6e30sXCJmcmVlXCI6MCxcImZsYXZvclwiOlwiRG9uJ3QgbGV0IGl0IGdvIGJvb20hXCJ9IiwicmVzLWJvb2siOiIwIiwiYXV0b2J1aWxkX2FtdCI6IjAiLCJidWlsZC1zX2ZpbmFsIjoie1wib25cIjpmYWxzZSxcImFtb3VudFwiOjUwMCxcImJhc2VfY29zdFwiOnt9LFwicHJpY2VfcmF0aW9cIjp7fSxcImdlbmVyYXRpb25cIjp7XCJtYW5hXCI6LTF9LFwibXVsdGlwbGllcnNcIjp7fSxcInVwZGF0ZVwiOlwiZmluYWxcIixcInN0cmVuZ3RoXCI6MixcImZyZWVcIjowLFwiZmxhdm9yXCI6XCJcIn0iLCJidWlsZC1jaGFsbGVuZ2VfYmFzaWMiOiJ7XCJvblwiOmZhbHNlLFwiYW1vdW50XCI6MCxcImJhc2VfY29zdFwiOnt9LFwicHJpY2VfcmF0aW9cIjp7fSxcImdlbmVyYXRpb25cIjp7XCJtb25leVwiOjEwLFwic3RvbmVcIjoyMCxcIndvb2RcIjoyMCxcImlyb25fb3JlXCI6MTAsXCJjb2FsXCI6NX0sXCJtdWx0aXBsaWVyc1wiOntcIm1vbmV5XCI6MC4xLFwic3RvbmVcIjowLjEsXCJ3b29kXCI6MC4xfSxcImZyZWVcIjowLFwiZmxhdm9yXCI6XCJDb25ncmF0dWxhdGlvbnMgb24gYmVhdGluZyB0aGUgYmFzaWMgY2hhbGxlbmdlLlwifSIsInNjcmF0Y2hwYWQiOiIiLCJidWlsZC1iaWdfbWluZSI6IntcIm9uXCI6ZmFsc2UsXCJhbW91bnRcIjowLFwiYmFzZV9jb3N0XCI6e1wibW9uZXlcIjoxMDAwMCxcInN0ZWVsX2JlYW1cIjoxMDAsXCJ3b29kXCI6MjAwMDB9LFwicHJpY2VfcmF0aW9cIjp7XCJtb25leVwiOjEuMSxcInN0ZWVsX2JlYW1cIjoxLjAzLFwid29vZFwiOjEuMX0sXCJnZW5lcmF0aW9uXCI6e1wibWFuYWdlclwiOi0xLFwibW9uZXlcIjotMTAwLFwic3RvbmVcIjozMCxcImlyb25fb3JlXCI6MTAsXCJjb2FsXCI6MyxcImlyb25cIjoyLFwiZ29sZFwiOjAuNSxcImRpYW1vbmRcIjowLjEsXCJzYW5kXCI6MTB9LFwibXVsdGlwbGllcnNcIjp7fSxcImZyZWVcIjowLFwiZmxhdm9yXCI6XCJTZXJpb3VzZXIgYnVzaW5lc3NcIn0iLCJsYXN0X3NhdmUiOiIxNTgwNDg4MzI2NDAxIiwicmVzLXdhdGVyIjoiMCIsImJ1aWxkLXN0ZWVsX3NtZWx0ZXIiOiJ7XCJvblwiOmZhbHNlLFwiYW1vdW50XCI6MCxcImJhc2VfY29zdFwiOntcImlyb25cIjoyMDAwMCxcInN0b25lXCI6NTAwMDB9LFwicHJpY2VfcmF0aW9cIjp7XCJpcm9uXCI6MS4xLFwic3RvbmVcIjoxLjF9LFwiZ2VuZXJhdGlvblwiOntcIm1hbmFnZXJcIjotMSxcImlyb25cIjotMjUsXCJjb2FsXCI6LTI1LFwic3RlZWxfYmVhbVwiOjF9LFwibXVsdGlwbGllcnNcIjp7fSxcImZyZWVcIjowLFwiZmxhdm9yXCI6XCJIb3QgaG90IGhvdCFcIn0iLCJidWlsZC1zX2FpIjoie1wib25cIjpmYWxzZSxcImFtb3VudFwiOm51bGwsXCJiYXNlX2Nvc3RcIjp7fSxcInByaWNlX3JhdGlvXCI6e30sXCJnZW5lcmF0aW9uXCI6e1wibWFuYVwiOi0xLFwibWFuYWdlclwiOjAuMDJ9LFwibXVsdGlwbGllcnNcIjp7fSxcInVwZGF0ZVwiOlwibm9wXCIsXCJmcmVlXCI6MCxcImZsYXZvclwiOlwiXCJ9IiwicmVzLW9pbCI6IjI0MzYuMDgzNjk5OTk5OTkzIiwicmVzLXNhbmQiOiIwIiwiYnVpbGQtc19hdXRvZXNzZW5jZSI6IntcIm9uXCI6ZmFsc2UsXCJhbW91bnRcIjpudWxsLFwiYmFzZV9jb3N0XCI6e30sXCJwcmljZV9yYXRpb1wiOnt9LFwiZ2VuZXJhdGlvblwiOntcIm1hbmFcIjotMX0sXCJtdWx0aXBsaWVyc1wiOnt9LFwidXBkYXRlXCI6XCJhdXRvZXNzZW5jZVwiLFwiZnJlZVwiOjAsXCJmbGF2b3JcIjpcIlwifSIsImJ1aWxkLWJpZ19iYW5rIjoie1wib25cIjpmYWxzZSxcImFtb3VudFwiOjAsXCJiYXNlX2Nvc3RcIjp7XCJtb25leVwiOjI1MDAwLFwic3RvbmVcIjoyNTAwMCxcImdsYXNzXCI6MTAwfSxcInByaWNlX3JhdGlvXCI6e1wibW9uZXlcIjoxLjIsXCJzdG9uZVwiOjEuMSxcImdsYXNzXCI6MS4yfSxcImdlbmVyYXRpb25cIjp7XCJtYW5hZ2VyXCI6LTEsXCJtb25leVwiOjUwfSxcIm11bHRpcGxpZXJzXCI6e30sXCJmcmVlXCI6MCxcImZsYXZvclwiOlwiU2VyaW91cyBidXNpbmVzc1wifSIsImJ1aWxkLXNfY2hhbGxlbmdlIjoie1wib25cIjp0cnVlLFwiYW1vdW50XCI6MSxcImJhc2VfY29zdFwiOnt9LFwicHJpY2VfcmF0aW9cIjp7fSxcImdlbmVyYXRpb25cIjp7fSxcIm11bHRpcGxpZXJzXCI6e30sXCJ1cGRhdGVcIjpcIm5vcFwiLFwiZnJlZVwiOjAsXCJmbGF2b3JcIjpcIlwifSIsInJlcy1lc3NlbmNlIjoiMCIsImZsYWdzIjoie1widG9fbW9uZXlfZGVjcmVhc2VcIjo5MDAsXCJjcmlzaXNfYXZlcnRlZFwiOmZhbHNlLFwidG9fb2lsX2RlY3JlYXNlXCI6OTAwLFwic2x1ZGdlX2xldmVsXCI6MCxcImNyaXNpc19zbG93XzFfaW5jcmVhc2VcIjowLFwic3RhcnRfYnVpbGRpbmdzXCI6dHJ1ZX0iLCJyZXMtY29hbCI6IjE2MzAwLjAwMzA5OTk5OTQ3NCIsImJ1aWxkLWJvb2tfYm9vc3QiOiJ7XCJvblwiOmZhbHNlLFwiYW1vdW50XCI6MCxcImJhc2VfY29zdFwiOnt9LFwicHJpY2VfcmF0aW9cIjp7fSxcImdlbmVyYXRpb25cIjp7XCJlbmVyZ3lcIjotMSxcImJvb2tcIjotMC4xLFwid29vZFwiOjI1MH0sXCJtdWx0aXBsaWVyc1wiOntcImJvb2tcIjowLjI1fSxcImZyZWVcIjowLFwiZmxhdm9yXCI6XCJcIn0iLCJwcmVzdGlnZV90aW1lIjoiNTAzMzc3OCIsInJlcy1qZXdlbHJ5IjoiNC41NDE5OTk5OTk5OTk5OTkiLCJidWlsZC1ib29rX3ByaW50ZXIiOiJ7XCJvblwiOmZhbHNlLFwiYW1vdW50XCI6MCxcImJhc2VfY29zdFwiOntcIm1vbmV5XCI6NTAwMCxcImlyb25cIjo1MDAsXCJvaWxcIjozMDB9LFwicHJpY2VfcmF0aW9cIjp7XCJtb25leVwiOjEuMixcImlyb25cIjoxLjIsXCJvaWxcIjoxLjN9LFwiZ2VuZXJhdGlvblwiOntcImVuZXJneVwiOi0xLFwicGFwZXJcIjotMixcImlua1wiOi0xLFwiYm9va1wiOjAuMX0sXCJtdWx0aXBsaWVyc1wiOnt9LFwiZnJlZVwiOjAsXCJmbGF2b3JcIjpcIkl0J3MgYWN0dWFsbHkganVzdCBwcmludGluZyBhIGJ1bmNoIG9mIGNvcGllcyBvZiBNeSBJbW1vcnRhbC5cIn0iLCJidWlsZC1iYW5rIjoie1wib25cIjp0cnVlLFwiYW1vdW50XCI6MTE5LFwiYmFzZV9jb3N0XCI6e1wibW9uZXlcIjoxMH0sXCJwcmljZV9yYXRpb1wiOntcIm1vbmV5XCI6MS4wN30sXCJnZW5lcmF0aW9uXCI6e1wibW9uZXlcIjoxfSxcIm11bHRpcGxpZXJzXCI6e30sXCJmcmVlXCI6MSxcImZsYXZvclwiOlwiSXQncyBhIHByZXR0eSBzbWFsbCBicmFuY2ggYmFuay5cIn0iLCJyZXMtdm9pZCI6IjAiLCJidWlsZC1nbGFzc19qZXdlbGVyIjoie1wib25cIjpmYWxzZSxcImFtb3VudFwiOjAsXCJiYXNlX2Nvc3RcIjp7XCJtb25leVwiOjI1MDAsXCJnbGFzc1wiOjMwMH0sXCJwcmljZV9yYXRpb1wiOntcIm1vbmV5XCI6MS4zLFwiZ2xhc3NcIjoxLjN9LFwiZ2VuZXJhdGlvblwiOntcImdsYXNzXCI6LTEwLFwiamV3ZWxyeVwiOjAuNX0sXCJtdWx0aXBsaWVyc1wiOnt9LFwiZnJlZVwiOjAsXCJmbGF2b3JcIjpcIk9vb29vaC4uLi4gc2hpbnkhXCJ9In0=
 |  | 
|  |  |  |  | 
| − | </nowiki> | + | Ak máme hodnotu "a*k0 + b*k1", nevieme zistiť čísla "a" a "b". | 
|  | + | Vieme však s pravdepodobnosťou "|a*a|" dostať hodnotu 0 (čím sa hodnota zmení na k0), a s pravdepodobnosťou "|b*b|" hodnotu 1 (čím sa hodnota zmení na k1). | 
|  | + |   | 
|  | + | Kvantová brána je komplexná matica 2×2, ktorá zachováva jednotkovú dĺžku vektorov. | 
|  | + | Aby to platilo, musí byť [[a b] [c d]] × [[a' c'][b' d']] = [[1 0] [0 1]]. | 
|  | + |   | 
|  | + | rotácia = [[cos q -sin q] [sin q cos q]] | 
|  | + |   | 
|  | + |   | 
|  | + | CNOT × [|+> |->] = [|-> |->]  = ako je to možné? | 
|  | + |   | 
|  | + |   | 
|  | + | Toffoli gate | 
|  | + | 	t k00z = k00z | 
|  | + | 	t k01z = k01z | 
|  | + | 	t k10z = k10z | 
|  | + | 	t k110 = k111 | 
|  | + | 	t k111 = k110 | 
|  | + |   | 
|  | + | Toffoli gate sa dá poskladať z CNOT a jednoqubitových brán, konkrétne z [[1 0][0 0.7+0.7i]] a jeho daggeru. | 
|  | + |   | 
|  | + |   | 
|  | + | Uncomputation: | 
|  | + | 	kvantové brány sú reverzibilné | 
|  | + | 	dajú sa nimi simulovať klasické výpočty, ale potrebujeme pomocné bity, ktoré sa naplnia medzivýpočtami | 
|  | + | 	ak chceme výpočet opakovať, potrebujeme pomocné bity vyčistiť | 
|  | + | 	postup: | 
|  | + | 		urobíme výpočet | 
|  | + | 		pomocou CNOT skopírujeme výsledok výpočtu do výstupných bitov | 
|  | + | 		revertneme výpočet | 
|  | + |   | 
|  | + | Hľadanie: | 
|  | + | 	začíname v stave 000... | 
|  | + | 	aplikujeme H na každý vstupný qubit, dostaneme rovnomerne pokryté všetky možnosti | 
|  | + | 	klasicky vypočítame, či je riešenie dobré a podľa toho nastavíme "solution bit" | 
|  | + | 	skopírujeme "solution bit" a revertneme výpočet | 
|  | + |   | 
|  | + |   | 
|  | + | Ak máme dva qubity v stave [a, b, c, d] a odmeriame prvý, | 
|  | + | dostaneme 0 s pravdepodobnosťou |a|^2 + |b|^2 | 
|  | + | 	druhý qubit je v stave [a / |a|^2 + |b|^2, b / |a|^2 + |b|^2] | 
|  | + | dostaneme 1 s pravdepodobnosťou |c|^2 + |d|^2, | 
|  | + | 	druhý qubit je v stave [c / |c|^2 + |d|^2, b / |c|^2 + |d|^2] | 
|  | + |   | 
|  | + | Ak máme dva qubity v stave [a b c d] a odmeriame prvý v bázach e0 = [√½ √½] a e1 = [√½ -√½], | 
|  | + | [1 0] = √½(e0 + e1) | 
|  | + | [0 1] = √½(e0 - e1) | 
|  | + | takže [a, b, c, d] = √½(a+c)[e0 0] + √½(b+d)[e0 1] + √½(a-c)[e1 0] + √½(b-d)[e1 1] | 
|  | + | pravdepodobnosť e0 je (a+c)^2+(b+d)^2 /2 | 
|  | + |   | 
|  | + | Ak máme bázy b0 = 00+11, b1 = 10+01, b2 = 00-11, b3 = 10-01 | 
|  | + | 00 = b0+b2 | 
|  | + | 01 = b1-b3 | 
|  | + | 10 = b1+b3 | 
|  | + | 11 = b0-b2 | 
|  | + |   | 
|  | + | 	https://www.youtube.com/watch?v=NZqRUH1uSlE | 
|  | + | vývoj kvantového systému v čase | 
|  | + |   | 
|  | + |   | 
|  | + |   | 
|  | + | . | 
|  | + |   | 
|  | + |   | 
|  | + | Pri modelovaní kvantového počítača potrebujeme vedieť amplitúdy všetkých možných stavov qubitov. | 
|  | + | Počítač s N qubitmi teda reprezentuje vektor s 2^N komplexnými číslami. | 
|  | + | Pri vektore nie je podstatné poradie čísel, je to skôr mapa z P(B) do C. | 
|  | + | Tradične je poradie stavov pre jeden qubit ["q0=0", "q0=1"], pre dva qubity ["q0=0 q1=0", "q0=0 q1=1", "q0=1 q1=0", "q0=1 q1=1"] čiže [|00> |01> |10> |11>], atď. | 
|  | + |   | 
|  | + | 	[1 0]  =  |0>  = qubit je (klasicky) vypnutý | 
|  | + | 	[0 1]  =  |1>  = qubit je (klasicky) zapnutý | 
|  | + | 	[a b]  =  a|0> + b|1>  = qubit je v superpozícii; "a" a "b" sú komplexné čísla; "|a|^2 + |b|^2 = 1" | 
|  | + |   | 
|  | + | Vektor "ket" je zvislý. | 
|  | + | Vektor "bra" je vodorovný a komplexné hodnoty majú otočené znamienko pri imaginárnej časti; čiže "<x| = |x>†". | 
|  | + | Kedže "x × x* = |x|^2", tak "<x|x> = <x| × |x> = | |x> |^2". | 
|  | + |   | 
|  | + | Skrátené zápisy | 
|  | + | 	[√½  √½] = |+> | 
|  | + | 	[√½ -√½] = |-> | 
|  | + |   | 
|  | + |   | 
|  | + | Fyzickú operáciu s qubitmi reprezentuje štvorcová matica komplexných čísel, mapa z P(B)×P(B) do C. | 
|  | + |   | 
|  | + | 	   ×  [p] | 
|  | + |           [q] | 
|  | + | 	[a b] [ap+bq] | 
|  | + | 	[c d] [cp+dq] | 
|  | + |   | 
|  | + | Intuitívne, stĺpec v matici je východiskový stav, riadok v matici je cieľový stav. | 
|  | + | Ak aplikujeme viac operácií, napríklad najprv A, potom B, nakoniec C, výsledok je: C(B(Ax)) = CBAx | 
|  | + |   | 
|  | + |   | 
|  | + | Ak je prvý qubit [a b] a druhý [c d], spolu sú [ac ad bc bd]. | 
|  | + | Čiže ak máme stav [a b c d], kde ad = bc, sú to dva nepreviazané qubity. | 
|  | + |   | 
|  | + | Matica [[a b][c d]] aplikovaná na prvý alebo druhý z dvoch qubitov: | 
|  | + | 	[a 0 b 0]  [a b 0 0] | 
|  | + | 	[0 a 0 b]  [c d 0 0] | 
|  | + | 	[c 0 d 0]  [0 0 a b] | 
|  | + | 	[0 c 0 d]  [0 0 c d] | 
|  | + | aplikovaná na prvý, druhý, alebo tretí z troch qubitov: | 
|  | + | 	[a 0 0 0 b 0 0 0]  [a 0 b 0 0 0 0 0]  [a b 0 0 0 0 0 0] | 
|  | + | 	[0 a 0 0 0 b 0 0]  [0 a 0 b 0 0 0 0]  [c d 0 0 0 0 0 0] | 
|  | + | 	[0 0 a 0 0 0 b 0]  [c 0 d 0 0 0 0 0]  [0 0 a b 0 0 0 0] | 
|  | + | 	[0 0 0 a 0 0 0 b]  [0 c 0 d 0 0 0 0]  [0 0 c d 0 0 0 0] | 
|  | + | 	[c 0 0 0 d 0 0 0]  [0 0 0 0 a 0 b 0]  [0 0 0 0 a b 0 0] | 
|  | + | 	[0 c 0 0 0 d 0 0]  [0 0 0 0 0 a 0 b]  [0 0 0 0 c d 0 0] | 
|  | + | 	[0 0 c 0 0 0 d 0]  [0 0 0 0 c 0 d 0]  [0 0 0 0 0 0 a b] | 
|  | + | 	[0 0 0 c 0 0 0 d]  [0 0 0 0 0 c 0 d]  [0 0 0 0 0 0 c d] | 
|  | + |   | 
|  | + | Matica [[a b c d][e f g h][i j k l][m n o p]] aplikovaná v opačnom poradí: | 
|  | + | 	[... | 
|  | + |   | 
|  | + |   | 
|  | + |   | 
|  | + | . | 
|  | + |   | 
|  | + | X[p q] = [q p] | 
|  | + | X[1 0] = [0 1]  čiže  X|0> = |1> | 
|  | + | X[0 1] = [1 0]  čiže  X|1> = |0> | 
|  | + |   | 
|  | + | Y[p q] = [-qi pi] | 
|  | + | Y[1 0] = [0  i]  čiže  Y|0> = i|1> | 
|  | + | Y[0 1] = [-i 0]  čiže  Y|1> = -i|0> | 
|  | + |   | 
|  | + | Z[p q] = [p -q] | 
|  | + | Z[1 0] = [1  0]  čiže  Y|0> = |0> | 
|  | + | Z[0 1] = [0 -1]  čiže  Y|1> = -|1> | 
|  | + |   | 
|  | + | H[p q] = [p+q p-q]÷√2 | 
|  | + | H[1 0] = [1  1]÷√2  čiže  H|0> = √½|0> + √½|1> | 
|  | + | H[0 1] = [1 -1]÷√2  čiže  H|0> = √½|0> - √½|1> | 
|  | + |   | 
|  | + | XX = I | 
|  | + | YY = I | 
|  | + | ZZ = I | 
|  | + | HH = I | 
|  | + |   | 
|  | + | |H[p q]|^2 = |√½[p+q p-q]|^2 = ½((p+q)^2 + (p-q))^2) = ½(pp + 2pq + qq + pp - 2pq + qq) = pp + qq | 
|  | + |   | 
|  | + | . | 
|  | + | H =	[1  1] | 
|  | + | 	[1 -1]÷√2 | 
|  | + |   | 
|  | + | 	[√½  0  √½   0]  [√½  √½  0   0] | 
|  | + | 	[ 0 √½   0  √½]  [√½ -√½  0   0] | 
|  | + | 	[√½  0 -√½   0]  [ 0   0 √½  √½] | 
|  | + | 	[ 0 √½   0 -√½]  [ 0   0 √½ -√½] | 
|  | + |   | 
|  | + | . | 
|  | + |   | 
|  | + | X =	[0 1] | 
|  | + | 	[1 0] | 
|  | + |   | 
|  | + | 	[0 0 1 0]  [0 1 0 0] | 
|  | + | 	[0 0 0 1]  [1 0 0 0] | 
|  | + | 	[1 0 0 0]  [0 0 0 1] | 
|  | + | 	[0 1 0 0]  [0 0 1 0] | 
|  | + |   | 
|  | + | . | 
|  | + |   | 
|  | + | Y =	[0 -i] | 
|  | + | 	[i  0] | 
|  | + |   | 
|  | + | . | 
|  | + | Z | 
|  | + | 	[1  0] | 
|  | + | 	[0 -1] | 
|  | + |   | 
|  | + | 	[1 0  0  0]  [1  0 0  0] | 
|  | + | 	[0 1  0  0]  [0 -1 0  0] | 
|  | + | 	[0 0 -1  0]  [0  0 1  0] | 
|  | + | 	[0 0  0 -1]  [0  0 0 -1] | 
|  | + |   | 
|  | + | . | 
|  | + |   | 
|  | + | CNOT - CN, NC  | 
|  | + | 	[1 0 0 0] [1 0 0 0] | 
|  | + | 	[0 1 0 0] [0 0 0 1] | 
|  | + | 	[0 0 0 1] [0 0 1 0] | 
|  | + | 	[0 0 1 0] [0 1 0 0] | 
|  | + |   | 
|  | + | Toffoli | 
|  | + | 	[1 0 0 0 0 0 0 0] | 
|  | + | 	[0 1 0 0 0 0 0 0] | 
|  | + | 	[0 0 1 0 0 0 0 0] | 
|  | + | 	[0 0 0 1 0 0 0 0] | 
|  | + | 	[0 0 0 0 1 0 0 0] | 
|  | + | 	[0 0 0 0 0 1 0 0] | 
|  | + | 	[0 0 0 0 0 0 0 1] | 
|  | + | 	[0 0 0 0 0 0 1 0] | 
|  | + |   | 
|  | + | . | 
|  | + |   | 
|  | + |   | 
|  | + | Superhusté kódovanie | 
|  | + | 	https://www.youtube.com/watch?v=w5rCn593Dig | 
|  | + |   | 
|  | + | Vytvoríme dva previazané qubity, jeden pošleme Alici, druhý Bobovi | 
|  | + |  0--[H]--[C]- | 
|  | + |  0-------[N]- | 
|  | + | [1] [√½] [√½] | 
|  | + | [0] [ 0] [ 0] | 
|  | + | [0] [√½] [ 0] | 
|  | + | [0] [ 0] [√½] | 
|  | + |   | 
|  | + | Alica má dva klasické bity, a podľa ich hodnoty urobí so svojím qubitom nasledujúcu operáciu: 00 = I, 01 = X, 10 = Z, 11 = XZ (najprv Z, potom X), výsledok pošle Bobovi | 
|  | + |  00   01   10    11 | 
|  | + | [√½] [ 0] [ √½] [  0] | 
|  | + | [ 0] [√½] [  0] [-√½] | 
|  | + | [ 0] [√½] [  0] [ √½] | 
|  | + | [√½] [ 0] [-√½] [  0] | 
|  | + |   | 
|  | + | Bob má dva qubity 00+11, 10+01, 00-11, 10-01 (všetky štyri možnosti sú na seba kolmé), revertne pôvodné previazanie, a odmeria ich. | 
|  | + | -----[C]--[H] | 
|  | + | -----[N]----- | 
|  | + | [√½] [√½] [1] = 00 | 
|  | + | [ 0] [ 0] [0] | 
|  | + | [ 0] [√½] [0] | 
|  | + | [√½] [ 0] [0] | 
|  | + |   | 
|  | + | [ 0] [ 0] [0] | 
|  | + | [√½] [√½] [1] = 01 | 
|  | + | [√½] [ 0] [0] | 
|  | + | [ 0] [√½] [0] | 
|  | + |   | 
|  | + | [ √½] [ √½] [0] | 
|  | + | [  0] [  0] [0] | 
|  | + | [  0] [-√½] [1] = 10 | 
|  | + | [-√½] [  0] [0] | 
|  | + |   | 
|  | + | [  0] [  0] [ 0] | 
|  | + | [-√½] [-√½] [ 0] | 
|  | + | [ √½] [  0] [ 0] | 
|  | + | [  0] [ √½] [-1] = 11 | 
|  | + |   | 
|  | + | . | 
|  | + |   | 
|  | + | Alica má tajný qubit [a b]. | 
|  | + | Vytvoríme dva previazané qubity [√½ 0 0 √½], jeden pošleme Alici, druhý Bobovi | 
|  | + | [a√½ 0 0 a√½ b√½ 0 0 b√½] = a×000 + a×011 + b×100 + b×111 | 
|  | + |   | 
|  | + | see: https://www.youtube.com/watch?v=3wZ35c3oYUE | 
|  | + |   | 
|  | + |   | 
|  | + | 	CNOT zo source qubitu na previazaný, Hadamard na source qubit | 
|  | + | 	odmeriame previazaný qubit; ak je 1, povieme adresátovi, nech na svojom qubite spraví X | 
|  | + | 	odmeriame source qubit; ak je 1, povieme adresátovi, nech na svojom qubite spraví Z | 
|  | + | 	teraz je adresátov qubit v rovnakom stave, ako bol source qubit na začiatku | 
|  | + | 	aj keby niekto odpočúal poslané informácie, nič mu to nepovie | 
|  | + |   | 
|  | + |   | 
|  | + | c/eJxM0sFuozoUxvGngV0jcwwkLFjklnAHFIjaEALdIGMbajCQgmkLTz-iGmlmaf31_eTFoUTxehgXVw616HXmIrvkBHTuGrZj2HvkwF7nHRGyqHnPR6I4K4j6W00HsP7uVnvbskpmItPBtu3sjQoTwNTYHyoOJiK6cAEBRgcDGYAtwDu8q1iFqoo5FbG4eTD2u49BtYDrQTNRVz-pb2M3zeWkCG13dOh06b4r9Zg0fNTA18D_N25PUfdPotfA__mvBj4duofkimvYV0PLew17fAkNCumSgWyDZljiJLfipl6i65egkK4U5GfZ_jQRZ2H2uoZtjlJ5hfR-vzGZSydI5H9vl9urxeTr_xdfdkkaiPNz-KDPgR00JytazCX2bnPsHedLkm-tK3FY0V-p2Nw8ixHt_CkHp33L3tHb3fzZ59mLuDQnuCQniNejFTXRFHSpublRkltRkuPYuy3R8iVIFq-btZnn5LjtV3YPxEWEK7mz-XyXc9Cj3Xq1X4qqpl14PZ-LYxQ2eyos7H0MHjNfkshJAnzCydhgpIE9ciZGTpWGPQ0s8PXHXBZ06Lq5F2opeE9KyZmrxplvSQpKlBj6QjD34BiA9NH9FFKQTjNROY-7qdWnuWRDR0TvkkmNRNKB8W_Fe139Obl54uMGgGU79gGM3wEAAP__quXX_AZZ | 
|  | + |   | 
|  | + | . | 
|  | + |   | 
|  | + |   | 
|  | + | Motivácia: | 
|  | + | - každý mnohočlen N-tého stupňa má N koreňov | 
|  | + | - 2D súradnice | 
|  | + | - https://en.wikipedia.org/wiki/Cubic_equation#Cardano's_formula | 
|  | + | - https://en.wikipedia.org/wiki/Steiner_inellipse | 
|  | + |   | 
|  | + | Definujme i ako i*i=-1 a predpokladajme, že platie bežné pravidlá matematiky. | 
|  | + | Nemôžeme sčítať hrušky s jablkami, preto sa a+bi nedá ďalej zjednodušiť. | 
|  | + | a+bi + c+di = (a+c)+(b+d)i | 
|  | + | a+bi - c-di = (a-c)+(b-d)i | 
|  | + | a+bi * c+di = ac + adi + bci + bdii = (ac+bd)+(ad+bc)i | 
|  | + | a+bi / c+di = (a+bi)(c-di) / (c+di)(c-di) = (ac+bd)+(bc-ad)i / cc+dd = (ac+bd)/(cc+dd)+(bc-ad)/(cc+dd)i | 
|  | + | 1 / a+bi = a/(aa+bb) - b/(aa+bb)i | 
|  | + |   | 
|  | + | geometrická interpretácia: zoom a otočenie - násobenie 2, delenie 2, násobenie i, delenie i = násobenie -i | 
|  | + | absolútna hodnota |a+bi| = sqrt(aa+bb), |cis(u)| = 1, a+bi = r*cis(u)  # u je nejednoznačné na pridanie násobku 360 | 
|  | + | r*cis(u) * s*cis(v) = (r*s)*cis(u+v) | 
|  | + | r*cis(u) / s*cis(v) = (r/s)*cis(u-v) | 
|  | + | mimochodom, aj -i je odmocnina z -1; a celkovo každé číslo má dve druhé odmocniny | 
|  | + | sqrt(r*cis(u)) = sqrt(r)*cis(u/2) alebo sqrt(r)*cis(pi + u/2) | 
|  | + | sqrt(i) = cis(45) = +-sqrt(1/2)+-sqrt(1/2)i | 
|  | + | skúška správnosti: (+-sqrt(1/2)+-sqrt(1/2)i)^2 = 1/2 -1/2 +2*1/2i = i | 
|  | + | každé číslo má tri tretie odmocniny | 
|  | + | sqrt(1) = 1 alebo +-cis(120) = -1/2 +-sqrt(3/4)i | 
|  | + | skúška správnosti: (-1/2 +- sqrt(3/4)i)^3 = (1/4 - 3/4 -+sqrt(3/4)i) * (-1/2 +- sqrt(3/4)i) = 1/4 -+sqrt(3/4)/2i +-sqrt(3/4)/2i +3/4 = 1 | 
|  | + |   | 
|  | + | vizualizácia: kladné čísla zelené, záporné červené, i modré, -i žlté; osi čierne | 
|  | + | 	https://en.wikipedia.org/wiki/Domain_coloring | 
|  | + | vizualizácia kvadratickej rovnice s 2 reálnymi, 1 reálnym, 2 komplexnými koreňmi | 
|  | + |   | 
|  | + | umocňovanie na iné ako celé číslo nie je jednoznačne definované, keďže už odmocniny (mocniny na 1/N) sú nejednoznačné | 
|  | + | reálna mocnina ako limita racionálnych mocnín... môžeme povedať akurát jej absolútnu hodnotu | 
|  | + |   | 
|  | + | čo by to znamenalo "umocniť niečo na i"? pomôže nám Taylorov rad: | 
|  | + | 	e^x = x^0/0! + x^1/1! + x^2/2! ... | 
|  | + | 	cos(x) = 1 - x^2/2! + x^4/4! ... | 
|  | + | 	sin(x) = x^1/1! - x^3/3! + x^5/5! ... | 
|  | + | z čoho by vyplývalo e^ix=cis(x) | 
|  | + |   | 
|  | + | ln(r*cis(u)) = ln(r)+ui  # nejednoznačné, lebo k u možno pridať násobky 360 | 
|  | + | ln(-1)=180i ale aj -180i | 
|  | + |   | 
|  | + | Taylorov rad pre ln(1) diverguje ak |x-1|>1 | 
|  | + | ln(x) = (x-1)^1/1 - (x-1)^2/2 + (x-1)^3/3 ... | 
|  | + | a ešte aj keď konverguje, je citlivý na preusporiadanie prvkov | 
|  | + | ln(1+i) = i - i^2/2 + i^3/3 ... = i + 1/2 - i/3 - 1/4 ... = (1/2 - 1/4 + 1/6 ...) + (1 - 1/3 + 1/5 ...)i | 
|  | + |   | 
|  | + | a^x = e^ln(a)*x | 
|  | + | 	ak a je kladné reálne, je to jednoznačné, ale inak nie | 
|  | + |   | 
|  | + | Ak berieme aj celé komplexné čísla ako celé čísla, zmení sa nám definícia prvočísla, lebo napríklad 2 = (1+i)(1-i), 5 = (2+i)(2-i) | 
|  | + | Násobenie zachováva absolútne hodnoty, takže stačí skúšať delitele s absolútnou hodnotou menšou ako odmocnina absolútnej hodnoty N | 
|  | + | Súčin dvoch celých komplexných čísel je prirodzené číslo iba ak je to (a+bi)(a-bi)=aa+bb; keďže modulo 4 aa aj bb sú {0,1}, prvočísla dávajúce zvyšok 3 po delení | 
|  | + | Neviem to dokázať, ale komplexné prvočísla sú buď typu 4k+3 alebo a+bi kde aa+bb je prvočíslo nie typu 4k+3. | 
|  | + |   | 
|  | + | . | 
|  | + |   | 
|  | + |   | 
|  | + | . | 
https://arxiv.org/pdf/1803.05316.pdf
An Invitation to Applied Category Theory
	https://quantum.country/
	https://michaelnielsen.org/blog/quantum-computing-for-the-determined/
Slovo "superpozícia" znamená lineárna kombinácia stavov.
Ak máme hodnotu "a*k0 + b*k1", nevieme zistiť čísla "a" a "b".
Vieme však s pravdepodobnosťou "|a*a|" dostať hodnotu 0 (čím sa hodnota zmení na k0), a s pravdepodobnosťou "|b*b|" hodnotu 1 (čím sa hodnota zmení na k1).
Kvantová brána je komplexná matica 2×2, ktorá zachováva jednotkovú dĺžku vektorov.
Aby to platilo, musí byť [[a b] [c d]] × [[a' c'][b' d']] = [[1 0] [0 1]].
rotácia = [[cos q -sin q] [sin q cos q]]
CNOT × [|+> |->] = [|-> |->]  = ako je to možné?
Toffoli gate
	t k00z = k00z
	t k01z = k01z
	t k10z = k10z
	t k110 = k111
	t k111 = k110
Toffoli gate sa dá poskladať z CNOT a jednoqubitových brán, konkrétne z [[1 0][0 0.7+0.7i]] a jeho daggeru.
Uncomputation:
	kvantové brány sú reverzibilné
	dajú sa nimi simulovať klasické výpočty, ale potrebujeme pomocné bity, ktoré sa naplnia medzivýpočtami
	ak chceme výpočet opakovať, potrebujeme pomocné bity vyčistiť
	postup:
		urobíme výpočet
		pomocou CNOT skopírujeme výsledok výpočtu do výstupných bitov
		revertneme výpočet
Hľadanie:
	začíname v stave 000...
	aplikujeme H na každý vstupný qubit, dostaneme rovnomerne pokryté všetky možnosti
	klasicky vypočítame, či je riešenie dobré a podľa toho nastavíme "solution bit"
	skopírujeme "solution bit" a revertneme výpočet
Ak máme dva qubity v stave [a, b, c, d] a odmeriame prvý,
dostaneme 0 s pravdepodobnosťou |a|^2 + |b|^2
	druhý qubit je v stave [a / |a|^2 + |b|^2, b / |a|^2 + |b|^2]
dostaneme 1 s pravdepodobnosťou |c|^2 + |d|^2,
	druhý qubit je v stave [c / |c|^2 + |d|^2, b / |c|^2 + |d|^2]
Ak máme dva qubity v stave [a b c d] a odmeriame prvý v bázach e0 = [√½ √½] a e1 = [√½ -√½],
[1 0] = √½(e0 + e1)
[0 1] = √½(e0 - e1)
takže [a, b, c, d] = √½(a+c)[e0 0] + √½(b+d)[e0 1] + √½(a-c)[e1 0] + √½(b-d)[e1 1]
pravdepodobnosť e0 je (a+c)^2+(b+d)^2 /2
Ak máme bázy b0 = 00+11, b1 = 10+01, b2 = 00-11, b3 = 10-01
00 = b0+b2
01 = b1-b3
10 = b1+b3
11 = b0-b2
	https://www.youtube.com/watch?v=NZqRUH1uSlE
vývoj kvantového systému v čase
.
Pri modelovaní kvantového počítača potrebujeme vedieť amplitúdy všetkých možných stavov qubitov.
Počítač s N qubitmi teda reprezentuje vektor s 2^N komplexnými číslami.
Pri vektore nie je podstatné poradie čísel, je to skôr mapa z P(B) do C.
Tradične je poradie stavov pre jeden qubit ["q0=0", "q0=1"], pre dva qubity ["q0=0 q1=0", "q0=0 q1=1", "q0=1 q1=0", "q0=1 q1=1"] čiže [|00> |01> |10> |11>], atď.
	[1 0]  =  |0>  = qubit je (klasicky) vypnutý
	[0 1]  =  |1>  = qubit je (klasicky) zapnutý
	[a b]  =  a|0> + b|1>  = qubit je v superpozícii; "a" a "b" sú komplexné čísla; "|a|^2 + |b|^2 = 1"
Vektor "ket" je zvislý.
Vektor "bra" je vodorovný a komplexné hodnoty majú otočené znamienko pri imaginárnej časti; čiže "<x| = |x>†".
Kedže "x × x* = |x|^2", tak "<x|x> = <x| × |x> = | |x> |^2".
Skrátené zápisy
	[√½  √½] = |+>
	[√½ -√½] = |->
Fyzickú operáciu s qubitmi reprezentuje štvorcová matica komplexných čísel, mapa z P(B)×P(B) do C.
	   ×  [p]
         [q]
	[a b] [ap+bq]
	[c d] [cp+dq]
Intuitívne, stĺpec v matici je východiskový stav, riadok v matici je cieľový stav.
Ak aplikujeme viac operácií, napríklad najprv A, potom B, nakoniec C, výsledok je: C(B(Ax)) = CBAx
Ak je prvý qubit [a b] a druhý [c d], spolu sú [ac ad bc bd].
Čiže ak máme stav [a b c d], kde ad = bc, sú to dva nepreviazané qubity.
Matica [[a b][c d]] aplikovaná na prvý alebo druhý z dvoch qubitov:
	[a 0 b 0]  [a b 0 0]
	[0 a 0 b]  [c d 0 0]
	[c 0 d 0]  [0 0 a b]
	[0 c 0 d]  [0 0 c d]
aplikovaná na prvý, druhý, alebo tretí z troch qubitov:
	[a 0 0 0 b 0 0 0]  [a 0 b 0 0 0 0 0]  [a b 0 0 0 0 0 0]
	[0 a 0 0 0 b 0 0]  [0 a 0 b 0 0 0 0]  [c d 0 0 0 0 0 0]
	[0 0 a 0 0 0 b 0]  [c 0 d 0 0 0 0 0]  [0 0 a b 0 0 0 0]
	[0 0 0 a 0 0 0 b]  [0 c 0 d 0 0 0 0]  [0 0 c d 0 0 0 0]
	[c 0 0 0 d 0 0 0]  [0 0 0 0 a 0 b 0]  [0 0 0 0 a b 0 0]
	[0 c 0 0 0 d 0 0]  [0 0 0 0 0 a 0 b]  [0 0 0 0 c d 0 0]
	[0 0 c 0 0 0 d 0]  [0 0 0 0 c 0 d 0]  [0 0 0 0 0 0 a b]
	[0 0 0 c 0 0 0 d]  [0 0 0 0 0 c 0 d]  [0 0 0 0 0 0 c d]
Matica [[a b c d][e f g h][i j k l][m n o p]] aplikovaná v opačnom poradí:
	[...
.
X[p q] = [q p]
X[1 0] = [0 1]  čiže  X|0> = |1>
X[0 1] = [1 0]  čiže  X|1> = |0>
Y[p q] = [-qi pi]
Y[1 0] = [0  i]  čiže  Y|0> = i|1>
Y[0 1] = [-i 0]  čiže  Y|1> = -i|0>
Z[p q] = [p -q]
Z[1 0] = [1  0]  čiže  Y|0> = |0>
Z[0 1] = [0 -1]  čiže  Y|1> = -|1>
H[p q] = [p+q p-q]÷√2
H[1 0] = [1  1]÷√2  čiže  H|0> = √½|0> + √½|1>
H[0 1] = [1 -1]÷√2  čiže  H|0> = √½|0> - √½|1>
XX = I
YY = I
ZZ = I
HH = I
|H[p q]|^2 = |√½[p+q p-q]|^2 = ½((p+q)^2 + (p-q))^2) = ½(pp + 2pq + qq + pp - 2pq + qq) = pp + qq
.
H =	[1  1]
	[1 -1]÷√2
	[√½  0  √½   0]  [√½  √½  0   0]
	[ 0 √½   0  √½]  [√½ -√½  0   0]
	[√½  0 -√½   0]  [ 0   0 √½  √½]
	[ 0 √½   0 -√½]  [ 0   0 √½ -√½]
.
X =	[0 1]
	[1 0]
	[0 0 1 0]  [0 1 0 0]
	[0 0 0 1]  [1 0 0 0]
	[1 0 0 0]  [0 0 0 1]
	[0 1 0 0]  [0 0 1 0]
.
Y =	[0 -i]
	[i  0]
.
Z
	[1  0]
	[0 -1]
	[1 0  0  0]  [1  0 0  0]
	[0 1  0  0]  [0 -1 0  0]
	[0 0 -1  0]  [0  0 1  0]
	[0 0  0 -1]  [0  0 0 -1]
.
CNOT - CN, NC 
	[1 0 0 0] [1 0 0 0]
	[0 1 0 0] [0 0 0 1]
	[0 0 0 1] [0 0 1 0]
	[0 0 1 0] [0 1 0 0]
Toffoli
	[1 0 0 0 0 0 0 0]
	[0 1 0 0 0 0 0 0]
	[0 0 1 0 0 0 0 0]
	[0 0 0 1 0 0 0 0]
	[0 0 0 0 1 0 0 0]
	[0 0 0 0 0 1 0 0]
	[0 0 0 0 0 0 0 1]
	[0 0 0 0 0 0 1 0]
.
Superhusté kódovanie
	https://www.youtube.com/watch?v=w5rCn593Dig
Vytvoríme dva previazané qubity, jeden pošleme Alici, druhý Bobovi
0--[H]--[C]-
0-------[N]-
[1] [√½] [√½]
[0] [ 0] [ 0]
[0] [√½] [ 0]
[0] [ 0] [√½]
Alica má dva klasické bity, a podľa ich hodnoty urobí so svojím qubitom nasledujúcu operáciu: 00 = I, 01 = X, 10 = Z, 11 = XZ (najprv Z, potom X), výsledok pošle Bobovi
00   01   10    11
[√½] [ 0] [ √½] [  0]
[ 0] [√½] [  0] [-√½]
[ 0] [√½] [  0] [ √½]
[√½] [ 0] [-√½] [  0]
Bob má dva qubity 00+11, 10+01, 00-11, 10-01 (všetky štyri možnosti sú na seba kolmé), revertne pôvodné previazanie, a odmeria ich.
[C]--[H]
[N]-----
[√½] [√½] [1] = 00
[ 0] [ 0] [0]
[ 0] [√½] [0]
[√½] [ 0] [0]
[ 0] [ 0] [0]
[√½] [√½] [1] = 01
[√½] [ 0] [0]
[ 0] [√½] [0]
[ √½] [ √½] [0]
[  0] [  0] [0]
[  0] [-√½] [1] = 10
[-√½] [  0] [0]
[  0] [  0] [ 0]
[-√½] [-√½] [ 0]
[ √½] [  0] [ 0]
[  0] [ √½] [-1] = 11
.
Alica má tajný qubit [a b].
Vytvoríme dva previazané qubity [√½ 0 0 √½], jeden pošleme Alici, druhý Bobovi
[a√½ 0 0 a√½ b√½ 0 0 b√½] = a×000 + a×011 + b×100 + b×111
see: https://www.youtube.com/watch?v=3wZ35c3oYUE
	CNOT zo source qubitu na previazaný, Hadamard na source qubit
	odmeriame previazaný qubit; ak je 1, povieme adresátovi, nech na svojom qubite spraví X
	odmeriame source qubit; ak je 1, povieme adresátovi, nech na svojom qubite spraví Z
	teraz je adresátov qubit v rovnakom stave, ako bol source qubit na začiatku
	aj keby niekto odpočúal poslané informácie, nič mu to nepovie
c/eJxM0sFuozoUxvGngV0jcwwkLFjklnAHFIjaEALdIGMbajCQgmkLTz-iGmlmaf31_eTFoUTxehgXVw616HXmIrvkBHTuGrZj2HvkwF7nHRGyqHnPR6I4K4j6W00HsP7uVnvbskpmItPBtu3sjQoTwNTYHyoOJiK6cAEBRgcDGYAtwDu8q1iFqoo5FbG4eTD2u49BtYDrQTNRVz-pb2M3zeWkCG13dOh06b4r9Zg0fNTA18D_N25PUfdPotfA__mvBj4duofkimvYV0PLew17fAkNCumSgWyDZljiJLfipl6i65egkK4U5GfZ_jQRZ2H2uoZtjlJ5hfR-vzGZSydI5H9vl9urxeTr_xdfdkkaiPNz-KDPgR00JytazCX2bnPsHedLkm-tK3FY0V-p2Nw8ixHt_CkHp33L3tHb3fzZ59mLuDQnuCQniNejFTXRFHSpublRkltRkuPYuy3R8iVIFq-btZnn5LjtV3YPxEWEK7mz-XyXc9Cj3Xq1X4qqpl14PZ-LYxQ2eyos7H0MHjNfkshJAnzCydhgpIE9ciZGTpWGPQ0s8PXHXBZ06Lq5F2opeE9KyZmrxplvSQpKlBj6QjD34BiA9NH9FFKQTjNROY-7qdWnuWRDR0TvkkmNRNKB8W_Fe139Obl54uMGgGU79gGM3wEAAP__quXX_AZZ
.
Motivácia:
- každý mnohočlen N-tého stupňa má N koreňov
- 2D súradnice
- https://en.wikipedia.org/wiki/Cubic_equation#Cardano's_formula
- https://en.wikipedia.org/wiki/Steiner_inellipse
Definujme i ako i*i=-1 a predpokladajme, že platie bežné pravidlá matematiky.
Nemôžeme sčítať hrušky s jablkami, preto sa a+bi nedá ďalej zjednodušiť.
a+bi + c+di = (a+c)+(b+d)i
a+bi - c-di = (a-c)+(b-d)i
a+bi * c+di = ac + adi + bci + bdii = (ac+bd)+(ad+bc)i
a+bi / c+di = (a+bi)(c-di) / (c+di)(c-di) = (ac+bd)+(bc-ad)i / cc+dd = (ac+bd)/(cc+dd)+(bc-ad)/(cc+dd)i
1 / a+bi = a/(aa+bb) - b/(aa+bb)i
geometrická interpretácia: zoom a otočenie - násobenie 2, delenie 2, násobenie i, delenie i = násobenie -i
absolútna hodnota |a+bi| = sqrt(aa+bb), |cis(u)| = 1, a+bi = r*cis(u)  # u je nejednoznačné na pridanie násobku 360
r*cis(u) * s*cis(v) = (r*s)*cis(u+v)
r*cis(u) / s*cis(v) = (r/s)*cis(u-v)
mimochodom, aj -i je odmocnina z -1; a celkovo každé číslo má dve druhé odmocniny
sqrt(r*cis(u)) = sqrt(r)*cis(u/2) alebo sqrt(r)*cis(pi + u/2)
sqrt(i) = cis(45) = +-sqrt(1/2)+-sqrt(1/2)i
skúška správnosti: (+-sqrt(1/2)+-sqrt(1/2)i)^2 = 1/2 -1/2 +2*1/2i = i
každé číslo má tri tretie odmocniny
sqrt(1) = 1 alebo +-cis(120) = -1/2 +-sqrt(3/4)i
skúška správnosti: (-1/2 +- sqrt(3/4)i)^3 = (1/4 - 3/4 -+sqrt(3/4)i) * (-1/2 +- sqrt(3/4)i) = 1/4 -+sqrt(3/4)/2i +-sqrt(3/4)/2i +3/4 = 1
vizualizácia: kladné čísla zelené, záporné červené, i modré, -i žlté; osi čierne
	https://en.wikipedia.org/wiki/Domain_coloring
vizualizácia kvadratickej rovnice s 2 reálnymi, 1 reálnym, 2 komplexnými koreňmi
umocňovanie na iné ako celé číslo nie je jednoznačne definované, keďže už odmocniny (mocniny na 1/N) sú nejednoznačné
reálna mocnina ako limita racionálnych mocnín... môžeme povedať akurát jej absolútnu hodnotu
čo by to znamenalo "umocniť niečo na i"? pomôže nám Taylorov rad:
	e^x = x^0/0! + x^1/1! + x^2/2! ...
	cos(x) = 1 - x^2/2! + x^4/4! ...
	sin(x) = x^1/1! - x^3/3! + x^5/5! ...
z čoho by vyplývalo e^ix=cis(x)
ln(r*cis(u)) = ln(r)+ui  # nejednoznačné, lebo k u možno pridať násobky 360
ln(-1)=180i ale aj -180i
Taylorov rad pre ln(1) diverguje ak |x-1|>1
ln(x) = (x-1)^1/1 - (x-1)^2/2 + (x-1)^3/3 ...
a ešte aj keď konverguje, je citlivý na preusporiadanie prvkov
ln(1+i) = i - i^2/2 + i^3/3 ... = i + 1/2 - i/3 - 1/4 ... = (1/2 - 1/4 + 1/6 ...) + (1 - 1/3 + 1/5 ...)i
a^x = e^ln(a)*x
	ak a je kladné reálne, je to jednoznačné, ale inak nie
Ak berieme aj celé komplexné čísla ako celé čísla, zmení sa nám definícia prvočísla, lebo napríklad 2 = (1+i)(1-i), 5 = (2+i)(2-i)
Násobenie zachováva absolútne hodnoty, takže stačí skúšať delitele s absolútnou hodnotou menšou ako odmocnina absolútnej hodnoty N
Súčin dvoch celých komplexných čísel je prirodzené číslo iba ak je to (a+bi)(a-bi)=aa+bb; keďže modulo 4 aa aj bb sú {0,1}, prvočísla dávajúce zvyšok 3 po delení
Neviem to dokázať, ale komplexné prvočísla sú buď typu 4k+3 alebo a+bi kde aa+bb je prvočíslo nie typu 4k+3.
.
.