-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path404.html
executable file
·208 lines (208 loc) · 29.6 KB
/
404.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
<!DOCTYPE html>
<html lang="en-GB" class="page-404">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Paul Le Tran dot com slash 404</title>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="author" content="Paul Le Tran">
<meta name="description" content="Paul's life consists of powerlifting, his economics PhD, food, cars, and gaming.">
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="icon" type="image/png" href="/favicon.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#0233b7">
<meta name="msapplication-TileColor" content="#ffc40d">
<meta name="theme-color" content="#ffffff">
<link rel="alternate icon" href="/favicon.ico">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<!-- Async loading JS -->
<script async src="/js/functions.js"></script>
<!-- Minimal GA4 JS snippet with localstorage support (2kb GZipped): https://github.com/jahilldev/minimal-analytics -->
<script>
window.minimalAnalytics = {
trackingId: 'G-8LWN282J18',
autoTrack: true,
};
// GA4 script v1.8.7
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var o in n)("object"==typeof exports?exports:e)[o]=n[o]}}(this,(()=>(()=>{"use strict";var e={508:(e,t,n)=>{function o(e,t=300,n=0){return(...o)=>(clearTimeout(n),n=setTimeout(e,t,...o))}function i(e=16){return e=e>16?16:e,`${Math.floor(1e16*Math.random())}`.padStart(e,"0").substring(-1,e)}function s(e,t=16){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n&=n;return n=Math.abs(n),`${n}`.padStart(t,"0").substring(-1,t)}function r(){const e=document.body,t=window.pageYOffset||e.scrollTop,{scrollHeight:n,offsetHeight:o,clientHeight:i}=document.documentElement,s=Math.max(e.scrollHeight,n,e.offsetHeight,o,e.clientHeight,i)-window.innerHeight;return Math.floor(100*Math.abs(t/s))}function a(e,t){let n=e;for(;n&&(!(null==n?void 0:n.matches)||!(null==n?void 0:n.matches(t)));)n=null==n?void 0:n.parentNode;return n}function c(e){let t,n,o=!1;try{({hostname:t,pathname:n}=e&&new URL(e)||{})}catch(e){}return t&&(o=t!==window.location.host),{t:o,hostname:t,pathname:n}}n.r(t),n.d(t,{o:()=>u,i:()=>d,u:()=>o,l:()=>m,m:()=>f,g:()=>p,v:()=>s,p:()=>i,h:()=>r,_:()=>g,$:()=>v,S:()=>c,j:()=>a,I:()=>l});const u="clientId",l="sessionId",d="sessionCount";function f(){const{hostname:e,origin:t,pathname:n,search:o}=document.location,i=document.title;return{location:t+n+o,hostname:e,pathname:n,referrer:document.referrer,title:i}}function m(e=u){const t=i(),n=localStorage.getItem(e);return n||(localStorage.setItem(e,t),t)}function g(e=l){const t=i(),n=sessionStorage.getItem(e);return n||(sessionStorage.setItem(e,t),t)}function v(e){const t=localStorage.getItem(u)?void 0:"1",n=sessionStorage.getItem(l)?void 0:"1";let o=sessionStorage.getItem(d)||"1";return e&&(o=function(e=d){let t="1";const n=sessionStorage.getItem(e);return n&&(t=""+(+n+1)),sessionStorage.setItem(e,t),t}()),{firstVisit:t,sessionStart:n,sessionCount:o}}function p(e){return Array.isArray(e)?e.map((e=>e.map((e=>null==e?void 0:e.toString())))):Object.keys(e).map((t=>[t,`${e[t]}`]))}},209:(e,t)=>{Object.defineProperty(t,"M",{value:!0}),t.files=t.k=void 0;t.k={protocolVersion:"v",trackingId:"tid",pageId:"_p",language:"ul",clientId:"cid",firstVisit:"_fv",hitCount:"_s",sessionId:"sid",sessionCount:"sct",sessionEngagement:"seg",sessionStart:"_ss",debug:"_dbg",referrer:"dr",location:"dl",title:"dt",eventName:"en",eventParam:"ep",eventParamNumber:"epn",screenResolution:"sr",enagementTime:"_et"};t.files=["pdf|xlsx?|docx?|txt|rtf|csv|exe|key|pp(s|t|tx)|7z|pkg|rar|gz|zip|avi","mov|mp4|mpe?g|wmv|midi?|mp3|wav|wma"]}},t={};function n(o){var i=t[o];if(void 0!==i)return i.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,n),s.exports}n.d=(e,t)=>{for(var o in t)n.D(t,o)&&!n.D(e,o)&&Object.defineProperty(e,o,{O:!0,get:t[o]})},n.D=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"M",{value:!0})};var o={};return(()=>{var e=o;Object.defineProperty(e,"M",{value:!0}),e.track=void 0;const t=n(508),i=n(209),s="undefined"!=typeof window,r=s&&window.minimalAnalytics?.defineGlobal,a=s&&window.minimalAnalytics?.autoTrack,c=["q","s","search","query","keyword"];let u,l,d,f=[[Date.now()]],m=!1;const g="page_view",v="scroll",p="click",w="view_search_results",h="user_engagement",y="file_download";function b(e,{type:n,event:o,debug:s}){const{location:r,referrer:a,title:u}=(0,t.m)(),{firstVisit:l,sessionStart:d,sessionCount:f}=(0,t.$)(!m),g=self.screen||{};let v=[[i.k.protocolVersion,"2"],[i.k.trackingId,e],[i.k.pageId,(0,t.p)()],[i.k.language,(navigator.language||"").toLowerCase()],[i.k.clientId,(0,t.l)()],[i.k.firstVisit,l],[i.k.hitCount,"1"],[i.k.sessionId,(0,t._)()],[i.k.sessionCount,f],[i.k.sessionEngagement,"1"],[i.k.sessionStart,d],[i.k.debug,s?"1":""],[i.k.referrer,a],[i.k.location,r],[i.k.title,u],[i.k.screenResolution,`${g.width}x${g.height}`]];return v=v.concat(function({type:e="",event:n}){const o=document.location.search,s=new URLSearchParams(o),r=c.some((e=>new RegExp(`[?|&]${e}=`,"g").test(o)))?w:e,a=c.find((e=>s.get(e)));let u=[[i.k.eventName,r],[`${i.k.eventParam}.search_term`,a||""]];return n&&(u=u.concat((0,t.g)(n))),u}({type:n,event:o})),v=v.filter((([,e])=>e)),new URLSearchParams(v)}function _(){return f.reduce(((e,[t,n=Date.now()])=>e+(n-t)),0).toString()}function $(e,n){const o=(0,t.j)(n.target,"a, button, input[type=submit], input[type=button]"),s=o?.tagName?.toLowerCase(),r="a"===s?"link":s,a=o?.getAttribute("href")||void 0,c=o?.getAttribute("download")||void 0||a,{t:u,hostname:l,pathname:d}=(0,t.S)(c),f="link"===r&&!u,[m]=c?.match(new RegExp(i.files.join("|"),"g"))||[],g=m?y:p,v=`${i.k.eventParam}.${r}`;if(!o||f&&!m)return;let w=[[`${v}_id`,o.id],[`${v}_classes`,o.className],[`${v}_name`,o?.getAttribute("name")?.trim()],[`${v}_text`,o.textContent?.trim()],[`${v}_value`,o?.getAttribute("value")?.trim()],[`${v}_url`,a],[`${v}_domain`,l],[`${i.k.eventParam}.outbound`,`${u}`],[i.k.enagementTime,_()]];m&&(w=w.concat([[`${i.k.eventParam}.file_name`,d||c],[`${i.k.eventParam}.file_extension`,m]])),D(e,{type:g,event:w})}function S(){const e=f.length-1,[,t]=f[e];t||f[e].push(Date.now())}function x(){const e=f.length-1,[,t]=f[e];t&&f.push([Date.now()])}function j(){const e=f.length-1,[,t]=f[e],n=["hidden","visible"].indexOf(document.visibilityState),o=Boolean(n);-1!==n&&(o?t&&f.push([Date.now()]):!t&&f[e].push(Date.now()))}const I=(0,t.u)((e=>{if((0,t.h)()<90)return;const n=[[`${i.k.eventParamNumber}.percent_scrolled`,90]];D(e,{type:v,event:n}),document.removeEventListener("scroll",l)}));function M(e){const t=[[i.k.enagementTime,_()]];D(e,{type:h,event:t})}function k(e){m||(u=$.bind(null,e),l=I.bind(null,e),d=M.bind(null,e),document.addEventListener("visibilitychange",j),document.addEventListener("scroll",l),document.addEventListener("click",u),window.addEventListener("blur",S),window.addEventListener("focus",x),window.addEventListener("beforeunload",d))}function D(...e){const[t,{type:n,event:o,debug:i}]=function(e){const t=window.minimalAnalytics?.trackingId,n="string"==typeof e[0]?e[0]:t,o="object"==typeof e[0]?e[0]:e[1]||{};return[n,{type:g,...o}]}(e);if(!t)return void console.error("GA4: Tracking ID is missing or undefined");const s=b(t,{type:n,event:o,debug:i}),r=window.minimalAnalytics?.analyticsEndpoint||"https://www.google-analytics.com/g/collect";navigator.sendBeacon(`${r}?${s}`),k(t),m=!0}e.track=D,r&&(window.track=D),a&&D()})(),o})()));
</script>
<!-- Preloading remedy.css, reset.css, and .woff2 web fonts -->
<link rel="preload" href="/css/remedy.css" as="style">
<link rel="preload" href="/css/reset.css" as="style">
<link rel="preload" href="/fonts/jetbrains-mono-v20-latin-regular.woff2" as="font" type="font/woff2" crossorigin="anonymous">
<link rel="preload" href="/fonts/jetbrains-mono-v20-latin-700.woff2" as="font" type="font/woff2" crossorigin="anonymous">
<!-- Async loading remedy.css and reset.css (also including fallback for no JS -->
<link rel="stylesheet" href="/css/remedy.css" media="print" onload="this.media='all'; this.onload=null;">
<noscript><link rel="stylesheet" href="/css/remedy.css"></noscript>
<link rel="stylesheet" href="/css/reset.css" media="print" onload="this.media='all'; this.onload=null;">
<noscript><link rel="stylesheet" href="/css/reset.css"></noscript>
<!-- Async loading non-critical CSS -->
<link rel="stylesheet" href="/css/style.css" media="print" onload="this.media='all'; this.onload=null;">
<!-- Inline critical CSS in style.css-->
<style>
:root{--colour-main:#fdcc48;--colour-404:#0233b7}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent;-webkit-text-decoration-skip:objects}svg:not(:root){overflow:hidden}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;display:flex;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}[class^=col-]{-webkit-box-flex:1;-ms-flex:auto;flex:auto}.col-8{width:66.6666666667%}.push-2{margin-left:16.6666666667%}.pull-2{margin-right:16.6666666667%}@media (min-width:800px){.col-d-8{width:66.6666666667%}.push-d-2{margin-left:16.6666666667%}.pull-d-1{margin-right:8.3333333333%}}.hide{display:none}@media (min-width:800px){.d-hide{display:none}.d-show{display:block}}.section-spacer{height:100px}*{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}h2,p{font-size:14px;font-weight:400;line-height:1.5;color:rgba(0,0,0,.87);margin:0 0 20px;padding:0}li,ul{margin:0;padding:0;list-style:none}.site-menu a.special-link{display:inline;text-decoration:none;color:rgba(0,0,0,.87);-webkit-box-shadow:0 -2px 0 0 #0233b7 inset;-webkit-box-shadow:0 -2px 0 0 var(--colour-404) inset;box-shadow:0 -2px 0 0 #0233b7 inset;box-shadow:0 -2px 0 0 var(--colour-404) inset}p{line-height:26px}.page-border-decoration{border:20px solid #f7f7f7;position:fixed;top:0;left:0;right:0;bottom:0;z-index:-1}@media (min-width:800px){.page-border-decoration{top:20px;left:20px;right:20px;bottom:20px}}.icon-menu{width:24px;height:24px;position:fixed;top:30px;left:30px;opacity:.7;z-index:3;background:#fdcc48;background:var(--colour-main);-webkit-transition:opacity .5s ease-in-out;-o-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out}@media (min-width:800px){.icon-menu{top:50px;left:50px}}.icon-menu-close{width:24px;height:24px;padding:4px;background:#fdcc48;background:var(--colour-main);position:fixed;top:26px;left:26px;cursor:pointer;-webkit-box-shadow:0 10px 10px -4px rgba(0,0,0,.2);box-shadow:0 10px 10px -4px rgba(0,0,0,.2);z-index:10;-webkit-animation:bounce-out .4s ease-in-out;animation:bounce-out .4s ease-in-out;-webkit-transition:-webkit-transform 50ms ease-in-out;transition:-webkit-transform 50ms ease-in-out;-o-transition:transform 50ms ease-in-out;transition:transform 50ms ease-in-out;transition:transform 50ms ease-in-out,-webkit-transform 50ms ease-in-out}.page-404 .icon-menu-close{background:#0233b7;background:var(--colour-404)}.icon-menu-close.hidden{display:none}@media (min-width:800px){.icon-menu-close{top:46px;left:46px}}.site-menu{background:#fff;position:fixed;top:46px;left:46px;padding:16px 50px;-webkit-box-shadow:0 2px 12px rgba(0,0,0,.16);box-shadow:0 2px 12px rgba(0,0,0,.16);-webkit-box-shadow:0 24px 16px -15px rgba(0,0,0,.1),0 2px 26px rgba(0,0,0,.16);box-shadow:0 24px 16px -15px rgba(0,0,0,.1),0 2px 26px rgba(0,0,0,.16);-webkit-animation:bounce-out .4s ease-in-out .1s;animation:bounce-out .4s ease-in-out .1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;z-index:9}@media (min-width:800px){.site-menu{top:66px;left:66px}}.site-menu.hidden{display:none}.site-menu ul li{text-align:center}.site-menu ul li a{line-height:50px;text-transform:uppercase;letter-spacing:4px}.site-menu ul li a span{letter-spacing:0}.site-menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.15);z-index:8}.site-menu-overlay.hidden{background:0 0}@-webkit-keyframes bounce-out{0%{-webkit-transform:scale(0);transform:scale(0)}75%{-webkit-transform:scale(1.2);transform:scale(1.2)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes bounce-out{0%{-webkit-transform:scale(0);transform:scale(0)}75%{-webkit-transform:scale(1.2);transform:scale(1.2)}100%{-webkit-transform:scale(1);transform:scale(1)}}.menu-desktop{text-transform:uppercase;color:rgba(0,0,0,.54);position:relative;margin:30px;line-height:1;letter-spacing:1.5px;margin:50px;z-index:3}.menu-desktop ul{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.menu-desktop li{margin-right:30px}.menu-desktop li:last-child{margin-right:0}.menu-desktop a.special-link{text-transform:uppercase;font-size:13px;letter-spacing:3px;padding:0 4px;color:rgba(0,0,0,.54);text-decoration:none;-webkit-box-shadow:0 -2px 0 0 #fdcc48 inset;-webkit-box-shadow:0 -2px 0 0 var(--colour-main) inset;box-shadow:0 -2px 0 0 #fdcc48 inset;box-shadow:0 -2px 0 0 var(--colour-main) inset}.menu-desktop a.special-link span{letter-spacing:0}.wrap-404{margin-top:80px;margin-bottom:50px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}@media (min-width:800px){.wrap-404{height:calc(100vh - 114px);margin:0}}.content-404{width:360px}.content-404 h2{font-size:42px;line-height:1.2}.content-404 h2 span{color:#0233b7;color:var(--colour-404)}.page-404 .menu-desktop a{color:rgba(0,0,0,.54);-webkit-box-shadow:0 -2px 0 0 #0233b7 inset;-webkit-box-shadow:0 -2px 0 0 var(--colour-404) inset;box-shadow:0 -2px 0 0 #0233b7 inset;box-shadow:0 -2px 0 0 var(--colour-404) inset}.page-404 a.special-link{display:inline;text-decoration:none;color:rgba(0,0,0,.87);-webkit-box-shadow:0 -2px 0 0 #0233b7 inset;-webkit-box-shadow:0 -2px 0 0 var(--colour-404) inset;box-shadow:0 -2px 0 0 #0233b7 inset;box-shadow:0 -2px 0 0 var(--colour-404) inset;-webkit-transition:-webkit-box-shadow 50ms ease-in-out;transition:-webkit-box-shadow 50ms ease-in-out;-o-transition:box-shadow 50ms ease-in-out;transition:box-shadow 50ms ease-in-out;transition:box-shadow 50ms ease-in-out,-webkit-box-shadow 50ms ease-in-out}small{font-size:12px}.social-icon .social-icon-fill-2-menu-mobile{fill:rgba(0,0,0,.87);-webkit-transition:fill 125ms ease-in-out;-o-transition:fill 125ms ease-in-out;transition:fill 125ms ease-in-out}
</style>
<style>
/* jetbrains-mono-regular - latin */
@font-face {
font-family: 'JetBrains Mono';
font-style: normal;
font-weight: 400;
font-display: optional;
src: url('/fonts/jetbrains-mono-v20-latin-regular.eot'); /* IE9 Compat Modes */
src: local(''),
url('/fonts/jetbrains-mono-v20-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('/fonts/jetbrains-mono-v20-latin-regular.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
url('/fonts/jetbrains-mono-v20-latin-regular.woff') format('woff'), /* Chrome 5+, Firefox 3.6+, IE 9+, Safari 5.1+, iOS 5+ */
url('/fonts/jetbrains-mono-v20-latin-regular.ttf') format('truetype'), /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
url('/fonts/jetbrains-mono-v20-latin-regular.svg#JetBrainsMono') format('svg'); /* Legacy iOS */
unicode-range: U+0020-007F;
}
/* jetbrains-mono-700 - latin */
@font-face {
font-family: 'JetBrains Mono';
font-style: normal;
font-weight: 700;
font-display: optional;
src: url('/fonts/jetbrains-mono-v20-latin-700.eot'); /* IE9 Compat Modes */
src: local(''),
url('/fonts/jetbrains-mono-v20-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('/fonts/jetbrains-mono-v20-latin-700.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
url('/fonts/jetbrains-mono-v20-latin-700.woff') format('woff'), /* Chrome 5+, Firefox 3.6+, IE 9+, Safari 5.1+, iOS 5+ */
url('/fonts/jetbrains-mono-v20-latin-700.ttf') format('truetype'), /* Chrome 4+, Firefox 3.5+, IE 9+, Safari 3.1+, iOS 4.2+, Android Browser 2.2+ */
url('/fonts/jetbrains-mono-v20-latin-700.svg#JetBrainsMono') format('svg'); /* Legacy iOS */
unicode-range: U+0020-007F;
}
body {
font-family: 'JetBrains Mono', 'Courier New', 'Courier', monospace;
font-size: 14px;
line-height: 1.5;
color: rgba(0, 0, 0, 0.87);
}
</style>
</head>
<body>
<header>
<nav aria-label="Desktop navigation" class="menu-desktop hide d-show">
<ul>
<li class="menu-name-home"><a href="/" class="special-link" title="Home">Hom<span>e</span></a></li>
<li class="menu-name-research"><a href="/research" class="special-link" title="Research">Researc<span>h</span></a></li>
<li class="menu-name-teaching"><a href="/teaching" class="special-link" title="Teaching">Teachin<span>g</span></a></li>
<li class="menu-name-cv"><a href="https://drive.google.com/file/d/1P3rTeJtPRlIMhha3hauKHkdX2BGse3ht/view" class="special-link" title="CV">C<span>V</span></a></li>
<li class="menu-name-more"><a href="/more" class="special-link" title="More stuff">More Stuf<span>f</span></a></li>
</ul>
</nav>
<nav aria-label="Mobile navigation" class="menu-mobile d-hide">
<section aria-label="Mobile menu hamburger icon" class="icon-menu" tabindex="0">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<title id="menu-mobile-icon-title">Mobile menu icon</title>
<desc id="menu-mobile-icon-desc">Mobile menu icon consisting of 3 horizontal lines, with the bottom line shorter than the other two.</desc>
<g>
<rect class="menu-bar-1" style="fill: rgba(0,0,0,0.87)" width="9" height="2" transform="translate(3 3)"></rect>
<rect class="menu-bar-2" style="fill: rgba(0,0,0,0.87)" width="12" height="2" transform="translate(3 7)"></rect>
<rect class="menu-bar-3" style="fill: rgba(0,0,0,0.87)" width="15" height="2" transform="translate(3 11)"></rect>
<rect class="menu-bar-4" style="fill: rgba(0,0,0,0.87)" width="13.5" height="2" transform="translate(3 15)"></rect>
<rect class="menu-bar-5" style="fill: rgba(0,0,0,0.87)" width="18" height="2" transform="translate(3 19)"></rect>
<rect style="fill: none" width="24" height="24"></rect>
</g>
</svg>
</section>
<div class="site-menu-overlay hidden"></div>
<section aria-label="Mobile menu close icon" class="icon-menu-close hidden" tabindex="0">
<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24" fill="#fff">
<title id="menu-mobile-close-icon-title">Mobile menu icon</title>
<desc id="menu-mobile-close-icon-desc">Exit icon from mobile menu that is the letter x made from two orthogonal lines.</desc>
<path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/>
<path d="M0 0h24v24H0z" fill="none"/>
</svg>
</section>
<section aria-label="Mobile navigation menu items" class="site-menu hidden">
<ul>
<li class="menu-name-home"><a href="/" class="special-link" title="Home">Hom<span>e</span></a></li>
<li class="menu-name-research"><a href="/research" class="special-link" title="Research">Researc<span>h</span></a></li>
<li class="menu-name-teaching"><a href="/teaching" class="special-link" title="Teaching">Teachin<span>g</span></a></li>
<li class="menu-name-cv"><a href="https://drive.google.com/file/d/1P3rTeJtPRlIMhha3hauKHkdX2BGse3ht/view" class="special-link" title="CV">C<span>V</span></a></li>
<li class="menu-name-more"><a href="/more" class="special-link" title="More stuff">More Stuf<span>f</span></a></li>
</ul>
<ul class="social-icons">
<li class="social-icon">
<a href="mailto:[email protected]" class="social-icon" title="Send an email to [email protected]">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<title id="mail-icon-title-menu-mobile">Send an email to [email protected]</title>
<desc id="mail-icon-desc-menu-mobile">Mail icon representing link to send an email to [email protected]</desc>
<g id="ic_mail_outline_black_24dp-menu-mobile" transform="translate(0 0)">
<path id="Path_7" data-name="Path 9" class="social-icon-fill-1-menu-mobile" d="M0,0H24V24H0Z"/>
<path id="Path_8" data-name="Path 10" class="social-icon-fill-2-menu-mobile" d="M20,4H4A2,2,0,0,0,2.01,6L2,18a2.006,2.006,0,0,0,2,2H20a2.006,2.006,0,0,0,2-2V6A2.006,2.006,0,0,0,20,4Zm0,14H4V8l8,5,8-5Zm-8-7L4,6H20Z" transform="translate(0 0)"/>
</g>
</svg>
</a>
</li>
<li class="social-icon">
<a href="https://scholar.google.com/citations?user=0zKxrWgAAAAJ" class="social-icon" title="Google Scholar profile">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<title id="ssrn-icon-title-menu-mobile">Google Scholar icon leading to profile</title>
<desc id="ssrn-icon-desc-menu-mobile">Google Scholar icon leading to profile.</desc>
<g id="ic_more_horiz_black_24dp-menu-mobile" transform="translate(0 0)">
<path id="Path_9" data-name="Path 11" class="social-icon-fill-1-menu-mobile" d="M0,0H24V24H0Z"/>
<path id="Path_10" data-name="Path 12" class="social-icon-fill-2-menu-mobile" d="M5.242 13.769L0 9.5 12 0l12 9.5-5.242 4.269C17.548 11.249 14.978 9.5 12 9.5c-2.977 0-5.548 1.748-6.758 4.269zM12 10a7 7 0 1 0 0 14 7 7 0 0 0 0-14z"/>
</g>
</svg>
</a>
</li>
<li class="social-icon">
<a href="https://papers.ssrn.com/sol3/cf_dev/AbsByAuth.cfm?per_id=7065188" class="social-icon" title="SSRN profile">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<title id="ssrn-icon-title-menu-mobile">SSRN icon leading to profile</title>
<desc id="ssrn-icon-desc-menu-mobile">SSRN icon leading to profile.</desc>
<g id="ic_more_horiz_black_24dp-menu-mobile" transform="translate(0 0)">
<path id="Path_9" data-name="Path 13" class="social-icon-fill-1-menu-mobile" d="M0,0H24V24H0Z"/>
<path id="Path_10" data-name="Path 14" class="social-icon-fill-2-menu-mobile" d="M3.087 7.242c-1.704 0-2.878.996-2.878 2.395 0 .627.21 1.141.611 1.56.45.465.932.723 2.058 1.108 1.173.37 1.398.483 1.64.66.417.337.658.803.658 1.301 0 1.013-.964 1.833-2.154 1.833-.723 0-1.478-.29-1.945-.756-.353-.353-.594-.755-.803-1.366-.032-.08-.065-.128-.129-.128-.08 0-.145.08-.145.192 0 .129.065.499.177.852.097.338.161.563.161.595.097.482.113.498.241.611.338.257 1.334.498 2.074.498 1.848 0 3.166-1.173 3.166-2.813 0-1.205-.787-2.073-2.41-2.604-1.624-.53-1.705-.579-2.074-.98a1.476 1.476 0 0 1-.386-1.013c0-.868.707-1.495 1.688-1.495 1.173 0 2.266.691 2.572 1.64.08.257.112.305.209.305.064 0 .128-.08.128-.193 0-.048-.016-.16-.032-.29-.177-1.092-.193-1.14-.21-1.333 0-.225-.047-.322-.16-.322a.121.121 0 0 0-.064.032c-.16.129-.177.145-.257.145a.495.495 0 0 1-.129-.032c-.852-.354-.996-.402-1.607-.402zm5.256.032c-1.222 0-2.17.498-2.604 1.302l.096.659c.017.096.016.16.016.193 0 .257-.16.45-.369.498.048.499.257.933.61 1.286.45.466.933.724 2.058 1.11 1.158.385 1.399.482 1.64.658.418.322.659.804.659 1.302 0 1.013-.964 1.833-2.154 1.833-.723 0-1.48-.29-1.945-.755a2.82 2.82 0 0 1-.386-.483c-.096.225-.209.45-.338.643.097.45.113.483.242.579.337.257 1.334.498 2.073.498 1.833 0 3.167-1.173 3.167-2.813-.032-1.173-.836-2.025-2.46-2.572-1.64-.546-1.72-.578-2.073-.98a1.477 1.477 0 0 1-.386-1.013c0-.884.707-1.495 1.688-1.495 1.173 0 2.25.691 2.572 1.64.08.257.128.305.209.305.064 0 .129-.08.129-.193 0-.048-.017-.144-.033-.289-.177-1.093-.192-1.141-.209-1.334 0-.225-.048-.322-.16-.322-.032 0-.049.016-.065.032-.16.13-.176.145-.257.145-.032 0-.064-.016-.129-.032-.835-.37-.996-.402-1.591-.402zm4.662.177c-.306 0-.643.016-.98.032-.724.048-.724.048-1.062.048h-.128a.81.81 0 0 1 .048.306c.016.128.016.193.112.723l.113.707a1.1 1.1 0 0 1 .016.193.51.51 0 0 1-.145.37v2.524c.29.417.434.9.434 1.446 0 .627-.177 1.19-.482 1.656-.08.579-.29.723-.82.884-.128.032-.16.048-.16.129 0 .096.048.128.176.128.048 0 .21-.016.338-.032.225-.032.563-.048.884-.048.627 0 1.318.016 1.479.048.177.016.321.032.402.032.112 0 .209-.048.209-.128s-.08-.129-.241-.145c-.933-.096-1.238-.434-1.206-1.35v-2.38c.016-.224.048-.257.386-.24h.723c.29 0 .37.048.515.273.048.08.08.128.08.144l1.623 2.492c.66 1.013 1.238 1.399 2.042 1.399.482 0 .932-.129.932-.258 0-.048-.048-.096-.112-.096-.691.016-1.158-.37-1.977-1.624l-1.833-2.668c1.06-.547 1.64-1.318 1.64-2.299 0-.707-.29-1.334-.804-1.72-.514-.385-1.174-.546-2.202-.546zm10.802.112c-.08 0-.177.016-.322.033-.16.032-.321.048-.595.048-.385 0-1.028-.032-1.27-.048l-.289-.016c-.128 0-.193.048-.193.128 0 .096.049.145.193.177 1.254.177 1.367.466 1.334 3.536v3.15c0 .21-.016.258-.08.242-.032 0-.08-.048-.177-.16l-6.044-6.88c-.128-.145-.209-.193-.353-.193-.048 0-.129 0-.225.016h-.113c-.032 0-.321 0-.514-.016.08.048.16.112.24.16.58.434.933 1.174.933 1.977 0 .129-.016.258-.032.37v4.18l.16.24c.145.21.258.386.37.547v-4.71c0-.225.032-.289.129-.289.064 0 .08.016.16.096l5.546 6.366c.21.241.21.241.306.241.16 0 .209-.097.209-.386v-.128c.016-.386.016-.98.016-1.817v-4.276l.016-.417c-.016-1.592.048-1.753.659-1.913.096-.016.129-.049.129-.113 0-.08-.08-.145-.193-.145zm-11.156.338c.611 0 1.27.209 1.64.547.466.385.739 1.028.739 1.64 0 1.092-.691 1.767-1.849 1.767h-.739c-.434-.016-.466-.048-.466-.466V8.721c0-.45 0-.499.08-.611.097-.129.29-.209.595-.209z"/>
</g>
</svg>
</a>
</li>
<li class="social-icon">
<a href="https://github.com/PaulTran47" class="social-icon" title="GitHub profile">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<title id="github-icon-title-menu-mobile">GitHub icon leading to profile</title>
<desc id="github-icon-desc-menu-mobile">GitHub logo icon leading to profile.</desc>
<g id="ic_crop_github_black_24dp-menu-mobile" transform="translate(0 0)">
<path id="Path_11" data-name="Path 15" class="social-icon-fill-1-menu-mobile" d="M0,0H24V24H0Z"/>
<path id="Path_12" data-name="Path 16" class="social-icon-fill-2-menu-mobile" d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/>
</g>
</svg>
</a>
</li>
</ul>
</section>
</nav>
</header>
<div class="page-border-decoration"></div>
<div class="wrap-404">
<div class="content-404">
<main>
<section aria-label="404 page content" class="row">
<article class="col-8 push-2 pull-2">
<h2>This is a <span>404</span> page ¬</h2>
<p>It's dangerous to go alone! Take this dead page.</p>
<p>Please leave now using the navigation menu.</p>
</article>
</section>
</main>
<div style="height: 10px" class="section-spacer"></div>
<footer class="row">
<article aria-label="Website disclaimer section" class="col-8 col-d-8 push-2 pull-2 push-d-2 pull-d-1">
<p style="all: unset">
<small>
Published with <a href="https://pages.github.com" class="special-link" title="GitHub Pages">GitHub Pages</a>. Ⓒ 2025 by <a href="https://github.com/PaulTran47" class="special-link" title="GitHub profile">Paul L. Tran</a> under the terms of the <a href="https://github.com/PaulTran47/paultran47.github.io/blob/master/LICENCE.md" class="special-link" title="MIT Licence">MIT Licence</a>.
</small>
</p>
</article>
</footer>
</div>
</div>
</body>
</html>