<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4926735770070291800</id><updated>2025-05-02T13:08:44.316-03:00</updated><category term="programming"/><category term="C#"/><category term="computer engineering bachelor&#39;s degree"/><category term="software"/><category term="ASP.NET MVC"/><category term="Visual Studio"/><category term="Mac OS"/><category term="batch processing"/><category term="file"/><category term="JavaScript"/><category term="algorithms"/><category term="database"/><category term="spreadsheet"/><category term="MP3"/><category term="Microsoft"/><category term="Regex"/><category term="job"/><category term="music"/><category term="society"/><category term="technology"/><category term=".NET Framework"/><category term="NPOI"/><category term="ASP.NET"/><category term="Chemtech"/><category term="Mac"/><category term="data"/><category term="development"/><category term="HTML"/><category term="Java"/><category term="LINQ"/><category term="Windows"/><category term="artificial intelligence"/><category term="data structures"/><category term="jQuery"/><category term="metadata"/><category term="tools"/><category term="C"/><category term="C++"/><category term="CSS"/><category term="English"/><category term="Mp3tag"/><category term="StackOverflow"/><category term="automation"/><category term="software engineering"/><category term="translation"/><category term="Apple"/><category term="Apps"/><category term="Blogger"/><category term="DFA"/><category term="Excel"/><category term="Google Docs"/><category term="NFA"/><category term="Portuguese"/><category term="SQL Server"/><category term="XLS"/><category term="XML"/><category term="counting"/><category term="export"/><category term="iPhone"/><category term="import"/><category term="internet"/><category term="masters degree"/><category term="repository"/><category term="revision control"/><category term="tag"/><category term="tasks"/><category term=".NET"/><category term="A*"/><category term="AJAX"/><category term="Applications"/><category term="Castle Project"/><category term="Finite State Machine"/><category term="Google"/><category term="Haversine"/><category term="Hudson"/><category term="MSBuild"/><category term="Microsoft Excel"/><category term="Parallels Desktop"/><category term="PowerShell"/><category term="Razor"/><category term="SQL"/><category term="SSMS"/><category term="UI"/><category term="Windows 7"/><category term="XLSX"/><category term="academic"/><category term="compilers construction"/><category term="continuous integration"/><category term="delete"/><category term="function"/><category term="immutable data structures"/><category term="job interview"/><category term="list"/><category term="paper"/><category term="parallel programming"/><category term="priority queue"/><category term="script"/><category term="svn"/><category term="tips and tricks"/><category term="value frequency"/><category term="virtual machine"/><category term="web application"/><category term=".NET Core"/><category term="Apache"/><category term="Automator"/><category term="CountIf"/><category term="Datepicker"/><category term="Eclipse"/><category term="Excel 2007"/><category term="F#"/><category term="Git"/><category term="GitHub"/><category term="Google Maps"/><category term="IIS"/><category term="IoC"/><category term="Liferay"/><category term="MVC"/><category term="NHibernate"/><category term="NuGet"/><category term="Open Source"/><category term="Oracle"/><category term="Power BI"/><category term="TortoiseSVN"/><category term="UFRJ"/><category term="URL"/><category term="VisualSVN Server"/><category term="Windows 8"/><category term="Windsor"/><category term="Xcode"/><category term="attribute"/><category term="authentication"/><category term="backup"/><category term="batch file"/><category term="buy"/><category term="character set"/><category term="chemsite"/><category term="code snippet"/><category term="computer graphics"/><category term="copyright"/><category term="dependency"/><category term="download"/><category term="embedded"/><category term="error"/><category term="filter"/><category term="fitness center"/><category term="folder"/><category term="geocoder"/><category term="hardware"/><category term="health"/><category term="iOS"/><category term="iTunes"/><category term="image"/><category term="injection"/><category term="input"/><category term="installation"/><category term="jQuery UI"/><category term="language"/><category term="learning"/><category term="lifestyle"/><category term="management system"/><category term="oi"/><category term="package"/><category term="parameter"/><category term="parser"/><category term="performance"/><category term="photos"/><category term="profile"/><category term="project"/><category term="publish"/><category term="query language"/><category term="queue"/><category term="row"/><category term="scan"/><category term="screen capture"/><category term="screenshot"/><category term="source code"/><category term="state transition diagram"/><category term="template"/><category term="thread safety"/><category term="upload"/><category term="user"/><category term="validation"/><category term="webservice"/><category term="website"/><category term="workbook"/><category term="AD"/><category term="API"/><category term="ASP.NET Chart"/><category term="ASP.NET Core"/><category term="ASP.NET Web API"/><category term="AutoFac"/><category term="Azure"/><category term="B2C"/><category term="BBCode"/><category term="BSC"/><category term="Babylon"/><category term="Baldis"/><category term="Bergamini"/><category term="Bergamo"/><category term="BibTex"/><category term="Bocchi"/><category term="Bootstrap"/><category term="Brazil"/><category term="COM automation"/><category term="CPM"/><category term="CRM"/><category term="CSCW"/><category term="CSV"/><category term="Cantamessa"/><category term="Cattaneo"/><category term="Cirelli"/><category term="Colombo"/><category term="Compliments"/><category term="DAX"/><category term="DLL"/><category term="DOCX"/><category term="DOI"/><category term="Date"/><category term="Dev-C++"/><category term="Dispose"/><category term="Docker"/><category term="Dotti"/><category term="ERP"/><category term="Excel 2003"/><category term="Excel Web App"/><category term="Excel chart"/><category term="Excel table"/><category term="ExcelPackage"/><category term="Exception"/><category term="Exif"/><category term="Falci"/><category term="Firefox"/><category term="FluentMail"/><category term="Font-Awesome"/><category term="Foolproof"/><category term="GPS"/><category term="Get Lyrical"/><category term="Git Gui"/><category term="Git bash"/><category term="Google Analytics"/><category term="Google App Engine"/><category term="Google Data API"/><category term="Google Drive"/><category term="Google Spreadsheet API"/><category term="Google Translator Toolkit"/><category term="HPC"/><category term="HQL"/><category term="HttpContext"/><category term="HttpResponseMessage"/><category term="IBM"/><category term="ID3"/><category term="IDP"/><category term="IIS 8"/><category term="IIS Express"/><category term="IOptions"/><category term="IP"/><category term="IT Vizion"/><category term="IndX"/><category term="Indie"/><category term="IndieRockCafe"/><category term="Italia"/><category term="JSON"/><category term="L10n"/><category term="LIMS"/><category term="Last.fm"/><category term="LinkedIn"/><category term="LocalDB"/><category term="Localization"/><category term="Locatelli"/><category term="Luiselli"/><category term="Lyricator"/><category term="MES"/><category term="MPI"/><category term="MVP"/><category term="Mac OS 10.6.7"/><category term="Mac mini"/><category term="Macaferi"/><category term="Maccaferri"/><category term="Magic mouse"/><category term="MediaMonkey"/><category term="MiniLyrics"/><category term="Model-View-Presenter"/><category term="Modena"/><category term="Mouse"/><category term="MsDeploy"/><category term="NHibernate Query Analyzer"/><category term="Ninject"/><category term="NoSQL"/><category term="OLPC"/><category term="OOXML"/><category term="Objective-C"/><category term="OpenGL"/><category term="PHP"/><category term="PIMS"/><category term="PLINQ"/><category term="PUC-Rio"/><category term="Paparazzi"/><category term="Petrobras"/><category term="PlayStation"/><category term="ProZ"/><category term="Publish Web"/><category term="RAM"/><category term="RavenDB"/><category term="ReactJS"/><category term="ResourceManager"/><category term="Right"/><category term="Rock"/><category term="RtPM"/><category term="SCM"/><category term="SPA"/><category term="San Felice"/><category term="Scala"/><category term="Siemens"/><category term="SignalR"/><category term="Skype"/><category term="Snow Leopard"/><category term="Spark"/><category term="Springer Link"/><category term="StreamContent"/><category term="Sublime Text"/><category term="Swagger"/><category term="T4"/><category term="Tabular Editor"/><category term="Task Scheduler"/><category term="Tomcat"/><category term="Transformations"/><category term="Validation Summary"/><category term="Valtesse"/><category term="Viscardi"/><category term="Web.config"/><category term="WebGrid"/><category term="Win32 API"/><category term="WinRAR"/><category term="Windows Authentication"/><category term="Windows Service"/><category term="Word"/><category term="Word 2007"/><category term="XHQ"/><category term="XSLT"/><category term="XSSFWorkbook"/><category term="XWPFDocument"/><category term="Zotero"/><category term="alarm"/><category term="alignment"/><category term="alphabet"/><category term="anniversary"/><category term="answers"/><category term="architectural pattern"/><category term="array"/><category term="asynchronous"/><category term="authorization"/><category term="badge"/><category term="bar"/><category term="batch renaming"/><category term="battery life"/><category term="bibliography"/><category term="big data"/><category term="binary search"/><category term="bitwise operators"/><category term="blob"/><category term="branch"/><category term="bulk"/><category term="button"/><category term="caching"/><category term="cell"/><category term="chat"/><category term="checkout"/><category term="circular queue"/><category term="claims"/><category term="class library"/><category term="client server architecture"/><category term="client side"/><category term="cloud"/><category term="cluster"/><category term="code editor"/><category term="code exploration"/><category term="code generation"/><category term="color"/><category term="column"/><category term="combine"/><category term="compression"/><category term="computer virus"/><category term="configuration"/><category term="connection string"/><category term="console application"/><category term="container"/><category term="convert"/><category term="cooperative work"/><category term="coordinates"/><category term="copy"/><category term="crawler"/><category term="critical path method"/><category term="crowdsourcing"/><category term="custom"/><category term="customization"/><category term="customize"/><category term="data and knowledge engineering"/><category term="data annotation"/><category term="data binding"/><category term="data model"/><category term="data source"/><category term="debug"/><category term="dependency injection"/><category term="deployment"/><category term="dictionary"/><category term="digits"/><category term="distributed database"/><category term="dump"/><category term="dynamic"/><category term="dynamic views"/><category term="e-mail"/><category term="editor"/><category term="elFinder.Net"/><category term="encoding"/><category term="enterprise portal"/><category term="entreprise management"/><category term="expression"/><category term="extension methods"/><category term="external connection"/><category term="family"/><category term="first"/><category term="flair"/><category term="font"/><category term="format"/><category term="fortran"/><category term="gadgets"/><category term="games"/><category term="generation y"/><category term="geotagging"/><category term="graph"/><category term="guess values"/><category term="gym"/><category term="helpers"/><category term="hidden field"/><category term="hide"/><category term="highlight"/><category term="hooks"/><category term="iPhoto"/><category term="impersonation"/><category term="intro"/><category term="inversion of control"/><category term="ipod"/><category term="jQuery validate"/><category term="left-to-right"/><category term="letters"/><category term="life"/><category term="link"/><category term="linked server"/><category term="locale"/><category term="log4net"/><category term="logging"/><category term="login"/><category term="lyrics"/><category term="management UI"/><category term="manager"/><category term="measure"/><category term="membership"/><category term="memory"/><category term="merge"/><category term="message"/><category term="methods"/><category term="missing numbers"/><category term="modern age"/><category term="monospaced"/><category term="musing"/><category term="nanotechnology"/><category term="navbar"/><category term="numbers"/><category term="ordinary differential equation"/><category term="partial class"/><category term="partial view"/><category term="password"/><category term="path"/><category term="photography"/><category term="physical exercise"/><category term="playlist"/><category term="policy"/><category term="port forwarding"/><category term="portlet"/><category term="postback"/><category term="prime number"/><category term="productivity"/><category term="properties"/><category term="public contest"/><category term="quality of life"/><category term="questions"/><category term="quicksort"/><category term="radio button"/><category term="references"/><category term="reflection"/><category term="regular expression"/><category term="remote"/><category term="repair"/><category term="replace"/><category term="resize"/><category term="resolver"/><category term="resource files"/><category term="resx"/><category term="retrospective"/><category term="robot"/><category term="robot arm"/><category term="router"/><category term="select"/><category term="self-improvement"/><category term="sequence"/><category term="server"/><category term="server side"/><category term="service"/><category term="setTimeout"/><category term="settings"/><category term="sharing"/><category term="sheet"/><category term="shopping"/><category term="shortcuts"/><category term="size"/><category term="skip"/><category term="soapUI"/><category term="social"/><category term="stored procedure"/><category term="string"/><category term="support"/><category term="system analyst"/><category term="table"/><category term="task"/><category term="territory"/><category term="testing"/><category term="text"/><category term="text editor"/><category term="textbox"/><category term="thread"/><category term="threads"/><category term="thumbnail"/><category term="time saver"/><category term="time tracking"/><category term="toast notification"/><category term="todo"/><category term="top-down approach"/><category term="track"/><category term="tracking"/><category term="traversal"/><category term="tree"/><category term="update"/><category term="upgrade"/><category term="video game"/><category term="view"/><category term="web"/><category term="web deploy"/><category term="web project"/><category term="webserver"/><category term="widget"/><category term="wirelles keyboard"/><title type='text'>Leniel Maccaferri&#39;s blog</title><subtitle type='html'>Everything software engineering with a strong background in computer engineering / science</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.leniel.net/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default?max-results=15&amp;redirect=false'/><link rel='alternate' type='text/html' href='http://www.leniel.net/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default?start-index=16&amp;max-results=15&amp;redirect=false'/><author><name>Leniel Maccaferri</name><uri>http://www.blogger.com/profile/17950821674268154143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz4lkIPWpkVzftF8ASC5n8PfZrnuRffrlQrO3Ql8z0baT7qkti-asHJqEoUCc30s3T1NSVfEdrc9YDi9-8fClaqkFEB60YcolxKyOfv51j8NBLUsI5aBcm4fdPzcTRfDk/s113/MeOnJun12-2018.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>173</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>15</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4926735770070291800.post-5797352309636129744</id><published>2020-06-16T15:39:00.008-03:00</published><updated>2020-06-16T15:51:25.160-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term=".NET Core"/><category scheme="http://www.blogger.com/atom/ns#" term="HTML"/><category scheme="http://www.blogger.com/atom/ns#" term="input"/><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript"/><category scheme="http://www.blogger.com/atom/ns#" term="jQuery"/><category scheme="http://www.blogger.com/atom/ns#" term="Razor"/><category scheme="http://www.blogger.com/atom/ns#" term="URL"/><title type='text'>How to add\pre-fill https://www. to input fields with type URL?</title><content type='html'>This is quick post for something I had to implement today. It&#39;s related to input fields with &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/url&quot; target=&quot;_blank&quot;&gt;type=&quot;url&quot;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;What did I do?&lt;br /&gt;&lt;br /&gt;Opened &lt;a href=&quot;https://code.visualstudio.com/&quot; target=&quot;_blank&quot;&gt;Visual Studio Code&lt;/a&gt; on the Views folder of a large ASP.NET MVC project and then searched for &lt;i&gt;&lt;b&gt;asp-for=(.*)URL&lt;/b&gt;&lt;/i&gt; using Regular Expression. That linked me to all the places (Razor .cshtml views) which had a @model (Model\ViewModel) class which happens to have an URL property.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Some of those Model\ViewModel properties didn&#39;t have the &lt;a href=&quot;https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.dataannotations.urlattribute?view=netcore-3.1&quot; target=&quot;_blank&quot;&gt;[Url] data annotation&lt;/a&gt;. I proceeded to add it to properties where it was missing. This data annotation is responsible for correctly generating the &amp;lt;input type=&quot;url&quot; ... &amp;gt; on the HTML when using Razor&#39;s html helpers like this for example:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;pre style=&quot;text-align: left;&quot;&gt;&lt;div style=&quot;background-color: #1e1e1e; color: #d4d4d4; font-family: menlo, monaco, &amp;quot;courier new&amp;quot;, monospace; font-size: 12px; line-height: 18px;&quot;&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;input&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;asp-for&lt;/span&gt;=&lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;Organization.URL&quot;&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;class&lt;/span&gt;=&lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;form-control&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;It&#39;ll generate this HTML code:&lt;br /&gt;&lt;br /&gt;&lt;pre style=&quot;text-align: left;&quot;&gt;&lt;div style=&quot;background-color: #1e1e1e; color: #d4d4d4; font-family: menlo, monaco, &amp;quot;courier new&amp;quot;, monospace; font-size: 12px; line-height: 18px;&quot;&gt;&lt;div&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;input&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;class&lt;/span&gt;=&lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;form-control&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;    &lt;span style=&quot;color: #9cdcfe;&quot;&gt;type&lt;/span&gt;=&lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;url&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;    &lt;span style=&quot;color: #9cdcfe;&quot;&gt;data-val&lt;/span&gt;=&lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;true&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;    &lt;span style=&quot;color: #9cdcfe;&quot;&gt;data-val-url&lt;/span&gt;=&lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;The URL field is not a valid fully-qualified http, https, or ftp URL.&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;    &lt;span style=&quot;color: #9cdcfe;&quot;&gt;id&lt;/span&gt;=&lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;Organization_URL&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;    &lt;span style=&quot;color: #9cdcfe;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;Organization.URL&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;    &lt;span style=&quot;color: #9cdcfe;&quot;&gt;value&lt;/span&gt;=&lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;With that in place I crafted some jQuery\JavaScript code that does the magic:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style=&quot;text-align: left;&quot;&gt;&lt;div style=&quot;background-color: #1e1e1e; color: #d4d4d4; font-family: menlo, monaco, &amp;quot;courier new&amp;quot;, monospace; font-size: 12px; line-height: 18px;&quot;&gt;&lt;div&gt;&lt;span style=&quot;color: #6a9955;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #6a9955;&quot;&gt; * For all inputs with type URL and which are empty,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #6a9955;&quot;&gt; * we add https://www. when the input has focus.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #6a9955;&quot;&gt; */&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;function&lt;/span&gt; addHttpsWwwToInputTypeUrl() {&lt;/div&gt;&lt;div&gt;    $(&lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;input[type=&#39;url&#39;][value=&#39;&#39;]&quot;&lt;/span&gt;).focus(&lt;span style=&quot;color: #569cd6;&quot;&gt;function&lt;/span&gt; () {&lt;/div&gt;&lt;div&gt;        $(&lt;span style=&quot;color: #569cd6;&quot;&gt;this&lt;/span&gt;).val(&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;https://www.&#39;&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;    });&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;/div&gt;&lt;/pre&gt;The code is self-explanatory. It selects all inputs with type=&quot;url&quot; and which are empty. Once the input gets focus, https://www. is added automatically to the input&#39;s value. The user now only has to complete the URL address. No more typing https://www. everytime.&lt;br /&gt;&lt;br /&gt;The only thing necessary now is to call this JavaScript function in a central place so that it can be applied everywhere in your project.&lt;br /&gt;&lt;br /&gt;That&#39;s it... a simple but nice user experience to have in your app. Hope it helps.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/5797352309636129744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/5797352309636129744'/><link rel='alternate' type='text/html' href='http://www.leniel.net/2020/06/how-to-add-pre-fill-https-www-to-input-fields-with-type-url.html' title='How to add\pre-fill https://www. to input fields with type URL?'/><author><name>Leniel Maccaferri</name><uri>http://www.blogger.com/profile/17950821674268154143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz4lkIPWpkVzftF8ASC5n8PfZrnuRffrlQrO3Ql8z0baT7qkti-asHJqEoUCc30s3T1NSVfEdrc9YDi9-8fClaqkFEB60YcolxKyOfv51j8NBLUsI5aBcm4fdPzcTRfDk/s113/MeOnJun12-2018.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-4926735770070291800.post-4416501820346375801</id><published>2020-05-02T14:36:00.000-03:00</published><updated>2020-05-02T16:11:48.438-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="authentication"/><category scheme="http://www.blogger.com/atom/ns#" term="authorization"/><category scheme="http://www.blogger.com/atom/ns#" term="CSS"/><category scheme="http://www.blogger.com/atom/ns#" term="Docker"/><category scheme="http://www.blogger.com/atom/ns#" term="HTML"/><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript"/><category scheme="http://www.blogger.com/atom/ns#" term="learning"/><category scheme="http://www.blogger.com/atom/ns#" term="Mac OS"/><category scheme="http://www.blogger.com/atom/ns#" term="ReactJS"/><category scheme="http://www.blogger.com/atom/ns#" term="SPA"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><category scheme="http://www.blogger.com/atom/ns#" term="Swagger"/><category scheme="http://www.blogger.com/atom/ns#" term="todo"/><title type='text'>Creating a ReactJS To Do application with user Authentication\Authorization [ Introduction ] - part 1</title><content type='html'>This is going to be a series of posts in which I&#39;ll show how I managed to get a simple yet functional ReactJS application working. I plan to write 1 blog post per major component detailing how it works and integrates into the app.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
This was my start with &lt;a href=&quot;https://en.wikipedia.org/wiki/React_(web_framework)&quot; target=&quot;_blank&quot;&gt;ReactJS&lt;/a&gt; and I worked in this application for almost 1 month as seen by the git commits &lt;a href=&quot;https://github.com/leniel/ReactToDo/commits/master&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;. I went from 0% ReactJS knowledge to to some % knowledge of how things work in this UI\presentation framework.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Motivation&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The motivation to learn it is that it&#39;s mainstream nowadays. ReactJS is also used to develop mobile apps... besides that, for a job application test I had to develop a &lt;b&gt;&lt;i&gt;To Do&lt;/i&gt;&lt;/b&gt; application with a set of requirements.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Requirements&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Programming assignment for web development candidates&lt;br /&gt;
&lt;br /&gt;
You can choose any programming language and web development framework, database, and web server you like. The web application you need to build is a basic todo list application with the following requirements:&lt;br /&gt;
&lt;br /&gt;
- Users can view their todo list;&lt;br /&gt;
- Users can add, remove, modify and delete todo entries;&lt;br /&gt;
- Each todo entry includes a single line of text, due date and priority;&lt;br /&gt;
- Users can assign priorities and due dates to the entries;&lt;br /&gt;
- Users can sort todo lists using due date and priority;&lt;br /&gt;
- Users can mark an entry as completed;&lt;br /&gt;
- You don&#39;t need to spend time on UI/UX design, if you do, it will be a bonus;&lt;br /&gt;
- Provide a RESTful API which will allow a third-party application to trigger actions on your app (same actions available in the app);&lt;br /&gt;
- Provide authentication and authorization service for both the app and the API;&lt;br /&gt;
- As complementary item to the last requirement, you should be able to create users in the system via an interface, eg a signup/register screen.&lt;/blockquote&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt; &lt;b&gt;Web Tech Stack&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I took the challenge! Developed a &lt;a href=&quot;https://en.wikipedia.org/wiki/Single-page_application&quot; target=&quot;_blank&quot;&gt;SPA - Single Page Application&lt;/a&gt; using ReactJS. Why not!?&amp;nbsp;I also used &lt;a href=&quot;https://code.visualstudio.com/&quot; target=&quot;_blank&quot;&gt;Visual Studio Code&lt;/a&gt; as the IDE in tandem with the web tech stack in which I&#39;m experienced with: &lt;a href=&quot;https://docs.microsoft.com/en-us/dotnet/csharp/&quot; target=&quot;_blank&quot;&gt;C#&lt;/a&gt;, &lt;a href=&quot;https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api?view=aspnetcore-3.1&amp;amp;tabs=visual-studio&quot; target=&quot;_blank&quot;&gt;ASP.NET Core Web API&lt;/a&gt;, SQL Server, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The App&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The following is the app&#39;s homepage:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOn9i1UXjfoq6a-aqbxph0r1pB-AsCJuuY-u71AavD8JbyKFYYpttCZBNPHDZnh2NgrxEjbY3B2-J-myHDZaysfsyd8dJCVD1k226fXAVEOYfnSQZe3apouvzOHEebsR4BqJnvIZCfZm4/s1600/2020-05-02_13-02-15.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;804&quot; data-original-width=&quot;1600&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOn9i1UXjfoq6a-aqbxph0r1pB-AsCJuuY-u71AavD8JbyKFYYpttCZBNPHDZnh2NgrxEjbY3B2-J-myHDZaysfsyd8dJCVD1k226fXAVEOYfnSQZe3apouvzOHEebsR4BqJnvIZCfZm4/s640/2020-05-02_13-02-15.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
Figure 1 - App home page&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
The left side menu when clicked gives access to the Todos form and grid.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdhZRAqOxGcIlYvv68p_G_pSxaxW47dhapz-RKhA7mWlKIQo7in9KKnck-8QypVNpfiF7xwCvpcE8aftw6Ick__H30cKlDGlLLl3DPtiSYxelkzQEKYg-nykFL3mQ-SoutZu-VMJIHT2M/s1600/Menu+options+-+left.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;496&quot; data-original-width=&quot;478&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdhZRAqOxGcIlYvv68p_G_pSxaxW47dhapz-RKhA7mWlKIQo7in9KKnck-8QypVNpfiF7xwCvpcE8aftw6Ick__H30cKlDGlLLl3DPtiSYxelkzQEKYg-nykFL3mQ-SoutZu-VMJIHT2M/s200/Menu+options+-+left.png&quot; width=&quot;192&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
Figure 2 - Left side menu&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
The right side menu allows the user to login\logout and check their profile.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHQ3ctdZdYqfLamLRlSkKNuhHk28OcL7L7nHpzaGcoHkRDRNUhP8Bfxxoag1CB_WHLN8ee42QkstJhNstSNZSmoV2frS1s5GT-NPhyphenhyphenspDIuG5sNIkkuONYB31Llwr1c0zrVYt91jvDTKY/s1600/Menu+options+-+right.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;268&quot; data-original-width=&quot;634&quot; height=&quot;84&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHQ3ctdZdYqfLamLRlSkKNuhHk28OcL7L7nHpzaGcoHkRDRNUhP8Bfxxoag1CB_WHLN8ee42QkstJhNstSNZSmoV2frS1s5GT-NPhyphenhyphenspDIuG5sNIkkuONYB31Llwr1c0zrVYt91jvDTKY/s200/Menu+options+-+right.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
Figure 3 - Right side menu&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
In order to be able to access the Todos form\grid the user must be authenticated.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwtwg7SNmoAYNh1xojTYsSYI9R_BVtgOj4ns1UxqyIfLTe9tcI7EuNozqEMjyqlLK17WgvUpJ3IG-uI16VTo20ZD0Ftqq5CNDqyNlP88aDTAWv8pjvZhvsmekiMiLfc_p1SeaQJB9JwG4/s1600/Todo+form+with+grid.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;804&quot; data-original-width=&quot;1600&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwtwg7SNmoAYNh1xojTYsSYI9R_BVtgOj4ns1UxqyIfLTe9tcI7EuNozqEMjyqlLK17WgvUpJ3IG-uI16VTo20ZD0Ftqq5CNDqyNlP88aDTAWv8pjvZhvsmekiMiLfc_p1SeaQJB9JwG4/s640/Todo+form+with+grid.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Figure 4 - Todo form + grid&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;Database&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Everything was developed in&amp;nbsp;&lt;a href=&quot;https://en.wikipedia.org/wiki/MacOS&quot; target=&quot;_blank&quot;&gt;Mac OS&lt;/a&gt;&amp;nbsp;and as such the database that stores todo data is an&amp;nbsp;&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker&quot; target=&quot;_blank&quot;&gt;SQL Server container image running in Docker&lt;/a&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRN75hzcuWD5JOmvHp_6lQAegsRuJnpchw6D9I-C9U0oMNehT65JVCOoWq7H_sFCD0WibEDx-d_BB2NzdvFYWxwuWqbSdnXn2Hhwh0Jnray2Hk1mmaQ_5bNnv4qB5FwzS6vqKRZ4lx6DY/s1600/2020-05-02_15-28-30.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1000&quot; data-original-width=&quot;1600&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRN75hzcuWD5JOmvHp_6lQAegsRuJnpchw6D9I-C9U0oMNehT65JVCOoWq7H_sFCD0WibEDx-d_BB2NzdvFYWxwuWqbSdnXn2Hhwh0Jnray2Hk1mmaQ_5bNnv4qB5FwzS6vqKRZ4lx6DY/s640/2020-05-02_15-28-30.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
Figure 5 - SQL Server database image running in Docker&lt;/div&gt;
&lt;div style=&quot;text-align: start;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt; &lt;b&gt;Web API&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt; The Web API was implemented using an ASP.NET Core Web API project. There&#39;s also a &lt;a href=&quot;https://docs.microsoft.com/en-us/aspnet/core/tutorials/web-api-help-pages-using-swagger?view=aspnetcore-3.1&quot; target=&quot;_blank&quot;&gt;Swagger protected help page&lt;/a&gt; configured.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLX5O-KWmzuuo39ZgfLXTMCWTt855KBydlu0x4ojOOnLyQ_5ziaFATSU6fvGJKNMVFwi6fJImKGbRplca_tZjdFHfvxYHNbI8vaUBA4nY11AFOq6nJTs60bvRJtniemTnEAHvPf3Nsrwo/s1600/Todo+API+Swagger.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1123&quot; data-original-width=&quot;1600&quot; height=&quot;448&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLX5O-KWmzuuo39ZgfLXTMCWTt855KBydlu0x4ojOOnLyQ_5ziaFATSU6fvGJKNMVFwi6fJImKGbRplca_tZjdFHfvxYHNbI8vaUBA4nY11AFOq6nJTs60bvRJtniemTnEAHvPf3Nsrwo/s640/Todo+API+Swagger.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: left;&quot;&gt;Figure 6 - Web API Swagger help page&lt;/span&gt;&lt;/div&gt;
&lt;b&gt;&lt;br /&gt;
Source code structure&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
The following screenshots show how the code is structured:&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgghNyqaZabU_17NO9wnGGY36CvuTaI-NiWJ9xqXg4qhRG8fWye5nK6rnK_hX-XcLE3C9wrbdEeXJ8GIEgGL26UqbALOtqA17IT0eyPVIOaVhtV8mCgkRzcsXmYZpsEAN1VaDFDCBfzR6o/s1600/2020-05-02_13-45-05.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1202&quot; data-original-width=&quot;628&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgghNyqaZabU_17NO9wnGGY36CvuTaI-NiWJ9xqXg4qhRG8fWye5nK6rnK_hX-XcLE3C9wrbdEeXJ8GIEgGL26UqbALOtqA17IT0eyPVIOaVhtV8mCgkRzcsXmYZpsEAN1VaDFDCBfzR6o/s640/2020-05-02_13-45-05.png&quot; width=&quot;334&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
Figure 7 - App structure in Visual Studio Code Explorer window&lt;/div&gt;
&lt;br /&gt;
- src folder holds all the source code files for the ReactJs app.&lt;br /&gt;
&lt;br /&gt;
- TodoApi holds the source code files for an ASP.NET Web API project.&lt;br /&gt;
&lt;br /&gt;
The ReactJS project skeleton was created\bootstrapped with &lt;a href=&quot;https://reactjs.org/docs/create-a-new-react-app.html#create-react-app&quot; target=&quot;_blank&quot;&gt;Create React App&lt;/a&gt; as described in the &lt;a href=&quot;https://github.com/leniel/ReactToDo/blob/master/README.md&quot; target=&quot;_blank&quot;&gt;README file&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Expanding the src folder we have this:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAV6QxE86W8fFV7lacH0yiT19vQpR4fC2rUOKu4CLPimT74rUZ-pdH7fXz8C1bKRYL2cHix2LfrCdIyhKTw74oOFUWS6Z-rp1Y6BlZDjV_rFerPRAQFz7GudzZMrCfKVCIL94HnkrbN_w/s1600/2020-05-02_13-55-20.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1510&quot; data-original-width=&quot;658&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAV6QxE86W8fFV7lacH0yiT19vQpR4fC2rUOKu4CLPimT74rUZ-pdH7fXz8C1bKRYL2cHix2LfrCdIyhKTw74oOFUWS6Z-rp1Y6BlZDjV_rFerPRAQFz7GudzZMrCfKVCIL94HnkrbN_w/s640/2020-05-02_13-55-20.png&quot; width=&quot;278&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
Figure 8 - ReactJS SPA app source code files&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
Expanding the TodoApi folder we have this:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCTLU3toQq72Rw2OUTdHdBnZFOlyJ-zNN22r2VEmeELpmlrYBLT9SpQMG5OAkPkMXMUkw49qYjVna-mcZKq4Aa65lIPe-1m5AGH_pHQ3t-9DRR5moTN2uVggRaMhSaLat_yMqbujKFcfQ/s1600/2020-05-02_14-00-43.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;800&quot; data-original-width=&quot;656&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCTLU3toQq72Rw2OUTdHdBnZFOlyJ-zNN22r2VEmeELpmlrYBLT9SpQMG5OAkPkMXMUkw49qYjVna-mcZKq4Aa65lIPe-1m5AGH_pHQ3t-9DRR5moTN2uVggRaMhSaLat_yMqbujKFcfQ/s320/2020-05-02_14-00-43.png&quot; width=&quot;262&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
Figure 9 - Todo ASP.NET Web API source code files&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;App dependencies&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The ReactJS app uses the following dependencies as listed in &lt;a href=&quot;https://github.com/leniel/ReactToDo/blob/master/package.json&quot; target=&quot;_blank&quot;&gt;package.json&lt;/a&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #1e1e1e; color: #d4d4d4; font-family: Menlo, Monaco, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px;&quot;&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;dependencies&quot;&lt;/span&gt;: {&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;@auth0/auth0-spa-js&quot;&lt;/span&gt;: &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;^1.6.3&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;@date-io/date-fns&quot;&lt;/span&gt;: &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;^1.3.13&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;@material-ui/core&quot;&lt;/span&gt;: &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;^4.9.1&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;@material-ui/icons&quot;&lt;/span&gt;: &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;^4.9.1&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;@material-ui/pickers&quot;&lt;/span&gt;: &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;^3.2.10&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;@testing-library/jest-dom&quot;&lt;/span&gt;: &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;^5.1.1&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;@testing-library/react&quot;&lt;/span&gt;: &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;^9.4.0&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;@testing-library/user-event&quot;&lt;/span&gt;: &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;^8.1.0&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;axios&quot;&lt;/span&gt;: &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;^0.19.2&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;date-fns&quot;&lt;/span&gt;: &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;^2.9.0&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;formik&quot;&lt;/span&gt;: &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;^2.1.4&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;moment&quot;&lt;/span&gt;: &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;^2.24.0&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;react&quot;&lt;/span&gt;: &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;^16.12.0&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;react-dom&quot;&lt;/span&gt;: &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;^16.12.0&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;react-router-dom&quot;&lt;/span&gt;: &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;^5.1.2&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;react-scripts&quot;&lt;/span&gt;: &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;^3.3.1&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;react-toastify&quot;&lt;/span&gt;: &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;^5.5.0&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;yup&quot;&lt;/span&gt;: &lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;^0.28.1&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
},&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Git history&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The git history is a nice way to remember what I did along the way:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Git History on master by all authors&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Adding Auth0 placeholders...&lt;br /&gt;
340657a (HEAD -&amp;gt; master, origin/master) by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Sat May 02 2020 (54 minutes ago)&lt;/leniel&gt;&lt;br /&gt;
1 file changed, 2 insertions(+), 2 deletions(-)&lt;br /&gt;
&lt;br /&gt;
Small fixes...&lt;br /&gt;
5b98458 by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Fri Feb 21 2020 (2 months ago)&lt;/leniel&gt;&lt;br /&gt;
2 files changed, 3 insertions(+), 3 deletions(-)&lt;br /&gt;
&lt;br /&gt;
- Added Roles claim... it&#39;s retrieved from Auth0 access_token; - Improved footer; - Added missing toastify messages; - Improved Profile.&lt;br /&gt;
2cd5cd3 by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Tue Feb 11 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
5 files changed, 84 insertions(+), 19 deletions(-)&lt;br /&gt;
&lt;br /&gt;
- Added Bearer token support to Swagger so that it&#39;s now possible to authorize with a token prior to testing the Web API endpoints; - In TodoItemsController the current user is now extracted while getting Todos so that the user can only retrieve their todos; - Added User property to TodoItem model; - Externalized getUser from Auth0 so that it can be called from stateful ReactJS components like Todo.js; - Made use of getUser() on Todo component; - Beautified Profile component.&lt;br /&gt;
b704348 by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Mon Feb 10 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
8 files changed, 122 insertions(+), 19 deletions(-)&lt;br /&gt;
&lt;br /&gt;
- Added scopes and protected Get Todos Web API call with read:todos scope. https://auth0.com/docs/quickstart/backend/aspnet-core-webapi/01-authorization#validate-access-tokens - Added Profile component&lt;br /&gt;
13a8675 by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Sun Feb 09 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
13 files changed, 173 insertions(+), 62 deletions(-)&lt;br /&gt;
&lt;br /&gt;
- Made Get Todos protected by using [Authorize] attribute; - Added JwtBearer support to the ASP.NET Core Web API; - Moved BrowserRouter to index.js so that the &lt;privateroute&gt; works as expected. More info here: https://stackoverflow.com/q/60123391/114029 - Externalized getTokenSilently in Auth.js to be able to pass it to axios request interceptor.&lt;/privateroute&gt;&lt;br /&gt;
ab74c14 by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Sat Feb 08 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
12 files changed, 182 insertions(+), 51 deletions(-)&lt;br /&gt;
&lt;br /&gt;
Added Auth0 to be able to authenticate and authorize users. https://auth0.com/&lt;br /&gt;
7ab2538 by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Fri Feb 07 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
9 files changed, 892 insertions(+), 170 deletions(-)&lt;br /&gt;
&lt;br /&gt;
- Added search todo functionality; - Improved the todos table by adding Table pagination actions and made the header sticky; - Improved todo form by disabling the save button when there are errors or when the form is not dirty yet, that is, the user has not changed anything yet; - Added global error message with the help of toastify;&lt;br /&gt;
2d59cf4 by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Thu Feb 06 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
5 files changed, 190 insertions(+), 44 deletions(-)&lt;br /&gt;
&lt;br /&gt;
- Commented out InMemoryDatabase in the Web API project and started using a full featured SQL Server database with UseSqlServer. Accomplished that on Mac OS side using Docker and a Developer version of SQL Server 2017; More info here: https://database.guide/how-to-install-sql-server-on-a-mac/ https://stackoverflow.com/a/60080206/114029 - Added Swagger to the Web API project; https://docs.microsoft.com/en-us/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-3.1&amp;amp;tabs=visual-studio - Changed Web API default port from 7777 to 8888; - Improved global Progress bar. Set its position to absolute so that it won&#39;t push content down when it is displayed; - Moved todo related components to their own folder.&lt;br /&gt;
581da74 by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Wed Feb 05 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
16 files changed, 72 insertions(+), 29 deletions(-)&lt;br /&gt;
&lt;br /&gt;
- Added cancel button to todo form. This is useful when the user is editing a todo and wants to cancel the action; - Implemented an improved version of todo form using the HOC [Higher Order Component] withFormik; this allowed passing a parent component [Todo] function down to the child component EnhancedTodoForm which is hooked to the the TodoForm component; Amazing stuff! :-) https://jaredpalmer.com/formik/docs/api/withFormik - route icons are now dynamically retrieved; - Added react-toastify libray to be able to show customized messages to user. https://github.com/fkhadra/react-toastify&lt;br /&gt;
469e858 by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Tue Feb 04 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
12 files changed, 328 insertions(+), 100 deletions(-)&lt;br /&gt;
&lt;br /&gt;
- Added request and response interceptors to axios: https://github.com/axios/axios#interceptors ... this will allow a hooking place to display toasts (messages) to the user. This is one of the next thing to be added; - Added a menu tp AppBar using a Drawer component&quot; https://material-ui.com/components/drawers/; - Started using react-router: https://github.com/ReactTraining/react-router; - routes are exported from routes.js; - Added About and Home pages.&lt;br /&gt;
7412ec3 by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Mon Feb 03 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
17 files changed, 3682 insertions(+), 3186 deletions(-)&lt;br /&gt;
&lt;br /&gt;
- Got editTodo working; - Improved themes; - Removed unused npm packages.&lt;br /&gt;
4afd71e by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Sat Feb 01 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
8 files changed, 158 insertions(+), 866 deletions(-)&lt;br /&gt;
&lt;br /&gt;
- Delete todo(s) done; - WIP Edit todo; - Added axiosInterceptor which handles&amp;nbsp; the &lt;globalloader&gt; animation when any Web API is called. It shows a Material-UI &lt;linearprogress&gt;; - Externalized custom styles in themes.js; - Many improvements in Todos table.&lt;/linearprogress&gt;&lt;/globalloader&gt;&lt;br /&gt;
9d3e032 by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Fri Jan 31 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
13 files changed, 236 insertions(+), 139 deletions(-)&lt;br /&gt;
&lt;br /&gt;
Handling setSelected after deletion happens...&lt;br /&gt;
9be189f by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Thu Jan 30 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
1 file changed, 8 insertions(+), 3 deletions(-)&lt;br /&gt;
&lt;br /&gt;
Added delete todo functionality with a gotcha: https://stackoverflow.com/a/33846760/114029&lt;br /&gt;
5ad3cbd by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Thu Jan 30 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
7 files changed, 77 insertions(+), 52 deletions(-)&lt;br /&gt;
&lt;br /&gt;
Added material UI Table component to be able to better visualize and operate on Todos. https://material-ui.com/components/tables/&lt;br /&gt;
febb4b3 by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Thu Jan 30 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
3 files changed, 371 insertions(+), 17 deletions(-)&lt;br /&gt;
&lt;br /&gt;
- Created a global theme with createMuiTheme; - Improved AppBar - Got addTodo POST call to Web API working and TodoList updating as expected.&lt;br /&gt;
6f8a5fb by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Thu Jan 30 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
8 files changed, 700 insertions(+), 174 deletions(-)&lt;br /&gt;
&lt;br /&gt;
Styled App structure and TodoForm with Material UI components.&lt;br /&gt;
38f169d by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Wed Jan 29 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
8 files changed, 357 insertions(+), 196 deletions(-)&lt;br /&gt;
&lt;br /&gt;
Got Formik form fields working with material-ui https://material-ui.com/.&lt;br /&gt;
b309899 by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Wed Jan 29 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
10 files changed, 1027 insertions(+), 246 deletions(-)&lt;br /&gt;
&lt;br /&gt;
- Added formik, yup and react-formik-ui. - Created a Todo form with formik.&lt;br /&gt;
bd8b355 by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Mon Jan 27 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
7 files changed, 771 insertions(+), 60 deletions(-)&lt;br /&gt;
&lt;br /&gt;
Started integrating UI with Web API...&lt;br /&gt;
614c68e by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Sun Jan 26 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
9 files changed, 243 insertions(+), 83 deletions(-)&lt;br /&gt;
&lt;br /&gt;
- Added ASP.NET Core 3.1 Todo Web API https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api?view=aspnetcore-3.1&amp;amp;tabs=visual-studio-code&lt;br /&gt;
06ce6d3 by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Sun Jan 26 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
15 files changed, 409 insertions(+), 4 deletions(-)&lt;br /&gt;
&lt;br /&gt;
- Added handleChange event handler to todo-item component; - Handled todo complete state with setState; - Added Bootstrap: https://getbootstrap.com/&lt;br /&gt;
c15ff51 by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Sat Jan 25 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
8 files changed, 147 insertions(+), 38 deletions(-)&lt;br /&gt;
&lt;br /&gt;
Converted some functional components to ES6 classes.&lt;br /&gt;
64dad12 by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Sat Jan 25 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
3 files changed, 53 insertions(+), 30 deletions(-)&lt;br /&gt;
&lt;br /&gt;
- Got todo items displayed from a todo list JSON file. - Used array.map to create a React TodoItem component dynamically avoiding code repetition.&lt;br /&gt;
84cf3fc by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Sat Jan 25 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
5 files changed, 94 insertions(+), 25 deletions(-)&lt;br /&gt;
&lt;br /&gt;
Created basic components and applied some styles including dynamic styling with JavaScript.&lt;br /&gt;
90ac727 by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Sat Jan 25 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
6 files changed, 128 insertions(+), 18 deletions(-)&lt;br /&gt;
&lt;br /&gt;
Added .eslintrc.json and modified app name.&lt;br /&gt;
f1953ac by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Fri Jan 24 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
4 files changed, 14480 insertions(+), 1 deletion(-)&lt;br /&gt;
&lt;br /&gt;
Initial commit from Create React App&lt;br /&gt;
04291f4 by Leniel Macaferi &lt;leniel gmail.com=&quot;&quot;&gt;, Fri Jan 24 2020 (3 months ago)&lt;/leniel&gt;&lt;br /&gt;
18 files changed, 9789 insertions(+)&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;Source code&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
GitHub repository:&amp;nbsp;&lt;a href=&quot;https://github.com/leniel/ReactToDo&quot; target=&quot;_blank&quot;&gt;https://github.com/leniel/ReactToDo&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlr-sPUUWjISWdbDCoraKFwCnTkUEsAeB42iJ6LTlcHGjpJaSmUuk-pTUwQip6gPNqIynenHqJ8kTF4zXiknqslgQr-kOJWkIOHDYPBguhA-p25UNFMM8iuGYjel78m_DweR2PXiWfEYE/s1600/GitHub+repo.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;468&quot; data-original-width=&quot;1600&quot; height=&quot;185&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlr-sPUUWjISWdbDCoraKFwCnTkUEsAeB42iJ6LTlcHGjpJaSmUuk-pTUwQip6gPNqIynenHqJ8kTF4zXiknqslgQr-kOJWkIOHDYPBguhA-p25UNFMM8iuGYjel78m_DweR2PXiWfEYE/s640/GitHub+repo.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Figure 10 - GitHub repo with % of source code by type&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Next&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
So stay tuned because in the next part I&#39;ll start covering the components in a top down approach, that is, we&#39;ll start looking at the &lt;a href=&quot;https://github.com/leniel/ReactToDo/blob/master/src/index.js&quot; target=&quot;_blank&quot;&gt;index.js&lt;/a&gt; file where everything gets hooked up.&lt;/div&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/leniel/6489ac93cc0ff8cc12b0d63dd3a493fe.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/4416501820346375801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/4416501820346375801'/><link rel='alternate' type='text/html' href='http://www.leniel.net/2020/05/creating-reactjs-to-do-application-javascript-csharp-aspnet-web-api-html-css.html' title='Creating a ReactJS To Do application with user Authentication\Authorization [ Introduction ] - part 1'/><author><name>Leniel Maccaferri</name><uri>http://www.blogger.com/profile/17950821674268154143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz4lkIPWpkVzftF8ASC5n8PfZrnuRffrlQrO3Ql8z0baT7qkti-asHJqEoUCc30s3T1NSVfEdrc9YDi9-8fClaqkFEB60YcolxKyOfv51j8NBLUsI5aBcm4fdPzcTRfDk/s113/MeOnJun12-2018.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOn9i1UXjfoq6a-aqbxph0r1pB-AsCJuuY-u71AavD8JbyKFYYpttCZBNPHDZnh2NgrxEjbY3B2-J-myHDZaysfsyd8dJCVD1k226fXAVEOYfnSQZe3apouvzOHEebsR4BqJnvIZCfZm4/s72-c/2020-05-02_13-02-15.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-4926735770070291800.post-8915979643567345777</id><published>2019-12-11T13:06:00.000-03:00</published><updated>2019-12-13T10:03:37.729-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AD"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="B2C"/><category scheme="http://www.blogger.com/atom/ns#" term="button"/><category scheme="http://www.blogger.com/atom/ns#" term="custom"/><category scheme="http://www.blogger.com/atom/ns#" term="IDP"/><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript"/><category scheme="http://www.blogger.com/atom/ns#" term="jQuery"/><category scheme="http://www.blogger.com/atom/ns#" term="policy"/><category scheme="http://www.blogger.com/atom/ns#" term="social"/><category scheme="http://www.blogger.com/atom/ns#" term="XML"/><title type='text'>Adding title attribute to Social Identity Providers [IDPs] buttons when using Azure AD B2C custom policies</title><content type='html'>This is a simple post that shows how you can achieve exactly what the blog title says...&lt;br /&gt;
&lt;br /&gt;
You&#39;ll need only some jQuery code once you &lt;a href=&quot;https://docs.microsoft.com/en-us/azure/active-directory-b2c/javascript-samples&quot; target=&quot;_blank&quot;&gt;enable JavaScript&lt;/a&gt; for the &lt;a href=&quot;https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-overview-custom&quot; target=&quot;_blank&quot;&gt;custom policy&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
By default the social login buttons are shown only with text. They don&#39;t have &lt;a href=&quot;https://www.w3schools.com/tags/att_global_title.asp&quot; target=&quot;_blank&quot;&gt;title attributes&lt;/a&gt; that are used as tooltips by default when hovering the button during 2 seconds or so.&lt;br /&gt;
&lt;br /&gt;
Let&#39;s say that for the social &lt;a href=&quot;https://en.wikipedia.org/wiki/Identity_provider&quot; target=&quot;_blank&quot;&gt;IDP&lt;/a&gt;s buttons we want to show only the button logo instead of the button text to make the screen overall look &amp;amp; feel cleaner. However it&#39;d be nice to show a title\tooltip to inform the user what IDP that button refers to in case they don&#39;t get it by only seeing the logo.&lt;br /&gt;
&lt;br /&gt;
To accomplish that follow these 2 straightforward steps:&lt;br /&gt;
&lt;br /&gt;
1 - Enable JavaScript execution inside &lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;UserJourneyBehaviors&lt;/span&gt; in your &lt;a href=&quot;https://azure.microsoft.com/en-us/services/active-directory-b2c/&quot; target=&quot;_blank&quot;&gt;Azure B2C&lt;/a&gt; custom sign in\sing up policy .xml file:&lt;br /&gt;
&lt;!--StartFragment--&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: #1e1e1e; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px;&quot;&gt;
&lt;div style=&quot;color: #d4d4d4;&quot;&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;UserJourneyBehaviors&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;...&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: #d4d4d4;&quot;&gt;
&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #6a9955;&quot;&gt;&lt;!-- https://docs.microsoft.com/en-us/azure/active-directory-b2c/javascript-samples --&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: #d4d4d4;&quot;&gt;
&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;ScriptExecution&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;Allow&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;ScriptExecution&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: #d4d4d4;&quot;&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;UserJourneyBehaviors&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
2 - Add this code in the corresponding policy signin.html page:&lt;br /&gt;
&lt;!--StartFragment--&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, &#39;Courier New&#39;, monospace; font-size: 14px; font-weight: normal;&quot;&gt;
&lt;div&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #6a9955;&quot;&gt;//&amp;nbsp;Adding&amp;nbsp;title&amp;nbsp;to&amp;nbsp;each&amp;nbsp;Social&amp;nbsp;button...&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(&lt;/span&gt;&lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;.accountButton&quot;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;).each(&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp;(index)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp;title&amp;nbsp;=&amp;nbsp;$(&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;).text();&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;).prop(&lt;/span&gt;&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;title&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;,&amp;nbsp;title);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
Once loading the B2C login page you should see something as this when you hover your cursor over any social IDP button:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZGIeBd-JQ7phdccEPaeltg72DMny4gQR_Wj-7Xm9x63-ajMAG6ILgf4xYli3bOt6RqjyxkbTbGkC16BZcXosaaup13FnJJlkguvp0GpWCcCR8i6Ibcn6JQXSktRJJ2Es4XAF0xmCY79I/s1600/2019-12-11_12-57-08.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;562&quot; data-original-width=&quot;552&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZGIeBd-JQ7phdccEPaeltg72DMny4gQR_Wj-7Xm9x63-ajMAG6ILgf4xYli3bOt6RqjyxkbTbGkC16BZcXosaaup13FnJJlkguvp0GpWCcCR8i6Ibcn6JQXSktRJJ2Es4XAF0xmCY79I/s320/2019-12-11_12-57-08.png&quot; width=&quot;314&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;/div&gt;
Enabling and using JavaScript allows us to extend functionality in many places.
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/8915979643567345777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/8915979643567345777'/><link rel='alternate' type='text/html' href='http://www.leniel.net/2019/12/adding-title-attribute-to-social-identity-providers-idps-buttons-when-using-azure-ad-b2c-custom-policies.html' title='Adding title attribute to Social Identity Providers [IDPs] buttons when using Azure AD B2C custom policies'/><author><name>Leniel Maccaferri</name><uri>http://www.blogger.com/profile/17950821674268154143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz4lkIPWpkVzftF8ASC5n8PfZrnuRffrlQrO3Ql8z0baT7qkti-asHJqEoUCc30s3T1NSVfEdrc9YDi9-8fClaqkFEB60YcolxKyOfv51j8NBLUsI5aBcm4fdPzcTRfDk/s113/MeOnJun12-2018.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZGIeBd-JQ7phdccEPaeltg72DMny4gQR_Wj-7Xm9x63-ajMAG6ILgf4xYli3bOt6RqjyxkbTbGkC16BZcXosaaup13FnJJlkguvp0GpWCcCR8i6Ibcn6JQXSktRJJ2Es4XAF0xmCY79I/s72-c/2019-12-11_12-57-08.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-4926735770070291800.post-3558603424703578756</id><published>2019-09-06T12:40:00.000-03:00</published><updated>2019-09-07T17:42:40.031-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="automation"/><category scheme="http://www.blogger.com/atom/ns#" term="batch processing"/><category scheme="http://www.blogger.com/atom/ns#" term="DAX"/><category scheme="http://www.blogger.com/atom/ns#" term="expression"/><category scheme="http://www.blogger.com/atom/ns#" term="measure"/><category scheme="http://www.blogger.com/atom/ns#" term="Power BI"/><category scheme="http://www.blogger.com/atom/ns#" term="Tabular Editor"/><title type='text'>Automate moving measures between Power BI files .pbix, renaming and finding and replacing strings in DAX formula\expression</title><content type='html'>Yesterday I had to accomplish a task that got me thinking: this is going to take a hell of a lot of time to finish.&lt;br /&gt;
&lt;br /&gt;
The user story is this: I have a Power BI .pbix file that is used somewhat as a staging\debugging file to try and test measures. Once the job is done I usually move things over to the final\main Power BI file which will be handed in to the client. Note that this final Power BI file already has report pages implemented. That&#39;s way I try things in a different file since the work can be done in a cleaner\faster model.&lt;br /&gt;
The problem this time was that I had to create\move lots of measures and so I&#39;d have to do this measure by measure from the debugging file to the main file. It would take me about 1 hour to finish. Unfortunately Power BI has no built in copy\paste of measures between files as of today in its version 2.72.5556.801 64-bit (August 2019). At least we can copy and paste the visuals from one file to the other.&lt;br /&gt;
&lt;br /&gt;
OK. Problem defined. Let&#39;s Google for a solution. The solution found was this awesome post titled &lt;a href=&quot;https://community.powerbi.com/t5/Community-Blog/Bulk-measure-handling-copy-between-reports-format-changes/ba-p/518669&quot; target=&quot;_blank&quot;&gt;Bulk measure handling (copy between reports/format changes)&lt;/a&gt;. In this post the guy mentions the tool&amp;nbsp;&lt;a href=&quot;https://www.sqlbi.com/tools/tabular-editor/&quot; target=&quot;_blank&quot;&gt;Tabular Editor&lt;/a&gt;. Well that was what I was looking for, really.&lt;br /&gt;
&lt;br /&gt;
Just downloaded it directly from its GitHub repo &lt;a href=&quot;https://github.com/otykier/TabularEditor/releases&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Followed the steps on that post and voilá: I could get more than 30 measures copied from one .pbix file to another. Great! This took me about 10 minutes to get done. 1\6 of the time previously estimated for that cumbersome\manual work. Check the following printscreen:&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7dVDchfUsMdLityseFL3DBJxjt6IY5guD9Z-6bx0WTKXVjgyaHoqK1vH1H1uA9eQ8jr8ocQQRznoXoB6A-cPit5k2flutGPi3g3vjwzBE4jxi-Fr7ySrhS2gGuuH9-qk3Kq3bWCgMDGM/s1600/Screen+Shot+2019-09-06+at+12.05.43.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1000&quot; data-original-width=&quot;1600&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7dVDchfUsMdLityseFL3DBJxjt6IY5guD9Z-6bx0WTKXVjgyaHoqK1vH1H1uA9eQ8jr8ocQQRznoXoB6A-cPit5k2flutGPi3g3vjwzBE4jxi-Fr7ySrhS2gGuuH9-qk3Kq3bWCgMDGM/s640/Screen+Shot+2019-09-06+at+12.05.43.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;1st printscreen - measures moved from one Power BI file (on the left) to the other Power BI file (on the right)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: right; margin-left: 1em; text-align: right;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK1kVtZoMRd-BnTc6BJgW4iN0S8_9DSYEp2cAWbDOUw87-egYu7MA0W0bmx-33y9Frjn9YT5UnfpvLbgjwiAFjLkvRauAwy0IbWRXHZ0UfuFDxjZ55J7PSoScQChkPgo937NQNErVqbws/s1600/Screen+Shot+2019-09-06+at+12.27.05.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1000&quot; data-original-width=&quot;1600&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK1kVtZoMRd-BnTc6BJgW4iN0S8_9DSYEp2cAWbDOUw87-egYu7MA0W0bmx-33y9Frjn9YT5UnfpvLbgjwiAFjLkvRauAwy0IbWRXHZ0UfuFDxjZ55J7PSoScQChkPgo937NQNErVqbws/s320/Screen+Shot+2019-09-06+at+12.27.05.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;2nd printscreen - batch renaming selected formulas in blue&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
There was another task that needed to be accomplished and it was a little bit different: needed to duplicate those copied measures. Tabular Editor makes it easy too. Just select all of them, right click and pick Duplicate # measures. Boom! You have all measures duplicated as seen in the printscreen on the right. Note that it adds a &quot;copy&quot; word to the measure name. So once the measures are duplicated we need to rename them and that&#39;s easy too. Select all duplicated measures, right click and pick Batch rename.&lt;br /&gt;
&lt;br /&gt;
Just replaced the uppercase U in each formula name to a uppercase C as seen in the second printscreen above. Repeated the process and replaced &quot; copy&quot; with a blank string. That&#39;s it. Measures duplicated and renamed accordingly. Nonetheless there&#39;s still a missing step before theses measures are ready to go: change a table column name in the DAX formula\expression in each of these measures that got duplicated and renamed. How to get this done using Tabular Editor? Well, reading through its docs we can find this &lt;a href=&quot;https://github.com/otykier/TabularEditor/wiki/Advanced-Scripting&quot; target=&quot;_blank&quot;&gt;Advanced Scripting section&lt;/a&gt;. If you look at the first printscreen above you&#39;ll note that I wrote some C# code there that does exactly what is needed. See the code below:&lt;br /&gt;
&lt;style type=&quot;text/css&quot;&gt;
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.5px Helvetica}
span.s1 {color: #0000ff}
span.s2 {color: #a52a2a}
span.s3 {color: #008000}
span.s4 {color: #808080}
&lt;/style&gt;   &lt;br /&gt;
&lt;div class=&quot;p1&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;Selected.Measures.ForEach(m =&amp;gt; {&lt;br /&gt;
&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;var&lt;/span&gt; e = m.Expression;&lt;br /&gt;
&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;if&lt;/span&gt;(e.Contains(&lt;span class=&quot;s2&quot;&gt;&lt;i&gt;&quot;[Unit]&quot;&lt;/i&gt;&lt;/span&gt;))&lt;br /&gt;
&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;{&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;e = e.Replace(&lt;span class=&quot;s2&quot;&gt;&lt;i&gt;&quot;[Unit]&quot;&lt;/i&gt;&lt;/span&gt;, &lt;span class=&quot;s2&quot;&gt;&lt;i&gt;&quot;[Company]&quot;&lt;/i&gt;&lt;/span&gt;);&lt;br /&gt;
&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;s3&quot;&gt;&lt;i&gt;// For debugging purposes&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;s3&quot;&gt;&lt;i&gt;//e.Output();&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;s4&quot;&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;/span&gt;m.Expression = e;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;}&lt;br /&gt;
});&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
What this piece of code is doing is that for each of the selected measures in blue on the left (see printscreens above), the measure DAX formula\expression is stored in a variable called e. I then check if this formula contains the word [Unit] that is the table column name that needs to be replaced. If the expression\formula contains this word it gets replaced with the word [Company] that refers to the other column name that is to be used in these duplicated formulas. After that the modified DAX formula is assigned back to the measure.&lt;br /&gt;
&lt;br /&gt;
When finished with Tabular Editor, click Save. Return to Power BI and hit the Refresh button to reload the model.&lt;br /&gt;
&lt;br /&gt;
This post is just a sample that showcases the power of Tabular Editor. You can manage and play with measures in any way imaginable.&lt;br /&gt;
&lt;br /&gt;
I hope it helps someone that wants to accomplish trivial things in a more actionable way instead of having to copy\paste, rename and replace manually because that sucks.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Note:&lt;/b&gt;&amp;nbsp;when trying to save back the modifications done in Tabular Editor an error was being displayed. Something along this line:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
Failed to save modifications to the server. Error returned: &#39;Unexpected column name: Received column &#39;ObjectID.Expression&#39; in rowset &#39;ObjectTranslations&#39;. Expected column &#39;ObjectID.Set&#39;.&#39;.&lt;/blockquote&gt;
&lt;br /&gt;
I did the following to get rid of the nasty error message: opened Tabular Editor File menu and selected Preferences... checked &quot;Allow unsupported Power BI features (experimental)&quot;. When we do this a new &lt;i&gt;Translations&lt;/i&gt; folder appear in the Model tree. I just deleted the en-US that was under this folder (see printscreen below). Then tried saving again and it worked.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGRQKjMzMv5ZPMLDIGAoZn9qC6X-2iA2bYp9MuU1odEYeh6ZGebubH6qj4rU4xps0LbQQelNJC4ylosF_GMnJ35piQD3Swc5Te3IBK7yOj5Kpkhdf_m4rCLXUdNo56DzuopPPmWLjFEcc/s1600/Screen+Shot+2019-09-06+at+14.38.21.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1000&quot; data-original-width=&quot;1600&quot; height=&quot;250&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGRQKjMzMv5ZPMLDIGAoZn9qC6X-2iA2bYp9MuU1odEYeh6ZGebubH6qj4rU4xps0LbQQelNJC4ylosF_GMnJ35piQD3Swc5Te3IBK7yOj5Kpkhdf_m4rCLXUdNo56DzuopPPmWLjFEcc/s400/Screen+Shot+2019-09-06+at+14.38.21.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;3rd printscreen - enabling Allow unsupported Power BI features (experimental) in Tabular Editor&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/3558603424703578756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/3558603424703578756'/><link rel='alternate' type='text/html' href='http://www.leniel.net/2019/09/automate-moving-measures-between-power-bi-files-pbix-renaming-finding-replacing-strings-dax-formula-expression.html' title='Automate moving measures between Power BI files .pbix, renaming and finding and replacing strings in DAX formula\expression'/><author><name>Leniel Maccaferri</name><uri>http://www.blogger.com/profile/17950821674268154143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz4lkIPWpkVzftF8ASC5n8PfZrnuRffrlQrO3Ql8z0baT7qkti-asHJqEoUCc30s3T1NSVfEdrc9YDi9-8fClaqkFEB60YcolxKyOfv51j8NBLUsI5aBcm4fdPzcTRfDk/s113/MeOnJun12-2018.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7dVDchfUsMdLityseFL3DBJxjt6IY5guD9Z-6bx0WTKXVjgyaHoqK1vH1H1uA9eQ8jr8ocQQRznoXoB6A-cPit5k2flutGPi3g3vjwzBE4jxi-Fr7ySrhS2gGuuH9-qk3Kq3bWCgMDGM/s72-c/Screen+Shot+2019-09-06+at+12.05.43.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-4926735770070291800.post-3348907087296173557</id><published>2019-07-10T11:42:00.000-03:00</published><updated>2019-07-10T13:49:48.852-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET Core"/><category scheme="http://www.blogger.com/atom/ns#" term=".NET Framework"/><category scheme="http://www.blogger.com/atom/ns#" term="AutoFac"/><category scheme="http://www.blogger.com/atom/ns#" term="dependency injection"/><category scheme="http://www.blogger.com/atom/ns#" term="IOptions"/><category scheme="http://www.blogger.com/atom/ns#" term="Ninject"/><title type='text'>Using IOptions from .NET Core in .NET Framework 4.5.1+ - Ninject dependency injection version</title><content type='html'>This post is based on this awesome article I found @ Medium:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://medium.com/@dmitryzaets/legacy-net-applications-configuration-management-net-framework-4-5-1-68220335d9d8&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;Configuration Management in Legacy .NET Applications (.NET Framework 4.5.1+)&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I wanted to use the cool IOptions interface to grab some configs from appsettings.json. The sad thing is that it&#39;s intended to be used with .NET Core but the article mentioned above tells us that we can circumvent that with some extension code.&lt;br /&gt;
&lt;br /&gt;
I won&#39;t be able to use it anymore because I just found out that I can&#39;t in the current project setup I&#39;m working on.&lt;br /&gt;
&lt;br /&gt;
As I had already converted the AutoFac code to Ninject, I&#39;m just sharing it here in case it&#39;s useful...&lt;br /&gt;
&lt;br /&gt;
You&#39;ll need to test it.&lt;br /&gt;
&lt;br /&gt;
Note: make sure you have installed the following NuGet packages:&lt;br /&gt;
&lt;br /&gt;
- Microsoft.Extensions.Configuration&lt;br /&gt;
- Microsoft.Extensions.Options&lt;br /&gt;
- Microsoft.Extensions.Options.ConfigurationExtensions&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;https://gist.github.com/leniel/75217b616f036ff514e93440f30fb3eb.js&quot;&gt;&lt;/script&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/3348907087296173557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/3348907087296173557'/><link rel='alternate' type='text/html' href='http://www.leniel.net/2019/07/using-ioptions-from-dotnet-core-with-dotnet-framework-451-ninject-dependency-injection-version.html' title='Using IOptions from .NET Core in .NET Framework 4.5.1+ - Ninject dependency injection version'/><author><name>Leniel Maccaferri</name><uri>http://www.blogger.com/profile/17950821674268154143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz4lkIPWpkVzftF8ASC5n8PfZrnuRffrlQrO3Ql8z0baT7qkti-asHJqEoUCc30s3T1NSVfEdrc9YDi9-8fClaqkFEB60YcolxKyOfv51j8NBLUsI5aBcm4fdPzcTRfDk/s113/MeOnJun12-2018.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-4926735770070291800.post-4691138764961370673</id><published>2019-06-21T14:12:00.000-03:00</published><updated>2019-06-21T14:17:13.110-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="customize"/><category scheme="http://www.blogger.com/atom/ns#" term="data source"/><category scheme="http://www.blogger.com/atom/ns#" term="Excel"/><category scheme="http://www.blogger.com/atom/ns#" term="parameter"/><category scheme="http://www.blogger.com/atom/ns#" term="path"/><category scheme="http://www.blogger.com/atom/ns#" term="Power BI"/><category scheme="http://www.blogger.com/atom/ns#" term="workbook"/><title type='text'>Using Power BI parameter to specify Excel workbook path in Power Query</title><content type='html'>This is a quick post to share something that I did just now and that worked. I tried to search for some sample but couldn&#39;t find. Maybe my search query was not that right...&lt;br /&gt;
&lt;br /&gt;
Let&#39;s say you use an Excel workbook as your data source in Power BI. Than you collaborate with a team and as we know, not everyone has the same folder structure setup. This can cause a problem when trying to Refresh data in Power BI. How can we &quot;overcome&quot; this in a simple way?&lt;br /&gt;
&lt;br /&gt;
Just create a &lt;a href=&quot;https://powerbi.microsoft.com/en-us/blog/deep-dive-into-query-parameters-and-power-bi-templates/&quot; target=&quot;_blank&quot;&gt;Power BI parameter&lt;/a&gt; and pass it to the Power Query responsible for opening the Excel workbook.&lt;br /&gt;
&lt;br /&gt;
In the following printscreen you see that I created a parameter called Excel workbook path. I set this path to where the workbook is located in my machine.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij3tAnP9N-gIfUt33i1u3lfJ33RUFnlxuHyc9xTE-2yCp3mqsum4bCqES9XLPICDYGVL_RDzaVeDHmHEkQQOhcvYDYofJ3OVMxMSnHjtoFIYFA0rQrJRZ8B6VAbgVTsaJ2QAmMZeH6KjQ/s1600/Screen+Shot+2019-06-21+at+13.59.07.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1000&quot; data-original-width=&quot;1600&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij3tAnP9N-gIfUt33i1u3lfJ33RUFnlxuHyc9xTE-2yCp3mqsum4bCqES9XLPICDYGVL_RDzaVeDHmHEkQQOhcvYDYofJ3OVMxMSnHjtoFIYFA0rQrJRZ8B6VAbgVTsaJ2QAmMZeH6KjQ/s640/Screen+Shot+2019-06-21+at+13.59.07.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Then we can use this parameter in Power Query like this:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;= Excel.Workbook(File.Contents(#&quot;Excel workbook path&quot;&amp;amp;&quot;Contingency Drawdown.xlsx&quot;), null, true)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I was having some difficulty trying to make the string concatenation work, that is, joining the parameter with the workbook name. Tried some variants and got it working with the string concatenation token &amp;amp;.&lt;br /&gt;
&lt;br /&gt;
As you see the workbook name doesn&#39;t change (it&#39;s hardcoded) however the path is customizable by the parameter &quot;Excel workbook path&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpcOaG-plZNdpzGq8Y4lFj8PdRrx-KTVwa2grSKemTWpJ7K9uDp2BC7wXVWw052gY3uH650ea3SqCum23Vjexs7Y6Ef6rJdgRv88c5MtDf3lhTlEsPgIC4qIoSoa77HEpQ2hGHDCMzJaE/s1600/Screen+Shot+2019-06-21+at+14.02.51.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1000&quot; data-original-width=&quot;1600&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpcOaG-plZNdpzGq8Y4lFj8PdRrx-KTVwa2grSKemTWpJ7K9uDp2BC7wXVWw052gY3uH650ea3SqCum23Vjexs7Y6Ef6rJdgRv88c5MtDf3lhTlEsPgIC4qIoSoa77HEpQ2hGHDCMzJaE/s640/Screen+Shot+2019-06-21+at+14.02.51.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
We just need to change this parameter value to point to our folder structure and we&#39;re done. Now we can make use of this parameter to open all Excel sheets (tables in Power BI) in a single shot.&lt;br /&gt;
&lt;br /&gt;
Hope it helps.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;References:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://www.red-gate.com/simple-talk/sql/bi/power-bi-introduction-working-with-parameters-in-power-bi-desktop-part-4/&quot; target=&quot;_blank&quot;&gt;Power BI Introduction: Working with Parameters in Power BI Desktop —Part 4&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/4691138764961370673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/4691138764961370673'/><link rel='alternate' type='text/html' href='http://www.leniel.net/2019/06/using-power-bi-parameter-to-specify-excel-workbook-data-source-path-in-power-query.html' title='Using Power BI parameter to specify Excel workbook path in Power Query'/><author><name>Leniel Maccaferri</name><uri>http://www.blogger.com/profile/17950821674268154143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz4lkIPWpkVzftF8ASC5n8PfZrnuRffrlQrO3Ql8z0baT7qkti-asHJqEoUCc30s3T1NSVfEdrc9YDi9-8fClaqkFEB60YcolxKyOfv51j8NBLUsI5aBcm4fdPzcTRfDk/s113/MeOnJun12-2018.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij3tAnP9N-gIfUt33i1u3lfJ33RUFnlxuHyc9xTE-2yCp3mqsum4bCqES9XLPICDYGVL_RDzaVeDHmHEkQQOhcvYDYofJ3OVMxMSnHjtoFIYFA0rQrJRZ8B6VAbgVTsaJ2QAmMZeH6KjQ/s72-c/Screen+Shot+2019-06-21+at+13.59.07.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-4926735770070291800.post-7399628118452651708</id><published>2018-11-03T13:42:00.000-03:00</published><updated>2018-11-05T14:53:04.811-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET Core"/><category scheme="http://www.blogger.com/atom/ns#" term="claims"/><category scheme="http://www.blogger.com/atom/ns#" term="impersonation"/><category scheme="http://www.blogger.com/atom/ns#" term="user"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Authentication"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Service"/><title type='text'>Impersonation in Windows Service with ASP.NET Core</title><content type='html'>&lt;style type=&quot;text/css&quot;&gt;&lt;font size=&quot;3&quot;&gt;&amp;lt;font size=&quot;2&quot;&amp;gt;
p.p1 {margin: 5.0px 0.0px 5.0px 0.0px; font: 12.0px &#39;Times New Roman&#39;}
span.s1 {text-decoration: underline ; color: #0000ff}
&amp;lt;/font&amp;gt;&lt;/font&gt;&lt;/style&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div class=&quot;p1&quot;&gt;&lt;font size=&quot;3&quot;&gt;
In a project one of the requirements was to be able to impersonate the current logged on Windows user.&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div class=&quot;p1&quot;&gt;&lt;font size=&quot;3&quot;&gt;
&lt;br&gt;
&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div class=&quot;p1&quot;&gt;&lt;font size=&quot;3&quot;&gt;
The ASP.NET Core 2.1 project was hosted in a Windows Service. More info about this here:&lt;br&gt;
&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/windows-service?view=aspnetcore-2.1&quot; target=&quot;_blank&quot;&gt;Host ASP.NET Core in a Windows Service&lt;/a&gt;&lt;span class=&quot;s1&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;/font&gt;&lt;/span&gt;&lt;br&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div class=&quot;p1&quot;&gt;&lt;br&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div class=&quot;p1&quot;&gt;&lt;font size=&quot;3&quot;&gt;
The problem was that when doing WindowsIdentity.GetCurrent().Name; what was being returned was the account name used as Log On as for the service. That makes sense since it is that account that is executing the service.&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div class=&quot;p1&quot;&gt;&lt;font size=&quot;3&quot;&gt;
&lt;br&gt;
&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div class=&quot;p1&quot;&gt;&lt;font size=&quot;3&quot;&gt;
This particular project needed to get the current logged on Windows user and check their permissions system wide, that is, check which claims the current user making use of the service has. Claims are the key component by which the outcome of all Web-based authentication and authorization requests are determined. More info on that here: &lt;/font&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/technical-reference/the-role-of-claims&quot; target=&quot;_blank&quot;&gt;The Role of Claims&lt;/a&gt;&lt;span class=&quot;s1&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;/font&gt;&lt;/span&gt;&lt;font size=&quot;3&quot;&gt;.&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div class=&quot;p1&quot;&gt;&lt;font size=&quot;3&quot;&gt;
&lt;br&gt;
&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div class=&quot;p1&quot;&gt;&lt;font size=&quot;3&quot;&gt;
This way we can assure a user belongs to a specific User Group, the user has read permission on some folder, etc.&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div class=&quot;p1&quot;&gt;&lt;font size=&quot;3&quot;&gt;
&lt;br&gt;
&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div class=&quot;p1&quot;&gt;&lt;font size=&quot;3&quot;&gt;
After trying some options, nothing worked. Then I decided to search for “Windows Authentication in ASP.NET Core” using Google and it lead me to this page: &lt;/font&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/aspnet/core/security/authentication/windowsauth?view=aspnetcore-2.1&quot; target=&quot;_blank&quot;&gt;Configure Windows Authentication in ASP.NET Core&lt;/a&gt;&lt;span class=&quot;s1&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;/font&gt;&lt;/span&gt;&lt;font size=&quot;3&quot;&gt;.&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div class=&quot;p1&quot;&gt;&lt;font size=&quot;3&quot;&gt;
Since we’re not hosting the app in IIS, that was a no go. However there’s another option below that page and it’s called HTTP.sys. &lt;/font&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/httpsys?view=aspnetcore-2.1&quot; target=&quot;_blank&quot;&gt;HTTP.sys&lt;/a&gt;&lt;span class=&quot;s1&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;/font&gt;&lt;/span&gt;&lt;font size=&quot;3&quot;&gt; server supports self-hosted scenarios on Windows and that was the way to go.&lt;/font&gt;&lt;/div&gt;&lt;p&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;p&gt;&lt;font size=&quot;3&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;/p&gt;&lt;font size=&quot;2&quot;&gt;&lt;font size=&quot;3&quot;&gt;First thing we need to do is make use of it when creating the WebHost object:&lt;/font&gt;&lt;br&gt;
&lt;br&gt;&lt;/font&gt;
&lt;div style=&quot;line-height: 19px; font-family: consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; font-weight: normal; white-space: pre; background-color: rgb(30, 30, 30);&quot;&gt;
&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(78, 201, 176);&quot;&gt;IWebHostBuilder&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;CreateWebHostBuilder&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;[] &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;args&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(78, 201, 176);&quot;&gt;IConfigurationRoot&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;config&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;WebHost&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;CreateDefaultBuilder&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;args&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;/span&gt;&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;UseConfiguration&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;config&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;/span&gt;&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;UseStartup&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(78, 201, 176);&quot;&gt;Startup&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;gt;()&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(106, 153, 85);&quot;&gt;// Using HTTP.sys for Windows Authentication support&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;UseHttpSys&lt;/span&gt;(&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;options&lt;/span&gt; =&amp;gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;options&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;Authentication&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;Schemes&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;=&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;AuthenticationSchemes&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;NTLM&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;AuthenticationSchemes&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;Negotiate&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;options&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;Authentication&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;AllowAnonymous&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;!--EndFragment--&gt;&lt;br&gt;&lt;font size=&quot;3&quot;&gt;
Then in Startup.cs inside the method ConfigureServices we do:&lt;/font&gt;&lt;br&gt;

&lt;!--StartFragment--&gt;&lt;br&gt;
&lt;div style=&quot;color: rgb(212, 212, 212); line-height: 19px; font-family: consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; font-weight: normal; white-space: pre; background-color: rgb(30, 30, 30);&quot;&gt;
&lt;div&gt;&lt;span style=&quot;color: rgb(106, 153, 85);&quot;&gt;// This method gets called by the runtime.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(106, 153, 85);&quot;&gt;// Use this method to add services to the container.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;ConfigureServices&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(78, 201, 176);&quot;&gt;IServiceCollection&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;services&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;services&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;AddLogging&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;builder&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;builder&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;AddFilter&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&quot;Microsoft&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;LogLevel&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;Warning&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;/span&gt;&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;AddFilter&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&quot;System&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;LogLevel&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;Warning&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;/span&gt;&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;AddConsole&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(106, 153, 85);&quot;&gt;// HTTP.sys server&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(106, 153, 85);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // HttpSysDefaults requires the following import:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(106, 153, 85);&quot;&gt;// using Microsoft.AspNetCore.Server.HttpSys;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; services&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;AddAuthentication&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;HttpSysDefaults&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;AuthenticationScheme&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;
&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;services&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;AddMvc&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;();&lt;br&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
&lt;!--EndFragment--&gt;&lt;br&gt;&lt;font size=&quot;3&quot;&gt;
That&#39;s it.&lt;br&gt;
&lt;br&gt;
Now to impersonate the user we do the following:&lt;/font&gt;&lt;br&gt;

&lt;!--StartFragment--&gt;&lt;br&gt;
&lt;div style=&quot;line-height: 19px; font-family: consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; font-weight: normal; white-space: pre; background-color: rgb(30, 30, 30);&quot;&gt;
&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: rgb(78, 201, 176);&quot;&gt;HttpGet&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(78, 201, 176);&quot;&gt;Task&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(78, 201, 176);&quot;&gt;IActionResult&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;MethodWithImpersonatedWindowsUser&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;[&lt;span style=&quot;color: rgb(78, 201, 176);&quot;&gt;FromQueryAttribute&lt;/span&gt;] &lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;string&lt;/span&gt; &lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;filePath&lt;/span&gt;)&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(106, 153, 85);&quot;&gt;// The user used as Log On as for the Windows Service&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;serviceUser&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;WindowsIdentity&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;GetCurrent&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;Name&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(106, 153, 85);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(106, 153, 85);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // The user to be impersonated&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;userToImpersonate&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color: rgb(78, 201, 176);&quot;&gt;WindowsIdentity&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;HttpContext&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;User&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;Identity&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(106, 153, 85);&quot;&gt;// Impersonating the current Windows user [HttpContext.User.Identity]...&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;await&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;WindowsIdentity&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;RunImpersonated&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; userToImpersonate&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;AccessToken&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; () =&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(106, 153, 85);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // This time WindowsIdentity.GetCurrent() will retrieve the impersonated&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(106, 153, 85);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // user with its claims...&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;impersonatedUser&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;WindowsIdentity&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;GetCurrent&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;Name&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(106, 153, 85);&quot;&gt;// Your business logic code here...  &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(197, 134, 192);&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212);&quot;&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;!--EndFragment--&gt;&lt;br&gt;&lt;font size=&quot;3&quot;&gt;
I saw lots of people asking the same question I made prior to knowing how to handle this requirement: why are we seeing the service user returned instead of the current logged on user when doing WindowsIdentity.GetCurrent()? The answers were to the point: in Windows you can have many user sessions (Remote Desktop, etc) where all are logged on at the same time making use of the Windows Service. So, how to get the current logged on user while still making use of the service? That must come from the HttpContext, that is, from the request arriving from the browser. &lt;/font&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/dotnet/api/system.security.principal.windowsidentity.runimpersonated?view=netframework-4.7.2&quot; target=&quot;_blank&quot;&gt;WindowsIdentity.RunImpersonated&lt;/a&gt;&lt;font size=&quot;3&quot;&gt;&lt;/font&gt;&lt;font size=&quot;3&quot;&gt; makes it all possible. It runs the specified lambda action as the impersonated Windows identity.&lt;/font&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/7399628118452651708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/7399628118452651708'/><link rel='alternate' type='text/html' href='http://www.leniel.net/2018/11/impersonating-current-logged-on-windows-user-when-using-windows-service-with-aspnet-core.html' title='Impersonation in Windows Service with ASP.NET Core'/><author><name>Leniel Maccaferri</name><uri>http://www.blogger.com/profile/17950821674268154143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz4lkIPWpkVzftF8ASC5n8PfZrnuRffrlQrO3Ql8z0baT7qkti-asHJqEoUCc30s3T1NSVfEdrc9YDi9-8fClaqkFEB60YcolxKyOfv51j8NBLUsI5aBcm4fdPzcTRfDk/s113/MeOnJun12-2018.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-4926735770070291800.post-6875267766658403011</id><published>2018-10-22T21:04:00.000-03:00</published><updated>2018-10-22T21:27:50.606-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="class library"/><category scheme="http://www.blogger.com/atom/ns#" term="console application"/><category scheme="http://www.blogger.com/atom/ns#" term="e-mail"/><category scheme="http://www.blogger.com/atom/ns#" term="embedded"/><category scheme="http://www.blogger.com/atom/ns#" term="FluentMail"/><category scheme="http://www.blogger.com/atom/ns#" term="Razor"/><category scheme="http://www.blogger.com/atom/ns#" term="view"/><title type='text'>Using the power of Razor Views embedded in external class library with FluentEmail</title><content type='html'>&lt;font size=&quot;3&quot;&gt;Just got this working and would like to share how to get it configured since I could not find an explanation anywhere.&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;&lt;a href=&quot;https://github.com/lukencode/FluentEmail&quot; target=&quot;_blank&quot;&gt;&lt;font size=&quot;3&quot;&gt;FluentEmail&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot;&gt; - All in one email sender for .NET and .NET Core is a great library to send e-mails.&lt;br&gt;
&lt;br&gt;
Currently I have a full .NET 4.7.2 Console Application that makes use of FluentEmail.&lt;br&gt;
My desire with it was to store the e-mail template (&lt;/font&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-2.1&amp;amp;tabs=visual-studio&quot; target=&quot;_blank&quot;&gt;&lt;font size=&quot;3&quot;&gt;Razor&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot;&gt; .cshtml view) in an external class library and be able to use this view\template in the Console Application.&lt;br&gt;
&lt;br&gt;
FluentEmail GitHub page has a sample code that shows how to consume that:&lt;/font&gt;&lt;br&gt;
&lt;div&gt;&lt;br&gt;
&lt;/div&gt;&lt;div style=&quot;color: black; line-height: 19px; font-family: consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; font-weight: normal; white-space: pre; background-color: white;&quot;&gt;&lt;div style=&quot;color: rgb(212, 212, 212); line-height: 19px; background-color: rgb(30, 30, 30);&quot;&gt;
&lt;div&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;email&lt;/span&gt; = &lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: rgb(78, 201, 176);&quot;&gt;Email&lt;/span&gt;(&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&lt;a href=&quot;mailto:bob@hotmail.com&quot;&gt;bob@hotmail.com&lt;/a&gt;&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;To&lt;/span&gt;(&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&lt;a href=&quot;mailto:benwholikesbeer@twitter.com&quot;&gt;benwholikesbeer@twitter.com&lt;/a&gt;&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;Subject&lt;/span&gt;(&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&quot;Hey cool name!&quot;&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;UsingTemplateFromEmbedded&lt;/span&gt;(&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&quot;Example.Project.Namespace.template-name.cshtml&quot;&lt;/span&gt;,&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;new&lt;/span&gt; { &lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;Name&lt;/span&gt; = &lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&quot;Bob&quot;&lt;/span&gt; },&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;TypeFromYourEmbeddedAssembly&lt;/span&gt;.&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;GetType&lt;/span&gt;().&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;GetTypeInfo&lt;/span&gt;().&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;Assembly&lt;/span&gt;);&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;
&lt;!--EndFragment--&gt;&lt;/div&gt;
&lt;div style=&quot;line-height: 19px; background-color: white;&quot;&gt;&lt;font size=&quot;3&quot;&gt;
Steps:&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div style=&quot;line-height: 19px; background-color: white;&quot;&gt;&lt;font size=&quot;3&quot;&gt;
&lt;br&gt;
1 - Create a Razor Class Library project. More on that can be found here:&lt;br&gt;
&lt;span style=&quot;white-space: pre;&quot;&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/aspnet/core/razor-pages/ui-class?view=aspnetcore-2.1&amp;amp;tabs=visual-studio&quot; target=&quot;_blank&quot;&gt;Create reusable UI using the Razor Class Library project in ASP.NET Core&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div style=&quot;line-height: 19px; background-color: white;&quot;&gt;&lt;font size=&quot;3&quot;&gt;
&lt;span style=&quot;white-space: pre;&quot;&gt;It uses .NET Standard 2.0 as its Target framework.&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
&lt;span style=&quot;white-space: pre;&quot;&gt;2 - Add Microsoft.AspNetCore.Mvc.Core NuGet package to the class library.&lt;/span&gt;&lt;br&gt;
&lt;span style=&quot;white-space: pre;&quot;&gt;This is to have Intellisense, etc in Visual Studio.&lt;/span&gt;&lt;br&gt;
&lt;/font&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;font size=&quot;3&quot;&gt;
&lt;span style=&quot;white-space: pre;&quot;&gt;&lt;i&gt;Install-Package Microsoft.AspNetCore.Mvc.Core -Version 2.1.3&lt;/i&gt;&lt;/span&gt;&lt;br&gt;
&lt;/font&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;font size=&quot;3&quot;&gt;
&lt;span style=&quot;white-space: pre;&quot;&gt;3 - Add &lt;/span&gt;a Razor view called &lt;strong&gt;EmailTemplate.cshtml&lt;/strong&gt; to your class library.&lt;br&gt;
&lt;br&gt;
4 - Right click it in Solution Explorer and select Properties. In Build Action, select &lt;strong&gt;Embedded resource&lt;/strong&gt;.&lt;br&gt;
&lt;br&gt;
5 - Add the following code to your Razor View:&lt;/font&gt;&lt;br&gt;
&lt;!--StartFragment--&gt;&lt;!--EndFragment--&gt;&lt;br&gt;
&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212); line-height: 19px; font-family: consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; font-weight: normal; white-space: pre; background-color: rgb(30, 30, 30);&quot;&gt;&lt;div&gt;
&lt;span style=&quot;color: rgb(197, 134, 192);&quot;&gt;@model &lt;/span&gt;&lt;span style=&quot;color: rgb(78, 201, 176);&quot;&gt;dynamic&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;!&lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;DOCTYPE&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;html&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;html&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;head&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;meta&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;charset&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&quot;utf-8&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;S&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;ome Title&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;base&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&quot;/&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;    @*&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;link&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&quot;css/bootstrap/bootstrap.min.css&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;rel&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&quot;stylesheet&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;link&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&quot;css/site.css&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;rel&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&quot;stylesheet&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&quot;_framework/blazor.webassembly.js&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;*@&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;head&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; E-mail template&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hey &lt;/span&gt;&lt;span style=&quot;color: rgb(197, 134, 192);&quot;&gt;@Model.Name&lt;/span&gt;,&amp;lt;br&amp;gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: rgb(244, 71, 71);&quot;&gt;font&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;size&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&quot;14&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;You are so &lt;/span&gt;&lt;span style=&quot;color: rgb(197, 134, 192);&quot;&gt;@Model.Compliment&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&amp;lt;/font&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;html&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style=&quot;line-height: 19px; background-color: white;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-size: 14px; white-space: pre;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;font face=&quot;Arial&quot;&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 19px; background-color: white;&quot;&gt;&lt;font face=&quot;Arial&quot;&gt;&lt;font size=&quot;3&quot;&gt;Note that I’m using &lt;/font&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/types/using-type-dynamic&quot; target=&quot;_blank&quot;&gt;&lt;font size=&quot;3&quot;&gt;dynamic&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot;&gt; in the view code. This is just for testing. You can have full blown Models and use them in the templates as well.&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 19px; background-color: white;&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 19px; background-color: white;&quot;&gt;&lt;font face=&quot;Arial&quot; size=&quot;3&quot;&gt;6 - In your Console Application add a reference to the Class Library created in step 1.&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div style=&quot;line-height: 19px; background-color: white;&quot;&gt;&lt;font size=&quot;3&quot;&gt;
&lt;br&gt;
&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div style=&quot;line-height: 19px; background-color: white;&quot;&gt;&lt;font size=&quot;3&quot;&gt;
7 - In your FluentEmail code, do the following in &lt;strong&gt;UsingTemplateFromEmbedded&lt;/strong&gt; method:&lt;/font&gt;&lt;/div&gt;
&lt;div style=&quot;line-height: 19px; background-color: white;&quot;&gt;&lt;br&gt;&lt;/div&gt;
&lt;div style=&quot;line-height: 19px; background-color: white;&quot;&gt;
&lt;!--StartFragment--&gt;&lt;!--EndFragment--&gt;&lt;/div&gt;
&lt;div style=&quot;color: rgb(212, 212, 212); line-height: 19px; font-family: consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; font-weight: normal; white-space: pre; background-color: rgb(30, 30, 30);&quot;&gt;&lt;div&gt;
&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;email&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;To&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;configuration&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&quot;emailTo&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;])&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;/span&gt;&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;SetFrom&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;configuration&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&quot;emailFrom&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;])&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;/span&gt;&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;Subject&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;configuration&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&quot;emailSubject&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;])&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;/span&gt;&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;UsingTemplateFromEmbedded&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;YourCompany.YourRazorClassLibrary.EmailTemplate.cshtml&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;Name&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&quot;Leniel Maccaferri&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;Compliment&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&quot;Cool&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt; },&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;Assembly&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;Load&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;YourCompany.YourRazorClassLibrary&lt;/span&gt;&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(212, 212, 212);&quot;&gt;));&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;
&lt;br&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;3&quot;&gt;The first parameter is the full class library (DLL) name + dot + Razor view name with .cshtml extension. The second parameter is the &lt;a href=&quot;https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/anonymous-types&quot; target=&quot;_blank&quot;&gt;anonymous type&lt;/a&gt; that will be passed as the Model to the view and the third parameter is the class library assembly &lt;font size=&quot;3&quot;&gt;itself.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;3&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;3&quot;&gt;You&#39;re good to go!&lt;br&gt;
&lt;br&gt;
This gives you a lot of flexibility.&lt;br&gt;
&lt;br&gt;
You can add images, customize the HTML, CSS, have &lt;/font&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-2.1&amp;amp;tabs=visual-studio#using-layouts-partials-templates-and-tag-helpers-with-razor-pages&quot; target=&quot;_blank&quot;&gt;&lt;font size=&quot;3&quot;&gt;Layout pages&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;3&quot;&gt;, etc.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;3&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size=&quot;3&quot;&gt;Hope it helps.&lt;/font&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/6875267766658403011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/6875267766658403011'/><link rel='alternate' type='text/html' href='http://www.leniel.net/2018/10/using-power-razor-views-embedded-external-class-library-fluentemail.html' title='Using the power of Razor Views embedded in external class library with FluentEmail'/><author><name>Leniel Maccaferri</name><uri>http://www.blogger.com/profile/17950821674268154143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz4lkIPWpkVzftF8ASC5n8PfZrnuRffrlQrO3Ql8z0baT7qkti-asHJqEoUCc30s3T1NSVfEdrc9YDi9-8fClaqkFEB60YcolxKyOfv51j8NBLUsI5aBcm4fdPzcTRfDk/s113/MeOnJun12-2018.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-4926735770070291800.post-371778770530703398</id><published>2018-05-08T14:00:00.000-03:00</published><updated>2018-05-08T14:35:57.032-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="PowerShell"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="script"/><title type='text'>Mixing C# source code with PowerShell script code to speed your development</title><content type='html'>I had some C# code ready but needed to use it inside a &lt;a href=&quot;https://docs.microsoft.com/en-us/powershell/&quot; target=&quot;_blank&quot;&gt;PowerShell&lt;/a&gt; script.&lt;br&gt;&lt;br&gt; At StackOverflow I found &lt;a href=&quot;https://stackoverflow.com/a/2143945/114029&quot; target=&quot;_blank&quot;&gt;some code&lt;/a&gt; that put me in the right path. So here&#39;s a practical example when mixing codes inside a PowerShell script file:&lt;br&gt;&lt;br&gt; &lt;div style=&quot;line-height: 19px; font-family: consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; background-color: white;&quot;&gt;     &lt;div&gt;. &lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&quot;.\Invoke-Parallel.ps1&quot; &lt;/span&gt;&lt;span style=&quot;color: green;&quot;&gt;# Importing another script into this PowerShell script file&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;$&lt;/span&gt;csharpSource = &lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;@&quot;&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;using System;&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;using System.Collections.Generic;&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;using System.Linq;&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;public class DateExtensions&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;{&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;         &lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static List&amp;lt;Tuple&amp;lt;DateTime, DateTime&amp;gt;&amp;gt; &lt;tuple atetime=&quot;&quot; datetime=&quot;&quot;&gt;GetWeeksBetweenDates(DateTime startDate, DateTime endDate)&lt;/tuple&gt;         &lt;/span&gt;     &lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;var weeks = new List&amp;lt;Tuple&amp;lt;DateTime, DateTime&amp;gt;&amp;gt;();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (DateTime date = startDate; date &amp;lt;= endDate; date = date.AddDays(8))&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var weekEnd = date.AddDays(7);&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; weeks.Add(new Tuple&amp;lt;DateTime, DateTime&amp;gt;&lt;datetime datetime=&quot;&quot;&gt;(date, weekEnd &amp;lt;= endDate ? weekEnd : endDate));&lt;/datetime&gt;         &lt;/span&gt;     &lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return weeks;&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;}&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&quot;@&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;Add-Type -TypeDefinition &lt;span style=&quot;color: blue;&quot;&gt;$&lt;/span&gt;csharpSource &lt;span style=&quot;color: green;&quot;&gt;# Includes the C# code defined above to be called through the PowerShell script&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;$&lt;/span&gt;appPath = &lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&quot;C:\SomeFolder&quot;&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;$&lt;/span&gt;startDate = &lt;span style=&quot;color: red;&quot;&gt;[datetime]&lt;/span&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&#39;6/1/2017&#39;&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;$&lt;/span&gt;endDate = &lt;span style=&quot;color: red;&quot;&gt;[datetime]&lt;/span&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&#39;5/5/2018&#39;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;$&lt;/span&gt;weeks = &lt;span style=&quot;color: red;&quot;&gt;[DateExtensions]&lt;/span&gt;::GetWeeksBetweenDates&lt;span style=&quot;color: blue;&quot;&gt;($&lt;/span&gt;startDate, &lt;span style=&quot;color: blue;&quot;&gt;$&lt;/span&gt;endDate&lt;span style=&quot;color: blue;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: green;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: green;&quot;&gt;#Calls MyApp in batches, that is, for each week...&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;$&lt;/span&gt;weeks | Invoke-Parallel -ImportVariables -ScriptBlock {&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;     &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set-Location -Path &lt;span style=&quot;color: blue;&quot;&gt;$&lt;/span&gt;appPath&lt;/div&gt;     &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $&lt;/span&gt;date = &lt;span style=&quot;color: red;&quot;&gt;[string]&lt;/span&gt;::Format&lt;span style=&quot;color: blue;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(163, 21, 21);&quot;&gt;&quot;{0:yyyyMMdd},{1:yyyyMMdd}&quot;&lt;/span&gt;, &lt;span style=&quot;color: blue;&quot;&gt;$&lt;/span&gt;_.Item1, &lt;span style=&quot;color: blue;&quot;&gt;$&lt;/span&gt;_.Item2&lt;span style=&quot;color: blue;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style=&quot;color: green;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Write-Host $date&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: green;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dotnet MyApp.dll budat=&lt;span style=&quot;color: blue;&quot;&gt;$&lt;/span&gt;date cpudt=&lt;span style=&quot;color: blue;&quot;&gt;$&lt;/span&gt;date &lt;span style=&quot;color: green;&quot;&gt;# Calls .NET Core &quot;executable&quot; DLL for each week&lt;/span&gt;&lt;/div&gt;     &lt;div&gt;}&lt;/div&gt;     &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;pause &lt;span style=&quot;color: green;&quot;&gt;#Keeps PowerShell window open to see the results&lt;/span&gt;&lt;/div&gt; &lt;/div&gt; &lt;br&gt;As we see in the code above, the variable &lt;span style=&quot;color: blue; font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 14px; background-color: white;&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 14px; white-space: pre; background-color: white;&quot;&gt;csharpSource&lt;/span&gt; holds the C# source code that later will called in the PowerShell script.&lt;br&gt; &lt;br&gt; We then add\mix the C# code to\with PowerShell with the command &lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 14px; white-space: pre; background-color: white;&quot;&gt;Add-Type&lt;/span&gt; passing to it the &lt;span style=&quot;color: blue; font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 14px; white-space: pre; background-color: white;&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 14px; white-space: pre; background-color: white;&quot;&gt;csharpSource&lt;/span&gt; variable that holds the source code. Simple as that.&lt;br&gt;&lt;br&gt; Inside PowerShell script code we call the method defined in C# code with:&lt;br&gt;&lt;br&gt; &lt;span style=&quot;color: blue; font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 14px; white-space: pre; background-color: white;&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 14px; white-space: pre; background-color: white;&quot;&gt;weeks &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 14px; white-space: pre; background-color: white;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 14px; white-space: pre; background-color: white;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: red; font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 14px; white-space: pre; background-color: white;&quot;&gt;[DateExtensions]&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 14px; white-space: pre; background-color: white;&quot;&gt;::GetWeeksBetweenDates&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 14px; white-space: pre; background-color: white;&quot;&gt;($&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 14px; white-space: pre; background-color: white;&quot;&gt;startDate&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 14px; white-space: pre; background-color: white;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 14px; white-space: pre; background-color: white;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 14px; white-space: pre; background-color: white;&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 14px; white-space: pre; background-color: white;&quot;&gt;endDate&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &amp;quot;consolas&amp;quot; , &amp;quot;courier new&amp;quot; , monospace; font-size: 14px; white-space: pre; background-color: white;&quot;&gt;)&lt;/span&gt;&lt;br&gt;&lt;br&gt; This is pretty useful because we don&#39;t need to convert our C# code to PowerShell idiom.&lt;br&gt;&lt;br&gt; Hope it helps.&lt;br&gt;&lt;br&gt; &lt;b&gt;Reference:&lt;/b&gt;&lt;br&gt; &lt;a href=&quot;https://stackoverflow.com/a/2143945/114029&quot; target=&quot;_blank&quot;&gt;How to convert C# code to a PowerShell Script?&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/371778770530703398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/371778770530703398'/><link rel='alternate' type='text/html' href='http://www.leniel.net/2018/05/mixing-csharp-source-code-with-powershell-script-to-speed-development.html' title='Mixing C# source code with PowerShell script code to speed your development'/><author><name>Leniel Maccaferri</name><uri>http://www.blogger.com/profile/17950821674268154143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz4lkIPWpkVzftF8ASC5n8PfZrnuRffrlQrO3Ql8z0baT7qkti-asHJqEoUCc30s3T1NSVfEdrc9YDi9-8fClaqkFEB60YcolxKyOfv51j8NBLUsI5aBcm4fdPzcTRfDk/s113/MeOnJun12-2018.JPG'/></author></entry><entry><id>tag:blogger.com,1999:blog-4926735770070291800.post-6779649058596543368</id><published>2017-07-04T13:55:00.000-03:00</published><updated>2017-07-04T15:09:27.117-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apache"/><category scheme="http://www.blogger.com/atom/ns#" term="big data"/><category scheme="http://www.blogger.com/atom/ns#" term="data"/><category scheme="http://www.blogger.com/atom/ns#" term="database"/><category scheme="http://www.blogger.com/atom/ns#" term="dump"/><category scheme="http://www.blogger.com/atom/ns#" term="masters degree"/><category scheme="http://www.blogger.com/atom/ns#" term="Scala"/><category scheme="http://www.blogger.com/atom/ns#" term="Spark"/><category scheme="http://www.blogger.com/atom/ns#" term="StackOverflow"/><title type='text'>Processing Stack Overflow data dump with Apache Spark</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
This post is about the final work I did for one of the disciplines of the Master&#39;s degree I&#39;m currently attending at UFRJ - Federal University of Rio de Janeiro in the branch of Data and Knowledge Engineering (Databases) that is under the division of Computer and Systems Engineering department at COPPE\UFRJ.&lt;/div&gt;
&lt;br /&gt;
The discipline is called Special Topics in Databases IV and is taught by professor Alexandre Bento de Assis Lima.&lt;br /&gt;
&lt;br /&gt;
The presentation (PPT slides) is in Brazilian Portuguese. I&#39;ll translate the slides to English in this blog post. They give an overall view about the work done.&lt;br /&gt;
&lt;br /&gt;
The final paper is written in English.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Files&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
-&amp;nbsp;&lt;a href=&quot;https://drive.google.com/open?id=0B4SVxswDPXtwaU9fc2pCRThEb2s&quot; target=&quot;_blank&quot;&gt;Trabalho prático sobre Apache Spark envolvendo um problema típico de Big Data (apresentação\presentation).pdf&lt;/a&gt;&amp;nbsp;(in Portuguese)&lt;br /&gt;
&lt;br /&gt;
-&amp;nbsp;&lt;a href=&quot;https://drive.google.com/open?id=0B4SVxswDPXtwMk5ldnQzeTQzbWM&quot; target=&quot;_blank&quot;&gt;Processing Stack Overflow data dump with Apache Spark&lt;/a&gt;&amp;nbsp;(in English)&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;Abstract.&amp;nbsp;&lt;/b&gt;This paper describes the process involved in building an ETL tool based on Apache Spark. It imports XML data from Stack Overflow data dump.&lt;br /&gt;
The XML files are processed using Spark XML library and converted to a DataFrame object. The DataFrame data is then queried with Spark SQL library.&lt;br /&gt;
Two applications were developed: spark-backend and spark-frontend. The first one contains the code responsible for dealing with Spark while the later one is user centric allowing the users to consume the data processed by Spark.&lt;/blockquote&gt;
&lt;br /&gt;
All &lt;a href=&quot;https://github.com/leniel/SparkEclipse&quot; target=&quot;_blank&quot;&gt;the code developed&lt;/a&gt; is in English and should be easy to read.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Presentation&lt;/b&gt;&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Objective&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Problem&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Technologies&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Strategy used to acquire the data&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Development&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Links&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Objective&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Put into practice the concepts presented during the classes.&lt;/li&gt;
&lt;li&gt;Have a closer contact with modern technologies used to process Big Data.&lt;/li&gt;
&lt;li&gt;Automate the Extraction\Mining of valuable\interesting information hidden in the immensity of data.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;li&gt;&lt;b&gt;Problem&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Analyse StackOverflow data dump available on the internet on a monthly basis.&lt;/li&gt;
&lt;li&gt;The data dump is composed of a set of XML files compacted with the .7z extension.&lt;/li&gt;
&lt;li&gt;Even after compaction the biggest file has 15.3 GB. This size is directly linked to the data volume handled by Big Data.&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTlJgLuwd3OKlHz794aw8WJZ52fKkFhwr5nSiIJoHRFcOp1J57L0UyYE8-1Z8o-E7pgTY3l8M3aqOo1A9TiOTtw_o0IvIjw3yJ3kJxLp61-XTe2Mq35Am78jAgt77YiJShT0xQ-_2KZ0U/s1600/Picture1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;720&quot; data-original-width=&quot;1440&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTlJgLuwd3OKlHz794aw8WJZ52fKkFhwr5nSiIJoHRFcOp1J57L0UyYE8-1Z8o-E7pgTY3l8M3aqOo1A9TiOTtw_o0IvIjw3yJ3kJxLp61-XTe2Mq35Am78jAgt77YiJShT0xQ-_2KZ0U/s400/Picture1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Spark at first will be used as an ETL tool (ETL = Extract &amp;gt; Transform &amp;gt; Load) to prepare the data consumed by a front-end web app.&lt;/li&gt;
&lt;li&gt;&quot;At first&quot; because there&#39;s also the possibility of using Spark as a tool to process the data that&#39;ll be shown in the web app.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;li&gt;&lt;b&gt;Technologies&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Apache Spark 2.0.1 +&lt;/li&gt;
&lt;li&gt;Spark XML 0.4.1 +&lt;/li&gt;
&lt;li&gt;Spark SQL 2.0.2&lt;/li&gt;
&lt;li&gt;Ubuntu 16.04 LTS (Xenial Xerus)&lt;/li&gt;
&lt;li&gt;Linux VM (virtual machine) running on Parallels Desktop 12 for Mac&lt;/li&gt;
&lt;li&gt;Scala 2.11.8&lt;/li&gt;
&lt;li&gt;XML (Extensible Markup Language)&lt;/li&gt;
&lt;li&gt;XSL (Extensible Stylesheet Language)&lt;/li&gt;
&lt;li&gt;Play Framework 2.5 (front end)&lt;/li&gt;
&lt;li&gt;Eclipse Neon 4.6.1 with Scala IDE 4.5.0 plugin as the IDE&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;li&gt;&lt;b&gt;Strategy used to acquire the data&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Got the .torrent file that contains all the data dumps from Stack Exchange family of sites - &lt;a href=&quot;https://archive.org/details/stackexchange&quot; target=&quot;_blank&quot;&gt;https://archive.org/details/stackexchange&lt;/a&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://archive.org/details/stackexchange&quot; target=&quot;_blank&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7yoBpFtJrTZQWGXB1D2CD8NGRy9m6fTr32cXHNYgurwXWt3QwWxb6R2ayi948Gt4_FJT0QMxymTU8DNDaxcWYcIa2s8kEOTk0UeNh_0cnpmkAT3J8h-Uhebpc9k0AbdAqhLfaYFJP7os/s1600/Picture2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;1440&quot; height=&quot;250&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7yoBpFtJrTZQWGXB1D2CD8NGRy9m6fTr32cXHNYgurwXWt3QwWxb6R2ayi948Gt4_FJT0QMxymTU8DNDaxcWYcIa2s8kEOTk0UeNh_0cnpmkAT3J8h-Uhebpc9k0AbdAqhLfaYFJP7os/s400/Picture2.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Selected the eight .7z files related to StackOverflow: stackoverflow.com-Badges.7z, stackoverflow.com-Comments.7z, stackoverflow.com-PostHistory.7z, stackoverflow.com-PostLinks.7z, stackoverflow.com-Posts.7z, stackoverflow.com-Tags.7z, stackoverflow.com-Users.7z, stackoverflow.com-Votes.7z&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;li&gt;&lt;b&gt;Development&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;To make the work viable (running locally out of a cluster), a single .xml file [Users.xml] was used. A subset of 100.000 lines (32.7 MB) was selected. This file has a total of 5,987.287 lines (1.8 GB).&lt;/li&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;hadoop@ubuntu:/media/psf/FreeAgent GoFlex Drive/Downloads$ head -100000 Users.xml &amp;gt; Users100000.xml&lt;/span&gt;&lt;/div&gt;
&lt;li&gt;The file Users.xsl was used covert Users100000.xml data to the format expected by spark-xml library. The result was saved to Users100000.out.xml.&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYd0TnyBeRTZztEMWVu04yWnixje1MUjFDJ1MUcJJAZGuBPKVrhx4lY_h4vxssyBEPCD-JTDaFUmEDConxcVokj6Ge_RCeYJhcGQ31obMXAmddXq46hvLXbaQKaNtEhQ6IvmOvpe9ySoU/s1600/Picture4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;1440&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYd0TnyBeRTZztEMWVu04yWnixje1MUjFDJ1MUcJJAZGuBPKVrhx4lY_h4vxssyBEPCD-JTDaFUmEDConxcVokj6Ge_RCeYJhcGQ31obMXAmddXq46hvLXbaQKaNtEhQ6IvmOvpe9ySoU/s320/Picture4.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit4sI8lHgcvr6lcCLNNsUW-vEuSfxCXu0kDo6NOKQKxHTpFL9QAWJ5_GtV6fJlArwZ08IwF6ss3kkNvv0_nH8ObTVrIyXsu6wGOhwmDZw3wO6w56-UNPbO8pIEQ3fwalzZkc8I4FvQVho/s1600/Picture5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;1033&quot; height=&quot;278&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit4sI8lHgcvr6lcCLNNsUW-vEuSfxCXu0kDo6NOKQKxHTpFL9QAWJ5_GtV6fJlArwZ08IwF6ss3kkNvv0_nH8ObTVrIyXsu6wGOhwmDZw3wO6w56-UNPbO8pIEQ3fwalzZkc8I4FvQVho/s320/Picture5.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi3U_zaeUN4u475u-Xodbk-0Eac5cp13807bF1vP9lzNYp5WfcEETRPpJ-V6LFY-dvkSQ23nKhmd64yGtaRbwKhR628FltrcKySaR37tUoMqV5uj6Fp9KT6WWmglbYwUayc-VUU8JcqWE/s1600/Picture6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;1440&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi3U_zaeUN4u475u-Xodbk-0Eac5cp13807bF1vP9lzNYp5WfcEETRPpJ-V6LFY-dvkSQ23nKhmd64yGtaRbwKhR628FltrcKySaR37tUoMqV5uj6Fp9KT6WWmglbYwUayc-VUU8JcqWE/s320/Picture6.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;The .xml and .xsl files were placed into the input folder of the Scala project [spark-backend] inside Eclipse.&lt;/li&gt;
&lt;li&gt;The application spark-backend read the file Users100000.out.xml through Spark XML and transforms it into a DataFrame object.&lt;/li&gt;
&lt;li&gt;The Spark SQL library is used subsequently to search the data. Some sample queries were created.&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEzsjDcOrMY5rsqmuPmfNRUSRW6V8gG1PCcjWWDAhWyOeJeQWEw3FAdOtv7VK9c4GvcaXqnywxvdTbdO3iA_V6VZjvYIkbiSeAC7SmVNwIT3NEQ66s_VXKPo148zNm93HkWcSP4PYv_tg/s1600/Picture7.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;1440&quot; height=&quot;250&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEzsjDcOrMY5rsqmuPmfNRUSRW6V8gG1PCcjWWDAhWyOeJeQWEw3FAdOtv7VK9c4GvcaXqnywxvdTbdO3iA_V6VZjvYIkbiSeAC7SmVNwIT3NEQ66s_VXKPo148zNm93HkWcSP4PYv_tg/s400/Picture7.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Each query generates a CSV file (SaveDfToCsv) to be consumed in a later stage by a web application [spark-frontend], that is, Spark is used as an ETL tool.&lt;/li&gt;
&lt;li&gt;The result of each query is saved in multiple files in the folder output. This happens because Spark was conceived to execute jobs in a cluster (multiple nodes\computers).&lt;/li&gt;
&lt;li&gt;For testing purposes, a method that renames the CSV file was created. This method copies the generated CSV to a folder called csv. The destiny folder can be configured in the file conf/spark-backend.properties.&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitwf1w72VfSj0gVVUh58CjmNvLgW6qYEbGBd__uMJiU-hq2_Y0H050ODa6Jd1BHcn2fQzAuQa2HNhXW3-ExLt_7PuA4clAUI7gZKtzgiS5YTrHnE-x2ES2wExbIQCptqqnx1WeGyF-dGQ/s1600/Picture8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;1440&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitwf1w72VfSj0gVVUh58CjmNvLgW6qYEbGBd__uMJiU-hq2_Y0H050ODa6Jd1BHcn2fQzAuQa2HNhXW3-ExLt_7PuA4clAUI7gZKtzgiS5YTrHnE-x2ES2wExbIQCptqqnx1WeGyF-dGQ/s320/Picture8.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyAB4A8vJ25Q8e1mQQhd5SmdscXihCi2jrCneoLq_NXPFwZRJLwlRzyIRK6TSuozUHzGUGizR6xLXuoE4dvUO9Ua3pfllKtWE3qKFVqKMNadhDYy4ak1kYHTy_ZkOelsspe6v0i8AJdqE/s1600/Picture9.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;1440&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyAB4A8vJ25Q8e1mQQhd5SmdscXihCi2jrCneoLq_NXPFwZRJLwlRzyIRK6TSuozUHzGUGizR6xLXuoE4dvUO9Ua3pfllKtWE3qKFVqKMNadhDYy4ak1kYHTy_ZkOelsspe6v0i8AJdqE/s320/Picture9.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW4CmAVNTrR7uoS_KGplWA29Wa2puWAr3U1jkjPE3uwIf6Jd5RaTwdrAOHZMU__nSf0YXneXTj4BZjRzs4ytk83z3M4dXhrMz_MsjQKYon7DELP2RQ5TCh285PkAi6uqSErm4SQYTVQ4c/s1600/Picture10.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;1440&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW4CmAVNTrR7uoS_KGplWA29Wa2puWAr3U1jkjPE3uwIf6Jd5RaTwdrAOHZMU__nSf0YXneXTj4BZjRzs4ytk83z3M4dXhrMz_MsjQKYon7DELP2RQ5TCh285PkAi6uqSErm4SQYTVQ4c/s320/Picture10.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh56iYr-K3SWQGj1fE9wHJvgZSOTLaYrOSfmj3yE3d-D9KQycYw2oI7_0vcOlYhHBT9DEM94OuXfVL4l5cT_RMWsrZlIo1a_qp0UMkcVm4xGcb27UOxYikVC0dC3E64tDHaamLSDAvvGn8/s1600/Picture11.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;1440&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh56iYr-K3SWQGj1fE9wHJvgZSOTLaYrOSfmj3yE3d-D9KQycYw2oI7_0vcOlYhHBT9DEM94OuXfVL4l5cT_RMWsrZlIo1a_qp0UMkcVm4xGcb27UOxYikVC0dC3E64tDHaamLSDAvvGn8/s320/Picture11.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;The application [spark-backend] can be executed inside Eclipse or through the command line in Terminal using the command spark-submit.&lt;/li&gt;
&lt;li&gt;In the command line we make use of the JAR file produced during the project build in Eclipse. We pass as parameters the necessary packages as below:&lt;/li&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;spark-submit --packages com.databricks:spark-xml_2.11:0.4.1 -- class com.lenielmacaferi.spark.ProcessUsersXml - -master local com.lenielmacaferi.spark- backend-0.0.1-SNAPSHOT.jar&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4DgTBTdw7gMds31H2JJzKDxIa9oxyq3_oirIjalZZsPezxFrds8pdv_f-ecg9uUyxn156TPy2HZH1LJn2dFIxYXVM_O-2FLYUV2J0zUKgv-2qdsHiD-FL1WQiOqNDC0mn9s5fq4GBqwE/s1600/Picture12.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;1440&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4DgTBTdw7gMds31H2JJzKDxIa9oxyq3_oirIjalZZsPezxFrds8pdv_f-ecg9uUyxn156TPy2HZH1LJn2dFIxYXVM_O-2FLYUV2J0zUKgv-2qdsHiD-FL1WQiOqNDC0mn9s5fq4GBqwE/s320/Picture12.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/span&gt;
&lt;li&gt;The application [spark-frontend] was built with Play Framework (The High Velocity Web Framework For Java and Scala).&lt;/li&gt;
&lt;li&gt;The user opens spark-frontend main page at localhost:9000 and has access to the list of CSV files generated by [spark-backend] application.&lt;/li&gt;
&lt;li&gt;When clicking a file name, the CSV file is sent to the user&#39;s computer. The user can then use any spreadsheet software to open and post-process\analyse\massage the data.&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgV5ziH8PW_aaxXV7ahtDVSP9sA90LNX-HcjlprKZFhDgMA7FghzQR0TFvZebgQkxhTBC9RQ-gVP-ln_QJjavjMiAstP_zeHrn3fxlC947BP6ptLDvWYbMMZUQlzwsQ63s8b0xmJvFtQVc/s1600/Picture13.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;1440&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgV5ziH8PW_aaxXV7ahtDVSP9sA90LNX-HcjlprKZFhDgMA7FghzQR0TFvZebgQkxhTBC9RQ-gVP-ln_QJjavjMiAstP_zeHrn3fxlC947BP6ptLDvWYbMMZUQlzwsQ63s8b0xmJvFtQVc/s320/Picture13.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG4KliGPSHh_Rg_8XCNx7C_0ISnjIsVIuGcUpc7hEyiXsKVpJRyz_di-HtCby_oA-jonRp3gdr6aodLQIEZKz_qtgLpbTh8OGOgrGQEVAX4WFOI8bko1hTBLfHKdM83YXRKuzE3LViQrM/s1600/Picture14.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;900&quot; data-original-width=&quot;1440&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG4KliGPSHh_Rg_8XCNx7C_0ISnjIsVIuGcUpc7hEyiXsKVpJRyz_di-HtCby_oA-jonRp3gdr6aodLQIEZKz_qtgLpbTh8OGOgrGQEVAX4WFOI8bko1hTBLfHKdM83YXRKuzE3LViQrM/s320/Picture14.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;li&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;With Spark&#39;s help we can develop interesting solutions as for example: a daily job that can download and upload data to a folder &quot;input&quot; processing the data along the way in many different ways.&lt;/li&gt;
&lt;li&gt;Using custom made code we can work with the data in a cluster (fast processing) using a rich API full of methods and resources. In addition, we have at our disposal inumerous additional libraries\plugins developed by the developer community. Put together all the power of Scala and Java and their accompanying libraries.&lt;/li&gt;
&lt;li&gt;The application demonstrated can be easily executed in a cluster. We only need to change some parameters in the object SparkConf.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;li&gt;&lt;b&gt;Links&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Source code @&amp;nbsp;GitHub - &lt;a href=&quot;https://github.com/leniel/SparkEclipse&quot; target=&quot;_blank&quot;&gt;https://github.com/leniel/SparkEclipse&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Apache Spark - &lt;a href=&quot;https://spark.apache.org/&quot; target=&quot;_blank&quot;&gt;https://spark.apache.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Spark XML - &lt;a href=&quot;https://github.com/databricks/spark-xml&quot; target=&quot;_blank&quot;&gt;https://github.com/databricks/spark-xml&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Spark SQL - &lt;a href=&quot;http://spark.apache.org/sql/&quot; target=&quot;_blank&quot;&gt;http://spark.apache.org/sql/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Scala - &lt;a href=&quot;https://www.scala-lang.org/&quot; target=&quot;_blank&quot;&gt;https://www.scala-lang.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ubuntu - &lt;a href=&quot;https://www.ubuntu.com/&quot; target=&quot;_blank&quot;&gt;https://www.ubuntu.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Eclipse - &lt;a href=&quot;https://eclipse.org/&quot; target=&quot;_blank&quot;&gt;https://eclipse.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ol&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/6779649058596543368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/6779649058596543368'/><link rel='alternate' type='text/html' href='http://www.leniel.net/2017/07/apache-spark-practical-work-involving-big-data-typical-problem.html' title='Processing Stack Overflow data dump with Apache Spark'/><author><name>Leniel Maccaferri</name><uri>http://www.blogger.com/profile/17950821674268154143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz4lkIPWpkVzftF8ASC5n8PfZrnuRffrlQrO3Ql8z0baT7qkti-asHJqEoUCc30s3T1NSVfEdrc9YDi9-8fClaqkFEB60YcolxKyOfv51j8NBLUsI5aBcm4fdPzcTRfDk/s113/MeOnJun12-2018.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTlJgLuwd3OKlHz794aw8WJZ52fKkFhwr5nSiIJoHRFcOp1J57L0UyYE8-1Z8o-E7pgTY3l8M3aqOo1A9TiOTtw_o0IvIjw3yJ3kJxLp61-XTe2Mq35Am78jAgt77YiJShT0xQ-_2KZ0U/s72-c/Picture1.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-4926735770070291800.post-6497923565969189047</id><published>2017-06-10T10:37:00.000-03:00</published><updated>2017-06-10T12:20:56.157-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bibliography"/><category scheme="http://www.blogger.com/atom/ns#" term="BibTex"/><category scheme="http://www.blogger.com/atom/ns#" term="CSV"/><category scheme="http://www.blogger.com/atom/ns#" term="DOI"/><category scheme="http://www.blogger.com/atom/ns#" term="masters degree"/><category scheme="http://www.blogger.com/atom/ns#" term="references"/><category scheme="http://www.blogger.com/atom/ns#" term="Springer Link"/><category scheme="http://www.blogger.com/atom/ns#" term="Zotero"/><title type='text'>Using Zotero to convert Springer Link CSV search result to BibTex format</title><content type='html'>Today I needed to generate a &lt;a href=&quot;http://www.bibtex.org/&quot; target=&quot;_blank&quot;&gt;BibTex&lt;/a&gt; file to serve as input to &lt;a href=&quot;https://parsif.al/&quot; target=&quot;_blank&quot;&gt;Parsif.al&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Parsif.al is an online tool designed to support researchers to perform systematic literature reviews within the context of Software Engineering.&lt;br /&gt;
&lt;br /&gt;
I hit a brickwall while doing a search in &lt;a href=&quot;https://link.springer.com/&quot; target=&quot;_blank&quot;&gt;Springer Link&lt;/a&gt; because it only gives us a CSV file with the entire search result. It caps the result to the first 1000 registries. It&#39;d be a pain to click and open each and every search result to be able to export the corresponding BibTex.&lt;br /&gt;
&lt;br /&gt;
Using &lt;a href=&quot;https://www.zotero.org/&quot; target=&quot;_blank&quot;&gt;Zotero&lt;/a&gt; it&#39;s easy to get a BibTex out of the CSV file generated by Springer Link.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz2Wlrm2OWGmIizgh2xLLypd_YUIPSf5ryk74JHCOfD3moHC-pSkvWvZ1uSwkEEk0NvfEeE30QyK7ldWJhlhQxPltqRnWCbbhkF9qRP4x5qEjI6h5a6I3VgVUIA73Fi-5VVy8xjIk1qhE/s1600/Zotero+Add+Items%2528s%2529+by+identifier+.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;418&quot; data-original-width=&quot;728&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz2Wlrm2OWGmIizgh2xLLypd_YUIPSf5ryk74JHCOfD3moHC-pSkvWvZ1uSwkEEk0NvfEeE30QyK7ldWJhlhQxPltqRnWCbbhkF9qRP4x5qEjI6h5a6I3VgVUIA73Fi-5VVy8xjIk1qhE/s640/Zotero+Add+Items%2528s%2529+by+identifier+.png&quot; width=&quot;615&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
Figure 1 - &lt;a href=&quot;https://www.zotero.org/support/getting_stuff_into_your_library&quot; target=&quot;_blank&quot;&gt;Zotero&#39;s Add item(s) by Identifier dialog&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Follow these simple steps:&lt;br /&gt;
&lt;br /&gt;
1 - Open the CSV file in Excel for example and copy the column that contains the item DOI [ Digital Object Identifier ];&lt;br /&gt;
&lt;br /&gt;
2 - Paste the DOI(s) into Zotero&#39;s Add item(s) by identifier (see Figure 1 above). Wait while it imports...&lt;br /&gt;
&lt;br /&gt;
3 - Select the folder where you imported the DOI(s); (Player Modeling in Figure 1)&lt;br /&gt;
&lt;br /&gt;
4 - Right click the folder and select Export collection... pick BibTex.&lt;br /&gt;
&lt;br /&gt;
You&#39;re done.&lt;br /&gt;
&lt;br /&gt;
Hope it helps.&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://www.zotero.org/support/getting_stuff_into_your_library&quot; target=&quot;_blank&quot;&gt;Adding Items to your Zotero Library&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/6497923565969189047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/6497923565969189047'/><link rel='alternate' type='text/html' href='http://www.leniel.net/2017/06/using-zotero-to-convert-springerlink-full-csv-search-result-to-bibtex-format.html' title='Using Zotero to convert Springer Link CSV search result to BibTex format'/><author><name>Leniel Maccaferri</name><uri>http://www.blogger.com/profile/17950821674268154143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz4lkIPWpkVzftF8ASC5n8PfZrnuRffrlQrO3Ql8z0baT7qkti-asHJqEoUCc30s3T1NSVfEdrc9YDi9-8fClaqkFEB60YcolxKyOfv51j8NBLUsI5aBcm4fdPzcTRfDk/s113/MeOnJun12-2018.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz2Wlrm2OWGmIizgh2xLLypd_YUIPSf5ryk74JHCOfD3moHC-pSkvWvZ1uSwkEEk0NvfEeE30QyK7ldWJhlhQxPltqRnWCbbhkF9qRP4x5qEjI6h5a6I3VgVUIA73Fi-5VVy8xjIk1qhE/s72-c/Zotero+Add+Items%2528s%2529+by+identifier+.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-4926735770070291800.post-7410078984207725998</id><published>2017-02-14T23:23:00.000-02:00</published><updated>2019-12-06T12:55:33.174-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Baldis"/><category scheme="http://www.blogger.com/atom/ns#" term="Bergamini"/><category scheme="http://www.blogger.com/atom/ns#" term="Bergamo"/><category scheme="http://www.blogger.com/atom/ns#" term="Bocchi"/><category scheme="http://www.blogger.com/atom/ns#" term="Cantamessa"/><category scheme="http://www.blogger.com/atom/ns#" term="Cattaneo"/><category scheme="http://www.blogger.com/atom/ns#" term="Cirelli"/><category scheme="http://www.blogger.com/atom/ns#" term="Colombo"/><category scheme="http://www.blogger.com/atom/ns#" term="Dotti"/><category scheme="http://www.blogger.com/atom/ns#" term="Falci"/><category scheme="http://www.blogger.com/atom/ns#" term="Italia"/><category scheme="http://www.blogger.com/atom/ns#" term="Locatelli"/><category scheme="http://www.blogger.com/atom/ns#" term="Luiselli"/><category scheme="http://www.blogger.com/atom/ns#" term="Macaferi"/><category scheme="http://www.blogger.com/atom/ns#" term="Maccaferri"/><category scheme="http://www.blogger.com/atom/ns#" term="Modena"/><category scheme="http://www.blogger.com/atom/ns#" term="San Felice"/><category scheme="http://www.blogger.com/atom/ns#" term="Valtesse"/><category scheme="http://www.blogger.com/atom/ns#" term="Viscardi"/><title type='text'>Italian Ancestry - Maccaferri &amp;amp; Cantamessa families</title><content type='html'>&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI2xhkabcdLBTuCjYncBzo5SiCL4mJtrFAeEEPFdxjLAXbSgK-OsTRcDqWWz5qiOpDmxgCUyxlINqhqdtoUQEwudW7jI2267iqQOG63CX46_y_CT3FViFD90MIHPqzQvp14AMkVi_7RDo/s1600/Flag_of_Italy.svg.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; display: inline !important; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;132&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI2xhkabcdLBTuCjYncBzo5SiCL4mJtrFAeEEPFdxjLAXbSgK-OsTRcDqWWz5qiOpDmxgCUyxlINqhqdtoUQEwudW7jI2267iqQOG63CX46_y_CT3FViFD90MIHPqzQvp14AMkVi_7RDo/s200/Flag_of_Italy.svg.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;First of all I like genealogy and I like history.&lt;br /&gt;
&lt;br /&gt;
I like &lt;a href=&quot;https://en.wikipedia.org/wiki/Italy&quot; style=&quot;background-color: white; font-family: arial; font-size: 14px; white-space: pre-wrap;&quot; target=&quot;_blank&quot;&gt;Italy&lt;/a&gt; because part of my ancestors\antenati come from there.&lt;br /&gt;
&lt;br /&gt;
To know my origin is something that instigates my feelings and this post is my try to find relatives scattered all over the world.&lt;br /&gt;
&lt;br /&gt;
From this &lt;a href=&quot;https://www.myheritage.com/dna/ethnicity/intro/85656JJJAP8NIC34B1476PBQ8KS46CB7DOO42I3AEPCL0S235T950J1N95BK6S3M9HNNKP3F6H27CTJC9DHK6IJMD90LIJII8PI6EJO&quot; target=&quot;_blank&quot;&gt;MyHeritage DNA test&lt;/a&gt; I have 43.5% of Italian ethnicity\blood and so it&#39;s undeniable the affection I feel for the country.&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 5pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 14px; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;/span&gt; &lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://www.myheritage.com/dna/ethnicity/intro/85656JJJAP8NIC34B1476PBQ8KS46CB7DOO42I3AEPCL0S235T950J1N95BK6S3M9HNNKP3F6H27CTJC9DHK6IJMD90LIJII8PI6EJO&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;602&quot; data-original-width=&quot;958&quot; height=&quot;402&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgflgbJlkLOjKQMLI84oStMCdws4gpLE7ctkbcL2UjLEO0M00JpQWaNfdbsioxRVHUN01i9pQPeShMlK-8ukfVx0W1B1kxcDitmHgZuBUgbRIuI6H2Al9m1z_HCvOCunW50T3mUgDFz_wc/s640/MyHeritage+Ethnicity+Estimate+2019-12-06_11-45-11.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 14px; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt; &lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 14px; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt; &lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 14px; white-space: pre-wrap;&quot;&gt;I&#39;ve created a Family Tree at MyHeritage:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14px; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14px; white-space: pre-wrap;&quot;&gt;&lt;a href=&quot;https://www.myheritage.com/site-343227191/lenielmacaferi&quot; target=&quot;_blank&quot;&gt;https://www.myheritage.com.br/site-family-tree-343227191/leniel-macaferis-family&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14px; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;/span&gt; &lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14px; white-space: pre-wrap;&quot;&gt;Below I tell my &quot;recent&quot; Italian family history in 3 idioms: Italiano, English and Portuguese.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14px; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt; &lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14px; white-space: pre-wrap;&quot;&gt;If you think we may be relatives, just drop me a line at &lt;a href=&quot;mailto:leniel@gmail.com&quot;&gt;leniel@gmail.com&lt;/a&gt; or use the &lt;a href=&quot;http://www.leniel.net/p/contact-me.html&quot; target=&quot;_blank&quot;&gt;contact form&lt;/a&gt;. It&#39;ll be a pleasure to get to know you. :)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14px; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt; &lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14px; white-space: pre-wrap;&quot;&gt;By the way, this is my Facebook profile: &lt;a href=&quot;https://www.facebook.com/leniel.macaferi&quot; target=&quot;_blank&quot;&gt;https://www.facebook.com/leniel.macaferi&lt;/a&gt; &lt;/span&gt; &lt;br /&gt;
&lt;a href=&quot;https://draft.blogger.com/null&quot; name=&quot;more&quot;&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14px; white-space: pre-wrap;&quot;&gt;&lt;b&gt;My Family Tree &lt;/b&gt;(click to zoom)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt; &lt;/span&gt; &lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt; &lt;/span&gt; &lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnp36Wa-nvuBJNdLB_3YtL6O8WoyV1Ls1YqBG5X8mI5bP85B7Vo_88elqi03HqLxWOrinupqJdMBC3UlfCLssW_0V_uCMa6r0r-ZonDcCokBAmDYQrD2kTE14TnaIpf41UOwRyofsssNM/s1600/Family+Tree+Fan.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;416&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnp36Wa-nvuBJNdLB_3YtL6O8WoyV1Ls1YqBG5X8mI5bP85B7Vo_88elqi03HqLxWOrinupqJdMBC3UlfCLssW_0V_uCMa6r0r-ZonDcCokBAmDYQrD2kTE14TnaIpf41UOwRyofsssNM/s640/Family+Tree+Fan.png&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt; &lt;/span&gt; &lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 14px; white-space: pre-wrap;&quot;&gt;Family tree created with the help of FamilySearch website&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt; &lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14px; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt; &lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span id=&quot;italiano&quot; style=&quot;font-size: 10.5pt;&quot;&gt;ITALIANO&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 5pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14px; white-space: pre-wrap;&quot;&gt;Il mio nome è Leniel Macaferi ed è nato il 06.10.1983 in Carangola, Minas Gerais, Brasile. Io sono di origine italiana. In linea paterna, io sono il nipote di una coppia di italiani:  Giuseppe Maccaferri nato il 10.07.1893 a San Felice sul Panaro, Modena, Emilia-Romagna, Italia. &amp;amp; Anna Rosa Cantamessa nata il 23.07.1906 a Valtesse, Bergamo, Lombardia, Italia.  Giuseppe Maccaferri [1893-1941] è arrivato in Brasile con 2 anni di età su 16.05.1896 a bordo della nave\vapore [Attività] con i suoi genitori Sperindio Maccaferri [1861 ~ 1935] e Maria Cirelli [1867 ~ 1935]. I miei bisnonni erano sposati a San Felice sul Panaro su 03.11.1887. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14px; white-space: pre-wrap;&quot;&gt;Il record dell’arrivo si trova nel sito pubblico di Arquivo Mineiro. &lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://www.siaapm.cultura.mg.gov.br/modules/imigrantes/brtacervo.php?cid=1383&quot; style=&quot;font-family: arial; font-size: 10.5pt; text-decoration: none; white-space: pre-wrap;&quot; target=&quot;_blank&quot;&gt;http://www.siaapm.cultura.mg.gov.br/modules/imigrantes/brtacervo.php?cid=1383&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 14px; white-space: pre-wrap;&quot;&gt; Anna Rosa Cantamessa [1906-1983] è arrivato in Brasile con 7 anni di età su 20.08.1913 a bordo della nave\vapore [Regina Elena] con i suoi genitori Giuseppe Andrea Cantamessa [1875-1952] e Maria Camilla Irma Colombo [1880 ~ 1921]. I miei bisnonni si sono sposati in Valtesse su 24.09.1901. &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: 14px; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;color: #1d2129;&quot;&gt; Il record dell’arrivo si trova nel sito di sistema nazionale informazioni archivio a Rio de Janeiro. &lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://imagem.sian.an.gov.br/anexos/sian/arquivos/1139635_40882.pdf&quot; style=&quot;font-family: arial; font-size: 10.5pt; text-decoration: none; white-space: pre-wrap;&quot; target=&quot;_blank&quot;&gt;http://imagem.sian.an.gov.br/anexos/sian/arquivos/1139635_40882.pdf&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 14px; white-space: pre-wrap;&quot;&gt; Il mio trisnonno Giacomo Cantamessa (padre di Giuseppe) è arrivato in Brasile il 16.12.1897 sulla nave\vapore [Spagne] con la moglie e gli altri bambini. Giuseppe era colui che era in Italia e emigrato in Brasile circa 15 anni più tardi. &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: 14px; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;color: #1d2129;&quot;&gt; Il record dell&#39;arrivo di Giacomo Cantamessa e la famiglia si trova nel sito pubblico di Arquivo Mineiro. &lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://www.siaapm.cultura.mg.gov.br/modules/imigrantes/brtacervo.php?cid=16126&quot; style=&quot;font-family: arial; font-size: 10.5pt; text-decoration: none; white-space: pre-wrap;&quot; target=&quot;_blank&quot;&gt;http://www.siaapm.cultura.mg.gov.br/modules/imigrantes/brtacervo.php?cid=16126&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; white-space: pre-wrap;&quot;&gt; Questi sono i cognome nel mio albero genealogico fino ad oggi:&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 5pt; margin-top: 0pt;&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;margin-left: 0pt;&quot;&gt;
&lt;table style=&quot;border-collapse: collapse; border: none; width: 100%;&quot;&gt;&lt;colgroup&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;#&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Cognome&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 14px; white-space: pre-wrap;&quot;&gt;&lt;b&gt;Antenato(a)&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Relazione&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Livello&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;1&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maccaferri&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Giuseppe Maccaferri&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;nonno&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;2&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;2&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Cantamessa&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Anna Rosa Cantamessa&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;nonna&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;2&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Colombo&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maria Camilla Irma Colombo&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;bisnonna&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Cirelli&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maria Cirelli&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;bisnonna&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;5&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Bocchi&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maria Bocchi&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;trisnonna&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;6&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Bergamini&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Candida Maria Filomena Bergamini&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;trisnonna&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;7&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Baldis&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Eufrosina Baldis&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;trisnonna&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;8&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Locatelli&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Antonia Locatelli&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;trisnonna&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;9&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Dotti&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maria Dotti&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;quadrisavola&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;5&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;10&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Calzolari&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Eleonora Calzolari&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;quadrisavola&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;5&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;11&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Cattaneo&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Orsola Cattaneo&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;quadrisavola&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;5&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;12&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Falci&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maria Teresa Falci&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;quadrisavola&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;5&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;13&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Guidetti&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maria Guidetti&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;quinquisavola&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;6&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;14&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Viscardi&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Angela Viscardi&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;quinquisavola&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;6&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;15&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Luiselli&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Antonia Luiselli&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;quinquisavola&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;6&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 5pt; margin-top: 0pt;&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;margin-left: 0pt;&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 5pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Il mio cognome Macaferi è il modo &quot;brasiliano&quot; di Maccaferri.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt;&quot;&gt;
&lt;span id=&quot;english&quot; style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;ENGLISH&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt;&quot;&gt;
&lt;span id=&quot;docs-internal-guid-2b3c4e12-3f83-f293-d6da-f68c682b7348&quot;&gt;&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;My name is Leniel Macaferi and I was born on 10.06.1983 in Carangola, Minas Gerais, Brazil. I am descendant of Italians.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt;&quot;&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;From the paternal line, I am the grandson of an Italian couple:&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 14px; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt; &lt;/span&gt;Giuseppe Maccaferri born on 07.10.1893 in San Felice sul Panaro, Modena, Emilia-Romagna, Italy.&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt;&quot;&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14px; white-space: pre-wrap;&quot;&gt;&amp;amp; Anna Rosa Cantamessa born on 07.23.1906 in Valtesse, Bergamo, Lombardy, Italy.  Giuseppe (Joseph) Maccaferri [1893-1941] arrived in Brazil at the age of 2 on 05.16.1896 aboard the ship [Attivitá] with his parents Sperindio Maccaferri [1861 ~ 1935] and Maria Cirelli [1867 ~ 1935]. My great-grandparents married in San Felice sul Panaro on 11.03.1887. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14px; white-space: pre-wrap;&quot;&gt;The arrival record is in the public site of Arquivo Mineiro. &lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://www.siaapm.cultura.mg.gov.br/modules/imigrantes/brtacervo.php?cid=1383&quot; style=&quot;font-family: arial; font-size: 10.5pt; text-decoration: none; white-space: pre-wrap;&quot; target=&quot;_blank&quot;&gt;http://www.siaapm.cultura.mg.gov.br/modules/imigrantes/brtacervo.php?cid=1383&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 14px; white-space: pre-wrap;&quot;&gt; Anna Rosa Cantamessa [1906-1983] arrived in Brazil at the age of 7 on &lt;/span&gt;&lt;span style=&quot;color: rgb(29 , 33 , 41); font-family: &amp;quot;arial&amp;quot;; font-size: 14px; white-space: pre-wrap;&quot;&gt;08.20.1913 aboard the ship [Regina Elena] with her parents Giuseppe Andrea Cantamessa [1875 - 1952] and Maria Camilla Irma Colombo [1880 ~ 1921]. My great-grandparents were married in Valtesse on 09.24.1901.&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: 14px; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;color: #1d2129;&quot;&gt; The arrival record is on the website of the National Archive Information System in Rio de Janeiro. &lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://imagem.sian.an.gov.br/anexos/sian/arquivos/1139635_40882.pdf&quot; style=&quot;font-family: arial; font-size: 14px; white-space: pre-wrap;&quot; target=&quot;_blank&quot;&gt;http://imagem.sian.an.gov.br/anexos/sian/arquivos/1139635_40882.pdf&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 14px; white-space: pre-wrap;&quot;&gt; My great-great-grandfather Giacomo Cantamessa (Giuseppe’s father) has arrived in Brazil on 12.16.1897 aboard the ship [Spagne] with his wife and the other children. Giuseppe was the one who stayed in Italy and emigrated to Brazil about 15 years later.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-family: &amp;quot;arial&amp;quot;; font-size: 14px; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;color: #1d2129;&quot;&gt; The arrival record of Giacomo Cantamessa and the family is in the public site of Arquivo Mineiro. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #1155cc; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;a href=&quot;http://www.siaapm.cultura.mg.gov.br/modules/imigrantes/brtacervo.php?cid=16126&quot; style=&quot;text-decoration: underline;&quot; target=&quot;_blank&quot;&gt;http://www.siaapm.cultura.mg.gov.br/modules/imigrantes/brtacervo.php?cid=16126&lt;/a&gt;&lt;u&gt; &lt;/u&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; white-space: pre-wrap;&quot;&gt;&lt;u&gt; &lt;/u&gt;These are the surnames in my family tree to the present moment:&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt;&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;margin-left: 0pt;&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;margin-left: 0pt;&quot;&gt;
&lt;table style=&quot;border-collapse: collapse; border: none; width: 100%;&quot;&gt;&lt;colgroup&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;#&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Surname&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 14px; white-space: pre-wrap;&quot;&gt;&lt;b&gt;Ancestor&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Relationship&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Level&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;1&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maccaferri&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Giuseppe Maccaferri&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;grandfather&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;2&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;2&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Cantamessa&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Anna Rosa Cantamessa&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;grandmother&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;2&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Colombo&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maria Camilla Irma Colombo&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;great grandmother&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Cirelli&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maria Cirelli&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;great grandmother&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;5&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Bocchi&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maria Bocchi&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;2x-great-grandmother&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;6&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Bergamini&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Candida Maria Filomena Bergamini&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;2x-great-grandmother&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;7&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Baldis&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Eufrosina Baldis&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;2x-great-grandmother&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;8&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Locatelli&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Antonia Locatelli&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;2x-great-grandmother&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;9&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Dotti&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maria Dotti&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3x-great-grandmother&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;5&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;10&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Calzolari&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Eleonora Calzolari&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3x-great-grandmother&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;5&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;11&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Cattaneo&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Orsola Cattaneo&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3x-great-grandmother&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;5&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;12&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Falci&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maria Teresa Falci&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3x-great-grandmother&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;5&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;13&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Guidetti&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maria Guidetti&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4x-great-grandmother&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;6&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;14&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Viscardi&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Angela Viscardi&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4x-great-grandmother&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;6&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;15&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Luiselli&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Antonia Luiselli&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4x-great-grandmother&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;6&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;span id=&quot;docs-internal-guid-2b3c4e12-4073-ce74-166f-9636eea49bac&quot;&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;My last name Macaferi is the &quot;Brazilianized&quot; way for Maccaferri.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt;&quot;&gt;
&lt;span id=&quot;portugues&quot; style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;PORTUGUÊS&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt;&quot;&gt;
&lt;span style=&quot;color: #1d2129; font-family: &amp;quot;arial&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14px; white-space: pre-wrap;&quot;&gt;Me chamo Leniel Macaferi e nasci em 06.10.1983 em Carangola, Minas Gerais, Brasil. Sou descendente de italianos. Na linha paterna, sou neto de um casal de italianos:  Giuseppe Maccaferri nascido em 10.07.1893 em San Felice sul Panaro, Modena, Emilia-Romagna, Itália. &amp;amp; Anna Rosa Cantamessa nascida em 23.07.1906 em Valtesse, Bergamo, Lombardia, Itália.  Giuseppe (José) Maccaferri [1893-1941] chegou no Brasil com 2 anos de idade em 16.05.1896 no navio\vapor [Attività] com seus pais Sperindio Maccaferri [1861~1935] e Maria Cirelli [1867~1935]. Meus bisavós casaram-se em San Felice sul Panaro em 03.11.1887.  O registro de chegada está no site do Arquivo Público Mineiro. &lt;a href=&quot;http://www.siaapm.cultura.mg.gov.br/modules/imigrantes/brtacervo.php?cid=1383&quot; target=&quot;_blank&quot;&gt;http://www.siaapm.cultura.mg.gov.br/modules/imigrantes/brtacervo.php?cid=1383&lt;/a&gt;  Anna Rosa Cantamessa [1906-1983] chegou no Brasil com 7 anos de idade em 20.08.1913 no navio\vapor [Regina Elena] com seus pais Giuseppe Andrea Cantamessa [1875-1952] e Maria Camilla Irma Colombo [1880~1921]. Meus bisavós casaram-se em Valtesse em 24.09.1901.  O registro de chegada está no site do Sistema de Informações do Arquivo Nacional no Rio de Janeiro. &lt;a href=&quot;http://imagem.sian.an.gov.br/anexos/sian/arquivos/1139635_40882.pdf&quot; target=&quot;_blank&quot;&gt;http://imagem.sian.an.gov.br/anexos/sian/arquivos/1139635_40882.pdf&lt;/a&gt;  Meu trisavô Giacomo Cantamessa (pai de Giuseppe) chegou no Brasil em 16.12.1897 no navio\vapor [Espagne] com a mulher e os outros filhos. Giuseppe foi o único que ficou na Itália e emigrou para o Brasil aproximadamente 15 anos depois.  O registro da chegada de Giacomo Cantamessa e família está no site do Arquivo Público Mineiro. &lt;a href=&quot;http://www.siaapm.cultura.mg.gov.br/modules/imigrantes/brtacervo.php?cid=16126&quot; target=&quot;_blank&quot;&gt;http://www.siaapm.cultura.mg.gov.br/modules/imigrantes/brtacervo.php?cid=16126&lt;/a&gt;  Estes são os sobrenomes na minha árvore familiar até o presente momento:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt;&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt;&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;margin-left: 0pt;&quot;&gt;
&lt;table style=&quot;border-collapse: collapse; border: none; width: 100%;&quot;&gt;&lt;colgroup&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;col width=&quot;*&quot;&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;#&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Sobrenome&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Antenato(a)&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Relação&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Nível&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;1&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maccaferri&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Giuseppe Maccaferri&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;avô&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;2&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;2&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Cantamessa&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Anna Rosa Cantamessa&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;avó&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;2&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Colombo&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maria Camilla Irma Colombo&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;bisavó&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Cirelli&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maria Cirelli&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;bisavó&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;5&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Bocchi&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maria Bocchi&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;trisavó&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;6&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Bergamini&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Candida Maria Filomena Bergamini&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;trisavó&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;7&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Baldis&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Eufrosina Baldis&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;trisavó&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;8&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Locatelli&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Antonia Locatelli&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;trisavó&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;9&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Dotti&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maria Dotti&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;tetravó&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;5&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;10&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Calzolari&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Eleonora Calzolari&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;tetravó&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;5&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;11&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Cattaneo&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Orsola Cattaneo&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;tetravó&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;5&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;12&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Falci&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maria Teresa Falci&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;tetravó&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;5&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;13&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Guidetti&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Maria Guidetti&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;pentavó&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;6&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;14&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Viscardi&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Angela Viscardi&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;pentavó&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;6&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 0pt;&quot;&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;15&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Luiselli&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Antonia Luiselli&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;pentavó&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom: solid #000000 0.5pt; border-left: solid #000000 0.5pt; border-right: solid #000000 0.5pt; border-top: solid #000000 0.5pt; padding: 5pt 5pt 5pt 5pt; vertical-align: middle;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;6&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; white-space: pre-wrap;&quot;&gt;Meu sobrenome Macaferi é a forma “abrasileirada” de Maccaferri.&lt;/span&gt;&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.2; margin-bottom: 5pt; margin-top: 5pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span style=&quot;background-color: white; color: #1d2129; font-family: &amp;quot;arial&amp;quot;; font-size: 10.5pt; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;b&gt;Links&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://familysearch.org/&quot; target=&quot;_blank&quot;&gt;FamilySearch&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://myheritage.com/&quot; target=&quot;_blank&quot;&gt;MyHeritage&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://familysearch.org/wiki/en/Share_the_Information&quot; target=&quot;_blank&quot;&gt;Share the Information&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://familysearch.org/wiki/en/Create_a_genealogy_web_page&quot; target=&quot;_blank&quot;&gt;Create a Genealogy Web Page&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://familysearch.org/wiki/en/Writing_Your_Family_and_Personal_History&quot; target=&quot;_blank&quot;&gt;Creating Your Family and Personal History&lt;/a&gt;  &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.antenati.san.beniculturali.it/&quot; target=&quot;_blank&quot;&gt;Antenati - Gli Archivi per la Ricerca Anagrafica&lt;/a&gt;&amp;nbsp;(where I found the Italian certificates)&lt;/div&gt;
&lt;/div&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/7410078984207725998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/7410078984207725998'/><link rel='alternate' type='text/html' href='http://www.leniel.net/2017/02/italian-ancestry-maccaferri-cantamessa-surnames-cognome.html' title='Italian Ancestry - Maccaferri &amp;amp; Cantamessa families'/><author><name>Leniel Maccaferri</name><uri>http://www.blogger.com/profile/17950821674268154143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz4lkIPWpkVzftF8ASC5n8PfZrnuRffrlQrO3Ql8z0baT7qkti-asHJqEoUCc30s3T1NSVfEdrc9YDi9-8fClaqkFEB60YcolxKyOfv51j8NBLUsI5aBcm4fdPzcTRfDk/s113/MeOnJun12-2018.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI2xhkabcdLBTuCjYncBzo5SiCL4mJtrFAeEEPFdxjLAXbSgK-OsTRcDqWWz5qiOpDmxgCUyxlINqhqdtoUQEwudW7jI2267iqQOG63CX46_y_CT3FViFD90MIHPqzQvp14AMkVi_7RDo/s72-c/Flag_of_Italy.svg.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-4926735770070291800.post-1002524452169687686</id><published>2017-02-01T23:22:00.001-02:00</published><updated>2017-02-02T02:30:33.540-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cooperative work"/><category scheme="http://www.blogger.com/atom/ns#" term="crowdsourcing"/><category scheme="http://www.blogger.com/atom/ns#" term="CSCW"/><category scheme="http://www.blogger.com/atom/ns#" term="data and knowledge engineering"/><category scheme="http://www.blogger.com/atom/ns#" term="masters degree"/><category scheme="http://www.blogger.com/atom/ns#" term="StackOverflow"/><category scheme="http://www.blogger.com/atom/ns#" term="UFRJ"/><title type='text'>Crowdsourcing &amp; Stack Overflow: the power of  the Crowd</title><content type='html'>It&#39;s been 2 years since I last posted. Wow! Time flies and life changes...&lt;br /&gt;
&lt;br /&gt;
In 2016 I started a Master&#39;s degree course at &lt;a href=&quot;https://en.wikipedia.org/wiki/Federal_University_of_Rio_de_Janeiro&quot; target=&quot;_blank&quot;&gt;UFRJ - Federal University of Rio de Janeiro&lt;/a&gt; in the branch of&amp;nbsp;Data and Knowledge Engineering (Databases) that is under the division of &lt;a href=&quot;http://www.cos.ufrj.br/&quot; target=&quot;_blank&quot;&gt;Computer and Systems Engineering department&lt;/a&gt;&amp;nbsp;at &lt;a href=&quot;http://www.coppe.ufrj.br/pt-br/node/265&quot; target=&quot;_blank&quot;&gt;COPPE\UFRJ&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Some background history: I tried to join this same master&#39;s program back in 2010. I posted about it here:&amp;nbsp;&lt;a href=&quot;http://www.leniel.net/2010/11/masters-degree-essay.html&quot; target=&quot;_blank&quot;&gt;Masters degree application essay UFRJ 2011.1&lt;/a&gt;. At that time I was not accepted in the program because the teacher responsible for the Software Engineering branch and that interviewed me, told me that I didn&#39;t have a research profile. I was more like an industry guy. I was upset of course when my application got rejected but I tried again in 2015 and guess what: I applied for the Software Engineering branch again and for the Databases branch too. I got approved in the tests for the two branches. The same teacher interviewed me for the Software Engineering after 5 years. She remembered me and said the same thing. She denied my application again. Thanks God the Database branch teachers were more receptive and accepted my enrollment. I love both areas and Databases involve everything related to data which attract my attention as well.&lt;br /&gt;
&lt;br /&gt;
Lesson: don&#39;t give up on your dreams... if you want it with all your heart, go for it! It can take some time but it&#39;ll happen.&lt;br /&gt;
&lt;br /&gt;
Back to the post title... as part of the grade, most of the 8 necessary disciplines have a final paper to be developed. This post is about the paper I did for CSCW - Computer Supported Cooperative Work or even Computer Aided Collaborative Work.&lt;br /&gt;
&lt;br /&gt;
I hope it can shed some light regarding the cooperative work put together by the Stack Overflow developer community with the help of our mainstream computers and mobile devices.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://stackoverflow.com/&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;76&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOPXjHuR42afS0FPitVgcP7V0cUH6EARyh5sNa8IizZeoA8GUhM3QWCmR9vflUo1DBUagIego2JfDZq28F3J99QIhsmNMARurOWr7vkmiyuFBKUPe3TfvtDU_Tcx8BNBZQrFm4_AfIJhk/s320/so-logo.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;Abstract&lt;/b&gt;—Crowdsourcing gained attention in the past few years&lt;br /&gt;
as a means to disseminate work to a crowd of people. People that&lt;br /&gt;
can be scattered all over the world. The Internet removed all the&lt;br /&gt;
barriers. Advances in Information Technologies and hardware&lt;br /&gt;
allowed the development of tools that aid in the division of the&lt;br /&gt;
work and tasks that need to be carried out. We are now in a stage&lt;br /&gt;
where what once was supposed to be inviable is proved to be viable&lt;br /&gt;
with remote work being done by disparate teams located in&lt;br /&gt;
different continents. Computer Supported Cooperative Work is&lt;br /&gt;
now a reality and this paper analyzes some of the concepts and use&lt;br /&gt;
of modern information systems technology to fill the gap between&lt;br /&gt;
a crowd of software developers and their day to day job questions&lt;br /&gt;
when applied to a questions and answers site namely Stack&lt;br /&gt;
Overflow. Each and every day millions of software developers&lt;br /&gt;
outsource their questions to knowledgeable peer developers. Stack&lt;br /&gt;
Overflow is the means that allows the knowledge transfer to&lt;br /&gt;
happen and it came in a moment when a huge amount of data was&lt;br /&gt;
being generated but it wasn’t well structured and organized for&lt;br /&gt;
future reuse. Stack Overflow was born and is now a great option&lt;br /&gt;
that offers a well-structured and exciting environment to ask and&lt;br /&gt;
get answers online.&lt;/blockquote&gt;
&lt;br /&gt;
The full paper in PDF format is available at:&amp;nbsp;

&lt;a href=&quot;https://drive.google.com/file/d/0B4SVxswDPXtwVzNFTWtSMkJoM3M/view?usp=sharing&quot; target=&quot;_blank&quot;&gt;https://drive.google.com/file/d/0B4SVxswDPXtwVzNFTWtSMkJoM3M/view?usp=sharing&lt;/a&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/1002524452169687686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/1002524452169687686'/><link rel='alternate' type='text/html' href='http://www.leniel.net/2017/02/crowdsourcing-stack-overflow-the-power-of-the-crowd.html' title='Crowdsourcing &amp; Stack Overflow: the power of  the Crowd'/><author><name>Leniel Maccaferri</name><uri>http://www.blogger.com/profile/17950821674268154143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz4lkIPWpkVzftF8ASC5n8PfZrnuRffrlQrO3Ql8z0baT7qkti-asHJqEoUCc30s3T1NSVfEdrc9YDi9-8fClaqkFEB60YcolxKyOfv51j8NBLUsI5aBcm4fdPzcTRfDk/s113/MeOnJun12-2018.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOPXjHuR42afS0FPitVgcP7V0cUH6EARyh5sNa8IizZeoA8GUhM3QWCmR9vflUo1DBUagIego2JfDZq28F3J99QIhsmNMARurOWr7vkmiyuFBKUPe3TfvtDU_Tcx8BNBZQrFm4_AfIJhk/s72-c/so-logo.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-4926735770070291800.post-3221839193207104796</id><published>2014-12-11T10:57:00.001-02:00</published><updated>2014-12-11T12:10:35.511-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="life"/><category scheme="http://www.blogger.com/atom/ns#" term="musing"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="software engineering"/><title type='text'>Just got the C# gold badge at StackOverflow</title><content type='html'>&lt;p&gt;This is a &lt;a href=&quot;http://www.leniel.net/p/consultant.html&quot; target=&quot;_blank&quot;&gt;“marketing”&lt;/a&gt; post… &lt;img class=&quot;wlEmoticon wlEmoticon-openmouthedsmile&quot; style=&quot;border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none&quot; alt=&quot;Open-mouthed smile&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg6Fz9rE87bMygmh2m2CKb1YwTa1JKRE_3iGGgWHrWCyLzAejEkAt4VqQEfGnnuL2J_bXgjOQgL3vHndwmBIkK2BT0wrxZT0KM4vJXAjrdpwS1aDM_fa8yNCQYDvzeYa4vyHLuvcBYw8M/?imgmax=800&quot; /&gt; Just kidding.&lt;/p&gt;  &lt;p&gt;This is just to inform that I got the &lt;a href=&quot;http://stackoverflow.com/help/badges/40/c-sharp?userid=114029&quot; target=&quot;_blank&quot;&gt;C# #Csharp gold badge&lt;/a&gt; at #StackOverflow @StackExchange after 5 years and 6 months and 342 answers posted on the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/67ef8sbd.aspx&quot; target=&quot;_blank&quot;&gt;C#&lt;/a&gt; tag! What a milestone towards a so awesome programming language.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/help/badges/40/c-sharp?userid=114029&quot; target=&quot;_blank&quot;&gt;&lt;img title=&quot;C# gold badge earned at StackOverflow&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto&quot; border=&quot;0&quot; alt=&quot;C# gold badge earned at StackOverflow&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoqjHqpYCVRNnVmeeFlHvIfUmg5yfl1r3aj4yDlwxF44CtStnQ8vRGKB5HQmxyf7MXoZEKf2tLWwQ5GrXsE3zp9TrH8DEM-H_3CCQBCw_k-_FHfIgjDoWjxICQQs4Czt1xN7ooNwULaws/?imgmax=800&quot; width=&quot;625&quot; height=&quot;317&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Once when I was starting back in 2003 a somewhat experienced coworker told me: this thing [ coding ] is not for you.&lt;/p&gt;  &lt;p&gt;I proved him wrong!&lt;/p&gt;  &lt;p&gt;The lesson to be learnt here is: never trust others when they say you are not capable even more when you are just starting something. Instead use that as a trampoline. Not easy but you must not give up. Keep pushing always.&lt;/p&gt;  &lt;p&gt;People that motivate us are a rare kind. So use this post as a motivation and &lt;em&gt;BEFORE&lt;/em&gt; that remember: put God first in everything you start in your life. I remember at that time in my life I talked to God and told him that I really liked this profession|area and asked for his help so that he could guide me and provide me wisdom. Here I’m today being able to write this post. How grateful I’m.&lt;/p&gt;  &lt;p&gt;To top that, last week a cousin (13 years old) approached me and told me he’d like to follow the same path I followed and asked what I did to get where I’m today. I answered: you have to have a passion for what you do, strive for excellence and be prepared to spend some good amount of time trying and trying... as I wrote above: don’t give up. There’ll be for sure many rocks on the road… &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Long_and_Winding_Road&quot; target=&quot;_blank&quot;&gt;The Long and Winding Road&lt;/a&gt; as sung by The Beatles is a truth but if you persist in what you really believe then success is a matter of time.&lt;/p&gt;  &lt;p&gt;Somehow sometime somewhere God will move things in your favor.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;And we know that all things work together for good to them that love God, to them who are called according to his purpose. Romans 8:28 &lt;a title=&quot;https://www.bible.com/bible/1/rom.8.28&quot; href=&quot;https://www.bible.com/bible/1/rom.8.28&quot; target=&quot;_blank&quot;&gt;https://www.bible.com/bible/1/rom.8.28&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/users/114029/leniel-macaferi&quot; target=&quot;_blank&quot;&gt;&lt;img title=&quot;A snapshot of my StackOverflow profile on the day I got the C# gold badge&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto&quot; border=&quot;0&quot; alt=&quot;A snapshot of my StackOverflow profile on the day I got the C# gold badge&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFwJ5l2LbCv6ArFq33q0j2SCgP6Aes0M6LgaKwNAyoJ0NtQ1liGi1JLOWLj9MnLK9_GAlyLH0Y7RLW2YDdH3NavDEkHjzc_rkRCoU8zjZtTJcHwHX7lEi3I1scoTNX5nPVWgIZjfGof40/?imgmax=800&quot; width=&quot;625&quot; height=&quot;925&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://stackoverflow.com/users/114029/leniel-macaferi&quot; target=&quot;_blank&quot;&gt;http://stackoverflow.com/users/114029/leniel-macaferi&lt;/a&gt;&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/3221839193207104796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/3221839193207104796'/><link rel='alternate' type='text/html' href='http://www.leniel.net/2014/12/got-csharp-gold-badge-at-stackoverflow.html' title='Just got the C# gold badge at StackOverflow'/><author><name>Leniel Maccaferri</name><uri>http://www.blogger.com/profile/17950821674268154143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz4lkIPWpkVzftF8ASC5n8PfZrnuRffrlQrO3Ql8z0baT7qkti-asHJqEoUCc30s3T1NSVfEdrc9YDi9-8fClaqkFEB60YcolxKyOfv51j8NBLUsI5aBcm4fdPzcTRfDk/s113/MeOnJun12-2018.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg6Fz9rE87bMygmh2m2CKb1YwTa1JKRE_3iGGgWHrWCyLzAejEkAt4VqQEfGnnuL2J_bXgjOQgL3vHndwmBIkK2BT0wrxZT0KM4vJXAjrdpwS1aDM_fa8yNCQYDvzeYa4vyHLuvcBYw8M/s72-c?imgmax=800" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-4926735770070291800.post-7179925722489261433</id><published>2014-07-12T12:00:00.000-03:00</published><updated>2014-07-12T12:05:12.436-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="language"/><category scheme="http://www.blogger.com/atom/ns#" term="left-to-right"/><category scheme="http://www.blogger.com/atom/ns#" term="NPOI"/><category scheme="http://www.blogger.com/atom/ns#" term="support"/><title type='text'>NPOI 2.0 - Support for right-to-left languages</title><content type='html'>&lt;p&gt;This is the 5th post of a series of posts about &lt;a href=&quot;http://www.leniel.net/2014/01/npoi-2.0-major-features-enhancements-series-of-posts-scheduled.html&quot; target=&quot;_blank&quot;&gt;NPOI 2.0&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;This time we’re gonna see how easy it is to enable support for right to left languages in a spreadsheet.&lt;/p&gt;  &lt;p&gt;Here’s a Microsoft page that describes &lt;a href=&quot;http://office.microsoft.com/en-001/excel-help/right-to-left-language-features-HA010354392.aspx#_Toc254700144&quot; target=&quot;_blank&quot;&gt;Office’s right-to-left language features&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;NPOI has got you covered too. The flag first appeared in &lt;a href=&quot;https://github.com/tonyqus/npoi/blob/master/Release%20Notes.txt#L191&quot; target=&quot;_blank&quot;&gt;NPOI 2.0 Alpha&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;g. Support isRightToLeft and setRightToLeft on the common spreadsheet Sheet interface, as per existing HSSF support (poi-developers)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Let’s jump directly to the code with no further ado…&lt;/p&gt;  &lt;pre class=&quot;code&quot;&gt;&lt;span style=&quot;background: white; color: blue&quot;&gt;using &lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;NPOI.SS.UserModel;
&lt;/span&gt;&lt;span style=&quot;background: white; color: blue&quot;&gt;using &lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;NPOI.XSSF.UserModel;
&lt;/span&gt;&lt;span style=&quot;background: white; color: blue&quot;&gt;using &lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;System.IO;

&lt;/span&gt;&lt;span style=&quot;background: white; color: blue&quot;&gt;namespace &lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;NPOI.Examples.XSSF.SetIsRightToLeftInXlsx
{
    &lt;/span&gt;&lt;span style=&quot;background: white; color: blue&quot;&gt;class &lt;/span&gt;&lt;span style=&quot;background: white; color: #2b91af&quot;&gt;Program
    &lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;{
        &lt;/span&gt;&lt;span style=&quot;background: white; color: blue&quot;&gt;static void &lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;Main(&lt;/span&gt;&lt;span style=&quot;background: white; color: blue&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;[] args)
        {
            &lt;/span&gt;&lt;span style=&quot;background: white; color: #2b91af&quot;&gt;IWorkbook &lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;workbook = &lt;/span&gt;&lt;span style=&quot;background: white; color: blue&quot;&gt;new &lt;/span&gt;&lt;span style=&quot;background: white; color: #2b91af&quot;&gt;XSSFWorkbook&lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;();

            &lt;/span&gt;&lt;span style=&quot;background: white; color: #2b91af&quot;&gt;ISheet &lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;sheet1 = workbook.CreateSheet(&lt;/span&gt;&lt;span style=&quot;background: white; color: #a31515&quot;&gt;&amp;quot;Sheet1&amp;quot;&lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;);
            
            &lt;/span&gt;&lt;span style=&quot;background: white; color: green&quot;&gt;// Setting support for Right To Left
            &lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;sheet1.IsRightToLeft = &lt;/span&gt;&lt;span style=&quot;background: white; color: blue&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;;

            sheet1.CreateRow(0).CreateCell(0).SetCellValue(&lt;/span&gt;&lt;span style=&quot;background: white; color: #a31515&quot;&gt;&amp;quot;This is a Sample&amp;quot;&lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;);

            &lt;/span&gt;&lt;span style=&quot;background: white; color: blue&quot;&gt;int &lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;x = 1;

            &lt;/span&gt;&lt;span style=&quot;background: white; color: blue&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;background: white; color: blue&quot;&gt;int &lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;i = 1; i &amp;lt;= 15; i++)
            {
                &lt;/span&gt;&lt;span style=&quot;background: white; color: #2b91af&quot;&gt;IRow &lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;row = sheet1.CreateRow(i);

                &lt;/span&gt;&lt;span style=&quot;background: white; color: blue&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;background: white; color: blue&quot;&gt;int &lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;j = 0; j &amp;lt; 15; j++)
                {
                    row.CreateCell(j).SetCellValue(x++);
                }
            }

            &lt;/span&gt;&lt;span style=&quot;background: white; color: #2b91af&quot;&gt;FileStream &lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;sw = &lt;/span&gt;&lt;span style=&quot;background: white; color: #2b91af&quot;&gt;File&lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;.Create(&lt;/span&gt;&lt;span style=&quot;background: white; color: #a31515&quot;&gt;&amp;quot;test.xlsx&amp;quot;&lt;/span&gt;&lt;span style=&quot;background: white; color: black&quot;&gt;);

            workbook.Write(sw);

            sw.Close();
        }
    }
}&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;You can find the above code in the &lt;a href=&quot;https://github.com/leniel/npoi/tree/master/examples/xssf/SetIsRightToLeftInXlsx&quot; target=&quot;_blank&quot;&gt;SetIsRightToLeftInXlsx&lt;/a&gt; sample project. I sent a &lt;a href=&quot;https://github.com/tonyqus/npoi/pull/22&quot; target=&quot;_blank&quot;&gt;pull request&lt;/a&gt; to Tony Qu so that this sample project gets added to NPOI’s GitHub repository.&lt;/p&gt;

&lt;p&gt;Hope it helps!&lt;/p&gt;  </content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/7179925722489261433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4926735770070291800/posts/default/7179925722489261433'/><link rel='alternate' type='text/html' href='http://www.leniel.net/2014/07/npoi-2.0-support-for-right-to-left-languages.html' title='NPOI 2.0 - Support for right-to-left languages'/><author><name>Leniel Maccaferri</name><uri>http://www.blogger.com/profile/17950821674268154143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz4lkIPWpkVzftF8ASC5n8PfZrnuRffrlQrO3Ql8z0baT7qkti-asHJqEoUCc30s3T1NSVfEdrc9YDi9-8fClaqkFEB60YcolxKyOfv51j8NBLUsI5aBcm4fdPzcTRfDk/s113/MeOnJun12-2018.JPG'/></author></entry></feed>