qsharp-lang 1.26.2-dev → 1.26.3-dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. package/dist/data-structures/circuit.d.ts +0 -15
  2. package/dist/data-structures/circuit.js +1 -19
  3. package/dist/katas-content.generated.js +1 -1
  4. package/dist/katas-content.generated.md.js +1 -1
  5. package/dist/samples.generated.js +4 -4
  6. package/docs/Microsoft.Quantum.Core/IsRangeEmpty.md +1 -1
  7. package/docs/Microsoft.Quantum.Core/Length.md +1 -1
  8. package/docs/Microsoft.Quantum.Core/RangeEnd.md +1 -1
  9. package/docs/Microsoft.Quantum.Core/RangeStart.md +1 -1
  10. package/docs/Microsoft.Quantum.Core/Repeated.md +1 -1
  11. package/docs/Microsoft.Quantum.Core/index.md +1 -1
  12. package/docs/Std.Arithmetic/AddLE.md +1 -1
  13. package/docs/Std.Arithmetic/ApplyIfEqualL.md +1 -1
  14. package/docs/Std.Arithmetic/ApplyIfEqualLE.md +1 -1
  15. package/docs/Std.Arithmetic/ApplyIfGreaterL.md +1 -1
  16. package/docs/Std.Arithmetic/ApplyIfGreaterLE.md +1 -1
  17. package/docs/Std.Arithmetic/ApplyIfGreaterOrEqualL.md +1 -1
  18. package/docs/Std.Arithmetic/ApplyIfGreaterOrEqualLE.md +1 -1
  19. package/docs/Std.Arithmetic/ApplyIfLessL.md +1 -1
  20. package/docs/Std.Arithmetic/ApplyIfLessLE.md +1 -1
  21. package/docs/Std.Arithmetic/ApplyIfLessOrEqualL.md +1 -1
  22. package/docs/Std.Arithmetic/ApplyIfLessOrEqualLE.md +1 -1
  23. package/docs/Std.Arithmetic/FourierTDIncByLE.md +1 -1
  24. package/docs/Std.Arithmetic/IncByI.md +1 -1
  25. package/docs/Std.Arithmetic/IncByIUsingIncByLE.md +1 -1
  26. package/docs/Std.Arithmetic/IncByL.md +1 -1
  27. package/docs/Std.Arithmetic/IncByLE.md +1 -1
  28. package/docs/Std.Arithmetic/IncByLEUsingAddLE.md +1 -1
  29. package/docs/Std.Arithmetic/IncByLUsingIncByLE.md +1 -1
  30. package/docs/Std.Arithmetic/LookAheadDKRSAddLE.md +1 -1
  31. package/docs/Std.Arithmetic/MAJ.md +1 -1
  32. package/docs/Std.Arithmetic/ReflectAboutInteger.md +1 -1
  33. package/docs/Std.Arithmetic/RippleCarryCGAddLE.md +1 -1
  34. package/docs/Std.Arithmetic/RippleCarryCGIncByLE.md +1 -1
  35. package/docs/Std.Arithmetic/RippleCarryTTKIncByLE.md +1 -1
  36. package/docs/Std.Arithmetic/index.md +1 -1
  37. package/docs/Std.Arrays/All.md +1 -1
  38. package/docs/Std.Arrays/Any.md +1 -1
  39. package/docs/Std.Arrays/Chunks.md +1 -1
  40. package/docs/Std.Arrays/CircularlyShifted.md +1 -1
  41. package/docs/Std.Arrays/ColumnAt.md +1 -1
  42. package/docs/Std.Arrays/Count.md +1 -1
  43. package/docs/Std.Arrays/Diagonal.md +1 -1
  44. package/docs/Std.Arrays/DrawMany.md +1 -1
  45. package/docs/Std.Arrays/Enumerated.md +1 -1
  46. package/docs/Std.Arrays/Excluding.md +1 -1
  47. package/docs/Std.Arrays/Filtered.md +1 -1
  48. package/docs/Std.Arrays/FlatMapped.md +1 -1
  49. package/docs/Std.Arrays/Flattened.md +1 -1
  50. package/docs/Std.Arrays/Fold.md +1 -1
  51. package/docs/Std.Arrays/ForEach.md +1 -1
  52. package/docs/Std.Arrays/Head.md +1 -1
  53. package/docs/Std.Arrays/HeadAndRest.md +1 -1
  54. package/docs/Std.Arrays/IndexOf.md +1 -1
  55. package/docs/Std.Arrays/IndexRange.md +1 -1
  56. package/docs/Std.Arrays/Interleaved.md +1 -1
  57. package/docs/Std.Arrays/IsEmpty.md +1 -1
  58. package/docs/Std.Arrays/IsRectangularArray.md +1 -1
  59. package/docs/Std.Arrays/IsSorted.md +1 -1
  60. package/docs/Std.Arrays/IsSquareArray.md +1 -1
  61. package/docs/Std.Arrays/Mapped.md +1 -1
  62. package/docs/Std.Arrays/MappedByIndex.md +1 -1
  63. package/docs/Std.Arrays/MappedOverRange.md +1 -1
  64. package/docs/Std.Arrays/Most.md +1 -1
  65. package/docs/Std.Arrays/MostAndTail.md +1 -1
  66. package/docs/Std.Arrays/Padded.md +1 -1
  67. package/docs/Std.Arrays/Partitioned.md +1 -1
  68. package/docs/Std.Arrays/Rest.md +1 -1
  69. package/docs/Std.Arrays/Reversed.md +1 -1
  70. package/docs/Std.Arrays/SequenceI.md +1 -1
  71. package/docs/Std.Arrays/SequenceL.md +1 -1
  72. package/docs/Std.Arrays/Sorted.md +1 -1
  73. package/docs/Std.Arrays/Subarray.md +1 -1
  74. package/docs/Std.Arrays/Swapped.md +1 -1
  75. package/docs/Std.Arrays/Tail.md +1 -1
  76. package/docs/Std.Arrays/Transposed.md +1 -1
  77. package/docs/Std.Arrays/Unzipped.md +1 -1
  78. package/docs/Std.Arrays/Where.md +1 -1
  79. package/docs/Std.Arrays/Windows.md +1 -1
  80. package/docs/Std.Arrays/Zipped.md +1 -1
  81. package/docs/Std.Arrays/index.md +1 -1
  82. package/docs/Std.Canon/ApplyCNOTChain.md +1 -1
  83. package/docs/Std.Canon/ApplyControlledOnBitString.md +1 -1
  84. package/docs/Std.Canon/ApplyControlledOnInt.md +1 -1
  85. package/docs/Std.Canon/ApplyOperationPowerA.md +1 -1
  86. package/docs/Std.Canon/ApplyOperationPowerCA.md +1 -1
  87. package/docs/Std.Canon/ApplyP.md +1 -1
  88. package/docs/Std.Canon/ApplyPauli.md +1 -1
  89. package/docs/Std.Canon/ApplyPauliFromBitString.md +1 -1
  90. package/docs/Std.Canon/ApplyPauliFromInt.md +1 -1
  91. package/docs/Std.Canon/ApplyQFT.md +1 -1
  92. package/docs/Std.Canon/ApplyQPE.md +1 -1
  93. package/docs/Std.Canon/ApplyToEach.md +1 -1
  94. package/docs/Std.Canon/ApplyToEachA.md +1 -1
  95. package/docs/Std.Canon/ApplyToEachC.md +1 -1
  96. package/docs/Std.Canon/ApplyToEachCA.md +1 -1
  97. package/docs/Std.Canon/ApplyXorInPlace.md +1 -1
  98. package/docs/Std.Canon/ApplyXorInPlaceL.md +1 -1
  99. package/docs/Std.Canon/CX.md +1 -1
  100. package/docs/Std.Canon/CY.md +1 -1
  101. package/docs/Std.Canon/CZ.md +1 -1
  102. package/docs/Std.Canon/Fst.md +1 -1
  103. package/docs/Std.Canon/MapPauliAxis.md +1 -1
  104. package/docs/Std.Canon/Relabel.md +1 -1
  105. package/docs/Std.Canon/Snd.md +1 -1
  106. package/docs/Std.Canon/SwapReverseRegister.md +1 -1
  107. package/docs/Std.Canon/index.md +1 -1
  108. package/docs/Std.Convert/BigIntAsBoolArray.md +1 -1
  109. package/docs/Std.Convert/BigIntAsInt.md +1 -1
  110. package/docs/Std.Convert/BoolArrayAsBigInt.md +1 -1
  111. package/docs/Std.Convert/BoolArrayAsInt.md +1 -1
  112. package/docs/Std.Convert/BoolArrayAsResultArray.md +1 -1
  113. package/docs/Std.Convert/BoolAsResult.md +1 -1
  114. package/docs/Std.Convert/ComplexAsComplexPolar.md +1 -1
  115. package/docs/Std.Convert/ComplexPolarAsComplex.md +1 -1
  116. package/docs/Std.Convert/DoubleAsStringWithPrecision.md +1 -1
  117. package/docs/Std.Convert/IntAsBigInt.md +1 -1
  118. package/docs/Std.Convert/IntAsBoolArray.md +1 -1
  119. package/docs/Std.Convert/IntAsDouble.md +1 -1
  120. package/docs/Std.Convert/ResultArrayAsBoolArray.md +1 -1
  121. package/docs/Std.Convert/ResultArrayAsInt.md +1 -1
  122. package/docs/Std.Convert/ResultAsBool.md +1 -1
  123. package/docs/Std.Convert/index.md +1 -1
  124. package/docs/Std.Core/Complex.md +1 -1
  125. package/docs/Std.Core/Length.md +1 -1
  126. package/docs/Std.Core/Repeated.md +1 -1
  127. package/docs/Std.Core/index.md +1 -1
  128. package/docs/Std.Diagnostics/ApplyIdleNoise.md +1 -1
  129. package/docs/Std.Diagnostics/BitFlipNoise.md +1 -1
  130. package/docs/Std.Diagnostics/CheckAllZero.md +1 -1
  131. package/docs/Std.Diagnostics/CheckOperationsAreEqual.md +1 -1
  132. package/docs/Std.Diagnostics/CheckZero.md +1 -1
  133. package/docs/Std.Diagnostics/ConfigurePauliNoise.md +1 -1
  134. package/docs/Std.Diagnostics/ConfigureQubitLoss.md +1 -1
  135. package/docs/Std.Diagnostics/DepolarizingNoise.md +1 -1
  136. package/docs/Std.Diagnostics/DumpMachine.md +1 -1
  137. package/docs/Std.Diagnostics/DumpOperation.md +1 -1
  138. package/docs/Std.Diagnostics/DumpRegister.md +1 -1
  139. package/docs/Std.Diagnostics/Fact.md +1 -1
  140. package/docs/Std.Diagnostics/NoNoise.md +1 -1
  141. package/docs/Std.Diagnostics/PhaseFlipNoise.md +1 -1
  142. package/docs/Std.Diagnostics/PostSelectZ.md +40 -0
  143. package/docs/Std.Diagnostics/StartCountingFunction.md +1 -1
  144. package/docs/Std.Diagnostics/StartCountingOperation.md +1 -1
  145. package/docs/Std.Diagnostics/StartCountingQubits.md +1 -1
  146. package/docs/Std.Diagnostics/StopCountingFunction.md +1 -1
  147. package/docs/Std.Diagnostics/StopCountingOperation.md +1 -1
  148. package/docs/Std.Diagnostics/StopCountingQubits.md +1 -1
  149. package/docs/Std.Diagnostics/index.md +2 -1
  150. package/docs/Std.Intrinsic/AND.md +1 -1
  151. package/docs/Std.Intrinsic/ApplyUnitary.md +1 -1
  152. package/docs/Std.Intrinsic/CCNOT.md +1 -1
  153. package/docs/Std.Intrinsic/CNOT.md +1 -1
  154. package/docs/Std.Intrinsic/Exp.md +1 -1
  155. package/docs/Std.Intrinsic/H.md +1 -1
  156. package/docs/Std.Intrinsic/I.md +1 -1
  157. package/docs/Std.Intrinsic/M.md +1 -1
  158. package/docs/Std.Intrinsic/Measure.md +1 -1
  159. package/docs/Std.Intrinsic/Message.md +1 -1
  160. package/docs/Std.Intrinsic/R.md +1 -1
  161. package/docs/Std.Intrinsic/R1.md +1 -1
  162. package/docs/Std.Intrinsic/R1Frac.md +1 -1
  163. package/docs/Std.Intrinsic/RFrac.md +1 -1
  164. package/docs/Std.Intrinsic/Reset.md +1 -1
  165. package/docs/Std.Intrinsic/ResetAll.md +1 -1
  166. package/docs/Std.Intrinsic/Rx.md +1 -1
  167. package/docs/Std.Intrinsic/Rxx.md +1 -1
  168. package/docs/Std.Intrinsic/Ry.md +1 -1
  169. package/docs/Std.Intrinsic/Ryy.md +1 -1
  170. package/docs/Std.Intrinsic/Rz.md +1 -1
  171. package/docs/Std.Intrinsic/Rzz.md +1 -1
  172. package/docs/Std.Intrinsic/S.md +1 -1
  173. package/docs/Std.Intrinsic/SWAP.md +1 -1
  174. package/docs/Std.Intrinsic/SX.md +1 -1
  175. package/docs/Std.Intrinsic/T.md +1 -1
  176. package/docs/Std.Intrinsic/X.md +1 -1
  177. package/docs/Std.Intrinsic/Y.md +1 -1
  178. package/docs/Std.Intrinsic/Z.md +1 -1
  179. package/docs/Std.Intrinsic/index.md +1 -1
  180. package/docs/Std.Logical/Xor.md +1 -1
  181. package/docs/Std.Logical/index.md +1 -1
  182. package/docs/Std.Math/AbsComplex.md +1 -1
  183. package/docs/Std.Math/AbsComplexPolar.md +1 -1
  184. package/docs/Std.Math/AbsD.md +1 -1
  185. package/docs/Std.Math/AbsI.md +1 -1
  186. package/docs/Std.Math/AbsL.md +1 -1
  187. package/docs/Std.Math/AbsSquaredComplex.md +1 -1
  188. package/docs/Std.Math/AbsSquaredComplexPolar.md +1 -1
  189. package/docs/Std.Math/ApproximateFactorial.md +1 -1
  190. package/docs/Std.Math/ArcCos.md +1 -1
  191. package/docs/Std.Math/ArcCosh.md +1 -1
  192. package/docs/Std.Math/ArcSin.md +1 -1
  193. package/docs/Std.Math/ArcSinh.md +1 -1
  194. package/docs/Std.Math/ArcTan.md +1 -1
  195. package/docs/Std.Math/ArcTan2.md +1 -1
  196. package/docs/Std.Math/ArcTanh.md +1 -1
  197. package/docs/Std.Math/ArgComplex.md +1 -1
  198. package/docs/Std.Math/ArgComplexPolar.md +1 -1
  199. package/docs/Std.Math/Binom.md +1 -1
  200. package/docs/Std.Math/BitSizeI.md +1 -1
  201. package/docs/Std.Math/BitSizeL.md +1 -1
  202. package/docs/Std.Math/Ceiling.md +1 -1
  203. package/docs/Std.Math/Complex.md +1 -1
  204. package/docs/Std.Math/ComplexPolar.md +1 -1
  205. package/docs/Std.Math/ContinuedFractionConvergentI.md +1 -1
  206. package/docs/Std.Math/ContinuedFractionConvergentL.md +1 -1
  207. package/docs/Std.Math/Cos.md +1 -1
  208. package/docs/Std.Math/Cosh.md +1 -1
  209. package/docs/Std.Math/DivRemI.md +1 -1
  210. package/docs/Std.Math/DivRemL.md +1 -1
  211. package/docs/Std.Math/DividedByC.md +1 -1
  212. package/docs/Std.Math/DividedByCP.md +1 -1
  213. package/docs/Std.Math/E.md +1 -1
  214. package/docs/Std.Math/ExpModI.md +1 -1
  215. package/docs/Std.Math/ExpModL.md +1 -1
  216. package/docs/Std.Math/ExtendedGreatestCommonDivisorI.md +1 -1
  217. package/docs/Std.Math/ExtendedGreatestCommonDivisorL.md +1 -1
  218. package/docs/Std.Math/FactorialI.md +1 -1
  219. package/docs/Std.Math/FactorialL.md +1 -1
  220. package/docs/Std.Math/Floor.md +1 -1
  221. package/docs/Std.Math/GreatestCommonDivisorI.md +1 -1
  222. package/docs/Std.Math/GreatestCommonDivisorL.md +1 -1
  223. package/docs/Std.Math/HammingWeightI.md +1 -1
  224. package/docs/Std.Math/InverseModI.md +1 -1
  225. package/docs/Std.Math/InverseModL.md +1 -1
  226. package/docs/Std.Math/IsCoprimeI.md +1 -1
  227. package/docs/Std.Math/IsCoprimeL.md +1 -1
  228. package/docs/Std.Math/IsInfinite.md +1 -1
  229. package/docs/Std.Math/IsNaN.md +1 -1
  230. package/docs/Std.Math/LargestFixedPoint.md +1 -1
  231. package/docs/Std.Math/Lg.md +1 -1
  232. package/docs/Std.Math/Log.md +1 -1
  233. package/docs/Std.Math/Log10.md +1 -1
  234. package/docs/Std.Math/LogFactorialD.md +1 -1
  235. package/docs/Std.Math/LogGammaD.md +1 -1
  236. package/docs/Std.Math/LogOf2.md +1 -1
  237. package/docs/Std.Math/Max.md +1 -1
  238. package/docs/Std.Math/MaxD.md +1 -1
  239. package/docs/Std.Math/MaxI.md +1 -1
  240. package/docs/Std.Math/MaxL.md +1 -1
  241. package/docs/Std.Math/Min.md +1 -1
  242. package/docs/Std.Math/MinD.md +1 -1
  243. package/docs/Std.Math/MinI.md +1 -1
  244. package/docs/Std.Math/MinL.md +1 -1
  245. package/docs/Std.Math/MinusC.md +1 -1
  246. package/docs/Std.Math/MinusCP.md +1 -1
  247. package/docs/Std.Math/ModulusI.md +1 -1
  248. package/docs/Std.Math/ModulusL.md +1 -1
  249. package/docs/Std.Math/NegationC.md +1 -1
  250. package/docs/Std.Math/NegationCP.md +1 -1
  251. package/docs/Std.Math/PI.md +1 -1
  252. package/docs/Std.Math/PNorm.md +1 -1
  253. package/docs/Std.Math/PNormalized.md +1 -1
  254. package/docs/Std.Math/PlusC.md +1 -1
  255. package/docs/Std.Math/PlusCP.md +1 -1
  256. package/docs/Std.Math/PowC.md +1 -1
  257. package/docs/Std.Math/PowCP.md +1 -1
  258. package/docs/Std.Math/RealMod.md +1 -1
  259. package/docs/Std.Math/Round.md +1 -1
  260. package/docs/Std.Math/RoundHalfAwayFromZero.md +1 -1
  261. package/docs/Std.Math/SignD.md +1 -1
  262. package/docs/Std.Math/SignI.md +1 -1
  263. package/docs/Std.Math/SignL.md +1 -1
  264. package/docs/Std.Math/Sin.md +1 -1
  265. package/docs/Std.Math/Sinh.md +1 -1
  266. package/docs/Std.Math/SmallestFixedPoint.md +1 -1
  267. package/docs/Std.Math/Sqrt.md +1 -1
  268. package/docs/Std.Math/SquaredNorm.md +1 -1
  269. package/docs/Std.Math/Tan.md +1 -1
  270. package/docs/Std.Math/Tanh.md +1 -1
  271. package/docs/Std.Math/TimesC.md +1 -1
  272. package/docs/Std.Math/TimesCP.md +1 -1
  273. package/docs/Std.Math/TrailingZeroCountI.md +1 -1
  274. package/docs/Std.Math/TrailingZeroCountL.md +1 -1
  275. package/docs/Std.Math/Truncate.md +1 -1
  276. package/docs/Std.Math/index.md +1 -1
  277. package/docs/Std.Measurement/IsLossResult.md +1 -1
  278. package/docs/Std.Measurement/MResetEachZ.md +1 -1
  279. package/docs/Std.Measurement/MResetX.md +1 -1
  280. package/docs/Std.Measurement/MResetY.md +1 -1
  281. package/docs/Std.Measurement/MResetZ.md +1 -1
  282. package/docs/Std.Measurement/MResetZChecked.md +1 -1
  283. package/docs/Std.Measurement/MeasureAllZ.md +1 -1
  284. package/docs/Std.Measurement/MeasureEachZ.md +1 -1
  285. package/docs/Std.Measurement/MeasureInteger.md +1 -1
  286. package/docs/Std.Measurement/index.md +1 -1
  287. package/docs/Std.Random/DrawRandomBool.md +1 -1
  288. package/docs/Std.Random/DrawRandomDouble.md +1 -1
  289. package/docs/Std.Random/DrawRandomInt.md +1 -1
  290. package/docs/Std.Random/index.md +1 -1
  291. package/docs/Std.Range/IsRangeEmpty.md +1 -1
  292. package/docs/Std.Range/RangeEnd.md +1 -1
  293. package/docs/Std.Range/RangeReverse.md +1 -1
  294. package/docs/Std.Range/RangeStart.md +1 -1
  295. package/docs/Std.Range/RangeStep.md +1 -1
  296. package/docs/Std.Range/index.md +1 -1
  297. package/docs/Std.ResourceEstimation/AccountForEstimates.md +1 -1
  298. package/docs/Std.ResourceEstimation/AuxQubitCount.md +1 -1
  299. package/docs/Std.ResourceEstimation/BeginEstimateCaching.md +1 -1
  300. package/docs/Std.ResourceEstimation/BeginRepeatEstimates.md +1 -1
  301. package/docs/Std.ResourceEstimation/CczCount.md +1 -1
  302. package/docs/Std.ResourceEstimation/EnableMemoryComputeArchitecture.md +1 -1
  303. package/docs/Std.ResourceEstimation/EndEstimateCaching.md +1 -1
  304. package/docs/Std.ResourceEstimation/EndRepeatEstimates.md +1 -1
  305. package/docs/Std.ResourceEstimation/LeastFrequentlyUsed.md +1 -1
  306. package/docs/Std.ResourceEstimation/LeastRecentlyUsed.md +1 -1
  307. package/docs/Std.ResourceEstimation/MeasurementCount.md +1 -1
  308. package/docs/Std.ResourceEstimation/PSSPCLayout.md +1 -1
  309. package/docs/Std.ResourceEstimation/RepeatEstimates.md +1 -1
  310. package/docs/Std.ResourceEstimation/RotationCount.md +1 -1
  311. package/docs/Std.ResourceEstimation/RotationDepth.md +1 -1
  312. package/docs/Std.ResourceEstimation/SingleVariant.md +1 -1
  313. package/docs/Std.ResourceEstimation/TCount.md +1 -1
  314. package/docs/Std.ResourceEstimation/index.md +1 -1
  315. package/docs/Std.StatePreparation/ApproximatelyPreparePureStateCP.md +1 -1
  316. package/docs/Std.StatePreparation/PreparePureStateD.md +1 -1
  317. package/docs/Std.StatePreparation/PrepareUniformSuperposition.md +1 -1
  318. package/docs/Std.StatePreparation/index.md +1 -1
  319. package/docs/Std.TableLookup/Select.md +1 -1
  320. package/docs/Std.TableLookup/index.md +1 -1
  321. package/docs/index.md +1 -1
  322. package/docs/toc.yml +1 -0
  323. package/lib/nodejs/qsc_wasm.cjs +1318 -1392
  324. package/lib/nodejs/qsc_wasm.d.cts +313 -290
  325. package/lib/nodejs/qsc_wasm_bg.wasm +0 -0
  326. package/lib/web/qsc_wasm.d.ts +388 -364
  327. package/lib/web/qsc_wasm.js +1346 -1346
  328. package/lib/web/qsc_wasm_bg.wasm +0 -0
  329. package/package.json +1 -1
  330. package/ux/circuit-vis/circuit.ts +0 -1
  331. package/ux/circuit-vis/formatters/gateFormatter.ts +111 -86
  332. package/ux/circuit-vis/formatters/registerFormatter.ts +2 -5
  333. package/ux/circuit-vis/gateRenderData.ts +10 -3
  334. package/ux/circuit-vis/panel.ts +1 -0
  335. package/ux/circuit-vis/process.ts +162 -57
  336. package/ux/circuit-vis/sqore.ts +34 -28
  337. package/ux/circuit-vis/utils.ts +2 -1
@@ -68,8 +68,6 @@ export interface BaseOperation {
68
68
  dataAttributes?: DataAttributes;
69
69
  /** Whether gate is a classically controlled operation. */
70
70
  isConditional?: boolean;
71
- /** Specify conditions on when to render operation. */
72
- conditionalRender?: ConditionalRender;
73
71
  /** Not written to file */
74
72
  metadata?: Metadata;
75
73
  }
@@ -127,19 +125,6 @@ export interface Parameter {
127
125
  * Runtime check: is this a valid Parameter?
128
126
  */
129
127
  export declare function isParameter(obj: any): obj is Parameter;
130
- /**
131
- * Conditions on when to render the given operation.
132
- */
133
- export declare enum ConditionalRender {
134
- /** Always rendered. */
135
- Always = 0,
136
- /** Render classically-controlled operation when measurement is a zero. */
137
- OnZero = 1,
138
- /** Render classically-controlled operation when measurement is a one. */
139
- OnOne = 2,
140
- /** Render operation as a group of its nested operations. */
141
- AsGroup = 3
142
- }
143
128
  /**
144
129
  * Custom data attributes (e.g. data-{attr}="{val}")
145
130
  */
@@ -69,11 +69,7 @@ function isBaseOperation(obj) {
69
69
  obj.dataAttributes !== null &&
70
70
  Object.values(obj.dataAttributes).every((val) => typeof val === "string"))) &&
71
71
  // isConditional is optional, but if present must be boolean
72
- (obj.isConditional === undefined ||
73
- typeof obj.isConditional === "boolean") &&
74
- // conditionalRender is optional, but if present must be a valid enum value
75
- (obj.conditionalRender === undefined ||
76
- Object.values(ConditionalRender).includes(obj.conditionalRender)));
72
+ (obj.isConditional === undefined || typeof obj.isConditional === "boolean"));
77
73
  }
78
74
  /**
79
75
  * Runtime check: is this a valid Operation?
@@ -114,17 +110,3 @@ export function isParameter(obj) {
114
110
  typeof obj.name === "string" &&
115
111
  typeof obj.type === "string");
116
112
  }
117
- /**
118
- * Conditions on when to render the given operation.
119
- */
120
- export var ConditionalRender;
121
- (function (ConditionalRender) {
122
- /** Always rendered. */
123
- ConditionalRender[ConditionalRender["Always"] = 0] = "Always";
124
- /** Render classically-controlled operation when measurement is a zero. */
125
- ConditionalRender[ConditionalRender["OnZero"] = 1] = "OnZero";
126
- /** Render classically-controlled operation when measurement is a one. */
127
- ConditionalRender[ConditionalRender["OnOne"] = 2] = "OnOne";
128
- /** Render operation as a group of its nested operations. */
129
- ConditionalRender[ConditionalRender["AsGroup"] = 3] = "AsGroup";
130
- })(ConditionalRender || (ConditionalRender = {}));
@@ -11,7 +11,7 @@ export default {
11
11
  "items": [
12
12
  {
13
13
  "type": "text-content",
14
- "content": "<p>kaˑ ta | kah-tuh\n<em>The Japanese word for &quot;form&quot;, a pattern of learning and practicing new skills.</em></p>\n<style>\n.transparent {\n background: rgba(0, 0, 0, 0.0) !important;\n}\n</style>\n<table>\n <tbody>\n <tr class=\"transparent\" style=\"border:none;\">\n <td rowspan=\"2\" style=\"border:none;\">\n<svg width=\"59\" height=\"60\" viewBox=\"0 0 59 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M11.4624 42.776C12.9479 42.8256 13.6612 43.3574 14.1557 44.0384C14.7665 44.8796 15.1111 46.0279 15.5687 47.5527L15.6351 47.7738C16.0837 49.2659 16.6595 51.1152 17.9024 52.5503C19.239 54.0937 21.1862 55.0006 23.9949 55.0006H41.7125C45.3156 55.0006 48.0022 52.6796 49.9728 49.7757C51.9525 46.8585 53.4288 43.05 54.5789 39.3778C55.9023 35.1526 57.5578 29.8603 57.4967 25.6038C57.4657 23.4508 56.9975 21.3099 55.588 19.6996C54.1401 18.0454 51.9521 17.2335 49.1065 17.2335H48.8959C48.8542 17.2301 48.812 17.2284 48.7694 17.2284C47.1251 17.2284 46.364 16.6776 45.8445 15.9622C45.2338 15.121 44.8892 13.9727 44.4315 12.448L44.3652 12.2269C43.9165 10.7347 43.3408 8.88542 42.0978 7.45027C40.7612 5.90694 38.8141 5 36.0054 5H18.2877C14.6844 5 11.9979 7.32167 10.0273 10.2262C8.04769 13.1441 6.57146 16.9535 5.42128 20.6266C4.0979 24.8529 2.44244 30.1465 2.5036 34.4039C2.53453 36.5573 3.00271 38.6986 4.4121 40.3092C5.86002 41.9638 8.04801 42.776 10.8937 42.776H11.4624ZM8.4035 21.5605C9.52838 17.9681 10.896 14.512 12.6133 11.9807C14.3397 9.4361 16.2033 8.125 18.2877 8.125H30.5829C29.9813 9.08825 29.4908 10.2066 29.0532 11.3837C28.5547 12.7246 28.0917 14.2365 27.6125 15.8012L27.5067 16.1468C25.602 22.3601 23.2175 30.3716 21.6876 35.5382C20.9852 37.9103 18.8486 39.5582 16.3937 39.6472H11.2308C11.1939 39.6472 11.1574 39.6485 11.1211 39.651H10.8937C8.63765 39.651 7.44014 39.0241 6.76382 38.2512C6.04896 37.4343 5.65414 36.1596 5.62828 34.359C5.57583 30.7084 7.03152 25.9419 8.4035 21.5605ZM47.387 48.0209C45.6607 50.5647 43.7971 51.8756 41.7125 51.8756H29.4178C30.0192 50.9127 30.5095 49.7949 30.947 48.6184C31.4455 47.2778 31.9085 45.7662 32.3877 44.2019L32.4935 43.8565C34.3981 37.6451 36.7825 29.6362 38.3124 24.4708C39.0348 22.0317 41.2736 20.3585 43.8155 20.3585H49.1065C51.3627 20.3585 52.5603 20.9852 53.2366 21.7579C53.9513 22.5745 54.3461 23.8487 54.372 25.6487C54.4244 29.2983 52.9688 34.0633 51.5968 38.4437C50.4719 42.0352 49.1043 45.4903 47.387 48.0209ZM26.2496 39.6472H22.9422C23.7238 38.7267 24.3252 37.6371 24.684 36.4255C25.3602 34.1419 26.2028 31.3045 27.0966 28.3137L28.2663 24.4303C28.9953 22.01 31.2243 20.3534 33.752 20.3534H37.0652C36.28 21.2757 35.676 22.3681 35.3161 23.5833C34.6398 25.8665 33.7972 28.7034 32.9033 31.6935L31.7352 35.5707C31.0061 37.9908 28.7771 39.6472 26.2496 39.6472ZM33.752 17.2284C32.5074 17.2284 31.3097 17.4883 30.2188 17.9634C30.3117 17.6594 30.4036 17.359 30.4945 17.0627L30.5919 16.7447C31.0803 15.1503 31.5173 13.7236 31.9824 12.4726C32.4803 11.1333 32.9725 10.1036 33.5137 9.36493C34.0132 8.68326 34.8201 8.125 36.0054 8.125C38.0615 8.125 39.0865 8.74662 39.7356 9.49612C40.4784 10.3538 40.902 11.5616 41.3725 13.1266C41.4081 13.2453 41.4443 13.3668 41.4811 13.4909C41.8282 14.6592 42.2391 16.0421 42.9424 17.2284L33.752 17.2284ZM26.2496 42.7722C27.494 42.7722 28.6915 42.5124 29.7822 42.0374C29.6891 42.3422 29.5969 42.6434 29.5058 42.9404L29.4084 43.2582C28.9201 44.8521 28.483 46.2786 28.0179 47.5293C27.5201 48.8682 27.0279 49.8976 26.4867 50.636C25.9873 51.3174 25.1803 51.8756 23.9949 51.8756C21.9388 51.8756 20.9138 51.254 20.2646 50.5045C19.5218 49.6468 19.0983 48.439 18.6278 46.874C18.5921 46.7554 18.556 46.6338 18.5191 46.5098C18.172 45.3414 17.7612 43.9585 17.0578 42.7722H26.2496Z\" fill=\"url(#paint0_linear_208_693)\"/>\n<defs>\n<linearGradient id=\"paint0_linear_208_693\" x1=\"30.0001\" y1=\"5\" x2=\"30.0001\" y2=\"55.0006\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"0.473958\" stop-color=\"#33BFB5\"/>\n<stop offset=\"1\" stop-color=\"#49CFA3\"/>\n</linearGradient>\n</defs>\n</svg>\n</td>\n <td role=\"heading\" aria-level=\"4\" style=\"border:none;\">\n <b>Self-paced AI-assisted learning</b>\n </td>\n </tr>\n <tr class=\"transparent\" style=\"border:none;\">\n <td style=\"border:none;\">\n Quantum katas are self-paced learning tutorials assisted by Copilot in Microsoft Quantum.\n </td>\n </tr>\n <tr class=\"transparent\" style=\"border:none;\">\n <td rowspan=\"2\" style=\"border:none;\">\n<svg width=\"61\" height=\"60\" viewBox=\"0 0 61 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M39.8865 30.3697C39.8865 31.3851 39.112 32.5816 37.2448 33.597C35.4256 34.5863 32.827 35.2368 29.8883 35.2368C26.9495 35.2368 24.3509 34.5863 22.5318 33.597C20.6645 32.5816 19.8901 31.3851 19.8901 30.3697C19.8901 29.3543 20.6645 28.1579 22.5318 27.1424C24.3509 26.1532 26.9495 25.5027 29.8883 25.5027C32.827 25.5027 35.4256 26.1532 37.2448 27.1424C39.112 28.1579 39.8865 29.3543 39.8865 30.3697Z\" stroke=\"url(#paint0_linear_144_926)\" stroke-width=\"2.5\"/>\n<path d=\"M30.0916 40.2027C29.0762 40.2027 27.8798 39.4282 26.8643 37.561C25.8751 35.7418 25.2246 33.1432 25.2246 30.2045C25.2246 27.2657 25.8751 24.6671 26.8643 22.848C27.8798 20.9808 29.0763 20.2063 30.0916 20.2063C31.107 20.2063 32.3035 20.9808 33.3189 22.848C34.3082 24.6671 34.9587 27.2657 34.9587 30.2045C34.9587 33.1432 34.3082 35.7418 33.3189 37.561C32.3035 39.4282 31.107 40.2027 30.0916 40.2027Z\" stroke=\"url(#paint1_linear_144_926)\" stroke-width=\"2.5\"/>\n<path d=\"M30.1231 32.2192C31.0649 32.2192 31.8283 31.4557 31.8283 30.514C31.8283 29.5723 31.0649 28.8088 30.1231 28.8088C29.1814 28.8088 28.418 29.5723 28.418 30.514C28.418 31.4557 29.1814 32.2192 30.1231 32.2192Z\" stroke=\"url(#paint2_linear_144_926)\" stroke-width=\"2\"/>\n<path d=\"M42.7327 15.4275H17.2871C16.0445 15.4275 15.0371 16.4348 15.0371 17.6775V43.1231C15.0371 44.3657 16.0445 45.3731 17.2871 45.3731H42.7327C43.9753 45.3731 44.9827 44.3657 44.9827 43.1231V17.6775C44.9827 16.4348 43.9753 15.4275 42.7327 15.4275Z\" stroke=\"url(#paint3_linear_144_926)\" stroke-width=\"3.5\"/>\n<path d=\"M34.3481 56.9988C34.3481 57.9653 35.1316 58.7488 36.0981 58.7488C37.0646 58.7488 37.8481 57.9653 37.8481 56.9988H34.3481ZM34.3481 49.6211V56.9988H37.8481V49.6211H34.3481Z\" fill=\"url(#paint4_linear_144_926)\"/>\n<path d=\"M28.127 56.9988C28.127 57.9653 28.9105 58.7488 29.877 58.7488C30.8435 58.7488 31.627 57.9653 31.627 56.9988H28.127ZM28.127 49.6211V56.9988H31.627V49.6211H28.127Z\" fill=\"url(#paint5_linear_144_926)\"/>\n<path d=\"M21.9058 56.9988C21.9058 57.9653 22.6893 58.7488 23.6558 58.7488C24.6223 58.7488 25.4058 57.9653 25.4058 56.9988H21.9058ZM21.9058 49.6211V56.9988H25.4058V49.6211H21.9058Z\" fill=\"url(#paint6_linear_144_926)\"/>\n<path d=\"M56.6096 37.5481C57.5761 37.5481 58.3596 36.7646 58.3596 35.7981C58.3596 34.8316 57.5761 34.0481 56.6096 34.0481V37.5481ZM49.2319 37.5481H56.6096V34.0481H49.2319V37.5481Z\" fill=\"url(#paint7_linear_144_926)\"/>\n<path d=\"M56.6096 31.3267C57.5761 31.3267 58.3596 30.5432 58.3596 29.5767C58.3596 28.6102 57.5761 27.8267 56.6096 27.8267V31.3267ZM49.2319 31.3267H56.6096V27.8267H49.2319V31.3267Z\" fill=\"url(#paint8_linear_144_926)\"/>\n<path d=\"M56.6096 25.1052C57.5761 25.1052 58.3596 24.3217 58.3596 23.3552C58.3596 22.3887 57.5761 21.6052 56.6096 21.6052V25.1052ZM49.2319 25.1052H56.6096V21.6052H49.2319V25.1052Z\" fill=\"url(#paint9_linear_144_926)\"/>\n<path d=\"M3.60986 21.605C2.64336 21.605 1.85986 22.3885 1.85986 23.355C1.85986 24.3215 2.64336 25.105 3.60986 25.105V21.605ZM10.9876 21.605H3.60986V25.105H10.9876V21.605Z\" fill=\"url(#paint10_linear_144_926)\"/>\n<path d=\"M3.60986 27.8264C2.64336 27.8264 1.85986 28.6099 1.85986 29.5764C1.85986 30.5429 2.64336 31.3264 3.60986 31.3264V27.8264ZM10.9876 27.8264H3.60986V31.3264H10.9876V27.8264Z\" fill=\"url(#paint11_linear_144_926)\"/>\n<path d=\"M3.60986 34.0471C2.64336 34.0471 1.85986 34.8306 1.85986 35.7971C1.85986 36.7636 2.64336 37.5471 3.60986 37.5471V34.0471ZM10.9876 34.0471H3.60986V37.5471H10.9876V34.0471Z\" fill=\"url(#paint12_linear_144_926)\"/>\n<path d=\"M37.8481 4C37.8481 3.0335 37.0646 2.25 36.0981 2.25C35.1316 2.25 34.3481 3.0335 34.3481 4H37.8481ZM37.8481 11.3777V4H34.3481V11.3777H37.8481Z\" fill=\"url(#paint13_linear_144_926)\"/>\n<path d=\"M31.627 4C31.627 3.0335 30.8435 2.25 29.877 2.25C28.9105 2.25 28.127 3.0335 28.127 4H31.627ZM31.627 11.3777V4H28.127V11.3777H31.627Z\" fill=\"url(#paint14_linear_144_926)\"/>\n<path d=\"M25.4058 4C25.4058 3.0335 24.6223 2.25 23.6558 2.25C22.6893 2.25 21.9058 3.0335 21.9058 4H25.4058ZM25.4058 11.3777V4H21.9058V11.3777H25.4058Z\" fill=\"url(#paint15_linear_144_926)\"/>\n<defs>\n<linearGradient id=\"paint0_linear_144_926\" x1=\"29.8883\" y1=\"24.2527\" x2=\"29.8883\" y2=\"36.4868\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#238DE1\"/>\n<stop offset=\"1\" stop-color=\"#49CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint1_linear_144_926\" x1=\"36.2087\" y1=\"30.2045\" x2=\"23.9746\" y2=\"30.2045\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228BE3\"/>\n<stop offset=\"1\" stop-color=\"#47CFA4\"/>\n</linearGradient>\n<linearGradient id=\"paint2_linear_144_926\" x1=\"30.1231\" y1=\"27.8088\" x2=\"30.1231\" y2=\"33.2192\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint3_linear_144_926\" x1=\"13.9784\" y1=\"14.7144\" x2=\"44.3932\" y2=\"46.8572\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228BE2\"/>\n<stop offset=\"1\" stop-color=\"#4AD0A2\"/>\n</linearGradient>\n<linearGradient id=\"paint4_linear_144_926\" x1=\"38.6748\" y1=\"55.2712\" x2=\"36.1597\" y2=\"52.3849\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint5_linear_144_926\" x1=\"32.4537\" y1=\"55.2712\" x2=\"29.9386\" y2=\"52.3849\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint6_linear_144_926\" x1=\"26.2325\" y1=\"55.2712\" x2=\"23.7174\" y2=\"52.3849\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint7_linear_144_926\" x1=\"54.882\" y1=\"33.2214\" x2=\"51.9957\" y2=\"35.7365\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint8_linear_144_926\" x1=\"54.882\" y1=\"27\" x2=\"51.9957\" y2=\"29.5151\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint9_linear_144_926\" x1=\"54.882\" y1=\"20.7786\" x2=\"51.9957\" y2=\"23.2936\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#2492DD\"/>\n<stop offset=\"1\" stop-color=\"#47CFA4\"/>\n</linearGradient>\n<linearGradient id=\"paint10_linear_144_926\" x1=\"5.33745\" y1=\"25.9317\" x2=\"8.22376\" y2=\"23.4166\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#41CCA7\"/>\n</linearGradient>\n<linearGradient id=\"paint11_linear_144_926\" x1=\"5.33745\" y1=\"32.1531\" x2=\"8.22376\" y2=\"29.638\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#41CCA7\"/>\n</linearGradient>\n<linearGradient id=\"paint12_linear_144_926\" x1=\"5.33745\" y1=\"38.3738\" x2=\"8.22376\" y2=\"35.8587\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#41CCA7\"/>\n</linearGradient>\n<linearGradient id=\"paint13_linear_144_926\" x1=\"33.5215\" y1=\"5.72759\" x2=\"36.0365\" y2=\"8.6139\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#4AD0A2\"/>\n</linearGradient>\n<linearGradient id=\"paint14_linear_144_926\" x1=\"27.3004\" y1=\"5.72759\" x2=\"29.8154\" y2=\"8.6139\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#4AD0A2\"/>\n</linearGradient>\n<linearGradient id=\"paint15_linear_144_926\" x1=\"21.0792\" y1=\"5.72759\" x2=\"23.5942\" y2=\"8.6139\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#4AD0A2\"/>\n</linearGradient>\n</defs>\n</svg>\n</td>\n <td role=\"heading\" aria-level=\"4\" style=\"border:none;\">\n <b>Focused on quantum computing and programming</b>\n </td>\n </tr>\n <tr class=\"transparent\" style=\"border:none;\">\n <td style=\"border:none;\">\n The Quantum katas focus on teaching quantum computing concepts and quantum programming using the Q# language.\n </td>\n </tr>\n <tr class=\"transparent\" style=\"border:none;\">\n <td rowspan=\"2\" style=\"border:none;\">\n<svg width=\"61\" height=\"60\" viewBox=\"0 0 61 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M52.0728 4.5H8.60986C7.78144 4.5 7.10986 5.17157 7.10986 6V54.0428C7.10986 54.8712 7.78144 55.5428 8.60986 55.5428H52.0728C52.9012 55.5428 53.5728 54.8712 53.5728 54.0428V6C53.5728 5.17157 52.9012 4.5 52.0728 4.5Z\" stroke=\"url(#paint0_linear_144_946)\" stroke-width=\"3\"/>\n<path d=\"M7.44189 11.5767H54.1569\" stroke=\"url(#paint5_linear_144_946)\" stroke-width=\"3\"/>\n<path d=\"M10.6484 9.41176C11.4072 9.41176 12.0224 8.79661 12.0224 8.03779C12.0224 7.27897 11.4072 6.66382 10.6484 6.66382C9.88956 6.66382 9.27441 7.27897 9.27441 8.03779C9.27441 8.79661 9.88956 9.41176 10.6484 9.41176Z\" fill=\"url(#paint2_linear_144_946)\"/>\n<path d=\"M15.228 9.41176C15.9868 9.41176 16.6019 8.79661 16.6019 8.03779C16.6019 7.27897 15.9868 6.66382 15.228 6.66382C14.4692 6.66382 13.854 7.27897 13.854 8.03779C13.854 8.79661 14.4692 9.41176 15.228 9.41176Z\" fill=\"url(#paint3_linear_144_946)\"/>\n<path d=\"M19.8076 9.41176C20.5664 9.41176 21.1815 8.79661 21.1815 8.03779C21.1815 7.27897 20.5664 6.66382 19.8076 6.66382C19.0487 6.66382 18.4336 7.27897 18.4336 8.03779C18.4336 8.79661 19.0487 9.41176 19.8076 9.41176Z\" fill=\"url(#paint4_linear_144_946)\"/>\n<path d=\"M21.6099 18L16.6099 21.1818L21.6099 25\" stroke=\"url(#paint5_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M32.6099 25L36.6099 21.8182L32.6099 18\" stroke=\"url(#paint6_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M25.1816 16.5952L28.3165 26\" stroke=\"url(#paint7_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M15.6934 33.8157L20.8201 33.8552\" stroke=\"url(#paint8_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M15.6177 39L20.7443 39.0395\" stroke=\"url(#paint9_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M15.6177 44L20.7443 44.0395\" stroke=\"url(#paint10_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M23.6099 33.8684L39.6232 34.0001\" stroke=\"url(#paint11_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M23.6934 39L39.7067 39.1317\" stroke=\"url(#paint12_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M23.6934 44L39.7067 44.1317\" stroke=\"url(#paint13_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<defs>\n<linearGradient id=\"paint0_linear_144_946\" x1=\"30.3414\" y1=\"3\" x2=\"30.3414\" y2=\"57.0428\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228BE3\"/>\n<stop offset=\"1\" stop-color=\"#46CEA4\"/>\n</linearGradient>\n<linearGradient id=\"paint2_linear_144_946\" x1=\"10.6484\" y1=\"6.66382\" x2=\"10.6484\" y2=\"9.41176\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#2390DF\"/>\n<stop offset=\"1\" stop-color=\"#49CFA2\"/>\n</linearGradient>\n<linearGradient id=\"paint3_linear_144_946\" x1=\"15.228\" y1=\"6.66382\" x2=\"15.228\" y2=\"9.41176\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#2390DF\"/>\n<stop offset=\"1\" stop-color=\"#49CFA2\"/>\n</linearGradient>\n<linearGradient id=\"paint4_linear_144_946\" x1=\"19.8076\" y1=\"6.66382\" x2=\"19.8076\" y2=\"9.41176\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#2390DF\"/>\n<stop offset=\"1\" stop-color=\"#49CFA2\"/>\n</linearGradient>\n<linearGradient id=\"paint5_linear_144_946\" x1=\"19.1099\" y1=\"18\" x2=\"19.1099\" y2=\"25\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228BE3\"/>\n<stop offset=\"1\" stop-color=\"#44CDA6\"/>\n</linearGradient>\n<linearGradient id=\"paint6_linear_144_946\" x1=\"34.6099\" y1=\"25\" x2=\"34.6099\" y2=\"18\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"1\" stop-color=\"#43CDA6\"/>\n</linearGradient>\n<linearGradient id=\"paint7_linear_144_946\" x1=\"26.749\" y1=\"21.2976\" x2=\"25.8004\" y2=\"21.6138\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint8_linear_144_946\" x1=\"18.2491\" y1=\"34.8354\" x2=\"18.2414\" y2=\"35.8354\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#238EE0\"/>\n<stop offset=\"1\" stop-color=\"#46CEA4\"/>\n</linearGradient>\n<linearGradient id=\"paint9_linear_144_946\" x1=\"18.1733\" y1=\"40.0197\" x2=\"18.1656\" y2=\"41.0198\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228AE3\"/>\n<stop offset=\"1\" stop-color=\"#46CEA4\"/>\n</linearGradient>\n<linearGradient id=\"paint10_linear_144_946\" x1=\"18.1733\" y1=\"45.0197\" x2=\"18.1656\" y2=\"46.0198\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228AE3\"/>\n<stop offset=\"1\" stop-color=\"#46CEA4\"/>\n</linearGradient>\n<linearGradient id=\"paint11_linear_144_946\" x1=\"31.6093\" y1=\"34.9342\" x2=\"31.6011\" y2=\"35.9342\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint12_linear_144_946\" x1=\"31.6928\" y1=\"40.0658\" x2=\"31.6846\" y2=\"41.0658\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint13_linear_144_946\" x1=\"31.6928\" y1=\"45.0658\" x2=\"31.6846\" y2=\"46.0658\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n</defs>\n</svg>\n</td>\n <td role=\"heading\" aria-level=\"4\" style=\"border:none;\">\n <b>Tutorials with theory and interactive hands-on exercises</b>\n </td>\n </tr>\n <tr class=\"transparent\" style=\"border:none;\">\n <td style=\"border:none;\">\n Each tutorial includes relevant theory and supporting interactive exercises designed to test knowledge.\n </td>\n </tr>\n </tbody>\n</table>"
14
+ "content": "<p>kaˑ ta | kah-tuh\n<em>The Japanese word for &quot;form&quot;, a pattern of learning and practicing new skills.</em></p>\n<style>\n.transparent {\n background: rgba(0, 0, 0, 0.0) !important;\n}\n</style>\n<table>\n <tbody>\n <tr class=\"transparent\" style=\"border:none;\">\n <td rowspan=\"2\" style=\"border:none;\">\n<svg width=\"59\" height=\"60\" viewBox=\"0 0 59 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M11.4624 42.776C12.9479 42.8256 13.6612 43.3574 14.1557 44.0384C14.7665 44.8796 15.1111 46.0279 15.5687 47.5527L15.6351 47.7738C16.0837 49.2659 16.6595 51.1152 17.9024 52.5503C19.239 54.0937 21.1862 55.0006 23.9949 55.0006H41.7125C45.3156 55.0006 48.0022 52.6796 49.9728 49.7757C51.9525 46.8585 53.4288 43.05 54.5789 39.3778C55.9023 35.1526 57.5578 29.8603 57.4967 25.6038C57.4657 23.4508 56.9975 21.3099 55.588 19.6996C54.1401 18.0454 51.9521 17.2335 49.1065 17.2335H48.8959C48.8542 17.2301 48.812 17.2284 48.7694 17.2284C47.1251 17.2284 46.364 16.6776 45.8445 15.9622C45.2338 15.121 44.8892 13.9727 44.4315 12.448L44.3652 12.2269C43.9165 10.7347 43.3408 8.88542 42.0978 7.45027C40.7612 5.90694 38.8141 5 36.0054 5H18.2877C14.6844 5 11.9979 7.32167 10.0273 10.2262C8.04769 13.1441 6.57146 16.9535 5.42128 20.6266C4.0979 24.8529 2.44244 30.1465 2.5036 34.4039C2.53453 36.5573 3.00271 38.6986 4.4121 40.3092C5.86002 41.9638 8.04801 42.776 10.8937 42.776H11.4624ZM8.4035 21.5605C9.52838 17.9681 10.896 14.512 12.6133 11.9807C14.3397 9.4361 16.2033 8.125 18.2877 8.125H30.5829C29.9813 9.08825 29.4908 10.2066 29.0532 11.3837C28.5547 12.7246 28.0917 14.2365 27.6125 15.8012L27.5067 16.1468C25.602 22.3601 23.2175 30.3716 21.6876 35.5382C20.9852 37.9103 18.8486 39.5582 16.3937 39.6472H11.2308C11.1939 39.6472 11.1574 39.6485 11.1211 39.651H10.8937C8.63765 39.651 7.44014 39.0241 6.76382 38.2512C6.04896 37.4343 5.65414 36.1596 5.62828 34.359C5.57583 30.7084 7.03152 25.9419 8.4035 21.5605ZM47.387 48.0209C45.6607 50.5647 43.7971 51.8756 41.7125 51.8756H29.4178C30.0192 50.9127 30.5095 49.7949 30.947 48.6184C31.4455 47.2778 31.9085 45.7662 32.3877 44.2019L32.4935 43.8565C34.3981 37.6451 36.7825 29.6362 38.3124 24.4708C39.0348 22.0317 41.2736 20.3585 43.8155 20.3585H49.1065C51.3627 20.3585 52.5603 20.9852 53.2366 21.7579C53.9513 22.5745 54.3461 23.8487 54.372 25.6487C54.4244 29.2983 52.9688 34.0633 51.5968 38.4437C50.4719 42.0352 49.1043 45.4903 47.387 48.0209ZM26.2496 39.6472H22.9422C23.7238 38.7267 24.3252 37.6371 24.684 36.4255C25.3602 34.1419 26.2028 31.3045 27.0966 28.3137L28.2663 24.4303C28.9953 22.01 31.2243 20.3534 33.752 20.3534H37.0652C36.28 21.2757 35.676 22.3681 35.3161 23.5833C34.6398 25.8665 33.7972 28.7034 32.9033 31.6935L31.7352 35.5707C31.0061 37.9908 28.7771 39.6472 26.2496 39.6472ZM33.752 17.2284C32.5074 17.2284 31.3097 17.4883 30.2188 17.9634C30.3117 17.6594 30.4036 17.359 30.4945 17.0627L30.5919 16.7447C31.0803 15.1503 31.5173 13.7236 31.9824 12.4726C32.4803 11.1333 32.9725 10.1036 33.5137 9.36493C34.0132 8.68326 34.8201 8.125 36.0054 8.125C38.0615 8.125 39.0865 8.74662 39.7356 9.49612C40.4784 10.3538 40.902 11.5616 41.3725 13.1266C41.4081 13.2453 41.4443 13.3668 41.4811 13.4909C41.8282 14.6592 42.2391 16.0421 42.9424 17.2284L33.752 17.2284ZM26.2496 42.7722C27.494 42.7722 28.6915 42.5124 29.7822 42.0374C29.6891 42.3422 29.5969 42.6434 29.5058 42.9404L29.4084 43.2582C28.9201 44.8521 28.483 46.2786 28.0179 47.5293C27.5201 48.8682 27.0279 49.8976 26.4867 50.636C25.9873 51.3174 25.1803 51.8756 23.9949 51.8756C21.9388 51.8756 20.9138 51.254 20.2646 50.5045C19.5218 49.6468 19.0983 48.439 18.6278 46.874C18.5921 46.7554 18.556 46.6338 18.5191 46.5098C18.172 45.3414 17.7612 43.9585 17.0578 42.7722H26.2496Z\" fill=\"url(#paint0_linear_208_693)\"/>\n<defs>\n<linearGradient id=\"paint0_linear_208_693\" x1=\"30.0001\" y1=\"5\" x2=\"30.0001\" y2=\"55.0006\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"0.473958\" stop-color=\"#33BFB5\"/>\n<stop offset=\"1\" stop-color=\"#49CFA3\"/>\n</linearGradient>\n</defs>\n</svg>\n</td>\n <td role=\"heading\" aria-level=\"4\" style=\"border:none;\">\n <b>Self-paced learning</b>\n </td>\n </tr>\n <tr class=\"transparent\" style=\"border:none;\">\n <td style=\"border:none;\">\n Quantum katas are self-paced learning tutorials in Microsoft Quantum.\n </td>\n </tr>\n <tr class=\"transparent\" style=\"border:none;\">\n <td rowspan=\"2\" style=\"border:none;\">\n<svg width=\"61\" height=\"60\" viewBox=\"0 0 61 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M39.8865 30.3697C39.8865 31.3851 39.112 32.5816 37.2448 33.597C35.4256 34.5863 32.827 35.2368 29.8883 35.2368C26.9495 35.2368 24.3509 34.5863 22.5318 33.597C20.6645 32.5816 19.8901 31.3851 19.8901 30.3697C19.8901 29.3543 20.6645 28.1579 22.5318 27.1424C24.3509 26.1532 26.9495 25.5027 29.8883 25.5027C32.827 25.5027 35.4256 26.1532 37.2448 27.1424C39.112 28.1579 39.8865 29.3543 39.8865 30.3697Z\" stroke=\"url(#paint0_linear_144_926)\" stroke-width=\"2.5\"/>\n<path d=\"M30.0916 40.2027C29.0762 40.2027 27.8798 39.4282 26.8643 37.561C25.8751 35.7418 25.2246 33.1432 25.2246 30.2045C25.2246 27.2657 25.8751 24.6671 26.8643 22.848C27.8798 20.9808 29.0763 20.2063 30.0916 20.2063C31.107 20.2063 32.3035 20.9808 33.3189 22.848C34.3082 24.6671 34.9587 27.2657 34.9587 30.2045C34.9587 33.1432 34.3082 35.7418 33.3189 37.561C32.3035 39.4282 31.107 40.2027 30.0916 40.2027Z\" stroke=\"url(#paint1_linear_144_926)\" stroke-width=\"2.5\"/>\n<path d=\"M30.1231 32.2192C31.0649 32.2192 31.8283 31.4557 31.8283 30.514C31.8283 29.5723 31.0649 28.8088 30.1231 28.8088C29.1814 28.8088 28.418 29.5723 28.418 30.514C28.418 31.4557 29.1814 32.2192 30.1231 32.2192Z\" stroke=\"url(#paint2_linear_144_926)\" stroke-width=\"2\"/>\n<path d=\"M42.7327 15.4275H17.2871C16.0445 15.4275 15.0371 16.4348 15.0371 17.6775V43.1231C15.0371 44.3657 16.0445 45.3731 17.2871 45.3731H42.7327C43.9753 45.3731 44.9827 44.3657 44.9827 43.1231V17.6775C44.9827 16.4348 43.9753 15.4275 42.7327 15.4275Z\" stroke=\"url(#paint3_linear_144_926)\" stroke-width=\"3.5\"/>\n<path d=\"M34.3481 56.9988C34.3481 57.9653 35.1316 58.7488 36.0981 58.7488C37.0646 58.7488 37.8481 57.9653 37.8481 56.9988H34.3481ZM34.3481 49.6211V56.9988H37.8481V49.6211H34.3481Z\" fill=\"url(#paint4_linear_144_926)\"/>\n<path d=\"M28.127 56.9988C28.127 57.9653 28.9105 58.7488 29.877 58.7488C30.8435 58.7488 31.627 57.9653 31.627 56.9988H28.127ZM28.127 49.6211V56.9988H31.627V49.6211H28.127Z\" fill=\"url(#paint5_linear_144_926)\"/>\n<path d=\"M21.9058 56.9988C21.9058 57.9653 22.6893 58.7488 23.6558 58.7488C24.6223 58.7488 25.4058 57.9653 25.4058 56.9988H21.9058ZM21.9058 49.6211V56.9988H25.4058V49.6211H21.9058Z\" fill=\"url(#paint6_linear_144_926)\"/>\n<path d=\"M56.6096 37.5481C57.5761 37.5481 58.3596 36.7646 58.3596 35.7981C58.3596 34.8316 57.5761 34.0481 56.6096 34.0481V37.5481ZM49.2319 37.5481H56.6096V34.0481H49.2319V37.5481Z\" fill=\"url(#paint7_linear_144_926)\"/>\n<path d=\"M56.6096 31.3267C57.5761 31.3267 58.3596 30.5432 58.3596 29.5767C58.3596 28.6102 57.5761 27.8267 56.6096 27.8267V31.3267ZM49.2319 31.3267H56.6096V27.8267H49.2319V31.3267Z\" fill=\"url(#paint8_linear_144_926)\"/>\n<path d=\"M56.6096 25.1052C57.5761 25.1052 58.3596 24.3217 58.3596 23.3552C58.3596 22.3887 57.5761 21.6052 56.6096 21.6052V25.1052ZM49.2319 25.1052H56.6096V21.6052H49.2319V25.1052Z\" fill=\"url(#paint9_linear_144_926)\"/>\n<path d=\"M3.60986 21.605C2.64336 21.605 1.85986 22.3885 1.85986 23.355C1.85986 24.3215 2.64336 25.105 3.60986 25.105V21.605ZM10.9876 21.605H3.60986V25.105H10.9876V21.605Z\" fill=\"url(#paint10_linear_144_926)\"/>\n<path d=\"M3.60986 27.8264C2.64336 27.8264 1.85986 28.6099 1.85986 29.5764C1.85986 30.5429 2.64336 31.3264 3.60986 31.3264V27.8264ZM10.9876 27.8264H3.60986V31.3264H10.9876V27.8264Z\" fill=\"url(#paint11_linear_144_926)\"/>\n<path d=\"M3.60986 34.0471C2.64336 34.0471 1.85986 34.8306 1.85986 35.7971C1.85986 36.7636 2.64336 37.5471 3.60986 37.5471V34.0471ZM10.9876 34.0471H3.60986V37.5471H10.9876V34.0471Z\" fill=\"url(#paint12_linear_144_926)\"/>\n<path d=\"M37.8481 4C37.8481 3.0335 37.0646 2.25 36.0981 2.25C35.1316 2.25 34.3481 3.0335 34.3481 4H37.8481ZM37.8481 11.3777V4H34.3481V11.3777H37.8481Z\" fill=\"url(#paint13_linear_144_926)\"/>\n<path d=\"M31.627 4C31.627 3.0335 30.8435 2.25 29.877 2.25C28.9105 2.25 28.127 3.0335 28.127 4H31.627ZM31.627 11.3777V4H28.127V11.3777H31.627Z\" fill=\"url(#paint14_linear_144_926)\"/>\n<path d=\"M25.4058 4C25.4058 3.0335 24.6223 2.25 23.6558 2.25C22.6893 2.25 21.9058 3.0335 21.9058 4H25.4058ZM25.4058 11.3777V4H21.9058V11.3777H25.4058Z\" fill=\"url(#paint15_linear_144_926)\"/>\n<defs>\n<linearGradient id=\"paint0_linear_144_926\" x1=\"29.8883\" y1=\"24.2527\" x2=\"29.8883\" y2=\"36.4868\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#238DE1\"/>\n<stop offset=\"1\" stop-color=\"#49CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint1_linear_144_926\" x1=\"36.2087\" y1=\"30.2045\" x2=\"23.9746\" y2=\"30.2045\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228BE3\"/>\n<stop offset=\"1\" stop-color=\"#47CFA4\"/>\n</linearGradient>\n<linearGradient id=\"paint2_linear_144_926\" x1=\"30.1231\" y1=\"27.8088\" x2=\"30.1231\" y2=\"33.2192\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint3_linear_144_926\" x1=\"13.9784\" y1=\"14.7144\" x2=\"44.3932\" y2=\"46.8572\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228BE2\"/>\n<stop offset=\"1\" stop-color=\"#4AD0A2\"/>\n</linearGradient>\n<linearGradient id=\"paint4_linear_144_926\" x1=\"38.6748\" y1=\"55.2712\" x2=\"36.1597\" y2=\"52.3849\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint5_linear_144_926\" x1=\"32.4537\" y1=\"55.2712\" x2=\"29.9386\" y2=\"52.3849\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint6_linear_144_926\" x1=\"26.2325\" y1=\"55.2712\" x2=\"23.7174\" y2=\"52.3849\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint7_linear_144_926\" x1=\"54.882\" y1=\"33.2214\" x2=\"51.9957\" y2=\"35.7365\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint8_linear_144_926\" x1=\"54.882\" y1=\"27\" x2=\"51.9957\" y2=\"29.5151\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint9_linear_144_926\" x1=\"54.882\" y1=\"20.7786\" x2=\"51.9957\" y2=\"23.2936\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#2492DD\"/>\n<stop offset=\"1\" stop-color=\"#47CFA4\"/>\n</linearGradient>\n<linearGradient id=\"paint10_linear_144_926\" x1=\"5.33745\" y1=\"25.9317\" x2=\"8.22376\" y2=\"23.4166\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#41CCA7\"/>\n</linearGradient>\n<linearGradient id=\"paint11_linear_144_926\" x1=\"5.33745\" y1=\"32.1531\" x2=\"8.22376\" y2=\"29.638\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#41CCA7\"/>\n</linearGradient>\n<linearGradient id=\"paint12_linear_144_926\" x1=\"5.33745\" y1=\"38.3738\" x2=\"8.22376\" y2=\"35.8587\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#41CCA7\"/>\n</linearGradient>\n<linearGradient id=\"paint13_linear_144_926\" x1=\"33.5215\" y1=\"5.72759\" x2=\"36.0365\" y2=\"8.6139\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#4AD0A2\"/>\n</linearGradient>\n<linearGradient id=\"paint14_linear_144_926\" x1=\"27.3004\" y1=\"5.72759\" x2=\"29.8154\" y2=\"8.6139\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#4AD0A2\"/>\n</linearGradient>\n<linearGradient id=\"paint15_linear_144_926\" x1=\"21.0792\" y1=\"5.72759\" x2=\"23.5942\" y2=\"8.6139\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#4AD0A2\"/>\n</linearGradient>\n</defs>\n</svg>\n</td>\n <td role=\"heading\" aria-level=\"4\" style=\"border:none;\">\n <b>Focused on quantum computing and programming</b>\n </td>\n </tr>\n <tr class=\"transparent\" style=\"border:none;\">\n <td style=\"border:none;\">\n The Quantum katas focus on teaching quantum computing concepts and quantum programming using the Q# language.\n </td>\n </tr>\n <tr class=\"transparent\" style=\"border:none;\">\n <td rowspan=\"2\" style=\"border:none;\">\n<svg width=\"61\" height=\"60\" viewBox=\"0 0 61 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M52.0728 4.5H8.60986C7.78144 4.5 7.10986 5.17157 7.10986 6V54.0428C7.10986 54.8712 7.78144 55.5428 8.60986 55.5428H52.0728C52.9012 55.5428 53.5728 54.8712 53.5728 54.0428V6C53.5728 5.17157 52.9012 4.5 52.0728 4.5Z\" stroke=\"url(#paint0_linear_144_946)\" stroke-width=\"3\"/>\n<path d=\"M7.44189 11.5767H54.1569\" stroke=\"url(#paint5_linear_144_946)\" stroke-width=\"3\"/>\n<path d=\"M10.6484 9.41176C11.4072 9.41176 12.0224 8.79661 12.0224 8.03779C12.0224 7.27897 11.4072 6.66382 10.6484 6.66382C9.88956 6.66382 9.27441 7.27897 9.27441 8.03779C9.27441 8.79661 9.88956 9.41176 10.6484 9.41176Z\" fill=\"url(#paint2_linear_144_946)\"/>\n<path d=\"M15.228 9.41176C15.9868 9.41176 16.6019 8.79661 16.6019 8.03779C16.6019 7.27897 15.9868 6.66382 15.228 6.66382C14.4692 6.66382 13.854 7.27897 13.854 8.03779C13.854 8.79661 14.4692 9.41176 15.228 9.41176Z\" fill=\"url(#paint3_linear_144_946)\"/>\n<path d=\"M19.8076 9.41176C20.5664 9.41176 21.1815 8.79661 21.1815 8.03779C21.1815 7.27897 20.5664 6.66382 19.8076 6.66382C19.0487 6.66382 18.4336 7.27897 18.4336 8.03779C18.4336 8.79661 19.0487 9.41176 19.8076 9.41176Z\" fill=\"url(#paint4_linear_144_946)\"/>\n<path d=\"M21.6099 18L16.6099 21.1818L21.6099 25\" stroke=\"url(#paint5_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M32.6099 25L36.6099 21.8182L32.6099 18\" stroke=\"url(#paint6_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M25.1816 16.5952L28.3165 26\" stroke=\"url(#paint7_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M15.6934 33.8157L20.8201 33.8552\" stroke=\"url(#paint8_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M15.6177 39L20.7443 39.0395\" stroke=\"url(#paint9_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M15.6177 44L20.7443 44.0395\" stroke=\"url(#paint10_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M23.6099 33.8684L39.6232 34.0001\" stroke=\"url(#paint11_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M23.6934 39L39.7067 39.1317\" stroke=\"url(#paint12_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M23.6934 44L39.7067 44.1317\" stroke=\"url(#paint13_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<defs>\n<linearGradient id=\"paint0_linear_144_946\" x1=\"30.3414\" y1=\"3\" x2=\"30.3414\" y2=\"57.0428\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228BE3\"/>\n<stop offset=\"1\" stop-color=\"#46CEA4\"/>\n</linearGradient>\n<linearGradient id=\"paint2_linear_144_946\" x1=\"10.6484\" y1=\"6.66382\" x2=\"10.6484\" y2=\"9.41176\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#2390DF\"/>\n<stop offset=\"1\" stop-color=\"#49CFA2\"/>\n</linearGradient>\n<linearGradient id=\"paint3_linear_144_946\" x1=\"15.228\" y1=\"6.66382\" x2=\"15.228\" y2=\"9.41176\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#2390DF\"/>\n<stop offset=\"1\" stop-color=\"#49CFA2\"/>\n</linearGradient>\n<linearGradient id=\"paint4_linear_144_946\" x1=\"19.8076\" y1=\"6.66382\" x2=\"19.8076\" y2=\"9.41176\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#2390DF\"/>\n<stop offset=\"1\" stop-color=\"#49CFA2\"/>\n</linearGradient>\n<linearGradient id=\"paint5_linear_144_946\" x1=\"19.1099\" y1=\"18\" x2=\"19.1099\" y2=\"25\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228BE3\"/>\n<stop offset=\"1\" stop-color=\"#44CDA6\"/>\n</linearGradient>\n<linearGradient id=\"paint6_linear_144_946\" x1=\"34.6099\" y1=\"25\" x2=\"34.6099\" y2=\"18\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"1\" stop-color=\"#43CDA6\"/>\n</linearGradient>\n<linearGradient id=\"paint7_linear_144_946\" x1=\"26.749\" y1=\"21.2976\" x2=\"25.8004\" y2=\"21.6138\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint8_linear_144_946\" x1=\"18.2491\" y1=\"34.8354\" x2=\"18.2414\" y2=\"35.8354\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#238EE0\"/>\n<stop offset=\"1\" stop-color=\"#46CEA4\"/>\n</linearGradient>\n<linearGradient id=\"paint9_linear_144_946\" x1=\"18.1733\" y1=\"40.0197\" x2=\"18.1656\" y2=\"41.0198\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228AE3\"/>\n<stop offset=\"1\" stop-color=\"#46CEA4\"/>\n</linearGradient>\n<linearGradient id=\"paint10_linear_144_946\" x1=\"18.1733\" y1=\"45.0197\" x2=\"18.1656\" y2=\"46.0198\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228AE3\"/>\n<stop offset=\"1\" stop-color=\"#46CEA4\"/>\n</linearGradient>\n<linearGradient id=\"paint11_linear_144_946\" x1=\"31.6093\" y1=\"34.9342\" x2=\"31.6011\" y2=\"35.9342\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint12_linear_144_946\" x1=\"31.6928\" y1=\"40.0658\" x2=\"31.6846\" y2=\"41.0658\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint13_linear_144_946\" x1=\"31.6928\" y1=\"45.0658\" x2=\"31.6846\" y2=\"46.0658\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n</defs>\n</svg>\n</td>\n <td role=\"heading\" aria-level=\"4\" style=\"border:none;\">\n <b>Tutorials with theory and interactive hands-on exercises</b>\n </td>\n </tr>\n <tr class=\"transparent\" style=\"border:none;\">\n <td style=\"border:none;\">\n Each tutorial includes relevant theory and supporting interactive exercises designed to test knowledge.\n </td>\n </tr>\n </tbody>\n</table>"
15
15
  }
16
16
  ]
17
17
  },
@@ -11,7 +11,7 @@ export default {
11
11
  "items": [
12
12
  {
13
13
  "type": "text-content",
14
- "content": "\nkaˑ ta | kah-tuh\n_The Japanese word for \"form\", a pattern of learning and practicing new skills._\n\n<style>\n.transparent {\n background: rgba(0, 0, 0, 0.0) !important;\n}\n</style>\n<table>\n <tbody>\n <tr class=\"transparent\" style=\"border:none;\">\n <td rowspan=\"2\" style=\"border:none;\">\n<svg width=\"59\" height=\"60\" viewBox=\"0 0 59 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M11.4624 42.776C12.9479 42.8256 13.6612 43.3574 14.1557 44.0384C14.7665 44.8796 15.1111 46.0279 15.5687 47.5527L15.6351 47.7738C16.0837 49.2659 16.6595 51.1152 17.9024 52.5503C19.239 54.0937 21.1862 55.0006 23.9949 55.0006H41.7125C45.3156 55.0006 48.0022 52.6796 49.9728 49.7757C51.9525 46.8585 53.4288 43.05 54.5789 39.3778C55.9023 35.1526 57.5578 29.8603 57.4967 25.6038C57.4657 23.4508 56.9975 21.3099 55.588 19.6996C54.1401 18.0454 51.9521 17.2335 49.1065 17.2335H48.8959C48.8542 17.2301 48.812 17.2284 48.7694 17.2284C47.1251 17.2284 46.364 16.6776 45.8445 15.9622C45.2338 15.121 44.8892 13.9727 44.4315 12.448L44.3652 12.2269C43.9165 10.7347 43.3408 8.88542 42.0978 7.45027C40.7612 5.90694 38.8141 5 36.0054 5H18.2877C14.6844 5 11.9979 7.32167 10.0273 10.2262C8.04769 13.1441 6.57146 16.9535 5.42128 20.6266C4.0979 24.8529 2.44244 30.1465 2.5036 34.4039C2.53453 36.5573 3.00271 38.6986 4.4121 40.3092C5.86002 41.9638 8.04801 42.776 10.8937 42.776H11.4624ZM8.4035 21.5605C9.52838 17.9681 10.896 14.512 12.6133 11.9807C14.3397 9.4361 16.2033 8.125 18.2877 8.125H30.5829C29.9813 9.08825 29.4908 10.2066 29.0532 11.3837C28.5547 12.7246 28.0917 14.2365 27.6125 15.8012L27.5067 16.1468C25.602 22.3601 23.2175 30.3716 21.6876 35.5382C20.9852 37.9103 18.8486 39.5582 16.3937 39.6472H11.2308C11.1939 39.6472 11.1574 39.6485 11.1211 39.651H10.8937C8.63765 39.651 7.44014 39.0241 6.76382 38.2512C6.04896 37.4343 5.65414 36.1596 5.62828 34.359C5.57583 30.7084 7.03152 25.9419 8.4035 21.5605ZM47.387 48.0209C45.6607 50.5647 43.7971 51.8756 41.7125 51.8756H29.4178C30.0192 50.9127 30.5095 49.7949 30.947 48.6184C31.4455 47.2778 31.9085 45.7662 32.3877 44.2019L32.4935 43.8565C34.3981 37.6451 36.7825 29.6362 38.3124 24.4708C39.0348 22.0317 41.2736 20.3585 43.8155 20.3585H49.1065C51.3627 20.3585 52.5603 20.9852 53.2366 21.7579C53.9513 22.5745 54.3461 23.8487 54.372 25.6487C54.4244 29.2983 52.9688 34.0633 51.5968 38.4437C50.4719 42.0352 49.1043 45.4903 47.387 48.0209ZM26.2496 39.6472H22.9422C23.7238 38.7267 24.3252 37.6371 24.684 36.4255C25.3602 34.1419 26.2028 31.3045 27.0966 28.3137L28.2663 24.4303C28.9953 22.01 31.2243 20.3534 33.752 20.3534H37.0652C36.28 21.2757 35.676 22.3681 35.3161 23.5833C34.6398 25.8665 33.7972 28.7034 32.9033 31.6935L31.7352 35.5707C31.0061 37.9908 28.7771 39.6472 26.2496 39.6472ZM33.752 17.2284C32.5074 17.2284 31.3097 17.4883 30.2188 17.9634C30.3117 17.6594 30.4036 17.359 30.4945 17.0627L30.5919 16.7447C31.0803 15.1503 31.5173 13.7236 31.9824 12.4726C32.4803 11.1333 32.9725 10.1036 33.5137 9.36493C34.0132 8.68326 34.8201 8.125 36.0054 8.125C38.0615 8.125 39.0865 8.74662 39.7356 9.49612C40.4784 10.3538 40.902 11.5616 41.3725 13.1266C41.4081 13.2453 41.4443 13.3668 41.4811 13.4909C41.8282 14.6592 42.2391 16.0421 42.9424 17.2284L33.752 17.2284ZM26.2496 42.7722C27.494 42.7722 28.6915 42.5124 29.7822 42.0374C29.6891 42.3422 29.5969 42.6434 29.5058 42.9404L29.4084 43.2582C28.9201 44.8521 28.483 46.2786 28.0179 47.5293C27.5201 48.8682 27.0279 49.8976 26.4867 50.636C25.9873 51.3174 25.1803 51.8756 23.9949 51.8756C21.9388 51.8756 20.9138 51.254 20.2646 50.5045C19.5218 49.6468 19.0983 48.439 18.6278 46.874C18.5921 46.7554 18.556 46.6338 18.5191 46.5098C18.172 45.3414 17.7612 43.9585 17.0578 42.7722H26.2496Z\" fill=\"url(#paint0_linear_208_693)\"/>\n<defs>\n<linearGradient id=\"paint0_linear_208_693\" x1=\"30.0001\" y1=\"5\" x2=\"30.0001\" y2=\"55.0006\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"0.473958\" stop-color=\"#33BFB5\"/>\n<stop offset=\"1\" stop-color=\"#49CFA3\"/>\n</linearGradient>\n</defs>\n</svg>\n\n</td>\n <td role=\"heading\" aria-level=\"4\" style=\"border:none;\">\n <b>Self-paced AI-assisted learning</b>\n </td>\n </tr>\n <tr class=\"transparent\" style=\"border:none;\">\n <td style=\"border:none;\">\n Quantum katas are self-paced learning tutorials assisted by Copilot in Microsoft Quantum.\n </td>\n </tr>\n <tr class=\"transparent\" style=\"border:none;\">\n <td rowspan=\"2\" style=\"border:none;\">\n<svg width=\"61\" height=\"60\" viewBox=\"0 0 61 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M39.8865 30.3697C39.8865 31.3851 39.112 32.5816 37.2448 33.597C35.4256 34.5863 32.827 35.2368 29.8883 35.2368C26.9495 35.2368 24.3509 34.5863 22.5318 33.597C20.6645 32.5816 19.8901 31.3851 19.8901 30.3697C19.8901 29.3543 20.6645 28.1579 22.5318 27.1424C24.3509 26.1532 26.9495 25.5027 29.8883 25.5027C32.827 25.5027 35.4256 26.1532 37.2448 27.1424C39.112 28.1579 39.8865 29.3543 39.8865 30.3697Z\" stroke=\"url(#paint0_linear_144_926)\" stroke-width=\"2.5\"/>\n<path d=\"M30.0916 40.2027C29.0762 40.2027 27.8798 39.4282 26.8643 37.561C25.8751 35.7418 25.2246 33.1432 25.2246 30.2045C25.2246 27.2657 25.8751 24.6671 26.8643 22.848C27.8798 20.9808 29.0763 20.2063 30.0916 20.2063C31.107 20.2063 32.3035 20.9808 33.3189 22.848C34.3082 24.6671 34.9587 27.2657 34.9587 30.2045C34.9587 33.1432 34.3082 35.7418 33.3189 37.561C32.3035 39.4282 31.107 40.2027 30.0916 40.2027Z\" stroke=\"url(#paint1_linear_144_926)\" stroke-width=\"2.5\"/>\n<path d=\"M30.1231 32.2192C31.0649 32.2192 31.8283 31.4557 31.8283 30.514C31.8283 29.5723 31.0649 28.8088 30.1231 28.8088C29.1814 28.8088 28.418 29.5723 28.418 30.514C28.418 31.4557 29.1814 32.2192 30.1231 32.2192Z\" stroke=\"url(#paint2_linear_144_926)\" stroke-width=\"2\"/>\n<path d=\"M42.7327 15.4275H17.2871C16.0445 15.4275 15.0371 16.4348 15.0371 17.6775V43.1231C15.0371 44.3657 16.0445 45.3731 17.2871 45.3731H42.7327C43.9753 45.3731 44.9827 44.3657 44.9827 43.1231V17.6775C44.9827 16.4348 43.9753 15.4275 42.7327 15.4275Z\" stroke=\"url(#paint3_linear_144_926)\" stroke-width=\"3.5\"/>\n<path d=\"M34.3481 56.9988C34.3481 57.9653 35.1316 58.7488 36.0981 58.7488C37.0646 58.7488 37.8481 57.9653 37.8481 56.9988H34.3481ZM34.3481 49.6211V56.9988H37.8481V49.6211H34.3481Z\" fill=\"url(#paint4_linear_144_926)\"/>\n<path d=\"M28.127 56.9988C28.127 57.9653 28.9105 58.7488 29.877 58.7488C30.8435 58.7488 31.627 57.9653 31.627 56.9988H28.127ZM28.127 49.6211V56.9988H31.627V49.6211H28.127Z\" fill=\"url(#paint5_linear_144_926)\"/>\n<path d=\"M21.9058 56.9988C21.9058 57.9653 22.6893 58.7488 23.6558 58.7488C24.6223 58.7488 25.4058 57.9653 25.4058 56.9988H21.9058ZM21.9058 49.6211V56.9988H25.4058V49.6211H21.9058Z\" fill=\"url(#paint6_linear_144_926)\"/>\n<path d=\"M56.6096 37.5481C57.5761 37.5481 58.3596 36.7646 58.3596 35.7981C58.3596 34.8316 57.5761 34.0481 56.6096 34.0481V37.5481ZM49.2319 37.5481H56.6096V34.0481H49.2319V37.5481Z\" fill=\"url(#paint7_linear_144_926)\"/>\n<path d=\"M56.6096 31.3267C57.5761 31.3267 58.3596 30.5432 58.3596 29.5767C58.3596 28.6102 57.5761 27.8267 56.6096 27.8267V31.3267ZM49.2319 31.3267H56.6096V27.8267H49.2319V31.3267Z\" fill=\"url(#paint8_linear_144_926)\"/>\n<path d=\"M56.6096 25.1052C57.5761 25.1052 58.3596 24.3217 58.3596 23.3552C58.3596 22.3887 57.5761 21.6052 56.6096 21.6052V25.1052ZM49.2319 25.1052H56.6096V21.6052H49.2319V25.1052Z\" fill=\"url(#paint9_linear_144_926)\"/>\n<path d=\"M3.60986 21.605C2.64336 21.605 1.85986 22.3885 1.85986 23.355C1.85986 24.3215 2.64336 25.105 3.60986 25.105V21.605ZM10.9876 21.605H3.60986V25.105H10.9876V21.605Z\" fill=\"url(#paint10_linear_144_926)\"/>\n<path d=\"M3.60986 27.8264C2.64336 27.8264 1.85986 28.6099 1.85986 29.5764C1.85986 30.5429 2.64336 31.3264 3.60986 31.3264V27.8264ZM10.9876 27.8264H3.60986V31.3264H10.9876V27.8264Z\" fill=\"url(#paint11_linear_144_926)\"/>\n<path d=\"M3.60986 34.0471C2.64336 34.0471 1.85986 34.8306 1.85986 35.7971C1.85986 36.7636 2.64336 37.5471 3.60986 37.5471V34.0471ZM10.9876 34.0471H3.60986V37.5471H10.9876V34.0471Z\" fill=\"url(#paint12_linear_144_926)\"/>\n<path d=\"M37.8481 4C37.8481 3.0335 37.0646 2.25 36.0981 2.25C35.1316 2.25 34.3481 3.0335 34.3481 4H37.8481ZM37.8481 11.3777V4H34.3481V11.3777H37.8481Z\" fill=\"url(#paint13_linear_144_926)\"/>\n<path d=\"M31.627 4C31.627 3.0335 30.8435 2.25 29.877 2.25C28.9105 2.25 28.127 3.0335 28.127 4H31.627ZM31.627 11.3777V4H28.127V11.3777H31.627Z\" fill=\"url(#paint14_linear_144_926)\"/>\n<path d=\"M25.4058 4C25.4058 3.0335 24.6223 2.25 23.6558 2.25C22.6893 2.25 21.9058 3.0335 21.9058 4H25.4058ZM25.4058 11.3777V4H21.9058V11.3777H25.4058Z\" fill=\"url(#paint15_linear_144_926)\"/>\n<defs>\n<linearGradient id=\"paint0_linear_144_926\" x1=\"29.8883\" y1=\"24.2527\" x2=\"29.8883\" y2=\"36.4868\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#238DE1\"/>\n<stop offset=\"1\" stop-color=\"#49CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint1_linear_144_926\" x1=\"36.2087\" y1=\"30.2045\" x2=\"23.9746\" y2=\"30.2045\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228BE3\"/>\n<stop offset=\"1\" stop-color=\"#47CFA4\"/>\n</linearGradient>\n<linearGradient id=\"paint2_linear_144_926\" x1=\"30.1231\" y1=\"27.8088\" x2=\"30.1231\" y2=\"33.2192\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint3_linear_144_926\" x1=\"13.9784\" y1=\"14.7144\" x2=\"44.3932\" y2=\"46.8572\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228BE2\"/>\n<stop offset=\"1\" stop-color=\"#4AD0A2\"/>\n</linearGradient>\n<linearGradient id=\"paint4_linear_144_926\" x1=\"38.6748\" y1=\"55.2712\" x2=\"36.1597\" y2=\"52.3849\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint5_linear_144_926\" x1=\"32.4537\" y1=\"55.2712\" x2=\"29.9386\" y2=\"52.3849\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint6_linear_144_926\" x1=\"26.2325\" y1=\"55.2712\" x2=\"23.7174\" y2=\"52.3849\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint7_linear_144_926\" x1=\"54.882\" y1=\"33.2214\" x2=\"51.9957\" y2=\"35.7365\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint8_linear_144_926\" x1=\"54.882\" y1=\"27\" x2=\"51.9957\" y2=\"29.5151\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint9_linear_144_926\" x1=\"54.882\" y1=\"20.7786\" x2=\"51.9957\" y2=\"23.2936\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#2492DD\"/>\n<stop offset=\"1\" stop-color=\"#47CFA4\"/>\n</linearGradient>\n<linearGradient id=\"paint10_linear_144_926\" x1=\"5.33745\" y1=\"25.9317\" x2=\"8.22376\" y2=\"23.4166\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#41CCA7\"/>\n</linearGradient>\n<linearGradient id=\"paint11_linear_144_926\" x1=\"5.33745\" y1=\"32.1531\" x2=\"8.22376\" y2=\"29.638\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#41CCA7\"/>\n</linearGradient>\n<linearGradient id=\"paint12_linear_144_926\" x1=\"5.33745\" y1=\"38.3738\" x2=\"8.22376\" y2=\"35.8587\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#41CCA7\"/>\n</linearGradient>\n<linearGradient id=\"paint13_linear_144_926\" x1=\"33.5215\" y1=\"5.72759\" x2=\"36.0365\" y2=\"8.6139\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#4AD0A2\"/>\n</linearGradient>\n<linearGradient id=\"paint14_linear_144_926\" x1=\"27.3004\" y1=\"5.72759\" x2=\"29.8154\" y2=\"8.6139\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#4AD0A2\"/>\n</linearGradient>\n<linearGradient id=\"paint15_linear_144_926\" x1=\"21.0792\" y1=\"5.72759\" x2=\"23.5942\" y2=\"8.6139\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#4AD0A2\"/>\n</linearGradient>\n</defs>\n</svg>\n\n</td>\n <td role=\"heading\" aria-level=\"4\" style=\"border:none;\">\n <b>Focused on quantum computing and programming</b>\n </td>\n </tr>\n <tr class=\"transparent\" style=\"border:none;\">\n <td style=\"border:none;\">\n The Quantum katas focus on teaching quantum computing concepts and quantum programming using the Q# language.\n </td>\n </tr>\n <tr class=\"transparent\" style=\"border:none;\">\n <td rowspan=\"2\" style=\"border:none;\">\n<svg width=\"61\" height=\"60\" viewBox=\"0 0 61 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M52.0728 4.5H8.60986C7.78144 4.5 7.10986 5.17157 7.10986 6V54.0428C7.10986 54.8712 7.78144 55.5428 8.60986 55.5428H52.0728C52.9012 55.5428 53.5728 54.8712 53.5728 54.0428V6C53.5728 5.17157 52.9012 4.5 52.0728 4.5Z\" stroke=\"url(#paint0_linear_144_946)\" stroke-width=\"3\"/>\n<path d=\"M7.44189 11.5767H54.1569\" stroke=\"url(#paint5_linear_144_946)\" stroke-width=\"3\"/>\n<path d=\"M10.6484 9.41176C11.4072 9.41176 12.0224 8.79661 12.0224 8.03779C12.0224 7.27897 11.4072 6.66382 10.6484 6.66382C9.88956 6.66382 9.27441 7.27897 9.27441 8.03779C9.27441 8.79661 9.88956 9.41176 10.6484 9.41176Z\" fill=\"url(#paint2_linear_144_946)\"/>\n<path d=\"M15.228 9.41176C15.9868 9.41176 16.6019 8.79661 16.6019 8.03779C16.6019 7.27897 15.9868 6.66382 15.228 6.66382C14.4692 6.66382 13.854 7.27897 13.854 8.03779C13.854 8.79661 14.4692 9.41176 15.228 9.41176Z\" fill=\"url(#paint3_linear_144_946)\"/>\n<path d=\"M19.8076 9.41176C20.5664 9.41176 21.1815 8.79661 21.1815 8.03779C21.1815 7.27897 20.5664 6.66382 19.8076 6.66382C19.0487 6.66382 18.4336 7.27897 18.4336 8.03779C18.4336 8.79661 19.0487 9.41176 19.8076 9.41176Z\" fill=\"url(#paint4_linear_144_946)\"/>\n<path d=\"M21.6099 18L16.6099 21.1818L21.6099 25\" stroke=\"url(#paint5_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M32.6099 25L36.6099 21.8182L32.6099 18\" stroke=\"url(#paint6_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M25.1816 16.5952L28.3165 26\" stroke=\"url(#paint7_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M15.6934 33.8157L20.8201 33.8552\" stroke=\"url(#paint8_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M15.6177 39L20.7443 39.0395\" stroke=\"url(#paint9_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M15.6177 44L20.7443 44.0395\" stroke=\"url(#paint10_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M23.6099 33.8684L39.6232 34.0001\" stroke=\"url(#paint11_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M23.6934 39L39.7067 39.1317\" stroke=\"url(#paint12_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M23.6934 44L39.7067 44.1317\" stroke=\"url(#paint13_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<defs>\n<linearGradient id=\"paint0_linear_144_946\" x1=\"30.3414\" y1=\"3\" x2=\"30.3414\" y2=\"57.0428\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228BE3\"/>\n<stop offset=\"1\" stop-color=\"#46CEA4\"/>\n</linearGradient>\n<linearGradient id=\"paint2_linear_144_946\" x1=\"10.6484\" y1=\"6.66382\" x2=\"10.6484\" y2=\"9.41176\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#2390DF\"/>\n<stop offset=\"1\" stop-color=\"#49CFA2\"/>\n</linearGradient>\n<linearGradient id=\"paint3_linear_144_946\" x1=\"15.228\" y1=\"6.66382\" x2=\"15.228\" y2=\"9.41176\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#2390DF\"/>\n<stop offset=\"1\" stop-color=\"#49CFA2\"/>\n</linearGradient>\n<linearGradient id=\"paint4_linear_144_946\" x1=\"19.8076\" y1=\"6.66382\" x2=\"19.8076\" y2=\"9.41176\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#2390DF\"/>\n<stop offset=\"1\" stop-color=\"#49CFA2\"/>\n</linearGradient>\n<linearGradient id=\"paint5_linear_144_946\" x1=\"19.1099\" y1=\"18\" x2=\"19.1099\" y2=\"25\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228BE3\"/>\n<stop offset=\"1\" stop-color=\"#44CDA6\"/>\n</linearGradient>\n<linearGradient id=\"paint6_linear_144_946\" x1=\"34.6099\" y1=\"25\" x2=\"34.6099\" y2=\"18\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"1\" stop-color=\"#43CDA6\"/>\n</linearGradient>\n<linearGradient id=\"paint7_linear_144_946\" x1=\"26.749\" y1=\"21.2976\" x2=\"25.8004\" y2=\"21.6138\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint8_linear_144_946\" x1=\"18.2491\" y1=\"34.8354\" x2=\"18.2414\" y2=\"35.8354\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#238EE0\"/>\n<stop offset=\"1\" stop-color=\"#46CEA4\"/>\n</linearGradient>\n<linearGradient id=\"paint9_linear_144_946\" x1=\"18.1733\" y1=\"40.0197\" x2=\"18.1656\" y2=\"41.0198\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228AE3\"/>\n<stop offset=\"1\" stop-color=\"#46CEA4\"/>\n</linearGradient>\n<linearGradient id=\"paint10_linear_144_946\" x1=\"18.1733\" y1=\"45.0197\" x2=\"18.1656\" y2=\"46.0198\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228AE3\"/>\n<stop offset=\"1\" stop-color=\"#46CEA4\"/>\n</linearGradient>\n<linearGradient id=\"paint11_linear_144_946\" x1=\"31.6093\" y1=\"34.9342\" x2=\"31.6011\" y2=\"35.9342\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint12_linear_144_946\" x1=\"31.6928\" y1=\"40.0658\" x2=\"31.6846\" y2=\"41.0658\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint13_linear_144_946\" x1=\"31.6928\" y1=\"45.0658\" x2=\"31.6846\" y2=\"46.0658\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n</defs>\n</svg>\n\n</td>\n <td role=\"heading\" aria-level=\"4\" style=\"border:none;\">\n <b>Tutorials with theory and interactive hands-on exercises</b>\n </td>\n </tr>\n <tr class=\"transparent\" style=\"border:none;\">\n <td style=\"border:none;\">\n Each tutorial includes relevant theory and supporting interactive exercises designed to test knowledge.\n </td>\n </tr>\n </tbody>\n</table>"
14
+ "content": "\nkaˑ ta | kah-tuh\n_The Japanese word for \"form\", a pattern of learning and practicing new skills._\n\n<style>\n.transparent {\n background: rgba(0, 0, 0, 0.0) !important;\n}\n</style>\n<table>\n <tbody>\n <tr class=\"transparent\" style=\"border:none;\">\n <td rowspan=\"2\" style=\"border:none;\">\n<svg width=\"59\" height=\"60\" viewBox=\"0 0 59 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M11.4624 42.776C12.9479 42.8256 13.6612 43.3574 14.1557 44.0384C14.7665 44.8796 15.1111 46.0279 15.5687 47.5527L15.6351 47.7738C16.0837 49.2659 16.6595 51.1152 17.9024 52.5503C19.239 54.0937 21.1862 55.0006 23.9949 55.0006H41.7125C45.3156 55.0006 48.0022 52.6796 49.9728 49.7757C51.9525 46.8585 53.4288 43.05 54.5789 39.3778C55.9023 35.1526 57.5578 29.8603 57.4967 25.6038C57.4657 23.4508 56.9975 21.3099 55.588 19.6996C54.1401 18.0454 51.9521 17.2335 49.1065 17.2335H48.8959C48.8542 17.2301 48.812 17.2284 48.7694 17.2284C47.1251 17.2284 46.364 16.6776 45.8445 15.9622C45.2338 15.121 44.8892 13.9727 44.4315 12.448L44.3652 12.2269C43.9165 10.7347 43.3408 8.88542 42.0978 7.45027C40.7612 5.90694 38.8141 5 36.0054 5H18.2877C14.6844 5 11.9979 7.32167 10.0273 10.2262C8.04769 13.1441 6.57146 16.9535 5.42128 20.6266C4.0979 24.8529 2.44244 30.1465 2.5036 34.4039C2.53453 36.5573 3.00271 38.6986 4.4121 40.3092C5.86002 41.9638 8.04801 42.776 10.8937 42.776H11.4624ZM8.4035 21.5605C9.52838 17.9681 10.896 14.512 12.6133 11.9807C14.3397 9.4361 16.2033 8.125 18.2877 8.125H30.5829C29.9813 9.08825 29.4908 10.2066 29.0532 11.3837C28.5547 12.7246 28.0917 14.2365 27.6125 15.8012L27.5067 16.1468C25.602 22.3601 23.2175 30.3716 21.6876 35.5382C20.9852 37.9103 18.8486 39.5582 16.3937 39.6472H11.2308C11.1939 39.6472 11.1574 39.6485 11.1211 39.651H10.8937C8.63765 39.651 7.44014 39.0241 6.76382 38.2512C6.04896 37.4343 5.65414 36.1596 5.62828 34.359C5.57583 30.7084 7.03152 25.9419 8.4035 21.5605ZM47.387 48.0209C45.6607 50.5647 43.7971 51.8756 41.7125 51.8756H29.4178C30.0192 50.9127 30.5095 49.7949 30.947 48.6184C31.4455 47.2778 31.9085 45.7662 32.3877 44.2019L32.4935 43.8565C34.3981 37.6451 36.7825 29.6362 38.3124 24.4708C39.0348 22.0317 41.2736 20.3585 43.8155 20.3585H49.1065C51.3627 20.3585 52.5603 20.9852 53.2366 21.7579C53.9513 22.5745 54.3461 23.8487 54.372 25.6487C54.4244 29.2983 52.9688 34.0633 51.5968 38.4437C50.4719 42.0352 49.1043 45.4903 47.387 48.0209ZM26.2496 39.6472H22.9422C23.7238 38.7267 24.3252 37.6371 24.684 36.4255C25.3602 34.1419 26.2028 31.3045 27.0966 28.3137L28.2663 24.4303C28.9953 22.01 31.2243 20.3534 33.752 20.3534H37.0652C36.28 21.2757 35.676 22.3681 35.3161 23.5833C34.6398 25.8665 33.7972 28.7034 32.9033 31.6935L31.7352 35.5707C31.0061 37.9908 28.7771 39.6472 26.2496 39.6472ZM33.752 17.2284C32.5074 17.2284 31.3097 17.4883 30.2188 17.9634C30.3117 17.6594 30.4036 17.359 30.4945 17.0627L30.5919 16.7447C31.0803 15.1503 31.5173 13.7236 31.9824 12.4726C32.4803 11.1333 32.9725 10.1036 33.5137 9.36493C34.0132 8.68326 34.8201 8.125 36.0054 8.125C38.0615 8.125 39.0865 8.74662 39.7356 9.49612C40.4784 10.3538 40.902 11.5616 41.3725 13.1266C41.4081 13.2453 41.4443 13.3668 41.4811 13.4909C41.8282 14.6592 42.2391 16.0421 42.9424 17.2284L33.752 17.2284ZM26.2496 42.7722C27.494 42.7722 28.6915 42.5124 29.7822 42.0374C29.6891 42.3422 29.5969 42.6434 29.5058 42.9404L29.4084 43.2582C28.9201 44.8521 28.483 46.2786 28.0179 47.5293C27.5201 48.8682 27.0279 49.8976 26.4867 50.636C25.9873 51.3174 25.1803 51.8756 23.9949 51.8756C21.9388 51.8756 20.9138 51.254 20.2646 50.5045C19.5218 49.6468 19.0983 48.439 18.6278 46.874C18.5921 46.7554 18.556 46.6338 18.5191 46.5098C18.172 45.3414 17.7612 43.9585 17.0578 42.7722H26.2496Z\" fill=\"url(#paint0_linear_208_693)\"/>\n<defs>\n<linearGradient id=\"paint0_linear_208_693\" x1=\"30.0001\" y1=\"5\" x2=\"30.0001\" y2=\"55.0006\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"0.473958\" stop-color=\"#33BFB5\"/>\n<stop offset=\"1\" stop-color=\"#49CFA3\"/>\n</linearGradient>\n</defs>\n</svg>\n\n</td>\n <td role=\"heading\" aria-level=\"4\" style=\"border:none;\">\n <b>Self-paced learning</b>\n </td>\n </tr>\n <tr class=\"transparent\" style=\"border:none;\">\n <td style=\"border:none;\">\n Quantum katas are self-paced learning tutorials in Microsoft Quantum.\n </td>\n </tr>\n <tr class=\"transparent\" style=\"border:none;\">\n <td rowspan=\"2\" style=\"border:none;\">\n<svg width=\"61\" height=\"60\" viewBox=\"0 0 61 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M39.8865 30.3697C39.8865 31.3851 39.112 32.5816 37.2448 33.597C35.4256 34.5863 32.827 35.2368 29.8883 35.2368C26.9495 35.2368 24.3509 34.5863 22.5318 33.597C20.6645 32.5816 19.8901 31.3851 19.8901 30.3697C19.8901 29.3543 20.6645 28.1579 22.5318 27.1424C24.3509 26.1532 26.9495 25.5027 29.8883 25.5027C32.827 25.5027 35.4256 26.1532 37.2448 27.1424C39.112 28.1579 39.8865 29.3543 39.8865 30.3697Z\" stroke=\"url(#paint0_linear_144_926)\" stroke-width=\"2.5\"/>\n<path d=\"M30.0916 40.2027C29.0762 40.2027 27.8798 39.4282 26.8643 37.561C25.8751 35.7418 25.2246 33.1432 25.2246 30.2045C25.2246 27.2657 25.8751 24.6671 26.8643 22.848C27.8798 20.9808 29.0763 20.2063 30.0916 20.2063C31.107 20.2063 32.3035 20.9808 33.3189 22.848C34.3082 24.6671 34.9587 27.2657 34.9587 30.2045C34.9587 33.1432 34.3082 35.7418 33.3189 37.561C32.3035 39.4282 31.107 40.2027 30.0916 40.2027Z\" stroke=\"url(#paint1_linear_144_926)\" stroke-width=\"2.5\"/>\n<path d=\"M30.1231 32.2192C31.0649 32.2192 31.8283 31.4557 31.8283 30.514C31.8283 29.5723 31.0649 28.8088 30.1231 28.8088C29.1814 28.8088 28.418 29.5723 28.418 30.514C28.418 31.4557 29.1814 32.2192 30.1231 32.2192Z\" stroke=\"url(#paint2_linear_144_926)\" stroke-width=\"2\"/>\n<path d=\"M42.7327 15.4275H17.2871C16.0445 15.4275 15.0371 16.4348 15.0371 17.6775V43.1231C15.0371 44.3657 16.0445 45.3731 17.2871 45.3731H42.7327C43.9753 45.3731 44.9827 44.3657 44.9827 43.1231V17.6775C44.9827 16.4348 43.9753 15.4275 42.7327 15.4275Z\" stroke=\"url(#paint3_linear_144_926)\" stroke-width=\"3.5\"/>\n<path d=\"M34.3481 56.9988C34.3481 57.9653 35.1316 58.7488 36.0981 58.7488C37.0646 58.7488 37.8481 57.9653 37.8481 56.9988H34.3481ZM34.3481 49.6211V56.9988H37.8481V49.6211H34.3481Z\" fill=\"url(#paint4_linear_144_926)\"/>\n<path d=\"M28.127 56.9988C28.127 57.9653 28.9105 58.7488 29.877 58.7488C30.8435 58.7488 31.627 57.9653 31.627 56.9988H28.127ZM28.127 49.6211V56.9988H31.627V49.6211H28.127Z\" fill=\"url(#paint5_linear_144_926)\"/>\n<path d=\"M21.9058 56.9988C21.9058 57.9653 22.6893 58.7488 23.6558 58.7488C24.6223 58.7488 25.4058 57.9653 25.4058 56.9988H21.9058ZM21.9058 49.6211V56.9988H25.4058V49.6211H21.9058Z\" fill=\"url(#paint6_linear_144_926)\"/>\n<path d=\"M56.6096 37.5481C57.5761 37.5481 58.3596 36.7646 58.3596 35.7981C58.3596 34.8316 57.5761 34.0481 56.6096 34.0481V37.5481ZM49.2319 37.5481H56.6096V34.0481H49.2319V37.5481Z\" fill=\"url(#paint7_linear_144_926)\"/>\n<path d=\"M56.6096 31.3267C57.5761 31.3267 58.3596 30.5432 58.3596 29.5767C58.3596 28.6102 57.5761 27.8267 56.6096 27.8267V31.3267ZM49.2319 31.3267H56.6096V27.8267H49.2319V31.3267Z\" fill=\"url(#paint8_linear_144_926)\"/>\n<path d=\"M56.6096 25.1052C57.5761 25.1052 58.3596 24.3217 58.3596 23.3552C58.3596 22.3887 57.5761 21.6052 56.6096 21.6052V25.1052ZM49.2319 25.1052H56.6096V21.6052H49.2319V25.1052Z\" fill=\"url(#paint9_linear_144_926)\"/>\n<path d=\"M3.60986 21.605C2.64336 21.605 1.85986 22.3885 1.85986 23.355C1.85986 24.3215 2.64336 25.105 3.60986 25.105V21.605ZM10.9876 21.605H3.60986V25.105H10.9876V21.605Z\" fill=\"url(#paint10_linear_144_926)\"/>\n<path d=\"M3.60986 27.8264C2.64336 27.8264 1.85986 28.6099 1.85986 29.5764C1.85986 30.5429 2.64336 31.3264 3.60986 31.3264V27.8264ZM10.9876 27.8264H3.60986V31.3264H10.9876V27.8264Z\" fill=\"url(#paint11_linear_144_926)\"/>\n<path d=\"M3.60986 34.0471C2.64336 34.0471 1.85986 34.8306 1.85986 35.7971C1.85986 36.7636 2.64336 37.5471 3.60986 37.5471V34.0471ZM10.9876 34.0471H3.60986V37.5471H10.9876V34.0471Z\" fill=\"url(#paint12_linear_144_926)\"/>\n<path d=\"M37.8481 4C37.8481 3.0335 37.0646 2.25 36.0981 2.25C35.1316 2.25 34.3481 3.0335 34.3481 4H37.8481ZM37.8481 11.3777V4H34.3481V11.3777H37.8481Z\" fill=\"url(#paint13_linear_144_926)\"/>\n<path d=\"M31.627 4C31.627 3.0335 30.8435 2.25 29.877 2.25C28.9105 2.25 28.127 3.0335 28.127 4H31.627ZM31.627 11.3777V4H28.127V11.3777H31.627Z\" fill=\"url(#paint14_linear_144_926)\"/>\n<path d=\"M25.4058 4C25.4058 3.0335 24.6223 2.25 23.6558 2.25C22.6893 2.25 21.9058 3.0335 21.9058 4H25.4058ZM25.4058 11.3777V4H21.9058V11.3777H25.4058Z\" fill=\"url(#paint15_linear_144_926)\"/>\n<defs>\n<linearGradient id=\"paint0_linear_144_926\" x1=\"29.8883\" y1=\"24.2527\" x2=\"29.8883\" y2=\"36.4868\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#238DE1\"/>\n<stop offset=\"1\" stop-color=\"#49CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint1_linear_144_926\" x1=\"36.2087\" y1=\"30.2045\" x2=\"23.9746\" y2=\"30.2045\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228BE3\"/>\n<stop offset=\"1\" stop-color=\"#47CFA4\"/>\n</linearGradient>\n<linearGradient id=\"paint2_linear_144_926\" x1=\"30.1231\" y1=\"27.8088\" x2=\"30.1231\" y2=\"33.2192\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint3_linear_144_926\" x1=\"13.9784\" y1=\"14.7144\" x2=\"44.3932\" y2=\"46.8572\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228BE2\"/>\n<stop offset=\"1\" stop-color=\"#4AD0A2\"/>\n</linearGradient>\n<linearGradient id=\"paint4_linear_144_926\" x1=\"38.6748\" y1=\"55.2712\" x2=\"36.1597\" y2=\"52.3849\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint5_linear_144_926\" x1=\"32.4537\" y1=\"55.2712\" x2=\"29.9386\" y2=\"52.3849\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint6_linear_144_926\" x1=\"26.2325\" y1=\"55.2712\" x2=\"23.7174\" y2=\"52.3849\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint7_linear_144_926\" x1=\"54.882\" y1=\"33.2214\" x2=\"51.9957\" y2=\"35.7365\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint8_linear_144_926\" x1=\"54.882\" y1=\"27\" x2=\"51.9957\" y2=\"29.5151\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint9_linear_144_926\" x1=\"54.882\" y1=\"20.7786\" x2=\"51.9957\" y2=\"23.2936\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#2492DD\"/>\n<stop offset=\"1\" stop-color=\"#47CFA4\"/>\n</linearGradient>\n<linearGradient id=\"paint10_linear_144_926\" x1=\"5.33745\" y1=\"25.9317\" x2=\"8.22376\" y2=\"23.4166\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#41CCA7\"/>\n</linearGradient>\n<linearGradient id=\"paint11_linear_144_926\" x1=\"5.33745\" y1=\"32.1531\" x2=\"8.22376\" y2=\"29.638\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#41CCA7\"/>\n</linearGradient>\n<linearGradient id=\"paint12_linear_144_926\" x1=\"5.33745\" y1=\"38.3738\" x2=\"8.22376\" y2=\"35.8587\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228CE2\"/>\n<stop offset=\"1\" stop-color=\"#41CCA7\"/>\n</linearGradient>\n<linearGradient id=\"paint13_linear_144_926\" x1=\"33.5215\" y1=\"5.72759\" x2=\"36.0365\" y2=\"8.6139\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#4AD0A2\"/>\n</linearGradient>\n<linearGradient id=\"paint14_linear_144_926\" x1=\"27.3004\" y1=\"5.72759\" x2=\"29.8154\" y2=\"8.6139\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#4AD0A2\"/>\n</linearGradient>\n<linearGradient id=\"paint15_linear_144_926\" x1=\"21.0792\" y1=\"5.72759\" x2=\"23.5942\" y2=\"8.6139\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#4AD0A2\"/>\n</linearGradient>\n</defs>\n</svg>\n\n</td>\n <td role=\"heading\" aria-level=\"4\" style=\"border:none;\">\n <b>Focused on quantum computing and programming</b>\n </td>\n </tr>\n <tr class=\"transparent\" style=\"border:none;\">\n <td style=\"border:none;\">\n The Quantum katas focus on teaching quantum computing concepts and quantum programming using the Q# language.\n </td>\n </tr>\n <tr class=\"transparent\" style=\"border:none;\">\n <td rowspan=\"2\" style=\"border:none;\">\n<svg width=\"61\" height=\"60\" viewBox=\"0 0 61 60\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M52.0728 4.5H8.60986C7.78144 4.5 7.10986 5.17157 7.10986 6V54.0428C7.10986 54.8712 7.78144 55.5428 8.60986 55.5428H52.0728C52.9012 55.5428 53.5728 54.8712 53.5728 54.0428V6C53.5728 5.17157 52.9012 4.5 52.0728 4.5Z\" stroke=\"url(#paint0_linear_144_946)\" stroke-width=\"3\"/>\n<path d=\"M7.44189 11.5767H54.1569\" stroke=\"url(#paint5_linear_144_946)\" stroke-width=\"3\"/>\n<path d=\"M10.6484 9.41176C11.4072 9.41176 12.0224 8.79661 12.0224 8.03779C12.0224 7.27897 11.4072 6.66382 10.6484 6.66382C9.88956 6.66382 9.27441 7.27897 9.27441 8.03779C9.27441 8.79661 9.88956 9.41176 10.6484 9.41176Z\" fill=\"url(#paint2_linear_144_946)\"/>\n<path d=\"M15.228 9.41176C15.9868 9.41176 16.6019 8.79661 16.6019 8.03779C16.6019 7.27897 15.9868 6.66382 15.228 6.66382C14.4692 6.66382 13.854 7.27897 13.854 8.03779C13.854 8.79661 14.4692 9.41176 15.228 9.41176Z\" fill=\"url(#paint3_linear_144_946)\"/>\n<path d=\"M19.8076 9.41176C20.5664 9.41176 21.1815 8.79661 21.1815 8.03779C21.1815 7.27897 20.5664 6.66382 19.8076 6.66382C19.0487 6.66382 18.4336 7.27897 18.4336 8.03779C18.4336 8.79661 19.0487 9.41176 19.8076 9.41176Z\" fill=\"url(#paint4_linear_144_946)\"/>\n<path d=\"M21.6099 18L16.6099 21.1818L21.6099 25\" stroke=\"url(#paint5_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M32.6099 25L36.6099 21.8182L32.6099 18\" stroke=\"url(#paint6_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M25.1816 16.5952L28.3165 26\" stroke=\"url(#paint7_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M15.6934 33.8157L20.8201 33.8552\" stroke=\"url(#paint8_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M15.6177 39L20.7443 39.0395\" stroke=\"url(#paint9_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M15.6177 44L20.7443 44.0395\" stroke=\"url(#paint10_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M23.6099 33.8684L39.6232 34.0001\" stroke=\"url(#paint11_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M23.6934 39L39.7067 39.1317\" stroke=\"url(#paint12_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M23.6934 44L39.7067 44.1317\" stroke=\"url(#paint13_linear_144_946)\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<defs>\n<linearGradient id=\"paint0_linear_144_946\" x1=\"30.3414\" y1=\"3\" x2=\"30.3414\" y2=\"57.0428\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228BE3\"/>\n<stop offset=\"1\" stop-color=\"#46CEA4\"/>\n</linearGradient>\n<linearGradient id=\"paint2_linear_144_946\" x1=\"10.6484\" y1=\"6.66382\" x2=\"10.6484\" y2=\"9.41176\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#2390DF\"/>\n<stop offset=\"1\" stop-color=\"#49CFA2\"/>\n</linearGradient>\n<linearGradient id=\"paint3_linear_144_946\" x1=\"15.228\" y1=\"6.66382\" x2=\"15.228\" y2=\"9.41176\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#2390DF\"/>\n<stop offset=\"1\" stop-color=\"#49CFA2\"/>\n</linearGradient>\n<linearGradient id=\"paint4_linear_144_946\" x1=\"19.8076\" y1=\"6.66382\" x2=\"19.8076\" y2=\"9.41176\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#2390DF\"/>\n<stop offset=\"1\" stop-color=\"#49CFA2\"/>\n</linearGradient>\n<linearGradient id=\"paint5_linear_144_946\" x1=\"19.1099\" y1=\"18\" x2=\"19.1099\" y2=\"25\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228BE3\"/>\n<stop offset=\"1\" stop-color=\"#44CDA6\"/>\n</linearGradient>\n<linearGradient id=\"paint6_linear_144_946\" x1=\"34.6099\" y1=\"25\" x2=\"34.6099\" y2=\"18\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"1\" stop-color=\"#43CDA6\"/>\n</linearGradient>\n<linearGradient id=\"paint7_linear_144_946\" x1=\"26.749\" y1=\"21.2976\" x2=\"25.8004\" y2=\"21.6138\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228DE1\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint8_linear_144_946\" x1=\"18.2491\" y1=\"34.8354\" x2=\"18.2414\" y2=\"35.8354\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#238EE0\"/>\n<stop offset=\"1\" stop-color=\"#46CEA4\"/>\n</linearGradient>\n<linearGradient id=\"paint9_linear_144_946\" x1=\"18.1733\" y1=\"40.0197\" x2=\"18.1656\" y2=\"41.0198\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228AE3\"/>\n<stop offset=\"1\" stop-color=\"#46CEA4\"/>\n</linearGradient>\n<linearGradient id=\"paint10_linear_144_946\" x1=\"18.1733\" y1=\"45.0197\" x2=\"18.1656\" y2=\"46.0198\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#228AE3\"/>\n<stop offset=\"1\" stop-color=\"#46CEA4\"/>\n</linearGradient>\n<linearGradient id=\"paint11_linear_144_946\" x1=\"31.6093\" y1=\"34.9342\" x2=\"31.6011\" y2=\"35.9342\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint12_linear_144_946\" x1=\"31.6928\" y1=\"40.0658\" x2=\"31.6846\" y2=\"41.0658\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n<linearGradient id=\"paint13_linear_144_946\" x1=\"31.6928\" y1=\"45.0658\" x2=\"31.6846\" y2=\"46.0658\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#218AE4\"/>\n<stop offset=\"1\" stop-color=\"#48CFA3\"/>\n</linearGradient>\n</defs>\n</svg>\n\n</td>\n <td role=\"heading\" aria-level=\"4\" style=\"border:none;\">\n <b>Tutorials with theory and interactive hands-on exercises</b>\n </td>\n </tr>\n <tr class=\"transparent\" style=\"border:none;\">\n <td style=\"border:none;\">\n Each tutorial includes relevant theory and supporting interactive exercises designed to test knowledge.\n </td>\n </tr>\n </tbody>\n</table>"
15
15
  }
16
16
  ]
17
17
  },
@@ -47,7 +47,7 @@ export default [
47
47
  {
48
48
  "title": "Teleportation (Simple)",
49
49
  "shots": 100,
50
- "code": "/// # Summary\n/// Simple quantum teleportation sample\n///\n/// # Description\n/// This Q# program demonstrates how to teleport quantum state\n/// by communicating two classical bits and using previously entangled qubits.\n/// This code teleports one specific state, but any state can be teleported.\noperation Main() : Bool {\n // Allocate `qAlice`, `qBob` qubits\n use (qAlice, qBob) = (Qubit(), Qubit());\n\n // Entangle `qAlice`, `qBob` qubits\n H(qAlice);\n CNOT(qAlice, qBob);\n\n // From now on qubits `qAlice` and `qBob` will not interact directly.\n\n // Allocate `qToTeleport` qubit and prepare it to be |𝜓⟩≈0.9394|0⟩−0.3429𝑖|1⟩\n use qToTeleport = Qubit();\n Rx(0.7, qToTeleport);\n\n // Prepare the message by entangling `qToTeleport` and `qAlice` qubits\n CNOT(qToTeleport, qAlice);\n H(qToTeleport);\n\n // Obtain classical measurement results b1 and b2 at Alice's site.\n let b1 = M(qToTeleport) == One;\n let b2 = M(qAlice) == One;\n\n // At this point classical bits b1 and b2 are \"sent\" to the Bob's site.\n\n // Decode the message by applying adjustments based on classical data b1 and b2.\n if b1 {\n Z(qBob);\n }\n if b2 {\n X(qBob);\n }\n\n // Make sure that the obtained message is |𝜓⟩≈0.9394|0⟩−0.3429𝑖|1⟩\n Rx(-0.7, qBob);\n let correct = Std.Diagnostics.CheckZero(qBob);\n Message($\"Teleportation successful: {correct}.\");\n\n // Reset all qubits to |0⟩ state.\n ResetAll([qAlice, qBob, qToTeleport]);\n\n // Return indication if the measurement of the state was correct\n correct\n}\n"
50
+ "code": "/// # Summary\n/// Simple quantum teleportation sample\n///\n/// # Description\n/// This Q# program demonstrates how to teleport quantum state\n/// by communicating two classical bits and using previously entangled qubits.\n/// This code teleports one specific state, but any state can be teleported.\noperation Main() : Bool {\n // Allocate `qAlice`, `qBob` qubits\n use (qAlice, qBob) = (Qubit(), Qubit());\n\n // Entangle `qAlice`, `qBob` qubits\n H(qAlice);\n CNOT(qAlice, qBob);\n\n // From now on qubits `qAlice` and `qBob` will not interact directly.\n\n // Allocate `qToTeleport` qubit and prepare it to be |𝜓⟩≈0.9394|0⟩−0.3429𝑖|1⟩\n use qToTeleport = Qubit();\n Rx(0.7, qToTeleport);\n\n // Prepare the message by entangling `qToTeleport` and `qAlice` qubits\n CNOT(qToTeleport, qAlice);\n H(qToTeleport);\n\n // Obtain classical measurement results b1 and b2 at Alice's site.\n let b1 = M(qToTeleport) == One;\n let b2 = M(qAlice) == One;\n\n // At this point classical bits b1 and b2 are \"sent\" to the Bob's site.\n\n // Decode the message by applying adjustments based on classical data b1 and b2.\n if b1 {\n Z(qBob);\n }\n if b2 {\n X(qBob);\n }\n\n // Make sure that the obtained message is |𝜓⟩≈0.9394|0⟩−0.3429𝑖|1⟩\n Rx(-0.7, qBob);\n // This state dump should show that the state of `qBob` is |0⟩ state, which means that the teleportation was successful.\n Std.Diagnostics.DumpMachine();\n // We can further verify the teleport by measuring `qBob`, which should give us |0⟩ state with certainty.\n // Note that verifying via measurement might require multiple runs or \"shots\" to investigate the distribution of outcomes.\n let correct = M(qBob) == Zero;\n Message($\"Teleportation successful: {correct}.\");\n\n // Reset all qubits to |0⟩ state.\n ResetAll([qAlice, qBob, qToTeleport]);\n\n // Return indication if the measurement of the state was correct\n correct\n}\n"
51
51
  },
52
52
  {
53
53
  "title": "JointMeasurement",
@@ -62,7 +62,7 @@ export default [
62
62
  {
63
63
  "title": "Random Number Generator",
64
64
  "shots": 1000,
65
- "code": "/// # Sample\n/// Quantum Random Number Generator\n///\n/// # Description\n/// This program implements a quantum random number generator by setting qubits\n/// in superposition and then using the measurement results as random bits.\nimport Std.Convert.*;\nimport Std.Intrinsic.*;\nimport Std.Math.*;\n\noperation Main() : Int {\n let max = 100;\n Message($\"Sampling a random number between 0 and {max}:\");\n\n // Generate random number in the 0..max range.\n return GenerateRandomNumberInRange(max);\n}\n\n/// # Summary\n/// Generates a random number between 0 and `max`.\noperation GenerateRandomNumberInRange(max : Int) : Int {\n // Determine the number of bits needed to represent `max` and store it\n // in the `nBits` variable. Then generate `nBits` random bits which will\n // represent the generated random number.\n mutable bits = [];\n let nBits = BitSizeI(max);\n for idxBit in 1..nBits {\n bits += [GenerateRandomBit()];\n }\n let sample = ResultArrayAsInt(bits);\n\n // Return random number if it is within the requested range.\n // Generate it again if it is outside the range.\n return sample > max ? GenerateRandomNumberInRange(max) | sample;\n}\n\n/// # Summary\n/// Generates a random bit.\noperation GenerateRandomBit() : Result {\n // Allocate a qubit.\n use q = Qubit();\n\n // Set the qubit into superposition of 0 and 1 using the Hadamard\n // operation `H`.\n H(q);\n\n // At this point the qubit `q` has 50% chance of being measured in the\n // |0〉 state and 50% chance of being measured in the |1〉 state.\n // Measure the qubit value using the `M` operation, and store the\n // measurement value in the `result` variable.\n let result = M(q);\n\n // Reset qubit to the |0〉 state.\n // Qubits must be in the |0〉 state by the time they are released.\n Reset(q);\n\n // Return the result of the measurement.\n return result;\n\n // Note that Qubit `q` is automatically released at the end of the block.\n}\n"
65
+ "code": "/// # Sample\n/// Quantum Random Number Generator\n///\n/// # Description\n/// This program implements a quantum random number generator by setting qubits\n/// in superposition and then using the measurement results as random bits.\nimport Std.Convert.*;\n\noperation Main() : Int {\n // This sample generates a random, positive 64-bit integer by using a qubit\n // to produce 63 random bits, and then converting the resulting bit array into an integer.\n mutable bits = [];\n for idxBit in 1..63 {\n bits += [GenerateRandomBit()];\n }\n let sample = ResultArrayAsInt(bits);\n\n return sample;\n}\n\n/// # Summary\n/// Generates a random bit.\noperation GenerateRandomBit() : Result {\n // Allocate a qubit.\n use q = Qubit();\n\n // Set the qubit into superposition of 0 and 1 using the Hadamard\n // operation `H`.\n H(q);\n\n // At this point the qubit `q` has 50% chance of being measured in the\n // |0〉 state and 50% chance of being measured in the |1〉 state.\n // Measure the qubit value using the `M` operation, and store the\n // measurement value in the `result` variable.\n let result = M(q);\n\n // Reset qubit to the |0〉 state.\n // Qubits must be in the |0〉 state by the time they are released.\n Reset(q);\n\n // Return the result of the measurement.\n return result;\n\n // Note that Qubit `q` is automatically released at the end of the block.\n}\n"
66
66
  },
67
67
  {
68
68
  "title": "Deutsch-Jozsa",
@@ -72,7 +72,7 @@ export default [
72
72
  {
73
73
  "title": "Deutsch-Jozsa (Advanced)",
74
74
  "shots": 1,
75
- "code": "/// # Sample\n/// Deutsch–Jozsa Algorithm\n///\n/// # Description\n/// Deutsch–Jozsa is a quantum algorithm that determines whether a given Boolean\n/// function 𝑓 is constant (0 on all inputs or 1 on all inputs) or balanced\n/// (1 for exactly half of the input domain and 0 for the other half).\n///\n/// This Q# program implements the Deutsch–Jozsa algorithm.\nimport Std.Diagnostics.*;\nimport Std.Math.*;\nimport Std.Measurement.*;\n\noperation Main() : (String, Bool)[] {\n // A Boolean function is a function that maps bitstrings to a bit:\n // 𝑓 : {0, 1}^n → {0, 1}.\n\n // We say that 𝑓 is constant if 𝑓(𝑥⃗) = 𝑓(𝑦⃗) for all bitstrings 𝑥⃗ and\n // 𝑦⃗, and that 𝑓 is balanced if 𝑓 evaluates to true for exactly half of\n // its inputs.\n\n // If we are given a function 𝑓 as a quantum operation 𝑈 |𝑥〉|𝑦〉 =\n // |𝑥〉|𝑦 ⊕ 𝑓(𝑥)〉, and are promised that 𝑓 is either constant or is\n // balanced, then the Deutsch–Jozsa algorithm decides between these\n // cases with a single application of 𝑈.\n\n // Here, we demonstrate the use of the Deutsch-Jozsa algorithm by\n // determining the type (constant or balanced) of various functions.\n let nameFunctionTypeTuples = [\n (\"SimpleConstantBoolF\", SimpleConstantBoolF, true),\n (\"SimpleBalancedBoolF\", SimpleBalancedBoolF, false),\n (\"ConstantBoolF\", ConstantBoolF, true),\n (\"BalancedBoolF\", BalancedBoolF, false)\n ];\n\n mutable results = [];\n for (name, fn, shouldBeConstant) in nameFunctionTypeTuples {\n let isConstant = DeutschJozsa(fn, 5);\n if (isConstant != shouldBeConstant) {\n let shouldBeConstantStr = shouldBeConstant ? \"constant\" | \"balanced\";\n fail $\"{name} should be detected as {shouldBeConstantStr}\";\n }\n\n let isConstantStr = isConstant ? \"constant\" | \"balanced\";\n Message($\"{name} is {isConstantStr}\");\n results += [(name, isConstant)];\n }\n\n return results;\n}\n\n/// # Summary\n/// This operation implements the DeutschJozsa algorithm.\n/// It returns the Boolean value `true` if the function is constant and\n/// `false` if it is not.\n/// It is assumed that the function is either constant or balanced.\n///\n/// # Input\n/// ## Uf\n/// A quantum operation that implements |𝑥〉|𝑦〉 ↦ |𝑥〉|𝑦 ⊕ 𝑓(𝑥)〉, where 𝑓 is a\n/// Boolean function, 𝑥 is an 𝑛 bit register and 𝑦 is a single qubit.\n/// ## n\n/// The number of bits in the input register |𝑥〉.\n///\n/// # Output\n/// A boolean value `true` that indicates that the function is constant and\n/// `false` that indicates that the function is balanced.\n///\n/// # See Also\n/// - For details see Section 1.4.3 of Nielsen & Chuang.\n///\n/// # References\n/// - [ *Michael A. Nielsen , Isaac L. Chuang*,\n/// Quantum Computation and Quantum Information ]\n/// (http://doi.org/10.1017/CBO9780511976667)\noperation DeutschJozsa(Uf : ((Qubit[], Qubit) => Unit), n : Int) : Bool {\n // We allocate n + 1 clean qubits. Note that the function `Uf` is defined\n // on inputs of the form (x, y), where x has n bits and y has 1 bit.\n use queryRegister = Qubit[n];\n use target = Qubit();\n\n // The last qubit needs to be flipped so that the function will actually\n // be computed into the phase when Uf is applied.\n X(target);\n\n // Now, a Hadamard transform is applied to each of the qubits.\n H(target);\n // We use a within-apply block to ensure that the Hadamard transform is\n // correctly inverted on the |𝑥〉 register.\n within {\n for q in queryRegister {\n H(q);\n }\n } apply {\n // We apply Uf to the n+1 qubits, computing |𝑥, 𝑦〉 ↦ |𝑥, 𝑦 ⊕ 𝑓(𝑥)〉.\n Uf(queryRegister, target);\n }\n\n // The following for-loop measures all qubits and resets them to the |0〉\n // state so that they can be safely deallocated at the end of the block.\n // The loop also sets `result` to `true` if all measurement results are\n // `Zero`, i.e. if the function is a constant function, and sets\n // `result` to `false` if not, which according to the assumption on 𝑓\n // means that it must be balanced.\n mutable result = true;\n for q in queryRegister {\n if MResetZ(q) == One {\n result = false;\n }\n }\n\n // Finally, the last qubit, which held the 𝑦-register, is reset.\n Reset(target);\n return result;\n}\n\n// Simple constant Boolean function\noperation SimpleConstantBoolF(args : Qubit[], target : Qubit) : Unit {\n X(target);\n}\n\n// Simple balanced Boolean function\noperation SimpleBalancedBoolF(args : Qubit[], target : Qubit) : Unit {\n CX(args[0], target);\n}\n\n// A more complex constant Boolean function.\n// It applies X to every input basis vector.\noperation ConstantBoolF(args : Qubit[], target : Qubit) : Unit {\n for i in 0..(2^Length(args)) - 1 {\n ApplyControlledOnInt(i, X, args, target);\n }\n}\n\n// A more complex balanced Boolean function.\n// It applies X to half of the input basis vectors.\noperation BalancedBoolF(args : Qubit[], target : Qubit) : Unit {\n for i in 0..2..(2^Length(args)) - 1 {\n ApplyControlledOnInt(i, X, args, target);\n }\n}\n"
75
+ "code": "/// # Sample\n/// Deutsch–Jozsa Algorithm\n///\n/// # Description\n/// Deutsch–Jozsa is a quantum algorithm that determines whether a given Boolean\n/// function 𝑓 is constant (0 on all inputs or 1 on all inputs) or balanced\n/// (1 for exactly half of the input domain and 0 for the other half).\n///\n/// This Q# program implements the Deutsch–Jozsa algorithm.\nimport Std.Diagnostics.*;\nimport Std.Math.*;\nimport Std.Measurement.*;\n\noperation Main() : Bool[] {\n // A Boolean function is a function that maps bitstrings to a bit:\n // 𝑓 : {0, 1}^n → {0, 1}.\n\n // We say that 𝑓 is constant if 𝑓(𝑥⃗) = 𝑓(𝑦⃗) for all bitstrings 𝑥⃗ and\n // 𝑦⃗, and that 𝑓 is balanced if 𝑓 evaluates to true for exactly half of\n // its inputs.\n\n // If we are given a function 𝑓 as a quantum operation 𝑈 |𝑥〉|𝑦〉 =\n // |𝑥〉|𝑦 ⊕ 𝑓(𝑥)〉, and are promised that 𝑓 is either constant or is\n // balanced, then the Deutsch–Jozsa algorithm decides between these\n // cases with a single application of 𝑈.\n\n // Here, we demonstrate the use of the Deutsch-Jozsa algorithm by\n // determining the type (constant or balanced) of various functions.\n let functionsToTest = [\n SimpleConstantBoolF,\n SimpleBalancedBoolF,\n ConstantBoolF,\n BalancedBoolF\n ];\n\n mutable results = [];\n for fn in functionsToTest {\n let isConstant = DeutschJozsa(fn, 5);\n results += [isConstant];\n }\n\n return results;\n}\n\n/// # Summary\n/// Validates the implementation of the Deutsch–Jozsa algorithm by comparing\n/// the results to the expected values.\n/// This also demonstrates how to use the `@Test` attribute to define a test operation.\n@Test()\noperation ValidateDeutschJozsa() : Unit {\n // To see how tests verify the behavior, try changing either the algorithm or the expected values\n // in the assertion below and observe the test failure.\n let expectedResults = [\n (\"SimpleConstantBoolF\", true),\n (\"SimpleBalancedBoolF\", false),\n (\"ConstantBoolF\", true),\n (\"BalancedBoolF\", false)\n ];\n let results = Main();\n for idx in 0..Length(expectedResults)-1 {\n let (fnName, expected) = expectedResults[idx];\n let actual = results[idx];\n Fact(actual == expected, $\"Function {fnName} was expected to be {(expected ? \"constant\" | \"balanced\")}, but was determined to be {(actual ? \"constant\" | \"balanced\")}.\");\n }\n}\n\n/// # Summary\n/// This operation implements the DeutschJozsa algorithm.\n/// It returns the Boolean value `true` if the function is constant and\n/// `false` if it is not.\n/// It is assumed that the function is either constant or balanced.\n///\n/// # Input\n/// ## Uf\n/// A quantum operation that implements |𝑥〉|𝑦〉 ↦ |𝑥〉|𝑦 ⊕ 𝑓(𝑥)〉, where 𝑓 is a\n/// Boolean function, 𝑥 is an 𝑛 bit register and 𝑦 is a single qubit.\n/// ## n\n/// The number of bits in the input register |𝑥〉.\n///\n/// # Output\n/// A boolean value `true` that indicates that the function is constant and\n/// `false` that indicates that the function is balanced.\n///\n/// # See Also\n/// - For details see Section 1.4.3 of Nielsen & Chuang.\n///\n/// # References\n/// - [ *Michael A. Nielsen , Isaac L. Chuang*,\n/// Quantum Computation and Quantum Information ]\n/// (http://doi.org/10.1017/CBO9780511976667)\noperation DeutschJozsa(Uf : ((Qubit[], Qubit) => Unit), n : Int) : Bool {\n // We allocate n + 1 clean qubits. Note that the function `Uf` is defined\n // on inputs of the form (x, y), where x has n bits and y has 1 bit.\n use queryRegister = Qubit[n];\n use target = Qubit();\n\n // The last qubit needs to be flipped so that the function will actually\n // be computed into the phase when Uf is applied.\n X(target);\n\n // Now, a Hadamard transform is applied to each of the qubits.\n H(target);\n // We use a within-apply block to ensure that the Hadamard transform is\n // correctly inverted on the |𝑥〉 register.\n within {\n for q in queryRegister {\n H(q);\n }\n } apply {\n // We apply Uf to the n+1 qubits, computing |𝑥, 𝑦〉 ↦ |𝑥, 𝑦 ⊕ 𝑓(𝑥)〉.\n Uf(queryRegister, target);\n }\n\n // The following for-loop measures all qubits and resets them to the |0〉\n // state so that they can be safely deallocated at the end of the block.\n // The loop also sets `result` to `true` if all measurement results are\n // `Zero`, i.e. if the function is a constant function, and sets\n // `result` to `false` if not, which according to the assumption on 𝑓\n // means that it must be balanced.\n mutable result = true;\n for q in queryRegister {\n if MResetZ(q) == One {\n result = false;\n }\n }\n\n // Finally, the last qubit, which held the 𝑦-register, is reset.\n Reset(target);\n return result;\n}\n\n// Simple constant Boolean function\noperation SimpleConstantBoolF(args : Qubit[], target : Qubit) : Unit {\n X(target);\n}\n\n// Simple balanced Boolean function\noperation SimpleBalancedBoolF(args : Qubit[], target : Qubit) : Unit {\n CX(args[0], target);\n}\n\n// A more complex constant Boolean function.\n// It applies X to every input basis vector.\noperation ConstantBoolF(args : Qubit[], target : Qubit) : Unit {\n for i in 0..(2^Length(args)) - 1 {\n ApplyControlledOnInt(i, X, args, target);\n }\n}\n\n// A more complex balanced Boolean function.\n// It applies X to half of the input basis vectors.\noperation BalancedBoolF(args : Qubit[], target : Qubit) : Unit {\n for i in 0..2..(2^Length(args)) - 1 {\n ApplyControlledOnInt(i, X, args, target);\n }\n}\n"
76
76
  },
77
77
  {
78
78
  "title": "Bernstein-Vazirani",
@@ -82,7 +82,7 @@ export default [
82
82
  {
83
83
  "title": "Bernstein-Vazirani (Advanced)",
84
84
  "shots": 1,
85
- "code": "/// # Sample\n/// Bernstein-Vazirani Algorithm\n///\n/// # Description\n/// The Bernstein-Vazirani algorithm determines the value of a bit string\n/// encoded in a function.\n///\n/// This Q# program implements the Bernstein-Vazirani algorithm.\nimport Std.Arrays.*;\nimport Std.Convert.*;\nimport Std.Diagnostics.*;\nimport Std.Math.*;\nimport Std.Measurement.*;\n\noperation Main() : Int[] {\n // Consider a function 𝑓(𝑥⃗) on bitstrings 𝑥⃗ = (𝑥₀, …, 𝑥ₙ₋₁) of the form\n // 𝑓(𝑥⃗) ≔ Σᵢ 𝑥ᵢ 𝑟ᵢ\n // where 𝑟⃗ = (𝑟₀, …, 𝑟ₙ₋₁) is an unknown bitstring that determines the\n // parity of 𝑓.\n\n // The Bernstein–Vazirani algorithm allows determining 𝑟 given a\n // quantum operation that implements\n // |𝑥〉|𝑦〉 ↦ |𝑥〉|𝑦 ⊕ 𝑓(𝑥)〉.\n\n // The entry point function of this program, `Main`, shows how to use\n // the `BernsteinVazirani` operation to determine the value of various\n // integers whose bits describe 𝑟.\n let nQubits = 10;\n\n // Use the Bernstein–Vazirani algorithm to determine the bit strings\n // that various integers represent.\n let integers = [127, 238, 512];\n mutable decodedIntegers = [];\n for integer in integers {\n // Create an operation that encodes a bit string represented by an\n // integer as a parity operation.\n let parityOperation = EncodeIntegerAsParityOperation(integer);\n\n // Use the parity operation as input to the Bernstein-Vazirani\n // algorithm to determine the bit string.\n let decodedBitString = BernsteinVazirani(parityOperation, nQubits);\n let decodedInteger = ResultArrayAsInt(decodedBitString);\n Fact(\n decodedInteger == integer,\n $\"Decoded integer {decodedInteger}, but expected {integer}.\"\n );\n\n Message($\"Successfully decoded bit string as int: {decodedInteger}\");\n decodedIntegers += [decodedInteger];\n }\n\n return decodedIntegers;\n}\n\n/// # Summary\n/// This operation implements the Bernstein-Vazirani quantum algorithm.\n/// This algorithm computes for a given Boolean function that is promised to\n/// be a parity 𝑓(𝑥₀, …, 𝑥ₙ₋₁) = Σᵢ 𝑟ᵢ 𝑥ᵢ a result in the form of a bit\n/// vector (𝑟₀, …, 𝑟ₙ₋₁) corresponding to the parity function.\n/// Note that it is promised that the function is actually a parity\n/// function.\n///\n/// # Input\n/// ## Uf\n/// A quantum operation that implements |𝑥〉|𝑦〉 ↦ |𝑥〉|𝑦 ⊕ 𝑓(𝑥)〉,\n/// where 𝑓 is a Boolean function that implements a parity Σᵢ 𝑟ᵢ 𝑥ᵢ.\n/// ## n\n/// The number of bits in the input register |𝑥〉.\n///\n/// # Output\n/// An array of type `Result[]` that contains the parity 𝑟⃗ = (𝑟₀, …, 𝑟ₙ₋₁).\n///\n/// # See Also\n/// - For details see Section 1.4.3 of Nielsen & Chuang.\n///\n/// # References\n/// - [ *Ethan Bernstein and Umesh Vazirani*,\n/// SIAM J. Comput., 26(5), 1411–1473, 1997 ]\n/// (https://doi.org/10.1137/S0097539796300921)\noperation BernsteinVazirani(Uf : ((Qubit[], Qubit) => Unit), n : Int) : Result[] {\n // We allocate n + 1 clean qubits. Note that the function Uf is defined\n // on inputs of the form (x, y), where x has n bits and y has 1 bit.\n use queryRegister = Qubit[n];\n use target = Qubit();\n\n // The last qubit needs to be flipped so that the function will actually\n // be computed into the phase when Uf is applied.\n X(target);\n\n within {\n // Now, a Hadamard transform is applied to each of the qubits. As\n // the last step before the measurement, a Hadamard transform is\n // applied to all qubits except last one. We could apply the\n // transform to the last qubit also, but this would not affect the\n // final outcome.\n // We use a within-apply block to ensure that the Hadamard transform\n // is correctly inverted.\n ApplyToEachA(H, queryRegister);\n } apply {\n H(target);\n // We now apply Uf to the n+1 qubits, computing\n // |x, y〉 ↦ |x, y ⊕ f(x)〉.\n Uf(queryRegister, target);\n }\n\n // Measure all qubits and reset them to the |0〉 state so that they can\n // be safely deallocated at the end of the block.\n let resultArray = MResetEachZ(queryRegister);\n\n // Finally, the last qubit, which held the y-register, is reset.\n Reset(target);\n\n // The result is already contained in resultArray so no further\n // post-processing is necessary.\n return resultArray;\n}\n\n/// # Summary\n/// Given an integer that can be represented as a bit string\n/// 𝑟⃗ = (r₀, …, rₙ₋₁), this operation applies a unitary 𝑈 that acts on 𝑛 + 1\n/// qubits as:\n/// 𝑈 |𝑥〉|𝑦〉 = |𝑥〉|𝑦 ⊕ 𝑓(𝑥)〉\n/// where 𝑓(𝑥) = Σᵢ 𝑥ᵢ 𝑟ᵢ mod 2.\n///\n/// # Input\n/// ## bitStringAsInt\n/// An integer that can be represented as a bit string 𝑟⃗ used to define the\n/// function 𝑓.\n/// ## xRegister\n/// Represents the |𝑥〉 register that 𝑈 acts on.\n/// ## yQubit\n/// Represents the |𝑦〉 qubit that 𝑈 acts on.\noperation ApplyParityOperation(\n bitStringAsInt : Int,\n xRegister : Qubit[],\n yQubit : Qubit\n) : Unit {\n // `xRegister` muts have enough qubits to represent the integer.\n let requiredBits = BitSizeI(bitStringAsInt);\n let availableQubits = Length(xRegister);\n Fact(\n availableQubits >= requiredBits,\n $\"Integer value {bitStringAsInt} requires {requiredBits} bits to be represented but the quantum register only has {availableQubits} qubits\"\n );\n\n // Apply the quantum operations that encode the bit string.\n for index in IndexRange(xRegister) {\n if ((bitStringAsInt &&& 2^index) != 0) {\n CNOT(xRegister[index], yQubit);\n }\n }\n}\n\n/// # Summary\n/// Returns black-box operations (Qubit[], Qubit) => () of the form\n/// U_f |𝑥〉|𝑦〉 = |𝑥〉|𝑦 ⊕ 𝑓(𝑥)〉.\n/// We define 𝑓 by providing the bit string 𝑟⃗ as an integer.\nfunction EncodeIntegerAsParityOperation(bitStringAsInt : Int) : (Qubit[], Qubit) => Unit {\n return ApplyParityOperation(bitStringAsInt, _, _);\n}\n"
85
+ "code": "/// # Sample\n/// Bernstein-Vazirani Algorithm\n///\n/// # Description\n/// The Bernstein-Vazirani algorithm determines the value of a bit string\n/// encoded in a function.\n///\n/// This Q# program implements the Bernstein-Vazirani algorithm.\nimport Std.Arrays.*;\nimport Std.Convert.*;\nimport Std.Diagnostics.*;\nimport Std.Math.*;\nimport Std.Measurement.*;\n\noperation Main() : Int[] {\n // Consider a function 𝑓(𝑥⃗) on bitstrings 𝑥⃗ = (𝑥₀, …, 𝑥ₙ₋₁) of the form\n // 𝑓(𝑥⃗) ≔ Σᵢ 𝑥ᵢ 𝑟ᵢ\n // where 𝑟⃗ = (𝑟₀, …, 𝑟ₙ₋₁) is an unknown bitstring that determines the\n // parity of 𝑓.\n\n // The Bernstein–Vazirani algorithm allows determining 𝑟 given a\n // quantum operation that implements\n // |𝑥〉|𝑦〉 ↦ |𝑥〉|𝑦 ⊕ 𝑓(𝑥)〉.\n\n // The entry point function of this program, `Main`, shows how to use\n // the `BernsteinVazirani` operation to determine the value of various\n // integers whose bits describe 𝑟.\n let nQubits = 10;\n\n // Use the Bernstein–Vazirani algorithm to determine the bit strings\n // that various integers represent.\n let integers = [127, 238, 512];\n mutable decodedIntegers = [];\n for integer in integers {\n // Create an operation that encodes a bit string represented by an\n // integer as a parity operation.\n let parityOperation = EncodeIntegerAsParityOperation(integer);\n\n // Use the parity operation as input to the Bernstein-Vazirani\n // algorithm to determine the bit string.\n let decodedBitString = BernsteinVazirani(parityOperation, nQubits);\n let decodedInteger = ResultArrayAsInt(decodedBitString);\n decodedIntegers += [decodedInteger];\n }\n\n return decodedIntegers;\n}\n\n/// # Summary\n/// Validates the implementation of the Bernstein-Vazirani algorithm by\n/// comparing the decoded integers to the expected values.\n/// This also demonstrates how to use the `@Test` attribute to define a test operation.\n@Test()\noperation ValidateBernsteinVazirani() : Unit {\n // To see how tests verify the behavior, try changing either the algorithm or the expected values\n // in the assertion below and observe the test failure.\n let integers = [127, 238, 512];\n let results = Main();\n Fact(results == integers, $\"Decoded integers {results} do not match expected values {integers}\");\n}\n\n/// # Summary\n/// This operation implements the Bernstein-Vazirani quantum algorithm.\n/// This algorithm computes for a given Boolean function that is promised to\n/// be a parity 𝑓(𝑥₀, …, 𝑥ₙ₋₁) = Σᵢ 𝑟ᵢ 𝑥ᵢ a result in the form of a bit\n/// vector (𝑟₀, …, 𝑟ₙ₋₁) corresponding to the parity function.\n/// Note that it is promised that the function is actually a parity\n/// function.\n///\n/// # Input\n/// ## Uf\n/// A quantum operation that implements |𝑥〉|𝑦〉 ↦ |𝑥〉|𝑦 ⊕ 𝑓(𝑥)〉,\n/// where 𝑓 is a Boolean function that implements a parity Σᵢ 𝑟ᵢ 𝑥ᵢ.\n/// ## n\n/// The number of bits in the input register |𝑥〉.\n///\n/// # Output\n/// An array of type `Result[]` that contains the parity 𝑟⃗ = (𝑟₀, …, 𝑟ₙ₋₁).\n///\n/// # See Also\n/// - For details see Section 1.4.3 of Nielsen & Chuang.\n///\n/// # References\n/// - [ *Ethan Bernstein and Umesh Vazirani*,\n/// SIAM J. Comput., 26(5), 1411–1473, 1997 ]\n/// (https://doi.org/10.1137/S0097539796300921)\noperation BernsteinVazirani(Uf : ((Qubit[], Qubit) => Unit), n : Int) : Result[] {\n // We allocate n + 1 clean qubits. Note that the function Uf is defined\n // on inputs of the form (x, y), where x has n bits and y has 1 bit.\n use queryRegister = Qubit[n];\n use target = Qubit();\n\n // The last qubit needs to be flipped so that the function will actually\n // be computed into the phase when Uf is applied.\n X(target);\n\n within {\n // Now, a Hadamard transform is applied to each of the qubits. As\n // the last step before the measurement, a Hadamard transform is\n // applied to all qubits except last one. We could apply the\n // transform to the last qubit also, but this would not affect the\n // final outcome.\n // We use a within-apply block to ensure that the Hadamard transform\n // is correctly inverted.\n ApplyToEachA(H, queryRegister);\n } apply {\n H(target);\n // We now apply Uf to the n+1 qubits, computing\n // |x, y〉 ↦ |x, y ⊕ f(x)〉.\n Uf(queryRegister, target);\n }\n\n // Measure all qubits and reset them to the |0〉 state so that they can\n // be safely deallocated at the end of the block.\n let resultArray = MResetEachZ(queryRegister);\n\n // Finally, the last qubit, which held the y-register, is reset.\n Reset(target);\n\n // The result is already contained in resultArray so no further\n // post-processing is necessary.\n return resultArray;\n}\n\n/// # Summary\n/// Given an integer that can be represented as a bit string\n/// 𝑟⃗ = (r₀, …, rₙ₋₁), this operation applies a unitary 𝑈 that acts on 𝑛 + 1\n/// qubits as:\n/// 𝑈 |𝑥〉|𝑦〉 = |𝑥〉|𝑦 ⊕ 𝑓(𝑥)〉\n/// where 𝑓(𝑥) = Σᵢ 𝑥ᵢ 𝑟ᵢ mod 2.\n///\n/// # Input\n/// ## bitStringAsInt\n/// An integer that can be represented as a bit string 𝑟⃗ used to define the\n/// function 𝑓.\n/// ## xRegister\n/// Represents the |𝑥〉 register that 𝑈 acts on.\n/// ## yQubit\n/// Represents the |𝑦〉 qubit that 𝑈 acts on.\noperation ApplyParityOperation(\n bitStringAsInt : Int,\n xRegister : Qubit[],\n yQubit : Qubit\n) : Unit {\n // `xRegister` muts have enough qubits to represent the integer.\n let requiredBits = BitSizeI(bitStringAsInt);\n let availableQubits = Length(xRegister);\n Fact(\n availableQubits >= requiredBits,\n $\"Integer value {bitStringAsInt} requires {requiredBits} bits to be represented but the quantum register only has {availableQubits} qubits\"\n );\n\n // Apply the quantum operations that encode the bit string.\n for index in IndexRange(xRegister) {\n if ((bitStringAsInt &&& 2^index) != 0) {\n CNOT(xRegister[index], yQubit);\n }\n }\n}\n\n/// # Summary\n/// Returns black-box operations (Qubit[], Qubit) => () of the form\n/// U_f |𝑥〉|𝑦〉 = |𝑥〉|𝑦 ⊕ 𝑓(𝑥)〉.\n/// We define 𝑓 by providing the bit string 𝑟⃗ as an integer.\nfunction EncodeIntegerAsParityOperation(bitStringAsInt : Int) : (Qubit[], Qubit) => Unit {\n return ApplyParityOperation(bitStringAsInt, _, _);\n}\n"
86
86
  },
87
87
  {
88
88
  "title": "Grover's Search",
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Microsoft.Quantum.Core.IsRangeEmpty
3
3
  title: IsRangeEmpty exported item
4
4
  description: "Q# IsRangeEmpty exported item: This is an exported item. The actual definition is found here: [Std.Range.IsRangeEmpty](xref:Qdk.Std.Range.IsRangeEmpty)"
5
- ms.date: 03/10/2026
5
+ ms.date: 03/24/2026
6
6
  qsharp.kind: export
7
7
  qsharp.package: __Std__
8
8
  qsharp.namespace: Microsoft.Quantum.Core
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Microsoft.Quantum.Core.Length
3
3
  title: Length exported item
4
4
  description: "Q# Length exported item: This is an exported item. The actual definition is found here: [Std.Core.Length](xref:Qdk.Std.Core.Length)"
5
- ms.date: 03/10/2026
5
+ ms.date: 03/24/2026
6
6
  qsharp.kind: export
7
7
  qsharp.package: __Std__
8
8
  qsharp.namespace: Microsoft.Quantum.Core
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Microsoft.Quantum.Core.RangeEnd
3
3
  title: RangeEnd exported item
4
4
  description: "Q# RangeEnd exported item: This is an exported item. The actual definition is found here: [Std.Range.RangeEnd](xref:Qdk.Std.Range.RangeEnd)"
5
- ms.date: 03/10/2026
5
+ ms.date: 03/24/2026
6
6
  qsharp.kind: export
7
7
  qsharp.package: __Std__
8
8
  qsharp.namespace: Microsoft.Quantum.Core
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Microsoft.Quantum.Core.RangeStart
3
3
  title: RangeStart exported item
4
4
  description: "Q# RangeStart exported item: This is an exported item. The actual definition is found here: [Std.Range.RangeStart](xref:Qdk.Std.Range.RangeStart)"
5
- ms.date: 03/10/2026
5
+ ms.date: 03/24/2026
6
6
  qsharp.kind: export
7
7
  qsharp.package: __Std__
8
8
  qsharp.namespace: Microsoft.Quantum.Core
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Microsoft.Quantum.Core.Repeated
3
3
  title: Repeated exported item
4
4
  description: "Q# Repeated exported item: This is an exported item. The actual definition is found here: [Std.Core.Repeated](xref:Qdk.Std.Core.Repeated)"
5
- ms.date: 03/10/2026
5
+ ms.date: 03/24/2026
6
6
  qsharp.kind: export
7
7
  qsharp.package: __Std__
8
8
  qsharp.namespace: Microsoft.Quantum.Core
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Microsoft.Quantum.Core-toc
3
3
  title: Microsoft.Quantum.Core namespace
4
4
  description: Table of contents for the Q# Microsoft.Quantum.Core namespace
5
- ms.date: 03/10/2026
5
+ ms.date: 03/24/2026
6
6
  ms.topic: landing-page
7
7
  ---
8
8
 
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.Arithmetic.AddLE
3
3
  title: AddLE operation
4
4
  description: "Q# AddLE operation: Sets a zero-initialized little-endian register zs to the sum of little-endian registers xs and ys"
5
- ms.date: 03/10/2026
5
+ ms.date: 03/24/2026
6
6
  qsharp.kind: operation
7
7
  qsharp.package: __Std__
8
8
  qsharp.namespace: Std.Arithmetic
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.Arithmetic.ApplyIfEqualL
3
3
  title: ApplyIfEqualL operation
4
4
  description: "Q# ApplyIfEqualL operation: Computes `if (c == x) { action(target) }`, that is, applies `action` to `target` if a BigInt value `c` is equal to the little-endian qubit register `x`"
5
- ms.date: 03/10/2026
5
+ ms.date: 03/24/2026
6
6
  qsharp.kind: operation
7
7
  qsharp.package: __Std__
8
8
  qsharp.namespace: Std.Arithmetic
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.Arithmetic.ApplyIfEqualLE
3
3
  title: ApplyIfEqualLE operation
4
4
  description: "Q# ApplyIfEqualLE operation: Computes `if x == y { action(target) }`, that is, applies `action` to `target` if register `x` is equal to the register `y`. Both qubit registers should be in a little-endian format."
5
- ms.date: 03/10/2026
5
+ ms.date: 03/24/2026
6
6
  qsharp.kind: operation
7
7
  qsharp.package: __Std__
8
8
  qsharp.namespace: Std.Arithmetic
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.Arithmetic.ApplyIfGreaterL
3
3
  title: ApplyIfGreaterL operation
4
4
  description: "Q# ApplyIfGreaterL operation: Computes `if (c > x) { action(target) }`, that is, applies `action` to `target` if a BigInt value `c` is greater than the little-endian qubit register `x`"
5
- ms.date: 03/10/2026
5
+ ms.date: 03/24/2026
6
6
  qsharp.kind: operation
7
7
  qsharp.package: __Std__
8
8
  qsharp.namespace: Std.Arithmetic
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.Arithmetic.ApplyIfGreaterLE
3
3
  title: ApplyIfGreaterLE operation
4
4
  description: "Q# ApplyIfGreaterLE operation: Computes `if x > y { action(target) }`, that is, applies `action` to `target` if register `x` is greater than the register `y`. Both qubit registers should be in a little-endian format."
5
- ms.date: 03/10/2026
5
+ ms.date: 03/24/2026
6
6
  qsharp.kind: operation
7
7
  qsharp.package: __Std__
8
8
  qsharp.namespace: Std.Arithmetic
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.Arithmetic.ApplyIfGreaterOrEqualL
3
3
  title: ApplyIfGreaterOrEqualL operation
4
4
  description: "Q# ApplyIfGreaterOrEqualL operation: Computes `if (c >= x) { action(target) }`, that is, applies `action` to `target` if a BigInt value `c` is greater or equal to the little-endian qubit register `x`"
5
- ms.date: 03/10/2026
5
+ ms.date: 03/24/2026
6
6
  qsharp.kind: operation
7
7
  qsharp.package: __Std__
8
8
  qsharp.namespace: Std.Arithmetic
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.Arithmetic.ApplyIfGreaterOrEqualLE
3
3
  title: ApplyIfGreaterOrEqualLE operation
4
4
  description: "Q# ApplyIfGreaterOrEqualLE operation: Computes `if x >= y { action(target) }`, that is, applies `action` to `target` if register `x` is greater or equal to the register `y`. Both qubit registers should be in a little-endian format."
5
- ms.date: 03/10/2026
5
+ ms.date: 03/24/2026
6
6
  qsharp.kind: operation
7
7
  qsharp.package: __Std__
8
8
  qsharp.namespace: Std.Arithmetic
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.Arithmetic.ApplyIfLessL
3
3
  title: ApplyIfLessL operation
4
4
  description: "Q# ApplyIfLessL operation: Computes `if (c < x) { action(target) }`, that is, applies `action` to `target` if a BigInt value `c` is less than the little-endian qubit register `x`"
5
- ms.date: 03/10/2026
5
+ ms.date: 03/24/2026
6
6
  qsharp.kind: operation
7
7
  qsharp.package: __Std__
8
8
  qsharp.namespace: Std.Arithmetic
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.Arithmetic.ApplyIfLessLE
3
3
  title: ApplyIfLessLE operation
4
4
  description: "Q# ApplyIfLessLE operation: Computes `if x < y { action(target) }`, that is, applies `action` to `target` if register `x` is less than the register `y`. Both qubit registers should be in a little-endian format."
5
- ms.date: 03/10/2026
5
+ ms.date: 03/24/2026
6
6
  qsharp.kind: operation
7
7
  qsharp.package: __Std__
8
8
  qsharp.namespace: Std.Arithmetic
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.Arithmetic.ApplyIfLessOrEqualL
3
3
  title: ApplyIfLessOrEqualL operation
4
4
  description: "Q# ApplyIfLessOrEqualL operation: Computes `if (c <= x) { action(target) }`, that is, applies `action` to `target` if a BigInt value `c` is less or equal to the little-endian qubit register `x`"
5
- ms.date: 03/10/2026
5
+ ms.date: 03/24/2026
6
6
  qsharp.kind: operation
7
7
  qsharp.package: __Std__
8
8
  qsharp.namespace: Std.Arithmetic
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.Arithmetic.ApplyIfLessOrEqualLE
3
3
  title: ApplyIfLessOrEqualLE operation
4
4
  description: "Q# ApplyIfLessOrEqualLE operation: Computes `if x <= y { action(target) }`, that is, applies `action` to `target` if register `x` is less or equal to the register `y`. Both qubit registers should be in a little-endian format."
5
- ms.date: 03/10/2026
5
+ ms.date: 03/24/2026
6
6
  qsharp.kind: operation
7
7
  qsharp.package: __Std__
8
8
  qsharp.namespace: Std.Arithmetic