tag:blogger.com,1999:blog-31562273784890281742024-03-05T11:26:15.657+01:00Oppida - BlogPublications officielles de la société Oppida.Oppidahttp://www.blogger.com/profile/15437378041333234977noreply@blogger.comBlogger3125tag:blogger.com,1999:blog-3156227378489028174.post-9870274378686429582012-08-06T17:32:00.002+02:002012-08-06T18:13:39.565+02:00Solution for the ESET BlackHat US Challenge 2012<style>
<!--
/* Font Definitions */
@font-face
{font-family:Helvetica;
panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
{font-family:Courier;
panose-1:2 7 4 9 2 2 5 2 4 4;}
@font-face
{font-family:"Tms Rmn";
panose-1:2 2 6 3 4 5 5 2 3 4;}
@font-face
{font-family:Helv;
panose-1:2 11 6 4 2 2 2 3 2 4;}
@font-face
{font-family:"New York";
panose-1:2 4 5 3 6 5 6 2 3 4;}
@font-face
{font-family:System;
panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:"MS Mincho";
panose-1:2 2 6 9 4 2 5 8 3 4;}
@font-face
{font-family:Batang;
panose-1:2 3 6 0 0 1 1 1 1 1;}
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:PMingLiU;
panose-1:2 2 5 0 0 0 0 0 0 0;}
@font-face
{font-family:"MS Gothic";
panose-1:2 11 6 9 7 2 5 8 2 4;}
@font-face
{font-family:Dotum;
panose-1:2 11 6 0 0 1 1 1 1 1;}
@font-face
{font-family:SimHei;
panose-1:2 1 6 9 6 1 1 1 1 1;}
@font-face
{font-family:MingLiU;
panose-1:2 2 5 9 0 0 0 0 0 0;}
@font-face
{font-family:Mincho;
panose-1:2 2 6 9 4 3 5 8 3 5;}
@font-face
{font-family:Gulim;
panose-1:2 11 6 0 0 1 1 1 1 1;}
@font-face
{font-family:Century;
panose-1:2 4 6 4 5 5 5 2 3 4;}
@font-face
{font-family:"Angsana New";
panose-1:2 2 6 3 5 4 5 2 3 4;}
@font-face
{font-family:"Cordia New";
panose-1:2 11 3 4 2 2 2 2 2 4;}
@font-face
{font-family:Mangal;
panose-1:2 4 5 3 5 2 3 3 2 2;}
@font-face
{font-family:Latha;
panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
{font-family:Sylfaen;
panose-1:1 10 5 2 5 3 6 3 3 3;}
@font-face
{font-family:Vrinda;
panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
{font-family:Raavi;
panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
{font-family:Shruti;
panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
{font-family:Sendnya;
panose-1:0 0 4 0 0 0 0 0 0 0;}
@font-face
{font-family:Gautami;
panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
{font-family:Tunga;
panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
{font-family:"Estrangelo Edessa";
panose-1:3 8 6 0 0 0 0 0 0 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:"Arial Unicode MS";
panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
{font-family:Cambria;
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:Times;
panose-1:2 2 6 3 5 4 5 2 3 4;}
@font-face
{font-family:"Comic Sans MS";
panose-1:3 15 7 2 3 3 2 2 2 4;}
@font-face
{font-family:"FuturaA Bk BT";}
@font-face
{font-family:Garamond;
panose-1:2 2 4 4 3 3 1 1 8 3;}
@font-face
{font-family:"Trebuchet MS";
panose-1:2 11 6 3 2 2 2 2 2 4;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.MsoHeading7, li.MsoHeading7, div.MsoHeading7
{margin-top:12.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:center;
page-break-after:avoid;
background:#BFBFBF;
font-size:12.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.MsoHeading8, li.MsoHeading8, div.MsoHeading8
{margin-top:12.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
page-break-after:avoid;
font-size:14.0pt;
font-family:"Times","serif";
color:black;
layout-grid-mode:line;
font-weight:bold;}
p.MsoHeading9, li.MsoHeading9, div.MsoHeading9
{mso-style-name:"Titre 9\,Titre4";
margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
page-break-after:avoid;
font-size:12.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.MsoToc1, li.MsoToc1, div.MsoToc1
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";
color:#17365D;
font-weight:bold;}
p.MsoToc2, li.MsoToc2, div.MsoToc2
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:1.0cm;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";
color:#948A54;}
p.MsoToc3, li.MsoToc3, div.MsoToc3
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:2.0cm;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.MsoToc4, li.MsoToc4, div.MsoToc4
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:36.0pt;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.MsoToc5, li.MsoToc5, div.MsoToc5
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:48.0pt;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.MsoToc6, li.MsoToc6, div.MsoToc6
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:60.0pt;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.MsoToc7, li.MsoToc7, div.MsoToc7
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:72.0pt;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.MsoToc8, li.MsoToc8, div.MsoToc8
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:84.0pt;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.MsoToc9, li.MsoToc9, div.MsoToc9
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:96.0pt;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.MsoFootnoteText, li.MsoFootnoteText, div.MsoFootnoteText
{margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.MsoCommentText, li.MsoCommentText, div.MsoCommentText
{mso-style-link:"Commentaire Car";
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Arial","sans-serif";}
p.MsoHeader, li.MsoHeader, div.MsoHeader
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.MsoFooter, li.MsoFooter, div.MsoFooter
{margin:0cm;
margin-bottom:.0001pt;
text-align:center;
border:none;
padding:0cm;
font-size:7.0pt;
font-family:"Comic Sans MS";}
p.MsoCaption, li.MsoCaption, div.MsoCaption
{mso-style-link:"Légende Car";
margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
font-size:11.0pt;
font-family:"Times New Roman","serif";
font-style:italic;}
p.MsoTof, li.MsoTof, div.MsoTof
{margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
span.MsoFootnoteReference
{vertical-align:super;}
span.MsoEndnoteReference
{vertical-align:super;}
p.MsoEndnoteText, li.MsoEndnoteText, div.MsoEndnoteText
{mso-style-link:"Note de fin Car";
margin-top:3.0pt;
margin-right:0cm;
margin-bottom:3.0pt;
margin-left:0cm;
text-align:justify;
font-size:11.0pt;
font-family:"Garamond","serif";}
p.MsoListBullet, li.MsoListBullet, div.MsoListBullet
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:17.85pt;
margin-bottom:.0001pt;
text-align:justify;
font-size:11.0pt;
font-family:"Garamond","serif";}
p.MsoTitle, li.MsoTitle, div.MsoTitle
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:center;
page-break-before:always;
background:#948A54;
border:none;
padding:0cm;
font-size:14.0pt;
font-family:"Arial","sans-serif";
color:white;
font-weight:bold;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:center;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.MsoBodyTextIndent, li.MsoBodyTextIndent, div.MsoBodyTextIndent
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:2.0cm;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.MsoBodyText2, li.MsoBodyText2, div.MsoBodyText2
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:center;
font-size:11.0pt;
font-family:"Times","serif";
color:black;
layout-grid-mode:line;}
p.MsoBodyText3, li.MsoBodyText3, div.MsoBodyText3
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";
font-style:italic;}
p.MsoBodyTextIndent2, li.MsoBodyTextIndent2, div.MsoBodyTextIndent2
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:42.55pt;
text-align:justify;
text-indent:-42.55pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.MsoBodyTextIndent3, li.MsoBodyTextIndent3, div.MsoBodyTextIndent3
{margin-top:5.0pt;
margin-right:0cm;
margin-bottom:5.0pt;
margin-left:78.0pt;
text-indent:-2.0cm;
line-height:14.0pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";
layout-grid-mode:line;}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;}
p.MsoDocumentMap, li.MsoDocumentMap, div.MsoDocumentMap
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
background:navy;
font-size:12.0pt;
font-family:"Tahoma","sans-serif";}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{mso-style-link:"Texte brut Car";
margin:0cm;
margin-bottom:.0001pt;
font-size:10.5pt;
font-family:Consolas;}
p
{margin-right:0cm;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.MsoCommentSubject, li.MsoCommentSubject, div.MsoCommentSubject
{mso-style-link:"Objet du commentaire Car";
margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
font-size:10.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
font-size:8.0pt;
font-family:"Tahoma","sans-serif";}
span.MsoPlaceholderText
{color:gray;}
p.MsoNoSpacing, li.MsoNoSpacing, div.MsoNoSpacing
{margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.MsoRMPane, li.MsoRMPane, div.MsoRMPane
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:35.4pt;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.Liste1, li.Liste1, div.Liste1
{mso-style-name:Liste1;
mso-style-link:"Liste1 Car";
margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:18.0pt;
text-align:justify;
text-indent:-18.0pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
span.Liste1Car
{mso-style-name:"Liste1 Car";
mso-style-link:Liste1;}
p.Liste2CarCarCarCar, li.Liste2CarCarCarCar, div.Liste2CarCarCarCar
{mso-style-name:"Liste2 Car Car Car Car";
mso-style-link:"Liste2 Car Car Car Car Car";
margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:18.0pt;
text-align:justify;
text-indent:-18.0pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
span.Liste2CarCarCarCarCar
{mso-style-name:"Liste2 Car Car Car Car Car";
mso-style-link:"Liste2 Car Car Car Car";}
p.Enum1, li.Enum1, div.Enum1
{mso-style-name:Enum1;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.En-ttebase, li.En-ttebase, div.En-ttebase
{mso-style-name:"En-tête \(base\)";
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.PS, li.PS, div.PS
{mso-style-name:PS;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:35.45pt;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.Style1, li.Style1, div.Style1
{mso-style-name:Style1;
margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";
layout-grid-mode:line;
font-style:italic;
text-decoration:underline;}
span.LgendeCar
{mso-style-name:"Légende Car";
mso-style-link:Légende;
font-style:italic;}
p.Standard, li.Standard, div.Standard
{mso-style-name:Standard;
margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.PX, li.PX, div.PX
{mso-style-name:PX;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:3.0pt;
margin-left:0cm;
text-align:justify;
line-height:15.0pt;
page-break-after:avoid;
font-size:11.0pt;
font-family:"FuturaA Bk BT","sans-serif";}
p.Alina1, li.Alina1, div.Alina1
{mso-style-name:"Alinéa 1";
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:42.55pt;
margin-bottom:.0001pt;
text-align:justify;
text-indent:-14.2pt;
line-height:15.0pt;
font-size:11.0pt;
font-family:"FuturaA Bk BT","sans-serif";}
p.Figure, li.Figure, div.Figure
{mso-style-name:Figure;
margin-top:9.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
text-align:center;
line-height:15.0pt;
page-break-after:avoid;
font-size:11.0pt;
font-family:"FuturaA Bk BT","sans-serif";}
p.TitreFigure, li.TitreFigure, div.TitreFigure
{mso-style-name:"Titre Figure";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:center;
line-height:15.0pt;
font-size:11.0pt;
font-family:"FuturaA Bk BT","sans-serif";
font-weight:bold;}
p.Blockquote, li.Blockquote, div.Blockquote
{mso-style-name:Blockquote;
margin-top:5.0pt;
margin-right:18.0pt;
margin-bottom:5.0pt;
margin-left:18.0pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";
layout-grid-mode:line;}
p.Alina2, li.Alina2, div.Alina2
{mso-style-name:"Alinéa 2";
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:18.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-indent:-18.0pt;
line-height:15.0pt;
font-size:11.0pt;
font-family:"FuturaA Bk BT","sans-serif";}
p.Retrait2, li.Retrait2, div.Retrait2
{mso-style-name:"Retrait 2";
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:70.9pt;
margin-bottom:.0001pt;
text-align:justify;
line-height:15.0pt;
font-size:11.0pt;
font-family:"FuturaA Bk BT","sans-serif";}
p.Liste3CarCar, li.Liste3CarCar, div.Liste3CarCar
{mso-style-name:"Liste3 Car Car";
mso-style-link:"Liste3 Car Car Car";
margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:53.25pt;
text-align:justify;
text-indent:-18.0pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;
font-style:italic;}
span.Liste3CarCarCar
{mso-style-name:"Liste3 Car Car Car";
mso-style-link:"Liste3 Car Car";
font-weight:bold;
font-style:italic;}
p.Liste4, li.Liste4, div.Liste4
{mso-style-name:Liste4;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:36.0pt;
text-align:justify;
text-indent:-18.0pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;
font-style:italic;}
p.liste3, li.liste3, div.liste3
{mso-style-name:liste3;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:18.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-indent:-18.0pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.liste5, li.liste5, div.liste5
{mso-style-name:liste5;
margin-top:3.0pt;
margin-right:0cm;
margin-bottom:3.0pt;
margin-left:18.0pt;
text-align:justify;
text-indent:-18.0pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.encadr, li.encadr, div.encadr
{mso-style-name:encadré;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:center;
border:none;
padding:0cm;
font-size:10.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
p.1erretraitjustifi, li.1erretraitjustifi, div.1erretraitjustifi
{mso-style-name:"1er retrait justifié";
margin-top:3.0pt;
margin-right:0cm;
margin-bottom:3.0pt;
margin-left:36.0pt;
text-align:justify;
text-indent:-18.0pt;
font-size:11.0pt;
font-family:"Garamond","serif";}
span.Liste2CarCar1
{mso-style-name:"Liste2 Car Car1";}
p.Liste2, li.Liste2, div.Liste2
{mso-style-name:Liste2;
margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:18.0pt;
text-align:justify;
text-indent:-18.0pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
span.Liste1CarCar
{mso-style-name:"Liste1 Car Car";}
span.Liste3CarCar1
{mso-style-name:"Liste3 Car Car1";
font-weight:bold;
font-style:italic;}
span.CommentaireCar
{mso-style-name:"Commentaire Car";
mso-style-link:Commentaire;
font-family:"Arial","sans-serif";}
p.Listepuces1, li.Listepuces1, div.Listepuces1
{mso-style-name:"Liste à puces 1";
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:18.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-indent:-18.0pt;
font-size:11.0pt;
font-family:"Garamond","serif";
font-weight:bold;}
p.intervalle, li.intervalle, div.intervalle
{mso-style-name:intervalle;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
background:white;
font-size:8.0pt;
font-family:"Garamond","serif";}
p.titreinter, li.titreinter, div.titreinter
{mso-style-name:"titre inter";
margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:justify;
background:#D9D9D9;
font-size:12.0pt;
font-family:"Garamond","serif";
font-weight:bold;}
p.CarCar, li.CarCar, div.CarCar
{mso-style-name:"Car Car";
margin-top:0cm;
margin-right:0cm;
margin-bottom:8.0pt;
margin-left:0cm;
line-height:12.0pt;
font-size:10.0pt;
font-family:"Tahoma","sans-serif";}
p.Default, li.Default, div.Default
{mso-style-name:Default;
margin:0cm;
margin-bottom:.0001pt;
text-autospace:none;
font-size:12.0pt;
font-family:"Trebuchet MS","sans-serif";
color:black;}
p.CarCarCarCarCar, li.CarCarCarCarCar, div.CarCarCarCarCar
{mso-style-name:"Car Car Car Car Car";
margin-top:0cm;
margin-right:0cm;
margin-bottom:8.0pt;
margin-left:0cm;
line-height:12.0pt;
font-size:10.0pt;
font-family:"Tahoma","sans-serif";}
p.Liste2Car, li.Liste2Car, div.Liste2Car
{mso-style-name:"Liste2 Car";
mso-style-link:"Liste2 Car Car";
margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:18.0pt;
text-align:justify;
text-indent:-18.0pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
span.Liste2CarCar
{mso-style-name:"Liste2 Car Car";
mso-style-link:"Liste2 Car";}
p.Liste30, li.Liste30, div.Liste30
{mso-style-name:Liste3;
margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:53.25pt;
text-align:justify;
text-indent:-18.0pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;
font-style:italic;}
p.Puce1, li.Puce1, div.Puce1
{mso-style-name:Puce1;
margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:1.0cm;
text-align:justify;
text-indent:-1.0cm;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.CarCarCarCarCarCarCarCarCarCarCarCarCarCar, li.CarCarCarCarCarCarCarCarCarCarCarCarCarCar, div.CarCarCarCarCarCarCarCarCarCarCarCarCarCar
{mso-style-name:"Car Car Car Car Car Car Car Car Car Car Car Car Car Car";
margin-top:0cm;
margin-right:0cm;
margin-bottom:8.0pt;
margin-left:0cm;
line-height:12.0pt;
font-size:12.0pt;
font-family:"Verdana","sans-serif";}
p.CarCarCarCarCar2, li.CarCarCarCarCar2, div.CarCarCarCarCar2
{mso-style-name:"Car Car Car Car Car2";
margin-top:0cm;
margin-right:0cm;
margin-bottom:8.0pt;
margin-left:0cm;
line-height:12.0pt;
font-size:10.0pt;
font-family:"Tahoma","sans-serif";}
span.NotedefinCar
{mso-style-name:"Note de fin Car";
mso-style-link:"Note de fin";
font-family:"Garamond","serif";}
p.Style2, li.Style2, div.Style2
{mso-style-name:Style2;
mso-style-link:"Style2 Car";
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
page-break-after:avoid;
font-size:12.0pt;
font-family:"Arial","sans-serif";
color:#948A54;}
span.Style2Car
{mso-style-name:"Style2 Car";
mso-style-link:Style2;
font-family:"Arial","sans-serif";
color:#948A54;}
span.TextebrutCar
{mso-style-name:"Texte brut Car";
mso-style-link:"Texte brut";
font-family:Consolas;}
p.Test, li.Test, div.Test
{mso-style-name:Test;
mso-style-link:"Test Car";
margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
span.TestCar
{mso-style-name:"Test Car";
mso-style-link:Test;
font-weight:bold;}
p.Teest, li.Teest, div.Teest
{mso-style-name:Teest;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:18.0pt;
margin-bottom:.0001pt;
text-indent:-18.0pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
span.ObjetducommentaireCar
{mso-style-name:"Objet du commentaire Car";
mso-style-link:"Objet du commentaire";
font-family:"Arial","sans-serif";}
span.sc101
{mso-style-name:sc101;
font-family:"Courier New";
color:navy;
font-weight:bold;}
span.sc0
{mso-style-name:sc0;
font-family:"Courier New";
color:black;}
span.sc11
{mso-style-name:sc11;
font-family:"Courier New";
color:black;}
span.sc51
{mso-style-name:sc51;
font-family:"Courier New";
color:blue;
font-weight:bold;}
span.sc21
{mso-style-name:sc21;
font-family:"Courier New";
color:red;}
span.sc91
{mso-style-name:sc91;
font-family:"Courier New";
color:fuchsia;}
span.sc31
{mso-style-name:sc31;
font-family:"Courier New";
color:gray;}
span.sc81
{mso-style-name:sc81;
font-family:"Courier New";
color:black;
font-weight:bold;}
span.sc41
{mso-style-name:sc41;
font-family:"Courier New";
color:gray;}
span.sc12
{mso-style-name:sc12;
font-family:"Courier New";
color:green;}
span.sc7
{mso-style-name:sc7;
font-family:"Courier New";
color:black;}
p.sc2, li.sc2, div.sc2
{mso-style-name:sc2;
margin-right:0cm;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman","serif";
color:red;}
p.sc3, li.sc3, div.sc3
{mso-style-name:sc3;
margin-right:0cm;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman","serif";
color:gray;}
p.sc4, li.sc4, div.sc4
{mso-style-name:sc4;
margin-right:0cm;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman","serif";
color:gray;}
p.sc5, li.sc5, div.sc5
{mso-style-name:sc5;
margin-right:0cm;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman","serif";
color:blue;
font-weight:bold;}
p.sc10, li.sc10, div.sc10
{mso-style-name:sc10;
margin-right:0cm;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman","serif";
color:navy;
font-weight:bold;}
p.sc1, li.sc1, div.sc1
{mso-style-name:sc1;
margin-right:0cm;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman","serif";
color:green;}
p.sc9, li.sc9, div.sc9
{mso-style-name:sc9;
margin-right:0cm;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman","serif";
color:fuchsia;}
span.msoIns
{mso-style-name:"";
text-decoration:underline;
color:teal;}
span.msoDel
{mso-style-name:"";
text-decoration:line-through;
color:red;}
.MsoChpDefault
{font-size:10.0pt;}
/* Page Definitions */
@page WordSection1
{size:595.3pt 841.9pt;
margin:4.7pt 2.0cm 35.45pt 70.9pt;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->
</style>
<br />
<h1>
1.<span style="font: 7.0pt "Times New Roman";"> </span>Introduction</h1>
<div class="MsoNormal">
<span lang="EN-US">On July 21st 2012 at 7AM (Las Vegas time) </span><a href="http://eset.com/"><span lang="EN-US">ESET</span></a> <span lang="EN-US">published
a </span><a href="http://go.eset.com/us/rulethecode/"><span lang="EN-US">crack-me</span></a><span lang="EN-US"> for the BlackHat US 2012 edition. Rules were simple: find a valid
couple of serial numbers for a given name before July 26<sup>th</sup> 2012 2PM
to maybe win $1000 and a BlackCard (that gives you a free entry for either the
next BlackHat US or EU).</span></div>
<div class="MsoNormal">
<br /></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2mcfsTVktkNWlBWNpfudwb6bZ4tItJDqArgHHYuRQzfQ_UVnNez-gF24M5rowgyR67Lx13wb2g4ZueQ6VaKgcjARjsuZ_WfcosDMPN0PZmfVYxUgw5SGzJyZmGkTzr-x2IfrV3uOjOfU/s1600/crackme.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2mcfsTVktkNWlBWNpfudwb6bZ4tItJDqArgHHYuRQzfQ_UVnNez-gF24M5rowgyR67Lx13wb2g4ZueQ6VaKgcjARjsuZ_WfcosDMPN0PZmfVYxUgw5SGzJyZmGkTzr-x2IfrV3uOjOfU/s1600/crackme.png" /></a></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="center" class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm; text-align: center;">
<span lang="EN-US" style="font-size: 10.0pt;">Figure </span><span lang="EN-US" style="font-size: 10.0pt;">1</span><span lang="EN-US" style="font-size: 10.0pt;">: GUI of the crack-me</span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal" style="margin-bottom: 1.0pt;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">According to </span><a href="http://go.eset.com/us/rulethecode/"><span lang="EN-US">challenge's site</span></a>
<span lang="EN-US">Eloi Vanderbeken from Oppida was the only person to solve it
in time and won the price even if he was not at BlackHat US:</span></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3wBLSt__0C6vrvpBFrZVzN7d5IWkfL446dgGCVjlzOuBtEKHW9Hss9_SX4XMUhH5VRJY7JwOELbjy-HUtCEUXzNE4kEq_ECH5v1OrsXpWR0RIrZJnRh087WTNCIhGlk0hDTPI_6JmidU/s1600/challpage.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3wBLSt__0C6vrvpBFrZVzN7d5IWkfL446dgGCVjlzOuBtEKHW9Hss9_SX4XMUhH5VRJY7JwOELbjy-HUtCEUXzNE4kEq_ECH5v1OrsXpWR0RIrZJnRh087WTNCIhGlk0hDTPI_6JmidU/s400/challpage.png" width="400" /></a> </div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="center" class="MsoNormal" style="margin-bottom: 1.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 1.0pt; text-align: center;">
<span lang="EN-US" style="font-size: 10.0pt;">Figure </span><span lang="EN-US" style="font-size: 10.0pt;">2</span><span lang="EN-US" style="font-size: 10.0pt;">: Result of the challenge</span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">This post explains how Eloi achieved to break it.</span><br />
<a name='more'></a></div>
<div style="border-bottom: solid black 1.0pt; border: none; padding: 0cm 0cm 1.0pt 0cm;">
<h1>
2.<span style="font: 7.0pt "Times New Roman";">
</span>First steps</h1>
</div>
<div class="MsoNormal">
<span lang="EN-US">The crack-me is packed with </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">UPX</span><span lang="EN-US">, so we first unpack it by using the </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">upx -d</span><span lang="EN-US"> command to study it under </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">IDA Pro 6.3</span><span lang="EN-US">. </span></div>
<div class="MsoNormal">
<span lang="EN-US">We quickly noticed that it was created with
the </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">MFC</span><span lang="EN-US" style="font-size: 11.0pt;"> </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">library</span><span lang="EN-US">, which
explains the large size of the binary (1Mo packed and 2M unpacked) and
facilitates its analysis with </span><span lang="EN-US" style="font-family: "Courier New";">IDA</span><span lang="EN-US">:</span></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghWfL-eHP3fSVTxf3UjN7RpQfKJ1dtooafWJ03YAhkBt1uwMXHNYQ3AJqdzYNHFIr_OvbRVCwLyl8gZE-z0TDoYio0722OM3-9VpRjCcJsMv5GHmBH4wSp2aW57gdSgQtxcNC_HpV_4ms/s1600/ida2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="15" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghWfL-eHP3fSVTxf3UjN7RpQfKJ1dtooafWJ03YAhkBt1uwMXHNYQ3AJqdzYNHFIr_OvbRVCwLyl8gZE-z0TDoYio0722OM3-9VpRjCcJsMv5GHmBH4wSp2aW57gdSgQtxcNC_HpV_4ms/s400/ida2.png" width="400" /></a> </div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="center" class="MsoNormal" style="margin-bottom: 1.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 1.0pt; text-align: center;">
<span lang="EN-US" style="font-size: 10.0pt;">Figure </span><span lang="EN-US" style="font-size: 10.0pt;">3</span><span lang="EN-US" style="font-size: 10.0pt;">: Light blue parts are MFC functions recognized by
IDA</span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">A quick look in the referenced text string reveals
the address of the function in charge of serials verification:</span></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUP8irLsJxTiVdBC4ZlR0njjxXXxd-dkpaH6aq9Mo87fS6_TRgEdpnOFBvXSYbs0Dyw76sbl_qiKfAh3WKDAil87LVvMvhwd74P1QNmdKGPtfmWpZm8HVsP5ZykjzrIp3cRlqnm_v1Qbg/s1600/olly2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="35" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUP8irLsJxTiVdBC4ZlR0njjxXXxd-dkpaH6aq9Mo87fS6_TRgEdpnOFBvXSYbs0Dyw76sbl_qiKfAh3WKDAil87LVvMvhwd74P1QNmdKGPtfmWpZm8HVsP5ZykjzrIp3cRlqnm_v1Qbg/s400/olly2.png" width="400" /></a></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="center" class="MsoNormal" style="margin-bottom: 1.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 1.0pt; text-align: center;">
<span lang="EN-US" style="font-size: 10.0pt;">Figure </span><span lang="EN-US" style="font-size: 10.0pt;">4</span><span lang="EN-US" style="font-size: 10.0pt;">:localization of the verification function</span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">To simplify its analysis, we import the
labels generated by </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">IDA</span><span lang="EN-US"> in </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">OllyDbg</span><span lang="EN-US"> by using exporting them in a map file and importing the .map file
with </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;"><a href="http://www.openrce.org/downloads/details/103/GoDup">GoDup</a></span><span lang="EN-US">, an </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">OllyDbg</span><span lang="EN-US"> plugin :</span></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZWTScAwXEn-498wgDyvfgxQymhBbQ0V8hoswCkOCpmr8g_g6IwjFkOgJmEtbpal_FH-UhkRgmGr7ZpoqfCSCl0rbnE2zlhfWNtkw_Ic2ewRmYS3RnUV1FDbbPoeO9nyoLhQ_p1wCvpFs/s1600/olly.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="175" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZWTScAwXEn-498wgDyvfgxQymhBbQ0V8hoswCkOCpmr8g_g6IwjFkOgJmEtbpal_FH-UhkRgmGr7ZpoqfCSCl0rbnE2zlhfWNtkw_Ic2ewRmYS3RnUV1FDbbPoeO9nyoLhQ_p1wCvpFs/s320/olly.png" width="320" /></a></div>
<div class="MsoNormal" style="margin-bottom: 1.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 1.0pt; page-break-after: avoid;">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="center" class="MsoNormal" style="margin-bottom: 1.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 1.0pt; text-align: center;">
<span lang="EN-US" style="font-size: 10.0pt;">Figure </span><span lang="EN-US" style="font-size: 10.0pt;">5</span><span lang="EN-US" style="font-size: 10.0pt;">: IDA labels imported in OllyDbg</span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">Now we have located verification functions
we can start to study them.</span></div>
<div style="border-bottom: solid black 1.0pt; border: none; padding: 0cm 0cm 1.0pt 0cm;">
<h1>
<span lang="EN-US">3.<span style="font: 7.0pt "Times New Roman";">
</span></span><span lang="EN-US">First part</span></h1>
</div>
<div class="MsoNormal">
<span lang="EN-US">A quick analysis shows us that the serial
is base64 decoded and must be composed of at least 0x3F characters once base64 decoded.
It is then verified with the following algorithm :</span></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">def</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: magenta; font-family: "Courier New"; font-size: 10.0pt;">scramble</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">t</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> t</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]%</span></b><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;">t</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> t</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;">j</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> t</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> t</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> t</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;">j</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">exitFun </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
badBoy</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">serialDecoded </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
serial</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">decode</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"base64"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">padding </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"ESETNOD32@"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">*</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">8</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">len</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">):]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">H </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
hash512</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">padding</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> serialDecoded</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[:</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">][::-</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">!=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> H </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
exitFun</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">()</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">scrambledTab </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> H</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
enumerate</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">serialDecoded</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> scrambledTab</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">^=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">scramble</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">scrambledTab</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> scrambledTab</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">68</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">72</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">!=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xA</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xC</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xD</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> exitFun </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
badBoy</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
exitFun</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">()</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> hash512</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">scrambledTab</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)[:</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">12</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">!=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xCA</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x8A</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x57</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x12</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x78</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB6</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xCA</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xEF</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x78</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x56</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x34</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x12</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
exitFun</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">()</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;">exitFun </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> goodBoy</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> exitFun</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">()</span></b></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="center" class="MsoCaption" style="margin-bottom: 1.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 1.0pt; text-align: center;">
<span lang="EN-US" style="font-size: 10.0pt; font-style: normal;">Figure </span><span lang="EN-US" style="font-size: 10.0pt; font-style: normal;">6</span><span lang="EN-US" style="font-size: 10.0pt; font-style: normal;">: First check of the serial in
pseudo-python</span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">The first part of the check is easy to
satisfy, we just need to encode in base64 the reversed hash of the padded name.
The second part is a little bit harder, at first sight it seems that we need to
find a preimage attack on the hash function to satisfy the last check and to
reverse the scramble function to find a valid serial.</span></div>
<div class="MsoNormal">
<span lang="EN-US">After studying the code of the hash
function, we found that the hash function was WhirlPool (thanks to the
substitution table) and we did not find any backdoor in the code. It had to be
something else.</span></div>
<div class="MsoNormal">
<span lang="EN-US">A careful reader might have seen that </span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 11.0pt;">scrambledTab</span><span lang="EN-US" style="color: black;"> is initialized with a 64 bytes array (the hash
of the name) but is then considered as a 80 bytes array in the scramble
function. After redefining </span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 11.0pt;">scrambledTab</span><span lang="EN-US" style="color: black;"> as a 80 bytes array in IDA, we saw that </span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 11.0pt;">exitFun</span><span lang="EN-US" style="color: black;"> became </span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 11.0pt;">scrambledTab[76:80]</span><span lang="EN-US" style="color: black;">:</span></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div class="MsoNormal" style="margin-bottom: 1.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 1.0pt; page-break-after: avoid;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkPkQiuvEfoHGenoE-sk9ycEvMxLYYst76EOSS5x4Zi1LwzAQlamyZya4L1Nsk-3Wn73TVfO5cZDfZt8Cqq-8tHKe9_SClTT8RuKw9gzOMQLAsItO2g8bSZhmlWWYmnfhXTmtqnIyPhXU/s1600/scrambledtab.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="147" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkPkQiuvEfoHGenoE-sk9ycEvMxLYYst76EOSS5x4Zi1LwzAQlamyZya4L1Nsk-3Wn73TVfO5cZDfZt8Cqq-8tHKe9_SClTT8RuKw9gzOMQLAsItO2g8bSZhmlWWYmnfhXTmtqnIyPhXU/s400/scrambledtab.png" width="400" /></a></div>
</div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="center" class="MsoNormal" style="margin-bottom: 1.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 1.0pt; text-align: center;">
<span lang="EN-US" style="font-size: 10.0pt;">Figure </span><span lang="EN-US" style="font-size: 10.0pt;">6</span><span lang="EN-US" style="font-size: 10.0pt;">: IDA disassembly after </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt;">scrambledTab</span><span lang="EN-US" style="font-size: 10.0pt;"> was redefined</span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">Moreover </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">BadBoy</span><span lang="EN-US"> and </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">GoodBoy</span><span lang="EN-US"> functions' addresses differ only
by the least significant byte (</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">0x40</span><span lang="EN-US"> for the </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">BadBoy</span><span lang="EN-US"> function, </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">0x20</span><span lang="EN-US"> for the </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">GoodBoy</span><span lang="EN-US"> one) so if we can use the scramble function to rewrite the badboy's
address least significant byte to </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">0x20</span><span lang="EN-US"> and write the
good values (</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">[</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">0xA, 0xB, 0xC,
0xD]</span><span lang="EN-US">) </span><span lang="EN-US">in </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">scrambledTab[68:72]</span><span lang="EN-US"> we will have the good boy message and you will pass the first
check.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">To achieve this goal we wrote a little
"intelligent" bruteforcer which, given an initial table of 64 unknown
bytes followed by 16 fixed bytes (remember we only control the 64 first bytes)
and a list of couples </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">(offset, value_to_set)</span><span lang="EN-US">
corresponding to the desired final state of the table, tries to set the right bytes
at the right place and next tries to not overwrite them.</span></div>
<div class="MsoNormal">
<span lang="EN-US">Complete code to generate a valid first
serial is the following:</span></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">import</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sys</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">from</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> random </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">import</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
SystemRandom</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">from</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> base64 </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">import</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
b64encode</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">try</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">from</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
whirlpool </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">import</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> Whirlpool</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">except</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"To
work this keygen need the Whirpool implementation located here :
http://www.bjrn.se/code/whirlpoolpy.txt"</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sys</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">exit</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">sec_rnd </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
SystemRandom</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">()</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"name
:"</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">name </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
sys</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">stdin</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">readline</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">().</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">rstrip</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"\r\n"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">hash_name </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">ord</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
Whirlpool</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"ESETNOD32@"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">*</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">8</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">len</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">):]).</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">digest</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">()]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">def</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: magenta; font-family: "Courier New"; font-size: 10.0pt;">step1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">></span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">63</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_set_cpy </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
list</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sec_rnd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">shuffle</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">to_set_cpy</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
choice</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> v</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
enumerate</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">to_set_cpy</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">==</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> v </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step2a</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set_cpy</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[:</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">choice</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set_cpy</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">choice</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">elif</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> v</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step2a</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set_cpy</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[:</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">choice</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set_cpy</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">choice</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step2b</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">def</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: magenta; font-family: "Courier New"; font-size: 10.0pt;">step2a</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc
</span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx
</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">-</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_keep </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx
</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">-</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">while</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc
</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x100</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">add</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">remove</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">elif</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">==</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
idx </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">add</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">remove</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">else</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">def</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: magenta; font-family: "Courier New"; font-size: 10.0pt;">step2b</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> vals </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x100</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">and</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sec_rnd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">shuffle</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">vals</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
vals </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> vals </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x100</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sec_rnd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">shuffle</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">vals</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
vals </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> vals2 </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">kc </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc
</span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x100</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sec_rnd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">shuffle</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">vals2</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc
</span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> vals2 </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">else</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc
</span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> vals </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">kc </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc
</span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x100</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sec_rnd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">shuffle</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">vals</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc
</span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> vals </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">elif</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_keep </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">def</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: magenta; font-family: "Courier New"; font-size: 10.0pt;">step3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10.0pt;"># initial table</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]*</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x40</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x17</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x40</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10.0pt;"># couple of values to set</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">to_set </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x44</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xA</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">),</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x45</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">),</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x46</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xC</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">),</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x47</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xD</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">),</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4C</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x20</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10.0pt;"># addresses that have to be keep (not
modified)</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">to_keep </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">((</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4D</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4E</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">s </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10.0pt;"># unused values can be set to any
value</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">len</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">s</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> s</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> s</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
sec_rnd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">randint</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xFF</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">serial </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">""</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">join</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">chr</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
hash_name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[::-</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">])</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">serial </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">""</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">join</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">chr</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">a</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">^</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">b</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">^</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> a</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> b</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
zip</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">hash_name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
hash_name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[::-</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> s</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"serial
1 :"</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> serial</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;">encode</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"base64"</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">).</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;">replace</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"\n"</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">""</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="center" class="MsoCaption" style="margin-bottom: 1.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 1.0pt; text-align: center;">
<span lang="EN-US" style="font-size: 10.0pt; font-style: normal;">Figure </span><span lang="EN-US" style="font-size: 10.0pt; font-style: normal;">7</span><span lang="EN-US" style="font-size: 10.0pt; font-style: normal;">: Code to generate a valid first
serial (Python 2.7)</span></div>
</td>
</tr>
</tbody></table>
<div align="left" class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">If you want to personalize the generated
serial by appending it a constant string, you can use one of the following
code, the first one adds some constraints to the generated table and generates
a serial with a minimal length; the second one appends bytes to the serial but
permits to add an arbitrary long string:</span></div>
<div align="left" class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">egg </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"ElV++ESET++="</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">egg_d </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
egg</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">decode</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"base64"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">padd </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">-</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
len</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">egg_d</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">list_egg </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">hash_name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">padd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]^</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">hash_name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[::-</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">][</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">padd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]^</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">ord</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
enumerate</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">egg_d</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]*</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">padd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">list_egg</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x40</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x17</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x40</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">to_set </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x44</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xA</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">),</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x45</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">),</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x46</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xC</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">),</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x47</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xD</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">),</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4C</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x20</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">to_keep </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">((</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4D</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4E</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">s </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">len</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">s</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> s</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> s</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
sec_rnd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">randint</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xFF</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">serial </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">""</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">join</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">chr</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
hash_name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[::-</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">])</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">serial </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">""</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">join</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">chr</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">a</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">^</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">b</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">^</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> a</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> b</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
zip</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">hash_name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
hash_name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[::-</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> s</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">serial </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
serial</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">encode</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"base64"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">).</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">replace</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"\n"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">""</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10.0pt;"># multiple encoding are valid for the
same value because some bits are ignored for the last symbol</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">serial </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
serial</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[:-</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">len</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">egg</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)]+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">egg</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"serial
1 :"</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> serial</span></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="center" class="MsoNormal" style="margin-bottom: 1.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 1.0pt; page-break-after: avoid; text-align: center;">
<span lang="EN-US" style="font-size: 10.0pt;">Figure </span><span lang="EN-US" style="font-size: 10.0pt;">8</span><span lang="EN-US" style="font-size: 10.0pt;">: First solution, all generated serials end with ElV++ESET++ (Python
2.7)</span></div>
</td>
</tr>
</tbody></table>
<div class="MsoCaption">
<br /></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">egg </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"+blabla+ESET+Nod32+BH2012+Oppida"</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">egg_d </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
egg</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">decode</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"base64"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]*</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x40</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x17</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x40</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">to_set </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x44</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xA</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">),</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x45</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">),</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x46</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xC</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">),</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x47</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xD</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">),</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4C</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x20</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">to_keep </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">((</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4D</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4E</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">s </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">len</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">s</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> s</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> s</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
sec_rnd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">randint</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xFF</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">serial </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">""</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">join</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">chr</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
hash_name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[::-</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">])</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10.0pt;"># add padding (128 % 3 = 2)</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">egg_d </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
chr</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">sec_rnd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">randint</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xFF</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
egg_d</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
enumerate</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">hash_name </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
hash_name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[::-</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">ord</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
egg_d</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">])</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> s</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">^=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">serial </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">""</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">join</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">chr</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> s</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[:</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">])</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">serial </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
egg_d</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">serial </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
serial</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">encode</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"base64"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">).</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">replace</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"\n"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">""</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10.0pt;"># multiple encoding are valid for the
same value because some bits are ignored for the last symbol</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">serial </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
serial</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[:-</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">len</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">egg</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)]+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">egg</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"serial
1 :"</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> serial</span></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="center" class="MsoNormal" style="margin-bottom: 1.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 1.0pt; page-break-after: avoid; text-align: center;">
<span lang="EN-US" style="font-size: 10.0pt;">Figure </span><span lang="EN-US" style="font-size: 10.0pt;">9</span><span lang="EN-US" style="font-size: 10.0pt;">: Second solution, all generated serials end with "+blabla+ESET+Nod32+BH2012+Oppida"
(Python 2.7)</span></div>
</td>
</tr>
</tbody></table>
<div class="MsoCaption">
<br /></div>
<div style="border-bottom: solid black 1.0pt; border: none; padding: 0cm 0cm 1.0pt 0cm;">
<h1>
<span lang="EN-US">4.<span style="font: 7.0pt "Times New Roman";">
</span></span><span lang="EN-US">Second part</span></h1>
</div>
<div class="MsoNormal">
<span lang="EN-US">The second part of the challenge takes
place at address </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">0x0401C10</span><span lang="EN-US">. The serial must be composed
of 12 uppercase hexadecimal characters. Those characters are used to transform
a 64 bits value with the following algorithm:</span></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">def</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: magenta; font-family: "Courier New"; font-size: 10.0pt;">to_16b</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">qword</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> idx </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> word </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">16</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
qword </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
idx </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> word </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">|=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> idx </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx
</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">29</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
word</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">def</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: magenta; font-family: "Courier New"; font-size: 10.0pt;">mutate</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">qword</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
word</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> idx </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">16</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
word </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> qword </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">|=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
idx</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">else</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> qword </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">~(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> idx </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx
</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">29</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
qword</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">def</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: magenta; font-family: "Courier New"; font-size: 10.0pt;">shift</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">qword</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> qword_masked </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
qword </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">7069181668496654033</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> nb_bits_set </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
qword_masked </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> nb_bits_set </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">((</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">qword
</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">|</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">nb_bits_set
</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">((</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">-</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">serial </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"012345678ABC"</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">qword </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">8828098094971975552</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
serial </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
int</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">16</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> word </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_16b</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">qword</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
word </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> word </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">~(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">else</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> word </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">|=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> qword </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
mutate</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">qword</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> word</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> qword </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
shift</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">qword</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> hex</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">qword</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="center" class="MsoNormal" style="margin-bottom: 1.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 1.0pt; page-break-after: avoid; text-align: center;">
<span lang="EN-US" style="font-size: 10.0pt;">Figure </span><span lang="EN-US" style="font-size: 10.0pt;">10</span><span lang="EN-US" style="font-size: 10.0pt;">: First part of the verification of the second serial : mutation of </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt;">qword (</span><span lang="EN-US" style="font-size: 10.0pt;">Python 2.7)</span></div>
</td>
</tr>
</tbody></table>
<div class="MsoCaption">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">Those operations can be simplified to get the
following algorithm:</span></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">def</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: magenta; font-family: "Courier New"; font-size: 10.0pt;">shift</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">qword</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> qword_masked </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
qword </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">7069181668496654033</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> nb_bits_set </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
qword_masked </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> nb_bits_set </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">((</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">qword
</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">|</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">nb_bits_set
</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">((</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">-</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">serial </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"012345678ABC"</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">qword </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">8828098094971975552</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">int_to_idx </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">30</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">59</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">24</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">53</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">18</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">47</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">12</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">41</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">6</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">35</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">29</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">58</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">23</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">52</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
serial </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> qword </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">^=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
int_to_idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">int</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">16</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> qword </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
shift</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">qword</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> hex</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">qword</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="center" class="MsoNormal" style="margin-bottom: 1.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 1.0pt; page-break-after: avoid; text-align: center;">
<span lang="EN-US" style="font-size: 10.0pt;">Figure </span><span lang="EN-US" style="font-size: 10.0pt;">11</span><span lang="EN-US" style="font-size: 10.0pt;">: Simplified first part of the verification of the second serial :
mutation of </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt;">qword</span><span lang="EN-US" style="font-size: 10.0pt;"> (Python 2.7)</span></div>
</td>
</tr>
</tbody></table>
<div class="MsoCaption">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">After being transformed, </span><span lang="EN-US" style="font-family: "Courier New";">qword</span><span lang="EN-US"> must
satisfy the following check:</span></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">qwordTable </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">4</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">145</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">249</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">72</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">19</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">195</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">74</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">137</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[...]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">4611686018427387904L</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1195637156289680119L</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">24621007439812200L</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">43743323218066342L</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">676995634570036126L</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1203597948695219397L</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1037036833364889864L</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">130039954294608103L</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">def</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: magenta; font-family: "Courier New"; font-size: 10.0pt;">has_same_set_bits</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">a</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> b</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> """ return 1 if all
bits set in b are also set in a else 0"""</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> b </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">and</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">a </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> nb_same_set_bits </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">8</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> nb_same_set_bits </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
has_same_set_bits</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">qword</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> qwordTable</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">][</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">])</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
nb_same_set_bits </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">|=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">==</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x55BDEC8E23A0EF32</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"Good
Boy"</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">else</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"BadBoy"</span></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="center" class="MsoNormal" style="margin-bottom: 1.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 1.0pt; page-break-after: avoid; text-align: center;">
<span lang="EN-US" style="font-size: 10.0pt;">Figure </span><span lang="EN-US" style="font-size: 10.0pt;">12</span><span lang="EN-US" style="font-size: 10.0pt;">: Verification of the mutated </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt;">qword (</span><span lang="EN-US" style="font-size: 10.0pt;">Python 2.7)</span></div>
</td>
</tr>
</tbody></table>
<div class="MsoCaption">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">To dump the </span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 11.0pt;">qwordTable</span><span lang="EN-US" style="color: black;">, we use the following simple IDA python script:</span></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">from</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> pprint </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">import</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
pprint</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">from</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> idc </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">import</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
Qword</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">qwordTable </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> t </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">8</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> t</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">append</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">Qword</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x560128</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">*</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">8</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">*</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">8</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">*</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">8</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;">qwordTable</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;">append</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;">t</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;">pprint</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;">qwordTable</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="center" class="MsoNormal" style="margin-bottom: 1.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 1.0pt; page-break-after: avoid; text-align: center;">
<span lang="EN-US" style="font-size: 10.0pt;">Figure </span><span lang="EN-US" style="font-size: 10.0pt;">13</span><span lang="EN-US" style="font-size: 10.0pt;">: Code used to dump the table of qwords in IDA (Python 2.7)</span></div>
</td>
</tr>
</tbody></table>
<div class="MsoCaption">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">It may exists an elegant solution for this
problem but we didn't find it and we wanted to solve the crack-me as fast as
possible so we decided to use the </span><a href="http://www.research.microsoft.com/en-us/um/redmond/projects/z3"><span lang="EN-US">Microsoft Theorem Prover: Z3</span></a><span lang="EN-US">. It has a
nice Python API, good reviews, free and easy to use; it is the perfect tool for
this problem.</span></div>
<div class="MsoNormal">
<span lang="EN-US">All we have to do is translate the
different operations performed on the serial into Z3 equations and let Z3 find
the answer for us.</span></div>
<div class="MsoNormal">
<span lang="EN-US">Integers became bit vectors, different
possible values are translated in OR equations. The following code gives a valid
serial in less than 2 minutes:</span></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">check_v </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x55BDEC8E23A0EF32</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">init_v </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">8828098094971975552</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">bitvectors </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">BitVecVal</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">init_v</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">solver </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
Solver</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">()</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">12</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> bitvectors</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">append</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">BitVec</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">'x_%d'</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">key </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">12</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> key</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">append</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">Int</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"k%d"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">13</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> eq </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
False</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
enumerate</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">([</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">30</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">59</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">24</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">53</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">18</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">47</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">12</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">41</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">6</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">35</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">29</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">58</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">23</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">52</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">])</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sub_eq </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">key</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">-</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">==</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> bv </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">bitvectors</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">-</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">^</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
BitVecVal</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> bit </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> l </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">7069181668496654033</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> l</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> bit </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">LShR</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">bv</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> l</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">^</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
bit</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sub_eq </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
And</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">sub_eq</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> bitvectors</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">==</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">((</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">bv </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">|</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
bit</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> eq </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> Or</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">eq</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
sub_eq</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> solver</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">append</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">eq</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> t </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
enumerate</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">tt</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> bit </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> v </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> t </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> has_same_set_bits </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
range</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> v </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> has_same_set_bits </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
has_same_set_bits </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">LShR</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">bitvectors</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">12</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> bit </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">^=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
has_same_set_bits</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
check_v </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> solver</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">add</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">bit
</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">==</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">else</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> solver</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">add</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">bit
</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">==</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">solver</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">check</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">()</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">solution </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
solver</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">model</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">()</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">""</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">12</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"%X"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">int</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">str</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">solution</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">key</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]]))</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"serial2 :"</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="center" class="MsoNormal" style="margin-bottom: 1.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 1.0pt; page-break-after: avoid; text-align: center;">
<span lang="EN-US" style="font-size: 10.0pt;">Figure </span><span lang="EN-US" style="font-size: 10.0pt;">14</span><span lang="EN-US" style="font-size: 10.0pt;">: Code used to find a valid serial for the second part of the
crack-me (Python 2.7)</span></div>
</td>
</tr>
</tbody></table>
<div class="MsoCaption">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">It is faster to find a solution when
boolean values are directly used instead of bit vectors (~30 sec versus ~100
sec) but it is also a little bit more tricky, the code doing this is given in
the complete keygen source provided in </span><span lang="EN-US">Annex</span><span lang="EN-US">. </span></div>
<div class="MsoNormal">
<span lang="EN-US">Different variations of the code gave us 3
different serials: </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">94A0353FA32B</span><span lang="EN-US">, </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">2BA52E7FAC23</span><span lang="EN-US"> and </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 11.0pt;">966132348323</span><span lang="EN-US">.</span></div>
<div style="border-bottom: solid black 1.0pt; border: none; padding: 0cm 0cm 1.0pt 0cm;">
<h1>
<span lang="EN-US">5.<span style="font: 7.0pt "Times New Roman";">
</span></span><span lang="EN-US">Conclusion</span></h1>
</div>
<div class="MsoNormal">
<span lang="EN-US">This crack-me intelligently mixed crypto,
exploitation and use of specific tools, it wasn't too easy nor too hard for
this kind of time constraint challenge and really interesting. </span></div>
<div class="MsoNormal">
<span lang="EN-US">We want to thank ESET and all the people
who participate to this challenge, both coders and organizers!</span></div>
<div style="border-bottom: solid black 1.0pt; border: none; padding: 0cm 0cm 1.0pt 0cm;">
<h1>
<a href="http://www.blogger.com/blogger.g?blogID=3156227378489028174" name="_Toc332032898"></a><span lang="EN-US">6.<span style="font: 7.0pt "Times New Roman";"> </span></span><span lang="EN-US">Annex</span></h1>
</div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">import</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sys</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">from</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> random </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">import</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
SystemRandom</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">from</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> base64 </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">import</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
b64encode</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">try</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">from</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
whirlpool </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">import</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> Whirlpool</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">except</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"To
work this keygen need the Whirpool implementation located here :
http://www.bjrn.se/code/whirlpoolpy.txt"</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sys</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">exit</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">sec_rnd </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
SystemRandom</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">()</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"name
:"</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">name </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
sys</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">stdin</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">readline</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">().</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">rstrip</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"\r\n"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">hash_name </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">ord</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
Whirlpool</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"ESETNOD32@"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">*</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">8</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">len</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">):]).</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">digest</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">()]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">def</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: magenta; font-family: "Courier New"; font-size: 10.0pt;">step1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">global</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
SOLUTION</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">></span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">63</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_set_cpy </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
list</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sec_rnd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">shuffle</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">to_set_cpy</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
choice</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> v</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
enumerate</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">to_set_cpy</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">==</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> v </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step2a</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set_cpy</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[:</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">choice</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set_cpy</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">choice</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">elif</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> v</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step2a</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set_cpy</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[:</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">choice</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set_cpy</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">choice</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step2b</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">def</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: magenta; font-family: "Courier New"; font-size: 10.0pt;">step2a</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc
</span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx
</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">-</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_keep </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx
</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">-</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">while</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc
</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x100</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">add</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">remove</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">elif</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">==</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
idx </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">add</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">remove</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">idx</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">else</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">def</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: magenta; font-family: "Courier New"; font-size: 10.0pt;">step2b</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> vals </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x100</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">and</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sec_rnd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">shuffle</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">vals</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
vals </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> vals </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x100</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sec_rnd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">shuffle</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">vals</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
vals </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> vals2 </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">kc </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc
</span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x100</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sec_rnd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">shuffle</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">vals2</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc
</span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> vals2 </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">else</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc
</span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> vals </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">kc </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc
</span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x100</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sec_rnd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">shuffle</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">vals</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc
</span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> vals </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> kc</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">elif</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_keep </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">kc </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)%</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">80</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">def</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: magenta; font-family: "Courier New"; font-size: 10.0pt;">step3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">egg </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"ElV++ESET++="</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">egg_d </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
egg</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">decode</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"base64"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10.0pt;"># fight against sexism in keygens !</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10.0pt;"># use B16B00B2 and B16BA112 with equal
probability !</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">import</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> struct</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">egg_d </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">struct</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">pack</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"<I"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB16B00B2</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
sec_rnd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">randint</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">else</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
struct</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">pack</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"<I"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB16BA112</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
egg_d</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">padd </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">-</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
len</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">egg_d</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">list_egg </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">hash_name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">padd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]^</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">hash_name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[::-</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">][</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">padd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]^</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">ord</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
enumerate</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">egg_d</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]*</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">padd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">list_egg</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x40</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x17</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x40</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x00</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">to_set </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x44</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xA</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">),</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x45</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">),</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x46</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xC</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">),</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x47</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xD</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">),</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4C</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x20</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">to_keep </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">((</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4D</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4E</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">s </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
step1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">k</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
to_set</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> to_keep</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">len</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">s</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> s</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">is</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">None</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> s</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
sec_rnd</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">randint</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xFF</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">serial </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">""</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">join</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">chr</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
hash_name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[::-</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">])</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">serial </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">""</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">join</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">chr</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">a</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">^</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">b</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">^</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">c</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> a</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> b</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> c </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
zip</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">hash_name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
hash_name</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[::-</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> s</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">serial </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
serial</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">encode</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"base64"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">).</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">replace</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"\n"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">""</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10.0pt;"># multiple encoding are valid for the
same value because some bits are ignored for the last symbol</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">serial </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
serial</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[:-</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">len</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">egg</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)]+</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">egg</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"serial
1 :"</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> serial</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">tt </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x91</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xF9</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x48</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x13</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xC3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4A</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x89</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x80000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x30E099</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xE36C82</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x35CFAB</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x94B829</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x621DF1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x413F79</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xD28998</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x8</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB5</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x57</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB0</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB1</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x80</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x47</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x83</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x200000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB5D4CE18F3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x8CFB75A1FA</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1CC4345974</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x244C876646</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xF1D67A37BD</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x567DCE8EF</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x71D88A2C6B</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x10000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xEAA5839</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x869CBEB</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x72D6F13</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1AD663</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xFEC707</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x248AFA8</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x681CB52</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x10</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xA5</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x6</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x24</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x29</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4D</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xD</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x8C</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x8000000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xF0AFDA2F1F6319</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x54DC6F31E1DFD7</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2161D2BE0CC29F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xF3799D9A17CB9F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xE2B0EC0B44A77D</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x548E26B440C7E0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x9362066CC80EA5</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x80</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4E</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2C</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x75</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x6C</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x13</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x67</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4B</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x100</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5D</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xE0</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5F</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xEC</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x67</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x6F</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x800000000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x12BBC3C5DC54A38</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1CCD3437BF476CF</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x75007C44E58937F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x21467EFC8A2F4FC</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1E98C57A31D1F52</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x28CF95332617839</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x56470EDC082144B</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x200</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1C</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x15</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5C</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1BA</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1D7</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x24</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x400</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x13</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x346</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x152</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1FA</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x35</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xD0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1EB</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x800</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x23B</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x12A</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x6D0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x180</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5A8</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x166</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x128</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x8000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2DFE120B8D</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xDA2A736E</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x49EA2BE641</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x34D402DC99</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x72F9F7DD9</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x139B938691</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x33650D8FAE</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1000</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xF30</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xCCD</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x627</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xC24</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x34E</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x944</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x72</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1000000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xAA710830103040</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xF8D9876FA33FAD</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xE0872B7C409D25</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x6C502ADD44EE49</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x26A17C61A87597</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x786F944EF0E02B</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x9C476E3E0C8170</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2000</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1E4</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xFB1</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1CE3</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1F19</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1923</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5B5</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1E7F</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x13C6</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x313D</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x20E0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x17B6</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x3E4</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x313</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x3FD5</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x8000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xC5D</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x14AB</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4F1F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4E79</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x30AE</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1408</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x3E1F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x20000000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5F8E3FF36DF7F1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x8D426F89260E03</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x51A2E96DD21274</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x6FE4A7A21C27C</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xC60CA2A303E8AA</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4C88C6467883BB</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x14D7CC45303AD5</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x10000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x94241F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x40C7E0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x369CC6</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5E1262</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x9CCF74</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xE02BD5</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x82E8AF</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x20</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xC2</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1B</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4B</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x9E</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x53</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xD6</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x17</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x20000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x525F3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x3C9E72</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5050A4</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x352151</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xC18A91</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x19853E</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xF464AB</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x100000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x279902</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x495CA9</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2EAA39</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x548EE</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4A118C</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xED5F6E</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xE212B</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x200000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xD5F694</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x118702</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1A1231</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x14F6D0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4655E2</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xD0AC93</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB53B1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x400000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x41F14</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x16F3C4</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x8325F9</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x932B7E</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x900661</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x23B3C8</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x84205E</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x800000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x27F59</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x253D0F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x3E894F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x15BB39</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5F3F45</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1BFE85</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x771B46</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x8000000000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x82B96333035C10D</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x7EA90FA43B6895B</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xE781F2DBD9A06C</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1A037D0D66205D1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xE0978719A7CA63F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x6DFECA3318A6418</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x6004A0795E97EA6</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB9</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x79</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xBC</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x7D</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x15</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x60</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x99</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1000000</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xD7F434</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x89EB3C</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xD686FE</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB97BF3</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xBF565E</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xCD9C32</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xD5F19C</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x200000000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xD62782672B659B</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x14AC89D5C0A4573</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1F24B67DC7065FE</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5BFBCAF9A26B49</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x162670BAA8BFA51</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1F7D42DD6D0AEC0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x12A21173E4BCB43</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xA0FA2E</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x7E221F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5B4103</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x163DF66</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x161AC76</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1667E40</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xE9DFCB</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x400000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2A635474528D</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x272CA2F78E85</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xD26BD767F6B</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2D5EFD63966D</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x135444427BE2</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xE49E6C649CC</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x21FD11A032BC</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x908322</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2D298B7</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1F5997</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x79F0F1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4BF061</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x3B297C</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5B302C</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x8000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5D448D4</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x283B776</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x3145A19</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x45C465</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x69FF572</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x7DEB365</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1F9214E</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x40000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x192780D6</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2602A107</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x13D0B078</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5C1351B</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2C436E84</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xC8CF063</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xA9A768F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x100000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x3069175096</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xD28269BB14</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x8727E70B5</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xDA536BD5D8</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xFA6622E8E6</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xF696CD6F4A</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB8CC79C636</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x400000000</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x43CC6D6C11</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x9985B620E1</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x8371C3A17</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xBF670C33E</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x806F4C464C</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB3383CE8B8</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x822B885E10</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x800000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xE65F7DC327</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xD23F20538E</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x739967CF65</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x16A89332D3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xA7991DB287</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x40C74ED44F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x267C979686</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x672D1A4176</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x46F68AFEA2</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x630665DBEC</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB4C085042</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xCA7B912349</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xA160ABD0A9</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xCEC4B1E85E</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2000000000</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xDE6F99715E</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x8DE175C718</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x9E36A8FBDA</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xCE7649EC86</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xE09F1092E</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x8B0C17265</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xDE1EEB0098</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4000000000</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x3E37655239</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB8FFE5C49C</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x95933F33D4</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x38116C3E52</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xBCAA64600C</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x9B25DCCF0B</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x89B17E2C</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x10000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xDED71D5774</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x3D9408E914</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB656D2F967</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB0C1CADF8F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x43BED6FA3D</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4BB0D9A451</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x76955E0E7D</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x20000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5EAA80228A</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1F52F9E791D</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x118BEB16970</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x18F440E8778</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5DAD750C98</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1495CA088A7</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xC6C2939013</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x40000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xF4930D48E2</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x38F51A4F94C</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x3B72170BF59</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2872194C90C</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x16FBC07A0FC</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x3071BC4ADF6</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x382FCF15CEC</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x80000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1C16C0D3F60</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2EA439BCB99</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4191CC0D086</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x37EEFFDEC7</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1399B07940A</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xE45E1ABC7F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1805AA9CAA1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xF0</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x28</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xCC</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB6</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xD4</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x12</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x6</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x100000000000</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xC8F4FAEBDA4</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xEBB413F2E37</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xAC83562BC6C</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x67713E39976</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xFD5EEDAD058</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x82D23735526</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xCDFB1BC0DDB</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x200000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x11D42C06F1B6</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1D1E2E6E6223</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5539E7B941C</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x758A21E70EC</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xEE3DF953186</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xEF69F8EE3DC</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1ECD77876261</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x800000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x200EBD4E62C8</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x7885CD4584EE</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x46E59ADA811</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB2F58DD756</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5F0889BEDD0D</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x73DF76190650</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x71DBD1F160D1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2000000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x91362730A633C</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB519E7BF5FDE90</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xF51081D1D9B143</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x40EA4B7E6C5451</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x9157F00FE632B3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x7DB5001936A800</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x406ED0911503C2</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4000000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5AD2DB864D68D1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5387794E71CA27</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x70FA8BAB871825</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x58B7D3F4C4A474</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x516E13F447158A</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB9B97B38870596</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2B4B74A2131B83</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x80000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x6A2CA9CE</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5B80DEC2</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x17FBFF2A</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x28C7273D</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x7874E025</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xE9EAD5A</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x252D552F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x40000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x7086CA</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xA0454B</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xA18229</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x235B43</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x48BAE2</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x90895</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x8B740E</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x10000000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x6161E658A52B5C</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xCA62896A2DAE8A</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x242F88A65B2182</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xE49F85CF3BC096</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xE392473BBD42EF</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4A18407B9D7D6E</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x678B046E512878</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x40000000000000</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xF2811DE1B800C</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xA7CADAEBB2743E</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1DE2659F77B6AC</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x74950E9C892BB</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2E8156532E957D</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2E0FD11665C7A5</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x96024A554AE450</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x40</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x6</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB3</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x80</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1F</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xE</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x82</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x17</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x80000000000000</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x45F6DF933C25A</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4FBCEB9CC00CF9</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x6575D1B9C230CA</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4173E8D140E239</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2B95CAA25E3D1D</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x7DD021CE354D59</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1A868E5B651C44</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x100000000000000</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x73E560641E49A1</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x14B3654EFEC16A</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xC20A1CE5BF5431</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xE8AB16961A64DC</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xFC5AAA602EC41D</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xD9CC3B32395B96</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xE28C9F38890F0E</span><b><span style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x400000000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5522500389A628</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2694003EF575A86</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x13B9F036A0696A3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1937BCEFB1621B</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x200DFB8F91A8BB2</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xBE6492FF025656</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x202789F0C72B4FF</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1000000000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x77AF02D6AB1DF3</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5659C5086E42E63</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x284131A456DFD8E</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xDB26FBB380976AC</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xB175241CFECC18C</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x660F1EFB8A20487</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xFFFD90B934B8DF9</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x2000000000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5B4C5AFA91EA2FC</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xC781F620485C8B8</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1068D041963FF5A9</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xAF1DABA44341845</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x46577187503AD18</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1DAF83ACD5EBB96</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x3DD97CE4685E29C</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x20000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xEF4482F</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x312765</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1A9BA833</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xFE451C9</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x6397B17</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x16503A30</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x12A2E425</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">],</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x4000000000000000</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1097C1A8ACE792F7</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x5778AD02765668</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x9B685219B53BA6</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x9652BF15909839E</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x10B409F5185E0CC5</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0xE644B8167B5D108</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x1CDFEA6425690E7</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">check_v </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x55BDEC8E23A0EF32</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">init_v </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">8828098094971975552</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">try</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">from</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> z3
</span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">import</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">*</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">except</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"unable
to load Z3, here is a pre calculated serial 2 :"</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"966132348323"</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sys</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">exit</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">from</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> time </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">import</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
time</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">start_time </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
time</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">()</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">def</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: magenta; font-family: "Courier New"; font-size: 10.0pt;">Xor</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">a</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">b</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">return</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> Or</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">And</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">a</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">Not</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">b</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)),</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
And</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">Not</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">a</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">),</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> b</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">bits </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">solver </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
Solver</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">()</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">13</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> bs </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> bs</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">append</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">Bool</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"b%02d%02d"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)))</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> bits</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">append</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">bs</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">key </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[]</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">12</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> key</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">append</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">Int</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"k%d"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">))</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
init_v </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> solver</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">append</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">bits</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">][</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">])</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">else</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> solver</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">append</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">Not</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">bits</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">][</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]))</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">13</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> eq </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
False</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
enumerate</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">([</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">30</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">59</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">24</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">53</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">18</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">47</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">12</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">41</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">6</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">35</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">29</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">58</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">23</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">52</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">])</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sub_eq </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">key</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">-</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">==</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> l </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">63</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> l </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">!=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> k </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sub_eq </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
And</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">sub_eq</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> bits</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">][</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">l</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">==</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
bits</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">-</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">][</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">l</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">])</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">else</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sub_eq </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
And</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">sub_eq</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> bits</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">][</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">l</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">==</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
Not</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">bits</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">-</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">][</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">l</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]))</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sub_sub_eq </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
False</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> l </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0x621AC745FB723ED1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> l</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sub_sub_eq </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
Xor</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">sub_sub_eq</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
bits</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">][</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">l</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">])</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> sub_eq </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
And</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">sub_eq</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> bits</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">][</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">0</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">==</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
sub_sub_eq</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> eq </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> Or</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">eq</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
sub_eq</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> solver</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">append</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">eq</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> t </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
enumerate</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">tt</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> bit </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
True </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> check_v </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">else</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
False</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> eq </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
False</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> v </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> t </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> has_common_bit </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
True</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
range</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">64</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> v </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">&</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">1</span><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;"><<</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> has_common_bit </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
And</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">has_common_bit</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
bits</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">12</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">][</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">j</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">])</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> eq </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
Xor</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">eq</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">,</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
has_common_bit</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">if</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">not</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
bit </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> eq </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
Not</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">eq</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> solver</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">add</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">eq</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">solver</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">check</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">()</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">solution </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
solver</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">.</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">model</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">()</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">""</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">for</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> i </span><b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">in</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
xrange</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: red; font-family: "Courier New"; font-size: 10.0pt;">12</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">:</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">+=</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"%X"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">int</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">str</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">solution</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">key</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">[</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">i</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">]]))</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"serial
2 :"</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> r</span></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<b><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10.0pt;">print</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><span lang="EN-US" style="color: grey; font-family: "Courier New"; font-size: 10.0pt;">"(%.02f
seconds)"</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">%(</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">time</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">()</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;"> </span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">-</span></b><span lang="EN-US" style="color: black; font-family: "Courier New"; font-size: 10.0pt;">
start_time</span><b><span lang="EN-US" style="color: navy; font-family: "Courier New"; font-size: 10.0pt;">)</span></b></div>
<div align="left" class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm; text-align: left;">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 474.7pt;" valign="top" width="633"><div align="center" class="MsoNormal" style="margin-bottom: 1.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 1.0pt; page-break-after: avoid; text-align: center;">
<span lang="EN-US" style="font-size: 10.0pt;">Figure </span><span lang="EN-US" style="font-size: 10.0pt;">15</span><span lang="EN-US" style="font-size: 10.0pt;">: Complete source of the keygen (Python 2.7)</span></div>
</td>
</tr>
</tbody></table>Eloi Vanderbékenhttp://www.blogger.com/profile/10038339541691064293noreply@blogger.com5tag:blogger.com,1999:blog-3156227378489028174.post-65621295578135520172012-03-28T10:17:00.000+02:002012-03-28T13:54:00.101+02:00eZ Publish - Cross Site Scripting in URI « EzJSCORE » module<br />
<div style="border-bottom: solid black 1.0pt; border: none; mso-border-bottom-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themecolor: text1; mso-element: para-border-div; padding: 0cm 0cm 1.0pt 0cm;">
<h1>
<a href="http://www.blogger.com/blogger.g?blogID=3156227378489028174" name="_Toc319420356">1.<span style="font-size: 7pt; font-weight: normal;">
</span>Analyse de la vulnérabilité</a></h1>
</div>
<h2 style="margin-left: 0cm; text-indent: 0cm;">
<a href="http://www.blogger.com/blogger.g?blogID=3156227378489028174" name="_Toc319420357">1.1.<span style="font-size: 7pt; font-weight: normal;"> </span>Synopsis</a></h2>
<div class="MsoNormal">
<span style="font-size: 10pt;">Ce document présente une
vulnérabilité découverte dans le produit CMS « <b><span style="color: #00b050;">eZ Publish</span></b><span style="color: #00b050;"> </span>». Cette vulnérabilité est de type « Cross Site
Scripting » réfléchi et permet d’exécuter du code dans le navigateur d’un
utilisateur lorsque celui-ci est invité à consulter un lien malicieux.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<h2 style="margin-left: 0cm; text-indent: 0cm;">
<a href="http://www.blogger.com/blogger.g?blogID=3156227378489028174" name="_Toc319420358">1.2.<span style="font-size: 7pt; font-weight: normal;"> </span>Impacts</a></h2>
<div class="MsoNormal">
<span style="font-size: 10pt;">Cette vulnérabilité permet
d’exécuter du code dans le navigateur d’un utilisateur lorsque celui-ci est
invité à consulter un lien malicieux forgé par une personne malveillante. Il
est possible par exemple de récupérer son identifiant de session, ou de
rediriger l’utilisateur piégé vers un site malveillant.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<h2 style="margin-left: 0cm; text-indent: 0cm;">
<a href="http://www.blogger.com/blogger.g?blogID=3156227378489028174" name="_Toc319420359">1.3.<span style="font-size: 7pt; font-weight: normal;"> </span>Versions
affectées</a></h2>
<div class="MsoNormal">
<span style="font-size: 10pt;">« <b><span style="color: #00b050;">eZ Publish</span></b><span style="color: #00b050;"> </span>» comporte le module « <b><span style="color: #00b050;">ezjscore</span></b> » depuis la
version 4.2.0. Les versions affectées sont donc :</span></div>
<div class="MsoListParagraph" style="margin-left: 36.0pt; mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<br />
<br />
<br />
<li>eZ Publish Enterprise 4.6, </li>
<li>eZ Publish Enterprise 4.5, </li>
<li>eZ Publish Enterprise 4.4, </li>
<li>eZ Publish Enterprise 4.3, </li>
<li>eZ Publish Enterprise 4.2, </li>
<li>eZ Publish Enterprise 4.1,
</li>
<li><span style="text-indent: -18pt;">eZ Publish Community Project 2011.4</span></li>
<li>eZ Publish Community Project 2011.5</li>
<li>eZ Publish Community Project 2011.6 </li>
<li>eZ Publish Community Project 2011.7 </li>
<li>eZ Publish Community Project 2011.8 </li>
<li>eZ Publish Community Project 2011.9 </li>
<li>eZ Publish Community Project 2011.10</li>
<li>eZ Publish Community Project 2011.11</li>
<li>eZ Publish Community Project 2011.12</li>
<li>eZ Publish Community Project 2012.1</li>
<li>eZ Publish Community Project 2012.2</li>
</div>
<div class="MsoNormal">
<span style="font-size: 10pt;">Ainsi que les versions 4.0 et
4.1 d’« <b><span style="color: #00b050;">eZ Publish</span></b><span style="color: #00b050;"> </span>» où
le module « <b><span style="color: #00b050;">ezjscore</span></b><span style="color: #00b050;"> </span>»
a été manuellement installés.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<h2 style="margin-left: 0cm; text-indent: 0cm;">
<a href="http://www.blogger.com/blogger.g?blogID=3156227378489028174" name="_Toc319420360">1.4.<span style="font-size: 7pt; font-weight: normal;"> </span>Description</a></h2>
<div class="MsoNormal">
<span style="font-size: 10pt;">Pour que le site publié sous
« <b><span style="color: #00b050;">eZ Publish </span></b>»
soit vulnérable, il faut que les fichiers de configuration « module.ini »
et/ou « site.ini » comportent :<o:p></o:p></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiba2PR96QMVGKMoSZpP2Z1t9nfHdD3duhK-d87wB1_9gWMbuWQ1M5addr-2yt-KJR3r8nOLF0c3dB9kBQB9x7Dxox7lK64nTE-Fnyt2FHqHue8Atdk0aVUJicP0JJlDP6pm_G4tKG_Xb0/s1600/fig2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiba2PR96QMVGKMoSZpP2Z1t9nfHdD3duhK-d87wB1_9gWMbuWQ1M5addr-2yt-KJR3r8nOLF0c3dB9kBQB9x7Dxox7lK64nTE-Fnyt2FHqHue8Atdk0aVUJicP0JJlDP6pm_G4tKG_Xb0/s1600/fig2.png" /></a></div>
<br /></div>
<div align="center" class="MsoCaption" style="text-align: center;">
Figure 1
- site.ini<br />
<br />
<br /></div>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht8d61wVnBadEi5YAlQQXzbX3I6ZEj6teAb4SNKengzgdl6bspyYYbjQIOsvSIHhUgcoa8IcIR7CCoAX0HJCpJ7aQND3XQYBTSB1mi9vM5ACmUjVN-7PME0PQaKAmtSga0i2df_qj7mV0/s1600/fig1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht8d61wVnBadEi5YAlQQXzbX3I6ZEj6teAb4SNKengzgdl6bspyYYbjQIOsvSIHhUgcoa8IcIR7CCoAX0HJCpJ7aQND3XQYBTSB1mi9vM5ACmUjVN-7PME0PQaKAmtSga0i2df_qj7mV0/s320/fig1.png" width="320" /></a></div>
<br /></div>
<div align="center" class="MsoNormal" style="page-break-after: avoid; text-align: center;">
<v:shape id="Image_x0020_19" o:spid="_x0000_i1026" style="height: 76.5pt; mso-wrap-style: square; visibility: visible; width: 173.25pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\KAR\AppData\Local\Temp\msohtmlclip1\01\clip_image002.png">
</v:imagedata></v:shape></div>
<div align="center" class="MsoCaption" style="text-align: center;">
Figure 2
- Module.ini</div>
<div align="left" class="MsoNormal" style="line-height: 115%; margin-bottom: 10.0pt; text-align: left;">
<span style="font-size: 10pt; line-height: 115%;">Si ces prérequis sont satisfaits à savoir :<o:p></o:p></span></div>
<div class="MsoListParagraph" style="margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 36.0pt; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level1 lfo3; text-indent: -18.0pt;">
<span style="color: #be2d00; font-family: Webdings;">8<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span style="font-size: 10pt;">Activation du
module « <b><span style="color: #00b050;">ezjscore</span></b><span style="color: #00b050;"> </span>» ;<o:p></o:p></span></div>
<div class="MsoListParagraph" style="margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 36.0pt; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level1 lfo3; text-indent: -18.0pt;">
<span style="color: #be2d00; font-family: Webdings;">8<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span style="font-size: 10pt;">Autorisation
d’accès à la méthode « <b><span style="color: #00b050;">ezjscnode</span></b><span style="color: #00b050;"> </span>» ;<o:p></o:p></span></div>
<div class="MsoListParagraph" style="margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 36.0pt; margin-right: 0cm; margin-top: 0cm; mso-list: l0 level1 lfo3; text-indent: -18.0pt;">
<span style="color: #be2d00; font-family: Webdings;">8<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span style="font-size: 10pt;">Pas de traitement
des caractères spéciaux par le « template » de présentation des
erreurs type « mauvaise vue »;<o:p></o:p></span></div>
<div class="MsoListParagraph" style="margin-left: 36.0pt;">
<br /></div>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="background: #F2F2F2; border-collapse: collapse; border: none; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-insideh: none; mso-border-insidev: none; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr>
<td style="padding: 0cm 5.4pt 0cm 5.4pt; width: 488.9pt;" valign="top" width="652"><div class="MsoNormal">
<span style="font-size: 10pt;">Il est alors possible d’injecter
du code javascript dans l’URL au niveau de l’appel d’une action « <b><span style="color: #00b050;">Ezjscnode</span></b><span style="color: #00b050;"> </span>» <span style="color: #c00000;">[HELLO|CALL|RUN].
</span>Dans l’exemple qui suit, nous avons utilisé la méthode « <b><span style="color: #00b050;">ezjsc ::time</span></b><span style="color: #00b050;"> </span>», activée par défaut pour exploiter la
vulnérabilité.<o:p></o:p></span></div>
<div align="center" class="MsoNormal" style="text-align: center;">
<span style="font-family: 'Courier New'; font-size: 9pt;">http://www.monsite.fr/ezjscore/call<b><span style="color: #c00000;"><XSS></span></b>/ezjsc::time<span style="color: #c00000;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
où :</div>
<div class="MsoListParagraph" style="margin-left: 42.0pt; mso-list: l2 level1 lfo4; text-indent: -18.0pt;">
<span style="color: #be2d00; font-family: Webdings;">8<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><b><span style="color: #c00000; font-size: 10pt;"><XSS></span></b><span style="font-size: 10pt;">est le code javascript que l’on veut faire exécuter
par le client.<o:p></o:p></span></div>
<div class="MsoListParagraph" style="margin-left: 42.0pt; mso-list: l2 level1 lfo4; text-indent: -18.0pt;">
<span style="color: #be2d00; font-family: Webdings;">8<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><span style="font-size: 10pt;">Afin de pouvoir facilement injecter du code
javascript, nous allons utiliser la balise simple :<o:p></o:p></span></div>
<div class="MsoListParagraph" style="margin-left: 42.0pt;">
<span style="color: #c00000; font-size: 10pt;"><IMG SRC=lienonerror= « code javascript »
></span><span style="font-size: 10pt;">où les caractères spéciaux seront
encodes.<o:p></o:p></span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-size: 10pt;">L’URL suivante permet donc d’afficher
le cookie de l’utilisateur :<o:p></o:p></span></div>
<div class="MsoNormal">
<a href="http://monsite/ezjscore/call%3cimg%20src%3Dlien%20onerror%3Dalert(document.cookie)%3e/ezjsc:time"><span style="font-size: 10pt;">http://monsite/ezjscore/call<img%20src%3Dlien%20onerror%3Dalert(document.cookie)>/ezjsc:time</span></a><span style="font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
</div>
<u><span style="font-size: 10pt;">Exemple :<o:p></o:p></span></u></div>
<div align="center" class="MsoNormal" style="text-align: center;">
<span style="font-size: 10pt;"><v:shape id="Image_x0020_5" o:spid="_x0000_i1025" style="height: 171pt; mso-wrap-style: square; visibility: visible; width: 295.5pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\KAR\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png">
</v:imagedata></v:shape></span><span style="font-size: 10pt;"><o:p></o:p></span></div>
<div align="center" class="MsoNormal" style="page-break-after: avoid; text-align: center;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYJ28RBGdJHpHD0DE3sJ0psB0jlBdiV2VGDBWYOmTSEXMz2RwBaPyFhdOW9COf3Ol2wj0UP1k3RvBahkpDwWPmTsCrIbD1O-LmXbH9Fko70sGH5idJQqnhSrBGpUwyUr9DUl_w5haF96g/s1600/fig3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="186" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYJ28RBGdJHpHD0DE3sJ0psB0jlBdiV2VGDBWYOmTSEXMz2RwBaPyFhdOW9COf3Ol2wj0UP1k3RvBahkpDwWPmTsCrIbD1O-LmXbH9Fko70sGH5idJQqnhSrBGpUwyUr9DUl_w5haF96g/s320/fig3.png" width="320" /></a></div>
<br /></div>
<h2 style="margin-left: 0cm; text-indent: 0cm;">
<a href="http://www.blogger.com/blogger.g?blogID=3156227378489028174" name="_Toc319420361">1.5.<span style="font-size: 7pt; font-weight: normal;"> </span>Recommandation</a></h2>
<div class="MsoNormal">
<span style="font-size: 10pt;">Il est recommandé de nettoyer
les caractères spéciaux lors du traitement du type d’action <span style="color: #c00000;">[HELLO|CALL|RUN]</span> par lemodule « <b><span style="color: #00b050;">ezjscore</span></b><span style="color: #00b050;"> </span>».<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<h2 style="margin-left: 0cm; text-indent: 0cm;">
<a href="http://www.blogger.com/blogger.g?blogID=3156227378489028174" name="_Toc319420362">1.6.<span style="font-size: 7pt; font-weight: normal;"> </span>Crédits</a><a href="http://www.blogger.com/blogger.g?blogID=3156227378489028174" name="_GoBack"></a></h2>
<div class="MsoNormal">
<span style="font-size: 10pt;">Cette vulnérabilité a été
découverte par Yann MICHARD de la société OPPIDA.</span><br />
<span style="font-size: 10pt;">Cette information fait suite à l'<a href="http://share.ez.no/blogs/ez/security-advisory-promptly-patch-your-ez-publish-instances2">annonce officielle</a> de l'éditeur.</span></div>Karim Slamanihttp://www.blogger.com/profile/02600149042982347462noreply@blogger.com0tag:blogger.com,1999:blog-3156227378489028174.post-13151913276375154542012-03-26T15:00:00.000+02:002012-03-28T11:10:17.772+02:00CVE-2012-1565 - eZ Publish - Object remote full information disclosure through « EzJSCORE » module<br />
<div style="border-bottom: solid black 1.0pt; border: none; mso-border-bottom-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-bottom-themecolor: text1; mso-element: para-border-div; padding: 0cm 0cm 1.0pt 0cm;">
<h1>
<a href="http://www.blogger.com/blogger.g?blogID=3156227378489028174" name="_Toc318659398">1.<span style="font-size: 7pt; font-weight: normal;">
</span>Analyse de la vulnérabilité</a></h1>
</div>
<h2 style="margin-left: 0cm; text-indent: 0cm;">
<a href="http://www.blogger.com/blogger.g?blogID=3156227378489028174" name="_Toc318659399">1.1.<span style="font-size: 7pt; font-weight: normal;"> </span>Synopsis</a></h2>
<div class="MsoNormal">
<span style="font-size: 10pt;">Ce document présente une
vulnérabilité découverte dans le produit CMS « <b><span style="color: #00b050;">eZ Publish</span></b><span style="color: #00b050;"> </span>». Cette vulnérabilité permet avec un simple
navigateur d’accéder à l’ensemble des informations concernant un objet « <b><span style="color: #00b050;">eZ Publish</span></b><span style="color: #00b050;"> </span>» dont :<o:p></o:p></span></div>
<div class="MsoListParagraph" style="margin-left: 36.0pt; mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<span style="color: #be2d00; font-family: Webdings;">8<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><span style="font-size: 10pt;">Les comptes utilisateurs (nom, prénom, login, email,
empreinte du mot de passe et type d’empreinte) lorsque la méthode « <b><span style="color: #00b050;">ezjsnode</span></b><span style="color: #00b050;"> </span>» du module « <b><span style="color: #00b050;">ezjscore</span></b><span style="color: #00b050;"> </span>»
est activée au niveau de la configuration du produit « <b><span style="color: #00b050;">eZ Publish</span></b> ».<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-size: 10pt;">Par défaut, la méthode
« <b><span style="color: #00b050;">ezjsnode</span></b><span style="color: #00b050;"> </span>» est activée au niveau du fichier de
configuration « ezjscore.ini ». En général, le module « <b><span style="color: #00b050;">ezjscore</span></b><span style="color: #00b050;"> </span>» est activé au niveau « <b><span style="color: #00b050;">eZ Publish</span></b><span style="color: #00b050;"> </span>».<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<h2 style="margin-left: 0cm; text-indent: 0cm;">
<a href="http://www.blogger.com/blogger.g?blogID=3156227378489028174" name="_Toc318659400">1.2.<span style="font-size: 7pt; font-weight: normal;"> </span>Impacts</a></h2>
<div class="MsoNormal">
<span style="font-size: 10pt;">Toutes les données de la base
de données peuvent être récupérées sans authentification via un simple
navigateur et via l’accès au site internet utilisant le produit « <b><span style="color: #00b050;">eZ Publish</span></b><span style="color: #00b050;"> </span>».<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<h2 style="margin-left: 0cm; text-indent: 0cm;">
<a href="http://www.blogger.com/blogger.g?blogID=3156227378489028174" name="_Toc318659401">1.3.<span style="font-size: 7pt; font-weight: normal;"> </span>Versions
affectées</a></h2>
<div class="MsoNormal">
<br />
<div class="MsoNormal">
<span style="font-size: 10pt;">« <b><span style="color: #00b050;">eZ Publish</span></b><span style="color: #00b050;"> </span>» comporte le module « <b><span style="color: #00b050;">ezjscore</span></b> » depuis la version 4.2.0. Les versions affectées sont donc :</span></div>
<div class="MsoListParagraph" style="margin-left: 36pt; text-indent: -18pt;">
<br />
<br />
<br />
<li>eZ Publish Enterprise 4.6, </li>
<li>eZ Publish Enterprise 4.5, </li>
<li>eZ Publish Enterprise 4.4, </li>
<li>eZ Publish Enterprise 4.3, </li>
<li>eZ Publish Enterprise 4.2, </li>
<li>eZ Publish Enterprise 4.1,</li>
<li><span style="text-indent: -18pt;">eZ Publish Community Project 2011.4</span></li>
<li>eZ Publish Community Project 2011.5</li>
<li>eZ Publish Community Project 2011.6 </li>
<li>eZ Publish Community Project 2011.7 </li>
<li>eZ Publish Community Project 2011.8 </li>
<li>eZ Publish Community Project 2011.9 </li>
<li>eZ Publish Community Project 2011.10</li>
<li>eZ Publish Community Project 2011.11</li>
<li>eZ Publish Community Project 2011.12</li>
<li>eZ Publish Community Project 2012.1</li>
<li>eZ Publish Community Project 2012.2</li>
</div>
<div class="MsoNormal">
<span style="font-size: 10pt;">Ainsi que les versions 4.0 et 4.1 d’« <b><span style="color: #00b050;">eZ Publish</span></b><span style="color: #00b050;"> </span>» où le module « <b><span style="color: #00b050;">ezjscore</span></b><span style="color: #00b050;"> </span>» a été manuellement installés.</span></div>
</div>
<h2 style="margin-left: 0cm; text-indent: 0cm;">
<a href="http://www.blogger.com/blogger.g?blogID=3156227378489028174" name="_Toc318659402">1.4.<span style="font-size: 7pt; font-weight: normal;"> </span>Description</a></h2>
<div class="MsoNormal">
<span style="font-size: 10pt;">A la lecture du fichier de
configuration « ezjscore.ini », il apparait que la méthode « <b><span style="color: #00b050;">ezjscnode</span></b><span style="color: #00b050;"> </span>» est autorisée par défaut :</span></div>
<div class="MsoNormal">
<span style="font-size: 10pt;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo407llX9Vm35_JbDTL6jX7ZeQ0GcJHFMj4P9V819b_jAcXgO_c9U-aPpyTlNr1g9s1lHh9UI94v0yYmaEZJ5DGdEkV_Pso_BKECaJAQ2kMrC0eWfuEoNI8-lEU6JaqiGssLKEvyjCP3E/s1600/fig1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="188" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo407llX9Vm35_JbDTL6jX7ZeQ0GcJHFMj4P9V819b_jAcXgO_c9U-aPpyTlNr1g9s1lHh9UI94v0yYmaEZJ5DGdEkV_Pso_BKECaJAQ2kMrC0eWfuEoNI8-lEU6JaqiGssLKEvyjCP3E/s320/fig1.png" width="320" /></a></div>
<div class="MsoNormal">
<span style="font-size: 10pt;"><br /></span></div>
<div align="center" class="MsoNormal" style="page-break-after: avoid; text-align: center;">
<v:shapetype coordsize="21600,21600" filled="f" id="_x0000_t75" o:preferrelative="t" o:spt="75" path="m@4@5l@4@11@9@11@9@5xe" stroked="f">
<v:stroke joinstyle="miter">
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0">
<v:f eqn="sum @0 1 0">
<v:f eqn="sum 0 0 @1">
<v:f eqn="prod @2 1 2">
<v:f eqn="prod @3 21600 pixelWidth">
<v:f eqn="prod @3 21600 pixelHeight">
<v:f eqn="sum @0 0 1">
<v:f eqn="prod @6 1 2">
<v:f eqn="prod @7 21600 pixelWidth">
<v:f eqn="sum @8 21600 0">
<v:f eqn="prod @7 21600 pixelHeight">
<v:f eqn="sum @10 21600 0">
</v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:formulas>
<v:path gradientshapeok="t" o:connecttype="rect" o:extrusionok="f">
<o:lock aspectratio="t" v:ext="edit">
</o:lock></v:path></v:stroke></v:shapetype><v:shape id="Image_x0020_17" o:spid="_x0000_i1029" style="height: 172.5pt; mso-wrap-style: square; visibility: visible; width: 292.5pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\KAR\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png">
</v:imagedata></v:shape></div>
<div align="center" class="MsoCaption" style="text-align: center;">
Figure 1 - ezjscore.ini</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-size: 10pt;">Pour que le site publié sous
« <b><span style="color: #00b050;">eZ Publish </span></b>»
soit vulnérable, il faut que les fichiers de configuration « module.ini »
et/ou « site.ini » comportent :<o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH2yznwSbXUnRkzvRvvbC7P_EzeqskP8GDLBha19N8nr7-m86QPINhtVrJJGfuE0lBQBm1bqEEM6s8YQd57L7m79IrondVsFtjMu9EQ5390I4plu3lMA_w3Gm6gYwTWZ3yZCQzP4zcHbA/s1600/fig2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgH2yznwSbXUnRkzvRvvbC7P_EzeqskP8GDLBha19N8nr7-m86QPINhtVrJJGfuE0lBQBm1bqEEM6s8YQd57L7m79IrondVsFtjMu9EQ5390I4plu3lMA_w3Gm6gYwTWZ3yZCQzP4zcHbA/s320/fig2.png" width="320" /></a></div>
<div class="MsoNormal">
<br /></div>
<div align="center" class="MsoNormal" style="page-break-after: avoid; text-align: center;">
<v:shape id="Image_x0020_18" o:spid="_x0000_i1028" style="height: 354.75pt; mso-wrap-style: square; visibility: visible; width: 405pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\KAR\AppData\Local\Temp\msohtmlclip1\01\clip_image002.png">
</v:imagedata></v:shape></div>
<div align="center" class="MsoCaption" style="text-align: center;">
Figure 2 - site.ini</div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmxAK2ab8LWoSLyvMHNw0sIkZYtaFBBN65jb5-yB1w8OUVTk0N7DwYqU0_AfcvUH7bMZTaluk4ItQLvucxwpnDWROLfYx4cAK2121GloxhsebG0NHW_-fTtjl3pqXpOs1PIjzWNWHGDT4/s1600/fig3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="142" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmxAK2ab8LWoSLyvMHNw0sIkZYtaFBBN65jb5-yB1w8OUVTk0N7DwYqU0_AfcvUH7bMZTaluk4ItQLvucxwpnDWROLfYx4cAK2121GloxhsebG0NHW_-fTtjl3pqXpOs1PIjzWNWHGDT4/s320/fig3.png" width="320" /></a></div>
<div class="MsoNormal">
<o:p><br /></o:p></div>
<div align="center" class="MsoNormal" style="page-break-after: avoid; text-align: center;">
<v:shape id="Image_x0020_19" o:spid="_x0000_i1027" style="height: 107.25pt; mso-wrap-style: square; visibility: visible; width: 242.25pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\KAR\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png">
</v:imagedata></v:shape></div>
<div align="center" class="MsoCaption" style="text-align: center;">
Figure 3 - Module.ini</div>
<div class="MsoNormal">
<br /></div>
<span style="font-family: 'Times New Roman', serif; font-size: 10pt; line-height: 115%;"><br clear="all" style="mso-special-character: line-break; page-break-before: always;" />
</span>
<br />
<div align="left" class="MsoNormal" style="line-height: 115%; margin-bottom: 10.0pt; text-align: left;">
<br /></div>
<div class="MsoNormal">
<span style="font-size: 10pt;">Si ces deux prérequis sont
satisfaits à savoir :<o:p></o:p></span></div>
<div class="MsoListParagraph" style="margin-left: 36.0pt; mso-list: l0 level1 lfo4; text-indent: -18.0pt;">
<span style="color: #be2d00; font-family: Webdings;">8<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><span style="font-size: 10pt;">Activation du module « <b><span style="color: #00b050;">ezjscore</span></b><span style="color: #00b050;"> </span>» ;<o:p></o:p></span></div>
<div class="MsoListParagraph" style="margin-left: 36.0pt; mso-list: l0 level1 lfo4; text-indent: -18.0pt;">
<span style="color: #be2d00; font-family: Webdings;">8<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><span style="font-size: 10pt;">Autorisation d’accès à la méthode « <b><span style="color: #00b050;">ezjscnode</span></b><span style="color: #00b050;"> </span>» ;<o:p></o:p></span></div>
<table border="0" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="background: #F2F2F2; border-collapse: collapse; border: none; mso-background-themecolor: background1; mso-background-themeshade: 242; mso-border-insideh: none; mso-border-insidev: none; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr>
<td style="padding: 0cm 5.4pt 0cm 5.4pt; width: 488.9pt;" valign="top" width="652"><div class="MsoNormal">
<span style="font-size: 10pt;">Il est alors possible
d’accéder aux informations des objets de la base de données d’ «<b><span style="color: #00b050;">eZ Publish</span></b><span style="color: #00b050;"> </span>» par son ID via la construction d’une URL
faisant appel à la fonction « <b><span style="color: #00b050;">load</span></b><span style="color: #00b050;"> </span>»
d’ « <b><span style="color: #00b050;">ezjscnode</span></b><span style="color: #00b050;"> </span>» de
type :<o:p></o:p></span></div>
<div align="center" class="MsoNormal" style="text-align: center;">
<span style="font-family: 'Courier New'; font-size: 9pt;">http://www.monsite.fr/ezjscore/call/ezjscnode::load::<b><span style="color: #c00000;">[ID]</span></b>::all?ContentType=<b><span style="color: #c00000;">[xml|json]</span></b><span style="color: #c00000;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
où :</div>
<div class="MsoListParagraph" style="margin-left: 42.0pt; mso-list: l4 level1 lfo5; text-indent: -18.0pt;">
<span style="color: #be2d00; font-family: Webdings;">8<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><b><span style="color: #c00000; font-size: 10pt;">[ID]</span></b><span style="font-size: 10pt;">est l’ID de l’objet à récupérer ;<o:p></o:p></span></div>
<div class="MsoListParagraph" style="margin-left: 42.0pt; mso-list: l4 level1 lfo5; text-indent: -18.0pt;">
<span style="color: #be2d00; font-family: Webdings;">8<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><b><span style="color: #c00000; font-size: 10pt;">[xml|json]</span></b><span style="font-size: 10pt;">l’affichage résultant si ces formats sont autorisés.<o:p></o:p></span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal">
<br /></div>
<h2 style="margin-left: 0cm; text-indent: 0cm;">
<a href="http://www.blogger.com/blogger.g?blogID=3156227378489028174" name="_Toc318659403">1.5.<span style="font-size: 7pt; font-weight: normal;"> </span>Preuve
- récupération du compte
« administrateur » du site ez.no</a></h2>
<div class="MsoNormal">
<span style="font-size: 10pt;">L’URL suivante permet de
récupérer toutes les informations à propos du compte
« administrateur » (ID=15) : <o:p></o:p></span></div>
<div align="center" class="MsoNormal" style="text-align: center;">
<a href="http://ez.no/ezjscore/call/ezjscnode::load::15::all?ContentType=xml"><span style="font-size: 10pt;">http://ez.no/ezjscore/call/ezjscnode::load::15::all?ContentType=xml</span></a><span style="font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2wGpRKaUpC3bMAfDyGmMCfY0Od9Ki9W5lNHyp0ovQhfSuolfsCGCF7mk5WPJs9IlJj1iMmhwCXHKFbc-bWyABm4Bg7jHtbYJatHwX6hS2qm6ECXE8nu4fozsOS84jNQYKOYLbhzvz1ZM/s1600/fig4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2wGpRKaUpC3bMAfDyGmMCfY0Od9Ki9W5lNHyp0ovQhfSuolfsCGCF7mk5WPJs9IlJj1iMmhwCXHKFbc-bWyABm4Bg7jHtbYJatHwX6hS2qm6ECXE8nu4fozsOS84jNQYKOYLbhzvz1ZM/s320/fig4.png" width="320" /></a></div>
<div class="MsoNormal">
<span style="font-size: 10pt;"><o:p><br /></o:p></span></div>
<div align="center" class="MsoNormal" style="page-break-after: avoid; text-align: center;">
<v:shape id="Image_x0020_20" o:spid="_x0000_i1026" style="height: 311.25pt; mso-wrap-style: square; visibility: visible; width: 380.25pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\KAR\AppData\Local\Temp\msohtmlclip1\01\clip_image004.png">
</v:imagedata></v:shape></div>
<div align="center" class="MsoCaption" style="text-align: center;">
Figure 4 - Récupération du compte
administrateur ID=15</div>
<div class="MsoNormal">
<span style="font-size: 10pt;">Nous récupérons en
particulier d’après le code explicitant le contenu « <b><span style="color: #00b050;">user_account</span></b><span style="color: #00b050;"> </span>» contenu dans le fichier « <b><span style="color: #00b050;">ezusertype.php</span></b><span style="color: #00b050;"> </span>»:<o:p></o:p></span></div>
<div class="MsoListParagraph" style="margin-left: 36.0pt; mso-list: l2 level1 lfo6; text-indent: -18.0pt;">
<span style="color: #be2d00; font-family: Webdings;">8<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><span style="font-size: 10pt;">Le login ;<o:p></o:p></span></div>
<div class="MsoListParagraph" style="margin-left: 36.0pt; mso-list: l2 level1 lfo6; text-indent: -18.0pt;">
<span style="color: #be2d00; font-family: Webdings;">8<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><span style="font-size: 10pt;">L’email ;<o:p></o:p></span></div>
<div class="MsoListParagraph" style="margin-left: 36.0pt; mso-list: l2 level1 lfo6; text-indent: -18.0pt;">
<span style="color: #be2d00; font-family: Webdings;">8<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><span style="font-size: 10pt;">L’empreinte MD5 du mot de passe ;<o:p></o:p></span></div>
<div class="MsoListParagraph" style="margin-left: 36.0pt; mso-list: l2 level1 lfo6; text-indent: -18.0pt;">
<span style="color: #be2d00; font-family: Webdings;">8<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><span style="font-size: 10pt;">Le type d’empreinte utilisée (user, site, password,
plain, …)<o:p></o:p></span></div>
<div class="MsoListParagraph" style="margin-left: 36.0pt; mso-list: l2 level1 lfo6; text-indent: -18.0pt;">
<span style="font-size: 10pt;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbFrmrhyphenhyphenDlAV983VK8lMJxMxzaIW-bKHeWBu_ky9pIz66KiUDGIo1edB7-g2FaSQXP6HrX5HTvIeGpv6-mqM3R2KX_b5zR11GU2uGj9cqfJt4Xg_HsFOWImnnGdLuxmFcjJZAH5heRpiI/s1600/fig5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="93" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbFrmrhyphenhyphenDlAV983VK8lMJxMxzaIW-bKHeWBu_ky9pIz66KiUDGIo1edB7-g2FaSQXP6HrX5HTvIeGpv6-mqM3R2KX_b5zR11GU2uGj9cqfJt4Xg_HsFOWImnnGdLuxmFcjJZAH5heRpiI/s320/fig5.png" width="320" /></a></div>
<div class="MsoListParagraph" style="margin-left: 36.0pt; mso-list: l2 level1 lfo6; text-indent: -18.0pt;">
<span style="font-size: 10pt;"><br /></span></div>
<div class="MsoListParagraph" style="margin-left: 36.0pt;">
<v:shape id="Image_x0020_21" o:spid="_x0000_i1025" style="height: 112.5pt; mso-wrap-style: square; visibility: visible; width: 393pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\KAR\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png">
</v:imagedata></v:shape><span style="font-size: 10pt;"><o:p></o:p></span></div>
<div align="center" class="MsoCaption" style="text-align: center;">
Figure 5
- Informations sur le compte</div>
<div class="MsoListParagraph" style="margin-left: 36.0pt;">
<br /></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<b><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: blue; font-family: 'Courier New'; font-size: 8pt;">function</span></b><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">toString</span><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$contentObjectAttribute</span><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">)</span><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">{</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$userID</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">=</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$contentObjectAttribute</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">-></span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">attribute</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: grey; font-family: 'Courier New'; font-size: 8pt;">"contentobject_id"</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">);</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: blue; font-family: 'Courier New'; font-size: 8pt;">if</span></b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: blue; font-family: 'Courier New'; font-size: 8pt;">empty</span></b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$GLOBALS</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">[</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: grey; font-family: 'Courier New'; font-size: 8pt;">'eZUserObject_'</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">.</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$userID</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">]))</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">{</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$GLOBALS</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">[</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: grey; font-family: 'Courier New'; font-size: 8pt;">'eZUserObject_'</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">.</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$userID</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">]=</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">eZUser</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">::</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">fetch</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$userID</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">);</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">}</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$user</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">=</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$GLOBALS</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">[</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: grey; font-family: 'Courier New'; font-size: 8pt;">'eZUserObject_'</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">.</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$userID</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">];</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$userInfo</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">=</span><b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: blue; font-family: 'Courier New'; font-size: 8pt;">array</span></b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$user</span><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">-></span><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">attribute</span><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: grey; font-family: 'Courier New'; font-size: 8pt;">'login'</span><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">),</span><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$user</span><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">-></span><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">attribute</span><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: grey; font-family: 'Courier New'; font-size: 8pt;">'email'</span><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">),</span><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$user</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">-></span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">attribute</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: grey; font-family: 'Courier New'; font-size: 8pt;">'password_hash'</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">),</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">eZUser</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">::</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">passwordHashTypeName</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$user</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">-></span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">attribute</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: grey; font-family: 'Courier New'; font-size: 8pt;">'password_hash_type'</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">)),</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: blue; font-family: 'Courier New'; font-size: 8pt;">int</span></b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">)</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$user</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">-></span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">isEnabled</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">()</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">);</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: blue; font-family: 'Courier New'; font-size: 8pt;">return</span></b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"> implode</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: grey; font-family: 'Courier New'; font-size: 8pt;">'|'</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">,</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$userInfo</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">);</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">}</span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div align="center" class="MsoNormal" style="page-break-after: avoid; text-align: center;">
<br /></div>
<div class="MsoNormal">
<span style="font-size: 10pt;">Tous les comptes utilisateurs
peuvent en théorie être récupérés de la même façon. Il est alors possible
d’effectuer des attaques hors ligne sur les mots de passe. Le fichier « <b><span style="color: #00b050;">ezuser.php</span></b><span style="color: #00b050;"> </span>» explique comment sont effectués les
calculs des empreintes selon le type :<o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: blue; font-family: 'Courier New'; font-size: 8pt;">staticfunction</span></b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">createHash</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$user</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">,</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$password</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">,</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$site</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">,</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$type</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">,</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$hash</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">=</span><b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: blue; font-family: 'Courier New'; font-size: 8pt;">false</span></b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">)</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">{</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$str</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">=</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: grey; font-family: 'Courier New'; font-size: 8pt;">''</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">;</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: blue; font-family: 'Courier New'; font-size: 8pt;">if</span></b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$type</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">==</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"> self</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">::</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">PASSWORD_HASH_MD5_USER </span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">)</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">{</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$str</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">=</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">md5</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: grey; font-family: 'Courier New'; font-size: 8pt;">"<b>$user</b>\n<b>$password</b>"</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">);</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">}</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: blue; font-family: 'Courier New'; font-size: 8pt;">elseif</span></b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$type</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">==</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"> self</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">::</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">PASSWORD_HASH_MD5_SITE </span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">)</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">{</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$str</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">=</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">md5</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: grey; font-family: 'Courier New'; font-size: 8pt;">"<b>$user</b>\n<b>$password</b>\n<b>$site</b>"</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">);</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">}</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: blue; font-family: 'Courier New'; font-size: 8pt;">elseif</span></b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$type</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">==</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"> self</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">::</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">PASSWORD_HASH_MYSQL </span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">)</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">{</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$db</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">=</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">eZDB</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">::</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">instance</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">();</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$hash</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">=</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$db</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">-></span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">escapeString</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$password</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">);</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<br /></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$str</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">=</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$db</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">-></span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">arrayQuery</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: grey; font-family: 'Courier New'; font-size: 8pt;">"SELECT PASSWORD( '<b>$hash</b>' )"</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">);</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$hashes</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">=</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">array_values</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$str</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">[</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #ff8000; font-family: 'Courier New'; font-size: 8pt;">0</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">]);</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$str</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">=</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$hashes</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">[</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #ff8000; font-family: 'Courier New'; font-size: 8pt;">0</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">];</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">}</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: blue; font-family: 'Courier New'; font-size: 8pt;">elseif</span></b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$type</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">==</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"> self</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">::</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">PASSWORD_HASH_PLAINTEXT </span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">)</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">{</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$str</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">=</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$password</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">;</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">}</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: blue; font-family: 'Courier New'; font-size: 8pt;">elseif</span></b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$type</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">==</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"> self</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">::</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">PASSWORD_HASH_CRYPT </span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">)</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">{</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: blue; font-family: 'Courier New'; font-size: 8pt;">if</span></b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$hash</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">)</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">{</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$str</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">=</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">crypt</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$password</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">,</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$hash</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">);</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">}</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: blue; font-family: 'Courier New'; font-size: 8pt;">else</span></b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">{</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$str</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">=</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">crypt</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$password</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">);</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">}</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">}</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: blue; font-family: 'Courier New'; font-size: 8pt;">else</span></b><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: green; font-family: 'Courier New'; font-size: 8pt;">// self::PASSWORD_HASH_MD5_PASSWORD</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">{</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$str</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">=</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">md5</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$password</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">);</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">}</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">eZDebugSetting</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">::</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;">writeDebug</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">(</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: grey; font-family: 'Courier New'; font-size: 8pt;">'kernel-user'</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">,</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$str</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">,</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: grey; font-family: 'Courier New'; font-size: 8pt;">"ezuser(<b>$type</b>)"</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">);</span><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<b><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: blue; font-family: 'Courier New'; font-size: 8pt;">return</span></b><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: navy; font-family: 'Courier New'; font-size: 8pt;">$str</span><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">;</span><span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; margin-bottom: .0001pt; margin-bottom: 0cm;">
<span style="background-attachment: initial; background-clip: initial; background-color: #fefcf5; background-image: initial; background-origin: initial; color: #8000ff; font-family: 'Courier New'; font-size: 8pt;">}</span><span style="font-family: 'Courier New'; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraph" style="margin-left: 36.0pt; mso-list: l6 level1 lfo7; text-indent: -18.0pt;">
<span style="color: #be2d00; font-family: Webdings;">8<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><span style="font-size: 10pt;">MD5_user : </span><b><span lang="EN-US" style="color: #00b050; font-size: 10pt;">md5( "$user\n$password" );</span></b><span style="font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoListParagraph" style="margin-left: 36.0pt; mso-list: l6 level1 lfo7; text-indent: -18.0pt;">
<span style="color: #be2d00; font-family: Webdings;">8<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><span style="font-size: 10pt;">MD5_site : </span><b><span lang="EN-US" style="color: #00b050; font-size: 10pt;">md5( "$user\n$password\n$site"</span></b><span style="font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoListParagraph" style="margin-left: 36.0pt; mso-list: l6 level1 lfo7; text-indent: -18.0pt;">
<span style="color: #be2d00; font-family: Webdings;">8<span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><span style="font-size: 10pt;">MD5_password :</span><b><span lang="EN-US" style="color: #00b050; font-size: 10pt;">md5( $password );</span></b><span style="font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-size: 10pt;">La variable « <b><span style="color: #00b050;">$site</span></b><span style="color: #00b050;"> </span>» est définie dans le fichier de
configuration « <b><span style="color: #00b050;">site.ini</span></b><span style="color: #00b050;"> </span>».<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<h2 style="margin-left: 0cm; text-indent: 0cm;">
<a href="http://www.blogger.com/blogger.g?blogID=3156227378489028174" name="_Toc318659404">1.6.<span style="font-size: 7pt; font-weight: normal;"> </span>Quelques
statistiques</a></h2>
<div class="MsoNormal">
<span style="font-size: 10pt;">Ce CMS est utilisé par de très nombreux sites et à travers le monde entier. Plus de 250.000 sites s'appuient à ce jour sur eZ Publish et peuvent potentiellement être impactés par cette vulnérabilités.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<h2 style="margin-left: 0cm; text-indent: 0cm;">
<a href="http://www.blogger.com/blogger.g?blogID=3156227378489028174" name="_Toc318659405">1.7.<span style="font-size: 7pt; font-weight: normal;"> </span>Recommandation</a></h2>
<div class="MsoNormal">
<span style="font-size: 10pt;">Il est hautement recommandé
de désactiver la méthode « <b><span style="color: #00b050;">ezjscnode</span></b><span style="color: #00b050;"> </span>»
via le fichier de configuration « <b><span style="color: #00b050;">ezjscore.ini</span></b><span style="color: #00b050;"> </span>».<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<h2 style="margin-left: 0cm; text-indent: 0cm;">
<a href="http://www.blogger.com/blogger.g?blogID=3156227378489028174" name="_Toc318659406">1.8.<span style="font-size: 7pt; font-weight: normal;"> </span>Crédits</a></h2>
<div class="MsoNormal">
<span style="font-size: 10pt;">Cette vulnérabilité a été
découverte par Yann MICHARD de la société OPPIDA.<o:p></o:p></span><br />
<span style="font-size: 10pt;">Cette information fait suite à l'<a href="http://share.ez.no/blogs/ez/security-advisory-promptly-patch-your-ez-publish-instances2">annonce officielle</a> de l'éditeur.
</span></div>Karim Slamanihttp://www.blogger.com/profile/02600149042982347462noreply@blogger.com0Paris, France48.856614 2.352221948.773036 2.1942934 48.940192 2.5101504