diff --git a/app.py b/app.py
index 7863e790b14839c1e73a6f72f9485a52e367d414..cd5c2a596517b90ce053f3fdfca8cb5a20b15d3e 100644
--- a/app.py
+++ b/app.py
@@ -4,6 +4,7 @@ from fastapi.staticfiles import StaticFiles
from pydantic import BaseModel, Field
from typing import Optional
from cold.classifier import ToxicTextClassifier
+import torch
app = FastAPI()
@@ -17,6 +18,8 @@ app.add_middleware(
model = ToxicTextClassifier()
+model.load_state_dict(torch.load("output/lited_best.pth",map_location="cpu"))
+
class PredictionInput(BaseModel):
text: str = Field(..., title="Text to classify", description="The text to classify for malicious content")
diff --git a/cold/__pycache__/classifier.cpython-310.pyc b/cold/__pycache__/classifier.cpython-310.pyc
index b4fd119adc6747740bc54e6632dbf6b430c7a782..fdd3de5ae180efe2a75b53ab6f00965218e4c835 100644
Binary files a/cold/__pycache__/classifier.cpython-310.pyc and b/cold/__pycache__/classifier.cpython-310.pyc differ
diff --git a/cold/__pycache__/dynamic_conv.cpython-310.pyc b/cold/__pycache__/dynamic_conv.cpython-310.pyc
index 4cc1a8a6285fef4d2f147b3e3720b0c5c552da0e..43a54719dd56c419493684a682e7218d10355e36 100644
Binary files a/cold/__pycache__/dynamic_conv.cpython-310.pyc and b/cold/__pycache__/dynamic_conv.cpython-310.pyc differ
diff --git a/cold/__pycache__/text_cnn.cpython-310.pyc b/cold/__pycache__/text_cnn.cpython-310.pyc
index ba647b3409cd387022976dba5f08d509a0f20f5e..0af4b3044ba635240e0402c042c040e3b06e169f 100644
Binary files a/cold/__pycache__/text_cnn.cpython-310.pyc and b/cold/__pycache__/text_cnn.cpython-310.pyc differ
diff --git a/cold/classifier.py b/cold/classifier.py
index f3b6acfe506a04fcafa66ace49a3c42e550e840a..12635801d67d55b0e73a444665785b3c42dc9389 100644
--- a/cold/classifier.py
+++ b/cold/classifier.py
@@ -1,11 +1,14 @@
-
+from matplotlib import ticker, transforms
+from matplotlib.colors import LinearSegmentedColormap
import torch
import torch.nn as nn
from transformers import BertModel, BertTokenizer
from torch.optim import AdamW, lr_scheduler
from .text_cnn import DynamicTextCNN
from tqdm import tqdm
+import io
import os
+from PIL import Image
class ToxicTextClassifier(nn.Module):
def __init__(self,
@@ -16,7 +19,7 @@ class ToxicTextClassifier(nn.Module):
fc_dim=128,
num_classes=2,
dropout=0.1,
- name='lite'):
+ name='lited_best'):
super().__init__()
self.tokenizer = BertTokenizer.from_pretrained(bert_name,from_tf=True)
self.bert = BertModel.from_pretrained(bert_name)
@@ -41,6 +44,15 @@ class ToxicTextClassifier(nn.Module):
self.criterion = nn.CrossEntropyLoss()
self._rebuild_optimizer()
+
+ self.warmup_scheduler = None
+
+ def _get_warmup_scheduler(self, warmup_steps=1000):
+ def lr_lambda(current_step):
+ if current_step < warmup_steps:
+ return float(current_step) / float(max(1, warmup_steps))
+ return 1.0
+ return lr_scheduler.LambdaLR(self.optimizer, lr_lambda)
def _rebuild_optimizer(self):
param_groups = [
@@ -66,14 +78,6 @@ class ToxicTextClassifier(nn.Module):
patience=2,
)
- self.warmup_scheduler = None
-
- def _get_warmup_scheduler(self, warmup_steps=1000):
- def lr_lambda(current_step):
- if current_step < warmup_steps:
- return float(current_step) / float(max(1, warmup_steps))
- return 1.0
- return lr_scheduler.LambdaLR(self.optimizer, lr_lambda)
def forward(self, input_ids, attention_mask, token_type_ids=None):
bert_out = self.bert(
@@ -81,7 +85,7 @@ class ToxicTextClassifier(nn.Module):
attention_mask=attention_mask,
token_type_ids=token_type_ids,
output_hidden_states=True,
- )
+ )
hidden = torch.cat(bert_out.hidden_states[-2:], dim=-1)
feat = self.text_cnn(hidden)
return self.classifier(feat)
@@ -115,7 +119,15 @@ class ToxicTextClassifier(nn.Module):
pbar.set_postfix({'loss': f'{loss.item():.4f}'})
+ epoch_acc = correct / total if total > 0 else 0
+ metrics = {
+ 'loss': val_loss / len(val_loader),
+ 'acc': epoch_acc,
+ 'report': classification_report(all_labels, all_preds, target_names=['non-toxic','toxic']),
+ 'confusion_matrix': confusion_matrix(all_labels, all_preds)
+ }
torch.cuda.empty_cache()
+ return metrics
def train_model(self, train_loader, val_loader,
num_epochs=3, device='cpu',
@@ -139,6 +151,7 @@ class ToxicTextClassifier(nn.Module):
if logdir is None:
logdir = f'runs/{self.name}'
+ writer = SummaryWriter(logdir)
for epoch in range(1, num_epochs + 1):
print(f"\nEpoch {epoch}/{num_epochs}")
@@ -146,12 +159,12 @@ class ToxicTextClassifier(nn.Module):
total_loss = 0
correct = 0
total = 0
-
+
self.warmup_scheduler = self._get_warmup_scheduler(warmup_steps)
if epoch == 2:
print("Unfreezing 4 layers of BERT")
- self.unfrozen_layers = 4
+ self.unfrozen_layers = 2
self._rebuild_optimizer()
pbar = tqdm(train_loader, desc='Training')
@@ -172,13 +185,22 @@ class ToxicTextClassifier(nn.Module):
if global_step < warmup_steps:
self.warmup_scheduler.step()
-
+ for i, group in enumerate(self.optimizer.param_groups):
+ writer.add_scalar(f'LR/group_{i}', group['lr'], global_step)
+
+ for name, param in self.named_parameters():
+ if "convs" in name:
+ grad_norm = param.grad.norm().item()
+ writer.add_scalar(f'Gradients/{name}', grad_norm, global_step)
+
total_loss += loss.item()
preds = torch.argmax(logits, dim=1)
correct += (preds == labels).sum().item()
total += labels.size(0)
acc = correct / total
+ writer.add_scalar('Loss/train', loss.item(), global_step)
+ writer.add_scalar('Acc/train', acc, global_step)
pbar.set_postfix({'loss': f'{loss.item():.4f}', 'acc': f'{acc:.4f}'})
global_step += 1
@@ -196,7 +218,10 @@ class ToxicTextClassifier(nn.Module):
report_text = metrics['report']
conf_mat = metrics['confusion_matrix']
print(report_text)
-
+ writer.add_text('Classification Report', report_text, global_step)
+ writer.add_scalar('Loss/vali', val_loss, global_step)
+ writer.add_scalar('Acc/vali', val_acc, global_step)
+
if val_loss < best_val_loss:
best_val_loss = val_loss
best_model_state = self.state_dict()
@@ -210,11 +235,51 @@ class ToxicTextClassifier(nn.Module):
if epochs_no_improve >= early_stop_patience:
print(f"Early stopping triggered at step {global_step}!")
self.load_state_dict(best_model_state)
+ writer.close()
return
-
+ flame_colors = ['#ffffcc', '#ffeda0', '#feb24c', '#fd8d3c', '#f03b20', '#bd0026']
+ flame_cmap = LinearSegmentedColormap.from_list("flame", flame_colors, N=256)
+ fig, ax = plt.subplots(figsize=(8, 6))
+ sns.set_theme(font_scale=1.4)
+ sns.heatmap(
+ conf_mat,
+ annot=True,
+ fmt='d',
+ cmap=flame_cmap,
+ linewidths=0.5,
+ linecolor='gray',
+ square=True,
+ cbar=True,
+ xticklabels=['non-toxic', 'toxic'],
+ yticklabels=['non-toxic', 'toxic'],
+ annot_kws={"size": 16, "weight": "bold"}
+ )
+
+ ax.set_xlabel('Predicted', fontsize=14, labelpad=10)
+ ax.set_ylabel('True', fontsize=14, labelpad=10)
+ ax.set_title('Confusion Matrix', fontsize=16, pad=12)
+
+ ax.xaxis.set_tick_params(labelsize=12)
+ ax.yaxis.set_tick_params(labelsize=12)
+ ax.xaxis.set_major_locator(ticker.FixedLocator([0.5, 1.5]))
+ ax.yaxis.set_major_locator(ticker.FixedLocator([0.5, 1.5]))
+
+ buf = io.BytesIO()
+ plt.tight_layout()
+ plt.savefig(buf, format='png', dpi=150)
+ plt.savefig(f'data/{self.name}/conf_matrix_step{global_step}.pdf', format='pdf', bbox_inches='tight')
+ buf.seek(0)
+ image = Image.open(buf)
+ image_tensor = ToTensor()(image)
+ writer.add_image('Confusion Matrix', image_tensor, global_step)
+
+ buf.close()
+ plt.close(fig)
+
self.train()
+ writer.close()
def predict(self, texts, device='cpu'):
"""Used for inference. Predicts the class of the input text.
diff --git a/cold/dynamic_conv.py b/cold/dynamic_conv.py
index 620e40932b88d9e61c6ef19668cf0aa079b1d315..73ae0496667a44446639e5b0f97ed54336600b46 100644
--- a/cold/dynamic_conv.py
+++ b/cold/dynamic_conv.py
@@ -11,14 +11,8 @@ class DynamicConv1d(nn.Module):
padding='same')
for _ in range(K)
])
- # self.attn = nn.Sequential(
- # nn.AdaptiveAvgPool2d(1),
- # nn.Conv2d(in_channels, max(in_channels // reduction, 1), 1),
- # nn.ReLU(inplace=True),
- # nn.Conv2d(max(in_channels // reduction, 1), max(in_channels // reduction, 1), 1), # 添加额外的非线性层
- # nn.ReLU(inplace=True),
- # nn.Conv2d(max(in_channels // reduction, 1), max(K,1), 1)
- # )
+ # self.residual_conv = nn.Conv1d(in_channels=in_channels, out_channels=out_channels, kernel_size=1)
+
self.attn = nn.Sequential(
nn.AdaptiveAvgPool1d(1),
nn.Conv1d(in_channels, in_channels // reduction, 1),
@@ -35,5 +29,6 @@ class DynamicConv1d(nn.Module):
attn_weights = F.softmax(attn_logits, dim=1)
conv_outs = [conv(x) for conv in self.convs]
out = sum(w * o for w, o in zip(attn_weights.split(1, dim=1), conv_outs))
-
+ # residual connection
return out + x
+
diff --git a/out/404.html b/out/404.html
index 8bb21e0032c4744792963c57321a0d5c6994de2a..9c26d45ad9986d98153fc4cd773c8dfd0e7cdc56 100644
--- a/out/404.html
+++ b/out/404.html
@@ -1 +1 @@
-
404: This page could not be found. Lite Detective 404
This page could not be found.
\ No newline at end of file
+404: This page could not be found. Lite Detective 404
This page could not be found.
\ No newline at end of file
diff --git a/out/_next/static/47abvZx_YIJwJIykSqRw5/_buildManifest.js b/out/_next/static/UFm17us9LL9P2UN6GwXPn/_buildManifest.js
similarity index 100%
rename from out/_next/static/47abvZx_YIJwJIykSqRw5/_buildManifest.js
rename to out/_next/static/UFm17us9LL9P2UN6GwXPn/_buildManifest.js
diff --git a/out/_next/static/47abvZx_YIJwJIykSqRw5/_ssgManifest.js b/out/_next/static/UFm17us9LL9P2UN6GwXPn/_ssgManifest.js
similarity index 100%
rename from out/_next/static/47abvZx_YIJwJIykSqRw5/_ssgManifest.js
rename to out/_next/static/UFm17us9LL9P2UN6GwXPn/_ssgManifest.js
diff --git a/out/_next/static/chunks/app/page-305d56b62b46323f.js b/out/_next/static/chunks/app/page-305d56b62b46323f.js
new file mode 100644
index 0000000000000000000000000000000000000000..1fc34353236c4a882dd7451178b6bb49a9628e46
--- /dev/null
+++ b/out/_next/static/chunks/app/page-305d56b62b46323f.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{1491:()=>{},1677:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,1491,23)),Promise.resolve().then(r.bind(r,3762))},3762:(e,t,r)=>{"use strict";r.d(t,{default:()=>l});var a=r(5155),s=r(2115);function l(){let[e,t]=(0,s.useState)([]),[r,l]=(0,s.useState)(""),[n,o]=(0,s.useState)(!1),i=async e=>{if(e.preventDefault(),!r.trim())return;let a={role:"user",text:r,id:"user-".concat(Date.now())};t(e=>[...e,a]),l(""),o(!0);try{var s,n;let e=await fetch("/predict",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:r})}),a=await e.json();if(!e.ok)throw Error(a.detail||"Error occurred");let l=1===a.prediction,o=null!=(n=null==(s=a.probabilities)?void 0:s[a.prediction])?n:0;t(e=>[...e,{role:"bot",text:l?"\uD83D\uDD0D:\uD83D\uDD34 ".concat((100*o).toFixed(2),"%)"):"\uD83D\uDD0D:\uD83D\uDFE2 ".concat((100*o).toFixed(2),"%)"),id:"bot-".concat(Date.now())}])}catch(e){t(e=>[...e,{role:"bot",text:"Retrying",id:"bot-".concat(Date.now())}])}finally{o(!1)}};return(0,a.jsxs)("div",{className:"w-full max-w-2xl mx-auto bg-gray-50 rounded-lg shadow p-4 flex flex-col",style:{minHeight:400},children:[(0,a.jsxs)("div",{className:"flex-1 overflow-y-auto mb-4 space-y-2",children:[e.map(e=>(0,a.jsx)("div",{className:"flex ".concat("user"===e.role?"justify-end":"justify-start"),children:(0,a.jsx)("div",{className:"\n px-4 py-2 rounded-2xl max-w-[80%] break-words\n ".concat("user"===e.role?"bg-blue-500 text-white self-end":"bot"===e.role?"bg-green-100 text-green-800 self-start":"bg-gray-200 text-gray-700 self-start text-xs","\n "),children:e.text})},e.id)),n&&(0,a.jsx)("div",{className:"flex justify-start",children:(0,a.jsx)("div",{className:"px-4 py-2 rounded-2xl bg-green-100 text-green-800 text-sm",children:"Detecting \uD83D\uDD0D..."})})]}),(0,a.jsxs)("form",{onSubmit:i,className:"flex gap-2",children:[(0,a.jsx)("input",{className:"flex-1 px-3 py-2 border border-gray-300 rounded-2xl focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:"Input your text here...",value:r,onChange:e=>l(e.target.value),disabled:n}),(0,a.jsx)("button",{type:"submit",className:"px-5 py-2 rounded-2xl bg-blue-500 text-white font-medium hover:bg-blue-600 disabled:opacity-50",disabled:n,children:"Send"})]})]})}}},e=>{var t=t=>e(e.s=t);e.O(0,[562,441,684,358],()=>t(1677)),_N_E=e.O()}]);
\ No newline at end of file
diff --git a/out/_next/static/chunks/app/page-f4394dbe159cd6fa.js b/out/_next/static/chunks/app/page-f4394dbe159cd6fa.js
deleted file mode 100644
index 2d1b985735a1de4ef3b510c59a9a7c3a51ad552b..0000000000000000000000000000000000000000
--- a/out/_next/static/chunks/app/page-f4394dbe159cd6fa.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{3762:(e,t,r)=>{"use strict";r.d(t,{default:()=>l});var s=r(5155),a=r(2115);function l(e){let{context:t}=e,r=t.split("\n\n").map((e,t)=>({role:"system",text:e,id:"sys-".concat(t)})),[l,n]=(0,a.useState)(r),[o,i]=(0,a.useState)(""),[d,u]=(0,a.useState)(!1),c=async e=>{if(e.preventDefault(),!o.trim())return;let r={role:"user",text:o,id:"user-".concat(Date.now())};n(e=>[...e,r]),i(""),u(!0);try{var s,a;let e=await fetch("/predict",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:o,context:t||void 0})}),r=await e.json();if(!e.ok)throw Error(r.detail||"Error occurred");let l=1===r.prediction,i=null!=(a=null==(s=r.probabilities)?void 0:s[r.prediction])?a:0;n(e=>[...e,{role:"bot",text:l?"\uD83D\uDD0D:\uD83D\uDD34 ".concat((100*i).toFixed(2),"%)"):"\uD83D\uDD0D:\uD83D\uDFE2 ".concat((100*i).toFixed(2),"%)"),id:"bot-".concat(Date.now())}])}catch(e){n(e=>[...e,{role:"bot",text:"Retring",id:"bot-".concat(Date.now())}])}finally{u(!1)}};return(0,s.jsxs)("div",{className:"w-full max-w-2xl mx-auto bg-gray-50 rounded-lg shadow p-4 flex flex-col",style:{minHeight:400},children:[(0,s.jsxs)("div",{className:"flex-1 overflow-y-auto mb-4 space-y-2",children:[l.map(e=>(0,s.jsx)("div",{className:"flex ".concat("user"===e.role?"justify-end":"justify-start"),children:(0,s.jsx)("div",{className:"\n px-4 py-2 rounded-2xl max-w-[80%] break-words\n ".concat("user"===e.role?"bg-blue-500 text-white self-end":"bot"===e.role?"bg-green-100 text-green-800 self-start":"bg-gray-200 text-gray-700 self-start text-xs","\n "),children:e.text})},e.id)),d&&(0,s.jsx)("div",{className:"flex justify-start",children:(0,s.jsx)("div",{className:"px-4 py-2 rounded-2xl bg-green-100 text-green-800 text-sm",children:"Detecting \uD83D\uDD0D..."})})]}),(0,s.jsxs)("form",{onSubmit:c,className:"flex gap-2",children:[(0,s.jsx)("input",{className:"flex-1 px-3 py-2 border border-gray-300 rounded-2xl focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:"Input your text here...",value:o,onChange:e=>i(e.target.value),disabled:d}),(0,s.jsx)("button",{type:"submit",className:"px-5 py-2 rounded-2xl bg-blue-500 text-white font-medium hover:bg-blue-600 disabled:opacity-50",disabled:d,children:"Send"})]})]})}},9052:(e,t,r)=>{Promise.resolve().then(r.bind(r,3762))}},e=>{var t=t=>e(e.s=t);e.O(0,[441,684,358],()=>t(9052)),_N_E=e.O()}]);
\ No newline at end of file
diff --git a/out/_next/static/chunks/webpack-375a1df0977b566b.js b/out/_next/static/chunks/webpack-21bc1358314ea4f5.js
similarity index 74%
rename from out/_next/static/chunks/webpack-375a1df0977b566b.js
rename to out/_next/static/chunks/webpack-21bc1358314ea4f5.js
index a1f9070d52741e7bfa54cbce97fe5da68f1c98b8..63f99e5ad19ec2919cb8a2981752bb76aed39857 100644
--- a/out/_next/static/chunks/webpack-375a1df0977b566b.js
+++ b/out/_next/static/chunks/webpack-21bc1358314ea4f5.js
@@ -1 +1 @@
-(()=>{"use strict";var e={},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var i=t[o]={exports:{}},a=!0;try{e[o](i,i.exports,r),a=!1}finally{a&&delete t[o]}return i.exports}r.m=e,(()=>{var e=[];r.O=(t,o,n,i)=>{if(o){i=i||0;for(var a=e.length;a>0&&e[a-1][2]>i;a--)e[a]=e[a-1];e[a]=[o,n,i];return}for(var u=1/0,a=0;a=i)&&Object.keys(r.O).every(e=>r.O[e](o[c]))?o.splice(c--,1):(l=!1,i{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(o,n){if(1&n&&(o=this(o)),8&n||"object"==typeof o&&o&&(4&n&&o.__esModule||16&n&&"function"==typeof o.then))return o;var i=Object.create(null);r.r(i);var a={};e=e||[null,t({}),t([]),t(t)];for(var u=2&n&&o;"object"==typeof u&&!~e.indexOf(u);u=t(u))Object.getOwnPropertyNames(u).forEach(e=>a[e]=()=>o[e]);return a.default=()=>o,r.d(i,a),i}})(),r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>{},r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="_N_E:";r.l=(o,n,i,a)=>{if(e[o])return void e[o].push(n);if(void 0!==i)for(var u,l,c=document.getElementsByTagName("script"),f=0;f{u.onerror=u.onload=null,clearTimeout(p);var n=e[o];if(delete e[o],u.parentNode&&u.parentNode.removeChild(u),n&&n.forEach(e=>e(r)),t)return t(r)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=d.bind(null,u.onerror),u.onload=d.bind(null,u.onload),l&&document.head.appendChild(u)}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="/_next/",(()=>{var e={68:0,160:0};r.f.j=(t,o)=>{var n=r.o(e,t)?e[t]:void 0;if(0!==n)if(n)o.push(n[2]);else if(/^(160|68)$/.test(t))e[t]=0;else{var i=new Promise((r,o)=>n=e[t]=[r,o]);o.push(n[2]=i);var a=r.p+r.u(t),u=Error();r.l(a,o=>{if(r.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var i=o&&("load"===o.type?"missing":o.type),a=o&&o.target&&o.target.src;u.message="Loading chunk "+t+" failed.\n("+i+": "+a+")",u.name="ChunkLoadError",u.type=i,u.request=a,n[1](u)}},"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,o)=>{var n,i,[a,u,l]=o,c=0;if(a.some(t=>0!==e[t])){for(n in u)r.o(u,n)&&(r.m[n]=u[n]);if(l)var f=l(r)}for(t&&t(o);c{"use strict";var e={},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var i=t[o]={exports:{}},a=!0;try{e[o](i,i.exports,r),a=!1}finally{a&&delete t[o]}return i.exports}r.m=e,(()=>{var e=[];r.O=(t,o,n,i)=>{if(o){i=i||0;for(var a=e.length;a>0&&e[a-1][2]>i;a--)e[a]=e[a-1];e[a]=[o,n,i];return}for(var u=1/0,a=0;a=i)&&Object.keys(r.O).every(e=>r.O[e](o[c]))?o.splice(c--,1):(l=!1,i{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(o,n){if(1&n&&(o=this(o)),8&n||"object"==typeof o&&o&&(4&n&&o.__esModule||16&n&&"function"==typeof o.then))return o;var i=Object.create(null);r.r(i);var a={};e=e||[null,t({}),t([]),t(t)];for(var u=2&n&&o;"object"==typeof u&&!~e.indexOf(u);u=t(u))Object.getOwnPropertyNames(u).forEach(e=>a[e]=()=>o[e]);return a.default=()=>o,r.d(i,a),i}})(),r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>{},r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="_N_E:";r.l=(o,n,i,a)=>{if(e[o])return void e[o].push(n);if(void 0!==i)for(var u,l,c=document.getElementsByTagName("script"),f=0;f{u.onerror=u.onload=null,clearTimeout(p);var n=e[o];if(delete e[o],u.parentNode&&u.parentNode.removeChild(u),n&&n.forEach(e=>e(r)),t)return t(r)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=d.bind(null,u.onerror),u.onload=d.bind(null,u.onload),l&&document.head.appendChild(u)}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="/_next/",(()=>{var e={68:0,160:0,562:0};r.f.j=(t,o)=>{var n=r.o(e,t)?e[t]:void 0;if(0!==n)if(n)o.push(n[2]);else if(/^(160|562|68)$/.test(t))e[t]=0;else{var i=new Promise((r,o)=>n=e[t]=[r,o]);o.push(n[2]=i);var a=r.p+r.u(t),u=Error();r.l(a,o=>{if(r.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var i=o&&("load"===o.type?"missing":o.type),a=o&&o.target&&o.target.src;u.message="Loading chunk "+t+" failed.\n("+i+": "+a+")",u.name="ChunkLoadError",u.type=i,u.request=a,n[1](u)}},"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,o)=>{var n,i,[a,u,l]=o,c=0;if(a.some(t=>0!==e[t])){for(n in u)r.o(u,n)&&(r.m[n]=u[n]);if(l)var f=l(r)}for(t&&t(o);c.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}
\ No newline at end of file
diff --git a/out/_next/static/css/0bc81a6c99df26fb.css b/out/_next/static/css/0bc81a6c99df26fb.css
deleted file mode 100644
index 2e3a27f6be249157784e950a3d14d1cedad200d8..0000000000000000000000000000000000000000
--- a/out/_next/static/css/0bc81a6c99df26fb.css
+++ /dev/null
@@ -1,3 +0,0 @@
-@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8d697b304b401681-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba015fad6dcf6784-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/569ce4b8f30dc480-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_5cfdac{font-family:Geist,Geist Fallback;font-style:normal}.__variable_5cfdac{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9610d9e46709d722-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/747892c23ea88013-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/93f479601ee12b01-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_9a8899{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_9a8899{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}@font-face{font-family:Share Tech;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/78b756c5b9139e81-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Share Tech Fallback;src:local("Arial");ascent-override:98.88%;descent-override:27.04%;line-gap-override:0.00%;size-adjust:89.50%}.__className_c5376c{font-family:Share Tech,Share Tech Fallback;font-weight:400;font-style:normal}.__variable_c5376c{--font-share-tech:"Share Tech","Share Tech Fallback"}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/3794f505ceb4aef5-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/320d9f5d177d6ec2-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/ca9e8d8193aed290-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/80512c49369d7ad3-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/0d580af215996300-s.woff2) format("woff2");unicode-range:u+0302-0303,u+0305,u+0307-0308,u+0310,u+0312,u+0315,u+031a,u+0326-0327,u+032c,u+032f-0330,u+0332-0333,u+0338,u+033a,u+0346,u+034d,u+0391-03a1,u+03a3-03a9,u+03b1-03c9,u+03d1,u+03d5-03d6,u+03f0-03f1,u+03f4-03f5,u+2016-2017,u+2034-2038,u+203c,u+2040,u+2043,u+2047,u+2050,u+2057,u+205f,u+2070-2071,u+2074-208e,u+2090-209c,u+20d0-20dc,u+20e1,u+20e5-20ef,u+2100-2112,u+2114-2115,u+2117-2121,u+2123-214f,u+2190,u+2192,u+2194-21ae,u+21b0-21e5,u+21f1-21f2,u+21f4-2211,u+2213-2214,u+2216-22ff,u+2308-230b,u+2310,u+2319,u+231c-2321,u+2336-237a,u+237c,u+2395,u+239b-23b7,u+23d0,u+23dc-23e1,u+2474-2475,u+25af,u+25b3,u+25b7,u+25bd,u+25c1,u+25ca,u+25cc,u+25fb,u+266d-266f,u+27c0-27ff,u+2900-2aff,u+2b0e-2b11,u+2b30-2b4c,u+2bfe,u+3030,u+ff5b,u+ff5d,u+1d400-1d7ff,u+1ee??}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/14254a1c498c2b09-s.woff2) format("woff2");unicode-range:u+0001-000c,u+000e-001f,u+007f-009f,u+20dd-20e0,u+20e2-20e4,u+2150-218f,u+2190,u+2192,u+2194-2199,u+21af,u+21e6-21f0,u+21f3,u+2218-2219,u+2299,u+22c4-22c6,u+2300-243f,u+2440-244a,u+2460-24ff,u+25a0-27bf,u+28??,u+2921-2922,u+2981,u+29bf,u+29eb,u+2b??,u+4dc0-4dff,u+fff9-fffb,u+10140-1018e,u+10190-1019c,u+101a0,u+101d0-101fd,u+102e0-102fb,u+10e60-10e7e,u+1d2c0-1d2d3,u+1d2e0-1d37f,u+1f0??,u+1f100-1f1ad,u+1f1e6-1f1ff,u+1f30d-1f30f,u+1f315,u+1f31c,u+1f31e,u+1f320-1f32c,u+1f336,u+1f378,u+1f37d,u+1f382,u+1f393-1f39f,u+1f3a7-1f3a8,u+1f3ac-1f3af,u+1f3c2,u+1f3c4-1f3c6,u+1f3ca-1f3ce,u+1f3d4-1f3e0,u+1f3ed,u+1f3f1-1f3f3,u+1f3f5-1f3f7,u+1f408,u+1f415,u+1f41f,u+1f426,u+1f43f,u+1f441-1f442,u+1f444,u+1f446-1f449,u+1f44c-1f44e,u+1f453,u+1f46a,u+1f47d,u+1f4a3,u+1f4b0,u+1f4b3,u+1f4b9,u+1f4bb,u+1f4bf,u+1f4c8-1f4cb,u+1f4d6,u+1f4da,u+1f4df,u+1f4e3-1f4e6,u+1f4ea-1f4ed,u+1f4f7,u+1f4f9-1f4fb,u+1f4fd-1f4fe,u+1f503,u+1f507-1f50b,u+1f50d,u+1f512-1f513,u+1f53e-1f54a,u+1f54f-1f5fa,u+1f610,u+1f650-1f67f,u+1f687,u+1f68d,u+1f691,u+1f694,u+1f698,u+1f6ad,u+1f6b2,u+1f6b9-1f6ba,u+1f6bc,u+1f6c6-1f6cf,u+1f6d3-1f6d7,u+1f6e0-1f6ea,u+1f6f0-1f6f3,u+1f6f7-1f6fc,u+1f7??,u+1f800-1f80b,u+1f810-1f847,u+1f850-1f859,u+1f860-1f887,u+1f890-1f8ad,u+1f8b0-1f8bb,u+1f8c0-1f8c1,u+1f900-1f90b,u+1f93b,u+1f946,u+1f984,u+1f996,u+1f9e9,u+1fa00-1fa6f,u+1fa70-1fa7c,u+1fa80-1fa89,u+1fa8f-1fac6,u+1face-1fadc,u+1fadf-1fae9,u+1faf0-1faf8,u+1fb??}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/4036a8cc6ad3520f-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c7128a8004343716-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c4a2ca76cbcd952a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Roboto Fallback;src:local("Arial");ascent-override:92.98%;descent-override:24.47%;line-gap-override:0.00%;size-adjust:99.78%}.__className_10f679{font-family:Roboto,Roboto Fallback;font-weight:400;font-style:normal}.__variable_10f679{--font-roboto:"Roboto","Roboto Fallback"}
-
-/*! tailwindcss v4.1.6 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:host,:root{--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-green-100:oklch(96.2% .044 156.743);--color-green-800:oklch(44.8% .119 151.328);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-white:#fff;--spacing:.25rem;--container-2xl:42rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--font-weight-light:300;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-extrabold:800;--tracking-tight:-.025em;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono);--font-roboto:var(--font-roboto)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.mx-auto{margin-inline:auto}.mt-16{margin-top:calc(var(--spacing)*16)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.box-border{box-sizing:border-box}.flex{display:flex}.inline-flex{display:inline-flex}.h-5{height:calc(var(--spacing)*5)}.min-h-screen{min-height:100vh}.w-5{width:calc(var(--spacing)*5)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-\[80\%\]{max-width:80%}.flex-1{flex:1}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing)*4)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-6>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*6)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-4{row-gap:calc(var(--spacing)*4)}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.overflow-y-auto{overflow-y:auto}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-gray-300{border-color:var(--color-gray-300)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-green-100{background-color:var(--color-green-100)}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-white{background-color:var(--color-white)}.p-4{padding:calc(var(--spacing)*4)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-2{padding-block:calc(var(--spacing)*2)}.py-4{padding-block:calc(var(--spacing)*4)}.text-center{text-align:center}.text-justify{text-align:justify}.align-super{vertical-align:super}.font-roboto{font-family:var(--font-roboto)}.font-sans{font-family:var(--font-geist-sans)}.font-sharetech{font-family:var(--font-share-tech)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.break-words{overflow-wrap:break-word}.text-blue-600{color:var(--color-blue-600)}.text-gray-500{color:var(--color-gray-500)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-green-800{color:var(--color-green-800)}.text-red-500{color:var(--color-red-500)}.text-white{color:var(--color-white)}.italic{font-style:italic}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@media (hover:hover){.group-hover\:scale-0:is(:where(.group):hover *){--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-95:is(:where(.group):hover *){--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-150:is(:where(.group):hover *){--tw-scale-x:150%;--tw-scale-y:150%;--tw-scale-z:150%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:opacity-0:is(:where(.group):hover *){opacity:0}.hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-indigo-700:hover{background-color:var(--color-indigo-700)}.hover\:text-xl:hover{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.hover\:text-blue-700:hover{color:var(--color-blue-700)}.hover\:text-blue-800:hover{color:var(--color-blue-800)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-blue-400:focus{--tw-ring-color:var(--color-blue-400)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:48rem){.md\:max-w-4xl{max-width:var(--container-4xl)}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}}@media (min-width:64rem){.lg\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.lg\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.lg\:text-8xl{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}.lg\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}}:root{--background:#fff;--foreground:#171717}@media (prefers-color-scheme:dark){:root{--background:#0a0a0a;--foreground:#ededed}}.sansita-regular{font-weight:400}.sansita-bold,.sansita-regular{font-family:Sansita,sans-serif;font-style:normal}.sansita-bold{font-weight:700}.sansita-extrabold{font-family:Sansita,sans-serif;font-style:normal;font-weight:800}body{background:var(--background);color:var(--foreground);font-family:Arial,Helvetica,sans-serif}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
\ No newline at end of file
diff --git a/out/_next/static/css/5ce259fa1fc9ffe1.css b/out/_next/static/css/5ce259fa1fc9ffe1.css
new file mode 100644
index 0000000000000000000000000000000000000000..f030941435465f635b8e7dcf3c44c59fb04e4c2d
--- /dev/null
+++ b/out/_next/static/css/5ce259fa1fc9ffe1.css
@@ -0,0 +1,3 @@
+@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8d697b304b401681-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba015fad6dcf6784-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/569ce4b8f30dc480-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_5cfdac{font-family:Geist,Geist Fallback;font-style:normal}.__variable_5cfdac{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9610d9e46709d722-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/747892c23ea88013-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/93f479601ee12b01-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_9a8899{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_9a8899{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}@font-face{font-family:Share Tech;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/78b756c5b9139e81-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Share Tech Fallback;src:local("Arial");ascent-override:98.88%;descent-override:27.04%;line-gap-override:0.00%;size-adjust:89.50%}.__className_c5376c{font-family:Share Tech,Share Tech Fallback;font-weight:400;font-style:normal}.__variable_c5376c{--font-share-tech:"Share Tech","Share Tech Fallback"}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/3794f505ceb4aef5-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/320d9f5d177d6ec2-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/ca9e8d8193aed290-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/80512c49369d7ad3-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/0d580af215996300-s.woff2) format("woff2");unicode-range:u+0302-0303,u+0305,u+0307-0308,u+0310,u+0312,u+0315,u+031a,u+0326-0327,u+032c,u+032f-0330,u+0332-0333,u+0338,u+033a,u+0346,u+034d,u+0391-03a1,u+03a3-03a9,u+03b1-03c9,u+03d1,u+03d5-03d6,u+03f0-03f1,u+03f4-03f5,u+2016-2017,u+2034-2038,u+203c,u+2040,u+2043,u+2047,u+2050,u+2057,u+205f,u+2070-2071,u+2074-208e,u+2090-209c,u+20d0-20dc,u+20e1,u+20e5-20ef,u+2100-2112,u+2114-2115,u+2117-2121,u+2123-214f,u+2190,u+2192,u+2194-21ae,u+21b0-21e5,u+21f1-21f2,u+21f4-2211,u+2213-2214,u+2216-22ff,u+2308-230b,u+2310,u+2319,u+231c-2321,u+2336-237a,u+237c,u+2395,u+239b-23b7,u+23d0,u+23dc-23e1,u+2474-2475,u+25af,u+25b3,u+25b7,u+25bd,u+25c1,u+25ca,u+25cc,u+25fb,u+266d-266f,u+27c0-27ff,u+2900-2aff,u+2b0e-2b11,u+2b30-2b4c,u+2bfe,u+3030,u+ff5b,u+ff5d,u+1d400-1d7ff,u+1ee??}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/14254a1c498c2b09-s.woff2) format("woff2");unicode-range:u+0001-000c,u+000e-001f,u+007f-009f,u+20dd-20e0,u+20e2-20e4,u+2150-218f,u+2190,u+2192,u+2194-2199,u+21af,u+21e6-21f0,u+21f3,u+2218-2219,u+2299,u+22c4-22c6,u+2300-243f,u+2440-244a,u+2460-24ff,u+25a0-27bf,u+28??,u+2921-2922,u+2981,u+29bf,u+29eb,u+2b??,u+4dc0-4dff,u+fff9-fffb,u+10140-1018e,u+10190-1019c,u+101a0,u+101d0-101fd,u+102e0-102fb,u+10e60-10e7e,u+1d2c0-1d2d3,u+1d2e0-1d37f,u+1f0??,u+1f100-1f1ad,u+1f1e6-1f1ff,u+1f30d-1f30f,u+1f315,u+1f31c,u+1f31e,u+1f320-1f32c,u+1f336,u+1f378,u+1f37d,u+1f382,u+1f393-1f39f,u+1f3a7-1f3a8,u+1f3ac-1f3af,u+1f3c2,u+1f3c4-1f3c6,u+1f3ca-1f3ce,u+1f3d4-1f3e0,u+1f3ed,u+1f3f1-1f3f3,u+1f3f5-1f3f7,u+1f408,u+1f415,u+1f41f,u+1f426,u+1f43f,u+1f441-1f442,u+1f444,u+1f446-1f449,u+1f44c-1f44e,u+1f453,u+1f46a,u+1f47d,u+1f4a3,u+1f4b0,u+1f4b3,u+1f4b9,u+1f4bb,u+1f4bf,u+1f4c8-1f4cb,u+1f4d6,u+1f4da,u+1f4df,u+1f4e3-1f4e6,u+1f4ea-1f4ed,u+1f4f7,u+1f4f9-1f4fb,u+1f4fd-1f4fe,u+1f503,u+1f507-1f50b,u+1f50d,u+1f512-1f513,u+1f53e-1f54a,u+1f54f-1f5fa,u+1f610,u+1f650-1f67f,u+1f687,u+1f68d,u+1f691,u+1f694,u+1f698,u+1f6ad,u+1f6b2,u+1f6b9-1f6ba,u+1f6bc,u+1f6c6-1f6cf,u+1f6d3-1f6d7,u+1f6e0-1f6ea,u+1f6f0-1f6f3,u+1f6f7-1f6fc,u+1f7??,u+1f800-1f80b,u+1f810-1f847,u+1f850-1f859,u+1f860-1f887,u+1f890-1f8ad,u+1f8b0-1f8bb,u+1f8c0-1f8c1,u+1f900-1f90b,u+1f93b,u+1f946,u+1f984,u+1f996,u+1f9e9,u+1fa00-1fa6f,u+1fa70-1fa7c,u+1fa80-1fa89,u+1fa8f-1fac6,u+1face-1fadc,u+1fadf-1fae9,u+1faf0-1faf8,u+1fb??}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/4036a8cc6ad3520f-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c7128a8004343716-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c4a2ca76cbcd952a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Roboto Fallback;src:local("Arial");ascent-override:92.98%;descent-override:24.47%;line-gap-override:0.00%;size-adjust:99.78%}.__className_10f679{font-family:Roboto,Roboto Fallback;font-weight:400;font-style:normal}.__variable_10f679{--font-roboto:"Roboto","Roboto Fallback"}
+
+/*! tailwindcss v4.1.6 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:host,:root{--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-green-100:oklch(96.2% .044 156.743);--color-green-800:oklch(44.8% .119 151.328);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-white:#fff;--spacing:.25rem;--container-2xl:42rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--font-weight-light:300;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono);--font-roboto:var(--font-roboto)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.mx-auto{margin-inline:auto}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-16{margin-top:calc(var(--spacing)*16)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.box-border{box-sizing:border-box}.flex{display:flex}.hidden{display:none}.inline-flex{display:inline-flex}.h-5{height:calc(var(--spacing)*5)}.min-h-screen{min-height:100vh}.w-5{width:calc(var(--spacing)*5)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-\[80\%\]{max-width:80%}.max-w-none{max-width:none}.flex-1{flex:1}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing)*4)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-6>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*6)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-4{row-gap:calc(var(--spacing)*4)}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.overflow-y-auto{overflow-y:auto}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-gray-300{border-color:var(--color-gray-300)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-green-100{background-color:var(--color-green-100)}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-white{background-color:var(--color-white)}.p-4{padding:calc(var(--spacing)*4)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-2{padding-block:calc(var(--spacing)*2)}.py-4{padding-block:calc(var(--spacing)*4)}.text-center{text-align:center}.text-justify{text-align:justify}.align-super{vertical-align:super}.font-roboto{font-family:var(--font-roboto)}.font-sans{font-family:var(--font-geist-sans)}.font-sharetech{font-family:var(--font-share-tech)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.break-words{overflow-wrap:break-word}.text-blue-600{color:var(--color-blue-600)}.text-gray-500{color:var(--color-gray-500)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-green-800{color:var(--color-green-800)}.text-red-500{color:var(--color-red-500)}.text-white{color:var(--color-white)}.italic{font-style:italic}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@media (hover:hover){.group-hover\:scale-0:is(:where(.group):hover *){--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-95:is(:where(.group):hover *){--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-150:is(:where(.group):hover *){--tw-scale-x:150%;--tw-scale-y:150%;--tw-scale-z:150%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:opacity-0:is(:where(.group):hover *){opacity:0}.hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-indigo-700:hover{background-color:var(--color-indigo-700)}.hover\:text-xl:hover{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.hover\:text-blue-700:hover{color:var(--color-blue-700)}.hover\:text-blue-800:hover{color:var(--color-blue-800)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-blue-400:focus{--tw-ring-color:var(--color-blue-400)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:48rem){.md\:max-w-4xl{max-width:var(--container-4xl)}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}}@media (min-width:64rem){.lg\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.lg\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.lg\:text-8xl{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}.lg\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}}:root{--background:#fff;--foreground:#171717}@media (prefers-color-scheme:dark){:root{--background:#0a0a0a;--foreground:#ededed}}.sansita-regular{font-weight:400}.sansita-bold,.sansita-regular{font-family:Sansita,sans-serif;font-style:normal}.sansita-bold{font-weight:700}.sansita-extrabold{font-family:Sansita,sans-serif;font-style:normal;font-weight:800}body{background:var(--background);color:var(--foreground);font-family:Arial,Helvetica,sans-serif}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
\ No newline at end of file
diff --git a/out/_next/static/media/KaTeX_AMS-Regular.1608a09b.woff b/out/_next/static/media/KaTeX_AMS-Regular.1608a09b.woff
new file mode 100644
index 0000000000000000000000000000000000000000..b804d7b33a3fa5b2587d2d1d55006aed678e3eb2
Binary files /dev/null and b/out/_next/static/media/KaTeX_AMS-Regular.1608a09b.woff differ
diff --git a/out/_next/static/media/KaTeX_AMS-Regular.4aafdb68.ttf b/out/_next/static/media/KaTeX_AMS-Regular.4aafdb68.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..c6f9a5e7c03f9e64e9c7b4773a8e37ade8eaf406
Binary files /dev/null and b/out/_next/static/media/KaTeX_AMS-Regular.4aafdb68.ttf differ
diff --git a/out/_next/static/media/KaTeX_AMS-Regular.a79f1c31.woff2 b/out/_next/static/media/KaTeX_AMS-Regular.a79f1c31.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..0acaaff03d4bb7606de02a827aeee338e5a86910
Binary files /dev/null and b/out/_next/static/media/KaTeX_AMS-Regular.a79f1c31.woff2 differ
diff --git a/out/_next/static/media/KaTeX_Caligraphic-Bold.b6770918.woff b/out/_next/static/media/KaTeX_Caligraphic-Bold.b6770918.woff
new file mode 100644
index 0000000000000000000000000000000000000000..9759710d1d3e16eb10012d56babb73f2479ba9f0
Binary files /dev/null and b/out/_next/static/media/KaTeX_Caligraphic-Bold.b6770918.woff differ
diff --git a/out/_next/static/media/KaTeX_Caligraphic-Bold.cce5b8ec.ttf b/out/_next/static/media/KaTeX_Caligraphic-Bold.cce5b8ec.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..9ff4a5e04421e5107f74c28e27354e0b2a4e7ef8
Binary files /dev/null and b/out/_next/static/media/KaTeX_Caligraphic-Bold.cce5b8ec.ttf differ
diff --git a/out/_next/static/media/KaTeX_Caligraphic-Bold.ec17d132.woff2 b/out/_next/static/media/KaTeX_Caligraphic-Bold.ec17d132.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..f390922eceffe1f6dfb81a3dc086a92d98171b02
Binary files /dev/null and b/out/_next/static/media/KaTeX_Caligraphic-Bold.ec17d132.woff2 differ
diff --git a/out/_next/static/media/KaTeX_Caligraphic-Regular.07ef19e7.ttf b/out/_next/static/media/KaTeX_Caligraphic-Regular.07ef19e7.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..f522294ff0f3f8c52dfdaef7ebfaa06ebfcfaabf
Binary files /dev/null and b/out/_next/static/media/KaTeX_Caligraphic-Regular.07ef19e7.ttf differ
diff --git a/out/_next/static/media/KaTeX_Caligraphic-Regular.55fac258.woff2 b/out/_next/static/media/KaTeX_Caligraphic-Regular.55fac258.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..75344a1f98e37e2c631e178065854c3a81fb842f
Binary files /dev/null and b/out/_next/static/media/KaTeX_Caligraphic-Regular.55fac258.woff2 differ
diff --git a/out/_next/static/media/KaTeX_Caligraphic-Regular.dad44a7f.woff b/out/_next/static/media/KaTeX_Caligraphic-Regular.dad44a7f.woff
new file mode 100644
index 0000000000000000000000000000000000000000..9bdd534fd2beb9b878f0219da9d63ffba56677e2
Binary files /dev/null and b/out/_next/static/media/KaTeX_Caligraphic-Regular.dad44a7f.woff differ
diff --git a/out/_next/static/media/KaTeX_Fraktur-Bold.9f256b85.woff b/out/_next/static/media/KaTeX_Fraktur-Bold.9f256b85.woff
new file mode 100644
index 0000000000000000000000000000000000000000..e7730f66275c87c28f26530d89264cffecf90be0
Binary files /dev/null and b/out/_next/static/media/KaTeX_Fraktur-Bold.9f256b85.woff differ
diff --git a/out/_next/static/media/KaTeX_Fraktur-Bold.b18f59e1.ttf b/out/_next/static/media/KaTeX_Fraktur-Bold.b18f59e1.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..4e98259c3b54076d684bf3459baeaeae8dbce97a
Binary files /dev/null and b/out/_next/static/media/KaTeX_Fraktur-Bold.b18f59e1.ttf differ
diff --git a/out/_next/static/media/KaTeX_Fraktur-Bold.d42a5579.woff2 b/out/_next/static/media/KaTeX_Fraktur-Bold.d42a5579.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..395f28beac23c7b0f7f3a1e714bd8dac253dd3bc
Binary files /dev/null and b/out/_next/static/media/KaTeX_Fraktur-Bold.d42a5579.woff2 differ
diff --git a/out/_next/static/media/KaTeX_Fraktur-Regular.7c187121.woff b/out/_next/static/media/KaTeX_Fraktur-Regular.7c187121.woff
new file mode 100644
index 0000000000000000000000000000000000000000..acab069f90b6fe6301a004e6f8beaf6a0db48bce
Binary files /dev/null and b/out/_next/static/media/KaTeX_Fraktur-Regular.7c187121.woff differ
diff --git a/out/_next/static/media/KaTeX_Fraktur-Regular.d3c882a6.woff2 b/out/_next/static/media/KaTeX_Fraktur-Regular.d3c882a6.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..735f6948d63c8cc7f8233735bb9c8d843c83d804
Binary files /dev/null and b/out/_next/static/media/KaTeX_Fraktur-Regular.d3c882a6.woff2 differ
diff --git a/out/_next/static/media/KaTeX_Fraktur-Regular.ed38e79f.ttf b/out/_next/static/media/KaTeX_Fraktur-Regular.ed38e79f.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..b8461b275fae76efd0d21fd0f1aaa696a5b10f9a
Binary files /dev/null and b/out/_next/static/media/KaTeX_Fraktur-Regular.ed38e79f.ttf differ
diff --git a/out/_next/static/media/KaTeX_Main-Bold.b74a1a8b.ttf b/out/_next/static/media/KaTeX_Main-Bold.b74a1a8b.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..4060e627dc341c1854260cbc3f7386e222a4d297
Binary files /dev/null and b/out/_next/static/media/KaTeX_Main-Bold.b74a1a8b.ttf differ
diff --git a/out/_next/static/media/KaTeX_Main-Bold.c3fb5ac2.woff2 b/out/_next/static/media/KaTeX_Main-Bold.c3fb5ac2.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..ab2ad21da6fbe6c171bb869240954d0ead8f68fd
Binary files /dev/null and b/out/_next/static/media/KaTeX_Main-Bold.c3fb5ac2.woff2 differ
diff --git a/out/_next/static/media/KaTeX_Main-Bold.d181c465.woff b/out/_next/static/media/KaTeX_Main-Bold.d181c465.woff
new file mode 100644
index 0000000000000000000000000000000000000000..f38136ac1cc2dcdc9d9b10b8521487468b1f768c
Binary files /dev/null and b/out/_next/static/media/KaTeX_Main-Bold.d181c465.woff differ
diff --git a/out/_next/static/media/KaTeX_Main-BoldItalic.6f2bb1df.woff2 b/out/_next/static/media/KaTeX_Main-BoldItalic.6f2bb1df.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..5931794de4a2a485fa70099bf2659b145976d043
Binary files /dev/null and b/out/_next/static/media/KaTeX_Main-BoldItalic.6f2bb1df.woff2 differ
diff --git a/out/_next/static/media/KaTeX_Main-BoldItalic.70d8b0a5.ttf b/out/_next/static/media/KaTeX_Main-BoldItalic.70d8b0a5.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..dc007977ee709a236d9e82719cf7d4e5577a81b9
Binary files /dev/null and b/out/_next/static/media/KaTeX_Main-BoldItalic.70d8b0a5.ttf differ
diff --git a/out/_next/static/media/KaTeX_Main-BoldItalic.e3f82f9d.woff b/out/_next/static/media/KaTeX_Main-BoldItalic.e3f82f9d.woff
new file mode 100644
index 0000000000000000000000000000000000000000..67807b0bd4f867853271f5917fb3adf377f93f53
Binary files /dev/null and b/out/_next/static/media/KaTeX_Main-BoldItalic.e3f82f9d.woff differ
diff --git a/out/_next/static/media/KaTeX_Main-Italic.47373d1e.ttf b/out/_next/static/media/KaTeX_Main-Italic.47373d1e.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..0e9b0f354ad460202bba554359f5adcc8da666b7
Binary files /dev/null and b/out/_next/static/media/KaTeX_Main-Italic.47373d1e.ttf differ
diff --git a/out/_next/static/media/KaTeX_Main-Italic.8916142b.woff2 b/out/_next/static/media/KaTeX_Main-Italic.8916142b.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..b50920e138807f385d0b0359f4f0f09891f18406
Binary files /dev/null and b/out/_next/static/media/KaTeX_Main-Italic.8916142b.woff2 differ
diff --git a/out/_next/static/media/KaTeX_Main-Italic.9024d815.woff b/out/_next/static/media/KaTeX_Main-Italic.9024d815.woff
new file mode 100644
index 0000000000000000000000000000000000000000..6f43b594b6c1d863a0e3f93b001f8dd503316464
Binary files /dev/null and b/out/_next/static/media/KaTeX_Main-Italic.9024d815.woff differ
diff --git a/out/_next/static/media/KaTeX_Main-Regular.0462f03b.woff2 b/out/_next/static/media/KaTeX_Main-Regular.0462f03b.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..eb24a7ba282b03d830fa6c63ee897d92a5188736
Binary files /dev/null and b/out/_next/static/media/KaTeX_Main-Regular.0462f03b.woff2 differ
diff --git a/out/_next/static/media/KaTeX_Main-Regular.7f51fe03.woff b/out/_next/static/media/KaTeX_Main-Regular.7f51fe03.woff
new file mode 100644
index 0000000000000000000000000000000000000000..21f5812968c42392a3eaea9b0c6320870b6b8b38
Binary files /dev/null and b/out/_next/static/media/KaTeX_Main-Regular.7f51fe03.woff differ
diff --git a/out/_next/static/media/KaTeX_Main-Regular.b7f8fe9b.ttf b/out/_next/static/media/KaTeX_Main-Regular.b7f8fe9b.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..dd45e1ed2e18b32c516d9b481ebed3cb8bffa711
Binary files /dev/null and b/out/_next/static/media/KaTeX_Main-Regular.b7f8fe9b.ttf differ
diff --git a/out/_next/static/media/KaTeX_Math-BoldItalic.572d331f.woff2 b/out/_next/static/media/KaTeX_Math-BoldItalic.572d331f.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..29657023adc09956249f6295746c8ce4469b50d3
Binary files /dev/null and b/out/_next/static/media/KaTeX_Math-BoldItalic.572d331f.woff2 differ
diff --git a/out/_next/static/media/KaTeX_Math-BoldItalic.a879cf83.ttf b/out/_next/static/media/KaTeX_Math-BoldItalic.a879cf83.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..728ce7a1e2cb689df32c3a6c26e1bd072dcf2acb
Binary files /dev/null and b/out/_next/static/media/KaTeX_Math-BoldItalic.a879cf83.ttf differ
diff --git a/out/_next/static/media/KaTeX_Math-BoldItalic.f1035d8d.woff b/out/_next/static/media/KaTeX_Math-BoldItalic.f1035d8d.woff
new file mode 100644
index 0000000000000000000000000000000000000000..0ae390d74c9f665cf8b1e5ea5483395da7513444
Binary files /dev/null and b/out/_next/static/media/KaTeX_Math-BoldItalic.f1035d8d.woff differ
diff --git a/out/_next/static/media/KaTeX_Math-Italic.5295ba48.woff b/out/_next/static/media/KaTeX_Math-Italic.5295ba48.woff
new file mode 100644
index 0000000000000000000000000000000000000000..eb5159d4c1ca83fb92b3190223698427df0e010c
Binary files /dev/null and b/out/_next/static/media/KaTeX_Math-Italic.5295ba48.woff differ
diff --git a/out/_next/static/media/KaTeX_Math-Italic.939bc644.ttf b/out/_next/static/media/KaTeX_Math-Italic.939bc644.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..70d559b4e937ca1b805eb39f544cbebe3c58ca6f
Binary files /dev/null and b/out/_next/static/media/KaTeX_Math-Italic.939bc644.ttf differ
diff --git a/out/_next/static/media/KaTeX_Math-Italic.f28c23ac.woff2 b/out/_next/static/media/KaTeX_Math-Italic.f28c23ac.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..215c143fd7805a5c2b222bd7892a1a2b09610020
Binary files /dev/null and b/out/_next/static/media/KaTeX_Math-Italic.f28c23ac.woff2 differ
diff --git a/out/_next/static/media/KaTeX_SansSerif-Bold.8c5b5494.woff2 b/out/_next/static/media/KaTeX_SansSerif-Bold.8c5b5494.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..cfaa3bda59246b49e94298478d6de3b3208066c8
Binary files /dev/null and b/out/_next/static/media/KaTeX_SansSerif-Bold.8c5b5494.woff2 differ
diff --git a/out/_next/static/media/KaTeX_SansSerif-Bold.94e1e8dc.ttf b/out/_next/static/media/KaTeX_SansSerif-Bold.94e1e8dc.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..2f65a8a3a6d3628d11ea9c26c9077cef672fe427
Binary files /dev/null and b/out/_next/static/media/KaTeX_SansSerif-Bold.94e1e8dc.ttf differ
diff --git a/out/_next/static/media/KaTeX_SansSerif-Bold.bf59d231.woff b/out/_next/static/media/KaTeX_SansSerif-Bold.bf59d231.woff
new file mode 100644
index 0000000000000000000000000000000000000000..8d47c02d9408d34b2a9d566c0fe0d42bf82fb735
Binary files /dev/null and b/out/_next/static/media/KaTeX_SansSerif-Bold.bf59d231.woff differ
diff --git a/out/_next/static/media/KaTeX_SansSerif-Italic.3b1e59b3.woff2 b/out/_next/static/media/KaTeX_SansSerif-Italic.3b1e59b3.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..349c06dc609f896392fd5bc8b364d3bc3efc9330
Binary files /dev/null and b/out/_next/static/media/KaTeX_SansSerif-Italic.3b1e59b3.woff2 differ
diff --git a/out/_next/static/media/KaTeX_SansSerif-Italic.7c9bc82b.woff b/out/_next/static/media/KaTeX_SansSerif-Italic.7c9bc82b.woff
new file mode 100644
index 0000000000000000000000000000000000000000..7e02df963621a5e26d53d510f0b4992eebde1c60
Binary files /dev/null and b/out/_next/static/media/KaTeX_SansSerif-Italic.7c9bc82b.woff differ
diff --git a/out/_next/static/media/KaTeX_SansSerif-Italic.b4c20c84.ttf b/out/_next/static/media/KaTeX_SansSerif-Italic.b4c20c84.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..d5850df98ec19de2eee9ff922ef59586efe471d0
Binary files /dev/null and b/out/_next/static/media/KaTeX_SansSerif-Italic.b4c20c84.ttf differ
diff --git a/out/_next/static/media/KaTeX_SansSerif-Regular.74048478.woff b/out/_next/static/media/KaTeX_SansSerif-Regular.74048478.woff
new file mode 100644
index 0000000000000000000000000000000000000000..31b84829b42edae20d0148eeec0d922dad2108c4
Binary files /dev/null and b/out/_next/static/media/KaTeX_SansSerif-Regular.74048478.woff differ
diff --git a/out/_next/static/media/KaTeX_SansSerif-Regular.ba21ed5f.woff2 b/out/_next/static/media/KaTeX_SansSerif-Regular.ba21ed5f.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..a90eea85f6f7bded69ff5d40114447a6d8b48cfe
Binary files /dev/null and b/out/_next/static/media/KaTeX_SansSerif-Regular.ba21ed5f.woff2 differ
diff --git a/out/_next/static/media/KaTeX_SansSerif-Regular.d4d7ba48.ttf b/out/_next/static/media/KaTeX_SansSerif-Regular.d4d7ba48.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..537279f6bd2184ed32f1a5168850609147d58ee6
Binary files /dev/null and b/out/_next/static/media/KaTeX_SansSerif-Regular.d4d7ba48.ttf differ
diff --git a/out/_next/static/media/KaTeX_Script-Regular.03e9641d.woff2 b/out/_next/static/media/KaTeX_Script-Regular.03e9641d.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..b3048fc115681ee6c1bc86b0aa158cfbbf59daa3
Binary files /dev/null and b/out/_next/static/media/KaTeX_Script-Regular.03e9641d.woff2 differ
diff --git a/out/_next/static/media/KaTeX_Script-Regular.07505710.woff b/out/_next/static/media/KaTeX_Script-Regular.07505710.woff
new file mode 100644
index 0000000000000000000000000000000000000000..0e7da821eee0dd05a0a6f0b16c2c1345dc573a84
Binary files /dev/null and b/out/_next/static/media/KaTeX_Script-Regular.07505710.woff differ
diff --git a/out/_next/static/media/KaTeX_Script-Regular.fe9cbbe1.ttf b/out/_next/static/media/KaTeX_Script-Regular.fe9cbbe1.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..fd679bf374af72f2a183b97b40c9c7e9e51fbe5e
Binary files /dev/null and b/out/_next/static/media/KaTeX_Script-Regular.fe9cbbe1.ttf differ
diff --git a/out/_next/static/media/KaTeX_Size1-Regular.e1e279cb.woff b/out/_next/static/media/KaTeX_Size1-Regular.e1e279cb.woff
new file mode 100644
index 0000000000000000000000000000000000000000..7f292d91184f257054ef77cc1cd3443db757c9cc
Binary files /dev/null and b/out/_next/static/media/KaTeX_Size1-Regular.e1e279cb.woff differ
diff --git a/out/_next/static/media/KaTeX_Size1-Regular.eae34984.woff2 b/out/_next/static/media/KaTeX_Size1-Regular.eae34984.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..c5a8462fbfe2c39a7c1857b9e296e62500a8a8a5
Binary files /dev/null and b/out/_next/static/media/KaTeX_Size1-Regular.eae34984.woff2 differ
diff --git a/out/_next/static/media/KaTeX_Size1-Regular.fabc004a.ttf b/out/_next/static/media/KaTeX_Size1-Regular.fabc004a.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..871fd7d19d8658f64d8696ed9cdfc82c821ed76d
Binary files /dev/null and b/out/_next/static/media/KaTeX_Size1-Regular.fabc004a.ttf differ
diff --git a/out/_next/static/media/KaTeX_Size2-Regular.57727022.woff b/out/_next/static/media/KaTeX_Size2-Regular.57727022.woff
new file mode 100644
index 0000000000000000000000000000000000000000..d241d9be2d317f7b39b401d96c8b18836acea0fa
Binary files /dev/null and b/out/_next/static/media/KaTeX_Size2-Regular.57727022.woff differ
diff --git a/out/_next/static/media/KaTeX_Size2-Regular.5916a24f.woff2 b/out/_next/static/media/KaTeX_Size2-Regular.5916a24f.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..e1bccfe2403a4ed770c1697ae7c15b9e1cd9bc4e
Binary files /dev/null and b/out/_next/static/media/KaTeX_Size2-Regular.5916a24f.woff2 differ
diff --git a/out/_next/static/media/KaTeX_Size2-Regular.d6b476ec.ttf b/out/_next/static/media/KaTeX_Size2-Regular.d6b476ec.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..7a212caf91c0007e826fee2d622bf48acbd30dde
Binary files /dev/null and b/out/_next/static/media/KaTeX_Size2-Regular.d6b476ec.ttf differ
diff --git a/out/_next/static/media/KaTeX_Size3-Regular.9acaf01c.woff b/out/_next/static/media/KaTeX_Size3-Regular.9acaf01c.woff
new file mode 100644
index 0000000000000000000000000000000000000000..e6e9b658dcf1cd031ac82b6b8f312444c55d4fc0
Binary files /dev/null and b/out/_next/static/media/KaTeX_Size3-Regular.9acaf01c.woff differ
diff --git a/out/_next/static/media/KaTeX_Size3-Regular.a144ef58.ttf b/out/_next/static/media/KaTeX_Size3-Regular.a144ef58.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..00bff3495fa9d2f98c1c9ce436add6a1bcfe87fb
Binary files /dev/null and b/out/_next/static/media/KaTeX_Size3-Regular.a144ef58.ttf differ
diff --git a/out/_next/static/media/KaTeX_Size3-Regular.b4230e7e.woff2 b/out/_next/static/media/KaTeX_Size3-Regular.b4230e7e.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..249a28662218a7a17ad8bd1fe072169ecb666a49
Binary files /dev/null and b/out/_next/static/media/KaTeX_Size3-Regular.b4230e7e.woff2 differ
diff --git a/out/_next/static/media/KaTeX_Size4-Regular.10d95fd3.woff2 b/out/_next/static/media/KaTeX_Size4-Regular.10d95fd3.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..680c13085076a2f6c5a7e695935ec3f21cddb65f
Binary files /dev/null and b/out/_next/static/media/KaTeX_Size4-Regular.10d95fd3.woff2 differ
diff --git a/out/_next/static/media/KaTeX_Size4-Regular.7a996c9d.woff b/out/_next/static/media/KaTeX_Size4-Regular.7a996c9d.woff
new file mode 100644
index 0000000000000000000000000000000000000000..e1ec5457664f438ce5a1cc6dd8409bf60ca7804b
Binary files /dev/null and b/out/_next/static/media/KaTeX_Size4-Regular.7a996c9d.woff differ
diff --git a/out/_next/static/media/KaTeX_Size4-Regular.fbccdabe.ttf b/out/_next/static/media/KaTeX_Size4-Regular.fbccdabe.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..74f08921f00f71f413ca42c9d1c90202e672ef38
Binary files /dev/null and b/out/_next/static/media/KaTeX_Size4-Regular.fbccdabe.ttf differ
diff --git a/out/_next/static/media/KaTeX_Typewriter-Regular.6258592b.woff b/out/_next/static/media/KaTeX_Typewriter-Regular.6258592b.woff
new file mode 100644
index 0000000000000000000000000000000000000000..2432419f28936aff53ddfa2a732d027e6a6648fd
Binary files /dev/null and b/out/_next/static/media/KaTeX_Typewriter-Regular.6258592b.woff differ
diff --git a/out/_next/static/media/KaTeX_Typewriter-Regular.a8709e36.woff2 b/out/_next/static/media/KaTeX_Typewriter-Regular.a8709e36.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..771f1af705f5cef5f578b3a1e7d8eff66f9b76b0
Binary files /dev/null and b/out/_next/static/media/KaTeX_Typewriter-Regular.a8709e36.woff2 differ
diff --git a/out/_next/static/media/KaTeX_Typewriter-Regular.d97aaf4a.ttf b/out/_next/static/media/KaTeX_Typewriter-Regular.d97aaf4a.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..c83252c5714c71a3e0ec62195884167339a0129b
Binary files /dev/null and b/out/_next/static/media/KaTeX_Typewriter-Regular.d97aaf4a.ttf differ
diff --git a/out/index.html b/out/index.html
index b9e94cd8bea9f4c555b60ad7a91ed4f3f69d7af7..eb4b14a7f0a72e7219b31993b21824330a46028c 100644
--- a/out/index.html
+++ b/out/index.html
@@ -1,4 +1,4 @@
-Lite Detective Lightweight and Accurate Chinese Toxic Text Detection Disclaimer: The paper contains content that may be profane, vulgar, or offensive. * Equal Contribution
CPS 3320 2025
Kean University
Abstract Harmful content detection is a critical task for
+
Lite Detective Lightweight and Accurate Chinese Toxic Text Detection Disclaimer: The paper contains content that may be profane, vulgar, or offensive. * Equal Contribution
CPS 3320 2025
Kean University
Abstract Harmful content detection is a critical task for
any social media platform, as the presence of
misinformation, age, gender, and racial discrim-
ination can lead to a reduction in active users.
@@ -15,16 +15,4 @@ guided seed examples. Next, we employ a large
LLM (Qwen-3) for context-aware and context-
free data augmentation. Finally, we integrate
BERT embeddings with a Dynamic TextCNN
-classifier on our custom dataset.
Method Our model combines a lightweight transformer encoder with a multi-scale CNN feature extractor and a context-aware classification head.
\ No newline at end of file
+classifier on our custom dataset.Model Architecture Model Architecture BERT Encoder We utilize hfl/chinese-roberta-wwm-ext as the base transformer, with hidden states concatenation:
H concat = [ H L − 1 ; H L ] ∈ R L × 1536 H_{\text{concat}} = [H_{L-1}; H_L] \in \mathbb{R}^{L \times 1536} H concat = [ H L − 1 ; H L ] ∈ R L × 1536 Dynamic Multi-Scale Convolution Kernel Adaptation : Each DynamicConv1d layer contains K = 4 K=4 K = 4 parallel kernels with attention mechanism:α = Softmax ( W 2 σ ( W 1 AvgPool ( x ) ) ) \alpha = \text{Softmax}(W_2\sigma(W_1\text{AvgPool}(x))) α = Softmax ( W 2 σ ( W 1 AvgPool ( x ))) Output = ∑ k = 1 K α ( k ) ⊗ Conv k ( x ) + x \text{Output} = \sum_{k=1}^K \alpha^{(k)} \otimes \text{Conv}_k(x) + x Output = k = 1 ∑ K α ( k ) ⊗ Conv k ( x ) + x Hierarchical Classification The final prediction head implements dimension reduction with layer normalization:
y ^ = W 3 ( Dropout ( σ ( W 2 ( Dropout ( σ ( W 1 F pooled ) ) ) ) ) \hat{y} = W_3(\text{Dropout}(\sigma(W_2(\text{Dropout}(\sigma(W_1F_{\text{pooled}}))))) y ^ = W 3 ( Dropout ( σ ( W 2 ( Dropout ( σ ( W 1 F pooled )))))
\ No newline at end of file
diff --git a/out/index.txt b/out/index.txt
index dd4653e738f8dd43754326c4113fecf50b5a1d5c..6eafe84e863238ae88b8feba05d08c072a267a6a 100644
--- a/out/index.txt
+++ b/out/index.txt
@@ -1,23 +1,24 @@
1:"$Sreact.fragment"
2:I[7555,[],""]
3:I[1295,[],""]
-4:I[3762,["974","static/chunks/app/page-f4394dbe159cd6fa.js"],"default"]
-5:I[9665,[],"MetadataBoundary"]
-7:I[9665,[],"OutletBoundary"]
-a:I[4911,[],"AsyncMetadataOutlet"]
-c:I[9665,[],"ViewportBoundary"]
-e:I[6614,[],""]
+4:I[3762,["974","static/chunks/app/page-305d56b62b46323f.js"],"default"]
+9:I[9665,[],"MetadataBoundary"]
+b:I[9665,[],"OutletBoundary"]
+e:I[4911,[],"AsyncMetadataOutlet"]
+10:I[9665,[],"ViewportBoundary"]
+12:I[6614,[],""]
:HL["/_next/static/media/569ce4b8f30dc480-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/78b756c5b9139e81-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/93f479601ee12b01-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/c4a2ca76cbcd952a-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
-:HL["/_next/static/css/0bc81a6c99df26fb.css","style"]
-0:{"P":null,"b":"47abvZx_YIJwJIykSqRw5","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/0bc81a6c99df26fb.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"font-roboto __variable_5cfdac __variable_c5376c __variable_9a8899 __variable_10f679 antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","div",null,{"className":"min-h-screen bg-white font-sans flex flex-col items-center px-4","children":[["$","div",null,{"className":"w-full font-sans flex flex-col items-center mt-16 mb-10","children":[["$","h1",null,{"className":"inline-flex items-end space-x-2 group text-4xl md:text-5xl font-extrabold text-center mb-4 tracking-tight font-sharetech cursor-pointer transition-all duration-500","children":[["$","span",null,{"className":"text-base lg:text-2xl text-shadow-xl box-border transform transition-all duration-500 ease-in-out group-hover:scale-0 group-hover:opacity-0","children":"Lite"}],["$","span",null,{"className":"text-6xl lg:text-8xl transform transition-all duration-500 ease-in-out group-hover:scale-150","children":["Detective",["$","span",null,{"className":"text-2xl lg:text-4xl","children":"🕵️"}]]}]]}],["$","h2",null,{"className":"text-2xl text-center font-light mb-2 text-gray-700","children":"Lightweight and Accurate Chinese Toxic Text Detection"}],["$","span",null,{"className":"text-base text-shadow-xl box-border mb-8 text-red-500 lg:text-lg hover:text-red-600 hover:text-xl transition-all duration-300 ease-in-out","children":"Disclaimer: The paper contains content that may be profane, vulgar, or offensive."}],["$","div",null,{"className":"flex flex-wrap justify-center gap-x-4 gap-y-4 text-base mb-2","children":[["$","div","Qinjian Zhao *",{"className":"flex flex-col text-center group","children":["$","div",null,{"className":"flex items-center gap-2","children":["$","a",null,{"href":"https://github.com/AlbertZhaoCA","className":"text-blue-600 hover:text-blue-800 text-2xl transition-all duration-300 group-hover:scale-95","target":"_blank","rel":"noopener noreferrer","children":["Qinjian Zhao *",["$","sup",null,{"className":"text-xs align-super text-muted","children":1}]]}]}]}],["$","div","Mingcheng Hu *",{"className":"flex flex-col text-center group","children":["$","div",null,{"className":"flex items-center gap-2","children":["$","a",null,{"href":"https://github.com/HuHLuL","className":"text-blue-600 hover:text-blue-800 text-2xl transition-all duration-300 group-hover:scale-95","target":"_blank","rel":"noopener noreferrer","children":["Mingcheng Hu *",["$","sup",null,{"className":"text-xs align-super text-muted","children":1}]]}]}]}]]}],["$","div",null,{"className":"flex items-center gap-2","children":["{",[["$","a","zhaoq",{"href":"mailto:zhaoq","className":"transition-all duration-300 text-xl text-gray-500 hover:text-blue-700 hover:underline group-hover:scale-105","children":[["$","sup",null,{"className":"text-xs align-super text-muted","children":1}],"zhaoq"," ",["$","span",null,{"children":","}]]}],["$","a","humin",{"href":"mailto:humin","className":"transition-all duration-300 text-xl text-gray-500 hover:text-blue-700 hover:underline group-hover:scale-105","children":[["$","sup",null,{"className":"text-xs align-super text-muted","children":1}],"humin"," ",false]}]],"}",["$","span",null,{"className":"text-lg","children":" @ kean.edu"}]]}],["$","div",null,{"className":"text-center text-gray-500 text-sm mb-2","children":["* Equal Contribution ",["$","br",null,{}]]}],["$","div",null,{"className":"text-center text-gray-500 italic text-base mb-2","children":"CPS 3320 2025"}],["$","div",null,{"className":"text-center text-gray-700 text-base mb-6","children":[["$","span","Kean University",{"className":"text-xl","children":["Kean University"," "]}]]}],["$","div",null,{"className":"flex gap-4 justify-center mb-8","children":[["$","a",null,{"href":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","className":"inline-flex items-center gap-2 px-6 py-2 rounded-lg border border-gray-300 font-semibold text-gray-800 bg-white hover:bg-gray-100 transition","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","fill":"none","viewBox":"0 0 24 24","strokeWidth":1.5,"stroke":"currentColor","aria-hidden":"true","data-slot":"icon","ref":"$undefined","aria-labelledby":"$undefined","className":"h-5 w-5","children":[null,["$","path",null,{"strokeLinecap":"round","strokeLinejoin":"round","d":"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}]]}],"Paper"]}],["$","a",null,{"href":"https://github.com/AlbertZhaoCA/lite-detective","className":"inline-flex items-center gap-2 px-6 py-2 rounded-lg bg-indigo-600 text-white font-semibold shadow hover:bg-indigo-700 transition","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","fill":"none","viewBox":"0 0 24 24","strokeWidth":1.5,"stroke":"currentColor","aria-hidden":"true","data-slot":"icon","ref":"$undefined","aria-labelledby":"$undefined","className":"h-5 w-5","children":[null,["$","path",null,{"strokeLinecap":"round","strokeLinejoin":"round","d":"M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5"}]]}],"Code"]}],["$","a",null,{"href":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","className":"inline-flex items-center gap-2 px-6 py-2 rounded-lg border border-gray-300 font-semibold text-gray-800 bg-white hover:bg-gray-100 transition","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","fill":"none","viewBox":"0 0 24 24","strokeWidth":1.5,"stroke":"currentColor","aria-hidden":"true","data-slot":"icon","ref":"$undefined","aria-labelledby":"$undefined","className":"h-5 w-5","children":[null,["$","path",null,{"strokeLinecap":"round","strokeLinejoin":"round","d":"M4.26 10.147a60.438 60.438 0 0 0-.491 6.347A48.62 48.62 0 0 1 12 20.904a48.62 48.62 0 0 1 8.232-4.41 60.46 60.46 0 0 0-.491-6.347m-15.482 0a50.636 50.636 0 0 0-2.658-.813A59.906 59.906 0 0 1 12 3.493a59.903 59.903 0 0 1 10.399 5.84c-.896.248-1.783.52-2.658.814m-15.482 0A50.717 50.717 0 0 1 12 13.489a50.702 50.702 0 0 1 7.74-3.342M6.75 15a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm0 0v-3.675A55.378 55.378 0 0 1 12 8.443m-7.007 11.55A5.981 5.981 0 0 0 6.75 15.75v-1.5"}]]}],"arXiv"]}]]}]]}],["$","section",null,{"className":"max-w-2xl md:max-w-4xl mb-12 text-center","children":[["$","h3",null,{"className":"text-2xl font-semibold mb-2","children":"Abstract"}],["$","p",null,{"className":"text-gray-700 text-justify leading-relaxed text-lg","children":"Harmful content detection is a critical task for\nany social media platform, as the presence of\nmisinformation, age, gender, and racial discrim-\nination can lead to a reduction in active users.\nThis paper introduces a novel approach that\nleverages large language models (LLMs) to an-\nalyze specific social media data and generate\ntraining data, combined with a BERT-based Dy-\nnamic TextCNN architecture. We first crawl\npotential harmful comments from targeted com-\nmunities (e.g., \"ShunBa\"). These comments\nare then subjected to random filtering and clus-\ntering using a smaller LLM to generate policy-\nguided seed examples. Next, we employ a large\nLLM (Qwen-3) for context-aware and context-\nfree data augmentation. Finally, we integrate\nBERT embeddings with a Dynamic TextCNN\nclassifier on our custom dataset."}]]}],["$","section",null,{"className":"max-w-2xl md:max-w-4xl text-center mb-12","children":[["$","h3",null,{"className":"text-2xl font-semibold mb-2","children":"Method"}],["$","p",null,{"className":"text-gray-700 text-justify leading-relaxed text-lg","children":"Our model combines a lightweight transformer encoder with a multi-scale CNN feature extractor and a context-aware classification head."}]]}],["$","section",null,{"className":"w-full md:max-w-4xl max-w-2xl mb-12","children":[["$","h3",null,{"className":"text-xl font-semibold mb-2 text-center","children":"Online Demo"}],["$","$L4",null,{"context":"草尼玛的一群煞笔\n\n🐶日的哈麻批,该放假不放假,上你妈批的课啊\n\n老哥🀄️啊,因为人领导每天都是放假捏捏 😋\n\n密码的周六能不能放过我一次"}]]}]]}],["$","$L5",null,{"children":"$L6"}],null,["$","$L7",null,{"children":["$L8","$L9",["$","$La",null,{"promise":"$@b"}]]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","pIWeSdaRUOFIyBoDLg8MX",{"children":[["$","$Lc",null,{"children":"$Ld"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],null]}],false]],"m":"$undefined","G":["$e","$undefined"],"s":false,"S":true}
-f:"$Sreact.suspense"
-10:I[4911,[],"AsyncMetadata"]
-6:["$","$f",null,{"fallback":null,"children":["$","$L10",null,{"promise":"$@11"}]}]
-9:null
-d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
-8:null
-11:{"metadata":[["$","title","0",{"children":"Lite Detective"}],["$","meta","1",{"name":"description","content":"Efficient and Accurate Chinese Toxic Text Detection"}],["$","link","2",{"rel":"icon","href":"/favicon.ico","type":"image/x-icon","sizes":"16x16"}]],"error":null,"digest":"$undefined"}
-b:{"metadata":"$11:metadata","error":null,"digest":"$undefined"}
+:HL["/_next/static/css/5ce259fa1fc9ffe1.css","style"]
+:HL["/_next/static/css/09dfadb69bdaa005.css","style"]
+5:Tf2d,H concat = [ H L − 1 ; H L ] ∈ R L × 1536 H_{\text{concat}} = [H_{L-1}; H_L] \in \mathbb{R}^{L \times 1536} H concat = [ H L − 1 ; H L ] ∈ R L × 1536 6:Ta16,α = Softmax ( W 2 σ ( W 1 AvgPool ( x ) ) ) \alpha = \text{Softmax}(W_2\sigma(W_1\text{AvgPool}(x))) α = Softmax ( W 2 σ ( W 1 AvgPool ( x ))) 7:Tf7e,Output = ∑ k = 1 K α ( k ) ⊗ Conv k ( x ) + x \text{Output} = \sum_{k=1}^K \alpha^{(k)} \otimes \text{Conv}_k(x) + x Output = k = 1 ∑ K α ( k ) ⊗ Conv k ( x ) + x 8:T12a7,y ^ = W 3 ( Dropout ( σ ( W 2 ( Dropout ( σ ( W 1 F pooled ) ) ) ) ) \hat{y} = W_3(\text{Dropout}(\sigma(W_2(\text{Dropout}(\sigma(W_1F_{\text{pooled}}))))) y ^ = W 3 ( Dropout ( σ ( W 2 ( Dropout ( σ ( W 1 F pooled ))))) 0:{"P":null,"b":"UFm17us9LL9P2UN6GwXPn","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/5ce259fa1fc9ffe1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"font-roboto __variable_5cfdac __variable_c5376c __variable_9a8899 __variable_10f679 antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","div",null,{"className":"min-h-screen bg-white font-sans flex flex-col items-center px-4","children":[["$","div",null,{"className":"w-full font-sans flex flex-col items-center mt-16 mb-10","children":[["$","h1",null,{"className":"inline-flex items-end space-x-2 group text-4xl md:text-5xl font-extrabold text-center mb-4 tracking-tight font-sharetech cursor-pointer transition-all duration-500","children":[["$","span",null,{"className":"text-base lg:text-2xl text-shadow-xl box-border transform transition-all duration-500 ease-in-out group-hover:scale-0 group-hover:opacity-0","children":"Lite"}],["$","span",null,{"className":"text-6xl lg:text-8xl transform transition-all duration-500 ease-in-out group-hover:scale-150","children":["Detective",["$","span",null,{"className":"text-2xl lg:text-4xl","children":"🕵️"}]]}]]}],["$","h2",null,{"className":"text-2xl text-center font-light mb-2 text-gray-700","children":"Lightweight and Accurate Chinese Toxic Text Detection"}],["$","span",null,{"className":"text-base text-shadow-xl box-border mb-8 text-red-500 lg:text-lg hover:text-red-600 hover:text-xl transition-all duration-300 ease-in-out","children":"Disclaimer: The paper contains content that may be profane, vulgar, or offensive."}],["$","div",null,{"className":"flex flex-wrap justify-center gap-x-4 gap-y-4 text-base mb-2","children":[["$","div","Qinjian Zhao *",{"className":"flex flex-col text-center group","children":["$","div",null,{"className":"flex items-center gap-2","children":["$","a",null,{"href":"https://github.com/AlbertZhaoCA","className":"text-blue-600 hover:text-blue-800 text-2xl transition-all duration-300 group-hover:scale-95","target":"_blank","rel":"noopener noreferrer","children":["Qinjian Zhao *",["$","sup",null,{"className":"text-xs align-super text-muted","children":1}]]}]}]}],["$","div","Mingcheng Hu *",{"className":"flex flex-col text-center group","children":["$","div",null,{"className":"flex items-center gap-2","children":["$","a",null,{"href":"https://github.com/HuHLuL","className":"text-blue-600 hover:text-blue-800 text-2xl transition-all duration-300 group-hover:scale-95","target":"_blank","rel":"noopener noreferrer","children":["Mingcheng Hu *",["$","sup",null,{"className":"text-xs align-super text-muted","children":1}]]}]}]}]]}],["$","div",null,{"className":"flex items-center gap-2","children":["{",[["$","a","zhaoq",{"href":"mailto:zhaoq","className":"transition-all duration-300 text-xl text-gray-500 hover:text-blue-700 hover:underline group-hover:scale-105","children":[["$","sup",null,{"className":"text-xs align-super text-muted","children":1}],"zhaoq"," ",["$","span",null,{"children":","}]]}],["$","a","humin",{"href":"mailto:humin","className":"transition-all duration-300 text-xl text-gray-500 hover:text-blue-700 hover:underline group-hover:scale-105","children":[["$","sup",null,{"className":"text-xs align-super text-muted","children":1}],"humin"," ",false]}]],"}",["$","span",null,{"className":"text-lg","children":" @ kean.edu"}]]}],["$","div",null,{"className":"text-center text-gray-500 text-sm mb-2","children":["* Equal Contribution ",["$","br",null,{}]]}],["$","div",null,{"className":"text-center text-gray-500 italic text-base mb-2","children":"CPS 3320 2025"}],["$","div",null,{"className":"text-center text-gray-700 text-base mb-6","children":[["$","span","Kean University",{"className":"text-xl","children":["Kean University"," "]}]]}],["$","div",null,{"className":"flex gap-4 justify-center mb-8","children":[["$","a",null,{"href":"paper.pdf","className":"inline-flex items-center gap-2 px-6 py-2 rounded-lg border border-gray-300 font-semibold text-gray-800 bg-white hover:bg-gray-100 transition","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","fill":"none","viewBox":"0 0 24 24","strokeWidth":1.5,"stroke":"currentColor","aria-hidden":"true","data-slot":"icon","ref":"$undefined","aria-labelledby":"$undefined","className":"h-5 w-5","children":[null,["$","path",null,{"strokeLinecap":"round","strokeLinejoin":"round","d":"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}]]}],"Paper"]}],["$","a",null,{"href":"https://github.com/AlbertZhaoCA/lite-detective","className":"inline-flex items-center gap-2 px-6 py-2 rounded-lg bg-indigo-600 text-white font-semibold shadow hover:bg-indigo-700 transition","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","fill":"none","viewBox":"0 0 24 24","strokeWidth":1.5,"stroke":"currentColor","aria-hidden":"true","data-slot":"icon","ref":"$undefined","aria-labelledby":"$undefined","className":"h-5 w-5","children":[null,["$","path",null,{"strokeLinecap":"round","strokeLinejoin":"round","d":"M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5"}]]}],"Code"]}],["$","a",null,{"href":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","className":"inline-flex items-center gap-2 px-6 py-2 rounded-lg border border-gray-300 font-semibold text-gray-800 bg-white hover:bg-gray-100 transition","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","fill":"none","viewBox":"0 0 24 24","strokeWidth":1.5,"stroke":"currentColor","aria-hidden":"true","data-slot":"icon","ref":"$undefined","aria-labelledby":"$undefined","className":"h-5 w-5","children":[null,["$","path",null,{"strokeLinecap":"round","strokeLinejoin":"round","d":"M4.26 10.147a60.438 60.438 0 0 0-.491 6.347A48.62 48.62 0 0 1 12 20.904a48.62 48.62 0 0 1 8.232-4.41 60.46 60.46 0 0 0-.491-6.347m-15.482 0a50.636 50.636 0 0 0-2.658-.813A59.906 59.906 0 0 1 12 3.493a59.903 59.903 0 0 1 10.399 5.84c-.896.248-1.783.52-2.658.814m-15.482 0A50.717 50.717 0 0 1 12 13.489a50.702 50.702 0 0 1 7.74-3.342M6.75 15a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm0 0v-3.675A55.378 55.378 0 0 1 12 8.443m-7.007 11.55A5.981 5.981 0 0 0 6.75 15.75v-1.5"}]]}],"ACL 2025"]}]]}]]}],["$","section",null,{"className":"max-w-2xl md:max-w-4xl mb-12 text-center","children":[["$","h3",null,{"className":"text-2xl font-semibold mb-2","children":"Abstract"}],["$","p",null,{"className":"text-gray-700 text-justify leading-relaxed text-lg","children":"Harmful content detection is a critical task for\nany social media platform, as the presence of\nmisinformation, age, gender, and racial discrim-\nination can lead to a reduction in active users.\nThis paper introduces a novel approach that\nleverages large language models (LLMs) to an-\nalyze specific social media data and generate\ntraining data, combined with a BERT-based Dy-\nnamic TextCNN architecture. We first crawl\npotential harmful comments from targeted com-\nmunities (e.g., \"ShunBa\"). These comments\nare then subjected to random filtering and clus-\ntering using a smaller LLM to generate policy-\nguided seed examples. Next, we employ a large\nLLM (Qwen-3) for context-aware and context-\nfree data augmentation. Finally, we integrate\nBERT embeddings with a Dynamic TextCNN\nclassifier on our custom dataset."}]]}],["$","section",null,{"className":"w-full md:max-w-4xl max-w-2xl mb-12","children":[["$","h3",null,{"className":"text-xl font-semibold mb-2 text-center","children":"Online Demo"}],["$","$L4",null,{}]]}],["$","section",null,{"className":"w-full md:max-w-4xl max-w-2xl mb-12","children":[["$","h3",null,{"className":"text-xl font-semibold mb-2 text-center","children":"Model Architecture"}],["$","div",null,{"className":"prose max-w-none","children":[["$","h2",null,{"className":"text-2xl font-bold mb-4","children":"Model Architecture"}],["$","h3",null,{"className":"text-xl font-semibold mt-6 mb-3","children":"BERT Encoder"}],["$","p",null,{"className":"mb-4","children":["We utilize ",["$","code",null,{"children":"hfl/chinese-roberta-wwm-ext"}]," as the base transformer, with hidden states concatenation:"]}],["$","div",null,{"data-testid":"react-katex","dangerouslySetInnerHTML":{"__html":"$5"}}],["$","h3",null,{"className":"text-xl font-semibold mt-8 mb-3","children":"Dynamic Multi-Scale Convolution"}],["$","ul",null,{"className":"list-disc list-inside mb-4","children":["$","li",null,{"className":"mb-2","children":[["$","strong",null,{"children":"Kernel Adaptation"}],": Each ",["$","code",null,{"children":"DynamicConv1d"}]," layer contains"," ",["$","span",null,{"data-testid":"react-katex","dangerouslySetInnerHTML":{"__html":"K = 4 K=4 K = 4 "}}]," parallel kernels with attention mechanism:",["$","div",null,{"className":"mt-2","children":[["$","div",null,{"data-testid":"react-katex","dangerouslySetInnerHTML":{"__html":"$6"}}],["$","div",null,{"data-testid":"react-katex","dangerouslySetInnerHTML":{"__html":"$7"}}]]}]]}]}],["$","h3",null,{"className":"text-xl font-semibold mt-8 mb-3","children":"Hierarchical Classification"}],["$","p",null,{"className":"mb-4","children":"The final prediction head implements dimension reduction with layer normalization:"}],["$","div",null,{"data-testid":"react-katex","dangerouslySetInnerHTML":{"__html":"$8"}}]]}]]}]]}],["$","$L9",null,{"children":"$La"}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/09dfadb69bdaa005.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$Lb",null,{"children":["$Lc","$Ld",["$","$Le",null,{"promise":"$@f"}]]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","GJW_xrSs4-sgPQHEfHYy2",{"children":[["$","$L10",null,{"children":"$L11"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],null]}],false]],"m":"$undefined","G":["$12","$undefined"],"s":false,"S":true}
+13:"$Sreact.suspense"
+14:I[4911,[],"AsyncMetadata"]
+a:["$","$13",null,{"fallback":null,"children":["$","$L14",null,{"promise":"$@15"}]}]
+d:null
+11:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
+c:null
+15:{"metadata":[["$","title","0",{"children":"Lite Detective"}],["$","meta","1",{"name":"description","content":"Efficient and Accurate Chinese Toxic Text Detection"}],["$","link","2",{"rel":"icon","href":"/favicon.ico","type":"image/x-icon","sizes":"16x16"}]],"error":null,"digest":"$undefined"}
+f:{"metadata":"$15:metadata","error":null,"digest":"$undefined"}